private void updateControls()
        {
            WaveStackPanel.Children.Clear();

            for (int i = 0; i < gameLevel.Waves.Count; ++i)
            {
                MonsterWave wave = gameLevel.Waves[i];

                GameWavePresenterControl wavePresenter = new GameWavePresenterControl();
                WaveStackPanel.Children.Add(wavePresenter);
                wavePresenter.SetWave(wave);
            }
        }
        public static void CreateLevels()
        {
            #region Levels
            #region Level1
            {
                Level1 = new GameLevel("Newbie");

                MonsterWave wave1 = new MonsterWave(new RegularWaveStrategy(1500 / Game.Timer.Interval));
                wave1.AddMonsters(new SimpleMonster(new GameCell(3.0), 80, 5.0), 10);
                wave1.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave1.Info        = "1. Обычные монстры";

                MonsterWave wave2 = new MonsterWave(new GroupWaveStrategy());
                wave2.AddMonsters(new SimpleMonster(new GameCell(3.0), 80, 5.0), 7);
                wave2.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave2.Info        = "2. Группа монстров";

                MonsterWave wave3 = new MonsterWave(new RegularWaveStrategy(2000 / Game.Timer.Interval));
                wave3.AddMonsters(new ImmuneMonster(new GameCell(3.0), 150, 10, 3.0), 25);
                wave3.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave3.Info        = "3. Эти монстры устойчивы к заморозке";

                MonsterWave wave4 = new MonsterWave(new RegularWaveStrategy(5000 / Game.Timer.Interval));
                wave4.AddMonsters(new DarkMonster(new GameCell(2.0), 1000.0, 75.0, 10.0), 1);
                wave4.LinkedImage = new BitmapImage(new Uri("/images/monster4.png", UriKind.Relative));
                wave4.Info        = "4. Это - босс, у него много жизней";

                MonsterWave wave5 = new MonsterWave(new RegularWaveStrategy(1000 / Game.Timer.Interval));
                wave5.AddMonsters(new SimpleMonster(new GameCell(3.0), 200, 15), 15);
                wave5.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave5.Info        = "5. Усиленные монстры";

                MonsterWave wave6 = new MonsterWave(new RegularWaveStrategy(1000 / Game.Timer.Interval));
                wave6.AddMonsters(new ImmuneMonster(new GameCell(3.0), 300, 15, 4.0), 10);
                wave6.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave6.Info        = "6. Устойчивые усиленные монстры";

                MonsterWave wave7 = new MonsterWave(new RegularWaveStrategy(800 / Game.Timer.Interval));
                wave7.AddMonsters(new SimpleMonster(new GameCell(3.0), 350, 15), 30);
                wave7.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave7.Info        = "7. Большое нашествие";

                MonsterWave wave8 = new MonsterWave(new RegularWaveStrategy(5000 / Game.Timer.Interval));
                wave8.AddMonsters(new DarkMonster(new GameCell(2.0), 3000.0, 150.0, 30.0), 2);
                wave8.LinkedImage = new BitmapImage(new Uri("/images/monster4.png", UriKind.Relative));
                wave8.Info        = "8. Заключительная босс-волна";

                Level1.AddWave(wave1, 20);
                Level1.AddWave(wave2, 20);
                Level1.AddWave(wave3, 50);
                Level1.AddWave(wave4, 40);
                Level1.AddWave(wave5, 20);
                Level1.AddWave(wave6, 20);
                Level1.AddWave(wave7, 30);
                Level1.AddWave(wave8, 30);
            }
            #endregion
            #region Level2
            {
                Level2 = new GameLevel("Professional");

                MonsterWave wave1 = new MonsterWave(new RegularWaveStrategy(1000 / Game.Timer.Interval));
                wave1.AddMonsters(new SimpleMonster(new GameCell(3.0), 80, 8.0), 15);
                wave1.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave1.Info        = "1. Запасайтесь деньгами";

                MonsterWave wave2 = new MonsterWave(new RegularWaveStrategy(1800 / Game.Timer.Interval));
                wave2.AddMonsters(new ImmuneMonster(new GameCell(3.0), 120, 10.0), 10);
                wave2.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave2.Info        = "2. Готовтесь =)";

                MonsterWave wave3 = new MonsterWave(new GroupWaveStrategy());
                wave3.AddMonsters(new SimpleMonster(new GameCell(3.0), 100, 13.0, 2.0), 8);
                wave3.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave3.Info        = "3. Are you ready?";

                MonsterWave wave4 = new MonsterWave(new RegularWaveStrategy(3500 / Game.Timer.Interval));
                wave4.AddMonsters(new DarkMonster(new GameCell(3.0), 666, 50.0, 5.0), 5);
                wave4.LinkedImage = new BitmapImage(new Uri("/images/monster4.png", UriKind.Relative));
                wave4.Info        = "4. Волна боссов";

                MonsterWave wave5 = new MonsterWave(new RegularWaveStrategy(1000 / Game.Timer.Interval));
                wave5.AddMonsters(new ImmuneMonster(new GameCell(3.0), 150, 15.0, 4.0), 10);
                wave5.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave5.Info        = "5-я волна";

                MonsterWave wave6 = new MonsterWave(new RegularWaveStrategy(1000 / Game.Timer.Interval));
                wave6.AddMonsters(new ImmuneMonster(new GameCell(3.0), 200, 17.0, 7.0), 10);
                wave6.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave6.Info        = "6-я волна";

                MonsterWave wave7 = new MonsterWave(new RegularWaveStrategy(1000 / Game.Timer.Interval));
                wave7.AddMonsters(new ImmuneMonster(new GameCell(3.0), 250, 18.0, 10.0), 10);
                wave7.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave7.Info        = "7-я волна";

                MonsterWave wave8 = new MonsterWave(new RegularWaveStrategy(1000 / Game.Timer.Interval));
                wave8.AddMonsters(new ImmuneMonster(new GameCell(3.0), 300, 20.0, 9.0), 10);
                wave8.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave8.Info        = "8-я волна";

                MonsterWave wave9 = new MonsterWave(new RegularWaveStrategy(250 / Game.Timer.Interval));
                wave9.AddMonsters(new SimpleMonster(new GameCell(3.0), 300, 20.0, 9.0), 60);
                wave9.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave9.Info        = "9. БОЛЬШОЕ нашествие";

                MonsterWave wave10 = new MonsterWave(new GroupWaveStrategy());
                wave10.AddMonsters(new ImmuneMonster(new GameCell(3.0), 400, 15.0, 15.0), 30);
                wave10.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave10.Info        = "10. БОЛЬШАЯ группа монстров";

                MonsterWave wave11 = new MonsterWave(new RegularWaveStrategy(5000 / Game.Timer.Interval));
                wave11.AddMonsters(new DarkMonster(new GameCell(3.0), 10000, 100.0, 20.0), 5);
                wave11.LinkedImage = new BitmapImage(new Uri("/images/monster4.png", UriKind.Relative));
                wave11.Info        = "11. Несколько боссов";

                Level2.AddWave(wave1, 18);
                Level2.AddWave(wave2, 18);
                Level2.AddWave(wave3, 18);
                Level2.AddWave(wave4, 18);
                Level2.AddWave(wave5, 12);
                Level2.AddWave(wave6, 12);
                Level2.AddWave(wave7, 12);
                Level2.AddWave(wave8, 12);
                Level2.AddWave(wave9, 40);
                Level2.AddWave(wave10, 40);
                Level2.AddWave(wave11, 60);
            }
            #endregion
            #region Level3
            {
                Level3 = new GameLevel("Godlike");

                MonsterWave wave1 = new MonsterWave(new RegularWaveStrategy(1200 / Game.Timer.Interval));
                wave1.AddMonsters(new SimpleMonster(new GameCell(3.5), 80, 10.0), 10);
                wave1.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave1.Info        = "1-я волна";

                MonsterWave wave2 = new MonsterWave(new RegularWaveStrategy(1800 / Game.Timer.Interval));
                wave2.AddMonsters(new ImmuneMonster(new GameCell(4.0), 140, 12.0, 3.0), 10);
                wave2.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave2.Info        = "2-я волна";

                MonsterWave wave3 = new MonsterWave(new RegularWaveStrategy(150 / Game.Timer.Interval));
                wave3.AddMonsters(new SimpleMonster(new GameCell(3.5), 20, 15.0, 0.0), 30);
                wave3.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave3.Info        = "3. Нужна \"зелень\"? Держите!";

                MonsterWave wave4 = new MonsterWave(new RegularWaveStrategy(1500 / Game.Timer.Interval));
                wave4.AddMonsters(new ImmuneMonster(new GameCell(3.0), 150, 20.0, 10.0), 10);
                wave4.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave4.Info        = "4-я волна";

                MonsterWave wave5 = new MonsterWave(new RegularWaveStrategy(1500 / Game.Timer.Interval));
                wave5.AddMonsters(new ImmuneMonster(new GameCell(3.0), 200, 25.0, 15.0), 10);
                wave5.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave5.Info        = "5-я волна";

                MonsterWave wave6 = new MonsterWave(new RegularWaveStrategy(1500 / Game.Timer.Interval));
                wave6.AddMonsters(new ImmuneMonster(new GameCell(3.0), 250, 30.0, 20.0), 10);
                wave6.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave6.Info        = "6-я волна";

                MonsterWave wave7 = new MonsterWave(new RegularWaveStrategy(1500 / Game.Timer.Interval));
                wave7.AddMonsters(new ImmuneMonster(new GameCell(3.0), 300, 35.0, 25.0), 10);
                wave7.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave7.Info        = "7-я волна";

                MonsterWave wave8 = new MonsterWave(new RegularWaveStrategy(1500 / Game.Timer.Interval));
                wave8.AddMonsters(new ImmuneMonster(new GameCell(3.0), 350, 40.0, 30.0), 10);
                wave8.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave8.Info        = "8-я волна";

                MonsterWave wave9 = new MonsterWave(new RegularWaveStrategy(4000 / Game.Timer.Interval));
                wave9.AddMonsters(new DarkMonster(new GameCell(2.5), 5000, 500.0, 40.0), 3);
                wave9.LinkedImage = new BitmapImage(new Uri("/images/monster4.png", UriKind.Relative));
                wave9.Info        = "9-я волна";

                MonsterWave wave10 = new MonsterWave(new RegularWaveStrategy(300 / Game.Timer.Interval));
                wave10.AddMonsters(new SimpleMonster(new GameCell(3.0), 300, 15, 10.0), 100);
                wave10.LinkedImage = new BitmapImage(new Uri("/images/monster2.png", UriKind.Relative));
                wave10.Info        = "10. БОЛЬШОЕ нашествие";

                MonsterWave wave11 = new MonsterWave(new GroupWaveStrategy());
                wave11.AddMonsters(new ImmuneMonster(new GameCell(3.0), 360, 15, 20.0), 100);
                wave11.LinkedImage = new BitmapImage(new Uri("/images/monster3.png", UriKind.Relative));
                wave11.Info        = "11. ПОСЛЕДНЕЕ испытание";

                Level3.AddWave(wave1, 20);
                Level3.AddWave(wave2, 20);
                Level3.AddWave(wave3, 20);
                Level3.AddWave(wave4, 20);
                Level3.AddWave(wave5, 20);
                Level3.AddWave(wave6, 20);
                Level3.AddWave(wave7, 20);
                Level3.AddWave(wave8, 20);
                Level3.AddWave(wave9, 50);
                Level3.AddWave(wave10, 60);
                Level3.AddWave(wave11, 30);
            }
            #endregion
            #endregion
            #region MainGameLevelList
            MainGameLevelList.Clear();
            MainGameLevelList.Add(Level1);
            MainGameLevelList.Add(Level2);
            MainGameLevelList.Add(Level3);
            #endregion
        }
 public void SetWave(MonsterWave wave)
 {
     monsterWave = wave;
     updateControls();
 }
Exemplo n.º 4
0
 /// <summary>
 /// Добавить волну в уровень
 /// </summary>
 public void AddWave(MonsterWave wave, double period = 10.0)
 {
     Waves.Add(wave);
     WaveTime.Add(period);
 }