mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-20 06:19:29 +02:00
Merge pull request #1 from DayKev/true-force-switch-patch-1
PR review suggestions
This commit is contained in:
commit
ade805d628
@ -5979,10 +5979,11 @@ export class ForceSwitchOutAttr extends MoveEffectAttr {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (switchOutTarget.hp && SwitchType.FORCE_SWITCH) {
|
if (switchOutTarget.hp > 0) {
|
||||||
switchOutTarget.leaveField(this.switchType === SwitchType.FORCE_SWITCH);
|
if (this.switchType === SwitchType.FORCE_SWITCH) {
|
||||||
|
switchOutTarget.leaveField(true);
|
||||||
const slotIndex = Utils.randIntRange(user.scene.currentBattle.getBattlerCount(), user.scene.getPlayerParty().length);
|
const slotIndex = Utils.randIntRange(user.scene.currentBattle.getBattlerCount(), user.scene.getPlayerParty().length);
|
||||||
user.scene.unshiftPhase(
|
user.scene.prependToPhase(
|
||||||
new SwitchSummonPhase(
|
new SwitchSummonPhase(
|
||||||
user.scene,
|
user.scene,
|
||||||
this.switchType,
|
this.switchType,
|
||||||
@ -5990,24 +5991,35 @@ export class ForceSwitchOutAttr extends MoveEffectAttr {
|
|||||||
slotIndex,
|
slotIndex,
|
||||||
false,
|
false,
|
||||||
true
|
true
|
||||||
)
|
),
|
||||||
|
MoveEndPhase
|
||||||
);
|
);
|
||||||
}
|
} else {
|
||||||
if (switchOutTarget.hp > 0 && !SwitchType.FORCE_SWITCH) {
|
|
||||||
switchOutTarget.leaveField(this.switchType === SwitchType.SWITCH);
|
switchOutTarget.leaveField(this.switchType === SwitchType.SWITCH);
|
||||||
user.scene.prependToPhase(new SwitchPhase(user.scene, this.switchType, switchOutTarget.getFieldIndex(), true, true), MoveEndPhase);
|
user.scene.prependToPhase(
|
||||||
|
new SwitchPhase(
|
||||||
|
user.scene,
|
||||||
|
this.switchType,
|
||||||
|
switchOutTarget.getFieldIndex(),
|
||||||
|
true,
|
||||||
|
true
|
||||||
|
),
|
||||||
|
MoveEndPhase
|
||||||
|
);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
} else if (user.scene.currentBattle.battleType !== BattleType.WILD) {
|
} else if (user.scene.currentBattle.battleType !== BattleType.WILD) {
|
||||||
// Switch out logic for trainer battles
|
// Switch out logic for trainer battles
|
||||||
if (switchOutTarget.scene.getEnemyParty().filter((p) => p.isAllowedInBattle() && !p.isOnField()).length < 1) {
|
if (switchOutTarget.scene.getEnemyParty().filter((p) => p.isAllowedInBattle() && !p.isOnField()).length < 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (switchOutTarget.hp && SwitchType.FORCE_SWITCH) {
|
if (switchOutTarget.hp > 0) {
|
||||||
switchOutTarget.leaveField(this.switchType === SwitchType.FORCE_SWITCH);
|
if (this.switchType === SwitchType.FORCE_SWITCH) {
|
||||||
|
switchOutTarget.leaveField(true);
|
||||||
const slotIndex = Utils.randIntRange(user.scene.currentBattle.getBattlerCount(), user.scene.getEnemyParty().length);
|
const slotIndex = Utils.randIntRange(user.scene.currentBattle.getBattlerCount(), user.scene.getEnemyParty().length);
|
||||||
user.scene.unshiftPhase(
|
user.scene.prependToPhase(
|
||||||
new SwitchSummonPhase(
|
new SwitchSummonPhase(
|
||||||
user.scene,
|
user.scene,
|
||||||
this.switchType,
|
this.switchType,
|
||||||
@ -6015,15 +6027,24 @@ export class ForceSwitchOutAttr extends MoveEffectAttr {
|
|||||||
slotIndex,
|
slotIndex,
|
||||||
false,
|
false,
|
||||||
false
|
false
|
||||||
)
|
),
|
||||||
|
MoveEndPhase
|
||||||
);
|
);
|
||||||
}
|
} else {
|
||||||
if (switchOutTarget.hp > 0 && !SwitchType.FORCE_SWITCH) {
|
|
||||||
// for opponent switching out
|
// for opponent switching out
|
||||||
switchOutTarget.leaveField(this.switchType === SwitchType.SWITCH);
|
switchOutTarget.leaveField(this.switchType === SwitchType.SWITCH);
|
||||||
user.scene.prependToPhase(new SwitchSummonPhase(user.scene, this.switchType, switchOutTarget.getFieldIndex(),
|
user.scene.prependToPhase(
|
||||||
|
new SwitchSummonPhase(
|
||||||
|
user.scene,
|
||||||
|
this.switchType,
|
||||||
|
switchOutTarget.getFieldIndex(),
|
||||||
(user.scene.currentBattle.trainer ? user.scene.currentBattle.trainer.getNextSummonIndex((switchOutTarget as EnemyPokemon).trainerSlot) : 0),
|
(user.scene.currentBattle.trainer ? user.scene.currentBattle.trainer.getNextSummonIndex((switchOutTarget as EnemyPokemon).trainerSlot) : 0),
|
||||||
false, false), MoveEndPhase);
|
false,
|
||||||
|
false
|
||||||
|
),
|
||||||
|
MoveEndPhase
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/**
|
/**
|
||||||
|
@ -12,6 +12,5 @@ export enum SwitchType {
|
|||||||
/** Transfers the returning Pokemon's Substitute to the switched in Pokemon */
|
/** Transfers the returning Pokemon's Substitute to the switched in Pokemon */
|
||||||
SHED_TAIL,
|
SHED_TAIL,
|
||||||
/** Force switchout to a random party member */
|
/** Force switchout to a random party member */
|
||||||
FORCE_SWITCH
|
FORCE_SWITCH,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user