3.4. If I understood the code correctly, what you do here:
https://github.com/Adex-8x/EoS-ASM-Effects/blob/92e3ba19ea7d9bbfdd6db3041a84f422529006f2/moves/gen7/strength_sap.asm#L110-L130
is apply the multiplicative attack boost to the amount of HP to heal, correct? Why not just multiply the HP amount by \<multiplicative boost> / 0x100? Much easier than counting bits.
Also, this current method is wrong since you overwrite the original value with each shift, so the first iteration does value >> 1, the next one does (value >> 1) >> 2, the third one does ((value >> 1) >> 2) >> 3 = value >> 6, etc.
I've been looking at some of the effects and I have noticed the following issues:
lsr
), in your effects you usually round them up Example: https://github.com/Adex-8x/EoS-ASM-Effects/blob/92e3ba19ea7d9bbfdd6db3041a84f422529006f2/moves/gen6/parabolic_charge.asm#L38-L41Strength Sap: 3.1. You could have declared a static array inside the file itself to store the multipliers and addressed it using the value of r0 instead of doing this https://github.com/Adex-8x/EoS-ASM-Effects/blob/92e3ba19ea7d9bbfdd6db3041a84f422529006f2/moves/gen7/strength_sap.asm#L44-L105
.byte 50, 52, 54, 56
...Considérate salvado3.2. These two lines will never be true: https://github.com/Adex-8x/EoS-ASM-Effects/blob/92e3ba19ea7d9bbfdd6db3041a84f422529006f2/moves/gen7/strength_sap.asm#L45-L46 since you check that the attack stage isn't <= 0 here: https://github.com/Adex-8x/EoS-ASM-Effects/blob/92e3ba19ea7d9bbfdd6db3041a84f422529006f2/moves/gen7/strength_sap.asm#L35-L36 3.3. https://github.com/Adex-8x/EoS-ASM-Effects/blob/92e3ba19ea7d9bbfdd6db3041a84f422529006f2/moves/gen7/strength_sap.asm#L108-L109mov r0, r0, lsr #8
3.4. If I understood the code correctly, what you do here: https://github.com/Adex-8x/EoS-ASM-Effects/blob/92e3ba19ea7d9bbfdd6db3041a84f422529006f2/moves/gen7/strength_sap.asm#L110-L130 is apply the multiplicative attack boost to the amount of HP to heal, correct? Why not just multiply the HP amount by \<multiplicative boost> / 0x100? Much easier than counting bits. Also, this current method is wrong since you overwrite the original value with each shift, so the first iteration does
value >> 1
, the next one does(value >> 1) >> 2
, the third one does((value >> 1) >> 2) >> 3
=value >> 6
, etc.