Modal windows

This commit is contained in:
Martin
2022-12-21 14:08:49 +01:00
parent b4abb4df21
commit f3eb520300
25 changed files with 5287 additions and 263 deletions

View File

@@ -1,5 +1,8 @@
import { MenuModalWindowTypes } from "../../Menu/ModalWindows/MenuModalWindowTypes";
import { Empty } from "../../Menu/ModalWindows/Upgrades/UpgradesModalWindow";
import { ModalWindowManager } from "../../Services/ModalWindowSystem/ModalWindowManager";
import { TranslationData } from "../Data/TranslationData";
import { Game } from "../Game";
import { Pauser } from "../Pauser";
import { LevelUpModalWindowParams } from "../UI/LevelUpWindow/LevelUpModalWindow";
import { Player } from "../Unit/Player/Player";
@@ -27,4 +30,15 @@ export class GameModalLauncher {
this.gamePauser.resume();
this.upgrader.upgradeSkill(skillToUpgrade);
}
public async showPauseModal(): Promise<void> {
this.gamePauser.pause();
const shouldExit = await this.modalWindowManager.showModal<ModalWindowManager, boolean>(GameModalWindowTypes.Pause, this.modalWindowManager);
if (shouldExit) {
Game.Instance.exitGame();
} else {
this.gamePauser.resume();
}
}
}

View File

@@ -1,3 +1,4 @@
export enum GameModalWindowTypes {
LevelUp = "LevelUpModalWindow"
LevelUp = "LevelUpModalWindow",
Pause = "PauseModalWindow"
}

View File

@@ -0,0 +1,36 @@
import { _decorator } from "cc";
import { MenuModalWindowTypes } from "../../Menu/ModalWindows/MenuModalWindowTypes";
import { ModalWindow } from "../../Services/ModalWindowSystem/ModalWindow";
import { ModalWindowManager } from "../../Services/ModalWindowSystem/ModalWindowManager";
import { UIButton } from "../../Services/UI/Button/UIButton";
const { ccclass, property } = _decorator;
@ccclass("PauseModalWindow")
export class PauseModalWindow extends ModalWindow<ModalWindowManager, boolean> {
@property(UIButton) private continueBtn: UIButton;
@property(UIButton) private audioSettingsButton: UIButton;
@property(UIButton) private exitBtn: UIButton;
private modalWindowManager: ModalWindowManager;
protected setup(modalWindowManager: ModalWindowManager): void {
this.modalWindowManager = modalWindowManager;
this.continueBtn.InteractedEvent.on(this.continueGame, this);
this.audioSettingsButton.InteractedEvent.on(this.openSettingsWindow, this);
this.exitBtn.InteractedEvent.on(this.exitGame, this);
}
private openSettingsWindow(): void {
this.modalWindowManager.showModal(MenuModalWindowTypes.AudioSettings, {});
}
private continueGame(): void {
this.dismiss(false);
}
private exitGame(): void {
this.dismiss(true);
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "7951e831-768d-4cc1-910f-d93b9038b3aa",
"files": [],
"subMetas": {},
"userData": {}
}