private static void SpriteSelectedControls(ActionKey key)
        {
            if (BattleGUI.bIsRunning && EncounterInfo.currentTurn().bIsPlayerTurnSet&& !EncounterInfo.currentTurn().bPlayerTurnEnemyOverriden)
            {
                //if (key.actionIndentifierString.Equals(Game1.confirmString) && !KeyboardMouseUtility.AnyButtonsPressed() && !BattleGUI.bChooseAbility && !BattleGUI.bIsAttacking)
                //{
                //    BattleGUI.bChooseAbility = true;
                //}


                if (!BattleGUI.bChooseAbility && BattleGUI.bIsAttacking && (key.actionIndentifierString.Equals(Game1.confirmString) || key.actionIndentifierString.Equals(Game1.openMenuString)) && !KeyboardMouseUtility.AnyButtonsPressed())
                {
                    EncounterInfo.currentTurn().FinalizeCharacterRound();

                    BattleGUI.End();
                }

                if ((key.actionIndentifierString.Equals(Game1.confirmString) || key.actionIndentifierString.Equals(Game1.openMenuString)) && !KeyboardMouseUtility.AnyButtonsPressed() && BattleGUI.ExecutableAbilitySelected() && BattleGUI.bChooseAbility)
                {
                    BattleGUI.PlayerChoiceMade();
                    // BattleGUI.bStartZoom = true;
                }

                if (!BattleGUI.bChooseAbility && key.actionIndentifierString.Equals(Game1.confirmString) && !BattleGUI.bIsAttacking && !KeyboardMouseUtility.AnyButtonsPressed() && BattleGUI.ExecutableAbilitySelected() && !BattleGUI.bChooseAbility)
                {
                    //BattleGUI.bChooseAbility = true;
                }



                if (BattleGUI.bChooseAbility)
                {
                    if (key.actionIndentifierString.Equals(Game1.moveUpString) && !KeyboardMouseUtility.AnyButtonsPressed())
                    {
                        BattleGUI.PlayerChoiceUpDown(-1);
                    }

                    if (key.actionIndentifierString.Equals(Game1.moveDownString) && !KeyboardMouseUtility.AnyButtonsPressed())
                    {
                        BattleGUI.PlayerChoiceUpDown(+1);
                    }
                }



                if (key.actionIndentifierString.Equals(Game1.debugInfoString) && !KeyboardMouseUtility.AnyButtonsPressed())
                {
                    BattleStats.Report(BattleGUI.gbc);
                }
            }
            else if (EncounterInfo.encounterGroups.Count != 0 && EncounterInfo.currentTurn() != null && (!EncounterInfo.currentTurn().bIsPlayerTurnSet || (EncounterInfo.currentTurn().bIsPlayerTurnSet&& EncounterInfo.currentTurn().bPlayerTurnEnemyOverriden)))
            {
                if ((key.actionIndentifierString.Equals(Game1.confirmString) || key.actionIndentifierString.Equals(Game1.openMenuString)) && !KeyboardMouseUtility.AnyButtonsPressed() && !BattleGUI.bStartZoom)
                {
                    if (GameProcessor.bMayEndCharacterTurn && EncounterInfo.currentTurn().bIsEnemyTurnSet&& EncounterInfo.currentTurn().currentEnemy.character.attackedAsAI)
                    {
                        EncounterInfo.currentTurn().FinalizeEnemyRound();
                    }
                    BattleGUI.End();
                }
            }
            else
            {
                if ((PlayerController.selectedSprite as BaseCharacter).IsAlive() && EncounterInfo.encounterGroups.Count > 0 && EncounterInfo.currentTurn() != null && EncounterInfo.currentTurn().bIsPlayerTurnSet&& !EncounterInfo.currentTurn().bPlayerMustSelectAction&& !EncounterInfo.currentTurn().groupTurnSet.Find(gts => gts.character == PlayerController.selectedSprite).bIsCompleted)
                {
                    #region
                    if (key.actionIndentifierString.Equals(Game1.moveUpString))
                    {
                        //PlayerController.selectedSprite.Move(new Vector2(0, -Speed));
                        //PathMoveHandler.SkipPathMovement();
                        if (!PathMoveHandler.bIsBusy)
                        {
                            selectedChar.rotationIndex       = (int)BaseCharacter.Rotation.Up;
                            CombatProcessor.allPossibleNodes = PathFinder.NewPathSearch(selectedChar.position, selectedChar.position - new Vector2(0, 64), CombatProcessor.radiusTiles);
                            if (CombatProcessor.allPossibleNodes.Count != 0)
                            {
                                //    EncounterInfo.currentTurn().selectedCharTurn.stepsSet++;
                                EncounterInfo.currentTurn().bRegenerateRadius = true;
                            }
                            PathMoveHandler.Start(selectedChar, CombatProcessor.allPossibleNodes);
                        }
                    }

                    if (key.actionIndentifierString.Equals(Game1.moveDownString))
                    {
                        //PlayerController.selectedSprite.Move(new Vector2(0, Speed));

                        //  PathMoveHandler.SkipPathMovement();
                        if (!PathMoveHandler.bIsBusy)
                        {
                            selectedChar.rotationIndex       = (int)BaseCharacter.Rotation.Down;
                            CombatProcessor.allPossibleNodes = PathFinder.NewPathSearch(selectedChar.position, selectedChar.position + new Vector2(0, 64), CombatProcessor.radiusTiles);
                            if (CombatProcessor.allPossibleNodes.Count != 0)
                            {
                                //   EncounterInfo.currentTurn().selectedCharTurn.stepsSet++;
                                EncounterInfo.currentTurn().bRegenerateRadius = true;
                            }
                            PathMoveHandler.Start(selectedChar, CombatProcessor.allPossibleNodes);
                        }
                    }

                    if (key.actionIndentifierString.Equals(Game1.moveLeftString))
                    {
                        //  PlayerController.selectedSprite.Move(new Vector2(-Speed, 0));

                        // PathMoveHandler.SkipPathMovement();
                        if (!PathMoveHandler.bIsBusy)
                        {
                            selectedChar.rotationIndex       = (int)BaseCharacter.Rotation.Left;
                            CombatProcessor.allPossibleNodes = PathFinder.NewPathSearch(selectedChar.position, selectedChar.position - new Vector2(64, 0), CombatProcessor.radiusTiles);
                            if (CombatProcessor.allPossibleNodes.Count != 0)
                            {
                                //  EncounterInfo.currentTurn().selectedCharTurn.stepsSet++;
                                EncounterInfo.currentTurn().bRegenerateRadius = true;
                            }
                            PathMoveHandler.Start(selectedChar, CombatProcessor.allPossibleNodes);
                        }
                    }

                    if (key.actionIndentifierString.Equals(Game1.moveRightString))
                    {
                        // PlayerController.selectedSprite.Move(new Vector2(Speed, 0));

                        //PathMoveHandler.SkipPathMovement();
                        if (!PathMoveHandler.bIsBusy)
                        {
                            selectedChar.rotationIndex = (int)BaseCharacter.Rotation.Right;
                            //int radius = selectedChar.trueSTATChart().currentPassiveStats[(int)STATChart.PASSIVESTATS.MOB] * selectedChar.trueSTATChart().currentPassiveStats[(int)STATChart.PASSIVESTATS.AP] - EncounterInfo.currentTurn().selectedCharTurn.stepsSet;
                            //CombatProcessor.radiusTiles = MapListUtility.returnMapRadius(radius,GameProcessor.loadedMap.possibleTilesGameZone(CombatProcessor.zoneTiles),selectedChar);
                            CombatProcessor.allPossibleNodes = PathFinder.NewPathSearch(selectedChar.position, selectedChar.position + new Vector2(64, 0), CombatProcessor.radiusTiles);
                            if (CombatProcessor.allPossibleNodes.Count != 0)
                            {
                                //  EncounterInfo.currentTurn().selectedCharTurn.stepsSet++;
                                EncounterInfo.currentTurn().bRegenerateRadius = true;
                            }
                            PathMoveHandler.Start(selectedChar, CombatProcessor.allPossibleNodes);
                        }
                    }

                    if (EncounterInfo.currentTurn().bIsPlayerTurnSet&& !BattleGUI.bIsRunning)
                    {
                        if (!KeyboardMouseUtility.bMouseButtonPressed && (key.actionIndentifierString.Equals(Game1.confirmString) || key.actionIndentifierString.Equals(Game1.openMenuString)) && !KeyboardMouseUtility.AnyButtonsPressed() && !PathMoveHandler.bIsBusy && EncounterInfo.currentTurn().selectedCharTurn != null && CombatProcessor.bMainCombat && !EncounterInfo.currentTurn().bPlayerMustSelectAction)
                        {
                            KeyboardMouseUtility.bPressed = true;
                            EncounterInfo.currentTurn().StartPopUpChoice(PlayerController.selectedSprite.position);
                        }
                        else if (KeyboardMouseUtility.bMouseButtonPressed && (key.actionIndentifierString.Equals(Game1.cancelString)) && !KeyboardMouseUtility.AnyButtonsPressed() && !PathMoveHandler.bIsBusy && EncounterInfo.currentTurn().selectedCharTurn != null && CombatProcessor.bMainCombat && !EncounterInfo.currentTurn().bPlayerMustSelectAction)
                        {
                            EncounterInfo.currentTurn().SelectCharacter();
                        }
                        else if (KeyboardMouseUtility.bMouseButtonPressed && !KeyboardMouseUtility.AnyButtonsPressed() && key.actionIndentifierString.Equals(Game1.confirmString) && !PathMoveHandler.bIsBusy && CombatProcessor.bMainCombat)
                        {
                            if (PlayerSaveData.heroParty.Find(c => c.spriteGameSize.Contains(KeyboardMouseUtility.gameMousePos)) == default(BaseCharacter))
                            {
                                EncounterInfo.currentTurn().RightButtonPlayerAction();
                            }
                            else
                            {
                                EncounterInfo.currentTurn().SelectCharacter();
                            }

                            KeyboardMouseUtility.bPressed = true;
                        }
                        else if (key.actionIndentifierString.Equals(Game1.tabKeyString) && !KeyboardMouseUtility.AnyButtonsPressed() && !PathMoveHandler.bIsBusy && EncounterInfo.currentTurn().selectedCharTurn != null && CombatProcessor.bMainCombat && !EncounterInfo.currentTurn().bPlayerMustSelectAction)
                        {
                            EncounterInfo.currentTurn().TabSelect();
                        }
                    }

                    //



                    //if (key.actionIndentifierString.Equals(Game1.cameraMoveUpString))
                    //{
                    //    GameProcessor.sceneCamera.Y += (int)(normalCameraSpeed * GameProcessor.zoom);
                    //}

                    //if (key.actionIndentifierString.Equals(Game1.cameraMoveDownString))
                    //{
                    //    GameProcessor.sceneCamera.Y -= (int)(normalCameraSpeed * GameProcessor.zoom);
                    //}

                    //if (key.actionIndentifierString.Equals(Game1.cameraMoveLeftString))
                    //{
                    //    GameProcessor.sceneCamera.X += (int)(normalCameraSpeed * GameProcessor.zoom);
                    //}

                    //if (key.actionIndentifierString.Equals(Game1.cameraMoveRightString))
                    //{
                    //    GameProcessor.sceneCamera.X -= (int)(normalCameraSpeed * GameProcessor.zoom);
                    //}
                    #endregion
                }
                else if (EncounterInfo.encounterGroups.Count > 0 && EncounterInfo.currentTurn().bPlayerMustSelectAction)
                {
                    if (key.actionIndentifierString.Equals(Game1.cancelString) && !KeyboardMouseUtility.AnyButtonsPressed())
                    {
                        EncounterInfo.currentTurn().bPlayerMustSelectAction = false;
                        KeyboardMouseUtility.bPressed = true;
                    }

                    if (key.actionIndentifierString.Equals(Game1.moveUpString) && !KeyboardMouseUtility.AnyButtonsPressed())
                    {
                        BattleGUI.PopUpPreviousChoice();
                    }

                    if (key.actionIndentifierString.Equals(Game1.moveDownString) && !KeyboardMouseUtility.AnyButtonsPressed())
                    {
                        BattleGUI.PopUpNextChoice();
                    }

                    if (key.actionIndentifierString.Equals(Game1.moveLeftString) && !KeyboardMouseUtility.AnyButtonsPressed())
                    {
                        BattleGUI.SelectPreviousCharacter();
                    }

                    if (key.actionIndentifierString.Equals(Game1.moveRightString) && !KeyboardMouseUtility.AnyButtonsPressed())
                    {
                        BattleGUI.SelectNextCharacter();
                    }

                    if ((key.actionIndentifierString.Equals(Game1.confirmString) || key.actionIndentifierString.Equals(Game1.openMenuString)) && !KeyboardMouseUtility.AnyButtonsPressed())
                    {
                        // var temp = EncounterInfo.currentTurn().selectedCharTurn.character;
                        switch (BattleGUI.returnCurrentPopUpMenuSelection())
                        {
                        case (int)BattleGUI.PopUpChoices.Attack:
                            if (BattleGUI.selectedTarget != null && EncounterInfo.currentTurn().selectedCharTurn.character.UsableAbilityList(BattleGUI.selectedTarget).Count != 0)
                            {
                                GameProcessor.StartBattleSoon(EncounterInfo.currentTurn().selectedCharTurn.character, BattleGUI.selectedTarget);
                            }
                            break;

                        case (int)BattleGUI.PopUpChoices.Defend:
                            EncounterInfo.currentTurn().selectedCharTurn.character.bSaveAP = true;
                            BattleGUI.DefendOption(EncounterInfo.currentTurn().selectedCharTurn.character, BattleGUI.selectedTarget);
                            EncounterInfo.currentTurn().FinalizeCharacterRound();
                            break;

                        case (int)BattleGUI.PopUpChoices.Item:
                            BattleGUI.ItemsOption();
                            break;
                        }
                    }
                }
            }

            if (!KeyboardMouseUtility.bMouseButtonPressed && (key.actionIndentifierString.Equals(Game1.confirmString) || key.actionIndentifierString.Equals(Game1.openMenuString)) && !KeyboardMouseUtility.AnyButtonsPressed())
            {
                if (CombatProcessor.bStartPhase1)
                {
                    CombatProcessor.StartMainCombat();
                    EncounterInfo.ChangeGroup(0);
                }
            }
        }