// Update is called once per frame
    public void OnGameOver(Team winningTeam) {
   
        PlayEndGameAudio(winningTeam);

        GetComponent<Image>().color = winningTeam == Team.Traitor ? gameSceneManager.traitorColor : gameSceneManager.loyalColor; 
        // continueButton.onClick.AddListener(gameSceneManager.GoToLobby);

        int numberOfTraitors = 0;
        foreach (PlayableCharacter player in FindObjectsOfType<PlayableCharacter>()) {
            if (player.startingTeam == Team.Traitor) {
                numberOfTraitors++;
            }

            if (player.startingTeam == winningTeam) {
                PlayerTile tile = Instantiate(playerNamePrefab, winnersGrid).GetComponent<PlayerTile>();
                // Ensure the tile has started before we call Init
                tile.Start();
                tile.Init(player);
            }
        }
        
        // Set winning text
        if (winningTeam == Team.Traitor) {
            if (numberOfTraitors == 1) {
                winningTeamText.text = "The traitor has won!";
            } else {
                winningTeamText.text = "The traitors have won!";
            }
        } else {
            winningTeamText.text = "The loyals have won!";
        }
        
        gameObject.SetActive(true);
        StartCoroutine("SwitchScenes");
    }
Esempio n. 2
0
    void AddPlayerTile(PlayableCharacter player)
    {
        PlayerTile tile = Instantiate(playerTile, transform).GetComponent <PlayerTile>();

        player.playerTile = tile;
        player.playersUI  = this;
        tile.Init(player);
    }