mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-14 12:22:19 +02:00
Compare commits
4 Commits
5440c0b40c
...
3ed7649ce5
Author | SHA1 | Date | |
---|---|---|---|
|
3ed7649ce5 | ||
|
3a218eb92b | ||
|
7cdf07c050 | ||
|
dd76cbc7a2 |
@ -235,6 +235,15 @@ export default class BattleScene extends SceneBase {
|
||||
this.nextCommandPhaseQueue = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Conditionally swaps the ACTION and CANCEL button
|
||||
* @param standard When true, uses the default values
|
||||
*/
|
||||
setGamepadConfirm(standard: boolean) {
|
||||
this.gamepadKeyConfig[Button.ACTION] = standard ? 0 : 1;
|
||||
this.gamepadKeyConfig[Button.CANCEL] = standard ? 1 : 0;
|
||||
}
|
||||
|
||||
loadPokemonAtlas(key: string, atlasPath: string, experimental?: boolean) {
|
||||
if (experimental === undefined)
|
||||
experimental = this.experimentalSprites;
|
||||
|
@ -2876,7 +2876,7 @@ export class AddArenaTagAttr extends MoveEffectAttr {
|
||||
public tagType: ArenaTagType;
|
||||
public turnCount: integer;
|
||||
private failOnOverlap: boolean;
|
||||
private selfSideTarget: boolean;
|
||||
public selfSideTarget: boolean;
|
||||
|
||||
constructor(tagType: ArenaTagType, turnCount?: integer, failOnOverlap: boolean = false, selfSideTarget: boolean = false) {
|
||||
super(true, MoveEffectTrigger.POST_APPLY, true);
|
||||
@ -2909,9 +2909,10 @@ export class AddArenaTagAttr extends MoveEffectAttr {
|
||||
export class AddArenaTrapTagAttr extends AddArenaTagAttr {
|
||||
getCondition(): MoveConditionFunc {
|
||||
return (user, target, move) => {
|
||||
if (move.category !== MoveCategory.STATUS || !user.scene.arena.getTag(this.tagType))
|
||||
const side = (this.selfSideTarget ? user : target).isPlayer() ? ArenaTagSide.PLAYER : ArenaTagSide.ENEMY;
|
||||
if (move.category !== MoveCategory.STATUS || !user.scene.arena.getTagOnSide(this.tagType, side))
|
||||
return true;
|
||||
const tag = user.scene.arena.getTag(this.tagType) as ArenaTrapTag;
|
||||
const tag = user.scene.arena.getTagOnSide(this.tagType, side) as ArenaTrapTag;
|
||||
return tag.layers < tag.maxLayers;
|
||||
};
|
||||
}
|
||||
|
@ -492,7 +492,7 @@ export class Arena {
|
||||
}
|
||||
|
||||
addTag(tagType: ArenaTagType, turnCount: integer, sourceMove: Moves, sourceId: integer, side: ArenaTagSide = ArenaTagSide.BOTH, targetIndex?: BattlerIndex): boolean {
|
||||
const existingTag = this.getTag(tagType);
|
||||
const existingTag = this.getTagOnSide(tagType, side);
|
||||
if (existingTag) {
|
||||
existingTag.onOverlap(this);
|
||||
return false;
|
||||
|
@ -1904,6 +1904,21 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
applyAbAttrs(ReduceStatusEffectDurationAbAttr, this, null, effect, statusCureTurn);
|
||||
|
||||
this.setFrameRate(4);
|
||||
|
||||
// If the user is invulnerable, lets remove their invulnerability when they fall asleep
|
||||
const invulnerableTags = [
|
||||
BattlerTagType.UNDERGROUND,
|
||||
BattlerTagType.UNDERWATER,
|
||||
BattlerTagType.HIDDEN,
|
||||
BattlerTagType.FLYING
|
||||
];
|
||||
|
||||
const tag = invulnerableTags.find((t) => this.getTag(t));
|
||||
|
||||
if (tag) {
|
||||
this.removeTag(tag);
|
||||
this.getMoveQueue().pop();
|
||||
}
|
||||
}
|
||||
|
||||
this.status = new Status(effect, 0, statusCureTurn?.value);
|
||||
|
@ -25,6 +25,7 @@ export enum Setting {
|
||||
Fusion_Palette_Swaps = "FUSION_PALETTE_SWAPS",
|
||||
Player_Gender = "PLAYER_GENDER",
|
||||
Gamepad_Support = "GAMEPAD_SUPPORT",
|
||||
Swap_A_and_B = "SWAP_A_B", // Swaps which gamepad button handles ACTION and CANCEL
|
||||
Touch_Controls = "TOUCH_CONTROLS",
|
||||
Vibration = "VIBRATION"
|
||||
}
|
||||
@ -56,6 +57,7 @@ export const settingOptions: SettingOptions = {
|
||||
[Setting.Fusion_Palette_Swaps]: [ 'Off', 'On' ],
|
||||
[Setting.Player_Gender]: [ 'Boy', 'Girl' ],
|
||||
[Setting.Gamepad_Support]: [ 'Auto', 'Disabled' ],
|
||||
[Setting.Swap_A_and_B]: [ 'Enabled', 'Disabled' ],
|
||||
[Setting.Touch_Controls]: [ 'Auto', 'Disabled' ],
|
||||
[Setting.Vibration]: [ 'Auto', 'Disabled' ]
|
||||
};
|
||||
@ -79,6 +81,7 @@ export const settingDefaults: SettingDefaults = {
|
||||
[Setting.Fusion_Palette_Swaps]: 1,
|
||||
[Setting.Player_Gender]: 0,
|
||||
[Setting.Gamepad_Support]: 0,
|
||||
[Setting.Swap_A_and_B]: 1, // Set to 'Disabled' by default
|
||||
[Setting.Touch_Controls]: 0,
|
||||
[Setting.Vibration]: 0
|
||||
};
|
||||
@ -148,6 +151,9 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer)
|
||||
case Setting.Gamepad_Support:
|
||||
scene.gamepadSupport = settingOptions[setting][value] !== 'Disabled';
|
||||
break;
|
||||
case Setting.Swap_A_and_B:
|
||||
scene.setGamepadConfirm(settingOptions[setting][value] !== 'Enabled');
|
||||
break;
|
||||
case Setting.Touch_Controls:
|
||||
scene.enableTouchControls = settingOptions[setting][value] !== 'Disabled' && hasTouchscreen();
|
||||
const touchControls = document.getElementById('touchControls');
|
||||
|
Loading…
Reference in New Issue
Block a user