Commit graph

363 commits

Author SHA1 Message Date
Zed A. Shaw
07ce8a4148 New debug_ui that shows perf data, other debug info, and allows spawning enemies. 2025-04-05 12:09:19 -04:00
Zed A. Shaw
4f090159ab Started working on this 'arena tester' tool that would let me load an enemy and test them, but then realized I could just make it so I can spawn enemies in the game. I'm keeping the arena around as it will be useful later as a scriptable testing tool, but for now just spawn and test. 2025-04-04 12:45:55 -04:00
Zed A. Shaw
b6c1eba1b3 Actually I can just use the ai::distance_to_goal function on the fit_sort to sort by cost and distance. 2025-04-03 10:25:41 -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
6fa7b0a418 Accidentally committed code during testing. 2025-03-30 13:41:43 -04:00
Zed A. Shaw
0ebc60793a Brought back the closed_set to avoid visiting nodes already handled. 2025-03-30 12:55:59 -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
5af9a6664e Have a few basic monochrome test items and the first little leather pouches on the 'tool belt'. 2025-03-23 11:34:50 -04:00
Zed A. Shaw
d7ff7d6acf Map view now displays a simple status message, more to come. 2025-03-23 00:25:11 -04:00
Zed A. Shaw
6fe343d82d Bad commit previously, but not minimap updates. 2025-03-23 00:06:16 -04:00
Zed A. Shaw
322797f787 Now have a full map and a mini map, but I think the mini map will stop rendering sometimes. 2025-03-23 00:04:23 -04:00
Zed A. Shaw
193d97eb48 Bring over the dbg.h to see if it's usefule. 2025-03-22 23:21:12 -04:00
Zed A. Shaw
2e79cf8781 Map is way better and components::Tile is _vastly_ improved by switching to a wchar_t on display and letting nlohmann::json auto convert it for me. 2025-03-22 02:10:56 -04:00
Zed A. Shaw
2b57552152 Not the greatest but this is kind of what I want for the map. 2025-03-21 11:12:04 -04:00
Zed A. Shaw
6c9016eb0f After some prototyping I have what I think I want for the map. Just a simple piece of paper you take out that has the ASCII map on it. 2025-03-21 02:51:02 -04:00
Zed A. Shaw
acbf384e2a Fixed some of the easing functions but still not sure with RAT_GIANT doesn't move. 2025-03-20 04:25:15 -04:00
Zed A. Shaw
a53f81715d Have a basic map prototype gui working. 2025-03-20 04:13:22 -04:00
Zed A. Shaw
8b3573b01d Basic Ritual crafting UI is prototyped, so next step is to create some items and refine the UI with a possible FSM to keep it organized. 2025-03-20 03:25:35 -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
0a40135f5d Throw in the distance to mess with it later. 2025-03-19 22:34:56 -04:00
Zed A. Shaw
65c9e4b0c6 Initially implemented 'ritual blanket' UI for the crafting of rituals in combat. 2025-03-19 22:10:17 -04:00
Zed A. Shaw
263b7741f6 The ritual UI is now in its own thing, but not hooked up yet. 2025-03-19 00:48:43 -04:00
Zed A. Shaw
f1cc9f86c1 Very early prototype of the ritual crafting UI, but it needs its own thing. 2025-03-19 00:14:43 -04:00
Zed A. Shaw
a6d83db20c Fixed up dbc.cpp so now just use it everywhere. I next need to find a way to pass that to format automatically. 2025-03-17 23:53:58 -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
113a4a3b3e Now have a coverage report. 2025-03-17 00:21:27 -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
7984540c0c Added a check to see if a found state is already in a closed_set so I can skip it. 2025-03-15 22:57:09 -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
00f76dfb34 Need to tag the events with their number for debugging. 2025-03-15 10:45:07 -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
f3e157a0f7 Enemy AI is now prototyped and can find the player and attack them. 2025-03-14 13:41:22 -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