annotate GeoQuiz/Helpers/GameAlertsModifier.swift @ 3:4dbe0cd9dadc

first game prototype
author Dennis C. M. <dennis@denniscm.com>
date Thu, 22 Sep 2022 10:42:39 +0200
parents
children de54f05adb78
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // GameAlertsModifier.swift
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 22/9/22.
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import SwiftUI
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 struct GameAlertsModifier<T: Game>: ViewModifier {
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 @ObservedObject var game: T
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 @Binding var gameName: GameName?
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 func body(content: Content) -> some View {
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 content
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 .alert(game.alertTitle, isPresented: $game.showingWrongAnswerAlert) {
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 Button("Continue", role: .cancel) { game.askQuestion() }
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 } message: {
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 Text(game.alertMessage)
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 }
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 .alert(game.alertTitle, isPresented: $game.showingNoLivesAlert) {
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 Button("Buy lives") { game.showingBuyLivesView = true }
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 Button("Exit", role: .destructive) { gameName = nil }
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 Button("Cancel", role: .cancel) { }
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 } message: {
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 Text(game.alertMessage)
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 }
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 .alert(game.alertTitle, isPresented: $game.showingEndGameAlert) {
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 Button("Exit", role: .cancel) { gameName = nil }
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 } message: {
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 Text(game.alertMessage)
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34 }
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35 }
4dbe0cd9dadc first game prototype
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36 }