Fix AutoHeal

This commit is contained in:
Paul Chote
2010-11-30 13:37:10 +13:00
parent 2d224a207c
commit eb8682fd0e
5 changed files with 73 additions and 5 deletions

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Mods.RA.Activities
/* non-turreted attack */
public class Attack : CancelableActivity
{
Target Target;
protected Target Target;
ITargetable targetable;
int Range;
bool AllowMovement;
@@ -47,7 +47,7 @@ namespace OpenRA.Mods.RA.Activities
return ret;
}
IActivity InnerTick( Actor self, AttackBase attack )
protected virtual IActivity InnerTick( Actor self, AttackBase attack )
{
if (IsCanceled) return NextActivity;
var facing = self.Trait<IFacing>();

View File

@@ -0,0 +1,32 @@
#region Copyright & License Information
/*
* Copyright 2007-2010 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
* see LICENSE.
*/
#endregion
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
using OpenRA.Traits.Activities;
using OpenRA.Mods.RA.Move;
namespace OpenRA.Mods.RA.Activities
{
/* non-turreted attack */
public class Heal : Attack
{
public Heal(Target target, int range, bool allowMovement)
: base(target, range, allowMovement) {}
protected override IActivity InnerTick( Actor self, AttackBase attack )
{
if (Target.IsActor && Target.Actor.GetDamageState() == DamageState.Undamaged)
return NextActivity;
return base.InnerTick(self, attack);
}
}
}