This commit is contained in:
Matthias Mailänder
2014-06-21 21:15:14 +02:00
parent 69ddcf3fee
commit d3d74c4e5f
2 changed files with 10 additions and 10 deletions

View File

@@ -44,17 +44,17 @@ namespace OpenRA.Mods.RA.Activities
} }
var ml = self.Trait<Minelayer>(); var ml = self.Trait<Minelayer>();
if (ml.minefield.Contains(self.Location) && if (ml.Minefield.Contains(self.Location) &&
ShouldLayMine(self, self.Location)) ShouldLayMine(self, self.Location))
{ {
LayMine(self); LayMine(self);
return Util.SequenceActivities(new Wait(20), this); // a little wait after placing each mine, for show return Util.SequenceActivities(new Wait(20), this); // a little wait after placing each mine, for show
} }
if (ml.minefield.Length > 0) if (ml.Minefield.Length > 0)
for (var n = 0; n < 20; n++) // dont get stuck forever here for (var n = 0; n < 20; n++) // dont get stuck forever here
{ {
var p = ml.minefield.Random(self.World.SharedRandom); var p = ml.Minefield.Random(self.World.SharedRandom);
if (ShouldLayMine(self, p)) if (ShouldLayMine(self, p))
return Util.SequenceActivities( movement.MoveTo(p, 0), this ); return Util.SequenceActivities( movement.MoveTo(p, 0), this );
} }

View File

@@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA
class Minelayer : IIssueOrder, IResolveOrder, IPostRenderSelection, ISync class Minelayer : IIssueOrder, IResolveOrder, IPostRenderSelection, ISync
{ {
/* [Sync] when sync can cope with arrays! */ /* [Sync] when sync can cope with arrays! */
public CPos[] minefield = null; public CPos[] Minefield = null;
[Sync] CPos minefieldStart; [Sync] CPos minefieldStart;
Actor self; Actor self;
Sprite tile; Sprite tile;
@@ -67,7 +67,7 @@ namespace OpenRA.Mods.RA
{ {
var movement = self.Trait<IPositionable>(); var movement = self.Trait<IPositionable>();
minefield = GetMinefieldCells(minefieldStart, order.TargetLocation, Minefield = GetMinefieldCells(minefieldStart, order.TargetLocation,
self.Info.Traits.Get<MinelayerInfo>().MinefieldDepth) self.Info.Traits.Get<MinelayerInfo>().MinefieldDepth)
.Where(p => movement.CanEnterCell(p)).ToArray(); .Where(p => movement.CanEnterCell(p)).ToArray();
@@ -98,11 +98,11 @@ namespace OpenRA.Mods.RA
public void RenderAfterWorld(WorldRenderer wr) public void RenderAfterWorld(WorldRenderer wr)
{ {
if (self.Owner != self.World.LocalPlayer || minefield == null) if (self.Owner != self.World.LocalPlayer || Minefield == null)
return; return;
var pal = wr.Palette("terrain"); var pal = wr.Palette("terrain");
foreach (var c in minefield) foreach (var c in Minefield)
new SpriteRenderable(tile, c.CenterPosition, new SpriteRenderable(tile, c.CenterPosition,
WVec.Zero, -511, pal, 1f, true).Render(wr); WVec.Zero, -511, pal, 1f, true).Render(wr);
} }