# Monster Attack Formulas

### From Braindead's Mordor Site

Some formulas used are simplified for easy calculation. Real ones can be found at bottom.
SpawnLevel = First Dungeon Level, the monster spawns on ("Level" Value in Wabbits Editor)

MonGuildLvl = Monster Guild Level ("Guild Lev" Value in Wabbits Editor)

**Order of the Attack**

Pre-Attack:

1) Breath

2) Acid

Attack:

1a) Spell, if cast, jump to Electrocute

1b) Melee, max 5 attack attemps

Post-Attack:

1) Electrocute

2) Age

3) Drain

4) Stone

5) Poison

6) Disease

7) Destroy Item

8) Steal

**Monster Melee Damage Formula**

1: Get Monster DamMod ("Damage" Value in Wabbits Editor)

2: -0.5 if Target is invisible and Monster can't see invisible

4: +0.75 if Target is opening Chest

3: + 2 if Critical Hit, Chance of doing a Crit is 2-50% if Monster can Crit

4: + 1 if Backstab, Chance of Backstabbing is 4-75% if Monster can Backstab

6: +0.1/-0.1 per size bigger/smaller than Target

7: if DamMod is > 1, then DamMod = DamMod - LN(DamMod)^2

BSV = Int(MonStrength - (LN(MonStrength) * ((LN(MonStrength) - 2.4) * 2.25))) + 1

StrMod1 = Int((Rnd * ((BSV + 10) / 2)) + ((BSV + 10) / 4)) / 10

StrMod2 = BSV/30

LvlMod = (LN(MonGuildLvl + 5) + 1) / LN(1.2)

Base Damage = LvlMod * StrMod1 * StrMod2 * DamMod

Final Damage = Base - Random[0 to Int((CharDef-MonAtk)/8)]

**Monster Chance To Hit**

If MonAtk = CharDef: %Chance = 50

If MonAtk > CharDef: %Chance = 50 + (50 * (MonAtk - CharDef) / MonAtk)

If MonAtk < CharDef: %Chance = 50 - (50 * (CharDef - MonAtk) / CharDef)

Minimum 2%, Maximum 98%

**Acid Attack**

CharCurrentGuildLvl > MonGuildLvl * 1.25: Chance = 90%

CharCurrentGuildLvl < MonGuildLvl * 1.25: Chance = 10%

Else Chance = 50%

Minimum = (LN(MonGuildLvl) + (MonGuildLvl/15)) * 4.55

Base Damage = Minimum + Random[0 to Minimum]

Then every 10 Character Levels = -0.7 Dam (is -0.07 Dam per Level, but approx is easier)

Final Damage = Base Damage * (1 - Resistance/2) (Yes, resistance only half effective)

**Breath Attack**

CharHighestGuildLvl > MonGuildLvl * 1.25: Chance = 80%

CharHighestGuildLvl < MonGuildLvl * 1.25: Chance = 20%

Else Chance = 50%

LevelMod = MonGuildLvl * LN(MonGuildLvl)

Minimum = Int((LN(LevelMod) + (LevelMod / 15)) * 1.1375)

Base Damage = Minimum + Random[0 to Minimum*2]

Character Level has basically negligible effect, Lv 1 vs 999 is a 5-12 Damage Reduction difference here.

Final Damage = Base Damage * (1 - Resistance/2) (Yes, resistance only half effective)

Will hit Targeted Character and all his/her Companions.

**Electrocution Attack, requires successful Spell/Melee Attack**

CharLvl > MonGuildLvl * 1.25: Chance = 90%

CharLvl < MonGuildLvl * 1.25: Chance = 10%

Else Chance = 50%

Minimum = (LN(MonGuildLvl) + (MonGuildLvl/15)) * 4.55

Base Damage = Minimum + Random[0 to Minimum]

Then every 10 Character Levels = -0.7 Dam (is -0.07 Dam per Level, but approx is easier)

Final Damage = Base Damage * (1 - Resistance/2) (Yes, resistance only half effective)

**Age Attack, requires successful Melee Attack**

%Chance = (100 + SpawnLevel * 2) - (CharacterConstitution * 2.5)

Aging = 1 to [lowest of: 1825 and MonGuildLvl * 7.3] days

**Drain Attack, requires successful Melee Attack**

Drain Attemps = Random[1 to CInt(SpawnLevel / 2 + 0.5)]

Drain = 1 Random Stat or -2 Max HP

%Chance = (100 + SpawnLevel * 2) - (CharacterConstitution * 2.5)

First check against Resistance, if attack is not resisted, then check chance.

**Stoning Attack, requires successful Spell/Melee Attack**

%Chance (minimum 5%) = (100 + SpawnLevel) - (CharacterConstitution * LN(CharacterConstitution) * 1.09)

First check against Resistance, if attack is not resisted, then check chance.

**Poison Attack, requires successful Melee Attack**

Poison Level = SpawnLevel (higher level poison takes longer to wear off)

Check against Resistance, if attack is not resisted, apply Poison

**Disease Attack, requires successful Melee Attack**

Disease Level = SpawnLevel (higher level disease takes longer to wear off)

Check against Resistance, if attack is not resisted, apply Disease

**Paralyze Attack, requires successful Melee Attack**

%Chance (Minimum 5) = 100 - (Resistance + CharacterConstitution)

Real Formula for Breath Attack:

LevelMod = Int(MonGuildLvl * LN(MonGuildLvl + 1))

Modifier1 = Int(((((LN(LevelMod) + (LevelMod / 15)) / LN(1.08)) - (CharGuildLvl / 20)) + 1))

Base Damage = Int(((Int(((Rnd * Modifier1) + 1) / 2) + (Modifier1 / 4)) * 0.7) / 2)

Real Formula for Acid/Electrocution Attack:

Modifier1 = Int(((((LN(MonGuildLvl + 1) + ((MonGuildLvl + 1) / 15)) / LN(1.08)) - (CharGuildLvl / 10)) + 1))

Base Damage = Int((Int(((Rnd * Modifier1) + 1) / 2) + (Modifier1 / 2)) * 0.7)

Discuss this topic in the forum