From 0a7b2ae273a223b8e3b25e629032e43c0cb2d399 Mon Sep 17 00:00:00 2001 From: KimJeongSun Date: Thu, 12 Sep 2024 17:04:27 +0900 Subject: [PATCH] add option for egg skip --- src/battle-scene.ts | 7 +++++++ src/locales/en/settings.json | 4 ++++ src/phases/egg-lapse-phase.ts | 8 +++++--- src/system/settings/settings.ts | 24 ++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 936d0b83253..2f919592016 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -161,6 +161,13 @@ export default class BattleScene extends SceneBase { public moveAnimations: boolean = true; public expGainsSpeed: integer = 0; public skipSeenDialogues: boolean = false; + /** + * Determines if the egg hatching animation should be skipped + * - 0 = Never + * - 1 = Always + * - 2 = Ask + */ + public eggSkip: number = 0; /** * Defines the experience gain display mode. diff --git a/src/locales/en/settings.json b/src/locales/en/settings.json index 301ebea9b2b..ee8a43d7510 100644 --- a/src/locales/en/settings.json +++ b/src/locales/en/settings.json @@ -11,6 +11,10 @@ "expGainsSpeed": "EXP Gains Speed", "expPartyDisplay": "Show EXP Party", "skipSeenDialogues": "Skip Seen Dialogues", + "eggSkip": "Egg Skip", + "never": "Never", + "always": "Always", + "ask": "Ask", "battleStyle": "Battle Style", "enableRetries": "Enable Retries", "hideIvs": "Hide IV scanner", diff --git a/src/phases/egg-lapse-phase.ts b/src/phases/egg-lapse-phase.ts index 1adb1568166..3c3e57627de 100644 --- a/src/phases/egg-lapse-phase.ts +++ b/src/phases/egg-lapse-phase.ts @@ -24,7 +24,6 @@ export class EggLapsePhase extends Phase { start() { super.start(); - const eggsToHatch: Egg[] = this.scene.gameData.eggs.filter((egg: Egg) => { return Overrides.EGG_IMMEDIATE_HATCH_OVERRIDE ? true : --egg.hatchWaves < 1; }); @@ -32,8 +31,7 @@ export class EggLapsePhase extends Phase { this.eggHatchData= []; if (eggsToHatchCount > 0) { - - if (eggsToHatchCount >= this.minEggsToPromptSkip) { + if (eggsToHatchCount >= this.minEggsToPromptSkip && this.scene.eggSkip === 2) { this.scene.ui.showText(i18next.t("battle:eggHatching"), 0, () => { // show prompt for skip this.scene.ui.showText(i18next.t("battle:eggSkipPrompt"), 0); @@ -46,6 +44,10 @@ export class EggLapsePhase extends Phase { } ); }, 100, true); + } else if (eggsToHatchCount >= this.minEggsToPromptSkip && this.scene.eggSkip === 1) { + this.scene.queueMessage(i18next.t("battle:eggHatching")); + this.hatchEggsSkipped(eggsToHatch); + this.showSummary(); } else { // regular hatches, no summary this.scene.queueMessage(i18next.t("battle:eggHatching")); diff --git a/src/system/settings/settings.ts b/src/system/settings/settings.ts index bc88c21e1e1..d977d5fd9d6 100644 --- a/src/system/settings/settings.ts +++ b/src/system/settings/settings.ts @@ -126,6 +126,7 @@ export const SettingKeys = { EXP_Gains_Speed: "EXP_GAINS_SPEED", EXP_Party_Display: "EXP_PARTY_DISPLAY", Skip_Seen_Dialogues: "SKIP_SEEN_DIALOGUES", + Egg_Skip: "EGG_SKIP", Battle_Style: "BATTLE_STYLE", Enable_Retries: "ENABLE_RETRIES", Hide_IVs: "HIDE_IVS", @@ -281,6 +282,26 @@ export const Setting: Array = [ default: 0, type: SettingType.GENERAL }, + { + key: SettingKeys.Egg_Skip, + label: i18next.t("settings:eggSkip"), + options: [ + { + value: "Never", + label: i18next.t("settings:never") + }, + { + value: "Always", + label: i18next.t("settings:always") + }, + { + value: "Ask", + label: i18next.t("settings:ask") + } + ], + default: 2, + type: SettingType.GENERAL + }, { key: SettingKeys.Battle_Style, label: i18next.t("settings:battleStyle"), @@ -727,6 +748,9 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): case SettingKeys.Skip_Seen_Dialogues: scene.skipSeenDialogues = Setting[index].options[value].value === "On"; break; + case SettingKeys.Egg_Skip: + scene.eggSkip = value; + break; case SettingKeys.Battle_Style: scene.battleStyle = value; break;