Fix AutoHeal
This commit is contained in:
@@ -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>();
|
||||
|
||||
32
OpenRA.Mods.RA/Activities/Heal.cs
Executable file
32
OpenRA.Mods.RA/Activities/Heal.cs
Executable 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
34
OpenRA.Mods.RA/AttackMedic.cs
Normal file
34
OpenRA.Mods.RA/AttackMedic.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
#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 System;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
public class AttackMedicInfo : AttackFrontalInfo
|
||||
{
|
||||
public override object Create( ActorInitializer init ) { return new AttackMedic( init.self, this ); }
|
||||
}
|
||||
|
||||
public class AttackMedic : AttackFrontal
|
||||
{
|
||||
public AttackMedic(Actor self, AttackMedicInfo info)
|
||||
: base( self, info ) {}
|
||||
|
||||
public override IActivity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
||||
{
|
||||
var weapon = ChooseWeaponForTarget(newTarget);
|
||||
if( weapon == null )
|
||||
return null;
|
||||
return new Activities.Heal(newTarget, Math.Max(0, (int)weapon.Info.Range), allowMove);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -323,6 +323,8 @@
|
||||
<Compile Include="Widgets\Delegates\VideoPlayerDelegate.cs" />
|
||||
<Compile Include="TargetableSubmarine.cs" />
|
||||
<Compile Include="Effects\RallyPoint.cs" />
|
||||
<Compile Include="AttackMedic.cs" />
|
||||
<Compile Include="Activities\Heal.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
||||
|
||||
@@ -253,14 +253,14 @@ MEDI:
|
||||
Passenger:
|
||||
PipType: Yellow
|
||||
AutoHeal:
|
||||
AttackFrontal:
|
||||
AttackMedic:
|
||||
PrimaryWeapon: Heal
|
||||
TakeCover:
|
||||
-AutoTarget:
|
||||
AttackMove:
|
||||
JustMove: true
|
||||
# IdleAnimation:
|
||||
# Animations: idle1,idle2
|
||||
IdleAnimation:
|
||||
Animations: idle1,idle2
|
||||
|
||||
C1:
|
||||
Inherits: ^Infantry
|
||||
|
||||
Reference in New Issue
Block a user