[Move] Implement Core Enforcer (#2024)
* [Move] Implement Core Enforcer * Documentation * Documentation
This commit is contained in:
parent
dc6c8f22ac
commit
5762409b17
|
@ -5117,7 +5117,7 @@ export class SuppressAbilitiesAttr extends MoveEffectAttr {
|
||||||
|
|
||||||
target.summonData.abilitySuppressed = true;
|
target.summonData.abilitySuppressed = true;
|
||||||
|
|
||||||
target.scene.queueMessage(getPokemonMessage(target, " ability\nwas suppressed!"));
|
target.scene.queueMessage(getPokemonMessage(target, "'s ability\nwas suppressed!"));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -5127,6 +5127,35 @@ export class SuppressAbilitiesAttr extends MoveEffectAttr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies the effects of {@linkcode SuppressAbilitiesAttr} if the target has already moved this turn.
|
||||||
|
* @extends MoveEffectAttr
|
||||||
|
* @see {@linkcode Moves.CORE_ENFORCER} (the move which uses this effect)
|
||||||
|
*/
|
||||||
|
export class SuppressAbilitiesIfActedAttr extends MoveEffectAttr {
|
||||||
|
/**
|
||||||
|
* If the target has already acted this turn, apply a {@linkcode SuppressAbilitiesAttr} effect unless the
|
||||||
|
* abillity cannot be suppressed. This is a secondary effect and has no bearing on the success or failure of the move.
|
||||||
|
*
|
||||||
|
* @returns True if the move occurred, otherwise false. Note that true will be returned even if the target has not
|
||||||
|
* yet moved or if the target's abiilty is un-suppressable.
|
||||||
|
*/
|
||||||
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean {
|
||||||
|
if (!super.apply(user, target, move, args)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target.turnData.acted) {
|
||||||
|
const suppressAttr = new SuppressAbilitiesAttr();
|
||||||
|
if (suppressAttr.getCondition()(user, target, move)) {
|
||||||
|
suppressAttr.apply(user, target, move, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class TransformAttr extends MoveEffectAttr {
|
export class TransformAttr extends MoveEffectAttr {
|
||||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise<boolean> {
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise<boolean> {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
|
@ -7311,7 +7340,7 @@ export function initMoves() {
|
||||||
.attr(MatchUserTypeAttr),
|
.attr(MatchUserTypeAttr),
|
||||||
new AttackMove(Moves.CORE_ENFORCER, Type.DRAGON, MoveCategory.SPECIAL, 100, 100, 10, -1, 0, 7)
|
new AttackMove(Moves.CORE_ENFORCER, Type.DRAGON, MoveCategory.SPECIAL, 100, 100, 10, -1, 0, 7)
|
||||||
.target(MoveTarget.ALL_NEAR_ENEMIES)
|
.target(MoveTarget.ALL_NEAR_ENEMIES)
|
||||||
.partial(),
|
.attr(SuppressAbilitiesIfActedAttr),
|
||||||
new AttackMove(Moves.TROP_KICK, Type.GRASS, MoveCategory.PHYSICAL, 70, 100, 15, 100, 0, 7)
|
new AttackMove(Moves.TROP_KICK, Type.GRASS, MoveCategory.PHYSICAL, 70, 100, 15, 100, 0, 7)
|
||||||
.attr(StatChangeAttr, BattleStat.ATK, -1),
|
.attr(StatChangeAttr, BattleStat.ATK, -1),
|
||||||
new StatusMove(Moves.INSTRUCT, Type.PSYCHIC, -1, 15, -1, 0, 7)
|
new StatusMove(Moves.INSTRUCT, Type.PSYCHIC, -1, 15, -1, 0, 7)
|
||||||
|
|
Loading…
Reference in New Issue