From 31f89dbc9af4a2a641f9079ca0a7b6e6afeaf20b Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Mon, 15 Apr 2024 19:47:12 -0400 Subject: [PATCH] Fix Shaymin with Gracidea bug Fix duplicate candy count key for local Add setting for gamepad support Fix for Shaymin unable to use Gracidea Changed Overrides --- src/battle-scene.ts | 5 +++-- src/modifier/modifier-type.ts | 3 +++ src/system/game-data.ts | 2 +- src/system/settings.ts | 5 +++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 15f5f3c6f09..2d63f21654e 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -128,6 +128,7 @@ export default class BattleScene extends SceneBase { public moveAnimations: boolean = true; public hpBarSpeed: integer = 0; public fusionPaletteSwaps: boolean = true; + public gamepadSupport: boolean = true; public enableTouchControls: boolean = false; public enableVibration: boolean = false; @@ -1298,8 +1299,8 @@ export default class BattleScene extends SceneBase { * or not. It will only return true once, until the key is released and pressed down * again. */ - gamepadButtonJustDown(button: Phaser.Input.Gamepad.Button) : boolean { - if (!button) + gamepadButtonJustDown(button: Phaser.Input.Gamepad.Button) : boolean { + if (!button || !this.gamepadSupport) return false; let ret = false; diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 8078a7c06b9..e6a386194b4 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -19,6 +19,7 @@ import { VoucherType, getVoucherTypeIcon, getVoucherTypeName } from '../system/v import { FormChangeItem, SpeciesFormChangeItemTrigger, pokemonFormChanges } from '../data/pokemon-forms'; import { ModifierTier } from './modifier-tier'; import { Nature, getNatureName, getNatureStatMultiplier } from '#app/data/nature'; +import { Species } from "../data/enums/species"; const outputModifierData = false; const useMaxWeightForOutput = false; @@ -556,6 +557,8 @@ export class FormChangeItemModifierType extends PokemonModifierType implements G if (pokemonFormChanges.hasOwnProperty(pokemon.species.speciesId) && !!pokemonFormChanges[pokemon.species.speciesId].find(fc => fc.trigger.hasTriggerType(SpeciesFormChangeItemTrigger) && (fc.trigger as SpeciesFormChangeItemTrigger).item === this.formChangeItem)) return null; + else if (pokemon.species.speciesId === Species.SHAYMIN && formChangeItem === FormChangeItem.GRACIDEA) //allow Shaymin to accept Gracidea anytime + return null; return PartyUiHandler.NoEffectMessage; }, FormChangeItem[formChangeItem].toLowerCase()); diff --git a/src/system/game-data.ts b/src/system/game-data.ts index e267608e8f8..596f2b95459 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -184,7 +184,7 @@ const systemShortKeys = { ivs: '$i', moveset: '$m', eggMoves: '$em', - candyCount: '$cc', + candyCount: '$x', passive: '$p', valueReduction: '$vr' }; diff --git a/src/system/settings.ts b/src/system/settings.ts index 09d5dde94a8..940392a8b28 100644 --- a/src/system/settings.ts +++ b/src/system/settings.ts @@ -19,6 +19,7 @@ export enum Setting { HP_Bar_Speed = "HP_BAR_SPEED", Fusion_Palette_Swaps = "FUSION_PALETTE_SWAPS", Player_Gender = "PLAYER_GENDER", + Gamepad_Support = "GAMEPAD_SUPPORT", Touch_Controls = "TOUCH_CONTROLS", Vibration = "VIBRATION" } @@ -47,6 +48,7 @@ export const settingOptions: SettingOptions = { [Setting.HP_Bar_Speed]: [ 'Normal', 'Fast', 'Faster', 'Instant' ], [Setting.Fusion_Palette_Swaps]: [ 'Off', 'On' ], [Setting.Player_Gender]: [ 'Boy', 'Girl' ], + [Setting.Gamepad_Support]: [ 'Auto', 'Disabled' ], [Setting.Touch_Controls]: [ 'Auto', 'Disabled' ], [Setting.Vibration]: [ 'Auto', 'Disabled' ] }; @@ -130,6 +132,9 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer) } else return false; break; + case Setting.Gamepad_Support: + scene.gamepadSupport = settingOptions[setting][value] !== 'Disabled'; + break; case Setting.Touch_Controls: scene.enableTouchControls = settingOptions[setting][value] !== 'Disabled' && hasTouchscreen(); const touchControls = document.getElementById('touchControls');