diff --git a/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs b/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs
index fa8606f45a..7d0c42a258 100644
--- a/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs
+++ b/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs
@@ -10,7 +10,7 @@
using OpenRA.Mods.Cnc.Effects;
using OpenRA.Mods.Common.Activities;
-using OpenRA.Mods.RA.Traits;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Primitives;
using OpenRA.Traits;
diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
index 2d7c892cde..a32e1ae179 100644
--- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
+++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
@@ -289,6 +289,7 @@
+
@@ -326,6 +327,12 @@
+
+
+
+
+
+
@@ -401,13 +408,18 @@
+
+
+
+
+
diff --git a/OpenRA.Mods.RA/SupportPowers/SupportPowerChargeBar.cs b/OpenRA.Mods.Common/Traits/Render/SupportPowerChargeBar.cs
similarity index 97%
rename from OpenRA.Mods.RA/SupportPowers/SupportPowerChargeBar.cs
rename to OpenRA.Mods.Common/Traits/Render/SupportPowerChargeBar.cs
index 20dbdbe1c8..9ef7495053 100644
--- a/OpenRA.Mods.RA/SupportPowers/SupportPowerChargeBar.cs
+++ b/OpenRA.Mods.Common/Traits/Render/SupportPowerChargeBar.cs
@@ -12,7 +12,7 @@ using System.Drawing;
using System.Linq;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Display the time remaining until the super weapon attached to the actor is ready to the player and his allies.")]
class SupportPowerChargeBarInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/SupportPowers/AirstrikePower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/AirstrikePower.cs
similarity index 97%
rename from OpenRA.Mods.RA/SupportPowers/AirstrikePower.cs
rename to OpenRA.Mods.Common/Traits/SupportPowers/AirstrikePower.cs
index 37fb741927..69c6af5492 100644
--- a/OpenRA.Mods.RA/SupportPowers/AirstrikePower.cs
+++ b/OpenRA.Mods.Common/Traits/SupportPowers/AirstrikePower.cs
@@ -14,13 +14,12 @@ using System.Linq;
using OpenRA.Mods.Common.Activities;
using OpenRA.Mods.Common.Effects;
using OpenRA.Mods.Common.Traits;
-using OpenRA.Mods.RA.Activities;
using OpenRA.Primitives;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
- class AirstrikePowerInfo : SupportPowerInfo
+ public class AirstrikePowerInfo : SupportPowerInfo
{
[ActorReference]
public readonly string UnitType = "badr.bomber";
@@ -43,7 +42,7 @@ namespace OpenRA.Mods.RA.Traits
public override object Create(ActorInitializer init) { return new AirstrikePower(init.Self, this); }
}
- class AirstrikePower : SupportPower
+ public class AirstrikePower : SupportPower
{
public AirstrikePower(Actor self, AirstrikePowerInfo info)
: base(self, info) { }
diff --git a/OpenRA.Mods.RA/SupportPowers/GrantUpgradePower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/GrantUpgradePower.cs
similarity index 98%
rename from OpenRA.Mods.RA/SupportPowers/GrantUpgradePower.cs
rename to OpenRA.Mods.Common/Traits/SupportPowers/GrantUpgradePower.cs
index 260eae151d..71eeb15d39 100644
--- a/OpenRA.Mods.RA/SupportPowers/GrantUpgradePower.cs
+++ b/OpenRA.Mods.Common/Traits/SupportPowers/GrantUpgradePower.cs
@@ -12,10 +12,9 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
-using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
class GrantUpgradePowerInfo : SupportPowerInfo
{
diff --git a/OpenRA.Mods.RA/SupportPowers/NukePower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/NukePower.cs
similarity index 97%
rename from OpenRA.Mods.RA/SupportPowers/NukePower.cs
rename to OpenRA.Mods.Common/Traits/SupportPowers/NukePower.cs
index 5a67bc8c54..3efdae40cf 100644
--- a/OpenRA.Mods.RA/SupportPowers/NukePower.cs
+++ b/OpenRA.Mods.Common/Traits/SupportPowers/NukePower.cs
@@ -12,12 +12,10 @@ using System;
using OpenRA.Effects;
using OpenRA.Mods.Common.Activities;
using OpenRA.Mods.Common.Effects;
-using OpenRA.Mods.Common.Traits;
-using OpenRA.Mods.RA.Activities;
using OpenRA.Primitives;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
class NukePowerInfo : SupportPowerInfo, Requires
{
diff --git a/OpenRA.Mods.RA/SupportPowers/SpawnActorPower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/SpawnActorPower.cs
similarity index 95%
rename from OpenRA.Mods.RA/SupportPowers/SpawnActorPower.cs
rename to OpenRA.Mods.Common/Traits/SupportPowers/SpawnActorPower.cs
index 9145de2404..8a0bf90400 100644
--- a/OpenRA.Mods.RA/SupportPowers/SpawnActorPower.cs
+++ b/OpenRA.Mods.Common/Traits/SupportPowers/SpawnActorPower.cs
@@ -10,11 +10,10 @@
using OpenRA.Effects;
using OpenRA.Mods.Common.Activities;
-using OpenRA.Mods.RA.Activities;
-using OpenRA.Mods.RA.Effects;
+using OpenRA.Mods.Common.Effects;
using OpenRA.Primitives;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Spawns an actor that stays for a limited amount of time.")]
public class SpawnActorPowerInfo : SupportPowerInfo
diff --git a/OpenRA.Mods.RA/SupportPowers/SupportPower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/SupportPower.cs
old mode 100755
new mode 100644
similarity index 97%
rename from OpenRA.Mods.RA/SupportPowers/SupportPower.cs
rename to OpenRA.Mods.Common/Traits/SupportPowers/SupportPower.cs
index 46a6c22e71..4505370ee7
--- a/OpenRA.Mods.RA/SupportPowers/SupportPower.cs
+++ b/OpenRA.Mods.Common/Traits/SupportPowers/SupportPower.cs
@@ -8,10 +8,9 @@
*/
#endregion
-using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
public abstract class SupportPowerInfo : ITraitInfo
{
diff --git a/OpenRA.Mods.RA/SupportPowers/SupportPowerManager.cs b/OpenRA.Mods.Common/Traits/SupportPowers/SupportPowerManager.cs
similarity index 99%
rename from OpenRA.Mods.RA/SupportPowers/SupportPowerManager.cs
rename to OpenRA.Mods.Common/Traits/SupportPowers/SupportPowerManager.cs
index 95acbd54a6..672f0b97ef 100644
--- a/OpenRA.Mods.RA/SupportPowers/SupportPowerManager.cs
+++ b/OpenRA.Mods.Common/Traits/SupportPowers/SupportPowerManager.cs
@@ -12,10 +12,9 @@ using System;
using System.Collections.Generic;
using System.Linq;
using OpenRA.Graphics;
-using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Attach this to the player actor.")]
public class SupportPowerManagerInfo : ITraitInfo, Requires, Requires
diff --git a/OpenRA.Mods.RA/Widgets/Logic/SupportPowerBinLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/SupportPowerBinLogic.cs
similarity index 97%
rename from OpenRA.Mods.RA/Widgets/Logic/SupportPowerBinLogic.cs
rename to OpenRA.Mods.Common/Widgets/Logic/SupportPowerBinLogic.cs
index 73e0de7435..1045b65345 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/SupportPowerBinLogic.cs
+++ b/OpenRA.Mods.Common/Widgets/Logic/SupportPowerBinLogic.cs
@@ -11,7 +11,7 @@
using System;
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA.Widgets.Logic
+namespace OpenRA.Mods.Common.Widgets.Logic
{
public class SupportPowerBinLogic
{
diff --git a/OpenRA.Mods.RA/Widgets/Logic/SupportPowerTooltipLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/SupportPowerTooltipLogic.cs
similarity index 96%
rename from OpenRA.Mods.RA/Widgets/Logic/SupportPowerTooltipLogic.cs
rename to OpenRA.Mods.Common/Widgets/Logic/SupportPowerTooltipLogic.cs
index 8fc9e0bca0..129168ea64 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/SupportPowerTooltipLogic.cs
+++ b/OpenRA.Mods.Common/Widgets/Logic/SupportPowerTooltipLogic.cs
@@ -9,10 +9,10 @@
#endregion
using System;
-using OpenRA.Mods.RA.Traits;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA.Widgets.Logic
+namespace OpenRA.Mods.Common.Widgets.Logic
{
public class SupportPowerTooltipLogic
{
diff --git a/OpenRA.Mods.RA/Widgets/ObserverSupportPowerIconsWidget.cs b/OpenRA.Mods.Common/Widgets/ObserverSupportPowerIconsWidget.cs
similarity index 97%
rename from OpenRA.Mods.RA/Widgets/ObserverSupportPowerIconsWidget.cs
rename to OpenRA.Mods.Common/Widgets/ObserverSupportPowerIconsWidget.cs
index f6fd129640..83d1720e29 100644
--- a/OpenRA.Mods.RA/Widgets/ObserverSupportPowerIconsWidget.cs
+++ b/OpenRA.Mods.Common/Widgets/ObserverSupportPowerIconsWidget.cs
@@ -13,10 +13,10 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
-using OpenRA.Mods.RA.Traits;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA.Widgets
+namespace OpenRA.Mods.Common.Widgets
{
public class ObserverSupportPowerIconsWidget : Widget
{
diff --git a/OpenRA.Mods.RA/Widgets/SupportPowerTimerWidget.cs b/OpenRA.Mods.Common/Widgets/SupportPowerTimerWidget.cs
similarity index 96%
rename from OpenRA.Mods.RA/Widgets/SupportPowerTimerWidget.cs
rename to OpenRA.Mods.Common/Widgets/SupportPowerTimerWidget.cs
index 5cb9bb9643..e53fb129d1 100644
--- a/OpenRA.Mods.RA/Widgets/SupportPowerTimerWidget.cs
+++ b/OpenRA.Mods.Common/Widgets/SupportPowerTimerWidget.cs
@@ -11,11 +11,11 @@
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
-using OpenRA.Mods.RA.Traits;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Primitives;
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA.Widgets
+namespace OpenRA.Mods.Common.Widgets
{
public class SupportPowerTimerWidget : Widget
{
diff --git a/OpenRA.Mods.RA/Widgets/SupportPowersWidget.cs b/OpenRA.Mods.Common/Widgets/SupportPowersWidget.cs
similarity index 98%
rename from OpenRA.Mods.RA/Widgets/SupportPowersWidget.cs
rename to OpenRA.Mods.Common/Widgets/SupportPowersWidget.cs
index 93afaf307d..bd174a98e9 100644
--- a/OpenRA.Mods.RA/Widgets/SupportPowersWidget.cs
+++ b/OpenRA.Mods.Common/Widgets/SupportPowersWidget.cs
@@ -13,10 +13,10 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
-using OpenRA.Mods.RA.Traits;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA.Widgets
+namespace OpenRA.Mods.Common.Widgets
{
public class SupportPowersWidget : Widget
{
diff --git a/OpenRA.Mods.D2k/Widgets/SupportPowerBinWidget.cs b/OpenRA.Mods.D2k/Widgets/SupportPowerBinWidget.cs
index 537f2ffee6..d94454db27 100644
--- a/OpenRA.Mods.D2k/Widgets/SupportPowerBinWidget.cs
+++ b/OpenRA.Mods.D2k/Widgets/SupportPowerBinWidget.cs
@@ -13,7 +13,7 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
-using OpenRA.Mods.RA.Traits;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Primitives;
using OpenRA.Widgets;
diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
index 84f058cfd7..13c79bdaac 100644
--- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
+++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
@@ -140,14 +140,9 @@
-
-
-
-
-
@@ -183,8 +178,6 @@
-
-
@@ -229,7 +222,6 @@
-
@@ -238,16 +230,12 @@
-
-
-
-
diff --git a/OpenRA.Mods.RA/Scripting/Properties/AirstrikeProperties.cs b/OpenRA.Mods.RA/Scripting/Properties/AirstrikeProperties.cs
index 90b4995756..6856427619 100644
--- a/OpenRA.Mods.RA/Scripting/Properties/AirstrikeProperties.cs
+++ b/OpenRA.Mods.RA/Scripting/Properties/AirstrikeProperties.cs
@@ -10,7 +10,7 @@
using System.Linq;
using Eluant;
-using OpenRA.Mods.RA.Traits;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Scripting;
using OpenRA.Traits;
diff --git a/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs b/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs
index fbc535b34b..4baa8ea8ce 100644
--- a/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs
+++ b/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs
@@ -12,6 +12,7 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Mods.RA.Activities;
namespace OpenRA.Mods.RA.Traits
diff --git a/OpenRA.Mods.RA/Traits/SupportPowers/GpsPower.cs b/OpenRA.Mods.RA/Traits/SupportPowers/GpsPower.cs
index 94c8bcc234..8ef924c0c9 100644
--- a/OpenRA.Mods.RA/Traits/SupportPowers/GpsPower.cs
+++ b/OpenRA.Mods.RA/Traits/SupportPowers/GpsPower.cs
@@ -11,6 +11,7 @@
using System.Collections.Generic;
using System.Linq;
using OpenRA.Effects;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Mods.RA.Effects;
using OpenRA.Traits;
diff --git a/OpenRA.Mods.RA/Widgets/Logic/ObserverStatsLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ObserverStatsLogic.cs
index 31950b0d50..5aaefe18f9 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/ObserverStatsLogic.cs
+++ b/OpenRA.Mods.RA/Widgets/Logic/ObserverStatsLogic.cs
@@ -14,6 +14,7 @@ using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
using OpenRA.Mods.Common.Traits;
+using OpenRA.Mods.Common.Widgets;
using OpenRA.Mods.RA.Traits;
using OpenRA.Network;
using OpenRA.Traits;