1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-06 09:09:40 +02:00

Fix inability of unit to cast spell after receiving morale

This commit is contained in:
Ivan Savenko
2025-04-28 19:34:36 +03:00
parent 5433b07e5f
commit 5550edeb9a
16 changed files with 62 additions and 26 deletions

View File

@@ -568,7 +568,7 @@ bool BattleEvaluator::attemptCastingSpell(const CStack * activeStack)
ourTurnSpan++;
}
state->nextTurn(unit->unitId());
state->nextTurn(unit->unitId(), BattleUnitTurnReason::TURN_QUEUE);
PotentialTargets potentialTargets(unit, damageCache, state);

View File

@@ -342,14 +342,14 @@ void HypotheticBattle::nextRound()
}
}
void HypotheticBattle::nextTurn(uint32_t unitId)
void HypotheticBattle::nextTurn(uint32_t unitId, BattleUnitTurnReason reason)
{
activeUnitId = unitId;
auto unit = getForUpdate(unitId);
unit->removeUnitBonus(Bonus::UntilGetsTurn);
unit->afterGetsTurn();
unit->afterGetsTurn(reason);
}
void HypotheticBattle::addUnit(uint32_t id, const JsonNode & data)

View File

@@ -137,7 +137,7 @@ public:
battle::Units getUnitsIf(const battle::UnitFilter & predicate) const override;
void nextRound() override;
void nextTurn(uint32_t unitId) override;
void nextTurn(uint32_t unitId, BattleUnitTurnReason reason) override;
void addUnit(uint32_t id, const JsonNode & data) override;
void setUnitState(uint32_t id, const JsonNode & data, int64_t healthDelta) override;