//==========================================フェーズ1===================================
    public void Phase1(NemunoBGMTimeKeeper _BGM)
    {
        //フェーズ開始時の処理
        if (start_Phase[0])
        {
            start_Phase[0] = false;
            _controller.Play_Battle_Effect();
        }

        if (!can_Attack)
        {
            return;
        }

        //BGMのタイミングによって攻撃を変える
        switch (_BGM.Get_Now_Melody())
        {
        case NemunoBGMTimeKeeper.Melody.A:
            Phase1_Melody_A(10);
            break;

        case NemunoBGMTimeKeeper.Melody.B:
            Phase1_Melody_B(18);
            break;

        case NemunoBGMTimeKeeper.Melody.main:
            StartCoroutine("Phase1_Melody_Main_Cor", _BGM);
            can_Attack = false;
            break;
        }
    }
    public void Phase2(NemunoBGMTimeKeeper _BGM)
    {
        //フェーズ開始時の処理
        if (start_Phase[1])
        {
            Stop_Phase1();
            Raise_Move_Speed();
            start_Phase[1] = false;
            can_Attack     = false;
            StartCoroutine("Phase2_Launch_Attack");
        }

        if (!can_Attack)
        {
            return;
        }

        //BGMのタイミングによって攻撃を変える
        switch (_BGM.Get_Now_Melody())
        {
        case NemunoBGMTimeKeeper.Melody.A:
            Phase1_Melody_A(25);
            break;

        case NemunoBGMTimeKeeper.Melody.B:
            Phase1_Melody_B(50);
            break;

        case NemunoBGMTimeKeeper.Melody.main:
            StartCoroutine("Phase2_Melody_Main_Cor", _BGM);
            can_Attack = false;
            break;
        }
    }
示例#3
0
 new void Awake()
 {
     base.Awake();
     //取得
     _anim     = GetComponent <Animator>();
     _rigid    = GetComponent <Rigidbody2D>();
     _collider = GetComponent <CapsuleCollider2D>();
     _attack   = GetComponent <NemunoAttack>();
     _BGM      = new NemunoBGMTimeKeeper();
 }
 private void Awake()
 {
     //取得
     _anim            = GetComponent <Animator>();
     _rigid           = GetComponent <Rigidbody2D>();
     _collider        = GetComponent <CapsuleCollider2D>();
     _boss_Controller = GetComponent <BossEnemy>();
     _attack          = GetComponent <NemunoAttack>();
     _BGM             = new NemunoBGMTimeKeeper();
 }
    //フェーズ2サビ
    private IEnumerator Phase2_Melody_Main_Cor(NemunoBGMTimeKeeper _BGM)
    {
        int direction = transform.localScale.x.CompareTo(0);

        if (Mathf.Approximately(direction, 0))
        {
            direction = 1;
        }

        //大ジャンプ
        _attack_Func.StartCoroutine("High_Jump_Cor", direction);
        yield return(new WaitUntil(_attack_Func.Is_End_Move));

        //サビ開始までの時間を計算
        float wait_Time = _BGM.BGM_Time_Keeper[4] - (Time.unscaledTime - _BGM.Get_BGM_Launch_Time()) % _BGM.BGM_Time_Keeper[5];

        if (wait_Time < 0 || wait_Time > 10)
        {
            wait_Time = 2.0f;
        }

        //溜め開始
        _controller.Play_Charge_Effect(wait_Time);

        //移動
        _controller.Change_Animation("ShootBool");
        _controller.Change_Fly_Parameter();
        _move_Two_Points.Start_Move(new Vector3(160f * -direction, 8f), 4);
        yield return(new WaitForSeconds(1.74f));

        yield return(new WaitForSeconds(wait_Time - 1.5f));

        //弾幕攻撃
        _shoot.Start_Knife_Shoot();
        yield return(new WaitForSeconds(6.3f));

        _controller.Play_Burst_Effect();
        UsualSoundManager.Instance.Play_Shoot_Sound();
        yield return(new WaitForSeconds(1.74f));

        _controller.Change_Land_Paramter();
        _controller.Change_Animation("IdleBool");
        yield return(new WaitForSeconds(4.2f));

        can_Attack = true;
    }
    //サビ
    private IEnumerator Phase1_Melody_Main_Cor(NemunoBGMTimeKeeper _BGM)
    {
        //弾幕前溜め
        _attack_Func.StartCoroutine("High_Jump_Cor", -1);
        yield return(new WaitUntil(_attack_Func.Is_End_Move));

        //サビ開始までの時間を計算
        float wait_Time = _BGM.BGM_Time_Keeper[4] - (Time.unscaledTime - _BGM.Get_BGM_Launch_Time()) % _BGM.BGM_Time_Keeper[5];

        if (wait_Time < 0 || wait_Time > 10)
        {
            wait_Time = 2.0f;
        }

        transform.localScale = new Vector3(1, 1, 1);
        _controller.Play_Charge_Effect(wait_Time);

        //移動
        _controller.Change_Animation("ShootBool");
        _controller.Change_Fly_Parameter();
        yield return(new WaitForSecondsRealtime(1.03f));

        _move_Two_Points.Start_Move(new Vector3(160f, 8f), 4);
        yield return(new WaitForSeconds(wait_Time - 1.0f));

        //弾幕攻撃
        _controller.Play_Burst_Effect();
        _shoot.Start_Kunai_Shoot();
        UsualSoundManager.Instance.Play_Shoot_Sound();
        yield return(new WaitForSeconds(10.51f));

        if (_BGM.Get_Now_Melody() != NemunoBGMTimeKeeper.Melody.main)
        {
            _controller.Change_Land_Paramter();
            _controller.Change_Animation("IdleBool");
            yield return(new WaitForSeconds(1.38f));
        }

        can_Attack = true;
    }