Tick residuals after each move in Gen 1 mode

In pokered, MainInBattleLoop calls HandlePoisonBurnLeechSeed right
after every Execute*Move (core.asm:426-464), so a seeded, poisoned or
burned mon takes its residual before the slower side acts. The port
ran the whole sweep in endOfTurn, which made leech seed behave like
Gen 3+ and never showed the drain animation (#784).

The residual sweep now runs per action under the gen1_faithful
ruleset, gated by a new residualAfterMove flag; modern_clean keeps
the end of round sweep. The leech seed drain plays the ABSORB
animation from the healing side, the way the original flips
hWhoseTurn before PlayMoveAnimation. Item, ball, failed run and
ghost-fear turns still tick the player's residual, matching
ExecutePlayerMoveDone.
This commit is contained in:
johnjohto
2026-08-04 12:06:21 -04:00
parent 1820f411ae
commit ba8ac3d143
5 changed files with 237 additions and 3 deletions
+4
View File
@@ -19,4 +19,8 @@ return {
-- Gen 1 Hyper Beam: no recharge when the target faints (or its
-- substitute breaks). Set false to always recharge like Gen 2+.
hyperBeamSkipRechargeOnKO = true,
-- Gen 1 runs HandlePoisonBurnLeechSeed right after each side's move
-- (core.asm:426-464): poison/burn/leech seed tick before the slower
-- mon acts, not in an end-of-round sweep like Gen 3+.
residualAfterMove = true,
}
+3
View File
@@ -13,4 +13,7 @@ return {
enemyUnlimitedPP = false,
-- Gen 2+: Hyper Beam always forces a recharge turn, even on a KO.
hyperBeamSkipRechargeOnKO = false,
-- Gen 3+ style: poison/burn/leech seed tick in an end-of-round sweep
-- after both sides have moved.
residualAfterMove = false,
}