diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index e8fb764998..3ea4d94368 100644 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -24,6 +24,18 @@ namespace OpenRA.Traits public enum TagType { None, Fake, Primary }; public enum Stance { Enemy, Neutral, Ally }; + [Flags] + public enum ImpactType + { + None = 0, + Ground = 1, + Water = 2, + Air = 4, + GroundHit = 8, + WaterHit = 16, + AirHit = 32 + } + public class AttackInfo { public Actor Attacker; diff --git a/OpenRA.Mods.RA/Warheads/CreateEffectWarhead.cs b/OpenRA.Mods.RA/Warheads/CreateEffectWarhead.cs index aa08cde68b..b966f11125 100644 --- a/OpenRA.Mods.RA/Warheads/CreateEffectWarhead.cs +++ b/OpenRA.Mods.RA/Warheads/CreateEffectWarhead.cs @@ -25,48 +25,87 @@ namespace OpenRA.Mods.RA [Desc("Palette to use for explosion effect.")] public readonly string ExplosionPalette = "effect"; - [Desc("Explosion effect on hitting water (usually a splash).")] - public readonly string WaterExplosion = null; - - [Desc("Palette to use for effect on hitting water (usually a splash).")] - public readonly string WaterExplosionPalette = "effect"; - [Desc("Sound to play on impact.")] public readonly string ImpactSound = null; - [Desc("Sound to play on impact with water")] - public readonly string WaterImpactSound = null; + [Desc("What impact types should this effect apply to.")] + public readonly ImpactType ValidImpactTypes = ImpactType.Ground | ImpactType.Water | ImpactType.Air | ImpactType.GroundHit | ImpactType.WaterHit | ImpactType.AirHit; + + [Desc("What impact types should this effect NOT apply to.", "Overrides ValidImpactTypes.")] + public readonly ImpactType InvalidImpactTypes = ImpactType.None; public override void DoImpact(Target target, Actor firedBy, float firepowerModifier) { DoImpact(target.CenterPosition, firedBy, firepowerModifier); } + public static ImpactType GetImpactType(World world, CPos cell, WPos pos) + { + var isAir = pos.Z > 0; + var isWater = pos.Z <= 0 && world.Map.GetTerrainInfo(cell).IsWater; + var isDirectHit = GetDirectHit(world, cell, pos); + + if (isAir && !isDirectHit) + return ImpactType.Air; + + else if (isWater && !isDirectHit) + return ImpactType.Water; + + else if (isAir && isDirectHit) + return ImpactType.AirHit; + + else if (isWater && isDirectHit) + return ImpactType.WaterHit; + + else if (isDirectHit) + return ImpactType.GroundHit; + + return ImpactType.Ground; + } + + public static bool GetDirectHit(World world, CPos cell, WPos pos) + { + foreach (var unit in world.ActorMap.GetUnitsAt(cell)) + { + var healthInfo = unit.Info.Traits.GetOrDefault(); + if (healthInfo == null) + continue; + + // If the impact position is within any actor's health radius, we have a direct hit + if ((unit.CenterPosition - pos).LengthSquared <= healthInfo.Radius.Range * healthInfo.Radius.Range) + return true; + } + + return false; + } + public void DoImpact(WPos pos, Actor firedBy, float firepowerModifier) { var world = firedBy.World; var targetTile = world.Map.CellContaining(pos); + var isValid = IsValidImpact(pos, firedBy); - if (!world.Map.Contains(targetTile)) + if ((!world.Map.Contains(targetTile)) || (!isValid)) return; - // TODO: #5937 should go in here after rebase. - var isWater = pos.Z <= 0 && world.Map.GetTerrainInfo(targetTile).IsWater; - var explosionType = isWater ? WaterExplosion : Explosion; - var explosionTypePalette = isWater ? WaterExplosionPalette : ExplosionPalette; + if (Explosion != null) + world.AddFrameEndTask(w => w.Add(new Explosion(w, pos, Explosion, ExplosionPalette))); - if (explosionType != null) - world.AddFrameEndTask(w => w.Add(new Explosion(w, pos, explosionType, explosionTypePalette))); - - var sound = ImpactSound; - - var isTargetWater = pos.Z <= 0 && world.Map.GetTerrainInfo(targetTile).IsWater; - if (isTargetWater && WaterImpactSound != null) - sound = WaterImpactSound; - - Sound.Play(sound, pos); + if (ImpactSound != null) + Sound.Play(ImpactSound, pos); } public override float EffectivenessAgainst(ActorInfo ai) { return 1f; } + + public bool IsValidImpact(WPos pos, Actor firedBy) + { + var world = firedBy.World; + var targetTile = world.Map.CellContaining(pos); + var impactType = GetImpactType(world, targetTile, pos); + if (!ValidImpactTypes.HasFlag(impactType) || InvalidImpactTypes.HasFlag(impactType)) + return false; + + return true; + } } } diff --git a/mods/cnc/weapons.yaml b/mods/cnc/weapons.yaml index 89be94bdf3..3889ac1969 100644 --- a/mods/cnc/weapons.yaml +++ b/mods/cnc/weapons.yaml @@ -651,8 +651,13 @@ MammothMissiles: Warhead@2Smu: LeaveSmudge SmudgeType: Crater Warhead@3Eff: CreateEffect - Explosion: small_frag + Explosion: small_poof ImpactSound: xplos.aud + InvalidImpactTypes: Air, AirHit + Warhead@4EffAir: CreateEffect + Explosion: small_building + ImpactSound: xplos.aud + ValidImpactTypes: Air, AirHit 227mm: ROF: 140 @@ -798,6 +803,11 @@ BoatMissile: Warhead@3Eff: CreateEffect Explosion: small_poof ImpactSound: xplos.aud + InvalidImpactTypes: Air, AirHit + Warhead@4EffAir: CreateEffect + Explosion: small_building + ImpactSound: xplos.aud + ValidImpactTypes: Air, AirHit TowerMissle: ROF: 15 @@ -869,7 +879,6 @@ Napalm: SmudgeType: Scorch Warhead@3Eff: CreateEffect Explosion: med_napalm - WaterExplosion: med_napalm ImpactSound: flamer2.aud Napalm.Crate: @@ -931,7 +940,7 @@ SAMMissile: Warhead@2Smu: LeaveSmudge SmudgeType: Crater Warhead@3Eff: CreateEffect - Explosion: small_frag + Explosion: small_building ImpactSound: xplos.aud HonestJohn: @@ -1027,7 +1036,7 @@ APCGun.AA: Versus: Heavy: 50% Warhead@2Eff: CreateEffect - Explosion: small_poof + Explosion: small_frag Patriot: ROF: 25 diff --git a/mods/ra/weapons.yaml b/mods/ra/weapons.yaml index 4aa72df11b..c746d2fd51 100644 --- a/mods/ra/weapons.yaml +++ b/mods/ra/weapons.yaml @@ -16,7 +16,10 @@ Colt45: Concrete: 0% Warhead@2Eff: CreateEffect Explosion: piff - WaterExplosion: water_piff + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piff + ValidImpactTypes: Water ZSU-23: Burst: 2 @@ -56,7 +59,10 @@ Vulcan: Concrete: 25% Warhead@2Eff_1: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Warhead@2Eff_1Water: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Warhead@3Dam_2: SpreadDamage Spread: 128 Damage: 10 @@ -69,7 +75,11 @@ Vulcan: Concrete: 25% Warhead@4Eff_2: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Delay: 2 + Warhead@4Eff_2Water: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Delay: 2 Warhead@5Dam_3: SpreadDamage Spread: 128 @@ -83,7 +93,11 @@ Vulcan: Concrete: 25% Warhead@6Eff_3: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Delay: 4 + Warhead@6Eff_3Water: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Delay: 4 Warhead@7Dam_4: SpreadDamage Spread: 128 @@ -97,7 +111,11 @@ Vulcan: Concrete: 25% Warhead@8Eff_4: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Delay: 6 + Warhead@8Eff_4Water: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Delay: 6 Warhead@9Dam_5: SpreadDamage Spread: 128 @@ -111,7 +129,11 @@ Vulcan: Concrete: 25% Warhead@10Eff_5: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Delay: 8 + Warhead@10Eff_5Water: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Delay: 8 Warhead@11Dam_6: SpreadDamage Spread: 128 @@ -125,7 +147,11 @@ Vulcan: Concrete: 25% Warhead@12Eff_6: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Delay: 10 + Warhead@12Eff_6Water: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Delay: 10 Maverick: @@ -158,9 +184,12 @@ Maverick: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: med_explosion - WaterExplosion: med_splash ImpactSound: kaboom25.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: med_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water FireballLauncher: ROF: 65 @@ -185,7 +214,6 @@ FireballLauncher: SmudgeType: Scorch Warhead@3Eff: CreateEffect Explosion: napalm - WaterExplosion: napalm ImpactSound: firebl3.aud Flamer: @@ -213,7 +241,6 @@ Flamer: SmudgeType: Scorch Warhead@3Eff: CreateEffect Explosion: small_napalm - WaterExplosion: small_napalm ImpactSound: firebl3.aud ChainGun: @@ -236,7 +263,10 @@ ChainGun: Concrete: 25% Warhead@2Eff: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water ChainGun.Yak: ROF: 3 @@ -257,7 +287,10 @@ ChainGun.Yak: Concrete: 25% Warhead@2Eff: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Pistol: ROF: 7 @@ -276,7 +309,10 @@ Pistol: Concrete: 25% Warhead@2Eff: CreateEffect Explosion: piff - WaterExplosion: water_piff + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piff + ValidImpactTypes: Water M1Carbine: ROF: 20 @@ -295,7 +331,10 @@ M1Carbine: Concrete: 10% Warhead@2Eff: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Dragon: ROF: 50 @@ -325,9 +364,12 @@ Dragon: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: med_explosion - WaterExplosion: med_splash ImpactSound: kaboom25.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: med_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water HellfireAG: ROF: 60 @@ -358,9 +400,12 @@ HellfireAG: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: med_explosion - WaterExplosion: med_splash ImpactSound: kaboom25.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: med_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water HellfireAA: ROF: 60 @@ -391,8 +436,12 @@ HellfireAA: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: med_explosion_air - WaterExplosion: med_splash ImpactSound: kaboom25.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: med_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water Grenade: ROF: 60 @@ -417,9 +466,12 @@ Grenade: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: med_explosion - WaterExplosion: small_splash ImpactSound: kaboom25.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water 25mm: ROF: 13 @@ -439,9 +491,12 @@ Grenade: Concrete: 30% Warhead@2Smu: LeaveSmudge SmudgeType: Crater - Warhead@3Eff: CreateEffect + Warhead@3EffGround: CreateEffect Explosion: small_explosion - WaterExplosion: small_splash + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ValidImpactTypes: Water 90mm: ROF: 50 @@ -461,11 +516,14 @@ Grenade: Concrete: 50% Warhead@2Smu: LeaveSmudge SmudgeType: Crater - Warhead@3Eff: CreateEffect + Warhead@3EffGround: CreateEffect Explosion: small_explosion - WaterExplosion: small_splash ImpactSound: kaboom12.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water 105mm: ROF: 70 @@ -487,11 +545,14 @@ Grenade: Concrete: 50% Warhead@2Smu: LeaveSmudge SmudgeType: Crater - Warhead@3Eff: CreateEffect + Warhead@3EffGround: CreateEffect Explosion: small_explosion - WaterExplosion: small_splash ImpactSound: kaboom12.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water 120mm: ROF: 90 @@ -513,11 +574,14 @@ Grenade: Concrete: 50% Warhead@2Smu: LeaveSmudge SmudgeType: Crater - Warhead@3Eff: CreateEffect + Warhead@3EffGround: CreateEffect Explosion: small_explosion - WaterExplosion: small_splash ImpactSound: kaboom12.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water TurretGun: ROF: 30 @@ -537,11 +601,14 @@ TurretGun: Concrete: 50% Warhead@2Smu: LeaveSmudge SmudgeType: Crater - Warhead@3Eff: CreateEffect + Warhead@3EffGround: CreateEffect Explosion: small_explosion - WaterExplosion: small_splash ImpactSound: kaboom12.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water MammothTusk: ROF: 60 @@ -569,11 +636,18 @@ MammothTusk: Heavy: 25% Warhead@2Smu: LeaveSmudge SmudgeType: Crater - Warhead@3Eff: CreateEffect + Warhead@3EffGround: CreateEffect + Explosion: med_explosion + ImpactSound: kaboom12.aud + InvalidImpactTypes: Water, Air, AirHit + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water + Warhead@5EffAir: CreateEffect Explosion: med_explosion_air - WaterExplosion: med_splash ImpactSound: kaboom25.aud - WaterImpactSound: splash9.aud + ValidImpactTypes: Air, AirHit 155mm: ROF: 85 @@ -601,9 +675,12 @@ MammothTusk: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: artillery_explosion - WaterExplosion: med_splash ImpactSound: kaboom15.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: med_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water M60mg: ROF: 30 @@ -623,7 +700,10 @@ M60mg: Concrete: 10% Warhead@2Eff: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Napalm: ROF: 20 @@ -645,9 +725,12 @@ Napalm: SmudgeType: Scorch Warhead@3Eff: CreateEffect Explosion: napalm - WaterExplosion: med_splash ImpactSound: firebl3.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4Eff: CreateEffect + Explosion: med_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water CrateNapalm: Warhead@1Dam: SpreadDamage @@ -663,7 +746,6 @@ CrateNapalm: SmudgeType: Scorch Warhead@3Eff: CreateEffect Explosion: napalm - WaterExplosion: napalm ImpactSound: firebl3.aud CrateExplosion: @@ -678,7 +760,6 @@ CrateExplosion: Heavy: 25% Warhead@2Eff: CreateEffect Explosion: self_destruct - WaterExplosion: self_destruct ImpactSound: kaboom15.aud CrateNuke: @@ -694,7 +775,6 @@ CrateNuke: Warhead@2Res_impact: DestroyResource Warhead@3Eff_impact: CreateEffect Explosion: nuke - WaterExplosion: nuke ImpactSound: kaboom1.aud Warhead@4Dam_areanuke: PerCellDamage Size: 5,4 @@ -822,9 +902,12 @@ RedEye: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: artillery_explosion - WaterExplosion: large_splash ImpactSound: kaboom15.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: large_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water SubMissile: ROF: 300 @@ -851,9 +934,12 @@ SubMissile: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: artillery_explosion - WaterExplosion: large_splash ImpactSound: kaboom15.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: large_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water Stinger: ROF: 60 @@ -884,9 +970,16 @@ Stinger: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: med_explosion - WaterExplosion: med_splash ImpactSound: kaboom25.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water, Air, AirHit + Warhead@5EffAir: CreateEffect + Explosion: med_explosion_air + ImpactSound: kaboom25.aud + ValidImpactTypes: Air, AirHit + Warhead@4EffWater: CreateEffect + Explosion: med_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water TorpTube: ROF: 100 @@ -917,9 +1010,16 @@ TorpTube: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: large_explosion - WaterExplosion: large_splash - ImpactSound: kaboom12.aud - WaterImpactSound: splash9.aud + ImpactSound: kaboom15.aud + InvalidImpactTypes: Water, WaterHit + Warhead@4EffWaterHit: CreateEffect + Explosion: artillery_explosion + ImpactSound: kaboom15.aud + ValidImpactTypes: WaterHit + Warhead@5EffWater: CreateEffect + Explosion: large_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water 2Inch: ROF: 60 @@ -941,9 +1041,12 @@ TorpTube: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: small_explosion - WaterExplosion: med_splash ImpactSound: kaboom12.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water DepthCharge: ROF: 60 @@ -967,8 +1070,12 @@ DepthCharge: Warhead@2Smu: LeaveSmudge SmudgeType: Crater Warhead@3Eff: CreateEffect - WaterExplosion: large_splash - WaterImpactSound: splash9.aud + Explosion: large_splash + ImpactSound: splash9.aud + Warhead@4EffHit: CreateEffect + Explosion: small_explosion + ImpactSound: kaboom15.aud + ValidImpactTypes: WaterHit ParaBomb: ROF: 10 @@ -990,10 +1097,13 @@ ParaBomb: Warhead@2Smu: LeaveSmudge SmudgeType: Crater Warhead@3Eff: CreateEffect - Explosion: self_destruct - WaterExplosion: small_splash + Explosion: artillery_explosion ImpactSound: kaboom15.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water DogJaw: ValidTargets: Infantry @@ -1061,7 +1171,10 @@ SilencedPPK: Concrete: 0% Warhead@2Eff: CreateEffect Explosion: piffs - WaterExplosion: water_piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water SCUD: ROF: 240 @@ -1090,9 +1203,13 @@ SCUD: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: napalm - WaterExplosion: large_splash ImpactSound: firebl3.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: large_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water + Atomic: ValidTargets: Ground, Water, Air @@ -1109,7 +1226,6 @@ Atomic: Size: 1 Warhead@4Eff_impact: CreateEffect Explosion: nuke - WaterExplosion: nuke ImpactSound: kaboom1.aud Warhead@5Dam_areanuke1: SpreadDamage Spread: 2c0 @@ -1183,7 +1299,6 @@ MiniNuke: Size: 1 Warhead@3Eff_impact: CreateEffect Explosion: nuke - WaterExplosion: nuke ImpactSound: kaboom1.aud Warhead@4Dam_areanuke1: SpreadDamage Spread: 2c0 @@ -1235,9 +1350,12 @@ UnitExplode: Heavy: 25% Warhead@2Eff: CreateEffect Explosion: self_destruct - WaterExplosion: large_splash ImpactSound: kaboom22.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: large_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water UnitExplodeShip: Warhead@1Dam: SpreadDamage @@ -1251,9 +1369,7 @@ UnitExplodeShip: Heavy: 25% Warhead@2Eff: CreateEffect Explosion: building - WaterExplosion: building ImpactSound: kaboom25.aud - WaterImpactSound: kaboom25.aud UnitExplodeSubmarine: Warhead@1Dam: SpreadDamage @@ -1266,8 +1382,8 @@ UnitExplodeSubmarine: Light: 60% Heavy: 25% Warhead@2Eff: CreateEffect - WaterExplosion: large_splash - WaterImpactSound: splash9.aud + Explosion: large_splash + ImpactSound: splash9.aud UnitExplodeSmall: Warhead@1Dam: SpreadDamage @@ -1281,9 +1397,12 @@ UnitExplodeSmall: Heavy: 25% Warhead@2Eff: CreateEffect Explosion: large_explosion - WaterExplosion: large_splash ImpactSound: kaboom15.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: large_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water BarrelExplode: Warhead@1Dam: SpreadDamage @@ -1379,8 +1498,14 @@ FLAK-23: Heavy: 10% Concrete: 20% Warhead@2Eff: CreateEffect + Explosion: small_explosion + InvalidImpactTypes: Air, AirHit, Water + Warhead@3EffAir: CreateEffect Explosion: small_explosion_air - WaterExplosion: small_splash + ValidImpactTypes: Air, AirHit + Warhead@4EffWater: CreateEffect + Explosion: small_splash + ValidImpactTypes: Water Sniper: Report: GUN5.AUD @@ -1427,9 +1552,12 @@ APTusk: SmudgeType: Crater Warhead@3Eff: CreateEffect Explosion: med_explosion - WaterExplosion: med_splash ImpactSound: kaboom25.aud - WaterImpactSound: splash9.aud + InvalidImpactTypes: Water + Warhead@4EffWater: CreateEffect + Explosion: med_splash + ImpactSound: splash9.aud + ValidImpactTypes: Water Claw: ROF: 30 diff --git a/mods/ts/sequences/misc.yaml b/mods/ts/sequences/misc.yaml index 5cf2c51d14..6bc0e1ea91 100644 --- a/mods/ts/sequences/misc.yaml +++ b/mods/ts/sequences/misc.yaml @@ -159,10 +159,16 @@ explosion: large_watersplash: h2o_exp1 Start: 0 Length: * + water_piff: w_piff + Start: 0 + Length: * + water_piffs: w_piffs + Start: 0 + Length: * piff: piff Start: 0 Length: * - piffpiff: piffpiff + piffs: piffpiff Start: 0 Length: * small_explosion: explosml diff --git a/mods/ts/weapons.yaml b/mods/ts/weapons.yaml index d79f17dcf8..b68ffbc042 100644 --- a/mods/ts/weapons.yaml +++ b/mods/ts/weapons.yaml @@ -43,7 +43,11 @@ Minigun: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Grenade: ROF: 60 @@ -69,6 +73,11 @@ Grenade: Warhead@2Eff: CreateEffect Explosion: large_grey_explosion ImpactSound: expnew13.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water Bazooka: ROF: 60 @@ -98,6 +107,15 @@ Bazooka: Warhead@2Eff: CreateEffect Explosion: small_clsn ImpactSound: expnew12.aud + InvalidImpactTypes: Water, Air, AirHit + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water + Warhead@4EffAir: CreateEffect + Explosion: small_twlt + ImpactSound: expnew12.aud + ValidImpactTypes: Air, AirHit MultiCluster: ROF: 80 @@ -127,6 +145,11 @@ MultiCluster: Warhead@2Eff: CreateEffect Explosion: large_explosion ImpactSound: expnew09.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash2.aud + ValidImpactTypes: Water Heal: ROF: 80 @@ -180,7 +203,11 @@ M1Carbine: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water LtRail: ROF: 60 @@ -227,6 +254,11 @@ CyCannon: Warhead@2Eff: CreateEffect Explosion: large_bang ImpactSound: expnew12.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water Vulcan3: ROF: 30 @@ -246,7 +278,11 @@ Vulcan3: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Vulcan2: ROF: 50 @@ -267,7 +303,11 @@ Vulcan2: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Vulcan: ROF: 60 @@ -286,7 +326,11 @@ Vulcan: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water FiendShard: ROF: 30 @@ -309,6 +353,10 @@ FiendShard: Light: 40% Heavy: 25% Concrete: 10% + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water JumpCannon: ROF: 40 @@ -328,7 +376,11 @@ JumpCannon: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water HoverMissile: ROF: 68 @@ -359,6 +411,15 @@ HoverMissile: Warhead@2Eff: CreateEffect Explosion: small_clsn ImpactSound: expnew12.aud + InvalidImpactTypes: Water, Air, AirHit + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water + Warhead@4EffAir: CreateEffect + Explosion: small_twlt + ImpactSound: expnew12.aud + ValidImpactTypes: Air, AirHit 120mmx: ROF: 80 @@ -385,6 +446,11 @@ HoverMissile: Warhead@2Eff: CreateEffect Explosion: medium_clsn ImpactSound: expnew14.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water MammothTusk: ROF: 80 @@ -416,6 +482,11 @@ MammothTusk: Warhead@2Eff: CreateEffect Explosion: medium_bang ImpactSound: expnew12.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water Repair: ROF: 80 @@ -486,6 +557,11 @@ SuicideBomb: Warhead@2Eff: CreateEffect Explosion: large_clsn ImpactSound: expnew14.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water MechRailgun: ROF: 60 @@ -525,7 +601,11 @@ AssaultCannon: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water BikeMissile: ROF: 60 @@ -557,6 +637,11 @@ BikeMissile: Warhead@2Eff: CreateEffect Explosion: small_clsn ImpactSound: expnew12.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water RaiderCannon: ROF: 55 @@ -577,7 +662,11 @@ RaiderCannon: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water FireballLauncher: ROF: 50 @@ -647,6 +736,15 @@ Dragon: Warhead@2Eff: CreateEffect Explosion: small_clsn ImpactSound: expnew12.aud + InvalidImpactTypes: Water, Air, AirHit + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water + Warhead@4EffAir: CreateEffect + Explosion: small_twlt + ImpactSound: expnew12.aud + ValidImpactTypes: Air, AirHit 90mm: ROF: 50 @@ -671,6 +769,11 @@ Dragon: Warhead@2Eff: CreateEffect Explosion: medium_clsn ImpactSound: expnew14.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water 155mm: ROF: 110 @@ -697,7 +800,12 @@ Dragon: Concrete: 35% Warhead@2Eff: CreateEffect Explosion: large_explosion - ImpactSound: expnew09.aud + ImpactSound: expnew06.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash2.aud + ValidImpactTypes: Water Hellfire: ROF: 50 @@ -728,6 +836,15 @@ Hellfire: Warhead@2Eff: CreateEffect Explosion: small_bang ImpactSound: expnew12.aud + InvalidImpactTypes: Water, Air, AirHit + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water + Warhead@4EffAir: CreateEffect + Explosion: small_twlt + ImpactSound: expnew12.aud + ValidImpactTypes: Air, AirHit Bomb: ROF: 10 @@ -751,6 +868,11 @@ Bomb: Warhead@2Eff: CreateEffect Explosion: large_explosion ImpactSound: expnew09.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water Proton: ROF: 3 @@ -780,6 +902,11 @@ Proton: Warhead@2Eff: CreateEffect Explosion: small_bang ImpactSound: expnew12.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash3.aud + ValidImpactTypes: Water HarpyClaw: ROF: 36 @@ -799,7 +926,11 @@ HarpyClaw: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water Pistola: ROF: 20 @@ -819,6 +950,10 @@ Pistola: Concrete: 10% Warhead@2Eff: CreateEffect Explosion: piff + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piff + ValidImpactTypes: Water Tiberium: ROF: 16 @@ -875,7 +1010,11 @@ VulcanTower: Heavy: 25% Concrete: 10% Warhead@2Eff: CreateEffect - Explosion: piffpiff + Explosion: piffs + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: water_piffs + ValidImpactTypes: Water RPGTower: ROF: 80 @@ -902,6 +1041,11 @@ RPGTower: Warhead@2Eff: CreateEffect Explosion: large_clsn ImpactSound: expnew14.aud + InvalidImpactTypes: Water + Warhead@3EffWater: CreateEffect + Explosion: small_watersplash + ImpactSound: ssplash2.aud + ValidImpactTypes: Water SAMTower: ROF: 55