Make Range WDist for all traits with circular ranges.

This commit is contained in:
atlimit8
2015-09-07 13:07:35 -05:00
parent d77839bb3d
commit de7f5a4288
34 changed files with 85 additions and 76 deletions

View File

@@ -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)

View File

@@ -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));

View File

@@ -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;
} }

View File

@@ -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)

View File

@@ -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); }
} }

View File

@@ -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)));
} }

View File

@@ -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 { }

View File

@@ -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; } }

View File

@@ -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 { }

View File

@@ -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);
} }

View File

@@ -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)

View File

@@ -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";

View File

@@ -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);
} }
} }

View File

@@ -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));

View File

@@ -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:

View File

@@ -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

View File

@@ -276,7 +276,7 @@
Sellable: Sellable:
SellSounds: BUILD1.WAV SellSounds: BUILD1.WAV
Guardable: Guardable:
Range: 3 Range: 3c0
WithCrumbleOverlay: WithCrumbleOverlay:
Demolishable: Demolishable:
DamagedWithoutFoundation: DamagedWithoutFoundation:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -652,7 +652,7 @@ Rules:
JEEP: JEEP:
Explodes: Explodes:
JamsRadar: JamsRadar:
Range: 10 Range: 10c0
YAK: YAK:
Buildable: Buildable:
Prerequisites: ~disabled Prerequisites: ~disabled

View File

@@ -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:

View File

@@ -414,7 +414,7 @@
Types: Building Types: Building
GivesBounty: GivesBounty:
Guardable: Guardable:
Range: 3 Range: 3c0
FrozenUnderFog: FrozenUnderFog:
GpsRemoveFrozenActor: GpsRemoveFrozenActor:
Tooltip: Tooltip:

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -281,7 +281,7 @@ GARADR:
ProvidesRadar: ProvidesRadar:
InfiltrateForExploration: InfiltrateForExploration:
DetectCloaked: DetectCloaked:
Range: 10 Range: 10c0
RenderDetectionCircle: RenderDetectionCircle:
RevealsShroud: RevealsShroud:
Range: 10c0 Range: 10c0

View File

@@ -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

View File

@@ -236,7 +236,7 @@ NARADR:
ProvidesRadar: ProvidesRadar:
InfiltrateForExploration: InfiltrateForExploration:
DetectCloaked: DetectCloaked:
Range: 10 Range: 10c0
RenderDetectionCircle: RenderDetectionCircle:
RevealsShroud: RevealsShroud:
Range: 10c0 Range: 10c0

View File

@@ -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

View File

@@ -22,7 +22,7 @@ GADPSA:
-RenderRangeCircle: -RenderRangeCircle:
RenderDetectionCircle: RenderDetectionCircle:
DetectCloaked: DetectCloaked:
Range: 6 Range: 6c0
NAPULS: NAPULS:
Inherits: ^Defense Inherits: ^Defense