From 74f732f1f32633729d03ee2dde4c479d6fb44ac8 Mon Sep 17 00:00:00 2001 From: Fangh Date: Wed, 31 Jan 2024 22:05:08 +0100 Subject: [PATCH] fix: voter stickers are reset between each vote --- Assets/Scripts/PropositionFrame.cs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/PropositionFrame.cs b/Assets/Scripts/PropositionFrame.cs index 95c0946..a905b12 100644 --- a/Assets/Scripts/PropositionFrame.cs +++ b/Assets/Scripts/PropositionFrame.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using Firebase.Extensions; using Firebase.Storage; using TMPro; @@ -15,17 +16,23 @@ public class PropositionFrame : MonoBehaviour public TextMeshProUGUI playerName; public Transform playerGrid; - private List currentVoters = new List(); + private Dictionary currentVoters = new Dictionary(); private Proposition proposition; public void Initialize(Proposition _proposition) { - //Debug.Log($"Initializing {_proposition.owner.name}'s proposition", this); + Debug.Log($"Initializing {_proposition.owner.name}'s proposition", this); proposition = _proposition; playerName.text = proposition.owner.name; if (!string.IsNullOrEmpty(proposition.photoUrl)) DisplayPicture(proposition.photoUrl); + + foreach(var voters in currentVoters) + { + Destroy(voters.Value); + } + currentVoters.Clear(); } /// @@ -48,13 +55,15 @@ private void DisplayPicture(string _gsUrl) public void UpdateVoters(List _newVoters) { //Debug.Log($"There are some new voters for {proposition.owner}'s proposition", this); + int index = 0; foreach (Player p in _newVoters) { - if (!currentVoters.Contains(p)) + index++; + if (!currentVoters.Keys.Contains(p)) { - currentVoters.Add(p); - VoterSticker sticker = Instantiate(voterStickerPrefab, playerGrid).GetComponent(); - sticker.playerNameLabel.text = p.name; + PlayerSticker sticker = Instantiate(voterStickerPrefab, playerGrid).GetComponent(); + sticker.Initialize(p.name, index); + currentVoters.Add(p, sticker.gameObject); Debug.Log($"{p.name} has just voted for {proposition.owner.name}'s proposition."); } }