Ejemplo n.º 1
0
    // 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);
    }
Ejemplo n.º 2
0
    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);
        }
    }
Ejemplo n.º 3
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;
    }