testing Inherits; seems to work. Also, the Converter knows a bit about Inherits now.

This commit is contained in:
Bob
2010-01-12 19:33:14 +13:00
parent b21e1adc2d
commit 0c473aa941
11 changed files with 50 additions and 132 deletions

View File

@@ -20,19 +20,27 @@ namespace OpenRa.Game.GameRules
Traits.Add( LoadTraitInfo( t.Key, t.Value ) ); Traits.Add( LoadTraitInfo( t.Key, t.Value ) );
} }
static MiniYaml MergeWithParent( MiniYaml node, Dictionary<string, MiniYaml> allUnits ) static MiniYaml GetParent( MiniYaml node, Dictionary<string, MiniYaml> allUnits )
{ {
MiniYaml inherits; MiniYaml inherits;
node.Nodes.TryGetValue( "Inherits", out inherits ); node.Nodes.TryGetValue( "Inherits", out inherits );
if( inherits == null || string.IsNullOrEmpty( inherits.Value ) ) if( inherits == null || string.IsNullOrEmpty( inherits.Value ) )
return node; return null;
MiniYaml parent; MiniYaml parent;
allUnits.TryGetValue( inherits.Value, out parent ); allUnits.TryGetValue( inherits.Value, out parent );
if( parent == null ) if( parent == null )
return node; return null;
return MiniYaml.Merge( node, MergeWithParent( parent, allUnits ) ); return parent;
}
static MiniYaml MergeWithParent( MiniYaml node, Dictionary<string, MiniYaml> allUnits )
{
var parent = GetParent( node, allUnits );
if( parent != null )
return MiniYaml.Merge( node, MergeWithParent( parent, allUnits ) );
return node;
} }
static ITraitInfo LoadTraitInfo(string traitName, MiniYaml my) static ITraitInfo LoadTraitInfo(string traitName, MiniYaml my)

View File

@@ -90,7 +90,7 @@ namespace OpenRa.Game
SupportPowerInfo = new InfoLoader<SupportPowerInfo>( SupportPowerInfo = new InfoLoader<SupportPowerInfo>(
Pair.New<string, Func<string, SupportPowerInfo>>("SupportPower", _ => new SupportPowerInfo())); Pair.New<string, Func<string, SupportPowerInfo>>("SupportPower", _ => new SupportPowerInfo()));
var yamlRules = MiniYaml.FromFile("ra.yaml"); var yamlRules = MiniYaml.Merge( MiniYaml.FromFile( "ra.yaml" ), MiniYaml.FromFile( "defaults.yaml" ) );
if( useAftermath ) if( useAftermath )
yamlRules = MiniYaml.Merge( MiniYaml.FromFile( "aftermath.yaml" ), yamlRules ); yamlRules = MiniYaml.Merge( MiniYaml.FromFile( "aftermath.yaml" ), yamlRules );

View File

@@ -62,10 +62,11 @@ namespace OpenRa.Game.GameRules
.Where(x => Rules.UnitInfo[x].Owner.Contains(player.Race)); /* todo: fix for dual-race scenarios (captured buildings) */ .Where(x => Rules.UnitInfo[x].Owner.Contains(player.Race)); /* todo: fix for dual-race scenarios (captured buildings) */
} }
public IEnumerable<NewUnitInfo> UnitBuiltAt( LegacyUnitInfo info ) public IEnumerable<NewUnitInfo> UnitBuiltAt( NewUnitInfo info )
{ {
if( info.BuiltAt.Length != 0 ) var builtAt = info.Traits.Get<BuildableInfo>().BuiltAt;
return info.BuiltAt.Select( x => Rules.NewUnitInfo[ x.ToLowerInvariant() ] ); if( builtAt.Length != 0 )
return builtAt.Select( x => Rules.NewUnitInfo[ x.ToLowerInvariant() ] );
else else
return producesIndex[ Rules.UnitCategory[ info.Name ] ]; return producesIndex[ Rules.UnitCategory[ info.Name ] ];
} }

View File

@@ -13,7 +13,7 @@ namespace RulesConverter
{ {
public static void WriteToFile( this MiniYamlNodes y, string filename ) public static void WriteToFile( this MiniYamlNodes y, string filename )
{ {
File.WriteAllLines( filename, y.ToLines( true ).ToArray() ); File.WriteAllLines( filename, y.ToLines( true ).Select( x => x.TrimEnd() ).ToArray() );
} }
public static IEnumerable<string> ToLines( this MiniYamlNodes y, bool lowest ) public static IEnumerable<string> ToLines( this MiniYamlNodes y, bool lowest )

View File

@@ -41,7 +41,8 @@ namespace RulesConverter
{ "Armor", "Armor" }, { "Armor", "Armor" },
{ "Crewed", "Crewed" }, { "Crewed", "Crewed" },
{ "InitialFacing", "InitialFacing" }, { "InitialFacing", "InitialFacing" },
{ "Sight", "Sight" } } { "Sight", "Sight" },
{ "WaterBound", "WaterBound" } }
}, },
{ "Selectable", new PL { { "Selectable", new PL {
@@ -205,6 +206,10 @@ namespace RulesConverter
} }
catch { } catch { }
} }
var yaml = MiniYaml.FromFile( outputFile );
yaml.OptimizeInherits( MiniYaml.FromFile( "defaults.yaml" ) );
yaml.WriteToFile( outputFile );
} }
} }
} }

View File

@@ -52,6 +52,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="MiniYamlExts.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\OpenRa.DataStructures\OpenRa.DataStructures.csproj"> <ProjectReference Include="..\OpenRa.DataStructures\OpenRa.DataStructures.csproj">

View File

@@ -1,13 +1,10 @@
STNK: STNK:
Inherits: DefaultVehicle Inherits: DefaultVehicle
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 200 HP: 200
Armor: heavy Armor: heavy
Sight: 5 Sight: 5
Mobile: Mobile:
ROT: 5
Speed: 10 Speed: 10
Turreted: Turreted:
AttackTurreted: AttackTurreted:
@@ -15,7 +12,6 @@ STNK:
Recoil: 2 Recoil: 2
RenderUnitTurreted: RenderUnitTurreted:
Cloak: Cloak:
Chronoshiftable:
TTNK: TTNK:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -26,20 +22,16 @@ TTNK:
Owner: soviet Owner: soviet
Cost: 1500 Cost: 1500
Description: "Tesla Tank" Description: "Tesla Tank"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 110 HP: 110
Armor: light Armor: light
Crewed: yes Crewed: yes
Sight: 7 Sight: 7
Mobile: Mobile:
ROT: 5
Speed: 8 Speed: 8
AttackBase: AttackBase:
PrimaryWeapon: TTankZap PrimaryWeapon: TTankZap
RenderUnitSpinner: RenderUnitSpinner:
Chronoshiftable:
CTNK: CTNK:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -50,20 +42,16 @@ CTNK:
Owner: allies Owner: allies
Cost: 2400 Cost: 2400
Description: "Chrono Tank" Description: "Chrono Tank"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 350 HP: 350
Armor: light Armor: light
Sight: 5 Sight: 5
Mobile: Mobile:
ROT: 5
Speed: 5 Speed: 5
AttackBase: AttackBase:
PrimaryWeapon: APTusk PrimaryWeapon: APTusk
RenderUnit: RenderUnit:
ChronoshiftDeploy: ChronoshiftDeploy:
Chronoshiftable:
DTRK: DTRK:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -74,14 +62,11 @@ DTRK:
Owner: allies,soviet Owner: allies,soviet
Cost: 2400 Cost: 2400
Description: "Demo Truck" Description: "Demo Truck"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 110 HP: 110
Armor: light Armor: light
Sight: 3 Sight: 3
Mobile: Mobile:
ROT: 5
Speed: 8 Speed: 8
AttackBase: AttackBase:
PrimaryWeapon: Democharge PrimaryWeapon: Democharge
@@ -97,18 +82,14 @@ QTNK:
Owner: soviet Owner: soviet
Cost: 2300 Cost: 2300
Description: "M.A.D. Tank" Description: "M.A.D. Tank"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 300 HP: 300
Armor: heavy Armor: heavy
Crewed: no Crewed: no
Sight: 6 Sight: 6
Mobile: Mobile:
ROT: 5
Speed: 3 Speed: 3
RenderUnit: RenderUnit:
Chronoshiftable:
MSUB: MSUB:
Inherits: DefaultShip Inherits: DefaultShip
@@ -125,6 +106,7 @@ MSUB:
HP: 150 HP: 150
Armor: light Armor: light
Sight: 6 Sight: 6
WaterBound: yes
Mobile: Mobile:
ROT: 7 ROT: 7
Speed: 5 Speed: 5

View File

@@ -7,28 +7,28 @@ QTNK
[STNK] [STNK]
Description=Stealth Tank Description=Stealth Tank
Traits=Unit, Mobile, Turreted, AttackTurreted, RenderUnitTurreted, Cloak, Chronoshiftable Traits=Unit, Mobile, Turreted, AttackTurreted, RenderUnitTurreted, Cloak, Repairable, Chronoshiftable, Passenger, IronCurtainable
Recoil=2 Recoil=2
Voice=VehicleVoice Voice=VehicleVoice
[TTNK] [TTNK]
Description=Tesla Tank Description=Tesla Tank
Traits=Unit, Mobile, AttackBase, RenderUnitSpinner, Chronoshiftable Traits=Unit, Mobile, AttackBase, RenderUnitSpinner, Repairable, Chronoshiftable, Passenger, IronCurtainable
Voice=VehicleVoice Voice=VehicleVoice
[CTNK] [CTNK]
Description=Chrono Tank Description=Chrono Tank
Traits=Unit, Mobile, AttackBase, RenderUnit, ChronoshiftDeploy, Chronoshiftable Traits=Unit, Mobile, AttackBase, RenderUnit, ChronoshiftDeploy, Repairable, Chronoshiftable, Passenger, IronCurtainable
Voice=VehicleVoice Voice=VehicleVoice
[DTRK] [DTRK]
Description=Demo Truck Description=Demo Truck
Traits=Unit, Mobile, AttackBase, RenderUnit, DemoTruck Traits=Unit, Mobile, AttackBase, RenderUnit, DemoTruck, Repairable, Chronoshiftable, Passenger, IronCurtainable
Voice=VehicleVoice Voice=VehicleVoice
[QTNK] [QTNK]
Description=M.A.D. Tank Description=M.A.D. Tank
Traits=Unit, Mobile, RenderUnit, Chronoshiftable Traits=Unit, Mobile, RenderUnit, Repairable, Chronoshiftable, Passenger, IronCurtainable
Voice=VehicleVoice Voice=VehicleVoice

View File

@@ -238,4 +238,6 @@ SelectionPriority=0
TRUK TRUK
[TRUK] [TRUK]
Traits=Unit, Mobile, RenderUnit Traits=Unit, Mobile, RenderUnit, Repairable, Chronoshiftable, Passenger, IronCurtainable
Voice=VehicleVoice

10
defaults.yaml Normal file
View File

@@ -0,0 +1,10 @@
DefaultVehicle:
Mobile:
ROT: 5
Selectable:
Voice: VehicleVoice
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:

101
ra.yaml
View File

@@ -8,24 +8,17 @@ V2RL:
Cost: 700 Cost: 700
Description: "V2 Rocket" Description: "V2 Rocket"
LongDesc: "Long-range rocket artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft" LongDesc: "Long-range rocket artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 150 HP: 150
Armor: light Armor: light
Crewed: yes Crewed: yes
Sight: 5 Sight: 5
Mobile: Mobile:
ROT: 5
Speed: 7 Speed: 7
AttackBase: AttackBase:
PrimaryWeapon: SCUD PrimaryWeapon: SCUD
RenderUnitReload: RenderUnitReload:
AutoTarget: AutoTarget:
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
1TNK: 1TNK:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -37,15 +30,12 @@ V2RL:
Cost: 700 Cost: 700
Description: "Light Tank" Description: "Light Tank"
LongDesc: "Light Tank, good for scouting.\n Strong vs Light Vehicles\n Weak vs Tanks, Aircraft" LongDesc: "Light Tank, good for scouting.\n Strong vs Light Vehicles\n Weak vs Tanks, Aircraft"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 300 HP: 300
Armor: heavy Armor: heavy
Crewed: yes Crewed: yes
Sight: 4 Sight: 4
Mobile: Mobile:
ROT: 5
Speed: 9 Speed: 9
Turreted: Turreted:
AttackTurreted: AttackTurreted:
@@ -53,10 +43,6 @@ V2RL:
Recoil: 2 Recoil: 2
RenderUnitTurreted: RenderUnitTurreted:
AutoTarget: AutoTarget:
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
2TNK: 2TNK:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -68,15 +54,12 @@ V2RL:
Cost: 800 Cost: 800
Description: "Medium Tank" Description: "Medium Tank"
LongDesc: "Allied Main Battle Tank.\n Strong vs Tanks, Light Vehicles\n Weak vs Infantry, Aircraft" LongDesc: "Allied Main Battle Tank.\n Strong vs Tanks, Light Vehicles\n Weak vs Infantry, Aircraft"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 400 HP: 400
Armor: heavy Armor: heavy
Crewed: yes Crewed: yes
Sight: 5 Sight: 5
Mobile: Mobile:
ROT: 5
Speed: 8 Speed: 8
Turreted: Turreted:
AttackTurreted: AttackTurreted:
@@ -84,10 +67,6 @@ V2RL:
Recoil: 3 Recoil: 3
RenderUnitTurreted: RenderUnitTurreted:
AutoTarget: AutoTarget:
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
3TNK: 3TNK:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -99,15 +78,12 @@ V2RL:
Cost: 950 Cost: 950
Description: "Heavy Tank" Description: "Heavy Tank"
LongDesc: "Soviet Main Battle Tank, with dual cannons\n Strong vs Tanks, Light Vehicles\n Weak vs Infantry, Aircraft" LongDesc: "Soviet Main Battle Tank, with dual cannons\n Strong vs Tanks, Light Vehicles\n Weak vs Infantry, Aircraft"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 400 HP: 400
Armor: heavy Armor: heavy
Crewed: yes Crewed: yes
Sight: 5 Sight: 5
Mobile: Mobile:
ROT: 5
Speed: 7 Speed: 7
Turreted: Turreted:
AttackTurreted: AttackTurreted:
@@ -115,10 +91,6 @@ V2RL:
Recoil: 3 Recoil: 3
RenderUnitTurreted: RenderUnitTurreted:
AutoTarget: AutoTarget:
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
4TNK: 4TNK:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -130,15 +102,12 @@ V2RL:
Cost: 1700 Cost: 1700
Description: "Mammoth Tank" Description: "Mammoth Tank"
LongDesc: "Big and slow tank, with anti-air capability.\n Strong vs Tanks, Aircraft\n Weak vs Infantry" LongDesc: "Big and slow tank, with anti-air capability.\n Strong vs Tanks, Aircraft\n Weak vs Infantry"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 600 HP: 600
Armor: heavy Armor: heavy
Crewed: yes Crewed: yes
Sight: 6 Sight: 6
Mobile: Mobile:
ROT: 5
Speed: 4 Speed: 4
Turreted: Turreted:
AttackTurreted: AttackTurreted:
@@ -148,10 +117,6 @@ V2RL:
Recoil: 4 Recoil: 4
RenderUnitTurreted: RenderUnitTurreted:
AutoTarget: AutoTarget:
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
MRJ: MRJ:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -165,21 +130,15 @@ MRJ:
LongDesc: "Hides nearby units on the enemy's minimap.\n Unarmed" LongDesc: "Hides nearby units on the enemy's minimap.\n Unarmed"
Selectable: Selectable:
Priority: 3 Priority: 3
Voice: VehicleVoice
Unit: Unit:
HP: 110 HP: 110
Armor: light Armor: light
Crewed: yes Crewed: yes
Sight: 7 Sight: 7
Mobile: Mobile:
ROT: 5
Speed: 9 Speed: 9
RenderUnitSpinner: RenderUnitSpinner:
Offset: 0,4,0,-6 Offset: 0,4,0,-6
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
MGG: MGG:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -193,21 +152,15 @@ MGG:
LongDesc: "Regenerates Fog of War in a small area \naround the unit.\n Unarmed" LongDesc: "Regenerates Fog of War in a small area \naround the unit.\n Unarmed"
Selectable: Selectable:
Priority: 3 Priority: 3
Voice: VehicleVoice
Unit: Unit:
HP: 110 HP: 110
Armor: light Armor: light
Crewed: yes Crewed: yes
Sight: 4 Sight: 4
Mobile: Mobile:
ROT: 5
Speed: 9 Speed: 9
RenderUnitSpinner: RenderUnitSpinner:
Offset: 0,6,0,-3 Offset: 0,6,0,-3
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
ARTY: ARTY:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -219,25 +172,18 @@ ARTY:
Cost: 600 Cost: 600
Description: "Artillery" Description: "Artillery"
LongDesc: "Long-range artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft" LongDesc: "Long-range artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 75 HP: 75
Armor: light Armor: light
Crewed: yes Crewed: yes
Sight: 5 Sight: 5
Mobile: Mobile:
ROT: 2
Speed: 6 Speed: 6
AttackBase: AttackBase:
PrimaryWeapon: 155mm PrimaryWeapon: 155mm
RenderUnit: RenderUnit:
Explodes: Explodes:
AutoTarget: AutoTarget:
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
HARV: HARV:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -251,7 +197,6 @@ HARV:
LongDesc: "Collects Ore and Gems for processing.\n Unarmed" LongDesc: "Collects Ore and Gems for processing.\n Unarmed"
Selectable: Selectable:
Priority: 7 Priority: 7
Voice: VehicleVoice
Harvester: Harvester:
Unit: Unit:
HP: 600 HP: 600
@@ -259,13 +204,8 @@ HARV:
Crewed: yes Crewed: yes
Sight: 4 Sight: 4
Mobile: Mobile:
ROT: 5
Speed: 6 Speed: 6
RenderUnit: RenderUnit:
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
MCV: MCV:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -279,21 +219,15 @@ MCV:
LongDesc: "Deploys into another Construction Yard.\n Unarmed" LongDesc: "Deploys into another Construction Yard.\n Unarmed"
Selectable: Selectable:
Priority: 3 Priority: 3
Voice: VehicleVoice
Unit: Unit:
HP: 600 HP: 600
Armor: light Armor: light
Crewed: yes Crewed: yes
Sight: 4 Sight: 4
Mobile: Mobile:
ROT: 5
Speed: 6 Speed: 6
McvDeploy: McvDeploy:
RenderUnit: RenderUnit:
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
JEEP: JEEP:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -305,15 +239,12 @@ JEEP:
Cost: 600 Cost: 600
Description: "Ranger" Description: "Ranger"
LongDesc: "Fast scout & anti-infantry vehicle.\n Strong vs Infantry\n Weak vs Tanks, Aircraft" LongDesc: "Fast scout & anti-infantry vehicle.\n Strong vs Infantry\n Weak vs Tanks, Aircraft"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 150 HP: 150
Armor: light Armor: light
Crewed: yes Crewed: yes
Sight: 6 Sight: 6
Mobile: Mobile:
ROT: 10
Speed: 10 Speed: 10
Turreted: Turreted:
AttackTurreted: AttackTurreted:
@@ -322,10 +253,6 @@ JEEP:
MuzzleFlash: yes MuzzleFlash: yes
RenderUnitTurreted: RenderUnitTurreted:
AutoTarget: AutoTarget:
Repairable:
Chronoshiftable:
Passenger:
IronCurtainable:
APC: APC:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -337,14 +264,11 @@ APC:
Cost: 800 Cost: 800
Description: "Armored Personnel Carrier" Description: "Armored Personnel Carrier"
LongDesc: "Tough infantry transport.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks, Aircraft" LongDesc: "Tough infantry transport.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks, Aircraft"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 200 HP: 200
Armor: heavy Armor: heavy
Sight: 5 Sight: 5
Mobile: Mobile:
ROT: 5
Speed: 10 Speed: 10
AttackBase: AttackBase:
PrimaryWeapon: M60mg PrimaryWeapon: M60mg
@@ -352,14 +276,10 @@ APC:
MuzzleFlash: yes MuzzleFlash: yes
RenderUnitMuzzleFlash: RenderUnitMuzzleFlash:
AutoTarget: AutoTarget:
Repairable:
Chronoshiftable:
Cargo: Cargo:
PassengerTypes: Foot PassengerTypes: Foot
Passengers: 5 Passengers: 5
UnloadFacing: 220 UnloadFacing: 220
Passenger:
IronCurtainable:
MNLY.AP: MNLY.AP:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -372,26 +292,19 @@ MNLY.AP:
Icon: MNLYICON Icon: MNLYICON
Description: "Minelayer (Anti-Personnel)" Description: "Minelayer (Anti-Personnel)"
LongDesc: "Lays mines to destroy unwary enemy units.\n Unarmed" LongDesc: "Lays mines to destroy unwary enemy units.\n Unarmed"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 100 HP: 100
Armor: heavy Armor: heavy
Crewed: yes Crewed: yes
Sight: 5 Sight: 5
Mobile: Mobile:
ROT: 5
Speed: 9 Speed: 9
RenderUnit: RenderUnit:
Image: MNLY Image: MNLY
Minelayer: Minelayer:
MineImmune: MineImmune:
Repairable:
LimitedAmmo: LimitedAmmo:
Ammo: 5 Ammo: 5
Chronoshiftable:
Passenger:
IronCurtainable:
MNLY.AT: MNLY.AT:
Inherits: DefaultVehicle Inherits: DefaultVehicle
@@ -404,36 +317,27 @@ MNLY.AT:
Icon: MNLYICON Icon: MNLYICON
Description: "Minelayer (Anti-Tank)" Description: "Minelayer (Anti-Tank)"
LongDesc: "Lays mines to destroy unwary enemy units.\n Unarmed" LongDesc: "Lays mines to destroy unwary enemy units.\n Unarmed"
Selectable:
Voice: VehicleVoice
Unit: Unit:
HP: 100 HP: 100
Armor: heavy Armor: heavy
Crewed: yes Crewed: yes
Sight: 5 Sight: 5
Mobile: Mobile:
ROT: 5
Speed: 9 Speed: 9
RenderUnit: RenderUnit:
Image: MNLY Image: MNLY
Minelayer: Minelayer:
MineImmune: MineImmune:
Repairable:
LimitedAmmo: LimitedAmmo:
Ammo: 5 Ammo: 5
Chronoshiftable:
Passenger:
IronCurtainable:
TRUK: TRUK:
Inherits: DefaultVehicle Inherits: DefaultVehicle
Selectable:
Unit: Unit:
HP: 110 HP: 110
Armor: light Armor: light
Sight: 3 Sight: 3
Mobile: Mobile:
ROT: 5
Speed: 10 Speed: 10
RenderUnit: RenderUnit:
@@ -453,6 +357,7 @@ SS:
HP: 120 HP: 120
Armor: light Armor: light
Sight: 6 Sight: 6
WaterBound: yes
Mobile: Mobile:
ROT: 7 ROT: 7
Speed: 6 Speed: 6
@@ -480,6 +385,7 @@ DD:
HP: 400 HP: 400
Armor: heavy Armor: heavy
Sight: 6 Sight: 6
WaterBound: yes
Mobile: Mobile:
ROT: 7 ROT: 7
Speed: 6 Speed: 6
@@ -508,6 +414,7 @@ CA:
HP: 700 HP: 700
Armor: heavy Armor: heavy
Sight: 7 Sight: 7
WaterBound: yes
Mobile: Mobile:
ROT: 5 ROT: 5
Speed: 4 Speed: 4
@@ -536,6 +443,7 @@ LST:
HP: 350 HP: 350
Armor: heavy Armor: heavy
Sight: 6 Sight: 6
WaterBound: yes
Mobile: Mobile:
ROT: 10 ROT: 10
Speed: 14 Speed: 14
@@ -561,6 +469,7 @@ PT:
HP: 200 HP: 200
Armor: heavy Armor: heavy
Sight: 7 Sight: 7
WaterBound: yes
Mobile: Mobile:
ROT: 7 ROT: 7
Speed: 9 Speed: 9