-
Notifications
You must be signed in to change notification settings - Fork 38
[Feature] Raid buffs & debuffs #58
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
Conversation
| if (debuffs.criticalMass || debuffs.shadowAndFlame) { | ||
| debuffStats = debuffStats.addPseudoStat(PseudoStat.PseudoStatSpellCritPercent, 5); | ||
| } | ||
| // const debuffs = this.player.sim.raid.getDebuffs(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These comments can just be removed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If there are no more debuffs that boost character stats against that target in MoP, then we should remove this method entirely and also remove the "Debuffs" part of the character stats breakdown.
1337LutZ
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found a bug in the stacking Armor reduction
1337LutZ
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed the Armor bug & some UI input state bugs
NerdEgghead
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like there are also test failures to resolve.
sim/core/debuffs.go
Outdated
| func MortalWoundsArua(target *Unit) *Aura { | ||
| return majorHealingReductionAura(target, "Mortal Wounds", 115804, 0.25) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo, should be MortalWoundsAura()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, fixed
sim/core/debuffs.go
Outdated
| func ScheduledMajorArmorAura(aura *Aura, options PeriodicActionOptions, raid *proto.Raid) { | ||
| aura.OnReset = func(aura *Aura, sim *Simulation) { | ||
| aura.Duration = NeverExpires | ||
| StartPeriodicAction(sim, options) | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is needed anymore?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Deleted
sim/core/exclusive_effect_test.go
Outdated
| // Trauma in this case should *never* be overwritten | ||
| // as its duration from 'MakePermanent' should make it non overwritable by 1 min duration mangles |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update comment to reflect the new test cases being used.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated
sim/core/exclusive_effect_test.go
Outdated
|
|
||
| // In this case mangle should overwrite trauma as mangle will give a greater duration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update comment here as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated
| if (debuffs.criticalMass || debuffs.shadowAndFlame) { | ||
| debuffStats = debuffStats.addPseudoStat(PseudoStat.PseudoStatSpellCritPercent, 5); | ||
| } | ||
| // const debuffs = this.player.sim.raid.getDebuffs(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If there are no more debuffs that boost character stats against that target in MoP, then we should remove this method entirely and also remove the "Debuffs" part of the character stats breakdown.
| private updateRow(rowElem: Element, pickers: (IconPicker<Player<any>, any> | IconEnumPicker<Player<any>, any>)[]) { | ||
| console.log('Updating consumes row', pickers); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Put this behind an isDevMode() check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed it since its not needed
NerdEgghead
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good overall, just needs some cleanup.
| int32 mana_tide_totem_count = 35; | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to add count fields for Skull Banner and Stormlash Totem as well.
sim/core/buffs.go
Outdated
| func CommandingShoutAura(unit *Unit, asExternal bool, withGlyph bool) *Aura { | ||
| baseAura := makeExclusiveBuff(unit, BuffConfig{ | ||
| "Commanding Shout", | ||
| ActionID{SpellID: 469}, | ||
| []StatConfig{ | ||
| {stats.AttackPower, 1.2, true}, | ||
| {stats.AttackPower, 1.1, true}, | ||
| {stats.RangedAttackPower, 1.1, true}, | ||
| {stats.MP5, 326, false}, | ||
| {stats.Stamina, 1.1, true}, | ||
| }}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does Commanding Shout buff both AP and Stam in MoP?
| func UnleashedRageAura(u *Unit) *Aura { | ||
| return makeExclusiveBuff(u, BuffConfig{"Unleashed Rage", ActionID{SpellID: 30809}, []StatConfig{{stats.AttackPower, 1.2, true}, {stats.RangedAttackPower, 1.1, true}}}) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is different multipliers for melee vs. ranged AP here intended?
| var ManaTideTotemActionID = ActionID{SpellID: 16190} | ||
| var ManaTideTotemAuraTag = "ManaTideTotem" | ||
|
|
||
| const ManaTideTotemDuration = time.Second * 12 | ||
| const ManaTideTotemCD = time.Minute * 5 | ||
|
|
||
| func registerManaTideTotemCD(agent Agent, numManaTideTotems int32) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you intend to delete this? The proto field is still present.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mana Tide works differently in MoP, I've decided to leave it to be implemented later since it's more complex. It gives 200% of the casters Spirit, so we'd need an input for that etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added it back since it looks like it worked the same in cata (wrongly?)
| healingModel := options.HealingModel | ||
| if healingModel != nil { | ||
| if healingModel.InspirationUptime > 0.0 { | ||
| core.ApplyInspiration(&bdk.Unit, healingModel.InspirationUptime) | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If Inspiration / Ancestral Fortitude or equivalents no longer exist in MoP, then the inspiration_uptime field should also be deleted from the HealingModel proto.
ui/paladin/retribution/sim.ts
Outdated
| individualBuffs: IndividualBuffs.create({ | ||
| communion: true, | ||
| }), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IndividualBuffs also needs to be cleaned out if Replenishment is no longer a thing in MoP.
ui/priest/shadow/presets.ts
Outdated
| export const DefaultIndividualBuffs = IndividualBuffs.create({ | ||
| vampiricTouch: true, | ||
| darkIntent: true, | ||
| }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
darkIntent also needs to be removed from IndividualBuffs in MoP
ui/raid/raid_stats.tsx
Outdated
| label: 'Terrifying Roar', | ||
| actionId: ActionId.fromSpellId(90309), | ||
| playerData: playerClass(Class.ClassDruid), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you meant Hunter here.
ui/raid/raid_stats.tsx
Outdated
| label: 'Roar of Courage', | ||
| actionId: ActionId.fromSpellId(93435), | ||
| playerData: playerClass(Class.ClassWarrior), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be Hunter as well
ui/raid/raid_stats.tsx
Outdated
| label: 'Qiraji Fortitude', | ||
| actionId: ActionId.fromSpellId(90364), | ||
| playerData: playerClass(Class.ClassDruid), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be Hunter as well
proto/common.proto
Outdated
| bool commanding_shout = 4; // Warriors | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Group this with the other Stamina buffs.
proto/common.proto
Outdated
|
|
||
| // Major Mana Replenishment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Name this section "Raid Cooldowns" for generality.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also need to delete vampiric_touch, enduring_winter, soul_leach, revitalize, communion, power_infusion_count, focus_magic, and dark_intent from IndividualBuffs.
sim/core/buffs.go
Outdated
| CommandingShoutAura(unit, true, false) | ||
| CommandingShoutAura(u, false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be true rather than false.
sim/core/buffs.go
Outdated
| func HornOfWinterAura(unit *Unit, asExternal bool, withGlyph bool) *Aura { | ||
| baseAura := makeExclusiveBuff(unit, BuffConfig{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove the withGlyph input if it's no longer used.
sim/core/buffs.go
Outdated
| func BattleShoutAura(unit *Unit, asExternal bool, withGlyph bool) *Aura { | ||
| baseAura := makeExclusiveBuff(unit, BuffConfig{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove the withGlyph input if it's no longer used.
| func UnleashedRageAura(u *Unit) *Aura { | ||
| return makeExclusiveBuff(u, BuffConfig{"Unleashed Rage", ActionID{SpellID: 30809}, []StatConfig{{stats.AttackPower, 1.1, true}, {stats.RangedAttackPower, 1.1, true}}}) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This got changed from an AP buff to a Haste buff in MoP I believe.
ui/raid/raid_stats.tsx
Outdated
| { | ||
| label: 'Commanding Shout', | ||
| actionId: ActionId.fromSpellId(469), | ||
| playerData: playerClass(Class.ClassWarrior), | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be in the 'Stamina' section.
No description provided.