Score screen
This commit is contained in:
parent
5a88e7c987
commit
7c36f1e60e
@ -1,11 +1,14 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public class ScoringPage : MonoBehaviour
|
public class ScoringPage : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField] private List<PlayerSticker> playerStickers;
|
[SerializeField] private List<PlayerSticker> playerStickers;
|
||||||
|
|
||||||
|
private Dictionary<string,int> scoreByUser = new Dictionary<string,int>();
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
if(playerStickers == null || playerStickers.Count == 0)
|
if(playerStickers == null || playerStickers.Count == 0)
|
||||||
@ -25,10 +28,38 @@ public void Initialize(Room _room)
|
|||||||
|
|
||||||
gameObject.SetActive(true);
|
gameObject.SetActive(true);
|
||||||
Player[] players = _room.GetOrderedPlayerList().ToArray();
|
Player[] players = _room.GetOrderedPlayerList().ToArray();
|
||||||
for (int i = 0; i < players.Length; i++)
|
|
||||||
|
foreach (var player in players)
|
||||||
{
|
{
|
||||||
playerStickers[i].gameObject.SetActive(true);
|
scoreByUser[player.id] = 0;
|
||||||
playerStickers[i].Initialize(players[i].name, i);
|
getPlayerScore(_room, player);
|
||||||
}
|
}
|
||||||
|
var sortedList = scoreByUser.ToList();
|
||||||
|
|
||||||
|
scoreByUser = scoreByUser.OrderByDescending(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
|
||||||
|
|
||||||
|
List<string> playersId = scoreByUser.Keys.ToList();
|
||||||
|
for ( int i = 0; i < playersId.Count; i++)
|
||||||
|
{
|
||||||
|
Player p = _room.GetPlayerById(playersId[i]);
|
||||||
|
playerStickers[i].gameObject.SetActive(true);
|
||||||
|
playerStickers[i].Initialize( p.name , i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getPlayerScore(Room _room, Player _player)
|
||||||
|
{
|
||||||
|
List<Proposition> propostitions = _room.GetPropositionsForPlayer(_player);
|
||||||
|
propostitions.ForEach(p =>
|
||||||
|
{
|
||||||
|
|
||||||
|
if(p.voters != null)
|
||||||
|
{
|
||||||
|
scoreByUser[_player.id] += p.voters.Count;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Debug.Log(_player.name);
|
||||||
|
Debug.Log(scoreByUser[_player.id]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user