diff --git a/OpenRA.Mods.Common/CommonTraitsInterfaces.cs b/OpenRA.Mods.Common/CommonTraitsInterfaces.cs index d1fb1b6395..8331b95416 100644 --- a/OpenRA.Mods.Common/CommonTraitsInterfaces.cs +++ b/OpenRA.Mods.Common/CommonTraitsInterfaces.cs @@ -21,6 +21,7 @@ namespace OpenRA.Mods.Common public interface INotifyChat { bool OnChat(string from, string message); } public interface IRenderActorPreviewInfo { IEnumerable RenderPreview (ActorPreviewInitializer init); } + public interface ICruiseAltitudeInfo { WRange GetCruiseAltitude(); } public interface IUpgradable { diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj index 94f584421f..c0af7547bf 100644 --- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj +++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj @@ -89,6 +89,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/OpenRA.Mods.RA/Scripting/CallLuaFunc.cs b/OpenRA.Mods.Common/Scripting/CallLuaFunc.cs similarity index 96% rename from OpenRA.Mods.RA/Scripting/CallLuaFunc.cs rename to OpenRA.Mods.Common/Scripting/CallLuaFunc.cs index 5cd0706c9e..9f4723e717 100644 --- a/OpenRA.Mods.RA/Scripting/CallLuaFunc.cs +++ b/OpenRA.Mods.Common/Scripting/CallLuaFunc.cs @@ -13,7 +13,7 @@ using Eluant; using OpenRA.Scripting; using OpenRA.Traits; -namespace OpenRA.Mods.RA.Activities +namespace OpenRA.Mods.Common.Activities { public sealed class CallLuaFunc : Activity, IDisposable { diff --git a/OpenRA.Mods.RA/Scripting/Global/ActorGlobal.cs b/OpenRA.Mods.Common/Scripting/Global/ActorGlobal.cs similarity index 91% rename from OpenRA.Mods.RA/Scripting/Global/ActorGlobal.cs rename to OpenRA.Mods.Common/Scripting/Global/ActorGlobal.cs index 2224a1009e..638daf08da 100644 --- a/OpenRA.Mods.RA/Scripting/Global/ActorGlobal.cs +++ b/OpenRA.Mods.Common/Scripting/Global/ActorGlobal.cs @@ -10,13 +10,10 @@ using System.Linq; using Eluant; -using OpenRA.Mods.Common; -using OpenRA.Mods.RA.Activities; -using OpenRA.Mods.RA.Traits; -using OpenRA.Mods.RA.Buildings; using OpenRA.Primitives; +using OpenRA.Scripting; -namespace OpenRA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptGlobal("Actor")] public class ActorGlobal : ScriptGlobal @@ -78,8 +75,8 @@ namespace OpenRA.Scripting if (!context.World.Map.Rules.Actors.TryGetValue(type, out ai)) throw new LuaException("Unknown actor type '{0}'".F(type)); - var pi = ai.Traits.GetOrDefault(); - return pi != null ? pi.CruiseAltitude.Range : 0; + var pi = ai.Traits.GetOrDefault(); + return pi != null ? pi.GetCruiseAltitude().Range : 0; } } } diff --git a/OpenRA.Mods.RA/Scripting/Global/CameraGlobal.cs b/OpenRA.Mods.Common/Scripting/Global/CameraGlobal.cs similarity index 94% rename from OpenRA.Mods.RA/Scripting/Global/CameraGlobal.cs rename to OpenRA.Mods.Common/Scripting/Global/CameraGlobal.cs index 2bc2899bca..bafdc89ee0 100644 --- a/OpenRA.Mods.RA/Scripting/Global/CameraGlobal.cs +++ b/OpenRA.Mods.Common/Scripting/Global/CameraGlobal.cs @@ -10,7 +10,7 @@ using OpenRA.Scripting; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptGlobal("Camera")] public class CameraGlobal : ScriptGlobal diff --git a/OpenRA.Mods.RA/Scripting/Global/CoordinateGlobals.cs b/OpenRA.Mods.Common/Scripting/Global/CoordinateGlobals.cs similarity index 97% rename from OpenRA.Mods.RA/Scripting/Global/CoordinateGlobals.cs rename to OpenRA.Mods.Common/Scripting/Global/CoordinateGlobals.cs index f4c1775456..db53b896d9 100644 --- a/OpenRA.Mods.RA/Scripting/Global/CoordinateGlobals.cs +++ b/OpenRA.Mods.Common/Scripting/Global/CoordinateGlobals.cs @@ -7,8 +7,9 @@ * see COPYING. */ #endregion +using OpenRA.Scripting; -namespace OpenRA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptGlobal("CPos")] public class CPosGlobal : ScriptGlobal diff --git a/OpenRA.Mods.RA/Scripting/Global/DateTimeGlobal.cs b/OpenRA.Mods.Common/Scripting/Global/DateTimeGlobal.cs similarity index 96% rename from OpenRA.Mods.RA/Scripting/Global/DateTimeGlobal.cs rename to OpenRA.Mods.Common/Scripting/Global/DateTimeGlobal.cs index 6be80cb4ae..ddbbed0bee 100644 --- a/OpenRA.Mods.RA/Scripting/Global/DateTimeGlobal.cs +++ b/OpenRA.Mods.Common/Scripting/Global/DateTimeGlobal.cs @@ -12,7 +12,7 @@ using System; using Eluant; using OpenRA.Scripting; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptGlobal("DateTime")] public class DateGlobal : ScriptGlobal diff --git a/OpenRA.Mods.RA/Scripting/Global/MapGlobal.cs b/OpenRA.Mods.Common/Scripting/Global/MapGlobal.cs similarity index 98% rename from OpenRA.Mods.RA/Scripting/Global/MapGlobal.cs rename to OpenRA.Mods.Common/Scripting/Global/MapGlobal.cs index 3fe79db0e2..13a89b5d0e 100644 --- a/OpenRA.Mods.RA/Scripting/Global/MapGlobal.cs +++ b/OpenRA.Mods.Common/Scripting/Global/MapGlobal.cs @@ -11,10 +11,9 @@ using System; using System.Linq; using Eluant; -using OpenRA.Mods.Common; using OpenRA.Scripting; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptGlobal("Map")] public class MapGlobal : ScriptGlobal diff --git a/OpenRA.Mods.RA/Scripting/Global/MediaGlobal.cs b/OpenRA.Mods.Common/Scripting/Global/MediaGlobal.cs similarity index 97% rename from OpenRA.Mods.RA/Scripting/Global/MediaGlobal.cs rename to OpenRA.Mods.Common/Scripting/Global/MediaGlobal.cs index 463de6f73d..0d35e28a6f 100644 --- a/OpenRA.Mods.RA/Scripting/Global/MediaGlobal.cs +++ b/OpenRA.Mods.Common/Scripting/Global/MediaGlobal.cs @@ -13,7 +13,7 @@ using System.Drawing; using Eluant; using OpenRA.Scripting; -namespace OpenRA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptGlobal("Media")] public class MediaGlobal : ScriptGlobal diff --git a/OpenRA.Mods.RA/Scripting/Global/PlayerGlobal.cs b/OpenRA.Mods.Common/Scripting/Global/PlayerGlobal.cs similarity index 94% rename from OpenRA.Mods.RA/Scripting/Global/PlayerGlobal.cs rename to OpenRA.Mods.Common/Scripting/Global/PlayerGlobal.cs index 92416040e0..db9a1ea08b 100644 --- a/OpenRA.Mods.RA/Scripting/Global/PlayerGlobal.cs +++ b/OpenRA.Mods.Common/Scripting/Global/PlayerGlobal.cs @@ -10,8 +10,9 @@ using System.Linq; using Eluant; +using OpenRA.Scripting; -namespace OpenRA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptGlobal("Player")] public class PlayerGlobal : ScriptGlobal diff --git a/OpenRA.Mods.RA/Scripting/Global/TriggerGlobal.cs b/OpenRA.Mods.Common/Scripting/Global/TriggerGlobal.cs similarity index 99% rename from OpenRA.Mods.RA/Scripting/Global/TriggerGlobal.cs rename to OpenRA.Mods.Common/Scripting/Global/TriggerGlobal.cs index 1c48768fa4..4233c5604b 100644 --- a/OpenRA.Mods.RA/Scripting/Global/TriggerGlobal.cs +++ b/OpenRA.Mods.Common/Scripting/Global/TriggerGlobal.cs @@ -15,7 +15,7 @@ using Eluant; using OpenRA.Effects; using OpenRA.Scripting; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptGlobal("Trigger")] public class TriggerGlobal : ScriptGlobal diff --git a/OpenRA.Mods.RA/Scripting/Global/UtilsGlobal.cs b/OpenRA.Mods.Common/Scripting/Global/UtilsGlobal.cs similarity index 98% rename from OpenRA.Mods.RA/Scripting/Global/UtilsGlobal.cs rename to OpenRA.Mods.Common/Scripting/Global/UtilsGlobal.cs index 96180de80f..4b0d2f3a54 100644 --- a/OpenRA.Mods.RA/Scripting/Global/UtilsGlobal.cs +++ b/OpenRA.Mods.Common/Scripting/Global/UtilsGlobal.cs @@ -13,7 +13,7 @@ using Eluant; using OpenRA.Scripting; using OpenRA.Traits; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptGlobal("Utils")] public class UtilsGlobal : ScriptGlobal diff --git a/OpenRA.Mods.RA/Scripting/LuaScript.cs b/OpenRA.Mods.Common/Scripting/LuaScript.cs similarity index 97% rename from OpenRA.Mods.RA/Scripting/LuaScript.cs rename to OpenRA.Mods.Common/Scripting/LuaScript.cs index 9a3b8bba15..fff11d7fe5 100644 --- a/OpenRA.Mods.RA/Scripting/LuaScript.cs +++ b/OpenRA.Mods.Common/Scripting/LuaScript.cs @@ -14,7 +14,7 @@ using OpenRA.Mods.Common; using OpenRA.Scripting; using OpenRA.Traits; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [Desc("Part of the new Lua API.")] public class LuaScriptInfo : ITraitInfo, Requires diff --git a/OpenRA.Mods.RA/Scripting/Media.cs b/OpenRA.Mods.Common/Scripting/Media.cs similarity index 96% rename from OpenRA.Mods.RA/Scripting/Media.cs rename to OpenRA.Mods.Common/Scripting/Media.cs index 2e95e13d5c..79716f348d 100644 --- a/OpenRA.Mods.RA/Scripting/Media.cs +++ b/OpenRA.Mods.Common/Scripting/Media.cs @@ -12,7 +12,7 @@ using System; using System.IO; using OpenRA.Widgets; -namespace OpenRA.Scripting +namespace OpenRA.Mods.Common.Scripting { public static class Media { diff --git a/OpenRA.Mods.RA/Scripting/Properties/DiplomacyProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/DiplomacyProperties.cs similarity index 96% rename from OpenRA.Mods.RA/Scripting/Properties/DiplomacyProperties.cs rename to OpenRA.Mods.Common/Scripting/Properties/DiplomacyProperties.cs index 51ee35f965..004c2af647 100644 --- a/OpenRA.Mods.RA/Scripting/Properties/DiplomacyProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/DiplomacyProperties.cs @@ -14,7 +14,7 @@ using OpenRA.Network; using OpenRA.Scripting; using OpenRA.Traits; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptPropertyGroup("Diplomacy")] public class DiplomacyProperties : ScriptPlayerProperties diff --git a/OpenRA.Mods.Common/Scripting/Properties/HealthProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/HealthProperties.cs new file mode 100644 index 0000000000..76c15ec2fd --- /dev/null +++ b/OpenRA.Mods.Common/Scripting/Properties/HealthProperties.cs @@ -0,0 +1,42 @@ +#region Copyright & License Information +/* + * Copyright 2007-2014 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; +using OpenRA.Traits; + +namespace OpenRA.Mods.Common.Scripting +{ + [ScriptPropertyGroup("General")] + public class HealthProperties : ScriptActorProperties, Requires + { + Health health; + public HealthProperties(ScriptContext context, Actor self) + : base(context, self) + { + health = self.Trait(); + } + + [Desc("Current health of the actor.")] + public int Health + { + get { return health.HP; } + set { health.InflictDamage(self, self, health.HP - value, null, true); } + } + + [Desc("Maximum health of the actor.")] + public int MaxHealth { get { return health.MaxHP; } } + + [Desc("Kill the actor.")] + public void Kill() + { + health.InflictDamage(self, self, health.MaxHP, null, true); + } + } +} diff --git a/OpenRA.Mods.RA/Scripting/Properties/PowerProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/PowerProperties.cs similarity index 97% rename from OpenRA.Mods.RA/Scripting/Properties/PowerProperties.cs rename to OpenRA.Mods.Common/Scripting/Properties/PowerProperties.cs index dd1fd455df..e1eff38431 100644 --- a/OpenRA.Mods.RA/Scripting/Properties/PowerProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/PowerProperties.cs @@ -14,7 +14,7 @@ using OpenRA.Mods.Common.Power; using OpenRA.Scripting; using OpenRA.Traits; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptPropertyGroup("Power")] public class PlayerPowerProperties : ScriptPlayerProperties, Requires diff --git a/OpenRA.Mods.RA/Scripting/Properties/ResourceProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/ResourceProperties.cs similarity index 96% rename from OpenRA.Mods.RA/Scripting/Properties/ResourceProperties.cs rename to OpenRA.Mods.Common/Scripting/Properties/ResourceProperties.cs index 377d0bce17..ca12cc0518 100644 --- a/OpenRA.Mods.RA/Scripting/Properties/ResourceProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/ResourceProperties.cs @@ -12,7 +12,7 @@ using System; using OpenRA.Scripting; using OpenRA.Traits; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptPropertyGroup("Resources")] public class ResourceProperties : ScriptPlayerProperties, Requires diff --git a/OpenRA.Mods.RA/Scripting/Properties/UpgradeProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/UpgradeProperties.cs similarity index 95% rename from OpenRA.Mods.RA/Scripting/Properties/UpgradeProperties.cs rename to OpenRA.Mods.Common/Scripting/Properties/UpgradeProperties.cs index 9af6e5a129..526b227bdf 100644 --- a/OpenRA.Mods.RA/Scripting/Properties/UpgradeProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/UpgradeProperties.cs @@ -8,11 +8,10 @@ */ #endregion -using OpenRA.Mods.Common; using OpenRA.Scripting; using OpenRA.Traits; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { [ScriptPropertyGroup("General")] public class UpgradeProperties : ScriptActorProperties, Requires diff --git a/OpenRA.Mods.RA/Scripting/ScriptTriggers.cs b/OpenRA.Mods.Common/Scripting/ScriptTriggers.cs similarity index 99% rename from OpenRA.Mods.RA/Scripting/ScriptTriggers.cs rename to OpenRA.Mods.Common/Scripting/ScriptTriggers.cs index f2bcb6b922..f2226e659c 100644 --- a/OpenRA.Mods.RA/Scripting/ScriptTriggers.cs +++ b/OpenRA.Mods.Common/Scripting/ScriptTriggers.cs @@ -16,7 +16,7 @@ using OpenRA.Primitives; using OpenRA.Scripting; using OpenRA.Traits; -namespace OpenRA.Mods.RA.Scripting +namespace OpenRA.Mods.Common.Scripting { public enum Trigger { OnIdle, OnDamaged, OnKilled, OnProduction, OnOtherProduction, OnPlayerWon, OnPlayerLost, OnObjectiveAdded, OnObjectiveCompleted, OnObjectiveFailed, OnCapture, OnInfiltrated, OnAddedToWorld, OnRemovedFromWorld }; diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index d14b5d242f..249aa5fa02 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -164,6 +164,7 @@ + @@ -238,7 +239,6 @@ - @@ -277,7 +277,6 @@ - @@ -396,26 +395,14 @@ - - - - - + - - - - - - - - + - @@ -449,7 +436,6 @@ - @@ -457,8 +443,6 @@ - - @@ -468,7 +452,6 @@ - diff --git a/OpenRA.Mods.RA/Scripting/Properties/GeneralProperties.cs b/OpenRA.Mods.RA/Scripting/Properties/GeneralProperties.cs index 6b25b45e23..70793f2ac6 100644 --- a/OpenRA.Mods.RA/Scripting/Properties/GeneralProperties.cs +++ b/OpenRA.Mods.RA/Scripting/Properties/GeneralProperties.cs @@ -9,6 +9,7 @@ #endregion using Eluant; +using OpenRA.Mods.Common.Activities; using OpenRA.Mods.RA.Activities; using OpenRA.Scripting; using OpenRA.Traits; diff --git a/OpenRA.Mods.RA/Scripting/Properties/ProductionProperties.cs b/OpenRA.Mods.RA/Scripting/Properties/ProductionProperties.cs index 8133ae0f94..e2178ea603 100644 --- a/OpenRA.Mods.RA/Scripting/Properties/ProductionProperties.cs +++ b/OpenRA.Mods.RA/Scripting/Properties/ProductionProperties.cs @@ -13,6 +13,7 @@ using System; using System.Collections.Generic; using System.Linq; using OpenRA.Mods.Common; +using OpenRA.Mods.Common.Scripting; using OpenRA.Mods.RA.Activities; using OpenRA.Scripting; using OpenRA.Traits; diff --git a/OpenRA.Mods.RA/Scripting/Properties/HealthProperties.cs b/OpenRA.Mods.RA/Scripting/Properties/RepairableBuildingProperties.cs similarity index 66% rename from OpenRA.Mods.RA/Scripting/Properties/HealthProperties.cs rename to OpenRA.Mods.RA/Scripting/Properties/RepairableBuildingProperties.cs index b7f3793b43..d60bab6065 100644 --- a/OpenRA.Mods.RA/Scripting/Properties/HealthProperties.cs +++ b/OpenRA.Mods.RA/Scripting/Properties/RepairableBuildingProperties.cs @@ -14,33 +14,6 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA.Scripting { - [ScriptPropertyGroup("General")] - public class HealthProperties : ScriptActorProperties, Requires - { - Health health; - public HealthProperties(ScriptContext context, Actor self) - : base(context, self) - { - health = self.Trait(); - } - - [Desc("Current health of the actor.")] - public int Health - { - get { return health.HP; } - set { health.InflictDamage(self, self, health.HP - value, null, true); } - } - - [Desc("Maximum health of the actor.")] - public int MaxHealth { get { return health.MaxHP; } } - - [Desc("Kill the actor.")] - public void Kill() - { - health.InflictDamage(self, self, health.MaxHP, null, true); - } - } - [ScriptPropertyGroup("General")] public class RepairableBuildingProperties : ScriptActorProperties, Requires { @@ -70,4 +43,4 @@ namespace OpenRA.Mods.RA.Scripting rb.RepairBuilding(self, repairer); } } -} \ No newline at end of file +} diff --git a/OpenRA.Mods.RA/Traits/Air/Aircraft.cs b/OpenRA.Mods.RA/Traits/Air/Aircraft.cs index e5ea53f0c4..e27d7e450a 100644 --- a/OpenRA.Mods.RA/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.RA/Traits/Air/Aircraft.cs @@ -11,6 +11,7 @@ using System; using System.Collections.Generic; using System.Linq; +using OpenRA.Mods.Common; using OpenRA.Mods.Common.Orders; using OpenRA.Mods.RA; using OpenRA.Mods.RA.Activities; @@ -20,7 +21,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA.Traits { - public class AircraftInfo : ITraitInfo, IFacingInfo, IOccupySpaceInfo, UsesInit, UsesInit + public class AircraftInfo : ITraitInfo, IFacingInfo, IOccupySpaceInfo, ICruiseAltitudeInfo, UsesInit, UsesInit { public readonly WRange CruiseAltitude = new WRange(1280); public readonly WRange IdealSeparation = new WRange(1706); @@ -43,6 +44,7 @@ namespace OpenRA.Mods.RA.Traits public virtual object Create(ActorInitializer init) { return new Aircraft(init, this); } public int GetInitialFacing() { return InitialFacing; } + public WRange GetCruiseAltitude() { return CruiseAltitude; } } public class Aircraft : IFacing, IPositionable, ISync, INotifyKilled, IIssueOrder, IOrderVoice, INotifyAddedToWorld, INotifyRemovedFromWorld diff --git a/OpenRA.Mods.RA/Widgets/Logic/Ingame/LeaveMapLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/Ingame/LeaveMapLogic.cs index e64d472361..d030dd697c 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/Ingame/LeaveMapLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/Ingame/LeaveMapLogic.cs @@ -11,8 +11,8 @@ using System; using System.Drawing; using System.Linq; +using OpenRA.Mods.Common.Scripting; using OpenRA.Mods.Common.Traits; -using OpenRA.Mods.RA.Scripting; using OpenRA.Network; using OpenRA.Traits; using OpenRA.Widgets;