started porting traits to use new trait args.

This commit is contained in:
Chris Forbes
2010-01-10 18:55:10 +13:00
parent 99a61ca8d9
commit e7f9023aca
9 changed files with 501 additions and 87 deletions

View File

@@ -14,7 +14,7 @@ namespace OpenRa.Game.Traits.Activities
static Actor ChooseHelipad(Actor self)
{
return Game.world.Actors.FirstOrDefault(
a => a.LegacyInfo == Rules.UnitInfo["HPAD"] &&
a => a.Info == Rules.NewUnitInfo["HPAD"] &&
a.Owner == self.Owner &&
!Reservable.IsReserved(a));
}

View File

@@ -13,8 +13,9 @@ namespace OpenRa.Game.Traits.Activities
void DoSell(Actor self)
{
var refund = Rules.General.RefundPercent
* self.Health * self.LegacyInfo.Cost / self.LegacyInfo.Strength;
var cost = self.Info.Traits.Get<BuildableInfo>().Cost;
var hp = self.Info.Traits.WithInterface<OwnedActorInfo>().First().HP;
var refund = Rules.General.RefundPercent * self.Health * cost / hp;
self.Owner.GiveCash((int)refund);
self.Health = 0;

View File

@@ -8,6 +8,15 @@ namespace OpenRa.Game.Traits
{
class AttackBaseInfo : ITraitInfo
{
public readonly string PrimaryWeapon = null;
public readonly string SecondaryWeapon = null;
public readonly int Recoil = 0;
public readonly int[] PrimaryLocalOffset = { };
public readonly int[] SecondaryLocalOffset = { };
public readonly int[] PrimaryOffset = { 0, 0 };
public readonly int[] SecondaryOffset = null;
public readonly bool MuzzleFlash = false;
public virtual object Create(Actor self) { return new AttackBase(self); }
}

View File

@@ -9,8 +9,28 @@ using OpenRa.Game.Graphics;
namespace OpenRa.Game.Traits
{
class BuildingInfo : ITraitInfo
class OwnedActorInfo
{
public readonly int HP = 0;
public readonly ArmorType Armor = ArmorType.none;
public readonly bool Crewed = false; // replace with trait?
public readonly int InitialFacing = 128;
}
class BuildingInfo : OwnedActorInfo, ITraitInfo
{
public readonly int Power = 0;
public readonly bool RequiresPower = false;
public readonly bool BaseNormal = true;
public readonly int Adjacent = 1;
public readonly bool Bib = false;
public readonly bool Capturable = false;
public readonly bool Repairable = true;
public readonly string Footprint = "x";
public readonly string[] Produces = { }; // does this go somewhere else?
public readonly int2 Dimensions = new int2(1, 1);
public readonly bool WaterBound = false;
public object Create(Actor self) { return new Building(self); }
}

View File

@@ -10,6 +10,7 @@ namespace OpenRa.Game.Traits
class CargoInfo : ITraitInfo
{
public readonly UnitMovementType[] PassengerTypes = { };
public readonly int UnloadFacing = 0;
public object Create(Actor self) { return new Cargo(self); }
}

View File

@@ -14,7 +14,7 @@ namespace OpenRa.Game.Traits
public void OnSteal(Actor self, Actor thief)
{
// Steal half the ore the building holds
var toSteal = (self.LegacyInfo as LegacyBuildingInfo).Storage/2;
var toSteal = self.Info.Traits.Get<StoresOreInfo>().Capacity / 2;
self.Owner.TakeCash(toSteal);
thief.Owner.GiveCash(toSteal);
@@ -28,15 +28,12 @@ namespace OpenRa.Game.Traits
public IEnumerable<PipType> GetPips(Actor self)
{
for (int i = 0; i < self.LegacyInfo.OrePips; i++)
{
if (Game.LocalPlayer.GetSiloFullness() > i * 1.0f / self.LegacyInfo.OrePips)
{
yield return PipType.Yellow;
continue;
}
yield return PipType.Transparent;
}
var numPips = self.Info.Traits.Get<StoresOreInfo>().Pips;
return Graphics.Util.MakeArray( numPips,
i => (Game.LocalPlayer.GetSiloFullness() > i * 1.0f / numPips)
? PipType.Yellow : PipType.Transparent );
}
}
}

View File

@@ -2,12 +2,8 @@
namespace OpenRa.Game.Traits
{
class UnitInfo : ITraitInfo
class UnitInfo : OwnedActorInfo, ITraitInfo
{
public readonly int HP = 0;
public readonly ArmorType Armor = ArmorType.none;
public readonly bool Crewed = false; // replace with trait?
public object Create(Actor self) { return new Unit(self); }
}

View File

@@ -39,7 +39,8 @@ namespace RulesConverter
{ "Unit", new PL {
{ "HP", "Strength" },
{ "Armor", "Armor" },
{ "Crewed", "Crewed" } }
{ "Crewed", "Crewed" },
{ "InitialFacing", "InitialFacing" } }
},
{ "Selectable", new PL {
@@ -102,7 +103,8 @@ namespace RulesConverter
{ "HP", "Strength" },
{ "Armor", "Armor" },
{ "Crewed", "Crewed" },
{ "WaterBound", "WaterBound" } }
{ "WaterBound", "WaterBound" },
{ "InitialFacing", "InitialFacing" } }
},
{ "StoresOre", new PL {

520
ra.yaml
View File

@@ -1,23 +1,3 @@
#
# Red Alert rules
#
DefaultVehicle:
# Unit:
# HP: 1
# Armor: none
# Crewed: yes
# Voice: VehicleVoice
# Mobile:
# Sight: 1
# ROT: 5
# Speed: 1
# UMT: Wheel
# Repairable:
# Chronoshiftable:
# Passenger:
# IronCurtainable:
V2RL:
Inherits: DefaultVehicle
Buildable:
@@ -39,6 +19,7 @@ V2RL:
ROT: 5
Speed: 7
AttackBase:
PrimaryWeapon: SCUD
RenderUnitReload:
AutoTarget:
Repairable:
@@ -68,6 +49,8 @@ V2RL:
Speed: 9
Turreted:
AttackTurreted:
PrimaryWeapon: 75mm
Recoil: 2
RenderUnitTurreted:
AutoTarget:
Repairable:
@@ -97,6 +80,8 @@ V2RL:
Speed: 8
Turreted:
AttackTurreted:
PrimaryWeapon: 90mm
Recoil: 3
RenderUnitTurreted:
AutoTarget:
Repairable:
@@ -126,6 +111,8 @@ V2RL:
Speed: 7
Turreted:
AttackTurreted:
PrimaryWeapon: 105mm
Recoil: 3
RenderUnitTurreted:
AutoTarget:
Repairable:
@@ -155,6 +142,10 @@ V2RL:
Speed: 4
Turreted:
AttackTurreted:
PrimaryWeapon: 120mm
PrimaryLocalOffset: -4,-5,0,4,-5,0
SecondaryLocalOffset: -7,2,25,7,2,-25
Recoil: 4
RenderUnitTurreted:
AutoTarget:
Repairable:
@@ -237,6 +228,7 @@ ARTY:
ROT: 2
Speed: 6
AttackBase:
PrimaryWeapon: 155mm
RenderUnit:
Explodes:
AutoTarget:
@@ -323,6 +315,9 @@ JEEP:
Speed: 10
Turreted:
AttackTurreted:
PrimaryWeapon: M60mg
PrimaryOffset: 0,0,0,-2
MuzzleFlash: yes
RenderUnitTurreted:
AutoTarget:
Repairable:
@@ -350,12 +345,16 @@ APC:
ROT: 5
Speed: 10
AttackBase:
PrimaryWeapon: M60mg
PrimaryOffset: 0,0,0,-4
MuzzleFlash: yes
RenderUnitMuzzleFlash:
AutoTarget:
Repairable:
Chronoshiftable:
Cargo:
PassengerTypes: Foot
UnloadFacing: 220
Passenger:
IronCurtainable:
@@ -444,6 +443,7 @@ SS:
RenderUnit:
Submarine:
AttackBase:
PrimaryWeapon: TorpTube
Chronoshiftable:
IronCurtainable:
@@ -467,6 +467,8 @@ DD:
Speed: 6
Turreted:
AttackTurreted:
PrimaryWeapon: Stinger
PrimaryOffset: 0,-8,0,-3
RenderUnitTurreted:
AutoTarget:
Chronoshiftable:
@@ -492,6 +494,10 @@ CA:
Speed: 4
Turreted:
AttackTurreted:
PrimaryWeapon: 8Inch
PrimaryOffset: 0,17,0,-2
SecondaryOffset: 0,-17,0,-2
Recoil: 3
RenderUnitTurreted:
AutoTarget:
Chronoshiftable:
@@ -539,6 +545,8 @@ PT:
Speed: 9
Turreted:
AttackTurreted:
PrimaryWeapon: 2Inch
PrimaryOffset: 0,-6,0,-1
RenderUnitTurreted:
AutoTarget:
Chronoshiftable:
@@ -558,7 +566,9 @@ MIG:
Unit:
HP: 50
Armor: light
InitialFacing: 192
AttackPlane:
PrimaryWeapon: Maverick
Plane:
ROT: 5
Speed: 20
@@ -583,7 +593,9 @@ YAK:
HP: 60
Armor: light
Crewed: yes
InitialFacing: 192
AttackPlane:
PrimaryWeapon: ChainGun
Plane:
ROT: 5
Speed: 16
@@ -607,6 +619,7 @@ TRAN:
Unit:
HP: 90
Armor: light
InitialFacing: 20
Helicopter:
ROT: 5
Speed: 12
@@ -631,7 +644,11 @@ HELI:
HP: 225
Armor: heavy
Crewed: yes
InitialFacing: 20
AttackHeli:
PrimaryWeapon: Hellfire
PrimaryOffset: -5,0,0,2
SecondaryOffset: 5,0,0,2
Helicopter:
ROT: 4
Speed: 16
@@ -656,7 +673,11 @@ HIND:
HP: 225
Armor: heavy
Crewed: yes
InitialFacing: 20
AttackHeli:
PrimaryWeapon: ChainGun
PrimaryOffset: -5,0,0,2
SecondaryOffset: 5,0,0,2
Helicopter:
ROT: 4
Speed: 12
@@ -679,6 +700,14 @@ IRON:
Selectable:
Priority: 3
Building:
Power: -200
RequiresPower: true
Footprint: xx xx
Dimensions: 2,2
Capturable: true
HP: 400
Armor: wood
Crewed: yes
RenderBuilding:
IronCurtainable:
IronCurtain:
@@ -696,6 +725,14 @@ PDOX:
Selectable:
Priority: 3
Building:
Power: -200
RequiresPower: true
Footprint: xx xx
Dimensions: 2,2
Capturable: true
HP: 400
Armor: wood
Crewed: yes
RenderBuilding:
Chronosphere:
IronCurtainable:
@@ -713,9 +750,16 @@ PBOX:
Selectable:
Priority: 3
Building:
Power: -15
Footprint: x
Dimensions: 1,1
HP: 400
Armor: wood
Crewed: yes
Turreted:
RenderBuilding:
AttackTurreted:
PrimaryWeapon: Vulcan
AutoTarget:
IronCurtainable:
@@ -732,9 +776,16 @@ HBOX:
Selectable:
Priority: 3
Building:
Power: -15
Footprint: x
Dimensions: 1,1
HP: 600
Armor: wood
Crewed: yes
Turreted:
RenderBuilding:
AttackTurreted:
PrimaryWeapon: Vulcan
AutoTarget:
IronCurtainable:
@@ -751,9 +802,17 @@ TSLA:
Selectable:
Priority: 3
Building:
Power: -150
RequiresPower: true
Footprint: _ x
Dimensions: 1,2
HP: 400
Armor: heavy
Crewed: yes
Turreted:
RenderBuildingCharge:
AttackTurreted:
PrimaryWeapon: TeslaZap
AutoTarget:
IronCurtainable:
@@ -770,9 +829,17 @@ GUN:
Selectable:
Priority: 3
Building:
Power: -40
Footprint: x
Dimensions: 1,1
HP: 400
Armor: heavy
Crewed: yes
InitialFacing: 50
Turreted:
RenderBuildingTurreted:
AttackTurreted:
PrimaryWeapon: TurretGun
AutoTarget:
IronCurtainable:
@@ -789,9 +856,18 @@ AGUN:
Selectable:
Priority: 3
Building:
Power: -50
RequiresPower: true
Footprint: _ x
Dimensions: 1,2
HP: 400
Armor: heavy
Crewed: yes
InitialFacing: 224
Turreted:
RenderBuildingTurreted:
AttackTurreted:
PrimaryWeapon: ZSU-23
AutoTarget:
IronCurtainable:
@@ -809,8 +885,15 @@ FTUR:
Priority: 3
Turreted:
Building:
Power: -20
Footprint: x
Dimensions: 1,1
HP: 400
Armor: heavy
Crewed: yes
RenderBuilding:
AttackTurreted:
PrimaryWeapon: FireballLauncher
AutoTarget:
IronCurtainable:
@@ -827,6 +910,14 @@ GAP:
Selectable:
Priority: 3
Building:
Power: -60
RequiresPower: true
Footprint: _ x
Dimensions: 1,2
Capturable: true
HP: 1000
Armor: wood
Crewed: yes
RenderBuilding:
IronCurtainable:
@@ -843,9 +934,16 @@ SAM:
Selectable:
Priority: 3
Building:
Power: -20
Footprint: xx
Dimensions: 2,1
HP: 400
Armor: heavy
Crewed: yes
Turreted:
RenderBuildingTurreted:
AttackTurreted:
PrimaryWeapon: Nike
AutoTarget:
IronCurtainable:
@@ -862,6 +960,12 @@ MSLO:
Selectable:
Priority: 3
Building:
Power: -100
Footprint: xx
Dimensions: 2,1
HP: 400
Armor: heavy
Crewed: yes
RenderBuilding:
IronCurtainable:
@@ -878,6 +982,14 @@ ATEK:
Selectable:
Priority: 3
Building:
Power: -200
Footprint: xx xx
Dimensions: 2,2
Capturable: true
Bib: yes
HP: 400
Armor: wood
Crewed: yes
RenderBuilding:
IronCurtainable:
GpsLaunchSite:
@@ -895,6 +1007,14 @@ WEAP:
Selectable:
Priority: 3
Building:
Power: -30
Footprint: xxx xxx
Dimensions: 3,2
Capturable: true
Bib: yes
HP: 1000
Armor: light
Crewed: yes
RenderWarFactory:
RenderBuilding:
RallyPoint:
@@ -914,6 +1034,15 @@ SYRD:
Selectable:
Priority: 3
Building:
Power: -30
Footprint: xxx xxx xxx
Dimensions: 3,3
Capturable: true
BaseNormal: no
Adjacent: 8
HP: 1000
Armor: light
WaterBound: yes
RenderBuilding:
ProductionSurround:
IronCurtainable:
@@ -931,6 +1060,15 @@ SPEN:
Selectable:
Priority: 3
Building:
Power: -30
Footprint: xxx xxx xxx
Dimensions: 3,3
Capturable: true
BaseNormal: no
Adjacent: 8
HP: 1000
Armor: light
WaterBound: yes
RenderBuilding:
ProductionSurround:
IronCurtainable:
@@ -940,6 +1078,14 @@ FACT:
Selectable:
Priority: 3
Building:
Power: 0
Footprint: xxx xxx xxx
Dimensions: 3,3
Capturable: true
Bib: yes
HP: 1000
Armor: heavy
Crewed: yes
RenderBuilding:
ConstructionYard:
IronCurtainable:
@@ -957,9 +1103,19 @@ PROC:
Selectable:
Priority: 3
Building:
Power: -30
Footprint: _x_ xxx x==
Dimensions: 3,3
Capturable: true
Bib: yes
HP: 900
Armor: wood
Crewed: yes
RenderBuilding:
AcceptsOre:
StoresOre:
Pips: 17
Capacity: 2000
IronCurtainable:
SILO:
@@ -975,8 +1131,16 @@ SILO:
Selectable:
Priority: 3
Building:
Power: -10
Footprint: x
Dimensions: 1,1
Capturable: true
HP: 300
Armor: wood
RenderBuildingOre:
StoresOre:
Pips: 5
Capacity: 1500
IronCurtainable:
HPAD:
@@ -992,6 +1156,14 @@ HPAD:
Selectable:
Priority: 3
Building:
Power: -10
Footprint: xx xx
Dimensions: 2,2
Capturable: true
Bib: yes
HP: 800
Armor: wood
Crewed: yes
RenderBuilding:
Production:
BelowUnits:
@@ -1011,6 +1183,15 @@ DOME:
Selectable:
Priority: 3
Building:
Power: -40
RequiresPower: true
Footprint: xx xx
Dimensions: 2,2
Capturable: true
Bib: yes
HP: 1000
Armor: wood
Crewed: yes
RenderBuilding:
ProvidesRadar:
IronCurtainable:
@@ -1028,6 +1209,13 @@ AFLD:
Selectable:
Priority: 3
Building:
Power: -30
Footprint: xxx xxx
Dimensions: 3,2
Capturable: true
HP: 1000
Armor: heavy
Crewed: yes
RenderBuilding:
Production:
BelowUnits:
@@ -1047,6 +1235,14 @@ POWR:
Selectable:
Priority: 3
Building:
Power: 100
Footprint: xx xx
Dimensions: 2,2
Capturable: true
Bib: yes
HP: 400
Armor: wood
Crewed: yes
RenderBuilding:
IronCurtainable:
@@ -1063,6 +1259,14 @@ APWR:
Selectable:
Priority: 3
Building:
Power: 200
Footprint: ___ xxx xxx
Dimensions: 3,3
Capturable: true
Bib: yes
HP: 700
Armor: wood
Crewed: yes
RenderBuilding:
IronCurtainable:
@@ -1079,6 +1283,14 @@ STEK:
Selectable:
Priority: 3
Building:
Power: -100
Footprint: xxx xxx
Dimensions: 3,2
Capturable: true
Bib: yes
HP: 600
Armor: wood
Crewed: yes
RenderBuilding:
IronCurtainable:
@@ -1095,6 +1307,14 @@ BARR:
Selectable:
Priority: 3
Building:
Power: -20
Footprint: xx xx
Dimensions: 2,2
Capturable: true
Bib: yes
HP: 800
Armor: wood
Crewed: yes
RenderBuilding:
RallyPoint:
Production:
@@ -1113,6 +1333,14 @@ TENT:
Selectable:
Priority: 3
Building:
Power: -20
Footprint: xx xx
Dimensions: 2,2
Capturable: true
Bib: yes
HP: 800
Armor: wood
Crewed: yes
RenderBuilding:
RallyPoint:
Production:
@@ -1131,6 +1359,11 @@ KENN:
Selectable:
Priority: 3
Building:
Power: -10
Footprint: x
Dimensions: 1,1
HP: 400
Armor: wood
RenderBuilding:
RallyPoint:
Production:
@@ -1149,6 +1382,13 @@ FIX:
Selectable:
Priority: 3
Building:
Power: -30
Footprint: _x_ xxx _x_
Dimensions: 3,3
Capturable: true
HP: 800
Armor: wood
Crewed: yes
RenderBuilding:
BelowUnits:
Reservable:
@@ -1166,6 +1406,13 @@ FACF:
Selectable:
Priority: 3
Building:
Power: -2
Footprint: xxx xxx xxx
Dimensions: 3,3
Capturable: true
BaseNormal: no
Bib: yes
HP: 30
RenderBuilding:
Image: FACT
Fake:
@@ -1184,6 +1431,13 @@ WEAF:
Selectable:
Priority: 3
Building:
Power: -2
Footprint: xxx xxx
Dimensions: 3,2
Capturable: true
BaseNormal: no
Bib: yes
HP: 30
RenderWarFactory:
RenderBuilding:
Image: WEAP
@@ -1203,6 +1457,14 @@ SYRF:
Selectable:
Priority: 3
Building:
Power: -2
Footprint: xxx xxx xxx
Dimensions: 3,3
Capturable: true
BaseNormal: no
Adjacent: 8
HP: 30
WaterBound: yes
RenderBuilding:
Image: SYRD
Fake:
@@ -1212,6 +1474,14 @@ SPEF:
Selectable:
Priority: 3
Building:
Power: -2
Footprint: xxx xxx xxx
Dimensions: 3,3
Capturable: true
BaseNormal: no
Adjacent: 8
HP: 30
WaterBound: yes
RenderBuilding:
Image: SPEN
Fake:
@@ -1229,6 +1499,13 @@ DOMF:
Selectable:
Priority: 3
Building:
Power: -2
Footprint: xx xx
Dimensions: 2,2
Capturable: true
BaseNormal: no
Bib: yes
HP: 30
RenderBuilding:
Image: DOME
Fake:
@@ -1251,6 +1528,154 @@ MINV:
BelowUnits:
InvisibleToOthers:
T01:
Inherits: DefaultBuilding
Building:
Footprint: x_ x_
Dimensions: 2,2
RenderBuilding:
T02:
Inherits: DefaultBuilding
Building:
Footprint: x_ x_
Dimensions: 2,2
RenderBuilding:
T03:
Inherits: DefaultBuilding
Building:
Footprint: x_ x_
Dimensions: 2,2
RenderBuilding:
T05:
Inherits: DefaultBuilding
Building:
Footprint: x_ x_
Dimensions: 2,2
RenderBuilding:
T06:
Inherits: DefaultBuilding
Building:
Footprint: x_ x_
Dimensions: 2,2
RenderBuilding:
T07:
Inherits: DefaultBuilding
Building:
Footprint: x_ x_
Dimensions: 2,2
RenderBuilding:
T08:
Inherits: DefaultBuilding
Building:
Footprint: x_
Dimensions: 2,1
RenderBuilding:
T10:
Inherits: DefaultBuilding
Building:
Footprint: xx xx
Dimensions: 2,2
RenderBuilding:
T11:
Inherits: DefaultBuilding
Building:
Footprint: xx xx
Dimensions: 2,2
RenderBuilding:
T12:
Inherits: DefaultBuilding
Building:
Footprint: xx xx
Dimensions: 2,2
RenderBuilding:
T13:
Inherits: DefaultBuilding
Building:
Footprint: xx xx
Dimensions: 2,2
RenderBuilding:
T14:
Inherits: DefaultBuilding
Building:
Footprint: xx xx
Dimensions: 2,2
RenderBuilding:
T15:
Inherits: DefaultBuilding
Building:
Footprint: xx xx
Dimensions: 2,2
RenderBuilding:
T16:
Inherits: DefaultBuilding
Building:
Footprint: x_ x_
Dimensions: 2,2
RenderBuilding:
T17:
Inherits: DefaultBuilding
Building:
Footprint: x_ x_
Dimensions: 2,2
RenderBuilding:
TC01:
Inherits: DefaultBuilding
Building:
Footprint: xx_ xx_
Dimensions: 3,2
RenderBuilding:
TC02:
Inherits: DefaultBuilding
Building:
Footprint: xx_ xx_
Dimensions: 3,2
RenderBuilding:
TC03:
Inherits: DefaultBuilding
Building:
Footprint: xx_ xx_
Dimensions: 3,2
RenderBuilding:
TC04:
Inherits: DefaultBuilding
Building:
Footprint: xxx_ xxx_ xxx_
Dimensions: 4,3
RenderBuilding:
TC05:
Inherits: DefaultBuilding
Building:
Footprint: xxx_ xxx_ xxx_
Dimensions: 4,3
RenderBuilding:
MINE:
Inherits: DefaultBuilding
Building:
Footprint: x
Dimensions: 1,1
RenderBuilding:
SeedsOre:
DOG:
Inherits: DefaultInfantry
Buildable:
@@ -1292,6 +1717,7 @@ E1:
Speed: 4
RenderInfantry:
AttackBase:
PrimaryWeapon: M1Carbine
TakeCover:
SquishByTank:
AutoTarget:
@@ -1316,6 +1742,8 @@ E2:
Speed: 5
RenderInfantry:
AttackBase:
PrimaryWeapon: Grenade
PrimaryOffset: 0,0,0,-13
TakeCover:
SquishByTank:
AutoTarget:
@@ -1340,6 +1768,8 @@ E3:
Speed: 3
RenderInfantry:
AttackBase:
PrimaryWeapon: RedEye
PrimaryOffset: 0,0,0,-13
TakeCover:
SquishByTank:
AutoTarget:
@@ -1365,6 +1795,8 @@ E4:
Speed: 3
RenderInfantry:
AttackBase:
PrimaryWeapon: Flamer
PrimaryOffset: 0,0,0,-7
TakeCover:
SquishByTank:
AutoTarget:
@@ -1465,6 +1897,7 @@ E7:
RenderInfantry:
C4Demolition:
AttackBase:
PrimaryWeapon: Colt45
TakeCover:
SquishByTank:
AutoTarget:
@@ -1491,53 +1924,8 @@ MEDI:
RenderInfantry:
AutoHeal:
AttackBase:
PrimaryWeapon: Heal
TakeCover:
SquishByTank:
Passenger:
T01
Inherits: DefaultTree
T02
Inherits: DefaultTree
T03
Inherits: DefaultTree
T05
Inherits: DefaultTree
T06
Inherits: DefaultTree
T07
Inherits: DefaultTree
T08
Inherits: DefaultTree
T10
Inherits: DefaultTree
T11
Inherits: DefaultTree
T12
Inherits: DefaultTree
T13
Inherits: DefaultTree
T14
Inherits: DefaultTree
T15
Inherits: DefaultTree
T16
Inherits: DefaultTree
T17
Inherits: DefaultTree
TC01
Inherits: DefaultTree
TC02
Inherits: DefaultTree
TC03
Inherits: DefaultTree
TC04
Inherits: DefaultTree
TC05
Inherits: DefaultTree
MINE
Inherits: DefaultTree