de-legacied Minelayer

This commit is contained in:
Bob
2010-01-12 19:53:20 +13:00
parent 0c473aa941
commit 5247039345
5 changed files with 18 additions and 4 deletions

View File

@@ -2,7 +2,15 @@
namespace OpenRa.Game.Traits namespace OpenRa.Game.Traits
{ {
class MinelayerInfo : StatelessTraitInfo<Minelayer> { } class MinelayerInfo : ITraitInfo
{
public readonly string Mine = "minv";
public object Create( Actor self )
{
return new Minelayer();
}
}
class Minelayer : IIssueOrder, IResolveOrder class Minelayer : IIssueOrder, IResolveOrder
{ {
@@ -33,7 +41,7 @@ namespace OpenRa.Game.Traits
// todo: delay a bit? (req making deploy-mine an activity) // todo: delay a bit? (req making deploy-mine an activity)
Game.world.AddFrameEndTask( Game.world.AddFrameEndTask(
w => w.Add(new Actor(self.LegacyInfo.Primary, self.Location, self.Owner))); w => w.Add(new Actor(self.Info.Traits.Get<MinelayerInfo>().Mine, self.Location, self.Owner)));
} }
} }
} }

View File

@@ -86,7 +86,7 @@ namespace OpenRa.Game.Traits
public UnitMovementType GetMovementType() public UnitMovementType GetMovementType()
{ {
switch (Rules.UnitCategory[self.LegacyInfo.Name]) switch (Rules.UnitCategory[self.Info.Name])
{ {
case "Infantry": case "Infantry":
return UnitMovementType.Foot; return UnitMovementType.Foot;

View File

@@ -36,7 +36,7 @@ namespace OpenRa.Game
var crusher = GetUnitsAt(cell).Where(b => a != b && Game.IsActorCrushableByActor(a, b)).FirstOrDefault(); var crusher = GetUnitsAt(cell).Where(b => a != b && Game.IsActorCrushableByActor(a, b)).FirstOrDefault();
if (crusher != null) 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 // Apply the crush action
foreach (var crush in a.traits.WithInterface<ICrushable>()) foreach (var crush in a.traits.WithInterface<ICrushable>())
crush.OnCrush(crusher); crush.OnCrush(crusher);

View File

@@ -149,6 +149,10 @@ namespace RulesConverter
{ "SpawnOffset", "SpawnOffset" }, { "SpawnOffset", "SpawnOffset" },
{ "Produces", "Produces" } } { "Produces", "Produces" } }
}, },
{ "Minelayer", new PL {
{ "Mine", "Primary" } }
},
}; };
traitMap["RenderUnit"] = traitMap["RenderBuilding"]; traitMap["RenderUnit"] = traitMap["RenderBuilding"];

View File

@@ -302,6 +302,7 @@ MNLY.AP:
RenderUnit: RenderUnit:
Image: MNLY Image: MNLY
Minelayer: Minelayer:
Mine: MINP
MineImmune: MineImmune:
LimitedAmmo: LimitedAmmo:
Ammo: 5 Ammo: 5
@@ -327,6 +328,7 @@ MNLY.AT:
RenderUnit: RenderUnit:
Image: MNLY Image: MNLY
Minelayer: Minelayer:
Mine: MINV
MineImmune: MineImmune:
LimitedAmmo: LimitedAmmo:
Ammo: 5 Ammo: 5