Example #1
0
        public Bomb PlaceBomb(FigureImp figure)
        {
            var position = GetTilePositionFromWorld(figure.Position);

            if (!HasBomb(position))
            {
                var b = new BombImp(PullId(), figure.ActiveBombType);
                _bombs.Add(b);
                b.Drop(figure, position);
                return(b);
            }
            return(null);
        }
Example #2
0
        private void RaiseExplosion(BombImp bomb)
        {
            var explosionFragment = (ExplosionFragmentImp)GetOverlayData(bomb.TilePosition);

            if (explosionFragment.IsActive)
            {
                return;
            }

            var range = bomb.ExplosionRange;

            explosionFragment.Activate();
            HandleExplosionTrace(bomb, bomb.TilePosition, range, i => new Point(i, 0));
            HandleExplosionTrace(bomb, bomb.TilePosition, range, i => new Point(-i, 0));
            HandleExplosionTrace(bomb, bomb.TilePosition, range, i => new Point(0, i));
            HandleExplosionTrace(bomb, bomb.TilePosition, range, i => new Point(0, -i));
        }
Example #3
0
 private bool TryGetBomb(Point p, out BombImp bomb)
 {
     bomb = (BombImp)_bombs.FirstOrDefault(b => b.TilePosition == p);
     return(bomb != null);
 }