Skip to content

Commit

Permalink
Merge branch 'master' into add-shred-idol
Browse files Browse the repository at this point in the history
  • Loading branch information
vigo2 authored Apr 17, 2024
2 parents ae94b0f + 64ed173 commit dd1ab9c
Show file tree
Hide file tree
Showing 15 changed files with 977 additions and 875 deletions.
Binary file modified assets/database/db.bin
Binary file not shown.
436 changes: 225 additions & 211 deletions assets/database/db.json

Large diffs are not rendered by default.

Binary file modified assets/database/leftover_db.bin
Binary file not shown.
4 changes: 2 additions & 2 deletions assets/database/leftover_db.json
Original file line number Diff line number Diff line change
Expand Up @@ -1461,7 +1461,7 @@
{"id":223181,"name":"Geomancer's Spaulders","icon":"inv_shoulder_02","type":3,"armorType":1,"requiresLevel":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[177,178,187,188,517,518,519,772,773,774,857,858,859,1027,1028,1029,1809,1810,1847,1848,1961,1962],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":1,"phase":3,"quality":2},
{"id":223182,"name":"Geomancer's Trousers","icon":"inv_pants_09","type":9,"armorType":1,"requiresLevel":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[409,410,441,442,443,609,610,611,779,780,781,864,865,866,1034,1035,1036,1889,1890,2041,2042],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":1,"phase":3,"quality":2},
{"id":223183,"name":"Geomancer's Wraps","icon":"inv_chest_cloth_40","type":5,"armorType":1,"requiresLevel":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"randomSuffixOptions":[333,334,384,385,410,411,782,783,784,867,868,869,1037,1038,1039,1814,1815,1852,1853,1966,1967],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":1,"phase":3,"quality":2},
{"id":223186,"name":"Supply Expediter","icon":"ability_hunter_pathfinding","type":12,"requiresLevel":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":1,"phase":3,"quality":3,"sources":[{"rep":{"repFactionId":2586,"repLevel":8}},{"rep":{"repFactionId":2587,"repLevel":8}}]}
{"id":223186,"name":"Supply Expediter","icon":"ability_hunter_pathfinding","type":12,"requiresLevel":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":1,"phase":3,"quality":3,"sources":[{"soldBy":{"npcId":214070,"npcName":"Jornah","zoneId":1637}},{"rep":{"repFactionId":2586,"repLevel":8}},{"rep":{"repFactionId":2587,"repLevel":8}}]}
],
"randomSuffixes":[
],
Expand All @@ -1483,8 +1483,8 @@
{"effectId":63,"spellId":13538,"name":"Enchant Chest - Lesser Absorption","type":5,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":66,"spellId":7457,"name":"Enchant Bracer - Minor Stamina","type":6,"stats":[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":66,"spellId":7863,"name":"Enchant Boots - Minor Stamina","type":10,"stats":[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":241,"spellId":7745,"name":"Enchant 2H Weapon - Minor Impact","type":13,"enchantType":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":241,"spellId":13503,"name":"Enchant Weapon - Lesser Striking","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":241,"spellId":7745,"name":"Enchant 2H Weapon - Minor Impact","type":13,"enchantType":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":242,"spellId":7748,"name":"Enchant Chest - Lesser Health","type":5,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":243,"spellId":7766,"name":"Enchant Bracer - Minor Spirit","type":6,"stats":[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":246,"spellId":7776,"name":"Enchant Chest - Lesser Mana","type":5,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
Expand Down
293 changes: 147 additions & 146 deletions assets/db_inputs/atlasloot_db.json

Large diffs are not rendered by default.

999 changes: 500 additions & 499 deletions assets/db_inputs/wowhead_gearplannerdb.txt

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions assets/db_inputs/wowhead_item_tooltips.csv
Original file line number Diff line number Diff line change
Expand Up @@ -7063,6 +7063,7 @@
9229,{"name":"Grimoire of Life Drain IV","quality":1,"icon":"inv_misc_book_06","tooltip":"<table><tr><td><!--nstart--><b class=\"q1\">Grimoire of Life Drain IV</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q whtt-extra whtt-ilvl\"><br>Item Level <!--ilvl-->36</span><!--bo--><!--ue--><!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--><div class=\"wowhead-tooltip-item-classes\">Classes: <a href=\"/classic/class=9/warlock\" class=\"c9\">Warlock</a></div></td></tr></table><table><tr><td>Requires Level <!--rlvl-->36<br><span class=\"q2\">Use: <a href=\"/classic/spell=862/drain-mana\" class=\"q2\">Teaches Drain Mana (Rank 2).</a></span><div class=\"whtt-sellprice\">Sell Price: <span class=\"moneysilver\">45</span></div></td></tr></table>","spells":[],"completion_category":"9"}
9230,{"name":"Grimoire of Curse of Recklessness III","quality":1,"icon":"inv_misc_book_06","tooltip":"<table><tr><td><!--nstart--><b class=\"q1\">Grimoire of Curse of Recklessness III</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q whtt-extra whtt-ilvl\"><br>Item Level <!--ilvl-->40</span><!--bo--><!--ue--><!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--><div class=\"wowhead-tooltip-item-classes\">Classes: <a href=\"/classic/class=9/warlock\" class=\"c9\">Warlock</a></div></td></tr></table><table><tr><td>Requires Level <!--rlvl-->40<br><span class=\"q2\">Use: <a href=\"/classic/spell=3692/detect-invisibility\" class=\"q2\">Teaches Detect Invisibility.</a></span><div class=\"whtt-sellprice\">Sell Price: <span class=\"moneysilver\">50</span></div></td></tr></table>","spells":[],"completion_category":"9"}
9231,{"name":"Grimoire of Corruption IV","quality":1,"icon":"inv_misc_book_06","tooltip":"<table><tr><td><!--nstart--><b class=\"q1\">Grimoire of Corruption IV</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q whtt-extra whtt-ilvl\"><br>Item Level <!--ilvl-->40</span><!--bo--><!--ue--><!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--><div class=\"wowhead-tooltip-item-classes\">Classes: <a href=\"/classic/class=9/warlock\" class=\"c9\">Warlock</a></div></td></tr></table><table><tr><td>Requires Level <!--rlvl-->40<br><span class=\"q2\">Use: <a href=\"/classic/spell=3751/rain-of-fire\" class=\"q2\">Teaches Rain of Fire (Rank 2).</a></span><div class=\"whtt-sellprice\">Sell Price: <span class=\"moneysilver\">50</span></div></td></tr></table>","spells":[],"completion_category":"9"}
9232,{"name":"Elixir of Demonslaying","quality":1,"icon":"inv_potion_61","tooltip":"<table><tr><td><!--nstart--><b class=\"q1\">Elixir of Demonslaying</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q whtt-extra whtt-ilvl\"><br>Item Level <!--ilvl-->50</span><!--bo--><!--ue--><!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--></td></tr></table><table><tr><td>Requires Level <!--rlvl-->40<br><span class=\"q2\">Use: <a href=\"/classic/spell=11405/elixir-of-the-giants\" class=\"q2\">Increases your Strength by 25 for 1 hour.</a> (3 Sec Cooldown)</span><div class=\"whtt-extra whtt-maxstack\">Max Stack: 5</div><div class=\"whtt-sellprice\">Sell Price: <span class=\"moneysilver\">7</span></div></td></tr></table>","spells":[]}
9233,{"name":"Elixir of Detect Demon","quality":1,"icon":"inv_potion_53","tooltip":"<table><tr><td><!--nstart--><b class=\"q1\">Elixir of Detect Demon</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q whtt-extra whtt-ilvl\"><br>Item Level <!--ilvl-->50</span><!--bo--><!--ue--><!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--></td></tr></table><table><tr><td>Requires Level <!--rlvl-->40<br><span class=\"q2\">Use: <a href=\"/classic/spell=11407/detect-demon\" class=\"q2\">Shows the location of all nearby demons on the minimap for 1 hour.</a> (3 Sec Cooldown)</span><div class=\"whtt-extra whtt-maxstack\">Max Stack: 5</div><div class=\"whtt-sellprice\">Sell Price: <span class=\"moneysilver\">5</span></div></td></tr></table>","spells":[]}
9234,{"name":"Tiara of the Deep","quality":1,"icon":"inv_jewelry_amulet_05","tooltip":"<table><tr><td><!--nstart--><b class=\"q1\">Tiara of the Deep</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q whtt-extra whtt-ilvl\"><br>Item Level <!--ilvl-->1</span><!--bo--><br>Quest Item<br>Unique<!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--></td></tr></table><table><tr><td><div class=\"whtt-extra whtt-droppedby\">Dropped by: Hydromancer Velratha</div><div class=\"whtt-extra whtt-dropchance\">Drop Chance: 61.25%</div></td></tr></table>","spells":[]}
9235,{"name":"Pratt's Letter","quality":1,"icon":"inv_letter_05","tooltip":"<table><tr><td><!--nstart--><b class=\"q1\">Pratt's Letter</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q whtt-extra whtt-ilvl\"><br>Item Level <!--ilvl-->1</span><!--bo--><br>Quest Item<br>Unique<!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--></td></tr></table>","spells":[]}
Expand Down Expand Up @@ -19770,3 +19771,4 @@
224004,{"name":"Emerald Ring","quality":2,"icon":"inv_jewelry_ring_37","tooltip":"<table><tr><td><!--nstart--><b class=\"q2\">Emerald Ring</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q\"><br>Item Level <!--ilvl-->25</span><!--bo--><br>Binds when picked up<br>Unique<table width=\"100%\"><tr><td>Finger</td><th><!--scstart4:-2--><span class=\"q1\"></span><!--scend--></th></tr></table><span><!--stat7-->+4 Stamina</span><!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--><!--e--><!--ps--></td></tr></table><table><tr><td>Requires Level <!--rlvl-->20<br>Requires <a href=\"/classic/faction=2641/emerald-wardens\" class=\"q1\">Emerald Wardens</a> - Friendly<br><span class=\"q2\">Equip: <a href=\"/classic/spell=9138/attack-power-06\" class=\"q2\">+6 Attack Power.</a></span><br><span class=\"q2\">Use: <a href=\"/classic/spell=446665/share-dream\" class=\"q2\">Enter the dream of a targeted friend.</a> (1 Hour Cooldown)</span><!--itemEffects:1--><br><span class=\"q\">&quot;A light shifts inside the striking emerald&quot;</span><div class=\"whtt-sellprice\">Sell Price: <span class=\"moneysilver\">8</span> <span class=\"moneycopper\">46</span></div></td></tr></table>","spells":[]}
224005,{"name":"Emerald Ring","quality":2,"icon":"inv_jewelry_ring_37","tooltip":"<table><tr><td><!--nstart--><b class=\"q2\">Emerald Ring</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q\"><br>Item Level <!--ilvl-->25</span><!--bo--><br>Binds when picked up<br>Unique<table width=\"100%\"><tr><td>Finger</td><th><!--scstart4:-2--><span class=\"q1\"></span><!--scend--></th></tr></table><span><!--stat7-->+4 Stamina</span><!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--><!--e--><!--ps--></td></tr></table><table><tr><td>Requires Level <!--rlvl-->20<br>Requires <a href=\"/classic/faction=2641/emerald-wardens\" class=\"q1\">Emerald Wardens</a> - Friendly<br><span class=\"q2\">Equip: <a href=\"/classic/spell=9394/increase-spell-dam-4\" class=\"q2\">Increases damage and healing done by magical spells and effects by up to 4.</a></span><br><span class=\"q2\">Use: <a href=\"/classic/spell=446665/share-dream\" class=\"q2\">Enter the dream of a targeted friend.</a> (1 Hour Cooldown)</span><!--itemEffects:1--><br><span class=\"q\">&quot;A light shifts inside the striking emerald&quot;</span><div class=\"whtt-sellprice\">Sell Price: <span class=\"moneysilver\">8</span> <span class=\"moneycopper\">46</span></div></td></tr></table>","spells":[]}
224006,{"name":"Emerald Ring","quality":3,"icon":"inv_jewelry_ring_37","tooltip":"<table><tr><td><!--nstart--><b class=\"q3\">Emerald Ring</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q\"><br>Item Level <!--ilvl-->50</span><!--bo--><br>Binds when picked up<br>Unique<table width=\"100%\"><tr><td>Finger</td><th><!--scstart4:-2--><span class=\"q1\"></span><!--scend--></th></tr></table><span><!--stat7-->+12 Stamina</span><!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--><br>+5 Arcane Resistance<!--e--><!--ps--></td></tr></table><table><tr><td>Requires Level <!--rlvl-->45<br>Requires <a href=\"/classic/faction=2641/emerald-wardens\" class=\"q1\">Emerald Wardens</a> - Honored<br><span class=\"q2\">Equip: <a href=\"/classic/spell=9398/increase-spell-dam-8\" class=\"q2\">Increases damage and healing done by magical spells and effects by up to 8.</a></span><br><span class=\"q2\">Use: <a href=\"/classic/spell=446665/share-dream\" class=\"q2\">Enter the dream of a targeted friend.</a> (1 Hour Cooldown)</span><!--itemEffects:1--><br><span class=\"q\">&quot;A light shifts inside the striking emerald&quot;</span><div class=\"whtt-sellprice\">Sell Price: <span class=\"moneygold\">1</span> <span class=\"moneysilver\">12</span> <span class=\"moneycopper\">91</span></div></td></tr></table>","spells":[]}
224409,{"name":"Serpent's Striker","quality":4,"icon":"inv_weapon_hand_01","tooltip":"<table><tr><td><!--nstart--><b class=\"q4\">Serpent's Striker</b><!--nend--><!--ndstart--><!--ndend--><span class=\"q\"><br>Item Level <!--ilvl-->55</span><!--bo--><br>Binds when picked up<!--ue--><table width=\"100%\"><tr><td>Off Hand</td><th><!--scstart2:13--><span class=\"q1\">Fist Weapon</span><!--scend--></th></tr></table><table width=\"100%\"><tr>\n <td><span><!--dmg-->73 - 136 Damage</span></td>\n <th>Speed <!--spd-->2.60</th>\n</tr></table><!--dps-->(40.19 damage per second)<br><span><!--stat3-->+9 Agility</span><br><span><!--stat7-->+7 Stamina</span><!--ebstats--><!--egstats--><!--eistats--><!--nameDescStats--><!--e--><!--ps--><br>Durability 75 / 75</td></tr></table><table><tr><td>Requires Level <!--rlvl-->50<br><span class=\"q2\">Chance on hit: <a href=\"/classic/spell=447894/sting-of-the-serpent\" class=\"q2\">Poison the enemy dealing 50 Nature damage, reducing Nature resistance by 60 and increasing Holy and Nature damage taken by 8% for 20 sec. Only affects enemies level 55 and below.</a></span><!--itemEffects:1--><br /><br /><span class=\"q\"><a href=\"/classic/item-set=1651/serpents-ascension\" class=\"q\">Serpent's Ascension</a> (0/2)</span><div class=\"q0 indent\"><span><!--si220588--><a href=\"/classic/item=220588/cobra-fang-claw\">Cobra Fang Claw</a></span><br /><span><!--si220589--><a href=\"/classic/item=220589/serpents-striker\">Serpent's Striker</a></span></div><br /><span class=\"q0\"><span>(2) Set : <a href=\"/classic/spell=446233/serpents-ascension-trigger\">Grants a small chance when ranged or melee damage is dealt to infuse the wielder with a blessing of the Serpent. Ranged and melee attack power increased by 150 for 12 sec. (Proc chance: 3%, 2m cooldown)</a></span></span></td></tr></table>","spells":[]}
5 changes: 4 additions & 1 deletion proto/apl.proto
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ message APLAction {
}
}

// NextIndex: 70
// NextIndex: 71
message APLValue {
oneof value {
// Operators
Expand Down Expand Up @@ -165,6 +165,7 @@ message APLValue {
APLValueCatNewSavageRoarDuration cat_new_savage_roar_duration = 61;
APLValueWarlockShouldRecastDrainSoul warlock_should_recast_drain_soul = 59;
APLValueWarlockShouldRefreshCorruption warlock_should_refresh_corruption = 60;
APLValueWarlockCurrentPetMana warlock_current_pet_mana = 70;
APLValueCurrentSealRemainingTime current_seal_remaining_time = 65;
}
}
Expand Down Expand Up @@ -509,5 +510,7 @@ message APLValueWarlockShouldRecastDrainSoul {
message APLValueWarlockShouldRefreshCorruption {
UnitReference target_unit = 1;
}
message APLValueWarlockCurrentPetMana {
}
message APLValueCurrentSealRemainingTime {
}
3 changes: 1 addition & 2 deletions sim/common/sod/item_effects/phase_2.go
Original file line number Diff line number Diff line change
Expand Up @@ -372,9 +372,8 @@ func init() {
BonusCoefficient: 0.05,

ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
spell.CalcAndDealDamage(sim, target, 30, spell.OutcomeMagicHitAndCrit)

if target.Level <= 45 {
spell.CalcAndDealDamage(sim, target, 30, spell.OutcomeMagicHitAndCrit)
procAuras.Get(target).Activate(sim)
}
},
Expand Down
7 changes: 5 additions & 2 deletions sim/common/sod/item_effects/phase_3.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ const (
BloodthirstCrossbow = 221451
FistOfStone = 223524
BladeOfEternalDarkness = 223964
SerpentsStrikerSlow = 224409
)

func init() {
Expand Down Expand Up @@ -430,7 +431,7 @@ func init() {
})
})

itemhelpers.CreateWeaponProcSpell(SerpentsStriker, "Serpent's Striker", 5.0, func(character *core.Character) *core.Spell {
serpentsStrikerEffect := func(character *core.Character) *core.Spell {
procAuras := character.NewEnemyAuraArray(core.SerpentsStrikerFistDebuffAura)

return character.RegisterSpell(core.SpellConfig{
Expand All @@ -450,7 +451,9 @@ func init() {
procAuras.Get(target).Activate(sim)
},
})
})
}
itemhelpers.CreateWeaponProcSpell(SerpentsStriker, "Serpent's Striker", 5.0, serpentsStrikerEffect)
itemhelpers.CreateWeaponProcSpell(SerpentsStrikerSlow, "Serpent's Striker", 5.0, serpentsStrikerEffect)

core.NewItemEffect(BloodthirstCrossbow, func(agent core.Agent) {
character := agent.GetCharacter()
Expand Down
15 changes: 7 additions & 8 deletions sim/hunter/pet.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,15 +96,14 @@ func (hunter *Hunter) NewHunterPet() *HunterPet {
stats.MeleeCrit: (3.2 + 1.8) * core.CritRatingPerCritChance,
}
case 50:
// TODO:
baseMinDamage = 9.5 * attackSpeed
baseMaxDamage = 15.5 * attackSpeed
baseMinDamage = 23.5 * attackSpeed
baseMaxDamage = 27.5 * attackSpeed
hunterPetBaseStats = stats.Stats{
stats.Strength: 78,
stats.Agility: 66,
stats.Stamina: 160,
stats.Intellect: 37,
stats.Spirit: 55,
stats.Strength: 113,
stats.Agility: 82,
stats.Stamina: 257,
stats.Intellect: 43,
stats.Spirit: 67,

stats.AttackPower: -20,

Expand Down
42 changes: 42 additions & 0 deletions sim/shaman/item_sets.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,20 @@ var OstracizedBerserksBattlemail = core.NewItemSet(core.ItemSet{
},
})

var ItemSetBloodGuardsMail = core.NewItemSet(core.ItemSet{
Name: "Blood Guard's Mail",
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)
},
},
})

var ItemSetBloodGuardsInscribedMail = core.NewItemSet(core.ItemSet{
Name: "Blood Guard's Inscribed Mail",
Bonuses: map[int32]core.ApplyEffect{
Expand Down Expand Up @@ -93,3 +107,31 @@ var ItemSetEmeraldChainmail = core.NewItemSet(core.ItemSet{
},
},
})

var ItemSetEmeraldScalemail = core.NewItemSet(core.ItemSet{
Name: "Emerald Scalemail",
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)
},
},
})

var ItemSetEmeraldLadenChain = core.NewItemSet(core.ItemSet{
Name: "Emerald Laden Chain",
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)
},
},
})
30 changes: 30 additions & 0 deletions sim/warlock/apl_values.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ func (warlock *Warlock) NewAPLValue(rot *core.APLRotation, config *proto.APLValu
return warlock.newValueWarlockShouldRecastDrainSoul(rot, config.GetWarlockShouldRecastDrainSoul())
case *proto.APLValue_WarlockShouldRefreshCorruption:
return warlock.newValueWarlockShouldRefreshCorruption(rot, config.GetWarlockShouldRefreshCorruption())
case *proto.APLValue_WarlockCurrentPetMana:
return warlock.newValueWarlockCurrentPetMana(rot, config.GetWarlockCurrentPetMana())
default:
return nil
}
Expand Down Expand Up @@ -139,3 +141,31 @@ func (value *APLValueWarlockShouldRefreshCorruption) GetBool(sim *core.Simulatio
func (value *APLValueWarlockShouldRefreshCorruption) String() string {
return "Warlock Should Refresh Corruption()"
}

type APLValueWarlockCurrentPetMana struct {
core.DefaultAPLValueImpl
pet *WarlockPet
}

func (warlock *Warlock) newValueWarlockCurrentPetMana(rot *core.APLRotation, config *proto.APLValueWarlockCurrentPetMana) core.APLValue {
pet := warlock.Pet
if pet.GetPet() == nil {
return nil
}
if !pet.GetPet().HasManaBar() {
rot.ValidationWarning("%s does not use Mana", pet.GetPet().Label)
return nil
}
return &APLValueWarlockCurrentPetMana{
pet: pet,
}
}
func (value *APLValueWarlockCurrentPetMana) Type() proto.APLValueType {
return proto.APLValueType_ValueTypeFloat
}
func (value *APLValueWarlockCurrentPetMana) GetFloat(sim *core.Simulation) float64 {
return value.pet.GetPet().CurrentMana()
}
func (value *APLValueWarlockCurrentPetMana) String() string {
return "Current Pet Mana"
}
Loading

0 comments on commit dd1ab9c

Please sign in to comment.