server
server copied to clipboard
[LUA] Create job_utils/dark_knight and audit JA functionality
I affirm:
- [x] I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
- [x] I have read and understood the Contributing Guide
- [x] I've tested my code and the things my code has changed since the last commit in the PR, and will test after any later commits
What does this pull request do?
NOTE: These lists will be updated as progress is made on the PR.
Job Abilities
- Create job_utils/dark_knight.lua and populates necessary ability check and ability use functions.
- Moves functionality from all Dark Knight globals/abilities files to globals/job_utils/dark_knight.lua.
- Adjusts Arcane Circle duration handling and adds consideration for new ARCANE_CIRCLE_POTENCY mod.
- Sets up Arcane Crest to be usable against Arcana enemies only.
- Sets up Blood Weapon to add duration from the Enhances "Blood Weapon" effect mod.
- Sets up Consume Mana to apply during weaponskills.
- Adds Dark Seal merit and augment tracking to globals/job_utils/dark_knight.lua.
Effects
- Sets up the Arcane Crest status effect and debuffs.
- Sets up Dark Seal effect DARK_MAGIC_CAST and DARK_MAGIC_DURATION modifiers.
Spells
Mods
- Converts ARCANE_CIRCLE_DURATION from a 90s increase to a 50% increase on Chaos/Ignominy Sollerets.
- Creates ARCANE_CIRCLE_POTENCY and adds it to ability base strength on Chaos/Ignominy Sollerets.
- Creates ENHANCES_BLOOD_WEAPON and adds it to Blood Weapon base duration.
- Creates DARK_MAGIC_CAST and adds it to Dark Seal effect.
- Creates DARK_MAGIC_DURATION and adds it to Dark Seal effect.
- Creates ENHANCES_DARK_SEAL and adds it to Dark Seal subPower.
Core/LUA Functions
- Creates consumeManaBonus function in globals/weaponskills.lua
- Removes Dark Seal consideration from globals/spells/damage_spell.lua.
- Adds DARK_MAGIC_CAST handling to battleutils.cpp CalculateSpellCastTime function.
- Adds handling for removing Dark Seal after a successful Dark Magic spell cast to magic_state.cpp ApplyEnmity function.
Database
- Adjusts ARCANE_CIRCLE_DURATION from +duration to * %duration on Chaos/Ignominy Sollerets in item_mods.sql.
- Adds ARCANE_CIRCLE_POTENCY to Chaos/Ignominy Sollerets in item_mods.sql.
- Adds ENHANCES_BLOOD_WEAPON to augment 1287 in augments.sql.
- Adds ENHANCES_DARK_SEAL to augment 1370 in augments.sql.
- Adjusts Dark Seal merit values in merits.sql.
- Removes EFFECTFLAG_MAGIC_END from Dark Seal in status_effects.sql.
References
All job abilities - https://www.bg-wiki.com/ffxi/Dark_Knight
Steps to test these changes
- Upload changes to your server.
- Load the server.
- Use the
!changejob DRK 99command. - Use all JA's to confirm they do not throw errors.
- Test all JA's and compare their behavior to BGWiki JA descriptions.