// Start is called before the first frame update void Start() { Time.timeScale = 1f; mGameStartTime = Time.time; mCurrentStateStartTime = Time.time; mNextTransitionTime = Time.time + 1; EnemyPuppet enemy = Instantiate(mEnemy, new Vector3(1, 0, 0), Quaternion.identity); enemies.Add(enemy); }
private void handleAddingEnemy(float time) { int totalEnemies = enemies.Count; float angle = 360f / totalEnemies; for (int i = 0; i < enemies.Count; i++) { EnemyPuppet enemy = enemies[i]; enemy.SetTargetAngle(angle * i, time); enemy.FireBulletRate(0); } }
private void transitionToNextstate() { if (mState == STATE.IDLE) { if (Time.time - mGameStartTime > PHASE_2_START_TIME && enemies.Count == 1) { PlayGamesPlatform.Instance.ReportProgress("CgkIvanrz-kPEAIQBA", 100.0f, res => { }); mState = STATE.ADDING_ENEMY; mNextTransitionTime = Time.time + 3; } else if (Time.time - mGameStartTime > PHASE_3_START_TIME && enemies.Count == 2) { PlayGamesPlatform.Instance.ReportProgress("CgkIvanrz-kPEAIQBQ", 100.0f, res => { }); mState = STATE.ADDING_ENEMY; mNextTransitionTime = Time.time + 3; } else if (Time.time - mGameStartTime > PHASE_4_START_TIME && enemies.Count == 3) { PlayGamesPlatform.Instance.ReportProgress("CgkIvanrz-kPEAIQBg", 100.0f, res => { }); mState = STATE.ADDING_ENEMY; mNextTransitionTime = Time.time + 3; } else if (Time.time - mGameStartTime > PHASE_5_START_TIME && enemies.Count == 4) { PlayGamesPlatform.Instance.ReportProgress("CgkIvanrz-kPEAIQBw", 100.0f, res => { }); mState = STATE.ADDING_ENEMY; mNextTransitionTime = Time.time + 3; } else if (Time.time - mGameStartTime > PHASE_6_START_TIME && enemies.Count == 5) { PlayGamesPlatform.Instance.ReportProgress("CgkIvanrz-kPEAIQCA", 100.0f, res => { }); mState = STATE.ADDING_ENEMY; mNextTransitionTime = Time.time + 3; } else if (Time.time - mGameStartTime > PHASE_7_START_TIME && enemies.Count == 6) { PlayGamesPlatform.Instance.ReportProgress("CgkIvanrz-kPEAIQCQ", 100.0f, res => { }); mState = STATE.ADDING_ENEMY; mNextTransitionTime = Time.time + 3; } else if (Time.time - mGameStartTime > PHASE_8_START_TIME && enemies.Count == 7) { PlayGamesPlatform.Instance.ReportProgress("CgkIvanrz-kPEAIQCg", 100.0f, res => { }); mState = STATE.ADDING_ENEMY; mNextTransitionTime = Time.time + 3; } else if (enemies.Count == 1) { transitionToNextSingleState(); } else if (enemies.Count == 2) { transitionToNextFirstPhaseDoubleState(); } else if (enemies.Count == 3) { transitionToNextFirstPhaseThirdState(); } else if (enemies.Count == 4) { transitionToNextFirstPhaseFourthState(); } else if (enemies.Count == 5) { transitionToNextFirstPhaseFifthState(); } else if (enemies.Count == 6) { transitionToNextFirstPhaseSixthState(); } else if (enemies.Count == 7) { transitionToNextFirstPhaseSeventhState(); } else if (enemies.Count == 8) { transitionToNextFirstPhaseEighthState(); } } else if (mState == STATE.ADDING_ENEMY) { mState = STATE.IDLE; float transitionTime = Random.Range(1f, 2.5f); mNextTransitionTime = Time.time + transitionTime; EnemyPuppet enemy = Instantiate(mEnemy, new Vector3(1, 0, 0), Quaternion.identity); int totalEnemies = enemies.Count + 1; float angle = 360f / totalEnemies; enemy.OverrideAngle(360 - angle); enemies.Add(enemy); handleAddingEnemy(transitionTime); } else if (mState == STATE.SAME_DIRECTION_1 || mState == STATE.SAME_DIRECTION_3 || mState == STATE.DOUBLE_PATTERN_ACTION_2_1 || mState == STATE.TRIPLE_PATTERN_ACTION_3_1 || mState == STATE.TRIPLE_PATTERN_ACTION_3_3 || mState == STATE.TRIPLE_PATTERN_ACTION_3_5) { if (enemies.Count == 2) { transitionToNextSecondPhaseDoubleState(); } else if (enemies.Count == 3) { transitionToNextSecondPhaseThirdState(); } else if (enemies.Count == 4) { transitionToNextSecondPhaseFourthState(); } else if (enemies.Count == 5) { transitionToNextSecondPhaseFifthState(); } else if (enemies.Count == 6) { transitionToNextSecondPhaseSixthState(); } else if (enemies.Count == 7) { transitionToNextSecondPhaseSeventhState(); } else if (enemies.Count == 8) { transitionToNextSecondPhaseEigthState(); } } else { mState = STATE.IDLE; mNextTransitionTime = Time.time + Random.Range(0f, 1.5f / enemies.Count); } mCurrentStateStartTime = Time.time; }