-
Notifications
You must be signed in to change notification settings - Fork 759
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
Implement m(atk) / m(def) percent system #3290
Conversation
Apparently matk-percent isn't displayed on the client-side, although there is another value in Aegis named extMagicAttPercent that is being included in it, which is something completely different than matk-percent.
Even VS 2022 apparently can't handle the enum no matter what settings for the compiler ... Contemplating a solution atm that is least painful. EDIT: Applying that for now. |
Will leave the last 6 commits unsquashed for now and rebase after review. Please go ahead and review <3 |
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.
overall, code looks good to me. But I didn't test it nor compared to official. I plan to do that in a few days
Pull Request Prelude
Changes Proposed
Many skills use something called ATKPercentInfo & DEFPercentInfo in Aegis, the percentage bonuses are added up. (Both pre-re and re)
Every Bonus is in relation to it's skill and the strongest one according to abs(new_bonus) > abs(old_bonus) is chosen, when applying a new_bonus, if this is not met, then it won't be applied.
We're slightly deviating with the way we implement this, since Aegis keeps a map in order to keep track of the active Percent Buffs/Debuffs and their link to a skill, we won't do that.
Main purpose of this PR is to implement this system in order to be able to exclude these Percentage buffs from skills such as Asura Strike, which are not affected by Provoke or Curse for example.
This introduces values to the enum scb_flag which requires it to be 64 bit. This will only work
MSVC 2022with C23 or already in clang and gccIn order to improve MSVC nontheless, last commits show a solution by using an ifdefed typedef.
Issues addressed: #1532
List of commits this is based on from my private fork, so I can compare if needed: