Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rogue AoE Runes #878

Merged
merged 9 commits into from
Jul 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified assets/database/db.bin
Binary file not shown.
9 changes: 3 additions & 6 deletions assets/database/db.json
Original file line number Diff line number Diff line change
Expand Up @@ -5230,11 +5230,8 @@
{"id":19163,"name":"Molten Belt","icon":"inv_belt_13","type":8,"armorType":2,"requiresLevel":60,"stats":[0,28,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":70,"phase":1,"quality":4,"expansion":1,"sources":[{"crafted":{"profession":8,"spellId":23710}}]},
{"id":19164,"name":"Dark Iron Gauntlets","icon":"inv_gauntlets_22","type":7,"armorType":4,"requiresLevel":60,"stats":[0,12,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,495,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":70,"phase":1,"quality":4,"expansion":1,"sources":[{"crafted":{"profession":2,"spellId":23637}}]},
{"id":19165,"name":"Flarecore Leggings","icon":"inv_pants_06","type":9,"armorType":1,"requiresLevel":60,"stats":[0,0,21,0,0,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,94,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":70,"phase":1,"quality":4,"expansion":1,"sources":[{"crafted":{"profession":11,"spellId":23667}}]},
{"id":19166,"name":"Black Amnesty","icon":"inv_weapon_shortblade_12","type":13,"weaponType":2,"handType":2,"requiresLevel":60,"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],"weaponDamageMin":53,"weaponDamageMax":100,"weaponSpeed":1.6,"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":66,"phase":1,"quality":4,"expansion":1,"sources":[{"crafted":{"profession":2,"spellId":23638}}]},
{"id":19167,"name":"Blackfury","icon":"inv_spear_08","type":13,"weaponType":6,"handType":4,"requiresLevel":60,"stats":[35,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0],"weaponDamageMin":105,"weaponDamageMax":158,"weaponSpeed":2.1,"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":66,"phase":1,"quality":4,"expansion":1,"sources":[{"crafted":{"profession":2,"spellId":23639}}]},
{"id":19168,"name":"Blackguard","icon":"inv_sword_39","type":13,"weaponType":9,"handType":2,"requiresLevel":60,"stats":[0,0,9,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],"weaponDamageMin":65,"weaponDamageMax":121,"weaponSpeed":1.8,"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":70,"phase":1,"quality":4,"expansion":1,"sources":[{"crafted":{"profession":2,"spellId":23652}}]},
{"id":19169,"name":"Nightfall","icon":"inv_axe_12","type":13,"weaponType":1,"handType":4,"requiresLevel":60,"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],"weaponDamageMin":187,"weaponDamageMax":282,"weaponSpeed":3.5,"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":70,"phase":1,"quality":4,"expansion":1,"sources":[{"crafted":{"profession":2,"spellId":23653}}]},
{"id":19170,"name":"Ebon Hand","icon":"inv_hammer_19","type":13,"weaponType":4,"handType":2,"requiresLevel":60,"stats":[0,0,9,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,7,0,0,0,0,0,0,0],"weaponDamageMin":90,"weaponDamageMax":168,"weaponSpeed":2.5,"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":70,"phase":1,"quality":4,"expansion":1,"sources":[{"crafted":{"profession":2,"spellId":23650}}]},
{"id":19287,"name":"Darkmoon Card: Heroism","icon":"inv_misc_ticket_tarot_heroism_01","type":12,"requiresLevel":60,"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],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":66,"phase":1,"quality":4,"unique":true,"sources":[{"quest":{"id":7928,"name":"Darkmoon Warlords Deck"}}]},
{"id":19288,"name":"Darkmoon Card: Blue Dragon","icon":"inv_misc_ticket_tarot_bluedragon_01","type":12,"requiresLevel":60,"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],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":66,"phase":1,"quality":4,"unique":true,"sources":[{"quest":{"id":7907,"name":"Darkmoon Beast Deck"}}]},
{"id":19289,"name":"Darkmoon Card: Maelstrom","icon":"inv_misc_ticket_tarot_maelstrom_01","type":12,"requiresLevel":60,"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],"weaponSkills":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"ilvl":66,"phase":1,"quality":4,"unique":true,"sources":[{"quest":{"id":7929,"name":"Darkmoon Elementals Deck"}}]},
Expand Down Expand Up @@ -9761,6 +9758,7 @@
{"id":408531,"name":"Engrave Pants - Way of Earth","icon":"spell_nature_earthquake","type":9,"requiresLevel":1,"classAllowlist":[7]},
{"id":408696,"name":"Engrave Boots - Spirit of the Alpha","icon":"ability_hunter_pet_wolf","type":10,"requiresLevel":1,"classAllowlist":[7]},
{"id":408700,"name":"Engrave Boots - Waylay","icon":"ability_rogue_waylay","type":10,"requiresLevel":1,"classAllowlist":[6]},
{"id":409240,"name":"Engrave Cloak - Fan of Knives","icon":"ability_rogue_fanofknives","type":4,"requiresLevel":1,"classAllowlist":[6]},
{"id":409324,"name":"Engrave Pants - Ancestral Guidance","icon":"ability_druid_lunarguidance","type":9,"requiresLevel":1,"classAllowlist":[7]},
{"id":409368,"name":"Engrave Gloves - Beast Mastery","icon":"ability_physical_taunt","type":7,"requiresLevel":1,"classAllowlist":[2]},
{"id":409428,"name":"Engrave Chest - Master Marksman","icon":"ability_hunter_mastermarksman","type":5,"requiresLevel":1,"classAllowlist":[2]},
Expand All @@ -9774,6 +9772,7 @@
{"id":410176,"name":"Engrave Gloves - Skull Bash","icon":"inv_misc_bone_taurenskull_01","type":7,"requiresLevel":1,"classAllowlist":[1]},
{"id":411115,"name":"Engrave Chest - Survival of the Fittest","icon":"ability_druid_enrage","type":5,"requiresLevel":1,"classAllowlist":[1]},
{"id":412019,"name":"Engrave Boots - Sacred Shield","icon":"ability_paladin_blessedmending","type":10,"requiresLevel":1,"classAllowlist":[4]},
{"id":412096,"name":"Engrave Cloak - Crimson Tempest","icon":"inv_sword_17","type":4,"requiresLevel":1,"classAllowlist":[6]},
{"id":412115,"name":"Engrave Helm - Advanced Warding","icon":"spell_arcane_arcaneresilience","type":1,"requiresLevel":1,"classAllowlist":[3]},
{"id":412286,"name":"Engrave Chest - Burnout","icon":"ability_mage_burnout","type":5,"requiresLevel":1,"classAllowlist":[3]},
{"id":412322,"name":"Engrave Boots - Spell Power","icon":"spell_holy_mindvision","type":10,"requiresLevel":1,"classAllowlist":[3]},
Expand Down Expand Up @@ -9899,6 +9898,7 @@
{"id":432276,"name":"Engrave Bracers - Carnage","icon":"ability_rogue_bloodsplatter","type":6,"requiresLevel":1,"classAllowlist":[6]},
{"id":436364,"name":"Engrave Chest - Two-Handed Mastery","icon":"spell_fire_enchantweapon","type":5,"requiresLevel":1,"classAllowlist":[7]},
{"id":436516,"name":"Engrave Boots - Chronostatic Preservation","icon":"spell_arcane_arcane02","type":10,"requiresLevel":1,"classAllowlist":[3]},
{"id":436564,"name":"Engrave Cloak - Blunderbuss","icon":"inv_musket_04","type":4,"requiresLevel":1,"classAllowlist":[6]},
{"id":437123,"name":"Engrave Belt - Steady Shot","icon":"ability_hunter_steadyshot","type":8,"requiresLevel":1,"classAllowlist":[2]},
{"id":439510,"name":"Engrave Cloak - Improved Swipe","icon":"inv_misc_monsterclaw_03","type":4,"requiresLevel":1,"classAllowlist":[1]},
{"id":439733,"name":"Engrave Cloak - Tree of Life","icon":"ability_druid_treeoflife","type":4,"requiresLevel":1,"classAllowlist":[1]},
Expand Down Expand Up @@ -13613,11 +13613,8 @@
{"id":23633,"name":"Gloves of the Dawn","icon":"inv_gauntlets_29","requiresLevel":59},
{"id":23636,"name":"Dark Iron Helm","icon":"inv_helmet_22","requiresLevel":60},
{"id":23637,"name":"Dark Iron Gauntlets","icon":"inv_gauntlets_22","requiresLevel":60},
{"id":23638,"name":"Black Amnesty","icon":"inv_weapon_shortblade_12","requiresLevel":60},
{"id":23639,"name":"Blackfury","icon":"inv_spear_08","requiresLevel":60},
{"id":23650,"name":"Ebon Hand","icon":"inv_hammer_19","requiresLevel":60},
{"id":23652,"name":"Blackguard","icon":"inv_sword_39","requiresLevel":60},
{"id":23653,"name":"Nightfall","icon":"inv_axe_12","requiresLevel":60},
{"id":23663,"name":"Mantle of the Timbermaw","icon":"inv_shoulder_19","requiresLevel":59},
{"id":23664,"name":"Argent Boots","icon":"inv_boots_cloth_03","requiresLevel":53},
{"id":23665,"name":"Argent Shoulders","icon":"inv_shoulder_13","requiresLevel":59},
Expand Down
Binary file modified assets/database/leftover_db.bin
Binary file not shown.
7 changes: 5 additions & 2 deletions assets/database/leftover_db.json
Original file line number Diff line number Diff line change
Expand Up @@ -1479,8 +1479,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 Expand Up @@ -1554,8 +1554,8 @@
{"effectId":929,"itemId":16217,"spellId":20069,"name":"Enchant Shield - Greater Stamina","type":13,"enchantType":2,"stats":[0,0,7,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":930,"spellId":13947,"name":"Enchant Gloves - Riding Skill","type":7,"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":2},
{"effectId":931,"spellId":13948,"name":"Enchant Gloves - Minor Haste","type":7,"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":943,"spellId":13693,"name":"Enchant Weapon - 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":943,"spellId":13529,"name":"Enchant 2H Weapon - Lesser 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":943,"spellId":13693,"name":"Enchant Weapon - 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":963,"spellId":13937,"name":"Enchant 2H Weapon - Greater 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":1483,"itemId":11622,"spellId":15340,"name":"Lesser Arcanum of Rumination","type":1,"extraTypes":[9],"enchantType":3,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":1503,"itemId":11642,"spellId":15389,"name":"Lesser Arcanum of Constitution","type":1,"extraTypes":[9],"enchantType":3,"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,100,0,0,0,0,0,0,0,0,0],"quality":2},
Expand Down Expand Up @@ -1693,6 +1693,7 @@
{"id":408531,"name":"Engrave Pants - Way of Earth","icon":"spell_nature_earthquake","type":9,"requiresLevel":1,"classAllowlist":[7]},
{"id":408696,"name":"Engrave Boots - Spirit of the Alpha","icon":"ability_hunter_pet_wolf","type":10,"requiresLevel":1,"classAllowlist":[7]},
{"id":408700,"name":"Engrave Boots - Waylay","icon":"ability_rogue_waylay","type":10,"requiresLevel":1,"classAllowlist":[6]},
{"id":409240,"name":"Engrave Cloak - Fan of Knives","icon":"ability_rogue_fanofknives","type":4,"requiresLevel":1,"classAllowlist":[6]},
{"id":409324,"name":"Engrave Pants - Ancestral Guidance","icon":"ability_druid_lunarguidance","type":9,"requiresLevel":1,"classAllowlist":[7]},
{"id":409368,"name":"Engrave Gloves - Beast Mastery","icon":"ability_physical_taunt","type":7,"requiresLevel":1,"classAllowlist":[2]},
{"id":409428,"name":"Engrave Chest - Master Marksman","icon":"ability_hunter_mastermarksman","type":5,"requiresLevel":1,"classAllowlist":[2]},
Expand All @@ -1706,6 +1707,7 @@
{"id":410176,"name":"Engrave Gloves - Skull Bash","icon":"inv_misc_bone_taurenskull_01","type":7,"requiresLevel":1,"classAllowlist":[1]},
{"id":411115,"name":"Engrave Chest - Survival of the Fittest","icon":"ability_druid_enrage","type":5,"requiresLevel":1,"classAllowlist":[1]},
{"id":412019,"name":"Engrave Boots - Sacred Shield","icon":"ability_paladin_blessedmending","type":10,"requiresLevel":1,"classAllowlist":[4]},
{"id":412096,"name":"Engrave Cloak - Crimson Tempest","icon":"inv_sword_17","type":4,"requiresLevel":1,"classAllowlist":[6]},
{"id":412115,"name":"Engrave Helm - Advanced Warding","icon":"spell_arcane_arcaneresilience","type":1,"requiresLevel":1,"classAllowlist":[3]},
{"id":412286,"name":"Engrave Chest - Burnout","icon":"ability_mage_burnout","type":5,"requiresLevel":1,"classAllowlist":[3]},
{"id":412322,"name":"Engrave Boots - Spell Power","icon":"spell_holy_mindvision","type":10,"requiresLevel":1,"classAllowlist":[3]},
Expand Down Expand Up @@ -1831,6 +1833,7 @@
{"id":432276,"name":"Engrave Bracers - Carnage","icon":"ability_rogue_bloodsplatter","type":6,"requiresLevel":1,"classAllowlist":[6]},
{"id":436364,"name":"Engrave Chest - Two-Handed Mastery","icon":"spell_fire_enchantweapon","type":5,"requiresLevel":1,"classAllowlist":[7]},
{"id":436516,"name":"Engrave Boots - Chronostatic Preservation","icon":"spell_arcane_arcane02","type":10,"requiresLevel":1,"classAllowlist":[3]},
{"id":436564,"name":"Engrave Cloak - Blunderbuss","icon":"inv_musket_04","type":4,"requiresLevel":1,"classAllowlist":[6]},
{"id":437123,"name":"Engrave Belt - Steady Shot","icon":"ability_hunter_steadyshot","type":8,"requiresLevel":1,"classAllowlist":[2]},
{"id":439510,"name":"Engrave Cloak - Improved Swipe","icon":"inv_misc_monsterclaw_03","type":4,"requiresLevel":1,"classAllowlist":[1]},
{"id":439733,"name":"Engrave Cloak - Tree of Life","icon":"ability_druid_treeoflife","type":4,"requiresLevel":1,"classAllowlist":[1]},
Expand Down
62 changes: 62 additions & 0 deletions sim/rogue/blunderbuss.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package rogue

import (
"time"

"github.com/wowsims/sod/sim/core"
"github.com/wowsims/sod/sim/core/proto"
)

// TODO: 10 yd range
func (rogue *Rogue) registerBlunderbussSpell() {
if !rogue.HasRune(proto.RogueRune_RuneBlunderbuss) {
return
}

results := make([]*core.SpellResult, min(4, rogue.Env.GetNumTargets()))

rogue.Blunderbuss = rogue.RegisterSpell(core.SpellConfig{
ActionID: core.ActionID{SpellID: 436564},
SpellSchool: core.SpellSchoolPhysical,
DefenseType: core.DefenseTypeRanged,
ProcMask: core.ProcMaskRangedSpecial,
Flags: core.SpellFlagMeleeMetrics | core.SpellFlagAPL,

EnergyCost: core.EnergyCostOptions{
Cost: 20,
Refund: 0,
},
Cast: core.CastConfig{
DefaultCast: core.Cast{
GCD: time.Second,
},
CD: core.Cooldown{
Timer: rogue.NewTimer(),
Duration: time.Second * 15,
},
IgnoreHaste: true,
},

DamageMultiplier: 1,
ThreatMultiplier: 1,

ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
rogue.BreakStealth(sim)
baseApDamage := spell.MeleeAttackPower() * 0.48

for idx := range results {
results[idx] = spell.CalcDamage(sim, target, rogue.rollBlunderbussDamage(sim)+baseApDamage, spell.OutcomeRangedHitAndCrit)
target = sim.Environment.NextTargetUnit(target)
}

for _, result := range results {
spell.DealDamage(sim, result)
}
},
})
}

func (rogue *Rogue) rollBlunderbussDamage(sim *core.Simulation) float64 {
baseDamage := rogue.baseRuneAbilityDamage()
return sim.Roll(baseDamage*1.92, baseDamage*2.88)
}
96 changes: 96 additions & 0 deletions sim/rogue/crimson_tempest.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
package rogue

import (
"time"

"github.com/wowsims/sod/sim/core"
"github.com/wowsims/sod/sim/core/proto"
"github.com/wowsims/sod/sim/core/stats"
)

func (rogue *Rogue) makeCrimsonTempestHitSpell() *core.Spell {
actionID := core.ActionID{SpellID: 412096}
procMask := core.ProcMaskMeleeMHSpecial

return rogue.RegisterSpell(core.SpellConfig{
ActionID: actionID,
SpellSchool: core.SpellSchoolPhysical,
DefenseType: core.DefenseTypeMelee,
ProcMask: procMask,
Flags: core.SpellFlagMeleeMetrics,

DamageMultiplier: []float64{1, 1.1, 1.2, 1.3}[rogue.Talents.SerratedBlades],
ThreatMultiplier: 1,

Dot: core.DotConfig{
Aura: core.Aura{
Label: "Crimson Tempest",
Tag: RogueBleedTag,
},
NumberOfTicks: 0,
TickLength: time.Second * 2,

OnSnapshot: func(sim *core.Simulation, target *core.Unit, dot *core.Dot, isRollover bool) {
dot.Snapshot(target, rogue.CrimsonTempestDamage(rogue.ComboPoints()), isRollover)
},
OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) {
dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick)
},
},

ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
result := spell.CalcOutcome(sim, target, spell.OutcomeMeleeSpecialHit)
if result.Landed() {
dot := spell.Dot(target)
dot.Spell = spell
dot.NumberOfTicks = rogue.ComboPoints() + 1
dot.Apply(sim)
}
spell.DealOutcome(sim, result)
},
})
}

// TODO: Currently bugged and creates "infite loop detected" warning
func (rogue *Rogue) registerCrimsonTempestSpell() {
if !rogue.HasRune(proto.RogueRune_RuneCrimsonTempest) {
return
}

// Must be updated to match combo points spent
rogue.CrimsonTempestBleed = rogue.makeCrimsonTempestHitSpell()

rogue.CrimsonTempest = rogue.RegisterSpell(core.SpellConfig{
ActionID: core.ActionID{SpellID: 412096},
SpellSchool: core.SpellSchoolPhysical,
DefenseType: core.DefenseTypeMelee,
ProcMask: core.ProcMaskMeleeMHSpecial,
Flags: SpellFlagCarnage, // TODO: Placeholder to prevent use in APL while broken. Replace with rogue.finisherFlags()
MetricSplits: 6,

EnergyCost: core.EnergyCostOptions{
Cost: 35,
Refund: 0,
},
Cast: core.CastConfig{
DefaultCast: core.Cast{
GCD: time.Second,
},
IgnoreHaste: true,
},

ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
rogue.BreakStealth(sim)

for _, aoeTarget := range sim.Encounter.TargetUnits {
rogue.CrimsonTempestBleed.Cast(sim, aoeTarget)
}

rogue.SpendComboPoints(sim, spell)
},
})
}

func (rogue *Rogue) CrimsonTempestDamage(comboPoints int32) float64 {
return []float64{0.15, 0.3, 0.45, 0.6, 0.75, 0.9}[comboPoints] * rogue.GetStat(stats.AttackPower)
}
Loading
Loading