Unreserve reservation on death.
This commit is contained in:
@@ -25,7 +25,7 @@ namespace OpenRA.Mods.RA.Air
|
|||||||
public override object Create( ActorInitializer init ) { return new Plane( init, this ); }
|
public override object Create( ActorInitializer init ) { return new Plane( init, this ); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Plane : Aircraft, IIssueOrder, IResolveOrder, IOrderVoice, ITick
|
public class Plane : Aircraft, IIssueOrder, IResolveOrder, IOrderVoice, ITick, INotifyDamage
|
||||||
{
|
{
|
||||||
public IDisposable reservation;
|
public IDisposable reservation;
|
||||||
|
|
||||||
@@ -85,6 +85,12 @@ namespace OpenRA.Mods.RA.Air
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Damaged(Actor self, AttackInfo e)
|
||||||
|
{
|
||||||
|
if (e.DamageState == DamageState.Dead)
|
||||||
|
UnReserve();
|
||||||
|
}
|
||||||
|
|
||||||
public void ResolveOrder(Actor self, Order order)
|
public void ResolveOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
if (order.OrderString == "Move")
|
if (order.OrderString == "Move")
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ namespace OpenRA.Mods.RA
|
|||||||
public class Reservable : ITick
|
public class Reservable : ITick
|
||||||
{
|
{
|
||||||
Actor reservedFor;
|
Actor reservedFor;
|
||||||
//Actor self;
|
|
||||||
|
|
||||||
//public Reservable(Actor self) { this.self = self; }
|
|
||||||
|
|
||||||
public void Tick(Actor self)
|
public void Tick(Actor self)
|
||||||
{
|
{
|
||||||
@@ -33,18 +30,10 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public IDisposable Reserve(Actor forActor)
|
public IDisposable Reserve(Actor forActor)
|
||||||
{
|
{
|
||||||
//if (reservedFor != null)
|
|
||||||
// Game.Debug("BUG: #{0} {1} was already reserved (by #{2} {3})".F(
|
|
||||||
// self.ActorID, self.Info.Name, reservedFor.ActorID, reservedFor.Info.Name));
|
|
||||||
|
|
||||||
reservedFor = forActor;
|
reservedFor = forActor;
|
||||||
//Game.Debug("#{0} {1} reserved by #{2} {3}".F(
|
|
||||||
// self.ActorID, self.Info.Name, forActor.ActorID, forActor.Info.Name));
|
|
||||||
|
|
||||||
return new DisposableAction(() =>
|
return new DisposableAction(() =>
|
||||||
{
|
{
|
||||||
//Game.Debug("#{0} {1} unreserved".F(
|
|
||||||
// self.ActorID, self.Info.Name));
|
|
||||||
reservedFor = null;
|
reservedFor = null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user