public MissileModel FireMissle() { var missle = new MissileModel(new MissileViewModel()) { X = 10, Y = 10, Direction = ViewModel.LastMove, Range = 10 }; return(missle); }
private void TurnMissileIntoExplosions(MissileModel missile) { missile.ViewModel.Image = _explosionImage; missile.Type = MovableObjectsTypes.Explosion; var movableObjectsToDestroy = _antWarsViewModel.MovableObjectsCollection. Where(mo => mo.Type == MovableObjectsTypes.Bot || mo.Type == MovableObjectsTypes.Missile). Where(mo => mo.X >= missile.X - 1 && mo.X <= missile.X + 1 && mo.Y >= missile.Y - 1 && mo.Y <= missile.Y + 1). Where(mo => mo != missile). Where(mo => mo.Type != MovableObjectsTypes.Explosion).ToList(); var unmovableObjectsToDestroy = _antWarsViewModel.BattlefieldObjectsCollection. Where(mo => mo.X >= missile.X - 1 && mo.X <= missile.X + 1 && mo.Y >= missile.Y - 1 && mo.Y <= missile.Y + 1). Where(mo => mo.Type == UnmovableObjectTypes.Wood).ToList(); foreach (var item in movableObjectsToDestroy) { switch (item.Type) { case MovableObjectsTypes.Bot: { _listOfAntsToRemove.Add((AntModel)item); break; } case MovableObjectsTypes.Missile: { TurnMissileIntoExplosions((MissileModel)item); break; } } } foreach (var item in unmovableObjectsToDestroy) { if (item.Type == UnmovableObjectTypes.Wood) { _antWarsViewModel.BattlefieldObjectsCollection.Remove(item); } } }