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 => World.AddFrameEndTask( w =>
{ {
if (Destroyed || !IsInWorld) return; if (Destroyed) return;
World.Remove( this ); World.Remove( this );
World.traitDict.RemoveActor( this ); World.traitDict.RemoveActor( this );

View File

@@ -142,8 +142,13 @@ namespace OpenRA.Network
default: default:
{ {
if( !order.IsImmediate ) if( !order.IsImmediate )
foreach (var t in order.Subject.TraitsImplementing<IResolveOrder>()) {
t.ResolveOrder(order.Subject, order); 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; break;
} }
} }

View File

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