Add ITargetablePositions seperating it from ITargetable

This commit is contained in:
atlimit8
2015-07-13 15:22:39 -05:00
parent f5c3575c5a
commit 23d0424437
34 changed files with 124 additions and 165 deletions

View File

@@ -130,9 +130,15 @@ namespace OpenRA.Traits
if (!targetable.Any())
return new[] { actor.CenterPosition };
var targeted = this.actor;
var positions = targetable.SelectMany(t => t.TargetablePositions(targeted)).Distinct();
return positions.Any() ? positions : new[] { targeted.CenterPosition };
var targetablePositions = actor.TraitOrDefault<ITargetablePositions>();
if (targetablePositions != null)
{
var positions = targetablePositions.TargetablePositions(actor);
if (positions.Any())
return positions;
}
return new[] { actor.CenterPosition };
case TargetType.FrozenActor:
return new[] { frozen.CenterPosition };
case TargetType.Terrain:

View File

@@ -317,11 +317,15 @@ namespace OpenRA.Traits
{
// Check IsTraitEnabled or !IsTraitDisabled first
string[] TargetTypes { get; }
IEnumerable<WPos> TargetablePositions(Actor self);
bool TargetableBy(Actor self, Actor byActor);
bool RequiresForceFire { get; }
}
public interface ITargetablePositions
{
IEnumerable<WPos> TargetablePositions(Actor self);
}
public interface INotifyStanceChanged
{
void StanceChanged(Actor self, Player a, Player b,

View File

@@ -293,7 +293,6 @@
<Compile Include="Traits\Buildings\RepairableBuilding.cs" />
<Compile Include="Traits\Buildings\RepairsUnits.cs" />
<Compile Include="Traits\Buildings\Reservable.cs" />
<Compile Include="Traits\Buildings\TargetableBuilding.cs" />
<Compile Include="Traits\Burns.cs" />
<Compile Include="Traits\C4Demolition.cs" />
<Compile Include="Traits\VeteranProductionIconOverlay.cs" />
@@ -476,7 +475,7 @@
<Compile Include="Traits\SupportPowers\SupportPower.cs" />
<Compile Include="Traits\SupportPowers\SupportPowerManager.cs" />
<Compile Include="Traits\SupportPowers\SpawnActorPower.cs" />
<Compile Include="Traits\TargetableUnit.cs" />
<Compile Include="Traits\Targetable.cs" />
<Compile Include="Traits\ThrowsParticle.cs" />
<Compile Include="Traits\Tooltip.cs" />
<Compile Include="Traits\TransformOnCapture.cs" />

View File

@@ -13,13 +13,13 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
public class TargetableAircraftInfo : TargetableUnitInfo
public class TargetableAircraftInfo : TargetableInfo
{
public readonly string[] GroundedTargetTypes = { };
public override object Create(ActorInitializer init) { return new TargetableAircraft(init.Self, this); }
}
public class TargetableAircraft : TargetableUnit
public class TargetableAircraft : Targetable
{
readonly TargetableAircraftInfo info;
readonly Actor self;

View File

@@ -116,7 +116,7 @@ namespace OpenRA.Mods.Common.Traits
bool IOccupySpaceInfo.SharesCell { get { return false; } }
}
public class Building : IOccupySpace, INotifySold, INotifyTransform, ISync, INotifyCreated, INotifyAddedToWorld, INotifyRemovedFromWorld
public class Building : IOccupySpace, INotifySold, INotifyTransform, ISync, INotifyCreated, INotifyAddedToWorld, INotifyRemovedFromWorld, ITargetablePositions
{
public readonly BuildingInfo Info;
public bool BuildComplete { get; private set; }
@@ -157,6 +157,11 @@ namespace OpenRA.Mods.Common.Traits
Pair<CPos, SubCell>[] occupiedCells;
public IEnumerable<Pair<CPos, SubCell>> OccupiedCells() { return occupiedCells; }
public IEnumerable<WPos> TargetablePositions(Actor self)
{
return OccupiedCells().Select(c => self.World.Map.CenterOfCell(c.First));
}
public void Created(Actor self)
{
if (SkipMakeAnimation || !self.HasTrait<WithMakeAnimation>())

View File

@@ -1,49 +0,0 @@
#region Copyright & License Information
/*
* Copyright 2007-2015 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
* see COPYING.
*/
#endregion
using System.Collections.Generic;
using System.Linq;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
public class TargetableBuildingInfo : ITraitInfo, ITargetableInfo, Requires<BuildingInfo>
{
[FieldLoader.Require]
public readonly string[] TargetTypes = { };
public string[] GetTargetTypes() { return TargetTypes; }
public bool RequiresForceFire = false;
public object Create(ActorInitializer init) { return new TargetableBuilding(init.Self, this); }
}
public class TargetableBuilding : ITargetable
{
readonly TargetableBuildingInfo info;
readonly Building building;
public TargetableBuilding(Actor self, TargetableBuildingInfo info)
{
this.info = info;
building = self.Trait<Building>();
}
public string[] TargetTypes { get { return info.TargetTypes; } }
public bool TargetableBy(Actor self, Actor byActor) { return true; }
public IEnumerable<WPos> TargetablePositions(Actor self)
{
return building.OccupiedCells().Select(c => self.World.Map.CenterOfCell(c.First));
}
public bool RequiresForceFire { get { return info.RequiresForceFire; } }
}
}

View File

@@ -14,7 +14,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
[Desc("Actor can be targeted.")]
public class TargetableUnitInfo : UpgradableTraitInfo, ITargetableInfo
public class TargetableInfo : UpgradableTraitInfo, ITargetableInfo
{
[Desc("Target type. Used for filtering (in)valid targets.")]
public readonly string[] TargetTypes = { };
@@ -22,15 +22,15 @@ namespace OpenRA.Mods.Common.Traits
public bool RequiresForceFire = false;
public override object Create(ActorInitializer init) { return new TargetableUnit(init.Self, this); }
public override object Create(ActorInitializer init) { return new Targetable(init.Self, this); }
}
public class TargetableUnit : UpgradableTrait<TargetableUnitInfo>, ITargetable
public class Targetable : UpgradableTrait<TargetableInfo>, ITargetable
{
protected static readonly string[] None = new string[] { };
protected Cloak cloak;
public TargetableUnit(Actor self, TargetableUnitInfo info)
public Targetable(Actor self, TargetableInfo info)
: base(info)
{
cloak = self.TraitOrDefault<Cloak>();
@@ -48,11 +48,6 @@ namespace OpenRA.Mods.Common.Traits
public virtual string[] TargetTypes { get { return Info.TargetTypes; } }
public virtual IEnumerable<WPos> TargetablePositions(Actor self)
{
yield return self.CenterPosition;
}
public bool RequiresForceFire { get { return Info.RequiresForceFire; } }
}
}

View File

@@ -1965,6 +1965,17 @@ namespace OpenRA.Mods.Common.UtilityCommands
}
}
if (engineVersion < 20150902)
{
if (depth == 1)
{
if (node.Key == "TargetableUnit" || node.Key == "TargetableBuilding")
node.Key = "Targetable";
else if (node.Key == "-TargetableUnit" || node.Key == "-TargetableBuilding")
node.Key = "-Targetable";
}
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
}
}

View File

@@ -13,14 +13,14 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA.Traits
{
public class TargetableSubmarineInfo : TargetableUnitInfo, Requires<CloakInfo>
public class TargetableSubmarineInfo : TargetableInfo, Requires<CloakInfo>
{
public readonly string[] CloakedTargetTypes = { };
public override object Create(ActorInitializer init) { return new TargetableSubmarine(init.Self, this); }
}
public class TargetableSubmarine : TargetableUnit
public class TargetableSubmarine : Targetable
{
readonly TargetableSubmarineInfo info;

View File

@@ -511,7 +511,7 @@ Rules:
Buildable:
Prerequisites: ~disabled
A10:
TargetableUnit:
Targetable:
Sequences:

View File

@@ -374,7 +374,7 @@ BRIDGEHUT:
CustomSelectionSize:
CustomBounds: 48,48
BridgeHut:
TargetableBuilding:
Targetable:
TargetTypes: BridgeHut, C4
C1:

View File

@@ -64,7 +64,7 @@
SelectionDecorations:
Selectable:
Bounds: 24,24
TargetableUnit:
Targetable:
TargetTypes: Ground, Vehicle
Repairable:
Passenger:
@@ -172,7 +172,7 @@
SelectionDecorations:
Selectable:
Bounds: 12,17,0,-6
TargetableUnit:
Targetable:
TargetTypes: Ground, Infantry
RenderSprites:
QuantizeFacingsFromSequence:
@@ -302,7 +302,7 @@
SelectionDecorations:
Selectable:
Bounds: 24,24
TargetableUnit:
Targetable:
TargetTypes: Ground
HiddenUnderFog:
QuantizeFacingsFromSequence:
@@ -346,7 +346,7 @@
SelectionDecorations:
Selectable:
Bounds: 24,24
TargetableUnit:
Targetable:
TargetTypes: Ground
AutoTarget:
ScanRadius: 5
@@ -405,7 +405,7 @@
Water: 100
SelectionDecorations:
Selectable:
TargetableUnit:
Targetable:
TargetTypes: Ground, Water
HiddenUnderFog:
ActorLostNotification:
@@ -421,7 +421,7 @@
SelectionDecorations:
Selectable:
Priority: 3
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, Structure
Armor:
Type: Wood
@@ -520,7 +520,7 @@
Tooltip:
Name: Field
-WithBuildingExplosion:
-TargetableBuilding:
-Targetable:
-Demolishable:
RenderSprites:
Palette: terrain
@@ -553,7 +553,7 @@
BuildSounds: hvydoor1.aud
Adjacent: 7
TerrainTypes: Clear,Road
TargetableBuilding:
Targetable:
TargetTypes: Ground, Wall
Crushable:
CrushClasses: wall
@@ -662,7 +662,7 @@
AllowedTerrain: Clear, Rough, Road, Tiberium, BlueTiberium, Beach
Burns:
Interval: 2
TargetableUnit:
Targetable:
RequiresForceFire: yes
TargetTypes: Ground, Husk
Capturable:
@@ -692,7 +692,7 @@
AlwaysVisible:
Tooltip:
Name: Bridge
TargetableBuilding:
Targetable:
RequiresForceFire: yes
TargetTypes: Ground, Water
Health:

View File

@@ -528,7 +528,7 @@ STNK:
AttackFrontal:
AutoTarget:
InitialStance: HoldFire
TargetableUnit:
Targetable:
SpawnActorOnDeath:
Actor: STNK.Husk
-MustBeDestroyed:

View File

@@ -34,7 +34,7 @@ sandworm:
Sand: 100
Dune: 100
Spice: 100
TargetableUnit:
Targetable:
TargetTypes: Ground
WithFacingSpriteBody:
WithAttackOverlay:

View File

@@ -65,7 +65,7 @@
SelectionDecorations:
Selectable:
Bounds: 32,32
TargetableUnit:
Targetable:
TargetTypes: Ground, Vehicle, C4
Passenger:
CargoType: Vehicle
@@ -130,7 +130,7 @@
AllowedTerrain: Sand, Rock, Transition, Concrete, Spice, SpiceBlobs, Dune
Burns:
Interval: 4
TargetableUnit:
Targetable:
TargetTypes: Ground, Vehicle
RequiresForceFire: yes
Capturable:
@@ -188,7 +188,7 @@
SelectionDecorations:
Selectable:
Bounds: 12,18,0,-6
TargetableUnit:
Targetable:
TargetTypes: Ground, Infantry
UpgradeTypes: parachute
UpgradeMaxEnabledLevel: 0
@@ -260,7 +260,7 @@
SelectionDecorations:
Selectable:
Priority: 2
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, Structure
Building:
Dimensions: 1,1

View File

@@ -509,7 +509,7 @@ wall:
NodeTypes: wall, turret
LineBuildNode:
Types: wall
TargetableBuilding:
Targetable:
TargetTypes: Ground, Wall
RenderSprites:
WithWallSpriteBody:

View File

@@ -1382,21 +1382,15 @@ Rules:
-ExternalCaptures:
Captures:
CaptureTypes: building
Cloak@JAIL:
Targetable:
UpgradeTypes: jail
UpgradeMinEnabledLevel: 1
InitialDelay: 0
CloakDelay: 0
Palette:
UpgradeMaxEnabledLevel: 0
RenderSprites:
Image: E6
MEDI:
Cloak@JAIL:
Targetable:
UpgradeTypes: jail
UpgradeMinEnabledLevel: 1
InitialDelay: 0
CloakDelay: 0
Palette:
UpgradeMaxEnabledLevel: 0
E7.noautotarget:
Inherits: E7
AutoTarget:

View File

@@ -1278,21 +1278,15 @@ Rules:
Captures:
CaptureTypes: building
WithInfantryBody:
Cloak@JAIL:
Targetable:
UpgradeTypes: jail
UpgradeMinEnabledLevel: 1
InitialDelay: 0
CloakDelay: 0
Palette:
UpgradeMaxEnabledLevel: 0
RenderSprites:
Image: E6
MEDI:
Cloak@JAIL:
Targetable:
UpgradeTypes: jail
UpgradeMinEnabledLevel: 1
InitialDelay: 0
CloakDelay: 0
Palette:
UpgradeMaxEnabledLevel: 0
E7.noautotarget:
Inherits: E7
AutoTarget:
@@ -1385,7 +1379,7 @@ Rules:
-Selectable:
-Demolishable:
-Huntable:
-TargetableUnit:
-Targetable:
-Armament:
-WithMuzzleFlash:
Cargo:

View File

@@ -1651,7 +1651,7 @@ Rules:
Prerequisites: ~disabled
LST:
-Selectable:
TargetableUnit:
Targetable:
TargetTypes: Ground, Water
Tooltip:
GenericVisibility: Enemy
@@ -1696,13 +1696,13 @@ Rules:
ShowOwnerRow: false
WEAP:
-InfiltrateForSupportPower:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, Structure, Mission Objectives
MISS:
Tooltip:
Name: Prison
ShowOwnerRow: False
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, Structure, Mission Objectives
E7.noautotarget:
Inherits: E7

View File

@@ -644,7 +644,7 @@ Rules:
DamageMultiplier@INVULNERABLE:
Modifier: 0
-Selectable:
-TargetableBuilding:
-Targetable:
Player:
StrategicVictoryConditions:
TicksToHold: 3000

View File

@@ -2241,7 +2241,7 @@ Rules:
RenderSprites:
Image: DOME
-InfiltrateForExploration:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, MissionObjective
SPY:
Infiltrates:

View File

@@ -1282,7 +1282,7 @@ Rules:
Power:
Amount: 0
-Selectable:
-TargetableBuilding:
-Targetable:
-GivesBuildableArea:
-Huntable:
RenderSprites:

View File

@@ -242,7 +242,7 @@ V19.Husk:
Sequence: fire-loop
-Health:
-Selectable:
-TargetableBuilding:
-Targetable:
-Demolishable:
BARL:
@@ -259,7 +259,7 @@ BARL:
AutoTargetIgnore:
Armor:
Type: None
TargetableBuilding:
Targetable:
TargetTypes: Ground, DemoTruck
-ShakeOnDeath:
-SoundOnDamageTransition:
@@ -279,7 +279,7 @@ BRL3:
AutoTargetIgnore:
Armor:
Type: None
TargetableBuilding:
Targetable:
TargetTypes: Ground, DemoTruck
-ShakeOnDeath:
-SoundOnDamageTransition:
@@ -497,7 +497,7 @@ BRIDGEHUT:
CustomSelectionSize:
CustomBounds: 48,48
BridgeHut:
TargetableBuilding:
Targetable:
TargetTypes: BridgeHut, C4
BRIDGEHUT.small:
@@ -508,7 +508,7 @@ BRIDGEHUT.small:
CustomSelectionSize:
CustomBounds: 24,24
BridgeHut:
TargetableBuilding:
Targetable:
TargetTypes: BridgeHut, C4
V20:

View File

@@ -77,7 +77,7 @@
SelectionDecorations:
Selectable:
Bounds: 24, 24
TargetableUnit:
Targetable:
TargetTypes: Ground, Repair, Vehicle
UpgradeTypes: parachute
UpgradeMaxEnabledLevel: 0
@@ -149,7 +149,7 @@
Ore: 70
Gems: 70
Beach: 70
TargetableUnit:
Targetable:
TargetTypes: Ground, C4, Repair, Tank
ProximityCaptor:
Types: Tank
@@ -181,7 +181,7 @@
SelectionDecorations:
Selectable:
Bounds: 12,18,0,-8
TargetableUnit:
Targetable:
TargetTypes: Ground, Infantry, Disguise
UpgradeTypes: parachute
UpgradeMaxEnabledLevel: 0
@@ -299,7 +299,7 @@
SelectionDecorations:
Selectable:
Bounds: 24,24
TargetableUnit:
Targetable:
TargetTypes: Ground, Water, Repair
HiddenUnderFog:
AttackMove:
@@ -385,7 +385,7 @@
SelectionDecorations:
Selectable:
Priority: 3
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, Structure
Building:
Dimensions: 1,1
@@ -433,7 +433,7 @@
^Defense:
Inherits: ^Building
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, Structure, Defense
MustBeDestroyed:
RequiredForShortGame: false
@@ -462,7 +462,7 @@
NodeTypes: wall
LineBuildNode:
Types: wall
TargetableBuilding:
Targetable:
TargetTypes: Ground, DetonateAttack, Wall
RenderSprites:
Palette: effect
@@ -518,7 +518,7 @@
AutoTargetIgnore:
Armor:
Type: Light
TargetableBuilding:
Targetable:
TargetTypes: Ground, DetonateAttack
^CivBuilding:
@@ -533,7 +533,7 @@
-Selectable:
Tooltip:
Name: Field
-TargetableBuilding:
-Targetable:
-Demolishable:
ProximityCaptor:
Types: CivilianField
@@ -598,7 +598,7 @@
TransformOnCapture:
ForceHealthPercentage: 25
DisabledOverlay:
TargetableUnit:
Targetable:
TargetTypes: Ground, Husk
RequiresForceFire: true
Chronoshiftable:
@@ -625,7 +625,7 @@
AlwaysVisible:
Tooltip:
Name: Bridge
TargetableBuilding:
Targetable:
TargetTypes: Ground, Water
RequiresForceFire: true
Building:

View File

@@ -57,7 +57,7 @@ SYRF:
GenericName: Shipyard
GenericVisibility: Enemy
GenericStancePrefix: False
TargetableBuilding:
Targetable:
TargetTypes: Ground, Water
Building:
Footprint: xxx xxx xxx
@@ -73,7 +73,7 @@ SYRF:
SPEF:
Inherits: ^FakeBuilding
TargetableBuilding:
Targetable:
TargetTypes: Ground, Water
Buildable:
BuildPaletteOrder: 910

View File

@@ -32,7 +32,7 @@ DOG:
Voice: Attack
AttackMove:
Voice: Move
TargetableUnit:
Targetable:
TargetTypes: Ground, Infantry
WithInfantryBody:
AttackSequence: shoot
@@ -587,7 +587,7 @@ Ant:
AttackSequence: bite
Armament:
Weapon: mandible
TargetableUnit:
Targetable:
TargetTypes: Ground, Infantry
WithDeathAnimation:
UseDeathTypeSuffix: false

View File

@@ -22,7 +22,7 @@ MINP:
Name: Mine
ProximityCaptor:
Types: Mine
TargetableUnit:
Targetable:
TargetTypes: Ground
BodyOrientation:
QuantizedFacings: 1
@@ -53,7 +53,7 @@ MINV:
Name: Mine
ProximityCaptor:
Types: Mine
TargetableUnit:
Targetable:
TargetTypes: Ground
BodyOrientation:
QuantizedFacings: 1
@@ -431,5 +431,5 @@ CTFLAG:
DamageMultiplier@INVULNERABLE:
Modifier: 0
-Selectable:
-TargetableBuilding:
-Targetable:

View File

@@ -19,7 +19,7 @@ SS:
Speed: 71
RevealsShroud:
Range: 6c0
-TargetableUnit:
-Targetable:
TargetableSubmarine:
TargetTypes: Ground, Water, Repair
CloakedTargetTypes: Underwater, Repair
@@ -68,7 +68,7 @@ MSUB:
Speed: 42
RevealsShroud:
Range: 6c0
-TargetableUnit:
-Targetable:
TargetableSubmarine:
TargetTypes: Ground, Water, Repair
CloakedTargetTypes: Underwater, Repair

View File

@@ -100,7 +100,7 @@ SPEN:
Queue: Building
BuildPaletteOrder: 50
Prerequisites: anypower, ~structures.soviet, ~techlevel.low
TargetableBuilding:
Targetable:
TargetTypes: Ground, Water, C4, DetonateAttack, SpyInfiltrate
Building:
Footprint: xxx xxx xxx
@@ -181,7 +181,7 @@ SYRD:
Tooltip:
Name: Shipyard
Description: Produces and repairs ships\nand transports.
TargetableBuilding:
Targetable:
TargetTypes: Ground, Water, C4, DetonateAttack, SpyInfiltrate
Building:
Footprint: xxx xxx xxx
@@ -476,7 +476,7 @@ DOME:
Building:
Footprint: xx xx
Dimensions: 2,2
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
RequiresPower:
CanPowerDown:
@@ -823,7 +823,7 @@ WEAP:
Power:
Amount: -30
ProvidesPrerequisite@buildingname:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, Structure, SpyInfiltrate
InfiltrateForSupportPower:
Proxy: vehicles.upgraded
@@ -920,7 +920,7 @@ PROC:
Bounds: 72,50,0,12
SelectionDecorations:
VisualBounds: 72,70,0,-2
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
Health:
HP: 900
@@ -1050,7 +1050,7 @@ HPAD:
RequiresPrerequisites: structures.germany
Prerequisite: aircraft.germany
ProvidesPrerequisite@buildingname:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, Structure, SpyInfiltrate
InfiltrateForSupportPower:
Proxy: aircraft.upgraded
@@ -1159,7 +1159,7 @@ AFLD:
Power:
Amount: -20
ProvidesPrerequisite@buildingname:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, Structure, SpyInfiltrate
InfiltrateForSupportPower:
Proxy: aircraft.upgraded
@@ -1191,7 +1191,7 @@ POWR:
Amount: 100
InfiltrateForPowerOutage:
AffectedByPowerOutage:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
ScalePowerWithHealth:
DisabledOverlay:
@@ -1232,7 +1232,7 @@ APWR:
Amount: 200
InfiltrateForPowerOutage:
AffectedByPowerOutage:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
ScalePowerWithHealth:
DisabledOverlay:
@@ -1332,7 +1332,7 @@ BARR:
ProvidesPrerequisite@buildingname:
InfiltrateForSupportPower:
Proxy: barracks.upgraded
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, Structure, SpyInfiltrate
KENN:
@@ -1439,7 +1439,7 @@ TENT:
ProvidesPrerequisite@buildingname:
InfiltrateForSupportPower:
Proxy: barracks.upgraded
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, Structure, SpyInfiltrate
FIX:

View File

@@ -699,7 +699,7 @@ QTNK:
VisualBounds: 44,38,0,-4
MadTank:
-EjectOnDeath:
TargetableUnit:
Targetable:
TargetTypes: Ground, MADTank, Repair
STNK:

View File

@@ -225,7 +225,7 @@ DOGGIE:
Speed: 113
Voiced:
VoiceSet: Fiend
TargetableUnit:
Targetable:
TargetTypes: Ground
Armament:
Weapon: FiendShard

View File

@@ -71,7 +71,7 @@
Palette: pips
Selectable:
Priority: 3
TargetableBuilding:
Targetable:
TargetTypes: Ground, Building, C4
Building:
Dimensions: 1,1
@@ -187,7 +187,7 @@
NodeTypes: wall
LineBuildNode:
Types: wall
TargetableBuilding:
Targetable:
TargetTypes: Ground, Wall, C4
RenderSprites:
AutoSelectionSize:
@@ -252,7 +252,7 @@
Bounds: 14,23,-1,-9
Voiced:
VoiceSet: Infantry
TargetableUnit:
Targetable:
TargetTypes: Ground, Infantry
QuantizeFacingsFromSequence:
Sequence: stand
@@ -378,7 +378,7 @@
Palette: pips
Voiced:
VoiceSet: Vehicle
TargetableUnit:
Targetable:
TargetTypes: Ground, Vehicle, Repair
Repairable:
RepairBuildings: gadept
@@ -520,7 +520,7 @@
Palette: pips
Selectable:
Bounds: 26,26,0,-3
TargetableUnit:
Targetable:
TargetTypes: Ground
AttackMove:
HiddenUnderFog:
@@ -651,7 +651,7 @@
SelectionDecorations:
Palette: pips
Selectable:
TargetableBuilding:
Targetable:
TargetTypes: Ground, Repair
Guardable:
HiddenUnderFog:
@@ -681,7 +681,7 @@
Palette: pips
Voiced:
VoiceSet: Vehicle
TargetableUnit:
Targetable:
TargetTypes: Ground, Vehicle
Passenger:
CargoType: Infantry

View File

@@ -30,7 +30,7 @@ GAPOWR:
Amount: 100
InfiltrateForPowerOutage:
AffectedByPowerOutage:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
ScalePowerWithHealth:
DisabledOverlay:
@@ -288,7 +288,7 @@ GARADR:
WithIdleOverlay@DISH:
Sequence: idle-dish
PauseOnLowPower: yes
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, SpyInfiltrate
Power:
Amount: -50

View File

@@ -28,7 +28,7 @@ NAPOWR:
Amount: 100
InfiltrateForPowerOutage:
AffectedByPowerOutage:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
ScalePowerWithHealth:
DisabledOverlay:
@@ -65,7 +65,7 @@ NAAPWR:
Amount: 200
InfiltrateForPowerOutage:
AffectedByPowerOutage:
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
ScalePowerWithHealth:
DisabledOverlay:
@@ -243,7 +243,7 @@ NARADR:
WithIdleOverlay@DISH:
Sequence: idle-dish
PauseOnLowPower: yes
TargetableBuilding:
Targetable:
TargetTypes: Ground, C4, SpyInfiltrate
Power:
Amount: -50