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); } }
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(); }
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(); }
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(); } }