fix invincible aircraft, infantry

This commit is contained in:
Bob
2010-11-05 20:18:52 +13:00
committed by Chris Forbes
parent 480c5edd75
commit 85a26ecdf7
3 changed files with 15 additions and 7 deletions

View File

@@ -200,7 +200,7 @@ namespace OpenRA
{
World.AddFrameEndTask( w =>
{
if (Destroyed || !IsInWorld) return;
if (Destroyed) return;
World.Remove( this );
World.traitDict.RemoveActor( this );

View File

@@ -141,9 +141,14 @@ namespace OpenRA.Network
}
default:
{
if (!order.IsImmediate)
foreach (var t in order.Subject.TraitsImplementing<IResolveOrder>())
t.ResolveOrder(order.Subject, order);
if( !order.IsImmediate )
{
var self = order.Subject;
var health = self.TraitOrDefault<Health>();
if( health == null || !health.IsDead )
foreach( var t in self.TraitsImplementing<IResolveOrder>() )
t.ResolveOrder( self, order );
}
break;
}
}

View File

@@ -146,9 +146,12 @@ namespace OpenRA.Mods.RA
public void Damaged(Actor self, AttackInfo e)
{
if (e.DamageStateChanged && e.DamageState == DamageState.Dead)
foreach (var c in cargo)
c.Kill(e.Attacker);
if( e.DamageStateChanged && e.DamageState == DamageState.Dead )
{
foreach( var c in cargo )
c.Destroy();
cargo.Clear();
}
}
}
}