Skip to content

Commit

Permalink
Merge pull request #959 from wowsims/guardian
Browse files Browse the repository at this point in the history
Tank Fixes
  • Loading branch information
NerdEgghead authored Aug 22, 2024
2 parents b6cbbfd + 70b6f43 commit 2d0f745
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 19 deletions.
15 changes: 8 additions & 7 deletions sim/core/consumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ func applyConsumeEffects(agent Agent) {
return
}
alchemyFlaskBonus := TernaryFloat64(character.HasProfession(proto.Profession_Alchemy), 80, 0)
alchemyBattleElixirBonus := TernaryFloat64(character.HasProfession(proto.Profession_Alchemy), 40, 0)
if consumes.Flask != proto.Flask_FlaskUnknown {
switch consumes.Flask {
case proto.Flask_FlaskOfTitanicStrength:
Expand All @@ -27,7 +28,7 @@ func applyConsumeEffects(agent Agent) {
})
case proto.Flask_FlaskOfSteelskin:
character.AddStats(stats.Stats{
stats.Stamina: 450,
stats.Stamina: 450 + alchemyFlaskBonus * 1.5,
})
case proto.Flask_FlaskOfFlowingWater:
character.AddStats(stats.Stats{
Expand Down Expand Up @@ -106,27 +107,27 @@ func applyConsumeEffects(agent Agent) {
switch consumes.BattleElixir {
case proto.BattleElixir_ElixirOfTheMaster:
character.AddStats(stats.Stats{
stats.MasteryRating: 225,
stats.MasteryRating: 225 + alchemyBattleElixirBonus,
})
case proto.BattleElixir_ElixirOfMightySpeed:
character.AddStats(stats.Stats{
stats.HasteRating: 225,
stats.HasteRating: 225 + alchemyBattleElixirBonus,
})
case proto.BattleElixir_ElixirOfImpossibleAccuracy:
character.AddStats(stats.Stats{
stats.HitRating: 225,
stats.HitRating: 225 + alchemyBattleElixirBonus,
})
case proto.BattleElixir_ElixirOfTheCobra:
character.AddStats(stats.Stats{
stats.CritRating: 225,
stats.CritRating: 225 + alchemyBattleElixirBonus,
})
case proto.BattleElixir_ElixirOfTheNaga:
character.AddStats(stats.Stats{
stats.ExpertiseRating: 225,
stats.ExpertiseRating: 225 + alchemyBattleElixirBonus,
})
case proto.BattleElixir_GhostElixir:
character.AddStats(stats.Stats{
stats.Spirit: 225,
stats.Spirit: 225 + alchemyBattleElixirBonus,
})
case proto.BattleElixir_ElixirOfAccuracy:
character.AddStats(stats.Stats{
Expand Down
27 changes: 15 additions & 12 deletions sim/encounters/bwd/magmaw_ai.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ func (ai *MagmawAI) ExecuteCustomRotation(sim *core.Simulation) {
if target == nil {
// For individual non tank sims we still want abilities to work
target = &ai.Target.Env.Raid.Parties[0].Players[0].GetCharacter().Unit
ai.individualTankSwap = true
}

// Mangle
Expand Down Expand Up @@ -286,26 +287,28 @@ func (ai *MagmawAI) registerSpells() {
} else if isIndividualSim {
// Individual sim fake tank swaps
if tankUnit.Metrics.IsTanking() {
if ai.Target.Env.GetNumTargets() > 1 {
if !ai.individualTankSwap {
// Remove boss target
ai.individualTankSwap = true
ai.Target.CurrentTarget = nil
if !ai.individualTankSwap {
// Remove boss target
ai.individualTankSwap = true
ai.Target.CurrentTarget = nil

// Set add target
// Set add target
if ai.Target.Env.GetNumTargets() > 1 {
addTarget := ai.Target.Env.NextTargetUnit(&ai.Target.Unit)
tankUnit.CurrentTarget = addTarget

addTarget.CurrentTarget = tankUnit
addTarget.AutoAttacks.EnableAutoSwing(sim)
} else {
ai.individualTankSwap = false
}
} else {
ai.individualTankSwap = false

// Set boss target
ai.Target.CurrentTarget = tankUnit
tankUnit.CurrentTarget = &ai.Target.Unit
// Set boss target
ai.Target.CurrentTarget = tankUnit
tankUnit.CurrentTarget = &ai.Target.Unit

// Remove add target
// Remove add target
if ai.Target.Env.GetNumTargets() > 1 {
addTarget := ai.Target.Env.NextTargetUnit(&ai.Target.Unit)
addTarget.AutoAttacks.CancelAutoSwing(sim)
addTarget.CurrentTarget = nil
Expand Down

0 comments on commit 2d0f745

Please sign in to comment.