diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 8e8daf10d..b275e7519 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -1400,11 +1400,11 @@ void missiles_berserk(int mi, int sx, int sy, int dx, int dy, int midir, char mi if ((!(monster[dm].mMagicRes & RESIST_MAGIC) || (monster[dm].mMagicRes & RESIST_MAGIC) == 1 && !random(99, 2)) && monster[dm]._mmode != MM_CHARGE) { j = 6; double slvl = (double)GetSpellLevel(id, SPL_BERSERK); - monster[dm]._mFlags |= MFLAG_UNUSED | MFLAG_GOLEM; //is this ok? - monster[dm].mMinDamage = (__int64)(((double)(random(145, 10) + 20) * 0.01 - -1.0) * (double)monster[dm].mMinDamage + slvl); - monster[dm].mMaxDamage = (__int64)(((double)(random(145, 10) + 20) * 0.01 - -1.0) * (double)monster[dm].mMaxDamage + slvl); - monster[dm].mMinDamage2 = (__int64)(((double)(random(145, 10) + 20) * 0.01 - -1.0) * (double)monster[dm].mMinDamage2 + slvl); - monster[dm].mMaxDamage2 = (__int64)(((double)(random(145, 10) + 20) * 0.01 - -1.0) * (double)monster[dm].mMaxDamage2 + slvl); + monster[dm]._mFlags |= MFLAG_UNUSED | MFLAG_GOLEM; + monster[dm].mMinDamage = ((double)(random(145, 10) + 20) / 100 + 1) * (double)monster[dm].mMinDamage + slvl; + monster[dm].mMaxDamage = ((double)(random(145, 10) + 20) / 100 + 1) * (double)monster[dm].mMaxDamage + slvl; + monster[dm].mMinDamage2 = ((double)(random(145, 10) + 20) / 100 + 1) * (double)monster[dm].mMinDamage2 + slvl; + monster[dm].mMaxDamage2 = ((double)(random(145, 10) + 20) / 100 + 1) * (double)monster[dm].mMaxDamage2 + slvl; if (currlevel < 17 || currlevel > 20) r = 3; else