Merge pull request #6265 from pchote/warhead-intification
Warhead cleanups
This commit is contained in:
86
OpenRA.Game/GameRules/DamageWarhead.cs
Normal file
86
OpenRA.Game/GameRules/DamageWarhead.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.GameRules
|
||||
{
|
||||
public abstract class DamageWarhead : Warhead
|
||||
{
|
||||
[Desc("How much (raw) damage to deal")]
|
||||
public readonly int Damage = 0;
|
||||
|
||||
[Desc("Infantry death animation to use")]
|
||||
public readonly string InfDeath = "1";
|
||||
|
||||
[Desc("Whether we should prevent prone response for infantry.")]
|
||||
public readonly bool PreventProne = false;
|
||||
|
||||
[Desc("By what percentage should damage be modified against prone infantry.")]
|
||||
public readonly int ProneModifier = 50;
|
||||
|
||||
[FieldLoader.LoadUsing("LoadVersus")]
|
||||
[Desc("Damage percentage versus each armortype. 0% = can't target.")]
|
||||
public readonly Dictionary<string, int> Versus;
|
||||
|
||||
public static object LoadVersus(MiniYaml yaml)
|
||||
{
|
||||
var nd = yaml.ToDictionary();
|
||||
return nd.ContainsKey("Versus")
|
||||
? nd["Versus"].ToDictionary(my => FieldLoader.GetValue<int>("(value)", my.Value))
|
||||
: new Dictionary<string, int>();
|
||||
}
|
||||
|
||||
public int DamageVersus(ActorInfo victim)
|
||||
{
|
||||
var armor = victim.Traits.GetOrDefault<ArmorInfo>();
|
||||
if (armor != null && armor.Type != null)
|
||||
{
|
||||
int versus;
|
||||
if (Versus.TryGetValue(armor.Type, out versus))
|
||||
return versus;
|
||||
}
|
||||
|
||||
return 100;
|
||||
}
|
||||
|
||||
// TODO: This can be removed after the legacy and redundant 0% = not targetable
|
||||
// assumption has been removed from the yaml definitions
|
||||
public override bool CanTargetActor(ActorInfo victim, Actor firedBy)
|
||||
{
|
||||
var health = victim.Traits.GetOrDefault<HealthInfo>();
|
||||
if (health == null)
|
||||
return false;
|
||||
|
||||
return DamageVersus(victim) > 0;
|
||||
}
|
||||
|
||||
public override void DoImpact(Target target, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
// Used by traits that damage a single actor, rather than a position
|
||||
if (target.Type == TargetType.Actor)
|
||||
DoImpact(target.Actor, firedBy, damageModifiers);
|
||||
else
|
||||
DoImpact(target.CenterPosition, firedBy, damageModifiers);
|
||||
}
|
||||
|
||||
public abstract void DoImpact(WPos pos, Actor firedBy, IEnumerable<int> damageModifiers);
|
||||
|
||||
public virtual void DoImpact(Actor victim, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
var damage = Util.ApplyPercentageModifiers(Damage, damageModifiers.Append(DamageVersus(victim.Info)));
|
||||
victim.InflictDamage(firedBy, damage, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -27,9 +27,7 @@ namespace OpenRA.GameRules
|
||||
[Desc("Delay in ticks before applying the warhead effect.","0 = instant (old model).")]
|
||||
public readonly int Delay = 0;
|
||||
|
||||
public abstract void DoImpact(Target target, Actor firedBy, float firepowerModifier);
|
||||
|
||||
public virtual float EffectivenessAgainst(ActorInfo ai) { return 0f; }
|
||||
public abstract void DoImpact(Target target, Actor firedBy, IEnumerable<int> damageModifiers);
|
||||
|
||||
public bool IsValidAgainst(Target target, World world, Actor firedBy)
|
||||
{
|
||||
@@ -56,10 +54,13 @@ namespace OpenRA.GameRules
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO: This can be removed after the legacy and redundant 0% = not targetable
|
||||
// assumption has been removed from the yaml definitions
|
||||
public virtual bool CanTargetActor(ActorInfo victim, Actor firedBy) { return false; }
|
||||
|
||||
public bool IsValidAgainst(Actor victim, Actor firedBy)
|
||||
{
|
||||
// If this warhead is ineffective against the target, then it is not a valid target
|
||||
if (EffectivenessAgainst(victim.Info) <= 0f)
|
||||
if (!CanTargetActor(victim.Info, firedBy))
|
||||
return false;
|
||||
|
||||
// A target type is valid if it is in the valid targets list, and not in the invalid targets list.
|
||||
@@ -83,8 +84,7 @@ namespace OpenRA.GameRules
|
||||
|
||||
public bool IsValidAgainst(FrozenActor victim, Actor firedBy)
|
||||
{
|
||||
// If this warhead is ineffective against the target, then it is not a valid target
|
||||
if (EffectivenessAgainst(victim.Info) <= 0f)
|
||||
if (!CanTargetActor(victim.Info, firedBy))
|
||||
return false;
|
||||
|
||||
// A target type is valid if it is in the valid targets list, and not in the invalid targets list.
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.GameRules
|
||||
{
|
||||
public class AbsoluteSpreadDamageWarhead : DamageWarhead
|
||||
{
|
||||
[Desc("Maximum spread of the associated SpreadFactor.")]
|
||||
public readonly WRange[] Spread = { new WRange(43) };
|
||||
|
||||
[Desc("What factor to multiply the Damage by for this spread range.", "Each factor specified must have an associated Spread defined.")]
|
||||
public readonly float[] SpreadFactor = { 1f };
|
||||
|
||||
public override void DoImpact(Target target, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
// Used by traits that damage a single actor, rather than a position
|
||||
if (target.Type == TargetType.Actor)
|
||||
DoImpact(target.Actor, firedBy, firepowerModifier);
|
||||
else
|
||||
DoImpact(target.CenterPosition, firedBy, firepowerModifier);
|
||||
}
|
||||
|
||||
public void DoImpact(WPos pos, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
var world = firedBy.World;
|
||||
|
||||
for (var i = 0; i < Spread.Length; i++)
|
||||
{
|
||||
var currentSpread = Spread[i];
|
||||
var currentFactor = SpreadFactor[i];
|
||||
var previousSpread = WRange.Zero;
|
||||
if (i > 0)
|
||||
previousSpread = Spread[i - 1];
|
||||
if (currentFactor <= 0f)
|
||||
continue;
|
||||
|
||||
var hitActors = world.FindActorsInCircle(pos, currentSpread);
|
||||
if (previousSpread.Range > 0)
|
||||
hitActors.Except(world.FindActorsInCircle(pos, previousSpread));
|
||||
|
||||
foreach (var victim in hitActors)
|
||||
if (IsValidAgainst(victim, firedBy))
|
||||
{
|
||||
var damage = GetDamageToInflict(victim, firedBy, firepowerModifier * currentFactor);
|
||||
victim.InflictDamage(firedBy, damage, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void DoImpact(Actor victim, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
if (IsValidAgainst(victim, firedBy))
|
||||
{
|
||||
var currentFactor = SpreadFactor[0];
|
||||
var damage = (int)GetDamageToInflict(victim, firedBy, firepowerModifier * currentFactor);
|
||||
victim.InflictDamage(firedBy, damage, this);
|
||||
}
|
||||
}
|
||||
|
||||
public int GetDamageToInflict(Actor target, Actor firedBy, float modifier)
|
||||
{
|
||||
var healthInfo = target.Info.Traits.GetOrDefault<HealthInfo>();
|
||||
if (healthInfo == null)
|
||||
return 0;
|
||||
|
||||
var rawDamage = (float)Damage;
|
||||
|
||||
return (int)(rawDamage * modifier * EffectivenessAgainst(target.Info));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.GameRules
|
||||
{
|
||||
public abstract class DamageWarhead : Warhead
|
||||
{
|
||||
[Desc("How much (raw) damage to deal")]
|
||||
public readonly int Damage = 0;
|
||||
|
||||
[Desc("Infantry death animation to use")]
|
||||
public readonly string InfDeath = "1";
|
||||
|
||||
[Desc("Whether we should prevent prone response for infantry.")]
|
||||
public readonly bool PreventProne = false;
|
||||
|
||||
[Desc("By what percentage should damage be modified against prone infantry.")]
|
||||
public readonly int ProneModifier = 50;
|
||||
|
||||
[FieldLoader.LoadUsing("LoadVersus")]
|
||||
[Desc("Damage vs each armortype. 0% = can't target.")]
|
||||
public readonly Dictionary<string, float> Versus;
|
||||
|
||||
public static object LoadVersus(MiniYaml yaml)
|
||||
{
|
||||
var nd = yaml.ToDictionary();
|
||||
return nd.ContainsKey("Versus")
|
||||
? nd["Versus"].ToDictionary(my => FieldLoader.GetValue<float>("(value)", my.Value))
|
||||
: new Dictionary<string, float>();
|
||||
}
|
||||
|
||||
public override float EffectivenessAgainst(ActorInfo ai)
|
||||
{
|
||||
var health = ai.Traits.GetOrDefault<HealthInfo>();
|
||||
if (health == null)
|
||||
return 0f;
|
||||
|
||||
var armor = ai.Traits.GetOrDefault<ArmorInfo>();
|
||||
if (armor == null || armor.Type == null)
|
||||
return 1f;
|
||||
|
||||
float versus;
|
||||
return Versus.TryGetValue(armor.Type, out versus) ? versus : 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.GameRules
|
||||
{
|
||||
public class HealthPercentageDamageWarhead : DamageWarhead
|
||||
{
|
||||
[Desc("Size of the area. Damage will be applied to this area.", "If two spreads are defined, the area of effect is a ring, where the second value is the inner radius.")]
|
||||
public readonly WRange[] Spread = { new WRange(43), WRange.Zero };
|
||||
|
||||
public override void DoImpact(Target target, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
// Used by traits that damage a single actor, rather than a position
|
||||
if (target.Type == TargetType.Actor)
|
||||
DoImpact(target.Actor, firedBy, firepowerModifier);
|
||||
else
|
||||
DoImpact(target.CenterPosition, firedBy, firepowerModifier);
|
||||
}
|
||||
|
||||
public void DoImpact(WPos pos, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
var world = firedBy.World;
|
||||
var range = Spread[0];
|
||||
var hitActors = world.FindActorsInCircle(pos, range);
|
||||
if (Spread.Length > 1 && Spread[1].Range > 0)
|
||||
hitActors.Except(world.FindActorsInCircle(pos, Spread[1]));
|
||||
|
||||
foreach (var victim in hitActors)
|
||||
DoImpact(victim, firedBy, firepowerModifier);
|
||||
}
|
||||
|
||||
public void DoImpact(Actor victim, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
if (IsValidAgainst(victim, firedBy))
|
||||
{
|
||||
var damage = GetDamageToInflict(victim, firedBy, firepowerModifier);
|
||||
if (damage != 0) // will be 0 if the target doesn't have HealthInfo
|
||||
{
|
||||
var healthInfo = victim.Info.Traits.Get<HealthInfo>();
|
||||
damage = (float)(damage / 100 * healthInfo.HP);
|
||||
}
|
||||
|
||||
victim.InflictDamage(firedBy, (int)damage, this);
|
||||
}
|
||||
}
|
||||
|
||||
public float GetDamageToInflict(Actor target, Actor firedBy, float modifier)
|
||||
{
|
||||
var healthInfo = target.Info.Traits.GetOrDefault<HealthInfo>();
|
||||
if (healthInfo == null)
|
||||
return 0;
|
||||
|
||||
var rawDamage = (float)Damage;
|
||||
|
||||
return rawDamage * modifier * EffectivenessAgainst(target.Info);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.GameRules
|
||||
{
|
||||
public class PerCellDamageWarhead : DamageWarhead
|
||||
{
|
||||
[Desc("Size of the area. Damage will be applied to this area.")]
|
||||
public readonly int[] Size = { 0, 0 };
|
||||
|
||||
public override void DoImpact(Target target, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
// Used by traits that damage a single actor, rather than a position
|
||||
if (target.Type == TargetType.Actor)
|
||||
DoImpact(target.Actor, firedBy, firepowerModifier);
|
||||
else
|
||||
DoImpact(target.CenterPosition, firedBy, firepowerModifier);
|
||||
}
|
||||
|
||||
public void DoImpact(WPos pos, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
var world = firedBy.World;
|
||||
var targetTile = world.Map.CellContaining(pos);
|
||||
var minRange = (Size.Length > 1 && Size[1] > 0) ? Size[1] : 0;
|
||||
var affectedTiles = world.Map.FindTilesInAnnulus(targetTile, minRange, Size[0]);
|
||||
|
||||
foreach (var t in affectedTiles)
|
||||
foreach (var victim in world.ActorMap.GetUnitsAt(t))
|
||||
DoImpact(victim, firedBy, firepowerModifier);
|
||||
}
|
||||
|
||||
public void DoImpact(Actor victim, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
if (IsValidAgainst(victim, firedBy))
|
||||
{
|
||||
var damage = GetDamageToInflict(victim, firedBy, firepowerModifier);
|
||||
victim.InflictDamage(firedBy, damage, this);
|
||||
}
|
||||
}
|
||||
|
||||
public int GetDamageToInflict(Actor target, Actor firedBy, float modifier)
|
||||
{
|
||||
var healthInfo = target.Info.Traits.GetOrDefault<HealthInfo>();
|
||||
if (healthInfo == null)
|
||||
return 0;
|
||||
|
||||
var rawDamage = (float)Damage;
|
||||
|
||||
return (int)(rawDamage * modifier * EffectivenessAgainst(target.Info));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.GameRules
|
||||
{
|
||||
public class SpreadDamageWarhead : DamageWarhead
|
||||
{
|
||||
[Desc("For Normal DamageModel: Distance from the explosion center at which damage is 1/2.")]
|
||||
public readonly WRange Spread = new WRange(43);
|
||||
|
||||
public override void DoImpact(Target target, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
// Used by traits that damage a single actor, rather than a position
|
||||
if (target.Type == TargetType.Actor)
|
||||
DoImpact(target.Actor, firedBy, firepowerModifier);
|
||||
else
|
||||
DoImpact(target.CenterPosition, firedBy, firepowerModifier);
|
||||
}
|
||||
|
||||
public void DoImpact(WPos pos, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
var world = firedBy.World;
|
||||
var maxSpread = new WRange((int)(Spread.Range * (float)Math.Log(Math.Abs(Damage), 2)));
|
||||
var hitActors = world.FindActorsInCircle(pos, maxSpread);
|
||||
|
||||
foreach (var victim in hitActors)
|
||||
if (IsValidAgainst(victim, firedBy))
|
||||
{
|
||||
var damage = (int)GetDamageToInflict(pos, victim, firedBy, firepowerModifier);
|
||||
victim.InflictDamage(firedBy, damage, this);
|
||||
}
|
||||
}
|
||||
|
||||
public void DoImpact(Actor victim, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
if (IsValidAgainst(victim, firedBy))
|
||||
{
|
||||
var damage = GetDamageToInflict(victim.CenterPosition, victim, firedBy, firepowerModifier);
|
||||
victim.InflictDamage(firedBy, damage, this);
|
||||
}
|
||||
}
|
||||
|
||||
public int GetDamageToInflict(WPos pos, Actor target, Actor firedBy, float modifier)
|
||||
{
|
||||
var healthInfo = target.Info.Traits.GetOrDefault<HealthInfo>();
|
||||
if (healthInfo == null)
|
||||
return 0;
|
||||
|
||||
var distance = Math.Max(0, (target.CenterPosition - pos).Length - healthInfo.Radius.Range);
|
||||
var falloff = (float)GetDamageFalloff(distance * 1f / Spread.Range);
|
||||
var rawDamage = (float)(falloff * Damage);
|
||||
|
||||
return (int)(rawDamage * modifier * EffectivenessAgainst(target.Info));
|
||||
}
|
||||
|
||||
static readonly float[] falloff =
|
||||
{
|
||||
1f, 0.3678795f, 0.1353353f, 0.04978707f,
|
||||
0.01831564f, 0.006737947f, 0.002478752f, 0.000911882f
|
||||
};
|
||||
|
||||
static float GetDamageFalloff(float x)
|
||||
{
|
||||
var u = (int)x;
|
||||
if (u >= falloff.Length - 1) return 0;
|
||||
var t = x - u;
|
||||
return (falloff[u] * (1 - t)) + (falloff[u + 1] * t);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ namespace OpenRA.GameRules
|
||||
public class ProjectileArgs
|
||||
{
|
||||
public WeaponInfo Weapon;
|
||||
public float FirepowerModifier = 1.0f;
|
||||
public IEnumerable<int> DamageModifiers;
|
||||
public int Facing;
|
||||
public WPos Source;
|
||||
public Actor SourceActor;
|
||||
@@ -144,13 +144,13 @@ namespace OpenRA.GameRules
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Impact(WPos pos, Actor firedBy, float damageModifier)
|
||||
public void Impact(WPos pos, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
foreach (var wh in Warheads)
|
||||
{
|
||||
Action a;
|
||||
|
||||
a = () => wh.DoImpact(Target.FromPos(pos), firedBy, damageModifier);
|
||||
a = () => wh.DoImpact(Target.FromPos(pos), firedBy, damageModifiers);
|
||||
if (wh.Delay > 0)
|
||||
firedBy.World.AddFrameEndTask(
|
||||
w => w.Add(new DelayedAction(wh.Delay, a)));
|
||||
|
||||
@@ -76,11 +76,6 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="Actor.cs" />
|
||||
<Compile Include="GameRules\Warhead.cs" />
|
||||
<Compile Include="GameRules\Warheads\AbsoluteSpreadDamageWarhead.cs" />
|
||||
<Compile Include="GameRules\Warheads\DamageWarhead.cs" />
|
||||
<Compile Include="GameRules\Warheads\HealthPercentageDamageWarhead.cs" />
|
||||
<Compile Include="GameRules\Warheads\PerCellDamageWarhead.cs" />
|
||||
<Compile Include="GameRules\Warheads\SpreadDamageWarhead.cs" />
|
||||
<Compile Include="Graphics\QuadRenderer.cs" />
|
||||
<Compile Include="Download.cs" />
|
||||
<Compile Include="Effects\DelayedAction.cs" />
|
||||
@@ -247,6 +242,7 @@
|
||||
<Compile Include="Graphics\SelectionBarsRenderable.cs" />
|
||||
<Compile Include="Graphics\TargetLineRenderable.cs" />
|
||||
<Compile Include="Graphics\UISpriteRenderable.cs" />
|
||||
<Compile Include="GameRules\DamageWarhead.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="FileSystem\D2kSoundResources.cs" />
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#endregion
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.GameRules;
|
||||
using OpenRA.Graphics;
|
||||
@@ -45,7 +46,7 @@ namespace OpenRA.Mods.Cnc.Effects
|
||||
if (!impacted && weaponDelay-- <= 0)
|
||||
{
|
||||
var weapon = world.Map.Rules.Weapons[this.weapon.ToLowerInvariant()];
|
||||
weapon.Impact(target.CenterPosition, firedBy.PlayerActor, 1f);
|
||||
weapon.Impact(target.CenterPosition, firedBy.PlayerActor, Enumerable.Empty<int>());
|
||||
impacted = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.Cnc
|
||||
if (!info.Resources.Contains(r.Info.Name)) return;
|
||||
|
||||
var weapon = self.World.Map.Rules.Weapons[info.Weapon.ToLowerInvariant()];
|
||||
weapon.Impact(self.CenterPosition, self.World.WorldActor, 1f);
|
||||
weapon.Impact(self.CenterPosition, self.World.WorldActor, Enumerable.Empty<int>());
|
||||
poisonTicks = weapon.ReloadDelay;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace OpenRA.Mods.D2k
|
||||
if (health.HP <= damageThreshold || --damageTicks > 0)
|
||||
return;
|
||||
|
||||
weapon.Impact(self.CenterPosition, self.World.WorldActor, 1f);
|
||||
weapon.Impact(self.CenterPosition, self.World.WorldActor, Enumerable.Empty<int>());
|
||||
damageTicks = weapon.ReloadDelay;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,10 +49,8 @@ namespace OpenRA.Mods.D2k
|
||||
Weapon = wep,
|
||||
Facing = self.World.SharedRandom.Next(-1, 255),
|
||||
|
||||
// TODO: Convert to ints
|
||||
FirepowerModifier = self.TraitsImplementing<IFirepowerModifier>()
|
||||
.Select(a => a.GetFirepowerModifier() / 100f)
|
||||
.Product(),
|
||||
DamageModifiers = self.TraitsImplementing<IFirepowerModifier>()
|
||||
.Select(a => a.GetFirepowerModifier()),
|
||||
|
||||
Source = self.CenterPosition,
|
||||
SourceActor = self,
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System.Linq;
|
||||
using OpenRA.GameRules;
|
||||
using OpenRA.Traits;
|
||||
|
||||
@@ -54,7 +55,7 @@ namespace OpenRA.Mods.RA.Air
|
||||
if (info.Explosion != null)
|
||||
{
|
||||
var weapon = self.World.Map.Rules.Weapons[info.Explosion.ToLowerInvariant()];
|
||||
weapon.Impact(self.CenterPosition, self, 1f);
|
||||
weapon.Impact(self.CenterPosition, self, Enumerable.Empty<int>());
|
||||
}
|
||||
|
||||
self.Destroy();
|
||||
|
||||
@@ -154,10 +154,8 @@ namespace OpenRA.Mods.RA
|
||||
Weapon = Weapon,
|
||||
Facing = legacyFacing,
|
||||
|
||||
// TODO: Convert to ints
|
||||
FirepowerModifier = self.TraitsImplementing<IFirepowerModifier>()
|
||||
.Select(a => a.GetFirepowerModifier() / 100f)
|
||||
.Product(),
|
||||
DamageModifiers = self.TraitsImplementing<IFirepowerModifier>()
|
||||
.Select(a => a.GetFirepowerModifier()),
|
||||
|
||||
Source = muzzlePosition,
|
||||
SourceActor = self,
|
||||
|
||||
@@ -299,7 +299,7 @@ namespace OpenRA.Mods.RA
|
||||
self.World.AddFrameEndTask(w =>
|
||||
{
|
||||
var weapon = saboteur.World.Map.Rules.Weapons[Info.DemolishWeapon.ToLowerInvariant()];
|
||||
weapon.Impact(self.CenterPosition, saboteur, 1f);
|
||||
weapon.Impact(self.CenterPosition, saboteur, Enumerable.Empty<int>());
|
||||
self.World.WorldActor.Trait<ScreenShaker>().AddEffect(15, self.CenterPosition, 6);
|
||||
self.Kill(saboteur);
|
||||
});
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System.Linq;
|
||||
using OpenRA.GameRules;
|
||||
using OpenRA.Traits;
|
||||
|
||||
@@ -30,7 +31,7 @@ namespace OpenRA.Mods.RA
|
||||
public override void Activate(Actor collector)
|
||||
{
|
||||
var weapon = self.World.Map.Rules.Weapons[((ExplodeCrateActionInfo)info).Weapon.ToLowerInvariant()];
|
||||
weapon.Impact(collector.CenterPosition, self, 1f);
|
||||
weapon.Impact(collector.CenterPosition, self, Enumerable.Empty<int>());
|
||||
base.Activate(collector);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ namespace OpenRA.Mods.RA.Effects
|
||||
|
||||
world.AddFrameEndTask(w => w.Remove(this));
|
||||
|
||||
args.Weapon.Impact(pos, args.SourceActor, args.FirepowerModifier);
|
||||
args.Weapon.Impact(pos, args.SourceActor, args.DamageModifiers);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace OpenRA.Mods.RA.Effects
|
||||
{
|
||||
pos += new WVec(0, 0, args.PassiveTarget.Z - pos.Z);
|
||||
world.AddFrameEndTask(w => w.Remove(this));
|
||||
args.Weapon.Impact(pos, args.SourceActor, args.FirepowerModifier);
|
||||
args.Weapon.Impact(pos, args.SourceActor, args.DamageModifiers);
|
||||
}
|
||||
|
||||
anim.Tick();
|
||||
|
||||
@@ -69,7 +69,7 @@ namespace OpenRA.Mods.RA.Effects
|
||||
if (hitanim != null)
|
||||
hitanim.PlayThen("idle", () => animationComplete = true);
|
||||
|
||||
args.Weapon.Impact(target, args.SourceActor, args.FirepowerModifier);
|
||||
args.Weapon.Impact(target, args.SourceActor, args.DamageModifiers);
|
||||
doneDamage = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -180,7 +180,7 @@ namespace OpenRA.Mods.RA.Effects
|
||||
if (ticks <= info.Arm)
|
||||
return;
|
||||
|
||||
args.Weapon.Impact(pos, args.SourceActor, args.FirepowerModifier);
|
||||
args.Weapon.Impact(pos, args.SourceActor, args.DamageModifiers);
|
||||
}
|
||||
|
||||
public IEnumerable<IRenderable> Render(WorldRenderer wr)
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace OpenRA.Mods.RA.Effects
|
||||
{
|
||||
world.AddFrameEndTask(w => w.Remove(this));
|
||||
var weapon = world.Map.Rules.Weapons[this.weapon.ToLowerInvariant()];
|
||||
weapon.Impact(pos, firedBy.PlayerActor, 1f);
|
||||
weapon.Impact(pos, firedBy.PlayerActor, Enumerable.Empty<int>());
|
||||
world.WorldActor.Trait<ScreenShaker>().AddEffect(20, pos, 5);
|
||||
|
||||
foreach (var a in world.ActorsWithTrait<NukePaletteEffect>())
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace OpenRA.Mods.RA.Effects
|
||||
if (!doneDamage)
|
||||
{
|
||||
var pos = Args.GuidedTarget.IsValidFor(Args.SourceActor) ? Args.GuidedTarget.CenterPosition : Args.PassiveTarget;
|
||||
Args.Weapon.Impact(pos, Args.SourceActor, Args.FirepowerModifier);
|
||||
Args.Weapon.Impact(pos, Args.SourceActor, Args.DamageModifiers);
|
||||
doneDamage = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace OpenRA.Mods.RA
|
||||
if (weapon.Report != null && weapon.Report.Any())
|
||||
Sound.Play(weapon.Report.Random(e.Attacker.World.SharedRandom), self.CenterPosition);
|
||||
|
||||
weapon.Impact(self.CenterPosition, e.Attacker, 1f);
|
||||
weapon.Impact(self.CenterPosition, e.Attacker, Enumerable.Empty<int>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using OpenRA.GameRules;
|
||||
using OpenRA.Mods.RA.Activities;
|
||||
using OpenRA.Mods.RA.Move;
|
||||
@@ -71,7 +72,7 @@ namespace OpenRA.Mods.RA
|
||||
if (info.ThumpDamageWeapon != null)
|
||||
{
|
||||
var weapon = self.World.Map.Rules.Weapons[info.ThumpDamageWeapon.ToLowerInvariant()];
|
||||
weapon.Impact(self.CenterPosition, self, 1f);
|
||||
weapon.Impact(self.CenterPosition, self, Enumerable.Empty<int>());
|
||||
}
|
||||
screenShaker.AddEffect(info.ThumpShakeTime, self.CenterPosition, info.ThumpShakeIntensity, info.ThumpShakeMultiplier);
|
||||
tick = 0;
|
||||
@@ -110,7 +111,7 @@ namespace OpenRA.Mods.RA
|
||||
if (info.DetonationWeapon != null)
|
||||
{
|
||||
var weapon = self.World.Map.Rules.Weapons[info.DetonationWeapon.ToLowerInvariant()];
|
||||
weapon.Impact(self.CenterPosition, self, 1f);
|
||||
weapon.Impact(self.CenterPosition, self, Enumerable.Empty<int>());
|
||||
}
|
||||
self.Kill(self);
|
||||
});
|
||||
|
||||
@@ -562,6 +562,9 @@
|
||||
<Compile Include="GainsStatUpgrades.cs" />
|
||||
<Compile Include="Player\Extensions.cs" />
|
||||
<Compile Include="ServerTraits\LobbySettingsNotification.cs" />
|
||||
<Compile Include="Warheads\HealthPercentageDamageWarhead.cs" />
|
||||
<Compile Include="Warheads\PerCellDamageWarhead.cs" />
|
||||
<Compile Include="Warheads\SpreadDamageWarhead.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\OpenRA.Game\OpenRA.Game.csproj">
|
||||
|
||||
@@ -34,11 +34,6 @@ namespace OpenRA.Mods.RA
|
||||
[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;
|
||||
@@ -79,8 +74,9 @@ namespace OpenRA.Mods.RA
|
||||
return false;
|
||||
}
|
||||
|
||||
public void DoImpact(WPos pos, Actor firedBy, float firepowerModifier)
|
||||
public override void DoImpact(Target target, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
var pos = target.CenterPosition;
|
||||
var world = firedBy.World;
|
||||
var targetTile = world.Map.CellContaining(pos);
|
||||
var isValid = IsValidImpact(pos, firedBy);
|
||||
|
||||
@@ -26,18 +26,13 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
// TODO: Allow maximum resource splatter to be defined. (Per tile, and in total).
|
||||
|
||||
public override void DoImpact(Target target, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
DoImpact(target.CenterPosition, firedBy, firepowerModifier);
|
||||
}
|
||||
|
||||
public void DoImpact(WPos pos, Actor firedBy, float firepowerModifier)
|
||||
public override void DoImpact(Target target, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
if (string.IsNullOrEmpty(AddsResourceType))
|
||||
return;
|
||||
|
||||
var world = firedBy.World;
|
||||
var targetTile = world.Map.CellContaining(pos);
|
||||
var targetTile = world.Map.CellContaining(target.CenterPosition);
|
||||
var resLayer = world.WorldActor.Trait<ResourceLayer>();
|
||||
|
||||
var minRange = (Size.Length > 1 && Size[1] > 0) ? Size[1] : 0;
|
||||
|
||||
@@ -23,15 +23,10 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
// TODO: Allow maximum resource removal to be defined. (Per tile, and in total).
|
||||
|
||||
public override void DoImpact(Target target, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
DoImpact(target.CenterPosition, firedBy, firepowerModifier);
|
||||
}
|
||||
|
||||
public void DoImpact(WPos pos, Actor firedBy, float firepowerModifier)
|
||||
public override void DoImpact(Target target, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
var world = firedBy.World;
|
||||
var targetTile = world.Map.CellContaining(pos);
|
||||
var targetTile = world.Map.CellContaining(target.CenterPosition);
|
||||
var resLayer = world.WorldActor.Trait<ResourceLayer>();
|
||||
|
||||
var minRange = (Size.Length > 1 && Size[1] > 0) ? Size[1] : 0;
|
||||
|
||||
48
OpenRA.Mods.RA/Warheads/HealthPercentageDamageWarhead.cs
Normal file
48
OpenRA.Mods.RA/Warheads/HealthPercentageDamageWarhead.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.GameRules;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
public class HealthPercentageDamageWarhead : DamageWarhead
|
||||
{
|
||||
[Desc("Size of the area. Damage will be applied to this area.", "If two spreads are defined, the area of effect is a ring, where the second value is the inner radius.")]
|
||||
public readonly WRange[] Spread = { new WRange(43) };
|
||||
|
||||
public override void DoImpact(WPos pos, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
var world = firedBy.World;
|
||||
var range = Spread[0];
|
||||
var hitActors = world.FindActorsInCircle(pos, range);
|
||||
if (Spread.Length > 1 && Spread[1].Range > 0)
|
||||
hitActors = hitActors.Except(world.FindActorsInCircle(pos, Spread[1]));
|
||||
|
||||
foreach (var victim in hitActors)
|
||||
DoImpact(victim, firedBy, damageModifiers);
|
||||
}
|
||||
|
||||
public override void DoImpact(Actor victim, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
var healthInfo = victim.Info.Traits.GetOrDefault<HealthInfo>();
|
||||
if (healthInfo == null)
|
||||
return;
|
||||
|
||||
// Damage is measured as a percentage of the target health
|
||||
var damage = Util.ApplyPercentageModifiers(healthInfo.HP, damageModifiers.Append(Damage, DamageVersus(victim.Info)));
|
||||
victim.InflictDamage(firedBy, damage, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,15 +25,10 @@ namespace OpenRA.Mods.RA
|
||||
[Desc("Type of smudge to apply to terrain.")]
|
||||
public readonly string[] SmudgeType = { };
|
||||
|
||||
public override void DoImpact(Target target, Actor firedBy, float firepowerModifier)
|
||||
{
|
||||
DoImpact(target.CenterPosition, firedBy, firepowerModifier);
|
||||
}
|
||||
|
||||
public void DoImpact(WPos pos, Actor firedBy, float firepowerModifier)
|
||||
public override void DoImpact(Target target, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
var world = firedBy.World;
|
||||
var targetTile = world.Map.CellContaining(pos);
|
||||
var targetTile = world.Map.CellContaining(target.CenterPosition);
|
||||
var smudgeLayers = world.WorldActor.TraitsImplementing<SmudgeLayer>().ToDictionary(x => x.Info.Type);
|
||||
|
||||
var minRange = (Size.Length > 1 && Size[1] > 0) ? Size[1] : 0;
|
||||
|
||||
37
OpenRA.Mods.RA/Warheads/PerCellDamageWarhead.cs
Normal file
37
OpenRA.Mods.RA/Warheads/PerCellDamageWarhead.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.GameRules;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
public class PerCellDamageWarhead : DamageWarhead
|
||||
{
|
||||
[Desc("Size of the area. Damage will be applied to this area.")]
|
||||
public readonly int[] Size = { 0, 0 };
|
||||
|
||||
public override void DoImpact(WPos pos, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
var world = firedBy.World;
|
||||
var targetTile = world.Map.CellContaining(pos);
|
||||
var minRange = (Size.Length > 1 && Size[1] > 0) ? Size[1] : 0;
|
||||
var affectedTiles = world.Map.FindTilesInAnnulus(targetTile, minRange, Size[0]);
|
||||
|
||||
foreach (var t in affectedTiles)
|
||||
foreach (var victim in world.ActorMap.GetUnitsAt(t))
|
||||
DoImpact(victim, firedBy, damageModifiers);
|
||||
}
|
||||
}
|
||||
}
|
||||
86
OpenRA.Mods.RA/Warheads/SpreadDamageWarhead.cs
Normal file
86
OpenRA.Mods.RA/Warheads/SpreadDamageWarhead.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||
* This file is part of OpenRA, which is free software. It is made
|
||||
* available to you under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation. For more information,
|
||||
* see COPYING.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Effects;
|
||||
using OpenRA.GameRules;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
public class SpreadDamageWarhead : DamageWarhead
|
||||
{
|
||||
[Desc("Range between falloff steps.")]
|
||||
public readonly WRange Spread = new WRange(43);
|
||||
|
||||
[Desc("Ranges at which each Falloff step is defined. Overrides Spread.")]
|
||||
public WRange[] Range = null;
|
||||
|
||||
[Desc("Damage percentage at each range step")]
|
||||
public readonly int[] Falloff = { 100, 37, 14, 5, 2, 1, 0 };
|
||||
|
||||
public void InitializeRange()
|
||||
{
|
||||
if (Range != null)
|
||||
{
|
||||
if (Range.Length != 1 && Range.Length != Falloff.Length)
|
||||
throw new InvalidOperationException("Number of range values must be 1 or equal to the number of Falloff values.");
|
||||
|
||||
for (var i = 0; i < Range.Length - 1; i++)
|
||||
if (Range[i] > Range[i + 1])
|
||||
throw new InvalidOperationException("Range values must be specified in an increasing order.");
|
||||
}
|
||||
else
|
||||
Range = Exts.MakeArray(Falloff.Length, i => i * Spread);
|
||||
}
|
||||
|
||||
public override void DoImpact(WPos pos, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||
{
|
||||
if (Range == null)
|
||||
InitializeRange();
|
||||
|
||||
var world = firedBy.World;
|
||||
var hitActors = world.FindActorsInCircle(pos, Range[Range.Length - 1]);
|
||||
|
||||
foreach (var victim in hitActors)
|
||||
{
|
||||
if (!IsValidAgainst(victim, firedBy))
|
||||
continue;
|
||||
|
||||
var localModifiers = damageModifiers;
|
||||
var healthInfo = victim.Info.Traits.GetOrDefault<HealthInfo>();
|
||||
if (healthInfo != null)
|
||||
{
|
||||
var distance = Math.Max(0, (victim.CenterPosition - pos).Length - healthInfo.Radius.Range);
|
||||
localModifiers = localModifiers.Append(GetDamageFalloff(distance));
|
||||
}
|
||||
|
||||
DoImpact(victim, firedBy, localModifiers);
|
||||
}
|
||||
}
|
||||
|
||||
int GetDamageFalloff(int distance)
|
||||
{
|
||||
var inner = Range[0].Range;
|
||||
for (var i = 1; i < Range.Length; i++)
|
||||
{
|
||||
var outer = Range[i].Range;
|
||||
if (outer > distance)
|
||||
return int2.Lerp(Falloff[i - 1], Falloff[i], distance - inner, outer - inner);
|
||||
|
||||
inner = outer;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,7 @@ namespace OpenRA.Utility
|
||||
static void ConvertFloatArrayToPercentArray(ref string input)
|
||||
{
|
||||
input = string.Join(", ", input.Split(',')
|
||||
.Select(s => ((int)(float.Parse(s) * 100)).ToString()));
|
||||
.Select(s => ((int)Math.Round(FieldLoader.GetValue<float>("(float value)", s) * 100)).ToString()));
|
||||
}
|
||||
|
||||
static void ConvertPxToRange(ref string input)
|
||||
@@ -755,6 +755,13 @@ namespace OpenRA.Utility
|
||||
}
|
||||
}
|
||||
|
||||
if (engineVersion < 20140821)
|
||||
{
|
||||
// Converted versus definitions to integers
|
||||
if (depth == 3 && parentKey == "Versus")
|
||||
ConvertFloatArrayToPercentArray(ref node.Value.Value);
|
||||
}
|
||||
|
||||
UpgradeWeaponRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -541,7 +541,7 @@ Weapons:
|
||||
BoatMissile:
|
||||
Warhead: SpreadDamage
|
||||
Versus:
|
||||
Heavy: 50%
|
||||
Heavy: 50
|
||||
Damage: 50
|
||||
|
||||
Voices:
|
||||
|
||||
@@ -919,7 +919,7 @@ Weapons:
|
||||
Rockets:
|
||||
Warhead: SpreadDamage
|
||||
Versus:
|
||||
None: 20%
|
||||
None: 20
|
||||
|
||||
Voices:
|
||||
|
||||
|
||||
@@ -26,13 +26,14 @@ HeliExplode:
|
||||
UnitExplode:
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 426
|
||||
Damage: 500
|
||||
Damage: 50
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: poof
|
||||
ImpactSound: xplobig6.aud
|
||||
@@ -43,10 +44,10 @@ UnitExplodeSmall:
|
||||
Damage: 40
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: big_frag
|
||||
ImpactSound: xplobig4.aud
|
||||
@@ -57,10 +58,10 @@ GrenadierExplode:
|
||||
Damage: 10
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: poof
|
||||
ImpactSound: xplosml2.aud
|
||||
@@ -70,28 +71,30 @@ Atomic:
|
||||
Report: nukemisl.aud
|
||||
Warhead@1Dam_impact: SpreadDamage
|
||||
Spread: 1c0
|
||||
Damage: 1500
|
||||
Damage: 150
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 50%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 60
|
||||
Heavy: 50
|
||||
Warhead@2Eff_impact: CreateEffect
|
||||
Explosion: 6
|
||||
ImpactSound: nukexplo.aud
|
||||
Warhead@3Dam_areanukea: SpreadDamage
|
||||
Spread: 2c512
|
||||
Damage: 1000
|
||||
Damage: 100
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
Delay: 3
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 50%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 60
|
||||
Heavy: 50
|
||||
Warhead@4Res_areanukea: DestroyResource
|
||||
Size: 3
|
||||
Delay: 3
|
||||
@@ -104,15 +107,16 @@ Atomic:
|
||||
Delay: 3
|
||||
Warhead@7Dam_areanukeb: SpreadDamage
|
||||
Spread: 3c768
|
||||
Damage: 500
|
||||
Damage: 50
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
Delay: 6
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 50%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 60
|
||||
Heavy: 50
|
||||
Warhead@8Res_areanukeb: DestroyResource
|
||||
Size: 4
|
||||
Delay: 6
|
||||
@@ -122,15 +126,16 @@ Atomic:
|
||||
Delay: 6
|
||||
Warhead@10Dam_areanukec: SpreadDamage
|
||||
Spread: 5c0
|
||||
Damage: 200
|
||||
Damage: 20
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
Delay: 9
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 50%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 60
|
||||
Heavy: 50
|
||||
Warhead@11Res_areanukec: DestroyResource
|
||||
Size: 5
|
||||
Delay: 9
|
||||
@@ -143,7 +148,8 @@ IonCannon:
|
||||
ValidTargets: Ground, Air
|
||||
Warhead@1Dam_impact: SpreadDamage
|
||||
Spread: 1c0
|
||||
Damage: 1000
|
||||
Damage: 100
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
ValidTargets: Ground, Air
|
||||
Warhead@2Res_impact: DestroyResource
|
||||
@@ -188,10 +194,10 @@ HighV:
|
||||
Damage: 30
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 70%
|
||||
Heavy: 35%
|
||||
None: 100
|
||||
Wood: 50
|
||||
Light: 70
|
||||
Heavy: 35
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -211,10 +217,10 @@ HeliAGGun:
|
||||
InfDeath: 2
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 75%
|
||||
Heavy: 25%
|
||||
None: 100
|
||||
Wood: 50
|
||||
Light: 75
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -234,10 +240,10 @@ HeliAAGun:
|
||||
InfDeath: 2
|
||||
ValidTargets: Air
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 50%
|
||||
Heavy: 25%
|
||||
None: 100
|
||||
Wood: 50
|
||||
Light: 50
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -254,10 +260,10 @@ Pistol:
|
||||
InfDeath: 2
|
||||
InvalidTargets: Wall
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 50%
|
||||
Heavy: 25%
|
||||
None: 100
|
||||
Wood: 50
|
||||
Light: 50
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piff
|
||||
|
||||
@@ -274,10 +280,10 @@ M16:
|
||||
InfDeath: 2
|
||||
InvalidTargets: Wall
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 25%
|
||||
Light: 30%
|
||||
Heavy: 10%
|
||||
None: 100
|
||||
Wood: 25
|
||||
Light: 30
|
||||
Heavy: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piff
|
||||
|
||||
@@ -302,11 +308,11 @@ Rockets:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 85%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
Concrete: 25%
|
||||
None: 50
|
||||
Wood: 85
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Concrete: 25
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -336,11 +342,11 @@ BikeRockets:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 75%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
None: 25
|
||||
Wood: 75
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Concrete: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -370,10 +376,10 @@ OrcaAGMissiles:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 75%
|
||||
None: 50
|
||||
Wood: 100
|
||||
Light: 100
|
||||
Heavy: 75
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -403,8 +409,8 @@ OrcaAAMissiles:
|
||||
InfDeath: 4
|
||||
ValidTargets: Air
|
||||
Versus:
|
||||
Light: 75%
|
||||
Heavy: 50%
|
||||
Light: 75
|
||||
Heavy: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -424,10 +430,10 @@ Flamethrower:
|
||||
InfDeath: 5
|
||||
InvalidTargets: Wall
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 20%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 100
|
||||
Heavy: 20
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Scorch
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -449,10 +455,10 @@ BigFlamer:
|
||||
InfDeath: 5
|
||||
InvalidTargets: Wall
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 67%
|
||||
Heavy: 25%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 67
|
||||
Heavy: 25
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Scorch
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -470,10 +476,10 @@ Chemspray:
|
||||
Damage: 80
|
||||
InfDeath: 6
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 35%
|
||||
Light: 75%
|
||||
Heavy: 50%
|
||||
None: 100
|
||||
Wood: 35
|
||||
Light: 75
|
||||
Heavy: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Scorch
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -495,10 +501,10 @@ Grenade:
|
||||
Damage: 50
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 75%
|
||||
Heavy: 35%
|
||||
None: 100
|
||||
Wood: 50
|
||||
Light: 75
|
||||
Heavy: 35
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -517,11 +523,11 @@ Grenade:
|
||||
Damage: 25
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 75%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
None: 25
|
||||
Wood: 75
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Concrete: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -540,10 +546,10 @@ Grenade:
|
||||
Damage: 30
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
None: 30
|
||||
Wood: 75
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -562,11 +568,11 @@ Grenade:
|
||||
Damage: 40
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
Concrete: 50%
|
||||
None: 25
|
||||
Wood: 100
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Concrete: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -587,11 +593,11 @@ Grenade:
|
||||
Damage: 40
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
Concrete: 100%
|
||||
None: 25
|
||||
Wood: 100
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Concrete: 100
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -610,10 +616,10 @@ TurretGun:
|
||||
Damage: 40
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 25%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
None: 20
|
||||
Wood: 25
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -643,10 +649,10 @@ MammothMissiles:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 75%
|
||||
Light: 100%
|
||||
Heavy: 50%
|
||||
None: 50
|
||||
Wood: 75
|
||||
Light: 100
|
||||
Heavy: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -683,10 +689,10 @@ MammothMissiles:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 35%
|
||||
Wood: 60%
|
||||
Light: 100%
|
||||
Heavy: 50%
|
||||
None: 35
|
||||
Wood: 60
|
||||
Light: 100
|
||||
Heavy: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -716,10 +722,10 @@ MammothMissiles:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 75%
|
||||
Light: 100%
|
||||
Heavy: 90%
|
||||
None: 25
|
||||
Wood: 75
|
||||
Light: 100
|
||||
Heavy: 90
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -743,10 +749,10 @@ ArtilleryShell:
|
||||
Damage: 150
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 80%
|
||||
Light: 75%
|
||||
Heavy: 50%
|
||||
None: 100
|
||||
Wood: 80
|
||||
Light: 75
|
||||
Heavy: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -767,11 +773,11 @@ MachineGun:
|
||||
InfDeath: 2
|
||||
InvalidTargets: Wall
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 20%
|
||||
Light: 50%
|
||||
Heavy: 20%
|
||||
Concrete: 10%
|
||||
None: 100
|
||||
Wood: 20
|
||||
Light: 50
|
||||
Heavy: 20
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -796,10 +802,10 @@ BoatMissile:
|
||||
Damage: 60
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -832,10 +838,10 @@ TowerMissle:
|
||||
InfDeath: 3
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 25%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
None: 50
|
||||
Wood: 25
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -855,10 +861,10 @@ Vulcan:
|
||||
InfDeath: 2
|
||||
ValidTargets: Ground, Water
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 25%
|
||||
Light: 100%
|
||||
Heavy: 35%
|
||||
None: 100
|
||||
Wood: 25
|
||||
Light: 100
|
||||
Heavy: 35
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -872,14 +878,15 @@ Napalm:
|
||||
Image: BOMBLET
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 341
|
||||
Damage: 300
|
||||
Damage: 30
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
ValidTargets: Ground, Water
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 80%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 100
|
||||
Heavy: 80
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Scorch
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -889,13 +896,14 @@ Napalm:
|
||||
Napalm.Crate:
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 170
|
||||
Damage: 500
|
||||
Damage: 50
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 100
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Scorch
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -915,7 +923,7 @@ Laser:
|
||||
Damage: 360
|
||||
InfDeath: 5
|
||||
Versus:
|
||||
Wood: 50%
|
||||
Wood: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Scorch
|
||||
|
||||
@@ -937,10 +945,10 @@ SAMMissile:
|
||||
Spread: 682
|
||||
ValidTargets: Air
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 75%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 100
|
||||
Heavy: 75
|
||||
InfDeath: 4
|
||||
Damage: 30
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
@@ -968,10 +976,10 @@ HonestJohn:
|
||||
Damage: 100
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -992,10 +1000,10 @@ TiberiumExplosion:
|
||||
Damage: 10
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Res: CreateResource
|
||||
AddsResourceType: Tiberium
|
||||
Size: 1,1
|
||||
@@ -1022,10 +1030,10 @@ APCGun:
|
||||
Damage: 15
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 50%
|
||||
Light: 100%
|
||||
Heavy: 50%
|
||||
None: 50
|
||||
Wood: 50
|
||||
Light: 100
|
||||
Heavy: 50
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: small_poof
|
||||
|
||||
@@ -1042,7 +1050,7 @@ APCGun.AA:
|
||||
Damage: 25
|
||||
ValidTargets: Air
|
||||
Versus:
|
||||
Heavy: 50%
|
||||
Heavy: 50
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: small_frag
|
||||
|
||||
@@ -1065,10 +1073,10 @@ Patriot:
|
||||
Spread: 682
|
||||
ValidTargets: Air
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 75%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 100
|
||||
Heavy: 75
|
||||
InfDeath: 4
|
||||
Damage: 32
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
@@ -1087,11 +1095,11 @@ Tail:
|
||||
Damage: 180
|
||||
InfDeath: 1
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 10%
|
||||
Light: 30%
|
||||
Heavy: 10%
|
||||
Concrete: 10%
|
||||
None: 90
|
||||
Wood: 10
|
||||
Light: 30
|
||||
Heavy: 10
|
||||
Concrete: 10
|
||||
|
||||
Horn:
|
||||
ReloadDelay: 20
|
||||
@@ -1103,11 +1111,11 @@ Horn:
|
||||
Damage: 120
|
||||
InfDeath: 1
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 10%
|
||||
Light: 30%
|
||||
Heavy: 10%
|
||||
Concrete: 10%
|
||||
None: 90
|
||||
Wood: 10
|
||||
Light: 30
|
||||
Heavy: 10
|
||||
Concrete: 10
|
||||
|
||||
Teeth:
|
||||
ReloadDelay: 30
|
||||
@@ -1119,11 +1127,11 @@ Teeth:
|
||||
Damage: 180
|
||||
InfDeath: 1
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 10%
|
||||
Light: 30%
|
||||
Heavy: 10%
|
||||
Concrete: 10%
|
||||
None: 90
|
||||
Wood: 10
|
||||
Light: 30
|
||||
Heavy: 10
|
||||
Concrete: 10
|
||||
|
||||
Claw:
|
||||
ReloadDelay: 10
|
||||
@@ -1135,11 +1143,11 @@ Claw:
|
||||
Damage: 60
|
||||
InfDeath: 1
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 10%
|
||||
Light: 30%
|
||||
Heavy: 10%
|
||||
Concrete: 10%
|
||||
None: 90
|
||||
Wood: 10
|
||||
Light: 30
|
||||
Heavy: 10
|
||||
Concrete: 10
|
||||
|
||||
Demolish:
|
||||
Warhead@1Dam: SpreadDamage
|
||||
|
||||
@@ -13,10 +13,10 @@ LMG:
|
||||
Damage: 15
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
Wood: 25%
|
||||
Light: 40%
|
||||
Heavy: 10%
|
||||
Concrete: 20%
|
||||
Wood: 25
|
||||
Light: 40
|
||||
Heavy: 10
|
||||
Concrete: 20
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -39,11 +39,11 @@ Bazooka:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 10%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 90%
|
||||
Concrete: 40%
|
||||
None: 10
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 90
|
||||
Concrete: 40
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -65,11 +65,11 @@ Sniper:
|
||||
Damage: 60
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 0%
|
||||
Light: 1%
|
||||
Heavy: 0%
|
||||
Concrete: 0%
|
||||
None: 100
|
||||
Wood: 0
|
||||
Light: 1
|
||||
Heavy: 0
|
||||
Concrete: 0
|
||||
|
||||
Vulcan:
|
||||
ReloadDelay: 30
|
||||
@@ -88,10 +88,10 @@ Vulcan:
|
||||
InfDeath: 2
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
Wood: 0%
|
||||
Light: 60%
|
||||
Heavy: 10%
|
||||
Concrete: 0%
|
||||
Wood: 0
|
||||
Light: 60
|
||||
Heavy: 10
|
||||
Concrete: 0
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -114,11 +114,11 @@ Slung:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 0%
|
||||
Wood: 75%
|
||||
Light: 40%
|
||||
Heavy: 90%
|
||||
Concrete: 50%
|
||||
None: 0
|
||||
Wood: 75
|
||||
Light: 40
|
||||
Heavy: 90
|
||||
Concrete: 50
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: small_explosion
|
||||
ImpactSound: EXPLLG5.WAV
|
||||
@@ -140,10 +140,10 @@ HMG:
|
||||
Damage: 30
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
Wood: 15%
|
||||
Light: 45%
|
||||
Heavy: 20%
|
||||
Concrete: 20%
|
||||
Wood: 15
|
||||
Light: 45
|
||||
Heavy: 20
|
||||
Concrete: 20
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -164,10 +164,10 @@ HMGo:
|
||||
Damage: 40
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
Wood: 15%
|
||||
Light: 45%
|
||||
Heavy: 25%
|
||||
Concrete: 20%
|
||||
Wood: 15
|
||||
Light: 45
|
||||
Heavy: 25
|
||||
Concrete: 20
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -191,11 +191,11 @@ QuadRockets:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 35%
|
||||
Wood: 45%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
Concrete: 35%
|
||||
None: 35
|
||||
Wood: 45
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Concrete: 35
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -217,10 +217,10 @@ TurretGun:
|
||||
Damage: 55
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 75%
|
||||
Light: 100%
|
||||
Concrete: 65%
|
||||
None: 50
|
||||
Wood: 75
|
||||
Light: 100
|
||||
Concrete: 65
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -251,11 +251,11 @@ TowerMissile:
|
||||
InfDeath: 3
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 45%
|
||||
Light: 100%
|
||||
Heavy: 50%
|
||||
Concrete: 35%
|
||||
None: 50
|
||||
Wood: 45
|
||||
Light: 100
|
||||
Heavy: 50
|
||||
Concrete: 35
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -275,10 +275,10 @@ TowerMissile:
|
||||
Damage: 40
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 50%
|
||||
Light: 100%
|
||||
Concrete: 50%
|
||||
None: 50
|
||||
Wood: 50
|
||||
Light: 100
|
||||
Concrete: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -298,10 +298,10 @@ TowerMissile:
|
||||
Damage: 40
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 50%
|
||||
Light: 100%
|
||||
Concrete: 50%
|
||||
None: 50
|
||||
Wood: 50
|
||||
Light: 100
|
||||
Concrete: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -320,11 +320,11 @@ DevBullet:
|
||||
Damage: 100
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
Concrete: 80%
|
||||
None: 100
|
||||
Wood: 50
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Concrete: 80
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -354,11 +354,11 @@ DevBullet:
|
||||
InfDeath: 4
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 50%
|
||||
Light: 100%
|
||||
Heavy: 50%
|
||||
Concrete: 80%
|
||||
None: 20
|
||||
Wood: 50
|
||||
Light: 100
|
||||
Heavy: 50
|
||||
Concrete: 80
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -383,9 +383,9 @@ FakeMissile:
|
||||
Spread: 96
|
||||
Damage: 10
|
||||
Versus:
|
||||
None: 0%
|
||||
Wood: 0%
|
||||
Concrete: 0%
|
||||
None: 0
|
||||
Wood: 0
|
||||
Concrete: 0
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -410,11 +410,11 @@ FakeMissile:
|
||||
Damage: 100
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 80%
|
||||
Light: 75%
|
||||
Heavy: 50%
|
||||
Concrete: 100%
|
||||
None: 100
|
||||
Wood: 80
|
||||
Light: 75
|
||||
Heavy: 50
|
||||
Concrete: 100
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -435,10 +435,10 @@ Sound:
|
||||
Damage: 150
|
||||
InfDeath: 6
|
||||
Versus:
|
||||
None: 60%
|
||||
Wood: 85%
|
||||
Light: 80%
|
||||
Concrete: 75%
|
||||
None: 60
|
||||
Wood: 85
|
||||
Light: 80
|
||||
Concrete: 75
|
||||
|
||||
ChainGun:
|
||||
ReloadDelay: 10
|
||||
@@ -453,10 +453,10 @@ ChainGun:
|
||||
Damage: 20
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
Wood: 50%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 25%
|
||||
Wood: 50
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Concrete: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
|
||||
@@ -471,10 +471,10 @@ Heal:
|
||||
Damage: -50
|
||||
InfDeath: 1
|
||||
Versus:
|
||||
Wood: 0%
|
||||
Light: 0%
|
||||
Heavy: 0%
|
||||
Concrete: 0%
|
||||
Wood: 0
|
||||
Light: 0
|
||||
Heavy: 0
|
||||
Concrete: 0
|
||||
|
||||
WormJaw:
|
||||
ReloadDelay: 10
|
||||
@@ -484,8 +484,8 @@ WormJaw:
|
||||
Spread: 160
|
||||
Damage: 100
|
||||
Versus:
|
||||
Wood: 0%
|
||||
Concrete: 0%
|
||||
Wood: 0
|
||||
Concrete: 0
|
||||
|
||||
ParaBomb:
|
||||
ReloadDelay: 10
|
||||
@@ -495,13 +495,14 @@ ParaBomb:
|
||||
Image: BOMBS
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 192
|
||||
Damage: 500
|
||||
Damage: 50
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Concrete: 50%
|
||||
None: 30
|
||||
Wood: 75
|
||||
Light: 75
|
||||
Concrete: 50
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -515,14 +516,15 @@ Napalm:
|
||||
Image: BOMBS
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 640
|
||||
Damage: 300
|
||||
Damage: 30
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 100%
|
||||
Light: 30%
|
||||
Heavy: 20%
|
||||
Concrete: 70%
|
||||
None: 20
|
||||
Wood: 100
|
||||
Light: 30
|
||||
Heavy: 20
|
||||
Concrete: 70
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Crater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -544,14 +546,15 @@ Demolish:
|
||||
Atomic:
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 2c0
|
||||
Damage: 1800
|
||||
Damage: 180
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 50%
|
||||
Concrete: 50%
|
||||
None: 100
|
||||
Wood: 100
|
||||
Light: 100
|
||||
Heavy: 50
|
||||
Concrete: 50
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: nuke
|
||||
ImpactSound: EXPLLG2.WAV
|
||||
@@ -559,14 +562,15 @@ Atomic:
|
||||
CrateNuke:
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 1c576
|
||||
Damage: 800
|
||||
Damage: 80
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 75%
|
||||
Light: 25%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
None: 20
|
||||
Wood: 75
|
||||
Light: 25
|
||||
Heavy: 25
|
||||
Concrete: 50
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: nuke
|
||||
ImpactSound: EXPLLG2.WAV
|
||||
@@ -574,13 +578,14 @@ CrateNuke:
|
||||
CrateExplosion:
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 320
|
||||
Damage: 400
|
||||
Damage: 40
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: building
|
||||
ImpactSound: EXPLSML4.WAV
|
||||
@@ -588,13 +593,14 @@ CrateExplosion:
|
||||
UnitExplode:
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 320
|
||||
Damage: 500
|
||||
Damage: 50
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: building
|
||||
ImpactSound: EXPLMD1.WAV
|
||||
@@ -605,10 +611,10 @@ UnitExplodeSmall:
|
||||
Damage: 60
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: self_destruct
|
||||
ImpactSound: EXPLHG1.WAV, EXPLLG1.WAV, EXPLMD1.WAV, EXPLSML4.WAV
|
||||
@@ -619,10 +625,10 @@ UnitExplodeTiny:
|
||||
Damage: 30
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: med_explosion
|
||||
ImpactSound: EXPLMD2.WAV, EXPLSML1.WAV, EXPLSML2.WAV, EXPLSML3.WAV
|
||||
@@ -633,10 +639,10 @@ UnitExplodeScale:
|
||||
Damage: 90
|
||||
InfDeath: 4
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: building
|
||||
ImpactSound: EXPLLG2.WAV, EXPLLG3.WAV, EXPLLG5.WAV
|
||||
@@ -656,10 +662,10 @@ Grenade:
|
||||
Damage: 60
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 100%
|
||||
Light: 25%
|
||||
Heavy: 5%
|
||||
None: 50
|
||||
Wood: 100
|
||||
Light: 25
|
||||
Heavy: 5
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -686,10 +692,10 @@ Shrapnel:
|
||||
Damage: 60
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 100%
|
||||
Light: 25%
|
||||
Heavy: 5%
|
||||
None: 50
|
||||
Wood: 100
|
||||
Light: 25
|
||||
Heavy: 5
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: SandCrater
|
||||
Warhead@3Eff: CreateEffect
|
||||
@@ -702,10 +708,10 @@ SpiceExplosion:
|
||||
Damage: 10
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Res: CreateResource
|
||||
AddsResourceType: Spice
|
||||
Size: 2,2
|
||||
|
||||
@@ -316,10 +316,10 @@ Weapons:
|
||||
Warhead: SpreadDamage
|
||||
Spread: 128
|
||||
Versus:
|
||||
None: 60%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 60
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
InfDeath: 2
|
||||
Damage: 250
|
||||
Warhead@1Eff: CreateEffect
|
||||
@@ -345,9 +345,9 @@ Weapons:
|
||||
Warhead: SpreadDamage
|
||||
Spread: 426
|
||||
Versus:
|
||||
None: 40%
|
||||
Light: 30%
|
||||
Heavy: 30%
|
||||
None: 40
|
||||
Light: 30
|
||||
Heavy: 30
|
||||
InfDeath: blownaway
|
||||
Damage: 400
|
||||
Warhead@1Eff: CreateEffect
|
||||
|
||||
@@ -774,10 +774,10 @@ Weapons:
|
||||
Warhead: SpreadDamage
|
||||
Spread: 256
|
||||
Versus:
|
||||
None: 75%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
Concrete: 100%
|
||||
None: 75
|
||||
Wood: 75
|
||||
Light: 75
|
||||
Concrete: 100
|
||||
InfDeath: 4
|
||||
Damage: 150
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
@@ -807,11 +807,11 @@ Weapons:
|
||||
Spread: 640
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 125%
|
||||
Wood: 110%
|
||||
Light: 110%
|
||||
Heavy: 100%
|
||||
Concrete: 200%
|
||||
None: 125
|
||||
Wood: 110
|
||||
Light: 110
|
||||
Heavy: 100
|
||||
Concrete: 200
|
||||
InfDeath: 3
|
||||
Damage: 250
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
@@ -836,11 +836,11 @@ Weapons:
|
||||
Spread: 341
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 170%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
Concrete: 100%
|
||||
None: 90
|
||||
Wood: 170
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Concrete: 100
|
||||
InfDeath: 4
|
||||
Damage: 15
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
@@ -858,10 +858,10 @@ Weapons:
|
||||
Warhead: SpreadDamage
|
||||
Spread: 426
|
||||
Versus:
|
||||
None: 125%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Concrete: 25%
|
||||
None: 125
|
||||
Wood: 100
|
||||
Light: 60
|
||||
Concrete: 25
|
||||
InfDeath: 5
|
||||
Damage: 200
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
@@ -887,11 +887,11 @@ Weapons:
|
||||
Warhead: SpreadDamage
|
||||
Spread: 426
|
||||
Versus:
|
||||
None: 80%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 75%
|
||||
Concrete: 35%
|
||||
None: 80
|
||||
Wood: 100
|
||||
Light: 60
|
||||
Heavy: 75
|
||||
Concrete: 35
|
||||
InfDeath: 5
|
||||
Damage: 10
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
@@ -912,11 +912,11 @@ Weapons:
|
||||
Spread: 213
|
||||
ValidTargets: Air, Ground
|
||||
Versus:
|
||||
None: 35%
|
||||
Wood: 30%
|
||||
Light: 30%
|
||||
Heavy: 40%
|
||||
Concrete: 30%
|
||||
None: 35
|
||||
Wood: 30
|
||||
Light: 30
|
||||
Heavy: 40
|
||||
Concrete: 30
|
||||
Damage: 25
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
SmudgeType: Scorch
|
||||
@@ -940,10 +940,10 @@ Weapons:
|
||||
Warhead: SpreadDamage
|
||||
Spread: 853
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 90%
|
||||
Light: 80%
|
||||
Heavy: 70%
|
||||
None: 100
|
||||
Wood: 90
|
||||
Light: 80
|
||||
Heavy: 70
|
||||
InfDeath: 3
|
||||
Damage: 500
|
||||
Warhead@2Smu: LeaveSmudge
|
||||
@@ -962,10 +962,10 @@ Weapons:
|
||||
Warhead: SpreadDamage
|
||||
Spread: 128
|
||||
Versus:
|
||||
Wood: 0%
|
||||
Light: 0%
|
||||
Heavy: 50%
|
||||
Concrete: 0%
|
||||
Wood: 0
|
||||
Light: 0
|
||||
Heavy: 50
|
||||
Concrete: 0
|
||||
InfDeath: 2
|
||||
Damage: 150
|
||||
Warhead@2Eff: CreateEffect
|
||||
|
||||
@@ -1080,10 +1080,10 @@ Weapons:
|
||||
Damage: 250
|
||||
Size: 4
|
||||
Versus:
|
||||
None: 90%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
None: 90
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Concrete: 50
|
||||
Delay: 12
|
||||
InfDeath: 4
|
||||
Warhead@areanuke2Smu: LeaveSmudge
|
||||
@@ -1101,10 +1101,10 @@ Weapons:
|
||||
Damage: 250
|
||||
Size: 3
|
||||
Versus:
|
||||
None: 90%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
None: 90
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Concrete: 50
|
||||
Delay: 24
|
||||
InfDeath: 4
|
||||
Warhead@areanuke3Smu: LeaveSmudge
|
||||
@@ -1121,10 +1121,10 @@ Weapons:
|
||||
Warhead@areanuke4: PerCellDamage
|
||||
Damage: 250
|
||||
Versus:
|
||||
None: 90%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
None: 90
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Concrete: 50
|
||||
Delay: 36
|
||||
InfDeath: 4
|
||||
Warhead@areanuke4Smu: LeaveSmudge
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,14 @@
|
||||
UnitExplode:
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 426
|
||||
Damage: 500
|
||||
Damage: 50
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: large_twlt
|
||||
ImpactSound: expnew09.aud
|
||||
@@ -18,10 +19,10 @@ UnitExplodeSmall:
|
||||
Damage: 40
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: medium_brnl
|
||||
ImpactSound: expnew13.aud
|
||||
@@ -38,10 +39,10 @@ Minigun:
|
||||
InfDeath: 1
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -65,11 +66,11 @@ Grenade:
|
||||
InfDeath: 3
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 85%
|
||||
Light: 70%
|
||||
Heavy: 35%
|
||||
Concrete: 28%
|
||||
None: 100
|
||||
Wood: 85
|
||||
Light: 70
|
||||
Heavy: 35
|
||||
Concrete: 28
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: large_grey_explosion
|
||||
ImpactSound: expnew13.aud
|
||||
@@ -100,11 +101,11 @@ Bazooka:
|
||||
InfDeath: 2
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 60%
|
||||
None: 25
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Concrete: 60
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: small_clsn
|
||||
ImpactSound: expnew12.aud
|
||||
@@ -139,11 +140,11 @@ MultiCluster:
|
||||
InfDeath: 3
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 60%
|
||||
None: 25
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Concrete: 60
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: large_explosion
|
||||
ImpactSound: expnew09.aud
|
||||
@@ -165,10 +166,10 @@ Heal:
|
||||
InfDeath: 1
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
Wood: 0%
|
||||
Light: 0%
|
||||
Heavy: 0%
|
||||
Concrete: 0%
|
||||
Wood: 0
|
||||
Light: 0
|
||||
Heavy: 0
|
||||
Concrete: 0
|
||||
|
||||
Sniper:
|
||||
ReloadDelay: 60
|
||||
@@ -182,11 +183,11 @@ Sniper:
|
||||
InfDeath: 1
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 0%
|
||||
Light: 0%
|
||||
Heavy: 0%
|
||||
Concrete: 0%
|
||||
None: 100
|
||||
Wood: 0
|
||||
Light: 0
|
||||
Heavy: 0
|
||||
Concrete: 0
|
||||
|
||||
M1Carbine:
|
||||
ReloadDelay: 20
|
||||
@@ -200,10 +201,10 @@ M1Carbine:
|
||||
InfDeath: 1
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -226,11 +227,11 @@ LtRail:
|
||||
InfDeath: 2
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 130%
|
||||
Light: 150%
|
||||
Heavy: 110%
|
||||
Concrete: 5%
|
||||
None: 100
|
||||
Wood: 130
|
||||
Light: 150
|
||||
Heavy: 110
|
||||
Concrete: 5
|
||||
|
||||
CyCannon:
|
||||
ReloadDelay: 50
|
||||
@@ -249,11 +250,11 @@ CyCannon:
|
||||
ProneModifier: 100
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 50%
|
||||
Concrete: 40%
|
||||
None: 100
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 50
|
||||
Concrete: 40
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: large_bang
|
||||
ImpactSound: expnew12.aud
|
||||
@@ -276,10 +277,10 @@ Vulcan3:
|
||||
InfDeath: 1
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -300,11 +301,11 @@ Vulcan2:
|
||||
InfDeath: 1
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
None: 100
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -324,10 +325,10 @@ Vulcan:
|
||||
InfDeath: 1
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -352,10 +353,10 @@ FiendShard:
|
||||
InfDeath: 1
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@3EffWater: CreateEffect
|
||||
Explosion: small_watersplash
|
||||
ImpactSound: ssplash3.aud
|
||||
@@ -374,10 +375,10 @@ JumpCannon:
|
||||
InfDeath: 1
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -407,11 +408,11 @@ HoverMissile:
|
||||
InfDeath: 2
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 60%
|
||||
None: 25
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Concrete: 60
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: small_clsn
|
||||
ImpactSound: expnew12.aud
|
||||
@@ -442,11 +443,11 @@ HoverMissile:
|
||||
Damage: 50
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 60%
|
||||
None: 25
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Concrete: 60
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: medium_clsn
|
||||
ImpactSound: expnew14.aud
|
||||
@@ -479,11 +480,11 @@ MammothTusk:
|
||||
ProneModifier: 70
|
||||
ValidTargets: Air
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 85%
|
||||
Light: 70%
|
||||
Heavy: 35%
|
||||
Concrete: 28%
|
||||
None: 100
|
||||
Wood: 85
|
||||
Light: 70
|
||||
Heavy: 35
|
||||
Concrete: 28
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: medium_bang
|
||||
ImpactSound: expnew12.aud
|
||||
@@ -505,11 +506,11 @@ Repair:
|
||||
InfDeath: 1
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
None: 0%
|
||||
Wood: 0%
|
||||
Light: 100%
|
||||
Heavy: 100%
|
||||
Concrete: 0%
|
||||
None: 0
|
||||
Wood: 0
|
||||
Light: 100
|
||||
Heavy: 100
|
||||
Concrete: 0
|
||||
|
||||
SlimeAttack:
|
||||
ReloadDelay: 80
|
||||
@@ -523,10 +524,10 @@ SlimeAttack:
|
||||
InfDeath: 2
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
Wood: 25%
|
||||
Light: 30%
|
||||
Heavy: 10%
|
||||
Concrete: 10%
|
||||
Wood: 25
|
||||
Light: 30
|
||||
Heavy: 10
|
||||
Concrete: 10
|
||||
|
||||
SuicideBomb:
|
||||
ReloadDelay: 1
|
||||
@@ -534,13 +535,14 @@ SuicideBomb:
|
||||
Report: HUNTER2.AUD
|
||||
Warhead@1Dam: SpreadDamage
|
||||
Spread: 256
|
||||
Damage: 11000
|
||||
Damage: 110
|
||||
Falloff: 10000, 3680, 1350, 500, 180, 70, 0
|
||||
InfDeath: 5
|
||||
Versus:
|
||||
None: 90%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
None: 90
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Concrete: 50
|
||||
Warhead@2Res: DestroyResource
|
||||
|
||||
120mm:
|
||||
@@ -554,11 +556,11 @@ SuicideBomb:
|
||||
Damage: 70
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 60%
|
||||
None: 25
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Concrete: 60
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: large_clsn
|
||||
ImpactSound: expnew14.aud
|
||||
@@ -583,11 +585,11 @@ MechRailgun:
|
||||
InfDeath: 5
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
None: 200%
|
||||
Wood: 175%
|
||||
Light: 160%
|
||||
Heavy: 100%
|
||||
Concrete: 25%
|
||||
None: 200
|
||||
Wood: 175
|
||||
Light: 160
|
||||
Heavy: 100
|
||||
Concrete: 25
|
||||
|
||||
AssaultCannon:
|
||||
ReloadDelay: 50
|
||||
@@ -601,10 +603,10 @@ AssaultCannon:
|
||||
InfDeath: 1
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -635,11 +637,11 @@ BikeMissile:
|
||||
InfDeath: 2
|
||||
ValidTargets: Ground
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 60%
|
||||
None: 25
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Concrete: 60
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: small_clsn
|
||||
ImpactSound: expnew12.aud
|
||||
@@ -663,10 +665,10 @@ RaiderCannon:
|
||||
InfDeath: 1
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -690,11 +692,11 @@ FireballLauncher:
|
||||
InfDeath: 5
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
None: 600%
|
||||
Wood: 148%
|
||||
Light: 59%
|
||||
Heavy: 6%
|
||||
Concrete: 2%
|
||||
None: 600
|
||||
Wood: 148
|
||||
Light: 59
|
||||
Heavy: 6
|
||||
Concrete: 2
|
||||
|
||||
SonicZap:
|
||||
ReloadDelay: 120
|
||||
@@ -710,8 +712,8 @@ SonicZap:
|
||||
Damage: 100
|
||||
InfDeath: 5
|
||||
Versus:
|
||||
Heavy: 80%
|
||||
Concrete: 60%
|
||||
Heavy: 80
|
||||
Concrete: 60
|
||||
|
||||
Dragon:
|
||||
ReloadDelay: 50
|
||||
@@ -735,11 +737,11 @@ Dragon:
|
||||
InfDeath: 2
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 60%
|
||||
None: 25
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Concrete: 60
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: small_clsn
|
||||
ImpactSound: expnew12.aud
|
||||
@@ -768,11 +770,11 @@ Dragon:
|
||||
Damage: 36
|
||||
InfDeath: 2
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 60%
|
||||
None: 25
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Concrete: 60
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: medium_clsn
|
||||
ImpactSound: expnew14.aud
|
||||
@@ -800,11 +802,11 @@ Dragon:
|
||||
InfDeath: 3
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 85%
|
||||
Light: 68%
|
||||
Heavy: 35%
|
||||
Concrete: 35%
|
||||
None: 100
|
||||
Wood: 85
|
||||
Light: 68
|
||||
Heavy: 35
|
||||
Concrete: 35
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: large_explosion
|
||||
ImpactSound: expnew06.aud
|
||||
@@ -836,11 +838,11 @@ Hellfire:
|
||||
InfDeath: 2
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 65%
|
||||
Light: 150%
|
||||
Heavy: 100%
|
||||
Concrete: 30%
|
||||
None: 30
|
||||
Wood: 65
|
||||
Light: 150
|
||||
Heavy: 100
|
||||
Concrete: 30
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: small_bang
|
||||
ImpactSound: expnew12.aud
|
||||
@@ -868,11 +870,11 @@ Bomb:
|
||||
InfDeath: 3
|
||||
ProneModifier: 100
|
||||
Versus:
|
||||
None: 200%
|
||||
Wood: 90%
|
||||
Light: 75%
|
||||
Heavy: 32%
|
||||
Concrete: 100%
|
||||
None: 200
|
||||
Wood: 90
|
||||
Light: 75
|
||||
Heavy: 32
|
||||
Concrete: 100
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: large_explosion
|
||||
ImpactSound: expnew09.aud
|
||||
@@ -903,11 +905,11 @@ Proton:
|
||||
InfDeath: 3
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 75%
|
||||
Heavy: 100%
|
||||
Concrete: 60%
|
||||
None: 25
|
||||
Wood: 65
|
||||
Light: 75
|
||||
Heavy: 100
|
||||
Concrete: 60
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: small_bang
|
||||
ImpactSound: expnew12.aud
|
||||
@@ -931,10 +933,10 @@ HarpyClaw:
|
||||
ProneModifier: 70
|
||||
ValidTargets: Ground, Air
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -954,10 +956,10 @@ Pistola:
|
||||
InfDeath: 1
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piff
|
||||
InvalidImpactTypes: Water
|
||||
@@ -985,7 +987,8 @@ IonCannon:
|
||||
ValidTargets: Ground, Air
|
||||
Warhead@1Dam_impact: SpreadDamage
|
||||
Spread: 1c0
|
||||
Damage: 1000
|
||||
Damage: 100
|
||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
||||
InfDeath: 5
|
||||
ProneModifier: 100
|
||||
ValidTargets: Ground, Air
|
||||
@@ -1013,10 +1016,10 @@ VulcanTower:
|
||||
Damage: 18
|
||||
InfDeath: 1
|
||||
Versus:
|
||||
Wood: 60%
|
||||
Light: 40%
|
||||
Heavy: 25%
|
||||
Concrete: 10%
|
||||
Wood: 60
|
||||
Light: 40
|
||||
Heavy: 25
|
||||
Concrete: 10
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: piffs
|
||||
InvalidImpactTypes: Water
|
||||
@@ -1041,11 +1044,11 @@ RPGTower:
|
||||
InfDeath: 2
|
||||
ProneModifier: 70
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 90%
|
||||
Heavy: 100%
|
||||
Concrete: 70%
|
||||
None: 30
|
||||
Wood: 75
|
||||
Light: 90
|
||||
Heavy: 100
|
||||
Concrete: 70
|
||||
Warhead@2Eff: CreateEffect
|
||||
Explosion: large_clsn
|
||||
ImpactSound: expnew14.aud
|
||||
@@ -1115,10 +1118,10 @@ TiberiumExplosion:
|
||||
Damage: 10
|
||||
InfDeath: 3
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
None: 90
|
||||
Wood: 75
|
||||
Light: 60
|
||||
Heavy: 25
|
||||
Warhead@2Res: CreateResource
|
||||
AddsResourceType: Tiberium
|
||||
Size: 1,1
|
||||
|
||||
Reference in New Issue
Block a user