LearnWithTouch/Assets/scripts/Gamestate.cs

346 lines
7.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using System;
public class Gamestate : MonoBehaviour {
// Declare properties
private static Gamestate instance;
private string activeGame = "Count"; // Active level
private string activeLevel = "1"; // Active level
//private string name; // Characters name
private int score; // Characters Experience Points
private float scoreProz;
//private Touch[] touchList;
private bool calibrate = true;
private int numberTrials = 4;//48
private int maxCount = 5;
private int maxCorrect = 3;
private bool intro = true;
private bool tutorial = true;
private bool music = true;
private bool animPlaying = false;
public struct PlayerData
{
public string ID;
public string level;
public int score;
public string game;
public string date;
public string time;
public int attempt_count;
public int attempt_set;
public int attempt_add;
/*public int x, y;
public Coords(int p1, int p2)
{
x = p1;
y = p2;
}*/
}
private PlayerData pdata;
// ---------------------------------------------------------------------------------------------------
// gamestate()
// ---------------------------------------------------------------------------------------------------
// Creates an instance of gamestate as a gameobject if an instance does not exist
// ---------------------------------------------------------------------------------------------------
public static Gamestate Instance
{
get
{
if (instance == null)
{
instance = new GameObject("Gamestate").AddComponent<Gamestate>();
}
return instance;
}
}
// Sets the instance to null when the application quits
public void OnApplicationQuit()
{
instance = null;
}
/*public void createPlayerData() {
pdata.ID = "Test";
pdata.game = "Count";
pdata.level = "1";
pdata.score = 0;
pdata.date ="01011999";
pdata.time="00:00:00";
pdata.attempt_count=0;
pdata.attempt_set=0;
pdata.attempt_add=0;
}*/
public void setPlayerData(PlayerData pd) {
pdata.ID = pd.ID;
pdata.attempt_add = pd.attempt_add;
pdata.attempt_count = pd.attempt_count;
pdata.attempt_set=pd.attempt_set;
pdata.date=pd.date;
pdata.game=pd.game;
pdata.level=pd.level;
pdata.score=pd.score;
pdata.time=pd.time;
}
// ---------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------
// startState()
// ---------------------------------------------------------------------------------------------------
// Creates a new game state
// ---------------------------------------------------------------------------------------------------
public void startState()
{
print("startState");
// Set default properties:
name = "My Character";
score = 0;
if (!calibrate)
{
// Load level 1
calibrate = true;
SceneManager.LoadScene("Calibrate");
} else
{
startIntro();
//SceneManager.LoadScene(activeGame+"1");
}
}
public void startIntro()
{
print("startIntro");
// Set default properties:
name = "My Character";
score = 0;
if (intro)
{
// Load level 1
//intro = false;
SceneManager.LoadScene("Intro");
} else
{
//if (tutorial) startTutorial();
//else
startGame();
}
}
public void startGame()
{
Debug.Log("start activeGame: " + activeGame.ToString());
SceneManager.LoadScene(activeGame + "1");
}
/*public void startTutorial()
{
Debug.Log("start activeGame: " + activeGame.ToString());
SceneManager.LoadScene("Tutorial");
}*/
public void startScoreScene()
{
SceneManager.LoadScene("ScoreScene");
}
public void startOptions()
{
SceneManager.LoadScene("OptionScene");
}
public void startEndScene()
{
SceneManager.LoadScene("EndScene");
}
public void menuState()
{
print("menuState");
// Set default properties:
SceneManager.LoadScene("GameStart");
//data.savePlayerInfo();
}
public string getLevel()
{
return activeLevel;
}
public void setLevel(string newLevel)
{
// Set activeLevel to newLevel
activeLevel = newLevel;
pdata.level=newLevel;
//data.setLevel(newLevel);
}
public void setIntro(bool value)
{
intro = value;
}
public void setTutorial(bool value)
{
tutorial = value;
}
public void setMusic(bool value)
{
music = value;
}
public bool getTutorial()
{
return tutorial;
}
public bool getIntro()
{
return intro;
}
public bool getMusic()
{
return music;
}
public string getGame()
{
return activeGame;
}
public void setGame(string newGame)
{
// Set activeLevel to newLevel
activeGame = newGame;
pdata.game = newGame;
//data.setGame(newGame);
}
public void setID(string id)
{
pdata.ID=id;
}
public string getID()
{
return pdata.ID;
}
public void setGamePoints(int points)
{
score = points;
scoreProz = numberTrials / points;
//data.setPoints(points);
}
public int getGamePoints()
{
return score;
}
public float getGamePointsProz()
{
return scoreProz;
}
public int getNumberTrials()
{
return numberTrials;
}
public void setNumberTrials(int numTrials)
{
// Set activeLevel to newLevel
numberTrials = numTrials;
//data.setLevel(newLevel);
}
public int getMaxCount()
{
return maxCount;
}
public void setAnimPlaying(bool state)
{
this.animPlaying = state;
}
public bool getAnimPlaying()
{
return this.animPlaying;
}
public int getMaxCorrect()
{
return maxCorrect;
}
public PlayerData GetPlayerData()
{
return pdata;
}
public void setDate(string newDate)
{
pdata.date=pdata.date + " " + newDate;
}
public string getDate()
{
return pdata.level;
}
public void setPoints(int points)
{
pdata.score=points;
}
public int getPoints()
{
return pdata.score;
}
public void setAttemptCount(int count)
{
pdata.attempt_count=count;
}
public int getAttemptCount()
{
return pdata.attempt_count;
}
public void setAttemptSet(int count)
{
pdata.attempt_set=count;
}
public int getAttemptSet()
{
return pdata.attempt_set;
}
public void setAttemptAdd(int count)
{
pdata.attempt_add=count;
}
public int getAttemptAdd()
{
return pdata.attempt_add;
}
//public void addTrial(Trial t) {
// data.tdata.addTrial(t);
//}
}