Fix CursorForOrderString to work with orders + preliminary e6 fixes
This commit is contained in:
@@ -23,32 +23,25 @@ namespace OpenRA.Mods.RA.Activities
|
||||
public IActivity Tick(Actor self)
|
||||
{
|
||||
if (target == null || target.IsDead) return NextActivity;
|
||||
var damage = -self.Info.Traits.Get<EngineerCaptureInfo>().EngineerDamage;
|
||||
if (self.Owner.Stances[ target.Owner ] == Stance.Ally)
|
||||
var damage = self.Info.Traits.Get<EngineerCaptureInfo>().EngineerDamage;
|
||||
|
||||
if (target.Health - damage <= 0)
|
||||
{
|
||||
if (target.Health == target.Info.Traits.Get<OwnedActorInfo>().HP)
|
||||
return NextActivity;
|
||||
target.InflictDamage(self, damage, null);
|
||||
target.World.AddFrameEndTask(w =>
|
||||
{
|
||||
// momentarily remove from world so the ownership queries don't get confused
|
||||
w.Remove(target);
|
||||
target.Owner = self.Owner;
|
||||
w.Add(target);
|
||||
|
||||
foreach (var t in target.traits.WithInterface<INotifyCapture>())
|
||||
t.OnCapture(target, self);
|
||||
});
|
||||
|
||||
target.InflictDamage(self, target.Health - damage, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (target.Health - damage <= 0)
|
||||
{
|
||||
target.World.AddFrameEndTask(w =>
|
||||
{ // momentarily remove from world so the ownership queries don't get confused
|
||||
w.Remove(target);
|
||||
target.Owner = self.Owner;
|
||||
w.Add(target);
|
||||
|
||||
foreach (var t in target.traits.WithInterface<INotifyCapture>())
|
||||
t.OnCapture(target, self);
|
||||
});
|
||||
|
||||
target.InflictDamage(self, target.Health - damage, null);
|
||||
}
|
||||
else
|
||||
target.InflictDamage(self, damage, null);
|
||||
}
|
||||
target.InflictDamage(self, damage, null);
|
||||
|
||||
// the engineer is sacrificed.
|
||||
self.World.AddFrameEndTask(w => w.Remove(self));
|
||||
|
||||
Reference in New Issue
Block a user