Block other ribbons when flip stats or inverse battle is active

This commit is contained in:
Sirz Benjie 2025-08-18 08:21:58 -05:00
parent 74136a9c2b
commit c7708be249
No known key found for this signature in database
GPG Key ID: 4A524B4D196C759E

View File

@ -120,17 +120,23 @@ export class GameOverPhase extends BattlePhase {
*/ */
private awardRibbons(): void { private awardRibbons(): void {
let ribbonFlags = 0n; let ribbonFlags = 0n;
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) { if (globalScene.gameMode.isClassic) {
ribbonFlags |= RibbonData.CLASSIC; ribbonFlags |= RibbonData.CLASSIC;
} }
if (isNuzlockeChallenge()) { if (isNuzlockeChallenge()) {
ribbonFlags |= RibbonData.NUZLOCKE; ribbonFlags |= RibbonData.NUZLOCKE;
} }
for (const challenge of globalScene.gameMode.challenges) {
const ribbon = challenge.ribbonAwarded;
if (challenge.value && ribbon) {
ribbonFlags |= ribbon;
}
} }
// Award ribbons to all Pokémon in the player's party that are considered valid // Award ribbons to all Pokémon in the player's party that are considered valid
// for the current game mode and challenges. // for the current game mode and challenges.