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 {
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) {
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;
}
}
// Award ribbons to all Pokémon in the player's party that are considered valid
// for the current game mode and challenges.