예제 #1
0
    /// <summary>
    /// 通过传过来的关卡初始化(单个)
    /// </summary>
    /// <param name="info"></param>
    public void InitStage(StageInfo info)
    {
        /***********建议读表i***********/
        if (m_RootStageHandler != null)
        {
            return;
        }

        NormalStageData StageData  = null; // 生成的怪物的Enemy
        IStageScore     StageScore = null; // 通关的成绩
        IStageHandler   NewStage   = null;

        ////1
        StageData = new NormalStageData(1, GetSpawnPosition());
        StageData.AddStageData(ENUM_Enemy.Keraha, 1);
        StageScore = new StageScoreEnemyKilledCount(1, this);
        NewStage   = new NormalStageHandler(StageScore, StageData);

        // 设置初始关卡
        m_RootStageHandler = NewStage;

        //指定第一个关卡
        m_NowStageHandler = m_RootStageHandler;

        level = 0;
    }
예제 #2
0
    private void InitStageChain()
    {
        int lv = 1;
        NormalStageHandler handler1 = new NormalStageHandler(this, lv++, 3, EnemyType.Elf, WeaponType.Gun, 1, GetRandomPos());
        NormalStageHandler handler2 = new NormalStageHandler(this, lv++, 6, EnemyType.Elf, WeaponType.Rifle, 3, GetRandomPos());
        NormalStageHandler handler3 = new NormalStageHandler(this, lv++, 9, EnemyType.Elf, WeaponType.Rocket, 3, GetRandomPos());
        NormalStageHandler handler4 = new NormalStageHandler(this, lv++, 13, EnemyType.Ogre, WeaponType.Gun, 4, GetRandomPos());
        NormalStageHandler handler5 = new NormalStageHandler(this, lv++, 17, EnemyType.Ogre, WeaponType.Rifle, 4, GetRandomPos());
        NormalStageHandler handler6 = new NormalStageHandler(this, lv++, 21, EnemyType.Ogre, WeaponType.Rocket, 4, GetRandomPos());
        NormalStageHandler handler7 = new NormalStageHandler(this, lv++, 26, EnemyType.Troll, WeaponType.Gun, 5, GetRandomPos());
        NormalStageHandler handler8 = new NormalStageHandler(this, lv++, 31, EnemyType.Troll, WeaponType.Rocket, 5, GetRandomPos());
        NormalStageHandler handler9 = new NormalStageHandler(this, lv++, 36, EnemyType.Troll, WeaponType.Rocket, 5, GetRandomPos());


        handler1.SetNextHandler(handler2)
        .SetNextHandler(handler3)
        .SetNextHandler(handler4)
        .SetNextHandler(handler5)
        .SetNextHandler(handler6)
        .SetNextHandler(handler7)
        .SetNextHandler(handler8)
        .SetNextHandler(handler9);

        m_RootHandler = handler1;
    }
예제 #3
0
    private void InitStageChain()
    {
        int tempLv = 1;

        StageHandler handler1 = new NormalStageHandler(this, tempLv++, 3, typeof(EnemyElf), typeof(WeaponGun), 3,
                                                       spawnPosList[Random.Range(0, spawnPosList.Count - 1)]);
        StageHandler handler2 = new NormalStageHandler(this, tempLv++, 6, typeof(EnemyElf), typeof(WeaponRifle), 3,
                                                       spawnPosList[Random.Range(0, spawnPosList.Count - 1)]);
        StageHandler handler3 = new NormalStageHandler(this, tempLv++, 9, typeof(EnemyElf), typeof(WeaponRocket), 3,
                                                       spawnPosList[Random.Range(0, spawnPosList.Count - 1)]);
        StageHandler handler4 = new NormalStageHandler(this, tempLv++, 13, typeof(EnemyOgre), typeof(WeaponGun), 4,
                                                       spawnPosList[Random.Range(0, spawnPosList.Count - 1)]);
        StageHandler handler5 = new NormalStageHandler(this, tempLv++, 17, typeof(EnemyOgre), typeof(WeaponRifle), 4,
                                                       spawnPosList[Random.Range(0, spawnPosList.Count - 1)]);
        StageHandler handler6 = new NormalStageHandler(this, tempLv++, 21, typeof(EnemyOgre), typeof(WeaponRocket), 4,
                                                       spawnPosList[Random.Range(0, spawnPosList.Count - 1)]);
        StageHandler handler7 = new NormalStageHandler(this, tempLv++, 26, typeof(EnemyTroll), typeof(WeaponGun), 5,
                                                       spawnPosList[Random.Range(0, spawnPosList.Count - 1)]);
        StageHandler handler8 = new NormalStageHandler(this, tempLv++, 31, typeof(EnemyTroll), typeof(WeaponRifle), 5,
                                                       spawnPosList[Random.Range(0, spawnPosList.Count - 1)]);
        StageHandler handler9 = new NormalStageHandler(this, tempLv++, 36, typeof(EnemyTroll), typeof(WeaponRocket), 5,
                                                       spawnPosList[Random.Range(0, spawnPosList.Count - 1)]);

        handler1.SetNext(handler2)
        .SetNext(handler3)
        .SetNext(handler4)
        .SetNext(handler5)
        .SetNext(handler6)
        .SetNext(handler7)
        .SetNext(handler8)
        .SetNext(handler9);

        rootHandler = handler1;
    }
예제 #4
0
    private void InitStageChain()
    {
        int lv = 1;
        NormalStageHandler hanlder1 = new NormalStageHandler(lv++, EnemyType.Elf, WeaponType.Gun, 4, GetRandomPos(), lv * 2, this);
        NormalStageHandler hanlder2 = new NormalStageHandler(lv++, EnemyType.Elf, WeaponType.Rifle, 8, GetRandomPos(), lv * 2, this);
        NormalStageHandler hanlder3 = new NormalStageHandler(lv++, EnemyType.Elf, WeaponType.Rocket, 16, GetRandomPos(), lv * 2, this);
        NormalStageHandler hanlder4 = new NormalStageHandler(lv++, EnemyType.Ogre, WeaponType.Gun, 32, GetRandomPos(), lv * 2, this);
        NormalStageHandler hanlder5 = new NormalStageHandler(lv++, EnemyType.Ogre, WeaponType.Rifle, 4, GetRandomPos(), lv * 2, this);
        NormalStageHandler hanlder6 = new NormalStageHandler(lv++, EnemyType.Ogre, WeaponType.Rocket, 4, GetRandomPos(), lv * 2, this);
        NormalStageHandler hanlder7 = new NormalStageHandler(lv++, EnemyType.Troll, WeaponType.Gun, 5, GetRandomPos(), lv * 2, this);
        NormalStageHandler hanlder8 = new NormalStageHandler(lv++, EnemyType.Troll, WeaponType.Rifle, 5, GetRandomPos(), lv * 2, this);
        NormalStageHandler hanlder9 = new NormalStageHandler(lv++, EnemyType.Troll, WeaponType.Rocket, 5, GetRandomPos(), lv * 2, this);

        hanlder1.SetNextHandler(hanlder2).SetNextHandler(hanlder3).SetNextHandler(hanlder4)
        .SetNextHandler(hanlder5).SetNextHandler(hanlder6).SetNextHandler(hanlder7)
        .SetNextHandler(hanlder8).SetNextHandler(hanlder9);
        mRootHandler = hanlder1;
    }
예제 #5
0
    /// <summary>
    /// 通过传过来的关卡初始化(列表)
    /// </summary>
    /// <param name="info"></param>
    public void InitStage(List <StageInfo> infos)
    {
        #region
        /***********建议读表i***********/
        if (m_RootStageHandler != null)
        {
            return;
        }

        NormalStageData StageData  = null; // 生成的怪物的Enemy
        IStageScore     StageScore = null; // 通关的成绩
        IStageHandler   NewStage   = null;

        ////1
        StageData = new NormalStageData(1, GetSpawnPosition());
        StageData.AddStageData(ENUM_Enemy.Keraha, 1);
        StageScore = new StageScoreEnemyKilledCount(1, this);
        NewStage   = new NormalStageHandler(StageScore, StageData);

        // 设置初始关卡
        m_RootStageHandler = NewStage;

        ////2
        //StageData = new NormalStageData(2, GetSpawnPosition(), AttackPosition);
        //StageData.AddStageData(ENUM_Enemy.Keraha, 3);
        //StageScore = new StageScoreEnemyKilledCount(6, this);
        //NewStage = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));


        ////3
        //StageData = new NormalStageData(3, GetSpawnPosition(), AttackPosition);
        //StageData.AddStageData(ENUM_Enemy.Keraha, 3);
        //StageScore = new StageScoreEnemyKilledCount(9, this);
        //NewStage = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));
        #endregion
    }
예제 #6
0
    private void InitStageChain()
    {
        int lv = 1;
        NormalStageHandler handler1 = new NormalStageHandler(this, lv++, 3, EnemyType.Elf, WeaponType.Gun, 3, GetRandomPos());
        NormalStageHandler handler2 = new NormalStageHandler(this, lv++, 6, EnemyType.Elf, WeaponType.Rifle, 3, GetRandomPos());
        NormalStageHandler handler3 = new NormalStageHandler(this, lv++, 9, EnemyType.Elf, WeaponType.Rocket, 3, GetRandomPos());
        NormalStageHandler handler4 = new NormalStageHandler(this, lv++, 14, EnemyType.Ogre, WeaponType.Gun, 4, GetRandomPos());
        NormalStageHandler handler5 = new NormalStageHandler(this, lv++, 18, EnemyType.Ogre, WeaponType.Rifle, 4, GetRandomPos());
        NormalStageHandler handler6 = new NormalStageHandler(this, lv++, 22, EnemyType.Ogre, WeaponType.Rocket, 4, GetRandomPos());
        NormalStageHandler handler7 = new NormalStageHandler(this, lv++, 27, EnemyType.Troll, WeaponType.Gun, 5, GetRandomPos());
        NormalStageHandler handler8 = new NormalStageHandler(this, lv++, 32, EnemyType.Troll, WeaponType.Rifle, 5, GetRandomPos());
        NormalStageHandler handler9 = new NormalStageHandler(this, lv++, 37, EnemyType.Troll, WeaponType.Rocket, 5, GetRandomPos());

        handler1.nextHandler = handler2;
        handler2.nextHandler = handler3;
        handler3.nextHandler = handler4;
        handler4.nextHandler = handler5;
        handler5.nextHandler = handler6;
        handler6.nextHandler = handler7;
        handler7.nextHandler = handler8;
        handler8.nextHandler = handler9;

        mRootHandler = handler1;
    }
    // 初始所有關卡
    private void InitializeStageData()
    {
        if (m_RootStageHandler != null)
        {
            return;
        }

        // 參考點
        Vector3 AttackPosition = GetAttackPosition();

        NormalStageData StageData  = null;     // 關卡要產生的Enemy
        IStageScore     StageScore = null;     // 關卡過關資訊
        IStageHandler   NewStage   = null;

        // 第1關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Elf, ENUM_Weapon.Gun, 3);
        StageScore = new StageScoreEnemyKilledCount(3, this);
        NewStage   = new NormalStageHandler(StageScore, StageData);

        // 設定為起始關卡
        m_RootStageHandler = NewStage;

        // 第2關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Elf, ENUM_Weapon.Rifle, 3);
        StageScore = new StageScoreEnemyKilledCount(6, this);
        NewStage   = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));

        // 第3關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Elf, ENUM_Weapon.Rocket, 3);
        StageScore = new StageScoreEnemyKilledCount(9, this);
        NewStage   = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));

        // 第4關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Troll, ENUM_Weapon.Gun, 3);
        StageScore = new StageScoreEnemyKilledCount(12, this);
        NewStage   = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));

        // 第5關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Troll, ENUM_Weapon.Rifle, 3);
        StageScore = new StageScoreEnemyKilledCount(15, this);
        NewStage   = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));

        // 第5關:Boss關卡

        /*StageData     = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
         * StageData.AddStageData( ENUM_Enemy.Ogre, ENUM_Weapon.Rocket,3);
         * StageScore   = new StageScoreEnemyKilledCount(13, this);
         * NewStage = NewStage.SetNextHandler( new BossStageHandler( StageScore, StageData) );*/

        // 第6關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Troll, ENUM_Weapon.Rocket, 3);
        StageScore = new StageScoreEnemyKilledCount(18, this);
        NewStage   = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));

        // 第7關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Ogre, ENUM_Weapon.Gun, 3);
        StageScore = new StageScoreEnemyKilledCount(21, this);
        NewStage   = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));

        // 第8關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Ogre, ENUM_Weapon.Rifle, 3);
        StageScore = new StageScoreEnemyKilledCount(24, this);
        NewStage   = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));

        // 第9關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Ogre, ENUM_Weapon.Rocket, 3);
        StageScore = new StageScoreEnemyKilledCount(27, this);
        NewStage   = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));

        // 第10關
        StageData = new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
        StageData.AddStageData(ENUM_Enemy.Elf, ENUM_Weapon.Rocket, 3);
        StageData.AddStageData(ENUM_Enemy.Troll, ENUM_Weapon.Rocket, 3);
        StageData.AddStageData(ENUM_Enemy.Ogre, ENUM_Weapon.Rocket, 3);
        StageScore = new StageScoreEnemyKilledCount(30, this);
        NewStage   = NewStage.SetNextHandler(new NormalStageHandler(StageScore, StageData));
    }
예제 #8
0
	// 初始所有關卡
	private void InitializeStageData()
	{
		if( m_RootStageHandler!=null)
			return ;

		// 參考點
		Vector3 AttackPosition = GetAttackPosition();

		NormalStageData StageData = null; // 關卡要產生的Enemy
		IStageScore StageScore = null; // 關卡過關資訊
		IStageHandler NewStage = null;

		// 第1關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition );
		StageData.AddStageData( ENUM_Enemy.Elf, ENUM_Weapon.Gun, 3); 
		StageScore 	= new StageScoreEnemyKilledCount(3, this);
		NewStage = new NormalStageHandler(StageScore, StageData );

		// 設定為起始關卡
		m_RootStageHandler = NewStage;

		// 第2關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Elf, ENUM_Weapon.Rifle,3); 
		StageScore 	= new StageScoreEnemyKilledCount(6, this);
		NewStage = NewStage.SetNextHandler( new NormalStageHandler( StageScore, StageData) );

		// 第3關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Elf, ENUM_Weapon.Rocket,3); 
		StageScore 	= new StageScoreEnemyKilledCount(9, this);
		NewStage = NewStage.SetNextHandler( new NormalStageHandler( StageScore, StageData) );

		// 第4關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Troll, ENUM_Weapon.Gun,3); 
		StageScore 	= new StageScoreEnemyKilledCount(12, this);
		NewStage = NewStage.SetNextHandler( new NormalStageHandler( StageScore, StageData) );

		// 第5關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Troll, ENUM_Weapon.Rifle,3); 
		StageScore 	= new StageScoreEnemyKilledCount(15, this);
		NewStage = NewStage.SetNextHandler( new NormalStageHandler( StageScore, StageData) );

		// 第5關:Boss關卡
		/*StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Ogre, ENUM_Weapon.Rocket,3); 
		StageScore 	= new StageScoreEnemyKilledCount(13, this);
		NewStage = NewStage.SetNextHandler( new BossStageHandler( StageScore, StageData) );*/

		// 第6關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Troll, ENUM_Weapon.Rocket,3); 
		StageScore 	= new StageScoreEnemyKilledCount(18, this);
		NewStage = NewStage.SetNextHandler( new NormalStageHandler( StageScore, StageData) );

		// 第7關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Ogre, ENUM_Weapon.Gun,3); 
		StageScore 	= new StageScoreEnemyKilledCount(21, this);
		NewStage = NewStage.SetNextHandler( new NormalStageHandler( StageScore, StageData) );
		
		// 第8關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Ogre, ENUM_Weapon.Rifle,3); 
		StageScore 	= new StageScoreEnemyKilledCount(24, this);
		NewStage = NewStage.SetNextHandler( new NormalStageHandler( StageScore, StageData) );
		
		// 第9關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Ogre, ENUM_Weapon.Rocket,3); 
		StageScore 	= new StageScoreEnemyKilledCount(27, this);
		NewStage = NewStage.SetNextHandler( new NormalStageHandler( StageScore, StageData) );

		// 第10關
		StageData 	= new NormalStageData(3f, GetSpawnPosition(), AttackPosition);
		StageData.AddStageData( ENUM_Enemy.Elf, ENUM_Weapon.Rocket,3); 
		StageData.AddStageData( ENUM_Enemy.Troll, ENUM_Weapon.Rocket,3); 
		StageData.AddStageData( ENUM_Enemy.Ogre, ENUM_Weapon.Rocket,3); 
		StageScore 	= new StageScoreEnemyKilledCount(30, this);
		NewStage = NewStage.SetNextHandler( new NormalStageHandler( StageScore, StageData) );
	}