This commit is contained in:
Paul Chote
2010-06-16 21:06:09 +12:00
parent 1088e30158
commit a0e4e40eaf
3 changed files with 12 additions and 13 deletions

View File

@@ -33,16 +33,16 @@ 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)
{
if (target.Health == target.Info.Traits.Get<OwnedActorInfo>().HP)
return NextActivity;
target.InflictDamage(self, -EngineerCapture.EngineerDamage, null);
target.InflictDamage(self, damage, null);
}
else
{
if (target.Health - EngineerCapture.EngineerDamage <= 0)
if (target.Health - damage <= 0)
{
target.World.AddFrameEndTask(w =>
{ // momentarily remove from world so the ownership queries don't get confused
@@ -54,10 +54,10 @@ namespace OpenRA.Mods.RA.Activities
t.OnCapture(target, self);
});
target.InflictDamage(self, target.Health - EngineerCapture.EngineerDamage, null);
target.InflictDamage(self, target.Health - damage, null);
}
else
target.InflictDamage(self, EngineerCapture.EngineerDamage, null);
target.InflictDamage(self, damage, null);
}
// the engineer is sacrificed.

View File

@@ -1,4 +1,4 @@
#region Copyright & License Information
#region Copyright & License Information
/*
* Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
* This file is part of OpenRA.
@@ -24,11 +24,13 @@ using OpenRA.Traits.Activities;
namespace OpenRA.Mods.RA
{
class EngineerCaptureInfo : TraitInfo<EngineerCapture> { }
class EngineerCaptureInfo : TraitInfo<EngineerCapture>
{
public readonly int EngineerDamage = 300;
}
class EngineerCapture : IIssueOrder, IResolveOrder
{
public const int EngineerDamage = 300; // todo: push into rules, as a weapon
public Order IssueOrder(Actor self, int2 xy, MouseInput mi, Actor underCursor)
{
@@ -39,7 +41,7 @@ namespace OpenRA.Mods.RA
// todo: other bits
if (underCursor.Owner == null) return null; // don't allow capturing of bridges, etc.
var isCapture = underCursor.Health <= EngineerDamage &&
var isCapture = underCursor.Health <= self.Info.Traits.Get<EngineerCaptureInfo>().EngineerDamage &&
self.Owner.Stances[underCursor.Owner] != Stance.Ally;
return new Order(isCapture ? "Capture" : "Infiltrate",

View File

@@ -120,14 +120,11 @@ E6:
Unit:
HP: 25
Speed: 4
AttackBase:
PrimaryWeapon: Chemspray
PrimaryOffset: 0,0,0,-5
FireDelay: 3
TakeCover:
Passenger:
ColorOfCargoPip: Yellow
EngineerCapture:
EngineerDamage: 9999999
-AutoTarget:
RMBO: