From 4f91c47168fab212657747a0f481792f471aee60 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sat, 4 Nov 2023 21:53:38 -0400 Subject: [PATCH] Add option to not show level up stats --- src/battle-scene.ts | 1 + src/system/settings.ts | 12 +++++++++--- src/ui/battle-message-ui-handler.ts | 2 ++ src/ui/settings-ui-handler.ts | 13 ++++++++----- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 3e002127d..a3d02be33 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -71,6 +71,7 @@ export default class BattleScene extends Phaser.Scene { public bgmVolume: number = 1; public seVolume: number = 1; public gameSpeed: integer = 1; + public showLevelUpStats: boolean = true; public quickStart: boolean = quickStart; public finalWave: integer = 200; diff --git a/src/system/settings.ts b/src/system/settings.ts index a407abde6..104ac760f 100644 --- a/src/system/settings.ts +++ b/src/system/settings.ts @@ -4,7 +4,8 @@ export enum Setting { Game_Speed = "GAME_SPEED", Master_Volume = "MASTER_VOLUME", BGM_Volume = "BGM_VOLUME", - SE_Volume = "SE_VOLUME" + SE_Volume = "SE_VOLUME", + Show_Stats_on_Level_Up = "SHOW_LEVEL_UP_STATS" } export interface SettingOptions { @@ -19,14 +20,16 @@ export const settingOptions: SettingOptions = { [Setting.Game_Speed]: [ '1x', '1.25x', '1.5x', '2x', '2.5x', '3x', '4x', '5x' ], [Setting.Master_Volume]: new Array(11).fill(null).map((_, i) => i ? (i * 10).toString() : 'Mute'), [Setting.BGM_Volume]: new Array(11).fill(null).map((_, i) => i ? (i * 10).toString() : 'Mute'), - [Setting.SE_Volume]: new Array(11).fill(null).map((_, i) => i ? (i * 10).toString() : 'Mute') + [Setting.SE_Volume]: new Array(11).fill(null).map((_, i) => i ? (i * 10).toString() : 'Mute'), + [Setting.Show_Stats_on_Level_Up]: [ 'Off', 'On' ] }; export const settingDefaults: SettingDefaults = { [Setting.Game_Speed]: 0, [Setting.Master_Volume]: 5, [Setting.BGM_Volume]: 10, - [Setting.SE_Volume]: 10 + [Setting.SE_Volume]: 10, + [Setting.Show_Stats_on_Level_Up]: 1 }; export function setSetting(scene: BattleScene, setting: Setting, value: integer): boolean { @@ -46,6 +49,9 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer) scene.seVolume = value ? parseInt(settingOptions[setting][value]) * 0.01 : 0; scene.updateSoundVolume(); break; + case Setting.Show_Stats_on_Level_Up: + scene.showLevelUpStats = settingOptions[setting][value] === 'On'; + break; } return true; diff --git a/src/ui/battle-message-ui-handler.ts b/src/ui/battle-message-ui-handler.ts index 19d8a4dba..9425dd464 100644 --- a/src/ui/battle-message-ui-handler.ts +++ b/src/ui/battle-message-ui-handler.ts @@ -131,6 +131,8 @@ export default class BattleMessageUiHandler extends MessageUiHandler { } promptLevelUpStats(partyMemberIndex: integer, prevStats: integer[], showTotals: boolean, callback?: Function): void { + if (!this.scene.showLevelUpStats) + return callback(); const newStats = (this.scene as BattleScene).getParty()[partyMemberIndex].stats; let levelUpStatsValuesText = ''; const stats = Utils.getEnumValues(Stat); diff --git a/src/ui/settings-ui-handler.ts b/src/ui/settings-ui-handler.ts index f135daf51..5cfd08aa4 100644 --- a/src/ui/settings-ui-handler.ts +++ b/src/ui/settings-ui-handler.ts @@ -39,13 +39,14 @@ export default class SettingsUiHandler extends UiHandler { this.optionsContainer = this.scene.add.container(0, 0); + const settingLabels = []; this.optionValueLabels = []; Object.keys(Setting).forEach((setting, s) => { - const settingLabel = addTextObject(this.scene, 8, 28 + s * 16, setting.replace(/\_/g, ' '), TextStyle.SETTINGS_LABEL); - settingLabel.setOrigin(0, 0); + settingLabels[s] = addTextObject(this.scene, 8, 28 + s * 16, setting.replace(/\_/g, ' '), TextStyle.SETTINGS_LABEL); + settingLabels[s].setOrigin(0, 0); - this.optionsContainer.add(settingLabel); + this.optionsContainer.add(settingLabels[s]); this.optionValueLabels.push(settingOptions[Setting[setting]].map((option, o) => { const valueLabel = addTextObject(this.scene, 0, 0, option, settingDefaults[Setting[setting]] === o ? TextStyle.SETTINGS_SELECTED : TextStyle.WINDOW); @@ -58,13 +59,15 @@ export default class SettingsUiHandler extends UiHandler { const totalWidth = this.optionValueLabels[s].map(o => o.width).reduce((total, width) => total += width, 0); - const totalSpace = 220 - totalWidth / 6; + const labelWidth = Math.max(78, settingLabels[s].displayWidth + 8); + + const totalSpace = (300 - labelWidth) - totalWidth / 6; const optionSpacing = Math.floor(totalSpace / (this.optionValueLabels[s].length - 1)); let xOffset = 0; for (let value of this.optionValueLabels[s]) { - value.setPositionRelative(settingLabel, 82 + xOffset, 0); + value.setPositionRelative(settingLabels[s], labelWidth + xOffset, 0); xOffset += value.width / 6 + optionSpacing; } });