The salvage skill is a good idea. But you'll have to allow that ability to target dead unit. I think that you can target a dead unit only if the ability is going to cancel death. It's possible but it'll require some ASM skills. It happens here Set_some_data_for_current_attack The routine is called in Pre formula set up routine just after the return from the formulas.
And there might be others checks in the routines that modify target equipment...
I went to something slightly different : - Healing + absorb --> the Heal is boosted - Healing + cancel --> No Heal (taking it as an immunity to that element) - Healing + Weak --> Half the heal (like if the target is uncompatible to that element) - Healing + Half --> Normal amount : it's a heal, there's nothing to resist at. it could be think as an affinity to the element too (with a slight boost).
So after 9 you'll go to A then B until F, and then go back to 0. (So 8 + 4 = C). Your windows calculator can do the job too if you configure it to programmer (not sure how it's called in english). Then it will give you access to hexadecimal operations.
Anyway, if you want to affect all elements the value will be FF.
In FFTpacher, you can change his skillset abilities, you'll have to do it for all the chapters. Shishi allows you to change his sprite (but i understood that you will keep it) but it can be buggy in some events (unless some more complicated job - i don't know exactly what yet) If you want to change the class name to "holy knight" you'll have to use FFTactext.
Here is my first patch attempt : FFTPatcher status conditional formulas.
This hack allow to set conditional statuses for any formula. To do so you'll have to check the box under learn on hit. Once checked the routine will check Ability X value and will check if the statuses present in the Inflict status table (matching X value) are on the target. If Yes the formula keep going if not, it's a miss. NB : if the chance to learn end by 01 The hack will take Ability Y as Status ID.
By default one of the statuses is enough, but if you check the bottom box of the status type (value 0x01 while all or nothing is 0x80) all the statuses are necessary. If The 0x02 box is checked, then the conditional status will be deleted If the 0x04 box is checked, then the conditional status will be copy on the caster. If both are checked, it'll look like an absorption
The formula that add statuses should work normaly (so this hack is a solution for necromancy - conditional death canceled and then add undead). To do so i had to hack the 0x80184B24 routine (* see notes)
If the formula is absorbed (elemental) reversed (undead) or nullified, the conditional status will not be canceled nor absorbed. I've hacked the undead reversal formula (** see notes)
This hack use Kanji space (the very same place that in Xif video, because i know nothing about kanji space yet) I attached the xml (made with Xif sheet) and the sheet (allowing to move the location of the used kanji space if necessary).
I do this very slowly, having few time (like many ), and i tried to check everything before releasing it, but i don't check it the hard way (not every status in every situation) just every function (with immortal, mounted innate etc .. units). I hope it will do the job. If you find bugs, i'll try to fix them (but again, slowly).
Thanks for all the people around here , their tutorials and all the wiki infos, for allowing me to do this. It kept me busy in hard times. Special thanks to Xif for it's video tutorial that make me feel i can do this.
NB : this is a milestone. I intend to implement other functions (patcher friendly) and rework the formula system. I hope it'll save enough space to not use kanji space.
*note 1 : i hack the formula to alter the "can't stack on" part, so it'll ignore the conditional statuses that are going to be canceled (and freed 34 lines) **note 2 : i add some lines so if the formula is undead reversed it'll have the special flags 0x10 in current action special flags 2 (not used or unknowed ... nothing bad happened)
If there is some piece of code that are'nt relevant, it'll make the understanding of it more difficult (for me at least).
For the depht i believe there's at least another river with 2 depht (i remember some character with the nose in the water)...
But the way it's coded i think that float is checked ok, because the unit will be above water (and can use weapon guard)
For the chocobo part i never mount chocobo, but maybe they can swim and the unit will use weapon guard.
This frog and chicken thing will remain a mystery Maybe they swim too so they are checked (Independently of the fact that they can't use reaction ability...)
The end of the code is weird too, why r2 is multiplied by 2 !? in the return routine the only check is r2 <1 --> weapon guard usable (but writing this i realize there is other return routine, the answer may be over there)