-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathitem_sets_pve.go
More file actions
162 lines (145 loc) · 5.25 KB
/
item_sets_pve.go
File metadata and controls
162 lines (145 loc) · 5.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
package paladin
import (
"slices"
"github.com/wowsims/classic/sim/core"
"github.com/wowsims/classic/sim/core/stats"
)
///////////////////////////////////////////////////////////////////////////
// Classic Phase 1 Item Sets - Molten Core
///////////////////////////////////////////////////////////////////////////
var ItemSetLawbringerArmor = core.NewItemSet(core.ItemSet{
Name: "Lawbringer Armor",
Bonuses: map[int32]core.ApplyEffect{
// Increases the chance of triggering a Judgement of Light heal by 10%.
3: func(agent core.Agent) {
// Nothing to do
},
// Improves your chance to get a critical strike with spells by 1%.
// Improves your chance to get a critical strike by 1%.
5: func(agent core.Agent) {
paladin := agent.(PaladinAgent).GetPaladin()
paladin.AddStat(stats.MeleeCrit, 1)
paladin.AddStat(stats.SpellCrit, 1)
},
// Gives the Paladin a chance on every melee hit to heal your party for 189 to 211.
8: func(agent core.Agent) {
// Nothing to do
},
},
})
///////////////////////////////////////////////////////////////////////////
// Classic Phase 3 Item Sets - BWL
///////////////////////////////////////////////////////////////////////////
var ItemSetJudgementArmor = core.NewItemSet(core.ItemSet{
Name: "Judgement Armor",
Bonuses: map[int32]core.ApplyEffect{
// Increases the radius of a Paladin's auras by 10.
3: func(agent core.Agent) {
// Nothing to do
},
// Increases damage and healing done by magical spells and effects by up to 47.
5: func(agent core.Agent) {
c := agent.GetCharacter()
c.AddStat(stats.SpellPower, 47)
},
// Inflicts 60 to 66 additional Holy damage on the target of a Paladin's Judgement.
8: func(agent core.Agent) {
paladin := agent.(PaladinAgent).GetPaladin()
spellCodes := []int32{SpellCode_PaladinJudgementOfCommand, SpellCode_PaladinJudgementOfRighteousness}
paladin.RegisterAura(core.Aura{
Label: "Judgement - T2 - Paladin - 8P Bonus",
OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) {
if slices.Contains(spellCodes, spell.SpellCode) && result.Landed() {
spell.CalcAndDealDamage(sim, result.Target, sim.Roll(60, 66), spell.OutcomeMagicCrit)
}
},
})
},
},
})
///////////////////////////////////////////////////////////////////////////
// Classic Phase 4 Item Sets - ZG and AB
///////////////////////////////////////////////////////////////////////////
var ItemSetFreethinkersArmor = core.NewItemSet(core.ItemSet{
Name: "Freethinker's Armor",
Bonuses: map[int32]core.ApplyEffect{
// Restores 4 mana per 5 sec.
2: func(agent core.Agent) {
c := agent.GetCharacter()
c.AddStat(stats.MP5, 4)
},
// Reduces the casting time of your Holy Light spell by 0.1 sec.
3: func(agent core.Agent) {
// Nothing to do
},
// Increases the duration of all Blessings by 10%.
5: func(agent core.Agent) {
// Nothing to do
},
},
})
///////////////////////////////////////////////////////////////////////////
// Classic Phase 5 Item Sets - AQ
///////////////////////////////////////////////////////////////////////////
var ItemSetAvengersBattlegear = core.NewItemSet(core.ItemSet{
Name: "Avenger's Battlegear",
Bonuses: map[int32]core.ApplyEffect{
// Increases the duration of your Judgements by 20%.
3: func(agent core.Agent) {
// Nothing to do
},
// Increases damage and healing done by magical spells and effects by up to 71.
5: func(agent core.Agent) {
c := agent.GetCharacter()
c.AddStat(stats.SpellPower, 71)
},
},
})
var ItemSetBattlegearOfEternalJustice = core.NewItemSet(core.ItemSet{
Name: "Battlegear of Eternal Justice",
Bonuses: map[int32]core.ApplyEffect{
// 20% chance to regain 100 mana when you cast a Judgement.
3: func(agent core.Agent) {
paladin := agent.(PaladinAgent).GetPaladin()
manaMetrics := paladin.NewManaMetrics(core.ActionID{SpellID: 0})
spellCodes := []int32{
SpellCode_PaladinJudgementOfCommand,
SpellCode_PaladinJudgementOfRighteousness,
}
paladin.RegisterAura(core.Aura{
Label: "Battlegear of Eternal Justice 3 pc",
OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) {
if slices.Contains(spellCodes, spell.SpellCode) {
if sim.Proc(0.20, "Battlegear of Eternal Justice 3 pc") {
paladin.AddMana(sim, 100, manaMetrics)
}
}
},
})
},
},
})
///////////////////////////////////////////////////////////////////////////
// Classic Phase 6 Item Sets - Naxx
///////////////////////////////////////////////////////////////////////////
var ItemSetRedemptionArmor = core.NewItemSet(core.ItemSet{
Name: "Redemption Armor",
Bonuses: map[int32]core.ApplyEffect{
// Increases the amount healed by your Judgement of Light by 20.
2: func(agent core.Agent) {
// Nothing to do
},
// Reduces cooldown on your Lay on Hands by 12 min.
4: func(agent core.Agent) {
// Nothing to do
},
// Your Flash of Light and Holy Light spells have a chance to imbue your target with Holy Power.
6: func(agent core.Agent) {
// Nothing to do
},
// Your Cleanse spell also heals the target for 200.
8: func(agent core.Agent) {
// Nothing to do
},
},
})