|
|
|
|
@ -203,7 +203,7 @@ int ProjectileTrapDamage()
|
|
|
|
|
return currlevel + GenerateRnd(2 * currlevel); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool MonsterMHit(const Player &player, int monsterId, int mindam, int maxdam, int dist, MissileID t, DamageType damageType, bool shift) |
|
|
|
|
bool MonsterMHit(const Player &player, int monsterId, int mindam, int maxdam, int dist, MissileID t, WorldTilePosition startPos, DamageType damageType, bool shift) |
|
|
|
|
{ |
|
|
|
|
Monster &monster = Monsters[monsterId]; |
|
|
|
|
|
|
|
|
|
@ -268,7 +268,7 @@ bool MonsterMHit(const Player &player, int monsterId, int mindam, int maxdam, in
|
|
|
|
|
PlayEffect(monster, MonsterSound::Hit); |
|
|
|
|
} else { |
|
|
|
|
if (monster.mode != MonsterMode::Petrified && missileData.isArrow() && HasAnyOf(player._pIFlags, ItemSpecialEffect::Knockback)) |
|
|
|
|
M_GetKnockback(monster); |
|
|
|
|
M_GetKnockback(monster, startPos); |
|
|
|
|
if (monster.type().type != MT_GOLEM) |
|
|
|
|
M_StartHit(monster, player, dam); |
|
|
|
|
} |
|
|
|
|
@ -422,7 +422,7 @@ void CheckMissileCol(Missile &missile, DamageType damageType, int minDamage, int
|
|
|
|
|
// then the missile can potentially hit this target
|
|
|
|
|
isMonsterHit = MonsterTrapHit(mid, minDamage, maxDamage, missile._midist, missile._mitype, damageType, isDamageShifted); |
|
|
|
|
} else if (IsAnyOf(missile._micaster, TARGET_BOTH, TARGET_MONSTERS)) { |
|
|
|
|
isMonsterHit = MonsterMHit(*missile.sourcePlayer(), mid, minDamage, maxDamage, missile._midist, missile._mitype, damageType, isDamageShifted); |
|
|
|
|
isMonsterHit = MonsterMHit(*missile.sourcePlayer(), mid, minDamage, maxDamage, missile._midist, missile._mitype, missile.position.start, damageType, isDamageShifted); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|