Skip to content

Commit

Permalink
Merge pull request #211 from 1337LutZ/feature/remove-client-facing-arp
Browse files Browse the repository at this point in the history
Remove visual ArP, add missing visual Mastery and food buffs
  • Loading branch information
rosenrusinov authored Apr 26, 2024
2 parents 1a320d6 + 2e4e604 commit 4fcb25f
Show file tree
Hide file tree
Showing 27 changed files with 164 additions and 77 deletions.
9 changes: 6 additions & 3 deletions sim/core/consumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,9 @@ func applyConsumeEffects(agent Agent) {
})
case proto.BattleElixir_ElixirOfArmorPiercing:
character.AddStats(stats.Stats{
stats.ArmorPenetration: 45,
stats.Agility: 25,
stats.MeleeCrit: 25,
stats.SpellCrit: 25,
})
case proto.BattleElixir_ElixirOfDeadlyStrikes:
character.AddStats(stats.Stats{
Expand Down Expand Up @@ -252,8 +254,9 @@ func applyConsumeEffects(agent Agent) {
})
case proto.Food_FoodHeartyRhino:
character.AddStats(stats.Stats{
stats.ArmorPenetration: 40,
stats.Stamina: 40,
stats.MeleeCrit: 40,
stats.SpellCrit: 40,
stats.Stamina: 40,
})
case proto.Food_FoodMegaMammothMeal:
character.AddStats(stats.Stats{
Expand Down
2 changes: 0 additions & 2 deletions ui/core/components/character_stats.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -303,8 +303,6 @@ export class CharacterStats extends Component {
displayStr += ` (${(rawValue / Mechanics.HASTE_RATING_PER_HASTE_PERCENT).toFixed(2)}%)`;
} else if (stat == Stat.StatSpellHaste) {
displayStr += ` (${(rawValue / Mechanics.HASTE_RATING_PER_HASTE_PERCENT).toFixed(2)}%)`;
} else if (stat == Stat.StatArmorPenetration) {
displayStr += ` (${(rawValue / Mechanics.ARMOR_PEN_PER_PERCENT_ARMOR).toFixed(2)}%)`;
} else if (stat == Stat.StatExpertise) {
// As of 06/20, Blizzard has changed Expertise to no longer truncate at quarter percent intervals. Note that
// in-game character sheet tooltips will still display the truncated values, but it has been tested to behave
Expand Down
2 changes: 1 addition & 1 deletion ui/core/components/inputs/consumables.ts
Original file line number Diff line number Diff line change
Expand Up @@ -578,7 +578,7 @@ export const FOOD_CONFIG = [
{ config: FoodDragonfinFilet, stats: [Stat.StatStrength] },
{ config: FoodCuttlesteak, stats: [Stat.StatSpirit] },
{ config: FoodMegaMammothMeal, stats: [Stat.StatAttackPower, Stat.StatRangedAttackPower] },
{ config: FoodHeartyRhino, stats: [Stat.StatArmorPenetration] },
{ config: FoodHeartyRhino, stats: [Stat.StatMeleeCrit, Stat.StatSpellCrit] },
{ config: FoodRhinoliciousWormsteak, stats: [Stat.StatExpertise] },
{ config: FoodFirecrackerSalmon, stats: [Stat.StatSpellPower] },
{ config: FoodSnapperExtreme, stats: [Stat.StatMeleeHit, Stat.StatSpellHit] },
Expand Down
1 change: 1 addition & 0 deletions ui/death_knight/blood/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecBloodDeathKnight, {
Stat.StatNatureResistance,
Stat.StatShadowResistance,
Stat.StatFrostResistance,
Stat.StatMastery,
],
epPseudoStats: [PseudoStat.PseudoStatMainHandDps, PseudoStat.PseudoStatOffHandDps],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
Expand Down
20 changes: 5 additions & 15 deletions ui/death_knight/frost/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostDeathKnight, {
Stat.StatMastery,
Stat.StatSpellHit,
Stat.StatSpellCrit,
Stat.StatArmorPenetration,
],
epPseudoStats: [PseudoStat.PseudoStatMainHandDps, PseudoStat.PseudoStatOffHandDps],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
Expand Down Expand Up @@ -60,7 +59,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostDeathKnight, {
[Stat.StatMeleeHaste]: 1.85,
[Stat.StatMeleeHit]: 1.92,
[Stat.StatMeleeCrit]: 0.76,
[Stat.StatArmorPenetration]: 0.77,
[Stat.StatSpellHit]: 0.8,
[Stat.StatSpellCrit]: 0.34,
},
Expand Down Expand Up @@ -95,7 +93,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostDeathKnight, {
sunderArmor: true,
brittleBones: true,
ebonPlaguebringer: true,
shadowAndFlame: true
shadowAndFlame: true,
}),
},

Expand All @@ -112,14 +110,8 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostDeathKnight, {
playerIconInputs: [],
petConsumeInputs: [],
// Buff and Debuff inputs to include/exclude, overriding the EP-based defaults.
includeBuffDebuffInputs: [
BuffDebuffInputs.SpellDamageDebuff
],
excludeBuffDebuffInputs: [
BuffDebuffInputs.DamageReduction,
BuffDebuffInputs.MeleeAttackSpeedDebuff,
BuffDebuffInputs.BleedDebuff
],
includeBuffDebuffInputs: [BuffDebuffInputs.SpellDamageDebuff],
excludeBuffDebuffInputs: [BuffDebuffInputs.DamageReduction, BuffDebuffInputs.MeleeAttackSpeedDebuff, BuffDebuffInputs.BleedDebuff],
// Inputs to include in the 'Other' section on the settings tab.
otherInputs: {
inputs: [
Expand All @@ -131,7 +123,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostDeathKnight, {
// OtherInputs.TankAssignment,
// OtherInputs.InFrontOfTarget,
OtherInputs.InputDelay,
OtherInputs.DarkIntentUptime
OtherInputs.DarkIntentUptime,
],
},
itemSwapSlots: [ItemSlot.ItemSlotMainHand, ItemSlot.ItemSlotOffHand],
Expand All @@ -148,9 +140,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostDeathKnight, {
Presets.SINGLE_TARGET_ROTATION_PRESET_DEFAULT,
//Presets.AOE_ROTATION_PRESET_DEFAULT,
],
gear: [
Presets.P1_GEAR_PRESET,
],
gear: [Presets.P1_GEAR_PRESET],
},

raidSimPresets: [
Expand Down
2 changes: 0 additions & 2 deletions ui/death_knight/unholy/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecUnholyDeathKnight, {
Stat.StatMastery,
Stat.StatSpellHit,
Stat.StatSpellCrit,
Stat.StatArmorPenetration,
],
epPseudoStats: [PseudoStat.PseudoStatMainHandDps, PseudoStat.PseudoStatOffHandDps],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
Expand Down Expand Up @@ -73,7 +72,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecUnholyDeathKnight, {
[Stat.StatMeleeHaste]: 1.85,
[Stat.StatMeleeHit]: 1.92,
[Stat.StatMeleeCrit]: 0.76,
[Stat.StatArmorPenetration]: 0.77,
[Stat.StatSpellHit]: 0.8,
[Stat.StatSpellCrit]: 0.34,
},
Expand Down
12 changes: 11 additions & 1 deletion ui/druid/balance/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,16 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecBalanceDruid, {
knownIssues: [],

// All stats for which EP should be calculated.
epStats: [Stat.StatIntellect, Stat.StatSpirit, Stat.StatSpellPower, Stat.StatSpellHit, Stat.StatSpellCrit, Stat.StatSpellHaste, Stat.StatMP5],
epStats: [
Stat.StatIntellect,
Stat.StatSpirit,
Stat.StatSpellPower,
Stat.StatSpellHit,
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
epReferenceStat: Stat.StatSpellPower,
// Which stats to display in the Character Stats section, at the bottom of the left-hand sidebar.
Expand All @@ -31,6 +40,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecBalanceDruid, {
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],

defaults: {
Expand Down
3 changes: 2 additions & 1 deletion ui/druid/restoration/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRestorationDruid, {
knownIssues: [],

// All stats for which EP should be calculated.
epStats: [Stat.StatIntellect, Stat.StatSpirit, Stat.StatSpellPower, Stat.StatSpellCrit, Stat.StatSpellHaste, Stat.StatMP5],
epStats: [Stat.StatIntellect, Stat.StatSpirit, Stat.StatSpellPower, Stat.StatSpellCrit, Stat.StatSpellHaste, Stat.StatMP5, Stat.StatMastery],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
epReferenceStat: Stat.StatSpellPower,
// Which stats to display in the Character Stats section, at the bottom of the left-hand sidebar.
Expand All @@ -30,6 +30,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRestorationDruid, {
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],

defaults: {
Expand Down
5 changes: 2 additions & 3 deletions ui/hunter/beast_mastery/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecBeastMasteryHunter, {
Stat.StatMeleeHit,
Stat.StatMeleeCrit,
Stat.StatMeleeHaste,
Stat.StatArmorPenetration,
Stat.StatMP5,
Stat.StatMastery,
],
epPseudoStats: [PseudoStat.PseudoStatRangedDps],
// Reference stat against which to calculate EP.
Expand Down Expand Up @@ -57,8 +57,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecBeastMasteryHunter, {
[Stat.StatRangedAttackPower]: 1.0,
[Stat.StatMeleeHit]: 2,
[Stat.StatMeleeCrit]: 1.5,
[Stat.StatMeleeHaste]: 1.39,
[Stat.StatArmorPenetration]: 1.32,
[Stat.StatMeleeHaste]: 1.39
},
{
[PseudoStat.PseudoStatRangedDps]: 6.32,
Expand Down
3 changes: 1 addition & 2 deletions ui/hunter/marksmanship/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecMarksmanshipHunter, {
Stat.StatMeleeHit,
Stat.StatMeleeCrit,
Stat.StatMeleeHaste,
Stat.StatArmorPenetration,
Stat.StatMP5,
Stat.StatMastery,
],
epPseudoStats: [PseudoStat.PseudoStatRangedDps],
// Reference stat against which to calculate EP.
Expand Down Expand Up @@ -92,7 +92,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecMarksmanshipHunter, {
[Stat.StatMeleeHit]: 2,
[Stat.StatMeleeCrit]: 1.5,
[Stat.StatMeleeHaste]: 1.39,
[Stat.StatArmorPenetration]: 1.32,
},
{
[PseudoStat.PseudoStatRangedDps]: 6.32,
Expand Down
2 changes: 1 addition & 1 deletion ui/hunter/survival/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecSurvivalHunter, {
OtherInputs.InputDelay,
OtherInputs.TankAssignment,
OtherInputs.InFrontOfTarget,
OtherInputs.DarkIntentUptime
OtherInputs.DarkIntentUptime,
],
},
encounterPicker: {
Expand Down
12 changes: 11 additions & 1 deletion ui/mage/arcane/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,16 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecArcaneMage, {
knownIssues: [],

// All stats for which EP should be calculated.
epStats: [Stat.StatIntellect, Stat.StatSpirit, Stat.StatSpellPower, Stat.StatSpellHit, Stat.StatSpellCrit, Stat.StatSpellHaste, Stat.StatMP5],
epStats: [
Stat.StatIntellect,
Stat.StatSpirit,
Stat.StatSpellPower,
Stat.StatSpellHit,
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
epReferenceStat: Stat.StatSpellPower,
// Which stats to display in the Character Stats section, at the bottom of the left-hand sidebar.
Expand All @@ -35,6 +44,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecArcaneMage, {
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],
// modifyDisplayStats: (player: Player<Spec.SpecArcaneMage>) => {
// let stats = new Stats();
Expand Down
14 changes: 12 additions & 2 deletions ui/mage/fire/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,16 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFireMage, {
knownIssues: [],

// All stats for which EP should be calculated.
epStats: [Stat.StatIntellect, Stat.StatSpirit, Stat.StatSpellPower, Stat.StatSpellHit, Stat.StatSpellCrit, Stat.StatSpellHaste, Stat.StatMP5],
epStats: [
Stat.StatIntellect,
Stat.StatSpirit,
Stat.StatSpellPower,
Stat.StatSpellHit,
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
epReferenceStat: Stat.StatSpellPower,
// Which stats to display in the Character Stats section, at the bottom of the left-hand sidebar.
Expand All @@ -34,6 +43,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFireMage, {
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],
// modifyDisplayStats: (player: Player<Spec.SpecFireMage>) => {
// let stats = new Stats();
Expand Down Expand Up @@ -110,7 +120,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFireMage, {
excludeBuffDebuffInputs: [],
// Inputs to include in the 'Other' section on the settings tab.
otherInputs: {
inputs: [OtherInputs.InputDelay, OtherInputs.DistanceFromTarget, OtherInputs.TankAssignment, OtherInputs.DarkIntentUptime,],
inputs: [OtherInputs.InputDelay, OtherInputs.DistanceFromTarget, OtherInputs.TankAssignment, OtherInputs.DarkIntentUptime],
},
encounterPicker: {
// Whether to include 'Execute Duration (%)' in the 'Encounter' section of the settings tab.
Expand Down
12 changes: 11 additions & 1 deletion ui/mage/frost/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,16 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostMage, {
knownIssues: [],

// All stats for which EP should be calculated.
epStats: [Stat.StatIntellect, Stat.StatSpirit, Stat.StatSpellPower, Stat.StatSpellHit, Stat.StatSpellCrit, Stat.StatSpellHaste, Stat.StatMP5],
epStats: [
Stat.StatIntellect,
Stat.StatSpirit,
Stat.StatSpellPower,
Stat.StatSpellHit,
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
epReferenceStat: Stat.StatSpellPower,
// Which stats to display in the Character Stats section, at the bottom of the left-hand sidebar.
Expand All @@ -34,6 +43,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFrostMage, {
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],
// modifyDisplayStats: (player: Player<Spec.SpecFrostMage>) => {
// let stats = new Stats();
Expand Down
3 changes: 2 additions & 1 deletion ui/paladin/holy/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecHolyPaladin, {
knownIssues: [],

// All stats for which EP should be calculated.
epStats: [Stat.StatIntellect, Stat.StatSpirit, Stat.StatSpellPower, Stat.StatSpellCrit, Stat.StatSpellHaste, Stat.StatMP5],
epStats: [Stat.StatIntellect, Stat.StatSpirit, Stat.StatSpellPower, Stat.StatSpellCrit, Stat.StatSpellHaste, Stat.StatMP5, Stat.StatMastery],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
epReferenceStat: Stat.StatSpellPower,
// Which stats to display in the Character Stats section, at the bottom of the left-hand sidebar.
Expand All @@ -31,6 +31,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecHolyPaladin, {
Stat.StatSpellCrit,
Stat.StatSpellHaste,
Stat.StatMP5,
Stat.StatMastery,
],
defaults: {
// Default equipped gear.
Expand Down
5 changes: 2 additions & 3 deletions ui/paladin/protection/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecProtectionPaladin, {
Stat.StatMeleeCrit,
Stat.StatExpertise,
Stat.StatMeleeHaste,
Stat.StatArmorPenetration,
Stat.StatSpellPower,
Stat.StatArmor,
Stat.StatBonusArmor,
Expand All @@ -44,6 +43,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecProtectionPaladin, {
Stat.StatNatureResistance,
Stat.StatShadowResistance,
Stat.StatFrostResistance,
Stat.StatMastery,
],
epPseudoStats: [PseudoStat.PseudoStatMainHandDps],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
Expand All @@ -61,7 +61,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecProtectionPaladin, {
Stat.StatMeleeCrit,
Stat.StatMeleeHaste,
Stat.StatExpertise,
Stat.StatArmorPenetration,
Stat.StatSpellPower,
Stat.StatSpellHit,
Stat.StatDefense,
Expand All @@ -73,6 +72,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecProtectionPaladin, {
Stat.StatNatureResistance,
Stat.StatShadowResistance,
Stat.StatFrostResistance,
Stat.StatMastery,
],
// modifyDisplayStats: (player: Player<Spec.SpecProtectionPaladin>) => {
// let stats = new Stats();
Expand Down Expand Up @@ -106,7 +106,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecProtectionPaladin, {
[Stat.StatMeleeHit]: 0.79,
[Stat.StatMeleeCrit]: 0.3,
[Stat.StatMeleeHaste]: 0.17,
[Stat.StatArmorPenetration]: 0.04,
[Stat.StatSpellPower]: 0.13,
[Stat.StatBlock]: 0.52,
[Stat.StatBlockValue]: 0.28,
Expand Down
Loading

0 comments on commit 4fcb25f

Please sign in to comment.