Browse Source

InitMonster fin bexact

pull/876/head
galaxyhaxz 7 years ago committed by Anders Jenbo
parent
commit
f2a917ca8a
  1. 40
      Source/monster.cpp

40
Source/monster.cpp

@ -403,19 +403,23 @@ void InitMonster(int i, int rd, int mtype, int x, int y)
monster[i]._mfuty = y;
monster[i]._moldx = x;
monster[i]._moldy = y;
monster[i]._mmode = MM_STAND;
monster[i]._mMTidx = mtype;
monster[i]._mmode = MM_STAND;
monster[i].mName = monst->MData->mName;
monster[i].MType = monst;
monster[i].MData = monst->MData;
monster[i]._mAnimData = monst->Anims[MA_STAND].Data[rd];
monster[i]._mAnimDelay = monst->Anims[MA_STAND].Rate;
monster[i]._mAnimCnt = random(88, monst->Anims[MA_STAND].Rate - 1);
monster[i]._mAnimCnt = random(88, monster[i]._mAnimDelay - 1);
monster[i]._mAnimLen = monst->Anims[MA_STAND].Frames;
monster[i]._mAnimFrame = random(88, monst->Anims[MA_STAND].Frames - 1) + 1;
monster[i]._mAnimFrame = random(88, monster[i]._mAnimLen - 1) + 1;
if (monst->mtype == MT_DIABLO) {
#ifdef HELLFIRE
monster[i]._mmaxhp = (random(88, 1) + 3333) << 6;
#else
monster[i]._mmaxhp = (random(88, 1) + 1666) << 6;
#endif
} else {
monster[i]._mmaxhp = (monst->mMinHP + random(88, monst->mMaxHP - monst->mMinHP + 1)) << 6;
}
@ -434,11 +438,14 @@ void InitMonster(int i, int rd, int mtype, int x, int y)
monster[i]._mgoalvar1 = 0;
monster[i]._mgoalvar2 = 0;
monster[i]._mgoalvar3 = 0;
monster[i].field_18 = 0;
monster[i]._pathcount = 0;
monster[i]._mDelFlag = FALSE;
monster[i]._uniqtype = 0;
monster[i]._msquelch = 0;
monster[i].field_18 = 0;
monster[i]._mDelFlag = FALSE;
#ifdef HELLFIRE
monster[i].mlid = 0;
#endif
monster[i]._mRndSeed = GetRndSeed();
monster[i]._mAISeed = GetRndSeed();
monster[i].mWhoHit = 0;
@ -465,28 +472,39 @@ void InitMonster(int i, int rd, int mtype, int x, int y)
}
if (gnDifficulty == DIFF_NIGHTMARE) {
monster[i].mLevel += 15;
monster[i].mHit += 85;
monster[i].mHit2 += 85;
#ifdef HELLFIRE
monster[i]._mmaxhp = 3 * monster[i]._mmaxhp + ((gbMaxPlayers != 1 ? 100 : 50) << 6);
#else
monster[i]._mmaxhp = 3 * monster[i]._mmaxhp + 64;
#endif
monster[i]._mhitpoints = monster[i]._mmaxhp;
monster[i].mLevel += 15;
monster[i].mExp = 2 * (monster[i].mExp + 1000);
monster[i].mHit += 85;
monster[i].mMinDamage = 2 * (monster[i].mMinDamage + 2);
monster[i].mMaxDamage = 2 * (monster[i].mMaxDamage + 2);
monster[i].mHit2 += 85;
monster[i].mMinDamage2 = 2 * (monster[i].mMinDamage2 + 2);
monster[i].mMaxDamage2 = 2 * (monster[i].mMaxDamage2 + 2);
monster[i].mArmorClass += 50;
}
#ifdef HELLFIRE
else
#endif
if (gnDifficulty == DIFF_HELL) {
monster[i].mLevel += 30;
#ifdef HELLFIRE
monster[i]._mmaxhp = 4 * monster[i]._mmaxhp + ((gbMaxPlayers != 1 ? 200 : 100) << 6);
#else
monster[i]._mmaxhp = 4 * monster[i]._mmaxhp + 192;
#endif
monster[i]._mhitpoints = monster[i]._mmaxhp;
monster[i].mHit += 120;
monster[i].mHit2 += 120;
monster[i].mLevel += 30;
monster[i].mExp = 4 * (monster[i].mExp + 1000);
monster[i].mHit += 120;
monster[i].mMinDamage = 4 * monster[i].mMinDamage + 6;
monster[i].mMaxDamage = 4 * monster[i].mMaxDamage + 6;
monster[i].mHit2 += 120;
monster[i].mMinDamage2 = 4 * monster[i].mMinDamage2 + 6;
monster[i].mMaxDamage2 = 4 * monster[i].mMaxDamage2 + 6;
monster[i].mArmorClass += 80;

Loading…
Cancel
Save