public Dekorator(iEnemyShip enemyShip) { this.enemyShip = enemyShip; this.armor = enemyShip.GetArmor(); this.gunDmg = enemyShip.GetGunDmg(); this.shipspeed = enemyShip.GetSpeed(); this.life = enemyShip.GetLifes(); }
// Konstruktor pobiera potrzebne dane public ThreadShipMissileControl(iEnemyShip enemyShip, int xx, int yy, Canvas map, PlayerShip player) { this.player = player; missileCounter = 1; this.map = map; x = xx; y = yy; this.enemyShip = enemyShip; this.isMovingRigth = true; }
public void RunGame() { while (true) { if (Globals.shipCounter == 0) { Globals.mapCount++; if (Globals.mapCount > 2) { Application.Current.Dispatcher.Invoke((Action)(() => { mapa.Visibility = Visibility.Hidden; })); } for (int i = 0; i < Globals.mapCount; i++) { shipLottery = random.Next(1, 6);//wybierz losowy statek do stworzenia Application.Current.Dispatcher.Invoke((Action)(() => { if (shipLottery == 1) { iEnemyShip enemy = factory.GetShip(mapa, "Cruiser"); ThreadShipMissileControl tws = new ThreadShipMissileControl(enemy, random.Next(20, 400), random.Next(20, 400), mapa, player); Thread t = new Thread(new ThreadStart(tws.ThreadProc)); t.Start(); } if (shipLottery == 2) { iEnemyShip enemy2 = new UpgradeSpeed(factory.GetShip(mapa, "Destroyer")); ThreadShipMissileControl tws2 = new ThreadShipMissileControl(enemy2, random.Next(20, 400), random.Next(20, 400), mapa, player); Thread t2 = new Thread(new ThreadStart(tws2.ThreadProc)); t2.Start(); } if (shipLottery == 3) { iEnemyShip enemy = new UpgradeLife(factory.GetShip(mapa, "Cruiser")); ThreadShipMissileControl tws = new ThreadShipMissileControl(enemy, random.Next(20, 400), random.Next(20, 400), mapa, player); Thread t = new Thread(new ThreadStart(tws.ThreadProc)); t.Start(); } if (shipLottery == 4) { iEnemyShip enemy = new UpgradeGun(factory.GetShip(mapa, "Cruiser")); ThreadShipMissileControl tws = new ThreadShipMissileControl(enemy, random.Next(20, 400), random.Next(20, 400), mapa, player); Thread t = new Thread(new ThreadStart(tws.ThreadProc)); t.Start(); } if (shipLottery == 5) { iEnemyShip enemy = new UpgradeGun(factory.GetShip(mapa, "Destroyer")); ThreadShipMissileControl tws = new ThreadShipMissileControl(enemy, random.Next(20, 400), random.Next(20, 400), mapa, player); Thread t = new Thread(new ThreadStart(tws.ThreadProc)); t.Start(); } if (shipLottery == 6) { iEnemyShip enemy = new UpgradeLife(factory.GetShip(mapa, "Cruiser")); ThreadShipMissileControl tws = new ThreadShipMissileControl(enemy, random.Next(20, 400), random.Next(20, 400), mapa, player); Thread t = new Thread(new ThreadStart(tws.ThreadProc)); t.Start(); } })); Thread.Sleep(200); Globals.shipCounter++; } Application.Current.Dispatcher.Invoke((Action)(() => { mapa.Visibility = Visibility.Visible; })); } boosterCounter++;//tworzenie wzmocnień co określoną ilość czasu if (boosterCounter % 100 == 0) { Booster boost = new Booster(mapa, "gun"); FlyingBooster flyingBooster = new FlyingBooster(boost, player); Thread t = new Thread(new ThreadStart(flyingBooster.ThreadProc)); t.Start(); } if (boosterCounter % 150 == 0) { Booster boost = new Booster(mapa, "armor"); FlyingBooster flyingBooster = new FlyingBooster(boost, player); Thread t = new Thread(new ThreadStart(flyingBooster.ThreadProc)); t.Start(); } if (boosterCounter % 200 == 0) { Booster boost = new Booster(mapa, "life"); FlyingBooster flyingBooster = new FlyingBooster(boost, player); Thread t = new Thread(new ThreadStart(flyingBooster.ThreadProc)); t.Start(); } Thread.Sleep(200); } }
public UpgradeSpeed(iEnemyShip enemyShip) : base(enemyShip) { this.shipspeed = shipspeed + Globals.mapCount; }
public UpgradeGun(iEnemyShip enemyShip) : base(enemyShip) { this.gunDmg += Globals.mapCount; }
public UpgradeLife(iEnemyShip enemyShip) : base(enemyShip) { this.life += Globals.mapCount; }