Originally Posted by Vermis
If its spell hit that works its rather odd since its stated that spell hit works with lvl difference.
|
I can hit bosses with fireballs, which is odd, because I can hit trash mobs with fireballs :p
Here's my stab at a model, based on what I've read here and by analogy/consistency with the melee combat system. (spell miss ~ melee miss, penetration vs resistance ~ weapon skill vs defense - spell skill used to be a visible stat).
Components
(Excluded: resilience, percentage increases or decreases in spell damage from talents, immunities).
Innate resistance.
Granted by: Level. 5*(mob_level - player_level). Mob only
Mitigated by: none.
Minimum value is zero.
Additional resistance.
Granted by: 'resistance' stat - per-school
Mitigated by:
* 'Spell penetration' stat in char sheet
* -resistance debuff on target (covered by above i guess)
Minimum value is zero.
Spell miss
Given by:
* 5% base.
* Level (e.g. +12% for +3 mobs).
* 'reduces your chance to be hit by (all/frost/...) spells by X%' - per-school/all-schools
* 'increases your chance to resist (fear/stun/...) effects by X%' - per-mechanic
* debuff on attacker 'reduces your chance to hit with spells by X%'
Mitigated by:
* 'hit rating' stat
* 'increases your chance to hit with (all/frost/...) spells by X%' - per-school/all-schools
* 'reduces your opponent's chance to resist (all/frost/...) spells by X%' - identical to above
* 'reduces the chance your enemies resist your (affliction/...) spells by X%' - per-tree
Minimum value is 1%.
Example
I'm a warlock trying to cast Fear on a Priest, relevant factors:
Innate resistance: 0.
Additional resistance: The priest has 70 shadow resistance from Shadow Protection, and 12 shadow resistance from an equipped item. I have 35 spell penetration, so relevant value is 47 resistance.
Spell miss: 5% base. The priest has 5/5 unbreakable will, this adds 15% (Fear is a fear effect). I have ~30 spell hit, worth -2% miss (Fear is a spell). I have 3/5 suppression giving -6% hit (Fear is affliction school). Relevant value is 12%.
Result
(pretty sure this is known to be a two-roll system)
Spell miss check
If random() < spellmiss% then the spell/effect resists. At one point this gave a while 'Resist'.
Resistance check
Compute resist% = 0.75 * max((innate + additional)/(5*casterlevel), 1). This is the average amount of the spell that will be resisted. (i.e., resistance gives linear average reduction up to the 75% resist cap). Now we have different paths depending on whether this spell/effect is binary (frostbolt, fear) or nonbinary (fireball, shadowbolt), and whether it's a spell (fireball, fear) or other effect (concussion blow, shadow school melee damage).
* For a binary spell or effect, if random() < resist% then the spell resists, else it fully hits.
* For a non-binary spell, we look up the probability of 0%, 25%, 50%, 75%, and full resist from a table or function, and randomly choose one with the probability.
* For a non-binary non-spell (e.g. shadow melee damage), same as above but all full resists are replaced by 75% resists.
At one point, full resists resulting from the resistance check gave a yellow 'Resist'.
Example
12% chance for a 'white resist'.
Assuming no white resist, 0.75 * (0 + 47)/(5 * 70) = 10.1% chance for a yellow resist, 89.9% chance for spell hit.
Total: 20.7% chance for resist, 79.3% chance for successful fear.
Does that sound about right?