diff --git a/OpenRa.Game/Traits/Minelayer.cs b/OpenRa.Game/Traits/Minelayer.cs index 0f5c5194f6..0e6092f922 100644 --- a/OpenRa.Game/Traits/Minelayer.cs +++ b/OpenRa.Game/Traits/Minelayer.cs @@ -2,7 +2,15 @@ namespace OpenRa.Game.Traits { - class MinelayerInfo : StatelessTraitInfo { } + class MinelayerInfo : ITraitInfo + { + public readonly string Mine = "minv"; + + public object Create( Actor self ) + { + return new Minelayer(); + } + } class Minelayer : IIssueOrder, IResolveOrder { @@ -33,7 +41,7 @@ namespace OpenRa.Game.Traits // todo: delay a bit? (req making deploy-mine an activity) Game.world.AddFrameEndTask( - w => w.Add(new Actor(self.LegacyInfo.Primary, self.Location, self.Owner))); + w => w.Add(new Actor(self.Info.Traits.Get().Mine, self.Location, self.Owner))); } } } diff --git a/OpenRa.Game/Traits/Mobile.cs b/OpenRa.Game/Traits/Mobile.cs index 041ac270f4..bd2cf0e35f 100644 --- a/OpenRa.Game/Traits/Mobile.cs +++ b/OpenRa.Game/Traits/Mobile.cs @@ -86,7 +86,7 @@ namespace OpenRa.Game.Traits public UnitMovementType GetMovementType() { - switch (Rules.UnitCategory[self.LegacyInfo.Name]) + switch (Rules.UnitCategory[self.Info.Name]) { case "Infantry": return UnitMovementType.Foot; diff --git a/OpenRa.Game/UnitInfluenceMap.cs b/OpenRa.Game/UnitInfluenceMap.cs index 4d93aa7e3c..c796f52e0a 100644 --- a/OpenRa.Game/UnitInfluenceMap.cs +++ b/OpenRa.Game/UnitInfluenceMap.cs @@ -36,7 +36,7 @@ namespace OpenRa.Game var crusher = GetUnitsAt(cell).Where(b => a != b && Game.IsActorCrushableByActor(a, b)).FirstOrDefault(); if (crusher != null) { - Log.Write("{0} crushes {1}", crusher.LegacyInfo.Name, a.LegacyInfo.Name); + Log.Write("{0} crushes {1}", crusher.Info.Name, a.Info.Name); // Apply the crush action foreach (var crush in a.traits.WithInterface()) crush.OnCrush(crusher); diff --git a/RulesConverter/Program.cs b/RulesConverter/Program.cs index 714deb0797..b31943f87b 100644 --- a/RulesConverter/Program.cs +++ b/RulesConverter/Program.cs @@ -149,6 +149,10 @@ namespace RulesConverter { "SpawnOffset", "SpawnOffset" }, { "Produces", "Produces" } } }, + + { "Minelayer", new PL { + { "Mine", "Primary" } } + }, }; traitMap["RenderUnit"] = traitMap["RenderBuilding"]; diff --git a/ra.yaml b/ra.yaml index 0baafddc40..550acc3110 100644 --- a/ra.yaml +++ b/ra.yaml @@ -302,6 +302,7 @@ MNLY.AP: RenderUnit: Image: MNLY Minelayer: + Mine: MINP MineImmune: LimitedAmmo: Ammo: 5 @@ -327,6 +328,7 @@ MNLY.AT: RenderUnit: Image: MNLY Minelayer: + Mine: MINV MineImmune: LimitedAmmo: Ammo: 5