add Util.RunActivity, and have Actor.Tick use it. fix medic autoheal

This commit is contained in:
Bob
2010-11-14 18:36:36 +13:00
parent d152d21338
commit 80e897abfb
16 changed files with 59 additions and 57 deletions

View File

@@ -17,18 +17,15 @@ namespace OpenRA.Mods.RA.Activities
public class QueuedActivity : IActivity
{
public QueuedActivity(Action<QueuedActivity> a) { this.a = a; }
public QueuedActivity(bool runChildOnFirstTick, Action<QueuedActivity> a) : this(a, true, runChildOnFirstTick) { }
public QueuedActivity(Action<QueuedActivity> a, bool interruptable, bool runChildOnFirstTick)
public QueuedActivity(Action<QueuedActivity> a, bool interruptable)
{
this.a = a;
this.interruptable = interruptable;
runChildOnFirstTick = runChildOnFirstTick;
}
Action<QueuedActivity> a;
private bool interruptable = true;
private bool runChild = false;
public IActivity NextActivity { get; set; }
public IActivity Tick(Actor self) { return Run(self); }
@@ -37,8 +34,6 @@ namespace OpenRA.Mods.RA.Activities
{
if (a != null)
a(this);
if (runChild && NextActivity != null)
return NextActivity.Tick(self);
return NextActivity;
}