private void ResetGround()
    {
        foreach (GroundController gc in allGcs)
        {
            gc.ResetType();
        }

        for (int i = 0; i < 5; i++)
        {
            recJobRatios [i] = 0;
            ratioCount [i]   = 0;
            recActLevel [i]  = 0;
        }

        for (int i = 0; i < 5; i++)
        {
            playerButton [i].ResetRatio();
        }

        allRatioData    = new List <RaycastData> ();
        recAllRatioData = new List <RaycastData> ();

        charaGc   = new LinkedList <GroundController> ();
        extraedGc = new List <ExtraRatioData> ();

        newRaycastData = new List <RaycastData> ();


        charaIdx = null;

        isResetGround = false;
        spaceCorrect  = false;
        spaceCount    = 0;

        ResetStatus();


        while (_charaGroup.Count > 0)
        {
            SetChess();
        }

        if (!fightInit)
        {
            resetGroundCount++;
            fightController.SetResetRatio(Mathf.CeilToInt(resetGroundCount / 2));
        }
        else
        {
            fightInit = false;
        }

        OnOpenButton();

        RoundStart();
    }