Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/wowsims/sod into saeyon
Browse files Browse the repository at this point in the history
  • Loading branch information
emsimpson92 committed Nov 23, 2024
2 parents 77a50a5 + 2e12d1a commit bc5afa0
Show file tree
Hide file tree
Showing 31 changed files with 681 additions and 341 deletions.
Binary file modified assets/database/db.bin
Binary file not shown.
5 changes: 3 additions & 2 deletions assets/database/db.json
Original file line number Diff line number Diff line change
Expand Up @@ -10662,8 +10662,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 @@ -12624,7 +12624,6 @@
{"id":11314,"name":"Fire Nova Totem","icon":"spell_fire_sealoffire","rank":4,"requiresLevel":42},
{"id":11315,"name":"Fire Nova Totem","icon":"spell_fire_sealoffire","rank":5,"requiresLevel":52},
{"id":11340,"name":"Instant Poison VI","icon":"ability_poisons","rank":6,"requiresLevel":60},
{"id":11356,"name":"Deadly Poison IV","icon":"ability_rogue_dualweild","rank":4,"requiresLevel":54},
{"id":11366,"name":"Pyroblast","icon":"spell_fire_fireball02","rank":1,"hasBuff":true},
{"id":11367,"name":"Critical Mass","icon":"spell_nature_wispheal","rank":2},
{"id":11368,"name":"Critical Mass","icon":"spell_nature_wispheal","rank":3},
Expand Down Expand Up @@ -14842,6 +14841,7 @@
{"id":25315,"name":"Renew","icon":"spell_holy_renew","rank":10,"requiresLevel":60,"hasBuff":true},
{"id":25316,"name":"Prayer of Healing","icon":"spell_holy_prayerofhealing02","rank":5,"requiresLevel":60},
{"id":25345,"name":"Arcane Missiles","icon":"spell_nature_starfall","rank":8,"requiresLevel":56},
{"id":25351,"name":"Deadly Poison V","icon":"ability_rogue_dualweild","rank":5,"requiresLevel":60},
{"id":25357,"name":"Healing Wave","icon":"spell_nature_magicimmunity","rank":10,"requiresLevel":60},
{"id":25359,"name":"Grace of Air Totem","icon":"spell_nature_invisibilitytotem","rank":3,"requiresLevel":60},
{"id":25361,"name":"Strength of Earth Totem","icon":"spell_nature_earthbindtotem","rank":5,"requiresLevel":60},
Expand Down Expand Up @@ -15455,6 +15455,7 @@
{"id":439124,"name":"Golden Scale Cuirass","icon":"inv_chest_chain_06","requiresLevel":35},
{"id":439126,"name":"Golden Scale Coif","icon":"inv_helmet_36","requiresLevel":33},
{"id":439132,"name":"Golden Scale Leggings","icon":"inv_pants_04","requiresLevel":29},
{"id":439500,"name":"Sebacious Poison","icon":"ability_creature_poison_06","requiresLevel":60},
{"id":440247,"name":"S03 - Tuning and Overrides Passive - Priest","icon":"trade_engineering","requiresLevel":1},
{"id":440488,"name":"Shockwave","icon":"ability_warrior_shockwave","requiresLevel":1,"hasBuff":true},
{"id":440492,"name":"Engrave Cloak - Fresh Meat","icon":"inv_misc_cape_20","requiresLevel":1},
Expand Down
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 @@ -1482,8 +1482,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":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":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":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 @@ -1585,8 +1585,8 @@
{"effectId":1893,"spellId":20028,"name":"Enchant Chest - Major 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,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":1894,"spellId":20029,"name":"Enchant Weapon - Icy Chill","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":2},
{"effectId":1896,"spellId":20030,"name":"Enchant 2H Weapon - Superior 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":2},
{"effectId":1897,"spellId":20031,"name":"Enchant Weapon - Superior 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":2},
{"effectId":1897,"spellId":13695,"name":"Enchant 2H Weapon - 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":1897,"spellId":20031,"name":"Enchant Weapon - Superior 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":2},
{"effectId":1898,"spellId":20032,"name":"Enchant Weapon - Lifestealing","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":3},
{"effectId":1899,"spellId":20033,"name":"Enchant Weapon - Unholy Weapon","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":2},
{"effectId":1900,"spellId":20034,"name":"Enchant Weapon - Crusader","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":2},
Expand Down
8 changes: 6 additions & 2 deletions proto/common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ enum MageScroll {
MageScrollFrostProtection = 5;
}

// NextIndex: 31
// NextIndex: 33
enum WeaponImbue {
// Weapon Oils
WeaponImbueUnknown = 0;
Expand Down Expand Up @@ -573,6 +573,8 @@ enum WeaponImbue {
WoundPoison = 25;
OccultPoison = 27;
SebaciousPoison = 28;
AtrophicPoison = 31;
NumbingPoison = 32;

// Shield Oil
ConductiveShieldCoating = 26;
Expand Down Expand Up @@ -761,7 +763,7 @@ message Consumes {
bool bogling_root = 19 [deprecated=true];
}

// NextIndex: 41
// NextIndex: 44
message Debuffs {
bool judgement_of_wisdom = 1;
bool judgement_of_light = 2;
Expand Down Expand Up @@ -796,10 +798,12 @@ message Debuffs {

TristateEffect demoralizing_roar = 14;
TristateEffect demoralizing_shout = 15;
bool atrophic_poison = 42;

TristateEffect thunder_clap = 16;
bool waylay = 34;
bool thunderfury = 40;
bool numbing_poison = 43;

bool insect_swarm = 17;
bool scorpid_sting = 18;
Expand Down
2 changes: 1 addition & 1 deletion sim/common/sod/item_effects/phase_6.go
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ func TimewornStrikeAura(agent core.Agent) {
},
})

if character.Class != proto.Class_ClassHunter {
if !character.HasRangedWeapon() || !character.AutoAttacks.AutoSwingRanged {
return
}

Expand Down
7 changes: 1 addition & 6 deletions sim/core/cast.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,12 +202,7 @@ func (spell *Spell) makeCastFunc(config CastConfig) CastSuccessFunc {
return spell.castFailureHelper(sim, "casting/channeling %v for %s, curTime = %s", hc.ActionID, hc.Expires-sim.CurrentTime, sim.CurrentTime)
}

if dot := spell.Unit.ChanneledDot; spell.Unit.IsChanneling(sim) && !spell.Flags.Matches(SpellFlagCastWhileChanneling) {
// Attempt to use a queued cast-while-casting spell mid-hard cast
if cwc := spell.Unit.castWhileCastingAction; cwc != nil {
cwc.OnAction(sim)
}

if dot := spell.Unit.ChanneledDot; spell.Unit.IsChanneling(sim) && !spell.Flags.Matches(SpellFlagCastWhileChanneling) && (spell.Unit.Rotation.interruptChannelIf == nil || !spell.Unit.Rotation.interruptChannelIf.GetBool(sim)) {
return spell.castFailureHelper(sim, "channeling %v for %s, curTime = %s", dot.ActionID, dot.expires-sim.CurrentTime, sim.CurrentTime)
}

Expand Down
31 changes: 29 additions & 2 deletions sim/core/debuffs.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,10 @@ func applyDebuffEffects(target *Unit, targetIdx int, debuffs *proto.Debuffs, rai
if debuffs.DemoralizingShout != proto.TristateEffect_TristateEffectMissing {
MakePermanent(DemoralizingShoutAura(target, 0, GetTristateValueInt32(debuffs.DemoralizingShout, 0, 5), level))
}
if debuffs.AtrophicPoison {
MakePermanent(AtrophicPoisonAura(target))
}

if debuffs.HuntersMark != proto.TristateEffect_TristateEffectMissing {
MakePermanent(HuntersMarkAura(target, GetTristateValueInt32(debuffs.HuntersMark, 0, 5), level))
}
Expand All @@ -247,6 +251,9 @@ func applyDebuffEffects(target *Unit, targetIdx int, debuffs *proto.Debuffs, rai
if debuffs.Thunderfury {
MakePermanent(ThunderfuryASAura(target, level))
}
if debuffs.NumbingPoison {
MakePermanent(NumbingPoisonAura(target))
}

// Miss
if debuffs.InsectSwarm && targetIdx == 0 {
Expand Down Expand Up @@ -563,8 +570,8 @@ func OccultPoisonDebuffAura(target *Unit, playerLevel int32) *Aura {
}

aura := target.GetOrRegisterAura(Aura{
Label: "Occult Poison I",
ActionID: ActionID{SpellID: 462286},
Label: "Occult Poison II",
ActionID: ActionID{SpellID: 1214170},
Duration: time.Second * 12,
MaxStacks: 5,
OnStacksChange: func(aura *Aura, sim *Simulation, oldStacks int32, newStacks int32) {
Expand Down Expand Up @@ -1268,6 +1275,16 @@ func DemoralizingShoutAura(target *Unit, boomingVoicePts int32, impDemoShoutPts
return aura
}

func AtrophicPoisonAura(target *Unit) *Aura {
aura := target.GetOrRegisterAura(Aura{
Label: "Atrophic Poison",
ActionID: ActionID{SpellID: 439473},
Duration: time.Second * 15,
})
apReductionEffect(aura, 205)
return aura
}

func VindicationAura(target *Unit, points int32, _ int32) *Aura {
aura := target.GetOrRegisterAura(Aura{
Label: "Vindication",
Expand Down Expand Up @@ -1320,6 +1337,16 @@ func ThunderfuryASAura(target *Unit, _ int32) *Aura {
return aura
}

func NumbingPoisonAura(target *Unit) *Aura {
aura := target.GetOrRegisterAura(Aura{
Label: "Numbing Poison",
ActionID: ActionID{SpellID: 439472},
Duration: time.Second * 15,
})
AtkSpeedReductionEffect(aura, 1.2)
return aura
}

func AtkSpeedReductionEffect(aura *Aura, speedMultiplier float64) *ExclusiveEffect {
return aura.NewExclusiveEffect("AtkSpdReduction", false, ExclusiveEffect{
Priority: speedMultiplier,
Expand Down
2 changes: 1 addition & 1 deletion sim/core/spell.go
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ func (spell *Spell) CanCast(sim *Simulation, target *Unit) bool {
}

// While channeling no other action is possible except rare cast-while-channeling spells
if spell.Unit.IsChanneling(sim) && !spell.Flags.Matches(SpellFlagCastWhileChanneling) {
if spell.Unit.IsChanneling(sim) && !spell.Flags.Matches(SpellFlagCastWhileChanneling) && (spell.Unit.Rotation.interruptChannelIf == nil || !spell.Unit.Rotation.interruptChannelIf.GetBool(sim)) {
//if sim.Log != nil {
// sim.Log("Cant cast because already channeling")
//}
Expand Down
Loading

0 comments on commit bc5afa0

Please sign in to comment.