Example #1
0
        public MissileModel FireMissle()
        {
            var missle = new MissileModel(new MissileViewModel())
            {
                X         = 10,
                Y         = 10,
                Direction = ViewModel.LastMove,
                Range     = 10
            };

            return(missle);
        }
Example #2
0
        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);
                }
            }
        }