Files
TravianZ/Templates/Build
Ferywir 91a980fa3d fix(combat): keep the hero casualty when rams force a battle recalculation [#372] (#373)
When rams change the wall level, applyRamDamage() replays the whole battle
through calculateBattle(). That helper WRITES to the hero table, so the replay
applied the hero damage a second time: applyHeroBattleDamage() only looks up
heroes with dead = 0, so the hero who had just died on the first pass was no
longer found, the call returned null and casualties_attacker[11] was never set.

Consequences, all visible in the screenshots of the issue: the report showed the
hero alive and "gained XP" instead of "died", modifyAttack3() never decremented
t11, and returnunitsComplete() added the hero back to units.hero - a hero dead in
the hero table but still displayed in dorf1 and in the rally point. Defender
heroes were also charged their health damage twice.

calculateBattle() now takes an optional $previousHeroOutcome: when the caller
hands over the first pass result, the hero damage is not applied again and the
first verdict (attacker / defender / reinforcement heroes) is carried over.

Also:
- drop the temporary [TravianZ][EROU] error_log() debug traces;
- 37_revive.tpl: only render a revive row for a hero that is actually dead
  (the revive action itself was already gated on dead = 1).

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Catalin Novgorodschi <cata7007@gmail.com>
2026-08-09 20:20:37 +03:00
..
2026-07-30 09:04:34 +03:00
2026-07-30 09:04:34 +03:00
2013-06-16 10:38:34 +03:00
2026-07-24 18:16:53 +03:00
2026-07-10 13:35:30 +03:00
2026-08-09 19:37:51 +03:00
2026-08-05 14:14:10 +03:00
2026-06-29 07:46:57 +03:00
2026-07-17 08:24:13 +03:00
2026-07-17 08:24:13 +03:00
2026-07-17 08:24:13 +03:00
2026-06-29 08:02:09 +03:00
2026-07-01 11:05:44 +03:00
2026-07-23 15:16:51 +03:00
2026-07-24 11:00:40 +03:00
fix
2026-08-01 15:52:21 +03:00
2026-08-03 12:58:18 +03:00
2026-07-23 15:16:51 +03:00
2026-07-23 15:16:51 +03:00
2026-07-17 08:24:13 +03:00
2026-07-17 08:24:13 +03:00
2026-07-17 08:24:13 +03:00
2026-07-17 08:24:13 +03:00
2026-07-28 10:17:12 +03:00
2026-08-04 07:54:47 +03:00