protected override void Init()
    {
        move   = GetComponent <Boss4_Move>();
        action = GetComponent <Boss4_Action>();

        moveBase   = move;
        actionBase = action;

        foreach (Transform bodyPart in head.body)
        {
            Segment segment = bodyPart.GetComponent <Segment>();
            segment.SetController(this);
            segment.SetAction(action);
        }

        move.Init(head);
        action.Init(head);

        if (FlagManager.instance.easyMode)
        {
            EasyMode();
        }

        StartCoroutine(StartCycle());
    }
    public void Init(SnakeMovement head)
    {
        controller = GetComponent <Boss4_Controller>();
        move       = GetComponent <Boss4_Move>();

        this.head = head;
        player    = controller.player;

        SetAttackSpeed(attackSpeed);

        actionList.Add("DesperationMode");
        actionList.Add("Shoot");
        actionList.Add("LayBomb");
    }