fix invincible aircraft, infantry
This commit is contained in:
@@ -200,7 +200,7 @@ namespace OpenRA
|
||||
{
|
||||
World.AddFrameEndTask( w =>
|
||||
{
|
||||
if (Destroyed || !IsInWorld) return;
|
||||
if (Destroyed) return;
|
||||
|
||||
World.Remove( this );
|
||||
World.traitDict.RemoveActor( this );
|
||||
|
||||
@@ -142,8 +142,13 @@ namespace OpenRA.Network
|
||||
default:
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,8 +147,11 @@ 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);
|
||||
c.Destroy();
|
||||
cargo.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user