@@ -5,7 +5,7 @@ import { IndividualSimUI, registerSpecConfig } from '../../core/individual_sim_u
55import { Player } from '../../core/player.js' ;
66import { PlayerClasses } from '../../core/player_classes' ;
77import { APLRotation , APLRotation_Type } from '../../core/proto/apl.js' ;
8- import { Debuffs , Faction , IndividualBuffs , ItemSlot , PartyBuffs , PseudoStat , Race , RaidBuffs , Spec , Stat } from '../../core/proto/common.js' ;
8+ import { Debuffs , Faction , IndividualBuffs , PartyBuffs , PseudoStat , Race , RaidBuffs , Spec , Stat , UnitStats } from '../../core/proto/common.js' ;
99import { Stats , UnitStat } from '../../core/proto_utils/stats.js' ;
1010import * as PaladinInputs from '../inputs.js' ;
1111import * as RetributionInputs from './inputs.js' ;
@@ -28,6 +28,31 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRetributionPaladin, {
2828 // List any known bugs / issues here and they'll be shown on the site.
2929 knownIssues : [ ] ,
3030
31+ overwriteDisplayStats : ( player : Player < Spec . SpecRetributionPaladin > ) => {
32+ const playerStats = player . getCurrentStats ( ) ;
33+
34+ const statMod = ( current : UnitStats , previous ?: UnitStats ) => {
35+ return new Stats ( ) . withStat ( Stat . StatSpellPower , Stats . fromProto ( current ) . subtract ( Stats . fromProto ( previous ) ) . getStat ( Stat . StatAttackPower ) * 0.5 ) ;
36+ } ;
37+
38+ const base = statMod ( playerStats . baseStats ! ) ;
39+ const gear = statMod ( playerStats . gearStats ! , playerStats . baseStats ) ;
40+ const talents = statMod ( playerStats . talentsStats ! , playerStats . gearStats ) ;
41+ const buffs = statMod ( playerStats . buffsStats ! , playerStats . talentsStats ) ;
42+ const consumes = statMod ( playerStats . consumesStats ! , playerStats . buffsStats ) ;
43+ const final = new Stats ( ) . withStat ( Stat . StatSpellPower , Stats . fromProto ( playerStats . finalStats ) . getStat ( Stat . StatAttackPower ) * 0.5 ) ;
44+
45+ return {
46+ base : base ,
47+ gear : gear ,
48+ talents : talents ,
49+ buffs : buffs ,
50+ consumes : consumes ,
51+ final : final ,
52+ stats : [ Stat . StatSpellPower ] ,
53+ } ;
54+ } ,
55+
3156 // All stats for which EP should be calculated.
3257 epStats : [
3358 Stat . StatStrength ,
@@ -52,6 +77,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRetributionPaladin, {
5277 Stat . StatSpellPower ,
5378 Stat . StatMana ,
5479 Stat . StatHealth ,
80+ Stat . StatStamina ,
5581 Stat . StatMasteryRating ,
5682 ] ,
5783 [
@@ -83,7 +109,9 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRetributionPaladin, {
83109 arcaneBrilliance : true ,
84110 blessingOfKings : true ,
85111 blessingOfMight : true ,
112+ bloodlust : true ,
86113 elementalOath : true ,
114+ heroism : true ,
87115 powerWordFortitude : true ,
88116 serpentsSwiftness : true ,
89117 timeWarp : true ,
@@ -109,16 +137,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRetributionPaladin, {
109137 otherInputs : {
110138 inputs : [ RetributionInputs . StartingHolyPower ( ) , OtherInputs . InputDelay , OtherInputs . TankAssignment , OtherInputs . InFrontOfTarget ] ,
111139 } ,
112- itemSwapSlots : [
113- ItemSlot . ItemSlotHead ,
114- ItemSlot . ItemSlotShoulder ,
115- ItemSlot . ItemSlotChest ,
116- ItemSlot . ItemSlotHands ,
117- ItemSlot . ItemSlotLegs ,
118- ItemSlot . ItemSlotTrinket1 ,
119- ItemSlot . ItemSlotTrinket2 ,
120- ItemSlot . ItemSlotMainHand ,
121- ] ,
122140 encounterPicker : {
123141 // Whether to include 'Execute Duration (%)' in the 'Encounter' section of the settings tab.
124142 showExecuteProportion : false ,
@@ -131,7 +149,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRetributionPaladin, {
131149 talents : [ Presets . DefaultTalents ] ,
132150 // Preset gear configurations that the user can quickly select.
133151 gear : [ Presets . P1_GEAR_PRESET ] ,
134- itemSwaps : [ ] ,
135152 builds : [ Presets . P1_BUILD_PRESET ] ,
136153 } ,
137154
0 commit comments