view GeoQuiz/Logic/GuessTheFlag.swift @ 3:4dbe0cd9dadc

first game prototype
author Dennis C. M. <dennis@denniscm.com>
date Thu, 22 Sep 2022 10:42:39 +0200
parents 413e2d21333e
children de54f05adb78
line wrap: on
line source

//
//  GuessTheFlag.swift
//  GeoQuiz
//
//  Created by Dennis Concepción Martín on 20/9/22.
//

import Foundation
import SwiftUI

class GuessTheFlag: Game, ObservableObject {    

    // Define type of generics
    var data: [String: String]
    var dataAsked = [String]()
    
    // Data
    @Published var correctAnswer = (key: String(), value: String())
    
    // User
    @Published var userChoices = [String: String]()
    @Published var userScore = 0
    @Published var userLives = 3
    
    // Alerts
    @Published var alertTitle = String()
    @Published var alertMessage = String()
    @Published var showingNoLivesAlert = false
    @Published var showingEndGameAlert = false
    @Published var showingWrongAnswerAlert = false
    
    // Animations
    @Published var scoreScaleAmount = 1.0
    @Published var livesScaleAmount = 1.0
    
    // Modal views
    @Published var showingBuyLivesView = false
    
    init() {
        let flags: CountryFlags = load("CountryFlags.json")
        data = flags.countries
        askQuestion()
    }
}