diff --git a/proto/druid.proto b/proto/druid.proto index a8b45ee406..1ff33ec1ca 100644 --- a/proto/druid.proto +++ b/proto/druid.proto @@ -164,7 +164,7 @@ message BalanceDruid { enum IsUsage { NoIs = 0; BeforeSolar = 1; - MaximizeIs = 2; + OptimizeIs = 2; MultidotIs = 3; } IsUsage is_usage = 3; diff --git a/sim/druid/balance/TestBalancePhase3.results b/sim/druid/balance/TestBalancePhase3.results index 38703885f8..8c281c385e 100644 --- a/sim/druid/balance/TestBalancePhase3.results +++ b/sim/druid/balance/TestBalancePhase3.results @@ -915,8 +915,8 @@ dps_results: { dps_results: { key: "TestBalancePhase3-Settings-Tauren-P3-Default-FullBuffs-LongMultiTarget" value: { - dps: 16644.11888 - tps: 19482.60859 + dps: 16601.28562 + tps: 19435.22438 } } dps_results: { @@ -936,8 +936,8 @@ dps_results: { dps_results: { key: "TestBalancePhase3-Settings-Tauren-P3-Default-NoBuffs-LongMultiTarget" value: { - dps: 7653.4313 - tps: 8600.40001 + dps: 7637.96063 + tps: 8596.52107 } } dps_results: { diff --git a/sim/druid/balance/balance.go b/sim/druid/balance/balance.go index 0997252bd9..8c2c9e2a72 100644 --- a/sim/druid/balance/balance.go +++ b/sim/druid/balance/balance.go @@ -87,7 +87,7 @@ func (moonkin *BalanceDruid) Reset(sim *core.Simulation) { if moonkin.Rotation.Type == proto.BalanceDruid_Rotation_Default { moonkin.Rotation.MfUsage = proto.BalanceDruid_Rotation_BeforeLunar - moonkin.Rotation.IsUsage = proto.BalanceDruid_Rotation_MaximizeIs + moonkin.Rotation.IsUsage = proto.BalanceDruid_Rotation_OptimizeIs moonkin.Rotation.WrathUsage = proto.BalanceDruid_Rotation_RegularWrath moonkin.Rotation.UseBattleRes = false moonkin.Rotation.UseStarfire = true diff --git a/sim/druid/balance/balance_test.go b/sim/druid/balance/balance_test.go index 3ebb7c71e9..17a8fefc86 100644 --- a/sim/druid/balance/balance_test.go +++ b/sim/druid/balance/balance_test.go @@ -114,7 +114,7 @@ var PlayerOptionsAdaptive = &proto.Player_BalanceDruid{ Options: &proto.BalanceDruid_Options{}, Rotation: &proto.BalanceDruid_Rotation{ MfUsage: proto.BalanceDruid_Rotation_BeforeLunar, - IsUsage: proto.BalanceDruid_Rotation_MaximizeIs, + IsUsage: proto.BalanceDruid_Rotation_OptimizeIs, WrathUsage: proto.BalanceDruid_Rotation_RegularWrath, UseBattleRes: false, UseStarfire: true, @@ -150,7 +150,7 @@ var PlayerOptionsMultidotMf = &proto.Player_BalanceDruid{ Options: &proto.BalanceDruid_Options{}, Rotation: &proto.BalanceDruid_Rotation{ MfUsage: proto.BalanceDruid_Rotation_MultidotMf, - IsUsage: proto.BalanceDruid_Rotation_MaximizeIs, + IsUsage: proto.BalanceDruid_Rotation_OptimizeIs, WrathUsage: proto.BalanceDruid_Rotation_RegularWrath, UseBattleRes: false, UseStarfire: true, diff --git a/sim/druid/balance/rotation.go b/sim/druid/balance/rotation.go index 4cf4991015..328fea5487 100644 --- a/sim/druid/balance/rotation.go +++ b/sim/druid/balance/rotation.go @@ -41,11 +41,10 @@ func (moonkin *BalanceDruid) rotation(sim *core.Simulation) (*core.Spell, *core. if rotation.SnapshotMf { flareProc := moonkin.GetAura("Flare of the Heavens Proc") pleaProc := moonkin.GetAura("Pandora's Plea Proc") - lightweaveProc := moonkin.GetAura("Lightweave Proc") wildMagicProc := moonkin.GetAura("Potion of Wild Magic") - shouldCheckForSnapshot := flareProc.IsActive() || lightweaveProc.IsActive() || pleaProc.IsActive() || (wildMagicProc.IsActive() && sim.CurrentTime > 60*time.Second) + shouldCheckForSnapshot := flareProc.IsActive() || pleaProc.IsActive() || (wildMagicProc.IsActive() && sim.CurrentTime > 60*time.Second) if shouldCheckForSnapshot { - if moonkin.shouldSnapshotMf(sim, flareProc) || moonkin.shouldSnapshotMf(sim, lightweaveProc) || moonkin.shouldSnapshotMf(sim, wildMagicProc) || moonkin.shouldSnapshotMf(sim, pleaProc) { + if moonkin.shouldSnapshotMf(sim, flareProc) || moonkin.shouldSnapshotMf(sim, wildMagicProc) || moonkin.shouldSnapshotMf(sim, pleaProc) { return moonkin.Moonfire, target } } @@ -81,7 +80,7 @@ func (moonkin *BalanceDruid) rotation(sim *core.Simulation) (*core.Spell, *core. shouldHoldIs := core.Ternary(moonkin.MoonkinT84PCAura == nil, lunarIsActive, lunarIsActive && moonkin.HasActiveAuraWithTag(core.BloodlustAuraTag)) // Max IS uptime - if rotation.IsUsage == proto.BalanceDruid_Rotation_MaximizeIs && !shouldHoldIs { + if rotation.IsUsage == proto.BalanceDruid_Rotation_OptimizeIs && !shouldHoldIs { if moonkin.InsectSwarm.CurDot().RemainingDuration(sim) <= 0 { return moonkin.InsectSwarm, target } @@ -110,6 +109,7 @@ func (moonkin *BalanceDruid) rotation(sim *core.Simulation) (*core.Spell, *core. playerLatency := time.Duration(core.MaxInt32(rotation.PlayerLatency, 0)) * time.Millisecond lunarICD := moonkin.LunarICD.Timer.TimeToReady(sim) solarICD := moonkin.SolarICD.Timer.TimeToReady(sim) + canExtendMf := rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendAlways || rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendOutsideSolar if moonkin.Talents.Eclipse > 0 { solarUptime := moonkin.SolarEclipseProcAura.ExpiresAt() - sim.CurrentTime @@ -136,7 +136,6 @@ func (moonkin *BalanceDruid) rotation(sim *core.Simulation) (*core.Spell, *core. // Eclipse if solarIsActive || lunarIsActive { if lunarIsActive { - canExtendMf := rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendAlways || rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendOutsideSolar || rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendDuringLunar if canExtendMf && moonkin.ExtendingMoonfireStacks == 0 { if extendTarget := moonkin.tryExtendMoonfire(sim); extendTarget != nil { return moonkin.Moonfire, extendTarget @@ -157,7 +156,6 @@ func (moonkin *BalanceDruid) rotation(sim *core.Simulation) (*core.Spell, *core. return moonkin.Starfire, target } } - canExtendMf := rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendAlways || rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendDuringSolar if canExtendMf && moonkin.ExtendingMoonfireStacks == 0 { if extendTarget := moonkin.tryExtendMoonfire(sim); extendTarget != nil { return moonkin.Moonfire, extendTarget @@ -181,20 +179,12 @@ func (moonkin *BalanceDruid) rotation(sim *core.Simulation) (*core.Spell, *core. } } - canExtendMf := rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendAlways || rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendOutsideSolar - fishingForLunar := lunarICD <= solarICD if rotation.EclipsePrio == proto.BalanceDruid_Rotation_Solar { fishingForLunar = lunarICD < solarICD } - if fishingForLunar && (canExtendMf || rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendFishingForLunar) && moonkin.ExtendingMoonfireStacks == 0 { - if extendTarget := moonkin.tryExtendMoonfire(sim); extendTarget != nil { - return moonkin.Moonfire, extendTarget - } - } - - if !fishingForLunar && (canExtendMf || rotation.MfExtension == proto.BalanceDruid_Rotation_ExtendFishingForSolar) && moonkin.ExtendingMoonfireStacks == 0 { + if canExtendMf && moonkin.ExtendingMoonfireStacks == 0 { if extendTarget := moonkin.tryExtendMoonfire(sim); extendTarget != nil { return moonkin.Moonfire, extendTarget } diff --git a/ui/balance_druid/inputs.ts b/ui/balance_druid/inputs.ts index 6c47bf9695..55e0ed96a6 100644 --- a/ui/balance_druid/inputs.ts +++ b/ui/balance_druid/inputs.ts @@ -81,10 +81,6 @@ export const BalanceDruidRotationConfig = { label: 'Moonfire Extension', labelTooltip: 'When should the rotation try to extend Moonfire on the main target.', values: [ - { name: 'Extend fishing for lunar', value: MfExtension.ExtendFishingForLunar }, - { name: 'Extend fishing for solar', value: MfExtension.ExtendFishingForSolar }, - { name: 'Extend during lunar', value: MfExtension.ExtendDuringLunar }, - { name: 'Extend during solar', value: MfExtension.ExtendDuringSolar }, { name: 'Extend always', value: MfExtension.ExtendAlways }, { name: 'Extend outside solar', value: MfExtension.ExtendOutsideSolar }, { name: 'Do not extend', value: MfExtension.DontExtend }, @@ -98,7 +94,7 @@ export const BalanceDruidRotationConfig = { values: [ { name: 'Unused', value: IsUsage.NoIs }, { name: 'Before solar', value: IsUsage.BeforeSolar }, - { name: 'Maximize', value: IsUsage.MaximizeIs }, + { name: 'Optimize', value: IsUsage.OptimizeIs }, { name: 'Multidot', value: IsUsage.MultidotIs }, ], showWhen: (player: Player) => player.getRotation().type == RotationType.Manual, diff --git a/ui/balance_druid/presets.ts b/ui/balance_druid/presets.ts index 32859a34c6..0573d4b96d 100644 --- a/ui/balance_druid/presets.ts +++ b/ui/balance_druid/presets.ts @@ -86,7 +86,7 @@ export const DefaultRotation = BalanceDruidRotation.create({ maintainFaerieFire: true, useSmartCooldowns: true, mfUsage: BalanceDruid_Rotation_MfUsage.BeforeLunar, - isUsage: BalanceDruid_Rotation_IsUsage.MaximizeIs, + isUsage: BalanceDruid_Rotation_IsUsage.OptimizeIs, wrathUsage: BalanceDruid_Rotation_WrathUsage.RegularWrath, useStarfire: true, useBattleRes: false,