private AttackManager()
 {
     _guiCanvas       = GameObject.Find("MainScene/GUI").GetComponent <Transform>();
     _choicePopup     = Resources.Load <GameObject>("ChoicePopup");
     _diceResultPopup = Resources.Load <GameObject>("DiceResultPopup");
     _gameWinPopup    = Resources.Load <GameObject>("GameWinPopup");
     GoalReachedManager.GetInstance().GoalReached += showWinDialog;
 }
    public List <Giocatore> Create(string[] playerNames, List <StatoController> states)
    {
        this.armateIniziali = (armatePerStato - 1) * states.Count / playerNames.Length;
        //Ne metto una in meno da assegnare perchè ne inserisco una direttamente per evitare inconsistenze
        GoalReachedManager goalReachedManager = GoalReachedManager.GetInstance();

        for (int i = 0; i < playerNames.Count(); i++)
        {
            Color      color     = colors[i];
            SecretGoal secret    = goalReachedManager.GenerateGoal();
            Giocatore  giocatore = new Giocatore(playerNames[i], color, secret, this.armateIniziali);
            secret.Player = giocatore;

            players.Add(giocatore);
        }

        int num, cont = 0, j = 0;

        while (temp.Count < states.Count)
        {
            num = randomStates.Next(states.Count);

            if (!temp.Contains(num))
            {
                temp.Add(num);

                states[num].Player      = players[j];
                states[num].TankNumber += 1;
                cont++;

                if (cont == (states.Count / playerNames.Length))
                {
                    cont = 0;
                    j++;
                }
            }
        }

        return(players);
    }