I was working with the Status Expansion patch and noticed that Restore can also remove benefical statuses introduced in that patch (Regen and Haste) as well as the old ring statuses (I’m not sure if that also happens on vanilla, I haven’t checked)
This wouldn’t be a big issue because nobody would use that staff to remove those status… unless it’s an AoE staff.
Some time ago I found the code for a AoE Restore called Alleviate Staff (From JP Hack, code made by @Pikmin1211 and @Ganzapy), but it had the issue of removing the good satuses, so I had to write some code to prevent that.
(Ignore the MSS, I have to change that)
The code for the Alleviate Staff is included, but if you only want the improved effect then you just need the TryAddUnitToRestoreTargetList.s
ItemRangeFix is required.
This was made with the Status Expansion hack, probably you’ll need to change some lines to make it work with the vanilla routine.
With some modifications you can make a tier system, just like in some Final Fantasy games, in which the base Esna (A magic spell that removes altered status) can only remove the most basic statuses and in higher tiers removes more or all statuses.
It can also be used for the opposite purpose and make a staff that removes benefical statuses on opponents.
For that I think you’ll have to modify the TryAddUnitToRestoreTargetList.s and change this
ldr r2, AreUnitsAllied mov r14, r2 .short 0xF800 lsl r0, #0x18 cmp r0, #0x00 beq End
ldr r2, AreUnitsAllied mov r14, r2 .short 0xF800 lsl r0, #0x18 cmp r0, #0x00 bne End
and then change the list of statuses on which it won’t work on.
I only tested it with a few statuses, but I think it works well, if someone finds a bug I’ll try to fix it.