Improvements & Additions
Improvements
Since the entire formula processing of the game has been outsourced to this mod to give you full control over all formulas, all of their functions had to be recreated in Lua.
Overall, the logic of all functions is exactly the same as in the vanilla game. However, there are also some changes like the following:
Middleware functions were appropriately split and reordered to allow for more granular control.
Duplicate or ineffectual functions weren't recreated. Formulas that used a duplicate will now use the original function instead.
Inverted some if statements to reduce nesting and improve readability.
Slightly adjusted the order of some statements to maintain consistency between all functions.
Removed ineffectual code that could have potentially caused issues with certain function combinations.
Removed duplicated and redundant code.
Fixed an issue where a Quickening would always remove the status effects Sleep & Confuse from the target, regardless of what was configured in Battlepack Section 14.
Additions
The original formula processing structures were very limited and had a lot of duplicate, unused and redundant properties. To reduce complexity and improve readability, they were redesigned from scratch. This also opened up new possibilities such as:
The caster now shares the same modification capabilities as the target, instead of just being able to modify their hp, mp and level. This includes status effects, augments, stats, elemental affinities and more.
A Quickening, Concurrence and Esper-Ultimate now share the same modification capabilities as every other action, instead of just being able to modify the target's hp.
The caster of a trap is now the character that triggered it, instead of there being none.
The caster of a chain benefit is now the character that collected the dropped loot, instead of there being none.
A character's vitality, speed, attack power and elemental potency can now also be modified.
A character's mist charges can now be modified separately from mist bars and mp.
A character's augments can now be modified all at once instead of only 2-3 at a time.
Gil can now also be removed instead of only added.
Content (e.g. Potion) can now also be added instead of only removed. In addition, the count can now also be chosen instead of always being at 1.
The party can now teleport to a location.
The formula processing cause (e.g. character, gambit, trap, ...) can now be checked.
Functions
The following functions received specific changes:
132, 136, 137, 138, 139, 147, 153, 195, 201
Fixed an issue where if the function wasn't successful, the next formula functions wouldn't be skipped which could lead to unexpected behavior.
181, 182, 185
Fixed an issue where adding the status effect Bubble to an undead target without it wouldn't double their current hp.
181, 182, 185
Fixed an issue where adding the status effect Bubble to an undead target without it would result in the next formula functions to be skipped and the formula to be declared as missed.
17
Fixed an issue where a division by 0 could occur if the action's power multiplier was 0.
18
Fixed an issue where the function would have no effect on a reserved target.
72
Will now check if the caster's offhand is empty (None) rather than if it's invalid.
72
No longer checks if the caster's offhand is Unarmed which can never be the case anyway.
116
Fixed an issue where some combinations of the caster's and target's status effects (reverse) and classification (undead) would result in a healing text with a value of 0 being displayed, even if their hp wasn't modified.
180
Fixed an issue where removing a status effect would set its (now unused) duration to 255 instead of 0.
185
Fixed an issue where adding the status effect Disable to a target wouldn't prevent them from countering.
185
Fixed an issue where adding the status effect KO to a target wasn't possible even if the action's status effects included it.
185
Fixed an issue where the target's status effect duration and tick wouldn't be correctly set to those of the caster if the status effect's default duration was set to 255 and its default tick to higher than 0 (excl. doom and petrify).
195
Fixed an issue where if the target was a party member, the game would crash. Instead, the formula will just miss now.
195
Fixed an issue where the forced steal rarity debug setting could be overruled by the randomly selected rarity.
201
Will no longer add the status effects Protect or Shell to the target if they are immune to it via the Status-Immunity augment.
224
If the action or caster's equipment is invalid, all formula functions will be skipped to prevent unintended behavior.
228
Will now skip all formula functions if the action can not hit a target with the status effects KO or Stone, rather than allowing it with specific formulas.
228
Will now skip all formula functions if the target has the status effect X-Zone, regardless of the action's formula.
281
Traps can now trigger all actions instead of only those with an identifier between 245 and 261.
283
Fixed an issue where an action would still have an effect on a target (excl. changes to hp) that becomes immune to it by a paling (physical / magickal immunity) after the action is cast, but before it hits them.
283
Fixed an issue where an action wouldn't have an effect on a target that is immune to it by a paling (physical / magickal immunity) before the action is cast, but no longer before it hits them.
305, 306
If the status effect KO was added to a character, their hp will be set to 0 instead. This behavior is now global instead of only specific to some functions.
305, 306
If the status effect Bubble was added to a character without it, their current hp will be doubled. This behavior is now global instead of only specific to some functions.
305, 306
If the status effect Bubble was removed from a character with it, their current hp will be halved. This behavior is now global instead of only specific to some functions.
306
If the status effect Disable was added to the target, they will be prevented from countering. This behavior is now global instead of only specific to some functions.
307
The knockback range will no longer be set to 2 if the target is not actively in battle as then knockback can not applied anyway.
308
If one hit kill is enabled, the target's hp will be set to 0 instead of reduced by 99999.
308
One hit kill will now also work if the action is a Quickening, Concurrence or Esper-Ultimate.
322
Fixed an issue where casting an action on a single reserved party member would show the "hp is restored" and "mp is restored" combat logs if hp/mp was both added and removed, but the latter was higher than the former.
322
Fixed an issue where casting an action on a single reserved party member wouldn't show the "hp is restored" and "mp is restored" combat logs if the hp/mp was set to a higher value instead of added on top the current one.
323, 324
Will no longer prevent modifying a character's hp if they have the status effects KO, Stone or X-Zone.
323, 324
Will no longer prevent adding the status effects KO, Stone, and X-Zone to a character if they already have one of them.
323, 324
When modifying hp/mp, the color of the text shown will now be green or red based on if intent was positive or negative where as the latter has priority. Unlike in vanilla, healing and damaging a foe by the same amount will now show a red text instead of a green one, to better align with the following hit animation.
323, 324
Fixed an issue where the status effect KO would be removed from a character if their hp was equal to or lower than 0 instead of their hp low limit.
323, 324
Fixed an issue where if the status effects KO, Stone or X-Zone couldn't be added to a character (e.g. god mode), the status effect's (tick) duration would still be updated.
327, 328
The KO combat log will now be shown based on if the status effect was added instead of whether the current hp is lower than the hp low limit.
327, 328
The KO combat log will no longer be shown if a character was killed and revived at the same time.
330
Fixed an issue where casting an action on a reserved party member would only show the "had no effect" combat log if the action missed instead of when it wasn't successful (e.g. immune).
330
Fixed an issue where casting Cure on a single reserved party member would show a combat log that implies the hp of multiple targets were restored.
330, 331
Fixed an issue where casting an action that restores hp on multiple reserved party members wouldn't show a combat log (excl. Cura, Curaja, Renew, Megalixir).
330, 331
Casting an action that removes status effects on multiple reserved party members will now show a combat log based on if the status effects are positive ("dispelled") or negative ("cured"). If it removes at least one of each, both combat logs will be shown. This behavior now matches combat logs shown for actions cast on a single reserved party member.
330, 331
Fixed an issue where casting an action that removes status effects on multiple reserved party members wouldn't show a combat log (excl. Dispelga & Esunaga).
330, 331, 332
Fixed an issue where some combat logs couldn't be shown with others.
Last updated