fix(playerjoin): player are displayed in the correct order
This commit is contained in:
parent
684c4f98af
commit
781b7d88c9
@ -1382,7 +1382,7 @@ MonoBehaviour:
|
|||||||
explanationPage: {fileID: 45150984}
|
explanationPage: {fileID: 45150984}
|
||||||
explanationCounter: {fileID: 1798182259}
|
explanationCounter: {fileID: 1798182259}
|
||||||
explanationTime: 4
|
explanationTime: 4
|
||||||
counterSFX: {fileID: 8300000, guid: 3beaa7f0d20a77649ba21959c91856f8, type: 3}
|
counterSFX: {fileID: 8300000, guid: 2ff45dbe56b6a4d08bfa7b103fa4effb, type: 3}
|
||||||
waitingForPropositionsPage: {fileID: 1730465902}
|
waitingForPropositionsPage: {fileID: 1730465902}
|
||||||
propositionCounter: {fileID: 1996258852}
|
propositionCounter: {fileID: 1996258852}
|
||||||
propositionTime: 60
|
propositionTime: 60
|
||||||
|
@ -16,6 +16,7 @@ public class RoomManager : MonoBehaviour
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public TextMeshProUGUI roomCodeLabel;
|
public TextMeshProUGUI roomCodeLabel;
|
||||||
public List<TextMeshProUGUI> waitingForPlayersLabels = new List<TextMeshProUGUI>();
|
public List<TextMeshProUGUI> waitingForPlayersLabels = new List<TextMeshProUGUI>();
|
||||||
|
private Dictionary<string, TextMeshProUGUI> waitingPlayersById = new Dictionary<string, TextMeshProUGUI>();
|
||||||
public PromptList promptList;
|
public PromptList promptList;
|
||||||
|
|
||||||
[Header("Explanation Page")]
|
[Header("Explanation Page")]
|
||||||
@ -31,6 +32,7 @@ public class RoomManager : MonoBehaviour
|
|||||||
public float propositionTime = 60;
|
public float propositionTime = 60;
|
||||||
public List<TextMeshProUGUI> waitingForPropositionsLabels = new List<TextMeshProUGUI>();
|
public List<TextMeshProUGUI> waitingForPropositionsLabels = new List<TextMeshProUGUI>();
|
||||||
private DateTime endOfPropositionDate = DateTime.MinValue;
|
private DateTime endOfPropositionDate = DateTime.MinValue;
|
||||||
|
private bool allPlayersHasProposedTwoPictures = false;
|
||||||
|
|
||||||
[Header("Other")]
|
[Header("Other")]
|
||||||
private Room myRoom = null;
|
private Room myRoom = null;
|
||||||
@ -72,6 +74,7 @@ private void Update()
|
|||||||
if (myRoom == null)
|
if (myRoom == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
//While Explanation State
|
||||||
if (myRoom.currentState == (int)GameState.Explanation && endOfExplanationDate != DateTime.MinValue)
|
if (myRoom.currentState == (int)GameState.Explanation && endOfExplanationDate != DateTime.MinValue)
|
||||||
{
|
{
|
||||||
TimeSpan duration = endOfExplanationDate - DateTime.Now;
|
TimeSpan duration = endOfExplanationDate - DateTime.Now;
|
||||||
@ -85,11 +88,19 @@ private void Update()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//while MakeProposition State
|
||||||
if (myRoom.currentState == (int)GameState.MakeProposition && endOfPropositionDate != DateTime.MinValue)
|
if (myRoom.currentState == (int)GameState.MakeProposition && endOfPropositionDate != DateTime.MinValue)
|
||||||
{
|
{
|
||||||
TimeSpan duration = endOfPropositionDate - DateTime.Now;
|
TimeSpan duration = endOfPropositionDate - DateTime.Now;
|
||||||
propositionCounter.text = ((int)duration.TotalSeconds).ToString("D1");
|
propositionCounter.text = ((int)duration.TotalSeconds).ToString("D1");
|
||||||
|
|
||||||
|
foreach (TextMeshProUGUI tmp in waitingForPropositionsLabels)
|
||||||
|
{
|
||||||
|
if (tmp.gameObject.activeSelf)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,6 +111,7 @@ private void SendRoomState(GameState _newState)
|
|||||||
|
|
||||||
private void ResetAllPlayerLabels()
|
private void ResetAllPlayerLabels()
|
||||||
{
|
{
|
||||||
|
waitingPlayersById.Clear();
|
||||||
for (int i = 0; i < waitingForPlayersLabels.Count; i++)
|
for (int i = 0; i < waitingForPlayersLabels.Count; i++)
|
||||||
{
|
{
|
||||||
waitingForPlayersLabels[i].text = $"Waiting for P{i + 1}";
|
waitingForPlayersLabels[i].text = $"Waiting for P{i + 1}";
|
||||||
@ -222,12 +234,18 @@ public void PlayerSendProposition(Proposition _proposition)
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Called when the first player clicked "Start"
|
/// Called when the first player clicked "Start"
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void HostStartGame()
|
public void HostHasStartedGame()
|
||||||
{
|
{
|
||||||
waitingForPropositionsPage.SetActive(true);
|
waitingForPropositionsPage.SetActive(true);
|
||||||
waitingForPlayersPage.SetActive(false);
|
waitingForPlayersPage.SetActive(false);
|
||||||
endOfPropositionDate = DateTime.Now.AddSeconds(propositionTime);
|
endOfPropositionDate = DateTime.Now.AddSeconds(propositionTime);
|
||||||
AudioSource.PlayClipAtPoint(counterSFX, Vector3.zero);
|
|
||||||
|
for (int i = 0; i < waitingForPropositionsLabels.Count; i++)
|
||||||
|
{
|
||||||
|
TextMeshProUGUI tmp = waitingForPropositionsLabels[i];
|
||||||
|
tmp.gameObject.SetActive(i < myRoom.players.Count);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -350,9 +368,10 @@ private void OnRoomUpdate(object sender, ValueChangedEventArgs value)
|
|||||||
waitingForPlayersPage.SetActive(false);
|
waitingForPlayersPage.SetActive(false);
|
||||||
explanationPage.SetActive(true);
|
explanationPage.SetActive(true);
|
||||||
endOfExplanationDate = DateTime.Now.AddSeconds(explanationTime);
|
endOfExplanationDate = DateTime.Now.AddSeconds(explanationTime);
|
||||||
|
AudioSource.PlayClipAtPoint(counterSFX, Vector3.zero);
|
||||||
break;
|
break;
|
||||||
case (int)GameState.MakeProposition:
|
case (int)GameState.MakeProposition:
|
||||||
HostStartGame();
|
HostHasStartedGame();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -368,19 +387,12 @@ private void UpdateConnectedPlayerList(List<Player> _players)
|
|||||||
ResetAllPlayerLabels();
|
ResetAllPlayerLabels();
|
||||||
|
|
||||||
Debug.Log($"players count = {_players.Count}");
|
Debug.Log($"players count = {_players.Count}");
|
||||||
for (int i = 0; i < _players.Count; i++)
|
List<Player> orderedPlayers = _players.OrderBy(x => x.creationDate).ToList();
|
||||||
|
for (int i = 0; i < orderedPlayers.Count; i++)
|
||||||
{
|
{
|
||||||
Debug.Log($"player {i} = {_players[i].name}");
|
waitingPlayersById.Add(orderedPlayers[i].id, waitingForPlayersLabels[i]);
|
||||||
waitingForPlayersLabels[i].text = _players[i].name;
|
Debug.Log($"player {i} = {orderedPlayers[i].name}");
|
||||||
|
waitingForPlayersLabels[i].text = orderedPlayers[i].name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[ContextMenu("Fake Player Connection")]
|
|
||||||
private void FakePlayerConnection()
|
|
||||||
{
|
|
||||||
Player temp = new Player("Momo");
|
|
||||||
temp.id = Guid.NewGuid().ToString();
|
|
||||||
temp.SetName("Momo");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user