Merge pull request #2770 from pchote/turret-cleanup
Weapon / Turret refactoring
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Traits;
|
||||
|
||||
@@ -26,7 +27,7 @@ namespace OpenRA.Mods.RA.Render
|
||||
string lastDamage = "";
|
||||
|
||||
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>();
|
||||
anim.Play("left");
|
||||
|
||||
@@ -200,9 +200,10 @@ namespace OpenRA.Mods.RA.AI
|
||||
return RelativeValue(own, enemy, 100, SumOfValues<AttackBase>, (Actor a) =>
|
||||
{
|
||||
int sumOfDamage = 0;
|
||||
foreach (var weap in a.Trait<AttackBase>().Weapons)
|
||||
if (weap.Info.Warheads[0] != null)
|
||||
sumOfDamage += weap.Info.Warheads[0].Damage;
|
||||
var arms = a.TraitsImplementing<Armament>();
|
||||
foreach (var arm in arms)
|
||||
if (arm.Weapon.Warheads[0] != null)
|
||||
sumOfDamage += arm.Weapon.Warheads[0].Damage;
|
||||
return sumOfDamage;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -230,12 +230,13 @@ namespace OpenRA.Mods.RA.AI
|
||||
if (!target.HasTrait<TargetableUnit<TargetableUnitInfo>>() &&
|
||||
!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>>() &&
|
||||
weap.Info.ValidTargets.Intersect(target.Trait<TargetableUnit<TargetableUnitInfo>>().TargetTypes) != null)
|
||||
arm.Weapon.ValidTargets.Intersect(target.Trait<TargetableUnit<TargetableUnitInfo>>().TargetTypes) != null)
|
||||
return true;
|
||||
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 false;
|
||||
}
|
||||
@@ -253,12 +254,15 @@ namespace OpenRA.Mods.RA.AI
|
||||
foreach (var unit in units)
|
||||
if (unit != null && unit.HasTrait<AttackBase>() && !unit.HasTrait<Aircraft>()
|
||||
&& !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++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
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
|
||||
{
|
||||
[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 int MinimumScanTimeInterval = 30;
|
||||
public readonly int MaximumScanTimeInterval = 60;
|
||||
|
||||
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
|
||||
{
|
||||
[Sync] public bool IsAttacking { get; internal set; }
|
||||
|
||||
public List<Weapon> Weapons = new List<Weapon>();
|
||||
public List<Turret> Turrets = new List<Turret>();
|
||||
|
||||
readonly Actor self;
|
||||
|
||||
Lazy<IEnumerable<Armament>> armaments;
|
||||
protected IEnumerable<Armament> Armaments { get { return armaments.Value; } }
|
||||
|
||||
public AttackBase(Actor self)
|
||||
{
|
||||
this.self = self;
|
||||
var info = self.Info.Traits.Get<AttackBaseInfo>();
|
||||
|
||||
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));
|
||||
armaments = Lazy.New(() => self.TraitsImplementing<Armament>());
|
||||
}
|
||||
|
||||
protected virtual bool CanAttack(Actor self, Target target)
|
||||
{
|
||||
if (!self.IsInWorld) 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 (target.IsActor && target.Actor.HasTrait<ITargetable>() &&
|
||||
@@ -94,15 +58,12 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
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>>();
|
||||
|
||||
public virtual void Tick(Actor self)
|
||||
{
|
||||
foreach (var w in Weapons)
|
||||
w.Tick();
|
||||
|
||||
for (var i = 0; i < delayedActions.Count; i++)
|
||||
{
|
||||
var x = delayedActions[i];
|
||||
@@ -127,20 +88,20 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
var move = self.TraitOrDefault<IMove>();
|
||||
var facing = self.TraitOrDefault<IFacing>();
|
||||
foreach (var w in Weapons)
|
||||
w.CheckFire(self, this, move, facing, target);
|
||||
foreach (var a in Armaments)
|
||||
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
|
||||
{
|
||||
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 )
|
||||
@@ -163,12 +124,6 @@ namespace OpenRA.Mods.RA
|
||||
self.SetTargetLine(target, Color.Red);
|
||||
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)
|
||||
@@ -178,10 +133,10 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
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 float GetMaximumRange() { return Weapons.Max(w => w.Info.Range); }
|
||||
public bool HasAnyValidWeapons(Target t) { return Armaments.Any(a => a.IsValidAgainst(self.World, t)); }
|
||||
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 )
|
||||
{
|
||||
|
||||
@@ -42,10 +42,10 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
||||
{
|
||||
var weapon = ChooseWeaponForTarget(newTarget);
|
||||
if( weapon == null )
|
||||
var weapon = ChooseArmamentForTarget(newTarget);
|
||||
if (weapon == 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
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using OpenRA.Mods.RA.Activities;
|
||||
using OpenRA.Traits;
|
||||
|
||||
@@ -28,10 +29,15 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public override void DoAttack(Actor self, Target target)
|
||||
{
|
||||
if( !CanAttack( self, target ) ) return;
|
||||
if (!CanAttack(self, target))
|
||||
return;
|
||||
|
||||
var weapon = Weapons[0].Info;
|
||||
if( !Combat.IsInRange( self.CenterLocation, weapon.Range, target ) ) return;
|
||||
var a = ChooseArmamentForTarget(target);
|
||||
if (a == null)
|
||||
return;
|
||||
|
||||
if (!Combat.IsInRange(self.CenterLocation, a.Weapon.Range, target))
|
||||
return;
|
||||
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new Leap(self, target));
|
||||
@@ -39,10 +45,10 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
||||
{
|
||||
var weapon = ChooseWeaponForTarget(newTarget);
|
||||
if( weapon == null )
|
||||
var a = ChooseArmamentForTarget(newTarget);
|
||||
if (a == 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
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Mods.RA.Activities;
|
||||
|
||||
@@ -26,15 +27,19 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public override void DoAttack(Actor self, Target target)
|
||||
{
|
||||
if (!CanAttack (self, target)) return;
|
||||
if (!CanAttack(self, target)) return;
|
||||
|
||||
var weapon = Weapons[0].Info;
|
||||
if (!Combat.IsInRange(self.CenterLocation, weapon.Range, target)) return;
|
||||
var arm = Armaments.FirstOrDefault();
|
||||
if (arm == null)
|
||||
return;
|
||||
|
||||
if (!Combat.IsInRange(self.CenterLocation, arm.Weapon.Range, target))
|
||||
return;
|
||||
|
||||
var move = self.TraitOrDefault<IMove>();
|
||||
var facing = self.TraitOrDefault<IFacing>();
|
||||
foreach (var w in Weapons)
|
||||
w.CheckFire(self, this, move, facing, target);
|
||||
foreach (var a in Armaments)
|
||||
a.CheckFire(self, this, move, facing, target);
|
||||
|
||||
if (target.Actor != null)
|
||||
target.Actor.ChangeOwner(self.Owner);
|
||||
|
||||
@@ -29,10 +29,10 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
|
||||
{
|
||||
var weapon = ChooseWeaponForTarget(newTarget);
|
||||
if( weapon == null )
|
||||
var weapon = ChooseArmamentForTarget(newTarget);
|
||||
if (weapon == 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
|
||||
|
||||
using System.Linq;
|
||||
using OpenRA.GameRules;
|
||||
using OpenRA.Mods.RA.Buildings;
|
||||
using OpenRA.Mods.RA.Render;
|
||||
@@ -30,11 +31,13 @@ namespace OpenRA.Mods.RA
|
||||
AttackPopupTurretedInfo Info;
|
||||
int IdleTicks = 0;
|
||||
PopupState State = PopupState.Open;
|
||||
Turreted turret;
|
||||
|
||||
public AttackPopupTurreted(ActorInitializer init, AttackPopupTurretedInfo info) : base(init.self)
|
||||
{
|
||||
Info = info;
|
||||
buildComplete = init.Contains<SkipMakeAnimsInit>();
|
||||
turret = turrets.FirstOrDefault();
|
||||
}
|
||||
|
||||
protected override bool CanAttack( Actor self, Target target )
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Mods.RA.Activities;
|
||||
using OpenRA.Mods.RA.Buildings;
|
||||
@@ -25,12 +26,12 @@ namespace OpenRA.Mods.RA
|
||||
class AttackTurreted : AttackBase, INotifyBuildComplete, ISync
|
||||
{
|
||||
protected Target target;
|
||||
protected Turreted turret;
|
||||
protected IEnumerable<Turreted> turrets;
|
||||
[Sync] protected bool buildComplete;
|
||||
|
||||
public AttackTurreted(Actor self) : base(self)
|
||||
{
|
||||
turret = self.Trait<Turreted>();
|
||||
turrets = self.TraitsImplementing<Turreted>();
|
||||
}
|
||||
|
||||
protected override bool CanAttack( Actor self, Target target )
|
||||
@@ -39,7 +40,12 @@ namespace OpenRA.Mods.RA
|
||||
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 );
|
||||
}
|
||||
@@ -85,7 +91,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
var attack = self.Trait<AttackTurreted>();
|
||||
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)
|
||||
{
|
||||
@@ -93,7 +99,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
if (allowMove && self.HasTrait<Mobile>() && !self.Info.Traits.Get<MobileInfo>().OnRails)
|
||||
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 );
|
||||
}
|
||||
|
||||
|
||||
@@ -208,48 +208,6 @@ namespace OpenRA.Mods.RA
|
||||
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 )
|
||||
{
|
||||
var rsq = range * range * Game.CellSize * Game.CellSize;
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
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); }
|
||||
|
||||
@@ -55,7 +55,9 @@ namespace OpenRA.Mods.RA
|
||||
if (facing != null)
|
||||
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)
|
||||
td.Add( new TurretFacingInit(turreted.turretFacing) );
|
||||
|
||||
|
||||
@@ -368,7 +368,6 @@
|
||||
<Compile Include="Turreted.cs" />
|
||||
<Compile Include="Valued.cs" />
|
||||
<Compile Include="WaterPaletteRotation.cs" />
|
||||
<Compile Include="Weapon.cs" />
|
||||
<Compile Include="Widgets\BuildPaletteWidget.cs" />
|
||||
<Compile Include="Widgets\Logic\ModBrowserLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\ColorPickerLogic.cs" />
|
||||
@@ -420,6 +419,7 @@
|
||||
<Compile Include="Widgets\ColorPreviewManagerWidget.cs" />
|
||||
<Compile Include="FogPalette.cs" />
|
||||
<Compile Include="Infiltrates.cs" />
|
||||
<Compile Include="Armament.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
||||
|
||||
@@ -24,19 +24,17 @@ namespace OpenRA.Mods.RA.Render
|
||||
public RenderBuildingSeparateTurret(ActorInitializer init, RenderBuildingInfo info)
|
||||
: base(init, info)
|
||||
{
|
||||
var turreted = init.self.Trait<Turreted>();
|
||||
var attack = init.self.Trait<AttackBase>();
|
||||
var self = init.self;
|
||||
var turreted = self.TraitsImplementing<Turreted>();
|
||||
|
||||
var turretAnim = new Animation(GetImage(init.self), () => turreted.turretFacing);
|
||||
turretAnim.Play("turret");
|
||||
|
||||
for( var i = 0; i < attack.Turrets.Count; i++ )
|
||||
var i = 0;
|
||||
foreach (var t in turreted)
|
||||
{
|
||||
var turret = attack.Turrets[i];
|
||||
anims.Add( "turret_{0}".F(i),
|
||||
new AnimationWithOffset(turretAnim,
|
||||
() => Combat.GetTurretPosition(init.self, null, turret).ToFloat2(),
|
||||
null));
|
||||
var anim = new Animation(GetImage(self), () => t.turretFacing);
|
||||
anim.Play("turret");
|
||||
|
||||
anims.Add("turret_{0}".F(i++), new AnimationWithOffset(anim,
|
||||
() => t.PxPosition(self, null).ToFloat2(), null));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using OpenRA.Mods.RA.Buildings;
|
||||
using OpenRA.Traits;
|
||||
|
||||
@@ -26,7 +27,8 @@ namespace OpenRA.Mods.RA.Render
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,9 +31,10 @@ namespace OpenRA.Mods.RA.Render
|
||||
|
||||
spinnerAnim.PlayRepeating("spinner");
|
||||
|
||||
var turret = new Turret(info.Offset);
|
||||
anims.Add("spinner", new AnimationWithOffset(
|
||||
spinnerAnim,
|
||||
() => Combat.GetTurretPosition( self, facing, new Turret(info.Offset)).ToFloat2(),
|
||||
() => turret.PxPosition(self, facing).ToFloat2(),
|
||||
null ) { ZOffset = 1 } );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Traits;
|
||||
|
||||
@@ -24,20 +26,30 @@ namespace OpenRA.Mods.RA.Render
|
||||
: base(self)
|
||||
{
|
||||
var facing = self.Trait<IFacing>();
|
||||
var turreted = self.Trait<Turreted>();
|
||||
var attack = self.Trait<AttackBase>();
|
||||
var turreted = self.TraitsImplementing<Turreted>();
|
||||
|
||||
var turretAnim = new Animation(GetImage(self), () => turreted.turretFacing );
|
||||
turretAnim.Play( "turret" );
|
||||
|
||||
for( var i = 0; i < attack.Turrets.Count; i++ )
|
||||
var i = 0;
|
||||
foreach (var t in turreted)
|
||||
{
|
||||
var turret = attack.Turrets[i];
|
||||
anims.Add( "turret_{0}".F(i),
|
||||
new AnimationWithOffset( turretAnim,
|
||||
() => Combat.GetTurretPosition( self, facing, turret ).ToFloat2(),
|
||||
null));
|
||||
var turret = t;
|
||||
|
||||
var anim = new Animation(GetImage(self), () => turret.turretFacing);
|
||||
anim.Play("turret");
|
||||
|
||||
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
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Traits;
|
||||
using System;
|
||||
using OpenRA.Mods.RA;
|
||||
|
||||
namespace OpenRA.Mods.RA.Render
|
||||
{
|
||||
@@ -27,25 +29,25 @@ namespace OpenRA.Mods.RA.Render
|
||||
|
||||
public WithMuzzleFlash(Actor self)
|
||||
{
|
||||
var attack = self.Trait<AttackBase>();
|
||||
var render = self.Trait<RenderSimple>();
|
||||
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)
|
||||
foreach( var b in w.Barrels )
|
||||
var arms = self.TraitsImplementing<Armament>();
|
||||
foreach (var a in arms)
|
||||
foreach(var b in a.Barrels)
|
||||
{
|
||||
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);
|
||||
muzzleFlash.Play("muzzle");
|
||||
|
||||
muzzleFlashes.Add("muzzle{0}".F(muzzleFlashes.Count), new AnimationWithOffset(
|
||||
muzzleFlash,
|
||||
() => Combat.GetBarrelPosition(self, facing, turret, barrel).ToFloat2(),
|
||||
() => a.MuzzlePxPosition(self, facing, barrel).ToFloat2(),
|
||||
() => !isShowing));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,9 +30,10 @@ namespace OpenRA.Mods.RA.Render
|
||||
|
||||
rotorAnim = new Animation(rs.GetImage(self));
|
||||
rotorAnim.PlayRepeating("rotor");
|
||||
var turret = new Turret(info.Offset);
|
||||
rs.anims.Add(info.Id, new AnimationWithOffset(
|
||||
rotorAnim,
|
||||
() => Combat.GetTurretPosition( self, facing, new Turret(info.Offset)).ToFloat2(),
|
||||
() => turret.PxPosition(self, facing).ToFloat2(),
|
||||
null ) { ZOffset = 1 } );
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#endregion
|
||||
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Traits;
|
||||
|
||||
@@ -26,11 +27,11 @@ namespace OpenRA.Mods.RA
|
||||
public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation)
|
||||
{
|
||||
wr.DrawRangeCircleWithContrast(
|
||||
Color.FromArgb(128, Color.Yellow),
|
||||
centerLocation.ToFloat2(),
|
||||
ai.Traits.Get<AttackBaseInfo>().GetMaximumRange(),
|
||||
Color.FromArgb(96, Color.Black),
|
||||
1);
|
||||
Color.FromArgb(128, Color.Yellow), centerLocation.ToFloat2(),
|
||||
ai.Traits.WithInterface<ArmamentInfo>()
|
||||
.Select(a => Rules.Weapons[a.Weapon.ToLowerInvariant()].Range).Max(),
|
||||
Color.FromArgb(96, Color.Black), 1
|
||||
);
|
||||
|
||||
foreach (var a in w.ActorsWithTrait<RenderRangeCircle>())
|
||||
if (a.Actor.Owner == a.Actor.World.LocalPlayer)
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
var facing = self.Trait<IFacing>();
|
||||
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()))
|
||||
self.World.AddFrameEndTask(
|
||||
|
||||
@@ -14,23 +14,24 @@ using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
public class TakeCoverInfo : ITraitInfo
|
||||
public class TakeCoverInfo : TurretedInfo
|
||||
{
|
||||
public readonly int ProneTime = 100; /* ticks, =4s */
|
||||
public readonly float ProneDamage = .5f;
|
||||
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
|
||||
public class TakeCover : ITick, INotifyDamage, IDamageModifier, ISpeedModifier, ISync
|
||||
public class TakeCover : Turreted, ITick, INotifyDamage, IDamageModifier, ISpeedModifier, ISync
|
||||
{
|
||||
TakeCoverInfo Info;
|
||||
[Sync] int remainingProneTime = 0;
|
||||
|
||||
public TakeCover(TakeCoverInfo info)
|
||||
public TakeCover(ActorInitializer init, TakeCoverInfo info)
|
||||
: base(init, 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 (!IsProne)
|
||||
ApplyBarrelOffset(self, true);
|
||||
turret = new Turret(Info.ProneOffset);
|
||||
remainingProneTime = Info.ProneTime;
|
||||
}
|
||||
}
|
||||
|
||||
public void Tick(Actor self)
|
||||
public override void Tick(Actor self)
|
||||
{
|
||||
if (IsProne)
|
||||
{
|
||||
if (--remainingProneTime == 0)
|
||||
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]);
|
||||
}
|
||||
base.Tick(self);
|
||||
if (IsProne && --remainingProneTime == 0)
|
||||
turret = new Turret(Info.Offset);
|
||||
}
|
||||
|
||||
public float GetDamageModifier(Actor attacker, WarheadInfo warhead )
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
alt = 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();
|
||||
dfacing = Game.CosmeticRandom.Gauss1D(2) * info.ROT;
|
||||
|
||||
@@ -8,23 +8,29 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System.Collections.Generic;
|
||||
using OpenRA.Mods.RA.Render;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
public class TurretedInfo : ITraitInfo, UsesInit<TurretFacingInit>
|
||||
{
|
||||
public readonly string Turret = "primary";
|
||||
public readonly int ROT = 255;
|
||||
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;
|
||||
public int? desiredFacing;
|
||||
TurretedInfo info;
|
||||
public TurretedInfo info;
|
||||
protected Turret turret;
|
||||
IFacing facing;
|
||||
|
||||
public static int GetInitialTurretFacing(ActorInitializer init, int def)
|
||||
@@ -43,9 +49,10 @@ namespace OpenRA.Mods.RA
|
||||
this.info = info;
|
||||
turretFacing = GetInitialTurretFacing(init, info.InitialFacing);
|
||||
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 );
|
||||
turretFacing = Util.TickFacing(turretFacing, df, info.ROT);
|
||||
@@ -56,5 +63,42 @@ namespace OpenRA.Mods.RA
|
||||
desiredFacing = Util.GetFacing( target.CenterLocation - self.CenterLocation, turretFacing );
|
||||
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
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
Armament:
|
||||
Weapon: HeliAGGun
|
||||
LocalOffset: -5,-3,0,2,0, 5,-3,0,2,0
|
||||
AttackHeli:
|
||||
PrimaryWeapon: HeliAGGun
|
||||
PrimaryOffset: 0,-3,0,2
|
||||
PrimaryLocalOffset: -5,0,0,0,0, 5,0,0,0,0
|
||||
FacingTolerance: 20
|
||||
LimitedAmmo:
|
||||
Ammo: 10
|
||||
@@ -105,10 +105,10 @@ ORCA:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
Armament:
|
||||
Weapon: OrcaAGMissiles
|
||||
LocalOffset: -4,-10,0,5,0, 4,-10,0,5,0
|
||||
AttackHeli:
|
||||
PrimaryWeapon: OrcaAGMissiles
|
||||
PrimaryOffset: 0,-10,0,5
|
||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
||||
FacingTolerance: 20
|
||||
LimitedAmmo:
|
||||
Ammo: 10
|
||||
|
||||
@@ -247,8 +247,9 @@ VICE:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Name: Viceroid
|
||||
Armament:
|
||||
Weapon: Chemspray
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Chemspray
|
||||
AttackWander:
|
||||
RenderUnit:
|
||||
WithMuzzleFlash:
|
||||
@@ -151,8 +151,9 @@
|
||||
RevealsShroud:
|
||||
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.
|
||||
Armament:
|
||||
Weapon: Pistol
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Pistol
|
||||
ActorLostNotification:
|
||||
Notification: civdead1.aud
|
||||
NotifyAll: true
|
||||
|
||||
@@ -15,8 +15,9 @@ E1:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 50
|
||||
Armament:
|
||||
Weapon: M16
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: M16
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2,idle3,idle4
|
||||
|
||||
@@ -38,10 +39,11 @@ E2:
|
||||
Speed: 5
|
||||
Health:
|
||||
HP: 50
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Grenade
|
||||
PrimaryOffset: 0,0,0,-10
|
||||
Armament:
|
||||
Weapon: Grenade
|
||||
LocalOffset: 0,0,0,-10,0
|
||||
FireDelay: 15
|
||||
AttackFrontal:
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
Explodes:
|
||||
@@ -77,10 +79,11 @@ E3:
|
||||
RevealsShroud:
|
||||
Range: 3
|
||||
# range value is 1 in C&C, but OpenRA renders vision slightly differently
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Rockets
|
||||
PrimaryOffset: 1,-6,0,-8
|
||||
Armament:
|
||||
Weapon: Rockets
|
||||
LocalOffset: 1,-6,0,-8,0
|
||||
FireDelay: 5
|
||||
AttackFrontal:
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
|
||||
@@ -102,10 +105,11 @@ E4:
|
||||
Speed: 5
|
||||
Health:
|
||||
HP: 70
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Flamethrower
|
||||
PrimaryOffset: 0,-2,2,-4
|
||||
Armament:
|
||||
Weapon: Flamethrower
|
||||
LocalOffset: 0,-2,2,-4,0
|
||||
FireDelay: 3
|
||||
AttackFrontal:
|
||||
WithMuzzleFlash:
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
@@ -134,10 +138,11 @@ E5:
|
||||
PathingCost: 100
|
||||
Health:
|
||||
HP: 70
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Chemspray
|
||||
PrimaryOffset: 0,-2,2,-9
|
||||
Armament:
|
||||
Weapon: Chemspray
|
||||
LocalOffset: 0,-2,2,-9
|
||||
FireDelay: 3
|
||||
AttackFrontal:
|
||||
WithMuzzleFlash:
|
||||
-PoisonedByTiberium:
|
||||
RenderInfantryProne:
|
||||
@@ -202,8 +207,9 @@ RMBO:
|
||||
ScanRadius: 5
|
||||
C4Demolition:
|
||||
C4Delay: 45
|
||||
Armament:
|
||||
Weapon: Sniper
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Sniper
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2,idle3
|
||||
AnnounceOnBuild:
|
||||
|
||||
@@ -18,10 +18,11 @@ BOAT:
|
||||
Range: 7
|
||||
Turreted:
|
||||
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:
|
||||
PrimaryWeapon: BoatMissile
|
||||
PrimaryOffset: 0,-15,0,-4
|
||||
PrimaryLocalOffset: -3,-5,0,0,0, 3,-5,0,0,0, 0,-5,0,0,0
|
||||
RenderGunboat:
|
||||
AutoTarget:
|
||||
AllowMovement: false
|
||||
|
||||
@@ -556,12 +556,13 @@ OBLI:
|
||||
# (Range of Obelisk laser is 7.5)
|
||||
RenderBuildingCharge:
|
||||
ChargeAudio: obelpowr.aud
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Laser
|
||||
PrimaryOffset: 0,0,-2,-17
|
||||
FireDelay: 8
|
||||
Turreted:
|
||||
ROT:255
|
||||
Offset: 0,0,-2,-17
|
||||
Armament:
|
||||
Weapon: Laser
|
||||
FireDelay: 8
|
||||
AttackTurreted:
|
||||
AutoTarget:
|
||||
-RenderBuilding:
|
||||
RenderRangeCircle:
|
||||
@@ -663,9 +664,10 @@ GUN:
|
||||
ROT: 12
|
||||
InitialFacing: 50
|
||||
RenderBuildingTurreted:
|
||||
Armament:
|
||||
Weapon: TurretGun
|
||||
LocalOffset: 0,4,0,-2,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: TurretGun
|
||||
PrimaryLocalOffset: 0,4,0,-2,0
|
||||
AutoTarget:
|
||||
-AutoTargetIgnore:
|
||||
-RenderBuilding:
|
||||
@@ -706,8 +708,9 @@ SAM:
|
||||
ROT: 7
|
||||
InitialFacing: 0
|
||||
RenderBuildingTurreted:
|
||||
Armament:
|
||||
Weapon: SAMMissile
|
||||
AttackPopupTurreted:
|
||||
PrimaryWeapon: SAMMissile
|
||||
WithMuzzleFlash:
|
||||
AutoTarget:
|
||||
-RenderBuilding:
|
||||
@@ -736,10 +739,10 @@ GTWR:
|
||||
Range: 6
|
||||
# Range: 3
|
||||
# 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:
|
||||
PrimaryWeapon: HighV
|
||||
PrimaryOffset: 0,0,0,-6
|
||||
PrimaryLocalOffset: 0,-6,0,0,0
|
||||
AutoTarget:
|
||||
-AutoTargetIgnore:
|
||||
DetectCloaked:
|
||||
@@ -749,6 +752,7 @@ GTWR:
|
||||
WithMuzzleFlash:
|
||||
Turreted:
|
||||
ROT:255
|
||||
Offset: 0,0,0,-6
|
||||
|
||||
ATWR:
|
||||
Inherits: ^Building
|
||||
@@ -777,12 +781,13 @@ ATWR:
|
||||
Range: 7
|
||||
# Range: 4
|
||||
# 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:
|
||||
ROT:255
|
||||
Offset: 0,0,5,2
|
||||
Armament:
|
||||
Weapon: TowerMissle
|
||||
LocalOffset: 7,-7,0,0,-25, -7,-7,0,0,25
|
||||
AttackTurreted:
|
||||
AutoTarget:
|
||||
-AutoTargetIgnore:
|
||||
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.
|
||||
Turreted:
|
||||
ROT: 10
|
||||
Offset: 0,2,0,-4
|
||||
Armament:
|
||||
Weapon: MachineGun
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: MachineGun
|
||||
PrimaryOffset: 0,2,0,-4
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
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.
|
||||
Turreted:
|
||||
ROT: 10
|
||||
Armament:
|
||||
Weapon: MachineGun
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: MachineGun
|
||||
PrimaryOffset: 0,0,0,0
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
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.
|
||||
Turreted:
|
||||
ROT: 10
|
||||
Offset: 0,1,0,-3
|
||||
Armament:
|
||||
Weapon: MachineGun
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: MachineGun
|
||||
PrimaryOffset: 0,1,0,-3
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
@@ -198,10 +200,10 @@ BIKE:
|
||||
Range: 4
|
||||
# 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.
|
||||
Armament:
|
||||
Weapon: BikeRockets
|
||||
LocalOffset: -4,0,0,-2,25, 4,0,0,-2,-25
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: BikeRockets
|
||||
PrimaryOffset: 0,0,0,-2
|
||||
PrimaryLocalOffset: -4,0,0,0,25, 4,0,0,0,-25
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
|
||||
@@ -228,9 +230,10 @@ ARTY:
|
||||
Range: 6
|
||||
# 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.
|
||||
Armament:
|
||||
Weapon: ArtilleryShell
|
||||
LocalOffset: 0,-7,0,-3,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: ArtilleryShell
|
||||
PrimaryOffset: 0,-7,0,-3
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -260,10 +263,10 @@ FTNK:
|
||||
Range: 6
|
||||
# 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.
|
||||
Armament:
|
||||
Weapon: BigFlamer
|
||||
LocalOffset: 2,-5,3,2,0, -2,-5,3,2,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: BigFlamer
|
||||
PrimaryOffset: 0,-5,3,2
|
||||
PrimaryLocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
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.
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
Weapon: 70mm
|
||||
Recoil: 2
|
||||
RecoilRecovery: 0.4
|
||||
LocalOffset: 0,3,0,-2,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 70mm
|
||||
PrimaryRecoil: 2
|
||||
PrimaryRecoilRecovery: 0.4
|
||||
PrimaryLocalOffset: 0,3,0,-2,0
|
||||
RenderUnitTurreted:
|
||||
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.
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
# Weapon: 120mm
|
||||
Weapon: 105mm
|
||||
Recoil: 3
|
||||
RecoilRecovery: 0.6
|
||||
LocalOffset: 0,0,0,-1,0
|
||||
AttackTurreted:
|
||||
# PrimaryWeapon: 120mm
|
||||
PrimaryWeapon: 105mm
|
||||
PrimaryRecoil: 3
|
||||
PrimaryRecoilRecovery: 0.6
|
||||
PrimaryLocalOffset: 0,0,0,-1,0
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
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.
|
||||
Turreted:
|
||||
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:
|
||||
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:
|
||||
AutoTarget:
|
||||
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.
|
||||
Turreted:
|
||||
ROT: 255
|
||||
Offset: 0,6,0,-3
|
||||
Armament:
|
||||
Weapon: 227mm
|
||||
LocalOffset: 3,-5,0,0,0, -3,-5,0,0,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 227mm
|
||||
PrimaryOffset: 0,6,0,-3
|
||||
PrimaryLocalOffset: 3,-5,0,0,0, -3,-5,0,0,0
|
||||
RenderUnitTurretedAim:
|
||||
AutoTarget:
|
||||
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.
|
||||
Turreted:
|
||||
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:
|
||||
PrimaryWeapon: HonestJohn
|
||||
SecondaryWeapon: HonestJohn
|
||||
PrimaryOffset: 0,3,0,-3
|
||||
PrimaryLocalOffset: -4,0,0,0,0
|
||||
SecondaryLocalOffset: 4,0,0,0,0
|
||||
# AlignIdleTurrets: true
|
||||
RenderUnitTurretedAim:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -478,10 +488,10 @@ STNK:
|
||||
CloakDelay: 125
|
||||
CloakSound: trans1.aud
|
||||
UncloakSound: appear1.aud
|
||||
Armament:
|
||||
Weapon: 227mm.stnk
|
||||
LocalOffset: 1,-5,0,-3,0, -1,-5,0,-3,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 227mm.stnk
|
||||
PrimaryOffset: 0,-5,0,-3
|
||||
PrimaryLocalOffset: 1,0,0,0,0, -1,0,0,0,0
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
InitialStance: HoldFire
|
||||
|
||||
@@ -68,13 +68,13 @@ HELI:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
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:
|
||||
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
|
||||
LimitedAmmo:
|
||||
Ammo: 10
|
||||
@@ -119,13 +119,13 @@ ORCA:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
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:
|
||||
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
|
||||
LimitedAmmo:
|
||||
Ammo: 10
|
||||
|
||||
@@ -404,8 +404,9 @@ VICE:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Name: Viceroid
|
||||
Armament:
|
||||
Weapon: Chemspray
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Chemspray
|
||||
AttackWander:
|
||||
RenderUnit:
|
||||
WithMuzzleFlash:
|
||||
@@ -124,7 +124,7 @@
|
||||
Buildable:
|
||||
Queue: Infantry
|
||||
TakeCover:
|
||||
BarrelOffset: 0,-2,0,4
|
||||
ProneOffset: 0,-2,0,4
|
||||
RenderInfantryProne:
|
||||
AttackMove:
|
||||
Passenger:
|
||||
@@ -164,8 +164,9 @@
|
||||
HP: 25
|
||||
RevealsShroud:
|
||||
Range: 2
|
||||
Armament:
|
||||
Weapon: Pistol
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Pistol
|
||||
ActorLostNotification:
|
||||
Notification: civdead1.aud
|
||||
NotifyAll: true
|
||||
|
||||
@@ -15,8 +15,9 @@ E1:
|
||||
Speed: 4
|
||||
Health:
|
||||
HP: 50
|
||||
Armament:
|
||||
Weapon: M16
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: M16
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2,idle3,idle4
|
||||
DetectCloaked:
|
||||
@@ -40,10 +41,11 @@ E2:
|
||||
Speed: 5
|
||||
Health:
|
||||
HP: 50
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Grenade
|
||||
PrimaryOffset: 0,0,0,-10
|
||||
Armament:
|
||||
Weapon: Grenade
|
||||
LocalOffset: 0,0,0,-10,0
|
||||
FireDelay: 15
|
||||
AttackFrontal:
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
Explodes:
|
||||
@@ -70,10 +72,11 @@ E3:
|
||||
Speed: 3
|
||||
Health:
|
||||
HP: 45
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Rockets
|
||||
PrimaryOffset: 1,-6,0,-8
|
||||
Armament:
|
||||
Weapon: Rockets
|
||||
LocalOffset: 1,-6,0,-8,0
|
||||
FireDelay: 5
|
||||
AttackFrontal:
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
DetectCloaked:
|
||||
@@ -97,10 +100,11 @@ E4:
|
||||
Speed: 5
|
||||
Health:
|
||||
HP: 90
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Flamethrower
|
||||
PrimaryOffset: 0,-2,2,-4
|
||||
Armament:
|
||||
Weapon: Flamethrower
|
||||
LocalOffset: 0,-2,2,-4,0
|
||||
FireDelay: 3
|
||||
AttackFrontal:
|
||||
WithMuzzleFlash:
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2
|
||||
@@ -130,10 +134,11 @@ E5:
|
||||
PathingCost: 80
|
||||
Health:
|
||||
HP: 90
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Chemspray
|
||||
PrimaryOffset: 0,-2,2,-9
|
||||
Armament:
|
||||
Weapon: Chemspray
|
||||
LocalOffset: 0,-2,2,-9,0
|
||||
FireDelay: 3
|
||||
AttackFrontal:
|
||||
WithMuzzleFlash:
|
||||
-PoisonedByTiberium:
|
||||
RenderInfantryProne:
|
||||
@@ -197,8 +202,9 @@ RMBO:
|
||||
ScanRadius: 5
|
||||
C4Demolition:
|
||||
C4Delay: 45
|
||||
Armament:
|
||||
Weapon: Sniper
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Sniper
|
||||
RenderInfantryProne:
|
||||
IdleAnimations: idle1,idle2,idle3
|
||||
AnnounceOnBuild:
|
||||
|
||||
@@ -18,10 +18,11 @@ BOAT:
|
||||
Range: 7
|
||||
Turreted:
|
||||
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:
|
||||
PrimaryWeapon: BoatMissile
|
||||
PrimaryOffset: 0,-15,0,-4
|
||||
PrimaryLocalOffset: -3,-5,0,0,0, 3,-5,0,0,0, 0,-5,0,0,0
|
||||
RenderGunboat:
|
||||
AutoTarget:
|
||||
AllowMovement: false
|
||||
|
||||
@@ -510,9 +510,10 @@ GUN:
|
||||
ROT: 12
|
||||
InitialFacing: 50
|
||||
RenderBuildingTurreted:
|
||||
Armament:
|
||||
Weapon: TurretGun
|
||||
LocalOffset: 0,4,0,-2,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: TurretGun
|
||||
PrimaryLocalOffset: 0,4,0,-2,0
|
||||
AutoTarget:
|
||||
-AutoTargetIgnore:
|
||||
-RenderBuilding:
|
||||
@@ -551,8 +552,9 @@ SAM:
|
||||
ROT: 7
|
||||
InitialFacing: 0
|
||||
RenderBuildingTurreted:
|
||||
Armament:
|
||||
Weapon: SAMMissile
|
||||
AttackPopupTurreted:
|
||||
PrimaryWeapon: SAMMissile
|
||||
WithMuzzleFlash:
|
||||
AutoTarget:
|
||||
-RenderBuilding:
|
||||
@@ -585,10 +587,11 @@ OBLI:
|
||||
Range: 8
|
||||
RenderBuildingCharge:
|
||||
ChargeAudio: obelpowr.aud
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Laser
|
||||
PrimaryOffset: 0,0,-2,-17
|
||||
Armament:
|
||||
Weapon: Laser
|
||||
LocalOffset: 0,0,-2,-17,0
|
||||
FireDelay: 8
|
||||
AttackTurreted:
|
||||
Turreted:
|
||||
ROT:255
|
||||
AutoTarget:
|
||||
@@ -620,10 +623,10 @@ GTWR:
|
||||
HP: 600
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
Armament:
|
||||
Weapon: HighV
|
||||
LocalOffset: 0,-6,0,-6,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: HighV
|
||||
PrimaryOffset: 0,0,0,-6
|
||||
PrimaryLocalOffset: 0,-6,0,0,0
|
||||
AutoTarget:
|
||||
-AutoTargetIgnore:
|
||||
DetectCloaked:
|
||||
@@ -659,10 +662,10 @@ ATWR:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 9
|
||||
Armament:
|
||||
Weapon: TowerMissle
|
||||
LocalOffset: 7,-7,5,2,-25, -7,-7,5,2,25
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: TowerMissle
|
||||
PrimaryOffset: 0,0,5,2
|
||||
PrimaryLocalOffset: 7,-7,0,0,-25, -7,-7,0,0,25
|
||||
Turreted:
|
||||
ROT:255
|
||||
AutoTarget:
|
||||
|
||||
@@ -100,13 +100,13 @@ APC:
|
||||
Range: 7
|
||||
Turreted:
|
||||
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:
|
||||
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:
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
@@ -139,9 +139,10 @@ ARTY:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 9
|
||||
Armament:
|
||||
Weapon: ArtilleryShell
|
||||
LocalOffset: 0,-7,0,-3,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: ArtilleryShell
|
||||
PrimaryOffset: 0,-7,0,-3
|
||||
RenderUnit:
|
||||
Explodes:
|
||||
AutoTarget:
|
||||
@@ -170,10 +171,10 @@ FTNK:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
Armament:
|
||||
Weapon: BigFlamer
|
||||
LocalOffset: 5,-5,3,2,0, -5,-5,3,2,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: BigFlamer
|
||||
PrimaryOffset: 0,-5,3,2
|
||||
PrimaryLocalOffset: 5,0,0,0,0, -5,0,0,0,0
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
WithMuzzleFlash:
|
||||
@@ -206,9 +207,10 @@ BGGY:
|
||||
Range: 7
|
||||
Turreted:
|
||||
ROT: 10
|
||||
Offset: 0,1,0,-3
|
||||
Armament:
|
||||
Weapon: MachineGun
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: MachineGun
|
||||
PrimaryOffset: 0,1,0,-3
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
@@ -243,10 +245,10 @@ BIKE:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
Armament:
|
||||
Weapon: BikeRockets
|
||||
LocalOffset: -4,0,0,-2,25, 4,0,0,-2,-25
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: BikeRockets
|
||||
PrimaryOffset: 0,0,0,-2
|
||||
PrimaryLocalOffset: -4,0,0,0,25, 4,0,0,0,-25
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
LeavesHusk:
|
||||
@@ -275,9 +277,10 @@ JEEP:
|
||||
Range: 8
|
||||
Turreted:
|
||||
ROT: 10
|
||||
Offset: 0,2,0,-4
|
||||
Armament:
|
||||
Weapon: MachineGun
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: MachineGun
|
||||
PrimaryOffset: 0,2,0,-4
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
@@ -307,11 +310,12 @@ LTNK:
|
||||
Range: 6
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
Weapon: 70mm
|
||||
Recoil: 2
|
||||
RecoilRecovery: 0.4
|
||||
LocalOffset: 0,3,0,-2,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 70mm
|
||||
PrimaryRecoil: 2
|
||||
PrimaryRecoilRecovery: 0.4
|
||||
PrimaryLocalOffset: 0,3,0,-2,0
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
LeavesHusk:
|
||||
@@ -333,7 +337,6 @@ MTNK:
|
||||
Prerequisites: hq
|
||||
Owner: gdi
|
||||
Mobile:
|
||||
|
||||
Speed: 6
|
||||
Health:
|
||||
HP: 400
|
||||
@@ -343,11 +346,12 @@ MTNK:
|
||||
Range: 6
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
Weapon: 120mm
|
||||
Recoil: 3
|
||||
RecoilRecovery: 0.6
|
||||
LocalOffset: 0,0,0,-1,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 120mm
|
||||
PrimaryRecoil: 3
|
||||
PrimaryRecoilRecovery: 0.6
|
||||
PrimaryLocalOffset: 0,0,0,-1,0
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
LeavesHusk:
|
||||
@@ -381,14 +385,16 @@ HTNK:
|
||||
Range: 6
|
||||
Turreted:
|
||||
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:
|
||||
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:
|
||||
AutoTarget:
|
||||
SelfHealing:
|
||||
@@ -425,10 +431,11 @@ MSAM:
|
||||
Range: 10
|
||||
Turreted:
|
||||
ROT: 255
|
||||
Offset: 0,6,0,-3
|
||||
Armament:
|
||||
Weapon: 227mm
|
||||
LocalOffset: 3,-5,0,0,0, -3,-5,0,0,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 227mm
|
||||
PrimaryOffset: 0,6,0,-3
|
||||
PrimaryLocalOffset: 3,-5,0,0,0, -3,-5,0,0,0
|
||||
RenderUnitTurretedAim:
|
||||
AutoTarget:
|
||||
LeavesHusk:
|
||||
@@ -456,11 +463,15 @@ MLRS:
|
||||
Range: 10
|
||||
Turreted:
|
||||
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:
|
||||
PrimaryWeapon: Patriot
|
||||
PrimaryOffset: 0,3,0,-3
|
||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
||||
AlignIdleTurrets: true
|
||||
RenderUnitTurretedAim:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -497,10 +508,10 @@ STNK:
|
||||
CloakDelay: 80
|
||||
CloakSound: trans1.aud
|
||||
UncloakSound: trans1.aud
|
||||
Armament:
|
||||
Weapon: 227mm.stnk
|
||||
LocalOffset: 1,-5,0,-3,0, -1,-5,0,-3,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 227mm.stnk
|
||||
PrimaryOffset: 0,-5,0,-3
|
||||
PrimaryLocalOffset: 1,0,0,0,0, -1,0,0,0,0
|
||||
RenderUnit:
|
||||
AutoTarget:
|
||||
InitialStance: HoldFire
|
||||
|
||||
@@ -82,9 +82,10 @@ ORNI:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 10
|
||||
Armament:
|
||||
Weapon: ChainGun
|
||||
LocalOffset: -5,-2,0,2,0
|
||||
AttackHeli:
|
||||
PrimaryWeapon: ChainGun
|
||||
PrimaryOffset: -5,-2,0,2
|
||||
FacingTolerance: 20
|
||||
Helicopter:
|
||||
LandWhenIdle: false
|
||||
|
||||
@@ -143,11 +143,12 @@ COMBATA:
|
||||
Prerequisites: heavya
|
||||
Owner: atreides
|
||||
BuiltAt: heavya
|
||||
Armament:
|
||||
Weapon: 90mma
|
||||
Recoil: 4
|
||||
RecoilRecovery: 0.8
|
||||
LocalOffset: 0,-2,0,-3,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 90mma
|
||||
PrimaryRecoil: 4
|
||||
PrimaryRecoilRecovery: 0.8
|
||||
PrimaryLocalOffset: 0,-2,0,-3,0
|
||||
RenderUnitTurreted:
|
||||
Image: COMBATA
|
||||
LeavesHusk:
|
||||
@@ -196,9 +197,10 @@ SONICTANK:
|
||||
Range: 6
|
||||
RenderUnit:
|
||||
Image: SONICTANK
|
||||
Armament:
|
||||
Weapon: TTankZap
|
||||
LocalOffset: 0,-15,0,-10,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: TTankZap
|
||||
PrimaryLocalOffset: 0,-15,0,-10,0
|
||||
AutoTarget:
|
||||
InitialStance: Defend
|
||||
Explodes:
|
||||
@@ -239,8 +241,9 @@ FREMEN:
|
||||
Range: 7
|
||||
AutoTarget:
|
||||
ScanRadius: 7
|
||||
Armament:
|
||||
Weapon: Sniper
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Sniper
|
||||
RenderInfantryProne:
|
||||
-RenderInfantry:
|
||||
TakeCover:
|
||||
|
||||
@@ -38,9 +38,10 @@ REFH:
|
||||
# Mobile:
|
||||
# ROT: 9
|
||||
# Speed: 11
|
||||
# Armament:
|
||||
# Weapon: M60mg
|
||||
# LocalOffset: 0,-1,0,-3,0
|
||||
# AttackFrontal:
|
||||
# PrimaryWeapon: M60mg
|
||||
# PrimaryLocalOffset: 0,-1,0,-3,0
|
||||
# RenderUnit:
|
||||
# Image: QUAD
|
||||
|
||||
@@ -213,9 +214,10 @@ DEVAST:
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
RenderUnit:
|
||||
Armament:
|
||||
Weapon: 120mm
|
||||
LocalOffset: 5,-16,0,-2,0, -4,-16,0,-2,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 120mm
|
||||
PrimaryLocalOffset: 5,-16,0,-2,0, -4,-16,0,-2,0
|
||||
AutoTarget:
|
||||
InitialStance: Defend
|
||||
Explodes:
|
||||
@@ -260,6 +262,8 @@ SARDAUKAR:
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
Armament@PRIMARY:
|
||||
Weapon: Vulcan
|
||||
Armament@SECONDARY:
|
||||
Weapon: Slung
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Vulcan
|
||||
SecondaryWeapon: Slung
|
||||
@@ -16,8 +16,9 @@ RIFLE:
|
||||
HP: 50
|
||||
Mobile:
|
||||
Speed: 5
|
||||
Armament:
|
||||
Weapon: M1Carbine
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: M1Carbine
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -69,10 +70,13 @@ BAZOOKA:
|
||||
HP: 45
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Armament@PRIMARY:
|
||||
Weapon: RedEye
|
||||
LocalOffset: 0,0,0,-13,0
|
||||
Armament@SECONDARY:
|
||||
Weapon: Dragon
|
||||
LocalOffset: 0,0,0,-13,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: RedEye
|
||||
SecondaryWeapon: Dragon
|
||||
PrimaryOffset: 0,0,0,-13
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -100,8 +104,9 @@ MEDIC:
|
||||
Mobile:
|
||||
Speed: 4
|
||||
AutoHeal:
|
||||
Armament:
|
||||
Weapon: Heal
|
||||
AttackMedic:
|
||||
PrimaryWeapon: Heal
|
||||
Passenger:
|
||||
PipType: Blue
|
||||
-AutoTarget:
|
||||
|
||||
@@ -158,10 +158,10 @@ TRIKEO:
|
||||
Speed: 14
|
||||
RenderUnit:
|
||||
Image: RAIDER
|
||||
Armament:
|
||||
Weapon: M60mgo
|
||||
LocalOffset: 0,-6,0,-3,0
|
||||
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:
|
||||
Range: 5
|
||||
RenderUnit:
|
||||
Armament:
|
||||
Weapon: FakeMissile
|
||||
LocalOffset: 0,7,0,-2,0 #7
|
||||
AttackLoyalty:
|
||||
PrimaryWeapon: FakeMissile
|
||||
PrimaryLocalOffset: 0,7,0,-2,0 #7
|
||||
AutoTarget:
|
||||
InitialStance: Defend
|
||||
Explodes:
|
||||
|
||||
@@ -474,9 +474,10 @@ GUNTOWER:
|
||||
Turreted:
|
||||
ROT: 6
|
||||
InitialFacing: 128
|
||||
Armament:
|
||||
Weapon: TurretGun
|
||||
LocalOffset: 0,-11,0,-7,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: TurretGun
|
||||
PrimaryLocalOffset: 0,-11,0,-7,0
|
||||
AutoTarget:
|
||||
LeavesHusk:
|
||||
HuskActor: Guntower.Husk
|
||||
@@ -529,9 +530,10 @@ ROCKETTOWER:
|
||||
#-AutoTargetIgnore:
|
||||
RenderBuildingSeparateTurret:
|
||||
# HasMakeAnimation: false
|
||||
Armament:
|
||||
Weapon: TowerMissile
|
||||
LocalOffset: 14,-2,0,-11,0, -14,-2,0,-11,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: TowerMissile
|
||||
PrimaryLocalOffset: 14,-2,0,-11,0, -14,-2,0,-11,0
|
||||
Turreted:
|
||||
ROT: 8
|
||||
InitialFacing: 128
|
||||
|
||||
@@ -541,8 +541,9 @@ SPICEBLOOM:
|
||||
# AttackMove:
|
||||
# JustMove: true
|
||||
# AttackWander:
|
||||
# Armament:
|
||||
# Weapon: WormJaw
|
||||
# AttackLeap:
|
||||
# PrimaryWeapon: WormJaw
|
||||
# CanAttackGround: no
|
||||
# RenderInfantry:
|
||||
# BelowUnits:
|
||||
|
||||
@@ -131,10 +131,10 @@ HARVESTER.starport:
|
||||
Range: 8
|
||||
RenderUnit:
|
||||
WithMuzzleFlash:
|
||||
Armament:
|
||||
Weapon: M60mg
|
||||
LocalOffset: 0,-6,0,-3, 0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: M60mg
|
||||
PrimaryOffset: 0,-6,0,-3
|
||||
#PrimaryLocalOffset: 1,-1,0,-3,0, -1,-1,0,-3,0
|
||||
AutoTarget:
|
||||
InitialStance: Defend
|
||||
Explodes:
|
||||
@@ -172,9 +172,10 @@ QUAD:
|
||||
Range: 7
|
||||
RenderUnit:
|
||||
Image: QUAD
|
||||
Armament:
|
||||
Weapon: QuadRockets
|
||||
LocalOffset: 0,-3,0,-2,0 #-4
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: QuadRockets
|
||||
PrimaryLocalOffset: 0,-3,0,-2,0 #-4
|
||||
AutoTarget:
|
||||
InitialStance: Defend
|
||||
Explodes:
|
||||
@@ -213,12 +214,13 @@ QUAD.starport:
|
||||
Range: 6
|
||||
Turreted:
|
||||
ROT: 6
|
||||
AlignWhenIdle: true
|
||||
Armament:
|
||||
Weapon: 90mm
|
||||
Recoil: 4
|
||||
RecoilRecovery: 0.8
|
||||
LocalOffset: 0,-2,0,-3,0
|
||||
AttackTurreted:
|
||||
AlignIdleTurrets: true
|
||||
PrimaryWeapon: 90mm
|
||||
PrimaryRecoil: 4
|
||||
PrimaryRecoilRecovery: 0.8
|
||||
PrimaryLocalOffset: 0,-2,0,-3,0
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
InitialStance: Defend
|
||||
@@ -265,11 +267,12 @@ SIEGETANK:
|
||||
Range: 5
|
||||
Turreted:
|
||||
ROT: 3
|
||||
Armament:
|
||||
Weapon: 155mm
|
||||
Recoil: 7
|
||||
RecoilRecovery: 0.45
|
||||
LocalOffset: 0,-4,0,-7,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 155mm
|
||||
PrimaryRecoil: 7
|
||||
PrimaryRecoilRecovery: 0.45
|
||||
PrimaryLocalOffset: 0,-4,0,-7,0
|
||||
RenderUnitTurreted:
|
||||
Image: SIEGETANK
|
||||
Explodes:
|
||||
@@ -328,9 +331,10 @@ MISSILETANK:
|
||||
Range: 6
|
||||
RenderUnit:
|
||||
Image: MISSILETANK
|
||||
Armament:
|
||||
Weapon: 227mm
|
||||
LocalOffset: 3,5,0,-4,0, -6,5,0,-4,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 227mm
|
||||
PrimaryLocalOffset: 3,5,0,-4,0, -6,5,0,-4,0
|
||||
AutoTarget:
|
||||
InitialStance: Defend
|
||||
Explodes:
|
||||
|
||||
@@ -83,9 +83,10 @@ MIG:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
Armament:
|
||||
Weapon: Maverick
|
||||
LocalOffset: -15,0,0,0,-10, 15,0,0,0,6
|
||||
AttackPlane:
|
||||
PrimaryWeapon: Maverick
|
||||
PrimaryLocalOffset: -15,0,0,0,-10, 15,0,0,0,6
|
||||
FacingTolerance: 20
|
||||
Plane:
|
||||
InitialFacing: 192
|
||||
@@ -127,11 +128,13 @@ YAK:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 10
|
||||
Armament@PRIMARY:
|
||||
Weapon: ChainGun
|
||||
LocalOffset: -5,-6,0,0,0
|
||||
Armament@SECONDARY:
|
||||
Weapon: ChainGun
|
||||
LocalOffset: 5,-6,0,0,0
|
||||
AttackPlane:
|
||||
PrimaryWeapon: ChainGun
|
||||
SecondaryWeapon: ChainGun
|
||||
PrimaryOffset: -5,-6,0,0
|
||||
SecondaryOffset: 5,-6,0,0
|
||||
FacingTolerance: 20
|
||||
Plane:
|
||||
RearmBuildings: afld
|
||||
@@ -215,9 +218,10 @@ HELI:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
Armament:
|
||||
Weapon: HellfireAG
|
||||
LocalOffset: -5,0,0,2,0
|
||||
AttackHeli:
|
||||
PrimaryWeapon: HellfireAG
|
||||
PrimaryOffset: -5,0,0,2
|
||||
FacingTolerance: 20
|
||||
Helicopter:
|
||||
RearmBuildings: hpad
|
||||
@@ -256,11 +260,13 @@ HIND:
|
||||
Type: Heavy
|
||||
RevealsShroud:
|
||||
Range: 10
|
||||
Armament@PRIMARY:
|
||||
Weapon: ChainGun
|
||||
LocalOffset: -5,-2,0,2,0
|
||||
Armament@SECONDARY:
|
||||
Weapon: ChainGun
|
||||
LocalOffset: 5,-2,0,2,0
|
||||
AttackHeli:
|
||||
PrimaryWeapon: ChainGun
|
||||
SecondaryWeapon: ChainGun
|
||||
PrimaryOffset: -5,-2,0,2
|
||||
SecondaryOffset: 5,-2,0,2
|
||||
FacingTolerance: 20
|
||||
Helicopter:
|
||||
RearmBuildings: hpad
|
||||
|
||||
@@ -249,8 +249,9 @@
|
||||
Speed: 4
|
||||
RevealsShroud:
|
||||
Range: 2
|
||||
Armament:
|
||||
Weapon: Pistol
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Pistol
|
||||
ProximityCaptor:
|
||||
Types:CivilianInfantry
|
||||
-RenderInfantry:
|
||||
|
||||
@@ -20,8 +20,9 @@ DOG:
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: DogJaw
|
||||
AttackLeap:
|
||||
PrimaryWeapon: DogJaw
|
||||
CanAttackGround: no
|
||||
RenderInfantry:
|
||||
IdleAnimations: idle1,idle2
|
||||
@@ -44,8 +45,9 @@ E1:
|
||||
HP: 50
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Armament:
|
||||
Weapon: M1Carbine
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: M1Carbine
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -69,10 +71,11 @@ E2:
|
||||
HP: 50
|
||||
Mobile:
|
||||
Speed: 5
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Grenade
|
||||
PrimaryOffset: 0,0,0,-13
|
||||
Armament:
|
||||
Weapon: Grenade
|
||||
LocalOffset: 0,0,0,-13,0
|
||||
FireDelay: 15
|
||||
AttackFrontal:
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -98,10 +101,13 @@ E3:
|
||||
HP: 45
|
||||
Mobile:
|
||||
Speed: 3
|
||||
Armament@PRIMARY:
|
||||
Weapon: RedEye
|
||||
LocalOffset: 0,0,0,-13,0
|
||||
Armament@SECONDARY:
|
||||
Weapon: Dragon
|
||||
LocalOffset: 0,0,0,-13,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: RedEye
|
||||
SecondaryWeapon: Dragon
|
||||
PrimaryOffset: 0,0,0,-13
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -125,10 +131,11 @@ E4:
|
||||
HP: 40
|
||||
Mobile:
|
||||
Speed: 3
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Flamer
|
||||
PrimaryOffset: 0,-10,0,-8
|
||||
Armament:
|
||||
Weapon: Flamer
|
||||
LocalOffset: 0,-10,0,-8,0
|
||||
FireDelay: 8
|
||||
AttackFrontal:
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -254,9 +261,11 @@ E7:
|
||||
C4Delay: 45
|
||||
Passenger:
|
||||
PipType: Red
|
||||
Armament@PRIMARY:
|
||||
Weapon: Colt45
|
||||
Armament@SECONDARY:
|
||||
Weapon: Colt45
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Colt45
|
||||
SecondaryWeapon: Colt45
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -286,8 +295,9 @@ MEDI:
|
||||
Passenger:
|
||||
PipType: Yellow
|
||||
AutoHeal:
|
||||
Armament:
|
||||
Weapon: Heal
|
||||
AttackMedic:
|
||||
PrimaryWeapon: Heal
|
||||
TakeCover:
|
||||
-AutoTarget:
|
||||
AttackMove:
|
||||
@@ -320,8 +330,9 @@ MECH:
|
||||
Passenger:
|
||||
PipType: Yellow
|
||||
AutoHeal:
|
||||
Armament:
|
||||
Weapon: Repair
|
||||
AttackMedic:
|
||||
PrimaryWeapon: Repair
|
||||
TakeCover:
|
||||
-AutoTarget:
|
||||
AttackMove:
|
||||
@@ -371,9 +382,10 @@ SHOK:
|
||||
Speed: 3
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
Armament:
|
||||
Weapon: PortaTesla
|
||||
LocalOffset: 0,-10,0,-8,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: PortaTesla
|
||||
PrimaryOffset: 0,-10,0,-8
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
|
||||
@@ -30,10 +30,11 @@ SS:
|
||||
CloakDelay: 50
|
||||
CloakSound: subshow1.aud
|
||||
UncloakSound: subshow1.aud
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: TorpTube
|
||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
||||
Armament:
|
||||
Weapon: TorpTube
|
||||
LocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
||||
FireDelay: 2
|
||||
AttackFrontal:
|
||||
Selectable:
|
||||
Bounds: 38,38
|
||||
Chronoshiftable:
|
||||
@@ -76,9 +77,10 @@ MSUB:
|
||||
CloakDelay: 100
|
||||
CloakSound: subshow1.aud
|
||||
UncloakSound: subshow1.aud
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: SubMissile
|
||||
Armament:
|
||||
Weapon: SubMissile
|
||||
FireDelay: 2
|
||||
AttackFrontal:
|
||||
Selectable:
|
||||
Bounds: 44,44
|
||||
Chronoshiftable:
|
||||
@@ -113,11 +115,14 @@ DD:
|
||||
Range: 6
|
||||
Turreted:
|
||||
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:
|
||||
PrimaryWeapon: Stinger
|
||||
SecondaryWeapon: DepthCharge
|
||||
PrimaryOffset: 0,-8,0,-3
|
||||
PrimaryLocalOffset: -4,0,0,0,-20, 4,0,0,0,20
|
||||
Selectable:
|
||||
Bounds: 38,38
|
||||
RenderUnitTurreted:
|
||||
@@ -151,19 +156,27 @@ CA:
|
||||
Speed: 4
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
Turreted:
|
||||
Turreted@PRIMARY:
|
||||
Turret: primary
|
||||
Offset: 0,17,0,-2
|
||||
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:
|
||||
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:
|
||||
Bounds: 44,44
|
||||
RenderUnitTurreted:
|
||||
@@ -226,10 +239,12 @@ PT:
|
||||
Range: 7
|
||||
Turreted:
|
||||
ROT: 7
|
||||
Offset: 0,-6,0,-1
|
||||
Armament@PRIMARY:
|
||||
Weapon: 2Inch
|
||||
Armament@SECONDARY:
|
||||
Weapon: DepthCharge
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 2Inch
|
||||
SecondaryWeapon: DepthCharge
|
||||
PrimaryOffset: 0,-6,0,-1
|
||||
Selectable:
|
||||
Bounds: 32,32
|
||||
RenderUnitTurreted:
|
||||
|
||||
@@ -315,10 +315,11 @@ TSLA:
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
RenderBuildingCharge:
|
||||
Armament:
|
||||
Weapon: TeslaZap
|
||||
LocalOffset: 0,0,0,-10,0
|
||||
AttackTesla:
|
||||
PrimaryWeapon: TeslaZap
|
||||
ReloadTime: 120
|
||||
PrimaryOffset: 0,0,0,-10
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
-RenderBuilding:
|
||||
@@ -354,9 +355,11 @@ AGUN:
|
||||
ROT: 15
|
||||
InitialFacing: 224
|
||||
RenderBuildingTurreted:
|
||||
Armament@PRIMARY:
|
||||
Weapon: ZSU-23
|
||||
Armament@SECONDARY:
|
||||
Weapon: ZSU-23
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: ZSU-23
|
||||
SecondaryWeapon: ZSU-23
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
-RenderBuilding:
|
||||
@@ -419,9 +422,10 @@ PBOX:
|
||||
IronCurtainable:
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Vulcan
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Vulcan
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
WithMuzzleFlash:
|
||||
Turreted:
|
||||
ROT: 255
|
||||
@@ -452,9 +456,10 @@ HBOX:
|
||||
IronCurtainable:
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Vulcan
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Vulcan
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
WithMuzzleFlash:
|
||||
Turreted:
|
||||
ROT: 255
|
||||
@@ -485,8 +490,9 @@ GUN:
|
||||
ROT: 12
|
||||
InitialFacing: 50
|
||||
RenderBuildingTurreted:
|
||||
Armament:
|
||||
Weapon: TurretGun
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: TurretGun
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
-RenderBuilding:
|
||||
@@ -516,10 +522,11 @@ FTUR:
|
||||
Range: 6
|
||||
Turreted:
|
||||
ROT: 255
|
||||
Offset: 0,0,0,-2
|
||||
Armament:
|
||||
Weapon: FireballLauncher
|
||||
LocalOffset: 0,-12,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: FireballLauncher
|
||||
PrimaryOffset: 0,0,0,-2
|
||||
PrimaryLocalOffset: 0,-12,0,0,0
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
RenderRangeCircle:
|
||||
@@ -552,8 +559,9 @@ SAM:
|
||||
ROT: 30
|
||||
InitialFacing: 0
|
||||
RenderBuildingTurreted:
|
||||
Armament:
|
||||
Weapon: Nike
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Nike
|
||||
WithMuzzleFlash:
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
|
||||
@@ -18,8 +18,9 @@ V2RL:
|
||||
Speed: 7
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
Armament:
|
||||
Weapon: SCUD
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: SCUD
|
||||
RenderUnitReload:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -48,10 +49,11 @@ V2RL:
|
||||
Range: 4
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
Weapon: 25mm
|
||||
Recoil: 2
|
||||
RecoilRecovery: 0.5
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 25mm
|
||||
PrimaryRecoil: 2
|
||||
PrimaryRecoilRecovery: 0.5
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -80,10 +82,11 @@ V2RL:
|
||||
Range: 5
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
Weapon: 90mm
|
||||
Recoil: 3
|
||||
RecoilRecovery: 0.9
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 90mm
|
||||
PrimaryRecoil: 3
|
||||
PrimaryRecoilRecovery: 0.9
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -114,11 +117,12 @@ V2RL:
|
||||
Range: 5
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
Weapon: 105mm
|
||||
Recoil: 3
|
||||
RecoilRecovery: 0.9
|
||||
LocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 105mm
|
||||
PrimaryRecoil: 3
|
||||
PrimaryRecoilRecovery: 0.9
|
||||
PrimaryLocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -150,13 +154,15 @@ V2RL:
|
||||
Range: 6
|
||||
Turreted:
|
||||
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:
|
||||
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:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -190,8 +196,9 @@ ARTY:
|
||||
Speed: 6
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
Armament:
|
||||
Weapon: 155mm
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 155mm
|
||||
RenderUnit:
|
||||
Explodes:
|
||||
Weapon: UnitExplode
|
||||
@@ -298,9 +305,10 @@ JEEP:
|
||||
Range: 6
|
||||
Turreted:
|
||||
ROT: 10
|
||||
Offset: 0,0,0,-2
|
||||
Armament:
|
||||
Weapon: M60mg
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: M60mg
|
||||
PrimaryOffset: 0,0,0,-2
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
Explodes:
|
||||
@@ -328,9 +336,10 @@ APC:
|
||||
Crushes: wall, atmine, crate, infantry
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
Armament:
|
||||
Weapon: M60mg
|
||||
LocalOffset: 0,0,0,-4,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: M60mg
|
||||
PrimaryOffset: 0,0,0,-4
|
||||
RenderUnit:
|
||||
WithMuzzleFlash:
|
||||
AutoTarget:
|
||||
@@ -434,9 +443,10 @@ TTNK:
|
||||
Crushes: wall, atmine, crate, infantry
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
Armament:
|
||||
Weapon: TTankZap
|
||||
LocalOffset: 0,0,0,-5,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: TTankZap
|
||||
PrimaryOffset: 0,0,0,-5
|
||||
RenderUnitSpinner:
|
||||
Selectable:
|
||||
Bounds: 28,28,0,0
|
||||
@@ -500,10 +510,12 @@ CTNK:
|
||||
Range: 6
|
||||
RenderUnit:
|
||||
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:
|
||||
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:
|
||||
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
|
||||
Turreted:
|
||||
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:
|
||||
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:
|
||||
Image: 4TNK
|
||||
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
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
Armament:
|
||||
Weapon: Maverick
|
||||
LocalOffset: -15,0,0,0,-10, 15,0,0,0,6
|
||||
AttackPlane:
|
||||
PrimaryWeapon: Maverick
|
||||
PrimaryLocalOffset: -15,0,0,0,-10, 15,0,0,0,6
|
||||
FacingTolerance: 20
|
||||
Plane:
|
||||
InitialFacing: 192
|
||||
@@ -144,11 +145,13 @@ YAK:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
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:
|
||||
PrimaryWeapon: ChainGun.Yak
|
||||
SecondaryWeapon: ChainGun.Yak
|
||||
PrimaryOffset: -5,-6,0,0
|
||||
SecondaryOffset: 5,-6,0,0
|
||||
FacingTolerance: 20
|
||||
Plane:
|
||||
RearmBuildings: afld
|
||||
@@ -250,11 +253,13 @@ HELI:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 12
|
||||
Armament@PRIMARY:
|
||||
Weapon: HellfireAA
|
||||
LocalOffset: -5,0,0,2,0
|
||||
Armament@SECONDARY:
|
||||
Weapon: HellfireAG
|
||||
Offset: 5,0,0,2,0
|
||||
AttackHeli:
|
||||
PrimaryWeapon: HellfireAG
|
||||
SecondaryWeapon: HellfireAA
|
||||
PrimaryOffset: -5,0,0,2
|
||||
SecondaryOffset: 5,0,0,2
|
||||
FacingTolerance: 20
|
||||
Helicopter:
|
||||
RearmBuildings: hpad
|
||||
@@ -294,11 +299,13 @@ HIND:
|
||||
Type: Light
|
||||
RevealsShroud:
|
||||
Range: 10
|
||||
Armament@PRIMARY:
|
||||
Weapon: ChainGun
|
||||
LocalOffset: -5,-2,0,2,0
|
||||
Armament@SECONDARY:
|
||||
Weapon: ChainGun
|
||||
LocalOffset: -5,-2,0,2,0
|
||||
AttackHeli:
|
||||
PrimaryWeapon: ChainGun
|
||||
SecondaryWeapon: ChainGun
|
||||
PrimaryOffset: -5,-2,0,2
|
||||
SecondaryOffset: 5,-2,0,2
|
||||
FacingTolerance: 20
|
||||
Helicopter:
|
||||
RearmBuildings: hpad
|
||||
|
||||
@@ -103,9 +103,10 @@ V01.SNIPER:
|
||||
AutoTarget:
|
||||
Turreted:
|
||||
ROT: 255
|
||||
Armament:
|
||||
Weapon: Sniper
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Sniper
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
Cargo:
|
||||
InitialUnits: sniper
|
||||
Types: Infantry
|
||||
|
||||
@@ -289,8 +289,9 @@
|
||||
Speed: 4
|
||||
RevealsShroud:
|
||||
Range: 2
|
||||
Armament:
|
||||
Weapon: Pistol
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Pistol
|
||||
ProximityCaptor:
|
||||
Types:CivilianInfantry
|
||||
-RenderInfantry:
|
||||
|
||||
@@ -20,9 +20,9 @@ DOG:
|
||||
Speed: 7
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: DogJaw
|
||||
AttackLeap:
|
||||
PrimaryWeapon: DogJaw
|
||||
CanAttackGround: no
|
||||
RenderInfantry:
|
||||
IdleAnimations: idle1,idle2
|
||||
@@ -46,8 +46,9 @@ E1:
|
||||
HP: 50
|
||||
Mobile:
|
||||
Speed: 4
|
||||
Armament:
|
||||
Weapon: M1Carbine
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: M1Carbine
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -72,10 +73,11 @@ E2:
|
||||
HP: 50
|
||||
Mobile:
|
||||
Speed: 5
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Grenade
|
||||
PrimaryOffset: 0,0,0,-13
|
||||
Armament:
|
||||
Weapon: Grenade
|
||||
LocalOffset: 0,0,0,-13,0
|
||||
FireDelay: 15
|
||||
AttackFrontal:
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -102,10 +104,13 @@ E3:
|
||||
HP: 45
|
||||
Mobile:
|
||||
Speed: 3
|
||||
Armament@PRIMARY:
|
||||
Weapon: RedEye
|
||||
LocalOffset: 0,0,0,-13,0
|
||||
Armament@SECONDARY:
|
||||
Weapon: Dragon
|
||||
LocalOffset: 0,0,0,-13,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: RedEye
|
||||
SecondaryWeapon: Dragon
|
||||
PrimaryOffset: 0,0,0,-13
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -130,10 +135,11 @@ E4:
|
||||
HP: 40
|
||||
Mobile:
|
||||
Speed: 3
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Flamer
|
||||
PrimaryOffset: 0,-10,0,-8
|
||||
Armament:
|
||||
Weapon: Flamer
|
||||
LocalOffset: 0,-10,0,-8,0
|
||||
FireDelay: 8
|
||||
AttackFrontal:
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -204,8 +210,9 @@ SPY:
|
||||
-RenderInfantry:
|
||||
RenderSpy:
|
||||
IdleAnimations: idle1,idle2
|
||||
Armament:
|
||||
Weapon: SilencedPPK
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: SilencedPPK
|
||||
|
||||
E7:
|
||||
Inherits: ^Infantry
|
||||
@@ -234,9 +241,11 @@ E7:
|
||||
C4Delay: 45
|
||||
Passenger:
|
||||
PipType: Red
|
||||
Armament@PRIMARY:
|
||||
Weapon: Colt45
|
||||
Armament@SECONDARY:
|
||||
Weapon: Colt45
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Colt45
|
||||
SecondaryWeapon: Colt45
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -270,9 +279,11 @@ E8:
|
||||
Range: 4
|
||||
Passenger:
|
||||
PipType: Red
|
||||
Armament@PRIMARY:
|
||||
Weapon: VolkAT
|
||||
Armament@SECONDARY:
|
||||
Weapon: VolkNapalm
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: VolkAT
|
||||
SecondaryWeapon: VolkNapalm
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -308,8 +319,9 @@ MEDI:
|
||||
Passenger:
|
||||
PipType: Yellow
|
||||
AutoHeal:
|
||||
Armament:
|
||||
Weapon: Heal
|
||||
AttackMedic:
|
||||
PrimaryWeapon: Heal
|
||||
TakeCover:
|
||||
-AutoTarget:
|
||||
AttackMove:
|
||||
@@ -343,8 +355,9 @@ MECH:
|
||||
Passenger:
|
||||
PipType: Yellow
|
||||
AutoHeal:
|
||||
Armament:
|
||||
Weapon: Repair
|
||||
AttackMedic:
|
||||
PrimaryWeapon: Repair
|
||||
TakeCover:
|
||||
-AutoTarget:
|
||||
AttackMove:
|
||||
@@ -457,9 +470,10 @@ SHOK:
|
||||
Speed: 3
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
Armament:
|
||||
Weapon: PortaTesla
|
||||
LocalOffset: 0,-10,0,-8,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: PortaTesla
|
||||
PrimaryOffset: 0,-10,0,-8
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
@@ -492,8 +506,9 @@ SNIPER:
|
||||
Range: 6
|
||||
AutoTarget:
|
||||
InitialStance: HoldFire
|
||||
Armament:
|
||||
Weapon: Sniper
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: Sniper
|
||||
TakeCover:
|
||||
-RenderInfantry:
|
||||
RenderInfantryProne:
|
||||
|
||||
@@ -31,10 +31,11 @@ SS:
|
||||
CloakDelay: 50
|
||||
CloakSound: subshow1.aud
|
||||
UncloakSound: subshow1.aud
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: TorpTube
|
||||
PrimaryLocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
||||
Armament:
|
||||
Weapon: TorpTube
|
||||
LocalOffset: -4,0,0,0,0, 4,0,0,0,0
|
||||
FireDelay: 2
|
||||
AttackFrontal:
|
||||
Selectable:
|
||||
Bounds: 38,38
|
||||
Chronoshiftable:
|
||||
@@ -78,9 +79,10 @@ MSUB:
|
||||
CloakDelay: 100
|
||||
CloakSound: subshow1.aud
|
||||
UncloakSound: subshow1.aud
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: SubMissile
|
||||
Armament:
|
||||
Weapon: SubMissile
|
||||
FireDelay: 2
|
||||
AttackFrontal:
|
||||
Selectable:
|
||||
Bounds: 44,44
|
||||
Chronoshiftable:
|
||||
@@ -116,11 +118,13 @@ DD:
|
||||
Range: 6
|
||||
Turreted:
|
||||
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:
|
||||
PrimaryWeapon: Stinger
|
||||
SecondaryWeapon: DepthCharge
|
||||
PrimaryOffset: 0,-8,0,-3
|
||||
PrimaryLocalOffset: -4,0,0,0,-20, 4,0,0,0,20
|
||||
Selectable:
|
||||
Bounds: 38,38
|
||||
RenderUnitTurreted:
|
||||
@@ -155,19 +159,27 @@ CA:
|
||||
Speed: 2
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
Turreted:
|
||||
Turreted@PRIMARY:
|
||||
Turret: primary
|
||||
Offset: 0,17,0,-2
|
||||
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:
|
||||
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:
|
||||
Bounds: 44,44
|
||||
RenderUnitTurreted:
|
||||
@@ -232,10 +244,12 @@ PT:
|
||||
Range: 7
|
||||
Turreted:
|
||||
ROT: 7
|
||||
Offset: 0,-6,0,-1
|
||||
Armament@PRIMARY:
|
||||
Weapon: 2Inch
|
||||
Armament@SECONDARY:
|
||||
Weapon: DepthCharge
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 2Inch
|
||||
SecondaryWeapon: DepthCharge
|
||||
PrimaryOffset: 0,-6,0,-1
|
||||
Selectable:
|
||||
Bounds: 32,32
|
||||
RenderUnitTurreted:
|
||||
|
||||
@@ -282,10 +282,11 @@ TSLA:
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
RenderBuildingCharge:
|
||||
Armament:
|
||||
Weapon: TeslaZap
|
||||
LocalOffset: 0,0,0,-10,0
|
||||
AttackTesla:
|
||||
PrimaryWeapon: TeslaZap
|
||||
ReloadTime: 120
|
||||
PrimaryOffset: 0,0,0,-10
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
-RenderBuilding:
|
||||
@@ -323,9 +324,11 @@ AGUN:
|
||||
ROT: 15
|
||||
InitialFacing: 224
|
||||
RenderBuildingTurreted:
|
||||
Armament@PRIMARY:
|
||||
Weapon: ZSU-23
|
||||
Armament@SECONDARY:
|
||||
Weapon: ZSU-23
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: ZSU-23
|
||||
SecondaryWeapon: ZSU-23
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
-RenderBuilding:
|
||||
@@ -442,9 +445,10 @@ PBOX.E1:
|
||||
Image: PBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Vulcan
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Vulcan
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
WithMuzzleFlash:
|
||||
Cargo:
|
||||
InitialUnits: e1
|
||||
@@ -464,9 +468,10 @@ PBOX.E3:
|
||||
Image: PBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Dragon
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Dragon
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
PBOX.E4:
|
||||
Inherits: PBOX
|
||||
@@ -476,9 +481,10 @@ PBOX.E4:
|
||||
Image: PBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Flamer
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Flamer
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
PBOX.E7:
|
||||
Inherits: PBOX
|
||||
@@ -488,9 +494,10 @@ PBOX.E7:
|
||||
Image: PBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Colt45
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Colt45
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
PBOX.SHOK:
|
||||
Inherits: PBOX
|
||||
@@ -500,9 +507,10 @@ PBOX.SHOK:
|
||||
Image: PBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: PortaTesla
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: PortaTesla
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
PBOX.SNIPER:
|
||||
Inherits: PBOX
|
||||
@@ -512,9 +520,10 @@ PBOX.SNIPER:
|
||||
Image: PBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Sniper
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Sniper
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
HBOX:
|
||||
Inherits: ^Building
|
||||
@@ -599,9 +608,10 @@ HBOX.E1:
|
||||
Image: HBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Vulcan
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Vulcan
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
WithMuzzleFlash:
|
||||
Cargo:
|
||||
InitialUnits: e1
|
||||
@@ -621,9 +631,10 @@ HBOX.E3:
|
||||
Image: HBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Dragon
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Dragon
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
HBOX.E4:
|
||||
Inherits: HBOX
|
||||
@@ -633,9 +644,10 @@ HBOX.E4:
|
||||
Image: HBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Flamer
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Flamer
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
HBOX.E7:
|
||||
Inherits: HBOX
|
||||
@@ -645,9 +657,10 @@ HBOX.E7:
|
||||
Image: HBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Colt45
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Colt45
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
HBOX.SHOK:
|
||||
Inherits: HBOX
|
||||
@@ -657,9 +670,10 @@ HBOX.SHOK:
|
||||
Image: HBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: PortaTesla
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: PortaTesla
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
HBOX.SNIPER:
|
||||
Inherits: HBOX
|
||||
@@ -669,9 +683,10 @@ HBOX.SNIPER:
|
||||
Image: HBOX
|
||||
RenderRangeCircle:
|
||||
AutoTarget:
|
||||
Armament:
|
||||
Weapon: Sniper
|
||||
LocalOffset: 0,-11,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Sniper
|
||||
PrimaryLocalOffset: 0,-11,0,0,0
|
||||
|
||||
GUN:
|
||||
Inherits: ^Building
|
||||
@@ -699,8 +714,9 @@ GUN:
|
||||
ROT: 12
|
||||
InitialFacing: 50
|
||||
RenderBuildingTurreted:
|
||||
Armament:
|
||||
Weapon: TurretGun
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: TurretGun
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
-RenderBuilding:
|
||||
@@ -732,10 +748,11 @@ FTUR:
|
||||
Range: 6
|
||||
Turreted:
|
||||
ROT: 255
|
||||
Offset: 0,0,0,-2
|
||||
Armament:
|
||||
Weapon: FireballLauncher
|
||||
LocalOffset: 0,-12,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: FireballLauncher
|
||||
PrimaryOffset: 0,0,0,-2
|
||||
PrimaryLocalOffset: 0,-12,0,0,0
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
RenderRangeCircle:
|
||||
@@ -770,8 +787,9 @@ SAM:
|
||||
ROT: 30
|
||||
InitialFacing: 0
|
||||
RenderBuildingTurreted:
|
||||
Armament:
|
||||
Weapon: Nike
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: Nike
|
||||
WithMuzzleFlash:
|
||||
AutoTarget:
|
||||
IronCurtainable:
|
||||
|
||||
@@ -19,8 +19,9 @@ V2RL:
|
||||
Speed: 7
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
Armament:
|
||||
Weapon: SCUD
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: SCUD
|
||||
RenderUnitReload:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -49,10 +50,11 @@ V2RL:
|
||||
Range: 4
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
Weapon: 25mm
|
||||
Recoil: 2
|
||||
RecoilRecovery: 0.5
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 25mm
|
||||
PrimaryRecoil: 2
|
||||
PrimaryRecoilRecovery: 0.5
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -85,10 +87,11 @@ V2RL:
|
||||
Range: 5
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
Weapon: 90mm
|
||||
Recoil: 3
|
||||
RecoilRecovery: 0.9
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 90mm
|
||||
PrimaryRecoil: 3
|
||||
PrimaryRecoilRecovery: 0.9
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -123,11 +126,12 @@ V2RL:
|
||||
Range: 5
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Armament:
|
||||
Weapon: 105mm
|
||||
Recoil: 3
|
||||
RecoilRecovery: 0.9
|
||||
LocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: 105mm
|
||||
PrimaryRecoil: 3
|
||||
PrimaryRecoilRecovery: 0.9
|
||||
PrimaryLocalOffset: 2,0,0,0,0, -2,0,0,0,0
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -162,14 +166,16 @@ V2RL:
|
||||
Range: 6
|
||||
Turreted:
|
||||
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:
|
||||
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:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -207,8 +213,9 @@ ARTY:
|
||||
Speed: 6
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
Armament:
|
||||
Weapon: 155mm
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: 155mm
|
||||
RenderUnit:
|
||||
Explodes:
|
||||
Weapon: UnitExplode
|
||||
@@ -319,9 +326,10 @@ JEEP:
|
||||
Range: 8
|
||||
Turreted:
|
||||
ROT: 10
|
||||
Offset: 0,0,0,-2
|
||||
Armament:
|
||||
Weapon: M60mg
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: M60mg
|
||||
PrimaryOffset: 0,0,0,-2
|
||||
WithMuzzleFlash:
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
@@ -351,9 +359,10 @@ APC:
|
||||
Speed: 10
|
||||
RevealsShroud:
|
||||
Range: 5
|
||||
Armament:
|
||||
Weapon: M60mg
|
||||
LocalOffset: 0,0,0,-4,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: M60mg
|
||||
PrimaryOffset: 0,0,0,-4
|
||||
RenderUnit:
|
||||
WithMuzzleFlash:
|
||||
AutoTarget:
|
||||
@@ -614,9 +623,10 @@ TTNK:
|
||||
Crushes: wall, atmine, crate, infantry
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
Armament:
|
||||
Weapon: TTankZap
|
||||
LocalOffset: 0,0,0,-5,0
|
||||
AttackFrontal:
|
||||
PrimaryWeapon: TTankZap
|
||||
PrimaryOffset: 0,0,0,-5
|
||||
RenderUnitSpinner:
|
||||
Selectable:
|
||||
Bounds: 28,28,0,0
|
||||
@@ -645,10 +655,11 @@ FTRK:
|
||||
Range: 4
|
||||
Turreted:
|
||||
ROT: 5
|
||||
Offset: 0,5,0,-4
|
||||
Armament:
|
||||
Weapon: FLAK-23
|
||||
Recoil: 2
|
||||
AttackTurreted:
|
||||
PrimaryWeapon: FLAK-23
|
||||
PrimaryOffset: 0,5,0,-4
|
||||
PrimaryRecoil: 2
|
||||
RenderUnitTurreted:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
@@ -714,9 +725,11 @@ CTNK:
|
||||
Range: 6
|
||||
RenderUnit:
|
||||
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:
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user