protected override IEnumerator <int> ShootBehavior(params float[] parameters) { switch (Phase) { case 1: yield return(20); Patterns.ButterflyCircleShot(1); yield return(120); Patterns.Shoot3Circles(); yield return(120); yield return(20); Patterns.ButterflyCircleShot(-1); yield return(120); Patterns.Shoot3Circles(); yield return(120); break; case 2: yield return(120); Patterns.PlayerPrison(); yield return(220); StartScript(Patterns.AntiSafeSpotBarrage, 0); StartScript(Patterns.AntiSafeSpotBarrage, 5); StartScript(Patterns.AntiSafeSpotBarrage, -5); StartScript(Patterns.AntiSafeSpotBarrage, -10); StartScript(Patterns.AntiSafeSpotBarrage, 10); StartScript(Patterns.AntiSafeSpotBarrage, -15); StartScript(Patterns.AntiSafeSpotBarrage, 15); StartScript(Patterns.AntiSafeSpotBarrage, -20); StartScript(Patterns.AntiSafeSpotBarrage, 20); yield return(400); break; case 3: Patterns.Phase3Shot(); yield return(30); break; case 4: if (_frame2 == 120) { Patterns.Phase4Frame2120Shot(_angle); _frame2 = 115; } if (_frame3 == 200) { Patterns.Phase4Frame3200Shot(); _frame3 = 50; } break; case 5: yield return(20); Patterns.ButterflyBarrage2(1); Patterns.ButterflyBarrage2(-1); yield return(120); Patterns.ButterflyBarrage(); yield return(120); break; case 6: StartScript(Patterns.BulletFlower, 1); yield return(220); StartScript(Patterns.Pentagram, -1); yield return(400); StartScript(Patterns.BulletFlower, -1); yield return(220); StartScript(Patterns.Pentagram, 1); yield return(400); break; case 7: yield return(10); StartScript(Patterns.CircleBarrage, 1); StartScript(Patterns.CircleBarrage, 2); yield return(50); StartScript(Patterns.LineBarrage); yield return(70); break; case 8: break; } }