Merge pull request #2770 from pchote/turret-cleanup
Weapon / Turret refactoring
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