add crea date + room state
This commit is contained in:
parent
a2e2eb5898
commit
762c05fa6c
@ -1,6 +1,7 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Text.RegularExpressions;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
[JsonObject]
|
||||
@ -8,17 +9,21 @@ public class Player
|
||||
{
|
||||
public string name;
|
||||
public string id;
|
||||
public float creationDate;
|
||||
|
||||
[JsonConstructor]
|
||||
public Player(string _name, string _id)
|
||||
public Player(string _name, string _id, float _creationDate)
|
||||
{
|
||||
name = _name;
|
||||
id = _id;
|
||||
creationDate = _creationDate;
|
||||
|
||||
}
|
||||
|
||||
public Player(string _name)
|
||||
{
|
||||
id = Guid.NewGuid().ToString();
|
||||
creationDate = Time.time;
|
||||
SetName(_name);
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@ public class Room
|
||||
public Dictionary<string, Player> players;
|
||||
public int currentQuestion;
|
||||
public double creationDate;
|
||||
public int currentState;
|
||||
|
||||
|
||||
public Room(string _code)
|
||||
@ -20,6 +21,7 @@ public Room(string _code)
|
||||
players = new Dictionary<string, Player>();
|
||||
questions = new Dictionary<string, Question>();
|
||||
currentQuestion = 0;
|
||||
currentState = 0;
|
||||
}
|
||||
|
||||
public List<Player> GetPlayerList()
|
||||
@ -31,5 +33,10 @@ public List<Question> GetQuestionList()
|
||||
{
|
||||
return new List<Question>(questions.Values);
|
||||
}
|
||||
|
||||
public void setPlayersAreReady(int _state)
|
||||
{
|
||||
currentState = _state;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using Firebase.Database;
|
||||
using Firebase.Extensions;
|
||||
using Newtonsoft.Json;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
@ -12,6 +13,7 @@ public class GameManager : MonoBehaviour
|
||||
{
|
||||
private GameState currentState;
|
||||
private List<Player> players = new();
|
||||
private bool isFirst = false;
|
||||
public Player currentPlayer = null;
|
||||
public Question currentQuestion = null;
|
||||
|
||||
@ -54,6 +56,12 @@ private void Start()
|
||||
HomeConnection.SetActive(true);
|
||||
submitNewPlayer.interactable = false;
|
||||
}
|
||||
private void OnApplicationQuit()
|
||||
{
|
||||
myOnlineRoom.Child("players").Child(currentPlayer.id).RemoveValueAsync();
|
||||
Debug.Log($"delete player {currentPlayer.name}");
|
||||
myRoom = null;
|
||||
}
|
||||
|
||||
public GameState GetCurrentState()
|
||||
{
|
||||
@ -123,7 +131,10 @@ public void PlayerValidateNameAndServerRoom(string _name, string _code)
|
||||
WaitingRoom.SetActive(true);
|
||||
HomeConnection.SetActive(false);
|
||||
|
||||
UpdateDisplayedListUser();
|
||||
List<Player> list = new List<Player>();
|
||||
list.Add(currentPlayer);
|
||||
|
||||
UpdateDisplayedListUser(list) ;
|
||||
});
|
||||
}
|
||||
});
|
||||
@ -187,9 +198,32 @@ private void JoinRoom(Action callback_OnRoomJoined)
|
||||
public void StartGame()
|
||||
{
|
||||
// send Start Game
|
||||
currentState = GameState.Explanation;
|
||||
WaitingRoom.SetActive(false);
|
||||
BeforeStart.SetActive(true);
|
||||
myRoom.setPlayersAreReady(1);
|
||||
string JSON = JsonUtility.ToJson(myRoom);
|
||||
Debug.Log(JSON);
|
||||
try
|
||||
{
|
||||
myOnlineRoom.Child("currentState").SetValueAsync(2).ContinueWithOnMainThread(task =>
|
||||
{
|
||||
if (task.IsFaulted)
|
||||
{
|
||||
Debug.LogException(task.Exception);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"start the game", this);
|
||||
currentState = GameState.Explanation;
|
||||
WaitingRoom.SetActive(false);
|
||||
BeforeStart.SetActive(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogException(ex);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -243,7 +277,7 @@ private void OnRoomUpdate(object sender, ValueChangedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
myRoom = JsonUtility.FromJson<Room>(e.Snapshot.GetRawJsonValue());
|
||||
myRoom = JsonConvert.DeserializeObject<Room>(e.Snapshot.GetRawJsonValue());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -254,16 +288,15 @@ private void OnRoomUpdate(object sender, ValueChangedEventArgs e)
|
||||
{
|
||||
case GameState.WaitingForOtherPlayersToJoin:
|
||||
{
|
||||
|
||||
// players = new list en fonction de ce qu'envoie fangh
|
||||
UpdateDisplayedListUser();
|
||||
CheckIfIAmTheFirst(myRoom.GetPlayerList());
|
||||
UpdateDisplayedListUser(myRoom.GetPlayerList());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void UpdateDisplayedListUser()
|
||||
private void UpdateDisplayedListUser(List<Player> players)
|
||||
{
|
||||
listPlayersUI.text = string.Empty;
|
||||
for (int i = 0; i < players.Count; i++)
|
||||
@ -271,6 +304,18 @@ private void UpdateDisplayedListUser()
|
||||
listPlayersUI.text += "\n" + players[i].name;
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckIfIAmTheFirst(List<Player> players)
|
||||
{
|
||||
if (players.Count > 1)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void OnClickSubmitSignIn()
|
||||
|
Loading…
Reference in New Issue
Block a user