feat: implement DoT/debuff runtime system (spec §6, AC-12, AC-13)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m18s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m18s
- Add ActiveEffect, EffectType types to game.ts; activeEffects + effectiveArmor on EnemyState - Add SpellOnHitEffect + onHitEffect field to SpellDefinition - Wire onHitEffect to fire (burn), death (curse), lightning (armor_corrode), frost (freeze), soul (bypassArmor burn) - Add applyOnHitEffect() — applies on-hit effect on successful spell hit (spec §6.2) - Add processDoTPhase() — ticks all active effects after weapon/golem attacks (spec §6.3) - Add bypassArmor/bypassBarrier support in applyEnemyDefenses() (AC-13) - Export standalone applyEnemyDefenses from combat-tick.ts for DoT pipeline - Split DoT runtime into separate dot-runtime.ts (135 lines) to keep combat-actions.ts under 400 lines - Update all enemy generation sites with activeEffects/effectiveArmor defaults - Fix test helpers for new required fields All 921 tests pass (45 test files)
This commit is contained in:
@@ -75,6 +75,7 @@ function runCombatTick(rawMana: number, elements: Record<string, { current: numb
|
||||
[], // signedPacts
|
||||
{ activeGolems: [] }, // golemancyState
|
||||
golemApplyDamageToRoom,
|
||||
(dmg: number) => dmg, // applyEnemyDefenses (passthrough for tests)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -94,6 +95,7 @@ function processCombatTickDirect(
|
||||
onFloorCleared, onDamageDealt, signedPacts,
|
||||
{ activeGolems: [] },
|
||||
golemApplyDamageToRoom,
|
||||
(dmg: number) => dmg, // applyEnemyDefenses (passthrough for tests)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user