Fix AutoHeal
This commit is contained in:
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
/* non-turreted attack */
|
/* non-turreted attack */
|
||||||
public class Attack : CancelableActivity
|
public class Attack : CancelableActivity
|
||||||
{
|
{
|
||||||
Target Target;
|
protected Target Target;
|
||||||
ITargetable targetable;
|
ITargetable targetable;
|
||||||
int Range;
|
int Range;
|
||||||
bool AllowMovement;
|
bool AllowMovement;
|
||||||
@@ -47,7 +47,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
IActivity InnerTick( Actor self, AttackBase attack )
|
protected virtual IActivity InnerTick( Actor self, AttackBase attack )
|
||||||
{
|
{
|
||||||
if (IsCanceled) return NextActivity;
|
if (IsCanceled) return NextActivity;
|
||||||
var facing = self.Trait<IFacing>();
|
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="Widgets\Delegates\VideoPlayerDelegate.cs" />
|
||||||
<Compile Include="TargetableSubmarine.cs" />
|
<Compile Include="TargetableSubmarine.cs" />
|
||||||
<Compile Include="Effects\RallyPoint.cs" />
|
<Compile Include="Effects\RallyPoint.cs" />
|
||||||
|
<Compile Include="AttackMedic.cs" />
|
||||||
|
<Compile Include="Activities\Heal.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
||||||
|
|||||||
@@ -253,14 +253,14 @@ MEDI:
|
|||||||
Passenger:
|
Passenger:
|
||||||
PipType: Yellow
|
PipType: Yellow
|
||||||
AutoHeal:
|
AutoHeal:
|
||||||
AttackFrontal:
|
AttackMedic:
|
||||||
PrimaryWeapon: Heal
|
PrimaryWeapon: Heal
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
AttackMove:
|
AttackMove:
|
||||||
JustMove: true
|
JustMove: true
|
||||||
# IdleAnimation:
|
IdleAnimation:
|
||||||
# Animations: idle1,idle2
|
Animations: idle1,idle2
|
||||||
|
|
||||||
C1:
|
C1:
|
||||||
Inherits: ^Infantry
|
Inherits: ^Infantry
|
||||||
|
|||||||
Reference in New Issue
Block a user