Przeglądaj źródła

Rätt status på online Game, Start fråga begränsad till valda kategorier

Axel Nordh 5 lat temu
rodzic
commit
d2c74becf4

+ 13 - 13
Assets/Scripts/Database/OnlineDatabase.cs

@@ -52,6 +52,10 @@ public class OnlineDatabase : MonoBehaviour {
     internal int SetupNewOnlineGame(int limitPerQuestion, int limitPerPlayer, int toWin, List<InviteSearchResult> inviteUsers, List<int> selectedCategories) {
         List<int> playerIds = new List<int>();
         inviteUsers.ForEach(i => playerIds.Add(i.GetId()));
+
+        List<string> playerNames = new List<String>();
+        inviteUsers.ForEach(i => playerNames.Add(i.GetName()));
+
         int currentUser = Database.Instance.GetSignedInUser().Key;
         playerIds.Add(currentUser);
 
@@ -70,6 +74,7 @@ public class OnlineDatabase : MonoBehaviour {
         }
 
         if (Int32.TryParse(response, out int newGameId)) {
+            SendInviteForNewGame(newGameId, playerNames, Database.Instance.GetSignedInUser().Value);
             return newGameId; 
         } else {
             Debug.Log("Failed to get new game id with response " + response);
@@ -227,7 +232,7 @@ public class OnlineDatabase : MonoBehaviour {
             form.AddField("player" + index++, player.Key);
         }
 
-        CallDatabase("FirebaseCaller.php", form);
+        CallOnlineDatabaseWithResponse("FirebaseCaller.php", form);
     }
 
     private void Start() {
@@ -312,8 +317,8 @@ public class OnlineDatabase : MonoBehaviour {
             if (gameId != currentGameId) { // Spel ej i listan
                 if (ogs != null) { // lägg till spel i listan, inte första gången
                     SetGlobalGameInfo(userName, ogs, gameId, prevGame);
-                    if (ogs.GameStatus == null) {
-                        ogs.SetGameStatus(game.status);
+                    if (ogs.GameStatus == null || ogs.GameStatus.Equals("")) {
+                        ogs.SetGameStatus(prevGame.status);
                     }
                     games.Add(ogs);
                 }
@@ -339,7 +344,7 @@ public class OnlineDatabase : MonoBehaviour {
 
         SetGameStatus(ogs, signedInUser, og.onlineGamesList[og.onlineGamesList.Count - 1]);
         SetGlobalGameInfo(userName, ogs, gameId, og.onlineGamesList[og.onlineGamesList.Count - 1]);
-        if (ogs.GameStatus == null) {
+        if (ogs.GameStatus == null || ogs.GameStatus.Equals("")) {
             ogs.SetGameStatus(og.onlineGamesList[og.onlineGamesList.Count - 1].status);
         }
         games.Add(ogs);
@@ -354,8 +359,6 @@ public class OnlineDatabase : MonoBehaviour {
             } else if (game.status.Equals("PENDING")) {
                 if (game.userId.Equals(signedInUser.Key.ToString()) && game.playerStatus.Equals("WAITING")) {
                     ogs.SetGameStatus("INVITED");
-                } else {
-                    ogs.SetGameStatus("PENDING");
                 }
             }
         } else {
@@ -367,10 +370,7 @@ public class OnlineDatabase : MonoBehaviour {
             } else if (game.status.Equals("PENDING")) {
                 if (game.userId.Equals(signedInUser.Key.ToString()) && game.playerStatus.Equals("WAITING")) {
                     ogs.SetGameStatus("INVITED");
-                }  else {
-                    ogs.SetGameStatus("PENDING");
-                }
-                
+                } 
             }
         }
     }
@@ -674,11 +674,11 @@ public class OnlineDatabase : MonoBehaviour {
         {
             sb.AppendLine(player.Key + " (" + player.Value + ")");
         }
-        String message = String.Format(LocalizationManager.Instance.GetText("FCM_NEXT_PLAYER_MESSAGE"),sb.ToString());
+        String message = String.Format(LocalizationManager.Instance.GetText("FCM_NEXT_PLAYER_MESSAGE"), sb.ToString());
         form.AddField("message", message);
         form.AddField("type", "FCMNextPlayer");
         
-        CallDatabase("FirebaseCaller.php", form);
+        CallOnlineDatabaseWithResponse("FirebaseCaller.php", form);
     }
 
     internal void SendInviteForNewGame(int gameId, List<String> Players, String inviter) {
@@ -693,7 +693,7 @@ public class OnlineDatabase : MonoBehaviour {
         form.AddField("title", LocalizationManager.Instance.GetText("FCM_NEW_GAME_TITLE"));
         form.AddField("message", String.Format(LocalizationManager.Instance.GetText("FCM_NEW_GAME_MESSAGE"), inviter));
         form.AddField("type", "InviteMessage");
-        CallDatabase("FirebaseCaller.php", form);
+        CallOnlineDatabaseWithResponse("FirebaseCaller.php", form);
     }
 
     

+ 1 - 5
Assets/Scripts/NewGameScene/OnlineGameScript.cs

@@ -45,11 +45,7 @@ public class OnlineGameScript : MonoBehaviour {
     public string GameStatus {
         get { return gameStatus; }
         set {
-            if (value.Equals("Avtive") && CurrentPlayer.Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase)) {
-                gameStatus = "YOUR_TURN";
-            } else {
-                gameStatus = value;
-            }
+            gameStatus = value;
             SetColor(gameStatus);
             SetGameStatusText();
         }

BIN
Assets/narKampenLocal.db


+ 1 - 1
dbFiles/FirebaseCaller.php

@@ -21,7 +21,7 @@
 	// Constants
 	$messageType = $conn->real_escape_string(isset($_POST['type'])?$_POST['type']:"");
 	$title = $conn->real_escape_string($_POST['title']);
-	$messageToSend = $conn->real_escape_string($_POST['message']);
+	$messageToSend = $_POST['message'];
 	$gameId = $conn->real_escape_string($_POST['gameId']);
 
 	if ($messageType === "FCMNextPlayer") {

+ 5 - 2
dbFiles/OnlineGames.php

@@ -92,8 +92,11 @@
 					echo "updating game status active failed " . $conn->error;
 				}
 				
-								
-				$questionSql = "SELECT id FROM questions ORDER BY RAND() LIMIT 1";
+				$questionSql = "SELECT id FROM questions " . 
+						"INNER JOIN questionToCategory ON questionToCategory.questionId = questions.id " .
+						"WHERE questionToCategory.categoryId IN (SELECT categoryId FROM `gameCategories` where gameId = $gameId) " . 
+						"ORDER BY RAND() " . 
+						"LIMIT 1";
 				$questionIdResult = $conn->query($questionSql);
 				$data = $questionIdResult->fetch_assoc();
 				$values = "";