示例#1
0
        public bool HandleEvent(AFEvent afEvent)
        {
            switch (afEvent.type)
            {
            case AFEventType.PAUSE_MENU_ENABLE:
            {
                if (IsPausing)
                {
                    break;
                }
                var payload = (PauseMenuEnablePayload)afEvent.payload;
                PlayerNumber = payload.PlayerNumber;
                PlayerColor  = payload.PlayerColor;
                ShowPauseMenu();
                break;
            }

            case AFEventType.PAUSE_MENU_DISABLE:
            {
                HidePauseMenu();
                break;
            }
            }
            return(false);
        }
示例#2
0
        public bool HandleEvent(AFEvent afEvent)
        {
            switch (afEvent.type)
            {
            case AFEventType.PLAYERS_ALL_CREATED: {
                PlayerComponentsEnabler.EnableOrDisableAllPlayersInputResponses(false);
                Debug.Log("Delaying player input start");
                Invoke("ReEnableAllPlayersInputResponses", PlayersState.INSTANCE.WaitTimeForPlayersToStart);
                if (!hasCalledNotifyGameCanStart)
                {
                    hasCalledNotifyGameCanStart = true;
                    Invoke("NotifyGameCanStart", PlayersState.INSTANCE.WaitTimeForPlayersToStart);
                }
                isAwaiting = true;
                break;
            }

            case AFEventType.GAME_OVER: {
                PlayerComponentsEnabler.EnableOrDisableAllPlayersInputResponses(false);
                //TODO: Move the score to the center of the screen
                Invoke("LoadGameOverScene", PlayersState.INSTANCE.WaitTimeToDisplayGameOver);
                break;
            }

            case AFEventType.ROUND_OVER:
            {
                PlayerComponentsEnabler.EnableOrDisableAllPlayersInputResponses(false);
                Invoke("LoadRoundOverScene", PlayersState.INSTANCE.WaitTimeToDisplayGameOver);
                break;
            }
            }
            return(false);
        }
示例#3
0
        public bool HandleEvent(AFEvent afEvent)
        {
            switch (afEvent.type)
            {
            case AFEventType.ROUND_OVER:
            {
                var payload = (RoundOverPayload)afEvent.payload;
                TitleText.text = "WINNER OF ROUND " + PlayersState.INSTANCE.gameScores.CurrentRoundNumber;
                image.color    = payload.playerColor;
                ScoreText.text = payload.roundScore + " Points";
                Show();
                break;
            }

            case AFEventType.GAME_OVER:
            {
                var payload = (GameOverPayload)afEvent.payload;
                TitleText.text = "WINNER";
                image.color    = payload.playerColor;
                ScoreText.text = payload.score + " Kills";
                Show();
                break;
            }
            }
            return(false);
        }
 public bool HandleEvent(AFEvent afEvent)
 {
     if (afEvent.type == AFEventType.PLAYERS_ALL_CREATED)
     {
         var payload = (PlayersAllCreatedPayload)afEvent.payload;
         AddUIForAllPlayers(payload.AllPlayers);
     }
     return(false);
 }
示例#5
0
 public bool HandleEvent(AFEvent afEvent)
 {
     if (afEvent.type == AFEventType.BOMB_TRIGGER)
     {
         var payload = (BombTriggerPayload)afEvent.payload;
         if (payload.OwnerPlayerNumber == settings.playerNumber)
         {
             BombDropped       = false;
             timeSinceLastFire = 0f;
         }
     }
     return(false);
 }
示例#6
0
        public bool HandleEvent(AFEvent afEvent)
        {
            switch (afEvent.type)
            {
            case AFEventType.KILLED:
            {
                HandlePlayerKilledEvent((KilledEventPayload)afEvent.payload);
                return(true);
            }

            case AFEventType.PLAYERS_ALL_CREATED:
            {
                var payload = (PlayersAllCreatedPayload)afEvent.payload;
                HandleGameStart(payload.AllPlayers);
                return(true);
            }

            case AFEventType.COUNT_DOWN_FINISHED:
            {
                var payload = (CountDownFinishedPayload)afEvent.payload;
                if (!payload.TimerName.Equals(RoundTimerName))
                {
                    break;
                }
                countDownTimerInstance.StopTimer();
                if (IsEntireGameOver())
                {
                    Debug.Log("Game over, time ran out!");
                    var winningScore = currentRoundScores.SortedByDescendingScores()[0];
                    AFEventManager.INSTANCE.PostEvent(AFEvents.GameOver(winningScore.PlayerNumber(), winningScore.Score(), winningScore.PlayerColor()));
                }
                else
                {
                    Debug.Log("Round over, time ran out!");
                    var winningScore = currentRoundScores.SortedByDescendingScores()[0];
                    AFEventManager.INSTANCE.PostEvent(AFEvents.RoundOver(winningScore.PlayerNumber(), winningScore.Score(), winningScore.PlayerColor()));
                }
                break;
            }

            case AFEventType.GAME_START:
            {
                countDownTimerInstance.StartTimer();
                break;
            }
            }
            return(false);
        }
示例#7
0
        public bool HandleEvent(AFEvent afEvent)
        {
            switch (afEvent.type)
            {
            case AFEventType.WEAPON_UPGRADE:
            {
                var payload = (WeaponUpgradePayload)afEvent.payload;
                if (payload.PlayerNumber == PlayerNumber)
                {
                    SetUpgradeColor(payload.UpgradeColor);
                    SetUpgradeProgress(payload.UpgradeProgress);
                }
                break;
            }

            case AFEventType.SCORE:
            {
                var payload = (ScorePayload)afEvent.payload;
                if (payload.playerNumber == PlayerNumber)
                {
                    SetScoreText("" + payload.playerScore);
                }
                break;
            }

            case AFEventType.HEALTH_DAMAGE:
            {
                var payload = (HealthDamagePayload)afEvent.payload;
                if (payload.DamagedPlayerNumber == PlayerNumber)
                {
                    SetHealth(payload.HealthLeft);
                }
                break;
            }

            case AFEventType.RESPAWN:
            {
                var payload = (RespawnPayload)afEvent.payload;
                if (payload.PlayerNumber == PlayerNumber)
                {
                    SetHealth(payload.Health);
                }
                break;
            }
            }
            return(false);
        }
示例#8
0
 public bool HandleEvent(AFEvent afEvent)
 {
     if (afEvent.type == AFEventType.BOMB_TRIGGER)
     {
         var payload = (BombTriggerPayload)afEvent.payload;
         if (payload.OwnerPlayerNumber == settings.PlayerOwnerNumber && payload.TriggeredByPlayerInput)
         {
             TriggerExplosion();
         }
     }
     else if (afEvent.type == AFEventType.KILLED)
     {
         var payload = (KilledEventPayload)afEvent.payload;
         if (payload.playerNumberOfKilledPlayer == settings.PlayerOwnerNumber)
         {
             TriggerExplosionDueToLifeTime();
         }
     }
     return(false);
 }
示例#9
0
 public bool HandleEvent(AFEvent afEvent)
 {
     switch (afEvent.type)
     {
     case AFEventType.SCORE:
     {
         var payload = (ScorePayload)afEvent.payload;
         if (payload.playerScore > leaderScore)
         {
             leaderScore           = payload.playerScore;
             leaderPlayerNumber    = payload.playerNumber;
             leaderColor           = PlayersState.INSTANCE.GetPlayerColor(leaderPlayerNumber);
             leaderScoreText.color = leaderColor;
             leaderScoreText.text  = leaderScore + "";
         }
         break;
     }
     }
     return(false);
 }
        public bool HandleEvent(AFEvent afEvent)
        {
            switch (afEvent.type)
            {
            case AFEventType.KILLED:
            {
                return(HandleKilledEvent((KilledEventPayload)afEvent.payload));
            }

            case AFEventType.PLAYERS_ALL_CREATED:
            {
                return(HandlePlayersAllCreatedEvent((PlayersAllCreatedPayload)afEvent.payload));
            }

            case AFEventType.GAME_START:
            {
                countDownTimerInstance.StartTimer();
                return(false);
            }

            case AFEventType.COUNT_DOWN_FINISHED:
            {
                var payload = (CountDownFinishedPayload)afEvent.payload;
                if (payload.TimerName.Equals(GameTimerName))
                {
                    HandleGameOver();
                }
                return(false);
            }

            default:
            {
                return(false);
            }
            }
        }