rename WDist.Range to WDist.Length
This commit is contained in:
@@ -196,7 +196,7 @@ namespace OpenRA.Graphics
|
||||
|
||||
public void DrawRangeCircle(WPos pos, WDist range, Color c)
|
||||
{
|
||||
var offset = new WVec(range.Range, 0, 0);
|
||||
var offset = new WVec(range.Length, 0, 0);
|
||||
for (var i = 0; i < 32; i++)
|
||||
{
|
||||
var pa = pos + offset.Rotate(WRot.FromFacing(8 * i));
|
||||
|
||||
@@ -74,7 +74,7 @@ namespace OpenRA.Traits
|
||||
|
||||
public static IEnumerable<CPos> CellsInRange(Map map, WPos pos, WDist range)
|
||||
{
|
||||
var r = (range.Range + 1023) / 1024;
|
||||
var r = (range.Length + 1023) / 1024;
|
||||
var limit = range.RangeSquared;
|
||||
var cell = map.CellContaining(pos);
|
||||
|
||||
|
||||
@@ -22,25 +22,25 @@ namespace OpenRA
|
||||
/// </summary>
|
||||
public struct WDist : IComparable, IComparable<WDist>, IEquatable<WDist>, IScriptBindable, ILuaAdditionBinding, ILuaSubtractionBinding, ILuaEqualityBinding, ILuaTableBinding
|
||||
{
|
||||
public readonly int Range;
|
||||
public long RangeSquared { get { return (long)Range * (long)Range; } }
|
||||
public readonly int Length;
|
||||
public long RangeSquared { get { return (long)Length * (long)Length; } }
|
||||
|
||||
public WDist(int r) { Range = r; }
|
||||
public WDist(int r) { Length = r; }
|
||||
public static readonly WDist Zero = new WDist(0);
|
||||
public static WDist FromCells(int cells) { return new WDist(1024 * cells); }
|
||||
|
||||
public static WDist operator +(WDist a, WDist b) { return new WDist(a.Range + b.Range); }
|
||||
public static WDist operator -(WDist a, WDist b) { return new WDist(a.Range - b.Range); }
|
||||
public static WDist operator -(WDist a) { return new WDist(-a.Range); }
|
||||
public static WDist operator /(WDist a, int b) { return new WDist(a.Range / b); }
|
||||
public static WDist operator *(WDist a, int b) { return new WDist(a.Range * b); }
|
||||
public static WDist operator *(int a, WDist b) { return new WDist(a * b.Range); }
|
||||
public static bool operator <(WDist a, WDist b) { return a.Range < b.Range; }
|
||||
public static bool operator >(WDist a, WDist b) { return a.Range > b.Range; }
|
||||
public static bool operator <=(WDist a, WDist b) { return a.Range <= b.Range; }
|
||||
public static bool operator >=(WDist a, WDist b) { return a.Range >= b.Range; }
|
||||
public static WDist operator +(WDist a, WDist b) { return new WDist(a.Length + b.Length); }
|
||||
public static WDist operator -(WDist a, WDist b) { return new WDist(a.Length - b.Length); }
|
||||
public static WDist operator -(WDist a) { return new WDist(-a.Length); }
|
||||
public static WDist operator /(WDist a, int b) { return new WDist(a.Length / b); }
|
||||
public static WDist operator *(WDist a, int b) { return new WDist(a.Length * b); }
|
||||
public static WDist operator *(int a, WDist b) { return new WDist(a * b.Length); }
|
||||
public static bool operator <(WDist a, WDist b) { return a.Length < b.Length; }
|
||||
public static bool operator >(WDist a, WDist b) { return a.Length > b.Length; }
|
||||
public static bool operator <=(WDist a, WDist b) { return a.Length <= b.Length; }
|
||||
public static bool operator >=(WDist a, WDist b) { return a.Length >= b.Length; }
|
||||
|
||||
public static bool operator ==(WDist me, WDist other) { return me.Range == other.Range; }
|
||||
public static bool operator ==(WDist me, WDist other) { return me.Length == other.Length; }
|
||||
public static bool operator !=(WDist me, WDist other) { return !(me == other); }
|
||||
|
||||
// Sampled a N-sample probability density function in the range [-1024..1024]
|
||||
@@ -88,7 +88,7 @@ namespace OpenRA
|
||||
return true;
|
||||
}
|
||||
|
||||
public override int GetHashCode() { return Range.GetHashCode(); }
|
||||
public override int GetHashCode() { return Length.GetHashCode(); }
|
||||
|
||||
public bool Equals(WDist other) { return other == this; }
|
||||
public override bool Equals(object obj) { return obj is WDist && Equals((WDist)obj); }
|
||||
@@ -97,12 +97,12 @@ namespace OpenRA
|
||||
{
|
||||
if (!(obj is WDist))
|
||||
return 1;
|
||||
return Range.CompareTo(((WDist)obj).Range);
|
||||
return Length.CompareTo(((WDist)obj).Length);
|
||||
}
|
||||
|
||||
public int CompareTo(WDist other) { return Range.CompareTo(other.Range); }
|
||||
public int CompareTo(WDist other) { return Length.CompareTo(other.Length); }
|
||||
|
||||
public override string ToString() { return Range.ToString(); }
|
||||
public override string ToString() { return Length.ToString(); }
|
||||
|
||||
#region Scripting interface
|
||||
public LuaValue Add(LuaRuntime runtime, LuaValue left, LuaValue right)
|
||||
@@ -141,7 +141,7 @@ namespace OpenRA
|
||||
{
|
||||
switch (key.ToString())
|
||||
{
|
||||
case "Range": return Range;
|
||||
case "Range": return Length;
|
||||
default: throw new LuaException("WPos does not define a member '{0}'".F(key));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace OpenRA
|
||||
public readonly int X, Y, Z;
|
||||
|
||||
public WPos(int x, int y, int z) { X = x; Y = y; Z = z; }
|
||||
public WPos(WDist x, WDist y, WDist z) { X = x.Range; Y = y.Range; Z = z.Range; }
|
||||
public WPos(WDist x, WDist y, WDist z) { X = x.Length; Y = y.Length; Z = z.Length; }
|
||||
|
||||
public static readonly WPos Zero = new WPos(0, 0, 0);
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace OpenRA
|
||||
public readonly int X, Y, Z;
|
||||
|
||||
public WVec(int x, int y, int z) { X = x; Y = y; Z = z; }
|
||||
public WVec(WDist x, WDist y, WDist z) { X = x.Range; Y = y.Range; Z = z.Range; }
|
||||
public WVec(WDist x, WDist y, WDist z) { X = x.Length; Y = y.Length; Z = z.Length; }
|
||||
|
||||
public static readonly WVec Zero = new WVec(0, 0, 0);
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace OpenRA.Mods.Common.AI
|
||||
|
||||
foreach (var consideration in Considerations)
|
||||
{
|
||||
var radiusToUse = new WDist(consideration.CheckRadius.Range);
|
||||
var radiusToUse = new WDist(consideration.CheckRadius.Length);
|
||||
|
||||
var checkActors = world.FindActorsInCircle(pos, radiusToUse);
|
||||
foreach (var scrutinized in checkActors)
|
||||
|
||||
@@ -42,10 +42,10 @@ namespace OpenRA.Mods.Common.Activities
|
||||
|
||||
plane.Facing = Util.TickFacing(plane.Facing, desiredFacing, plane.ROT);
|
||||
|
||||
if (altitude != desiredAltitude.Range)
|
||||
if (altitude != desiredAltitude.Length)
|
||||
{
|
||||
var delta = move.HorizontalLength * plane.Info.MaximumPitch.Tan() / 1024;
|
||||
var dz = (desiredAltitude.Range - altitude).Clamp(-delta, delta);
|
||||
var dz = (desiredAltitude.Length - altitude).Clamp(-delta, delta);
|
||||
move += new WVec(0, 0, dz);
|
||||
}
|
||||
|
||||
@@ -58,8 +58,8 @@ namespace OpenRA.Mods.Common.Activities
|
||||
return NextActivity;
|
||||
|
||||
// Inside the target annulus, so we're done
|
||||
var insideMaxRange = maxRange.Range > 0 && target.IsInRange(plane.CenterPosition, maxRange);
|
||||
var insideMinRange = minRange.Range > 0 && target.IsInRange(plane.CenterPosition, minRange);
|
||||
var insideMaxRange = maxRange.Length > 0 && target.IsInRange(plane.CenterPosition, maxRange);
|
||||
var insideMinRange = minRange.Length > 0 && target.IsInRange(plane.CenterPosition, minRange);
|
||||
if (insideMaxRange && !insideMinRange)
|
||||
return NextActivity;
|
||||
|
||||
@@ -71,7 +71,7 @@ namespace OpenRA.Mods.Common.Activities
|
||||
var desiredFacing = Util.GetFacing(d, plane.Facing);
|
||||
|
||||
// Don't turn until we've reached the cruise altitude
|
||||
if (plane.CenterPosition.Z < plane.Info.CruiseAltitude.Range)
|
||||
if (plane.CenterPosition.Z < plane.Info.CruiseAltitude.Length)
|
||||
desiredFacing = plane.Facing;
|
||||
|
||||
FlyToward(self, plane, desiredFacing, plane.Info.CruiseAltitude);
|
||||
|
||||
@@ -38,11 +38,11 @@ namespace OpenRA.Mods.Common.Activities
|
||||
public static bool AdjustAltitude(Actor self, Helicopter helicopter, WDist targetAltitude)
|
||||
{
|
||||
var altitude = helicopter.CenterPosition.Z;
|
||||
if (altitude == targetAltitude.Range)
|
||||
if (altitude == targetAltitude.Length)
|
||||
return false;
|
||||
|
||||
var delta = helicopter.Info.AltitudeVelocity.Range;
|
||||
var dz = (targetAltitude.Range - altitude).Clamp(-delta, delta);
|
||||
var delta = helicopter.Info.AltitudeVelocity.Length;
|
||||
var dz = (targetAltitude.Length - altitude).Clamp(-delta, delta);
|
||||
helicopter.SetPosition(self, helicopter.CenterPosition + new WVec(0, 0, dz));
|
||||
|
||||
return true;
|
||||
@@ -65,20 +65,20 @@ namespace OpenRA.Mods.Common.Activities
|
||||
var move = helicopter.FlyStep(desiredFacing);
|
||||
|
||||
// Inside the minimum range, so reverse
|
||||
if (minRange.Range > 0 && target.IsInRange(helicopter.CenterPosition, minRange))
|
||||
if (minRange.Length > 0 && target.IsInRange(helicopter.CenterPosition, minRange))
|
||||
{
|
||||
helicopter.SetPosition(self, helicopter.CenterPosition - move);
|
||||
return this;
|
||||
}
|
||||
|
||||
// Inside the maximum range, so we're done
|
||||
if (maxRange.Range > 0 && target.IsInRange(helicopter.CenterPosition, maxRange))
|
||||
if (maxRange.Length > 0 && target.IsInRange(helicopter.CenterPosition, maxRange))
|
||||
return NextActivity;
|
||||
|
||||
// The next move would overshoot, so just set the final position
|
||||
if (dist.HorizontalLengthSquared < move.HorizontalLengthSquared)
|
||||
{
|
||||
helicopter.SetPosition(self, pos + new WVec(0, 0, helicopter.Info.CruiseAltitude.Range - pos.Z));
|
||||
helicopter.SetPosition(self, pos + new WVec(0, 0, helicopter.Info.CruiseAltitude.Length - pos.Z));
|
||||
return NextActivity;
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace OpenRA.Mods.Common.Activities
|
||||
}
|
||||
|
||||
var landPos = dest.CenterPosition;
|
||||
var altitude = planeInfo.CruiseAltitude.Range;
|
||||
var altitude = planeInfo.CruiseAltitude.Length;
|
||||
|
||||
// Distance required for descent.
|
||||
var landDistance = altitude * 1024 / planeInfo.MaximumPitch.Tan();
|
||||
|
||||
@@ -218,7 +218,7 @@ namespace OpenRA.Mods.Common.Activities
|
||||
if (!mobile.CanMoveFreelyInto(nextCell, ignoredActor, true))
|
||||
{
|
||||
// Are we close enough?
|
||||
var cellRange = nearEnough.Range / 1024;
|
||||
var cellRange = nearEnough.Length / 1024;
|
||||
if ((mobile.ToCell - destination.Value).LengthSquared <= cellRange * cellRange)
|
||||
{
|
||||
path.Clear();
|
||||
|
||||
@@ -45,8 +45,8 @@ namespace OpenRA.Mods.Common.Activities
|
||||
protected override IEnumerable<CPos> CandidateMovementCells(Actor self)
|
||||
{
|
||||
var map = self.World.Map;
|
||||
var maxCells = (maxRange.Range + 1023) / 1024;
|
||||
var minCells = minRange.Range / 1024;
|
||||
var maxCells = (maxRange.Length + 1023) / 1024;
|
||||
var minCells = minRange.Length / 1024;
|
||||
|
||||
var outerSq = maxRange.RangeSquared;
|
||||
var innerSq = minRange.RangeSquared;
|
||||
|
||||
@@ -82,20 +82,20 @@ namespace OpenRA.Mods.Common.Effects
|
||||
angle = info.Angle[0];
|
||||
|
||||
if (info.Speed.Length > 1)
|
||||
speed = new WDist(world.SharedRandom.Next(info.Speed[0].Range, info.Speed[1].Range));
|
||||
speed = new WDist(world.SharedRandom.Next(info.Speed[0].Length, info.Speed[1].Length));
|
||||
else
|
||||
speed = info.Speed[0];
|
||||
|
||||
target = args.PassiveTarget;
|
||||
if (info.Inaccuracy.Range > 0)
|
||||
if (info.Inaccuracy.Length > 0)
|
||||
{
|
||||
var inaccuracy = OpenRA.Traits.Util.ApplyPercentageModifiers(info.Inaccuracy.Range, args.InaccuracyModifiers);
|
||||
var maxOffset = inaccuracy * (target - pos).Length / args.Weapon.Range.Range;
|
||||
var inaccuracy = OpenRA.Traits.Util.ApplyPercentageModifiers(info.Inaccuracy.Length, args.InaccuracyModifiers);
|
||||
var maxOffset = inaccuracy * (target - pos).Length / args.Weapon.Range.Length;
|
||||
target += WVec.FromPDF(world.SharedRandom, 2) * maxOffset / 1024;
|
||||
}
|
||||
|
||||
facing = OpenRA.Traits.Util.GetFacing(target - pos, 0);
|
||||
length = Math.Max((target - pos).Length / speed.Range, 1);
|
||||
length = Math.Max((target - pos).Length / speed.Length, 1);
|
||||
|
||||
if (!string.IsNullOrEmpty(info.Image))
|
||||
{
|
||||
|
||||
@@ -101,9 +101,9 @@ namespace OpenRA.Mods.Common.Effects
|
||||
if (world.SharedRandom.Next(100) <= info.LockOnProbability)
|
||||
lockOn = true;
|
||||
|
||||
if (info.Inaccuracy.Range > 0)
|
||||
if (info.Inaccuracy.Length > 0)
|
||||
{
|
||||
var inaccuracy = OpenRA.Traits.Util.ApplyPercentageModifiers(info.Inaccuracy.Range, args.InaccuracyModifiers);
|
||||
var inaccuracy = OpenRA.Traits.Util.ApplyPercentageModifiers(info.Inaccuracy.Length, args.InaccuracyModifiers);
|
||||
offset = WVec.FromPDF(world.SharedRandom, 2) * inaccuracy / 1024;
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ namespace OpenRA.Mods.Common.Effects
|
||||
desiredFacing = facing;
|
||||
|
||||
facing = OpenRA.Traits.Util.TickFacing(facing, desiredFacing, info.RateOfTurn);
|
||||
var move = new WVec(0, -1024, 0).Rotate(WRot.FromFacing(facing)) * info.Speed.Range / 1024;
|
||||
var move = new WVec(0, -1024, 0).Rotate(WRot.FromFacing(facing)) * info.Speed.Length / 1024;
|
||||
|
||||
if (pos.Z != desiredAltitude)
|
||||
{
|
||||
|
||||
@@ -104,8 +104,8 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
{
|
||||
Start = LoadField<int>(d, "Start", 0);
|
||||
ShadowStart = LoadField<int>(d, "ShadowStart", -1);
|
||||
ShadowZOffset = LoadField<WDist>(d, "ShadowZOffset", DefaultShadowSpriteZOffset).Range;
|
||||
ZOffset = LoadField<WDist>(d, "ZOffset", WDist.Zero).Range;
|
||||
ShadowZOffset = LoadField<WDist>(d, "ShadowZOffset", DefaultShadowSpriteZOffset).Length;
|
||||
ZOffset = LoadField<WDist>(d, "ZOffset", WDist.Zero).Length;
|
||||
Tick = LoadField<int>(d, "Tick", 40);
|
||||
transpose = LoadField<bool>(d, "Transpose", false);
|
||||
Frames = LoadField<int[]>(d, "Frames", null);
|
||||
|
||||
@@ -77,7 +77,7 @@ namespace OpenRA.Mods.Common.Scripting
|
||||
throw new LuaException("Unknown actor type '{0}'".F(type));
|
||||
|
||||
var pi = ai.Traits.GetOrDefault<ICruiseAltitudeInfo>();
|
||||
return pi != null ? pi.GetCruiseAltitude().Range : 0;
|
||||
return pi != null ? pi.GetCruiseAltitude().Length : 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace OpenRA.Mods.Common.Scripting
|
||||
if (entryLocation.HasValue)
|
||||
{
|
||||
var pi = ai.Traits.GetOrDefault<AircraftInfo>();
|
||||
initDict.Add(new CenterPositionInit(owner.World.Map.CenterOfCell(entryLocation.Value) + new WVec(0, 0, pi != null ? pi.CruiseAltitude.Range : 0)));
|
||||
initDict.Add(new CenterPositionInit(owner.World.Map.CenterOfCell(entryLocation.Value) + new WVec(0, 0, pi != null ? pi.CruiseAltitude.Length : 0)));
|
||||
initDict.Add(new LocationInit(entryLocation.Value));
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
// Repulsion only applies when we're flying!
|
||||
var altitude = CenterPosition.Z;
|
||||
if (altitude != info.CruiseAltitude.Range)
|
||||
if (altitude != info.CruiseAltitude.Length)
|
||||
return WVec.Zero;
|
||||
|
||||
return self.World.FindActorsInCircle(self.CenterPosition, info.IdealSeparation)
|
||||
|
||||
@@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (!target.IsInRange(self.CenterPosition, a.Weapon.Range))
|
||||
continue;
|
||||
|
||||
var t = Target.FromPos(cp - new WVec(0, a.Weapon.Range.Range / 2, cp.Z).Rotate(WRot.FromFacing(f)));
|
||||
var t = Target.FromPos(cp - new WVec(0, a.Weapon.Range.Length / 2, cp.Z).Rotate(WRot.FromFacing(f)));
|
||||
inAttackRange = true;
|
||||
a.CheckFire(self, facing.Value, t);
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (FireDelay > 0)
|
||||
--FireDelay;
|
||||
|
||||
Recoil = new WDist(Math.Max(0, Recoil.Range - Info.RecoilRecovery.Range));
|
||||
Recoil = new WDist(Math.Max(0, Recoil.Length - Info.RecoilRecovery.Length));
|
||||
|
||||
for (var i = 0; i < delayedActions.Count; i++)
|
||||
{
|
||||
|
||||
@@ -85,7 +85,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|| (target.Type == TargetType.FrozenActor && target.FrozenActor.Info.Traits.Contains<IMove>());
|
||||
|
||||
// Try and sit at least one cell closer than the max range to give some leeway if the target starts moving.
|
||||
var maxRange = targetIsMobile ? new WDist(Math.Max(weapon.Weapon.MinRange.Range, weapon.Weapon.Range.Range - 1024))
|
||||
var maxRange = targetIsMobile ? new WDist(Math.Max(weapon.Weapon.MinRange.Length, weapon.Weapon.Range.Length - 1024))
|
||||
: weapon.Weapon.Range;
|
||||
|
||||
attack.Target = target;
|
||||
|
||||
@@ -125,7 +125,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
return self.World.ActorsWithTrait<DetectCloaked>().Any(a => !a.Trait.IsTraitDisabled && a.Actor.Owner.IsAlliedWith(viewer)
|
||||
&& Info.CloakTypes.Intersect(a.Trait.Info.CloakTypes).Any()
|
||||
&& (self.CenterPosition - a.Actor.CenterPosition).Length <= WDist.FromCells(a.Trait.Info.Range).Range);
|
||||
&& (self.CenterPosition - a.Actor.CenterPosition).Length <= WDist.FromCells(a.Trait.Info.Range).Length);
|
||||
}
|
||||
|
||||
public Color RadarColorOverride(Actor self)
|
||||
|
||||
@@ -61,12 +61,12 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (randomize)
|
||||
attackFacing = Util.QuantizeFacing(self.World.SharedRandom.Next(256), info.QuantizedFacings) * (256 / info.QuantizedFacings);
|
||||
|
||||
var altitude = self.World.Map.Rules.Actors[info.UnitType].Traits.Get<PlaneInfo>().CruiseAltitude.Range;
|
||||
var altitude = self.World.Map.Rules.Actors[info.UnitType].Traits.Get<PlaneInfo>().CruiseAltitude.Length;
|
||||
var attackRotation = WRot.FromFacing(attackFacing);
|
||||
var delta = new WVec(0, -1024, 0).Rotate(attackRotation);
|
||||
target = target + new WVec(0, 0, altitude);
|
||||
var startEdge = target - (self.World.Map.DistanceToEdge(target, -delta) + info.Cordon).Range * delta / 1024;
|
||||
var finishEdge = target + (self.World.Map.DistanceToEdge(target, delta) + info.Cordon).Range * delta / 1024;
|
||||
var startEdge = target - (self.World.Map.DistanceToEdge(target, -delta) + info.Cordon).Length * delta / 1024;
|
||||
var finishEdge = target + (self.World.Map.DistanceToEdge(target, delta) + info.Cordon).Length * delta / 1024;
|
||||
|
||||
Actor camera = null;
|
||||
Beacon beacon = null;
|
||||
@@ -172,7 +172,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
Info.BeaconPalettePrefix,
|
||||
Info.BeaconPoster,
|
||||
Info.BeaconPosterPalette,
|
||||
() => 1 - ((distanceTestActor.CenterPosition - target).HorizontalLength - info.BeaconDistanceOffset.Range) * 1f / distance);
|
||||
() => 1 - ((distanceTestActor.CenterPosition - target).HorizontalLength - info.BeaconDistanceOffset.Length) * 1f / distance);
|
||||
|
||||
w.Add(beacon);
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
// Calculate final position
|
||||
var throwRotation = WRot.FromFacing(Game.CosmeticRandom.Next(1024));
|
||||
var throwDistance = Game.CosmeticRandom.Next(info.MinThrowRange.Range, info.MaxThrowRange.Range);
|
||||
var throwDistance = Game.CosmeticRandom.Next(info.MinThrowRange.Length, info.MaxThrowRange.Length);
|
||||
|
||||
initialPos = pos = info.Offset.Rotate(body.QuantizeOrientation(self, WRot.FromFacing(bodyFacing)));
|
||||
finalPos = initialPos + new WVec(throwDistance, 0, 0).Rotate(throwRotation);
|
||||
@@ -74,7 +74,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
length = (finalPos - initialPos).Length / info.Velocity;
|
||||
|
||||
// Facing rotation
|
||||
rotation = WDist.FromPDF(Game.CosmeticRandom, 2).Range * info.ROT / 1024;
|
||||
rotation = WDist.FromPDF(Game.CosmeticRandom, 2).Length * info.ROT / 1024;
|
||||
|
||||
var anim = new Animation(init.World, rs.GetImage(self), () => (int)facing);
|
||||
anim.PlayRepeating(info.Anim);
|
||||
|
||||
@@ -106,10 +106,10 @@ namespace OpenRA.Mods.Common.Traits
|
||||
var dropFacing = Util.QuantizeFacing(self.World.SharedRandom.Next(256), info.QuantizedFacings) * (256 / info.QuantizedFacings);
|
||||
var delta = new WVec(0, -1024, 0).Rotate(WRot.FromFacing(dropFacing));
|
||||
|
||||
var altitude = self.World.Map.Rules.Actors[info.DeliveryAircraft].Traits.Get<PlaneInfo>().CruiseAltitude.Range;
|
||||
var altitude = self.World.Map.Rules.Actors[info.DeliveryAircraft].Traits.Get<PlaneInfo>().CruiseAltitude.Length;
|
||||
var target = self.World.Map.CenterOfCell(p) + new WVec(0, 0, altitude);
|
||||
var startEdge = target - (self.World.Map.DistanceToEdge(target, -delta) + info.Cordon).Range * delta / 1024;
|
||||
var finishEdge = target + (self.World.Map.DistanceToEdge(target, delta) + info.Cordon).Range * delta / 1024;
|
||||
var startEdge = target - (self.World.Map.DistanceToEdge(target, -delta) + info.Cordon).Length * delta / 1024;
|
||||
var finishEdge = target + (self.World.Map.DistanceToEdge(target, delta) + info.Cordon).Length * delta / 1024;
|
||||
|
||||
var plane = w.CreateActor(info.DeliveryAircraft, new TypeDictionary
|
||||
{
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
// Select only the tiles that are within range from the requested SubCell
|
||||
// This assumes that the SubCell does not change during the path traversal
|
||||
var tilesInRange = world.Map.FindTilesInCircle(targetCell, range.Range / 1024 + 1)
|
||||
var tilesInRange = world.Map.FindTilesInCircle(targetCell, range.Length / 1024 + 1)
|
||||
.Where(t => (world.Map.CenterOfCell(t) - target).LengthSquared <= range.RangeSquared
|
||||
&& mi.CanEnterCell(self.World as World, self as Actor, t));
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace OpenRA.Mods.Common.Warheads
|
||||
var world = firedBy.World;
|
||||
var range = Spread[0];
|
||||
var hitActors = world.FindActorsInCircle(pos, range);
|
||||
if (Spread.Length > 1 && Spread[1].Range > 0)
|
||||
if (Spread.Length > 1 && Spread[1].Length > 0)
|
||||
hitActors = hitActors.Except(world.FindActorsInCircle(pos, Spread[1]));
|
||||
|
||||
foreach (var victim in hitActors)
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace OpenRA.Mods.Common.Warheads
|
||||
var healthInfo = victim.Info.Traits.GetOrDefault<HealthInfo>();
|
||||
if (healthInfo != null)
|
||||
{
|
||||
var distance = Math.Max(0, (victim.CenterPosition - pos).Length - healthInfo.Radius.Range);
|
||||
var distance = Math.Max(0, (victim.CenterPosition - pos).Length - healthInfo.Radius.Length);
|
||||
localModifiers = localModifiers.Append(GetDamageFalloff(distance));
|
||||
}
|
||||
|
||||
@@ -67,10 +67,10 @@ namespace OpenRA.Mods.Common.Warheads
|
||||
|
||||
int GetDamageFalloff(int distance)
|
||||
{
|
||||
var inner = Range[0].Range;
|
||||
var inner = Range[0].Length;
|
||||
for (var i = 1; i < Range.Length; i++)
|
||||
{
|
||||
var outer = Range[i].Range;
|
||||
var outer = Range[i].Length;
|
||||
if (outer > distance)
|
||||
return int2.Lerp(Falloff[i - 1], Falloff[i], distance - inner, outer - inner);
|
||||
|
||||
|
||||
@@ -46,10 +46,10 @@ namespace OpenRA.Mods.D2k.Traits
|
||||
|
||||
int GetNoisePercentageAtDistance(int distance)
|
||||
{
|
||||
var inner = Info.Range[0].Range;
|
||||
var inner = Info.Range[0].Length;
|
||||
for (var i = 1; i < Info.Range.Length; i++)
|
||||
{
|
||||
var outer = Info.Range[i].Range;
|
||||
var outer = Info.Range[i].Length;
|
||||
if (outer > distance)
|
||||
return int2.Lerp(Info.Falloff[i - 1], Info.Falloff[i], distance - inner, outer - inner);
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace OpenRA.Mods.D2k.Traits
|
||||
var length = distance.Length;
|
||||
|
||||
// Actor is too far to hear anything.
|
||||
if (length > Info.Range[Info.Range.Length - 1].Range)
|
||||
if (length > Info.Range[Info.Range.Length - 1].Length)
|
||||
return WVec.Zero;
|
||||
|
||||
var direction = 1024 * distance / length;
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace OpenRA.Mods.D2k.Traits
|
||||
// If aircraft, spawn at cruise altitude
|
||||
var aircraftInfo = self.World.Map.Rules.Actors[deliveringActorName.ToLower()].Traits.GetOrDefault<AircraftInfo>();
|
||||
if (aircraftInfo != null)
|
||||
spawn += new WVec(0, 0, aircraftInfo.CruiseAltitude.Range);
|
||||
spawn += new WVec(0, 0, aircraftInfo.CruiseAltitude.Length);
|
||||
|
||||
// Create delivery actor
|
||||
carrier = self.World.CreateActor(false, deliveringActorName, new TypeDictionary
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace OpenRA.Mods.D2k.Traits
|
||||
// If aircraft, spawn at cruise altitude
|
||||
var aircraftInfo = producee.Traits.GetOrDefault<AircraftInfo>();
|
||||
if (aircraftInfo != null)
|
||||
pos += new WVec(0, 0, aircraftInfo.CruiseAltitude.Range);
|
||||
pos += new WVec(0, 0, aircraftInfo.CruiseAltitude.Length);
|
||||
|
||||
var initialFacing = self.World.Map.FacingBetween(location, self.Location, 0);
|
||||
|
||||
|
||||
@@ -204,7 +204,7 @@ namespace OpenRA.Mods.D2k.Traits
|
||||
if (anim != null && !self.World.FogObscures(self))
|
||||
{
|
||||
anim.Tick();
|
||||
var renderables = anim.Render(self.CenterPosition + new WVec(0, 0, -carryHeight.Range),
|
||||
var renderables = anim.Render(self.CenterPosition + new WVec(0, 0, -carryHeight.Length),
|
||||
wr.Palette("player" + Carrying.Owner.InternalName));
|
||||
|
||||
foreach (var rr in renderables)
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.D2k.Traits
|
||||
{
|
||||
var wep = self.World.Map.Rules.Weapons[name.ToLowerInvariant()];
|
||||
var pieces = self.World.SharedRandom.Next(info.Pieces[0], info.Pieces[1]);
|
||||
var range = self.World.SharedRandom.Next(info.Range[0].Range, info.Range[1].Range);
|
||||
var range = self.World.SharedRandom.Next(info.Range[0].Length, info.Range[1].Length);
|
||||
|
||||
for (var i = 0; pieces > i; i++)
|
||||
{
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
|
||||
from = self.CenterPosition;
|
||||
to = self.World.Map.CenterOfSubCell(targetMobile.FromCell, targetMobile.FromSubCell);
|
||||
length = Math.Max((to - from).Length / speed.Range, 1);
|
||||
length = Math.Max((to - from).Length / speed.Length, 1);
|
||||
|
||||
// HACK: why isn't this using the interface?
|
||||
self.Trait<WithInfantryBody>().Attacking(self, Target.FromActor(target));
|
||||
|
||||
@@ -107,8 +107,8 @@ namespace OpenRA.Mods.RA.Graphics
|
||||
var renderables = new List<IFinalizedRenderable>();
|
||||
if (Game.CosmeticRandom.Next(2) != 0)
|
||||
{
|
||||
var p1 = from + (1 / 3f) * dist + WDist.FromPDF(Game.CosmeticRandom, 2).Range * dist.Length / 4096 * norm;
|
||||
var p2 = from + (2 / 3f) * dist + WDist.FromPDF(Game.CosmeticRandom, 2).Range * dist.Length / 4096 * norm;
|
||||
var p1 = from + (1 / 3f) * dist + WDist.FromPDF(Game.CosmeticRandom, 2).Length * dist.Length / 4096 * norm;
|
||||
var p2 = from + (2 / 3f) * dist + WDist.FromPDF(Game.CosmeticRandom, 2).Length * dist.Length / 4096 * norm;
|
||||
|
||||
renderables.AddRange(DrawZap(wr, from, p1, s, out p1, pal));
|
||||
renderables.AddRange(DrawZap(wr, p1, p2, s, out p2, pal));
|
||||
@@ -116,7 +116,7 @@ namespace OpenRA.Mods.RA.Graphics
|
||||
}
|
||||
else
|
||||
{
|
||||
var p1 = from + (1 / 2f) * dist + WDist.FromPDF(Game.CosmeticRandom, 2).Range * dist.Length / 4096 * norm;
|
||||
var p1 = from + (1 / 2f) * dist + WDist.FromPDF(Game.CosmeticRandom, 2).Length * dist.Length / 4096 * norm;
|
||||
|
||||
renderables.AddRange(DrawZap(wr, from, p1, s, out p1, pal));
|
||||
renderables.AddRange(DrawZap(wr, p1, to, s, out z, pal));
|
||||
|
||||
@@ -72,12 +72,12 @@ namespace OpenRA.Mods.RA.Traits
|
||||
if (randomize)
|
||||
dropFacing = Util.QuantizeFacing(self.World.SharedRandom.Next(256), info.QuantizedFacings) * (256 / info.QuantizedFacings);
|
||||
|
||||
var altitude = self.World.Map.Rules.Actors[info.UnitType].Traits.Get<PlaneInfo>().CruiseAltitude.Range;
|
||||
var altitude = self.World.Map.Rules.Actors[info.UnitType].Traits.Get<PlaneInfo>().CruiseAltitude.Length;
|
||||
var dropRotation = WRot.FromFacing(dropFacing);
|
||||
var delta = new WVec(0, -1024, 0).Rotate(dropRotation);
|
||||
target = target + new WVec(0, 0, altitude);
|
||||
var startEdge = target - (self.World.Map.DistanceToEdge(target, -delta) + info.Cordon).Range * delta / 1024;
|
||||
var finishEdge = target + (self.World.Map.DistanceToEdge(target, delta) + info.Cordon).Range * delta / 1024;
|
||||
var startEdge = target - (self.World.Map.DistanceToEdge(target, -delta) + info.Cordon).Length * delta / 1024;
|
||||
var finishEdge = target + (self.World.Map.DistanceToEdge(target, delta) + info.Cordon).Length * delta / 1024;
|
||||
|
||||
Actor camera = null;
|
||||
Beacon beacon = null;
|
||||
@@ -201,7 +201,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
Info.BeaconPalettePrefix,
|
||||
Info.BeaconPoster,
|
||||
Info.BeaconPosterPalette,
|
||||
() => 1 - ((distanceTestActor.CenterPosition - target).HorizontalLength - info.BeaconDistanceOffset.Range) * 1f / distance);
|
||||
() => 1 - ((distanceTestActor.CenterPosition - target).HorizontalLength - info.BeaconDistanceOffset.Length) * 1f / distance);
|
||||
|
||||
w.Add(beacon);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user