From dd03887d05cd9d5680cce7146a968a30323c2466 Mon Sep 17 00:00:00 2001 From: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com> Date: Mon, 18 Aug 2025 20:37:43 -0500 Subject: [PATCH] [Challenge] [Beta] Block other ribbons when flip stats or inverse battle is active (#6289) --- src/phases/game-over-phase.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/phases/game-over-phase.ts b/src/phases/game-over-phase.ts index dc4a138c444..dcde244ecd3 100644 --- a/src/phases/game-over-phase.ts +++ b/src/phases/game-over-phase.ts @@ -120,18 +120,24 @@ export class GameOverPhase extends BattlePhase { */ private awardRibbons(): void { let ribbonFlags = 0n; - if (globalScene.gameMode.isClassic) { - ribbonFlags |= RibbonData.CLASSIC; - } - if (isNuzlockeChallenge()) { - ribbonFlags |= RibbonData.NUZLOCKE; - } for (const challenge of globalScene.gameMode.challenges) { const ribbon = challenge.ribbonAwarded; if (challenge.value && ribbon) { ribbonFlags |= ribbon; } } + // Block other ribbons if flip stats or inverse is active + const flip_or_inverse = ribbonFlags & (RibbonData.FLIP_STATS | RibbonData.INVERSE); + if (flip_or_inverse) { + ribbonFlags = flip_or_inverse; + } else { + if (globalScene.gameMode.isClassic) { + ribbonFlags |= RibbonData.CLASSIC; + } + if (isNuzlockeChallenge()) { + ribbonFlags |= RibbonData.NUZLOCKE; + } + } // Award ribbons to all Pokémon in the player's party that are considered valid // for the current game mode and challenges. for (const pokemon of globalScene.getPlayerParty()) {