MILESTONE UPDATE

Milestone 14: Armor, Damage, and Modifier Foundation

Milestone 14 adds the plumbing Project Nightfall needs before any unit’s toughness can meaningfully differ from any other’s: a generic system for modifying stats at runtime, and a data-driven pipeline for turning raw attack damage into the amount a target actually takes.

Why this matters

Up to now, an attack’s damage number went straight from the weapon to the target’s health. That works for a first combat prototype, but it can’t support anything resembling strategy-game depth — armor upgrades, damage-type match-ups, auras, or temporary buffs all require a stat that can be pushed around by something other than its own base definition. This milestone builds that foundation without committing to any of the systems that will eventually drive it.

The centerpiece is a small, reusable “modifiable stat” container: a base value plus a list of additive, multiplicative, or override adjustments that can be added or removed independently, each tagged with where it came from. It’s deliberately generic — nothing about it is specific to armor, or to combat at all — so later systems can reuse the same machinery instead of reinventing stat math for every new mechanic.

For this milestone, exactly one stat actually uses it: a unit’s Armor. Damage types and armor profiles are now real, authored data rather than assumptions baked into code — a unit’s armor can flatly reduce incoming damage and, separately, resist specific damage types by a configurable percentage. None of this is hard-coded into a fixed type-versus-type table; every value comes from data a designer could author differently for every unit.

What actually changed in play

Both melee and ranged attacks now route their damage through a dedicated resolution step before it touches a unit’s health: armor first, then damage-type resistance, with the result never allowed to go negative. Ranged attacks also now carry their damage type all the way from the weapon definition to the point of impact, matching how melee attacks already worked.

Since there’s no tech tree or ability system yet to actually grant armor bonuses, this milestone ships a temporary, developer-only debug key that adds or removes an armor modifier on a selected unit — just enough to prove, by hand, that a stat can change after the match starts without editing its base definition. That’s the whole point of this milestone: not a finished itemization or research system, but proof that the underlying pipe works, ready for the next systems to plug into it.

What’s still placeholder

The mitigation formula itself — flat armor reduction followed by percentage resistance — is explicitly a first-pass placeholder, not a tuned design. Armor is also the only stat wired into the new pipeline for now; health, movement speed, and other stats stay untouched until something in the game actually needs to modify them. Both are intentional scoping decisions, keeping this milestone focused on building the foundation correctly rather than reaching ahead into systems — like technology and status effects — that haven’t been designed yet.

Discover more from Project Nightfall

Subscribe now to keep reading and get access to the full archive.

Continue reading