diff --git a/GUI/src/components/GameCreationMenu.vue b/GUI/src/components/GameCreationMenu.vue index f0a49b2..3091442 100644 --- a/GUI/src/components/GameCreationMenu.vue +++ b/GUI/src/components/GameCreationMenu.vue @@ -19,7 +19,7 @@ function gameFieldPreset(x: number, y: number) {

Spiel Erstellen

- +

Spieler

-
+
Abbrechen Spiel Starten
+

{{ settingsProp.message }}

diff --git a/GUI/src/routes/OnlineMode.vue b/GUI/src/routes/OnlineMode.vue index fde9a19..4cfabbf 100644 --- a/GUI/src/routes/OnlineMode.vue +++ b/GUI/src/routes/OnlineMode.vue @@ -33,7 +33,22 @@ const gameField = ref([]); const currentSelectionIndex = ref(null); const gameEndedInformation = ref(null); -async function createGame() {} +game.value.onGameStateChanged = (gameState) => { + gameField.value = gameState?.currentField ?? []; +}; + +game.value.onGameEnded = (gameEndedInfo) => { + gameEndedInformation.value = gameEndedInfo; + currentState.value = CurrentState.EndScreen; +}; + +game.value.onGameCreated = (gameCode: string) => { + settings.value.message = `Das Spiel ist erstellt, deine Freund kann über folgendem Code Beitreten: ${gameCode}`; +}; + +async function createGame() { + await game.value.createGame(settings.value); +} async function tryToJoin() {} @@ -48,12 +63,12 @@ async function tryToJoin() {} diff --git a/GUI/src/scripts/interfaces/GameSettings.ts b/GUI/src/scripts/interfaces/GameSettings.ts index 46b6898..1d6b5b6 100644 --- a/GUI/src/scripts/interfaces/GameSettings.ts +++ b/GUI/src/scripts/interfaces/GameSettings.ts @@ -5,4 +5,5 @@ export interface GameSettings { playerName1: string; playerName2?: string | null; aiLevel?: number | null; + message?: string | null; } diff --git a/GUI/src/scripts/logic/onlineMode/OnlineGame.ts b/GUI/src/scripts/logic/onlineMode/OnlineGame.ts index 3618f55..4274391 100644 --- a/GUI/src/scripts/logic/onlineMode/OnlineGame.ts +++ b/GUI/src/scripts/logic/onlineMode/OnlineGame.ts @@ -7,15 +7,27 @@ class OnlineGame { private gameId: string = ''; public gameState: GameInformationDto | undefined; + public onGameCreated?: (gameCode: string) => void; + public onGameJoinedFailed?: (gameCode: string) => void; public onGameStateChanged?: (gameState: GameInformationDto | undefined) => void; public onGameEnded?: (gameEndedInfo: GameEnded) => void; constructor(settings: GameSettings) { this.player = new GameConnection(); + + this.player.onGameCreated = (gameIdentifier) => { + this.gameId = gameIdentifier.gameId; + this.onGameCreated?.(gameIdentifier.gameCode.toString()); + } + } + + async createGame(settings: GameSettings) { + await this.player.connect(settings.playerName1); + await this.player.createGame(settings.fieldSize); } async drop(index: number){ - + } }