Implement Circle ability dmg bonus #7477
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I affirm:
What does this pull request do?
Currently in LSB, all the "Circle" abilities (Holy/Arcane/Warding/Ancient Circle) simply add a certain amount of "Killer" property to every party member in range. (Killer Instinct isn't implemented yet.) However, this SE release outlining the July 21, 2009 FFXI update describes a change to how "Circle" abilities work.
Here's the relevant tidbit:
"The following Circle-type abilities have had their effects adjusted and will now grant enhanced resistance, defense, and attack against the specified monster family to party members within their area of effect.
Holy Circle / Arcane Circle / Warding Circle / Ancient Circle / Killer Instinct"
The value of this attack/defense bonus has been determined by the community to be about equal to the power of the added "Killer" effect. Example testing:
Sidebar: At first glance, that last thread seemed to show some evidence that Killer Instinct gave bonus damage/dt based on total killer effect. But that was only because they were wearing a Gausape which explicitly converts Killer effects to damage boost/damage taken, so we can consider that a completely unrelated detail.
In support of these findings, the japanese FFXI wiki describes Circle effects like so:
(Translated)
"Both damage up and damage reduction are effective against all types of damage , whether physical or magical . The effective value is the same as the race defense. The reduction when fighting NM is also the same. Damage reduction is multiplied separately from damage cut equipment , so for example, if you use a circle while your damage is -50% with cut equipment , the damage cut will be -50% x -15%, or -57.5%."
The Holy Circle page goes on to say that the holy circle damage bonus applies to all damage dealt, even damage from Atonement.
In summary, this change makes LSB's implementation of "Circle" abilities align with documented and tested retail behavior as it been since 2009. This can eventually be expanded to include all the different types of killer effects you can get from Killer Instinct, once that ability is implemented.
NOTE: I know a lot of this stuff is being migrated out of c++ and into lua, but as of now, this seemed to be the most straightforward approach to implementing this change. I'm happy to try a different approach, like move circleDmgAdjust to globals.utils, or to the new "xi.combat.utilities" once that's a thing, and assist with the migration however I can.
Steps to test these changes
Test all four circles (pld, sam, drg, and drk) to ensure they affect the potency of the following actions:
Repeat the main tests above (attacks, weaponskills, spells) with the appropriate AF piece that augments your circle, and see its potency increase by 2.
Repeat the main tests above (attacks, weaponskills, spells) against an NM instead of a standard mob, and see your potency decrease to 10 (down from 15). If you have your AF equipped, it should be 11 (down from 17).
Repeat the main tests above (attacks, weaponskills, spells) with pld, sam, drg, or drk as your subjob, and confirm your circle ability potency drops to 5%.