Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ItemSetBanishedMartyrsFullPlate = core.NewItemSet(core.ItemSet{ Name: "Banished Martyr's Full Plate", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeHit, 1) c.AddStat(stats.SpellHit, 1) }, 3: func(agent core.Agent) { c := agent.GetCharacter() procAura := c.NewTemporaryStatsAura("Stalwart Block Proc", core.ActionID{SpellID: 449975}, stats.Stats{stats.BlockValue: 50}, time.Second*6) handler := func(sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) { procAura.Activate(sim) } core.MakeProcTriggerAura(&c.Unit, core.ProcTrigger{ ActionID: core.ActionID{SpellID: 449974}, Name: "Stalwart Block", Callback: core.CallbackOnSpellHitTaken, ProcMask: core.ProcMaskMelee, Outcome: core.OutcomeBlock, ProcChance: 1, Handler: handler, }) }, }, })
View Source
var ItemSetBlackfathomAvengerMail = core.NewItemSet(core.ItemSet{ Name: "Blackfathom Avenger's Mail", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.AttackPower, 12) }, 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeHit, 1) c.AddStat(stats.SpellHit, 1) }, }, })
View Source
var ItemSetBlackfathomElementalistHide = core.NewItemSet(core.ItemSet{ Name: "Blackfathom Elementalist's Hide", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.SpellPower, 12) }, 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeHit, 1) c.AddStat(stats.SpellHit, 1) }, }, })
View Source
var ItemSetBlackfathomInvokerVestaments = core.NewItemSet(core.ItemSet{ Name: "Twilight Invoker's Vestments", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.SpellPower, 9) }, 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeHit, 1) c.AddStat(stats.SpellHit, 1) }, }, })
View Source
var ItemSetBlackfathomSlayerLeather = core.NewItemSet(core.ItemSet{ Name: "Blackfathom Slayer's Leather", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.AttackPower, 12) }, 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeHit, 1) c.AddStat(stats.SpellHit, 1) }, }, })
View Source
var ItemSetBloodGuardsDreadweave = core.NewItemSet(core.ItemSet{ Name: "Blood Guard's Dreadweave", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 15) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.SpellPower, 18) }, }, })
View Source
var ItemSetBloodGuardsLeather = core.NewItemSet(core.ItemSet{ Name: "Blood Guard's Leather", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 15) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.AttackPower, 30) c.AddStat(stats.RangedAttackPower, 30) }, }, })
View Source
var ItemSetBloodGuardsPlate = core.NewItemSet(core.ItemSet{ Name: "Blood Guard's Plate", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 15) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.AttackPower, 30) c.AddStat(stats.RangedAttackPower, 30) }, }, })
View Source
var ItemSetBloodGuardsSatin = core.NewItemSet(core.ItemSet{ Name: "Blood Guard's Satin", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 15) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.HealingPower, 33) }, }, })
View Source
var ItemSetBloodmailRegalia = core.NewItemSet(core.ItemSet{ Name: "Bloodmail Regalia", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Defense, 3) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.AttackPower, 10) character.AddStat(stats.RangedAttackPower, 10) }, 4: func(agent core.Agent) { character := agent.GetCharacter() character.AddResistances(15) }, 5: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Parry, 1) }, }, })
View Source
var ItemSetCadaverousGarb = core.NewItemSet(core.ItemSet{ Name: "Cadaverous Garb", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Defense, 3) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.AttackPower, 10) character.AddStat(stats.RangedAttackPower, 10) }, 4: func(agent core.Agent) { character := agent.GetCharacter() character.AddResistances(15) }, 5: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeHit, 2) }, }, })
View Source
var ItemSetCoreHoundsCall = core.NewItemSet(core.ItemSet{ Name: "Core Hound's Call", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() core.MakeProcTriggerAura(&character.Unit, core.ProcTrigger{ Name: "Core Hound's Call Trigger", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskMelee, ProcChance: 1, ICD: time.Minute * 1, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { for _, petAgent := range character.PetAgents { if coreHound, ok := petAgent.(*guardians.CoreHound); ok { coreHound.EnableWithTimeout(sim, coreHound, time.Minute*1) break } } }, }) }, 3: func(agent core.Agent) { character := agent.GetCharacter() procAura := character.RegisterAura(core.Aura{ ActionID: core.ActionID{SpellID: 461270}, Label: "Magmadar's Return", Duration: time.Second * 20, OnGain: func(aura *core.Aura, sim *core.Simulation) { character.MultiplyAttackSpeed(sim, 1.1) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { character.MultiplyAttackSpeed(sim, 1/1.1) }, }) core.MakeProcTriggerAura(&character.Unit, core.ProcTrigger{ Name: "Magmadar's Return Trigger", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskMelee, ProcChance: 1, ICD: time.Minute * 1, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { procAura.Activate(sim) }, }) }, }, })
View Source
var ItemSetDalRendsArms = core.NewItemSet(core.ItemSet{ Name: "Dal'Rend's Arms", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.AttackPower, 50) character.AddStat(stats.RangedAttackPower, 50) }, }, })
View Source
var ItemSetDeathboneGuardian = core.NewItemSet(core.ItemSet{ Name: "Deathbone Guardian", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Defense, 3) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Armor, 50) }, 4: func(agent core.Agent) { character := agent.GetCharacter() character.AddResistances(15) }, 5: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Parry, 1) }, }, })
View Source
var ItemSetElectromanticDevastator = core.NewItemSet(core.ItemSet{ Name: "Electromantic Devastator's Mail", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.AttackPower, 24) c.AddStat(stats.RangedAttackPower, 24) }, 3: func(agent core.Agent) { c := agent.GetCharacter() if !c.HasManaBar() { return } metrics := c.NewManaMetrics(core.ActionID{SpellID: 435982}) proc := c.RegisterSpell(core.SpellConfig{ ActionID: core.ActionID{SpellID: 435981}, SpellSchool: core.SpellSchoolHoly, ApplyEffects: func(sim *core.Simulation, u *core.Unit, spell *core.Spell) { c.AddMana(sim, 100, metrics) }, }) procChance := 0.05 c.RegisterAura(core.Aura{ Label: "Electromantic Devastator's Mail 3pc", ActionID: core.ActionID{SpellID: 435982}, Duration: core.NeverExpires, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if spell.ProcMask == core.ProcMaskEmpty { return } if spell.ProcMask.Matches(core.ProcMaskProc|core.ProcMaskSpellDamageProc) && !spell.Flags.Matches(core.SpellFlagNotAProc) { return } if spell.ProcMask.Matches(core.ProcMaskWhiteHit | core.ProcMaskRanged) { if sim.RandomFloat("Electromantic Devastator's Mail 3pc") > procChance { return } } else { if !result.Landed() { return } if sim.RandomFloat("Electromantic Devastator's Mail 3pc") > procChance { return } } proc.Cast(sim, result.Target) }, }) }, }, })
View Source
var ItemSetEmeraldDreamPlate = core.NewItemSet(core.ItemSet{ Name: "Emerald Dream Plate", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 10) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.AttackPower, 20) c.AddStat(stats.RangedAttackPower, 20) }, }, })
View Source
var ItemSetEmeraldEnchantedVestments = core.NewItemSet(core.ItemSet{ Name: "Emerald Enchanted Vestments", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 10) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.SpellPower, 12) }, }, })
View Source
var ItemSetEmeraldLeathers = core.NewItemSet(core.ItemSet{ Name: "Emerald Leathers", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 10) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.AttackPower, 20) c.AddStat(stats.RangedAttackPower, 20) }, }, })
View Source
var ItemSetEmeraldWovenGarb = core.NewItemSet(core.ItemSet{ Name: "Emerald Woven Garb", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 10) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.HealingPower, 22) }, }, })
View Source
var ItemSetHazardSuit = core.NewItemSet(core.ItemSet{ Name: "H.A.Z.A.R.D. Suit", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Defense, 7) c.AddStat(stats.AttackPower, 16) c.AddStat(stats.RangedAttackPower, 16) }, 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeHit, 1) c.AddStat(stats.SpellHit, 1) }, }, })
View Source
var ItemSetHyperconductiveMendersMeditation = core.NewItemSet(core.ItemSet{ Name: "Hyperconductive Mender's Meditation", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Spirit, 14) }, 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MP5, 7) }, }, })
View Source
var ItemSetHyperconductiveWizardsAttire = core.NewItemSet(core.ItemSet{ Name: "Hyperconductive Wizard's Attire", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeHit, 1) c.AddStat(stats.SpellHit, 1) c.AddStat(stats.BonusArmor, 100) }, 3: func(agent core.Agent) { character := agent.GetCharacter() procAura := character.NewTemporaryStatsAura("Energized Hyperconductor Proc", core.ActionID{SpellID: 435978}, stats.Stats{stats.SpellPower: 40}, time.Second*10) handler := func(sim *core.Simulation, _ *core.Spell, _ *core.SpellResult) { procAura.Activate(sim) } core.MakeProcTriggerAura(&character.Unit, core.ProcTrigger{ ActionID: core.ActionID{ItemID: 435977}, Name: "Energized Hyperconductor", Callback: core.CallbackOnCastComplete, ProcMask: core.ProcMaskSpellDamage, ProcChance: 0.10, Handler: handler, }) }, }, })
View Source
var ItemSetInsulatedLeather = core.NewItemSet(core.ItemSet{ Name: "Insulated Leathers", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeCrit, 1) c.AddStat(stats.SpellCrit, 1) }, 3: func(agent core.Agent) { c := agent.GetCharacter() c.PseudoStats.DaggersSkill += 3 c.AddStat(stats.FeralAttackPower, 20) }, }, })
View Source
var ItemSetInsulatedSorcerorLeather = core.NewItemSet(core.ItemSet{ Name: "Insulated Sorceror's Leathers", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.SpellPower, 16) }, 3: func(agent core.Agent) {}, }, })
View Source
var ItemSetIronweaveBattlesuit = core.NewItemSet(core.ItemSet{ Name: "Ironweave Battlesuit", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { }, 4: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Armor, 200) }, 6: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.SpellPower, 23) }, }, })
View Source
var ItemSetIrradiatedGarments = core.NewItemSet(core.ItemSet{ Name: "Irradiated Garments", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeCrit, 1) c.AddStat(stats.SpellCrit, 1) c.AddStat(stats.Stamina, -5) }, 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.SpellPower, 11) }, }, })
View Source
var ItemSetKnightLieutenantsDreadweave = core.NewItemSet(core.ItemSet{ Name: "Knight-Lieutenant's Dreadweave", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 15) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.SpellPower, 18) }, }, })
View Source
var ItemSetKnightLieutenantsLeather = core.NewItemSet(core.ItemSet{ Name: "Knight-Lieutenant's Leather", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 15) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.AttackPower, 30) c.AddStat(stats.RangedAttackPower, 30) }, }, })
View Source
var ItemSetKnightLieutenantsPlate = core.NewItemSet(core.ItemSet{ Name: "Knight-Lieutenant's Plate", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 15) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.AttackPower, 30) c.AddStat(stats.RangedAttackPower, 30) }, }, })
View Source
var ItemSetKnightLieutenantsSatin = core.NewItemSet(core.ItemSet{ Name: "Knight Lieutenant's Satin", Bonuses: map[int32]core.ApplyEffect{ 3: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.Stamina, 15) }, 6: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.HealingPower, 33) }, }, })
View Source
var ItemSetMajorMojoInfusion = core.NewItemSet(core.ItemSet{ Name: "Major Mojo Infusion", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStats(stats.Stats{ stats.AttackPower: 30, stats.RangedAttackPower: 30, }) }, }, })
View Source
var ItemSetMalevolentProphetsVestments = core.NewItemSet(core.ItemSet{ Name: "Malevolent Prophet's Vestments", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeCrit, 1) c.AddStat(stats.SpellCrit, 1) }, 3: func(agent core.Agent) { c := agent.GetCharacter() procAuras := c.NewEnemyAuraArray(func(target *core.Unit) *core.Aura { return target.GetOrRegisterAura(core.Aura{ Label: "Malelovance Proc", ActionID: core.ActionID{SpellID: 449920}, Duration: time.Second * 30, MaxStacks: 1, OnGain: func(aura *core.Aura, sim *core.Simulation) { aura.SetStacks(sim, aura.MaxStacks) for si := stats.SchoolIndexArcane; si < stats.SchoolLen; si++ { aura.Unit.PseudoStats.SchoolBonusDamageTaken[si] += 50 } }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { for si := stats.SchoolIndexArcane; si < stats.SchoolLen; si++ { aura.Unit.PseudoStats.SchoolBonusDamageTaken[si] -= 50 } }, OnSpellHitTaken: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if aura.RemainingDuration(sim) == aura.Duration { return } if result.Landed() && spell.ProcMask.Matches(core.ProcMaskDirect) { aura.RemoveStack(sim) } }, }) }) handler := func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { procAuras.Get(result.Target).Activate(sim) } core.MakeProcTriggerAura(&c.Unit, core.ProcTrigger{ ActionID: core.ActionID{SpellID: 449919}, Name: "Malelovance", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskSpellDamage, ProcChance: 0.2, Handler: handler, }) }, }, })
View Source
var ItemSetNecropileRaiment = core.NewItemSet(core.ItemSet{ Name: "Necropile Raiment", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Intellect, 5) }, 4: func(agent core.Agent) { character := agent.GetCharacter() character.AddResistances(15) }, 5: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.SpellPower, 23) }, }, })
View Source
var ItemSetOverlordsResolution = core.NewItemSet(core.ItemSet{ Name: "Overlord's Resolution", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Defense, 8) }, }, })
View Source
var ItemSetPrayerOfThePrimal = core.NewItemSet(core.ItemSet{ Name: "Prayer of the Primal", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStats(stats.Stats{ stats.HealingPower: 33, stats.SpellDamage: 11, }) }, }, })
View Source
var ItemSetPrimalBlessing = core.NewItemSet(core.ItemSet{ Name: "Primal Blessing", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() aura := character.RegisterAura(core.Aura{ ActionID: core.ActionID{SpellID: 467742}, Label: "Primal Blessing", Duration: time.Second * 12, OnGain: func(aura *core.Aura, sim *core.Simulation) { character.AddStatsDynamic(sim, stats.Stats{ stats.AttackPower: 300, stats.RangedAttackPower: 300, }) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { character.AddStatsDynamic(sim, stats.Stats{ stats.AttackPower: -300, stats.RangedAttackPower: -300, }) }, }) core.MakeProcTriggerAura(&character.Unit, core.ProcTrigger{ Name: "Primal Blessing Trigger", Callback: core.CallbackOnSpellHitDealt, ProcMask: core.ProcMaskMeleeOrRanged, Outcome: core.OutcomeLanded, ProcChance: 0.05, ICD: time.Second * 72, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { aura.Activate(sim) }, }) }, }, })
View Source
var ItemSetSerpentsAscension = core.NewItemSet(core.ItemSet{ Name: "Serpent's Ascension", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() procAura := character.NewTemporaryStatsAura("Serpent's Ascension Proc", core.ActionID{SpellID: 446231}, stats.Stats{stats.AttackPower: 150}, time.Second*12) handler := func(sim *core.Simulation, _ *core.Spell, _ *core.SpellResult) { procAura.Activate(sim) } core.MakeProcTriggerAura(&character.Unit, core.ProcTrigger{ ActionID: core.ActionID{SpellID: 446233}, Name: "Serpent's Ascension", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskMeleeOrRanged, ProcChance: 0.03, ICD: time.Second * 120, Handler: handler, }) }, }, })
View Source
var ItemSetShardOfTheGods = core.NewItemSet(core.ItemSet{ Name: "Shard of the Gods", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.HealingPower, 55) character.AddStat(stats.SpellDamage, 29) }, }, })
View Source
var ItemSetShunnedDevoteesChainmail = core.NewItemSet(core.ItemSet{ Name: "Shunned Devotee's Chainmail", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeCrit, 1) c.AddStat(stats.SpellCrit, 1) }, 3: func(agent core.Agent) { c := agent.GetCharacter() c.OnSpellRegistered(func(spell *core.Spell) { if spell.SpellSchool.Matches(core.SpellSchoolHoly) { spell.BonusCritRating += 3 } }) procAura := c.NewTemporaryStatsAura("The Furious Storm Proc", core.ActionID{SpellID: 449934}, stats.Stats{stats.NaturePower: 60, stats.HealingPower: 60}, time.Second*10) handler := func(sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) { procAura.Activate(sim) } core.MakeProcTriggerAura(&c.Unit, core.ProcTrigger{ ActionID: core.ActionID{SpellID: 449935}, Name: "The Furious Storm", Callback: core.CallbackOnCastComplete, ProcMask: core.ProcMaskSpellDamage | core.ProcMaskSpellHealing, ProcChance: 0.10, Handler: handler, }) }, }, })
View Source
var ItemSetSpidersKiss = core.NewItemSet(core.ItemSet{ Name: "Spider's Kiss", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() procAura := character.NewTemporaryStatsAura("Spider's Kiss", core.ActionID{SpellID: 17333}, stats.Stats{stats.Armor: -100}, time.Second*10) core.MakeProcTriggerAura(&character.Unit, core.ProcTrigger{ ActionID: core.ActionID{SpellID: 446570}, Name: "Echoes of the Depraved", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskMelee, ProcChance: 0.05, Handler: func(sim *core.Simulation, _ *core.Spell, result *core.SpellResult) { procAura.Activate(sim) }, }) character.AddStat(stats.Defense, 7) }, }, })
View Source
var ItemSetSpiritOfEskhandar = core.NewItemSet(core.ItemSet{ Name: "Spirit of Eskhandar", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeHit, 1) character.AddStat(stats.SpellHit, 1) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeCrit, 1*core.CritRatingPerCritChance) character.AddStat(stats.SpellCrit, 1*core.SpellCritRatingPerCritChance) }, 4: func(agent core.Agent) { character := agent.GetCharacter() core.MakeProcTriggerAura(&character.Unit, core.ProcTrigger{ Name: "Call of Eskhandar Trigger", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskMelee, ProcChance: 1, ICD: time.Minute * 1, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { for _, petAgent := range character.PetAgents { if eskhandar, ok := petAgent.(*guardians.Eskhandar); ok { eskhandar.EnableWithTimeout(sim, eskhandar, time.Minute*2) break } } }, }) }, }, })
View Source
var ItemSetTheDefilersDetermination = core.NewItemSet(core.ItemSet{ Name: "The Defiler's Determination", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeCrit, 1) }, }, })
View Source
var ItemSetTheDefilersFortitude = core.NewItemSet(core.ItemSet{ Name: "The Defiler's Fortitude", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeCrit, 1) }, }, })
View Source
var ItemSetTheDefilersIntent = core.NewItemSet(core.ItemSet{ Name: "The Defiler's Intent", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.SpellCrit, 1) }, }, })
View Source
var ItemSetTheDefilersPurpose = core.NewItemSet(core.ItemSet{ Name: "The Defiler's Purpose", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeCrit, 1) }, }, })
View Source
var ItemSetTheDefilersResolution = core.NewItemSet(core.ItemSet{ Name: "The Defiler's Resolution", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeCrit, 1) }, }, })
View Source
var ItemSetTheDefilersWill = core.NewItemSet(core.ItemSet{ Name: "The Defiler's Will", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.SpellCrit, 1) }, }, })
View Source
var ItemSetTheHighlandersDetermination = core.NewItemSet(core.ItemSet{ Name: "The Highlander's Determination", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeCrit, 1) }, }, })
View Source
var ItemSetTheHighlandersFortitude = core.NewItemSet(core.ItemSet{ Name: "The Highlander's Fortitude", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.SpellCrit, 1) }, }, })
View Source
var ItemSetTheHighlandersIntent = core.NewItemSet(core.ItemSet{ Name: "The Highlander's Intent", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.SpellCrit, 1) }, }, })
View Source
var ItemSetTheHighlandersPurpose = core.NewItemSet(core.ItemSet{ Name: "The Highlander's Purpose", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeCrit, 1) }, }, })
View Source
var ItemSetTheHighlandersResolution = core.NewItemSet(core.ItemSet{ Name: "The Highlander's Resolution", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeCrit, 1) }, }, })
View Source
var ItemSetTheHighlandersResolve = core.NewItemSet(core.ItemSet{ Name: "The Highlander's Resolve", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.MeleeCrit, 1) }, }, })
View Source
var ItemSetTheHighlandersWill = core.NewItemSet(core.ItemSet{ Name: "The Highlander's Will", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Stamina, 5) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.SpellCrit, 1) }, }, })
View Source
var ItemSetThePostmaster = core.NewItemSet(core.ItemSet{ Name: "The Postmaster", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Armor, 50) }, 3: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.ArcaneResistance, 10) character.AddStat(stats.FireResistance, 10) }, 4: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.SpellPower, 12) }, 5: func(agent core.Agent) { character := agent.GetCharacter() character.AddStat(stats.Intellect, 10) }, }, })
View Source
var ItemSetTwinBladesofHakkari = core.NewItemSet(core.ItemSet{ Name: "The Twin Blades of Hakkari", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.PseudoStats.SwordsSkill += 3 if !character.AutoAttacks.AutoSwingMelee { return } core.MakeProcTriggerAura(&character.Unit, core.ProcTrigger{ Name: "Twin Blades of the Hakkari", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskMelee, SpellFlagsExclude: core.SpellFlagSuppressEquipProcs, ProcChance: 0.02, ICD: time.Millisecond * 100, Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { spell.Unit.AutoAttacks.ExtraMHAttackProc(sim, 1, core.ActionID{SpellID: 468255}, spell) }, }) }, }, })
View Source
var ItemSetWailingBerserkersPlateArmor = core.NewItemSet(core.ItemSet{ Name: "Wailing Berserker's Plate Armor", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { c := agent.GetCharacter() c.AddStat(stats.MeleeHit, 1) c.AddStat(stats.SpellHit, 1) }, 3: func(agent core.Agent) { c := agent.GetCharacter() handler := func(sim *core.Simulation, spell *core.Spell, _ *core.SpellResult) { c.AutoAttacks.ExtraMHAttackProc(sim, 1, core.ActionID{SpellID: 449970}, spell) } core.MakeProcTriggerAura(&c.Unit, core.ProcTrigger{ ActionID: core.ActionID{SpellID: 449970}, Name: "Extra Attack", Callback: core.CallbackOnSpellHitDealt, Outcome: core.OutcomeLanded, ProcMask: core.ProcMaskMelee, SpellFlagsExclude: core.SpellFlagSuppressEquipProcs, ProcChance: 0.03, ICD: 200 * time.Millisecond, Handler: handler, }) }, }, })
View Source
var ItemSetZanzilsConcentration = core.NewItemSet(core.ItemSet{ Name: "Zanzil's Concentration", Bonuses: map[int32]core.ApplyEffect{ 2: func(agent core.Agent) { character := agent.GetCharacter() character.AddStats(stats.Stats{ stats.SpellPower: 6, stats.SpellHit: 1 * core.SpellHitRatingPerHitChance, stats.MeleeHit: 1 * core.MeleeHitRatingPerHitChance, }) }, }, })
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.