Skip to content

[lua] Moves healing spells to new combat framework - #11279

Open
Frankie-hz wants to merge 1 commit into
LandSandBoat:basefrom
Frankie-hz:healingae
Open

[lua] Moves healing spells to new combat framework#11279
Frankie-hz wants to merge 1 commit into
LandSandBoat:basefrom
Frankie-hz:healingae

Conversation

@Frankie-hz

Copy link
Copy Markdown
Contributor

I affirm:

  • I understand that if I do not agree to the following points by completing the checkboxes my PR will be ignored.
  • I understand I should leave resolving conversations to the LandSandBoat team so that reviewers won't miss what was said.
  • I have read and understood the Contributing Guide and the Code of Conduct.
  • I have 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?

Moves all cure spells into the xi.combat.action framework, matching the pattern already used by action_spikes_damage.lua and action_additional_effect luas. Same comment style and everything.

This comes with the globalization of healing spells and the removal of even more functions inside magic.lua so we can finally delete it.

Each spell script is now a cureTiers table plus a params table passed to executeSpellCure
White magic:

  • Cure I-VI
  • Curaga I-V
  • Cura I-III

Blue magic:

  • Pollen
  • Wild Carrot
  • Healing Breeze
  • Magic Fruit
  • Exuviation
  • White Wind
  • Plenilune Embrace

Cure I-VI keep the undead-enemy damage branch in the spell script before calling the framework as suggested.

Misc fixes:

  • Removed hardcoded IDs
  • target:wakeUp() was removed but addHP actually removed the same three sleep effects
  • Blue cures cast by a PC on an invalid target (wrong allegiance or object type) now return "no effect" like white magic cures, it had no target check at all
  • Fixes Cure VI not waking up targets

--this is too powerful and needs to be fixed when the rest of the curaga 5 numbers are determined

  • This note was inside Curaga Vs lua so I left a --TODO need capture for varication of healing numbers

Things left unchanged:

  • All formula tier constants
  • All minimum cure amounts
  • Afflatus Misery cap of 175
  • The fixed enmity on Cura (50 CE, 50 VE) and Cure V (300 CE, 600 VE).
  • Solace Stoneskin percentages

Steps to test these changes

The formula for heals did not actually change so casting and cure spell you should not see any difference from before vs after this PR.

Welcome to white mage fun...

  1. !changejob 3 99 (WHM 99)
  2. !addallspells
  3. !addalltrusts and summon a trust so aoe cures have a second target
  4. !hp 1 before any cure so the amount is not clamped by missing HP

Important things to test:

Afflatus Solace

  1. Use Afflatus Solace
  2. Cast Cure on yourself without Stoneskin up. Stoneskin should be granted at 25% of the cure amount. Check with !geteffects
  3. !additem 11186 (Orison Bliaut +1), equip it, repeat step 2. Should be 30%.
  4. !additem 11086 (Orison Bliaut +2), equip it, repeat step 2. Should be 35%.
  5. Cast Curaga and Cura. No Stoneskin should be granted.
  6. !addeffect stoneskin 100 60, then cast Cure. The existing Stoneskin should not be replaced.

25% of 34 is 8.5 -> floored to 8 /cheer
image
30% with chest on
image
No stoneskin on aoe
image

Target validation

  1. !zone 190
  2. Cast Cure on a Skeleton. It should take damage with the damage message.
  3. Cast Cure on a non-undead mob such as a bat. It should give "no effect".
image image

Divine Seal and Rapture

  1. !hp 1
  2. Use Divine Seal. Cast Cure. Amount should double.
  3. !hp 1
  4. !addeffect rapture (SCH 55 ability, not available on sub). Cast Cure. Amount should be 1.5x and Rapture should be gone from !geteffects.
image image

Cure Potency caps

  1. !setmod cure_potency 80. Cast Cure. Bonus should be 50%, not 80%.
  2. !setmod cure_potency 0
  3. !setmod cure_potency_ii 50. Cast Cure. Bonus should be 30%, not 50%.
  4. !setmod cure_potency_ii 0
image

Cure to MP

  1. !setmod cure2mp_percent 10
  2. Cast Cure IV. MP should increase by 10% of the amount healed.
  3. !setmod cure2mp_percent 0
    MP 107 -> 68 after cure iv cast
    Healed for 495 which means 107 - 88mp + 49 = 68mp
image

Afflatus Misery

  1. Use Afflatus Misery.
  2. Let a mob hit you.
  3. Cast Cura. You and the trust should both get the same bonus.
  4. Base cure should cap at 175 before multipliers.
  5. Cast Cura again without taking more damage. No bonus should apply.
    First is with it on and getting hit. Second is nothing on
image

Blue magic

  1. !changejob 16 99 (BLU 99)
  2. !addallspells and set Pollen, Wild Carrot, Healing Breeze, Magic Fruit, Exuviation, White Wind, and Plenilune Embrace.
  3. !hp 1 and cast each one. Amounts should match before this PR.
  4. Plenilune Embrace should grant ATK and MAB buffs matching the current moon phase.
image

After casting Plenilune Embrace
image

@Xaver-DaRed Xaver-DaRed self-assigned this Aug 27, 2026
@Xaver-DaRed Xaver-DaRed added the hold On hold, pending further action/info label Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hold On hold, pending further action/info

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants