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

@@ -141,9 +141,14 @@ 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

@@ -146,9 +146,12 @@ 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) {
c.Kill(e.Attacker); foreach( var c in cargo )
c.Destroy();
cargo.Clear();
}
} }
} }
} }