public void AddOrUpdateEntry(uint key, GhostRoleClient role)
        {
            if (entries.ContainsKey(key) == false)
            {
                GameObject entry = Instantiate(ghostRoleEntryPrefab, listContainer);
                entries.Add(key, entry.GetComponent <GhostRoleWindowEntry>());
            }

            entries[key].SetValues(key, role);

            UpdateNoRolesLabel();
        }
        public void SetValues(uint key, GhostRoleClient role)
        {
            Key  = key;
            Role = role;

            nameLabel.text = Role.RoleData.Name;
            descLabel.text = Role.RoleData.Description;
            spriteHandler.SetSpriteSO(Role.RoleData.Sprite);
            playerCountLabel.text = GeneratePlayerCountLabelText();
            if (Role.PlayerCount / Role.MaxPlayers > 0.8f || Role.MaxPlayers - Role.PlayerCount == 1)
            {
                playerCountLabel.color = warningColor;
            }

            Role.OnTimerExpired += RemoveEntry;

            GhostRoleManager.Instance.StartCoroutine(Countdown(Role.TimeRemaining));
        }