Browse Source

fix for monster melee hit monster (#4617)

pull/4606/merge
k-bar 4 years ago committed by GitHub
parent
commit
bc2c13e8ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 32
      Source/monster.cpp

32
Source/monster.cpp

@ -1291,21 +1291,23 @@ void MonsterAttackMonster(int i, int mid, int hper, int mind, int maxd)
auto &monster = Monsters[mid];
assert(monster.MType != nullptr);
if (!monster.IsPossibleToHit()) {
int hit = GenerateRnd(100);
if (monster._mmode == MonsterMode::Petrified)
hit = 0;
if (monster.TryLiftGargoyle())
return;
if (hit < hper) {
int dam = (mind + GenerateRnd(maxd - mind + 1)) << 6;
monster._mhitpoints -= dam;
if (monster._mhitpoints >> 6 <= 0) {
StartDeathFromMonster(i, mid);
} else {
MonsterHitMonster(mid, i, dam);
}
}
if (!monster.IsPossibleToHit())
return;
int hit = GenerateRnd(100);
if (monster._mmode == MonsterMode::Petrified)
hit = 0;
if (monster.TryLiftGargoyle())
return;
if (hit >= hper)
return;
int dam = (mind + GenerateRnd(maxd - mind + 1)) << 6;
monster._mhitpoints -= dam;
if (monster._mhitpoints >> 6 <= 0) {
StartDeathFromMonster(i, mid);
} else {
MonsterHitMonster(mid, i, dam);
}
}

Loading…
Cancel
Save