diff --git a/sim/core/target.go b/sim/core/target.go index bcf578cf42..9df68c69cd 100644 --- a/sim/core/target.go +++ b/sim/core/target.go @@ -341,6 +341,7 @@ type AttackTable struct { GlanceMultiplier float64 MeleeCritSuppression float64 SpellCritSuppression float64 + HitSuppression float64 DamageDealtMultiplier float64 // attacker buff, applied in applyAttackerModifiers() DamageTakenMultiplier float64 // defender debuff, applied in applyTargetModifiers() @@ -372,22 +373,25 @@ func NewAttackTable(attacker *Unit, defender *Unit) *AttackTable { } if defender.Type == EnemyUnit { - table.BaseSpellMissChance = UnitLevelFloat64(defender.Level, 0.06, 0.09, 0.12, 0.15) - table.BaseMissChance = UnitLevelFloat64(defender.Level, 0.03, 0.045, 0.06, 0.075) - table.BaseBlockChance = UnitLevelFloat64(defender.Level, 0.03, 0.045, 0.06, 0.075) - table.BaseDodgeChance = UnitLevelFloat64(defender.Level, 0.03, 0.045, 0.06, 0.075) - table.BaseParryChance = UnitLevelFloat64(defender.Level, 0.03, 0.045, 0.06, 0.075) + // Assumes attacker (the Player) is level 70. + table.BaseSpellMissChance = UnitLevelFloat64(defender.Level, 0.04, 0.05, 0.06, 0.17) + table.BaseMissChance = UnitLevelFloat64(defender.Level, 0.05, 0.055, 0.06, 0.08) + table.BaseBlockChance = 0.05 + table.BaseDodgeChance = UnitLevelFloat64(defender.Level, 0.05, 0.055, 0.06, 0.065) + table.BaseParryChance = UnitLevelFloat64(defender.Level, 0.05, 0.055, 0.06, 0.14) table.BaseGlanceChance = UnitLevelFloat64(defender.Level, 0.06, 0.12, 0.18, 0.24) table.GlanceMultiplier = UnitLevelFloat64(defender.Level, 0.95, 0.95, 0.85, 0.75) - table.MeleeCritSuppression = UnitLevelFloat64(defender.Level, 0, 0.01, 0.02, 0.03) - table.SpellCritSuppression = UnitLevelFloat64(defender.Level, 0, 0.01, 0.02, 0.03) + table.HitSuppression = UnitLevelFloat64(defender.Level, 0, 0, 0, 0.01) + table.MeleeCritSuppression = UnitLevelFloat64(defender.Level, 0, 0.01, 0.02, 0.048) + table.SpellCritSuppression = UnitLevelFloat64(defender.Level, 0, 0, 0.003, 0.021) } else { - table.BaseSpellMissChance = UnitLevelFloat64(attacker.Level, 0.06, 0.03, 0, -0.03) - table.BaseMissChance = UnitLevelFloat64(attacker.Level, 0.03, 0.015, 0, -0.015) - table.BaseBlockChance = UnitLevelFloat64(attacker.Level, 0, -0.015, -0.03, -0.045) - table.BaseDodgeChance = UnitLevelFloat64(attacker.Level, 0, -0.015, -0.03, -0.045) - table.BaseParryChance = UnitLevelFloat64(attacker.Level, 0, -0.015, -0.03, -0.045) + // Assumes defender (the Player) is level 70. + table.BaseSpellMissChance = 0.05 + table.BaseMissChance = UnitLevelFloat64(attacker.Level, 0.05, 0.048, 0.046, 0.044) + table.BaseBlockChance = UnitLevelFloat64(attacker.Level, 0.05, 0.048, 0.046, 0.044) + table.BaseDodgeChance = UnitLevelFloat64(attacker.Level, 0, -0.002, -0.004, -0.006) + table.BaseParryChance = UnitLevelFloat64(attacker.Level, 0.05, 0.048, 0.046, 0.044) } return table