[Enhancement] Add username to title screen + add possibility to hide it

This commit is contained in:
Prisca 2024-09-27 00:08:09 +02:00
parent 69cac23421
commit 7d915dba98
6 changed files with 42 additions and 5 deletions

View File

@ -150,6 +150,7 @@ export default class BattleScene extends SceneBase {
public enableTutorials: boolean = import.meta.env.VITE_BYPASS_TUTORIAL === "1"; public enableTutorials: boolean = import.meta.env.VITE_BYPASS_TUTORIAL === "1";
public enableMoveInfo: boolean = true; public enableMoveInfo: boolean = true;
public enableRetries: boolean = false; public enableRetries: boolean = false;
public enableHideUsername: boolean = false;
public hideIvs: boolean = false; public hideIvs: boolean = false;
/** /**
* Determines the condition for a notification should be shown for Candy Upgrades * Determines the condition for a notification should be shown for Candy Upgrades

View File

@ -107,5 +107,6 @@
"rewards": "Rewards", "rewards": "Rewards",
"reroll": "Reroll", "reroll": "Reroll",
"shop": "Shop", "shop": "Shop",
"checkTeam": "Check Team" "checkTeam": "Check Team",
"hiddenUsername": "Hidden Username"
} }

View File

@ -107,5 +107,6 @@
"rewards": "Obj. gratuits", "rewards": "Obj. gratuits",
"reroll": "Relance", "reroll": "Relance",
"shop": "Boutique", "shop": "Boutique",
"checkTeam": "Équipe" "checkTeam": "Équipe",
"hiddenUsername": "Pseudo caché"
} }

View File

@ -54,6 +54,8 @@ export class TitlePhase extends Phase {
console.error(err); console.error(err);
this.showOptions(); this.showOptions();
}); });
this.scene.events.emit("sessionUpdate");
} }
showOptions(): void { showOptions(): void {

View File

@ -160,7 +160,8 @@ export const SettingKeys = {
Music_Preference: "MUSIC_PREFERENCE", Music_Preference: "MUSIC_PREFERENCE",
Show_BGM_Bar: "SHOW_BGM_BAR", Show_BGM_Bar: "SHOW_BGM_BAR",
Move_Touch_Controls: "MOVE_TOUCH_CONTROLS", Move_Touch_Controls: "MOVE_TOUCH_CONTROLS",
Shop_Overlay_Opacity: "SHOP_OVERLAY_OPACITY" Shop_Overlay_Opacity: "SHOP_OVERLAY_OPACITY",
Hide_Username: "HIDE_USERNAME"
}; };
/** /**
@ -666,6 +667,14 @@ export const Setting: Array<Setting> = [
default: 7, default: 7,
type: SettingType.DISPLAY, type: SettingType.DISPLAY,
requireReload: false requireReload: false
},
{
key: SettingKeys.Hide_Username,
label: i18next.t("settings:hiddenUsername"),
options: OFF_ON,
default: 0,
type: SettingType.GENERAL,
requireReload: false
} }
]; ];
@ -757,6 +766,10 @@ export function setSetting(scene: BattleScene, setting: string, value: integer):
case SettingKeys.Show_BGM_Bar: case SettingKeys.Show_BGM_Bar:
scene.showBgmBar = Setting[index].options[value].value === "On"; scene.showBgmBar = Setting[index].options[value].value === "On";
break; break;
case SettingKeys.Hide_Username:
scene.enableHideUsername = Setting[index].options[value].value === "On";
scene.events.emit("sessionUpdate");
break;
case SettingKeys.Candy_Upgrade_Notification: case SettingKeys.Candy_Upgrade_Notification:
if (scene.candyUpgradeNotification === value) { if (scene.candyUpgradeNotification === value) {
break; break;

View File

@ -6,6 +6,7 @@ import { TextStyle, addTextObject, getTextStyleOptions } from "./text";
import { getSplashMessages } from "../data/splash-messages"; import { getSplashMessages } from "../data/splash-messages";
import i18next from "i18next"; import i18next from "i18next";
import { TimedEventDisplay } from "#app/timed-event-manager"; import { TimedEventDisplay } from "#app/timed-event-manager";
import {loggedInUser} from "#app/account";
export default class TitleUiHandler extends OptionSelectUiHandler { export default class TitleUiHandler extends OptionSelectUiHandler {
/** If the stats can not be retrieved, use this fallback value */ /** If the stats can not be retrieved, use this fallback value */
@ -15,6 +16,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
private playerCountLabel: Phaser.GameObjects.Text; private playerCountLabel: Phaser.GameObjects.Text;
private splashMessage: string; private splashMessage: string;
private splashMessageText: Phaser.GameObjects.Text; private splashMessageText: Phaser.GameObjects.Text;
private usernameText: Phaser.GameObjects.Text;
private eventDisplay: TimedEventDisplay; private eventDisplay: TimedEventDisplay;
private titleStatsTimer: NodeJS.Timeout | null; private titleStatsTimer: NodeJS.Timeout | null;
@ -43,6 +45,23 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
this.titleContainer.add(this.eventDisplay); this.titleContainer.add(this.eventDisplay);
} }
this.usernameText = addTextObject(
this.scene,
(this.scene.game.canvas.width / 6) - 2,
(this.scene.game.canvas.height / 7) - 576 * getTextStyleOptions(TextStyle.WINDOW, this.scene.uiTheme).scale,
loggedInUser?.username || "Guest",
TextStyle.PARTY_RED,
{fontSize: "54px"}
);
this.usernameText.setOrigin(1, 0);
this.titleContainer.add(this.usernameText);
this.scene.events.on("sessionUpdate", () => {
this.scene.enableHideUsername
? this.usernameText.setText("")
: this.usernameText.setText(loggedInUser?.username || "Guest");
});
this.playerCountLabel = addTextObject( this.playerCountLabel = addTextObject(
this.scene, this.scene,
(this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.width / 6) - 2,