Implemented Comatose and Shields Down. Partially implemented Flower Veil.
parent
68f3326607
commit
2244bfd5b0
|
@ -2961,8 +2961,14 @@ export function initAbilities() {
|
|||
.ignorable()
|
||||
.unimplemented(),
|
||||
new Ability(Abilities.FLOWER_VEIL, 6)
|
||||
.conditionalAttr(p => (p.isOfType(Type.GRASS)), StatusEffectImmunityAbAttr, StatusEffect.BURN)
|
||||
.conditionalAttr(p => (p.isOfType(Type.GRASS)), StatusEffectImmunityAbAttr, StatusEffect.FREEZE)
|
||||
.conditionalAttr(p => (p.isOfType(Type.GRASS)), StatusEffectImmunityAbAttr, StatusEffect.PARALYSIS)
|
||||
.conditionalAttr(p => (p.isOfType(Type.GRASS)), StatusEffectImmunityAbAttr, StatusEffect.POISON)
|
||||
.conditionalAttr(p => (p.isOfType(Type.GRASS)), StatusEffectImmunityAbAttr, StatusEffect.SLEEP)
|
||||
.conditionalAttr(p => (p.isOfType(Type.GRASS)), StatusEffectImmunityAbAttr, StatusEffect.TOXIC)
|
||||
.ignorable()
|
||||
.unimplemented(),
|
||||
.partial(),
|
||||
new Ability(Abilities.CHEEK_POUCH, 6)
|
||||
.unimplemented(),
|
||||
new Ability(Abilities.PROTEAN, 6)
|
||||
|
@ -3042,11 +3048,16 @@ export function initAbilities() {
|
|||
.attr(PostBattleInitFormChangeAbAttr, p => p.formIndex % 7 + (p.getHpRatio() <= 0.5 ? 7 : 0))
|
||||
.attr(PostSummonFormChangeAbAttr, p => p.formIndex % 7 + (p.getHpRatio() <= 0.5 ? 7 : 0))
|
||||
.attr(PostTurnFormChangeAbAttr, p => p.formIndex % 7 + (p.getHpRatio() <= 0.5 ? 7 : 0))
|
||||
.conditionalAttr(p => (p.formIndex < 7), StatusEffectImmunityAbAttr, StatusEffect.BURN)
|
||||
.conditionalAttr(p => (p.formIndex < 7), StatusEffectImmunityAbAttr, StatusEffect.FREEZE)
|
||||
.conditionalAttr(p => (p.formIndex < 7), StatusEffectImmunityAbAttr, StatusEffect.PARALYSIS)
|
||||
.conditionalAttr(p => (p.formIndex < 7), StatusEffectImmunityAbAttr, StatusEffect.POISON)
|
||||
.conditionalAttr(p => (p.formIndex < 7), StatusEffectImmunityAbAttr, StatusEffect.SLEEP)
|
||||
.conditionalAttr(p => (p.formIndex < 7), StatusEffectImmunityAbAttr, StatusEffect.TOXIC)
|
||||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(UnswappableAbilityAbAttr)
|
||||
.attr(UnsuppressableAbilityAbAttr)
|
||||
.attr(NoFusionAbilityAbAttr)
|
||||
.partial(),
|
||||
.attr(NoFusionAbilityAbAttr),
|
||||
new Ability(Abilities.STAKEOUT, 7)
|
||||
.attr(MovePowerBoostAbAttr, (user, target, move) => user.scene.currentBattle.turnCommands[target.getBattlerIndex()].command === Command.POKEMON, 2),
|
||||
new Ability(Abilities.WATER_BUBBLE, 7)
|
||||
|
@ -3112,10 +3123,17 @@ export function initAbilities() {
|
|||
new Ability(Abilities.CORROSION, 7)
|
||||
.unimplemented(),
|
||||
new Ability(Abilities.COMATOSE, 7)
|
||||
.attr(StatusEffectImmunityAbAttr, StatusEffect.BURN)
|
||||
.attr(StatusEffectImmunityAbAttr, StatusEffect.FREEZE)
|
||||
.attr(StatusEffectImmunityAbAttr, StatusEffect.PARALYSIS)
|
||||
.attr(StatusEffectImmunityAbAttr, StatusEffect.POISON)
|
||||
.attr(StatusEffectImmunityAbAttr, StatusEffect.SLEEP)
|
||||
.attr(StatusEffectImmunityAbAttr, StatusEffect.TOXIC)
|
||||
.attr(MoveImmunityAbAttr, (pokemon, attacker, move) => pokemon !== attacker && move.getMove().id == Moves.YAWN)
|
||||
.attr(MoveImmunityAbAttr, (pokemon, attacker, move) => pokemon == attacker && move.getMove().id == Moves.REST)
|
||||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(UnswappableAbilityAbAttr)
|
||||
.attr(UnsuppressableAbilityAbAttr)
|
||||
.unimplemented(),
|
||||
.attr(UnsuppressableAbilityAbAttr),
|
||||
new Ability(Abilities.QUEENLY_MAJESTY, 7)
|
||||
.attr(FieldPriorityMoveImmunityAbAttr)
|
||||
.ignorable(),
|
||||
|
|
|
@ -4120,7 +4120,7 @@ export function initMoves() {
|
|||
.attr(StatusEffectAttr, StatusEffect.PARALYSIS),
|
||||
new AttackMove(Moves.DREAM_EATER, Type.PSYCHIC, MoveCategory.SPECIAL, 100, 100, 15, -1, 0, 1)
|
||||
.attr(HitHealAttr)
|
||||
.condition((user, target, move) => target.status?.effect === StatusEffect.SLEEP)
|
||||
.condition((user, target, move) => target.status?.effect === StatusEffect.SLEEP || target.hasAbility(Abilities.COMATOSE))
|
||||
.triageMove(),
|
||||
new StatusMove(Moves.POISON_GAS, Type.POISON, 90, 40, -1, 0, 1)
|
||||
.attr(StatusEffectAttr, StatusEffect.POISON)
|
||||
|
@ -4221,14 +4221,14 @@ export function initMoves() {
|
|||
.attr(IgnoreAccuracyAttr),
|
||||
new StatusMove(Moves.NIGHTMARE, Type.GHOST, 100, 15, -1, 0, 2)
|
||||
.attr(AddBattlerTagAttr, BattlerTagType.NIGHTMARE)
|
||||
.condition((user, target, move) => target.status?.effect === StatusEffect.SLEEP),
|
||||
.condition((user, target, move) => target.status?.effect === StatusEffect.SLEEP || target.hasAbility(Abilities.COMATOSE)),
|
||||
new AttackMove(Moves.FLAME_WHEEL, Type.FIRE, MoveCategory.PHYSICAL, 60, 100, 25, 10, 0, 2)
|
||||
.attr(HealStatusEffectAttr, true, StatusEffect.FREEZE)
|
||||
.attr(StatusEffectAttr, StatusEffect.BURN),
|
||||
new AttackMove(Moves.SNORE, Type.NORMAL, MoveCategory.SPECIAL, 50, 100, 15, 30, 0, 2)
|
||||
.attr(BypassSleepAttr)
|
||||
.attr(FlinchAttr)
|
||||
.condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP)
|
||||
.condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP || user.hasAbility(Abilities.COMATOSE))
|
||||
.soundBased(),
|
||||
new StatusMove(Moves.CURSE, Type.GHOST, -1, 10, -1, 0, 2)
|
||||
.attr(StatChangeAttr, BattleStat.SPD, -1, true)
|
||||
|
@ -4339,7 +4339,7 @@ export function initMoves() {
|
|||
new SelfStatusMove(Moves.SLEEP_TALK, Type.NORMAL, -1, 10, -1, 0, 2)
|
||||
.attr(BypassSleepAttr)
|
||||
.attr(RandomMovesetMoveAttr)
|
||||
.condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP)
|
||||
.condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP || user.hasAbility(Abilities.COMATOSE))
|
||||
.ignoresVirtual(),
|
||||
new StatusMove(Moves.HEAL_BELL, Type.NORMAL, -1, 5, -1, 0, 2)
|
||||
.soundBased()
|
||||
|
@ -4737,7 +4737,7 @@ export function initMoves() {
|
|||
new StatusMove(Moves.MIRACLE_EYE, Type.PSYCHIC, -1, 40, -1, 0, 4)
|
||||
.unimplemented(),
|
||||
new AttackMove(Moves.WAKE_UP_SLAP, Type.FIGHTING, MoveCategory.PHYSICAL, 70, 100, 10, -1, 0, 4)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => target.status?.effect === StatusEffect.SLEEP ? 2 : 1)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => target.status?.effect === StatusEffect.SLEEP || target.hasAbility(Abilities.COMATOSE) ? 2 : 1)
|
||||
.attr(HealStatusEffectAttr, false, StatusEffect.SLEEP),
|
||||
new AttackMove(Moves.HAMMER_ARM, Type.FIGHTING, MoveCategory.PHYSICAL, 100, 90, 10, 100, 0, 4)
|
||||
.attr(StatChangeAttr, BattleStat.SPD, -1, true)
|
||||
|
@ -5141,7 +5141,7 @@ export function initMoves() {
|
|||
.pulseMove()
|
||||
.triageMove(),
|
||||
new AttackMove(Moves.HEX, Type.GHOST, MoveCategory.SPECIAL, 65, 100, 10, -1, 0, 5)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => target.status ? 2 : 1),
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => target.status || target.hasAbility(Abilities.COMATOSE) ? 2 : 1),
|
||||
new AttackMove(Moves.SKY_DROP, Type.FLYING, MoveCategory.PHYSICAL, 60, 100, 10, -1, 0, 5)
|
||||
.attr(ChargeAttr, ChargeAnim.SKY_DROP_CHARGING, 'took {TARGET}\ninto the sky!', BattlerTagType.FLYING) // TODO: Add 2nd turn message
|
||||
.condition(failOnGravityCondition)
|
||||
|
|
Loading…
Reference in New Issue