Make Range WDist for all traits with circular ranges.
This commit is contained in:
@@ -143,7 +143,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
|
|
||||||
bool JammedBy(TraitPair<JamsMissiles> tp)
|
bool JammedBy(TraitPair<JamsMissiles> tp)
|
||||||
{
|
{
|
||||||
if ((tp.Actor.CenterPosition - pos).HorizontalLengthSquared > tp.Trait.Range * tp.Trait.Range)
|
if ((tp.Actor.CenterPosition - pos).HorizontalLengthSquared > tp.Trait.Range.LengthSquared)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (tp.Actor.Owner.Stances[args.SourceActor.Owner] == Stance.Ally && !tp.Trait.AlliedMissiles)
|
if (tp.Actor.Owner.Stances[args.SourceActor.Owner] == Stance.Ally && !tp.Trait.AlliedMissiles)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Limits the zone where buildings can be constructed to a radius around this actor.")]
|
[Desc("Limits the zone where buildings can be constructed to a radius around this actor.")]
|
||||||
public class BaseProviderInfo : ITraitInfo
|
public class BaseProviderInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public readonly int Range = 10;
|
public readonly WDist Range = WDist.FromCells(10);
|
||||||
public readonly int Cooldown = 0;
|
public readonly int Cooldown = 0;
|
||||||
public readonly int InitialDelay = 0;
|
public readonly int InitialDelay = 0;
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
yield return new RangeCircleRenderable(
|
yield return new RangeCircleRenderable(
|
||||||
self.CenterPosition,
|
self.CenterPosition,
|
||||||
WDist.FromCells(Info.Range),
|
Info.Range,
|
||||||
0,
|
0,
|
||||||
Color.FromArgb(128, Ready() ? Color.White : Color.Red),
|
Color.FromArgb(128, Ready() ? Color.White : Color.Red),
|
||||||
Color.FromArgb(96, Color.Black));
|
Color.FromArgb(96, Color.Black));
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
// Range is counted from the center of the actor, not from each cell.
|
// Range is counted from the center of the actor, not from each cell.
|
||||||
var target = Target.FromPos(bp.Actor.CenterPosition);
|
var target = Target.FromPos(bp.Actor.CenterPosition);
|
||||||
if (target.IsInRange(center, WDist.FromCells(bp.Trait.Info.Range)))
|
if (target.IsInRange(center, bp.Trait.Info.Range))
|
||||||
return bp.Actor;
|
return bp.Actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
return self.World.ActorsWithTrait<DetectCloaked>().Any(a => !a.Trait.IsTraitDisabled && a.Actor.Owner.IsAlliedWith(viewer)
|
return self.World.ActorsWithTrait<DetectCloaked>().Any(a => !a.Trait.IsTraitDisabled && a.Actor.Owner.IsAlliedWith(viewer)
|
||||||
&& Info.CloakTypes.Overlaps(a.Trait.Info.CloakTypes)
|
&& Info.CloakTypes.Overlaps(a.Trait.Info.CloakTypes)
|
||||||
&& (self.CenterPosition - a.Actor.CenterPosition).Length <= WDist.FromCells(a.Trait.Info.Range).Length);
|
&& (self.CenterPosition - a.Actor.CenterPosition).LengthSquared <= a.Trait.Info.Range.LengthSquared);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Color RadarColorOverride(Actor self)
|
public Color RadarColorOverride(Actor self)
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Specific cloak classifications I can reveal.")]
|
[Desc("Specific cloak classifications I can reveal.")]
|
||||||
public readonly HashSet<string> CloakTypes = new HashSet<string> { "Cloak" };
|
public readonly HashSet<string> CloakTypes = new HashSet<string> { "Cloak" };
|
||||||
|
|
||||||
[Desc("Measured in cells.")]
|
public readonly WDist Range = WDist.FromCells(5);
|
||||||
public readonly int Range = 5;
|
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new DetectCloaked(this); }
|
public override object Create(ActorInitializer init) { return new DetectCloaked(this); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
self.SetTargetLine(target, Color.Yellow);
|
self.SetTargetLine(target, Color.Yellow);
|
||||||
|
|
||||||
var range = WDist.FromCells(target.Actor.Info.TraitInfo<GuardableInfo>().Range);
|
var range = target.Actor.Info.TraitInfo<GuardableInfo>().Range;
|
||||||
self.QueueActivity(false, new AttackMoveActivity(self, self.Trait<IMove>().MoveFollow(self, target, WDist.Zero, range)));
|
self.QueueActivity(false, new AttackMoveActivity(self, self.Trait<IMove>().MoveFollow(self, target, WDist.Zero, range)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("This unit can be guarded (followed and protected) by a Guard unit.")]
|
[Desc("This unit can be guarded (followed and protected) by a Guard unit.")]
|
||||||
public class GuardableInfo : TraitInfo<Guardable>
|
public class GuardableInfo : TraitInfo<Guardable>
|
||||||
{
|
{
|
||||||
[Desc("Maximum range that guarding actors will maintain. Measured in cells.")]
|
[Desc("Maximum range that guarding actors will maintain.")]
|
||||||
public readonly int Range = 2;
|
public readonly WDist Range = WDist.FromCells(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Guardable { }
|
public class Guardable { }
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
public class JamsMissilesInfo : ITraitInfo
|
public class JamsMissilesInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public readonly int Range = 0;
|
public readonly WDist Range = WDist.Zero;
|
||||||
public readonly bool AlliedMissiles = true;
|
public readonly bool AlliedMissiles = true;
|
||||||
public readonly int Chance = 100;
|
public readonly int Chance = 100;
|
||||||
|
|
||||||
@@ -25,8 +25,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
readonly JamsMissilesInfo info;
|
readonly JamsMissilesInfo info;
|
||||||
|
|
||||||
// Convert cells to world units
|
public WDist Range { get { return info.Range; } }
|
||||||
public int Range { get { return 1024 * info.Range; } }
|
|
||||||
public bool AlliedMissiles { get { return info.AlliedMissiles; } }
|
public bool AlliedMissiles { get { return info.AlliedMissiles; } }
|
||||||
public int Chance { get { return info.Chance; } }
|
public int Chance { get { return info.Chance; } }
|
||||||
|
|
||||||
|
|||||||
@@ -27,10 +27,9 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
// Check if powered
|
// Check if powered
|
||||||
if (self.IsDisabled()) return false;
|
if (self.IsDisabled()) return false;
|
||||||
|
|
||||||
var isJammed = self.World.ActorsWithTrait<JamsRadar>().Any(a => a.Actor.Owner.Stances[self.Owner] != Stance.Ally
|
return self.World.ActorsWithTrait<JamsRadar>().All(a => a.Actor.Owner.Stances[self.Owner] == Stance.Ally
|
||||||
&& (self.Location - a.Actor.Location).Length <= a.Actor.Info.TraitInfo<JamsRadarInfo>().Range);
|
|| (self.CenterPosition - a.Actor.CenterPosition).HorizontalLengthSquared
|
||||||
|
> a.Actor.Info.TraitInfo<JamsRadarInfo>().Range.LengthSquared);
|
||||||
return !isJammed;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +37,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public class JamsRadarInfo : TraitInfo<JamsRadar>
|
public class JamsRadarInfo : TraitInfo<JamsRadar>
|
||||||
{
|
{
|
||||||
[Desc("Range for jamming.")]
|
[Desc("Range for jamming.")]
|
||||||
public readonly int Range = 0;
|
public readonly WDist Range = WDist.Zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class JamsRadar { }
|
public class JamsRadar { }
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public class ProximityCapturableInfo : ITraitInfo
|
public class ProximityCapturableInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public readonly bool Permanent = false;
|
public readonly bool Permanent = false;
|
||||||
public readonly int Range = 5;
|
public readonly WDist Range = WDist.FromCells(5);
|
||||||
public readonly bool MustBeClear = false;
|
public readonly bool MustBeClear = false;
|
||||||
public readonly HashSet<string> CaptorTypes = new HashSet<string> { "Vehicle", "Tank", "Infantry" };
|
public readonly HashSet<string> CaptorTypes = new HashSet<string> { "Vehicle", "Tank", "Infantry" };
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
IEnumerable<Actor> UnitsInRange()
|
IEnumerable<Actor> UnitsInRange()
|
||||||
{
|
{
|
||||||
return Self.World.FindActorsInCircle(Self.CenterPosition, WDist.FromCells(Info.Range))
|
return Self.World.FindActorsInCircle(Self.CenterPosition, Info.Range)
|
||||||
.Where(a => a.IsInWorld && a != Self && !a.Disposed && !a.Owner.NonCombatant);
|
.Where(a => a.IsInWorld && a != Self && !a.Disposed && !a.Owner.NonCombatant);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
var range = self.TraitsImplementing<DetectCloaked>()
|
var range = self.TraitsImplementing<DetectCloaked>()
|
||||||
.Where(a => !a.IsTraitDisabled)
|
.Where(a => !a.IsTraitDisabled)
|
||||||
.Select(a => WDist.FromCells(a.Info.Range))
|
.Select(a => a.Info.Range)
|
||||||
.Append(WDist.Zero).Max();
|
.Append(WDist.Zero).Max();
|
||||||
|
|
||||||
if (range == WDist.Zero)
|
if (range == WDist.Zero)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Duration of the upgrade (in ticks). Set to 0 for a permanent upgrade.")]
|
[Desc("Duration of the upgrade (in ticks). Set to 0 for a permanent upgrade.")]
|
||||||
public readonly int Duration = 0;
|
public readonly int Duration = 0;
|
||||||
|
|
||||||
[Desc("Cells")]
|
[Desc("Cells - affects whole cells only")]
|
||||||
public readonly int Range = 1;
|
public readonly int Range = 1;
|
||||||
public readonly string GrantUpgradeSound = "ironcur9.aud";
|
public readonly string GrantUpgradeSound = "ironcur9.aud";
|
||||||
|
|
||||||
|
|||||||
@@ -2126,6 +2126,18 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
|||||||
if (engineVersion < 20150910 && Game.ModData.Manifest.Mod.Id == "d2k")
|
if (engineVersion < 20150910 && Game.ModData.Manifest.Mod.Id == "d2k")
|
||||||
node.Key = RenameD2kActors(node.Key);
|
node.Key = RenameD2kActors(node.Key);
|
||||||
|
|
||||||
|
// Make Range WDist for all traits with circular ranges.
|
||||||
|
if (engineVersion < 20150917 && depth == 2 && node.Key == "Range")
|
||||||
|
{
|
||||||
|
if (parentKey == "DetectCloaked"
|
||||||
|
|| parentKey == "JamsMissiles"
|
||||||
|
|| parentKey == "JamsRadar"
|
||||||
|
|| parentKey == "Guardable"
|
||||||
|
|| parentKey == "BaseProvider"
|
||||||
|
|| parentKey == "ProximityCapturable")
|
||||||
|
node.Value.Value = node.Value.Value + "c0";
|
||||||
|
}
|
||||||
|
|
||||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
{
|
{
|
||||||
yield return new RangeCircleRenderable(
|
yield return new RangeCircleRenderable(
|
||||||
centerPosition,
|
centerPosition,
|
||||||
WDist.FromCells(jamsMissiles.Range),
|
jamsMissiles.Range,
|
||||||
0,
|
0,
|
||||||
Color.FromArgb(128, Color.Red),
|
Color.FromArgb(128, Color.Red),
|
||||||
Color.FromArgb(96, Color.Black));
|
Color.FromArgb(96, Color.Black));
|
||||||
@@ -38,7 +38,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
{
|
{
|
||||||
yield return new RangeCircleRenderable(
|
yield return new RangeCircleRenderable(
|
||||||
centerPosition,
|
centerPosition,
|
||||||
WDist.FromCells(jamsRadar.Range),
|
jamsRadar.Range,
|
||||||
0,
|
0,
|
||||||
Color.FromArgb(128, Color.Blue),
|
Color.FromArgb(128, Color.Blue),
|
||||||
Color.FromArgb(96, Color.Black));
|
Color.FromArgb(96, Color.Black));
|
||||||
@@ -69,7 +69,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
{
|
{
|
||||||
yield return new RangeCircleRenderable(
|
yield return new RangeCircleRenderable(
|
||||||
self.CenterPosition,
|
self.CenterPosition,
|
||||||
WDist.FromCells(jamsMissiles.Range),
|
jamsMissiles.Range,
|
||||||
0,
|
0,
|
||||||
Color.FromArgb(128, Color.Red),
|
Color.FromArgb(128, Color.Red),
|
||||||
Color.FromArgb(96, Color.Black));
|
Color.FromArgb(96, Color.Black));
|
||||||
@@ -80,7 +80,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
{
|
{
|
||||||
yield return new RangeCircleRenderable(
|
yield return new RangeCircleRenderable(
|
||||||
self.CenterPosition,
|
self.CenterPosition,
|
||||||
WDist.FromCells(jamsRadar.Range),
|
jamsRadar.Range,
|
||||||
0,
|
0,
|
||||||
Color.FromArgb(128, Color.Blue),
|
Color.FromArgb(128, Color.Blue),
|
||||||
Color.FromArgb(96, Color.Black));
|
Color.FromArgb(96, Color.Black));
|
||||||
|
|||||||
@@ -223,7 +223,7 @@
|
|||||||
Upgrades: hospitalheal
|
Upgrades: hospitalheal
|
||||||
Prerequisites: hosp
|
Prerequisites: hosp
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 1
|
Range: 1c0
|
||||||
DeathSounds@NORMAL:
|
DeathSounds@NORMAL:
|
||||||
DeathTypes: DefaultDeath, BulletDeath, SmallExplosionDeath, ExplosionDeath
|
DeathTypes: DefaultDeath, BulletDeath, SmallExplosionDeath, ExplosionDeath
|
||||||
DeathSounds@BURNED:
|
DeathSounds@BURNED:
|
||||||
@@ -448,7 +448,7 @@
|
|||||||
Notification: BuildingLost
|
Notification: BuildingLost
|
||||||
ShakeOnDeath:
|
ShakeOnDeath:
|
||||||
Guardable:
|
Guardable:
|
||||||
Range: 3
|
Range: 3c0
|
||||||
Tooltip:
|
Tooltip:
|
||||||
GenericName: Structure
|
GenericName: Structure
|
||||||
FrozenUnderFog:
|
FrozenUnderFog:
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ FACT:
|
|||||||
ProductionType: Defence.Nod
|
ProductionType: Defence.Nod
|
||||||
BaseProvider:
|
BaseProvider:
|
||||||
Cooldown: 75
|
Cooldown: 75
|
||||||
Range: 14
|
Range: 14c0
|
||||||
WithBuildingPlacedAnimation:
|
WithBuildingPlacedAnimation:
|
||||||
Power:
|
Power:
|
||||||
Amount: 0
|
Amount: 0
|
||||||
@@ -471,7 +471,7 @@ HQ:
|
|||||||
ProvidesRadar:
|
ProvidesRadar:
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
AirstrikePower:
|
AirstrikePower:
|
||||||
Prerequisites: ~techlevel.superweapons
|
Prerequisites: ~techlevel.superweapons
|
||||||
Icon: airstrike
|
Icon: airstrike
|
||||||
@@ -557,7 +557,7 @@ EYE:
|
|||||||
ProvidesRadar:
|
ProvidesRadar:
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
IonCannonPower:
|
IonCannonPower:
|
||||||
Prerequisites: ~techlevel.superweapons
|
Prerequisites: ~techlevel.superweapons
|
||||||
Icon: ioncannon
|
Icon: ioncannon
|
||||||
@@ -662,7 +662,7 @@ GUN:
|
|||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
-WithDeathAnimation:
|
-WithDeathAnimation:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 3
|
Range: 3c0
|
||||||
Power:
|
Power:
|
||||||
Amount: -20
|
Amount: -20
|
||||||
|
|
||||||
@@ -746,7 +746,7 @@ OBLI:
|
|||||||
InitialChargeDelay: 50
|
InitialChargeDelay: 50
|
||||||
-EmitInfantryOnSell:
|
-EmitInfantryOnSell:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
Power:
|
Power:
|
||||||
Amount: -150
|
Amount: -150
|
||||||
|
|
||||||
@@ -778,7 +778,7 @@ GTWR:
|
|||||||
BodyOrientation:
|
BodyOrientation:
|
||||||
QuantizedFacings: 8
|
QuantizedFacings: 8
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 3
|
Range: 3c0
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 255
|
ROT: 255
|
||||||
@@ -830,7 +830,7 @@ ATWR:
|
|||||||
BodyOrientation:
|
BodyOrientation:
|
||||||
QuantizedFacings: 8
|
QuantizedFacings: 8
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
Power:
|
Power:
|
||||||
Amount: -40
|
Amount: -40
|
||||||
|
|
||||||
|
|||||||
@@ -276,7 +276,7 @@
|
|||||||
Sellable:
|
Sellable:
|
||||||
SellSounds: BUILD1.WAV
|
SellSounds: BUILD1.WAV
|
||||||
Guardable:
|
Guardable:
|
||||||
Range: 3
|
Range: 3c0
|
||||||
WithCrumbleOverlay:
|
WithCrumbleOverlay:
|
||||||
Demolishable:
|
Demolishable:
|
||||||
DamagedWithoutFoundation:
|
DamagedWithoutFoundation:
|
||||||
|
|||||||
@@ -403,7 +403,7 @@ outpost:
|
|||||||
Range: 10c0
|
Range: 10c0
|
||||||
ProvidesRadar:
|
ProvidesRadar:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
RenderSprites:
|
RenderSprites:
|
||||||
Image: outpost.harkonnen
|
Image: outpost.harkonnen
|
||||||
@@ -558,7 +558,7 @@ medium_gun_turret:
|
|||||||
LocalOffset: 512,0,432
|
LocalOffset: 512,0,432
|
||||||
MuzzleSequence: muzzle
|
MuzzleSequence: muzzle
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
Power:
|
Power:
|
||||||
Amount: -20
|
Amount: -20
|
||||||
SelectionDecorations:
|
SelectionDecorations:
|
||||||
@@ -601,7 +601,7 @@ large_gun_turret:
|
|||||||
CanPowerDown:
|
CanPowerDown:
|
||||||
DisabledOverlay:
|
DisabledOverlay:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
Power:
|
Power:
|
||||||
Amount: -30
|
Amount: -30
|
||||||
SelectionDecorations:
|
SelectionDecorations:
|
||||||
@@ -772,7 +772,7 @@ palace:
|
|||||||
corrino: palace.corrino
|
corrino: palace.corrino
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 4
|
Range: 4c0
|
||||||
Power:
|
Power:
|
||||||
Amount: -50
|
Amount: -50
|
||||||
ProvidesPrerequisite@nuke:
|
ProvidesPrerequisite@nuke:
|
||||||
|
|||||||
@@ -570,7 +570,7 @@ Rules:
|
|||||||
Produces: Defense, Infantry, Soldier, Dog
|
Produces: Defense, Infantry, Soldier, Dog
|
||||||
-Sellable:
|
-Sellable:
|
||||||
BaseProvider:
|
BaseProvider:
|
||||||
Range: 12
|
Range: 12c0
|
||||||
Power:
|
Power:
|
||||||
Amount: 0
|
Amount: 0
|
||||||
FTUR:
|
FTUR:
|
||||||
|
|||||||
@@ -633,7 +633,7 @@ Rules:
|
|||||||
MISS:
|
MISS:
|
||||||
ProximityCapturable:
|
ProximityCapturable:
|
||||||
MustBeClear: true
|
MustBeClear: true
|
||||||
Range: 9
|
Range: 9c0
|
||||||
CaptorTypes: Ship,Vehicle,Tank,Infantry
|
CaptorTypes: Ship,Vehicle,Tank,Infantry
|
||||||
StrategicPoint:
|
StrategicPoint:
|
||||||
Critical: false
|
Critical: false
|
||||||
|
|||||||
@@ -652,7 +652,7 @@ Rules:
|
|||||||
JEEP:
|
JEEP:
|
||||||
Explodes:
|
Explodes:
|
||||||
JamsRadar:
|
JamsRadar:
|
||||||
Range: 10
|
Range: 10c0
|
||||||
YAK:
|
YAK:
|
||||||
Buildable:
|
Buildable:
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~disabled
|
||||||
|
|||||||
@@ -827,7 +827,7 @@ Rules:
|
|||||||
Production:
|
Production:
|
||||||
Produces: Building, Infantry, Soldier, Dog
|
Produces: Building, Infantry, Soldier, Dog
|
||||||
BaseProvider:
|
BaseProvider:
|
||||||
Range: 16
|
Range: 16c0
|
||||||
Power:
|
Power:
|
||||||
Amount: 0
|
Amount: 0
|
||||||
WEAP:
|
WEAP:
|
||||||
|
|||||||
@@ -414,7 +414,7 @@
|
|||||||
Types: Building
|
Types: Building
|
||||||
GivesBounty:
|
GivesBounty:
|
||||||
Guardable:
|
Guardable:
|
||||||
Range: 3
|
Range: 3c0
|
||||||
FrozenUnderFog:
|
FrozenUnderFog:
|
||||||
GpsRemoveFrozenActor:
|
GpsRemoveFrozenActor:
|
||||||
Tooltip:
|
Tooltip:
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ DOG:
|
|||||||
StandSequences: stand
|
StandSequences: stand
|
||||||
IgnoresDisguise:
|
IgnoresDisguise:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
Voiced:
|
Voiced:
|
||||||
VoiceSet: DogVoice
|
VoiceSet: DogVoice
|
||||||
-TakeCover:
|
-TakeCover:
|
||||||
@@ -222,7 +222,7 @@ SPY:
|
|||||||
UpgradeMinEnabledLevel: 1
|
UpgradeMinEnabledLevel: 1
|
||||||
IgnoresDisguise:
|
IgnoresDisguise:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
Armament:
|
Armament:
|
||||||
Weapon: SilencedPPK
|
Weapon: SilencedPPK
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
@@ -527,7 +527,7 @@ SNIPER:
|
|||||||
UncloakOnMove: true
|
UncloakOnMove: true
|
||||||
IsPlayerPalette: true
|
IsPlayerPalette: true
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
-MustBeDestroyed:
|
-MustBeDestroyed:
|
||||||
ProducibleWithLevel:
|
ProducibleWithLevel:
|
||||||
Prerequisites: barracks.upgraded
|
Prerequisites: barracks.upgraded
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ CAMERA:
|
|||||||
ProximityCaptor:
|
ProximityCaptor:
|
||||||
Types: Camera
|
Types: Camera
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 10
|
Range: 10c0
|
||||||
BodyOrientation:
|
BodyOrientation:
|
||||||
QuantizedFacings: 1
|
QuantizedFacings: 1
|
||||||
WithSpriteBody:
|
WithSpriteBody:
|
||||||
@@ -157,7 +157,7 @@ SONAR:
|
|||||||
ProximityCaptor:
|
ProximityCaptor:
|
||||||
Types: Sonar
|
Types: Sonar
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 10
|
Range: 10c0
|
||||||
CloakTypes: Underwater
|
CloakTypes: Underwater
|
||||||
|
|
||||||
FLARE:
|
FLARE:
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ SS:
|
|||||||
InitialStance: ReturnFire
|
InitialStance: ReturnFire
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
CloakTypes: Underwater
|
CloakTypes: Underwater
|
||||||
Range: 4
|
Range: 4c0
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
Explodes:
|
Explodes:
|
||||||
Weapon: UnitExplodeSubmarine
|
Weapon: UnitExplodeSubmarine
|
||||||
@@ -101,7 +101,7 @@ MSUB:
|
|||||||
InitialStance: ReturnFire
|
InitialStance: ReturnFire
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
CloakTypes: Underwater
|
CloakTypes: Underwater
|
||||||
Range: 4
|
Range: 4c0
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
Explodes:
|
Explodes:
|
||||||
Weapon: UnitExplodeSubmarine
|
Weapon: UnitExplodeSubmarine
|
||||||
@@ -151,7 +151,7 @@ DD:
|
|||||||
AutoTarget:
|
AutoTarget:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
CloakTypes: Underwater
|
CloakTypes: Underwater
|
||||||
Range: 4
|
Range: 4c0
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
|
|
||||||
CA:
|
CA:
|
||||||
@@ -279,6 +279,6 @@ PT:
|
|||||||
AutoTarget:
|
AutoTarget:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
CloakTypes: Underwater
|
CloakTypes: Underwater
|
||||||
Range: 4
|
Range: 4c0
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
|
|
||||||
|
|||||||
@@ -412,7 +412,7 @@ TSLA:
|
|||||||
Power:
|
Power:
|
||||||
Amount: -100
|
Amount: -100
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 8
|
Range: 8c0
|
||||||
ProvidesPrerequisite@buildingname:
|
ProvidesPrerequisite@buildingname:
|
||||||
|
|
||||||
AGUN:
|
AGUN:
|
||||||
@@ -460,7 +460,7 @@ AGUN:
|
|||||||
Power:
|
Power:
|
||||||
Amount: -50
|
Amount: -50
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
|
|
||||||
DOME:
|
DOME:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
@@ -491,7 +491,7 @@ DOME:
|
|||||||
ProvidesRadar:
|
ProvidesRadar:
|
||||||
InfiltrateForExploration:
|
InfiltrateForExploration:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 10
|
Range: 10c0
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
Power:
|
Power:
|
||||||
Amount: -40
|
Amount: -40
|
||||||
@@ -538,7 +538,7 @@ PBOX:
|
|||||||
Power:
|
Power:
|
||||||
Amount: -15
|
Amount: -15
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
|
|
||||||
HBOX:
|
HBOX:
|
||||||
Inherits: ^Defense
|
Inherits: ^Defense
|
||||||
@@ -574,7 +574,7 @@ HBOX:
|
|||||||
InitialUnits: e1
|
InitialUnits: e1
|
||||||
-EmitInfantryOnSell:
|
-EmitInfantryOnSell:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
FallbackRange: 6c0
|
FallbackRange: 6c0
|
||||||
AttackGarrisoned:
|
AttackGarrisoned:
|
||||||
@@ -620,7 +620,7 @@ GUN:
|
|||||||
Power:
|
Power:
|
||||||
Amount: -40
|
Amount: -40
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 7
|
Range: 7c0
|
||||||
|
|
||||||
FTUR:
|
FTUR:
|
||||||
Inherits: ^Defense
|
Inherits: ^Defense
|
||||||
@@ -655,7 +655,7 @@ FTUR:
|
|||||||
Power:
|
Power:
|
||||||
Amount: -20
|
Amount: -20
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
ProvidesPrerequisite@buildingname:
|
ProvidesPrerequisite@buildingname:
|
||||||
|
|
||||||
SAM:
|
SAM:
|
||||||
@@ -698,7 +698,7 @@ SAM:
|
|||||||
Power:
|
Power:
|
||||||
Amount: -40
|
Amount: -40
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
|
|
||||||
ATEK:
|
ATEK:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
@@ -895,7 +895,7 @@ FACT:
|
|||||||
ProductionType: Defense
|
ProductionType: Defense
|
||||||
Color: 138,138,138
|
Color: 138,138,138
|
||||||
BaseProvider:
|
BaseProvider:
|
||||||
Range: 16
|
Range: 16c0
|
||||||
WithBuildingPlacedAnimation:
|
WithBuildingPlacedAnimation:
|
||||||
Power:
|
Power:
|
||||||
Amount: 0
|
Amount: 0
|
||||||
|
|||||||
@@ -414,7 +414,7 @@ MNLY.AP:
|
|||||||
Ammo: 5
|
Ammo: 5
|
||||||
RearmSound: minelay1.aud
|
RearmSound: minelay1.aud
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
CloakTypes: Mine
|
CloakTypes: Mine
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -449,7 +449,7 @@ MNLY.AT:
|
|||||||
Ammo: 5
|
Ammo: 5
|
||||||
RearmSound: minelay1.aud
|
RearmSound: minelay1.aud
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
CloakTypes: Mine
|
CloakTypes: Mine
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -532,13 +532,13 @@ MRJ:
|
|||||||
Sequence: spinner
|
Sequence: spinner
|
||||||
Offset: -256,0,256
|
Offset: -256,0,256
|
||||||
JamsRadar:
|
JamsRadar:
|
||||||
Range: 15
|
Range: 15c0
|
||||||
JamsMissiles:
|
JamsMissiles:
|
||||||
Range: 4
|
Range: 4c0
|
||||||
AlliedMissiles: False
|
AlliedMissiles: False
|
||||||
RenderJammerCircle:
|
RenderJammerCircle:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
|
|
||||||
TTNK:
|
TTNK:
|
||||||
Inherits: ^Tank
|
Inherits: ^Tank
|
||||||
@@ -742,7 +742,7 @@ STNK:
|
|||||||
UncloakSound: appear1.aud
|
UncloakSound: appear1.aud
|
||||||
IsPlayerPalette: true
|
IsPlayerPalette: true
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
-MustBeDestroyed:
|
-MustBeDestroyed:
|
||||||
ProducibleWithLevel:
|
ProducibleWithLevel:
|
||||||
Prerequisites: vehicles.upgraded
|
Prerequisites: vehicles.upgraded
|
||||||
|
|||||||
@@ -96,7 +96,7 @@
|
|||||||
ShakeOnDeath:
|
ShakeOnDeath:
|
||||||
AcceptsSupplies:
|
AcceptsSupplies:
|
||||||
Guardable:
|
Guardable:
|
||||||
Range: 3
|
Range: 3c0
|
||||||
Demolishable:
|
Demolishable:
|
||||||
Cloak@CLOAKGENERATOR:
|
Cloak@CLOAKGENERATOR:
|
||||||
UpgradeTypes: cloakgenerator
|
UpgradeTypes: cloakgenerator
|
||||||
@@ -624,7 +624,7 @@
|
|||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 6c0
|
Range: 6c0
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5c0
|
||||||
|
|
||||||
^DeployedVehicle:
|
^DeployedVehicle:
|
||||||
Inherits@1: ^GainsExperience
|
Inherits@1: ^GainsExperience
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ GARADR:
|
|||||||
ProvidesRadar:
|
ProvidesRadar:
|
||||||
InfiltrateForExploration:
|
InfiltrateForExploration:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 10
|
Range: 10c0
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 10c0
|
Range: 10c0
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ CAMERA:
|
|||||||
Range: 10c0
|
Range: 10c0
|
||||||
Type: CenterPosition
|
Type: CenterPosition
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 10
|
Range: 10c0
|
||||||
|
|
||||||
CRATE:
|
CRATE:
|
||||||
Inherits: ^Crate
|
Inherits: ^Crate
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ NARADR:
|
|||||||
ProvidesRadar:
|
ProvidesRadar:
|
||||||
InfiltrateForExploration:
|
InfiltrateForExploration:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 10
|
Range: 10c0
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 10c0
|
Range: 10c0
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ NALASR:
|
|||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5c0
|
Range: 5c0
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 3
|
Range: 3c0
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 10
|
ROT: 10
|
||||||
InitialFacing: 300
|
InitialFacing: 300
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ GADPSA:
|
|||||||
-RenderRangeCircle:
|
-RenderRangeCircle:
|
||||||
RenderDetectionCircle:
|
RenderDetectionCircle:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 6
|
Range: 6c0
|
||||||
|
|
||||||
NAPULS:
|
NAPULS:
|
||||||
Inherits: ^Defense
|
Inherits: ^Defense
|
||||||
|
|||||||
Reference in New Issue
Block a user