Adex-8x / EoS-ASM-Effects

This repository contains my ASM effects (moves and special processes) for EoS!
GNU General Public License v3.0
8 stars 0 forks source link

A Few Notes from the Present #2

Closed Jawshoeuh closed 1 year ago

Jawshoeuh commented 1 year ago

As a general statement that you already know, it would save time (it's probably not a big deal at the end of the day) to shift right by two whenever you want to divide by 2. Second general statement is that RaiseHP should store a flag on the stack for a message for healing moves. EDIT: Third general statement Fire type moves like V-create should call 0x02307C78 (which I have called TryThawTarget) first because fire type moves thaw frozen targets. 0x02307C78 takes user in r0, and target in r1. EDIT: Fourth general statement, for secondary effects that are guaranteed (like for Icy Wind/Inferno), RandomChanceUT needs to be called with guaranteed chance anyway (0) because of the check for Shield Dust is inside of it...

  1. Entrainment It should probably call 0x022FA7DC before the end like in Skill Swap to see if the new ability on the target should end any current effects on the target. For example, if Own Tempo should end confusion. https://github.com/Adex-8x/EoS-ASM-Effects/blob/main/moves/gen5/entrainment.asm

  2. Acrobatics It may not be necessary, but in case the value of the held item is stale (I can't think of any examples in the game where it does this) you may want to check the existence bitflag just in case. https://github.com/Adex-8x/EoS-ASM-Effects/blob/b6ff03d305a4057ef692fab63c527adf3d637088/moves/gen5/acrobatics.asm#L31-L33

  3. Hex Unfortunately, I think the sleepless status from worry seed (and maybe uproar) also uses 0xBD so you may want to check if the target is actually asleep. image https://github.com/Adex-8x/EoS-ASM-Effects/blob/b6ff03d305a4057ef692fab63c527adf3d637088/moves/gen5/hex.asm#L31-L33

  4. Parabolic Charge DoMoveDamageDrain sets 0x108 (related to exp if the target dies if I recall) to 1 if it is equal to 0 for the user. So, I would assume you may want to do it here. https://github.com/Adex-8x/EoS-ASM-Effects/blob/main/moves/gen6/parabolic_charge.asm

  5. Topsy-Turvy We definitely talked about this one, but I think there was something you needed to change. https://github.com/Adex-8x/EoS-ASM-Effects/blob/main/moves/gen6/topsy-turvy.asm

  6. Speed Swap I think you should call UpdateStatusIconFlags at the end. It's called at the end of both LowerSpeed and BoostSpeed. https://github.com/Adex-8x/EoS-ASM-Effects/blob/main/moves/gen7/speed_swap.asm

  7. Poltergeist Similar to acrobatics, you may want the check the item existence flag. (I can't think of anything in base game where the value is not properly changed, but it is checked first in the game.) https://github.com/Adex-8x/EoS-ASM-Effects/blob/b6ff03d305a4057ef692fab63c527adf3d637088/moves/gen8/poltergeist.asm#L35-L37

  8. Steel Beam Reminder to add the max HP boost to the health. https://github.com/Adex-8x/EoS-ASM-Effects/blob/b6ff03d305a4057ef692fab63c527adf3d637088/moves/gen8/steel_beam.asm#L37-L38

  9. Spectral Thief Probably should call UpdateStatusIconFlags at the end for both targets. https://github.com/Adex-8x/EoS-ASM-Effects/blob/main/moves/gen7/spectral_thief.asm

EDIT:

  1. Soak This should probably fail if the user's ability is Forecast like Conversion and Conversion 2 does. I haven't tested it so I don't know if it actually causes issues when the weather changes, but it may be a necessary fix. Also, when the type of a Pokemon is changed from the default 0xFF in their struct is set to 1. See (DoMoveConversion, DoMoveCamouflage, or 0x022F94F0)
Adex-8x commented 1 year ago

Thanks! Addressed all of these in d829554593db1c2b394d68dc81853d21d7dca550