-
Notifications
You must be signed in to change notification settings - Fork 47
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
[Item] Dragonwrath, Tarecgosa's Rest #989
Conversation
sim/common/cata/dragonwrath.go
Outdated
return | ||
} | ||
|
||
// make sure the same spell impact can only trigger once per timestamp (AoE Impact spells like Arcane Explosion or Mind Sear) |
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 might prevent multiple Chain Lightning Overloads from being duplicated
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.
You might be right. Trigger/Proc systems are always the hardest to get right even when I was working on p-servers as they heavily depend on how blizz actually implemented stuff.
I suppose we have the following:
TARGET_UNIT_TARGET_ENEMY
- proc per target even chain targetsTARGET_UNIT_DEST_AREA_ENEMY
andTARGET_UNIT_SRC_AREA_ENEMY
- per cast no matter how many targets- Usually those are spells like concecrate, blizzard, arcane explosion or mind sear.
Obviously we don't have access to the target enums for the spells but I guess we need to be able to configure those spells in the class setup. I'll take a look to provide a clean API.
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 meant more because of 2 different overload proc. You chain lightning on 3 targets, 2 of those hits procs CL Overload and both of those overloads can be duplicated, they're 2 different spells with same id happening at the same time. As to how the duplicated spell will work (only first target, new chain, 1 hit per target), i guess there is no way to know
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 more and more wish we had a differenitation between spells and casts i guess xD
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.
So I refactored spell configuration a bit and added some hopefully nice to use APIs around it. What you described should now be the default case and can be configured to be handled otherwise easily.
* Also adds a custom handler for the script effect of Conflagrate
@1337LutZ Do you have the time and would want to look into how we could display a, perferably spec specific disclaimer for DTR in the UI? Right now I have desigend the staff's implementation that allows us to implement it spec by spec. So the accuracy may very from spec to spec. |
Sure thing! |
sim/druid/balance/dragonwrath.go
Outdated
func init() { | ||
cata.CreateDTRClassConfig(proto.Spec_SpecBalanceDruid, 0.072). | ||
AddSpell(8921, cata.NewDragonwrathSpellConfig().SupressImpact()). // Moonfire | ||
AddSpell(93402, cata.NewDragonwrathSpellConfig().SupressImpact()) // Sunfire |
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.
Please consider having a spell proc chance override. It seems like there are spells with very low proc chance, like Mushrooms and Typhoon - https://www.mmo-champion.com/threads/967211-FAQ-Dragonwrath-Tarecgosa-s-Rest-and-you-a-Balance-Druid
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.
Right now I assume the 'low' proc chance reported is due to the fact that both typhoon and shrooms only get a single proc rool per 'cast' which hits serveral targets, which is to be expected.
Adding a custom proc chance later on would be very easy. I can just add a proc chance overwrite on the SpellConfig
for the class if testing should confirm this.
Just merged master into this branch since there were quite some conflicts |
* Add proper implementation of flat crit scaling for lava burst abstraction * Add new class support * Add more DTR framework methods
@InDebt Would it be an idea to for now only enable DTR under the Experimental flag? |
sim/mage/blast_wave.go
Outdated
if targetCount > 1 { | ||
mage.FlamestrikeBW.Cast(sim, target) | ||
} | ||
// if targetCount > 1 { |
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 this commented code 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.
Yes. I moved the Improved Flamestrike logic into the talent and commented the previous code during testing. Will remove it, as it seems to work as I want.
Right now damage gains are close together. Do we even get the 'experimental' flag with the proto request so I could disable / enable class support on the backend? Because otherwise we'd need to thide the staff alltogether behind that flag. |
As discussed in Discord let's wait with merging for now 👌 |
* Reduce latency to process on same sim tick * Update eclipse behaviour for Druids to match live (proc on cast complete, remove on damage done) * Update Wild Mushrooms spell implementation to properly work with DTR * Update some spells to not proc off procs properly * Update Volcano Trinket to count as a Weapon Proc correctly * Remove certain impact supressions that have now been validated * Update proc chances * Add AoE proc chance supression for AoE abilities
* Also fixup possible crash for t13 mages
@1337LutZ and others of course. I think we're in a state where we could give this out for preliminary testing. There will certainly be minor things I will inevitably have missed, so I think it's a good point to let others help out find those things 😁 . Lutz already went and did some math and at least the current gains from DTR seem to be within expectations. |
Super awesome, and thanks for all your hard work on making a extensible implementation. ❤️ |
This is the implementation PR for Dragonwrath, Tarecgosa's Rest.
Implements #946 for further information.
Note
This is an early draft encouring early feedback and participation. Class specific implementations are highly encouraged as I don't know how much time I have a week to get this finished.
Current status
Open topics
On retail Spells instantiate casts which carry a lot of meta information on the actual circumstances and values used during their instantiation. Like base spell power when cast, attackpower and so on. Most importantly casts know the meta data for their calculations. I.e. The pulse lightning capaciatotor knows the charges it was triggered with or Fulmination the lightning shield stacks it was triggered with. In theory DRT copies casts not spells. Therfore the meta data is the same and the same calculations will be used causing fulimnation and capacitator to use the same aura charges for damage calculations. This is something rather tricky to realize right now in our backend and we have to see if all instances can simply "missuse" the
BonusSpellDamage
field for such things.