Implement Obstruct and Silk Trap moves
Also fixed Loyal Three legendaries being genderless when they should be 100% male.pull/21/head
parent
0605b8c55c
commit
262a60055e
|
@ -983,6 +983,10 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc
|
||||||
return new ProtectedTag(sourceMove);
|
return new ProtectedTag(sourceMove);
|
||||||
case BattlerTagType.KINGS_SHIELD:
|
case BattlerTagType.KINGS_SHIELD:
|
||||||
return new ContactStatChangeProtectedTag(sourceMove, tagType, BattleStat.ATK, -1);
|
return new ContactStatChangeProtectedTag(sourceMove, tagType, BattleStat.ATK, -1);
|
||||||
|
case BattlerTagType.OBSTRUCT:
|
||||||
|
return new ContactStatChangeProtectedTag(sourceMove, tagType, BattleStat.DEF, -2);
|
||||||
|
case BattlerTagType.SILK_TRAP:
|
||||||
|
return new ContactStatChangeProtectedTag(sourceMove, tagType, BattleStat.SPD, -1);
|
||||||
case BattlerTagType.BANEFUL_BUNKER:
|
case BattlerTagType.BANEFUL_BUNKER:
|
||||||
return new ContactPoisonProtectedTag(sourceMove);
|
return new ContactPoisonProtectedTag(sourceMove);
|
||||||
case BattlerTagType.BURNING_BULWARK:
|
case BattlerTagType.BURNING_BULWARK:
|
||||||
|
|
|
@ -4451,8 +4451,8 @@ export function initMoves() {
|
||||||
new StatusMove(Moves.LIFE_DEW, "Life Dew", Type.WATER, -1, 10, "The user scatters mysterious water around and restores the HP of itself and its ally Pokémon in the battle.", -1, 0, 8)
|
new StatusMove(Moves.LIFE_DEW, "Life Dew", Type.WATER, -1, 10, "The user scatters mysterious water around and restores the HP of itself and its ally Pokémon in the battle.", -1, 0, 8)
|
||||||
.attr(HealAttr, 0.25, true, false)
|
.attr(HealAttr, 0.25, true, false)
|
||||||
.target(MoveTarget.USER_AND_ALLIES),
|
.target(MoveTarget.USER_AND_ALLIES),
|
||||||
new SelfStatusMove(Moves.OBSTRUCT, "Obstruct (P)", Type.DARK, 100, 10, "This move enables the user to protect itself from all attacks. Its chance of failing rises if it is used in succession. Direct contact harshly lowers the attacker's Defense stat.", -1, 4, 8)
|
new SelfStatusMove(Moves.OBSTRUCT, "Obstruct", Type.DARK, 100, 10, "This move enables the user to protect itself from all attacks. Its chance of failing rises if it is used in succession. Direct contact harshly lowers the attacker's Defense stat.", -1, 4, 8)
|
||||||
.attr(ProtectAttr),
|
.attr(ProtectAttr, BattlerTagType.OBSTRUCT),
|
||||||
new AttackMove(Moves.FALSE_SURRENDER, "False Surrender", Type.DARK, MoveCategory.PHYSICAL, 80, -1, 10, "The user pretends to bow its head, but then it stabs the target with its disheveled hair. This attack never misses.", -1, 0, 8),
|
new AttackMove(Moves.FALSE_SURRENDER, "False Surrender", Type.DARK, MoveCategory.PHYSICAL, 80, -1, 10, "The user pretends to bow its head, but then it stabs the target with its disheveled hair. This attack never misses.", -1, 0, 8),
|
||||||
new AttackMove(Moves.METEOR_ASSAULT, "Meteor Assault", Type.FIGHTING, MoveCategory.PHYSICAL, 150, 100, 5, "The user attacks wildly with its thick leek. The user can't move on the next turn, because the force of this move makes it stagger.", -1, 0, 8)
|
new AttackMove(Moves.METEOR_ASSAULT, "Meteor Assault", Type.FIGHTING, MoveCategory.PHYSICAL, 150, 100, 5, "The user attacks wildly with its thick leek. The user can't move on the next turn, because the force of this move makes it stagger.", -1, 0, 8)
|
||||||
.attr(RechargeAttr),
|
.attr(RechargeAttr),
|
||||||
|
@ -4672,7 +4672,8 @@ export function initMoves() {
|
||||||
.target(MoveTarget.ALL_NEAR_ENEMIES),
|
.target(MoveTarget.ALL_NEAR_ENEMIES),
|
||||||
End Unused */
|
End Unused */
|
||||||
new AttackMove(Moves.TERA_BLAST, "Tera Blast (P)", Type.NORMAL, MoveCategory.SPECIAL, 80, 100, 10, "If the user has Terastallized, it unleashes energy of its Tera Type. This move inflicts damage using the Attack or Sp. Atk stat-whichever is higher for the user.", -1, 0, 9),
|
new AttackMove(Moves.TERA_BLAST, "Tera Blast (P)", Type.NORMAL, MoveCategory.SPECIAL, 80, 100, 10, "If the user has Terastallized, it unleashes energy of its Tera Type. This move inflicts damage using the Attack or Sp. Atk stat-whichever is higher for the user.", -1, 0, 9),
|
||||||
new SelfStatusMove(Moves.SILK_TRAP, "Silk Trap (N)", Type.BUG, -1, 10, "The user spins a silken trap, protecting itself from damage while lowering the Speed stat of any attacker that makes direct contact.", -1, 4, 9),
|
new SelfStatusMove(Moves.SILK_TRAP, "Silk Trap", Type.BUG, -1, 10, "The user spins a silken trap, protecting itself from damage while lowering the Speed stat of any attacker that makes direct contact.", -1, 4, 9)
|
||||||
|
.attr(ProtectAttr, BattlerTagType.SILK_TRAP),
|
||||||
new AttackMove(Moves.AXE_KICK, "Axe Kick", Type.FIGHTING, MoveCategory.PHYSICAL, 120, 90, 10, "The user attacks by kicking up into the air and slamming its heel down upon the target. This may also confuse the target. If it misses, the user takes damage instead.", 30, 0, 9)
|
new AttackMove(Moves.AXE_KICK, "Axe Kick", Type.FIGHTING, MoveCategory.PHYSICAL, 120, 90, 10, "The user attacks by kicking up into the air and slamming its heel down upon the target. This may also confuse the target. If it misses, the user takes damage instead.", 30, 0, 9)
|
||||||
.attr(MissEffectAttr, halveHpMissEffectFunc)
|
.attr(MissEffectAttr, halveHpMissEffectFunc)
|
||||||
.attr(ConfuseAttr),
|
.attr(ConfuseAttr),
|
||||||
|
|
|
@ -2327,9 +2327,9 @@ export function initSpecies() {
|
||||||
new PokemonForm("Unremarkable Form", "unremarkable", Type.GRASS, Type.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178),
|
new PokemonForm("Unremarkable Form", "unremarkable", Type.GRASS, Type.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178),
|
||||||
new PokemonForm("Masterpiece Form", "masterpiece", Type.GRASS, Type.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178),
|
new PokemonForm("Masterpiece Form", "masterpiece", Type.GRASS, Type.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178),
|
||||||
),
|
),
|
||||||
new PokemonSpecies(Species.OKIDOGI, "Okidogi", 9, false, true, false, "Retainer Pokémon", Type.POISON, Type.FIGHTING, 1.8, 92.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.GUARD_DOG, 555, 88, 128, 115, 58, 86, 80, 3, 0, 276, GrowthRate.SLOW, null, false),
|
new PokemonSpecies(Species.OKIDOGI, "Okidogi", 9, false, true, false, "Retainer Pokémon", Type.POISON, Type.FIGHTING, 1.8, 92.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.GUARD_DOG, 555, 88, 128, 115, 58, 86, 80, 3, 0, 276, GrowthRate.SLOW, 100, false),
|
||||||
new PokemonSpecies(Species.MUNKIDORI, "Munkidori", 9, false, true, false, "Retainer Pokémon", Type.POISON, Type.PSYCHIC, 1, 12.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.FRISK, 555, 88, 75, 66, 130, 90, 106, 3, 0, 276, GrowthRate.SLOW, null, false),
|
new PokemonSpecies(Species.MUNKIDORI, "Munkidori", 9, false, true, false, "Retainer Pokémon", Type.POISON, Type.PSYCHIC, 1, 12.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.FRISK, 555, 88, 75, 66, 130, 90, 106, 3, 0, 276, GrowthRate.SLOW, 100, false),
|
||||||
new PokemonSpecies(Species.FEZANDIPITI, "Fezandipiti", 9, false, true, false, "Retainer Pokémon", Type.POISON, Type.FAIRY, 1.4, 30.1, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.TECHNICIAN, 555, 88, 91, 82, 70, 125, 99, 3, 0, 276, GrowthRate.SLOW, null, false),
|
new PokemonSpecies(Species.FEZANDIPITI, "Fezandipiti", 9, false, true, false, "Retainer Pokémon", Type.POISON, Type.FAIRY, 1.4, 30.1, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.TECHNICIAN, 555, 88, 91, 82, 70, 125, 99, 3, 0, 276, GrowthRate.SLOW, 100, false),
|
||||||
new PokemonSpecies(Species.OGERPON, "Ogerpon", 9, false, true, false, "Mask Pokémon", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275, GrowthRate.SLOW, 0, false, false,
|
new PokemonSpecies(Species.OGERPON, "Ogerpon", 9, false, true, false, "Mask Pokémon", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275, GrowthRate.SLOW, 0, false, false,
|
||||||
new PokemonForm("Teal Mask", "teal-mask", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275),
|
new PokemonForm("Teal Mask", "teal-mask", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275),
|
||||||
new PokemonForm("Wellspring Mask", "wellspring-mask", Type.GRASS, Type.WATER, 1.2, 39.8, Abilities.WATER_ABSORB, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275),
|
new PokemonForm("Wellspring Mask", "wellspring-mask", Type.GRASS, Type.WATER, 1.2, 39.8, Abilities.WATER_ABSORB, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275),
|
||||||
|
|
Loading…
Reference in New Issue