Пример #1
0
 private void OnGameStateChanged(GameStateChangedEvent e)
 {
     if (e.stateType == GameStateType.SimulateLevel)
     {
         //TODO: OPTIONAL DO A SMOOTH REWIND
     }
 }
Пример #2
0
 private void OnGameStateChanged(GameStateChangedEvent e)
 {
     if (e.stateType == GameStateType.Plotting)
     {
         ResetTimer();
     }
 }
Пример #3
0
        private void checkForVictoryConditions()
        {
            bool playerIsDead     = true;
            bool allAliensAreDead = true;

            foreach (Entity entity in World.Entities.Values)
            {
                if (allAliensAreDead && entity.Type.StartsWith("alien_"))
                {
                    allAliensAreDead = false;
                }
                else if (entity.Type == "player" || entity.Type == "player_death")
                {
                    playerIsDead = false;
                }
            }

            if (playerIsDead)
            {
                GameStateChangedEvent changeState = GameStateChangedEvent.To(GameState.GameOver);
                EventManager.Queue(changeState);
            }
            else if (allAliensAreDead)
            {
                GameStateChangedEvent changeState = GameStateChangedEvent.To(GameState.Victory);
                EventManager.Queue(changeState);
            }
        }
Пример #4
0
        public void Stop()
        {
            IsRunning             = false;
            creditsPanel.Location = new Point(creditsPanel.Location.X, 770);

            eventManager.Queue(GameStateChangedEvent.To(GameState.Menu));
        }
Пример #5
0
 private void OnGameStateChange(GameStateChangedEvent e)
 {
     if (e.next == EGameState.KAREN_CHASE)
     {
         countdownText.color = Color.red;
         countdownText.text  = "Your owner is here. RUN!";
     }
 }
Пример #6
0
 public void OnEvent(Event evt)
 {
     switch (evt.Type)
     {
     case GameStateChangedEvent.GAME_STATE_CHANGED:
         GameStateChangedEvent stateChangedEvent = evt as GameStateChangedEvent;
         changeState(stateChangedEvent.NewState);
         break;
     }
 }
Пример #7
0
 private void OnGameStateChanged(GameStateChangedEvent e)
 {
     if (e.stateType == GameStateType.SimulateLevel)
     {
         left.SetActive(false);
         right.SetActive(false);
         top.SetActive(false);
         bottom.SetActive(false);
     }
 }
Пример #8
0
        public void OnEvent(Event evt)
        {
            switch (evt.Type)
            {
            case AudioEvent.PLAY_SOUND: {
                AudioEvent audioEvent = (AudioEvent)evt;
                audioPlayer.PlayEvent(audioEvent.ToString(), audioEvent.Volume);
                break;
            }

            case AudioEvent.STOP_SOUND:
            {
                AudioEvent audioEvent = (AudioEvent)evt;
                audioPlayer.StopEvent(audioEvent.ToString());
                break;
            }

            case AudioEvent.PAUSE_SOUND:
            {
                AudioEvent audioEvent = (AudioEvent)evt;
                audioPlayer.PauseEvent(audioEvent.ToString());
                break;
            }

            case NewEntityEvent.NEW_ENTITY: {
                NewEntityEvent newEntityEvent = (NewEntityEvent)evt;
                Entity         entity         = Game.World.Entities[newEntityEvent.EntityID];
                if (entity.Type == "player")
                {
                    OnAttach(entity);

                    int lifes = playerEntity[HealthBehavior.Key_Lifes];
                    hud.Reset(lifes);
                }
                break;
            }

            case DestroyEntityEvent.DESTROY_ENTITY: {
                DestroyEntityEvent destroyEntityEvent = (DestroyEntityEvent)evt;
                Entity             entity             = Game.World.Entities[destroyEntityEvent.EntityID];
                if (entity.Type == "player")
                {
                    OnDetach();
                }
                break;
            }

            case GameStateChangedEvent.GAME_STATE_CHANGED: {
                GameStateChangedEvent stateChangedEvent = (GameStateChangedEvent)evt;
                onGameStateChanged(stateChangedEvent.NewState);
                break;
            }
            }
        }
Пример #9
0
 private void OnGameStateChanged(GameStateChangedEvent e)
 {
     if (e.stateType == GameStateType.Plotting)
     {
         ResetEnemy();
     }
     else if (e.stateType == GameStateType.SimulateLevel)
     {
         isPaused = true;
     }
 }
Пример #10
0
    private void OnGameStateChanged(GameStateChangedEvent e)
    {
        if (e.stateType == GameStateType.SimulateLevel)
        {
            //Simulate starts
            //Play rewind here
            sfxSource.clip = rewindSound;
            sfxSource.Play();

            FadeOutBgmChannel();
        }
    }
Пример #11
0
 private void OnGameStateChanged(GameStateChangedEvent e)
 {
     if (e.stateType == GameStateType.Plotting)
     {
         laserEnds[0].GetComponent <EnemyLaserEnd>().ResetLaser();
         laserEnds[1].GetComponent <EnemyLaserEnd>().ResetLaser();
     }
     else if (e.stateType == GameStateType.SimulateLevel)
     {
         laserEnds[0].GetComponent <EnemyLaserEnd>().PauseLaser();
         laserEnds[1].GetComponent <EnemyLaserEnd>().PauseLaser();
     }
 }
Пример #12
0
 private void UnsubscribeAll()
 {
     _eventBus.Unsubscribe <ChatMessageSentEvent>(ChatMessageSentEvent.GetId(), OnChatMessageSentEventAsync);
     _eventBus.Unsubscribe <GameStateChangedEvent>(GameStateChangedEvent.GetId(), OnGameStateChangedEventAsync);
     _eventBus.Unsubscribe <PlayerAddedToVesselRoleEvent>(PlayerAddedToVesselRoleEvent.GetId(), OnPlayerAddedToVesselRoleEventAsync);
     _eventBus.Unsubscribe <PlayerJoinedGameEvent>(PlayerJoinedGameEvent.GetId(), OnPlayerJoinedGameEventAsync);
     _eventBus.Unsubscribe <PlayerLeftGameEvent>(PlayerLeftGameEvent.GetId(), OnPlayerLeftGameEventAsync);
     _eventBus.Unsubscribe <PlayerRemovedFromVesselRoleEvent>(PlayerRemovedFromVesselRoleEvent.GetId(), OnPlayerRemovedFromVesselRoleEventAsync);
     _eventBus.Unsubscribe <PlayerSignedInEvent>(PlayerSignedInEvent.GetId(), OnPlayerSignedInEventAsync);
     _eventBus.Unsubscribe <PlayerSignedOutEvent>(PlayerSignedOutEvent.GetId(), OnPlayerSignedOutEventAsync);
     _eventBus.Unsubscribe <VesselMovedInDirectionEvent>(VesselMovedInDirectionEvent.GetId(), OnVesselMovedInDirectionEventAsync);
     _eventBus.Unsubscribe <VesselStateChangedEvent>(VesselStateChangedEvent.GetId(), OnVesselStateChangedEventAsync);
 }
Пример #13
0
    public void on_game_state_change(GameStateChangedEvent e)
    {
        if (e.next == EGameState.GAME_OVER)
        {
            GameEvent <GameStateChangedEvent> .Unregister(on_game_state_change);

            gameplay_gameover();
        }
        else if (e.next == EGameState.GAME_OVER_WIN)
        {
            GameEvent <GameStateChangedEvent> .Unregister(on_game_state_change);

            gameplay_gameover_win();
        }
    }
Пример #14
0
        private void continueButton_Click(object sender, EventArgs e)
        {
            if (Highscore.IsNewHighscore(CurrentScore))
            {
                if (String.IsNullOrEmpty(playerNameTextBox.Text))
                {
                    // TODO: Inform user
                    return;
                }

                Highscore.Add(playerNameTextBox.Text, CurrentScore);
            }

            eventManager.Queue(GameStateChangedEvent.To(GameState.Highscore));
        }
Пример #15
0
    private void OnGameStateChangedEvent(GameStateChangedEvent e)
    {
        UpdateTutorial(e.stateType);

        switch (e.stateType)
        {
        case GameStateType.LoadScene:

            break;

        case GameStateType.LevelSetup:
            break;

        case GameStateType.ExamineLevel:
            transitionPanel.SetActive(false);

            startPlottingButton.SetActive(true);
            restartButton.SetActive(false);
            rePlotButton.SetActive(false);

            break;

        case GameStateType.Plotting:
            startPlottingButton.SetActive(false);
            plotConfirmButton.SetActive(true);
            plotResetButton.SetActive(true);
            break;

        case GameStateType.SimulateLevel:
            PlaySimulationCountdown();

            plotConfirmButton.SetActive(false);
            plotResetButton.SetActive(false);
            rePlotButton.SetActive(true);
            break;

        case GameStateType.TransitionToNextLevel:
            SetLevelTransition();
            break;

        default:
            break;
        }
    }
Пример #16
0
        public Application()
        {
            Game = new GameLogic(1024, 768, resourceManager);

            Views = new List <IGameView>();
            Views.Add(new PlayerView(Game));
            Views.Add(new AiView(Game));

            resourceManager.AddLoader(new DummyLoader());
#if DEBUG
            resourceManager.AddWiper(new DebugWiper());
#endif
            resourceManager.AddWiper(new FileUpdater());

            Game.EventManager.Queue(GameStateChangedEvent.To(GameState.StartUp));
            Game.EventManager.Queue(GameStateChangedEvent.To(GameState.Menu));

            registerGameEventListeners();
        }
Пример #17
0
        public void OnEvent(Event evt)
        {
            switch (evt.Type)
            {
            case GameStateChangedEvent.GAME_STATE_CHANGED:
            {
                GameStateChangedEvent stateChangedEvent = evt as GameStateChangedEvent;

                if (stateChangedEvent.NewState != GameState.Running)
                {
                    clock.Stop();
                }
                else
                {
                    clock.Start();
                }
                break;
            }

            case DebugEvent.SINGLE_STEP:
            {
                clock.SingleStep();
                break;
            }

            case DebugEvent.DECREASE_SPEED:
            {
                clock.TimeScale -= 0.1f;
                break;
            }

            case DebugEvent.INCREASE_SPEED: {
                clock.TimeScale += 0.1f;
                break;
            }

            case DebugEvent.RESET_SPEED: {
                clock.TimeScale = 1.0f;
                break;
            }
            }
        }
Пример #18
0
        public void OnKeyUp(object sender, KeyEventArgs e)
        {
            e.Handled = true;

            switch (e.KeyCode)
            {
            case Keys.P:
                goto case Keys.Pause;

            case Keys.Pause:
                if (game.IsRunning || game.State == GameState.Paused)
                {
                    eventManager.Queue(GameStateChangedEvent.To(GameState.Paused));
                }
                break;

            case Keys.Escape:
                eventManager.Queue(GameStateChangedEvent.To(GameState.Menu));
                break;

            // Debug Keys
            case Keys.F9:
                eventManager.Trigger(new DebugEvent(DebugEvent.DECREASE_SPEED));
                break;

            case Keys.F10:
                eventManager.Trigger(new DebugEvent(DebugEvent.SINGLE_STEP));
                break;

            case Keys.F11:
                eventManager.Trigger(new DebugEvent(DebugEvent.INCREASE_SPEED));
                break;

            case Keys.F12:
                eventManager.Trigger(new DebugEvent(DebugEvent.RESET_SPEED));
                break;

            default:
                e.Handled = false;
                break;
            }
        }
Пример #19
0
        private void changeState(GameState newState)
        {
            GameState oldState = State;

            this.State = newState;

            switch (newState)
            {
            case GameState.StartUp:
                loadResources();
                break;

            case GameState.Menu:
                if (oldState == GameState.Menu)
                {
                    State = GameState.Running;
                    EventManager.Queue(GameStateChangedEvent.To(GameState.Running));
                }
                break;

            case GameState.Loading:
                reset();
                initialize();

                EventManager.Queue(GameStateChangedEvent.To(GameState.Running));
                break;

            case GameState.Running:
                break;

            case GameState.Paused:
                if (oldState == GameState.Paused)
                {
                    State = GameState.Running;
                    EventManager.Queue(GameStateChangedEvent.To(GameState.Running));
                }
                break;
            }
        }
Пример #20
0
    private void OnGameStateChaged(GameStateChangedEvent e)
    {
        _gameState = e.GameState;
        switch (_gameState)
        {
        case GameState.Menu:
            _startButton.gameObject.SetActive(true);
            _gameOver.gameObject.SetActive(false);
            _score.gameObject.SetActive(false);
            break;

        case GameState.Playing:
            _startButton.gameObject.SetActive(false);
            _gameOver.gameObject.SetActive(false);
            _score.gameObject.SetActive(true);
            break;

        case GameState.GameOver:
            _startButton.gameObject.SetActive(true);
            _gameOver.gameObject.SetActive(true);
            _score.gameObject.SetActive(true);
            break;
        }
    }
        public bool Tick()
        {
            List <Event> queueToProcess = ActiveQueue;

            swapActiveQueue();
            ActiveQueue.Clear();

            foreach (Event evt in queueToProcess)
            {
                Trigger(evt);

                // Otherwise queueToProcess will be cleared while iterating over it, which will cause an Exception
                if (evt is GameStateChangedEvent)
                {
                    GameStateChangedEvent e = (GameStateChangedEvent)evt;
                    if (e.NewState == GameState.Loading)
                    {
                        break;
                    }
                }
            }

            return(true);
        }
Пример #22
0
    private void OnGameStateChanged(GameStateChangedEvent e)
    {
        switch (e.stateType)
        {
        case GameStateType.LoadScene:
            AddSceneLevel();
            break;

        case GameStateType.LevelSetup:

            ClearLevel();
            RetreiveCurrentLevelData();
            SetupLevelElements();

            GameEventManager.Instance.TriggerSyncEvent(new GameStateCompletedEvent(GameStateType.LevelSetup));
            break;

        case GameStateType.ExamineLevel:
            GameEventManager.Instance.TriggerSyncEvent(new SetCurrentLevelID(currentLevelID));
            break;

        case GameStateType.Plotting:
            plotter.SetActive(true);
            plotter.GetComponent <PathPlotter>().Initialize();
            break;

        case GameStateType.SimulateLevel:
            plotter.GetComponent <PathPlotter>().DestroyPlotterLine();
            plotter.SetActive(false);
            break;

        case GameStateType.TransitionToNextLevel:
            StartCoroutine(LoadNextLevel());
            break;
        }
    }
Пример #23
0
 private void QuitButton_Click(object sender, EventArgs e)
 {
     eventManager.Queue(GameStateChangedEvent.To(GameState.Quit));
 }
Пример #24
0
 private void CreditsButton_Click(object sender, EventArgs e)
 {
     eventManager.Queue(GameStateChangedEvent.To(GameState.Credits));
 }
Пример #25
0
 private void HighscoreButton_Click(object sender, EventArgs e)
 {
     eventManager.Queue(GameStateChangedEvent.To(GameState.Highscore));
 }
Пример #26
0
 private void NewGameButton_Click(object sender, EventArgs e)
 {
     eventManager.Queue(GameStateChangedEvent.To(GameState.Loading));
 }
Пример #27
0
 protected async Task OnGameStateChangedEventAsync(GameStateChangedEvent evt) =>
 await OnEventAsync(evt);
Пример #28
0
 private void OnGameStateChanged(GameStateChangedEvent evt)
 {
     // reset default shader settings between game state changes
     GameUtils.SetShaderDefaults();
 }
Пример #29
0
        private Task OnGameStateChangedDomainEventAsync(GameStateChangedDomainEvent evt)
        {
            var gameDto = DomainGameService.MapToGameDto(evt.Game);

            return(PublishIfEnabledAsync(GameStateChangedEvent.FromGame(gameDto)));
        }
Пример #30
0
        public void OnEvent(Event evt)
        {
            switch (evt.Type)
            {
            case NewEntityEvent.NEW_ENTITY: {
                var    newEntityEvent = (NewEntityEvent)evt;
                Entity entity         = Game.World.Entities[newEntityEvent.EntityID];
                if (entity.Type.StartsWith("alien_"))
                {
                    OnAttach(entity);
                }
                else if (entity.Type.Equals("mystery_ship"))
                {
                    mysteryShip = entity;
                }
                break;
            }

            case DestroyEntityEvent.DESTROY_ENTITY: {
                var destroyEntityEvent = (DestroyEntityEvent)evt;

                Entity entity = Game.World.Entities[destroyEntityEvent.EntityID];
                if (entity.Type.StartsWith("alien_"))
                {
                    OnDetach(entity);
                }
                else if (entity.Type.Equals("mystery_ship"))
                {
                    mysteryShip = null;
                }

                if (shooter != null && entity.ID == shooter.ID)
                {
                    shooter = null;
                }
                break;
            }

            case GameStateChangedEvent.GAME_STATE_CHANGED: {
                var stateChangedEvent = (GameStateChangedEvent)evt;
                onGameStateChanged(stateChangedEvent.NewState);
                break;
            }

            case AiUpdateMovementEvent.AT_BORDER: {
                var aiMovementUpdateEvent = (AiUpdateMovementEvent)evt;

                Vector2D borderData = aiMovementUpdateEvent.BorderData;

                if (borderData.Y < 0)
                {
                    // Victory for the Invaders!
                    EventManager.Trigger(GameStateChangedEvent.To(GameState.GameOver));
                }

                currentDirection.X = -borderData.X;
                currentDirection.Y = -1;

                movementDirectionChanged = true;
                break;
            }
            }
        }