private void handleDeadPlayer(IUpdateGameManager i_UpdatesGameManager, ePlayerType i_PlayerType) { IPlayer playerToRemove = null; i_UpdatesGameManager.ScoreChanged -= updatesGameManager_ScoreChanged; i_UpdatesGameManager.GameOver -= updatesGameManager_GameOver; i_UpdatesGameManager.PlayerDown -= updatesGameManager_PlayerDown; if (m_CurrentAlivePlayers == 1) { m_Players[0].IsDead = true; handleGameOverSituation(); } foreach (IPlayer player in m_Players) { if (player.PlayerType == i_PlayerType) { playerToRemove = player; player.IsDead = true; break; } } m_CurrentAlivePlayers--; }
public void AddObjectToMonitor(IUpdateGameManager i_UpdatesGameManager) { if (!m_UpdatesGameManager.Contains(i_UpdatesGameManager)) { m_UpdatesGameManager.Add(i_UpdatesGameManager); i_UpdatesGameManager.ScoreChanged += updatesGameManager_ScoreChanged; i_UpdatesGameManager.GameOver += updatesGameManager_GameOver; i_UpdatesGameManager.PlayerDown += updatesGameManager_PlayerDown; i_UpdatesGameManager.RemoveMeAsNotifier += updatesGameManager_RemoveMeAsNotifier; i_UpdatesGameManager.LevelPassed += updatesGameManager_LevelPassed; } }
private void handleRemoveMeAsNotifier(IUpdateGameManager i_UpdatesGameManager) { if (m_UpdatesGameManager.Contains(i_UpdatesGameManager)) { i_UpdatesGameManager.ScoreChanged -= updatesGameManager_ScoreChanged; i_UpdatesGameManager.GameOver -= updatesGameManager_GameOver; i_UpdatesGameManager.PlayerDown -= updatesGameManager_PlayerDown; i_UpdatesGameManager.RemoveMeAsNotifier -= updatesGameManager_RemoveMeAsNotifier; i_UpdatesGameManager.LevelPassed -= updatesGameManager_LevelPassed; m_UpdatesGameManager.Remove(i_UpdatesGameManager); } }