ToadBrigade's Hestu
leafsaber47's Aris Tendou
Mygavolt's Framme
leafsaber47's Aris Tendou
Mygavolt's Framme
Highmore (F) @ Choice Band
Ability: Levitate
Tera Type: Fire / Fairy
EVs: 252 Atk / 4 Def / 252 Spe
Jolly Nature
- Foam Reaper
- Liquidation
- Icicle Spear / Stone Edge
- Flip Turn / Shadow Sneak
Highmore (F) @ Leftovers / Colbur Berry
Ability: Regenerator
Tera Type: Grass
EVs: 248 HP / 8 SpA / 252 Def
Bold / Impish Nature
- Foam Reaper / Liquidation / Scald
- Haze / Flip Turn
- Pain Split
- Will-o-Wisp / Toxic / Haze
Highmore (F) @ Focus Sash / Custap Berry
Ability: Levitate / Coral Scales
Tera Type: Normal / Ghost
EVs: 4 Def / 252 SpD / 252 Spe
Jolly Nature
- Stealth Rock
- Shadow Sneak / Foam Reaper
- Memento / Destiny Bond
- Haze / Imprison
Momoyo Himemushi (F) @ Leftovers / Toxic Orb
Ability: Dragon Eater / Poison Heal
Tera Type: Water
EVs: 252 Atk / 252 Def / 8 SpD
Impish Nature
- Leech Life
- Earthquake / Mine Blast
- Knock Off / Superpower / Stone Edge
- Coil
Momoyo Himemushi (F) @ Choice Band
Ability: Rocky Payload
Tera Type: Water
EVs: 252 Atk / 4 Def / 252 Spe
Jolly Nature
- Knock Off / Leech Life
- Earthquake
- Stone Edge
- U-turn
Momoyo Himemushi (F) @ Toxic Orb
Ability: Poison Heal
Tera Type: Water
EVs: 248 HP / 8 Atk / 252 SpD
Careful Nature
- Earthquake / Mine Blast
- Knock Off
- Toxic / Taunt
- Stealth Rock
appraisal: {
desc: "On switch-in, if this Pokemon is holding a Heat Rock, it summons Sunny Day and has the Fire type added to it. Damp Rock, Rain Dance and Water. Smooth Rock, Sandstorm and Rock. Icy Rock, Snowscape and Ice.",
shortDesc: "Heat Rock adds sun and Fire. Damp Rock adds rain and Water. Smooth Rock adds sand and Rock. Icy Rock adds snow and Ice.",
onStart(source) {
if (source.hasItem('heatrock')) {
this.field.setWeather('sunnyday');
source.addType('Fire');
} else if (source.hasItem('damprock')) {
this.field.setWeather('raindance');
source.addType('Water');
} else if (source.hasItem('smoothrock')) {
this.field.setWeather('sandstorm');
source.addType('Rock');
} else if (source.hasItem('icyrock')) {
this.field.setWeather('snowscape')
source.addType('Ice');
}
},
name: "Appraisal",
rating: 3,
},
terraforming: {
desc: "On switch-in, this Pokemon summons a terrain dependent on its individual values (IVs): Grassy Terrain if Special Attack and Special Defense are both even, Electric Terrain if only Special Defense is even, Psychic Terrain if only Special Attack is even, or Misty Terrain otherwise.",
shortDesc: "Summons an IV-based terrain: Grassy if even SpA+SpD; Electric if even SpD; Psychic if even SpA; Misty otherwise.",
onStart(source) {
let terrain = 'mistyterrain';
if (source.set.ivs['spd'] % 2) {
if (source.set.ivs['spa'] % 2) terrain = 'grassyterrain';
else terrain = 'electricterrain';
} else if (source.set.ivs['spa'] % 2) terrain = 'psychicterrain';
this.field.setTerrain(terrain);
},
name: "Terraforming",
rating: 4,
},
shieldingart: {
accuracy: 100,
basePower: 80,
category: "Physical",
name: "Shielding Art",
desc: "For the duration of the turn when the user selects this move, the user's Defense is multiplied by 1.25.",
shortDesc: "User's Def is 1.25x on the turn this move is selected.",
pp: 15,
priority: 0,
flags: {contact: 1, protect: 1},
beforeTurnCallback(pokemon) {
pokemon.addVolatile('shieldingart');
},
condition: {
duration: 1,
onStart(pokemon) {
// TODO: I doubt this is adequate for the custom message
this.add('-singleturn', pokemon, 'move: Shielding Art');
},
onModifyDefPriority: 6,
onModifyDef(def) {
return this.chainModify(1.25);
},
},
secondary: null,
target: "normal",
type: "Fighting",
},
controlearth: {
desc: "While this Pokemon is active, the effects of terrains are disabled.",
shortDesc: "While this Pokemon is active, the effects of terrains are disabled.",
onSwitchIn(pokemon) {
this.effectData.switchingIn = true;
},
onStart(pokemon) {
// Control Earth does not activate when Skill Swapped or when Neutralizing Gas leaves the field
if (!this.effectData.switchingIn) return;
this.add('-ability', pokemon, 'Control Earth');
this.effectData.switchingIn = false;
},
suppressTerrain: true,
name: "Control Earth",
rating: 2,
},
export class Ability extends BasicEffect implements Readonly<BasicEffect> {
// ...
readonly suppressTerrain: boolean;
constructor (data: AnyObject, ...moreData: (AnyObject | null)[]) {
// ...
this.suppressTerrain = !!data.suppressTerrain;
}
}
export class Field {
// ...
effectiveTerrain(target?: Pokemon | Side | Battle) {
if (this.suppressingTerrain()) return '';
if (this.battle.event && !target) target = this.battle.event.target;
return this.battle.runEvent('TryTerrain', target) ? this.terrain : '';
}
suppressingTerrain() {
for (const side of this.battle.sides) {
for (const pokemon of side.active) {
if (pokemon && !pokemon.ignoringAbility() && pokemon.getAbility().suppressTerrain) {
return true;
}
}
}
}
}