diff --git a/OpenRA.Mods.RA/Activities/Sell.cs b/OpenRA.Mods.Common/Activities/Sell.cs
old mode 100755
new mode 100644
similarity index 95%
rename from OpenRA.Mods.RA/Activities/Sell.cs
rename to OpenRA.Mods.Common/Activities/Sell.cs
index 217d570e85..4a7070c29c
--- a/OpenRA.Mods.RA/Activities/Sell.cs
+++ b/OpenRA.Mods.Common/Activities/Sell.cs
@@ -11,10 +11,9 @@
using OpenRA.Activities;
using OpenRA.Mods.Common.Effects;
using OpenRA.Mods.Common.Traits;
-using OpenRA.Mods.RA.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Activities
+namespace OpenRA.Mods.Common.Activities
{
class Sell : Activity
{
diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
index a72cd41217..d586e6b52b 100644
--- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
+++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
@@ -85,6 +85,7 @@
+
@@ -188,10 +189,15 @@
+
+
+
+
+
@@ -259,6 +265,8 @@
+
+
diff --git a/OpenRA.Mods.RA/CashTrickler.cs b/OpenRA.Mods.Common/Traits/CashTrickler.cs
similarity index 98%
rename from OpenRA.Mods.RA/CashTrickler.cs
rename to OpenRA.Mods.Common/Traits/CashTrickler.cs
index 2860de3da1..65e78d8d01 100644
--- a/OpenRA.Mods.RA/CashTrickler.cs
+++ b/OpenRA.Mods.Common/Traits/CashTrickler.cs
@@ -11,7 +11,7 @@
using OpenRA.Mods.Common.Effects;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Lets the actor generate cash in a set periodic time.")]
class CashTricklerInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/Crushable.cs b/OpenRA.Mods.Common/Traits/Crushable.cs
similarity index 96%
rename from OpenRA.Mods.RA/Crushable.cs
rename to OpenRA.Mods.Common/Traits/Crushable.cs
index 266fcfe00b..9809741ee2 100644
--- a/OpenRA.Mods.RA/Crushable.cs
+++ b/OpenRA.Mods.Common/Traits/Crushable.cs
@@ -9,10 +9,9 @@
#endregion
using System.Linq;
-using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
[Desc("This actor is crushable.")]
class CrushableInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/Explodes.cs b/OpenRA.Mods.Common/Traits/Explodes.cs
similarity index 94%
rename from OpenRA.Mods.RA/Explodes.cs
rename to OpenRA.Mods.Common/Traits/Explodes.cs
index df6f79ffbe..1010fd8c70 100644
--- a/OpenRA.Mods.RA/Explodes.cs
+++ b/OpenRA.Mods.Common/Traits/Explodes.cs
@@ -12,9 +12,9 @@ using System.Linq;
using OpenRA.GameRules;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common.Traits
{
- class ExplodesInfo : ITraitInfo
+ public class ExplodesInfo : ITraitInfo
{
[WeaponReference]
public readonly string Weapon = "UnitExplode";
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA
public object Create(ActorInitializer init) { return new Explodes(this); }
}
- class Explodes : INotifyKilled
+ public class Explodes : INotifyKilled
{
readonly ExplodesInfo explodesInfo;
diff --git a/OpenRA.Mods.RA/Guard.cs b/OpenRA.Mods.Common/Traits/Guard.cs
similarity index 88%
rename from OpenRA.Mods.RA/Guard.cs
rename to OpenRA.Mods.Common/Traits/Guard.cs
index 0c555ca072..d44dd145ea 100644
--- a/OpenRA.Mods.RA/Guard.cs
+++ b/OpenRA.Mods.Common/Traits/Guard.cs
@@ -14,15 +14,14 @@ using System.Linq;
using OpenRA.Graphics;
using OpenRA.Mods.Common;
using OpenRA.Mods.Common.Activities;
-using OpenRA.Mods.RA.Activities;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
[Desc("The player can give this unit the order to follow and protect friendly units with the Guardable trait.")]
- class GuardInfo : TraitInfo { }
+ public class GuardInfo : TraitInfo { }
- class Guard : IResolveOrder, IOrderVoice
+ public class Guard : IResolveOrder, IOrderVoice
{
public void ResolveOrder(Actor self, Order order)
{
@@ -48,7 +47,7 @@ namespace OpenRA.Mods.RA.Traits
}
}
- class GuardOrderGenerator : IOrderGenerator
+ public class GuardOrderGenerator : IOrderGenerator
{
readonly IEnumerable subjects;
@@ -104,12 +103,4 @@ namespace OpenRA.Mods.RA.Traits
a.HasTrait());
}
}
-
- [Desc("This unit can be guarded (followed and protected) by a Guard unit.")]
- class GuardableInfo : TraitInfo
- {
- public readonly int Range = 2;
- }
-
- class Guardable { }
}
diff --git a/OpenRA.Mods.Common/Traits/Guardable.cs b/OpenRA.Mods.Common/Traits/Guardable.cs
new file mode 100644
index 0000000000..5edbf3f038
--- /dev/null
+++ b/OpenRA.Mods.Common/Traits/Guardable.cs
@@ -0,0 +1,22 @@
+#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.Traits;
+
+namespace OpenRA.Mods.Common.Traits
+{
+ [Desc("This unit can be guarded (followed and protected) by a Guard unit.")]
+ public class GuardableInfo : TraitInfo
+ {
+ public readonly int Range = 2;
+ }
+
+ public class Guardable { }
+}
diff --git a/OpenRA.Mods.RA/SelfHealing.cs b/OpenRA.Mods.Common/Traits/SelfHealing.cs
similarity index 96%
rename from OpenRA.Mods.RA/SelfHealing.cs
rename to OpenRA.Mods.Common/Traits/SelfHealing.cs
index c7d9a86bc2..84a9b9a7a4 100644
--- a/OpenRA.Mods.RA/SelfHealing.cs
+++ b/OpenRA.Mods.Common/Traits/SelfHealing.cs
@@ -10,10 +10,9 @@
using System;
using System.Linq;
-using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Attach this to actors which should be able to regenerate their health points.")]
class SelfHealingInfo : UpgradableTraitInfo, ITraitInfo, Requires
diff --git a/OpenRA.Mods.RA/Sellable.cs b/OpenRA.Mods.Common/Traits/Sellable.cs
similarity index 93%
rename from OpenRA.Mods.RA/Sellable.cs
rename to OpenRA.Mods.Common/Traits/Sellable.cs
index 39e021afac..794b354649 100644
--- a/OpenRA.Mods.RA/Sellable.cs
+++ b/OpenRA.Mods.Common/Traits/Sellable.cs
@@ -9,11 +9,10 @@
#endregion
using System.Linq;
-using OpenRA.Mods.Common.Traits;
-using OpenRA.Mods.RA.Activities;
+using OpenRA.Mods.Common.Activities;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Actor can be sold")]
public class SellableInfo : UpgradableTraitInfo, ITraitInfo
diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
index 47bc1ee77c..9c6246e477 100644
--- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
+++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
@@ -95,11 +95,9 @@
-
-
@@ -116,7 +114,6 @@
-
@@ -138,8 +135,6 @@
-
-
@@ -178,8 +173,6 @@
-
-
diff --git a/OpenRA.Mods.RA/Scripting/Properties/GuardProperties.cs b/OpenRA.Mods.RA/Scripting/Properties/GuardProperties.cs
index 0078f80919..a21ca307d1 100644
--- a/OpenRA.Mods.RA/Scripting/Properties/GuardProperties.cs
+++ b/OpenRA.Mods.RA/Scripting/Properties/GuardProperties.cs
@@ -8,7 +8,7 @@
*/
#endregion
-using OpenRA.Mods.RA.Traits;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Scripting;
using OpenRA.Traits;
diff --git a/OpenRA.Mods.RA/Traits/DemoTruck.cs b/OpenRA.Mods.RA/Traits/DemoTruck.cs
index 879f3017c4..bb1e073c43 100644
--- a/OpenRA.Mods.RA/Traits/DemoTruck.cs
+++ b/OpenRA.Mods.RA/Traits/DemoTruck.cs
@@ -14,6 +14,7 @@ using OpenRA.Activities;
using OpenRA.Mods.Common;
using OpenRA.Mods.Common.Activities;
using OpenRA.Mods.Common.Orders;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Traits