factor out some hardcoded constants from various Heli activities

This commit is contained in:
Chris Forbes
2010-05-02 15:10:52 +12:00
parent 104d188d9b
commit 4bd195e21c
3 changed files with 9 additions and 8 deletions

View File

@@ -27,8 +27,6 @@ namespace OpenRA.Traits.Activities
class HeliAttack : IActivity
{
Actor target;
const int CruiseAltitude = 20;
const int AvoidDist = 80;
public HeliAttack( Actor target ) { this.target = target; }
public IActivity NextActivity { get; set; }
@@ -44,9 +42,10 @@ namespace OpenRA.Traits.Activities
var unit = self.traits.Get<Unit>();
if (unit.Altitude != CruiseAltitude)
var info = self.Info.Traits.Get<HelicopterInfo>();
if (unit.Altitude != info.CruiseAltitude)
{
unit.Altitude += Math.Sign(CruiseAltitude - unit.Altitude);
unit.Altitude += Math.Sign(info.CruiseAltitude - unit.Altitude);
return this;
}
@@ -61,7 +60,7 @@ namespace OpenRA.Traits.Activities
if (!float2.WithinEpsilon(float2.Zero, dist, range * Game.CellSize))
self.CenterLocation += (rawSpeed / dist.Length) * dist;
var otherHelis = self.World.FindUnitsInCircle(self.CenterLocation, AvoidDist)
var otherHelis = self.World.FindUnitsInCircle(self.CenterLocation, info.IdealSeparation)
.Where(a => a.traits.Contains<Helicopter>());
var f = otherHelis

View File

@@ -25,7 +25,6 @@ namespace OpenRA.Traits.Activities
{
class HeliFly : IActivity
{
const int CruiseAltitude = 20;
readonly float2 Dest;
public HeliFly(float2 dest)
{
@@ -41,10 +40,11 @@ namespace OpenRA.Traits.Activities
return NextActivity;
var unit = self.traits.Get<Unit>();
var info = self.Info.Traits.Get<HelicopterInfo>();
if (unit.Altitude != CruiseAltitude)
if (unit.Altitude != info.CruiseAltitude)
{
unit.Altitude += Math.Sign(CruiseAltitude - unit.Altitude);
unit.Altitude += Math.Sign(info.CruiseAltitude - unit.Altitude);
return this;
}

View File

@@ -29,6 +29,8 @@ namespace OpenRA.Traits
{
public readonly string[] RepairBuildings = { "fix" };
public readonly string[] RearmBuildings = { "hpad" };
public readonly int CruiseAltitude = 20;
public readonly int IdealSeparation = 80;
public object Create(Actor self) { return new Helicopter(self); }
}