SetTargetSilently for DrawLineToTarget
This commit is contained in:
@@ -38,6 +38,12 @@ namespace OpenRA.Traits
|
|||||||
this.c = c;
|
this.c = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetTargetSilently(Actor self, Target target, Color c)
|
||||||
|
{
|
||||||
|
this.target = target;
|
||||||
|
this.c = c;
|
||||||
|
}
|
||||||
|
|
||||||
public void Render (Actor self)
|
public void Render (Actor self)
|
||||||
{
|
{
|
||||||
var force = Game.controller.GetModifiers().HasModifier(Modifiers.Alt);
|
var force = Game.controller.GetModifiers().HasModifier(Modifiers.Alt);
|
||||||
|
|||||||
@@ -286,6 +286,13 @@ namespace OpenRA.Traits
|
|||||||
if (moveTo.HasValue)
|
if (moveTo.HasValue)
|
||||||
{
|
{
|
||||||
self.CancelActivity();
|
self.CancelActivity();
|
||||||
|
if (self.Owner == self.World.LocalPlayer)
|
||||||
|
self.World.AddFrameEndTask(w =>
|
||||||
|
{
|
||||||
|
var line = self.traits.GetOrDefault<DrawLineToTarget>();
|
||||||
|
if (line != null)
|
||||||
|
line.SetTargetSilently(self, Target.FromCell(moveTo.Value), Color.Green);
|
||||||
|
});
|
||||||
self.QueueActivity(new Move(moveTo.Value, 0));
|
self.QueueActivity(new Move(moveTo.Value, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.GameRules;
|
using OpenRA.GameRules;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
namespace OpenRA.Traits
|
namespace OpenRA.Traits
|
||||||
{
|
{
|
||||||
@@ -63,11 +64,28 @@ namespace OpenRA.Traits
|
|||||||
var mobile = newUnit.traits.GetOrDefault<Mobile>();
|
var mobile = newUnit.traits.GetOrDefault<Mobile>();
|
||||||
if (mobile != null)
|
if (mobile != null)
|
||||||
{
|
{
|
||||||
|
int2? target = null;
|
||||||
if (pi.ExitOffset != null)
|
if (pi.ExitOffset != null)
|
||||||
newUnit.QueueActivity(new Activities.Move(ExitLocation(self, producee).Value, 1));
|
{
|
||||||
|
target = ExitLocation(self, producee).Value;
|
||||||
|
newUnit.QueueActivity(new Activities.Move(target.Value, 1));
|
||||||
|
}
|
||||||
|
|
||||||
if (rp != null)
|
if (rp != null)
|
||||||
newUnit.QueueActivity(new Activities.Move(rp.rallyPoint, 1));
|
{
|
||||||
|
target = rp.rallyPoint;
|
||||||
|
newUnit.QueueActivity(new Activities.Move(target.Value, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target != null && newUnit.Owner == self.World.LocalPlayer)
|
||||||
|
{
|
||||||
|
self.World.AddFrameEndTask(w =>
|
||||||
|
{
|
||||||
|
var line = newUnit.traits.GetOrDefault<DrawLineToTarget>();
|
||||||
|
if (line != null)
|
||||||
|
line.SetTargetSilently(newUnit, Target.FromCell(target.Value), Color.Green);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="CriticalBuildingState.cs" />
|
<Compile Include="CriticalBuildingState.cs" />
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Drawing;
|
||||||
using OpenRA.GameRules;
|
using OpenRA.GameRules;
|
||||||
using OpenRA.Mods.RA;
|
using OpenRA.Mods.RA;
|
||||||
using OpenRA.Mods.RA.Activities;
|
using OpenRA.Mods.RA.Activities;
|
||||||
@@ -62,6 +63,12 @@ namespace OpenRA.Mods.Cnc
|
|||||||
actor.CancelActivity();
|
actor.CancelActivity();
|
||||||
actor.QueueActivity(new Move(self.Location + exitOffset, self));
|
actor.QueueActivity(new Move(self.Location + exitOffset, self));
|
||||||
actor.QueueActivity(new Move(rp.rallyPoint, 0));
|
actor.QueueActivity(new Move(rp.rallyPoint, 0));
|
||||||
|
if (actor.Owner == self.World.LocalPlayer)
|
||||||
|
{
|
||||||
|
var line = actor.traits.GetOrDefault<DrawLineToTarget>();
|
||||||
|
if (line != null)
|
||||||
|
line.SetTargetSilently(actor, Target.FromCell(rp.rallyPoint), Color.Green);
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var t in self.traits.WithInterface<INotifyProduction>())
|
foreach (var t in self.traits.WithInterface<INotifyProduction>())
|
||||||
t.UnitProduced(self, actor);
|
t.UnitProduced(self, actor);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System.Drawing;
|
||||||
using OpenRA.Mods.RA;
|
using OpenRA.Mods.RA;
|
||||||
using OpenRA.Mods.RA.Activities;
|
using OpenRA.Mods.RA.Activities;
|
||||||
using OpenRA.Mods.RA.Render;
|
using OpenRA.Mods.RA.Render;
|
||||||
@@ -50,8 +51,17 @@ namespace OpenRA.Mods.Cnc
|
|||||||
harv.QueueActivity( new CallFunc( () => harvester.Visible = true, false ) );
|
harv.QueueActivity( new CallFunc( () => harvester.Visible = true, false ) );
|
||||||
harv.QueueActivity( new Drag(endDock, startDock, 12) );
|
harv.QueueActivity( new Drag(endDock, startDock, 12) );
|
||||||
harv.QueueActivity( new CallFunc( () => dockedHarv = null, false ) );
|
harv.QueueActivity( new CallFunc( () => dockedHarv = null, false ) );
|
||||||
if (harvester.LastHarvestedCell != int2.Zero)
|
if (harvester.LastHarvestedCell != int2.Zero)
|
||||||
harv.QueueActivity( new Move(harvester.LastHarvestedCell, 5) );
|
{
|
||||||
|
harv.QueueActivity( new Move(harvester.LastHarvestedCell, 5) );
|
||||||
|
if (harv.Owner == self.World.LocalPlayer)
|
||||||
|
self.World.AddFrameEndTask( w =>
|
||||||
|
{
|
||||||
|
var line = harv.traits.GetOrDefault<DrawLineToTarget>();
|
||||||
|
if (line != null)
|
||||||
|
line.SetTargetSilently(harv, Target.FromCell(harvester.LastHarvestedCell), Color.Green);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
harv.QueueActivity( new Harvest() );
|
harv.QueueActivity( new Harvest() );
|
||||||
}) );
|
}) );
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ using System.Linq;
|
|||||||
using OpenRA.Mods.RA.Render;
|
using OpenRA.Mods.RA.Render;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
using OpenRA.Traits.Activities;
|
using OpenRA.Traits.Activities;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA.Activities
|
namespace OpenRA.Mods.RA.Activities
|
||||||
{
|
{
|
||||||
@@ -71,6 +72,12 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
actor.traits.WithInterface<IMove>().FirstOrDefault().SetPosition(actor, self.Location);
|
actor.traits.WithInterface<IMove>().FirstOrDefault().SetPosition(actor, self.Location);
|
||||||
actor.CancelActivity();
|
actor.CancelActivity();
|
||||||
actor.QueueActivity(new Move(exitTile.Value, 0));
|
actor.QueueActivity(new Move(exitTile.Value, 0));
|
||||||
|
if (actor.Owner == self.World.LocalPlayer)
|
||||||
|
{
|
||||||
|
var line = actor.traits.GetOrDefault<DrawLineToTarget>();
|
||||||
|
if (line != null)
|
||||||
|
line.SetTargetSilently(self, Target.FromCell(exitTile.Value), Color.Green);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
using OpenRA.Mods.RA.Activities;
|
using OpenRA.Mods.RA.Activities;
|
||||||
using OpenRA.Mods.RA.Render;
|
using OpenRA.Mods.RA.Render;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
using OpenRA.Traits.Activities;
|
using OpenRA.Traits.Activities;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
namespace OpenRA.Mods.RA
|
||||||
{
|
{
|
||||||
@@ -39,8 +40,17 @@ namespace OpenRA.Mods.RA
|
|||||||
harvester.Deliver(harv, self);
|
harvester.Deliver(harv, self);
|
||||||
harv.QueueActivity( new CallFunc( () => dockedHarv = null, false ) );
|
harv.QueueActivity( new CallFunc( () => dockedHarv = null, false ) );
|
||||||
|
|
||||||
if (harvester.LastHarvestedCell != int2.Zero)
|
if (harvester.LastHarvestedCell != int2.Zero)
|
||||||
harv.QueueActivity( new Move(harvester.LastHarvestedCell, 5) );
|
{
|
||||||
|
harv.QueueActivity( new Move(harvester.LastHarvestedCell, 5) );
|
||||||
|
if (harv.Owner == self.World.LocalPlayer)
|
||||||
|
self.World.AddFrameEndTask( w =>
|
||||||
|
{
|
||||||
|
var line = harv.traits.GetOrDefault<DrawLineToTarget>();
|
||||||
|
if (line != null)
|
||||||
|
line.SetTargetSilently(harv, Target.FromCell(harvester.LastHarvestedCell), Color.Green);
|
||||||
|
});
|
||||||
|
}
|
||||||
harv.QueueActivity( new Harvest() );
|
harv.QueueActivity( new Harvest() );
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ using System.Linq;
|
|||||||
using OpenRA.Mods.RA.Activities;
|
using OpenRA.Mods.RA.Activities;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
using OpenRA.Traits.Activities;
|
using OpenRA.Traits.Activities;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
namespace OpenRA.Mods.RA
|
||||||
{
|
{
|
||||||
@@ -47,6 +48,13 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
self.CancelActivity();
|
self.CancelActivity();
|
||||||
self.QueueActivity(new Move(order.TargetActor, 1));
|
self.QueueActivity(new Move(order.TargetActor, 1));
|
||||||
|
if (self.Owner == self.World.LocalPlayer)
|
||||||
|
self.World.AddFrameEndTask( w =>
|
||||||
|
{
|
||||||
|
var line = self.traits.GetOrDefault<DrawLineToTarget>();
|
||||||
|
if (line != null)
|
||||||
|
line.SetTargetSilently(self, Target.FromActor(order.TargetActor), Color.Green);
|
||||||
|
});
|
||||||
self.QueueActivity(new Repair(order.TargetActor));
|
self.QueueActivity(new Repair(order.TargetActor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
using OpenRA.Mods.RA.Activities;
|
using OpenRA.Mods.RA.Activities;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
using OpenRA.Traits.Activities;
|
using OpenRA.Traits.Activities;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
namespace OpenRA.Mods.RA
|
||||||
{
|
{
|
||||||
@@ -39,6 +40,13 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
self.CancelActivity();
|
self.CancelActivity();
|
||||||
self.QueueActivity(new Move(order.TargetActor, 1));
|
self.QueueActivity(new Move(order.TargetActor, 1));
|
||||||
|
if (self.Owner == self.World.LocalPlayer)
|
||||||
|
self.World.AddFrameEndTask( w =>
|
||||||
|
{
|
||||||
|
var line = self.traits.GetOrDefault<DrawLineToTarget>();
|
||||||
|
if (line != null)
|
||||||
|
line.SetTargetSilently(self, Target.FromActor(order.TargetActor), Color.Green);
|
||||||
|
});
|
||||||
self.QueueActivity(new Infiltrate(order.TargetActor));
|
self.QueueActivity(new Infiltrate(order.TargetActor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user