|
|
|
@ -182,9 +182,9 @@ void MoveMissilePos(Missile &missile) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, missile_id t, bool shift) |
|
|
|
bool MonsterMHit(int pnum, int monsterId, int mindam, int maxdam, int dist, missile_id t, bool shift) |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto &monster = Monsters[m]; |
|
|
|
auto &monster = Monsters[monsterId]; |
|
|
|
|
|
|
|
|
|
|
|
if (!monster.IsPossibleToHit() || monster.IsImmune(t)) |
|
|
|
if (!monster.IsPossibleToHit() || monster.IsImmune(t)) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
@ -244,14 +244,14 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, missile_id t |
|
|
|
monster._mFlags |= MFLAG_NOHEAL; |
|
|
|
monster._mFlags |= MFLAG_NOHEAL; |
|
|
|
|
|
|
|
|
|
|
|
if (monster._mhitpoints >> 6 <= 0) { |
|
|
|
if (monster._mhitpoints >> 6 <= 0) { |
|
|
|
M_StartKill(m, pnum); |
|
|
|
M_StartKill(monsterId, pnum); |
|
|
|
} else if (resist) { |
|
|
|
} else if (resist) { |
|
|
|
PlayEffect(monster, 1); |
|
|
|
PlayEffect(monster, 1); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if (monster._mmode != MonsterMode::Petrified && MissilesData[t].mType == 0 && HasAnyOf(player._pIFlags, ItemSpecialEffect::Knockback)) |
|
|
|
if (monster._mmode != MonsterMode::Petrified && MissilesData[t].mType == 0 && HasAnyOf(player._pIFlags, ItemSpecialEffect::Knockback)) |
|
|
|
M_GetKnockback(m); |
|
|
|
M_GetKnockback(monster); |
|
|
|
if (monster.type().type != MT_GOLEM) |
|
|
|
if (monster.type().type != MT_GOLEM) |
|
|
|
M_StartHit(m, pnum, dam); |
|
|
|
M_StartHit(monsterId, pnum, dam); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (monster._msquelch == 0) { |
|
|
|
if (monster._msquelch == 0) { |
|
|
|
|