Esempio n. 1
0
    private void CheckScore(PlayerHandle handle)
    {
        if (playerScores[handle] >= rules.scoreLimit)
        {
            //OnPlayerWin?.Invoke(handle);
            //OnPlayerWin = null;
            GameEndStatus endStatus = new GameEndStatus
            {
                playerScores = playerScores,
                winnerHandle = handle
            };

            foreach (PlayerController player in playerControllers)
            {
                player.OnDie          -= OnPlayerDie;
                player.OnChangeHealth -= OnHealthChange;
                player.OnAreaScore    -= OnAreaScore;
            }
            callback(endStatus);
            callback = null;
        }

        foreach (PlayerController player in playerControllers)
        {
            player.hud.SetScore(playerScores[player.handle]);
        }
    }
Esempio n. 2
0
    public Judge(PlayerController[] _players, RuleSet _rules, PlayerWinCallback _callback)
    {
        playerControllers = _players;
        playerScores      = new int[_players.Length];
        rules             = _rules;
        callback          = _callback;

        foreach (PlayerController player in playerControllers)
        {
            player.OnDie          += OnPlayerDie;
            player.OnChangeHealth += OnHealthChange;
            player.OnAreaScore    += OnAreaScore;
            player.SetImmortal(rules.immortalPlayers);
        }
    }