diff --git a/src/data/move.ts b/src/data/move.ts index 9329d21c1d4..25252cbb475 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2181,6 +2181,33 @@ export class AuraWheelTypeAttr extends VariableMoveTypeAttr { } } +export class RevelationDanceTypeAttr extends VariableMoveTypeAttr { + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if ([user.species.speciesId, user.fusionSpecies?.speciesId].includes(Species.ORICORIO)) { + const form = user.species.speciesId === Species.ORICORIO ? user.formIndex : user.fusionSpecies.formIndex; + const type = (args[0] as Utils.IntegerHolder); + + switch (form) { + case 1: // Baille Style + type.value = Type.FIRE; + break; + case 2: // Pom Pom Style + type.value = Type.ELECTRIC; + break; + case 2: // Pa'u Style + type.value = Type.PSYCHIC; + break; + default: // Sensu Style + type.value = Type.GHOST; + break; + } + return true; + } + + return false; + } +} + export class RagingBullTypeAttr extends VariableMoveTypeAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { if ([user.species.speciesId, user.fusionSpecies?.speciesId].includes(Species.PALDEA_TAUROS)) { @@ -5574,7 +5601,7 @@ export function initMoves() { .unimplemented(), new AttackMove(Moves.REVELATION_DANCE, Type.NORMAL, MoveCategory.SPECIAL, 90, 100, 15, -1, 0, 7) .danceMove() - .partial(), + .attr(RevelationDanceTypeAttr), new AttackMove(Moves.CORE_ENFORCER, Type.DRAGON, MoveCategory.SPECIAL, 100, 100, 10, -1, 0, 7) .target(MoveTarget.ALL_NEAR_ENEMIES) .partial(),