void CreateExplosion(GameModelBase gameModelHit) //The game piece that has been hit is passed in. { ExplosionModel explosionModel = new ExplosionModel(); explosionModel.X = gameModelHit.X; explosionModel.Y = gameModelHit.Y; explosionModel.Height = 30; explosionModel.Width = 30; explosionModel.ExplosionState = 0; GameModels.Add(explosionModel); if (gameModelHit.ModelType == GameModelType.Saucer) { explosionModel.PointValue = ((SaucerModel)gameModelHit).PointValue; } if (gameModelHit.ModelType == GameModelType.Enemy) { explosionModel.PointValue = ((EnemyModel)gameModelHit).PointValue; } if (gameModelHit.ModelType == GameModelType.Player) { audioController.PlayPlayerExplosion(); } else { audioController.PlayEnemyExplode(); } }
public static void SetExplosion(ExplosionModel explosion) { throw new NotImplementedException(); }
public void PerformMissilesMove() { var listOfMissilesToRemove = new List <MissileModel>(); foreach (var missileObject in _antWarsViewModel.MovableObjectsCollection.OfType <MissileModel>()) { switch (missileObject.Direction) { case ActionDirections.Up: { missileObject.Y -= 1; break; } case ActionDirections.Left: { missileObject.X -= 1; break; } case ActionDirections.Down: { missileObject.Y += 1; break; } case ActionDirections.Right: { missileObject.X += 1; break; } } missileObject.Range--; if (missileObject.Range < 0) { var explosion = new ExplosionModel(new ExplosionViewModel()) { X = missileObject.X, Y = missileObject.Y, ViewModel = { Image = _explosionImage, } }; _antWarsViewModel.BattlefieldObjectsCollection.Add(explosion); listOfMissilesToRemove.Add(missileObject); } //if missile meet some missile if (_antWarsViewModel.MovableObjectsCollection.OfType <MissileModel>().Any(missile => missile.X == missileObject.X && missile.Y == missileObject.Y)) { //detonate missileObject and make chain reaction if there are some missiles near } } foreach (var item in listOfMissilesToRemove) { _antWarsViewModel.MovableObjectsCollection.Remove(item); } }
public void PerformMissilesMove() { var listOfMissilesToRemove = new List<MissileModel>(); foreach (var missileObject in _antWarsViewModel.MovableObjectsCollection.OfType<MissileModel>()) { switch (missileObject.Direction) { case ActionDirections.Up: { missileObject.Y -= 1; break; } case ActionDirections.Left: { missileObject.X -= 1; break; } case ActionDirections.Down: { missileObject.Y += 1; break; } case ActionDirections.Right: { missileObject.X += 1; break; } } missileObject.Range--; if (missileObject.Range < 0) { var explosion = new ExplosionModel(new ExplosionViewModel()) { X = missileObject.X, Y = missileObject.Y, ViewModel = { Image = _explosionImage, } }; _antWarsViewModel.BattlefieldObjectsCollection.Add(explosion); listOfMissilesToRemove.Add(missileObject); } //if missile meet some missile if (_antWarsViewModel.MovableObjectsCollection.OfType<MissileModel>().Any(missile => missile.X == missileObject.X && missile.Y == missileObject.Y)) { //detonate missileObject and make chain reaction if there are some missiles near } } foreach (var item in listOfMissilesToRemove) { _antWarsViewModel.MovableObjectsCollection.Remove(item); } }