Skip to content

Commit

Permalink
Merge pull request #499 from Polynomix/metrics
Browse files Browse the repository at this point in the history
Update elem preset and Sorrowsong proc chance fix
rosenrusinov authored May 20, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents ee438f6 + 72e2b75 commit fbd8766
Showing 14 changed files with 571 additions and 523 deletions.
4 changes: 2 additions & 2 deletions sim/common/cata/stat_bonus_procs.go
Original file line number Diff line number Diff line change
@@ -330,7 +330,7 @@ func init() {
Callback: core.CallbackOnSpellHitDealt | core.CallbackOnPeriodicDamageDealt,
ProcMask: core.ProcMaskSpellDamage,
Outcome: core.OutcomeLanded,
ProcChance: 0.1,
ProcChance: 1.0,
ICD: time.Second * 20,
}, func(sim *core.Simulation, _ *core.Spell, _ *core.SpellResult) bool {
return sim.IsExecutePhase35()
@@ -345,7 +345,7 @@ func init() {
Callback: core.CallbackOnSpellHitDealt | core.CallbackOnPeriodicDamageDealt,
ProcMask: core.ProcMaskSpellDamage,
Outcome: core.OutcomeLanded,
ProcChance: 0.1,
ProcChance: 1.0,
ICD: time.Second * 20,
}, func(sim *core.Simulation, _ *core.Spell, _ *core.SpellResult) bool {
return sim.IsExecutePhase35()
8 changes: 4 additions & 4 deletions sim/mage/arcane/TestArcane.results
Original file line number Diff line number Diff line change
@@ -934,15 +934,15 @@ dps_results: {
dps_results: {
key: "TestArcane-AllItems-Sorrowsong-55879"
value: {
dps: 26894.9183
tps: 26978.63293
dps: 27094.98124
tps: 27170.79935
}
}
dps_results: {
key: "TestArcane-AllItems-Sorrowsong-56400"
value: {
dps: 26992.08547
tps: 27073.11363
dps: 27214.23855
tps: 27287.3613
}
}
dps_results: {
8 changes: 4 additions & 4 deletions sim/mage/fire/TestFire.results
Original file line number Diff line number Diff line change
@@ -920,15 +920,15 @@ dps_results: {
dps_results: {
key: "TestFire-AllItems-Sorrowsong-55879"
value: {
dps: 29485.42293
tps: 28957.07562
dps: 29606.50892
tps: 29071.31687
}
}
dps_results: {
key: "TestFire-AllItems-Sorrowsong-56400"
value: {
dps: 29576.12095
tps: 29047.17035
dps: 29770.73961
tps: 29234.16307
}
}
dps_results: {
8 changes: 4 additions & 4 deletions sim/priest/shadow/TestShadow.results
Original file line number Diff line number Diff line change
@@ -955,15 +955,15 @@ dps_results: {
dps_results: {
key: "TestShadow-AllItems-Sorrowsong-55879"
value: {
dps: 27628.50603
tps: 26248.6525
dps: 27736.12427
tps: 26350.05089
}
}
dps_results: {
key: "TestShadow-AllItems-Sorrowsong-56400"
value: {
dps: 27764.27455
tps: 26372.86984
dps: 27873.71095
tps: 26482.09196
}
}
dps_results: {
952 changes: 476 additions & 476 deletions sim/shaman/elemental/TestElemental.results

Large diffs are not rendered by default.

13 changes: 10 additions & 3 deletions sim/shaman/elemental/thunderstorm.go
Original file line number Diff line number Diff line change
@@ -44,10 +44,17 @@ func (elemental *ElementalShaman) registerThunderstormSpell() {
elemental.AddMana(sim, elemental.MaxMana()*manaRestore, manaMetrics)

if elemental.Shaman.ThunderstormInRange {
for _, aoeTarget := range sim.Encounter.TargetUnits {
baseDamage := elemental.GetShaman().ClassSpellScaling * 1.62999999523 * sim.Encounter.AOECapMultiplier()
spell.CalcAndDealDamage(sim, aoeTarget, baseDamage, spell.OutcomeMagicHitAndCrit)
results := make([]*core.SpellResult, elemental.Env.GetNumTargets())
baseDamage := elemental.GetShaman().ClassSpellScaling * 1.62999999523
aoeMult := sim.Encounter.AOECapMultiplier()
spell.DamageMultiplier *= aoeMult
for i, aoeTarget := range sim.Encounter.TargetUnits {
results[i] = spell.CalcDamage(sim, aoeTarget, baseDamage, spell.OutcomeMagicHitAndCrit)
}
for i, _ := range sim.Encounter.TargetUnits {
spell.DealDamage(sim, results[i])
}
spell.DamageMultiplier /= aoeMult
}
},
})
13 changes: 10 additions & 3 deletions sim/shaman/fire_totems.go
Original file line number Diff line number Diff line change
@@ -80,10 +80,17 @@ func (shaman *Shaman) registerMagmaTotemSpell() {
TickLength: time.Second * 2,
BonusCoefficient: 0.08,
OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) {
baseDamage := shaman.ClassSpellScaling * 0.26699998975 * sim.Encounter.AOECapMultiplier()
for _, aoeTarget := range sim.Encounter.TargetUnits {
dot.Spell.CalcAndDealDamage(sim, aoeTarget, baseDamage, dot.Spell.OutcomeMagicHitAndCrit)
results := make([]*core.SpellResult, shaman.Env.GetNumTargets())
baseDamage := shaman.ClassSpellScaling * 0.26699998975
aoeMult := sim.Encounter.AOECapMultiplier()
dot.Spell.DamageMultiplier *= aoeMult
for i, aoeTarget := range sim.Encounter.TargetUnits {
results[i] = dot.Spell.CalcDamage(sim, aoeTarget, baseDamage, dot.Spell.OutcomeMagicHitAndCrit)
}
for i, _ := range sim.Encounter.TargetUnits {
dot.Spell.DealDamage(sim, results[i])
}
dot.Spell.DamageMultiplier /= aoeMult
},
},

17 changes: 14 additions & 3 deletions sim/shaman/firenova.go
Original file line number Diff line number Diff line change
@@ -32,12 +32,23 @@ func (shaman *Shaman) registerFireNovaSpell() {
ThreatMultiplier: 1,
BonusCoefficient: 0.164,
ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
results := make([][]*core.SpellResult, shaman.Env.GetNumTargets())
baseDamage := shaman.ClassSpellScaling * 0.78500002623
for _, aoeTarget := range sim.Encounter.TargetUnits {
for i, aoeTarget := range sim.Encounter.TargetUnits {
if shaman.FlameShockDot.Dot(aoeTarget).IsActive() {
results[i] = make([]*core.SpellResult, shaman.Env.GetNumTargets())
for j, newTarget := range sim.Encounter.TargetUnits {
if newTarget != aoeTarget {
results[i][j] = spell.CalcDamage(sim, newTarget, baseDamage, spell.OutcomeMagicHitAndCrit)
}
}
}
}
for i, aoeTarget := range sim.Encounter.TargetUnits {
if shaman.FlameShockDot.Dot(aoeTarget).IsActive() {
for _, newTarget := range sim.Encounter.TargetUnits {
for j, newTarget := range sim.Encounter.TargetUnits {
if newTarget != aoeTarget {
spell.CalcAndDealDamage(sim, newTarget, baseDamage, spell.OutcomeMagicHitAndCrit)
spell.DealDamage(sim, results[i][j])
}
}
}
16 changes: 16 additions & 0 deletions sim/shaman/talents.go
Original file line number Diff line number Diff line change
@@ -208,6 +208,18 @@ func (shaman *Shaman) applyRollingThunder() {
// allowedSpells = append(allowedSpells, shaman.LightningBolt, shaman.LightningBoltOverload, shaman.ChainLightning)
// allowedSpells = append(allowedSpells, shaman.ChainLightningOverloads...)

wastedLSChargeAura := shaman.RegisterAura(core.Aura{
Label: "Wasted Lightning Shield Charge",
Duration: core.NeverExpires,
ActionID: core.ActionID{
SpellID: 324,
Tag: 1,
},
OnGain: func(aura *core.Aura, sim *core.Simulation) {
aura.Deactivate(sim)
},
})

shaman.RegisterAura(core.Aura{
Label: "Rolling Thunder",
Duration: core.NeverExpires,
@@ -220,6 +232,10 @@ func (shaman *Shaman) applyRollingThunder() {
// if spell == allowedSpell {
if sim.RandomFloat("Rolling Thunder") < 0.3*float64(shaman.Talents.RollingThunder) {
shaman.AddMana(sim, 0.02*shaman.MaxMana(), manaMetrics)
if shaman.LightningShieldAura.GetStacks() == 9 {
//TODO maybe make it show on the timeline
wastedLSChargeAura.Activate(sim)
}
shaman.LightningShieldAura.Activate(sim)
shaman.LightningShieldAura.AddStack(sim)
}
6 changes: 6 additions & 0 deletions ui/core/proto_utils/action_id.ts
Original file line number Diff line number Diff line change
@@ -390,6 +390,12 @@ export class ActionId {
break;
case 'Fulmination':
name += ` (${this.tag + 3})`;
break;
case 'Lightning Shield':
if (this.tag == 1) {
name += ' (Wasted)'
}
break;
case 'Moonfire':
case 'Sunfire':
if (this.tag == 1) {
34 changes: 17 additions & 17 deletions ui/shaman/elemental/gear_sets/p1.gear.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
{
"items": [
{"id":65256,"enchant":4207,"gems":[68780,52208]},
{"id":65112},
{"id":65248,"enchant":4200,"gems":[52207],"reforging":165},
{"id":60232,"enchant":4096,"gems":[52208]},
{"id":65254,"enchant":4102,"gems":[52207,52236],"reforging":141},
{"id":65068,"enchant":4257,"gems":[0],"reforging":167},
{"id":65255,"enchant":4068,"gems":[52236,0],"reforging":141},
{"id":65092,"gems":[52236,52207],"reforging":167},
{"id":65257,"enchant":4110,"gems":[52208,52236]},
{"id":60235,"enchant":4069,"gems":[52208,52207]},
{"id":65076,"reforging":145},
{"id":65123},
{"id":65053,"reforging":141},
{"id":62047,"reforging":167},
{"id":65041,"enchant":3834},
{"id":65133},
{"id":64672,"gems":[52207],"reforging":147}
{"id":65256,"enchant":4207,"gems":[68780,52205]},
{"id":65112},
{"id":65258,"enchant":4200,"gems":[52207]},
{"id":60232,"enchant":4115,"gems":[52207]},
{"id":65004,"enchant":4102,"gems":[52207,52236]},
{"id":65068,"enchant":4257,"gems":[0]},
{"id":65255,"enchant":4107,"gems":[52207,0],"reforging":141},
{"id":65092,"gems":[52207,52207]},
{"id":65257,"enchant":4114,"gems":[52205,52236]},
{"id":60235,"enchant":4104,"gems":[52205,52207]},
{"id":65123},
{"id":65076},
{"id":62047},
{"id":65053,"reforging":141},
{"id":65017,"enchant":4097},
{"id":65133,"enchant":4091},
{"id":64673,"gems":[52207]}
]
}
2 changes: 1 addition & 1 deletion ui/shaman/elemental/gear_sets/preraid.gear.json
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@
{"id":64904},
{"id":62047,"reforging":162},
{"id":58183,"reforging":162},
{"id":64489,"enchant":3834,"reforging":141},
{"id":64489,"enchant":4097,"reforging":141},
{},
{"id":56372,"gems":[52207]}
]
1 change: 1 addition & 0 deletions ui/shaman/elemental/presets.ts
Original file line number Diff line number Diff line change
@@ -99,6 +99,7 @@ export const OtherDefaults = {
distanceFromTarget: 20,
profession1: Profession.Engineering,
profession2: Profession.Tailoring,
duration: 300,
};

export const DefaultConsumes = Consumes.create({
12 changes: 6 additions & 6 deletions ui/shaman/elemental/sim.ts
Original file line number Diff line number Diff line change
@@ -66,13 +66,13 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecElementalShaman, {
gear: Presets.P1_PRESET.gear,
// Default EP weights for sorting gear in the gear picker.
epWeights: Stats.fromMap({
[Stat.StatIntellect]: 0.22,
[Stat.StatIntellect]: 1.24,
[Stat.StatSpellPower]: 1,
[Stat.StatSpellCrit]: 0.67,
[Stat.StatSpellHaste]: 1.29,
[Stat.StatSpellHit]: 0.0,
[Stat.StatSpirit]: 0.0,
[Stat.StatMastery]: 0.0,
[Stat.StatSpellCrit]: 0.34,
[Stat.StatSpellHaste]: 0.57,
[Stat.StatSpellHit]: 0.59,
[Stat.StatSpirit]: 0.59,
[Stat.StatMastery]: 0.49,
}),
// Default consumes settings.
consumes: Presets.DefaultConsumes,

0 comments on commit fbd8766

Please sign in to comment.