public string CheckCurrentStatus(RedirectedUnit[] otherUnits, string previousStatus)
    {
        List <Object2D> otherUsers = GetUsers(otherUnits);

        if (status == "WALL_RESET")
        {
            if (previousStatus == "DONE")
            {
                status = "IDLE";
            }
        }
        else if (status == "USER_RESET")
        {
            if (previousStatus == "DONE")
            {
                status = "IDLE";
            }
        }
        else if (status == "IDLE")
        {
            if (resetter.NeedWallReset(realUser, realSpace))
            {
                resultData.AddWallReset();
                status = "WALL_RESET";
            }
            else if (resetter.NeedUserReset(realUser, otherUsers, out intersectedUser))
            {
                resultData.AddUserReset();
                status = "USER_RESET";
            }
            else if (!GetEpisode().IsNotEnd())
            {
                status = "END";
            }
        }

        return(status);
    }