|
|
|
@ -3466,8 +3466,7 @@ export class CutHpStatStageBoostAttr extends StatStageChangeAttr {
|
|
|
|
|
/**
|
|
|
|
|
* Attribute implementing the stat boosting effect of {@link https://bulbapedia.bulbagarden.net/wiki/Order_Up_(move) | Order Up}.
|
|
|
|
|
* If the user has a Pokemon with {@link https://bulbapedia.bulbagarden.net/wiki/Commander_(Ability) | Commander} in their mouth,
|
|
|
|
|
* one of the user's stats are increased by 1 stage, depending on the "commanding" Pokemon's form. This effect does not respect
|
|
|
|
|
* effect chance, but Order Up itself may be boosted by Sheer Force.
|
|
|
|
|
* one of the user's stats are increased by 1 stage, depending on the "commanding" Pokemon's form.
|
|
|
|
|
*/
|
|
|
|
|
export class OrderUpStatBoostAttr extends MoveEffectAttr {
|
|
|
|
|
constructor() {
|
|
|
|
@ -9726,7 +9725,7 @@ export function initMoves() {
|
|
|
|
|
.ignoresProtect()
|
|
|
|
|
.target(MoveTarget.BOTH_SIDES)
|
|
|
|
|
.unimplemented(),
|
|
|
|
|
new AttackMove(Moves.SMACK_DOWN, PokemonType.ROCK, MoveCategory.PHYSICAL, 50, 100, 15, 100, 0, 5)
|
|
|
|
|
new AttackMove(Moves.SMACK_DOWN, PokemonType.ROCK, MoveCategory.PHYSICAL, 50, 100, 15, -1, 0, 5)
|
|
|
|
|
.attr(FallDownAttr)
|
|
|
|
|
.attr(AddBattlerTagAttr, BattlerTagType.INTERRUPTED)
|
|
|
|
|
.attr(RemoveBattlerTagAttr, [ BattlerTagType.FLYING, BattlerTagType.FLOATING, BattlerTagType.TELEKINESIS ])
|
|
|
|
@ -9893,7 +9892,7 @@ export function initMoves() {
|
|
|
|
|
.attr(MovePowerMultiplierAttr, (user, target, move) => globalScene.arena.getTerrainType() === TerrainType.GRASSY && target.isGrounded() ? 0.5 : 1)
|
|
|
|
|
.makesContact(false)
|
|
|
|
|
.target(MoveTarget.ALL_NEAR_OTHERS),
|
|
|
|
|
new AttackMove(Moves.FROST_BREATH, PokemonType.ICE, MoveCategory.SPECIAL, 60, 90, 10, 100, 0, 5)
|
|
|
|
|
new AttackMove(Moves.FROST_BREATH, PokemonType.ICE, MoveCategory.SPECIAL, 60, 90, 10, -1, 0, 5)
|
|
|
|
|
.attr(CritOnlyAttr),
|
|
|
|
|
new AttackMove(Moves.DRAGON_TAIL, PokemonType.DRAGON, MoveCategory.PHYSICAL, 60, 90, 10, -1, -6, 5)
|
|
|
|
|
.attr(ForceSwitchOutAttr, false, SwitchType.FORCE_SWITCH)
|
|
|
|
@ -10535,7 +10534,7 @@ export function initMoves() {
|
|
|
|
|
.attr(AddArenaTagAttr, ArenaTagType.LIGHT_SCREEN, 5, false, true),
|
|
|
|
|
new AttackMove(Moves.BADDY_BAD, PokemonType.DARK, MoveCategory.SPECIAL, 80, 95, 15, -1, 0, 7)
|
|
|
|
|
.attr(AddArenaTagAttr, ArenaTagType.REFLECT, 5, false, true),
|
|
|
|
|
new AttackMove(Moves.SAPPY_SEED, PokemonType.GRASS, MoveCategory.PHYSICAL, 100, 90, 10, 100, 0, 7)
|
|
|
|
|
new AttackMove(Moves.SAPPY_SEED, PokemonType.GRASS, MoveCategory.PHYSICAL, 100, 90, 10, -1, 0, 7)
|
|
|
|
|
.attr(LeechSeedAttr)
|
|
|
|
|
.makesContact(false),
|
|
|
|
|
new AttackMove(Moves.FREEZY_FROST, PokemonType.ICE, MoveCategory.SPECIAL, 100, 90, 10, -1, 0, 7)
|
|
|
|
@ -10863,7 +10862,7 @@ export function initMoves() {
|
|
|
|
|
.attr(StatStageChangeAttr, [ Stat.SPD ], 1, true),
|
|
|
|
|
new AttackMove(Moves.BITTER_MALICE, PokemonType.GHOST, MoveCategory.SPECIAL, 75, 100, 10, 100, 0, 8)
|
|
|
|
|
.attr(StatStageChangeAttr, [ Stat.ATK ], -1),
|
|
|
|
|
new SelfStatusMove(Moves.SHELTER, PokemonType.STEEL, -1, 10, 100, 0, 8)
|
|
|
|
|
new SelfStatusMove(Moves.SHELTER, PokemonType.STEEL, -1, 10, -1, 0, 8)
|
|
|
|
|
.attr(StatStageChangeAttr, [ Stat.DEF ], 2, true),
|
|
|
|
|
new AttackMove(Moves.TRIPLE_ARROWS, PokemonType.FIGHTING, MoveCategory.PHYSICAL, 90, 100, 10, 30, 0, 8)
|
|
|
|
|
.makesContact(false)
|
|
|
|
@ -11018,7 +11017,7 @@ export function initMoves() {
|
|
|
|
|
.makesContact(false),
|
|
|
|
|
new AttackMove(Moves.LUMINA_CRASH, PokemonType.PSYCHIC, MoveCategory.SPECIAL, 80, 100, 10, 100, 0, 9)
|
|
|
|
|
.attr(StatStageChangeAttr, [ Stat.SPDEF ], -2),
|
|
|
|
|
new AttackMove(Moves.ORDER_UP, PokemonType.DRAGON, MoveCategory.PHYSICAL, 80, 100, 10, 100, 0, 9)
|
|
|
|
|
new AttackMove(Moves.ORDER_UP, PokemonType.DRAGON, MoveCategory.PHYSICAL, 80, 100, 10, -1, 0, 9)
|
|
|
|
|
.attr(OrderUpStatBoostAttr)
|
|
|
|
|
.makesContact(false),
|
|
|
|
|
new AttackMove(Moves.JET_PUNCH, PokemonType.WATER, MoveCategory.PHYSICAL, 60, 100, 15, -1, 1, 9)
|
|
|
|
@ -11072,7 +11071,7 @@ export function initMoves() {
|
|
|
|
|
.attr(CutHpStatStageBoostAttr, [ Stat.ATK, Stat.SPATK, Stat.SPD ], 2, 2),
|
|
|
|
|
new AttackMove(Moves.KOWTOW_CLEAVE, PokemonType.DARK, MoveCategory.PHYSICAL, 85, -1, 10, -1, 0, 9)
|
|
|
|
|
.slicingMove(),
|
|
|
|
|
new AttackMove(Moves.FLOWER_TRICK, PokemonType.GRASS, MoveCategory.PHYSICAL, 70, -1, 10, 100, 0, 9)
|
|
|
|
|
new AttackMove(Moves.FLOWER_TRICK, PokemonType.GRASS, MoveCategory.PHYSICAL, 70, -1, 10, -1, 0, 9)
|
|
|
|
|
.attr(CritOnlyAttr)
|
|
|
|
|
.makesContact(false),
|
|
|
|
|
new AttackMove(Moves.TORCH_SONG, PokemonType.FIRE, MoveCategory.SPECIAL, 80, 100, 10, 100, 0, 9)
|
|
|
|
@ -11191,14 +11190,14 @@ export function initMoves() {
|
|
|
|
|
.attr(StatusEffectAttr, StatusEffect.BURN)
|
|
|
|
|
.target(MoveTarget.ALL_NEAR_ENEMIES)
|
|
|
|
|
.triageMove(),
|
|
|
|
|
new AttackMove(Moves.SYRUP_BOMB, PokemonType.GRASS, MoveCategory.SPECIAL, 60, 85, 10, -1, 0, 9)
|
|
|
|
|
new AttackMove(Moves.SYRUP_BOMB, PokemonType.GRASS, MoveCategory.SPECIAL, 60, 85, 10, 100, 0, 9)
|
|
|
|
|
.attr(AddBattlerTagAttr, BattlerTagType.SYRUP_BOMB, false, false, 3)
|
|
|
|
|
.ballBombMove(),
|
|
|
|
|
new AttackMove(Moves.IVY_CUDGEL, PokemonType.GRASS, MoveCategory.PHYSICAL, 100, 100, 10, -1, 0, 9)
|
|
|
|
|
.attr(IvyCudgelTypeAttr)
|
|
|
|
|
.attr(HighCritAttr)
|
|
|
|
|
.makesContact(false),
|
|
|
|
|
new ChargingAttackMove(Moves.ELECTRO_SHOT, PokemonType.ELECTRIC, MoveCategory.SPECIAL, 130, 100, 10, 100, 0, 9)
|
|
|
|
|
new ChargingAttackMove(Moves.ELECTRO_SHOT, PokemonType.ELECTRIC, MoveCategory.SPECIAL, 130, 100, 10, -1, 0, 9)
|
|
|
|
|
.chargeText(i18next.t("moveTriggers:absorbedElectricity", { pokemonName: "{USER}" }))
|
|
|
|
|
.chargeAttr(StatStageChangeAttr, [ Stat.SPATK ], 1, true)
|
|
|
|
|
.chargeAttr(WeatherInstantChargeAttr, [ WeatherType.RAIN, WeatherType.HEAVY_RAIN ]),
|
|
|
|
@ -11209,7 +11208,8 @@ export function initMoves() {
|
|
|
|
|
.partial(), /** Does not ignore abilities that affect stats, relevant in determining the move's category {@see TeraMoveCategoryAttr} */
|
|
|
|
|
new AttackMove(Moves.FICKLE_BEAM, PokemonType.DRAGON, MoveCategory.SPECIAL, 80, 100, 5, 30, 0, 9)
|
|
|
|
|
.attr(PreMoveMessageAttr, doublePowerChanceMessageFunc)
|
|
|
|
|
.attr(DoublePowerChanceAttr),
|
|
|
|
|
.attr(DoublePowerChanceAttr)
|
|
|
|
|
.edgeCase(), // Should not interact with Sheer Force
|
|
|
|
|
new SelfStatusMove(Moves.BURNING_BULWARK, PokemonType.FIRE, -1, 10, -1, 4, 9)
|
|
|
|
|
.attr(ProtectAttr, BattlerTagType.BURNING_BULWARK)
|
|
|
|
|
.condition(failIfLastCondition),
|
|
|
|
@ -11232,7 +11232,7 @@ export function initMoves() {
|
|
|
|
|
new StatusMove(Moves.DRAGON_CHEER, PokemonType.DRAGON, -1, 15, -1, 0, 9)
|
|
|
|
|
.attr(AddBattlerTagAttr, BattlerTagType.DRAGON_CHEER, false, true)
|
|
|
|
|
.target(MoveTarget.NEAR_ALLY),
|
|
|
|
|
new AttackMove(Moves.ALLURING_VOICE, PokemonType.FAIRY, MoveCategory.SPECIAL, 80, 100, 10, -1, 0, 9)
|
|
|
|
|
new AttackMove(Moves.ALLURING_VOICE, PokemonType.FAIRY, MoveCategory.SPECIAL, 80, 100, 10, 100, 0, 9)
|
|
|
|
|
.attr(AddBattlerTagIfBoostedAttr, BattlerTagType.CONFUSED)
|
|
|
|
|
.soundBased(),
|
|
|
|
|
new AttackMove(Moves.TEMPER_FLARE, PokemonType.FIRE, MoveCategory.PHYSICAL, 75, 100, 10, -1, 0, 9)
|
|
|
|
@ -11241,7 +11241,7 @@ export function initMoves() {
|
|
|
|
|
.attr(MissEffectAttr, crashDamageFunc)
|
|
|
|
|
.attr(NoEffectAttr, crashDamageFunc)
|
|
|
|
|
.recklessMove(),
|
|
|
|
|
new AttackMove(Moves.PSYCHIC_NOISE, PokemonType.PSYCHIC, MoveCategory.SPECIAL, 75, 100, 10, -1, 0, 9)
|
|
|
|
|
new AttackMove(Moves.PSYCHIC_NOISE, PokemonType.PSYCHIC, MoveCategory.SPECIAL, 75, 100, 10, 100, 0, 9)
|
|
|
|
|
.soundBased()
|
|
|
|
|
.attr(AddBattlerTagAttr, BattlerTagType.HEAL_BLOCK, false, false, 2),
|
|
|
|
|
new AttackMove(Moves.UPPER_HAND, PokemonType.FIGHTING, MoveCategory.PHYSICAL, 65, 100, 15, 100, 3, 9)
|
|
|
|
|