Project 05

Bunblade

A turn-based combat system built in Unity 6 and C#, designed around an event-driven architecture: one turn state machine broadcasts events and every system subscribes on its own, so combat, status effects, spells, the shop, and run progression stay fully decoupled.

Architecture Systems wire together through event Action delegates and unsubscribe on turn end, so no system holds a hard reference to another.
Turn order A hand-written generic binary heap acts as the scheduler: each actor's speed maps inversely to a time-to-next-turn value, and actors are re-queued after acting so slows and speed swings reorder the fight.
Parry A coroutine state machine runs per incoming hit (windup, parry window, late threshold). The Space input is graded early, perfect, late, or fail, with a downtime lockout that punishes mashing.
Combat Elemental weakness system, stacking burn / slow / attack-debuff statuses ticked each turn, and mana-gated spells authored as ScriptableObjects.
Run loop A persistent session singleton carries gold and battle count across scenes and rescales each enemy on a fresh instance, so the roguelike run keeps ramping.

The game

Bunblade is a turn-based roguelike. You play a bunny fighting through a run of battles against a monster. Land attacks, spend mana on spells (Ignia burns, Glacia slows), and time your parry: hit Space in the window during an enemy attack to block the hit and claw back a turn. Clear a fight and you reach the shop, where the gold you earned buys more attack, defense, or spell power before the next, tougher enemy. Lose and the run ends.

WASD move J confirm K back Space parry