Move weapon/turret definitions out of AttackBase.
Weapons are now defined with the Armament trait and turret parameters live in Turreted. This has the side effect of allowing any number and distribution of weapons and turrets.
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
@@ -26,7 +27,7 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
string lastDamage = "";
|
string lastDamage = "";
|
||||||
|
|
||||||
public RenderGunboat(Actor self)
|
public RenderGunboat(Actor self)
|
||||||
: base(self, () => self.HasTrait<Turreted>() ? self.Trait<Turreted>().turretFacing : 0)
|
: base(self, () => self.HasTrait<Turreted>() ? self.TraitsImplementing<Turreted>().First().turretFacing : 0)
|
||||||
{
|
{
|
||||||
facing = self.Trait<IFacing>();
|
facing = self.Trait<IFacing>();
|
||||||
anim.Play("left");
|
anim.Play("left");
|
||||||
|
|||||||
@@ -200,9 +200,10 @@ namespace OpenRA.Mods.RA.AI
|
|||||||
return RelativeValue(own, enemy, 100, SumOfValues<AttackBase>, (Actor a) =>
|
return RelativeValue(own, enemy, 100, SumOfValues<AttackBase>, (Actor a) =>
|
||||||
{
|
{
|
||||||
int sumOfDamage = 0;
|
int sumOfDamage = 0;
|
||||||
foreach (var weap in a.Trait<AttackBase>().Weapons)
|
var arms = a.TraitsImplementing<Armament>();
|
||||||
if (weap.Info.Warheads[0] != null)
|
foreach (var arm in arms)
|
||||||
sumOfDamage += weap.Info.Warheads[0].Damage;
|
if (arm.Weapon.Warheads[0] != null)
|
||||||
|
sumOfDamage += arm.Weapon.Warheads[0].Damage;
|
||||||
return sumOfDamage;
|
return sumOfDamage;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -230,12 +230,13 @@ namespace OpenRA.Mods.RA.AI
|
|||||||
if (!target.HasTrait<TargetableUnit<TargetableUnitInfo>>() &&
|
if (!target.HasTrait<TargetableUnit<TargetableUnitInfo>>() &&
|
||||||
!target.HasTrait<TargetableBuilding>()) return false;
|
!target.HasTrait<TargetableBuilding>()) return false;
|
||||||
|
|
||||||
foreach (var weap in a.Trait<AttackBase>().Weapons)
|
var arms = a.TraitsImplementing<Armament>();
|
||||||
|
foreach (var arm in arms)
|
||||||
if (target.HasTrait<TargetableUnit<TargetableUnitInfo>>() &&
|
if (target.HasTrait<TargetableUnit<TargetableUnitInfo>>() &&
|
||||||
weap.Info.ValidTargets.Intersect(target.Trait<TargetableUnit<TargetableUnitInfo>>().TargetTypes) != null)
|
arm.Weapon.ValidTargets.Intersect(target.Trait<TargetableUnit<TargetableUnitInfo>>().TargetTypes) != null)
|
||||||
return true;
|
return true;
|
||||||
else if (target.HasTrait<TargetableBuilding>() &&
|
else if (target.HasTrait<TargetableBuilding>() &&
|
||||||
weap.Info.ValidTargets.Intersect(target.Trait<TargetableBuilding>().TargetTypes) != null)
|
arm.Weapon.ValidTargets.Intersect(target.Trait<TargetableBuilding>().TargetTypes) != null)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -253,12 +254,15 @@ namespace OpenRA.Mods.RA.AI
|
|||||||
foreach (var unit in units)
|
foreach (var unit in units)
|
||||||
if (unit != null && unit.HasTrait<AttackBase>() && !unit.HasTrait<Aircraft>()
|
if (unit != null && unit.HasTrait<AttackBase>() && !unit.HasTrait<Aircraft>()
|
||||||
&& !unit.IsDisabled())
|
&& !unit.IsDisabled())
|
||||||
foreach (var weap in unit.Trait<AttackBase>().Weapons)
|
{
|
||||||
if (weap.Info.ValidTargets.Contains("Air"))
|
var arms = unit.TraitsImplementing<Armament>();
|
||||||
|
foreach (var a in arms)
|
||||||
|
if (a.Weapon.ValidTargets.Contains("Air"))
|
||||||
{
|
{
|
||||||
missileUnitsCount++;
|
missileUnitsCount++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return missileUnitsCount;
|
return missileUnitsCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
198
OpenRA.Mods.RA/Armament.cs
Executable file
198
OpenRA.Mods.RA/Armament.cs
Executable file
@@ -0,0 +1,198 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2011 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.FileFormats;
|
||||||
|
using OpenRA.GameRules;
|
||||||
|
using OpenRA.Mods.RA.Render;
|
||||||
|
using OpenRA.Traits;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.RA
|
||||||
|
{
|
||||||
|
public class Barrel
|
||||||
|
{
|
||||||
|
public PVecInt TurretSpaceOffset; // position in turret space
|
||||||
|
public PVecInt ScreenSpaceOffset; // screen-space hack to make things line up good.
|
||||||
|
public int Facing; // deviation from turret facing
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ArmamentInfo : ITraitInfo, Requires<AttackBaseInfo>
|
||||||
|
{
|
||||||
|
[WeaponReference]
|
||||||
|
[Desc("Has to be defined here and in weapons.yaml.")]
|
||||||
|
public readonly string Weapon = null;
|
||||||
|
public readonly string Turret = "primary";
|
||||||
|
public readonly int Recoil = 0;
|
||||||
|
public readonly int FireDelay = 0;
|
||||||
|
|
||||||
|
public readonly float RecoilRecovery = 0.2f;
|
||||||
|
public readonly int[] LocalOffset = { };
|
||||||
|
|
||||||
|
public object Create(ActorInitializer init) { return new Armament(init.self, this); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Armament : ITick
|
||||||
|
{
|
||||||
|
public readonly ArmamentInfo Info;
|
||||||
|
public readonly WeaponInfo Weapon;
|
||||||
|
public readonly Barrel[] Barrels;
|
||||||
|
Lazy<Turreted> Turret;
|
||||||
|
|
||||||
|
public float Recoil { get; private set; }
|
||||||
|
public int FireDelay { get; private set; }
|
||||||
|
public int Burst { get; private set; }
|
||||||
|
|
||||||
|
public Armament(Actor self, ArmamentInfo info)
|
||||||
|
{
|
||||||
|
Info = info;
|
||||||
|
|
||||||
|
// We can't soft-depend on TraitInfo, so we have to wait
|
||||||
|
// until runtime to cache this
|
||||||
|
Turret = Lazy.New(() => self.TraitsImplementing<Turreted>().FirstOrDefault(t => t.info.Turret == info.Turret));
|
||||||
|
|
||||||
|
Weapon = Rules.Weapons[info.Weapon.ToLowerInvariant()];
|
||||||
|
Burst = Weapon.Burst;
|
||||||
|
|
||||||
|
var barrels = new List<Barrel>();
|
||||||
|
for (var i = 0; i < info.LocalOffset.Length / 5; i++)
|
||||||
|
barrels.Add(new Barrel
|
||||||
|
{
|
||||||
|
TurretSpaceOffset = new PVecInt(info.LocalOffset[5 * i], info.LocalOffset[5 * i + 1]),
|
||||||
|
ScreenSpaceOffset = new PVecInt(info.LocalOffset[5 * i + 2], info.LocalOffset[5 * i + 3]),
|
||||||
|
Facing = info.LocalOffset[5 * i + 4],
|
||||||
|
});
|
||||||
|
|
||||||
|
// if no barrels specified, the default is "turret position; turret facing".
|
||||||
|
if (barrels.Count == 0)
|
||||||
|
barrels.Add(new Barrel { TurretSpaceOffset = PVecInt.Zero, ScreenSpaceOffset = PVecInt.Zero, Facing = 0 });
|
||||||
|
|
||||||
|
Barrels = barrels.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Tick(Actor self)
|
||||||
|
{
|
||||||
|
if (FireDelay > 0)
|
||||||
|
--FireDelay;
|
||||||
|
Recoil = Math.Max(0f, Recoil - Info.RecoilRecovery);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CheckFire(Actor self, AttackBase attack, IMove move, IFacing facing, Target target)
|
||||||
|
{
|
||||||
|
if (FireDelay > 0) return;
|
||||||
|
|
||||||
|
var limitedAmmo = self.TraitOrDefault<LimitedAmmo>();
|
||||||
|
if (limitedAmmo != null && !limitedAmmo.HasAmmo())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!Combat.IsInRange(self.CenterLocation, Weapon.Range, target)) return;
|
||||||
|
if (Combat.IsInRange(self.CenterLocation, Weapon.MinRange, target)) return;
|
||||||
|
if (!IsValidAgainst(self.World, target)) return;
|
||||||
|
|
||||||
|
var barrel = Barrels[Burst % Barrels.Length];
|
||||||
|
var destMove = target.IsActor ? target.Actor.TraitOrDefault<IMove>() : null;
|
||||||
|
|
||||||
|
var args = new ProjectileArgs
|
||||||
|
{
|
||||||
|
weapon = Weapon,
|
||||||
|
firedBy = self,
|
||||||
|
target = target,
|
||||||
|
|
||||||
|
src = (self.CenterLocation + (PVecInt)MuzzlePxPosition(self, facing, barrel).ToInt2()),
|
||||||
|
srcAltitude = move != null ? move.Altitude : 0,
|
||||||
|
dest = target.CenterLocation,
|
||||||
|
destAltitude = destMove != null ? destMove.Altitude : 0,
|
||||||
|
|
||||||
|
facing = barrel.Facing +
|
||||||
|
(Turret.Value != null ? Turret.Value.turretFacing :
|
||||||
|
facing != null ? facing.Facing : Util.GetFacing(target.CenterLocation - self.CenterLocation, 0)),
|
||||||
|
|
||||||
|
firepowerModifier = self.TraitsImplementing<IFirepowerModifier>()
|
||||||
|
.Select(a => a.GetFirepowerModifier())
|
||||||
|
.Product()
|
||||||
|
};
|
||||||
|
|
||||||
|
attack.ScheduleDelayedAction(Info.FireDelay, () =>
|
||||||
|
{
|
||||||
|
if (args.weapon.Projectile != null)
|
||||||
|
{
|
||||||
|
var projectile = args.weapon.Projectile.Create(args);
|
||||||
|
if (projectile != null)
|
||||||
|
self.World.Add(projectile);
|
||||||
|
|
||||||
|
if (args.weapon.Report != null && args.weapon.Report.Any())
|
||||||
|
Sound.Play(args.weapon.Report.Random(self.World.SharedRandom) + ".aud", self.CenterLocation);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
foreach (var na in self.TraitsImplementing<INotifyAttack>())
|
||||||
|
na.Attacking(self, target);
|
||||||
|
|
||||||
|
Recoil = Info.Recoil;
|
||||||
|
|
||||||
|
if (--Burst > 0)
|
||||||
|
FireDelay = Weapon.BurstDelay;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FireDelay = Weapon.ROF;
|
||||||
|
Burst = Weapon.Burst;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsValidAgainst(World world, Target target)
|
||||||
|
{
|
||||||
|
if (target.IsActor)
|
||||||
|
return Combat.WeaponValidForTarget(Weapon, target.Actor);
|
||||||
|
else
|
||||||
|
return Combat.WeaponValidForTarget(Weapon, world, target.CenterLocation.ToCPos());
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsReloading { get { return FireDelay > 0; } }
|
||||||
|
|
||||||
|
PVecFloat GetUnitspaceBarrelOffset(Actor self, IFacing facing, Barrel b)
|
||||||
|
{
|
||||||
|
if (Turret.Value == null && facing == null)
|
||||||
|
return PVecFloat.Zero;
|
||||||
|
|
||||||
|
var turretFacing = Turret.Value != null ? Turret.Value.turretFacing : facing.Facing;
|
||||||
|
return (PVecFloat)Util.RotateVectorByFacing(b.TurretSpaceOffset.ToFloat2(), turretFacing, .7f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PVecFloat MuzzlePxPosition(Actor self, IFacing facing, Barrel b)
|
||||||
|
{
|
||||||
|
PVecFloat pos = b.ScreenSpaceOffset;
|
||||||
|
|
||||||
|
// local facing offset doesn't make sense for actors that don't rotate
|
||||||
|
if (Turret.Value == null && facing == null)
|
||||||
|
return pos;
|
||||||
|
|
||||||
|
if (Turret.Value != null)
|
||||||
|
pos += Turret.Value.PxPosition(self, facing);
|
||||||
|
|
||||||
|
// Add local unitspace/turretspace offset
|
||||||
|
var f = Turret.Value != null ? Turret.Value.turretFacing : facing.Facing;
|
||||||
|
|
||||||
|
// This is going away, so no point adding unnecessary usings
|
||||||
|
var ru = self.TraitOrDefault<RenderUnit>();
|
||||||
|
var numDirs = (ru != null) ? ru.anim.CurrentSequence.Facings : 8;
|
||||||
|
var quantizedFacing = Util.QuantizeFacing(f, numDirs) * (256 / numDirs);
|
||||||
|
|
||||||
|
pos += (PVecFloat)Util.RotateVectorByFacing(b.TurretSpaceOffset.ToFloat2(), quantizedFacing, .7f);
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PVecFloat RecoilPxOffset(Actor self, int facing)
|
||||||
|
{
|
||||||
|
var localRecoil = new float2(0, Recoil);
|
||||||
|
return (PVecFloat)Util.RotateVectorByFacing(localRecoil, facing, .7f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,70 +19,34 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
public abstract class AttackBaseInfo : ITraitInfo
|
public abstract class AttackBaseInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[WeaponReference]
|
|
||||||
[Desc("Has to be defined here and in weapons.yaml.")]
|
|
||||||
public readonly string PrimaryWeapon = null;
|
|
||||||
[WeaponReference]
|
|
||||||
public readonly string SecondaryWeapon = null;
|
|
||||||
public readonly int PrimaryRecoil = 0;
|
|
||||||
public readonly int SecondaryRecoil = 0;
|
|
||||||
public readonly float PrimaryRecoilRecovery = 0.2f;
|
|
||||||
public readonly float SecondaryRecoilRecovery = 0.2f;
|
|
||||||
public readonly int[] PrimaryLocalOffset = { };
|
|
||||||
public readonly int[] SecondaryLocalOffset = { };
|
|
||||||
public readonly int[] PrimaryOffset = { 0, 0 };
|
|
||||||
public readonly int[] SecondaryOffset = null;
|
|
||||||
public readonly int FireDelay = 0;
|
|
||||||
|
|
||||||
public readonly bool AlignIdleTurrets = false;
|
|
||||||
public readonly bool CanAttackGround = true;
|
public readonly bool CanAttackGround = true;
|
||||||
|
|
||||||
public readonly int MinimumScanTimeInterval = 30;
|
public readonly int MinimumScanTimeInterval = 30;
|
||||||
public readonly int MaximumScanTimeInterval = 60;
|
public readonly int MaximumScanTimeInterval = 60;
|
||||||
|
|
||||||
public abstract object Create(ActorInitializer init);
|
public abstract object Create(ActorInitializer init);
|
||||||
|
|
||||||
public float GetMaximumRange()
|
|
||||||
{
|
|
||||||
var priRange = PrimaryWeapon != null ? Rules.Weapons[PrimaryWeapon.ToLowerInvariant()].Range : 0;
|
|
||||||
var secRange = SecondaryWeapon != null ? Rules.Weapons[SecondaryWeapon.ToLowerInvariant()].Range : 0;
|
|
||||||
|
|
||||||
return Math.Max(priRange, secRange);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract class AttackBase : IIssueOrder, IResolveOrder, ITick, IExplodeModifier, IOrderVoice, ISync
|
public abstract class AttackBase : IIssueOrder, IResolveOrder, ITick, IExplodeModifier, IOrderVoice, ISync
|
||||||
{
|
{
|
||||||
[Sync] public bool IsAttacking { get; internal set; }
|
[Sync] public bool IsAttacking { get; internal set; }
|
||||||
|
|
||||||
public List<Weapon> Weapons = new List<Weapon>();
|
|
||||||
public List<Turret> Turrets = new List<Turret>();
|
|
||||||
|
|
||||||
readonly Actor self;
|
readonly Actor self;
|
||||||
|
|
||||||
|
Lazy<IEnumerable<Armament>> armaments;
|
||||||
|
protected IEnumerable<Armament> Armaments { get { return armaments.Value; } }
|
||||||
|
|
||||||
public AttackBase(Actor self)
|
public AttackBase(Actor self)
|
||||||
{
|
{
|
||||||
this.self = self;
|
this.self = self;
|
||||||
var info = self.Info.Traits.Get<AttackBaseInfo>();
|
armaments = Lazy.New(() => self.TraitsImplementing<Armament>());
|
||||||
|
|
||||||
Turrets.Add(new Turret(info.PrimaryOffset, info.PrimaryRecoilRecovery));
|
|
||||||
if (info.SecondaryOffset != null)
|
|
||||||
Turrets.Add(new Turret(info.SecondaryOffset, info.SecondaryRecoilRecovery));
|
|
||||||
|
|
||||||
if (info.PrimaryWeapon != null)
|
|
||||||
Weapons.Add(new Weapon(info.PrimaryWeapon,
|
|
||||||
Turrets[0], info.PrimaryLocalOffset, info.PrimaryRecoil));
|
|
||||||
|
|
||||||
if (info.SecondaryWeapon != null)
|
|
||||||
Weapons.Add(new Weapon(info.SecondaryWeapon,
|
|
||||||
info.SecondaryOffset != null ? Turrets[1] : Turrets[0], info.SecondaryLocalOffset, info.SecondaryRecoil));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual bool CanAttack(Actor self, Target target)
|
protected virtual bool CanAttack(Actor self, Target target)
|
||||||
{
|
{
|
||||||
if (!self.IsInWorld) return false;
|
if (!self.IsInWorld) return false;
|
||||||
if (!target.IsValid) return false;
|
if (!target.IsValid) return false;
|
||||||
if (Weapons.All(w => w.IsReloading)) return false;
|
if (Armaments.All(a => a.IsReloading)) return false;
|
||||||
if (self.IsDisabled()) return false;
|
if (self.IsDisabled()) return false;
|
||||||
|
|
||||||
if (target.IsActor && target.Actor.HasTrait<ITargetable>() &&
|
if (target.IsActor && target.Actor.HasTrait<ITargetable>() &&
|
||||||
@@ -94,15 +58,12 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public bool ShouldExplode(Actor self) { return !IsReloading(); }
|
public bool ShouldExplode(Actor self) { return !IsReloading(); }
|
||||||
|
|
||||||
public bool IsReloading() { return Weapons.Any(w => w.IsReloading); }
|
public bool IsReloading() { return Armaments.Any(a => a.IsReloading); }
|
||||||
|
|
||||||
List<Pair<int, Action>> delayedActions = new List<Pair<int, Action>>();
|
List<Pair<int, Action>> delayedActions = new List<Pair<int, Action>>();
|
||||||
|
|
||||||
public virtual void Tick(Actor self)
|
public virtual void Tick(Actor self)
|
||||||
{
|
{
|
||||||
foreach (var w in Weapons)
|
|
||||||
w.Tick();
|
|
||||||
|
|
||||||
for (var i = 0; i < delayedActions.Count; i++)
|
for (var i = 0; i < delayedActions.Count; i++)
|
||||||
{
|
{
|
||||||
var x = delayedActions[i];
|
var x = delayedActions[i];
|
||||||
@@ -127,20 +88,20 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
var move = self.TraitOrDefault<IMove>();
|
var move = self.TraitOrDefault<IMove>();
|
||||||
var facing = self.TraitOrDefault<IFacing>();
|
var facing = self.TraitOrDefault<IFacing>();
|
||||||
foreach (var w in Weapons)
|
foreach (var a in Armaments)
|
||||||
w.CheckFire(self, this, move, facing, target);
|
a.CheckFire(self, this, move, facing, target);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual int FireDelay( Actor self, Target target, AttackBaseInfo info )
|
|
||||||
{
|
|
||||||
return info.FireDelay;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IsHeal { get { return Weapons[ 0 ].Info.Warheads[ 0 ].Damage < 0; } }
|
|
||||||
|
|
||||||
public IEnumerable<IOrderTargeter> Orders
|
public IEnumerable<IOrderTargeter> Orders
|
||||||
{
|
{
|
||||||
get { yield return new AttackOrderTargeter( "Attack", 6, IsHeal ); }
|
get
|
||||||
|
{
|
||||||
|
if (Armaments.Count() == 0)
|
||||||
|
yield break;
|
||||||
|
|
||||||
|
bool isHeal = Armaments.First().Weapon.Warheads[0].Damage < 0;
|
||||||
|
yield return new AttackOrderTargeter("Attack", 6, isHeal);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued )
|
public Order IssueOrder( Actor self, IOrderTargeter order, Target target, bool queued )
|
||||||
@@ -163,12 +124,6 @@ namespace OpenRA.Mods.RA
|
|||||||
self.SetTargetLine(target, Color.Red);
|
self.SetTargetLine(target, Color.Red);
|
||||||
AttackTarget(target, order.Queued, order.OrderString == "Attack");
|
AttackTarget(target, order.Queued, order.OrderString == "Attack");
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
/* hack */
|
|
||||||
if (self.HasTrait<Turreted>() && self.Info.Traits.Get<AttackBaseInfo>().AlignIdleTurrets)
|
|
||||||
self.Trait<Turreted>().desiredFacing = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string VoicePhraseForOrder(Actor self, Order order)
|
public string VoicePhraseForOrder(Actor self, Order order)
|
||||||
@@ -178,10 +133,10 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public abstract Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove);
|
public abstract Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove);
|
||||||
|
|
||||||
public bool HasAnyValidWeapons(Target t) { return Weapons.Any(w => w.IsValidAgainst(self.World, t)); }
|
public bool HasAnyValidWeapons(Target t) { return Armaments.Any(a => a.IsValidAgainst(self.World, t)); }
|
||||||
public float GetMaximumRange() { return Weapons.Max(w => w.Info.Range); }
|
public float GetMaximumRange() { return Armaments.Select(a => a.Weapon.Range).Aggregate(0f, Math.Max); }
|
||||||
|
|
||||||
public Weapon ChooseWeaponForTarget(Target t) { return Weapons.FirstOrDefault(w => w.IsValidAgainst(self.World, t)); }
|
public Armament ChooseArmamentForTarget(Target t) { return Armaments.FirstOrDefault(a => a.IsValidAgainst(self.World, t)); }
|
||||||
|
|
||||||
public void AttackTarget( Target target, bool queued, bool allowMove )
|
public void AttackTarget( Target target, bool queued, bool allowMove )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -42,10 +42,10 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
||||||
{
|
{
|
||||||
var weapon = ChooseWeaponForTarget(newTarget);
|
var weapon = ChooseArmamentForTarget(newTarget);
|
||||||
if( weapon == null )
|
if (weapon == null)
|
||||||
return null;
|
return null;
|
||||||
return new Activities.Attack(newTarget, Math.Max(0, (int)weapon.Info.Range), allowMove);
|
return new Activities.Attack(newTarget, Math.Max(0, (int)weapon.Weapon.Range), allowMove);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.Mods.RA.Activities;
|
using OpenRA.Mods.RA.Activities;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
@@ -28,10 +29,15 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public override void DoAttack(Actor self, Target target)
|
public override void DoAttack(Actor self, Target target)
|
||||||
{
|
{
|
||||||
if( !CanAttack( self, target ) ) return;
|
if (!CanAttack(self, target))
|
||||||
|
return;
|
||||||
|
|
||||||
var weapon = Weapons[0].Info;
|
var a = ChooseArmamentForTarget(target);
|
||||||
if( !Combat.IsInRange( self.CenterLocation, weapon.Range, target ) ) return;
|
if (a == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!Combat.IsInRange(self.CenterLocation, a.Weapon.Range, target))
|
||||||
|
return;
|
||||||
|
|
||||||
self.CancelActivity();
|
self.CancelActivity();
|
||||||
self.QueueActivity(new Leap(self, target));
|
self.QueueActivity(new Leap(self, target));
|
||||||
@@ -39,10 +45,10 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
||||||
{
|
{
|
||||||
var weapon = ChooseWeaponForTarget(newTarget);
|
var a = ChooseArmamentForTarget(newTarget);
|
||||||
if( weapon == null )
|
if (a == null)
|
||||||
return null;
|
return null;
|
||||||
return new Activities.Attack(newTarget, Math.Max(0, (int)weapon.Info.Range), allowMove);
|
return new Activities.Attack(newTarget, Math.Max(0, (int)a.Weapon.Range), allowMove);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
using OpenRA.Mods.RA.Activities;
|
using OpenRA.Mods.RA.Activities;
|
||||||
|
|
||||||
@@ -26,15 +27,19 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public override void DoAttack(Actor self, Target target)
|
public override void DoAttack(Actor self, Target target)
|
||||||
{
|
{
|
||||||
if (!CanAttack (self, target)) return;
|
if (!CanAttack(self, target)) return;
|
||||||
|
|
||||||
var weapon = Weapons[0].Info;
|
var arm = Armaments.FirstOrDefault();
|
||||||
if (!Combat.IsInRange(self.CenterLocation, weapon.Range, target)) return;
|
if (arm == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!Combat.IsInRange(self.CenterLocation, arm.Weapon.Range, target))
|
||||||
|
return;
|
||||||
|
|
||||||
var move = self.TraitOrDefault<IMove>();
|
var move = self.TraitOrDefault<IMove>();
|
||||||
var facing = self.TraitOrDefault<IFacing>();
|
var facing = self.TraitOrDefault<IFacing>();
|
||||||
foreach (var w in Weapons)
|
foreach (var a in Armaments)
|
||||||
w.CheckFire(self, this, move, facing, target);
|
a.CheckFire(self, this, move, facing, target);
|
||||||
|
|
||||||
if (target.Actor != null)
|
if (target.Actor != null)
|
||||||
target.Actor.ChangeOwner(self.Owner);
|
target.Actor.ChangeOwner(self.Owner);
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
||||||
{
|
{
|
||||||
var weapon = ChooseWeaponForTarget(newTarget);
|
var weapon = ChooseArmamentForTarget(newTarget);
|
||||||
if( weapon == null )
|
if (weapon == null)
|
||||||
return null;
|
return null;
|
||||||
return new Activities.Heal(newTarget, Math.Max(0, (int)weapon.Info.Range), allowMove);
|
return new Activities.Heal(newTarget, Math.Max(0, (int)weapon.Weapon.Range), allowMove);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.GameRules;
|
using OpenRA.GameRules;
|
||||||
using OpenRA.Mods.RA.Buildings;
|
using OpenRA.Mods.RA.Buildings;
|
||||||
using OpenRA.Mods.RA.Render;
|
using OpenRA.Mods.RA.Render;
|
||||||
@@ -30,11 +31,13 @@ namespace OpenRA.Mods.RA
|
|||||||
AttackPopupTurretedInfo Info;
|
AttackPopupTurretedInfo Info;
|
||||||
int IdleTicks = 0;
|
int IdleTicks = 0;
|
||||||
PopupState State = PopupState.Open;
|
PopupState State = PopupState.Open;
|
||||||
|
Turreted turret;
|
||||||
|
|
||||||
public AttackPopupTurreted(ActorInitializer init, AttackPopupTurretedInfo info) : base(init.self)
|
public AttackPopupTurreted(ActorInitializer init, AttackPopupTurretedInfo info) : base(init.self)
|
||||||
{
|
{
|
||||||
Info = info;
|
Info = info;
|
||||||
buildComplete = init.Contains<SkipMakeAnimsInit>();
|
buildComplete = init.Contains<SkipMakeAnimsInit>();
|
||||||
|
turret = turrets.FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool CanAttack( Actor self, Target target )
|
protected override bool CanAttack( Actor self, Target target )
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.Mods.RA.Activities;
|
using OpenRA.Mods.RA.Activities;
|
||||||
using OpenRA.Mods.RA.Buildings;
|
using OpenRA.Mods.RA.Buildings;
|
||||||
@@ -25,12 +26,12 @@ namespace OpenRA.Mods.RA
|
|||||||
class AttackTurreted : AttackBase, INotifyBuildComplete, ISync
|
class AttackTurreted : AttackBase, INotifyBuildComplete, ISync
|
||||||
{
|
{
|
||||||
protected Target target;
|
protected Target target;
|
||||||
protected Turreted turret;
|
protected IEnumerable<Turreted> turrets;
|
||||||
[Sync] protected bool buildComplete;
|
[Sync] protected bool buildComplete;
|
||||||
|
|
||||||
public AttackTurreted(Actor self) : base(self)
|
public AttackTurreted(Actor self) : base(self)
|
||||||
{
|
{
|
||||||
turret = self.Trait<Turreted>();
|
turrets = self.TraitsImplementing<Turreted>();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool CanAttack( Actor self, Target target )
|
protected override bool CanAttack( Actor self, Target target )
|
||||||
@@ -39,7 +40,12 @@ namespace OpenRA.Mods.RA
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!target.IsValid) return false;
|
if (!target.IsValid) return false;
|
||||||
if (!turret.FaceTarget(self, target)) return false;
|
|
||||||
|
bool canAttack = false;
|
||||||
|
foreach (var t in turrets)
|
||||||
|
if (t.FaceTarget(self, target))
|
||||||
|
canAttack = true;
|
||||||
|
if (!canAttack) return false;
|
||||||
|
|
||||||
return base.CanAttack( self, target );
|
return base.CanAttack( self, target );
|
||||||
}
|
}
|
||||||
@@ -85,7 +91,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
var attack = self.Trait<AttackTurreted>();
|
var attack = self.Trait<AttackTurreted>();
|
||||||
const int RangeTolerance = 1; /* how far inside our maximum range we should try to sit */
|
const int RangeTolerance = 1; /* how far inside our maximum range we should try to sit */
|
||||||
var weapon = attack.ChooseWeaponForTarget(target);
|
var weapon = attack.ChooseArmamentForTarget(target);
|
||||||
|
|
||||||
if (weapon != null)
|
if (weapon != null)
|
||||||
{
|
{
|
||||||
@@ -93,7 +99,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
if (allowMove && self.HasTrait<Mobile>() && !self.Info.Traits.Get<MobileInfo>().OnRails)
|
if (allowMove && self.HasTrait<Mobile>() && !self.Info.Traits.Get<MobileInfo>().OnRails)
|
||||||
return Util.SequenceActivities(
|
return Util.SequenceActivities(
|
||||||
new Follow( target, Math.Max( 0, (int)weapon.Info.Range - RangeTolerance ) ),
|
new Follow( target, Math.Max( 0, (int)weapon.Weapon.Range - RangeTolerance ) ),
|
||||||
this );
|
this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -208,48 +208,6 @@ namespace OpenRA.Mods.RA
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PVecFloat GetRecoil(Actor self, float recoil)
|
|
||||||
{
|
|
||||||
if (!self.HasTrait<RenderUnitTurreted>())
|
|
||||||
return PVecFloat.Zero;
|
|
||||||
|
|
||||||
var facing = self.Trait<Turreted>().turretFacing;
|
|
||||||
var localRecoil = new float2(0, recoil); // vector in turret-space.
|
|
||||||
|
|
||||||
return (PVecFloat)Util.RotateVectorByFacing(localRecoil, facing, .7f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PVecFloat GetTurretPosition(Actor self, IFacing facing, Turret turret)
|
|
||||||
{
|
|
||||||
if (facing == null) return turret.ScreenSpacePosition; /* things that don't have a rotating base don't need the turrets repositioned */
|
|
||||||
|
|
||||||
var ru = self.TraitOrDefault<RenderUnit>();
|
|
||||||
var numDirs = (ru != null) ? ru.anim.CurrentSequence.Facings : 8;
|
|
||||||
var bodyFacing = facing.Facing;
|
|
||||||
var quantizedFacing = Util.QuantizeFacing(bodyFacing, numDirs) * (256 / numDirs);
|
|
||||||
|
|
||||||
return (PVecFloat)Util.RotateVectorByFacing(turret.UnitSpacePosition.ToFloat2(), quantizedFacing, .7f)
|
|
||||||
+ GetRecoil(self, turret.Recoil)
|
|
||||||
+ (PVecFloat)turret.ScreenSpacePosition.ToFloat2();
|
|
||||||
}
|
|
||||||
|
|
||||||
static PVecFloat GetUnitspaceBarrelOffset(Actor self, IFacing facing, Turret turret, Barrel barrel)
|
|
||||||
{
|
|
||||||
var turreted = self.TraitOrDefault<Turreted>();
|
|
||||||
if (turreted == null && facing == null)
|
|
||||||
return PVecFloat.Zero;
|
|
||||||
|
|
||||||
var turretFacing = turreted != null ? turreted.turretFacing : facing.Facing;
|
|
||||||
return (PVecFloat)Util.RotateVectorByFacing(barrel.TurretSpaceOffset.ToFloat2(), turretFacing, .7f);
|
|
||||||
}
|
|
||||||
|
|
||||||
// gets the screen-space position of a barrel.
|
|
||||||
public static PVecFloat GetBarrelPosition(Actor self, IFacing facing, Turret turret, Barrel barrel)
|
|
||||||
{
|
|
||||||
return GetTurretPosition(self, facing, turret) + barrel.ScreenSpaceOffset
|
|
||||||
+ GetUnitspaceBarrelOffset(self, facing, turret, barrel);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsInRange( PPos attackOrigin, float range, Actor target )
|
public static bool IsInRange( PPos attackOrigin, float range, Actor target )
|
||||||
{
|
{
|
||||||
var rsq = range * range * Game.CellSize * Game.CellSize;
|
var rsq = range * range * Game.CellSize * Game.CellSize;
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
public void Tick(Actor self)
|
public void Tick(Actor self)
|
||||||
{
|
{
|
||||||
history.Tick(self.CenterLocation - new PVecInt(0, move.Altitude) - (PVecInt)Combat.GetTurretPosition(self, facing, contrailTurret).ToInt2());
|
history.Tick(self.CenterLocation - new PVecInt(0, move.Altitude) - (PVecInt)contrailTurret.PxPosition(self, facing).ToInt2());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RenderAfterWorld(WorldRenderer wr, Actor self) { history.Render(self); }
|
public void RenderAfterWorld(WorldRenderer wr, Actor self) { history.Render(self); }
|
||||||
|
|||||||
@@ -55,7 +55,9 @@ namespace OpenRA.Mods.RA
|
|||||||
if (facing != null)
|
if (facing != null)
|
||||||
td.Add(new FacingInit( facing.Facing ));
|
td.Add(new FacingInit( facing.Facing ));
|
||||||
|
|
||||||
var turreted = self.TraitOrDefault<Turreted>();
|
// TODO: This will only take the first turret if there are multiple
|
||||||
|
// This isn't a problem with the current units, but may be a problem for mods
|
||||||
|
var turreted = self.TraitsImplementing<Turreted>().FirstOrDefault();
|
||||||
if (turreted != null)
|
if (turreted != null)
|
||||||
td.Add( new TurretFacingInit(turreted.turretFacing) );
|
td.Add( new TurretFacingInit(turreted.turretFacing) );
|
||||||
|
|
||||||
|
|||||||
@@ -368,7 +368,6 @@
|
|||||||
<Compile Include="Turreted.cs" />
|
<Compile Include="Turreted.cs" />
|
||||||
<Compile Include="Valued.cs" />
|
<Compile Include="Valued.cs" />
|
||||||
<Compile Include="WaterPaletteRotation.cs" />
|
<Compile Include="WaterPaletteRotation.cs" />
|
||||||
<Compile Include="Weapon.cs" />
|
|
||||||
<Compile Include="Widgets\BuildPaletteWidget.cs" />
|
<Compile Include="Widgets\BuildPaletteWidget.cs" />
|
||||||
<Compile Include="Widgets\Logic\ModBrowserLogic.cs" />
|
<Compile Include="Widgets\Logic\ModBrowserLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\ColorPickerLogic.cs" />
|
<Compile Include="Widgets\Logic\ColorPickerLogic.cs" />
|
||||||
@@ -420,6 +419,7 @@
|
|||||||
<Compile Include="Widgets\ColorPreviewManagerWidget.cs" />
|
<Compile Include="Widgets\ColorPreviewManagerWidget.cs" />
|
||||||
<Compile Include="FogPalette.cs" />
|
<Compile Include="FogPalette.cs" />
|
||||||
<Compile Include="Infiltrates.cs" />
|
<Compile Include="Infiltrates.cs" />
|
||||||
|
<Compile Include="Armament.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
||||||
|
|||||||
@@ -24,19 +24,17 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
public RenderBuildingSeparateTurret(ActorInitializer init, RenderBuildingInfo info)
|
public RenderBuildingSeparateTurret(ActorInitializer init, RenderBuildingInfo info)
|
||||||
: base(init, info)
|
: base(init, info)
|
||||||
{
|
{
|
||||||
var turreted = init.self.Trait<Turreted>();
|
var self = init.self;
|
||||||
var attack = init.self.Trait<AttackBase>();
|
var turreted = self.TraitsImplementing<Turreted>();
|
||||||
|
|
||||||
var turretAnim = new Animation(GetImage(init.self), () => turreted.turretFacing);
|
var i = 0;
|
||||||
turretAnim.Play("turret");
|
foreach (var t in turreted)
|
||||||
|
|
||||||
for( var i = 0; i < attack.Turrets.Count; i++ )
|
|
||||||
{
|
{
|
||||||
var turret = attack.Turrets[i];
|
var anim = new Animation(GetImage(self), () => t.turretFacing);
|
||||||
anims.Add( "turret_{0}".F(i),
|
anim.Play("turret");
|
||||||
new AnimationWithOffset(turretAnim,
|
|
||||||
() => Combat.GetTurretPosition(init.self, null, turret).ToFloat2(),
|
anims.Add("turret_{0}".F(i++), new AnimationWithOffset(anim,
|
||||||
null));
|
() => t.PxPosition(self, null).ToFloat2(), null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.Mods.RA.Buildings;
|
using OpenRA.Mods.RA.Buildings;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
@@ -26,7 +27,8 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
static Func<int> MakeTurretFacingFunc(Actor self)
|
static Func<int> MakeTurretFacingFunc(Actor self)
|
||||||
{
|
{
|
||||||
var turreted = self.Trait<Turreted>();
|
// Turret artwork is baked into the sprite, so only the first turret makes sense.
|
||||||
|
var turreted = self.TraitsImplementing<Turreted>().FirstOrDefault();
|
||||||
return () => turreted.turretFacing;
|
return () => turreted.turretFacing;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,9 +31,10 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
spinnerAnim.PlayRepeating("spinner");
|
spinnerAnim.PlayRepeating("spinner");
|
||||||
|
|
||||||
|
var turret = new Turret(info.Offset);
|
||||||
anims.Add("spinner", new AnimationWithOffset(
|
anims.Add("spinner", new AnimationWithOffset(
|
||||||
spinnerAnim,
|
spinnerAnim,
|
||||||
() => Combat.GetTurretPosition( self, facing, new Turret(info.Offset)).ToFloat2(),
|
() => turret.PxPosition(self, facing).ToFloat2(),
|
||||||
null ) { ZOffset = 1 } );
|
null ) { ZOffset = 1 } );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
@@ -24,20 +26,30 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
: base(self)
|
: base(self)
|
||||||
{
|
{
|
||||||
var facing = self.Trait<IFacing>();
|
var facing = self.Trait<IFacing>();
|
||||||
var turreted = self.Trait<Turreted>();
|
var turreted = self.TraitsImplementing<Turreted>();
|
||||||
var attack = self.Trait<AttackBase>();
|
|
||||||
|
|
||||||
var turretAnim = new Animation(GetImage(self), () => turreted.turretFacing );
|
var i = 0;
|
||||||
turretAnim.Play( "turret" );
|
foreach (var t in turreted)
|
||||||
|
|
||||||
for( var i = 0; i < attack.Turrets.Count; i++ )
|
|
||||||
{
|
{
|
||||||
var turret = attack.Turrets[i];
|
var turret = t;
|
||||||
anims.Add( "turret_{0}".F(i),
|
|
||||||
new AnimationWithOffset( turretAnim,
|
var anim = new Animation(GetImage(self), () => turret.turretFacing);
|
||||||
() => Combat.GetTurretPosition( self, facing, turret ).ToFloat2(),
|
anim.Play("turret");
|
||||||
null));
|
|
||||||
|
anims.Add("turret_{0}".F(i++), new AnimationWithOffset(anim,
|
||||||
|
() => turret.PxPosition(self, facing).ToFloat2() + RecoilOffset(self, turret), null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float2 RecoilOffset(Actor self, Turreted t)
|
||||||
|
{
|
||||||
|
var a = self.TraitsImplementing<Armament>()
|
||||||
|
.OrderByDescending(w => w.Recoil)
|
||||||
|
.FirstOrDefault(w => w.Info.Turret == t.info.Turret);
|
||||||
|
if (a == null)
|
||||||
|
return float2.Zero;
|
||||||
|
|
||||||
|
return a.RecoilPxOffset(self, t.turretFacing).ToFloat2();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,12 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
using System;
|
using OpenRA.Mods.RA;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA.Render
|
namespace OpenRA.Mods.RA.Render
|
||||||
{
|
{
|
||||||
@@ -27,25 +29,25 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
public WithMuzzleFlash(Actor self)
|
public WithMuzzleFlash(Actor self)
|
||||||
{
|
{
|
||||||
var attack = self.Trait<AttackBase>();
|
|
||||||
var render = self.Trait<RenderSimple>();
|
var render = self.Trait<RenderSimple>();
|
||||||
var facing = self.TraitOrDefault<IFacing>();
|
var facing = self.TraitOrDefault<IFacing>();
|
||||||
var turreted = self.TraitOrDefault<Turreted>();
|
|
||||||
var getFacing = turreted != null ? () => turreted.turretFacing :
|
|
||||||
facing != null ? (Func<int>)(() => facing.Facing) : () => 0;
|
|
||||||
|
|
||||||
foreach (var w in attack.Weapons)
|
var arms = self.TraitsImplementing<Armament>();
|
||||||
foreach( var b in w.Barrels )
|
foreach (var a in arms)
|
||||||
|
foreach(var b in a.Barrels)
|
||||||
{
|
{
|
||||||
var barrel = b;
|
var barrel = b;
|
||||||
var turret = w.Turret;
|
var turreted = self.TraitsImplementing<Turreted>()
|
||||||
|
.FirstOrDefault(t => t.info.Turret == a.Info.Turret);
|
||||||
|
var getFacing = turreted != null ? () => turreted.turretFacing :
|
||||||
|
facing != null ? (Func<int>)(() => facing.Facing) : () => 0;
|
||||||
|
|
||||||
var muzzleFlash = new Animation(render.GetImage(self), getFacing);
|
var muzzleFlash = new Animation(render.GetImage(self), getFacing);
|
||||||
muzzleFlash.Play("muzzle");
|
muzzleFlash.Play("muzzle");
|
||||||
|
|
||||||
muzzleFlashes.Add("muzzle{0}".F(muzzleFlashes.Count), new AnimationWithOffset(
|
muzzleFlashes.Add("muzzle{0}".F(muzzleFlashes.Count), new AnimationWithOffset(
|
||||||
muzzleFlash,
|
muzzleFlash,
|
||||||
() => Combat.GetBarrelPosition(self, facing, turret, barrel).ToFloat2(),
|
() => a.MuzzlePxPosition(self, facing, barrel).ToFloat2(),
|
||||||
() => !isShowing));
|
() => !isShowing));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,9 +30,10 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
|
|
||||||
rotorAnim = new Animation(rs.GetImage(self));
|
rotorAnim = new Animation(rs.GetImage(self));
|
||||||
rotorAnim.PlayRepeating("rotor");
|
rotorAnim.PlayRepeating("rotor");
|
||||||
|
var turret = new Turret(info.Offset);
|
||||||
rs.anims.Add(info.Id, new AnimationWithOffset(
|
rs.anims.Add(info.Id, new AnimationWithOffset(
|
||||||
rotorAnim,
|
rotorAnim,
|
||||||
() => Combat.GetTurretPosition( self, facing, new Turret(info.Offset)).ToFloat2(),
|
() => turret.PxPosition(self, facing).ToFloat2(),
|
||||||
null ) { ZOffset = 1 } );
|
null ) { ZOffset = 1 } );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
@@ -26,11 +27,11 @@ namespace OpenRA.Mods.RA
|
|||||||
public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation)
|
public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation)
|
||||||
{
|
{
|
||||||
wr.DrawRangeCircleWithContrast(
|
wr.DrawRangeCircleWithContrast(
|
||||||
Color.FromArgb(128, Color.Yellow),
|
Color.FromArgb(128, Color.Yellow), centerLocation.ToFloat2(),
|
||||||
centerLocation.ToFloat2(),
|
ai.Traits.WithInterface<ArmamentInfo>()
|
||||||
ai.Traits.Get<AttackBaseInfo>().GetMaximumRange(),
|
.Select(a => Rules.Weapons[a.Weapon.ToLowerInvariant()].Range).Max(),
|
||||||
Color.FromArgb(96, Color.Black),
|
Color.FromArgb(96, Color.Black), 1
|
||||||
1);
|
);
|
||||||
|
|
||||||
foreach (var a in w.ActorsWithTrait<RenderRangeCircle>())
|
foreach (var a in w.ActorsWithTrait<RenderRangeCircle>())
|
||||||
if (a.Actor.Owner == a.Actor.World.LocalPlayer)
|
if (a.Actor.Owner == a.Actor.World.LocalPlayer)
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
var facing = self.Trait<IFacing>();
|
var facing = self.Trait<IFacing>();
|
||||||
var altitude = new PVecInt(0, move.Altitude);
|
var altitude = new PVecInt(0, move.Altitude);
|
||||||
position = (self.CenterLocation - (PVecInt)Combat.GetTurretPosition(self, facing, smokeTurret).ToInt2());
|
position = (self.CenterLocation - (PVecInt)smokeTurret.PxPosition(self, facing).ToInt2());
|
||||||
|
|
||||||
if (self.World.RenderedShroud.IsVisible(position.ToCPos()))
|
if (self.World.RenderedShroud.IsVisible(position.ToCPos()))
|
||||||
self.World.AddFrameEndTask(
|
self.World.AddFrameEndTask(
|
||||||
|
|||||||
@@ -14,23 +14,24 @@ using OpenRA.Traits;
|
|||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
namespace OpenRA.Mods.RA
|
||||||
{
|
{
|
||||||
public class TakeCoverInfo : ITraitInfo
|
public class TakeCoverInfo : TurretedInfo
|
||||||
{
|
{
|
||||||
public readonly int ProneTime = 100; /* ticks, =4s */
|
public readonly int ProneTime = 100; /* ticks, =4s */
|
||||||
public readonly float ProneDamage = .5f;
|
public readonly float ProneDamage = .5f;
|
||||||
public readonly decimal ProneSpeed = .5m;
|
public readonly decimal ProneSpeed = .5m;
|
||||||
public readonly int[] BarrelOffset = null;
|
public readonly int[] ProneOffset = {0,-2,0,4};
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new TakeCover(this); }
|
public override object Create(ActorInitializer init) { return new TakeCover(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Infantry prone behavior
|
// Infantry prone behavior
|
||||||
public class TakeCover : ITick, INotifyDamage, IDamageModifier, ISpeedModifier, ISync
|
public class TakeCover : Turreted, ITick, INotifyDamage, IDamageModifier, ISpeedModifier, ISync
|
||||||
{
|
{
|
||||||
TakeCoverInfo Info;
|
TakeCoverInfo Info;
|
||||||
[Sync] int remainingProneTime = 0;
|
[Sync] int remainingProneTime = 0;
|
||||||
|
|
||||||
public TakeCover(TakeCoverInfo info)
|
public TakeCover(ActorInitializer init, TakeCoverInfo info)
|
||||||
|
: base(init, info)
|
||||||
{
|
{
|
||||||
Info = info;
|
Info = info;
|
||||||
}
|
}
|
||||||
@@ -42,36 +43,16 @@ namespace OpenRA.Mods.RA
|
|||||||
if (e.Damage > 0 && (e.Warhead == null || !e.Warhead.PreventProne)) /* Don't go prone when healed */
|
if (e.Damage > 0 && (e.Warhead == null || !e.Warhead.PreventProne)) /* Don't go prone when healed */
|
||||||
{
|
{
|
||||||
if (!IsProne)
|
if (!IsProne)
|
||||||
ApplyBarrelOffset(self, true);
|
turret = new Turret(Info.ProneOffset);
|
||||||
remainingProneTime = Info.ProneTime;
|
remainingProneTime = Info.ProneTime;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Tick(Actor self)
|
public override void Tick(Actor self)
|
||||||
{
|
{
|
||||||
if (IsProne)
|
base.Tick(self);
|
||||||
{
|
if (IsProne && --remainingProneTime == 0)
|
||||||
if (--remainingProneTime == 0)
|
turret = new Turret(Info.Offset);
|
||||||
ApplyBarrelOffset(self, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ApplyBarrelOffset(Actor self, bool isProne)
|
|
||||||
{
|
|
||||||
if (Info.BarrelOffset == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var ab = self.TraitOrDefault<AttackBase>();
|
|
||||||
if (ab == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var sign = isProne ? 1 : -1;
|
|
||||||
foreach (var w in ab.Weapons)
|
|
||||||
foreach (var b in w.Barrels)
|
|
||||||
{
|
|
||||||
b.TurretSpaceOffset += sign * new PVecInt(Info.BarrelOffset[0], Info.BarrelOffset[1]);
|
|
||||||
b.ScreenSpaceOffset += sign * new PVecInt(Info.BarrelOffset[2], Info.BarrelOffset[3]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetDamageModifier(Actor attacker, WarheadInfo warhead )
|
public float GetDamageModifier(Actor attacker, WarheadInfo warhead )
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
alt = 0;
|
alt = 0;
|
||||||
facing = Turreted.GetInitialTurretFacing( init, 0 );
|
facing = Turreted.GetInitialTurretFacing( init, 0 );
|
||||||
pos = Combat.GetTurretPosition(self, ifacing, new Turret(info.Offset)).ToFloat2();
|
pos = new Turret(info.Offset).PxPosition(self, ifacing).ToFloat2();
|
||||||
|
|
||||||
v = Game.CosmeticRandom.Gauss2D(1) * info.Spread.RelOffset();
|
v = Game.CosmeticRandom.Gauss2D(1) * info.Spread.RelOffset();
|
||||||
dfacing = Game.CosmeticRandom.Gauss1D(2) * info.ROT;
|
dfacing = Game.CosmeticRandom.Gauss1D(2) * info.ROT;
|
||||||
|
|||||||
@@ -8,23 +8,29 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using OpenRA.Mods.RA.Render;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
namespace OpenRA.Mods.RA
|
||||||
{
|
{
|
||||||
public class TurretedInfo : ITraitInfo, UsesInit<TurretFacingInit>
|
public class TurretedInfo : ITraitInfo, UsesInit<TurretFacingInit>
|
||||||
{
|
{
|
||||||
|
public readonly string Turret = "primary";
|
||||||
public readonly int ROT = 255;
|
public readonly int ROT = 255;
|
||||||
public readonly int InitialFacing = 128;
|
public readonly int InitialFacing = 128;
|
||||||
|
public readonly int[] Offset = {0,0};
|
||||||
|
public readonly bool AlignWhenIdle = false;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new Turreted(init, this); }
|
public virtual object Create(ActorInitializer init) { return new Turreted(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Turreted : ITick, ISync
|
public class Turreted : ITick, ISync, IResolveOrder
|
||||||
{
|
{
|
||||||
[Sync] public int turretFacing = 0;
|
[Sync] public int turretFacing = 0;
|
||||||
public int? desiredFacing;
|
public int? desiredFacing;
|
||||||
TurretedInfo info;
|
public TurretedInfo info;
|
||||||
|
protected Turret turret;
|
||||||
IFacing facing;
|
IFacing facing;
|
||||||
|
|
||||||
public static int GetInitialTurretFacing(ActorInitializer init, int def)
|
public static int GetInitialTurretFacing(ActorInitializer init, int def)
|
||||||
@@ -43,9 +49,10 @@ namespace OpenRA.Mods.RA
|
|||||||
this.info = info;
|
this.info = info;
|
||||||
turretFacing = GetInitialTurretFacing(init, info.InitialFacing);
|
turretFacing = GetInitialTurretFacing(init, info.InitialFacing);
|
||||||
facing = init.self.TraitOrDefault<IFacing>();
|
facing = init.self.TraitOrDefault<IFacing>();
|
||||||
|
turret = new Turret(info.Offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Tick(Actor self)
|
public virtual void Tick(Actor self)
|
||||||
{
|
{
|
||||||
var df = desiredFacing ?? ( facing != null ? facing.Facing : turretFacing );
|
var df = desiredFacing ?? ( facing != null ? facing.Facing : turretFacing );
|
||||||
turretFacing = Util.TickFacing(turretFacing, df, info.ROT);
|
turretFacing = Util.TickFacing(turretFacing, df, info.ROT);
|
||||||
@@ -56,5 +63,42 @@ namespace OpenRA.Mods.RA
|
|||||||
desiredFacing = Util.GetFacing( target.CenterLocation - self.CenterLocation, turretFacing );
|
desiredFacing = Util.GetFacing( target.CenterLocation - self.CenterLocation, turretFacing );
|
||||||
return turretFacing == desiredFacing;
|
return turretFacing == desiredFacing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual void ResolveOrder(Actor self, Order order)
|
||||||
|
{
|
||||||
|
if (info.AlignWhenIdle && order.OrderString != "Attack" && order.OrderString != "AttackHold")
|
||||||
|
desiredFacing = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PVecFloat PxPosition(Actor self, IFacing facing)
|
||||||
|
{
|
||||||
|
return turret.PxPosition(self, facing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Turret
|
||||||
|
{
|
||||||
|
public PVecInt UnitSpacePosition; // where, in the unit's local space.
|
||||||
|
public PVecInt ScreenSpacePosition; // screen-space hack to make things line up good.
|
||||||
|
|
||||||
|
public Turret(int[] offset)
|
||||||
|
{
|
||||||
|
ScreenSpacePosition = (PVecInt) offset.AbsOffset().ToInt2();
|
||||||
|
UnitSpacePosition = (PVecInt) offset.RelOffset().ToInt2();
|
||||||
|
}
|
||||||
|
|
||||||
|
public PVecFloat PxPosition(Actor self, IFacing facing)
|
||||||
|
{
|
||||||
|
// Things that don't have a rotating base don't need the turrets repositioned
|
||||||
|
if (facing == null) return ScreenSpacePosition;
|
||||||
|
|
||||||
|
var ru = self.TraitOrDefault<RenderUnit>();
|
||||||
|
var numDirs = (ru != null) ? ru.anim.CurrentSequence.Facings : 8;
|
||||||
|
var bodyFacing = facing.Facing;
|
||||||
|
var quantizedFacing = Util.QuantizeFacing(bodyFacing, numDirs) * (256 / numDirs);
|
||||||
|
|
||||||
|
return (PVecFloat)Util.RotateVectorByFacing(UnitSpacePosition.ToFloat2(), quantizedFacing, .7f)
|
||||||
|
+ (PVecFloat)ScreenSpacePosition.ToFloat2();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,162 +0,0 @@
|
|||||||
#region Copyright & License Information
|
|
||||||
/*
|
|
||||||
* Copyright 2007-2011 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.GameRules;
|
|
||||||
using OpenRA.Traits;
|
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
|
||||||
{
|
|
||||||
public class Barrel
|
|
||||||
{
|
|
||||||
public PVecInt TurretSpaceOffset; // position in turret space
|
|
||||||
public PVecInt ScreenSpaceOffset; // screen-space hack to make things line up good.
|
|
||||||
public int Facing; // deviation from turret facing
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Turret
|
|
||||||
{
|
|
||||||
public float Recoil = 0.0f; // remaining recoil
|
|
||||||
public float RecoilRecovery = 0.2f; // recoil recovery rate
|
|
||||||
public PVecInt UnitSpacePosition; // where, in the unit's local space.
|
|
||||||
public PVecInt ScreenSpacePosition; // screen-space hack to make things line up good.
|
|
||||||
|
|
||||||
public Turret(int[] offset, float recoilRecovery)
|
|
||||||
{
|
|
||||||
ScreenSpacePosition = (PVecInt) offset.AbsOffset().ToInt2();
|
|
||||||
UnitSpacePosition = (PVecInt) offset.RelOffset().ToInt2();
|
|
||||||
RecoilRecovery = recoilRecovery;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Turret(int[] offset) : this(offset, 0) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Weapon
|
|
||||||
{
|
|
||||||
public WeaponInfo Info;
|
|
||||||
public int FireDelay = 0; // time (in frames) until the weapon can fire again
|
|
||||||
public int Burst = 0; // burst counter
|
|
||||||
public int Recoil = 0;
|
|
||||||
|
|
||||||
public Barrel[] Barrels; // where projectiles are spawned, in local turret space.
|
|
||||||
public Turret Turret; // where this weapon is mounted -- possibly shared
|
|
||||||
|
|
||||||
public Weapon(string weaponName, Turret turret, int[] localOffset, int recoil)
|
|
||||||
{
|
|
||||||
Info = Rules.Weapons[weaponName.ToLowerInvariant()];
|
|
||||||
Burst = Info.Burst;
|
|
||||||
Turret = turret;
|
|
||||||
Recoil = recoil;
|
|
||||||
|
|
||||||
var barrels = new List<Barrel>();
|
|
||||||
for (var i = 0; i < localOffset.Length / 5; i++)
|
|
||||||
barrels.Add(new Barrel
|
|
||||||
{
|
|
||||||
TurretSpaceOffset = new PVecInt(localOffset[5 * i], localOffset[5 * i + 1]),
|
|
||||||
ScreenSpaceOffset = new PVecInt(localOffset[5 * i + 2], localOffset[5 * i + 3]),
|
|
||||||
Facing = localOffset[5 * i + 4]
|
|
||||||
});
|
|
||||||
|
|
||||||
// if no barrels specified, the default is "turret position; turret facing".
|
|
||||||
if (barrels.Count == 0)
|
|
||||||
barrels.Add(new Barrel { TurretSpaceOffset = PVecInt.Zero, ScreenSpaceOffset = PVecInt.Zero, Facing = 0 });
|
|
||||||
|
|
||||||
Barrels = barrels.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsReloading { get { return FireDelay > 0; } }
|
|
||||||
|
|
||||||
public void Tick()
|
|
||||||
{
|
|
||||||
if (FireDelay > 0) --FireDelay;
|
|
||||||
Turret.Recoil = Math.Max(0f, Turret.Recoil - Turret.RecoilRecovery);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsValidAgainst(World world, Target target)
|
|
||||||
{
|
|
||||||
if( target.IsActor )
|
|
||||||
return Combat.WeaponValidForTarget( Info, target.Actor );
|
|
||||||
else
|
|
||||||
return Combat.WeaponValidForTarget( Info, world, target.CenterLocation.ToCPos() );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void FiredShot()
|
|
||||||
{
|
|
||||||
Turret.Recoil = this.Recoil;
|
|
||||||
|
|
||||||
if (--Burst > 0)
|
|
||||||
FireDelay = Info.BurstDelay;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FireDelay = Info.ROF;
|
|
||||||
Burst = Info.Burst;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CheckFire(Actor self, AttackBase attack, IMove move, IFacing facing, Target target)
|
|
||||||
{
|
|
||||||
if (FireDelay > 0) return;
|
|
||||||
|
|
||||||
var limitedAmmo = self.TraitOrDefault<LimitedAmmo>();
|
|
||||||
if (limitedAmmo != null && !limitedAmmo.HasAmmo())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!Combat.IsInRange(self.CenterLocation, Info.Range, target)) return;
|
|
||||||
if (Combat.IsInRange(self.CenterLocation, Info.MinRange, target)) return;
|
|
||||||
|
|
||||||
if (!IsValidAgainst(self.World, target)) return;
|
|
||||||
|
|
||||||
var barrel = Barrels[Burst % Barrels.Length];
|
|
||||||
var destMove = target.IsActor ? target.Actor.TraitOrDefault<IMove>() : null;
|
|
||||||
var turreted = self.TraitOrDefault<Turreted>();
|
|
||||||
|
|
||||||
var args = new ProjectileArgs
|
|
||||||
{
|
|
||||||
weapon = Info,
|
|
||||||
|
|
||||||
firedBy = self,
|
|
||||||
target = target,
|
|
||||||
|
|
||||||
src = (self.CenterLocation + (PVecInt)Combat.GetBarrelPosition(self, facing, Turret, barrel).ToInt2()),
|
|
||||||
srcAltitude = move != null ? move.Altitude : 0,
|
|
||||||
dest = target.CenterLocation,
|
|
||||||
destAltitude = destMove != null ? destMove.Altitude : 0,
|
|
||||||
|
|
||||||
facing = barrel.Facing +
|
|
||||||
(turreted != null ? turreted.turretFacing :
|
|
||||||
facing != null ? facing.Facing : Util.GetFacing(target.CenterLocation - self.CenterLocation, 0)),
|
|
||||||
|
|
||||||
firepowerModifier = self.TraitsImplementing<IFirepowerModifier>()
|
|
||||||
.Select(a => a.GetFirepowerModifier())
|
|
||||||
.Product()
|
|
||||||
};
|
|
||||||
|
|
||||||
attack.ScheduleDelayedAction( attack.FireDelay( self, target, self.Info.Traits.Get<AttackBaseInfo>() ), () =>
|
|
||||||
{
|
|
||||||
if (args.weapon.Projectile != null)
|
|
||||||
{
|
|
||||||
var projectile = args.weapon.Projectile.Create(args);
|
|
||||||
if (projectile != null)
|
|
||||||
self.World.Add(projectile);
|
|
||||||
|
|
||||||
if (args.weapon.Report != null && args.weapon.Report.Any())
|
|
||||||
Sound.Play(args.weapon.Report.Random(self.World.SharedRandom) + ".aud", self.CenterLocation);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
foreach (var na in self.TraitsImplementing<INotifyAttack>())
|
|
||||||
na.Attacking(self, target);
|
|
||||||
|
|
||||||
FiredShot();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -63,10 +63,10 @@ HELI:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 8
|
Range: 8
|
||||||
|
Armament:
|
||||||
|
Weapon: HeliAGGun
|
||||||
|
LocalOffset: -5,-3,0,2,0, 5,-3,0,2,0
|
||||||
AttackHeli:
|
AttackHeli:
|
||||||
PrimaryWeapon: HeliAGGun
|
|
||||||
PrimaryOffset: 0,-3,0,2
|
|
||||||
PrimaryLocalOffset: -5,0,0,0,0, 5,0,0,0,0
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
LimitedAmmo:
|
LimitedAmmo:
|
||||||
Ammo: 10
|
Ammo: 10
|
||||||
@@ -105,10 +105,10 @@ ORCA:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 8
|
Range: 8
|
||||||
|
Armament:
|
||||||
|
Weapon: OrcaAGMissiles
|
||||||
|
LocalOffset: -4,-10,0,5,0, 4,-10,0,5,0
|
||||||
AttackHeli:
|
AttackHeli:
|
||||||
PrimaryWeapon: OrcaAGMissiles
|
|
||||||
PrimaryOffset: 0,-10,0,5
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
LimitedAmmo:
|
LimitedAmmo:
|
||||||
Ammo: 10
|
Ammo: 10
|
||||||
|
|||||||
@@ -247,8 +247,9 @@ VICE:
|
|||||||
Cost: 1000
|
Cost: 1000
|
||||||
Tooltip:
|
Tooltip:
|
||||||
Name: Viceroid
|
Name: Viceroid
|
||||||
|
Armament:
|
||||||
|
Weapon: Chemspray
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Chemspray
|
|
||||||
AttackWander:
|
AttackWander:
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
@@ -151,8 +151,9 @@
|
|||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 3 #arbitrary. Assuming it should be 1, like infantry.
|
Range: 3 #arbitrary. Assuming it should be 1, like infantry.
|
||||||
# In practice, it seems that OpenRA renders vision range differently. Assuming it should be 1 for this unit.
|
# In practice, it seems that OpenRA renders vision range differently. Assuming it should be 1 for this unit.
|
||||||
|
Armament:
|
||||||
|
Weapon: Pistol
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Pistol
|
|
||||||
ActorLostNotification:
|
ActorLostNotification:
|
||||||
Notification: civdead1.aud
|
Notification: civdead1.aud
|
||||||
NotifyAll: true
|
NotifyAll: true
|
||||||
|
|||||||
@@ -15,8 +15,9 @@ E1:
|
|||||||
Speed: 4
|
Speed: 4
|
||||||
Health:
|
Health:
|
||||||
HP: 50
|
HP: 50
|
||||||
|
Armament:
|
||||||
|
Weapon: M16
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: M16
|
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2,idle3,idle4
|
IdleAnimations: idle1,idle2,idle3,idle4
|
||||||
|
|
||||||
@@ -38,10 +39,11 @@ E2:
|
|||||||
Speed: 5
|
Speed: 5
|
||||||
Health:
|
Health:
|
||||||
HP: 50
|
HP: 50
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Grenade
|
Weapon: Grenade
|
||||||
PrimaryOffset: 0,0,0,-10
|
LocalOffset: 0,0,0,-10,0
|
||||||
FireDelay: 15
|
FireDelay: 15
|
||||||
|
AttackFrontal:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2
|
IdleAnimations: idle1,idle2
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -77,10 +79,11 @@ E3:
|
|||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 3
|
Range: 3
|
||||||
# range value is 1 in C&C, but OpenRA renders vision slightly differently
|
# range value is 1 in C&C, but OpenRA renders vision slightly differently
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Rockets
|
Weapon: Rockets
|
||||||
PrimaryOffset: 1,-6,0,-8
|
LocalOffset: 1,-6,0,-8,0
|
||||||
FireDelay: 5
|
FireDelay: 5
|
||||||
|
AttackFrontal:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2
|
IdleAnimations: idle1,idle2
|
||||||
|
|
||||||
@@ -102,10 +105,11 @@ E4:
|
|||||||
Speed: 5
|
Speed: 5
|
||||||
Health:
|
Health:
|
||||||
HP: 70
|
HP: 70
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Flamethrower
|
Weapon: Flamethrower
|
||||||
PrimaryOffset: 0,-2,2,-4
|
LocalOffset: 0,-2,2,-4,0
|
||||||
FireDelay: 3
|
FireDelay: 3
|
||||||
|
AttackFrontal:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2
|
IdleAnimations: idle1,idle2
|
||||||
@@ -134,10 +138,11 @@ E5:
|
|||||||
PathingCost: 100
|
PathingCost: 100
|
||||||
Health:
|
Health:
|
||||||
HP: 70
|
HP: 70
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Chemspray
|
Weapon: Chemspray
|
||||||
PrimaryOffset: 0,-2,2,-9
|
LocalOffset: 0,-2,2,-9
|
||||||
FireDelay: 3
|
FireDelay: 3
|
||||||
|
AttackFrontal:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
-PoisonedByTiberium:
|
-PoisonedByTiberium:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -202,8 +207,9 @@ RMBO:
|
|||||||
ScanRadius: 5
|
ScanRadius: 5
|
||||||
C4Demolition:
|
C4Demolition:
|
||||||
C4Delay: 45
|
C4Delay: 45
|
||||||
|
Armament:
|
||||||
|
Weapon: Sniper
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Sniper
|
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2,idle3
|
IdleAnimations: idle1,idle2,idle3
|
||||||
AnnounceOnBuild:
|
AnnounceOnBuild:
|
||||||
|
|||||||
@@ -18,10 +18,11 @@ BOAT:
|
|||||||
Range: 7
|
Range: 7
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 7
|
ROT: 7
|
||||||
|
Offset: 0,-15,0,-4
|
||||||
|
Armament:
|
||||||
|
Weapon: BoatMissile
|
||||||
|
LocalOffset: -3,-5,0,0,0, 3,-5,0,0,0, 0,-5,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: BoatMissile
|
|
||||||
PrimaryOffset: 0,-15,0,-4
|
|
||||||
PrimaryLocalOffset: -3,-5,0,0,0, 3,-5,0,0,0, 0,-5,0,0,0
|
|
||||||
RenderGunboat:
|
RenderGunboat:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
AllowMovement: false
|
AllowMovement: false
|
||||||
|
|||||||
@@ -556,12 +556,13 @@ OBLI:
|
|||||||
# (Range of Obelisk laser is 7.5)
|
# (Range of Obelisk laser is 7.5)
|
||||||
RenderBuildingCharge:
|
RenderBuildingCharge:
|
||||||
ChargeAudio: obelpowr.aud
|
ChargeAudio: obelpowr.aud
|
||||||
AttackTurreted:
|
|
||||||
PrimaryWeapon: Laser
|
|
||||||
PrimaryOffset: 0,0,-2,-17
|
|
||||||
FireDelay: 8
|
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT:255
|
ROT:255
|
||||||
|
Offset: 0,0,-2,-17
|
||||||
|
Armament:
|
||||||
|
Weapon: Laser
|
||||||
|
FireDelay: 8
|
||||||
|
AttackTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
@@ -663,9 +664,10 @@ GUN:
|
|||||||
ROT: 12
|
ROT: 12
|
||||||
InitialFacing: 50
|
InitialFacing: 50
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament:
|
||||||
|
Weapon: TurretGun
|
||||||
|
LocalOffset: 0,4,0,-2,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: TurretGun
|
|
||||||
PrimaryLocalOffset: 0,4,0,-2,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
-AutoTargetIgnore:
|
-AutoTargetIgnore:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -706,8 +708,9 @@ SAM:
|
|||||||
ROT: 7
|
ROT: 7
|
||||||
InitialFacing: 0
|
InitialFacing: 0
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament:
|
||||||
|
Weapon: SAMMissile
|
||||||
AttackPopupTurreted:
|
AttackPopupTurreted:
|
||||||
PrimaryWeapon: SAMMissile
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -736,10 +739,10 @@ GTWR:
|
|||||||
Range: 6
|
Range: 6
|
||||||
# Range: 3
|
# Range: 3
|
||||||
# RevealShroud range was set to equal 1 + its weapon range (due to possible rendering issues with shroud for OpenRA)
|
# RevealShroud range was set to equal 1 + its weapon range (due to possible rendering issues with shroud for OpenRA)
|
||||||
|
Armament:
|
||||||
|
Weapon: HighV
|
||||||
|
LocalOffset: 0,-6,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: HighV
|
|
||||||
PrimaryOffset: 0,0,0,-6
|
|
||||||
PrimaryLocalOffset: 0,-6,0,0,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
-AutoTargetIgnore:
|
-AutoTargetIgnore:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
@@ -749,6 +752,7 @@ GTWR:
|
|||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT:255
|
ROT:255
|
||||||
|
Offset: 0,0,0,-6
|
||||||
|
|
||||||
ATWR:
|
ATWR:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
@@ -777,12 +781,13 @@ ATWR:
|
|||||||
Range: 7
|
Range: 7
|
||||||
# Range: 4
|
# Range: 4
|
||||||
# RevealShroud range was set to equal its weapon range +1 (due to possible rendering issues with shroud for OpenRA)
|
# RevealShroud range was set to equal its weapon range +1 (due to possible rendering issues with shroud for OpenRA)
|
||||||
AttackTurreted:
|
|
||||||
PrimaryWeapon: TowerMissle
|
|
||||||
PrimaryOffset: 0,0,5,2
|
|
||||||
PrimaryLocalOffset: 7,-7,0,0,-25, -7,-7,0,0,25
|
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT:255
|
ROT:255
|
||||||
|
Offset: 0,0,5,2
|
||||||
|
Armament:
|
||||||
|
Weapon: TowerMissle
|
||||||
|
LocalOffset: 7,-7,0,0,-25, -7,-7,0,0,25
|
||||||
|
AttackTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
-AutoTargetIgnore:
|
-AutoTargetIgnore:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
|
|||||||
@@ -99,9 +99,10 @@ JEEP:
|
|||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 10
|
ROT: 10
|
||||||
|
Offset: 0,2,0,-4
|
||||||
|
Armament:
|
||||||
|
Weapon: MachineGun
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: MachineGun
|
|
||||||
PrimaryOffset: 0,2,0,-4
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -131,9 +132,9 @@ APC:
|
|||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 10
|
ROT: 10
|
||||||
|
Armament:
|
||||||
|
Weapon: MachineGun
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: MachineGun
|
|
||||||
PrimaryOffset: 0,0,0,0
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -168,9 +169,10 @@ BGGY:
|
|||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 10
|
ROT: 10
|
||||||
|
Offset: 0,1,0,-3
|
||||||
|
Armament:
|
||||||
|
Weapon: MachineGun
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: MachineGun
|
|
||||||
PrimaryOffset: 0,1,0,-3
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -198,10 +200,10 @@ BIKE:
|
|||||||
Range: 4
|
Range: 4
|
||||||
# Range: 2
|
# Range: 2
|
||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
|
Armament:
|
||||||
|
Weapon: BikeRockets
|
||||||
|
LocalOffset: -4,0,0,-2,25, 4,0,0,-2,-25
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: BikeRockets
|
|
||||||
PrimaryOffset: 0,0,0,-2
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,25, 4,0,0,0,-25
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
|
||||||
@@ -228,9 +230,10 @@ ARTY:
|
|||||||
Range: 6
|
Range: 6
|
||||||
# Range: 4
|
# Range: 4
|
||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
|
Armament:
|
||||||
|
Weapon: ArtilleryShell
|
||||||
|
LocalOffset: 0,-7,0,-3,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: ArtilleryShell
|
|
||||||
PrimaryOffset: 0,-7,0,-3
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -260,10 +263,10 @@ FTNK:
|
|||||||
Range: 6
|
Range: 6
|
||||||
# Range: 4
|
# Range: 4
|
||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
|
Armament:
|
||||||
|
Weapon: BigFlamer
|
||||||
|
LocalOffset: 2,-5,3,2,0, -2,-5,3,2,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: BigFlamer
|
|
||||||
PrimaryOffset: 0,-5,3,2
|
|
||||||
PrimaryLocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
@@ -295,11 +298,12 @@ LTNK:
|
|||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 70mm
|
||||||
|
Recoil: 2
|
||||||
|
RecoilRecovery: 0.4
|
||||||
|
LocalOffset: 0,3,0,-2,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 70mm
|
|
||||||
PrimaryRecoil: 2
|
|
||||||
PrimaryRecoilRecovery: 0.4
|
|
||||||
PrimaryLocalOffset: 0,3,0,-2,0
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
|
||||||
@@ -327,12 +331,13 @@ MTNK:
|
|||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
# Weapon: 120mm
|
||||||
|
Weapon: 105mm
|
||||||
|
Recoil: 3
|
||||||
|
RecoilRecovery: 0.6
|
||||||
|
LocalOffset: 0,0,0,-1,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
# PrimaryWeapon: 120mm
|
|
||||||
PrimaryWeapon: 105mm
|
|
||||||
PrimaryRecoil: 3
|
|
||||||
PrimaryRecoilRecovery: 0.6
|
|
||||||
PrimaryLocalOffset: 0,0,0,-1,0
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Selectable:
|
Selectable:
|
||||||
@@ -363,14 +368,16 @@ HTNK:
|
|||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 2
|
ROT: 2
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: 120mmDual
|
||||||
|
LocalOffset: -5,-5,0,-10,0, 5,-5,0,-10,0
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 1
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: MammothMissiles
|
||||||
|
LocalOffset: -9,2,0,0,25, 9,2,0,0,-25
|
||||||
|
Recoil: 1
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 120mmDual
|
|
||||||
SecondaryWeapon: MammothMissiles
|
|
||||||
PrimaryLocalOffset: -5,-5,0,-10,0, 5,-5,0,-10,0
|
|
||||||
SecondaryLocalOffset: -9,2,0,0,25, 9,2,0,0,-25
|
|
||||||
PrimaryRecoil: 4
|
|
||||||
SecondaryRecoil: 1
|
|
||||||
PrimaryRecoilRecovery: 1
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SelfHealing:
|
SelfHealing:
|
||||||
@@ -405,10 +412,11 @@ MSAM:
|
|||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 255
|
ROT: 255
|
||||||
|
Offset: 0,6,0,-3
|
||||||
|
Armament:
|
||||||
|
Weapon: 227mm
|
||||||
|
LocalOffset: 3,-5,0,0,0, -3,-5,0,0,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: 227mm
|
|
||||||
PrimaryOffset: 0,6,0,-3
|
|
||||||
PrimaryLocalOffset: 3,-5,0,0,0, -3,-5,0,0,0
|
|
||||||
RenderUnitTurretedAim:
|
RenderUnitTurretedAim:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -438,13 +446,15 @@ MLRS:
|
|||||||
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
# In practice, it seems that OpenRA renders vision range differently. Will set at +2 from C&C Gold values for now to properly emulate.
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Offset: 0,3,0,-3
|
||||||
|
# AlignWhenIdle: true
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: HonestJohn
|
||||||
|
LocalOffset: -4,0,0,0,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: HonestJohn
|
||||||
|
LocalOffset: 4,0,0,0,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: HonestJohn
|
|
||||||
SecondaryWeapon: HonestJohn
|
|
||||||
PrimaryOffset: 0,3,0,-3
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,0
|
|
||||||
SecondaryLocalOffset: 4,0,0,0,0
|
|
||||||
# AlignIdleTurrets: true
|
|
||||||
RenderUnitTurretedAim:
|
RenderUnitTurretedAim:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -478,10 +488,10 @@ STNK:
|
|||||||
CloakDelay: 125
|
CloakDelay: 125
|
||||||
CloakSound: trans1.aud
|
CloakSound: trans1.aud
|
||||||
UncloakSound: appear1.aud
|
UncloakSound: appear1.aud
|
||||||
|
Armament:
|
||||||
|
Weapon: 227mm.stnk
|
||||||
|
LocalOffset: 1,-5,0,-3,0, -1,-5,0,-3,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: 227mm.stnk
|
|
||||||
PrimaryOffset: 0,-5,0,-3
|
|
||||||
PrimaryLocalOffset: 1,0,0,0,0, -1,0,0,0,0
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: HoldFire
|
InitialStance: HoldFire
|
||||||
|
|||||||
@@ -68,13 +68,13 @@ HELI:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 8
|
Range: 8
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: HeliAGGun
|
||||||
|
LocalOffset: -5,-3,0,2,0, 5,-3,0,2,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: HeliAGGun
|
||||||
|
LocalOffset: -5,-3,0,2,0, 5,-3,0,2,0
|
||||||
AttackHeli:
|
AttackHeli:
|
||||||
PrimaryWeapon: HeliAGGun
|
|
||||||
PrimaryOffset: 0,-3,0,2
|
|
||||||
PrimaryLocalOffset: -5,0,0,0,0, 5,0,0,0,0
|
|
||||||
SecondaryWeapon: HeliAAGun
|
|
||||||
SecondaryOffset: 0,-3,0,2
|
|
||||||
SecondaryLocalOffset: -5,0,0,0,0, 5,0,0,0,0
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
LimitedAmmo:
|
LimitedAmmo:
|
||||||
Ammo: 10
|
Ammo: 10
|
||||||
@@ -119,13 +119,13 @@ ORCA:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 8
|
Range: 8
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: OrcaAGMissiles
|
||||||
|
LocalOffset: -4,-10,0,5,0, 4,-10,0,5,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: OrcaAAMissiles
|
||||||
|
LocalOffset: -4,-10,0,5,0, 4,-10,0,5,0
|
||||||
AttackHeli:
|
AttackHeli:
|
||||||
PrimaryWeapon: OrcaAGMissiles
|
|
||||||
PrimaryOffset: 0,-10,0,5
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
|
||||||
SecondaryWeapon: OrcaAAMissiles
|
|
||||||
SecondaryOffset: 0,-10,0,5
|
|
||||||
SecondaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
LimitedAmmo:
|
LimitedAmmo:
|
||||||
Ammo: 10
|
Ammo: 10
|
||||||
|
|||||||
@@ -404,8 +404,9 @@ VICE:
|
|||||||
Cost: 1000
|
Cost: 1000
|
||||||
Tooltip:
|
Tooltip:
|
||||||
Name: Viceroid
|
Name: Viceroid
|
||||||
|
Armament:
|
||||||
|
Weapon: Chemspray
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Chemspray
|
|
||||||
AttackWander:
|
AttackWander:
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
Buildable:
|
Buildable:
|
||||||
Queue: Infantry
|
Queue: Infantry
|
||||||
TakeCover:
|
TakeCover:
|
||||||
BarrelOffset: 0,-2,0,4
|
ProneOffset: 0,-2,0,4
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
AttackMove:
|
AttackMove:
|
||||||
Passenger:
|
Passenger:
|
||||||
@@ -164,8 +164,9 @@
|
|||||||
HP: 25
|
HP: 25
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 2
|
Range: 2
|
||||||
|
Armament:
|
||||||
|
Weapon: Pistol
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Pistol
|
|
||||||
ActorLostNotification:
|
ActorLostNotification:
|
||||||
Notification: civdead1.aud
|
Notification: civdead1.aud
|
||||||
NotifyAll: true
|
NotifyAll: true
|
||||||
|
|||||||
@@ -15,8 +15,9 @@ E1:
|
|||||||
Speed: 4
|
Speed: 4
|
||||||
Health:
|
Health:
|
||||||
HP: 50
|
HP: 50
|
||||||
|
Armament:
|
||||||
|
Weapon: M16
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: M16
|
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2,idle3,idle4
|
IdleAnimations: idle1,idle2,idle3,idle4
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
@@ -40,10 +41,11 @@ E2:
|
|||||||
Speed: 5
|
Speed: 5
|
||||||
Health:
|
Health:
|
||||||
HP: 50
|
HP: 50
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Grenade
|
Weapon: Grenade
|
||||||
PrimaryOffset: 0,0,0,-10
|
LocalOffset: 0,0,0,-10,0
|
||||||
FireDelay: 15
|
FireDelay: 15
|
||||||
|
AttackFrontal:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2
|
IdleAnimations: idle1,idle2
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -70,10 +72,11 @@ E3:
|
|||||||
Speed: 3
|
Speed: 3
|
||||||
Health:
|
Health:
|
||||||
HP: 45
|
HP: 45
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Rockets
|
Weapon: Rockets
|
||||||
PrimaryOffset: 1,-6,0,-8
|
LocalOffset: 1,-6,0,-8,0
|
||||||
FireDelay: 5
|
FireDelay: 5
|
||||||
|
AttackFrontal:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2
|
IdleAnimations: idle1,idle2
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
@@ -97,10 +100,11 @@ E4:
|
|||||||
Speed: 5
|
Speed: 5
|
||||||
Health:
|
Health:
|
||||||
HP: 90
|
HP: 90
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Flamethrower
|
Weapon: Flamethrower
|
||||||
PrimaryOffset: 0,-2,2,-4
|
LocalOffset: 0,-2,2,-4,0
|
||||||
FireDelay: 3
|
FireDelay: 3
|
||||||
|
AttackFrontal:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2
|
IdleAnimations: idle1,idle2
|
||||||
@@ -130,10 +134,11 @@ E5:
|
|||||||
PathingCost: 80
|
PathingCost: 80
|
||||||
Health:
|
Health:
|
||||||
HP: 90
|
HP: 90
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Chemspray
|
Weapon: Chemspray
|
||||||
PrimaryOffset: 0,-2,2,-9
|
LocalOffset: 0,-2,2,-9,0
|
||||||
FireDelay: 3
|
FireDelay: 3
|
||||||
|
AttackFrontal:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
-PoisonedByTiberium:
|
-PoisonedByTiberium:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -197,8 +202,9 @@ RMBO:
|
|||||||
ScanRadius: 5
|
ScanRadius: 5
|
||||||
C4Demolition:
|
C4Demolition:
|
||||||
C4Delay: 45
|
C4Delay: 45
|
||||||
|
Armament:
|
||||||
|
Weapon: Sniper
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Sniper
|
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
IdleAnimations: idle1,idle2,idle3
|
IdleAnimations: idle1,idle2,idle3
|
||||||
AnnounceOnBuild:
|
AnnounceOnBuild:
|
||||||
|
|||||||
@@ -18,10 +18,11 @@ BOAT:
|
|||||||
Range: 7
|
Range: 7
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 7
|
ROT: 7
|
||||||
|
Offset: 0,-15,0,-4
|
||||||
|
Armament:
|
||||||
|
Weapon: BoatMissile
|
||||||
|
LocalOffset: -3,-5,0,0,0, 3,-5,0,0,0, 0,-5,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: BoatMissile
|
|
||||||
PrimaryOffset: 0,-15,0,-4
|
|
||||||
PrimaryLocalOffset: -3,-5,0,0,0, 3,-5,0,0,0, 0,-5,0,0,0
|
|
||||||
RenderGunboat:
|
RenderGunboat:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
AllowMovement: false
|
AllowMovement: false
|
||||||
|
|||||||
@@ -510,9 +510,10 @@ GUN:
|
|||||||
ROT: 12
|
ROT: 12
|
||||||
InitialFacing: 50
|
InitialFacing: 50
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament:
|
||||||
|
Weapon: TurretGun
|
||||||
|
LocalOffset: 0,4,0,-2,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: TurretGun
|
|
||||||
PrimaryLocalOffset: 0,4,0,-2,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
-AutoTargetIgnore:
|
-AutoTargetIgnore:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -551,8 +552,9 @@ SAM:
|
|||||||
ROT: 7
|
ROT: 7
|
||||||
InitialFacing: 0
|
InitialFacing: 0
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament:
|
||||||
|
Weapon: SAMMissile
|
||||||
AttackPopupTurreted:
|
AttackPopupTurreted:
|
||||||
PrimaryWeapon: SAMMissile
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -585,10 +587,11 @@ OBLI:
|
|||||||
Range: 8
|
Range: 8
|
||||||
RenderBuildingCharge:
|
RenderBuildingCharge:
|
||||||
ChargeAudio: obelpowr.aud
|
ChargeAudio: obelpowr.aud
|
||||||
AttackTurreted:
|
Armament:
|
||||||
PrimaryWeapon: Laser
|
Weapon: Laser
|
||||||
PrimaryOffset: 0,0,-2,-17
|
LocalOffset: 0,0,-2,-17,0
|
||||||
FireDelay: 8
|
FireDelay: 8
|
||||||
|
AttackTurreted:
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT:255
|
ROT:255
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -620,10 +623,10 @@ GTWR:
|
|||||||
HP: 600
|
HP: 600
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 7
|
Range: 7
|
||||||
|
Armament:
|
||||||
|
Weapon: HighV
|
||||||
|
LocalOffset: 0,-6,0,-6,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: HighV
|
|
||||||
PrimaryOffset: 0,0,0,-6
|
|
||||||
PrimaryLocalOffset: 0,-6,0,0,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
-AutoTargetIgnore:
|
-AutoTargetIgnore:
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
@@ -659,10 +662,10 @@ ATWR:
|
|||||||
Type: Heavy
|
Type: Heavy
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 9
|
Range: 9
|
||||||
|
Armament:
|
||||||
|
Weapon: TowerMissle
|
||||||
|
LocalOffset: 7,-7,5,2,-25, -7,-7,5,2,25
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: TowerMissle
|
|
||||||
PrimaryOffset: 0,0,5,2
|
|
||||||
PrimaryLocalOffset: 7,-7,0,0,-25, -7,-7,0,0,25
|
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT:255
|
ROT:255
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
|||||||
@@ -100,13 +100,13 @@ APC:
|
|||||||
Range: 7
|
Range: 7
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 10
|
ROT: 10
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: APCGun
|
||||||
|
LocalOffset: 2,-2,0,-7,0, -2,-2,0,-7,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: APCGun.AA
|
||||||
|
LocalOffset: 2,-2,0,-7,0, -2,-2,0,-7,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: APCGun
|
|
||||||
PrimaryOffset: 0,0,0,0
|
|
||||||
PrimaryLocalOffset: 2,-2,0,-7,0, -2,-2,0,-7,0
|
|
||||||
SecondaryWeapon: APCGun.AA
|
|
||||||
SecondaryOffset: 0,0,0,0
|
|
||||||
SecondaryLocalOffset: 2,-2,0,-7,0, -2,-2,0,-7,0
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -139,9 +139,10 @@ ARTY:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 9
|
Range: 9
|
||||||
|
Armament:
|
||||||
|
Weapon: ArtilleryShell
|
||||||
|
LocalOffset: 0,-7,0,-3,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: ArtilleryShell
|
|
||||||
PrimaryOffset: 0,-7,0,-3
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
Explodes:
|
Explodes:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -170,10 +171,10 @@ FTNK:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: BigFlamer
|
||||||
|
LocalOffset: 5,-5,3,2,0, -5,-5,3,2,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: BigFlamer
|
|
||||||
PrimaryOffset: 0,-5,3,2
|
|
||||||
PrimaryLocalOffset: 5,0,0,0,0, -5,0,0,0,0
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
@@ -206,9 +207,10 @@ BGGY:
|
|||||||
Range: 7
|
Range: 7
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 10
|
ROT: 10
|
||||||
|
Offset: 0,1,0,-3
|
||||||
|
Armament:
|
||||||
|
Weapon: MachineGun
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: MachineGun
|
|
||||||
PrimaryOffset: 0,1,0,-3
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -243,10 +245,10 @@ BIKE:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 8
|
Range: 8
|
||||||
|
Armament:
|
||||||
|
Weapon: BikeRockets
|
||||||
|
LocalOffset: -4,0,0,-2,25, 4,0,0,-2,-25
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: BikeRockets
|
|
||||||
PrimaryOffset: 0,0,0,-2
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,25, 4,0,0,0,-25
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
LeavesHusk:
|
LeavesHusk:
|
||||||
@@ -275,9 +277,10 @@ JEEP:
|
|||||||
Range: 8
|
Range: 8
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 10
|
ROT: 10
|
||||||
|
Offset: 0,2,0,-4
|
||||||
|
Armament:
|
||||||
|
Weapon: MachineGun
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: MachineGun
|
|
||||||
PrimaryOffset: 0,2,0,-4
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -307,11 +310,12 @@ LTNK:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 70mm
|
||||||
|
Recoil: 2
|
||||||
|
RecoilRecovery: 0.4
|
||||||
|
LocalOffset: 0,3,0,-2,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 70mm
|
|
||||||
PrimaryRecoil: 2
|
|
||||||
PrimaryRecoilRecovery: 0.4
|
|
||||||
PrimaryLocalOffset: 0,3,0,-2,0
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
LeavesHusk:
|
LeavesHusk:
|
||||||
@@ -333,7 +337,6 @@ MTNK:
|
|||||||
Prerequisites: hq
|
Prerequisites: hq
|
||||||
Owner: gdi
|
Owner: gdi
|
||||||
Mobile:
|
Mobile:
|
||||||
|
|
||||||
Speed: 6
|
Speed: 6
|
||||||
Health:
|
Health:
|
||||||
HP: 400
|
HP: 400
|
||||||
@@ -343,11 +346,12 @@ MTNK:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 120mm
|
||||||
|
Recoil: 3
|
||||||
|
RecoilRecovery: 0.6
|
||||||
|
LocalOffset: 0,0,0,-1,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 120mm
|
|
||||||
PrimaryRecoil: 3
|
|
||||||
PrimaryRecoilRecovery: 0.6
|
|
||||||
PrimaryLocalOffset: 0,0,0,-1,0
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
LeavesHusk:
|
LeavesHusk:
|
||||||
@@ -381,14 +385,16 @@ HTNK:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 2
|
ROT: 2
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: 120mmDual
|
||||||
|
LocalOffset: -5,-5,0,-10,0, 5,-5,0,-10,0
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 1
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: MammothMissiles
|
||||||
|
LocalOffset: -9,2,0,0,25, 9,2,0,0,-25
|
||||||
|
Recoil: 1
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 120mmDual
|
|
||||||
SecondaryWeapon: MammothMissiles
|
|
||||||
PrimaryLocalOffset: -5,-5,0,-10,0, 5,-5,0,-10,0
|
|
||||||
SecondaryLocalOffset: -9,2,0,0,25, 9,2,0,0,-25
|
|
||||||
PrimaryRecoil: 4
|
|
||||||
SecondaryRecoil: 1
|
|
||||||
PrimaryRecoilRecovery: 1
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
SelfHealing:
|
SelfHealing:
|
||||||
@@ -425,10 +431,11 @@ MSAM:
|
|||||||
Range: 10
|
Range: 10
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 255
|
ROT: 255
|
||||||
|
Offset: 0,6,0,-3
|
||||||
|
Armament:
|
||||||
|
Weapon: 227mm
|
||||||
|
LocalOffset: 3,-5,0,0,0, -3,-5,0,0,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: 227mm
|
|
||||||
PrimaryOffset: 0,6,0,-3
|
|
||||||
PrimaryLocalOffset: 3,-5,0,0,0, -3,-5,0,0,0
|
|
||||||
RenderUnitTurretedAim:
|
RenderUnitTurretedAim:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
LeavesHusk:
|
LeavesHusk:
|
||||||
@@ -456,11 +463,15 @@ MLRS:
|
|||||||
Range: 10
|
Range: 10
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Offset: 0,3,0,-3
|
||||||
|
AlignWhenIdle: true
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: Patriot
|
||||||
|
LocalOffset: -4,0,0,0,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: Patriot
|
||||||
|
LocalOffset: 4,0,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Patriot
|
|
||||||
PrimaryOffset: 0,3,0,-3
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
|
||||||
AlignIdleTurrets: true
|
|
||||||
RenderUnitTurretedAim:
|
RenderUnitTurretedAim:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -497,10 +508,10 @@ STNK:
|
|||||||
CloakDelay: 80
|
CloakDelay: 80
|
||||||
CloakSound: trans1.aud
|
CloakSound: trans1.aud
|
||||||
UncloakSound: trans1.aud
|
UncloakSound: trans1.aud
|
||||||
|
Armament:
|
||||||
|
Weapon: 227mm.stnk
|
||||||
|
LocalOffset: 1,-5,0,-3,0, -1,-5,0,-3,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: 227mm.stnk
|
|
||||||
PrimaryOffset: 0,-5,0,-3
|
|
||||||
PrimaryLocalOffset: 1,0,0,0,0, -1,0,0,0,0
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: HoldFire
|
InitialStance: HoldFire
|
||||||
|
|||||||
@@ -82,9 +82,10 @@ ORNI:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 10
|
Range: 10
|
||||||
|
Armament:
|
||||||
|
Weapon: ChainGun
|
||||||
|
LocalOffset: -5,-2,0,2,0
|
||||||
AttackHeli:
|
AttackHeli:
|
||||||
PrimaryWeapon: ChainGun
|
|
||||||
PrimaryOffset: -5,-2,0,2
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
Helicopter:
|
Helicopter:
|
||||||
LandWhenIdle: false
|
LandWhenIdle: false
|
||||||
|
|||||||
@@ -143,11 +143,12 @@ COMBATA:
|
|||||||
Prerequisites: heavya
|
Prerequisites: heavya
|
||||||
Owner: atreides
|
Owner: atreides
|
||||||
BuiltAt: heavya
|
BuiltAt: heavya
|
||||||
|
Armament:
|
||||||
|
Weapon: 90mma
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 0.8
|
||||||
|
LocalOffset: 0,-2,0,-3,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 90mma
|
|
||||||
PrimaryRecoil: 4
|
|
||||||
PrimaryRecoilRecovery: 0.8
|
|
||||||
PrimaryLocalOffset: 0,-2,0,-3,0
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
Image: COMBATA
|
Image: COMBATA
|
||||||
LeavesHusk:
|
LeavesHusk:
|
||||||
@@ -196,9 +197,10 @@ SONICTANK:
|
|||||||
Range: 6
|
Range: 6
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
Image: SONICTANK
|
Image: SONICTANK
|
||||||
|
Armament:
|
||||||
|
Weapon: TTankZap
|
||||||
|
LocalOffset: 0,-15,0,-10,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: TTankZap
|
|
||||||
PrimaryLocalOffset: 0,-15,0,-10,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: Defend
|
InitialStance: Defend
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -239,8 +241,9 @@ FREMEN:
|
|||||||
Range: 7
|
Range: 7
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
ScanRadius: 7
|
ScanRadius: 7
|
||||||
|
Armament:
|
||||||
|
Weapon: Sniper
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Sniper
|
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
TakeCover:
|
TakeCover:
|
||||||
|
|||||||
@@ -38,9 +38,10 @@ REFH:
|
|||||||
# Mobile:
|
# Mobile:
|
||||||
# ROT: 9
|
# ROT: 9
|
||||||
# Speed: 11
|
# Speed: 11
|
||||||
|
# Armament:
|
||||||
|
# Weapon: M60mg
|
||||||
|
# LocalOffset: 0,-1,0,-3,0
|
||||||
# AttackFrontal:
|
# AttackFrontal:
|
||||||
# PrimaryWeapon: M60mg
|
|
||||||
# PrimaryLocalOffset: 0,-1,0,-3,0
|
|
||||||
# RenderUnit:
|
# RenderUnit:
|
||||||
# Image: QUAD
|
# Image: QUAD
|
||||||
|
|
||||||
@@ -213,9 +214,10 @@ DEVAST:
|
|||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 7
|
Range: 7
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
|
Armament:
|
||||||
|
Weapon: 120mm
|
||||||
|
LocalOffset: 5,-16,0,-2,0, -4,-16,0,-2,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: 120mm
|
|
||||||
PrimaryLocalOffset: 5,-16,0,-2,0, -4,-16,0,-2,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: Defend
|
InitialStance: Defend
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -260,6 +262,8 @@ SARDAUKAR:
|
|||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: Vulcan
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: Slung
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Vulcan
|
|
||||||
SecondaryWeapon: Slung
|
|
||||||
@@ -16,8 +16,9 @@ RIFLE:
|
|||||||
HP: 50
|
HP: 50
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 5
|
Speed: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: M1Carbine
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: M1Carbine
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -69,10 +70,13 @@ BAZOOKA:
|
|||||||
HP: 45
|
HP: 45
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 4
|
Speed: 4
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: RedEye
|
||||||
|
LocalOffset: 0,0,0,-13,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: Dragon
|
||||||
|
LocalOffset: 0,0,0,-13,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: RedEye
|
|
||||||
SecondaryWeapon: Dragon
|
|
||||||
PrimaryOffset: 0,0,0,-13
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -100,8 +104,9 @@ MEDIC:
|
|||||||
Mobile:
|
Mobile:
|
||||||
Speed: 4
|
Speed: 4
|
||||||
AutoHeal:
|
AutoHeal:
|
||||||
|
Armament:
|
||||||
|
Weapon: Heal
|
||||||
AttackMedic:
|
AttackMedic:
|
||||||
PrimaryWeapon: Heal
|
|
||||||
Passenger:
|
Passenger:
|
||||||
PipType: Blue
|
PipType: Blue
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
|
|||||||
@@ -158,10 +158,10 @@ TRIKEO:
|
|||||||
Speed: 14
|
Speed: 14
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
Image: RAIDER
|
Image: RAIDER
|
||||||
|
Armament:
|
||||||
|
Weapon: M60mgo
|
||||||
|
LocalOffset: 0,-6,0,-3,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: M60mgo
|
|
||||||
PrimaryOffset: 0,-6,0,-3
|
|
||||||
#PrimaryLocalOffset: 1,0,0,-3,0, -1,0,0,-3,0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -212,9 +212,10 @@ DEVIATORTANK:
|
|||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
|
Armament:
|
||||||
|
Weapon: FakeMissile
|
||||||
|
LocalOffset: 0,7,0,-2,0 #7
|
||||||
AttackLoyalty:
|
AttackLoyalty:
|
||||||
PrimaryWeapon: FakeMissile
|
|
||||||
PrimaryLocalOffset: 0,7,0,-2,0 #7
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: Defend
|
InitialStance: Defend
|
||||||
Explodes:
|
Explodes:
|
||||||
|
|||||||
@@ -474,9 +474,10 @@ GUNTOWER:
|
|||||||
Turreted:
|
Turreted:
|
||||||
ROT: 6
|
ROT: 6
|
||||||
InitialFacing: 128
|
InitialFacing: 128
|
||||||
|
Armament:
|
||||||
|
Weapon: TurretGun
|
||||||
|
LocalOffset: 0,-11,0,-7,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: TurretGun
|
|
||||||
PrimaryLocalOffset: 0,-11,0,-7,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
LeavesHusk:
|
LeavesHusk:
|
||||||
HuskActor: Guntower.Husk
|
HuskActor: Guntower.Husk
|
||||||
@@ -529,9 +530,10 @@ ROCKETTOWER:
|
|||||||
#-AutoTargetIgnore:
|
#-AutoTargetIgnore:
|
||||||
RenderBuildingSeparateTurret:
|
RenderBuildingSeparateTurret:
|
||||||
# HasMakeAnimation: false
|
# HasMakeAnimation: false
|
||||||
|
Armament:
|
||||||
|
Weapon: TowerMissile
|
||||||
|
LocalOffset: 14,-2,0,-11,0, -14,-2,0,-11,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: TowerMissile
|
|
||||||
PrimaryLocalOffset: 14,-2,0,-11,0, -14,-2,0,-11,0
|
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 8
|
ROT: 8
|
||||||
InitialFacing: 128
|
InitialFacing: 128
|
||||||
|
|||||||
@@ -541,8 +541,9 @@ SPICEBLOOM:
|
|||||||
# AttackMove:
|
# AttackMove:
|
||||||
# JustMove: true
|
# JustMove: true
|
||||||
# AttackWander:
|
# AttackWander:
|
||||||
|
# Armament:
|
||||||
|
# Weapon: WormJaw
|
||||||
# AttackLeap:
|
# AttackLeap:
|
||||||
# PrimaryWeapon: WormJaw
|
|
||||||
# CanAttackGround: no
|
# CanAttackGround: no
|
||||||
# RenderInfantry:
|
# RenderInfantry:
|
||||||
# BelowUnits:
|
# BelowUnits:
|
||||||
|
|||||||
@@ -131,10 +131,10 @@ HARVESTER.starport:
|
|||||||
Range: 8
|
Range: 8
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
|
Armament:
|
||||||
|
Weapon: M60mg
|
||||||
|
LocalOffset: 0,-6,0,-3, 0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: M60mg
|
|
||||||
PrimaryOffset: 0,-6,0,-3
|
|
||||||
#PrimaryLocalOffset: 1,-1,0,-3,0, -1,-1,0,-3,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: Defend
|
InitialStance: Defend
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -172,9 +172,10 @@ QUAD:
|
|||||||
Range: 7
|
Range: 7
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
Image: QUAD
|
Image: QUAD
|
||||||
|
Armament:
|
||||||
|
Weapon: QuadRockets
|
||||||
|
LocalOffset: 0,-3,0,-2,0 #-4
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: QuadRockets
|
|
||||||
PrimaryLocalOffset: 0,-3,0,-2,0 #-4
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: Defend
|
InitialStance: Defend
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -213,12 +214,13 @@ QUAD.starport:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 6
|
ROT: 6
|
||||||
|
AlignWhenIdle: true
|
||||||
|
Armament:
|
||||||
|
Weapon: 90mm
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 0.8
|
||||||
|
LocalOffset: 0,-2,0,-3,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
AlignIdleTurrets: true
|
|
||||||
PrimaryWeapon: 90mm
|
|
||||||
PrimaryRecoil: 4
|
|
||||||
PrimaryRecoilRecovery: 0.8
|
|
||||||
PrimaryLocalOffset: 0,-2,0,-3,0
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: Defend
|
InitialStance: Defend
|
||||||
@@ -265,11 +267,12 @@ SIEGETANK:
|
|||||||
Range: 5
|
Range: 5
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 3
|
ROT: 3
|
||||||
|
Armament:
|
||||||
|
Weapon: 155mm
|
||||||
|
Recoil: 7
|
||||||
|
RecoilRecovery: 0.45
|
||||||
|
LocalOffset: 0,-4,0,-7,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: 155mm
|
|
||||||
PrimaryRecoil: 7
|
|
||||||
PrimaryRecoilRecovery: 0.45
|
|
||||||
PrimaryLocalOffset: 0,-4,0,-7,0
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
Image: SIEGETANK
|
Image: SIEGETANK
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -328,9 +331,10 @@ MISSILETANK:
|
|||||||
Range: 6
|
Range: 6
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
Image: MISSILETANK
|
Image: MISSILETANK
|
||||||
|
Armament:
|
||||||
|
Weapon: 227mm
|
||||||
|
LocalOffset: 3,5,0,-4,0, -6,5,0,-4,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: 227mm
|
|
||||||
PrimaryLocalOffset: 3,5,0,-4,0, -6,5,0,-4,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: Defend
|
InitialStance: Defend
|
||||||
Explodes:
|
Explodes:
|
||||||
|
|||||||
@@ -83,9 +83,10 @@ MIG:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 12
|
Range: 12
|
||||||
|
Armament:
|
||||||
|
Weapon: Maverick
|
||||||
|
LocalOffset: -15,0,0,0,-10, 15,0,0,0,6
|
||||||
AttackPlane:
|
AttackPlane:
|
||||||
PrimaryWeapon: Maverick
|
|
||||||
PrimaryLocalOffset: -15,0,0,0,-10, 15,0,0,0,6
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
Plane:
|
Plane:
|
||||||
InitialFacing: 192
|
InitialFacing: 192
|
||||||
@@ -127,11 +128,13 @@ YAK:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 10
|
Range: 10
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: ChainGun
|
||||||
|
LocalOffset: -5,-6,0,0,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: ChainGun
|
||||||
|
LocalOffset: 5,-6,0,0,0
|
||||||
AttackPlane:
|
AttackPlane:
|
||||||
PrimaryWeapon: ChainGun
|
|
||||||
SecondaryWeapon: ChainGun
|
|
||||||
PrimaryOffset: -5,-6,0,0
|
|
||||||
SecondaryOffset: 5,-6,0,0
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
Plane:
|
Plane:
|
||||||
RearmBuildings: afld
|
RearmBuildings: afld
|
||||||
@@ -215,9 +218,10 @@ HELI:
|
|||||||
Type: Heavy
|
Type: Heavy
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 12
|
Range: 12
|
||||||
|
Armament:
|
||||||
|
Weapon: HellfireAG
|
||||||
|
LocalOffset: -5,0,0,2,0
|
||||||
AttackHeli:
|
AttackHeli:
|
||||||
PrimaryWeapon: HellfireAG
|
|
||||||
PrimaryOffset: -5,0,0,2
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
Helicopter:
|
Helicopter:
|
||||||
RearmBuildings: hpad
|
RearmBuildings: hpad
|
||||||
@@ -256,11 +260,13 @@ HIND:
|
|||||||
Type: Heavy
|
Type: Heavy
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 10
|
Range: 10
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: ChainGun
|
||||||
|
LocalOffset: -5,-2,0,2,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: ChainGun
|
||||||
|
LocalOffset: 5,-2,0,2,0
|
||||||
AttackHeli:
|
AttackHeli:
|
||||||
PrimaryWeapon: ChainGun
|
|
||||||
SecondaryWeapon: ChainGun
|
|
||||||
PrimaryOffset: -5,-2,0,2
|
|
||||||
SecondaryOffset: 5,-2,0,2
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
Helicopter:
|
Helicopter:
|
||||||
RearmBuildings: hpad
|
RearmBuildings: hpad
|
||||||
|
|||||||
@@ -249,8 +249,9 @@
|
|||||||
Speed: 4
|
Speed: 4
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 2
|
Range: 2
|
||||||
|
Armament:
|
||||||
|
Weapon: Pistol
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Pistol
|
|
||||||
ProximityCaptor:
|
ProximityCaptor:
|
||||||
Types:CivilianInfantry
|
Types:CivilianInfantry
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
|
|||||||
@@ -20,8 +20,9 @@ DOG:
|
|||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: DogJaw
|
||||||
AttackLeap:
|
AttackLeap:
|
||||||
PrimaryWeapon: DogJaw
|
|
||||||
CanAttackGround: no
|
CanAttackGround: no
|
||||||
RenderInfantry:
|
RenderInfantry:
|
||||||
IdleAnimations: idle1,idle2
|
IdleAnimations: idle1,idle2
|
||||||
@@ -44,8 +45,9 @@ E1:
|
|||||||
HP: 50
|
HP: 50
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 4
|
Speed: 4
|
||||||
|
Armament:
|
||||||
|
Weapon: M1Carbine
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: M1Carbine
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -69,10 +71,11 @@ E2:
|
|||||||
HP: 50
|
HP: 50
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 5
|
Speed: 5
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Grenade
|
Weapon: Grenade
|
||||||
PrimaryOffset: 0,0,0,-13
|
LocalOffset: 0,0,0,-13,0
|
||||||
FireDelay: 15
|
FireDelay: 15
|
||||||
|
AttackFrontal:
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -98,10 +101,13 @@ E3:
|
|||||||
HP: 45
|
HP: 45
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 3
|
Speed: 3
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: RedEye
|
||||||
|
LocalOffset: 0,0,0,-13,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: Dragon
|
||||||
|
LocalOffset: 0,0,0,-13,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: RedEye
|
|
||||||
SecondaryWeapon: Dragon
|
|
||||||
PrimaryOffset: 0,0,0,-13
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -125,10 +131,11 @@ E4:
|
|||||||
HP: 40
|
HP: 40
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 3
|
Speed: 3
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Flamer
|
Weapon: Flamer
|
||||||
PrimaryOffset: 0,-10,0,-8
|
LocalOffset: 0,-10,0,-8,0
|
||||||
FireDelay: 8
|
FireDelay: 8
|
||||||
|
AttackFrontal:
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -254,9 +261,11 @@ E7:
|
|||||||
C4Delay: 45
|
C4Delay: 45
|
||||||
Passenger:
|
Passenger:
|
||||||
PipType: Red
|
PipType: Red
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: Colt45
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: Colt45
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Colt45
|
|
||||||
SecondaryWeapon: Colt45
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -286,8 +295,9 @@ MEDI:
|
|||||||
Passenger:
|
Passenger:
|
||||||
PipType: Yellow
|
PipType: Yellow
|
||||||
AutoHeal:
|
AutoHeal:
|
||||||
|
Armament:
|
||||||
|
Weapon: Heal
|
||||||
AttackMedic:
|
AttackMedic:
|
||||||
PrimaryWeapon: Heal
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
AttackMove:
|
AttackMove:
|
||||||
@@ -320,8 +330,9 @@ MECH:
|
|||||||
Passenger:
|
Passenger:
|
||||||
PipType: Yellow
|
PipType: Yellow
|
||||||
AutoHeal:
|
AutoHeal:
|
||||||
|
Armament:
|
||||||
|
Weapon: Repair
|
||||||
AttackMedic:
|
AttackMedic:
|
||||||
PrimaryWeapon: Repair
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
AttackMove:
|
AttackMove:
|
||||||
@@ -371,9 +382,10 @@ SHOK:
|
|||||||
Speed: 3
|
Speed: 3
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 4
|
Range: 4
|
||||||
|
Armament:
|
||||||
|
Weapon: PortaTesla
|
||||||
|
LocalOffset: 0,-10,0,-8,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: PortaTesla
|
|
||||||
PrimaryOffset: 0,-10,0,-8
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
|
|||||||
@@ -30,10 +30,11 @@ SS:
|
|||||||
CloakDelay: 50
|
CloakDelay: 50
|
||||||
CloakSound: subshow1.aud
|
CloakSound: subshow1.aud
|
||||||
UncloakSound: subshow1.aud
|
UncloakSound: subshow1.aud
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: TorpTube
|
Weapon: TorpTube
|
||||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
LocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
||||||
FireDelay: 2
|
FireDelay: 2
|
||||||
|
AttackFrontal:
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 38,38
|
Bounds: 38,38
|
||||||
Chronoshiftable:
|
Chronoshiftable:
|
||||||
@@ -76,9 +77,10 @@ MSUB:
|
|||||||
CloakDelay: 100
|
CloakDelay: 100
|
||||||
CloakSound: subshow1.aud
|
CloakSound: subshow1.aud
|
||||||
UncloakSound: subshow1.aud
|
UncloakSound: subshow1.aud
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: SubMissile
|
Weapon: SubMissile
|
||||||
FireDelay: 2
|
FireDelay: 2
|
||||||
|
AttackFrontal:
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 44,44
|
Bounds: 44,44
|
||||||
Chronoshiftable:
|
Chronoshiftable:
|
||||||
@@ -113,11 +115,14 @@ DD:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 7
|
ROT: 7
|
||||||
|
Offset: 0,-8,0,-3
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: Stinger
|
||||||
|
LocalOffset: -4,0,0,0,-20, 4,0,0,0,20
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: DepthCharge
|
||||||
|
LocalOffset: -4,0,0,0,-20, 4,0,0,0,20
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Stinger
|
|
||||||
SecondaryWeapon: DepthCharge
|
|
||||||
PrimaryOffset: 0,-8,0,-3
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,-20, 4,0,0,0,20
|
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 38,38
|
Bounds: 38,38
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
@@ -151,19 +156,27 @@ CA:
|
|||||||
Speed: 4
|
Speed: 4
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 7
|
Range: 7
|
||||||
Turreted:
|
Turreted@PRIMARY:
|
||||||
|
Turret: primary
|
||||||
|
Offset: 0,17,0,-2
|
||||||
ROT: 3
|
ROT: 3
|
||||||
|
Turreted@SECONDARY:
|
||||||
|
Turret: secondary
|
||||||
|
Offset: 0,-17,0,-2
|
||||||
|
ROT: 3
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Turret: primary
|
||||||
|
Weapon: 8Inch
|
||||||
|
LocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 0.8
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Turret: secondary
|
||||||
|
Weapon: 8Inch
|
||||||
|
LocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 0.8
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 8Inch
|
|
||||||
SecondaryWeapon: 8Inch
|
|
||||||
PrimaryOffset: 0,17,0,-2
|
|
||||||
SecondaryOffset: 0,-17,0,-2
|
|
||||||
PrimaryLocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
|
||||||
SecondaryLocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
|
||||||
PrimaryRecoil: 4
|
|
||||||
SecondaryRecoil: 4
|
|
||||||
PrimaryRecoilRecovery: 0.8
|
|
||||||
SecondaryRecoilRecovery: 0.8
|
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 44,44
|
Bounds: 44,44
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
@@ -226,10 +239,12 @@ PT:
|
|||||||
Range: 7
|
Range: 7
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 7
|
ROT: 7
|
||||||
|
Offset: 0,-6,0,-1
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: 2Inch
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: DepthCharge
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 2Inch
|
|
||||||
SecondaryWeapon: DepthCharge
|
|
||||||
PrimaryOffset: 0,-6,0,-1
|
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 32,32
|
Bounds: 32,32
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
|
|||||||
@@ -315,10 +315,11 @@ TSLA:
|
|||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 8
|
Range: 8
|
||||||
RenderBuildingCharge:
|
RenderBuildingCharge:
|
||||||
|
Armament:
|
||||||
|
Weapon: TeslaZap
|
||||||
|
LocalOffset: 0,0,0,-10,0
|
||||||
AttackTesla:
|
AttackTesla:
|
||||||
PrimaryWeapon: TeslaZap
|
|
||||||
ReloadTime: 120
|
ReloadTime: 120
|
||||||
PrimaryOffset: 0,0,0,-10
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -354,9 +355,11 @@ AGUN:
|
|||||||
ROT: 15
|
ROT: 15
|
||||||
InitialFacing: 224
|
InitialFacing: 224
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: ZSU-23
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: ZSU-23
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: ZSU-23
|
|
||||||
SecondaryWeapon: ZSU-23
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -419,9 +422,10 @@ PBOX:
|
|||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Vulcan
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Vulcan
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 255
|
ROT: 255
|
||||||
@@ -452,9 +456,10 @@ HBOX:
|
|||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Vulcan
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Vulcan
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 255
|
ROT: 255
|
||||||
@@ -485,8 +490,9 @@ GUN:
|
|||||||
ROT: 12
|
ROT: 12
|
||||||
InitialFacing: 50
|
InitialFacing: 50
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament:
|
||||||
|
Weapon: TurretGun
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: TurretGun
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -516,10 +522,11 @@ FTUR:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 255
|
ROT: 255
|
||||||
|
Offset: 0,0,0,-2
|
||||||
|
Armament:
|
||||||
|
Weapon: FireballLauncher
|
||||||
|
LocalOffset: 0,-12,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: FireballLauncher
|
|
||||||
PrimaryOffset: 0,0,0,-2
|
|
||||||
PrimaryLocalOffset: 0,-12,0,0,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
@@ -552,8 +559,9 @@ SAM:
|
|||||||
ROT: 30
|
ROT: 30
|
||||||
InitialFacing: 0
|
InitialFacing: 0
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament:
|
||||||
|
Weapon: Nike
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Nike
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
|
|||||||
@@ -18,8 +18,9 @@ V2RL:
|
|||||||
Speed: 7
|
Speed: 7
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: SCUD
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: SCUD
|
|
||||||
RenderUnitReload:
|
RenderUnitReload:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -48,10 +49,11 @@ V2RL:
|
|||||||
Range: 4
|
Range: 4
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 25mm
|
||||||
|
Recoil: 2
|
||||||
|
RecoilRecovery: 0.5
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 25mm
|
|
||||||
PrimaryRecoil: 2
|
|
||||||
PrimaryRecoilRecovery: 0.5
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -80,10 +82,11 @@ V2RL:
|
|||||||
Range: 5
|
Range: 5
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 90mm
|
||||||
|
Recoil: 3
|
||||||
|
RecoilRecovery: 0.9
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 90mm
|
|
||||||
PrimaryRecoil: 3
|
|
||||||
PrimaryRecoilRecovery: 0.9
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -114,11 +117,12 @@ V2RL:
|
|||||||
Range: 5
|
Range: 5
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 105mm
|
||||||
|
Recoil: 3
|
||||||
|
RecoilRecovery: 0.9
|
||||||
|
LocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 105mm
|
|
||||||
PrimaryRecoil: 3
|
|
||||||
PrimaryRecoilRecovery: 0.9
|
|
||||||
PrimaryLocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -150,13 +154,15 @@ V2RL:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 2
|
ROT: 2
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: 120mm
|
||||||
|
LocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 0.7
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: MammothTusk
|
||||||
|
LocalOffset: -7,2,0,0,25, 7,2,0,0,-25
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 120mm
|
|
||||||
SecondaryWeapon: MammothTusk
|
|
||||||
PrimaryLocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
|
||||||
SecondaryLocalOffset: -7,2,0,0,25, 7,2,0,0,-25
|
|
||||||
PrimaryRecoil: 4
|
|
||||||
PrimaryRecoilRecovery: 0.7
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -190,8 +196,9 @@ ARTY:
|
|||||||
Speed: 6
|
Speed: 6
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 155mm
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: 155mm
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
Explodes:
|
Explodes:
|
||||||
Weapon: UnitExplode
|
Weapon: UnitExplode
|
||||||
@@ -298,9 +305,10 @@ JEEP:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 10
|
ROT: 10
|
||||||
|
Offset: 0,0,0,-2
|
||||||
|
Armament:
|
||||||
|
Weapon: M60mg
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: M60mg
|
|
||||||
PrimaryOffset: 0,0,0,-2
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -328,9 +336,10 @@ APC:
|
|||||||
Crushes: wall, atmine, crate, infantry
|
Crushes: wall, atmine, crate, infantry
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: M60mg
|
||||||
|
LocalOffset: 0,0,0,-4,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: M60mg
|
|
||||||
PrimaryOffset: 0,0,0,-4
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -434,9 +443,10 @@ TTNK:
|
|||||||
Crushes: wall, atmine, crate, infantry
|
Crushes: wall, atmine, crate, infantry
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 7
|
Range: 7
|
||||||
|
Armament:
|
||||||
|
Weapon: TTankZap
|
||||||
|
LocalOffset: 0,0,0,-5,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: TTankZap
|
|
||||||
PrimaryOffset: 0,0,0,-5
|
|
||||||
RenderUnitSpinner:
|
RenderUnitSpinner:
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 28,28,0,0
|
Bounds: 28,28,0,0
|
||||||
@@ -500,10 +510,12 @@ CTNK:
|
|||||||
Range: 6
|
Range: 6
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: ChronoTusk
|
||||||
|
LocalOffset: -4,0,0,0,0, -4,0,0,0,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: ChronoTusk
|
||||||
|
LocalOffset: 4,0,0,0,25, 4,0,0,0,-25
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: ChronoTusk
|
|
||||||
SecondaryWeapon: ChronoTusk
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,0, -4,0,0,0,0
|
|
||||||
SecondaryLocalOffset: 4,0,0,0,25, 4,0,0,0,-25
|
|
||||||
ChronoshiftDeploy:
|
ChronoshiftDeploy:
|
||||||
EmptyWeapon: UnitExplodeSmall
|
EmptyWeapon: UnitExplodeSmall
|
||||||
Binary file not shown.
BIN
mods/ra/maps/bomber-john/brick.shp
Executable file
BIN
mods/ra/maps/bomber-john/brick.shp
Executable file
Binary file not shown.
BIN
mods/ra/maps/bomber-john/jmin.shp
Executable file
BIN
mods/ra/maps/bomber-john/jmin.shp
Executable file
Binary file not shown.
BIN
mods/ra/maps/bomber-john/map.bin
Executable file
BIN
mods/ra/maps/bomber-john/map.bin
Executable file
Binary file not shown.
959
mods/ra/maps/bomber-john/map.yaml
Executable file
959
mods/ra/maps/bomber-john/map.yaml
Executable file
@@ -0,0 +1,959 @@
|
|||||||
|
Selectable: True
|
||||||
|
|
||||||
|
MapFormat: 5
|
||||||
|
|
||||||
|
Title: Bomber John
|
||||||
|
|
||||||
|
Description: Lay mines, wait for them to explode, kill your enemies.
|
||||||
|
|
||||||
|
Author: Holloweye
|
||||||
|
|
||||||
|
Tileset: TEMPERAT
|
||||||
|
|
||||||
|
MapSize: 56,56
|
||||||
|
|
||||||
|
Bounds: 16,16,24,24
|
||||||
|
|
||||||
|
UseAsShellmap: False
|
||||||
|
|
||||||
|
Type: Minigame
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Race: allies
|
||||||
|
PlayerReference@Creeps:
|
||||||
|
Name: Creeps
|
||||||
|
NonCombatant: True
|
||||||
|
Race: allies
|
||||||
|
Enemies: Multi0,Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi0:
|
||||||
|
Name: Multi0
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi1:
|
||||||
|
Name: Multi1
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi2:
|
||||||
|
Name: Multi2
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi1,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi3:
|
||||||
|
Name: Multi3
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi1,Multi2,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi4:
|
||||||
|
Name: Multi4
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi1,Multi2,Multi3,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi5:
|
||||||
|
Name: Multi5
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi1,Multi6,Multi17
|
||||||
|
PlayerReference@Multi6:
|
||||||
|
Name: Multi6
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi1,Multi17
|
||||||
|
PlayerReference@Multi7:
|
||||||
|
Name: Multi7
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi6,Multi11
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Actor69: ftur
|
||||||
|
Location: 39,16
|
||||||
|
Owner: Creeps
|
||||||
|
Actor1: T17
|
||||||
|
Location: 16,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor2: T17
|
||||||
|
Location: 16,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor3: T17
|
||||||
|
Location: 16,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor4: T17
|
||||||
|
Location: 16,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor5: T17
|
||||||
|
Location: 16,21
|
||||||
|
Owner: Neutral
|
||||||
|
Actor6: T17
|
||||||
|
Location: 16,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor7: T17
|
||||||
|
Location: 16,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor8: T17
|
||||||
|
Location: 16,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor9: T17
|
||||||
|
Location: 16,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor10: T17
|
||||||
|
Location: 16,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor11: T17
|
||||||
|
Location: 16,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor12: T17
|
||||||
|
Location: 16,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor13: T17
|
||||||
|
Location: 16,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor14: T17
|
||||||
|
Location: 16,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor15: T17
|
||||||
|
Location: 16,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor16: T17
|
||||||
|
Location: 16,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor17: T17
|
||||||
|
Location: 16,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor18: T17
|
||||||
|
Location: 16,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor19: T17
|
||||||
|
Location: 16,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor20: T17
|
||||||
|
Location: 16,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor21: T17
|
||||||
|
Location: 16,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor22: T17
|
||||||
|
Location: 16,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor46: ftur
|
||||||
|
Location: 39,39
|
||||||
|
Owner: Creeps
|
||||||
|
Actor24: T17
|
||||||
|
Location: 17,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor25: T17
|
||||||
|
Location: 18,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor26: T17
|
||||||
|
Location: 19,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor27: T17
|
||||||
|
Location: 20,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor28: T17
|
||||||
|
Location: 21,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor29: T17
|
||||||
|
Location: 22,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor30: T17
|
||||||
|
Location: 23,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor31: T17
|
||||||
|
Location: 24,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor32: T17
|
||||||
|
Location: 25,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor33: T17
|
||||||
|
Location: 26,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor34: T17
|
||||||
|
Location: 27,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor35: T17
|
||||||
|
Location: 28,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor36: T17
|
||||||
|
Location: 29,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor37: T17
|
||||||
|
Location: 30,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor38: T17
|
||||||
|
Location: 31,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor39: T17
|
||||||
|
Location: 32,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor40: T17
|
||||||
|
Location: 33,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor41: T17
|
||||||
|
Location: 34,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor42: T17
|
||||||
|
Location: 35,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor43: T17
|
||||||
|
Location: 36,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor44: T17
|
||||||
|
Location: 37,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor45: T17
|
||||||
|
Location: 38,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor23: ftur
|
||||||
|
Location: 16,39
|
||||||
|
Owner: Creeps
|
||||||
|
Actor47: T17
|
||||||
|
Location: 39,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor48: T17
|
||||||
|
Location: 39,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor49: T17
|
||||||
|
Location: 39,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor50: T17
|
||||||
|
Location: 39,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor51: T17
|
||||||
|
Location: 39,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor52: T17
|
||||||
|
Location: 39,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor53: T17
|
||||||
|
Location: 39,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor54: T17
|
||||||
|
Location: 39,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor55: T17
|
||||||
|
Location: 39,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor56: T17
|
||||||
|
Location: 39,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor57: T17
|
||||||
|
Location: 39,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor58: T17
|
||||||
|
Location: 39,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor59: T17
|
||||||
|
Location: 39,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor60: T17
|
||||||
|
Location: 39,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor61: T17
|
||||||
|
Location: 39,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor62: T17
|
||||||
|
Location: 39,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor63: T17
|
||||||
|
Location: 39,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor64: T17
|
||||||
|
Location: 39,21
|
||||||
|
Owner: Neutral
|
||||||
|
Actor65: T17
|
||||||
|
Location: 39,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor66: T17
|
||||||
|
Location: 39,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor67: T17
|
||||||
|
Location: 39,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor68: T17
|
||||||
|
Location: 39,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor0: ftur
|
||||||
|
Location: 16,16
|
||||||
|
Owner: Creeps
|
||||||
|
Actor70: T17
|
||||||
|
Location: 38,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor71: T17
|
||||||
|
Location: 37,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor72: T17
|
||||||
|
Location: 36,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor73: T17
|
||||||
|
Location: 35,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor74: T17
|
||||||
|
Location: 34,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor75: T17
|
||||||
|
Location: 33,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor76: T17
|
||||||
|
Location: 32,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor77: T17
|
||||||
|
Location: 31,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor78: T17
|
||||||
|
Location: 30,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor79: T17
|
||||||
|
Location: 29,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor80: T17
|
||||||
|
Location: 28,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor81: T17
|
||||||
|
Location: 27,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor82: T17
|
||||||
|
Location: 26,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor83: T17
|
||||||
|
Location: 25,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor84: T17
|
||||||
|
Location: 24,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor85: T17
|
||||||
|
Location: 23,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor86: T17
|
||||||
|
Location: 22,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor87: T17
|
||||||
|
Location: 21,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor88: T17
|
||||||
|
Location: 20,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor89: T17
|
||||||
|
Location: 19,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor90: T17
|
||||||
|
Location: 18,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor91: T17
|
||||||
|
Location: 17,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor92: T17
|
||||||
|
Location: 18,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor93: T17
|
||||||
|
Location: 18,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor94: T17
|
||||||
|
Location: 18,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor95: T17
|
||||||
|
Location: 18,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor96: T17
|
||||||
|
Location: 18,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor97: T17
|
||||||
|
Location: 18,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor98: T17
|
||||||
|
Location: 18,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor99: T17
|
||||||
|
Location: 18,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor100: T17
|
||||||
|
Location: 18,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor101: T17
|
||||||
|
Location: 18,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor102: T17
|
||||||
|
Location: 18,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor103: T17
|
||||||
|
Location: 20,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor104: T17
|
||||||
|
Location: 20,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor105: T17
|
||||||
|
Location: 20,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor106: T17
|
||||||
|
Location: 20,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor107: T17
|
||||||
|
Location: 20,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor108: T17
|
||||||
|
Location: 20,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor109: T17
|
||||||
|
Location: 20,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor110: T17
|
||||||
|
Location: 20,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor111: T17
|
||||||
|
Location: 20,21
|
||||||
|
Owner: Neutral
|
||||||
|
Actor112: T17
|
||||||
|
Location: 20,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor113: T17
|
||||||
|
Location: 20,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor114: T17
|
||||||
|
Location: 22,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor115: T17
|
||||||
|
Location: 22,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor116: T17
|
||||||
|
Location: 22,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor117: T17
|
||||||
|
Location: 22,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor118: T17
|
||||||
|
Location: 22,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor119: T17
|
||||||
|
Location: 22,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor120: T17
|
||||||
|
Location: 22,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor121: T17
|
||||||
|
Location: 22,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor122: T17
|
||||||
|
Location: 22,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor123: T17
|
||||||
|
Location: 22,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor124: T17
|
||||||
|
Location: 22,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor125: T17
|
||||||
|
Location: 24,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor126: T17
|
||||||
|
Location: 24,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor127: T17
|
||||||
|
Location: 24,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor128: T17
|
||||||
|
Location: 24,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor129: T17
|
||||||
|
Location: 24,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor130: T17
|
||||||
|
Location: 24,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor131: T17
|
||||||
|
Location: 24,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor132: T17
|
||||||
|
Location: 24,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor133: T17
|
||||||
|
Location: 24,21
|
||||||
|
Owner: Neutral
|
||||||
|
Actor134: T17
|
||||||
|
Location: 24,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor135: T17
|
||||||
|
Location: 24,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor136: T17
|
||||||
|
Location: 26,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor137: T17
|
||||||
|
Location: 26,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor138: T17
|
||||||
|
Location: 26,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor139: T17
|
||||||
|
Location: 26,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor162: mpspawn
|
||||||
|
Location: 36,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor153: mpspawn
|
||||||
|
Location: 36,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor142: T17
|
||||||
|
Location: 26,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor143: T17
|
||||||
|
Location: 26,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor144: T17
|
||||||
|
Location: 26,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor145: T17
|
||||||
|
Location: 26,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor146: T17
|
||||||
|
Location: 26,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor147: T17
|
||||||
|
Location: 28,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor148: T17
|
||||||
|
Location: 28,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor149: T17
|
||||||
|
Location: 28,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor150: T17
|
||||||
|
Location: 28,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor152: mpspawn
|
||||||
|
Location: 28,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor163: mpspawn
|
||||||
|
Location: 36,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor141: mpspawn
|
||||||
|
Location: 19,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor154: T17
|
||||||
|
Location: 28,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor155: T17
|
||||||
|
Location: 28,21
|
||||||
|
Owner: Neutral
|
||||||
|
Actor156: T17
|
||||||
|
Location: 28,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor157: T17
|
||||||
|
Location: 28,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor158: T17
|
||||||
|
Location: 30,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor159: T17
|
||||||
|
Location: 30,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor160: T17
|
||||||
|
Location: 30,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor161: T17
|
||||||
|
Location: 30,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor140: mpspawn
|
||||||
|
Location: 19,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor151: mpspawn
|
||||||
|
Location: 19,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor164: T17
|
||||||
|
Location: 30,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor165: T17
|
||||||
|
Location: 30,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor166: T17
|
||||||
|
Location: 30,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor167: T17
|
||||||
|
Location: 30,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor168: T17
|
||||||
|
Location: 30,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor169: T17
|
||||||
|
Location: 32,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor170: T17
|
||||||
|
Location: 32,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor171: T17
|
||||||
|
Location: 32,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor172: T17
|
||||||
|
Location: 32,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor173: T17
|
||||||
|
Location: 32,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor174: T17
|
||||||
|
Location: 32,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor175: T17
|
||||||
|
Location: 32,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor176: T17
|
||||||
|
Location: 32,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor177: T17
|
||||||
|
Location: 32,21
|
||||||
|
Owner: Neutral
|
||||||
|
Actor178: T17
|
||||||
|
Location: 32,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor179: T17
|
||||||
|
Location: 32,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor180: T17
|
||||||
|
Location: 34,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor181: T17
|
||||||
|
Location: 34,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor182: T17
|
||||||
|
Location: 34,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor183: T17
|
||||||
|
Location: 34,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor184: T17
|
||||||
|
Location: 34,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor185: T17
|
||||||
|
Location: 34,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor186: T17
|
||||||
|
Location: 34,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor187: T17
|
||||||
|
Location: 34,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor188: T17
|
||||||
|
Location: 34,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor189: T17
|
||||||
|
Location: 34,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor190: T17
|
||||||
|
Location: 34,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor191: T17
|
||||||
|
Location: 36,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor192: T17
|
||||||
|
Location: 36,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor193: T17
|
||||||
|
Location: 36,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor194: T17
|
||||||
|
Location: 36,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor195: T17
|
||||||
|
Location: 36,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor196: T17
|
||||||
|
Location: 36,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor197: T17
|
||||||
|
Location: 36,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor198: T17
|
||||||
|
Location: 36,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor199: T17
|
||||||
|
Location: 36,21
|
||||||
|
Owner: Neutral
|
||||||
|
Actor200: T17
|
||||||
|
Location: 36,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor201: T17
|
||||||
|
Location: 36,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor202: T17
|
||||||
|
Location: 38,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor203: T17
|
||||||
|
Location: 38,20
|
||||||
|
Owner: Multi0
|
||||||
|
Actor204: T17
|
||||||
|
Location: 38,22
|
||||||
|
Owner: Multi1
|
||||||
|
Actor205: T17
|
||||||
|
Location: 38,24
|
||||||
|
Owner: Multi2
|
||||||
|
Actor206: T17
|
||||||
|
Location: 38,26
|
||||||
|
Owner: Multi3
|
||||||
|
Actor207: T17
|
||||||
|
Location: 38,28
|
||||||
|
Owner: Multi4
|
||||||
|
Actor208: T17
|
||||||
|
Location: 38,30
|
||||||
|
Owner: Multi5
|
||||||
|
Actor209: T17
|
||||||
|
Location: 38,32
|
||||||
|
Owner: Multi6
|
||||||
|
Actor210: T17
|
||||||
|
Location: 38,34
|
||||||
|
Owner: Multi7
|
||||||
|
Actor211: T17
|
||||||
|
Location: 38,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor212: T17
|
||||||
|
Location: 38,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor213: mpspawn
|
||||||
|
Location: 28,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor214: mnlyr
|
||||||
|
Location: 19,20
|
||||||
|
Owner: Multi0
|
||||||
|
Actor215: mnlyr
|
||||||
|
Location: 19,28
|
||||||
|
Owner: Multi1
|
||||||
|
Actor216: mnlyr
|
||||||
|
Location: 20,36
|
||||||
|
Owner: Multi2
|
||||||
|
Actor217: mnlyr
|
||||||
|
Location: 29,36
|
||||||
|
Owner: Multi3
|
||||||
|
Actor218: mnlyr
|
||||||
|
Location: 37,35
|
||||||
|
Owner: Multi4
|
||||||
|
Actor219: mnlyr
|
||||||
|
Location: 37,25
|
||||||
|
Owner: Multi5
|
||||||
|
Actor220: mnlyr
|
||||||
|
Location: 34,18
|
||||||
|
Owner: Multi6
|
||||||
|
Actor221: mnlyr
|
||||||
|
Location: 27,18
|
||||||
|
Owner: Multi7
|
||||||
|
|
||||||
|
Smudges:
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
World:
|
||||||
|
-CrateDrop:
|
||||||
|
SpawnMPUnits:
|
||||||
|
InitialUnit: mnlyr
|
||||||
|
|
||||||
|
APWR:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
STEK:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
BARR:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
FIX:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
POWR:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
AFLD:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
PROC:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
WEAP:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
DOME:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
SPEN:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
SILO:
|
||||||
|
Buildable:
|
||||||
|
Owner: a
|
||||||
|
|
||||||
|
Player:
|
||||||
|
ClassicProductionQueue@Building:
|
||||||
|
BuildSpeed: 0.4
|
||||||
|
PlayerResources:
|
||||||
|
InitialCash: 60
|
||||||
|
|
||||||
|
MNLYR:
|
||||||
|
Inherits: ^Tank
|
||||||
|
Buildable:
|
||||||
|
Queue: Vehicle
|
||||||
|
BuildPaletteOrder: 30
|
||||||
|
Prerequisites: fix
|
||||||
|
Owner: allies
|
||||||
|
Valued:
|
||||||
|
Cost: 800
|
||||||
|
Tooltip:
|
||||||
|
Name: Bomber
|
||||||
|
Icon: MNLYICON
|
||||||
|
Description: Lays mines to destroy unwary enemy units.\n Unarmed
|
||||||
|
Health:
|
||||||
|
HP: 500
|
||||||
|
Armor:
|
||||||
|
Type: Heavy
|
||||||
|
Mobile:
|
||||||
|
Speed: 9
|
||||||
|
WaitAverage: 1
|
||||||
|
WaitSpread: 1
|
||||||
|
ROT: 900
|
||||||
|
RevealsShroud:
|
||||||
|
Range: 40
|
||||||
|
RenderUnit:
|
||||||
|
Image: MNLY
|
||||||
|
AttackMove:
|
||||||
|
JustMove: true
|
||||||
|
MustBeDestroyed:
|
||||||
|
Transforms:
|
||||||
|
IntoActor: ftur
|
||||||
|
Offset:0,0
|
||||||
|
Facing: 96
|
||||||
|
CashTrickler:
|
||||||
|
Period: 150
|
||||||
|
Amount: 20
|
||||||
|
FTUR:
|
||||||
|
Health:
|
||||||
|
HP: 1000
|
||||||
|
Transforms:
|
||||||
|
IntoActor: mnlyr
|
||||||
|
Offset:0,0
|
||||||
|
Facing: 96
|
||||||
|
MustBeDestroyed:
|
||||||
|
Building:
|
||||||
|
Power: 0
|
||||||
|
CashTrickler:
|
||||||
|
Period: 150
|
||||||
|
Amount: 30
|
||||||
|
ChronoshiftPower:
|
||||||
|
Image: warpicon
|
||||||
|
ChargeTime: 60
|
||||||
|
Description: Chronoshift
|
||||||
|
LongDesc: Teleport a group of vehicles across\nthe map.
|
||||||
|
SelectTargetSound: slcttgt1.aud
|
||||||
|
BeginChargeSound: chrochr1.aud
|
||||||
|
EndChargeSound: chrordy1.aud
|
||||||
|
Duration: 999999
|
||||||
|
KillCargo: yes
|
||||||
|
Range: 3
|
||||||
|
IronCurtainPower:
|
||||||
|
Image: infxicon
|
||||||
|
ChargeTime: 30
|
||||||
|
Description: Invulnerability
|
||||||
|
LongDesc: Makes a unit invulnerable\nfor 3 seconds.
|
||||||
|
Duration: 3
|
||||||
|
SelectTargetSound: slcttgt1.aud
|
||||||
|
BeginChargeSound: ironchg1.aud
|
||||||
|
EndChargeSound: ironrdy1.aud
|
||||||
|
Range: 1
|
||||||
|
|
||||||
|
|
||||||
|
MINVV:
|
||||||
|
Building:
|
||||||
|
Adjacent: 99
|
||||||
|
TerrainTypes: Clear,Road
|
||||||
|
ProvidesCustomPrerequisite:
|
||||||
|
Prerequisite: MNLYVV
|
||||||
|
Buildable:
|
||||||
|
Queue: Building
|
||||||
|
BuildPaletteOrder: 30
|
||||||
|
#Prerequisites: MNLYR
|
||||||
|
Owner: allies, soviet
|
||||||
|
Hotkey: b
|
||||||
|
Valued:
|
||||||
|
Cost: 30
|
||||||
|
Health:
|
||||||
|
HP: 200
|
||||||
|
RenderBuilding:
|
||||||
|
Image: miner
|
||||||
|
HasMakeAnimation: false
|
||||||
|
BelowUnits:
|
||||||
|
Tooltip:
|
||||||
|
Name: Bomb
|
||||||
|
Icon: jmin
|
||||||
|
Description: Bomb (Hotkey B)
|
||||||
|
ProximityCaptor:
|
||||||
|
Types: Mine
|
||||||
|
SelfHealing:
|
||||||
|
Step: -1
|
||||||
|
Ticks: 1
|
||||||
|
HealIfBelow: 101%
|
||||||
|
DamageCooldown: 0
|
||||||
|
Armament:
|
||||||
|
Weapon: CrateNuke
|
||||||
|
LocalOffset: 0,0,0,-4,0
|
||||||
|
AttackFrontal:
|
||||||
|
Explodes:
|
||||||
|
DemoTruck:
|
||||||
|
|
||||||
|
T17:
|
||||||
|
Health:
|
||||||
|
HP: 999999999
|
||||||
|
Building:
|
||||||
|
Adjacent: 99
|
||||||
|
GivesBuildableArea:
|
||||||
|
Production:
|
||||||
|
Produces: Building
|
||||||
|
BaseBuilding:
|
||||||
|
#RenderBuilding:
|
||||||
|
# Image: brick
|
||||||
|
Tooltip:
|
||||||
|
Name: Tree
|
||||||
|
ChronoshiftPower:
|
||||||
|
Image: warpicon
|
||||||
|
ChargeTime: 60
|
||||||
|
Description: Chronoshift
|
||||||
|
LongDesc: Teleport a group of vehicles across\nthe map.
|
||||||
|
SelectTargetSound: slcttgt1.aud
|
||||||
|
BeginChargeSound: chrochr1.aud
|
||||||
|
EndChargeSound: chrordy1.aud
|
||||||
|
Duration: 999999
|
||||||
|
KillCargo: yes
|
||||||
|
Range: 3
|
||||||
|
IronCurtainPower:
|
||||||
|
Image: infxicon
|
||||||
|
ChargeTime: 30
|
||||||
|
Description: Invulnerability
|
||||||
|
LongDesc: Makes a unit invulnerable\nfor 3 seconds.
|
||||||
|
Duration: 3
|
||||||
|
SelectTargetSound: slcttgt1.aud
|
||||||
|
BeginChargeSound: ironchg1.aud
|
||||||
|
EndChargeSound: ironrdy1.aud
|
||||||
|
Range: 1
|
||||||
|
|
||||||
|
Sequences:
|
||||||
|
miner:
|
||||||
|
idle:
|
||||||
|
Start: 0
|
||||||
|
Length: 1
|
||||||
|
damaged-idle:
|
||||||
|
Start: 1
|
||||||
|
Length: *
|
||||||
|
damaged-build:
|
||||||
|
Start: 1
|
||||||
|
Length: *
|
||||||
|
brick:
|
||||||
|
idle:
|
||||||
|
Start: 0
|
||||||
|
Length: *
|
||||||
|
Weapons:
|
||||||
|
|
||||||
|
Voices:
|
||||||
BIN
mods/ra/maps/bomber-john/miner.shp
Executable file
BIN
mods/ra/maps/bomber-john/miner.shp
Executable file
Binary file not shown.
Binary file not shown.
BIN
mods/ra/maps/drop-zone-battle-of-tikiaki/map.bin
Executable file
BIN
mods/ra/maps/drop-zone-battle-of-tikiaki/map.bin
Executable file
Binary file not shown.
341
mods/ra/maps/drop-zone-battle-of-tikiaki/map.yaml
Executable file
341
mods/ra/maps/drop-zone-battle-of-tikiaki/map.yaml
Executable file
@@ -0,0 +1,341 @@
|
|||||||
|
Selectable: True
|
||||||
|
|
||||||
|
MapFormat: 5
|
||||||
|
|
||||||
|
Title: Drop Zone - Battle of Tikiaki
|
||||||
|
|
||||||
|
Description: Pick up the crates with the APC to get units to kill the other players; Using Holloweye's .yaml
|
||||||
|
|
||||||
|
Author: Knivesron
|
||||||
|
|
||||||
|
Tileset: TEMPERAT
|
||||||
|
|
||||||
|
MapSize: 64,64
|
||||||
|
|
||||||
|
Bounds: 16,16,32,32
|
||||||
|
|
||||||
|
UseAsShellmap: False
|
||||||
|
|
||||||
|
Type: Minigame
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Race: allies
|
||||||
|
PlayerReference@Creeps:
|
||||||
|
Name: Creeps
|
||||||
|
NonCombatant: True
|
||||||
|
Race: allies
|
||||||
|
PlayerReference@Multi0:
|
||||||
|
Name: Multi0
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi1:
|
||||||
|
Name: Multi1
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi2:
|
||||||
|
Name: Multi2
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi1,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi3:
|
||||||
|
Name: Multi3
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi1,Multi2,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi4:
|
||||||
|
Name: Multi4
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi1,Multi2,Multi3,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi5:
|
||||||
|
Name: Multi5
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi1,Multi6,Multi17
|
||||||
|
PlayerReference@Multi6:
|
||||||
|
Name: Multi6
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi1,Multi17
|
||||||
|
PlayerReference@Multi7:
|
||||||
|
Name: Multi7
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi6,Multi11
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Actor0: apc
|
||||||
|
Location: 28,28
|
||||||
|
Owner: Multi0
|
||||||
|
Actor1: apc
|
||||||
|
Location: 30,28
|
||||||
|
Owner: Multi1
|
||||||
|
Actor2: apc
|
||||||
|
Location: 32,28
|
||||||
|
Owner: Multi2
|
||||||
|
Actor3: apc
|
||||||
|
Location: 32,30
|
||||||
|
Owner: Multi3
|
||||||
|
Actor4: apc
|
||||||
|
Location: 32,32
|
||||||
|
Owner: Multi4
|
||||||
|
Actor5: apc
|
||||||
|
Location: 30,32
|
||||||
|
Owner: Multi5
|
||||||
|
Actor6: apc
|
||||||
|
Location: 28,32
|
||||||
|
Owner: Multi6
|
||||||
|
Actor7: apc
|
||||||
|
Location: 28,30
|
||||||
|
Owner: Multi7
|
||||||
|
Actor10: v08
|
||||||
|
Location: 42,40
|
||||||
|
Owner: Neutral
|
||||||
|
Actor17: v17
|
||||||
|
Location: 37,41
|
||||||
|
Owner: Neutral
|
||||||
|
Actor13: v14
|
||||||
|
Location: 37,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor14: v15
|
||||||
|
Location: 38,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor15: v17
|
||||||
|
Location: 37,40
|
||||||
|
Owner: Neutral
|
||||||
|
Actor16: v17
|
||||||
|
Location: 38,40
|
||||||
|
Owner: Neutral
|
||||||
|
Actor19: brl3
|
||||||
|
Location: 43,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor12: v07
|
||||||
|
Location: 37,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor9: v08
|
||||||
|
Location: 44,40
|
||||||
|
Owner: Neutral
|
||||||
|
Actor11: v03
|
||||||
|
Location: 43,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor18: brl3
|
||||||
|
Location: 42,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor20: brl3
|
||||||
|
Location: 37,44
|
||||||
|
Owner: Neutral
|
||||||
|
Actor8: mpspawn
|
||||||
|
Location: 29,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor21: mpspawn
|
||||||
|
Location: 29,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor22: mpspawn
|
||||||
|
Location: 29,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor23: mpspawn
|
||||||
|
Location: 30,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor24: mpspawn
|
||||||
|
Location: 31,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor25: mpspawn
|
||||||
|
Location: 31,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor26: mpspawn
|
||||||
|
Location: 31,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor27: mpspawn
|
||||||
|
Location: 30,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor28: barl
|
||||||
|
Location: 37,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor29: barl
|
||||||
|
Location: 44,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor30: barl
|
||||||
|
Location: 43,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor31: t15
|
||||||
|
Location: 43,41
|
||||||
|
Owner: Neutral
|
||||||
|
Actor32: t15
|
||||||
|
Location: 34,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor33: t12
|
||||||
|
Location: 37,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor34: t10
|
||||||
|
Location: 40,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor35: t10
|
||||||
|
Location: 42,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor36: t10
|
||||||
|
Location: 43,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor37: t16
|
||||||
|
Location: 44,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor38: t16
|
||||||
|
Location: 43,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor39: t08
|
||||||
|
Location: 43,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor40: t08
|
||||||
|
Location: 35,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor41: t08
|
||||||
|
Location: 37,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor42: t08
|
||||||
|
Location: 36,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor43: syrf
|
||||||
|
Location: 47,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor44: syrf
|
||||||
|
Location: 14,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor45: spef
|
||||||
|
Location: 28,15
|
||||||
|
Owner: Neutral
|
||||||
|
Actor46: spef
|
||||||
|
Location: 23,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor47: sbag
|
||||||
|
Location: 38,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor48: sbag
|
||||||
|
Location: 37,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor49: sbag
|
||||||
|
Location: 36,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor50: sbag
|
||||||
|
Location: 35,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor51: sbag
|
||||||
|
Location: 34,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor52: sbag
|
||||||
|
Location: 40,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor53: sbag
|
||||||
|
Location: 40,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor54: sbag
|
||||||
|
Location: 40,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor55: sbag
|
||||||
|
Location: 41,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor56: sbag
|
||||||
|
Location: 34,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor57: sbag
|
||||||
|
Location: 34,44
|
||||||
|
Owner: Neutral
|
||||||
|
Actor58: sbag
|
||||||
|
Location: 34,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor59: sbag
|
||||||
|
Location: 34,41
|
||||||
|
Owner: Neutral
|
||||||
|
Actor60: sbag
|
||||||
|
Location: 34,40
|
||||||
|
Owner: Neutral
|
||||||
|
Actor62: t05
|
||||||
|
Location: 20,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor61: t05
|
||||||
|
Location: 41,17
|
||||||
|
Owner: Neutral
|
||||||
|
|
||||||
|
Smudges:
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
World:
|
||||||
|
CrateDrop:
|
||||||
|
Maximum: 3
|
||||||
|
SpawnInterval: 5
|
||||||
|
-SpawnMPUnits:
|
||||||
|
-MPStartLocations:
|
||||||
|
CRATE:
|
||||||
|
-LevelUpCrateAction:
|
||||||
|
-GiveMcvCrateAction:
|
||||||
|
-RevealMapCrateAction:
|
||||||
|
-HideMapCrateAction:
|
||||||
|
-ExplodeCrateAction@nuke:
|
||||||
|
-ExplodeCrateAction@boom:
|
||||||
|
-ExplodeCrateAction@fire:
|
||||||
|
-SupportPowerCrateAction@parabombs:
|
||||||
|
-GiveCashCrateAction:
|
||||||
|
GiveUnitCrateAction@ttnk:
|
||||||
|
SelectionShares: 4
|
||||||
|
Unit: ttnk
|
||||||
|
GiveUnitCrateAction@ftrk:
|
||||||
|
SelectionShares: 6
|
||||||
|
Unit: ftrk
|
||||||
|
GiveUnitCrateAction@harv:
|
||||||
|
SelectionShares: 1
|
||||||
|
Unit: harv
|
||||||
|
GiveUnitCrateAction@shok:
|
||||||
|
SelectionShares: 1
|
||||||
|
Unit: shok
|
||||||
|
GiveUnitCrateAction@dog:
|
||||||
|
SelectionShares: 1
|
||||||
|
Unit: dog
|
||||||
|
APC:
|
||||||
|
Health:
|
||||||
|
HP: 1000
|
||||||
|
RevealsShroud:
|
||||||
|
Range: 40
|
||||||
|
MustBeDestroyed:
|
||||||
|
-AttackMove:
|
||||||
|
HARV:
|
||||||
|
Tooltip:
|
||||||
|
Name: Bomb Truck
|
||||||
|
Description: Explodes like a damn nuke!
|
||||||
|
Health:
|
||||||
|
HP: 100
|
||||||
|
Explodes:
|
||||||
|
Weapon: CrateNuke
|
||||||
|
EmptyWeapon:
|
||||||
|
SHOK:
|
||||||
|
Health:
|
||||||
|
HP: 800
|
||||||
|
DOG:
|
||||||
|
Health:
|
||||||
|
HP: 120
|
||||||
|
Mobile:
|
||||||
|
Speed: 7
|
||||||
|
|
||||||
|
Sequences:
|
||||||
|
|
||||||
|
Weapons:
|
||||||
|
PortaTesla:
|
||||||
|
ROF: 20
|
||||||
|
Range: 10
|
||||||
|
Warhead:
|
||||||
|
Spread: 1
|
||||||
|
InfDeath: 5
|
||||||
|
Damage: 80
|
||||||
|
|
||||||
|
Voices:
|
||||||
Binary file not shown.
BIN
mods/ra/maps/drop-zone-w/map.bin
Executable file
BIN
mods/ra/maps/drop-zone-w/map.bin
Executable file
Binary file not shown.
333
mods/ra/maps/drop-zone-w/map.yaml
Executable file
333
mods/ra/maps/drop-zone-w/map.yaml
Executable file
@@ -0,0 +1,333 @@
|
|||||||
|
Selectable: True
|
||||||
|
|
||||||
|
MapFormat: 5
|
||||||
|
|
||||||
|
Title: Drop Zone W
|
||||||
|
|
||||||
|
Description: Pick up the crates with the naval mobile HQ to get units to kill the other players. v0.2
|
||||||
|
|
||||||
|
Author: riderr3
|
||||||
|
|
||||||
|
Tileset: SNOW
|
||||||
|
|
||||||
|
MapSize: 64,64
|
||||||
|
|
||||||
|
Bounds: 16,16,32,32
|
||||||
|
|
||||||
|
UseAsShellmap: False
|
||||||
|
|
||||||
|
Type: Minigame
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Race: allies
|
||||||
|
PlayerReference@Creeps:
|
||||||
|
Name: Creeps
|
||||||
|
NonCombatant: True
|
||||||
|
Race: allies
|
||||||
|
Enemies: Multi0,Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi7
|
||||||
|
PlayerReference@Multi0:
|
||||||
|
Name: Multi0
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: allies
|
||||||
|
LockSpawn: True
|
||||||
|
Enemies: Creeps
|
||||||
|
PlayerReference@Multi1:
|
||||||
|
Name: Multi1
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: allies
|
||||||
|
LockSpawn: True
|
||||||
|
Enemies: Creeps
|
||||||
|
PlayerReference@Multi2:
|
||||||
|
Name: Multi2
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: allies
|
||||||
|
LockSpawn: True
|
||||||
|
Enemies: Creeps
|
||||||
|
PlayerReference@Multi3:
|
||||||
|
Name: Multi3
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: allies
|
||||||
|
LockSpawn: True
|
||||||
|
Enemies: Creeps
|
||||||
|
PlayerReference@Multi4:
|
||||||
|
Name: Multi4
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: allies
|
||||||
|
LockSpawn: True
|
||||||
|
Enemies: Creeps
|
||||||
|
PlayerReference@Multi5:
|
||||||
|
Name: Multi5
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: allies
|
||||||
|
LockSpawn: True
|
||||||
|
Enemies: Creeps
|
||||||
|
PlayerReference@Multi6:
|
||||||
|
Name: Multi6
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: allies
|
||||||
|
LockSpawn: True
|
||||||
|
Enemies: Creeps
|
||||||
|
PlayerReference@Multi7:
|
||||||
|
Name: Multi7
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: allies
|
||||||
|
LockSpawn: True
|
||||||
|
Enemies: Creeps
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Actor2: mpspawn
|
||||||
|
Location: 34,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor4: mpspawn
|
||||||
|
Location: 30,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor6: mpspawn
|
||||||
|
Location: 32,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor0: mpspawn
|
||||||
|
Location: 30,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor12: lst
|
||||||
|
Location: 35,29
|
||||||
|
Owner: Multi0
|
||||||
|
Actor14: lst
|
||||||
|
Location: 29,29
|
||||||
|
Owner: Multi1
|
||||||
|
Actor8: lst
|
||||||
|
Location: 29,35
|
||||||
|
Owner: Multi2
|
||||||
|
Actor10: lst
|
||||||
|
Location: 35,35
|
||||||
|
Owner: Multi3
|
||||||
|
Actor9: lst
|
||||||
|
Location: 32,35
|
||||||
|
Owner: Multi4
|
||||||
|
Actor13: lst
|
||||||
|
Location: 32,29
|
||||||
|
Owner: Multi5
|
||||||
|
Actor11: lst
|
||||||
|
Location: 35,32
|
||||||
|
Owner: Multi6
|
||||||
|
Actor15: lst
|
||||||
|
Location: 29,32
|
||||||
|
Owner: Multi7
|
||||||
|
Actor7: mpspawn
|
||||||
|
Location: 34,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor3: mpspawn
|
||||||
|
Location: 34,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor1: mpspawn
|
||||||
|
Location: 32,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor5: mpspawn
|
||||||
|
Location: 30,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor16: v12
|
||||||
|
Location: 37,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor17: v11
|
||||||
|
Location: 38,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor18: v17
|
||||||
|
Location: 38,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor19: brl3
|
||||||
|
Location: 47,21
|
||||||
|
Owner: Neutral
|
||||||
|
Actor20: v15
|
||||||
|
Location: 39,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor21: t12
|
||||||
|
Location: 39,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor22: t08
|
||||||
|
Location: 29,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor23: tc02
|
||||||
|
Location: 15,46
|
||||||
|
Owner: Neutral
|
||||||
|
Actor24: t07
|
||||||
|
Location: 16,44
|
||||||
|
Owner: Neutral
|
||||||
|
Actor25: tc05
|
||||||
|
Location: 14,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor26: t07
|
||||||
|
Location: 36,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor28: v14
|
||||||
|
Location: 38,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor27: t08
|
||||||
|
Location: 37,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor30: t10
|
||||||
|
Location: 21,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor31: t01
|
||||||
|
Location: 23,34
|
||||||
|
Owner: Neutral
|
||||||
|
|
||||||
|
Smudges:
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
World:
|
||||||
|
CrateDrop:
|
||||||
|
Maximum: 3
|
||||||
|
SpawnInterval: 5
|
||||||
|
WaterChance: 1
|
||||||
|
-SpawnMPUnits:
|
||||||
|
-MPStartLocations:
|
||||||
|
CRATE:
|
||||||
|
-LevelUpCrateAction:
|
||||||
|
-GiveMcvCrateAction:
|
||||||
|
-GiveUnitCrateAction@jeep:
|
||||||
|
-GiveUnitCrateAction@arty:
|
||||||
|
-GiveUnitCrateAction@v2rl:
|
||||||
|
-GiveUnitCrateAction@1tnk:
|
||||||
|
-GiveUnitCrateAction@2tnk:
|
||||||
|
-GiveUnitCrateAction@3tnk:
|
||||||
|
-GiveUnitCrateAction@4tnk:
|
||||||
|
-RevealMapCrateAction:
|
||||||
|
-HideMapCrateAction:
|
||||||
|
-ExplodeCrateAction@nuke:
|
||||||
|
-ExplodeCrateAction@boom:
|
||||||
|
-ExplodeCrateAction@fire:
|
||||||
|
-SupportPowerCrateAction@parabombs:
|
||||||
|
-GiveCashCrateAction:
|
||||||
|
GiveUnitCrateAction@pt:
|
||||||
|
SelectionShares: 7
|
||||||
|
Unit: pt
|
||||||
|
GiveUnitCrateAction@dd:
|
||||||
|
SelectionShares: 6
|
||||||
|
Unit: dd
|
||||||
|
GiveUnitCrateAction@ca:
|
||||||
|
SelectionShares: 4
|
||||||
|
Unit: ca
|
||||||
|
GiveUnitCrateAction@ss:
|
||||||
|
SelectionShares: 6
|
||||||
|
Unit: ss
|
||||||
|
GiveUnitCrateAction@msub:
|
||||||
|
SelectionShares: 4
|
||||||
|
Unit: msub
|
||||||
|
LST:
|
||||||
|
Buildable:
|
||||||
|
Queue: Ship
|
||||||
|
BuildPaletteOrder: 30
|
||||||
|
Owner: allies
|
||||||
|
Tooltip:
|
||||||
|
Name: Naval Mobile HQ
|
||||||
|
Description: Naval mobile HQ.\n Protect it at all costs.
|
||||||
|
Health:
|
||||||
|
HP: 1000
|
||||||
|
Mobile:
|
||||||
|
Speed: 12
|
||||||
|
RevealsShroud:
|
||||||
|
Range: 50
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon:M60mg
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon:M60mg
|
||||||
|
AttackFrontal:
|
||||||
|
WithMuzzleFlash:
|
||||||
|
MustBeDestroyed:
|
||||||
|
-GivesBounty:
|
||||||
|
PT:
|
||||||
|
Buildable:
|
||||||
|
Owner: allies
|
||||||
|
-GivesBounty:
|
||||||
|
DD:
|
||||||
|
Buildable:
|
||||||
|
Owner: allies
|
||||||
|
-GivesBounty:
|
||||||
|
CA:
|
||||||
|
Buildable:
|
||||||
|
Owner: allies
|
||||||
|
-GivesBounty:
|
||||||
|
SS:
|
||||||
|
Buildable:
|
||||||
|
Owner: allies
|
||||||
|
-GivesBounty:
|
||||||
|
MSUB:
|
||||||
|
Buildable:
|
||||||
|
Owner: allies
|
||||||
|
-GivesBounty:
|
||||||
|
|
||||||
|
Sequences:
|
||||||
|
lst:
|
||||||
|
muzzle: minigun
|
||||||
|
Start: 0
|
||||||
|
Length: 6
|
||||||
|
Facings: 8
|
||||||
|
turret: mgun
|
||||||
|
Start: 0
|
||||||
|
Facings: 32
|
||||||
|
|
||||||
|
Weapons:
|
||||||
|
8Inch:
|
||||||
|
ROF: 200
|
||||||
|
Range: 32
|
||||||
|
Burst: 4
|
||||||
|
Report: TURRET1
|
||||||
|
Projectile: Bullet
|
||||||
|
Speed: 32
|
||||||
|
High: true
|
||||||
|
Angle: .1
|
||||||
|
Inaccuracy: 80
|
||||||
|
Image: 120MM
|
||||||
|
ContrailLength: 30
|
||||||
|
Warhead:
|
||||||
|
Spread: 3
|
||||||
|
Versus:
|
||||||
|
None: 60%
|
||||||
|
Wood: 75%
|
||||||
|
Light: 60%
|
||||||
|
Heavy: 25%
|
||||||
|
Explosion: large_explosion
|
||||||
|
WaterExplosion: large_splash
|
||||||
|
InfDeath: 2
|
||||||
|
SmudgeType: Crater
|
||||||
|
Damage: 250
|
||||||
|
ImpactSound: kaboom12
|
||||||
|
WaterImpactSound: splash9
|
||||||
|
SubMissile:
|
||||||
|
ROF: 250
|
||||||
|
Range: 32
|
||||||
|
Burst: 4
|
||||||
|
Report: MISSILE6
|
||||||
|
Projectile: Bullet
|
||||||
|
Speed: 24
|
||||||
|
High: true
|
||||||
|
Angle: .1
|
||||||
|
Inaccuracy: 70
|
||||||
|
Image: MISSILE
|
||||||
|
Trail: smokey
|
||||||
|
ContrailLength: 30
|
||||||
|
Warhead:
|
||||||
|
Spread: 10
|
||||||
|
Versus:
|
||||||
|
None: 40%,
|
||||||
|
Light: 30%
|
||||||
|
Heavy: 30%
|
||||||
|
Explosion: large_explosion
|
||||||
|
WaterExplosion: large_splash
|
||||||
|
InfDeath: 2
|
||||||
|
SmudgeType: Crater
|
||||||
|
Damage: 400
|
||||||
|
ImpactSound: kaboom12
|
||||||
|
WaterImpactSound: splash9
|
||||||
|
|
||||||
|
Voices:
|
||||||
Binary file not shown.
BIN
mods/ra/maps/drop-zone/map.bin
Executable file
BIN
mods/ra/maps/drop-zone/map.bin
Executable file
Binary file not shown.
236
mods/ra/maps/drop-zone/map.yaml
Executable file
236
mods/ra/maps/drop-zone/map.yaml
Executable file
@@ -0,0 +1,236 @@
|
|||||||
|
Selectable: True
|
||||||
|
|
||||||
|
MapFormat: 5
|
||||||
|
|
||||||
|
Title: Drop Zone
|
||||||
|
|
||||||
|
Description: Pick up the crates with the APC to get units to kill the other players.
|
||||||
|
|
||||||
|
Author: Holloweye
|
||||||
|
|
||||||
|
Tileset: TEMPERAT
|
||||||
|
|
||||||
|
MapSize: 64,64
|
||||||
|
|
||||||
|
Bounds: 16,16,32,32
|
||||||
|
|
||||||
|
UseAsShellmap: False
|
||||||
|
|
||||||
|
Type: Minigame
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Race: allies
|
||||||
|
PlayerReference@Creeps:
|
||||||
|
Name: Creeps
|
||||||
|
NonCombatant: True
|
||||||
|
Race: allies
|
||||||
|
PlayerReference@Multi0:
|
||||||
|
Name: Multi0
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi1:
|
||||||
|
Name: Multi1
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi2:
|
||||||
|
Name: Multi2
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi1,Multi3,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi3:
|
||||||
|
Name: Multi3
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi1,Multi2,Multi4,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi4:
|
||||||
|
Name: Multi4
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi1,Multi2,Multi3,Multi5,Multi6,Multi17
|
||||||
|
PlayerReference@Multi5:
|
||||||
|
Name: Multi5
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi1,Multi6,Multi17
|
||||||
|
PlayerReference@Multi6:
|
||||||
|
Name: Multi6
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi1,Multi17
|
||||||
|
PlayerReference@Multi7:
|
||||||
|
Name: Multi7
|
||||||
|
Playable: True
|
||||||
|
LockRace: True
|
||||||
|
Race: soviet
|
||||||
|
Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi6,Multi11
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Actor0: apc
|
||||||
|
Location: 28,28
|
||||||
|
Owner: Multi0
|
||||||
|
Actor1: apc
|
||||||
|
Location: 30,28
|
||||||
|
Owner: Multi1
|
||||||
|
Actor2: apc
|
||||||
|
Location: 32,28
|
||||||
|
Owner: Multi2
|
||||||
|
Actor3: apc
|
||||||
|
Location: 32,30
|
||||||
|
Owner: Multi3
|
||||||
|
Actor4: apc
|
||||||
|
Location: 32,32
|
||||||
|
Owner: Multi4
|
||||||
|
Actor5: apc
|
||||||
|
Location: 30,32
|
||||||
|
Owner: Multi5
|
||||||
|
Actor6: apc
|
||||||
|
Location: 28,32
|
||||||
|
Owner: Multi6
|
||||||
|
Actor7: apc
|
||||||
|
Location: 28,30
|
||||||
|
Owner: Multi7
|
||||||
|
Actor9: tc04
|
||||||
|
Location: 18,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor10: tc02
|
||||||
|
Location: 44,44
|
||||||
|
Owner: Neutral
|
||||||
|
Actor11: t10
|
||||||
|
Location: 23,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor12: t08
|
||||||
|
Location: 34,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor13: t12
|
||||||
|
Location: 38,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor14: t12
|
||||||
|
Location: 35,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor15: tc04
|
||||||
|
Location: 43,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor16: tc05
|
||||||
|
Location: 18,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor17: t12
|
||||||
|
Location: 22,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor18: t07
|
||||||
|
Location: 18,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor19: t07
|
||||||
|
Location: 45,39
|
||||||
|
Owner: Neutral
|
||||||
|
Actor20: t07
|
||||||
|
Location: 40,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor8: mpspawn
|
||||||
|
Location: 29,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor21: mpspawn
|
||||||
|
Location: 29,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor22: mpspawn
|
||||||
|
Location: 29,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor23: mpspawn
|
||||||
|
Location: 30,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor24: mpspawn
|
||||||
|
Location: 31,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor25: mpspawn
|
||||||
|
Location: 31,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor26: mpspawn
|
||||||
|
Location: 31,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor27: mpspawn
|
||||||
|
Location: 30,29
|
||||||
|
Owner: Neutral
|
||||||
|
|
||||||
|
Smudges:
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
World:
|
||||||
|
CrateDrop:
|
||||||
|
Maximum: 3
|
||||||
|
SpawnInterval: 5
|
||||||
|
-SpawnMPUnits:
|
||||||
|
-MPStartLocations:
|
||||||
|
CRATE:
|
||||||
|
-LevelUpCrateAction:
|
||||||
|
-GiveMcvCrateAction:
|
||||||
|
-RevealMapCrateAction:
|
||||||
|
-HideMapCrateAction:
|
||||||
|
-ExplodeCrateAction@nuke:
|
||||||
|
-ExplodeCrateAction@boom:
|
||||||
|
-ExplodeCrateAction@fire:
|
||||||
|
-SupportPowerCrateAction@parabombs:
|
||||||
|
-GiveCashCrateAction:
|
||||||
|
GiveUnitCrateAction@ttnk:
|
||||||
|
SelectionShares: 4
|
||||||
|
Unit: ttnk
|
||||||
|
GiveUnitCrateAction@ftrk:
|
||||||
|
SelectionShares: 6
|
||||||
|
Unit: ftrk
|
||||||
|
GiveUnitCrateAction@harv:
|
||||||
|
SelectionShares: 1
|
||||||
|
Unit: harv
|
||||||
|
GiveUnitCrateAction@shok:
|
||||||
|
SelectionShares: 1
|
||||||
|
Unit: shok
|
||||||
|
GiveUnitCrateAction@dog:
|
||||||
|
SelectionShares: 1
|
||||||
|
Unit: dog
|
||||||
|
APC:
|
||||||
|
Health:
|
||||||
|
HP: 1000
|
||||||
|
RevealsShroud:
|
||||||
|
Range: 40
|
||||||
|
MustBeDestroyed:
|
||||||
|
-AttackMove:
|
||||||
|
HARV:
|
||||||
|
Tooltip:
|
||||||
|
Name: Bomb Truck
|
||||||
|
Description: Explodes like a damn nuke!
|
||||||
|
Health:
|
||||||
|
HP: 100
|
||||||
|
Explodes:
|
||||||
|
Weapon: CrateNuke
|
||||||
|
EmptyWeapon:
|
||||||
|
SHOK:
|
||||||
|
Health:
|
||||||
|
HP: 800
|
||||||
|
DOG:
|
||||||
|
Health:
|
||||||
|
HP: 120
|
||||||
|
Mobile:
|
||||||
|
Speed: 7
|
||||||
|
|
||||||
|
Sequences:
|
||||||
|
|
||||||
|
Weapons:
|
||||||
|
PortaTesla:
|
||||||
|
ROF: 20
|
||||||
|
Range: 10
|
||||||
|
Warhead:
|
||||||
|
Spread: 1
|
||||||
|
InfDeath: 5
|
||||||
|
Damage: 80
|
||||||
|
|
||||||
|
Voices:
|
||||||
@@ -2568,13 +2568,16 @@ Rules:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 1
|
ROT: 1
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: SuperTankPrimary
|
||||||
|
LocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 0.7
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: MammothTusk
|
||||||
|
LocalOffset: -7,2,0,0,25, 7,2,0,0,-25
|
||||||
|
Recoil: 1
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: SuperTankPrimary
|
|
||||||
SecondaryWeapon: MammothTusk
|
|
||||||
PrimaryLocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
|
||||||
SecondaryLocalOffset: -7,2,0,0,25, 7,2,0,0,-25
|
|
||||||
PrimaryRecoil: 4
|
|
||||||
PrimaryRecoilRecovery: 0.7
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
Image: 4TNK
|
Image: 4TNK
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
|||||||
Binary file not shown.
BIN
mods/ra/maps/training-camp/map.bin
Executable file
BIN
mods/ra/maps/training-camp/map.bin
Executable file
Binary file not shown.
1121
mods/ra/maps/training-camp/map.yaml
Executable file
1121
mods/ra/maps/training-camp/map.yaml
Executable file
File diff suppressed because it is too large
Load Diff
@@ -95,9 +95,10 @@ MIG:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 12
|
Range: 12
|
||||||
|
Armament:
|
||||||
|
Weapon: Maverick
|
||||||
|
LocalOffset: -15,0,0,0,-10, 15,0,0,0,6
|
||||||
AttackPlane:
|
AttackPlane:
|
||||||
PrimaryWeapon: Maverick
|
|
||||||
PrimaryLocalOffset: -15,0,0,0,-10, 15,0,0,0,6
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
Plane:
|
Plane:
|
||||||
InitialFacing: 192
|
InitialFacing: 192
|
||||||
@@ -144,11 +145,13 @@ YAK:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 10
|
Range: 10
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: ChainGun.Yak
|
||||||
|
LocalOffset: -5,-6,0,0,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: ChainGun.Yak
|
||||||
|
LocalOffset: 5,-6,0,0,0
|
||||||
AttackPlane:
|
AttackPlane:
|
||||||
PrimaryWeapon: ChainGun.Yak
|
|
||||||
SecondaryWeapon: ChainGun.Yak
|
|
||||||
PrimaryOffset: -5,-6,0,0
|
|
||||||
SecondaryOffset: 5,-6,0,0
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
Plane:
|
Plane:
|
||||||
RearmBuildings: afld
|
RearmBuildings: afld
|
||||||
@@ -250,11 +253,13 @@ HELI:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 12
|
Range: 12
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: HellfireAA
|
||||||
|
LocalOffset: -5,0,0,2,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: HellfireAG
|
||||||
|
Offset: 5,0,0,2,0
|
||||||
AttackHeli:
|
AttackHeli:
|
||||||
PrimaryWeapon: HellfireAG
|
|
||||||
SecondaryWeapon: HellfireAA
|
|
||||||
PrimaryOffset: -5,0,0,2
|
|
||||||
SecondaryOffset: 5,0,0,2
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
Helicopter:
|
Helicopter:
|
||||||
RearmBuildings: hpad
|
RearmBuildings: hpad
|
||||||
@@ -294,11 +299,13 @@ HIND:
|
|||||||
Type: Light
|
Type: Light
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 10
|
Range: 10
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: ChainGun
|
||||||
|
LocalOffset: -5,-2,0,2,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: ChainGun
|
||||||
|
LocalOffset: -5,-2,0,2,0
|
||||||
AttackHeli:
|
AttackHeli:
|
||||||
PrimaryWeapon: ChainGun
|
|
||||||
SecondaryWeapon: ChainGun
|
|
||||||
PrimaryOffset: -5,-2,0,2
|
|
||||||
SecondaryOffset: 5,-2,0,2
|
|
||||||
FacingTolerance: 20
|
FacingTolerance: 20
|
||||||
Helicopter:
|
Helicopter:
|
||||||
RearmBuildings: hpad
|
RearmBuildings: hpad
|
||||||
|
|||||||
@@ -103,9 +103,10 @@ V01.SNIPER:
|
|||||||
AutoTarget:
|
AutoTarget:
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 255
|
ROT: 255
|
||||||
|
Armament:
|
||||||
|
Weapon: Sniper
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Sniper
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
Cargo:
|
Cargo:
|
||||||
InitialUnits: sniper
|
InitialUnits: sniper
|
||||||
Types: Infantry
|
Types: Infantry
|
||||||
|
|||||||
@@ -289,8 +289,9 @@
|
|||||||
Speed: 4
|
Speed: 4
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 2
|
Range: 2
|
||||||
|
Armament:
|
||||||
|
Weapon: Pistol
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Pistol
|
|
||||||
ProximityCaptor:
|
ProximityCaptor:
|
||||||
Types:CivilianInfantry
|
Types:CivilianInfantry
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ DOG:
|
|||||||
Speed: 7
|
Speed: 7
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
AutoTarget:
|
Armament:
|
||||||
|
Weapon: DogJaw
|
||||||
AttackLeap:
|
AttackLeap:
|
||||||
PrimaryWeapon: DogJaw
|
|
||||||
CanAttackGround: no
|
CanAttackGround: no
|
||||||
RenderInfantry:
|
RenderInfantry:
|
||||||
IdleAnimations: idle1,idle2
|
IdleAnimations: idle1,idle2
|
||||||
@@ -46,8 +46,9 @@ E1:
|
|||||||
HP: 50
|
HP: 50
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 4
|
Speed: 4
|
||||||
|
Armament:
|
||||||
|
Weapon: M1Carbine
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: M1Carbine
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -72,10 +73,11 @@ E2:
|
|||||||
HP: 50
|
HP: 50
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 5
|
Speed: 5
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Grenade
|
Weapon: Grenade
|
||||||
PrimaryOffset: 0,0,0,-13
|
LocalOffset: 0,0,0,-13,0
|
||||||
FireDelay: 15
|
FireDelay: 15
|
||||||
|
AttackFrontal:
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -102,10 +104,13 @@ E3:
|
|||||||
HP: 45
|
HP: 45
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 3
|
Speed: 3
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: RedEye
|
||||||
|
LocalOffset: 0,0,0,-13,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: Dragon
|
||||||
|
LocalOffset: 0,0,0,-13,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: RedEye
|
|
||||||
SecondaryWeapon: Dragon
|
|
||||||
PrimaryOffset: 0,0,0,-13
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -130,10 +135,11 @@ E4:
|
|||||||
HP: 40
|
HP: 40
|
||||||
Mobile:
|
Mobile:
|
||||||
Speed: 3
|
Speed: 3
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: Flamer
|
Weapon: Flamer
|
||||||
PrimaryOffset: 0,-10,0,-8
|
LocalOffset: 0,-10,0,-8,0
|
||||||
FireDelay: 8
|
FireDelay: 8
|
||||||
|
AttackFrontal:
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -204,8 +210,9 @@ SPY:
|
|||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderSpy:
|
RenderSpy:
|
||||||
IdleAnimations: idle1,idle2
|
IdleAnimations: idle1,idle2
|
||||||
|
Armament:
|
||||||
|
Weapon: SilencedPPK
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: SilencedPPK
|
|
||||||
|
|
||||||
E7:
|
E7:
|
||||||
Inherits: ^Infantry
|
Inherits: ^Infantry
|
||||||
@@ -234,9 +241,11 @@ E7:
|
|||||||
C4Delay: 45
|
C4Delay: 45
|
||||||
Passenger:
|
Passenger:
|
||||||
PipType: Red
|
PipType: Red
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: Colt45
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: Colt45
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Colt45
|
|
||||||
SecondaryWeapon: Colt45
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -270,9 +279,11 @@ E8:
|
|||||||
Range: 4
|
Range: 4
|
||||||
Passenger:
|
Passenger:
|
||||||
PipType: Red
|
PipType: Red
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: VolkAT
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: VolkNapalm
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: VolkAT
|
|
||||||
SecondaryWeapon: VolkNapalm
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -308,8 +319,9 @@ MEDI:
|
|||||||
Passenger:
|
Passenger:
|
||||||
PipType: Yellow
|
PipType: Yellow
|
||||||
AutoHeal:
|
AutoHeal:
|
||||||
|
Armament:
|
||||||
|
Weapon: Heal
|
||||||
AttackMedic:
|
AttackMedic:
|
||||||
PrimaryWeapon: Heal
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
AttackMove:
|
AttackMove:
|
||||||
@@ -343,8 +355,9 @@ MECH:
|
|||||||
Passenger:
|
Passenger:
|
||||||
PipType: Yellow
|
PipType: Yellow
|
||||||
AutoHeal:
|
AutoHeal:
|
||||||
|
Armament:
|
||||||
|
Weapon: Repair
|
||||||
AttackMedic:
|
AttackMedic:
|
||||||
PrimaryWeapon: Repair
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
AttackMove:
|
AttackMove:
|
||||||
@@ -457,9 +470,10 @@ SHOK:
|
|||||||
Speed: 3
|
Speed: 3
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 4
|
Range: 4
|
||||||
|
Armament:
|
||||||
|
Weapon: PortaTesla
|
||||||
|
LocalOffset: 0,-10,0,-8,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: PortaTesla
|
|
||||||
PrimaryOffset: 0,-10,0,-8
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
@@ -492,8 +506,9 @@ SNIPER:
|
|||||||
Range: 6
|
Range: 6
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
InitialStance: HoldFire
|
InitialStance: HoldFire
|
||||||
|
Armament:
|
||||||
|
Weapon: Sniper
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: Sniper
|
|
||||||
TakeCover:
|
TakeCover:
|
||||||
-RenderInfantry:
|
-RenderInfantry:
|
||||||
RenderInfantryProne:
|
RenderInfantryProne:
|
||||||
|
|||||||
@@ -31,10 +31,11 @@ SS:
|
|||||||
CloakDelay: 50
|
CloakDelay: 50
|
||||||
CloakSound: subshow1.aud
|
CloakSound: subshow1.aud
|
||||||
UncloakSound: subshow1.aud
|
UncloakSound: subshow1.aud
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: TorpTube
|
Weapon: TorpTube
|
||||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
LocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
||||||
FireDelay: 2
|
FireDelay: 2
|
||||||
|
AttackFrontal:
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 38,38
|
Bounds: 38,38
|
||||||
Chronoshiftable:
|
Chronoshiftable:
|
||||||
@@ -78,9 +79,10 @@ MSUB:
|
|||||||
CloakDelay: 100
|
CloakDelay: 100
|
||||||
CloakSound: subshow1.aud
|
CloakSound: subshow1.aud
|
||||||
UncloakSound: subshow1.aud
|
UncloakSound: subshow1.aud
|
||||||
AttackFrontal:
|
Armament:
|
||||||
PrimaryWeapon: SubMissile
|
Weapon: SubMissile
|
||||||
FireDelay: 2
|
FireDelay: 2
|
||||||
|
AttackFrontal:
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 44,44
|
Bounds: 44,44
|
||||||
Chronoshiftable:
|
Chronoshiftable:
|
||||||
@@ -116,11 +118,13 @@ DD:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 7
|
ROT: 7
|
||||||
|
Offset: 0,-8,0,-3
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: Stinger
|
||||||
|
LocalOffset: -4,0,0,0,-20, 4,0,0,0,20
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: DepthCharge
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Stinger
|
|
||||||
SecondaryWeapon: DepthCharge
|
|
||||||
PrimaryOffset: 0,-8,0,-3
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,-20, 4,0,0,0,20
|
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 38,38
|
Bounds: 38,38
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
@@ -155,19 +159,27 @@ CA:
|
|||||||
Speed: 2
|
Speed: 2
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 7
|
Range: 7
|
||||||
Turreted:
|
Turreted@PRIMARY:
|
||||||
|
Turret: primary
|
||||||
|
Offset: 0,17,0,-2
|
||||||
ROT: 3
|
ROT: 3
|
||||||
|
Turreted@SECONDARY:
|
||||||
|
Turret: secondary
|
||||||
|
Offset: 0,-17,0,-2
|
||||||
|
ROT: 3
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Turret: primary
|
||||||
|
Weapon: 8Inch
|
||||||
|
LocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 0.8
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Turret: secondary
|
||||||
|
Weapon: 8Inch
|
||||||
|
LocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 0.8
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 8Inch
|
|
||||||
SecondaryWeapon: 8Inch
|
|
||||||
PrimaryOffset: 0,17,0,-2
|
|
||||||
SecondaryOffset: 0,-17,0,-2
|
|
||||||
PrimaryLocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
|
||||||
SecondaryLocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
|
||||||
PrimaryRecoil: 4
|
|
||||||
SecondaryRecoil: 4
|
|
||||||
PrimaryRecoilRecovery: 0.8
|
|
||||||
SecondaryRecoilRecovery: 0.8
|
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 44,44
|
Bounds: 44,44
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
@@ -232,10 +244,12 @@ PT:
|
|||||||
Range: 7
|
Range: 7
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 7
|
ROT: 7
|
||||||
|
Offset: 0,-6,0,-1
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: 2Inch
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: DepthCharge
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 2Inch
|
|
||||||
SecondaryWeapon: DepthCharge
|
|
||||||
PrimaryOffset: 0,-6,0,-1
|
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 32,32
|
Bounds: 32,32
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
|
|||||||
@@ -282,10 +282,11 @@ TSLA:
|
|||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 8
|
Range: 8
|
||||||
RenderBuildingCharge:
|
RenderBuildingCharge:
|
||||||
|
Armament:
|
||||||
|
Weapon: TeslaZap
|
||||||
|
LocalOffset: 0,0,0,-10,0
|
||||||
AttackTesla:
|
AttackTesla:
|
||||||
PrimaryWeapon: TeslaZap
|
|
||||||
ReloadTime: 120
|
ReloadTime: 120
|
||||||
PrimaryOffset: 0,0,0,-10
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -323,9 +324,11 @@ AGUN:
|
|||||||
ROT: 15
|
ROT: 15
|
||||||
InitialFacing: 224
|
InitialFacing: 224
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: ZSU-23
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: ZSU-23
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: ZSU-23
|
|
||||||
SecondaryWeapon: ZSU-23
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -442,9 +445,10 @@ PBOX.E1:
|
|||||||
Image: PBOX
|
Image: PBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Vulcan
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Vulcan
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
Cargo:
|
Cargo:
|
||||||
InitialUnits: e1
|
InitialUnits: e1
|
||||||
@@ -464,9 +468,10 @@ PBOX.E3:
|
|||||||
Image: PBOX
|
Image: PBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Dragon
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Dragon
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
PBOX.E4:
|
PBOX.E4:
|
||||||
Inherits: PBOX
|
Inherits: PBOX
|
||||||
@@ -476,9 +481,10 @@ PBOX.E4:
|
|||||||
Image: PBOX
|
Image: PBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Flamer
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Flamer
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
PBOX.E7:
|
PBOX.E7:
|
||||||
Inherits: PBOX
|
Inherits: PBOX
|
||||||
@@ -488,9 +494,10 @@ PBOX.E7:
|
|||||||
Image: PBOX
|
Image: PBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Colt45
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Colt45
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
PBOX.SHOK:
|
PBOX.SHOK:
|
||||||
Inherits: PBOX
|
Inherits: PBOX
|
||||||
@@ -500,9 +507,10 @@ PBOX.SHOK:
|
|||||||
Image: PBOX
|
Image: PBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: PortaTesla
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: PortaTesla
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
PBOX.SNIPER:
|
PBOX.SNIPER:
|
||||||
Inherits: PBOX
|
Inherits: PBOX
|
||||||
@@ -512,9 +520,10 @@ PBOX.SNIPER:
|
|||||||
Image: PBOX
|
Image: PBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Sniper
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Sniper
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
HBOX:
|
HBOX:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
@@ -599,9 +608,10 @@ HBOX.E1:
|
|||||||
Image: HBOX
|
Image: HBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Vulcan
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Vulcan
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
Cargo:
|
Cargo:
|
||||||
InitialUnits: e1
|
InitialUnits: e1
|
||||||
@@ -621,9 +631,10 @@ HBOX.E3:
|
|||||||
Image: HBOX
|
Image: HBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Dragon
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Dragon
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
HBOX.E4:
|
HBOX.E4:
|
||||||
Inherits: HBOX
|
Inherits: HBOX
|
||||||
@@ -633,9 +644,10 @@ HBOX.E4:
|
|||||||
Image: HBOX
|
Image: HBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Flamer
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Flamer
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
HBOX.E7:
|
HBOX.E7:
|
||||||
Inherits: HBOX
|
Inherits: HBOX
|
||||||
@@ -645,9 +657,10 @@ HBOX.E7:
|
|||||||
Image: HBOX
|
Image: HBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Colt45
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Colt45
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
HBOX.SHOK:
|
HBOX.SHOK:
|
||||||
Inherits: HBOX
|
Inherits: HBOX
|
||||||
@@ -657,9 +670,10 @@ HBOX.SHOK:
|
|||||||
Image: HBOX
|
Image: HBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: PortaTesla
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: PortaTesla
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
HBOX.SNIPER:
|
HBOX.SNIPER:
|
||||||
Inherits: HBOX
|
Inherits: HBOX
|
||||||
@@ -669,9 +683,10 @@ HBOX.SNIPER:
|
|||||||
Image: HBOX
|
Image: HBOX
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament:
|
||||||
|
Weapon: Sniper
|
||||||
|
LocalOffset: 0,-11,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Sniper
|
|
||||||
PrimaryLocalOffset: 0,-11,0,0,0
|
|
||||||
|
|
||||||
GUN:
|
GUN:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
@@ -699,8 +714,9 @@ GUN:
|
|||||||
ROT: 12
|
ROT: 12
|
||||||
InitialFacing: 50
|
InitialFacing: 50
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament:
|
||||||
|
Weapon: TurretGun
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: TurretGun
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
-RenderBuilding:
|
-RenderBuilding:
|
||||||
@@ -732,10 +748,11 @@ FTUR:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 255
|
ROT: 255
|
||||||
|
Offset: 0,0,0,-2
|
||||||
|
Armament:
|
||||||
|
Weapon: FireballLauncher
|
||||||
|
LocalOffset: 0,-12,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: FireballLauncher
|
|
||||||
PrimaryOffset: 0,0,0,-2
|
|
||||||
PrimaryLocalOffset: 0,-12,0,0,0
|
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
RenderRangeCircle:
|
RenderRangeCircle:
|
||||||
@@ -770,8 +787,9 @@ SAM:
|
|||||||
ROT: 30
|
ROT: 30
|
||||||
InitialFacing: 0
|
InitialFacing: 0
|
||||||
RenderBuildingTurreted:
|
RenderBuildingTurreted:
|
||||||
|
Armament:
|
||||||
|
Weapon: Nike
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: Nike
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
IronCurtainable:
|
IronCurtainable:
|
||||||
|
|||||||
@@ -19,8 +19,9 @@ V2RL:
|
|||||||
Speed: 7
|
Speed: 7
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: SCUD
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: SCUD
|
|
||||||
RenderUnitReload:
|
RenderUnitReload:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -49,10 +50,11 @@ V2RL:
|
|||||||
Range: 4
|
Range: 4
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 25mm
|
||||||
|
Recoil: 2
|
||||||
|
RecoilRecovery: 0.5
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 25mm
|
|
||||||
PrimaryRecoil: 2
|
|
||||||
PrimaryRecoilRecovery: 0.5
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -85,10 +87,11 @@ V2RL:
|
|||||||
Range: 5
|
Range: 5
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 90mm
|
||||||
|
Recoil: 3
|
||||||
|
RecoilRecovery: 0.9
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 90mm
|
|
||||||
PrimaryRecoil: 3
|
|
||||||
PrimaryRecoilRecovery: 0.9
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -123,11 +126,12 @@ V2RL:
|
|||||||
Range: 5
|
Range: 5
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 105mm
|
||||||
|
Recoil: 3
|
||||||
|
RecoilRecovery: 0.9
|
||||||
|
LocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 105mm
|
|
||||||
PrimaryRecoil: 3
|
|
||||||
PrimaryRecoilRecovery: 0.9
|
|
||||||
PrimaryLocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -162,14 +166,16 @@ V2RL:
|
|||||||
Range: 6
|
Range: 6
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 1
|
ROT: 1
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: 120mm
|
||||||
|
LocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
||||||
|
Recoil: 4
|
||||||
|
RecoilRecovery: 0.7
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: MammothTusk
|
||||||
|
LocalOffset: -7,2,0,0,25, 7,2,0,0,-25
|
||||||
|
Recoil: 1
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: 120mm
|
|
||||||
SecondaryWeapon: MammothTusk
|
|
||||||
PrimaryLocalOffset: -4,-5,0,0,0, 4,-5,0,0,0
|
|
||||||
SecondaryLocalOffset: -7,2,0,0,25, 7,2,0,0,-25
|
|
||||||
PrimaryRecoil: 4
|
|
||||||
PrimaryRecoilRecovery: 0.7
|
|
||||||
SecondaryRecoil: 1
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -207,8 +213,9 @@ ARTY:
|
|||||||
Speed: 6
|
Speed: 6
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: 155mm
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: 155mm
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
Explodes:
|
Explodes:
|
||||||
Weapon: UnitExplode
|
Weapon: UnitExplode
|
||||||
@@ -319,9 +326,10 @@ JEEP:
|
|||||||
Range: 8
|
Range: 8
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 10
|
ROT: 10
|
||||||
|
Offset: 0,0,0,-2
|
||||||
|
Armament:
|
||||||
|
Weapon: M60mg
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: M60mg
|
|
||||||
PrimaryOffset: 0,0,0,-2
|
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -351,9 +359,10 @@ APC:
|
|||||||
Speed: 10
|
Speed: 10
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 5
|
Range: 5
|
||||||
|
Armament:
|
||||||
|
Weapon: M60mg
|
||||||
|
LocalOffset: 0,0,0,-4,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: M60mg
|
|
||||||
PrimaryOffset: 0,0,0,-4
|
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
@@ -614,9 +623,10 @@ TTNK:
|
|||||||
Crushes: wall, atmine, crate, infantry
|
Crushes: wall, atmine, crate, infantry
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 7
|
Range: 7
|
||||||
|
Armament:
|
||||||
|
Weapon: TTankZap
|
||||||
|
LocalOffset: 0,0,0,-5,0
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: TTankZap
|
|
||||||
PrimaryOffset: 0,0,0,-5
|
|
||||||
RenderUnitSpinner:
|
RenderUnitSpinner:
|
||||||
Selectable:
|
Selectable:
|
||||||
Bounds: 28,28,0,0
|
Bounds: 28,28,0,0
|
||||||
@@ -645,10 +655,11 @@ FTRK:
|
|||||||
Range: 4
|
Range: 4
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 5
|
ROT: 5
|
||||||
|
Offset: 0,5,0,-4
|
||||||
|
Armament:
|
||||||
|
Weapon: FLAK-23
|
||||||
|
Recoil: 2
|
||||||
AttackTurreted:
|
AttackTurreted:
|
||||||
PrimaryWeapon: FLAK-23
|
|
||||||
PrimaryOffset: 0,5,0,-4
|
|
||||||
PrimaryRecoil: 2
|
|
||||||
RenderUnitTurreted:
|
RenderUnitTurreted:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
Explodes:
|
Explodes:
|
||||||
@@ -714,9 +725,11 @@ CTNK:
|
|||||||
Range: 6
|
Range: 6
|
||||||
RenderUnit:
|
RenderUnit:
|
||||||
AutoTarget:
|
AutoTarget:
|
||||||
|
Armament@PRIMARY:
|
||||||
|
Weapon: ChronoTusk
|
||||||
|
LocalOffset: -4,0,0,0,0, -4,0,0,0,0
|
||||||
|
Armament@SECONDARY:
|
||||||
|
Weapon: ChronoTusk
|
||||||
|
LocalOffset: 4,0,0,0,25, 4,0,0,0,-25
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
PrimaryWeapon: ChronoTusk
|
|
||||||
SecondaryWeapon: ChronoTusk
|
|
||||||
PrimaryLocalOffset: -4,0,0,0,0, -4,0,0,0,0
|
|
||||||
SecondaryLocalOffset: 4,0,0,0,25, 4,0,0,0,-25
|
|
||||||
ChronoshiftDeploy:
|
ChronoshiftDeploy:
|
||||||
|
|||||||
Reference in New Issue
Block a user