Merge pull request #7639 from reaperrr/projectile-cleanup
Remove TurboBoost and various other Projectile cleanups
This commit is contained in:
@@ -46,8 +46,6 @@ namespace OpenRA.GameRules
|
|||||||
|
|
||||||
public readonly bool Charges = false;
|
public readonly bool Charges = false;
|
||||||
|
|
||||||
public readonly string Palette = "effect";
|
|
||||||
|
|
||||||
[Desc("What types of targets are affected.")]
|
[Desc("What types of targets are affected.")]
|
||||||
public readonly string[] ValidTargets = { "Ground", "Water" };
|
public readonly string[] ValidTargets = { "Ground", "Water" };
|
||||||
|
|
||||||
|
|||||||
@@ -270,7 +270,7 @@ namespace OpenRA.Traits
|
|||||||
public interface INotifyBecomingIdle { void OnBecomingIdle(Actor self); }
|
public interface INotifyBecomingIdle { void OnBecomingIdle(Actor self); }
|
||||||
public interface INotifyIdle { void TickIdle(Actor self); }
|
public interface INotifyIdle { void TickIdle(Actor self); }
|
||||||
|
|
||||||
public interface IBlocksBullets { }
|
public interface IBlocksProjectiles { }
|
||||||
public interface IRenderInfantrySequenceModifier
|
public interface IRenderInfantrySequenceModifier
|
||||||
{
|
{
|
||||||
bool IsModifyingSequence { get; }
|
bool IsModifyingSequence { get; }
|
||||||
|
|||||||
@@ -22,18 +22,22 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
{
|
{
|
||||||
public class BulletInfo : IProjectileInfo
|
public class BulletInfo : IProjectileInfo
|
||||||
{
|
{
|
||||||
[Desc("Projectile speed in WRange / tick, two values indicate variable velocity")]
|
[Desc("Projectile speed in WRange / tick, two values indicate variable velocity.")]
|
||||||
public readonly WRange[] Speed = { new WRange(17) };
|
public readonly WRange[] Speed = { new WRange(17) };
|
||||||
public readonly string Trail = null;
|
[Desc("Maximum offset at the maximum range.")]
|
||||||
[Desc("Maximum offset at the maximum range")]
|
|
||||||
public readonly WRange Inaccuracy = WRange.Zero;
|
public readonly WRange Inaccuracy = WRange.Zero;
|
||||||
public readonly string Image = null;
|
public readonly string Image = null;
|
||||||
[Desc("Check for whether an actor with BlocksBullets: trait blocks fire")]
|
public readonly string Palette = "effect";
|
||||||
public readonly bool High = false;
|
|
||||||
public readonly bool Shadow = false;
|
public readonly bool Shadow = false;
|
||||||
|
[Desc("Trail animation.")]
|
||||||
|
public readonly string Trail = null;
|
||||||
|
[Desc("Is this blocked by actors with BlocksProjectiles trait.")]
|
||||||
|
public readonly bool Blockable = true;
|
||||||
[Desc("Arc in WAngles, two values indicate variable arc.")]
|
[Desc("Arc in WAngles, two values indicate variable arc.")]
|
||||||
public readonly WAngle[] Angle = { WAngle.Zero };
|
public readonly WAngle[] Angle = { WAngle.Zero };
|
||||||
|
[Desc("Interval in ticks between each spawned Trail animation.")]
|
||||||
public readonly int TrailInterval = 2;
|
public readonly int TrailInterval = 2;
|
||||||
|
[Desc("Delay in ticks until trail animaion is spawned.")]
|
||||||
public readonly int TrailDelay = 1;
|
public readonly int TrailDelay = 1;
|
||||||
public readonly int ContrailLength = 0;
|
public readonly int ContrailLength = 0;
|
||||||
public readonly Color ContrailColor = Color.White;
|
public readonly Color ContrailColor = Color.White;
|
||||||
@@ -47,11 +51,11 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
{
|
{
|
||||||
readonly BulletInfo info;
|
readonly BulletInfo info;
|
||||||
readonly ProjectileArgs args;
|
readonly ProjectileArgs args;
|
||||||
|
readonly Animation anim;
|
||||||
[Sync] readonly WAngle angle;
|
[Sync] readonly WAngle angle;
|
||||||
[Sync] readonly WRange speed;
|
[Sync] readonly WRange speed;
|
||||||
|
|
||||||
ContrailRenderable trail;
|
ContrailRenderable contrail;
|
||||||
Animation anim;
|
|
||||||
|
|
||||||
[Sync] WPos pos, target;
|
[Sync] WPos pos, target;
|
||||||
[Sync] int length;
|
[Sync] int length;
|
||||||
@@ -68,16 +72,15 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
|
|
||||||
var world = args.SourceActor.World;
|
var world = args.SourceActor.World;
|
||||||
|
|
||||||
if (info.Angle.Length > 1 && info.Speed.Length > 1)
|
if (info.Angle.Length > 1)
|
||||||
{
|
|
||||||
angle = new WAngle(world.SharedRandom.Next(info.Angle[0].Angle, info.Angle[1].Angle));
|
angle = new WAngle(world.SharedRandom.Next(info.Angle[0].Angle, info.Angle[1].Angle));
|
||||||
speed = new WRange(world.SharedRandom.Next(info.Speed[0].Range, info.Speed[1].Range));
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
angle = info.Angle[0];
|
angle = info.Angle[0];
|
||||||
|
|
||||||
|
if (info.Speed.Length > 1)
|
||||||
|
speed = new WRange(world.SharedRandom.Next(info.Speed[0].Range, info.Speed[1].Range));
|
||||||
|
else
|
||||||
speed = info.Speed[0];
|
speed = info.Speed[0];
|
||||||
}
|
|
||||||
|
|
||||||
target = args.PassiveTarget;
|
target = args.PassiveTarget;
|
||||||
if (info.Inaccuracy.Range > 0)
|
if (info.Inaccuracy.Range > 0)
|
||||||
@@ -99,7 +102,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
if (info.ContrailLength > 0)
|
if (info.ContrailLength > 0)
|
||||||
{
|
{
|
||||||
var color = info.ContrailUsePlayerColor ? ContrailRenderable.ChooseColor(args.SourceActor) : info.ContrailColor;
|
var color = info.ContrailUsePlayerColor ? ContrailRenderable.ChooseColor(args.SourceActor) : info.ContrailColor;
|
||||||
trail = new ContrailRenderable(world, color, info.ContrailLength, info.ContrailDelay, 0);
|
contrail = new ContrailRenderable(world, color, info.ContrailLength, info.ContrailDelay, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
smokeTicks = info.TrailDelay;
|
smokeTicks = info.TrailDelay;
|
||||||
@@ -133,17 +136,17 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (info.ContrailLength > 0)
|
if (info.ContrailLength > 0)
|
||||||
trail.Update(pos);
|
contrail.Update(pos);
|
||||||
|
|
||||||
if (ticks++ >= length || (!info.High && world.ActorMap
|
if (ticks++ >= length || (info.Blockable && world.ActorMap
|
||||||
.GetUnitsAt(world.Map.CellContaining(pos)).Any(a => a.HasTrait<IBlocksBullets>())))
|
.GetUnitsAt(world.Map.CellContaining(pos)).Any(a => a.HasTrait<IBlocksProjectiles>())))
|
||||||
Explode(world);
|
Explode(world);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<IRenderable> Render(WorldRenderer wr)
|
public IEnumerable<IRenderable> Render(WorldRenderer wr)
|
||||||
{
|
{
|
||||||
if (info.ContrailLength > 0)
|
if (info.ContrailLength > 0)
|
||||||
yield return trail;
|
yield return contrail;
|
||||||
|
|
||||||
if (anim == null || ticks >= length)
|
if (anim == null || ticks >= length)
|
||||||
yield break;
|
yield break;
|
||||||
@@ -158,7 +161,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
yield return r;
|
yield return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
var palette = wr.Palette(args.Weapon.Palette);
|
var palette = wr.Palette(info.Palette);
|
||||||
foreach (var r in anim.Render(pos, palette))
|
foreach (var r in anim.Render(pos, palette))
|
||||||
yield return r;
|
yield return r;
|
||||||
}
|
}
|
||||||
@@ -167,7 +170,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
void Explode(World world)
|
void Explode(World world)
|
||||||
{
|
{
|
||||||
if (info.ContrailLength > 0)
|
if (info.ContrailLength > 0)
|
||||||
world.AddFrameEndTask(w => w.Add(new ContrailFader(pos, trail)));
|
world.AddFrameEndTask(w => w.Add(new ContrailFader(pos, contrail)));
|
||||||
|
|
||||||
world.AddFrameEndTask(w => w.Remove(this));
|
world.AddFrameEndTask(w => w.Remove(this));
|
||||||
|
|
||||||
|
|||||||
@@ -16,11 +16,11 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
{
|
{
|
||||||
public class Explosion : IEffect
|
public class Explosion : IEffect
|
||||||
{
|
{
|
||||||
World world;
|
readonly World world;
|
||||||
|
readonly string palette;
|
||||||
|
readonly Animation anim;
|
||||||
WPos pos;
|
WPos pos;
|
||||||
CPos cell;
|
CPos cell;
|
||||||
string palette;
|
|
||||||
Animation anim;
|
|
||||||
|
|
||||||
public Explosion(World world, WPos pos, string sequence, string palette)
|
public Explosion(World world, WPos pos, string sequence, string palette)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,8 +19,10 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
public class GravityBombInfo : IProjectileInfo
|
public class GravityBombInfo : IProjectileInfo
|
||||||
{
|
{
|
||||||
public readonly string Image = null;
|
public readonly string Image = null;
|
||||||
|
public readonly string Palette = "effect";
|
||||||
public readonly bool Shadow = false;
|
public readonly bool Shadow = false;
|
||||||
public readonly WRange Velocity = WRange.Zero;
|
public readonly WRange Velocity = WRange.Zero;
|
||||||
|
[Desc("Value added to velocity every tick.")]
|
||||||
public readonly WRange Acceleration = new WRange(15);
|
public readonly WRange Acceleration = new WRange(15);
|
||||||
|
|
||||||
public IEffect Create(ProjectileArgs args) { return new GravityBomb(this, args); }
|
public IEffect Create(ProjectileArgs args) { return new GravityBomb(this, args); }
|
||||||
@@ -28,11 +30,12 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
|
|
||||||
public class GravityBomb : IEffect
|
public class GravityBomb : IEffect
|
||||||
{
|
{
|
||||||
GravityBombInfo info;
|
readonly GravityBombInfo info;
|
||||||
Animation anim;
|
readonly Animation anim;
|
||||||
ProjectileArgs args;
|
readonly ProjectileArgs args;
|
||||||
WVec velocity;
|
[Sync] WVec velocity;
|
||||||
WPos pos;
|
[Sync] WPos pos;
|
||||||
|
[Sync] WVec acceleration;
|
||||||
|
|
||||||
public GravityBomb(GravityBombInfo info, ProjectileArgs args)
|
public GravityBomb(GravityBombInfo info, ProjectileArgs args)
|
||||||
{
|
{
|
||||||
@@ -40,6 +43,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
this.args = args;
|
this.args = args;
|
||||||
pos = args.Source;
|
pos = args.Source;
|
||||||
velocity = new WVec(WRange.Zero, WRange.Zero, -info.Velocity);
|
velocity = new WVec(WRange.Zero, WRange.Zero, -info.Velocity);
|
||||||
|
acceleration = new WVec(WRange.Zero, WRange.Zero, info.Acceleration);
|
||||||
|
|
||||||
anim = new Animation(args.SourceActor.World, info.Image);
|
anim = new Animation(args.SourceActor.World, info.Image);
|
||||||
if (anim.HasSequence("open"))
|
if (anim.HasSequence("open"))
|
||||||
@@ -50,7 +54,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
|
|
||||||
public void Tick(World world)
|
public void Tick(World world)
|
||||||
{
|
{
|
||||||
velocity -= new WVec(WRange.Zero, WRange.Zero, info.Acceleration);
|
velocity -= acceleration;
|
||||||
pos += velocity;
|
pos += velocity;
|
||||||
|
|
||||||
if (pos.Z <= args.PassiveTarget.Z)
|
if (pos.Z <= args.PassiveTarget.Z)
|
||||||
@@ -60,6 +64,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
args.Weapon.Impact(Target.FromPos(pos), args.SourceActor, args.DamageModifiers);
|
args.Weapon.Impact(Target.FromPos(pos), args.SourceActor, args.DamageModifiers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (anim != null)
|
||||||
anim.Tick();
|
anim.Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +80,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
yield return r;
|
yield return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
var palette = wr.Palette(args.Weapon.Palette);
|
var palette = wr.Palette(info.Palette);
|
||||||
foreach (var r in anim.Render(pos, palette))
|
foreach (var r in anim.Render(pos, palette))
|
||||||
yield return r;
|
yield return r;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,13 +39,13 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
|
|
||||||
class LaserZap : IEffect
|
class LaserZap : IEffect
|
||||||
{
|
{
|
||||||
ProjectileArgs args;
|
readonly ProjectileArgs args;
|
||||||
LaserZapInfo info;
|
readonly LaserZapInfo info;
|
||||||
|
readonly Animation hitanim;
|
||||||
int ticks = 0;
|
int ticks = 0;
|
||||||
Color color;
|
Color color;
|
||||||
bool doneDamage;
|
bool doneDamage;
|
||||||
bool animationComplete;
|
bool animationComplete;
|
||||||
Animation hitanim;
|
|
||||||
WPos target;
|
WPos target;
|
||||||
|
|
||||||
public LaserZap(ProjectileArgs args, LaserZapInfo info, Color color)
|
public LaserZap(ProjectileArgs args, LaserZapInfo info, Color color)
|
||||||
|
|||||||
@@ -22,32 +22,34 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
{
|
{
|
||||||
class MissileInfo : IProjectileInfo
|
class MissileInfo : IProjectileInfo
|
||||||
{
|
{
|
||||||
|
public readonly string Image = null;
|
||||||
|
public readonly string Palette = "effect";
|
||||||
|
public readonly bool Shadow = false;
|
||||||
[Desc("Projectile speed in WRange / tick")]
|
[Desc("Projectile speed in WRange / tick")]
|
||||||
public readonly WRange Speed = new WRange(8);
|
public readonly WRange Speed = new WRange(8);
|
||||||
[Desc("Maximum vertical pitch when changing altitude.")]
|
[Desc("Maximum vertical pitch when changing altitude.")]
|
||||||
public readonly WAngle MaximumPitch = WAngle.FromDegrees(30);
|
public readonly WAngle MaximumPitch = WAngle.FromDegrees(30);
|
||||||
[Desc("How many ticks before this missile is armed and can explode.")]
|
[Desc("How many ticks before this missile is armed and can explode.")]
|
||||||
public readonly int Arm = 0;
|
public readonly int Arm = 0;
|
||||||
[Desc("Check for whether an actor with BlocksBullets: trait blocks fire")]
|
[Desc("Is the missile blocked by actors with BlocksProjectiles: trait.")]
|
||||||
public readonly bool High = false;
|
public readonly bool Blockable = true;
|
||||||
public readonly bool Shadow = false;
|
|
||||||
public readonly string Trail = null;
|
|
||||||
[Desc("Maximum offset at the maximum range")]
|
[Desc("Maximum offset at the maximum range")]
|
||||||
public readonly WRange Inaccuracy = WRange.Zero;
|
public readonly WRange Inaccuracy = WRange.Zero;
|
||||||
[Desc("Probability of locking onto and following target.")]
|
[Desc("Probability of locking onto and following target.")]
|
||||||
public readonly int LockOnProbability = 100;
|
public readonly int LockOnProbability = 100;
|
||||||
public readonly string Image = null;
|
[Desc("In n/256 per tick.")]
|
||||||
[Desc("Rate of Turning")]
|
public readonly int RateOfTurn = 5;
|
||||||
public readonly int ROT = 5;
|
[Desc("Explode when following the target longer than this many ticks.")]
|
||||||
[Desc("Explode when following the target longer than this.")]
|
|
||||||
public readonly int RangeLimit = 0;
|
public readonly int RangeLimit = 0;
|
||||||
[Desc("If fired at aircraft, increase speed by 50%.")]
|
[Desc("Trail animation.")]
|
||||||
public readonly bool TurboBoost = false;
|
public readonly string Trail = null;
|
||||||
|
[Desc("Interval in ticks between each spawned Trail animation.")]
|
||||||
public readonly int TrailInterval = 2;
|
public readonly int TrailInterval = 2;
|
||||||
public readonly int ContrailLength = 0;
|
public readonly int ContrailLength = 0;
|
||||||
public readonly Color ContrailColor = Color.White;
|
public readonly Color ContrailColor = Color.White;
|
||||||
public readonly bool ContrailUsePlayerColor = false;
|
public readonly bool ContrailUsePlayerColor = false;
|
||||||
public readonly int ContrailDelay = 1;
|
public readonly int ContrailDelay = 1;
|
||||||
|
[Desc("Should missile targeting be thrown off by nearby actors with JamsMissiles.")]
|
||||||
public readonly bool Jammable = true;
|
public readonly bool Jammable = true;
|
||||||
[Desc("Explodes when leaving the following terrain type, e.g., Water for torpedoes.")]
|
[Desc("Explodes when leaving the following terrain type, e.g., Water for torpedoes.")]
|
||||||
public readonly string BoundToTerrainType = "";
|
public readonly string BoundToTerrainType = "";
|
||||||
@@ -66,7 +68,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
readonly Animation anim;
|
readonly Animation anim;
|
||||||
|
|
||||||
int ticksToNextSmoke;
|
int ticksToNextSmoke;
|
||||||
ContrailRenderable trail;
|
ContrailRenderable contrail;
|
||||||
|
|
||||||
[Sync] WPos pos;
|
[Sync] WPos pos;
|
||||||
[Sync] int facing;
|
[Sync] int facing;
|
||||||
@@ -110,7 +112,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
if (info.ContrailLength > 0)
|
if (info.ContrailLength > 0)
|
||||||
{
|
{
|
||||||
var color = info.ContrailUsePlayerColor ? ContrailRenderable.ChooseColor(args.SourceActor) : info.ContrailColor;
|
var color = info.ContrailUsePlayerColor ? ContrailRenderable.ChooseColor(args.SourceActor) : info.ContrailColor;
|
||||||
trail = new ContrailRenderable(world, color, info.ContrailLength, info.ContrailDelay, 0);
|
contrail = new ContrailRenderable(world, color, info.ContrailLength, info.ContrailDelay, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,6 +130,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
public void Tick(World world)
|
public void Tick(World world)
|
||||||
{
|
{
|
||||||
ticks++;
|
ticks++;
|
||||||
|
if (anim != null)
|
||||||
anim.Tick();
|
anim.Tick();
|
||||||
|
|
||||||
// Missile tracks target
|
// Missile tracks target
|
||||||
@@ -147,10 +150,8 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
else if (!args.GuidedTarget.IsValidFor(args.SourceActor))
|
else if (!args.GuidedTarget.IsValidFor(args.SourceActor))
|
||||||
desiredFacing = facing;
|
desiredFacing = facing;
|
||||||
|
|
||||||
facing = OpenRA.Traits.Util.TickFacing(facing, desiredFacing, info.ROT);
|
facing = OpenRA.Traits.Util.TickFacing(facing, desiredFacing, info.RateOfTurn);
|
||||||
var move = new WVec(0, -1024, 0).Rotate(WRot.FromFacing(facing)) * info.Speed.Range / 1024;
|
var move = new WVec(0, -1024, 0).Rotate(WRot.FromFacing(facing)) * info.Speed.Range / 1024;
|
||||||
if (targetPosition.Z > 0 && info.TurboBoost)
|
|
||||||
move = (move * 3) / 2;
|
|
||||||
|
|
||||||
if (pos.Z != desiredAltitude)
|
if (pos.Z != desiredAltitude)
|
||||||
{
|
{
|
||||||
@@ -168,14 +169,14 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (info.ContrailLength > 0)
|
if (info.ContrailLength > 0)
|
||||||
trail.Update(pos);
|
contrail.Update(pos);
|
||||||
|
|
||||||
var cell = world.Map.CellContaining(pos);
|
var cell = world.Map.CellContaining(pos);
|
||||||
|
|
||||||
var shouldExplode = (pos.Z < 0) // Hit the ground
|
var shouldExplode = (pos.Z < 0) // Hit the ground
|
||||||
|| (dist.LengthSquared < info.CloseEnough.Range * info.CloseEnough.Range) // Within range
|
|| (dist.LengthSquared < info.CloseEnough.Range * info.CloseEnough.Range) // Within range
|
||||||
|| (info.RangeLimit != 0 && ticks > info.RangeLimit) // Ran out of fuel
|
|| (info.RangeLimit != 0 && ticks > info.RangeLimit) // Ran out of fuel
|
||||||
|| (!info.High && world.ActorMap.GetUnitsAt(cell).Any(a => a.HasTrait<IBlocksBullets>())) // Hit a wall
|
|| (info.Blockable && world.ActorMap.GetUnitsAt(cell).Any(a => a.HasTrait<IBlocksProjectiles>())) // Hit a wall or other blocking obstacle
|
||||||
|| !world.Map.Contains(cell) // This also avoids an IndexOutOfRangeException in GetTerrainInfo below.
|
|| !world.Map.Contains(cell) // This also avoids an IndexOutOfRangeException in GetTerrainInfo below.
|
||||||
|| (!string.IsNullOrEmpty(info.BoundToTerrainType) && world.Map.GetTerrainInfo(cell).Type != info.BoundToTerrainType); // Hit incompatible terrain
|
|| (!string.IsNullOrEmpty(info.BoundToTerrainType) && world.Map.GetTerrainInfo(cell).Type != info.BoundToTerrainType); // Hit incompatible terrain
|
||||||
|
|
||||||
@@ -186,7 +187,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
void Explode(World world)
|
void Explode(World world)
|
||||||
{
|
{
|
||||||
if (info.ContrailLength > 0)
|
if (info.ContrailLength > 0)
|
||||||
world.AddFrameEndTask(w => w.Add(new ContrailFader(pos, trail)));
|
world.AddFrameEndTask(w => w.Add(new ContrailFader(pos, contrail)));
|
||||||
|
|
||||||
world.AddFrameEndTask(w => w.Remove(this));
|
world.AddFrameEndTask(w => w.Remove(this));
|
||||||
|
|
||||||
@@ -200,7 +201,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
public IEnumerable<IRenderable> Render(WorldRenderer wr)
|
public IEnumerable<IRenderable> Render(WorldRenderer wr)
|
||||||
{
|
{
|
||||||
if (info.ContrailLength > 0)
|
if (info.ContrailLength > 0)
|
||||||
yield return trail;
|
yield return contrail;
|
||||||
|
|
||||||
if (!args.SourceActor.World.FogObscures(wr.World.Map.CellContaining(pos)))
|
if (!args.SourceActor.World.FogObscures(wr.World.Map.CellContaining(pos)))
|
||||||
{
|
{
|
||||||
@@ -211,7 +212,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
yield return r;
|
yield return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
var palette = wr.Palette(args.Weapon.Palette);
|
var palette = wr.Palette(info.Palette);
|
||||||
foreach (var r in anim.Render(pos, palette))
|
foreach (var r in anim.Render(pos, palette))
|
||||||
yield return r;
|
yield return r;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -246,7 +246,7 @@
|
|||||||
<Compile Include="Traits\Attack\AttackWander.cs" />
|
<Compile Include="Traits\Attack\AttackWander.cs" />
|
||||||
<Compile Include="Traits\AutoHeal.cs" />
|
<Compile Include="Traits\AutoHeal.cs" />
|
||||||
<Compile Include="Traits\AutoTarget.cs" />
|
<Compile Include="Traits\AutoTarget.cs" />
|
||||||
<Compile Include="Traits\BlocksBullets.cs" />
|
<Compile Include="Traits\BlocksProjectiles.cs" />
|
||||||
<Compile Include="Traits\Buildable.cs" />
|
<Compile Include="Traits\Buildable.cs" />
|
||||||
<Compile Include="Traits\Buildings\BaseBuilding.cs" />
|
<Compile Include="Traits\Buildings\BaseBuilding.cs" />
|
||||||
<Compile Include="Traits\Buildings\BaseProvider.cs" />
|
<Compile Include="Traits\Buildings\BaseProvider.cs" />
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ using OpenRA.Traits;
|
|||||||
namespace OpenRA.Mods.Common.Traits
|
namespace OpenRA.Mods.Common.Traits
|
||||||
{
|
{
|
||||||
// TODO: Add functionality like a customizable Height that is compared to projectile altitude
|
// TODO: Add functionality like a customizable Height that is compared to projectile altitude
|
||||||
[Desc("This actor blocks bullets and missiles without 'High' property.")]
|
[Desc("This actor blocks bullets and missiles with 'Blockable' property.")]
|
||||||
public class BlocksBulletsInfo : TraitInfo<BlocksBullets> { }
|
public class BlocksProjectilesInfo : TraitInfo<BlocksProjectiles> { }
|
||||||
public class BlocksBullets : IBlocksBullets { }
|
public class BlocksProjectiles : IBlocksProjectiles { }
|
||||||
}
|
}
|
||||||
@@ -829,6 +829,13 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
|||||||
node.Key = "AmmoPool";
|
node.Key = "AmmoPool";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (engineVersion < 20150326)
|
||||||
|
{
|
||||||
|
// Rename BlocksBullets to BlocksProjectiles
|
||||||
|
if (node.Key == "BlocksBullets")
|
||||||
|
node.Key = "BlocksProjectiles";
|
||||||
|
}
|
||||||
|
|
||||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1169,6 +1176,51 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (engineVersion < 20150326)
|
||||||
|
{
|
||||||
|
// Remove TurboBoost from missiles
|
||||||
|
if (depth == 1 && node.Key == "Projectile" && node.Value.Nodes.Exists(n => n.Key == "TurboBoost"))
|
||||||
|
{
|
||||||
|
node.Value.Nodes.RemoveAll(n => n.Key == "TurboBoost");
|
||||||
|
Console.WriteLine("'TurboBoost' has been removed.");
|
||||||
|
Console.WriteLine("If you want to reproduce its behavior, create a duplicate");
|
||||||
|
Console.WriteLine("of the weapon in question, change it to be anti-air only,");
|
||||||
|
Console.WriteLine("increase its speed, make the original weapon anti-ground only,");
|
||||||
|
Console.WriteLine("and add the new weapon as additional armament to the actor.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rename ROT to RateOfTurn
|
||||||
|
if (depth == 2 && node.Key == "ROT")
|
||||||
|
node.Key = "RateOfTurn";
|
||||||
|
|
||||||
|
// Rename High to Blockable
|
||||||
|
if (depth == 2 && parentKey == "Projectile" && node.Key == "High")
|
||||||
|
{
|
||||||
|
var highField = node.Value.Value != null ? FieldLoader.GetValue<bool>("High", node.Value.Value) : false;
|
||||||
|
var blockable = !highField;
|
||||||
|
|
||||||
|
node.Value.Value = blockable.ToString().ToLowerInvariant();
|
||||||
|
node.Key = "Blockable";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Move Palette from weapon to projectiles
|
||||||
|
if (depth == 0)
|
||||||
|
{
|
||||||
|
var weapons = node.Value.Nodes;
|
||||||
|
var palette = weapons.FirstOrDefault(p => p.Key == "Palette");
|
||||||
|
var projectile = weapons.FirstOrDefault(r => r.Key == "Projectile");
|
||||||
|
|
||||||
|
if (palette != null)
|
||||||
|
{
|
||||||
|
var projectileFields = projectile.Value.Nodes;
|
||||||
|
var paletteName = palette.Value.Value != null ? FieldLoader.GetValue<string>("Palette", palette.Value.Value) : "effect";
|
||||||
|
|
||||||
|
projectileFields.Add(new MiniYamlNode("Palette", paletteName.ToString()));
|
||||||
|
weapons.Remove(palette);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UpgradeWeaponRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
UpgradeWeaponRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -531,7 +531,7 @@
|
|||||||
Crushable:
|
Crushable:
|
||||||
CrushClasses: wall
|
CrushClasses: wall
|
||||||
CrushSound: sandbag2.aud
|
CrushSound: sandbag2.aud
|
||||||
BlocksBullets:
|
BlocksProjectiles:
|
||||||
LineBuild:
|
LineBuild:
|
||||||
Range: 8
|
Range: 8
|
||||||
NodeTypes: wall
|
NodeTypes: wall
|
||||||
|
|||||||
@@ -70,3 +70,4 @@ LST:
|
|||||||
MaxWeight: 5
|
MaxWeight: 5
|
||||||
PipCount: 5
|
PipCount: 5
|
||||||
PassengerFacing: 0
|
PassengerFacing: 0
|
||||||
|
|
||||||
|
|||||||
@@ -83,3 +83,4 @@ Napalm.Crate:
|
|||||||
Warhead@3Eff: CreateEffect
|
Warhead@3Eff: CreateEffect
|
||||||
Explosion: med_napalm
|
Explosion: med_napalm
|
||||||
ImpactSound: flamer2.aud
|
ImpactSound: flamer2.aud
|
||||||
|
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ ArtilleryShell:
|
|||||||
Report: TNKFIRE2.AUD
|
Report: TNKFIRE2.AUD
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 204
|
Speed: 204
|
||||||
High: yes
|
Blockable: false
|
||||||
Angle: 56
|
Angle: 56
|
||||||
Inaccuracy: 1c256
|
Inaccuracy: 1c256
|
||||||
ContrailLength: 30
|
ContrailLength: 30
|
||||||
@@ -139,3 +139,4 @@ ArtilleryShell:
|
|||||||
Warhead@3Eff: CreateEffect
|
Warhead@3Eff: CreateEffect
|
||||||
Explosion: poof
|
Explosion: poof
|
||||||
ImpactSound: XPLOSML2.AUD
|
ImpactSound: XPLOSML2.AUD
|
||||||
|
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ Rockets:
|
|||||||
ValidTargets: Ground, Air
|
ValidTargets: Ground, Air
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 15
|
RateOfTurn: 15
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 8
|
ContrailLength: 8
|
||||||
Speed: 298
|
Speed: 298
|
||||||
@@ -40,10 +40,10 @@ BikeRockets:
|
|||||||
BurstDelay: 10
|
BurstDelay: 10
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 10
|
RateOfTurn: 10
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 8
|
ContrailLength: 8
|
||||||
Speed: 213
|
Speed: 213
|
||||||
@@ -74,10 +74,10 @@ OrcaAGMissiles:
|
|||||||
ValidTargets: Ground
|
ValidTargets: Ground
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 20
|
RateOfTurn: 20
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 8
|
ContrailLength: 8
|
||||||
Speed: 298
|
Speed: 298
|
||||||
@@ -107,10 +107,10 @@ OrcaAAMissiles:
|
|||||||
ValidTargets: Air
|
ValidTargets: Air
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 20
|
RateOfTurn: 20
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 8
|
ContrailLength: 8
|
||||||
Speed: 298
|
Speed: 298
|
||||||
@@ -138,10 +138,10 @@ MammothMissiles:
|
|||||||
BurstDelay: 15
|
BurstDelay: 15
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 20
|
RateOfTurn: 20
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 8
|
ContrailLength: 8
|
||||||
Speed: 341
|
Speed: 341
|
||||||
@@ -177,12 +177,12 @@ MammothMissiles:
|
|||||||
ValidTargets: Ground
|
ValidTargets: Ground
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Arm: 5
|
Arm: 5
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 853
|
Inaccuracy: 853
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 2
|
RateOfTurn: 2
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
Speed: 341
|
Speed: 341
|
||||||
@@ -211,10 +211,10 @@ MammothMissiles:
|
|||||||
ValidTargets: Ground, Air
|
ValidTargets: Ground, Air
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Inaccuracy: 213
|
Inaccuracy: 213
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 10
|
RateOfTurn: 10
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 8
|
ContrailLength: 8
|
||||||
Speed: 213
|
Speed: 213
|
||||||
@@ -243,10 +243,10 @@ BoatMissile:
|
|||||||
Report: ROCKET2.AUD
|
Report: ROCKET2.AUD
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Inaccuracy: 213
|
Inaccuracy: 213
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 10
|
RateOfTurn: 10
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 8
|
ContrailLength: 8
|
||||||
Speed: 170
|
Speed: 170
|
||||||
@@ -278,10 +278,10 @@ TowerMissle:
|
|||||||
ValidTargets: Ground
|
ValidTargets: Ground
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 20
|
RateOfTurn: 20
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 8
|
ContrailLength: 8
|
||||||
Speed: 298
|
Speed: 298
|
||||||
@@ -309,9 +309,9 @@ SAMMissile:
|
|||||||
ValidTargets: Air
|
ValidTargets: Air
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Image: MISSILE
|
Image: MISSILE
|
||||||
ROT: 20
|
RateOfTurn: 20
|
||||||
Speed: 426
|
Speed: 426
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
@@ -338,7 +338,7 @@ HonestJohn:
|
|||||||
Report: ROCKET1.AUD
|
Report: ROCKET1.AUD
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Arm: 10
|
Arm: 10
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 213
|
Inaccuracy: 213
|
||||||
Image: patriot
|
Image: patriot
|
||||||
@@ -368,11 +368,11 @@ Patriot:
|
|||||||
Report: ROCKET2.AUD
|
Report: ROCKET2.AUD
|
||||||
ValidTargets: Air
|
ValidTargets: Air
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
High: yes
|
Blockable: false
|
||||||
Image: patriot
|
Image: patriot
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 8
|
ContrailLength: 8
|
||||||
ROT: 20
|
RateOfTurn: 20
|
||||||
Speed: 341
|
Speed: 341
|
||||||
RangeLimit: 30
|
RangeLimit: 30
|
||||||
Angle: 88
|
Angle: 88
|
||||||
@@ -391,3 +391,4 @@ Patriot:
|
|||||||
Warhead@3Eff: CreateEffect
|
Warhead@3Eff: CreateEffect
|
||||||
Explosion: poof
|
Explosion: poof
|
||||||
ImpactSound: xplos.aud
|
ImpactSound: xplos.aud
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
Flamethrower:
|
Flamethrower:
|
||||||
ReloadDelay: 55
|
ReloadDelay: 55
|
||||||
Range: 2c512
|
Range: 2c512
|
||||||
@@ -74,7 +73,7 @@ Grenade:
|
|||||||
Report: toss1.aud
|
Report: toss1.aud
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 119
|
Speed: 119
|
||||||
High: yes
|
Blockable: false
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Inaccuracy: 213
|
Inaccuracy: 213
|
||||||
Image: BOMB
|
Image: BOMB
|
||||||
@@ -236,3 +235,4 @@ Demolish:
|
|||||||
Warhead@2Eff: CreateEffect
|
Warhead@2Eff: CreateEffect
|
||||||
Explosion: building
|
Explosion: building
|
||||||
ImpactSound: xplobig6.aud
|
ImpactSound: xplobig6.aud
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ HeliAGGun:
|
|||||||
Report: gun5.aud
|
Report: gun5.aud
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 1c682
|
Speed: 1c682
|
||||||
High: True
|
Blockable: false
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 256
|
Spread: 256
|
||||||
Damage: 20
|
Damage: 20
|
||||||
@@ -61,7 +61,7 @@ HeliAAGun:
|
|||||||
Report: gun5.aud
|
Report: gun5.aud
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 1c682
|
Speed: 1c682
|
||||||
High: True
|
Blockable: false
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 20
|
Damage: 20
|
||||||
@@ -183,7 +183,7 @@ APCGun.AA:
|
|||||||
ValidTargets: Air
|
ValidTargets: Air
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 1c682
|
Speed: 1c682
|
||||||
High: true
|
Blockable: false
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 25
|
Damage: 25
|
||||||
@@ -192,3 +192,4 @@ APCGun.AA:
|
|||||||
Heavy: 50
|
Heavy: 50
|
||||||
Warhead@2Eff: CreateEffect
|
Warhead@2Eff: CreateEffect
|
||||||
Explosion: small_frag
|
Explosion: small_frag
|
||||||
|
|
||||||
|
|||||||
@@ -97,3 +97,4 @@ IonCannon:
|
|||||||
SmudgeType: Scorch
|
SmudgeType: Scorch
|
||||||
Size: 2,1
|
Size: 2,1
|
||||||
Delay: 6
|
Delay: 6
|
||||||
|
|
||||||
|
|||||||
@@ -486,7 +486,7 @@ wall:
|
|||||||
Type: Concrete
|
Type: Concrete
|
||||||
Crushable:
|
Crushable:
|
||||||
CrushClasses: Concretewall
|
CrushClasses: Concretewall
|
||||||
BlocksBullets:
|
BlocksProjectiles:
|
||||||
LineBuild:
|
LineBuild:
|
||||||
Range: 8
|
Range: 8
|
||||||
NodeTypes: wall, turret
|
NodeTypes: wall, turret
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ Bazooka:
|
|||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Inaccuracy: 96
|
Inaccuracy: 96
|
||||||
Image: RPG
|
Image: RPG
|
||||||
ROT: 5
|
RateOfTurn: 5
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 96
|
Spread: 96
|
||||||
@@ -104,7 +104,7 @@ Slung:
|
|||||||
ValidTargets: Ground
|
ValidTargets: Ground
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 320
|
Speed: 320
|
||||||
High: true
|
Blockable: false
|
||||||
Shadow: yes
|
Shadow: yes
|
||||||
Angle: 88
|
Angle: 88
|
||||||
Inaccuracy: 384
|
Inaccuracy: 384
|
||||||
@@ -183,7 +183,7 @@ QuadRockets:
|
|||||||
Arm: 0
|
Arm: 0
|
||||||
Inaccuracy: 96
|
Inaccuracy: 96
|
||||||
Image: RPG
|
Image: RPG
|
||||||
ROT: 10
|
RateOfTurn: 10
|
||||||
Speed: 256
|
Speed: 256
|
||||||
RangeLimit: 40
|
RangeLimit: 40
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
@@ -209,7 +209,7 @@ TurretGun:
|
|||||||
Report: TURRET1.WAV
|
Report: TURRET1.WAV
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 704
|
Speed: 704
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: no
|
Shadow: no
|
||||||
Inaccuracy: 288
|
Inaccuracy: 288
|
||||||
Image: 120mm
|
Image: 120mm
|
||||||
@@ -238,11 +238,11 @@ TowerMissile:
|
|||||||
BurstDelay: 15
|
BurstDelay: 15
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: yes
|
Shadow: yes
|
||||||
Inaccuracy: 384
|
Inaccuracy: 384
|
||||||
Image: MISSILE2
|
Image: MISSILE2
|
||||||
ROT: 10
|
RateOfTurn: 10
|
||||||
Speed: 256
|
Speed: 256
|
||||||
RangeLimit: 50
|
RangeLimit: 50
|
||||||
Angle: 110
|
Angle: 110
|
||||||
@@ -342,12 +342,12 @@ DevBullet:
|
|||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 358
|
Speed: 358
|
||||||
Arm: 5
|
Arm: 5
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: yes
|
Shadow: yes
|
||||||
Inaccuracy: 1c416
|
Inaccuracy: 1c416
|
||||||
Angle: 110
|
Angle: 110
|
||||||
Image: MISSILE2
|
Image: MISSILE2
|
||||||
ROT: 5
|
RateOfTurn: 5
|
||||||
ContrailLength: 5
|
ContrailLength: 5
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 384
|
Spread: 384
|
||||||
@@ -373,7 +373,7 @@ NerveGasMissile:
|
|||||||
Report: MISSLE1.WAV
|
Report: MISSLE1.WAV
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 448
|
Speed: 448
|
||||||
High: true
|
Blockable: false
|
||||||
Shadow: yes
|
Shadow: yes
|
||||||
Angle: 110
|
Angle: 110
|
||||||
Inaccuracy: 1c96
|
Inaccuracy: 1c96
|
||||||
@@ -403,7 +403,7 @@ NerveGasMissile:
|
|||||||
Report: MORTAR1.WAV
|
Report: MORTAR1.WAV
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 256
|
Speed: 256
|
||||||
High: true
|
Blockable: false
|
||||||
Shadow: yes
|
Shadow: yes
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Inaccuracy: 1c256
|
Inaccuracy: 1c256
|
||||||
@@ -451,7 +451,7 @@ ChainGun:
|
|||||||
Report: 20MMGUN1.WAV
|
Report: 20MMGUN1.WAV
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 1c256
|
Speed: 1c256
|
||||||
High: true
|
Blockable: false
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 96
|
Spread: 96
|
||||||
Damage: 20
|
Damage: 20
|
||||||
@@ -659,7 +659,7 @@ Grenade:
|
|||||||
Report:
|
Report:
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 204
|
Speed: 204
|
||||||
High: true
|
Blockable: false
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Inaccuracy: 416
|
Inaccuracy: 416
|
||||||
Image: BOMBS
|
Image: BOMBS
|
||||||
@@ -689,7 +689,7 @@ Shrapnel:
|
|||||||
Report:
|
Report:
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 50, 125
|
Speed: 50, 125
|
||||||
High: true
|
Blockable: false
|
||||||
Angle: 91, 264
|
Angle: 91, 264
|
||||||
Inaccuracy: 416
|
Inaccuracy: 416
|
||||||
Image: bombs
|
Image: bombs
|
||||||
|
|||||||
@@ -462,7 +462,7 @@
|
|||||||
DestroyedSounds: sandbag2.aud
|
DestroyedSounds: sandbag2.aud
|
||||||
Crushable:
|
Crushable:
|
||||||
CrushClasses: wall
|
CrushClasses: wall
|
||||||
BlocksBullets:
|
BlocksProjectiles:
|
||||||
LineBuild:
|
LineBuild:
|
||||||
Range: 8
|
Range: 8
|
||||||
NodeTypes: wall
|
NodeTypes: wall
|
||||||
|
|||||||
@@ -134,6 +134,10 @@ DD:
|
|||||||
Weapon: DepthCharge
|
Weapon: DepthCharge
|
||||||
LocalOffset: 0,-100,0, 0,100,0
|
LocalOffset: 0,-100,0, 0,100,0
|
||||||
LocalYaw: 80, -80
|
LocalYaw: 80, -80
|
||||||
|
Armament@TERTIARY:
|
||||||
|
Weapon: StingerAA
|
||||||
|
LocalOffset: 0,-100,0, 0,100,0
|
||||||
|
LocalYaw: 64, -64
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 38,38
|
Bounds: 38,38
|
||||||
|
|||||||
@@ -251,3 +251,4 @@ OreExplosion:
|
|||||||
Warhead@3Eff: CreateEffect
|
Warhead@3Eff: CreateEffect
|
||||||
Explosion: med_explosion
|
Explosion: med_explosion
|
||||||
ImpactSound: kaboom25.aud
|
ImpactSound: kaboom25.aud
|
||||||
|
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ TurretGun:
|
|||||||
Report: TANK5.AUD
|
Report: TANK5.AUD
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 204
|
Speed: 204
|
||||||
High: true
|
Blockable: false
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Inaccuracy: 1c682
|
Inaccuracy: 1c682
|
||||||
Image: 120MM
|
Image: 120MM
|
||||||
@@ -176,7 +176,7 @@ TurretGun:
|
|||||||
Report: TURRET1.AUD
|
Report: TURRET1.AUD
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 204
|
Speed: 204
|
||||||
High: true
|
Blockable: false
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Inaccuracy: 2c938
|
Inaccuracy: 2c938
|
||||||
Image: 120MM
|
Image: 120MM
|
||||||
@@ -228,3 +228,4 @@ TurretGun:
|
|||||||
Explosion: small_splash
|
Explosion: small_splash
|
||||||
ImpactSound: splash9.aud
|
ImpactSound: splash9.aud
|
||||||
ValidImpactTypes: Water
|
ValidImpactTypes: Water
|
||||||
|
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ Maverick:
|
|||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 256
|
Speed: 256
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: true
|
Blockable: false
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Inaccuracy: 512
|
Inaccuracy: 512
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 5
|
RateOfTurn: 5
|
||||||
RangeLimit: 60
|
RangeLimit: 60
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
@@ -45,12 +45,12 @@ Dragon:
|
|||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 213
|
Speed: 213
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: true
|
Blockable: false
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 5
|
RateOfTurn: 5
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
@@ -83,11 +83,11 @@ HellfireAG:
|
|||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 256
|
Speed: 256
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: true
|
Blockable: false
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 10
|
RateOfTurn: 10
|
||||||
RangeLimit: 20
|
RangeLimit: 20
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
@@ -120,11 +120,11 @@ HellfireAA:
|
|||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 384
|
Speed: 384
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: true
|
Blockable: false
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 10
|
RateOfTurn: 10
|
||||||
RangeLimit: 20
|
RangeLimit: 20
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
@@ -156,11 +156,11 @@ MammothTusk:
|
|||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 341
|
Speed: 341
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: true
|
Blockable: false
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 15
|
RateOfTurn: 15
|
||||||
RangeLimit: 40
|
RangeLimit: 40
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 256
|
Spread: 256
|
||||||
@@ -194,10 +194,10 @@ Nike:
|
|||||||
ValidTargets: Air
|
ValidTargets: Air
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 3
|
Arm: 3
|
||||||
High: true
|
Blockable: false
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Image: MISSILE
|
Image: MISSILE
|
||||||
ROT: 25
|
RateOfTurn: 25
|
||||||
RangeLimit: 50
|
RangeLimit: 50
|
||||||
Speed: 341
|
Speed: 341
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
@@ -224,10 +224,10 @@ RedEye:
|
|||||||
ValidTargets: Air
|
ValidTargets: Air
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 3
|
Arm: 3
|
||||||
High: true
|
Blockable: false
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Image: MISSILE
|
Image: MISSILE
|
||||||
ROT: 20
|
RateOfTurn: 20
|
||||||
RangeLimit: 30
|
RangeLimit: 30
|
||||||
Speed: 298
|
Speed: 298
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
@@ -253,7 +253,7 @@ SubMissile:
|
|||||||
Report: MISSILE6.AUD
|
Report: MISSILE6.AUD
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 102
|
Speed: 102
|
||||||
High: true
|
Blockable: false
|
||||||
Angle: 165
|
Angle: 165
|
||||||
Inaccuracy: 2c938
|
Inaccuracy: 2c938
|
||||||
Image: MISSILE
|
Image: MISSILE
|
||||||
@@ -285,15 +285,14 @@ Stinger:
|
|||||||
Report: MISSILE6.AUD
|
Report: MISSILE6.AUD
|
||||||
Burst: 2
|
Burst: 2
|
||||||
BurstDelay: 0
|
BurstDelay: 0
|
||||||
ValidTargets: Air, Ground, Water
|
ValidTargets: Ground, Water
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 3
|
Arm: 3
|
||||||
High: true
|
Blockable: false
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 20
|
RateOfTurn: 20
|
||||||
RangeLimit: 50
|
RangeLimit: 50
|
||||||
TurboBoost: true
|
|
||||||
Speed: 170
|
Speed: 170
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
@@ -320,12 +319,51 @@ Stinger:
|
|||||||
ImpactSound: splash9.aud
|
ImpactSound: splash9.aud
|
||||||
ValidImpactTypes: Water
|
ValidImpactTypes: Water
|
||||||
|
|
||||||
|
StingerAA:
|
||||||
|
ReloadDelay: 60
|
||||||
|
Range: 9c0
|
||||||
|
Report: MISSILE6.AUD
|
||||||
|
Burst: 2
|
||||||
|
BurstDelay: 0
|
||||||
|
ValidTargets: Air
|
||||||
|
Projectile: Missile
|
||||||
|
Arm: 3
|
||||||
|
Blockable: false
|
||||||
|
ContrailLength: 10
|
||||||
|
Image: DRAGON
|
||||||
|
RateOfTurn: 20
|
||||||
|
RangeLimit: 50
|
||||||
|
Speed: 255
|
||||||
|
Warhead@1Dam: SpreadDamage
|
||||||
|
Spread: 128
|
||||||
|
Damage: 30
|
||||||
|
DeathType: 4
|
||||||
|
ValidTargets: Air, Ground, Water
|
||||||
|
Versus:
|
||||||
|
None: 30
|
||||||
|
Wood: 75
|
||||||
|
Light: 75
|
||||||
|
Concrete: 50
|
||||||
|
Warhead@2Smu: LeaveSmudge
|
||||||
|
SmudgeType: Crater
|
||||||
|
Warhead@3Eff: CreateEffect
|
||||||
|
Explosion: med_explosion
|
||||||
|
ImpactSound: kaboom25.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:
|
TorpTube:
|
||||||
ReloadDelay: 100
|
ReloadDelay: 100
|
||||||
Range: 9c0
|
Range: 9c0
|
||||||
Report: TORPEDO1.AUD
|
Report: TORPEDO1.AUD
|
||||||
ValidTargets: Water, Underwater, Bridge
|
ValidTargets: Water, Underwater, Bridge
|
||||||
Palette: shadow
|
|
||||||
Burst: 2
|
Burst: 2
|
||||||
BurstDelay: 20
|
BurstDelay: 20
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
@@ -333,9 +371,10 @@ TorpTube:
|
|||||||
Arm: 3
|
Arm: 3
|
||||||
Speed: 85
|
Speed: 85
|
||||||
Trail: bubbles
|
Trail: bubbles
|
||||||
ROT: 1
|
RateOfTurn: 1
|
||||||
RangeLimit: 160
|
RangeLimit: 160
|
||||||
BoundToTerrainType: Water
|
BoundToTerrainType: Water
|
||||||
|
Palette: shadow
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 426
|
Spread: 426
|
||||||
Damage: 180
|
Damage: 180
|
||||||
@@ -368,7 +407,7 @@ SCUD:
|
|||||||
Report: MISSILE1.AUD
|
Report: MISSILE1.AUD
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 170
|
Speed: 170
|
||||||
High: true
|
Blockable: false
|
||||||
Shadow: false
|
Shadow: false
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
TrailDelay: 5
|
TrailDelay: 5
|
||||||
@@ -404,12 +443,12 @@ APTusk:
|
|||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 298
|
Speed: 298
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: true
|
Blockable: false
|
||||||
Trail: smokey
|
Trail: smokey
|
||||||
ContrailLength: 10
|
ContrailLength: 10
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 10
|
RateOfTurn: 10
|
||||||
RangeLimit: 22
|
RangeLimit: 22
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
@@ -431,3 +470,4 @@ APTusk:
|
|||||||
Explosion: med_splash
|
Explosion: med_splash
|
||||||
ImpactSound: splash9.aud
|
ImpactSound: splash9.aud
|
||||||
ValidImpactTypes: Water
|
ValidImpactTypes: Water
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ Napalm:
|
|||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Image: BOMBLET
|
Image: BOMBLET
|
||||||
Speed: 85
|
Speed: 85
|
||||||
High: yes
|
Blockable: false
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 170
|
Spread: 170
|
||||||
Damage: 100
|
Damage: 100
|
||||||
@@ -83,7 +83,7 @@ Grenade:
|
|||||||
Report: grenade1.aud
|
Report: grenade1.aud
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 136
|
Speed: 136
|
||||||
High: true
|
Blockable: false
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Inaccuracy: 554
|
Inaccuracy: 554
|
||||||
Image: BOMB
|
Image: BOMB
|
||||||
@@ -115,7 +115,7 @@ DepthCharge:
|
|||||||
Speed: 85
|
Speed: 85
|
||||||
Image: BOMB
|
Image: BOMB
|
||||||
Angle: 62
|
Angle: 62
|
||||||
High: true
|
Blockable: false
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
@@ -295,3 +295,4 @@ MADTankDetonate:
|
|||||||
Warhead@3Eff: CreateEffect
|
Warhead@3Eff: CreateEffect
|
||||||
Explosion: med_explosion
|
Explosion: med_explosion
|
||||||
ImpactSound: mineblo1.aud
|
ImpactSound: mineblo1.aud
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ ZSU-23:
|
|||||||
ValidTargets: Air
|
ValidTargets: Air
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 3c340
|
Speed: 3c340
|
||||||
High: true
|
Blockable: false
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 213
|
Spread: 213
|
||||||
Damage: 12
|
Damage: 12
|
||||||
@@ -162,7 +162,7 @@ ChainGun:
|
|||||||
Report: GUN13.AUD
|
Report: GUN13.AUD
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 1c682
|
Speed: 1c682
|
||||||
High: true
|
Blockable: false
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 30
|
Damage: 30
|
||||||
@@ -187,7 +187,7 @@ ChainGun.Yak:
|
|||||||
Report: GUN13.AUD
|
Report: GUN13.AUD
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 1c682
|
Speed: 1c682
|
||||||
High: true
|
Blockable: false
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 40
|
Damage: 40
|
||||||
@@ -300,7 +300,7 @@ FLAK-23:
|
|||||||
ValidTargets: Air, Ground, Water
|
ValidTargets: Air, Ground, Water
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 1c682
|
Speed: 1c682
|
||||||
High: true
|
Blockable: false
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 213
|
Spread: 213
|
||||||
Damage: 20
|
Damage: 20
|
||||||
@@ -337,3 +337,4 @@ Sniper:
|
|||||||
Light: 0
|
Light: 0
|
||||||
Heavy: 0
|
Heavy: 0
|
||||||
Concrete: 0
|
Concrete: 0
|
||||||
|
|
||||||
|
|||||||
@@ -111,3 +111,4 @@ Atomic:
|
|||||||
SmudgeType: Scorch
|
SmudgeType: Scorch
|
||||||
Size: 5
|
Size: 5
|
||||||
Delay: 20
|
Delay: 20
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@
|
|||||||
DestroyedSounds: crmble2.aud
|
DestroyedSounds: crmble2.aud
|
||||||
Crushable:
|
Crushable:
|
||||||
CrushClasses: wall
|
CrushClasses: wall
|
||||||
BlocksBullets:
|
BlocksProjectiles:
|
||||||
LineBuild:
|
LineBuild:
|
||||||
Range: 8
|
Range: 8
|
||||||
NodeTypes: wall
|
NodeTypes: wall
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ Grenade:
|
|||||||
Range: 4c512
|
Range: 4c512
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 85
|
Speed: 85
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Inaccuracy: 554
|
Inaccuracy: 554
|
||||||
@@ -88,18 +88,18 @@ Bazooka:
|
|||||||
MinRange: 0c512
|
MinRange: 0c512
|
||||||
Report: RKETINF1.AUD
|
Report: RKETINF1.AUD
|
||||||
ValidTargets: Ground, Air
|
ValidTargets: Ground, Air
|
||||||
Palette: ra
|
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 213
|
Speed: 213
|
||||||
Arm: 3
|
Arm: 3
|
||||||
High: true
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 8
|
RateOfTurn: 8
|
||||||
RangeLimit: 50
|
RangeLimit: 50
|
||||||
CloseEnough: 256
|
CloseEnough: 256
|
||||||
LockOnProbability: 80
|
LockOnProbability: 80
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 35
|
Damage: 35
|
||||||
@@ -131,16 +131,16 @@ MultiCluster:
|
|||||||
Range: 6c0
|
Range: 6c0
|
||||||
Report: MISL1.AUD
|
Report: MISL1.AUD
|
||||||
ValidTargets: Ground
|
ValidTargets: Ground
|
||||||
Palette: ra
|
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 170
|
Speed: 170
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 8
|
RateOfTurn: 8
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 65
|
Damage: 65
|
||||||
@@ -249,7 +249,7 @@ CyCannon:
|
|||||||
ValidTargets: Ground
|
ValidTargets: Ground
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 192
|
Speed: 192
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Image: TORPEDO
|
Image: TORPEDO
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
@@ -352,13 +352,13 @@ FiendShard:
|
|||||||
Burst: 3
|
Burst: 3
|
||||||
Range: 5c0
|
Range: 5c0
|
||||||
Report: FIEND2.AUD
|
Report: FIEND2.AUD
|
||||||
Palette: greentiberium
|
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 213
|
Speed: 213
|
||||||
Image: CRYSTAL4
|
Image: CRYSTAL4
|
||||||
Inaccuracy: 512
|
Inaccuracy: 512
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Angle: 88
|
Angle: 88
|
||||||
|
Palette: greentiberium
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Damage: 35
|
Damage: 35
|
||||||
DeathType: 1
|
DeathType: 1
|
||||||
@@ -403,16 +403,16 @@ HoverMissile:
|
|||||||
Range: 8c0
|
Range: 8c0
|
||||||
Report: HOVRMIS1.AUD
|
Report: HOVRMIS1.AUD
|
||||||
ValidTargets: Ground, Air
|
ValidTargets: Ground, Air
|
||||||
Palette: ra
|
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 213
|
Speed: 213
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 8
|
RateOfTurn: 8
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 30
|
Damage: 30
|
||||||
@@ -445,12 +445,12 @@ HoverMissile:
|
|||||||
Report: 120MMF.AUD
|
Report: 120MMF.AUD
|
||||||
Burst: 2
|
Burst: 2
|
||||||
BurstDelay: 5
|
BurstDelay: 5
|
||||||
Palette: ra
|
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 682
|
Speed: 682
|
||||||
Image: 120mm
|
Image: 120mm
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Angle: 62
|
Angle: 62
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 50
|
Damage: 50
|
||||||
@@ -478,16 +478,16 @@ MammothTusk:
|
|||||||
Report: MISL1.AUD
|
Report: MISL1.AUD
|
||||||
ValidTargets: Air
|
ValidTargets: Air
|
||||||
Burst: 2
|
Burst: 2
|
||||||
Palette: ra
|
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 0
|
Arm: 0
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 10
|
RateOfTurn: 10
|
||||||
Speed: 170
|
Speed: 170
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 171
|
Spread: 171
|
||||||
Damage: 40
|
Damage: 40
|
||||||
@@ -638,16 +638,16 @@ BikeMissile:
|
|||||||
Range: 5c0
|
Range: 5c0
|
||||||
Report: MISL1.AUD
|
Report: MISL1.AUD
|
||||||
ValidTargets: Ground
|
ValidTargets: Ground
|
||||||
Palette: ra
|
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 8
|
RateOfTurn: 8
|
||||||
Speed: 213
|
Speed: 213
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 256
|
Spread: 256
|
||||||
Damage: 40
|
Damage: 40
|
||||||
@@ -742,16 +742,16 @@ Dragon:
|
|||||||
Burst: 2
|
Burst: 2
|
||||||
Report: MISL1.AUD
|
Report: MISL1.AUD
|
||||||
ValidTargets: Ground, Air
|
ValidTargets: Ground, Air
|
||||||
Palette: ra
|
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 213
|
Speed: 213
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 8
|
RateOfTurn: 8
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 30
|
Damage: 30
|
||||||
@@ -782,12 +782,12 @@ Dragon:
|
|||||||
ReloadDelay: 50
|
ReloadDelay: 50
|
||||||
Range: 6c768
|
Range: 6c768
|
||||||
Report: 120MMF.AUD
|
Report: 120MMF.AUD
|
||||||
Palette: ra
|
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 682
|
Speed: 682
|
||||||
Image: 120mm
|
Image: 120mm
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Angle: 62
|
Angle: 62
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 36
|
Damage: 36
|
||||||
@@ -813,13 +813,13 @@ Dragon:
|
|||||||
ReloadDelay: 110
|
ReloadDelay: 110
|
||||||
Range: 18c0
|
Range: 18c0
|
||||||
Report: 120MMF.AUD
|
Report: 120MMF.AUD
|
||||||
Palette: ra
|
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 170
|
Speed: 170
|
||||||
Image: 120mm
|
Image: 120mm
|
||||||
Angle: 165
|
Angle: 165
|
||||||
Shadow: true
|
Shadow: true
|
||||||
High: yes
|
Blockable: false
|
||||||
|
Palette: ra
|
||||||
MinRange: 5c0
|
MinRange: 5c0
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 298
|
Spread: 298
|
||||||
@@ -849,16 +849,16 @@ Hellfire:
|
|||||||
Report: ORCAMIS1.AUD
|
Report: ORCAMIS1.AUD
|
||||||
Burst: 2
|
Burst: 2
|
||||||
ValidTargets: Ground, Air
|
ValidTargets: Ground, Air
|
||||||
Palette: ra
|
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 256
|
Speed: 256
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 8
|
RateOfTurn: 8
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 85
|
Spread: 85
|
||||||
Damage: 30
|
Damage: 30
|
||||||
@@ -888,11 +888,11 @@ Hellfire:
|
|||||||
Bomb:
|
Bomb:
|
||||||
ReloadDelay: 10
|
ReloadDelay: 10
|
||||||
Range: 5c0
|
Range: 5c0
|
||||||
Palette: player
|
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 170
|
Speed: 170
|
||||||
Image: canister
|
Image: canister
|
||||||
Shadow: true
|
Shadow: true
|
||||||
|
Palette: player
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 298
|
Spread: 298
|
||||||
Damage: 160
|
Damage: 160
|
||||||
@@ -924,11 +924,11 @@ Proton:
|
|||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 256
|
Speed: 256
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: TORPEDO
|
Image: TORPEDO
|
||||||
ROT: 1
|
RateOfTurn: 1
|
||||||
RangeLimit: 35
|
RangeLimit: 35
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
@@ -1064,13 +1064,13 @@ RPGTower:
|
|||||||
ReloadDelay: 80
|
ReloadDelay: 80
|
||||||
Range: 8c0
|
Range: 8c0
|
||||||
Report: GLNCH4.AUD
|
Report: GLNCH4.AUD
|
||||||
Palette: player
|
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 384
|
Speed: 384
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Image: canister
|
Image: canister
|
||||||
|
Palette: player
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 110
|
Damage: 110
|
||||||
@@ -1098,16 +1098,16 @@ SAMTower:
|
|||||||
Range: 15c0
|
Range: 15c0
|
||||||
Report: SAMSHOT1.AUD
|
Report: SAMSHOT1.AUD
|
||||||
ValidTargets: Air
|
ValidTargets: Air
|
||||||
Palette: ra
|
|
||||||
Projectile: Missile
|
Projectile: Missile
|
||||||
Speed: 298
|
Speed: 298
|
||||||
Arm: 2
|
Arm: 2
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Inaccuracy: 128
|
Inaccuracy: 128
|
||||||
Image: DRAGON
|
Image: DRAGON
|
||||||
ROT: 5
|
RateOfTurn: 5
|
||||||
RangeLimit: 60
|
RangeLimit: 60
|
||||||
|
Palette: ra
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 128
|
Spread: 128
|
||||||
Damage: 33
|
Damage: 33
|
||||||
@@ -1149,7 +1149,7 @@ EMPulseCannon:
|
|||||||
Report: PLSECAN2.AUD
|
Report: PLSECAN2.AUD
|
||||||
Projectile: Bullet
|
Projectile: Bullet
|
||||||
Speed: 425
|
Speed: 425
|
||||||
High: yes
|
Blockable: false
|
||||||
Shadow: true
|
Shadow: true
|
||||||
Angle: 62
|
Angle: 62
|
||||||
Image: pulsball
|
Image: pulsball
|
||||||
@@ -1266,3 +1266,4 @@ ClusterMissile:
|
|||||||
SmudgeType: SmallScorch
|
SmudgeType: SmallScorch
|
||||||
Size: 5
|
Size: 5
|
||||||
Delay: 20
|
Delay: 20
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user