are the Resists still retained in their original RAM byte? will they still cause Weak to their "opposite" element, or will having been reclassified as Absorb prevent that from happening? iow, order of operations might matter if the answer to the first question is "no".
also, is there any further Penalty for Absorb? e.g. will opposite elements become Very Weak (or instant death ;) )?
Having something classified as Absorb does nothing to the corresponding weakness, indeed.
------
that would make things a bit all-or-none, no? suppose you have one piece of equipment that Resists ElementX, and another that is Immune to ElementY. in your scenario, i think that ElementX and ElementY would wind up both being treated as Immune.
ah, maybe that's what you were striving for.
but i see merit to the existing way (with your bugfix to stop lingering Very Weak applied, of course) of having Resists and Immunities alongside one another, along with their varying penalties of Weaks and Very Weaks. obviously, maintaining multiple categories has more precision. and as i mentioned in my prior post, there's a nice parallelism to this system.
i would say that Square took this path because they wanted you to be able to have Resists and Immunities co-existing. it is a departure from what they did with Absorb, but still plenty logical. despite Absorb and Immune starting off as bits in the same data byte, they indeed had different systems employed for their implementation. it's hard to pick one method over the other (though i find the Absorb way less intuitive).
Indeed, it does make things all or none, but seeing the behavior of the Cursed Ring, I can't help but think that may have been their original intention before they implemented in the Immune system. In any case you bring up a fair point, it is less versatile and the game does respond positively to having multiple resistances and immunities of different sorts.
[for physical attacks]
FF2/4/4ET (SNES)
Weakness > Immunity > Absorb/Resistance
Weakness and Very Weak are kept separate with Very Weak taking precedence where applicable.
if both of these are true, then is Adamant Armor garbage against elemental physicals in FF4DS? or does that game use the GBA elemental priority:
FF4A (GBA)
Immunity > Weakness > Absorb/Resistance
?
FFIV:DS uses a slightly altered system which, in my opinion, is more balance oriented and in that game enemies have Elemental Physicals enabled and to my recollection I recall nothing bad about them in that game. I believe they either avoided the origin or just coded it in a different fashion.
We can take a look at my documented Fight Routine and see if that is indeed the case in FFIV though...
And... it is.
$03/C650 A9 02 LDA #$02 A:0000 X:0300 Y:0000 P:envMxdiZC - Load a 02 into A.
$03/C652 8D FE 38 STA $38FE [$7E:38FE] A:0002 X:0300 Y:0000 P:envMxdizC - Store A at 7E38FE (presumably a data altering field x2 (Default) Power)
$03/C655 8D FF 38 STA $38FF [$7E:38FF] A:0002 X:0300 Y:0000 P:envMxdizC - Store A at 7E38FF (as above)
$03/C658 AD 99 26 LDA $2699 [$7E:2699] A:0002 X:0300 Y:0000 P:envMxdizC - Load A from Caster's Attack Elemental Copy Data.
$03/C65B 8D 00 36 STA $3600 [$7E:3600] A:0008 X:0300 Y:0000 P:envMxdizC - Store A in 7E3600.
$03/C65E 2D 21 27 AND $2721 [$7E:2721] A:0008 X:0300 Y:0000 P:envMxdizC - Check the value of A against the Target's Very Weak Elemental.
$03/C661 F0 07 BEQ $07 [$C66A] A:0000 X:0300 Y:0000 P:envMxdiZC - Branch if there is no match to 03C66A.
--------------------------------------------------------------------------------------------------------------------------------
$03/C663 A9 08 LDA #$08 A:0008 X:0400 Y:0000 P:envMxdizC - Load a 08 into A.
$03/C665 8D FE 38 STA $38FE [$7E:38FE] A:0008 X:0400 Y:0000 P:envMxdizC - Store A in 7E38FE (Presumably a data altering field - x4 Power)
$03/C668 80 2B BRA $2B [$C695] A:0008 X:0400 Y:0000 P:envMxdizC - Always Branch to 03C695.
--------------------------------------------------------------------------------------------------------------------------------
$03/C66A AD 99 26 LDA $2699 [$7E:2699] A:0000 X:0300 Y:0000 P:envMxdiZC - Load Caster's Attack Elemental from Data Copy into A.
$03/C66D 2D 20 27 AND $2720 [$7E:2720] A:0008 X:0400 Y:0000 P:envMxdizC - Check the value of A against the Target's Elemental Weakness.
$03/C670 F0 07 BEQ $07 [$C679] A:0008 X:0400 Y:0000 P:envMxdizC - Branch if there is no match to 03C66A.
-------------------------------------------------------------------------------------------------------------------------------
$03/C672 A9 04 LDA #$04 A:0008 X:0400 Y:0000 P:envMxdizC - Load 04 into A.
$03/C674 8D FE 38 STA $38FE [$7E:38FE] A:0004 X:0400 Y:0000 P:envMxdizC Store it at 38FE (x2 Power)
$03/C677 80 1C BRA $1C [$C695] A:0004 X:0400 Y:0000 P:envMxdizC - Always Branch to 03C695.
---------------------------------------------------------------------------------------------------------------------------------
$03/C679 AD 99 26 LDA $2699 [$7E:2699] A:0000 X:0000 Y:0000 P:envMxdiZC - Load Caster's Elemental Attack from Data Copy into A.
$03/C67C 2D 26 27 AND $2726 [$7E:2726] A:0000 X:0000 Y:0000 P:envMxdiZC - Check it against Target's Elemental Immunity.
$03/C67F F0 07 BEQ $07 [$C688] A:0000 X:0000 Y:0000 P:envMxdiZC - Branch if there is no match to 03C688.
----------------------------------------------------------------------------------------------------------------------------------
$03/C681 A9 00 LDA #$00 A:0008 X:0400 Y:0000 P:envMxdizC - Load 00 into A.
$03/C683 8D FE 38 STA $38FE [$7E:38FE] A:0000 X:0400 Y:0000 P:envMxdiZC - Store A in 38FE (x0 Power=1 Damage no matter what)
$03/C686 80 0D BRA $0D [$C695] A:0000 X:0400 Y:0000 P:envMxdiZC - Branch to 03C695.
------------------------------------------------------------------------------------------------------------------------------------
$03/C688 AD 99 26 LDA $2699 [$7E:2699] A:0000 X:0400 Y:0000 P:envMxdiZC - Load A from Caster's Elemental Attack Data in Data Copy.
$03/C68B 2D 25 27 AND $2725 [$7E:2725] A:0008 X:0400 Y:0000 P:envMxdizC - Check it against the Target's Resistance Byte in Data Copy.
$03/C68E F0 05 BEQ $05 [$C695] A:0008 X:0400 Y:0000 P:envMxdizC - Branch to 03C695 if there is no match.
-------------------------------------------------------------------------------------------------------------------------------------
$03/C690 A9 01 LDA #$01 A:0008 X:0400 Y:0000 P:envMxdizC - Load 01 into A.
$03/C692 8D FE 38 STA $38FE [$7E:38FE] A:0001 X:0400 Y:0000 P:envMxdizC Store it in a damage altering field (x1 (1/2) Power
-----------------------------------------------------------------------------------------------------------------------------------
Very Weak/Weak/Immune/Resistance, as has been said.
It would be a very simple matter to reorder these to something more conducive to accurately reflect the order of which it should go. And FFIV has the strange case of branching away whenever it hits upon a certain facet. But to put it plainly. The attacks made by any dual-wielder are calculated together, including their elementals, which is why the Ice and Fireclaw work as they do. The question is, what should be the order these go in?
The Tower of Babil Docs has the way it works with spell in clear portions. (using V1.0 instead of 1.1 as my research has focused on) at the bottom of the page, and that goes Immune(+Absorb)/Resists(+Absorb)/Very Weak/Weak.
http://rb.thundaga.com/tob/spellcode.txtAbsorb Elemental is taken from a very different place in the Fight Routine and is never invoked in relation to Elementals.
[/code]