Beispiel #1
0
 public void NotifyEvent(GameEvent _e)
 {
     if (_e is GameEventPlayerDeath)
     {
         GameEventPlayerDeath e = (GameEventPlayerDeath)_e;
         gamemode.NotifyPlayerDeath(e);
     }
     else if (_e is GameEventPlayerDamaged)
     {
         GameEventPlayerDamaged e = (GameEventPlayerDamaged)_e;
         gamemode.NotifyPlayerDamaged(e);
     }
 }
Beispiel #2
0
    public int ProcessPlayerDeath(GameEventPlayerDeath _e)
    {
        int receiverId   = _e.receiverId;
        int eliminatorId = _e.eliminatorId;

        if (eliminatorId == -1 && lastDamagedBy.ContainsKey(receiverId))
        {
            eliminatorId = lastDamagedBy[receiverId].dealerId;
        }

        lastDamagedBy.Remove(receiverId);

        return(eliminatorId);
    }
    public void Break(GameObject _source)
    {
        int            sourceId         = -1;
        ShipController sourceController = GetOwner(_source);

        if (sourceController != null)
        {
            sourceId = sourceController.playerId;
        }

        GameEventPlayerDeath e = new GameEventPlayerDeath(sourceId, this.playerId);

        gameManager.NotifyEvent(e);

        //Respawn();
    }
Beispiel #4
0
    public virtual void NotifyPlayerDeath(GameEventPlayerDeath _e)
    {
        int eliminatorId = killTracker.ProcessPlayerDeath(_e);

        if (eliminatorId != -1)
        {
            scoreTracker.IncrementScore(eliminatorId, 1);
        }
        else
        {
            scoreTracker.IncrementScore(_e.receiverId, -1);
        }
        UpdateDisplay();

        GameManager.Instance.GetPlayer(_e.receiverId).Respawn();
    }
Beispiel #5
0
    public override void NotifyPlayerDeath(GameEventPlayerDeath _e)
    {
        int            deadPlayerCount = 0;
        ShipController lastLivePlayer  = null;

        foreach (ShipController s in GameManager.Instance.Players.Values)
        {
            if (s.IsBroken)
            {
                deadPlayerCount++;
            }
            else
            {
                lastLivePlayer = s;
            }
        }

        if (deadPlayerCount == GameManager.Instance.Players.Count - 1)
        {
            scoreTracker.IncrementScore(lastLivePlayer.playerId, 1);
            MoveToNextMap();
        }
    }