Skip to content
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.
13 changes: 9 additions & 4 deletions assets/database/db.json
Original file line number Diff line number Diff line change
Expand Up @@ -9638,13 +9638,16 @@
"spellIcons":[
{"id":702,"name":"Curse of Weakness","icon":"spell_shadow_curseofmannoroth","hasBuff":true},
{"id":724,"name":"Lightwell","icon":"spell_holy_summonlightwell"},
{"id":768,"name":"Cat Form","icon":"ability_druid_catform","hasBuff":true},
{"id":770,"name":"Faerie Fire","icon":"spell_nature_faeriefire","hasBuff":true},
{"id":974,"name":"Earth Shield","icon":"spell_nature_skinofearth","hasBuff":true},
{"id":1329,"name":"Mutilate","icon":"ability_rogue_shadowstrikes"},
{"id":1454,"name":"Life Tap","icon":"spell_shadow_burningspirit"},
{"id":1490,"name":"Curse of the Elements","icon":"spell_shadow_chilltouch","hasBuff":true},
{"id":2825,"name":"Bloodlust","icon":"spell_nature_bloodlust","hasBuff":true},
{"id":3043,"name":"Scorpid Sting","icon":"ability_hunter_criticalshot","hasBuff":true},
{"id":3738,"name":"Wrath of Air Totem","icon":"spell_nature_slowingtotem"},
{"id":5487,"name":"Bear Form","icon":"ability_racial_bearform","hasBuff":true},
{"id":5570,"name":"Insect Swarm","icon":"spell_nature_insectswarm","hasBuff":true},
{"id":5675,"name":"Mana Spring Totem","icon":"spell_nature_manaregentotem"},
{"id":5923,"name":"Holy Power","icon":"spell_holy_power"},
Expand All @@ -9664,7 +9667,7 @@
{"id":9318,"name":"Zandalar Signet of Serenity","icon":"spell_holy_powerwordshield"},
{"id":9331,"name":"Greater Inscription of the Blade","icon":"spell_holy_weaponmastery"},
{"id":9334,"name":"Inscription of Vengeance","icon":"spell_holy_fistofjustice"},
{"id":9336,"name":"Zandalar Signet of Might","icon":"inv_misc_armorkit_08"},
{"id":9336,"name":"Greater Inscription of Vengeance","icon":"spell_holy_greaterblessingofkings"},
{"id":9344,"name":"Inscription of Discipline","icon":"spell_holy_sealofwisdom"},
{"id":9346,"name":"Zandalar Signet of Mojo","icon":"inv_jewelry_ring_46"},
{"id":9408,"name":"Greater Inscription of the Oracle","icon":"spell_holy_powerinfusion"},
Expand Down Expand Up @@ -9955,7 +9958,7 @@
{"id":13872,"name":"Endurance","icon":"spell_shadow_shadowward"},
{"id":13875,"name":"Improved Sprint","icon":"ability_rogue_sprint"},
{"id":13877,"name":"Blade Flurry","icon":"ability_warrior_punishingblow","hasBuff":true},
{"id":13889,"name":"Enchant Boots - Boar's Speed","icon":"inv_misc_note_01"},
{"id":13889,"name":"Enchant Boots - Cat's Swiftness","icon":"inv_misc_note_01"},
{"id":13958,"name":"Master of Deception","icon":"spell_shadow_charm"},
{"id":13960,"name":"Sword Specialization","icon":"inv_sword_27"},
{"id":13961,"name":"Sword Specialization","icon":"inv_sword_27"},
Expand Down Expand Up @@ -10518,7 +10521,7 @@
{"id":17958,"name":"Emberstorm","icon":"spell_fire_selfdestruct"},
{"id":17959,"name":"Ruin","icon":"spell_shadow_shadowwordpain"},
{"id":17962,"name":"Conflagrate","icon":"spell_fire_fireball"},
{"id":18029,"name":"Glyph of Renewal","icon":"spell_holy_healingaura"},
{"id":18029,"name":"Enchant Gloves - Major Healing","icon":"inv_misc_note_01"},
{"id":18048,"name":"Enchant Weapon - Major Healing","icon":"inv_misc_note_01"},
{"id":18073,"name":"Pyroclasm","icon":"spell_fire_volcano"},
{"id":18094,"name":"Nightfall","icon":"spell_shadow_twilight"},
Expand Down Expand Up @@ -11036,7 +11039,7 @@
{"id":25064,"name":"Enchant Gloves - Shadow Power","icon":"inv_misc_note_01"},
{"id":25065,"name":"Enchant Gloves - Fire Power","icon":"inv_misc_note_01"},
{"id":25066,"name":"Enchant Gloves - Frost Power","icon":"inv_misc_note_01"},
{"id":25067,"name":"Enchant Bracer - Superior Healing","icon":"inv_misc_note_01"},
{"id":25067,"name":"Enchant Gloves - Healing Power","icon":"inv_misc_note_01"},
{"id":25068,"name":"Enchant Cloak - Greater Fire Resistance","icon":"inv_misc_note_01"},
{"id":25069,"name":"Enchant Cloak - Greater Nature Resistance","icon":"inv_misc_note_01"},
{"id":25070,"name":"Enchant Cloak - Subtlety","icon":"inv_misc_note_01"},
Expand All @@ -11053,6 +11056,7 @@
{"id":26022,"name":"Pursuit of Justice","icon":"spell_holy_persuitofjustice"},
{"id":26023,"name":"Pursuit of Justice","icon":"spell_holy_persuitofjustice"},
{"id":26283,"name":"Enchant Cloak - Spell Penetration","icon":"inv_misc_note_01"},
{"id":26297,"name":"Berserking","icon":"racial_troll_berserk"},
{"id":26752,"name":"Spellfire Belt","icon":"ability_ensnare"},
{"id":26753,"name":"Spellfire Gloves","icon":"ability_ensnare"},
{"id":26754,"name":"Spellfire Robe","icon":"ability_ensnare"},
Expand Down Expand Up @@ -11165,6 +11169,7 @@
{"id":28593,"name":"Winter's Chill","icon":"spell_frost_chillingblast"},
{"id":28594,"name":"Winter's Chill","icon":"spell_frost_chillingblast"},
{"id":28595,"name":"Winter's Chill","icon":"spell_frost_chillingblast"},
{"id":28730,"name":"Arcane Torrent","icon":"spell_shadow_teleport","hasBuff":true},
{"id":28996,"name":"Elemental Warding","icon":"spell_nature_spiritarmor"},
{"id":28997,"name":"Elemental Warding","icon":"spell_nature_spiritarmor"},
{"id":28998,"name":"Elemental Warding","icon":"spell_nature_spiritarmor"},
Expand Down
Binary file modified assets/database/leftover_db.bin
Binary file not shown.
8 changes: 4 additions & 4 deletions assets/database/leftover_db.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@
{"effectId":66,"spellId":7455,"name":"Enchant Bracer - Minor Stamina","icon":"trade_engraving","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,0],"quality":1},
{"effectId":66,"itemId":6376,"spellId":7455,"name":"Enchant Boots - Minor Stamina","icon":"inv_misc_note_01","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,0],"quality":2},
{"effectId":66,"spellId":7455,"name":"Enchant Shield - Minor Stamina","icon":"trade_engraving","type":13,"enchantType":2,"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,0],"quality":1},
{"effectId":241,"spellId":7745,"name":"Enchant 2H Weapon - Minor Impact","icon":"trade_engraving","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,0],"quality":1},
{"effectId":241,"spellId":13503,"name":"Enchant Weapon - Lesser Striking","icon":"trade_engraving","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,0],"quality":1},
{"effectId":241,"spellId":7745,"name":"Enchant 2H Weapon - Minor Impact","icon":"trade_engraving","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,0],"quality":1},
{"effectId":242,"spellId":7747,"name":"Enchant Chest - Lesser Health","icon":"trade_engraving","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,15,0,0,0,0,0,0,0],"quality":1},
{"effectId":243,"itemId":6344,"spellId":7456,"name":"Enchant Bracer - Minor Spirit","icon":"inv_misc_note_01","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,0],"quality":2},
{"effectId":246,"itemId":6346,"spellId":7773,"name":"Enchant Chest - Lesser Mana","icon":"inv_misc_note_01","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,0],"quality":2},
Expand All @@ -85,8 +85,8 @@
{"effectId":254,"spellId":7850,"name":"Enchant Chest - Health","icon":"trade_engraving","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,25,0,0,0,0,0,0,0],"quality":1},
{"effectId":255,"itemId":6375,"spellId":7851,"name":"Enchant Bracer - Lesser Spirit","icon":"inv_misc_note_01","type":6,"stats":[0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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":255,"itemId":11167,"spellId":7851,"name":"Enchant Boots - Lesser Spirit","icon":"inv_misc_note_01","type":10,"stats":[0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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":255,"itemId":11038,"spellId":7851,"name":"Enchant 2H Weapon - Lesser Spirit","icon":"inv_misc_note_01","type":13,"enchantType":1,"stats":[0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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":255,"spellId":7851,"name":"Enchant Shield - Lesser Spirit","icon":"trade_engraving","type":13,"enchantType":2,"stats":[0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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":255,"itemId":11038,"spellId":7851,"name":"Enchant 2H Weapon - Lesser Spirit","icon":"inv_misc_note_01","type":13,"enchantType":1,"stats":[0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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":256,"spellId":7852,"name":"Enchant Cloak - Lesser Fire Resistance","icon":"trade_engraving","type":4,"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],"quality":1},
{"effectId":369,"spellId":9108,"name":"Enchant Bracer - Major Intellect","icon":"trade_engraving","type":6,"stats":[0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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":463,"itemId":7967,"spellId":9782,"name":"Mithril Shield Spike","icon":"inv_misc_armorkit_02","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],"quality":2},
Expand Down Expand Up @@ -155,10 +155,10 @@
{"effectId":929,"itemId":16217,"spellId":13827,"name":"Enchant Shield - Greater Stamina","icon":"inv_misc_note_01","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,0],"quality":1},
{"effectId":930,"itemId":11226,"spellId":13927,"name":"Enchant Gloves - Riding Skill","icon":"inv_misc_note_01","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,0],"quality":2},
{"effectId":931,"spellId":13928,"name":"Enchant Gloves - Minor Haste","icon":"trade_engraving","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,10,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","icon":"trade_engraving","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,0],"quality":1},
{"effectId":943,"spellId":13529,"name":"Enchant 2H Weapon - Lesser Impact","icon":"trade_engraving","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,0],"quality":1},
{"effectId":963,"itemId":22552,"spellId":27967,"name":"Enchant Weapon - Major Striking","icon":"inv_misc_note_01","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,0],"quality":1},
{"effectId":943,"spellId":13693,"name":"Enchant Weapon - Striking","icon":"trade_engraving","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,0],"quality":1},
{"effectId":963,"spellId":13937,"name":"Enchant 2H Weapon - Greater Impact","icon":"trade_engraving","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,0],"quality":1},
{"effectId":963,"itemId":22552,"spellId":27967,"name":"Enchant Weapon - Major Striking","icon":"inv_misc_note_01","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,0],"quality":1},
{"effectId":1144,"spellId":14433,"name":"Enchant Chest - Major Spirit","icon":"trade_engraving","type":5,"stats":[0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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":1594,"spellId":9334,"name":"Enchant Gloves - Assault","icon":"trade_engraving","type":7,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,26,0,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":1704,"itemId":12645,"spellId":16624,"name":"Thorium Shield Spike","icon":"inv_misc_armorkit_20","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],"quality":2},
Expand Down
75 changes: 37 additions & 38 deletions sim/druid/feralcat/feral.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (

"github.com/wowsims/tbc/sim/core"
"github.com/wowsims/tbc/sim/core/proto"
"github.com/wowsims/tbc/sim/core/stats"
"github.com/wowsims/tbc/sim/druid"
)

Expand Down Expand Up @@ -105,43 +104,43 @@ func (cat *FeralDruid) Initialize() {
// cat.applyOmenOfClarity()
// cat.applyPredatorySwiftness()

snapshotHandler := func(aura *core.Aura, sim *core.Simulation) {
previousRipSnapshotPower := cat.Rip.NewSnapshotPower
cat.UpdateBleedPower(cat.Rip, sim, cat.CurrentTarget, false, true)
cat.UpdateBleedPower(cat.Rake, sim, cat.CurrentTarget, false, true)
cat.UpdateBleedPower(cat.ThrashCat, sim, cat.CurrentTarget, false, true)

if cat.Rip.NewSnapshotPower > previousRipSnapshotPower+0.001 {
if !cat.tempSnapshotAura.IsActive() || (aura.ExpiresAt() < cat.tempSnapshotAura.ExpiresAt()) {
cat.tempSnapshotAura = aura

if sim.Log != nil {
cat.Log(sim, "New bleed snapshot aura found: %s", aura.ActionID)
}
}
} else if !cat.tempSnapshotAura.IsActive() {
cat.tempSnapshotAura = nil
}
}

cat.TigersFuryAura.ApplyOnGain(snapshotHandler)
cat.TigersFuryAura.ApplyOnExpire(snapshotHandler)
cat.AddOnTemporaryStatsChange(func(sim *core.Simulation, buffAura *core.Aura, _ stats.Stats) {
snapshotHandler(buffAura, sim)
})

if cat.DreamOfCenariusAura != nil {
cat.DreamOfCenariusAura.ApplyOnGain(snapshotHandler)
cat.DreamOfCenariusAura.ApplyOnExpire(snapshotHandler)
}

cat.CatFormAura.ApplyOnGain(func(_ *core.Aura, sim *core.Simulation) {
if cat.tempSnapshotAura.IsActive() {
cat.UpdateBleedPower(cat.Rip, sim, cat.CurrentTarget, false, true)
cat.UpdateBleedPower(cat.Rake, sim, cat.CurrentTarget, false, true)
cat.UpdateBleedPower(cat.ThrashCat, sim, cat.CurrentTarget, false, true)
}
})
// snapshotHandler := func(aura *core.Aura, sim *core.Simulation) {
// previousRipSnapshotPower := cat.Rip.NewSnapshotPower
// cat.UpdateBleedPower(cat.Rip, sim, cat.CurrentTarget, false, true)
// cat.UpdateBleedPower(cat.Rake, sim, cat.CurrentTarget, false, true)
// cat.UpdateBleedPower(cat.ThrashCat, sim, cat.CurrentTarget, false, true)

// if cat.Rip.NewSnapshotPower > previousRipSnapshotPower+0.001 {
// if !cat.tempSnapshotAura.IsActive() || (aura.ExpiresAt() < cat.tempSnapshotAura.ExpiresAt()) {
// cat.tempSnapshotAura = aura

// if sim.Log != nil {
// cat.Log(sim, "New bleed snapshot aura found: %s", aura.ActionID)
// }
// }
// } else if !cat.tempSnapshotAura.IsActive() {
// cat.tempSnapshotAura = nil
// }
// }

// cat.TigersFuryAura.ApplyOnGain(snapshotHandler)
// cat.TigersFuryAura.ApplyOnExpire(snapshotHandler)
// cat.AddOnTemporaryStatsChange(func(sim *core.Simulation, buffAura *core.Aura, _ stats.Stats) {
// snapshotHandler(buffAura, sim)
// })

// if cat.DreamOfCenariusAura != nil {
// cat.DreamOfCenariusAura.ApplyOnGain(snapshotHandler)
// cat.DreamOfCenariusAura.ApplyOnExpire(snapshotHandler)
// }

// cat.CatFormAura.ApplyOnGain(func(_ *core.Aura, sim *core.Simulation) {
// if cat.tempSnapshotAura.IsActive() {
// cat.UpdateBleedPower(cat.Rip, sim, cat.CurrentTarget, false, true)
// cat.UpdateBleedPower(cat.Rake, sim, cat.CurrentTarget, false, true)
// cat.UpdateBleedPower(cat.ThrashCat, sim, cat.CurrentTarget, false, true)
// }
// })
}

func (cat *FeralDruid) ApplyTalents() {
Expand Down
15 changes: 14 additions & 1 deletion sim/hunter/hunter.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,20 @@ func (hunter *Hunter) GetHunter() *Hunter {
}

func RegisterHunter() {

core.RegisterAgentFactory(
proto.Player_Hunter{},
proto.Spec_SpecHunter,
func(character *core.Character, options *proto.Player) core.Agent {
return NewHunter(character, options, options.GetHunter().Options.ClassOptions)
},
func(player *proto.Player, spec interface{}) {
playerSpec, ok := spec.(*proto.Player_Hunter)
if !ok {
panic("Invalid spec value for Hunter!")
}
player.Spec = playerSpec
},
)
}

func NewHunter(character *core.Character, options *proto.Player, hunterOptions *proto.HunterOptions) *Hunter {
Expand Down
19 changes: 16 additions & 3 deletions sim/mage/mage.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,20 @@ func (mage *Mage) GetMage() *Mage {
}

func RegisterMage() {

core.RegisterAgentFactory(
proto.Player_Mage{},
proto.Spec_SpecMage,
func(character *core.Character, options *proto.Player) core.Agent {
return NewMage(character, options)
},
func(player *proto.Player, spec interface{}) {
playerSpec, ok := spec.(*proto.Player_Mage)
if !ok {
panic("Invalid spec value for Survival Hunter!")
}
player.Spec = playerSpec
},
)
}

func (mage *Mage) AddRaidBuffs(raidBuffs *proto.RaidBuffs) {
Expand Down Expand Up @@ -136,8 +149,8 @@ func (mage *Mage) Reset(sim *core.Simulation) {
func (mage *Mage) OnEncounterStart(sim *core.Simulation) {
}

func NewMage(character *core.Character, options *proto.Player, mageOptions *proto.MageOptions) *Mage {

func NewMage(character *core.Character, options *proto.Player) *Mage {
mageOptions := options.GetMage().Options.ClassOptions
mage := &Mage{
Character: *character,
Talents: &proto.MageTalents{},
Expand Down
15 changes: 14 additions & 1 deletion sim/warlock/warlock.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,20 @@ func (warlock *Warlock) GetWarlock() *Warlock {
}

func RegisterWarlock() {

core.RegisterAgentFactory(
proto.Player_Warlock{},
proto.Spec_SpecWarlock,
func(character *core.Character, options *proto.Player) core.Agent {
return NewWarlock(character, options, options.GetWarlock().Options.ClassOptions)
},
func(player *proto.Player, spec interface{}) {
playerSpec, ok := spec.(*proto.Player_Warlock)
if !ok {
panic("Invalid spec value for Survival Hunter!")
}
player.Spec = playerSpec
},
)
}

func (warlock *Warlock) ApplyTalents() {
Expand Down
2 changes: 1 addition & 1 deletion sim/warrior/dps/dps.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ type DpsWarrior struct {

// ApplyTalents implements core.Agent.
func (war *DpsWarrior) ApplyTalents() {
panic("unimplemented")
// panic("unimplemented")
}

func NewDpsWarrior(character *core.Character, options *proto.Player) *DpsWarrior {
Expand Down
2 changes: 1 addition & 1 deletion sim/warrior/protection/protection.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ type ProtectionWarrior struct {

// ApplyTalents implements core.Agent.
func (war *ProtectionWarrior) ApplyTalents() {
panic("unimplemented")
// panic("unimplemented")
}

func NewProtectionWarrior(character *core.Character, options *proto.Player) *ProtectionWarrior {
Expand Down
Loading
Loading