public RunnerBehaviour ConvertBatterToRunner(PlayerStatus batterStatusScript)
    {
        PlayersTurnManager playersTurnManager = GameUtils.FetchPlayersTurnManager();
        GameObject         currentBatter      = batterStatusScript.gameObject;
        GameObject         bat             = PlayerUtils.GetPlayerBatGameObject(currentBatter);
        GameManager        gameManager     = GameUtils.FetchGameManager();
        RunnerBehaviour    runnerBehaviour = currentBatter.AddComponent <RunnerBehaviour>();

        gameManager.AttackTeamRunnerList.Add(runnerBehaviour.gameObject);
        gameManager.AttackTeamRunnerListClone.Add(runnerBehaviour.gameObject);
        gameManager.AttackTeamBatterListClone.Remove(currentBatter);
        playersTurnManager.CurrentRunner = runnerBehaviour.gameObject;
        runnerBehaviour.EquipedBat       = bat;
        bat.SetActive(false);
        Destroy(currentBatter.GetComponent <BatterBehaviour>());

        batterStatusScript.PlayerFieldPosition = PlayerFieldPositionEnum.RUNNER;
        TeamUtils.AddPlayerTeamMember(PlayerFieldPositionEnum.RUNNER, currentBatter, TeamUtils.GetBaseballPlayerOwner(currentBatter));

        int batterCount = gameManager.AttackTeamBatterListClone.Count;

        if (batterCount > 0)
        {
            GameObject nextBatter = gameManager.AttackTeamBatterListClone.First();
            gameManager.EquipBatToPlayer(nextBatter);
            TeamUtils.AddPlayerTeamMember(PlayerFieldPositionEnum.BATTER, nextBatter, TeamUtils.GetBaseballPlayerOwner(nextBatter));
        }

        string runnerNumber  = runnerBehaviour.gameObject.name.Split('_').Last();
        string newRunnerName = NameConstants.RUNNER_NAME + "_" + runnerNumber;

        runnerBehaviour.gameObject.name = newRunnerName;


        playersTurnManager.TurnState = TurnStateEnum.STANDBY;

        return(runnerBehaviour);
    }