Răsfoiți Sursa

PHP Error fixes

Axel Nordh 6 ani în urmă
părinte
comite
1a456d4da5

+ 4 - 4
Assets/MainMenu.unity

@@ -2658,7 +2658,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: -0.000045776367, y: 11.001662}
+  m_AnchoredPosition: {x: -0.000045776367, y: 0.000006676831}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!114 &321314050
@@ -5679,7 +5679,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: -0.000015258789, y: 11.001662}
+  m_AnchoredPosition: {x: -0.000015258789, y: 0.000006676831}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!114 &777178507
@@ -7378,7 +7378,7 @@ MonoBehaviour:
   m_HandleRect: {fileID: 761483706}
   m_Direction: 2
   m_Value: 0
-  m_Size: 0.94356734
+  m_Size: 1
   m_NumberOfSteps: 0
   m_OnValueChanged:
     m_PersistentCalls:
@@ -10953,7 +10953,7 @@ MonoBehaviour:
   m_HandleRect: {fileID: 359479519}
   m_Direction: 2
   m_Value: 0
-  m_Size: 0.94356734
+  m_Size: 1
   m_NumberOfSteps: 0
   m_OnValueChanged:
     m_PersistentCalls:

+ 13 - 10
Assets/Scripts/CategoryPanel.cs

@@ -14,6 +14,7 @@ public class CategoryPanel : MonoBehaviour
         public Color32 color;
     }
 
+    string gameMode;
     GameManagerScript gms;
     List<Category> categories;
     // Start is called before the first frame update
@@ -24,11 +25,8 @@ public class CategoryPanel : MonoBehaviour
 
     private void PopulatePanel() {
         if (categories == null) {
-            if (PlayerPrefs.GetString("GameMode").Equals("Local")) {
-                Database.Instance.GetCategories(categories);
-            } else if (PlayerPrefs.GetString("GameMode").Equals("Online")) {
-                OnlineDatabase.Instance.GetCategories(categories);
-            }
+            categories = new List<Category>();
+            Database.Instance.GetCategories(categories, GetGameMode());
         }
         foreach (Category cat in categories) {
             AddText(cat.name, cat.color);
@@ -52,11 +50,8 @@ public class CategoryPanel : MonoBehaviour
 
     public Category GetCategoryById(int id) {
         if (categories == null) {
-            if (PlayerPrefs.GetString("GameMode").Equals("Local")) {
-                Database.Instance.GetCategories(categories);
-            } else if (PlayerPrefs.GetString("GameMode").Equals("Online")) {
-                OnlineDatabase.Instance.GetCategories(categories);
-            }
+            categories = new List<Category>();
+            Database.Instance.GetCategories(categories, GetGameMode());
         }
         foreach (Category cat in categories) {
             if (cat.id == id) {
@@ -65,4 +60,12 @@ public class CategoryPanel : MonoBehaviour
         }
         return null;
     }
+
+    private string GetGameMode() {
+        if (gameMode == null) {
+            gameMode = PlayerPrefs.GetString("GameMode");
+        }
+
+        return gameMode;
+    }
 }

+ 88 - 77
Assets/Scripts/Database/Database.cs

@@ -29,27 +29,31 @@ public class Database : MonoBehaviour {
         }
     }
 
-    internal void GetCategories(List<CategoryPanel.Category> list) {
-        string sql = "SELECT name, r, g, b, a, id FROM category";
-        IDbCommand cmd = GetConnection();
-        cmd.CommandText = sql;
+    internal void GetCategories(List<CategoryPanel.Category> list, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            OnlineDatabase.Instance.GetCategories(list);
+        } else {
+            string sql = "SELECT name, r, g, b, a, id FROM category";
+            IDbCommand cmd = GetConnection();
+            cmd.CommandText = sql;
 
-        IDataReader reader = cmd.ExecuteReader();
+            IDataReader reader = cmd.ExecuteReader();
 
-        while (reader.Read()) {
-            CategoryPanel.Category cat = new CategoryPanel.Category();
+            while (reader.Read()) {
+                CategoryPanel.Category cat = new CategoryPanel.Category();
 
-            byte r = (byte)reader.GetInt32(1);
-            byte g = (byte)reader.GetInt32(2);
-            byte b = (byte)reader.GetInt32(3);
-            byte a = (byte)reader.GetInt32(4);
-            cat.color = new Color32(r, g, b, a);
-            cat.name = reader.GetString(0);
-            cat.id = reader.GetInt32(5);
+                byte r = (byte)reader.GetInt32(1);
+                byte g = (byte)reader.GetInt32(2);
+                byte b = (byte)reader.GetInt32(3);
+                byte a = (byte)reader.GetInt32(4);
+                cat.color = new Color32(r, g, b, a);
+                cat.name = reader.GetString(0);
+                cat.id = reader.GetInt32(5);
 
-            list.Add(cat);
+                list.Add(cat);
+            }
+            CloseConnection();
         }
-        CloseConnection();
     }
 
     [Serializable]
@@ -224,7 +228,7 @@ public class Database : MonoBehaviour {
 
     }
 
-    internal int GetQuestionTimer(int gameId) {
+    internal int GetQuestionTimer(int gameId, string gameMode) {
         if (questionTimer == -1) {
             string sql = "SELECT answerTimer FROM game WHERE id = " + gameId;
             if (databaseUrl == null) {
@@ -328,7 +332,10 @@ public class Database : MonoBehaviour {
         conn.Close();
     }
 
-    public string GetCurrentPlayer(int gameId) {
+    public string GetCurrentPlayer(int gameId, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            return OnlineDatabase.Instance.GetCurrentPlayer(gameId);
+        }
         string sql = "SELECT currentPlayer FROM game WHERE id = " + gameId;
         IDbConnection conn = new SqliteConnection(databaseUrl);
         conn.Open();
@@ -347,16 +354,20 @@ public class Database : MonoBehaviour {
         return currentPlayer;
     }
 
-    public void SetCurrentPlayer(int gameId, string currentPlayer) {
-        string sql = "UPDATE game SET currentPlayer = '" + currentPlayer + "' WHERE id = " + gameId;
-        IDbConnection conn = new SqliteConnection(databaseUrl);
-        conn.Open();
-        IDbCommand cmd = conn.CreateCommand();
-        cmd.CommandText = sql;
-        cmd.ExecuteNonQuery();
+    public void SetCurrentPlayer(int gameId, string currentPlayer, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            OnlineDatabase.Instance.SetCurrentPlayer(gameId, currentPlayer);
+        } else {
+            string sql = "UPDATE game SET currentPlayer = '" + currentPlayer + "' WHERE id = " + gameId;
+            IDbConnection conn = new SqliteConnection(databaseUrl);
+            conn.Open();
+            IDbCommand cmd = conn.CreateCommand();
+            cmd.CommandText = sql;
+            cmd.ExecuteNonQuery();
 
-        cmd.Dispose();
-        conn.Close();
+            cmd.Dispose();
+            conn.Close();
+        }
     }
 
     internal int GetPlayerPoints(int gameId, string playerName) {
@@ -378,31 +389,42 @@ public class Database : MonoBehaviour {
         return points;
     }
 
-    internal void SetFinishedDate(int gameId, string finishedDate) {
-        string sql = "UPDATE game SET finishedDate = '" + finishedDate + "' WHERE id = " + gameId;
-        IDbConnection conn = new SqliteConnection(databaseUrl);
-        conn.Open();
-        IDbCommand cmd = conn.CreateCommand();
-        cmd.CommandText = sql;
-        cmd.ExecuteNonQuery();
+    internal void SetFinishedDate(int gameId, string finishedDate, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            OnlineDatabase.Instance.SetFinishedDate(gameId, finishedDate);
+        } else {
+            string sql = "UPDATE game SET finishedDate = '" + finishedDate + "' WHERE id = " + gameId;
+            IDbConnection conn = new SqliteConnection(databaseUrl);
+            conn.Open();
+            IDbCommand cmd = conn.CreateCommand();
+            cmd.CommandText = sql;
+            cmd.ExecuteNonQuery();
 
-        cmd.Dispose();
-        conn.Close();
+            cmd.Dispose();
+            conn.Close();
+        }
     }
 
-    internal void SetRoundValue(int gameId, int round) {
-        string sql = "UPDATE game SET round = " + round + " WHERE id = " + gameId;
-        IDbConnection conn = new SqliteConnection(databaseUrl);
-        conn.Open();
-        IDbCommand cmd = conn.CreateCommand();
-        cmd.CommandText = sql;
-        cmd.ExecuteNonQuery();
+    internal void SetRoundValue(int gameId, int round, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            OnlineDatabase.Instance.SetRoundValue(gameId, round);
+        } else {
+            string sql = "UPDATE game SET round = " + round + " WHERE id = " + gameId;
+            IDbConnection conn = new SqliteConnection(databaseUrl);
+            conn.Open();
+            IDbCommand cmd = conn.CreateCommand();
+            cmd.CommandText = sql;
+            cmd.ExecuteNonQuery();
 
-        cmd.Dispose();
-        conn.Close();
+            cmd.Dispose();
+            conn.Close();
+        }
     }
 
-    internal int GetRoundValue(int gameId) {
+    internal int GetRoundValue(int gameId, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            return OnlineDatabase.Instance.GetRoundValue(gameId);
+        }
         if (this.round == -1) {
             string sql = "SELECT round FROM game WHERE id = " + gameId;
             IDbConnection conn = new SqliteConnection(databaseUrl);
@@ -420,7 +442,10 @@ public class Database : MonoBehaviour {
         return this.round;
     }
 
-    internal List<KeyValuePair<string, int>> GetPlayersForGame(int gameId) {
+    internal List<KeyValuePair<string, int>> GetPlayersForGame(int gameId, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            return OnlineDatabase.Instance.GetPlayersForGame(gameId);
+        }
         string sql = "SELECT name, (SELECT count(*) FROM usersLockedQuestions WHERE playerName = localUsers.name AND gameId = " + gameId + ") as numAnswers  FROM localGamePlayers " +
             "LEFT JOIN localUsers ON localGamePlayers.playerId = localUsers.id " +
             "WHERE gameId = " + gameId;
@@ -468,7 +493,10 @@ public class Database : MonoBehaviour {
         connectionType = type;
     }
 
-    internal int GetQuestionsLost(int gameId, string playerName) {
+    internal int GetQuestionsLost(int gameId, string playerName, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            return OnlineDatabase.Instance.GetQuestionsLost(gameId, playerName);
+        }
         string sql = "SELECT questionsLost FROM localGamePlayers WHERE gameId = " + gameId + " AND playerId = (SELECT id from localUsers WHERE name = '" + playerName + "')";
         IDbConnection conn = new SqliteConnection(databaseUrl);
         conn.Open();
@@ -559,7 +587,10 @@ public class Database : MonoBehaviour {
         conn2.Close();
     }
 
-    internal int GetWinCondition(int gameId) {
+    internal int GetWinCondition(int gameId, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            return OnlineDatabase.Instance.GetWinCondition(gameId);
+        }
         if (winAmount == -1) {
             string sql = "SELECT winNumber FROM game WHERE id = " + gameId;
             IDbConnection conn = new SqliteConnection(databaseUrl);
@@ -591,7 +622,10 @@ public class Database : MonoBehaviour {
         return (int)lastInsert64;
     }
 
-    public NewQuestion GetNewQuestion(List<int> userAnsweredQuestions, string userName) {
+    public NewQuestion GetNewQuestion(List<int> userAnsweredQuestions, string userName, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            return OnlineDatabase.Instance.GetNewQuestion(userAnsweredQuestions, userName);
+        }
         int gameId = GameObject.Find("GameManager").GetComponent<GameManagerScript>().GameId;
         Color32 questionCategoryColor = new Color32(0, 0, 20, 20);
         if (connectionType == null) {
@@ -672,7 +706,10 @@ public class Database : MonoBehaviour {
         }
     }
 
-    public List<QuestionCard> GetPlayerQuestions(int gameId, string playerNameValue) {
+    public List<QuestionCard> GetPlayerQuestions(int gameId, string playerNameValue, string gameMode) {
+        if (gameMode.Equals("Online")) {
+            return OnlineDatabase.Instance.GetPlayerQuestions(gameId, playerNameValue);
+        }
         if (databaseUrl == null) {
             SetLocalOrOnline(GetGameMode(gameId));
         }
@@ -730,30 +767,4 @@ public class Database : MonoBehaviour {
             categoryString = qe.questionsList[0].category;
         }
     }
-
-    public List<UserName> GetUsersToInvite(string searchString) {
-        string postUrl = "nordh.xyz/narKampen/dbFiles/PlayerSearch.php?";
-        postUrl += "search=" + UnityWebRequest.EscapeURL(searchString);
-
-
-        UserNames uNames = new UserNames();
-        UnityWebRequest www = UnityWebRequest.Get(postUrl);
-        www.SendWebRequest();
-
-        if (www.isNetworkError || www.isHttpError) {
-            Debug.Log(www.error);
-        } else {
-            while (!www.isDone) {
-            }
-            // Show result
-            string jsonData = www.downloadHandler.text;
-
-            jsonData = "{\"usernamesList\" :  " + jsonData + " }";
-
-            JsonUtility.FromJsonOverwrite(jsonData, uNames);
-        }
-        // TODO handle empty
-        return uNames.usernamesList;
-    }
-
 }

+ 1 - 16
Assets/Scripts/Database/OnlineDatabase.cs

@@ -32,7 +32,6 @@ public class OnlineDatabase : MonoBehaviour {
         response = "{\"categoryList\" :  " + response + " }";
 
         Categories categories = new Categories();
-        Debug.Log(response);
         JsonUtility.FromJsonOverwrite(response, categories);
 
         foreach (Category c in categories.categoryList) {
@@ -424,24 +423,10 @@ public class OnlineDatabase : MonoBehaviour {
         GamePlayerInfos gpi = new GamePlayerInfos();
         JsonUtility.FromJsonOverwrite(response, gpi);
 
+        List<KeyValuePair<string, int>> returnList = new List<KeyValuePair<string, int>>();
         foreach (GamePlayerInfo p in gpi.gamePlayerInfoList) {
             Int32.TryParse(p.userLockedQuestions, out int points);
             KeyValuePair<string, int> player = new KeyValuePair<string, int>(p.username, points);
-
-        }
-        string sql = "SELECT name, (SELECT count(*) FROM usersLockedQuestions WHERE playerName = localUsers.name AND gameId = " + gameId + ") as numAnswers  FROM localGamePlayers " +
-            "LEFT JOIN localUsers ON localGamePlayers.playerId = localUsers.id " +
-            "WHERE gameId = " + gameId;
-        IDbConnection conn = new SqliteConnection(databaseUrl);
-        conn.Open();
-        IDbCommand cmd = conn.CreateCommand();
-        cmd.CommandText = sql;
-
-        IDataReader reader = cmd.ExecuteReader();
-
-        List<KeyValuePair<string, int>> returnList = new List<KeyValuePair<string, int>>();
-        while (reader.Read()) {
-            KeyValuePair<string, int> player = new KeyValuePair<string, int>(reader.GetString(0), reader.GetInt32(1));
             returnList.Add(player);
         }
 

+ 3 - 0
Assets/Scripts/GameInfoScript.cs

@@ -16,6 +16,7 @@ public class GameInfoScript : MonoBehaviour {
     public Transform gameSettingsPanel;
 
     private int gameId;
+    private int questionTimer;
 
     // Start is called before the first frame update
     void Start() {
@@ -32,6 +33,7 @@ public class GameInfoScript : MonoBehaviour {
     internal void SetOnlineData(OnlineGameScript onlineGameScript) {
         String currentPlayer = Database.Instance.GetSignedInUser().Value;
         gameId = onlineGameScript.GetId();
+        questionTimer = onlineGameScript.AnswerTimer;
         foreach (KeyValuePair<string, string> player in onlineGameScript.PlayerInfos) {
             GameObject slp = Instantiate(playerInfoPrefab, new Vector2(0, 0), Quaternion.identity) as GameObject;
             OnlinePlayerInfoScript opi = slp.GetComponent<OnlinePlayerInfoScript>();
@@ -57,6 +59,7 @@ public class GameInfoScript : MonoBehaviour {
     private void OpenGame() {
         PlayerPrefs.SetString("GameMode", "Online");
         PlayerPrefs.SetInt("GameId", gameId);
+        PlayerPrefs.SetInt("QuestionTimer", questionTimer);
         SceneManager.LoadSceneAsync("narKampen");
     }
 

+ 5 - 1
Assets/Scripts/GameManagerScript.cs

@@ -6,6 +6,7 @@ using UnityEngine;
 public class GameManagerScript : MonoBehaviour {
 
     private int playerCount;
+    private int questionTimer;
     private string gameMode;
 
     public Database db;
@@ -15,11 +16,14 @@ public class GameManagerScript : MonoBehaviour {
     public string GameMode { get => gameMode; set => gameMode = value; }
     public int GameId { get; internal set; }
 
+    public int QuestionTimer { get => questionTimer; set => questionTimer = value; }
+
     List<KeyValuePair<string, int>> players;
     // Start is called before the first frame update
     void Start() {
         GameId = PlayerPrefs.GetInt("GameId");
         GameMode = PlayerPrefs.GetString("GameMode");
+        QuestionTimer = PlayerPrefs.GetInt("QuestionTimer");
 
         if (GameMode.Equals("Local")) {
             db = Database.Instance;
@@ -34,7 +38,7 @@ public class GameManagerScript : MonoBehaviour {
     }
 
     private List<KeyValuePair<string,int>> GetPlayersForGame() {
-        players = db.GetPlayersForGame(GameId);
+        players = db.GetPlayersForGame(GameId, GameMode);
         return players;
     }
 

+ 2 - 2
Assets/Scripts/InvitePanelScript.cs

@@ -90,9 +90,9 @@ public class InvitePanelScript : MonoBehaviour {
         searchedString = searchField.text;
         searchActive = false;
 
-        List<Database.UserName> foundUsers = Database.Instance.GetUsersToInvite(searchField.text);
+        List<OnlineDatabase.UserName> foundUsers = OnlineDatabase.Instance.GetUsersToInvite(searchField.text);
         InviteSearchResult[] added = searchResultPanel.GetComponentsInChildren<InviteSearchResult>();
-        foreach (Database.UserName un in foundUsers) {
+        foreach (OnlineDatabase.UserName un in foundUsers) {
             if (Database.Instance.GetSignedInUser().Key.ToString().Equals(un.id)) {
                 continue;
             }

+ 2 - 0
Assets/Scripts/LocalGameScript.cs

@@ -72,6 +72,8 @@ public class LocalGameScript : MonoBehaviour
 
     public void StartThisGame() {
         PlayerPrefs.SetInt("GameId", GameId);
+        PlayerPrefs.SetString("GameMode", "Local");
+        PlayerPrefs.SetInt("QuestionTimer", AnswerTimer);
         SceneManager.LoadSceneAsync("narKampen");
     }
 

+ 1 - 0
Assets/Scripts/MainMenu.cs

@@ -249,6 +249,7 @@ public class MainMenu : MonoBehaviour {
 
         PlayerPrefs.SetString("GameMode", "Local");
         PlayerPrefs.SetInt("GameId", gameId);
+        PlayerPrefs.SetInt("QuestionTimer", questionTimer);
         SceneManager.LoadSceneAsync("narKampen");
     }
 }

+ 1 - 1
Assets/Scripts/RoundButtonsScript.cs

@@ -46,7 +46,7 @@ public class RoundButtonsScript : MonoBehaviour
         if (svs == null) {
             svs = GameObject.Find("Scroll View").GetComponent<ScrollViewScript>();
         }
-        NewQuestion q = Database.Instance.GetNewQuestion(svs.GetQuestionIdsInAnswerLine(), svs.currentPlayer);
+        NewQuestion q = Database.Instance.GetNewQuestion(svs.GetQuestionIdsInAnswerLine(), svs.currentPlayer, svs.GetGameMode());
         q.SetAnswerText("???? - ????");
         svs.SetNewQuestion(q);
 

+ 18 - 11
Assets/Scripts/ScrollViewScript.cs

@@ -16,6 +16,7 @@ public class ScrollViewScript : MonoBehaviour, IDropHandler {
     private bool answeredCorrectly;
     private List<KeyValuePair<string, int>> players;
     private int gameId;
+    private string gameMode;
 
     StatsScript statsScript;
     GameManagerScript gameManagerScript;
@@ -32,25 +33,31 @@ public class ScrollViewScript : MonoBehaviour, IDropHandler {
         statsScript = GameObject.Find("StatsPanel").GetComponent<StatsScript>();
         gameManagerScript = GameObject.Find("GameManager").GetComponent<GameManagerScript>();
         ts = GameObject.Find("TimerCircle").GetComponent<TimerScript>();
-
         players = gameManagerScript.GetPlayers();
 
         EventManager.StartListening("TimerEvent", TimerRunOutEvent);
         gameId = gameManagerScript.GameId;
-        currentPlayer = Database.Instance.GetCurrentPlayer(gameId);
+        currentPlayer = Database.Instance.GetCurrentPlayer(gameId, GetGameMode());
 
         ips = GameObject.Find("InformationPanel").GetComponent<InformationPanelScript>();
         ips.SetCurrentPlayer(currentPlayer);
 
         statsScript.MakeBold(currentPlayer);
 
-        List<QuestionCard> answerlineQuestions = Database.Instance.GetPlayerQuestions(gameId, currentPlayer);
+        List<QuestionCard> answerlineQuestions = Database.Instance.GetPlayerQuestions(gameId, currentPlayer, GetGameMode());
         SetQuestionsInAnswerLine(answerlineQuestions);
 
-        statsScript.SetQuestionsLost(Database.Instance.GetQuestionsLost(gameId, currentPlayer));
+        statsScript.SetQuestionsLost(Database.Instance.GetQuestionsLost(gameId, currentPlayer, GetGameMode()));
         ShowRoundButtons(false);
     }
 
+    public string GetGameMode() {
+        if (gameMode == null) {
+            gameMode = PlayerPrefs.GetString("GameMode");
+        }
+        return gameMode;
+    }
+
     private void ShowRoundButtons(bool ShowNextPlayer) {
         RoundButtonsScript rbs = GameObject.Find("NewQuestionButtonPanel").GetComponent<RoundButtonsScript>();
 
@@ -63,7 +70,7 @@ public class ScrollViewScript : MonoBehaviour, IDropHandler {
         rbs.ShowPanel();
         
         if (nq == null) {
-            nq = gameManagerScript.db.GetNewQuestion(GetQuestionIdsInAnswerLine(), currentPlayer);
+            nq = gameManagerScript.db.GetNewQuestion(GetQuestionIdsInAnswerLine(), currentPlayer, GetGameMode());
         }
         nq.GetComponent<CanvasGroup>().alpha = 0;
         nq.GetComponent<CanvasGroup>().interactable = false;
@@ -181,16 +188,16 @@ public class ScrollViewScript : MonoBehaviour, IDropHandler {
     }
 
     private void CheckWin() {
-        if (Database.Instance.GetWinCondition(gameId) <= contentPanel.childCount) {
+        if (Database.Instance.GetWinCondition(gameId, GetGameMode()) <= contentPanel.childCount) {
 
             GenericDialog dialog = GenericDialog.Instance();
             dialog.title.text = LANG.GetText("WINNER_DIALOG_TITLE");
             string message = LANG.GetText("WINNER_DIALOG_MESSAGE");
-            dialog.message.text = String.Format(message, Database.Instance.GetWinCondition(gameId), statsScript.GetQuestionsLost(), statsScript.GetRound());
+            dialog.message.text = String.Format(message, Database.Instance.GetWinCondition(gameId, GetGameMode()), statsScript.GetQuestionsLost(), statsScript.GetRound());
             dialog.SetOnAccept(LANG.GetText("WINNER_DIALOG_BUTTON"), () => {
                 dialog.Hide();
                 SetAllQuestionsLocked(true);
-                Database.Instance.SetFinishedDate(gameId, DateTime.Today.ToShortDateString());
+                Database.Instance.SetFinishedDate(gameId, DateTime.Today.ToShortDateString(), GetGameMode());
                 GameObject.Find("NewQuestionButtonPanel").GetComponent<RoundButtonsScript>().SetGameOver();
             });
             dialog.SetOnDecline("", () => { });
@@ -320,13 +327,13 @@ public class ScrollViewScript : MonoBehaviour, IDropHandler {
         dialog.SetMessage(String.Format(message, currentPlayer));
         dialog.SetOnAccept(LANG.GetText("OK"), () => {
             RemoveAllQuestionsFromAnswerline();
-            List<QuestionCard> questions = Database.Instance.GetPlayerQuestions(gameId, currentPlayer);
+            List<QuestionCard> questions = Database.Instance.GetPlayerQuestions(gameId, currentPlayer, GetGameMode());
             SetQuestionsInAnswerLine(questions);
 
-            statsScript.SetQuestionsLost(Database.Instance.GetQuestionsLost(gameManagerScript.GameId, currentPlayer));
+            statsScript.SetQuestionsLost(Database.Instance.GetQuestionsLost(gameManagerScript.GameId, currentPlayer, GetGameMode()));
 
             statsScript.MakeBold(currentPlayer);
-            Database.Instance.SetCurrentPlayer(gameId, currentPlayer);
+            Database.Instance.SetCurrentPlayer(gameId, currentPlayer, GetGameMode());
             ips.SetCurrentPlayer(currentPlayer);
             ResetNewQuestionPosition();
             ShowRoundButtons(false);

+ 11 - 3
Assets/Scripts/StatsScript.cs

@@ -15,19 +15,27 @@ public class StatsScript : MonoBehaviour {
     private string roundText;
     private string questionsLostText;
     GameManagerScript gms;
+    private string gameMode;
 
     private void Start() {
         gms = GameObject.Find("GameManager").GetComponent<GameManagerScript>();
         roundText = LocalizationManager.Instance.GetText("ROUND");
         questionsLostText = LocalizationManager.Instance.GetText("QUESTIONS_LOST");
         CreateStandardStats();
-        AddPlayersToStats(Database.Instance.GetPlayersForGame(gms.GameId));
+        AddPlayersToStats(Database.Instance.GetPlayersForGame(gms.GameId, GetGameMode()));
+    }
+
+    private string GetGameMode() {
+        if (gameMode == null) {
+            gameMode = PlayerPrefs.GetString("GameMode");
+        }
+        return gameMode;
     }
 
     private void CreateStandardStats() {
         StatsLine round = CreateStatLine();
         round.SetStatName(roundText);
-        int roundValue = Database.Instance.GetRoundValue(gms.GameId);
+        int roundValue = Database.Instance.GetRoundValue(gms.GameId, GetGameMode());
 
         round.SetLocalizationKey("ROUND");
 
@@ -78,7 +86,7 @@ public class StatsScript : MonoBehaviour {
                 Int32.TryParse(sl.GetValue(), out int round);
                 round++;
                 sl.SetStatValue(round);
-                Database.Instance.SetRoundValue(gms.GameId, round);
+                Database.Instance.SetRoundValue(gms.GameId, round, GetGameMode());
                 break;
             }
         }

+ 2 - 1
Assets/Scripts/TimerScript.cs

@@ -39,7 +39,8 @@ public class TimerScript : MonoBehaviour
     }
 
     public void ResetTimer() {
-        time = Database.Instance.GetQuestionTimer(gms.GameId);
+        time = gms.QuestionTimer;
+        // time = Database.Instance.GetQuestionTimer(gms.GameId, gms.GameMode);
         timeAmount = time;
         circleColor = Color.Lerp(startlColor, finalColor, 1 - (time / timeAmount));
 

+ 16 - 0
Assets/narKampen.unity

@@ -531,6 +531,7 @@ GameObject:
   m_Component:
   - component: {fileID: 225506177}
   - component: {fileID: 225506178}
+  - component: {fileID: 225506180}
   - component: {fileID: 225506179}
   m_Layer: 5
   m_Name: GameManager
@@ -585,6 +586,21 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   db: {fileID: 225506178}
+  odb: {fileID: 0}
+--- !u!114 &225506180
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 225506176}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: acdfd3ec6b2f4a1498d0a188104fa1bb, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  questionCardPrefab: {fileID: 2583734455467487379, guid: 66a4bacf087ffb848b07dd6b7ee79bba,
+    type: 3}
 --- !u!1 &249496647
 GameObject:
   m_ObjectHideFlags: 0

BIN
Assets/narKampenLocal.db


+ 2 - 1
dbFiles/OnlineGames.php

@@ -144,13 +144,14 @@
 			echo "Failed to update current player for game with id $gameId - error: " . $conn->error;
 		}
 	} else if ($callFunction === "GetRound") {
-		$sql = "SELECT round FROM game WHERE gameId = $gameId";
+		$sql = "SELECT round FROM game WHERE id = $gameId";
 		$result = $conn->query($sql);
 		$data = $result->fetch_assoc();
 		
 		return $data['round'];
 	} else if ($callFunction === "GetPlayers") {
 		$sql = "SELECT username, userLockedQuestions FROM gamePlayers INNER JOIN users ON users.id = gamePlayers.playerId WHERE gameId = $gameId";
+		$result = $conn->query($sql);
 		$returnArray = array();
 		$i = 0;
 		while ($data = $result->fetch_assoc()) {