diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
index 2c6ecd2864..e9f82be475 100644
--- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
+++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
@@ -177,6 +177,7 @@
+
diff --git a/OpenRA.Mods.Common/Scripting/Global/FacingGlobal.cs b/OpenRA.Mods.Common/Scripting/Global/FacingGlobal.cs
new file mode 100644
index 0000000000..dc069f035a
--- /dev/null
+++ b/OpenRA.Mods.Common/Scripting/Global/FacingGlobal.cs
@@ -0,0 +1,30 @@
+#region Copyright & License Information
+/*
+ * Copyright 2007-2015 The OpenRA Developers (see AUTHORS)
+ * This file is part of OpenRA, which is free software. It is made
+ * available to you under the terms of the GNU General Public License
+ * as published by the Free Software Foundation. For more information,
+ * see COPYING.
+ */
+#endregion
+
+using OpenRA.Scripting;
+
+namespace OpenRA.Mods.Common.Scripting.Global
+{
+ [ScriptGlobal("Facing")]
+ public class FacingGlobal : ScriptGlobal
+ {
+ public FacingGlobal(ScriptContext context)
+ : base(context) { }
+
+ public int North { get { return 0; } }
+ public int NorthWest { get { return 32; } }
+ public int West { get { return 64; } }
+ public int SouthWest { get { return 96; } }
+ public int South { get { return 128; } }
+ public int SouthEast { get { return 160; } }
+ public int East { get { return 192; } }
+ public int NorthEast { get { return 224; } }
+ }
+}
diff --git a/mods/cnc/maps/nod05/nod05.lua b/mods/cnc/maps/nod05/nod05.lua
index b40e42ea3b..b488468ce6 100644
--- a/mods/cnc/maps/nod05/nod05.lua
+++ b/mods/cnc/maps/nod05/nod05.lua
@@ -46,7 +46,7 @@ SendGDIAirstrike = function()
local target = getAirstrikeTarget()
if target then
- Radar.SendAirstrike(target, false, 256 - 28)
+ Radar.SendAirstrike(target, false, Facing.NorthEast + 4)
Trigger.AfterDelay(AirstrikeDelay, SendGDIAirstrike)
else
Trigger.AfterDelay(AirstrikeDelay/4, SendGDIAirstrike)
diff --git a/mods/cnc/maps/nod06a/nod06a.lua b/mods/cnc/maps/nod06a/nod06a.lua
index d16df4226e..bc2c817d0a 100644
--- a/mods/cnc/maps/nod06a/nod06a.lua
+++ b/mods/cnc/maps/nod06a/nod06a.lua
@@ -76,7 +76,7 @@ Atk3TriggerFunction = function()
local target = targets[DateTime.GameTime % #targets + 1].CenterPosition
if target then
- Radar.SendAirstrike(target, false, 256 - 28)
+ Radar.SendAirstrike(target, false, Facing.NorthEast + 4)
end
end
end
diff --git a/mods/ra/maps/survival02/survival02.lua b/mods/ra/maps/survival02/survival02.lua
index 70f36e951b..4d9abfd2f6 100644
--- a/mods/ra/maps/survival02/survival02.lua
+++ b/mods/ra/maps/survival02/survival02.lua
@@ -149,27 +149,29 @@ SpawnAndAttack = function(types, entry)
return units
end
+SendFrenchReinforcements = function()
+ local camera = Actor.Create("camera", true, { Owner = allies, Location = SovietRally1.Location })
+ Media.PlaySpeechNotification(allies, "AlliedReinforcementsArrived")
+ Reinforcements.Reinforce(allies, FrenchSquad, { FranceEntry.Location, FranceRally.Location })
+ Trigger.AfterDelay(DateTime.Seconds(3), function() camera.Destroy() end)
+end
+
FrenchReinforcements = function()
Camera.Position = SovietRally1.CenterPosition
- local camera = Actor.Create("camera", true, { Owner = allies, Location = SovietRally1.Location })
if drum1.IsDead or drum2.IsDead or drum3.IsDead then
- Media.PlaySpeechNotification(allies, "AlliedReinforcementsArrived")
- Reinforcements.Reinforce(allies, FrenchSquad, { FranceEntry.Location, FranceRally.Location })
- Trigger.AfterDelay(DateTime.Seconds(3), function() camera.Destroy() end)
+ SendFrenchReinforcements()
return
end
powerproxy = Actor.Create("powerproxy.parabombs", false, { Owner = allies })
- powerproxy.SendAirstrike(drum1.CenterPosition, false, 256 - 28)
- powerproxy.SendAirstrike(drum2.CenterPosition, false, 256 - 32)
- powerproxy.SendAirstrike(drum3.CenterPosition, false, 256 - 36)
+ powerproxy.SendAirstrike(drum1.CenterPosition, false, Facing.NorthEast + 4)
+ powerproxy.SendAirstrike(drum2.CenterPosition, false, Facing.NorthEast)
+ powerproxy.SendAirstrike(drum3.CenterPosition, false, Facing.NorthEast - 4)
powerproxy.Destroy()
Trigger.AfterDelay(DateTime.Seconds(3), function()
- Media.PlaySpeechNotification(allies, "AlliedReinforcementsArrived")
- Reinforcements.Reinforce(allies, FrenchSquad, { FranceEntry.Location, FranceRally.Location })
- Trigger.AfterDelay(DateTime.Seconds(3), function() camera.Destroy() end)
+ SendFrenchReinforcements()
end)
end