diff --git a/teams.pokemonshowdown.com/src/teams-view.tsx b/teams.pokemonshowdown.com/src/teams-view.tsx index 3277466fb..e37bb3702 100644 --- a/teams.pokemonshowdown.com/src/teams-view.tsx +++ b/teams.pokemonshowdown.com/src/teams-view.tsx @@ -173,8 +173,73 @@ function PokemonSet({ set }: { set: Dex.PokemonSet }) { move = move.slice(0, 13); move = `${move}[${hpType}]`; } + + let moveType = Dex.moves.get(move).type; + let item = Dex.items.get(set.item); + if (item) { + if (move === 'Judgment' && item.onPlate && !item.zMoveType) { + moveType = item.onPlate; + } else if (move === 'Multi-Attack' && item.onMemory) { + moveType = item.onMemory; + } else if (move === 'Techno Blast' && item.onDrive) { + moveType = item.onDrive; + } else if (move === 'Natural Gift' && item.naturalGift) { + moveType = item.naturalGift.type; + } + } + + if (move === 'Raging Bull') { + switch (set.species) { + case 'Tauros-Paldea-Combat': + moveType = 'Fighting'; + break; + case 'Tauros-Paldea-Blaze': + moveType = 'Fire'; + break; + case 'Tauros-Paldea-Aqua': + moveType = 'Water'; + break; + } + } else if (move === 'Ivy Cudgel') { + switch (set.species) { + case 'Ogerpon-Cornerstone': + moveType = 'Rock'; + break; + case 'Ogerpon-Hearthflame': + moveType = 'Fire'; + break; + case 'Ogerpon-Wellspring': + moveType = 'Water'; + break; + } + } else if (move === 'Revelation Dance') { + moveType = Dex.species.get(set.species).types[0]; + } + + if (set.ability) { + const noTypeOverride = [ + 'Judgment', 'Multi Attack', 'Natural Gift', 'Revelation Dance', 'Techno Blast', 'Terrain Pulse', 'Weather Ball', + ]; + const allowTypeOverride = !noTypeOverride.includes(move); + if (set.ability === 'Normalize') { + moveType = 'Normal'; + } else if (allowTypeOverride && moveType === 'Normal') { + if (set.ability === 'Aerilate') { + moveType = 'Flying'; + } else if (set.ability === 'Galvanize') { + moveType = 'Electric'; + } else if (set.ability === 'Pixilate') { + moveType = 'Fairy'; + } else if (set.ability === 'Refrigerate') { + moveType = 'Ice'; + } + } else if (set.ability === 'Liquid Voice' && Dex.moves.get(move).flags.sound) { + moveType = 'Water'; + } + } + // hide the alt so it doesn't interfere w/ copy/pasting - return <>- {move}
; + return <>- {move}
; }) : <>} {typeof set.happiness === 'number' && set.happiness !== 255 && !isNaN(set.happiness) ?