private void BossMissile() { if (bossPatternState == BossPatternState.Shuffle) { bossPatternState = BossPatternState.Selected; } if (bossPatternState == BossPatternState.Selected) { bossPatternName = (BossPatternName)RandomPatternSelect(); missileSaveStack = Random.Range(missileStackMin, missileStackMax); //Debug.Log("Stack is : " + missileSaveStack); if (alwaysThisPattern != BossPatternName.StateCount) { bossPatternName = alwaysThisPattern; } if (bossPatternName == BossPatternName.Vertical) { verticalPattern = (VerticalPattern)Random.Range(0, (int)VerticalPattern.StateCount); } if (bossPatternName == BossPatternName.LineFall) { speedLF = Random.Range(speedMinLF, speedMaxLF); player.InitLineFall(true); isLineFallAlive = true; } else { player.InitLineFall(false); } if (bossPatternName == BossPatternName.SlowRailGun) { speedSRG = Random.Range(speedMinSRG, speedMaxSRG); missileSaveStack = 1; isSRGAlive = true; } //Debug.Log("Selected : " + bossPatternName); bossPatternState = BossPatternState.Launch; } if (bossPatternState == BossPatternState.Launch) { ShotMissile(); } if (bossPatternState == BossPatternState.Cooldown) { cooldownTimerCheck += Time.deltaTime; if ((cooldownTimer <= cooldownTimerCheck) && (isLineFallAlive == false || isSRGAlive == false)) { bossPatternState = BossPatternState.Shuffle; cooldownTimerCheck = 0; } } }