A daily devlog documenting my journey building a turn-based RPG, with many other elements mixed in for fun, in Godot
BattleScene.cs
script with a new minimal bridge that simply passes entities to CombatManager
.CombatManager
singleton.DungeonUi.cs
to dynamically read skill names from PlayerData
and reflect them on the appropriate UI buttons.ExecutePlayerSkill
, and confirmed both execute correctly via stamina and action cost checks.SkillData
so that "Prayer"
and "Whirlwind"
populate properly on UI load.UseSkill()
was silently failing on stamina or action cost checks.Skill4
(“Prayer”) wasn’t displaying due to a missing .Name
field in the skill dictionary.EndTurn
button logic was disabling the button in both if
and else
blocks—fixed with a simple logic patch.Today marked the moment everything clicked. After refactoring my entire combat flow into the CombatManager
, I no longer needed to juggle logic across scattered scripts—everything finally feels centralized, coherent, and scalable. It was deeply satisfying to press a skill button, see the animation play, and watch my custom-designed enemy sprites react with damage and hurt feedback.
The prayer system felt especially rewarding to see functioning correctly—it’s one of the most thematic pieces of the design and really represents the kind of layered, strategic combat I want to build this game around. Getting the button UI to reflect dynamic skills based on the weapon-class relationship added to that immersion.
I hit a few snags—like the End Turn button logic and some silent stamina failures—but they were all easy fixes once I stopped and thought through them. I now have a battle system that feels alive, and that’s no small feat. With this in place, the game’s foundation is solid enough to grow from. The fun part is just beginning.