public void CycleNextEncounter()
    {
        this.currentEncounter = GetNextEncounter();
        if (this.currentEncounter != null)
        {
            UnityAction callback = () =>
            {
                UnityAction afterTransition = () =>
                {
                    if (this.currentEncounter.Data.EncounterType.ToString().Contains(GlobalStrings.ENCOUNTER_CREEP) && this.currentPlayer.PlayerVitals.Speed * 1.5f < this.currentEncounter.Data.Vitals.Speed)
                    {
                        this.CurrentTurn = PF_GamePlay.TurnStates.Enemy;
                        gameplayController.EnemyAttackPlayer(true);
                        this.gameplayController.playerController.EncounterBar.EnableEncounterOptions(this.currentEncounter.Data.EncounterType, this.currentEncounter.DisplayName, true);
                    }
                    else
                    {
                        this.CurrentTurn = PF_GamePlay.TurnStates.Player;
                        //this.gameplayController.playerController.EncounterBar.EnableEncounterOptions(this.currentEncounter.Data.EncounterType, this.currentEncounter.DisplayName);
                        this.gameplayController.playerController.TransitionActionBarIn();
                    }

                    GameplayController.RaiseGameplayEvent(GlobalStrings.NEXT_ENCOUNTER_EVENT, PF_GamePlay.GameplayEventTypes.IntroEncounter);
                };

                this.gameplayController.enemyController.currentEncounter.UpdateCurrentEncounter(this.currentEncounter);
                this.gameplayController.enemyController.nextController.UpdateNextEncounters();
                this.gameplayController.enemyController.TransitionCurrentEncounterIn(afterTransition);
            };

            this.gameplayController.enemyController.TransitionCurrentEncounterOut(callback);
        }
    }
 public void StartTurn()
 {
     if (this.currentEncounter.Data.EncounterType == EncounterTypes.Hero || this.currentEncounter.Data.EncounterType == EncounterTypes.Store)
     {
         this.CurrentTurn = PF_GamePlay.TurnStates.Player;
         //this.gameplayController.playerController.EncounterBar.EnableEncounterOptions(this.currentEncounter.Data.EncounterType, this.currentEncounter.DisplayName);
         //this.gameplayController.playerController.TransitionEncounterBarIn();
     }
     else
     {
         //compare speed to see who goes first
         // if the enemy's speed is 150% more than the player's the enemy ambushes the player and gets a free attack
         if (this.currentEncounter.Data.EncounterType.ToString().Contains(GlobalStrings.ENCOUNTER_CREEP) && (float)this.currentPlayer.PlayerVitals.Speed * 1.5f < (float)this.currentEncounter.Data.Vitals.Speed)
         {
             this.CurrentTurn = PF_GamePlay.TurnStates.Enemy;
             //GameplayController.RaiseGameplayEvent("Enemy Turn Begins", PF_GamePlay.GameplayEventTypes.EnemyTurnBegins);
             gameplayController.EnemyAttackPlayer(true);
             //this.gameplayController.playerController.EncounterBar.EnableEncounterOptions(this.currentEncounter.Data.EncounterType, this.currentEncounter.DisplayName, true);
             //this.gameplayController.playerController.TransitionEncounterBarIn();
         }
         else
         {
             this.CurrentTurn = PF_GamePlay.TurnStates.Player;
             //this.gameplayController.playerController.EncounterBar.EnableEncounterOptions(this.currentEncounter.Data.EncounterType, this.currentEncounter.DisplayName);
             //this.gameplayController.playerController.TransitionEncounterBarIn();
         }
     }
 }
    public void ToggleTurn(PF_GamePlay.TurnStates forceTurn = PF_GamePlay.TurnStates.Null)
    {
        if (forceTurn != PF_GamePlay.TurnStates.Null)
        {
            if (forceTurn == PF_GamePlay.TurnStates.Player)
            {
                this.CurrentTurn = PF_GamePlay.TurnStates.Player;
                GameplayController.RaiseGameplayEvent(GlobalStrings.PLAYER_TURN_BEGIN_EVENT, PF_GamePlay.GameplayEventTypes.PlayerTurnBegins);
            }
            else if (forceTurn == PF_GamePlay.TurnStates.Enemy)
            {
                this.CurrentTurn = PF_GamePlay.TurnStates.Enemy;
                GameplayController.RaiseGameplayEvent(GlobalStrings.ENEMY_TURN_BEGIN_EVENT, PF_GamePlay.GameplayEventTypes.EnemyTurnBegins);
            }
            return;
        }



        if (this.CurrentTurn == PF_GamePlay.TurnStates.Player)
        {
            this.CurrentTurn = PF_GamePlay.TurnStates.Enemy;
            GameplayController.RaiseGameplayEvent(GlobalStrings.ENEMY_TURN_BEGIN_EVENT, PF_GamePlay.GameplayEventTypes.EnemyTurnBegins);
        }
        else if (this.CurrentTurn == PF_GamePlay.TurnStates.Enemy)
        {
            this.CurrentTurn = PF_GamePlay.TurnStates.Player;
            GameplayController.RaiseGameplayEvent(GlobalStrings.PLAYER_TURN_BEGIN_EVENT, PF_GamePlay.GameplayEventTypes.PlayerTurnBegins);
        }
    }