diff --git a/OpenRA.Game/Shroud.cs b/OpenRA.Game/Shroud.cs index b2a127b504..0d912a3557 100644 --- a/OpenRA.Game/Shroud.cs +++ b/OpenRA.Game/Shroud.cs @@ -98,7 +98,12 @@ namespace OpenRA return IsExplored(x,y); } - + + public void ResetExplored() + { + explored = new bool[map.MapSize, map.MapSize]; + } + Rectangle MakeRect(int2 center, int range) { return new Rectangle(center.X - range, center.Y - range, 2 * range + 1, 2 * range + 1); diff --git a/OpenRA.Mods.RA/Crates/ResetRadarCrateAction.cs b/OpenRA.Mods.RA/Crates/ResetRadarCrateAction.cs new file mode 100644 index 0000000000..f893855d6c --- /dev/null +++ b/OpenRA.Mods.RA/Crates/ResetRadarCrateAction.cs @@ -0,0 +1,41 @@ +#region Copyright & License Information +/* + * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford. + * This file is part of OpenRA. + * + * OpenRA is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * OpenRA is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with OpenRA. If not, see . + */ +#endregion + +using OpenRA.Traits; + +namespace OpenRA.Mods.RA +{ + class HideMapCrateActionInfo : CrateActionInfo + { + public override object Create(Actor self) { return new HideMapCrateAction(self, this); } + } + + class HideMapCrateAction : CrateAction + { + public HideMapCrateAction(Actor self, HideMapCrateActionInfo info) + : base(self, info) {} + + public override void Activate(Actor collector) + { + collector.Owner.Shroud.ResetExplored(); + base.Activate(collector); + } + } +} diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 73fe0027ef..83348235b5 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -78,6 +78,7 @@ + diff --git a/mods/ra/rules.yaml b/mods/ra/rules.yaml index f7c9b0ff8e..63ced32d24 100644 --- a/mods/ra/rules.yaml +++ b/mods/ra/rules.yaml @@ -659,6 +659,9 @@ CRATE: ExplodeCrateAction@boom: Weapon: CrateExplosion SelectionShares: 5 + HideMapCrateAction: + SelectionShares: 10 + Effect: hide-map Unit: HP: 1 RenderUnit: