From a71ba665a7818755a10aa73787c0cda8d231717b Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Tue, 30 Mar 2010 18:26:52 +1300 Subject: [PATCH] pre-explore a little bit around the mcv at start --- OpenRA.Game/Traits/World/Shroud.cs | 10 ++++++++++ OpenRA.Game/Traits/World/SpawnDefaultUnits.cs | 9 ++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/OpenRA.Game/Traits/World/Shroud.cs b/OpenRA.Game/Traits/World/Shroud.cs index da145854f9..63f5832681 100644 --- a/OpenRA.Game/Traits/World/Shroud.cs +++ b/OpenRA.Game/Traits/World/Shroud.cs @@ -114,5 +114,15 @@ namespace OpenRA.Traits if (a.Owner == null || a.Owner != a.Owner.World.LocalPlayer) return; RemoveActor(a); AddActor(a); } + + public void Explore(World world, int2 center, int range) + { + foreach (var q in world.FindTilesInCircle(center, range)) + exploredCells[q.X, q.Y] = true; + + var box = new Rectangle(center.X - range, center.Y - range, 2 * range + 1, 2 * range + 1); + exploredBounds = exploredBounds.HasValue ? + Rectangle.Union(exploredBounds.Value, box) : box; + } } } diff --git a/OpenRA.Game/Traits/World/SpawnDefaultUnits.cs b/OpenRA.Game/Traits/World/SpawnDefaultUnits.cs index 5c18dae2b2..96f70c3963 100644 --- a/OpenRA.Game/Traits/World/SpawnDefaultUnits.cs +++ b/OpenRA.Game/Traits/World/SpawnDefaultUnits.cs @@ -25,7 +25,10 @@ using OpenRA.FileFormats; namespace OpenRA.Traits { - class SpawnDefaultUnitsInfo : StatelessTraitInfo { } + class SpawnDefaultUnitsInfo : StatelessTraitInfo + { + public readonly int InitialExploreRange = 5; + } class SpawnDefaultUnits : IGameStarted { @@ -48,6 +51,10 @@ namespace OpenRA.Traits void SpawnUnitsForPlayer(Player p, int2 sp) { p.World.CreateActor("mcv", sp, p); + + if (p == p.World.LocalPlayer) + p.World.WorldActor.traits.Get().Explore( p.World, sp, + p.World.WorldActor.Info.Traits.Get().InitialExploreRange); } static int2 ChooseSpawnPoint(World world, List available, List taken)