/// <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; }
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; }
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; }
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; }
/// <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 }
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)); }
// 初始所有關卡 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) ); }