@@ -7,12 +7,10 @@ import { Player } from '../../core/player.js';
77import { PlayerClasses } from '../../core/player_classes' ;
88import { APLRotation , APLRotation_Type } from '../../core/proto/apl.js' ;
99import { Debuffs , Faction , IndividualBuffs , PartyBuffs , PseudoStat , Race , RaidBuffs , Spec , Stat , UnitStats } from '../../core/proto/common.js' ;
10- import { PaladinSeal } from '../../core/proto/paladin' ;
1110import { StatCapType } from '../../core/proto/ui.js' ;
1211import { StatCap , Stats , UnitStat } from '../../core/proto_utils/stats.js' ;
1312import { defaultRaidBuffMajorDamageCooldowns } from '../../core/proto_utils/utils' ;
1413import * as PaladinInputs from '../inputs.js' ;
15- import { getGCDCapBreakpoint } from '../shared' ;
1614import * as Presets from './presets.js' ;
1715
1816const P2ExpertisePostCapEPs = [ 0.6 , 0 ] ;
@@ -239,7 +237,21 @@ export class ProtectionPaladinSimUI extends IndividualSimUI<Spec.SpecProtectionP
239237 }
240238 }
241239 if ( softCap . unitStat . equalsPseudoStat ( PseudoStat . PseudoStatMeleeHastePercent ) && softCapToModify ) {
242- softCapToModify . breakpoints = [ getGCDCapBreakpoint ( player ) ] ;
240+ const raidBuffs = player . getRaid ( ) ?. getBuffs ( ) ! ;
241+ const hasMeleeHaste = [
242+ raidBuffs . unholyAura ,
243+ raidBuffs . cacklingHowl ,
244+ raidBuffs . serpentsSwiftness ,
245+ raidBuffs . swiftbladesCunning ,
246+ raidBuffs . unleashedRage ,
247+ ] . some ( Boolean ) ;
248+
249+ let targetPercent = 50 ;
250+ if ( hasMeleeHaste ) {
251+ targetPercent += 15 ;
252+ }
253+
254+ softCapToModify . breakpoints = [ targetPercent ] ;
243255 softCapToModify . postCapEPs = [
244256 ( ( epWeights . getStat ( Stat . StatCritRating ) - 0.02 ) / player . getTotalAmplificationTrinketStatModifier ( ) ) *
245257 Mechanics . HASTE_RATING_PER_HASTE_PERCENT ,
0 commit comments