diff --git a/OpenRA.Game/GameRules/WeaponInfo.cs b/OpenRA.Game/GameRules/WeaponInfo.cs index 66a37c4446..5d917e4e40 100644 --- a/OpenRA.Game/GameRules/WeaponInfo.cs +++ b/OpenRA.Game/GameRules/WeaponInfo.cs @@ -12,47 +12,54 @@ using System.Collections.Generic; using OpenRA.Effects; using OpenRA.FileFormats; using OpenRA.Traits; +using System.Linq; namespace OpenRA.GameRules { public class WarheadInfo { - public readonly int Spread = 1; // distance (in pixels) from the explosion center at which damage is 1/2. - public readonly float[] Verses = { 1, 1, 1, 1, 1 }; // damage vs each armortype - public readonly bool Ore = false; // can this damage ore? - public readonly string Explosion = null; // explosion effect to use - public readonly string WaterExplosion = null; // explosion effect on hitting water (usually a splash) - public readonly string SmudgeType = null; // type of smudge to apply - public readonly int[] Size = { 0, 0 }; // size of the explosion. provide 2 values for a ring effect (outer/inner) - public readonly int InfDeath = 0; // infantry death animation to use - public readonly string ImpactSound = null; // sound to play on impact - public readonly string WaterImpactSound = null; // sound to play on impact with water - public readonly int Damage = 0; // how much (raw) damage to deal - public readonly int Delay = 0; // delay in ticks before dealing the damage. 0=instant (old model) - public readonly DamageModel DamageModel = DamageModel.Normal; // which damage model to use + [FieldLoader.Load] public readonly int Spread = 1; // distance (in pixels) from the explosion center at which damage is 1/2. + [FieldLoader.LoadUsing( "LoadVersus" )] + public readonly Dictionary Versus; // damage vs each armortype + [FieldLoader.Load] public readonly bool Ore = false; // can this damage ore? + [FieldLoader.Load] public readonly string Explosion = null; // explosion effect to use + [FieldLoader.Load] public readonly string WaterExplosion = null; // explosion effect on hitting water (usually a splash) + [FieldLoader.Load] public readonly string SmudgeType = null; // type of smudge to apply + [FieldLoader.Load] public readonly int[] Size = { 0, 0 }; // size of the explosion. provide 2 values for a ring effect (outer/inner) + [FieldLoader.Load] public readonly int InfDeath = 0; // infantry death animation to use + [FieldLoader.Load] public readonly string ImpactSound = null; // sound to play on impact + [FieldLoader.Load] public readonly string WaterImpactSound = null; // sound to play on impact with water + [FieldLoader.Load] public readonly int Damage = 0; // how much (raw) damage to deal + [FieldLoader.Load] public readonly int Delay = 0; // delay in ticks before dealing the damage. 0=instant (old model) + [FieldLoader.Load] public readonly DamageModel DamageModel = DamageModel.Normal; // which damage model to use public float EffectivenessAgainst(Actor self) { var health = self.Info.Traits.GetOrDefault(); if (health == null) return 0f; + var armor = self.Info.Traits.GetOrDefault(); + if (armor == null || armor.Type == null) return 1; - return Verses[(int)(health.Armor)]; + float versus; + return Versus.TryGetValue(armor.Type, out versus) ? versus : 1; } public WarheadInfo( MiniYaml yaml ) { FieldLoader.Load( this, yaml ); } + + static object LoadVersus( MiniYaml y ) + { + return y.NodesDict.ContainsKey( "Versus" ) + ? y.NodesDict[ "Versus" ].NodesDict.ToDictionary( + a => a.Key, + a => (float)FieldLoader.GetValue( "(value)", typeof( float ), a.Value.Value ) ) + : new Dictionary(); + } } + - public enum ArmorType - { - none = 0, - wood = 1, - light = 2, - heavy = 3, - concrete = 4, - } public enum DamageModel { diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj index 2a9a25e8f0..93f6dcda84 100755 --- a/OpenRA.Game/OpenRA.Game.csproj +++ b/OpenRA.Game/OpenRA.Game.csproj @@ -1,4 +1,4 @@ - + Debug @@ -225,6 +225,7 @@ + @@ -270,4 +271,4 @@ --> - + \ No newline at end of file diff --git a/OpenRA.Game/Traits/Armor.cs b/OpenRA.Game/Traits/Armor.cs new file mode 100644 index 0000000000..e91c1a7d4a --- /dev/null +++ b/OpenRA.Game/Traits/Armor.cs @@ -0,0 +1,26 @@ +#region Copyright & License Information +/* + * Copyright 2007-2010 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 LICENSE. + */ +#endregion + +using System; +using OpenRA.Traits; +using OpenRA.GameRules; +using System.Collections.Generic; +using OpenRA.FileFormats; + +namespace OpenRA.Traits +{ + public class ArmorInfo : ITraitInfo + { + [FieldLoader.Load] public readonly string Type = null; + public object Create (ActorInitializer init) { return new Armor(); } + } + public class Armor {} +} + diff --git a/OpenRA.Game/Traits/Health.cs b/OpenRA.Game/Traits/Health.cs index 09fc31428d..a3af9c98fb 100644 --- a/OpenRA.Game/Traits/Health.cs +++ b/OpenRA.Game/Traits/Health.cs @@ -22,7 +22,6 @@ namespace OpenRA.Traits public class HealthInfo : ITraitInfo { public readonly int HP = 0; - public readonly ArmorType Armor = ArmorType.none; public virtual object Create(ActorInitializer init) { return new Health(init, this); } } diff --git a/mods/ra/civilian.yaml b/mods/ra/civilian.yaml index 9ed37e2e5f..ada2ccb42b 100644 --- a/mods/ra/civilian.yaml +++ b/mods/ra/civilian.yaml @@ -7,7 +7,8 @@ FCOM: Capturable: true Health: HP: 400 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 10 Bib: @@ -126,7 +127,8 @@ MISS: Capturable: true Health: HP: 400 - Armor: wood + Armor: + Type: Wood Bib: BR1: diff --git a/mods/ra/defaults.yaml b/mods/ra/defaults.yaml index db96a2c215..f1ea2e9e34 100644 --- a/mods/ra/defaults.yaml +++ b/mods/ra/defaults.yaml @@ -55,7 +55,8 @@ ^Infantry: AppearsOnRadar: Health: - Armor: none + Armor: + Type: None RevealsShroud: Range: 4 Mobile: @@ -162,7 +163,8 @@ -RepairableBuilding: Health: HP: 400 - Armor: wood + Armor: + Type: Wood Tooltip: Name: Civilian Building @@ -187,7 +189,8 @@ ^Husk: Health: HP: 140 - Armor: Heavy + Armor: + Type: Heavy Husk: Selectable: Priority: -1 diff --git a/mods/ra/structures.yaml b/mods/ra/structures.yaml index b59a53f733..ec2df3eae5 100644 --- a/mods/ra/structures.yaml +++ b/mods/ra/structures.yaml @@ -19,7 +19,8 @@ MSLO: Dimensions: 2,1 Health: HP: 400 - Armor: heavy + Armor: + Type: Heavy RevealsShroud: Range: 5 IronCurtainable: @@ -46,7 +47,8 @@ GAP: Capturable: true Health: HP: 1000 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 10 IronCurtainable: @@ -78,7 +80,8 @@ SPEN: WaterBound: yes Health: HP: 1000 - Armor: light + Armor: + Type: Light RevealsShroud: Range: 4 Exit@1: @@ -132,7 +135,8 @@ SYRD: WaterBound: yes Health: HP: 1000 - Armor: light + Armor: + Type: Light RevealsShroud: Range: 4 Exit@1: @@ -181,7 +185,8 @@ IRON: Capturable: true Health: HP: 400 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 10 Bib: @@ -210,7 +215,8 @@ PDOX: Capturable: true Health: HP: 400 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 10 Bib: @@ -240,7 +246,8 @@ TSLA: Dimensions: 1,2 Health: HP: 400 - Armor: heavy + Armor: + Type: Heavy RevealsShroud: Range: 8 RenderBuildingCharge: @@ -273,7 +280,8 @@ AGUN: Dimensions: 1,2 Health: HP: 400 - Armor: heavy + Armor: + Type: Heavy RevealsShroud: Range: 6 Turreted: @@ -310,7 +318,8 @@ DOME: Capturable: true Health: HP: 1000 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 10 Bib: @@ -334,7 +343,8 @@ PBOX: Power: -15 Health: HP: 400 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 6 AttackOmni: @@ -360,7 +370,8 @@ HBOX: Power: -15 Health: HP: 600 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 6 AttackOmni: @@ -386,7 +397,8 @@ GUN: Power: -40 Health: HP: 400 - Armor: heavy + Armor: + Type: Heavy RevealsShroud: Range: 7 Turreted: @@ -417,7 +429,8 @@ FTUR: Power: -20 Health: HP: 400 - Armor: heavy + Armor: + Type: Heavy RevealsShroud: Range: 6 AttackOmni: @@ -446,7 +459,8 @@ SAM: Dimensions: 2,1 Health: HP: 400 - Armor: heavy + Armor: + Type: Heavy RevealsShroud: Range: 5 Turreted: @@ -481,7 +495,8 @@ ATEK: Capturable: true Health: HP: 400 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 10 Bib: @@ -508,7 +523,8 @@ WEAP: Capturable: true Health: HP: 1000 - Armor: light + Armor: + Type: Light RevealsShroud: Range: 4 Bib: @@ -531,7 +547,8 @@ FACT: Capturable: true Health: HP: 1000 - Armor: heavy + Armor: + Type: Heavy RevealsShroud: Range: 5 Bib: @@ -570,7 +587,8 @@ PROC: Capturable: true Health: HP: 900 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 6 Bib: @@ -606,7 +624,8 @@ SILO: Capturable: true Health: HP: 300 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 4 RenderBuildingOre: @@ -637,7 +656,8 @@ HPAD: Capturable: true Health: HP: 800 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 5 Bib: @@ -671,7 +691,8 @@ AFLD: Capturable: true Health: HP: 1000 - Armor: heavy + Armor: + Type: Heavy RevealsShroud: Range: 7 Exit@1: @@ -704,7 +725,8 @@ POWR: Capturable: true Health: HP: 400 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 4 Bib: @@ -731,7 +753,8 @@ APWR: Capturable: true Health: HP: 700 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 4 Bib: @@ -758,7 +781,8 @@ STEK: Capturable: true Health: HP: 600 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 4 Bib: @@ -785,7 +809,8 @@ BARR: Capturable: true Health: HP: 800 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 5 Bib: @@ -822,7 +847,8 @@ TENT: Capturable: true Health: HP: 800 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 5 Bib: @@ -858,7 +884,8 @@ FIX: Capturable: true Health: HP: 800 - Armor: wood + Armor: + Type: Wood RevealsShroud: Range: 5 BelowUnits: @@ -1020,7 +1047,8 @@ SBAG: Description: Stops infantry and blocks enemy fire.\nCan be crushed by tanks. Health: HP: 300 - Armor: none + Armor: + Type: None FENC: Inherits: ^Wall @@ -1037,7 +1065,8 @@ FENC: Description: Stops infantry and blocks enemy fire.\nCan be crushed by tanks. Health: HP: 300 - Armor: none + Armor: + Type: None BRIK: Inherits: ^Wall @@ -1057,23 +1086,27 @@ BRIK: DestroyedSound: kaboom30.aud Health: HP: 1500 - Armor: none + Armor: + Type: None Wall: CrushClasses: heavywall CYCL: Inherits: ^Wall Health: HP: 100 - Armor: none + Armor: + Type: None BARB: Inherits: ^Wall Health: HP: 100 - Armor: none + Armor: + Type: None WOOD: Inherits: ^Wall Health: HP: 100 - Armor: none + Armor: + Type: None diff --git a/mods/ra/vehicles.yaml b/mods/ra/vehicles.yaml index d9dca51d27..8e6d07e3af 100644 --- a/mods/ra/vehicles.yaml +++ b/mods/ra/vehicles.yaml @@ -4,7 +4,8 @@ BADR: Inherits: ^Plane Health: HP: 60 - Armor: light + Armor: + Type: Light Plane: ROT: 5 Speed: 16 @@ -24,7 +25,8 @@ BADR.bomber: Inherits: ^Plane Health: HP: 60 - Armor: light + Armor: + Type: Light Plane: ROT: 5 Speed: 16 @@ -51,7 +53,8 @@ V2RL: Description: Long-range rocket artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft Health: HP: 150 - Armor: light + Armor: + Type: Light Mobile: Speed: 7 RevealsShroud: @@ -78,7 +81,8 @@ V2RL: Description: Light Tank, good for scouting.\n Strong vs Light Vehicles\n Weak vs Tanks, Aircraft Health: HP: 300 - Armor: heavy + Armor: + Type: Heavy Mobile: Speed: 9 RevealsShroud: @@ -110,7 +114,8 @@ V2RL: Description: Allied Main Battle Tank.\n Strong vs Tanks, Light Vehicles\n Weak vs Infantry, Aircraft Health: HP: 400 - Armor: heavy + Armor: + Type: Heavy Mobile: Speed: 7 RevealsShroud: @@ -142,7 +147,8 @@ V2RL: Description: Soviet Main Battle Tank, with dual cannons\n Strong vs Tanks, Light Vehicles\n Weak vs Infantry, Aircraft Health: HP: 550 - Armor: heavy + Armor: + Type: Heavy Mobile: Speed: 5 RevealsShroud: @@ -174,7 +180,8 @@ V2RL: Description: Big and slow tank, with anti-air capability.\n Strong vs Tanks, Aircraft\n Weak vs Infantry Health: HP: 750 - Armor: heavy + Armor: + Type: Heavy Mobile: Speed: 3 RevealsShroud: @@ -213,7 +220,8 @@ ARTY: Description: Long-range artillery.\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft Health: HP: 75 - Armor: light + Armor: + Type: Light Mobile: ROT: 2 Speed: 6 @@ -244,7 +252,8 @@ HARV: Resources: Ore,Gems Health: HP: 600 - Armor: heavy + Armor: + Type: Heavy Mobile: Speed: 6 RevealsShroud: @@ -267,7 +276,8 @@ MCV: Priority: 3 Health: HP: 600 - Armor: light + Armor: + Type: Light Mobile: Speed: 6 RevealsShroud: @@ -296,7 +306,8 @@ JEEP: Description: Fast scout & anti-infantry vehicle.\n Strong vs Infantry\n Weak vs Tanks, Aircraft Health: HP: 150 - Armor: light + Armor: + Type: Light Mobile: ROT: 10 Speed: 12 @@ -325,7 +336,8 @@ APC: Description: Tough infantry transport.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks, Aircraft Health: HP: 200 - Armor: heavy + Armor: + Type: Heavy Mobile: Speed: 10 RevealsShroud: @@ -357,7 +369,8 @@ MNLY.AP: Description: Lays mines to destroy unwary enemy units.\n Unarmed Health: HP: 100 - Armor: heavy + Armor: + Type: Heavy Mobile: Speed: 9 RevealsShroud: @@ -385,7 +398,8 @@ MNLY.AT: Description: Lays mines to destroy unwary enemy units.\n Unarmed Health: HP: 100 - Armor: heavy + Armor: + Type: Heavy Mobile: Speed: 9 RevealsShroud: @@ -402,7 +416,8 @@ TRUK: Inherits: ^Vehicle Health: HP: 110 - Armor: light + Armor: + Type: Light Mobile: Speed: 10 RevealsShroud: @@ -424,7 +439,8 @@ SS: Description: Submerged anti-ship unit armed with \ntorpedoes.\n Strong vs Ships\n Weak vs Everything\n Special Ability: Submerge Health: HP: 250 - Armor: light + Armor: + Type: Light Mobile: ROT: 4 Speed: 5 @@ -463,7 +479,8 @@ MSUB: Description: Submerged anti-ground unit armed with \nlong-range ballistic missiles.\n Strong vs Buildings\n Weak vs Everything\n Special Ability: Submerge Health: HP: 400 - Armor: light + Armor: + Type: Light Mobile: ROT: 3 Speed: 3 @@ -501,7 +518,8 @@ DD: Description: Fast multi-role ship. \n Strong vs Submarines, Aircraft\n Weak vs Infantry, Tanks Health: HP: 400 - Armor: heavy + Armor: + Type: Heavy Mobile: ROT: 7 Speed: 6 @@ -534,7 +552,8 @@ CA: Description: Very slow long-range ship. \n Strong vs Buildings\n Weak vs Ships, Submarines Health: HP: 800 - Armor: heavy + Armor: + Type: Heavy Mobile: ROT: 2 Speed: 2 @@ -569,7 +588,8 @@ LST: Description: General-purpose naval transport.\nCan carry infantry and tanks.\n Unarmed Health: HP: 350 - Armor: heavy + Armor: + Type: Heavy Mobile: ROT: 10 Speed: 14 @@ -597,7 +617,8 @@ PT: Description: Light scout & support ship. \n Strong vs Ships, Submarines\n Weak vs Aircraft Health: HP: 200 - Armor: heavy + Armor: + Type: Heavy Mobile: ROT: 7 Speed: 9 @@ -630,7 +651,8 @@ MIG: Description: Fast Ground-Attack Plane.\n Strong vs Buildings\n Weak vs Infantry, Light Vehicles Health: HP: 70 - Armor: light + Armor: + Type: Light RevealsShroud: Range: 12 AttackPlane: @@ -667,7 +689,8 @@ YAK: Description: Anti-Tanks & Anti-Infantry Plane.\n Strong vs Infantry, Tanks\n Weak vs Buildings Health: HP: 60 - Armor: light + Armor: + Type: Light RevealsShroud: Range: 10 AttackPlane: @@ -704,7 +727,8 @@ TRAN: Description: Fast Infantry Transport Helicopter.\n Unarmed Health: HP: 90 - Armor: light + Armor: + Type: Light RevealsShroud: Range: 12 Helicopter: @@ -736,7 +760,8 @@ HELI: Description: Helicopter Gunship with AG Missiles.\n Strong vs Buildings, Tanks\n Weak vs Infantry Health: HP: 120 - Armor: light + Armor: + Type: Light RevealsShroud: Range: 12 AttackHeli: @@ -772,7 +797,8 @@ HIND: Description: Helicopter Gunship with Chainguns.\n Strong vs Infantry, Light Vehicles.\n Weak vs Tanks Health: HP: 120 - Armor: light + Armor: + Type: Light RevealsShroud: Range: 12 AttackHeli: @@ -800,7 +826,8 @@ U2: Inherits: ^Plane Health: HP: 2000 - Armor: heavy + Armor: + Type: Heavy Plane: ROT: 7 Speed: 40 @@ -871,7 +898,8 @@ TTNK: Description: TODO Health: HP: 110 - Armor: light + Armor: + Type: Light Mobile: Speed: 8 RevealsShroud: diff --git a/mods/ra/weapons.yaml b/mods/ra/weapons.yaml index 1bbafd34f6..12f79d0891 100644 --- a/mods/ra/weapons.yaml +++ b/mods/ra/weapons.yaml @@ -6,7 +6,11 @@ Colt45: Speed: 100 Warhead: Spread: 1 - Verses: 100%,5%,5%,5%,5% + Versus: + Wood: 5% + Light: 5% + Heavy: 5% + Concrete: 5% Explosion: piff InfDeath: 1 Damage: 50 @@ -20,7 +24,11 @@ ZSU-23: Speed: 100 Warhead: Spread: 3 - Verses: 30%,75%,75%,100%,50% + Versus: + None: 30% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: med_explosion Damage: 25 @@ -32,41 +40,65 @@ Vulcan: Speed: 100 Warhead@1: Spread: 3 - Verses: 100%,50%,60%,25%,25% + Versus: + Wood: 50% + Light: 60% + Heavy: 25% + Concrete: 25% Explosion: piffs InfDeath: 1 Damage: 7 Warhead@2: Spread: 3 - Verses: 100%,50%,60%,25%,25% + Versus: + Wood: 50% + Light: 60% + Heavy: 25% + Concrete: 25% Explosion: piffs InfDeath: 1 Damage: 5 Delay: 7 Warhead@3: Spread: 3 - Verses: 100%,50%,60%,25%,25% + Versus: + Wood: 50% + Light: 60% + Heavy: 25% + Concrete: 25% Explosion: piffs InfDeath: 1 Damage: 7 Delay: 4 Warhead@4: Spread: 3 - Verses: 100%,50%,60%,25%,25% + Versus: + Wood: 50% + Light: 60% + Heavy: 25% + Concrete: 25% Explosion: piffs InfDeath: 1 Damage: 7 Delay: 6 Warhead@5: Spread: 3 - Verses: 100%,50%,60%,25%,25% + Versus: + Wood: 50% + Light: 60% + Heavy: 25% + Concrete: 25% Explosion: piffs InfDeath: 1 Damage: 7 Delay: 8 Warhead@6: Spread: 3 - Verses: 100%,50%,60%,25%,25% + Versus: + Wood: 50% + Light: 60% + Heavy: 25% + Concrete: 25% Explosion: piffs InfDeath: 1 Damage: 7 @@ -92,7 +124,11 @@ Maverick: RangeLimit: 60 Warhead: Spread: 3 - Verses: 30%,75%,75%,100%,50% + Versus: + None: 30% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: med_explosion WaterExplosion: med_splash InfDeath: 3 @@ -108,7 +144,11 @@ FireballLauncher: Image: FB1 Warhead: Spread: 5 - Verses: 90%,100%,60%,25%,50% + Versus: + None: 90% + Light: 60% + Heavy: 25% + Concrete: 50% Explosion: napalm WaterExplosion: napalm InfDeath: 4 @@ -125,7 +165,12 @@ Flamer: Image: FB1 Warhead: Spread: 4 - Verses: 90%,100%,60%,25%,50% + Versus: + None: 90% + Wood: 100% + Light: 60% + Heavy: 25% + Concrete: 50% Explosion: napalm WaterExplosion: napalm InfDeath: 4 @@ -141,7 +186,11 @@ ChainGun: Speed: 100 Warhead: Spread: 3 - Verses: 100%,50%,60%,25%,25% + Versus: + Wood: 50% + Light: 60% + Heavy: 25% + Concrete: 25% Explosion: piffs WaterExplosion: small_splash InfDeath: 1 @@ -155,7 +204,11 @@ Pistol: Speed: 100 Warhead: Spread: 3 - Verses: 100%,50%,60%,25%,25% + Versus: + Wood: 50% + Light: 60% + Heavy: 25% + Concrete: 25% Explosion: piffs InfDeath: 1 Damage: 1 @@ -168,7 +221,11 @@ M1Carbine: Speed: 100 Warhead: Spread: 3 - Verses: 100%,25%,30%,10%,10% + Versus: + Wood: 25% + Light: 30% + Heavy: 10% + Concrete: 10% Explosion: piffs InfDeath: 1 Damage: 15 @@ -191,7 +248,11 @@ Dragon: RangeLimit: 35 Warhead: Spread: 3 - Verses: 10%,75%,35%,100%,20% + Versus: + None: 10% + Wood: 75% + Light: 35% + Concrete: 20% Explosion: med_explosion WaterExplosion: med_splash InfDeath: 3 @@ -217,7 +278,11 @@ Hellfire: RangeLimit: 20 Warhead: Spread: 3 - Verses: 30%,75%,75%,100%,50% + Versus: + None: 30% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: med_explosion WaterExplosion: med_splash InfDeath: 3 @@ -236,7 +301,11 @@ Grenade: Image: BOMB Warhead: Spread: 6 - Verses: 50%,100%,25%,5%,100% + Versus: + None: 50% + Wood: 100% + Light: 25% + Heavy: 5% Explosion: med_explosion WaterExplosion: small_splash InfDeath: 2 @@ -253,7 +322,11 @@ Grenade: Image: 120MM Warhead: Spread: 3 - Verses: 30%,40%,100%,40%,30% + Versus: + None: 30% + Wood: 40% + Heavy: 40% + Concrete: 30% Explosion: small_explosion WaterExplosion: small_splash InfDeath: 3 @@ -269,7 +342,11 @@ Grenade: Image: 120MM Warhead: Spread: 3 - Verses: 20%,75%,75%,100%,50% + Versus: + None: 20% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: small_explosion WaterExplosion: small_splash InfDeath: 3 @@ -287,7 +364,11 @@ Grenade: Image: 120MM Warhead: Spread: 3 - Verses: 20%,75%,75%,100%,50% + Versus: + None: 20% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: small_explosion WaterExplosion: small_splash InfDeath: 3 @@ -304,7 +385,11 @@ Grenade: Image: 120MM Warhead: Spread: 3 - Verses: 20%,75%,75%,100%,50% + Versus: + None: 20% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: small_explosion WaterExplosion: small_splash InfDeath: 3 @@ -320,7 +405,11 @@ TurretGun: Image: 120MM Warhead: Spread: 3 - Verses: 30%,75%,75%,100%,50% + Versus: + None: 30% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: small_explosion WaterExplosion: small_splash InfDeath: 3 @@ -346,7 +435,11 @@ MammothTusk: RangeLimit: 40 Warhead: Spread: 6 - Verses: 90%,75%,60%,25%,100% + Versus: + None: 90% + Wood: 75% + Light: 60% + Heavy: 25% Explosion: med_explosion WaterExplosion: med_splash InfDeath: 2 @@ -365,7 +458,11 @@ MammothTusk: Image: 120MM Warhead: Spread: 8 - Verses: 90%,75%,60%,25%,100% + Versus: + None: 90% + Wood: 75% + Light: 60% + Heavy: 25% Explosion: large_explosion WaterExplosion: med_splash InfDeath: 2 @@ -381,7 +478,11 @@ M60mg: Speed: 100 Warhead: Spread: 3 - Verses: 100%,10%,30%,10%,10% + Versus: + Wood: 10% + Light: 30% + Heavy: 10% + Concrete: 10% Explosion: piffs WaterExplosion: small_splash InfDeath: 1 @@ -398,7 +499,11 @@ Napalm: Arm: 24 Warhead: Spread: 4 - Verses: 90%,100%,60%,25%,50% + Versus: + None: 90% + Light: 60% + Heavy: 25% + Concrete: 50% Explosion: napalm WaterExplosion: med_splash InfDeath: 4 @@ -409,7 +514,11 @@ Napalm: CrateNapalm: Warhead: Spread: 4 - Verses: 90%,100%,60%,25%,50% + Versus: + None: 90% + Light: 60% + Heavy: 25% + Concrete: 50% Explosion: napalm WaterExplosion: napalm InfDeath: 4 @@ -421,7 +530,11 @@ CrateExplosion: Warhead: Damage: 500 Spread: 10 - Verses: 90%,75%,60%,25%,100% + Versus: + None: 90% + Wood: 75% + Light: 60% + Heavy: 25% Explosion: self_destruct WaterExplosion: self_destruct InfDeath: 3 @@ -436,7 +549,6 @@ TeslaZap: Projectile: TeslaZap Warhead: Spread: 1 - Verses: 100%,100%,100%,100%,100% InfDeath: 5 Damage: 100 @@ -457,7 +569,12 @@ Nike: Speed: 40 Warhead: Spread: 3 - Verses: 90%,0%,90%,50%,0% + Versus: + None: 90% + Wood: 0% + Light: 90% + Heavy: 50% + Concrete: 0% Explosion: med_explosion InfDeath: 2 SmudgeType: Crater @@ -480,7 +597,11 @@ RedEye: Speed: 35 Warhead: Spread: 3 - Verses: 90%,75%,60%,25%,100% + Versus: + None: 90% + Wood: 75% + Light: 60% + Heavy: 25% Explosion: med_explosion InfDeath: 2 SmudgeType: Crater @@ -499,7 +620,11 @@ RedEye: Image: 120MM Warhead: Spread: 3 - Verses: 60%,75%,60%,25%,100% + Versus: + None: 60% + Wood: 75% + Light: 60% + Heavy: 25% Explosion: large_explosion WaterExplosion: large_splash InfDeath: 2 @@ -522,7 +647,10 @@ SubMissile: Trail: smokey Warhead: Spread: 10 - Verses: 40%,100%,30%,30%,100% + Versus: + None: 40%, + Light: 30% + Heavy: 30% Explosion: large_explosion WaterExplosion: large_splash InfDeath: 2 @@ -549,7 +677,11 @@ Stinger: Speed: 20 Warhead: Spread: 3 - Verses: 30%,75%,75%,100%,50% + Versus: + None: 30% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: med_explosion WaterExplosion: med_splash InfDeath: 3 @@ -569,7 +701,11 @@ TorpTube: Speed: 6 Warhead: Spread: 3 - Verses: 30%,75%,75%,100%,50% + Versus: + None: 30% + Wood: 75% + Light: 75% + Concrete: 50% WaterExplosion: large_splash InfDeath: 3 SmudgeType: Crater @@ -584,7 +720,11 @@ TorpTube: Image: 120MM Warhead: Spread: 3 - Verses: 30%,75%,75%,100%,50% + Versus: + None: 30% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: small_explosion WaterExplosion: med_splash InfDeath: 3 @@ -603,7 +743,11 @@ DepthCharge: Inaccuracy: 3 Warhead: Spread: 3 - Verses: 30%,75%,75%,100%,50% + Versus: + None: 30% + Wood: 75% + Light: 75% + Concrete: 50% WaterExplosion: large_splash InfDeath: 3 SmudgeType: Crater @@ -617,7 +761,11 @@ ParaBomb: Image: PARABOMB Warhead: Spread: 3 - Verses: 30%,75%,75%,100%,50% + Versus: + None: 30% + Wood: 75% + Light: 75% + Concrete: 50% Explosion: self_destruct WaterExplosion: small_splash InfDeath: 3 @@ -631,7 +779,11 @@ DogJaw: Report: DOGG5P Warhead: Spread: 5 - Verses: 100%,0%,0%,0%,0% + Versus: + Wood: 0% + Light: 0% + Heavy: 0% + Concrete: 0% InfDeath: 0 Damage: 100 @@ -643,7 +795,11 @@ Heal: Speed: 100 Warhead: Spread: 5 - Verses: 100%,0%,0%,0%,0% + Versus: + Wood: 0% + Light: 0% + Heavy: 0% + Concrete: 0% InfDeath: 0 Damage: -50 @@ -663,7 +819,11 @@ SCUD: Angle: .1 Warhead: Spread: 8 - Verses: 90%,75%,60%,25%,100% + Versus: + None: 90% + Wood: 75% + Light: 60% + Heavy: 25% Explosion: napalm WaterExplosion: large_splash InfDeath: 2 @@ -677,7 +837,11 @@ Atomic: Damage: 1000 Spread: 6 Ore: true - Verses: 90%,100%,60%,25%,50% + Versus: + None: 90% + Light: 60% + Heavy: 25% + Concrete: 50% Explosion: nuke WaterExplosion: nuke InfDeath: 4 @@ -687,7 +851,11 @@ Atomic: SmudgeType: Scorch Size: 5,4 Ore: true - Verses: 90%,100%,60%,25%,50% + Versus: + None: 90% + Light: 60% + Heavy: 25% + Concrete: 50% Delay: 3 InfDeath: 4 @@ -695,7 +863,11 @@ UnitExplode: Warhead: Damage: 500 Spread: 10 - Verses: 90%,75%,60%,25%,100% + Versus: + None: 90% + Wood: 75% + Light: 60% + Heavy: 25% Explosion: self_destruct InfDeath: 3 ImpactSound: kaboom22 @@ -704,35 +876,44 @@ UnitExplodeSmall: Warhead: Damage: 40 Spread: 10 - Verses: 90%,75%,60%,25%,100% + Versus: + None: 90% + Wood: 75% + Light: 60% + Heavy: 25% Explosion: large_explosion InfDeath: 3 ImpactSound: kaboom15 Crush: Warhead: - Verses: 100%,100%,100%,100%,100% ImpactSound: squishy2 Damage: 100 ATMine: Warhead: Damage: 500 - Verses: 0%,0%,100%,100%,0% + Versus: + None: 0% + Wood: 0% + Concrete: 0% ImpactSound: mineblo1 Explosion: large_explosion APMine: Warhead: Damage: 700 - Verses: 100%,0%,0%,0%,0% + Versus: + Wood: 0% + Light: 0% + Heavy: 0% + Concrete: 0% ImpactSound: mine1 InfDeath: 2 Explosion: napalm Demolish: Warhead: - Verses: 100%,100%,100%,100%,100% ImpactSound: kaboom25 Explosion: building @@ -745,7 +926,6 @@ PortaTesla: Projectile: TeslaZap Warhead: Spread: 1 - Verses: 100%,100%,100%,100%,100% InfDeath: 5 Damage: 45 @@ -757,6 +937,5 @@ TTankZap: Projectile: TeslaZap Warhead: Spread: 1 - Verses: 100%,100%,100%,100%,100% InfDeath: 5 Damage: 100