DIFFICULTY
Keywords: DIFFICULTY, NPC_DIFFICULTY, MOB_DIFFICULTY
=== STAFF REFERENCE ===
Description:
Every non-custom NPC has a Difficulty setting and a Level. Together
these determine all of the mob's combat stats: attributes, HP, armor,
and DPS. The system has two layers that combine multiplicatively.
Layer 1: Rank Table (Level-Based)
The mob's level maps to one of 11 ranks. Stats are interpolated
smoothly within each rank band, so a level 25 mob is stronger than a
level 21 mob even though both fall in the same rank.
Rank 1 .... levels 1-9
Rank 2 .... levels 10-19
Rank 3 .... levels 20-29
Rank 4 .... levels 30-39
Rank 5 .... levels 40-49
Rank 6 .... levels 50-59
Rank 7 .... levels 60-69
Rank 8 .... levels 70-79
Rank 9 .... levels 80-89
Rank 10 .... levels 90-99
Rank 11 .... level 100
Each rank defines base values for all 8 attributes (STR, HEA, COO,
AGI, PER, KNO, FTH, LCK), plus Base HP, Bonus HP (random variance),
Armor %, and DPS. These values differ by race to preserve faction
flavor: humans favor Coordination, zombies favor Strength/Health,
demons favor Agility.
Layer 2: Difficulty Multiplier
Each mob's Difficulty setting applies a multiplier to the rank values:
Difficulty Attrs HP Armor DPS
Custom ........ -- -- -- -- (uses hand-set values)
Very Easy ..... 0.85x 0.65x 0.70x 0.75x
Easy .......... 0.90x 0.80x 0.85x 0.90x
Normal ........ 1.00x 1.00x 1.00x 1.00x
Hard .......... 1.12x 1.30x 1.15x 1.12x
Very Hard ..... 1.20x 1.50x 1.25x 1.20x
How Stats Are Computed:
Final value = interpolated rank value x difficulty multiplier
Example: A level 55 Human at Hard difficulty:
- Rank 6 COO base is 390. Interpolated at level 55: 401
- Hard attrs multiplier: 1.12x
- Final COO: 401 x 1.12 = 449
HP Calculation:
NPC max HP = (BaseHP x HP_mult) + random(0 .. BonusHP x HP_mult)
Example: Level 55 Human, Hard difficulty:
- Interpolated BaseHP: 973, BonusHP: 377
- Hard HP multiplier: 1.30x
- HP range: 1264 to 1754
DPS to Damage:
Actual damage per hit = DPS x Attack Speed / Rate of Fire
Default attack speed is 5.0, default ROF is 1.
A level 55 Hard mob with DPS 90 deals: 90 x 5.0 / 1 = 450 per hit
(before armor reduction and damage variance).
Armor:
Armor is a flat percentage reduction applied to all damage types.
damage_after_armor = damage - (damage x armor%) / 100
Unlike previous versions, armor now scales with difficulty. A Very
Easy mob has 70% of its rank armor; Very Hard has 125%.
Custom Difficulty:
Setting difficulty to Custom disables all automatic scaling. The
mob uses whatever attributes, HP, armor, and DPS are set manually in
medit. Use Custom for bosses, special encounters, or any mob that
needs hand-tuned stats outside the rank system.
Sample Stats at Key Levels (Normal, Human):
Lvl STR HEA COO AGI HP Range Armor DPS
1 70 150 280 190 400-450 5% 40
25 100 183 335 243 630-745 10% 58
50 129 218 379 285 895-1225 17% 76
75 155 249 423 328 1135-1510 22% 92
100 200 300 500 400 1500-2150 30% 120
Notes:
- Stats are computed at mob load time. Already-loaded mobs keep
their current stats until their zone resets.
- NPCs have no trained skills. Their effective skill for hit/dodge
rolls is based purely on their attribute values.
- The Difficulty field is set per-mob prototype in medit under
the B) Difficulty option.
=== END REFERENCE ===