diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 9a707f3bd..859608dd3 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -658,8 +658,12 @@ bool GuardianTryFireAt(Missile &missile, Point target) if (monster.hitPoints >> 6 <= 0) return false; + Player &player = Players[missile._misource]; + int dmg = GenerateRnd(10) + (player._pLevel / 2) + 1; + dmg = ScaleSpellEffect(dmg, missile._mispllvl); + Direction dir = GetDirection(position, target); - AddMissile(position, target, dir, MissileID::Firebolt, TARGET_MONSTERS, missile._misource, missile._midam, missile.sourcePlayer()->GetSpellLevel(SPL_GUARDIAN), &missile); + AddMissile(position, target, dir, MissileID::Firebolt, TARGET_MONSTERS, missile._misource, dmg, missile.sourcePlayer()->GetSpellLevel(SPL_GUARDIAN), &missile); SetMissDir(missile, 2); missile.var2 = 3; @@ -2074,9 +2078,6 @@ void AddGuardian(Missile &missile, AddMissileParameter ¶meter) { Player &player = Players[missile._misource]; - int dmg = GenerateRnd(10) + (player._pLevel / 2) + 1; - missile._midam = ScaleSpellEffect(dmg, missile._mispllvl); - std::optional spawnPosition = FindClosestValidPosition( [start = missile.position.start](Point target) { if (!InDungeonBounds(target)) {