|
@@ -45,11 +45,12 @@ void DamageCache::buildObstacleDamageCache(std::shared_ptr<HypotheticBattle> hb,
|
|
|
continue;
|
|
|
|
|
|
std::unique_ptr<spells::BattleCast> cast = nullptr;
|
|
|
+ std::unique_ptr<spells::ObstacleCasterProxy> caster = nullptr;
|
|
|
if(spellObstacle->obstacleType == SpellCreatedObstacle::EObstacleType::SPELL_CREATED)
|
|
|
{
|
|
|
const auto * hero = hb->battleGetFightingHero(spellObstacle->casterSide);
|
|
|
- auto caster = spells::ObstacleCasterProxy(hb->getSidePlayer(spellObstacle->casterSide), hero, *spellObstacle);
|
|
|
- cast = std::make_unique<spells::BattleCast>(spells::BattleCast(hb.get(), &caster, spells::Mode::PASSIVE, obst->getTrigger().toSpell()));
|
|
|
+ caster = std::make_unique<spells::ObstacleCasterProxy>(hb->getSidePlayer(spellObstacle->casterSide), hero, *spellObstacle);
|
|
|
+ cast = std::make_unique<spells::BattleCast>(spells::BattleCast(hb.get(), caster.get(), spells::Mode::PASSIVE, obst->getTrigger().toSpell()));
|
|
|
}
|
|
|
|
|
|
auto affectedHexes = obst->getAffectedTiles();
|