Added: OnOrder & OnTick event at UnitStance
This commit is contained in:
@@ -13,7 +13,6 @@ namespace OpenRA.Mods.RA
|
|||||||
public readonly bool Default = false;
|
public readonly bool Default = false;
|
||||||
public readonly int ScanDelayMin = 12;
|
public readonly int ScanDelayMin = 12;
|
||||||
public readonly int ScanDelayMax = 24;
|
public readonly int ScanDelayMax = 24;
|
||||||
|
|
||||||
#region ITraitInfo Members
|
#region ITraitInfo Members
|
||||||
|
|
||||||
public virtual object Create(ActorInitializer init)
|
public virtual object Create(ActorInitializer init)
|
||||||
@@ -32,6 +31,9 @@ namespace OpenRA.Mods.RA
|
|||||||
public UnitStanceInfo Info { get; protected set; }
|
public UnitStanceInfo Info { get; protected set; }
|
||||||
public abstract Color SelectionColor { get; }
|
public abstract Color SelectionColor { get; }
|
||||||
|
|
||||||
|
[Sync]
|
||||||
|
public bool AllowMultiTrigger { get; protected set; }
|
||||||
|
|
||||||
#region ITick Members
|
#region ITick Members
|
||||||
|
|
||||||
protected UnitStance(Actor self, UnitStanceInfo info)
|
protected UnitStance(Actor self, UnitStanceInfo info)
|
||||||
@@ -45,6 +47,13 @@ namespace OpenRA.Mods.RA
|
|||||||
if (!Active) return;
|
if (!Active) return;
|
||||||
|
|
||||||
TickScan(self);
|
TickScan(self);
|
||||||
|
|
||||||
|
OnTick(self);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnTick(Actor self)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TickScan(Actor self)
|
private void TickScan(Actor self)
|
||||||
@@ -76,7 +85,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public virtual void Activate(Actor self)
|
public virtual void Activate(Actor self)
|
||||||
{
|
{
|
||||||
if (Active) return;
|
if (Active && !AllowMultiTrigger) return;
|
||||||
|
|
||||||
Active = true;
|
Active = true;
|
||||||
NextScanTime = 0;
|
NextScanTime = 0;
|
||||||
@@ -195,11 +204,21 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public void ResolveOrder(Actor self, Order order)
|
public void ResolveOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
if (order.OrderString != OrderString)
|
if (order.OrderString == OrderString)
|
||||||
return;
|
{
|
||||||
|
|
||||||
// Its our order, activate the stance
|
// Its our order, activate the stance
|
||||||
Activate(self);
|
Activate(self);
|
||||||
|
return; // Do not call OnOrder on our own stance order
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Active) return;
|
||||||
|
|
||||||
|
OnOrder(self, order);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnOrder(Actor self, Order order)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void OrderStance(Actor self, UnitStance stance)
|
public static void OrderStance(Actor self, UnitStance stance)
|
||||||
|
|||||||
Reference in New Issue
Block a user