Commit graph

78 commits

Author SHA1 Message Date
Zed A. Shaw
0e2f213871 Added in a new art for a 'gold savior' and refined the battle engine more but it's not quite what I want. 2025-04-07 14:02:32 -04:00
Zed A. Shaw
ca328e10dc Rework the source so that battle is in its own thing to work on. 2025-04-07 10:35:30 -04:00
Zed A. Shaw
1f90367f51 Initial battle engine is now integrated in the systems so now I can finally get the turn based combat to work the way I envision. 2025-04-06 00:45:51 -04:00
Zed A. Shaw
b832bbd78a Fixed how sprites/textures are loaded so tehy default to frame 0 of any multi-frame textures. 2025-04-05 17:17:26 -04:00
Zed A. Shaw
c1aba2d5c8 This does a 'fit_sort' whenever the state is changed. fit_sort effectively sorts the actions by distance+cost so that the cost is actually present unlike the original algorithm. 2025-04-03 10:14:50 -04:00
Zed A. Shaw
c014e65c13 Gave up on trying to get the GOAP algorithm to correctly apply the cost structure to competing choices, and instead I take the resulting action list and simply find the next best one based on cost. 2025-04-01 13:48:59 -04:00
Zed A. Shaw
52f45e1d45 Mostly fixed up but I have to figure out why cost on actions isn't changing the priority. 2025-03-31 13:51:27 -04:00
Zed A. Shaw
862d8b4d81 Now have a cycle and repeated action mitigation technique in the AI algorithm called 'delete shit you've seen'. 2025-03-31 11:27:48 -04:00
Zed A. Shaw
922fbeba0e AI now follows the A* algorithm more closely by using a separate priority queue from the open_set. 2025-03-30 12:37:34 -04:00
Zed A. Shaw
72951f308f Converted almost everything to use wstring so that it works better with SFML and the unicode/utf8 usage in the system. 2025-03-28 12:40:46 -04:00
Zed A. Shaw
47c6bfd531 AI engine is working and I have a little BattleEngine going but the AI is working better than it should in systems.cpp. Need to find out why then make the BattleEngine avoid running entities that have END in action lists. 2025-03-26 13:34:52 -04:00
Zed A. Shaw
da273cbee6 Refactored rituals so they can be used in different situations. 2025-03-24 12:30:58 -04:00
Zed A. Shaw
1aa6674e42 Created a nice utility library for doing animations, and used it in the ritual crafting UI. 2025-03-20 01:10:01 -04:00
Zed A. Shaw
2baa044695 Final little fixes for testing. 2025-03-17 23:36:14 -04:00
Zed A. Shaw
5ed8196c80 Brought line numbers back for the dbc.cpp logging stuff. May not work in clang because of the bug they have (had?). 2025-03-17 23:16:51 -04:00
Zed A. Shaw
0efb17371b Now have a simple stats test. 2025-03-17 22:56:18 -04:00
Zed A. Shaw
d3158291f7 Did a full code coverage review and improved many of the tests and a bunch of code. I'll do one more final walk through all the code before getting back to work on the new combat system. 2025-03-17 15:23:47 -04:00
Zed A. Shaw
c4611c0138 Right before coverage destroys everything. 2025-03-16 23:17:43 -04:00
Zed A. Shaw
1d2968f826 Move the ritual stuff to the combat namespace. 2025-03-16 13:46:40 -04:00
Zed A. Shaw
49531ba148 Rituals are more or less sorted out in theory, and they helped find a cycle in the GOAP algorithm that I'm detecting/preventing. 2025-03-16 13:34:38 -04:00
Zed A. Shaw
8368d2e751 Prep for the next cleaning quality cycle. 2025-03-16 10:26:54 -04:00
Zed A. Shaw
15bb69624b Rituals now work mostly how I want, and even prototyped the idea of a cursed item giving you a debuff and also boosting damage more. 2025-03-16 00:46:24 -04:00
Zed A. Shaw
eeea3c794f The basic idea of using GOAP to figure out if combined items will produce a valid ritual, and what kind of things the ritual does, mostly works. 2025-03-15 23:39:54 -04:00
Zed A. Shaw
63f032ff12 BREAKING: First idea for the combat system but there's a bug in goap where I'm not removing closed parts or something like that. 2025-03-15 22:30:10 -04:00
Zed A. Shaw
75db188dc6 AI is now mostly working. Enemies will attack the player, and some of them are marked as not tough so they'll run away when they get low health. 2025-03-15 11:43:46 -04:00
Zed A. Shaw
c4e01775bc Enemies will now get scared when their health is low. 2025-03-15 10:45:27 -04:00
Zed A. Shaw
2815375836 Test now can work the enemy AI to prototype behavior. 2025-03-14 23:48:03 -04:00
Zed A. Shaw
db5a371766 Moving some stuff around before writing a test to confirm the EntityAI. 2025-03-14 22:39:08 -04:00
Zed A. Shaw
ad71631809 Enemies and now using the GOAP AI to decide when to attack the player, but it's very rough right now. I need to sort out how to store the AI states and use them in the System. 2025-03-14 11:14:25 -04:00
Zed A. Shaw
ee804581a8 Autowalker is working way better and now I have a plan for using the AI in the System. 2025-03-13 13:44:42 -04:00
Zed A. Shaw
0623170dbc Autowalker AI now knows when it has items, and knows it should find healing, but it's not working quite yet. 2025-03-12 13:56:05 -04:00
Zed A. Shaw
d15c9b12fd Autowalker is now using the GOAP AI system and works way better. Still quite a lot of jank in the code but that'll get removed over time. Next thing is being able to detect when its near an item/enemy and properly react. 2025-03-12 12:15:21 -04:00
Zed A. Shaw
fc66d221d4 Now have the ability to do partial solutions that will create potential paths to the goal, and a test that runs the scripts from plans in different scenarios. Also, this ai_debug thing needs some work. 2025-03-11 15:33:14 -04:00
Zed A. Shaw
3f83d3f0bb A bit more cleanup to avoid duplicate testing and to separate the GOAP algorithm code from the little AI Manager thing. 2025-03-11 10:57:29 -04:00
Zed A. Shaw
b2c1b220ac ai.cpp now has a nice easy to use API for loading and running the GOAP things. 2025-03-11 00:32:11 -04:00
Zed A. Shaw
a079f882df Quick renaming of stuff to be more generic as 'AI'. Now maybe I can get some sweet sweet investor money. 2025-03-10 22:30:56 -04:00
Zed A. Shaw
9d6dc2f5dd Now can load action specs from JSON. 2025-03-10 14:07:31 -04:00
Zed A. Shaw
3d8a2d4342 GOAP now uses only bit operations to do its thing. 2025-03-10 12:13:08 -04:00
Zed A. Shaw
01525388ec GOAP is now working in a basic way, time to clean it up. 2025-03-10 11:06:26 -04:00
Zed A. Shaw
2992193447 GOAP is now matching cppGOAP but needs a serious cleanup. 2025-03-10 00:42:59 -04:00
Zed A. Shaw
15c2efc415 A barely working GOAP now, but need to confirm it's on par with other libraries. 2025-03-09 23:40:15 -04:00
Zed A. Shaw
a34e2cd475 GOAP is structured but not working yet. 2025-03-09 14:05:53 -04:00
Zed A. Shaw
a34becdaeb A simple A* pathing function that works on maps, but I'll be changing it to do the GOAP pathing. 2025-03-08 23:23:29 -05:00
Zed A. Shaw
6e363ba78d Found the test that crashed sometimes but also had to just rip out all of the throws testing in DBC because catch2 can't get it right. 2025-02-28 22:29:25 -05:00
Zed A. Shaw
5179709e3c Performance check showed that I was checking every sprite even if they're way far away so now just do ones near-ish. 2025-02-25 00:56:54 -05:00
Zed A. Shaw
389690e5c3 Optimize GUECS a bit so that it automatically sets up the cell names and lel::Cell contents in the world, making it easier to work with. 2025-02-22 22:27:56 -05:00
Zed A. Shaw
20cbc3a21c Working sound system and most enemies have a sound effect. This will make it easier to add sounds now. 2025-02-22 12:48:37 -05:00
Zed A. Shaw
947ccbe180 A simple config loader test. 2025-02-21 23:17:53 -05:00
Zed A. Shaw
b8bb49df2c A basic components test that just loads all the config files and their components into a world. 2025-02-21 22:52:53 -05:00
Zed A. Shaw
d0a6a92bc8 More testing improvements. 2025-02-21 13:21:13 -05:00