mirror of
https://github.com/MartinKral/Slash-The-Hordes
synced 2025-10-09 16:46:00 +00:00
Modal windows
This commit is contained in:
@@ -23,7 +23,7 @@ export class GameRunner {
|
||||
public async playGame(): Promise<void> {
|
||||
this.isRunning = true;
|
||||
director.loadScene("Game");
|
||||
const userData: UserData = AppRoot.Instance.SaveSystem.load();
|
||||
const userData: UserData = AppRoot.Instance.LiveUserData;
|
||||
while (Game.Instance == null) await delay(10);
|
||||
const result: GameResult = await Game.Instance.playGame(userData, AppRoot.Instance.Settings, AppRoot.Instance.TranslationData);
|
||||
userData.game.goldCoins += result.goldCoins;
|
||||
@@ -31,9 +31,7 @@ export class GameRunner {
|
||||
if (userData.game.highscore < result.score) {
|
||||
userData.game.highscore = result.score;
|
||||
}
|
||||
AppRoot.Instance.SaveSystem.save(userData);
|
||||
|
||||
await delay(1000);
|
||||
AppRoot.Instance.saveUserData();
|
||||
director.loadScene("Menu");
|
||||
|
||||
this.isRunning = false;
|
||||
|
@@ -10,6 +10,7 @@ const { ccclass, property } = _decorator;
|
||||
export class Menu extends Component {
|
||||
@property(UIButton) private playBtn: UIButton;
|
||||
@property(UIButton) private upgradeBtn: UIButton;
|
||||
@property(UIButton) private audioSettingsBtn: UIButton;
|
||||
@property(ModalWindowManager) private modalWindowManager: ModalWindowManager;
|
||||
|
||||
private menuModalLauncher: MenuModalLauncher;
|
||||
@@ -17,6 +18,7 @@ export class Menu extends Component {
|
||||
public async start(): Promise<void> {
|
||||
this.playBtn.InteractedEvent.on(this.startGame, this);
|
||||
this.upgradeBtn.InteractedEvent.on(this.openUpgradesWindow, this);
|
||||
this.audioSettingsBtn.InteractedEvent.on(this.openAudioSettingsWindow, this);
|
||||
|
||||
this.menuModalLauncher = new MenuModalLauncher(this.modalWindowManager);
|
||||
}
|
||||
@@ -28,4 +30,8 @@ export class Menu extends Component {
|
||||
private openUpgradesWindow(): void {
|
||||
this.menuModalLauncher.openUpgradesWindow();
|
||||
}
|
||||
|
||||
private openAudioSettingsWindow(): void {
|
||||
this.menuModalLauncher.openAudioSettingsWindow();
|
||||
}
|
||||
}
|
||||
|
12
assets/Scripts/Menu/ModalWindows/AudioSettings.meta
Normal file
12
assets/Scripts/Menu/ModalWindows/AudioSettings.meta
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "fcf86181-bba6-488b-b46a-4fbc6c162992",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"compressionType": {},
|
||||
"isRemoteBundle": {}
|
||||
}
|
||||
}
|
@@ -0,0 +1,40 @@
|
||||
import { Slider, _decorator } from "cc";
|
||||
import { AppRoot } from "../../../AppRoot/AppRoot";
|
||||
import { ModalWindow } from "../../../Services/ModalWindowSystem/ModalWindow";
|
||||
import { UIButton } from "../../../Services/UI/Button/UIButton";
|
||||
import { Empty } from "../Upgrades/UpgradesModalWindow";
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass("AudioSettingsModalWindow")
|
||||
export class AudioSettingsModalWindow extends ModalWindow<Empty, Empty> {
|
||||
@property(Slider) private soundVolumeSlider: Slider;
|
||||
@property(Slider) private musicVolumeSlider: Slider;
|
||||
@property(UIButton) private okButton: UIButton;
|
||||
|
||||
protected setup(): void {
|
||||
this.soundVolumeSlider.progress = AppRoot.Instance.AudioPlayer.SoundVolume;
|
||||
this.musicVolumeSlider.progress = AppRoot.Instance.AudioPlayer.MusicVolume;
|
||||
|
||||
this.soundVolumeSlider.node.on("slide", this.updateSoundVolume, this);
|
||||
this.musicVolumeSlider.node.on("slide", this.updateMusicVolume, this);
|
||||
|
||||
this.okButton.InteractedEvent.on(this.dismiss, this);
|
||||
}
|
||||
|
||||
private updateSoundVolume(): void {
|
||||
AppRoot.Instance.AudioPlayer.setSoundVolume(this.soundVolumeSlider.progress);
|
||||
}
|
||||
|
||||
private updateMusicVolume(): void {
|
||||
AppRoot.Instance.AudioPlayer.setMusicVolume(this.musicVolumeSlider.progress);
|
||||
}
|
||||
|
||||
protected dismiss(result?: Empty): void {
|
||||
super.dismiss(result);
|
||||
const userData = AppRoot.Instance.LiveUserData;
|
||||
userData.musicVolume = this.musicVolumeSlider.progress;
|
||||
userData.soundVolume = this.soundVolumeSlider.progress;
|
||||
AppRoot.Instance.saveUserData();
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "0c052d4f-c82c-4aff-a5ed-a7317f69c9ef",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
@@ -7,4 +7,8 @@ export class MenuModalLauncher {
|
||||
public async openUpgradesWindow(): Promise<void> {
|
||||
await this.modalWindowManager.showModal(MenuModalWindowTypes.Upgrades, {});
|
||||
}
|
||||
|
||||
public async openAudioSettingsWindow(): Promise<void> {
|
||||
await this.modalWindowManager.showModal(MenuModalWindowTypes.AudioSettings, {});
|
||||
}
|
||||
}
|
||||
|
@@ -1,3 +1,4 @@
|
||||
export enum MenuModalWindowTypes {
|
||||
Upgrades = "UpgradesModalWindow"
|
||||
Upgrades = "UpgradesModalWindow",
|
||||
AudioSettings = "AudioSettingsModalWindow"
|
||||
}
|
||||
|
@@ -22,7 +22,7 @@ export class UpgradesModalWindow extends ModalWindow<Empty, Empty> {
|
||||
private userData: UserData;
|
||||
|
||||
public setup(): void {
|
||||
this.userData = AppRoot.Instance.SaveSystem.load();
|
||||
this.userData = AppRoot.Instance.LiveUserData;
|
||||
const settings = AppRoot.Instance.Settings.metaUpgrades;
|
||||
|
||||
this.createUpgradeButton(MetaUpgradeType.Health, settings.health, "healthLevel");
|
||||
@@ -67,7 +67,7 @@ export class UpgradesModalWindow extends ModalWindow<Empty, Empty> {
|
||||
this.typeToUpgradeUI.get(upgradeType).updateLevel(level);
|
||||
|
||||
this.goldCoinsLabel.string = this.userData.game.goldCoins.toString();
|
||||
AppRoot.Instance.SaveSystem.save(this.userData);
|
||||
AppRoot.Instance.saveUserData;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user