private IEnumerator _PunchLeft()
    {
        this._currentSubStateCoroutine = GolemBossSubStates.PunchLeft;
        yield return(this._leftHandController.Punch(this.leftHand.transform.position + Vector3.right * 10));

        this._previousSubState = GolemBossSubStates.PunchLeft;
        this._subState         = GolemBossSubStates.Idle;
    }
    private IEnumerator _SmashRight()
    {
        this._currentSubStateCoroutine = GolemBossSubStates.SmashRight;
        yield return(this._rightHandController.Punch(this.rightHand.transform.position + Vector3.down * 10));

        this._previousSubState = GolemBossSubStates.SmashRight;
        this._subState         = GolemBossSubStates.Idle;
    }
    private IEnumerator _IdlePhase3()
    {
        this._currentSubStateCoroutine = GolemBossSubStates.Idle;
        yield return(new WaitForSeconds(this.idleCicleDuration));

        if (this._state == GolemBossStates.Phase3)
        {
            switch (this._previousSubState)
            {
            case GolemBossSubStates.SmashLeft:
                this._subState = GolemBossSubStates.SmashRight;
                break;

            case GolemBossSubStates.Idle:
            case GolemBossSubStates.SmashRight:
            default:
                this._subState = GolemBossSubStates.SmashLeft;
                break;
            }
            this._previousSubState = GolemBossSubStates.Idle;
        }
    }