/// <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; }
/// <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 }
public BossStageHandler(IStageScore StateScore, IStageData StageData) : base(StateScore, 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)); }
// 設定分數及關卡資料 public NormalStageHandler(IStageScore StateScore, IStageData StageData) { m_StageScore = StateScore; m_StatgeData = StageData; }
// 設定分數及關卡資料 public NormalStageHandler(IStageScore StateScore, IStageData StageData ) { m_StageScore = StateScore; m_StatgeData = StageData; }
public BossStageHandler(IStageScore StateScore, IStageData StageData ):base(StateScore,StageData) {}
protected NormalStageHandler(IStageScore statgeScore, IStageData stageData) { m_StageData = stageData; m_StageScore = statgeScore; }