diff --git a/sim/core/armor_test.go b/sim/core/armor_test.go index bdb794eaeb..ca7cfc91d5 100644 --- a/sim/core/armor_test.go +++ b/sim/core/armor_test.go @@ -142,7 +142,7 @@ func TestDamageReductionFromArmor(t *testing.T) { } attacker := Unit{ Type: PlayerUnit, - Level: 90, + Level: 85, } spell := &Spell{} target.stats = target.initialStats diff --git a/sim/core/base_stats.go b/sim/core/base_stats.go index 05c0605990..ffde161c86 100644 --- a/sim/core/base_stats.go +++ b/sim/core/base_stats.go @@ -225,17 +225,17 @@ var ClassBaseStats = map[proto.Class]stats.Stats{ } var ClassBaseScaling = map[proto.Class]float64{ - proto.Class_ClassDeathKnight: 1507.454300, - proto.Class_ClassDruid: 1327.328600, - proto.Class_ClassHunter: 1507.454300, - proto.Class_ClassMage: 1263.083400, - proto.Class_ClassMonk: 1327.328600, - proto.Class_ClassPaladin: 1384.037200, - proto.Class_ClassPriest: 1273.156700, - proto.Class_ClassRogue: 1507.454300, - proto.Class_ClassShaman: 1351.280400, - proto.Class_ClassWarlock: 1295.840200, - proto.Class_ClassWarrior: 1507.454300, + proto.Class_ClassWarrior: 1125.227400, + proto.Class_ClassPaladin: 1029.493400, + proto.Class_ClassHunter: 1125.227400, + proto.Class_ClassRogue: 1125.227400, + proto.Class_ClassPriest: 945.188840, + proto.Class_ClassDeathKnight: 1125.227400, + proto.Class_ClassShaman: 1004.487900, + proto.Class_ClassMage: 937.330080, + proto.Class_ClassWarlock: 962.335630, + proto.Class_ClassMonk: 986.626400, + proto.Class_ClassDruid: 986.626400, } func AddBaseStatsCombo(r proto.Race, c proto.Class) { diff --git a/sim/core/base_stats_auto_gen.go b/sim/core/base_stats_auto_gen.go index c1583834ff..0c5ca5f6c6 100644 --- a/sim/core/base_stats_auto_gen.go +++ b/sim/core/base_stats_auto_gen.go @@ -9,42 +9,42 @@ import ( "github.com/wowsims/mop/sim/core/stats" ) -const ExpertisePerQuarterPercentReduction = 340.000000 -const HasteRatingPerHastePercent = 425.000000 -const CritRatingPerCritPercent = 600.000000 -const PhysicalHitRatingPerHitPercent = 340.000000 -const SpellHitRatingPerHitPercent = 340.000000 -const DodgeRatingPerDodgePercent = 885.000000 -const ParryRatingPerParryPercent = 885.000000 -const MasteryRatingPerMasteryPoint = 0.000000 +const ExpertisePerQuarterPercentReduction = 102.445740 +const HasteRatingPerHastePercent = 128.057160 +const CritRatingPerCritPercent = 179.280040 +const PhysicalHitRatingPerHitPercent = 102.445740 +const SpellHitRatingPerHitPercent = 102.445740 +const DodgeRatingPerDodgePercent = 265.078340 +const ParryRatingPerParryPercent = 265.078340 +const MasteryRatingPerMasteryPoint = 179.280040 var CritPerAgiMaxLevel = map[proto.Class]float64{ proto.Class_ClassUnknown: 0.0, proto.Class_ClassWarrior: 0.00010000, proto.Class_ClassPaladin: 0.00010000, - proto.Class_ClassHunter: 0.00079395, - proto.Class_ClassRogue: 0.00079395, - proto.Class_ClassPriest: 0.00125496, + proto.Class_ClassHunter: 0.00310000, + proto.Class_ClassRogue: 0.00310000, + proto.Class_ClassPriest: 0.00490000, proto.Class_ClassDeathKnight: 0.00010000, - proto.Class_ClassShaman: 0.00079395, - proto.Class_ClassMage: 0.00128057, - proto.Class_ClassWarlock: 0.00130618, - proto.Class_ClassMonk: 0.00079395, - proto.Class_ClassDruid: 0.00079395, + proto.Class_ClassShaman: 0.00310000, + proto.Class_ClassMage: 0.00500000, + proto.Class_ClassWarlock: 0.00510000, + proto.Class_ClassMonk: 0.00310000, + proto.Class_ClassDruid: 0.00310000, } var CritPerIntMaxLevel = map[proto.Class]float64{ proto.Class_ClassUnknown: 0.0, proto.Class_ClassWarrior: 0.00010000, - proto.Class_ClassPaladin: 0.00039469, + proto.Class_ClassPaladin: 0.00154105, proto.Class_ClassHunter: 0.00010000, proto.Class_ClassRogue: 0.00010000, - proto.Class_ClassPriest: 0.00039469, + proto.Class_ClassPriest: 0.00154105, proto.Class_ClassDeathKnight: 0.00010000, - proto.Class_ClassShaman: 0.00039469, - proto.Class_ClassMage: 0.00039469, - proto.Class_ClassWarlock: 0.00039469, - proto.Class_ClassMonk: 0.00039469, - proto.Class_ClassDruid: 0.00039469, + proto.Class_ClassShaman: 0.00154105, + proto.Class_ClassMage: 0.00154105, + proto.Class_ClassWarlock: 0.00154105, + proto.Class_ClassMonk: 0.00154105, + proto.Class_ClassDruid: 0.00154105, } var ExtraClassBaseStats = map[proto.Class]stats.Stats{ proto.Class_ClassUnknown: {}, @@ -54,7 +54,7 @@ var ExtraClassBaseStats = map[proto.Class]stats.Stats{ stats.PhysicalCritPercent: 5.0000, }, proto.Class_ClassPaladin: { - stats.Mana: 60000.0000, + stats.Mana: 20000.0000, stats.SpellCritPercent: 3.3400, stats.PhysicalCritPercent: 5.0000, }, @@ -69,7 +69,7 @@ var ExtraClassBaseStats = map[proto.Class]stats.Stats{ stats.PhysicalCritPercent: -0.3000, }, proto.Class_ClassPriest: { - stats.Mana: 300000.0000, + stats.Mana: 100000.0000, stats.SpellCritPercent: 1.2400, stats.PhysicalCritPercent: 3.1800, }, @@ -79,27 +79,27 @@ var ExtraClassBaseStats = map[proto.Class]stats.Stats{ stats.PhysicalCritPercent: 5.0000, }, proto.Class_ClassShaman: { - stats.Mana: 60000.0000, + stats.Mana: 20000.0000, stats.SpellCritPercent: 2.2000, stats.PhysicalCritPercent: 2.9200, }, proto.Class_ClassMage: { - stats.Mana: 300000.0000, + stats.Mana: 100000.0000, stats.SpellCritPercent: 0.9100, stats.PhysicalCritPercent: 3.4500, }, proto.Class_ClassWarlock: { - stats.Mana: 300000.0000, + stats.Mana: 100000.0000, stats.SpellCritPercent: 1.7000, stats.PhysicalCritPercent: 2.6200, }, proto.Class_ClassMonk: { - stats.Mana: 300000.0000, + stats.Mana: 100000.0000, stats.SpellCritPercent: 1.8500, stats.PhysicalCritPercent: 7.4800, }, proto.Class_ClassDruid: { - stats.Mana: 60000.0000, + stats.Mana: 20000.0000, stats.SpellCritPercent: 1.8500, stats.PhysicalCritPercent: 7.4800, }, diff --git a/sim/core/constants.go b/sim/core/constants.go index 9157092751..990bf94d58 100644 --- a/sim/core/constants.go +++ b/sim/core/constants.go @@ -6,7 +6,7 @@ import ( "github.com/wowsims/mop/sim/core/proto" ) -const CharacterLevel = 90 +const CharacterLevel = 85 const GCDMin = time.Second * 1 const GCDDefault = time.Millisecond * 1500 diff --git a/sim/core/spell_resistances_test.go b/sim/core/spell_resistances_test.go index 8f3309b992..e6ce64b34e 100644 --- a/sim/core/spell_resistances_test.go +++ b/sim/core/spell_resistances_test.go @@ -17,7 +17,7 @@ func Test_PartialResistsVsPlayer(t *testing.T) { } defender := &Unit{ Type: PlayerUnit, - Level: 90, + Level: 85, stats: stats.Stats{}, } @@ -82,7 +82,7 @@ func Test_PartialResistsVsPlayer(t *testing.T) { func Test_PartialResistsVsBoss(t *testing.T) { attacker := &Unit{ Type: PlayerUnit, - Level: 90, + Level: 85, stats: stats.Stats{}, } defender := &Unit{ diff --git a/tools/base_stats_parser.py b/tools/base_stats_parser.py index b1e78957b4..dfaf32b5f5 100644 --- a/tools/base_stats_parser.py +++ b/tools/base_stats_parser.py @@ -17,7 +17,7 @@ COMBAT_RATINGS = "combatratings.txt" RATING_SCALAR = "octclasscombatratingscalar.txt" -BASE_LEVEL = 90 +BASE_LEVEL = 85 Offs = { "Warrior": 0, diff --git a/ui/core/components/encounter_picker.ts b/ui/core/components/encounter_picker.ts index 0fd99c056f..b6db825b98 100644 --- a/ui/core/components/encounter_picker.ts +++ b/ui/core/components/encounter_picker.ts @@ -344,11 +344,11 @@ class TargetPicker extends Input { id: 'target-picker-level', label: 'Level', values: [ + { name: '85', value: 85 }, { name: '93', value: 93 }, { name: '92', value: 92 }, { name: '91', value: 91 }, { name: '90', value: 90 }, - { name: '88', value: 88 }, ], changedEvent: () => encounter.targetsChangeEmitter, getValue: () => this.getTarget().level, diff --git a/ui/core/constants/mechanics.ts b/ui/core/constants/mechanics.ts index b2e0cf8960..4e85783245 100644 --- a/ui/core/constants/mechanics.ts +++ b/ui/core/constants/mechanics.ts @@ -1,16 +1,16 @@ import { Spec } from "../proto/common"; -export const CHARACTER_LEVEL = 90; +export const CHARACTER_LEVEL = 85; export const BOSS_LEVEL = CHARACTER_LEVEL + 3; -export const EXPERTISE_PER_QUARTER_PERCENT_REDUCTION = 340; -export const HASTE_RATING_PER_HASTE_PERCENT = 425; -export const CRIT_RATING_PER_CRIT_PERCENT = 600; -export const PHYSICAL_HIT_RATING_PER_HIT_PERCENT = 340; -export const SPELL_HIT_RATING_PER_HIT_PERCENT = 340; -export const DODGE_RATING_PER_DODGE_PERCENT = 885; -export const PARRY_RATING_PER_PARRY_PERCENT = 885; -export const MASTERY_RATING_PER_MASTERY_POINT = 0; +export const EXPERTISE_PER_QUARTER_PERCENT_REDUCTION = 102.445740; +export const HASTE_RATING_PER_HASTE_PERCENT = 128.057160; +export const CRIT_RATING_PER_CRIT_PERCENT = 179.280040; +export const PHYSICAL_HIT_RATING_PER_HIT_PERCENT = 102.445740; +export const SPELL_HIT_RATING_PER_HIT_PERCENT = 102.445740; +export const DODGE_RATING_PER_DODGE_PERCENT = 265.078340; +export const PARRY_RATING_PER_PARRY_PERCENT = 265.078340; +export const MASTERY_RATING_PER_MASTERY_POINT = 179.280040; // TODO: Adjust for MoP values // Mastery Ratings have various increments based on spec.