protected override void Strike(Vector2 Position) { Basic2DScene scene = (Basic2DScene)GameManager.GetLevel().getCurrentScene(); foreach (UnitTurret t in scene.Enumerate(typeof(UnitTurret))) { t.Destroy(); } /* * float BulletExplosionDistance = 200; * QuadGrid grid = scene.quadGrids.First.Value; * * for (int i = 0; i < 2; i++) * foreach (Basic2DObject o in grid.Enumerate(Position, new Vector2(BulletExplosionDistance * 2))) * if (o.GetType().IsSubclassOf(typeof(BasicShipGameObject))) * { * BasicShipGameObject s = (BasicShipGameObject)o; * float dist = Vector2.Distance(s.Position.get(), Position) - o.Size.X() / 2; * * if (dist < BulletExplosionDistance && s.GetType().IsSubclassOf(typeof(UnitTurret))) * { * UnitTurret t = (UnitTurret)s; * t.Destroy(); * } * } */ base.Strike(Position); }
private bool getAreaClear(Vector2 Position) { foreach (UnitBasic u in Parent2DScene.Enumerate(typeof(UnitBuilding))) { if (Vector2.Distance(Position, u.Position.get()) < 250 && u.GetTeam() == WaveManager.ActiveTeam) { return(false); } } foreach (PathfindingHotPoint h in HotPoints) { if (h.Team == WaveManager.ActiveTeam && Vector2.Distance(Position, h.Position) < 350) { return(false); } } return(true); }