Merge pull request #8388 from reaperrr/selectable-refactor1

Selectable bounds/selection box refactor
This commit is contained in:
Pavel Penev
2015-06-19 13:43:30 +03:00
50 changed files with 476 additions and 215 deletions

View File

@@ -41,12 +41,14 @@ namespace OpenRA
public int Generation; public int Generation;
Lazy<Rectangle> bounds; Lazy<Rectangle> bounds;
Lazy<Rectangle> visualBounds;
Lazy<IFacing> facing; Lazy<IFacing> facing;
Lazy<Health> health; Lazy<Health> health;
Lazy<IOccupySpace> occupySpace; Lazy<IOccupySpace> occupySpace;
Lazy<IEffectiveOwner> effectiveOwner; Lazy<IEffectiveOwner> effectiveOwner;
public Rectangle Bounds { get { return bounds.Value; } } public Rectangle Bounds { get { return bounds.Value; } }
public Rectangle VisualBounds { get { return visualBounds.Value; } }
public IOccupySpace OccupiesSpace { get { return occupySpace.Value; } } public IOccupySpace OccupiesSpace { get { return occupySpace.Value; } }
public IEffectiveOwner EffectiveOwner { get { return effectiveOwner.Value; } } public IEffectiveOwner EffectiveOwner { get { return effectiveOwner.Value; } }
@@ -110,6 +112,21 @@ namespace OpenRA
return new Rectangle(offset.X, offset.Y, size.X, size.Y); return new Rectangle(offset.X, offset.Y, size.X, size.Y);
}); });
visualBounds = Exts.Lazy(() =>
{
var sd = Info.Traits.GetOrDefault<ISelectionDecorationsInfo>();
if (sd == null || sd.SelectionBoxBounds == null)
return bounds.Value;
var size = new int2(sd.SelectionBoxBounds[0], sd.SelectionBoxBounds[1]);
var offset = -size / 2;
if (sd.SelectionBoxBounds.Length > 2)
offset += new int2(sd.SelectionBoxBounds[2], sd.SelectionBoxBounds[3]);
return new Rectangle(offset.X, offset.Y, size.X, size.Y);
});
renderModifiers = TraitsImplementing<IRenderModifier>().ToArray(); renderModifiers = TraitsImplementing<IRenderModifier>().ToArray();
renders = TraitsImplementing<IRender>().ToArray(); renders = TraitsImplementing<IRender>().ToArray();
disables = TraitsImplementing<IDisable>().ToArray(); disables = TraitsImplementing<IDisable>().ToArray();

View File

@@ -158,7 +158,7 @@ namespace OpenRA.Graphics
var health = actor.TraitOrDefault<Health>(); var health = actor.TraitOrDefault<Health>();
var screenPos = wr.ScreenPxPosition(pos); var screenPos = wr.ScreenPxPosition(pos);
var bounds = actor.Bounds; var bounds = actor.VisualBounds;
bounds.Offset(screenPos.X, screenPos.Y); bounds.Offset(screenPos.X, screenPos.Y);
var start = new float2(bounds.Left + 1, bounds.Top); var start = new float2(bounds.Left + 1, bounds.Top);

View File

@@ -190,12 +190,8 @@ namespace OpenRA.Graphics
public void DrawRollover(Actor unit) public void DrawRollover(Actor unit)
{ {
var selectable = unit.TraitOrDefault<Selectable>(); if (unit.HasTrait<Selectable>())
if (selectable != null) new SelectionBarsRenderable(unit).Render(this);
{
if (selectable.Info.Selectable)
new SelectionBarsRenderable(unit).Render(this);
}
} }
public void DrawRangeCircle(WPos pos, WRange range, Color c) public void DrawRangeCircle(WPos pos, WRange range, Color c)

View File

@@ -180,7 +180,6 @@
<Compile Include="Traits\Player\PlayerResources.cs" /> <Compile Include="Traits\Player\PlayerResources.cs" />
<Compile Include="Traits\RevealsShroud.cs" /> <Compile Include="Traits\RevealsShroud.cs" />
<Compile Include="Traits\Selectable.cs" /> <Compile Include="Traits\Selectable.cs" />
<Compile Include="Traits\SelectionDecorations.cs" />
<Compile Include="Traits\Target.cs" /> <Compile Include="Traits\Target.cs" />
<Compile Include="Traits\TraitsInterfaces.cs" /> <Compile Include="Traits\TraitsInterfaces.cs" />
<Compile Include="Traits\Util.cs" /> <Compile Include="Traits\Util.cs" />
@@ -235,7 +234,6 @@
<Compile Include="Sound\OpenAlSound.cs" /> <Compile Include="Sound\OpenAlSound.cs" />
<Compile Include="Sound\NullSound.cs" /> <Compile Include="Sound\NullSound.cs" />
<Compile Include="Effects\SpriteEffect.cs" /> <Compile Include="Effects\SpriteEffect.cs" />
<Compile Include="Graphics\SelectionBoxRenderable.cs" />
<Compile Include="Graphics\SelectionBarsRenderable.cs" /> <Compile Include="Graphics\SelectionBarsRenderable.cs" />
<Compile Include="Graphics\TargetLineRenderable.cs" /> <Compile Include="Graphics\TargetLineRenderable.cs" />
<Compile Include="Graphics\UISpriteRenderable.cs" /> <Compile Include="Graphics\UISpriteRenderable.cs" />

View File

@@ -63,8 +63,7 @@ namespace OpenRA.Orders
if (underCursor != null && (mi.Modifiers.HasModifier(Modifiers.Shift) || !world.Selection.Actors.Any())) if (underCursor != null && (mi.Modifiers.HasModifier(Modifiers.Shift) || !world.Selection.Actors.Any()))
{ {
var selectable = underCursor.TraitOrDefault<Selectable>(); if (underCursor.HasTrait<Selectable>())
if (selectable != null && selectable.Info.Selectable)
useSelect = true; useSelect = true;
} }

View File

@@ -8,17 +8,14 @@
*/ */
#endregion #endregion
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
namespace OpenRA.Traits namespace OpenRA.Traits
{ {
[Desc("This actor is selectable. Defines bounds of selectable area, selection class and selection priority.")]
public class SelectableInfo : ITraitInfo public class SelectableInfo : ITraitInfo
{ {
public readonly bool Selectable = true;
public readonly int Priority = 10; public readonly int Priority = 10;
[Desc("Bounds for the selectable area.")]
public readonly int[] Bounds = null; public readonly int[] Bounds = null;
[Desc("All units having the same selection class specified will be selected with select-by-type commands (e.g. double-click). " [Desc("All units having the same selection class specified will be selected with select-by-type commands (e.g. double-click). "
@@ -28,46 +25,13 @@ namespace OpenRA.Traits
public object Create(ActorInitializer init) { return new Selectable(init.Self, this); } public object Create(ActorInitializer init) { return new Selectable(init.Self, this); }
} }
public class Selectable : IPostRenderSelection public class Selectable
{ {
public readonly string Class = null; public readonly string Class = null;
public SelectableInfo Info;
readonly Actor self;
public Selectable(Actor self, SelectableInfo info) public Selectable(Actor self, SelectableInfo info)
{ {
this.self = self;
Info = info;
Class = string.IsNullOrEmpty(info.Class) ? self.Info.Name : info.Class; Class = string.IsNullOrEmpty(info.Class) ? self.Info.Name : info.Class;
} }
IEnumerable<WPos> ActivityTargetPath()
{
if (!self.IsInWorld || self.IsDead)
yield break;
var activity = self.GetCurrentActivity();
if (activity != null)
{
var targets = activity.GetTargets(self);
yield return self.CenterPosition;
foreach (var t in targets.Where(t => t.Type != TargetType.Invalid))
yield return t.CenterPosition;
}
}
public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr)
{
if (!Info.Selectable)
yield break;
yield return new SelectionBoxRenderable(self, Color.White);
yield return new SelectionBarsRenderable(self);
if (self.World.LocalPlayer != null && self.World.LocalPlayer.PlayerActor.Trait<DeveloperMode>().PathDebug)
yield return new TargetLineRenderable(ActivityTargetPath(), Color.Green);
}
} }
} }

View File

@@ -110,6 +110,11 @@ namespace OpenRA.Traits
public interface ISeedableResource { void Seed(Actor self); } public interface ISeedableResource { void Seed(Actor self); }
public interface ISelectionDecorationsInfo
{
int[] SelectionBoxBounds { get; }
}
public interface IVoiced public interface IVoiced
{ {
string VoiceSet { get; } string VoiceSet { get; }

View File

@@ -92,7 +92,7 @@ namespace OpenRA.Widgets
{ {
if (!hasBox && World.Selection.Actors.Any() && !multiClick) if (!hasBox && World.Selection.Actors.Any() && !multiClick)
{ {
if (!(World.ScreenMap.ActorsAt(xy).Where(x => x.HasTrait<Selectable>() && x.Trait<Selectable>().Info.Selectable && if (!(World.ScreenMap.ActorsAt(xy).Where(x => x.HasTrait<Selectable>() &&
(x.Owner.IsAlliedWith(World.RenderPlayer) || !World.FogObscures(x))).Any() && !mi.Modifiers.HasModifier(Modifiers.Ctrl) && (x.Owner.IsAlliedWith(World.RenderPlayer) || !World.FogObscures(x))).Any() && !mi.Modifiers.HasModifier(Modifiers.Ctrl) &&
!mi.Modifiers.HasModifier(Modifiers.Alt) && UnitOrderGenerator.InputOverridesSelection(World, xy, mi))) !mi.Modifiers.HasModifier(Modifiers.Alt) && UnitOrderGenerator.InputOverridesSelection(World, xy, mi)))
{ {
@@ -292,7 +292,7 @@ namespace OpenRA.Widgets
var s = a.TraitOrDefault<Selectable>(); var s = a.TraitOrDefault<Selectable>();
// sc == null means that units, that meet all other criteria, get selected // sc == null means that units, that meet all other criteria, get selected
return s != null && s.Info.Selectable && (selectionClasses == null || selectionClasses.Contains(s.Class)); return s != null && (selectionClasses == null || selectionClasses.Contains(s.Class));
}); });
} }
@@ -303,11 +303,7 @@ namespace OpenRA.Widgets
a = b; a = b;
return world.ScreenMap.ActorsInBox(a, b) return world.ScreenMap.ActorsInBox(a, b)
.Where(x => .Where(x => x.HasTrait<Selectable>() && (x.Owner.IsAlliedWith(world.RenderPlayer) || !world.FogObscures(x)))
{
var s = x.TraitOrDefault<Selectable>();
return s != null && s.Info.Selectable && (x.Owner.IsAlliedWith(world.RenderPlayer) || !world.FogObscures(x));
})
.GroupBy(x => x.GetSelectionPriority()) .GroupBy(x => x.GetSelectionPriority())
.OrderByDescending(g => g.Key) .OrderByDescending(g => g.Key)
.Select(g => g.AsEnumerable()) .Select(g => g.AsEnumerable())

View File

@@ -12,22 +12,22 @@ using System.Drawing;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Traits; using OpenRA.Traits;
namespace OpenRA.Graphics namespace OpenRA.Mods.Common.Graphics
{ {
public struct SelectionBoxRenderable : IRenderable, IFinalizedRenderable public struct SelectionBoxRenderable : IRenderable, IFinalizedRenderable
{ {
readonly WPos pos; readonly WPos pos;
readonly float scale; readonly float scale;
readonly Rectangle bounds; readonly Rectangle visualBounds;
readonly Color color; readonly Color color;
public SelectionBoxRenderable(Actor actor, Color color) public SelectionBoxRenderable(Actor actor, Color color)
: this(actor.CenterPosition, actor.Bounds, 1f, color) { } : this(actor.CenterPosition, actor.VisualBounds, 1f, color) { }
public SelectionBoxRenderable(WPos pos, Rectangle bounds, float scale, Color color) public SelectionBoxRenderable(WPos pos, Rectangle visualBounds, float scale, Color color)
{ {
this.pos = pos; this.pos = pos;
this.bounds = bounds; this.visualBounds = visualBounds;
this.scale = scale; this.scale = scale;
this.color = color; this.color = color;
} }
@@ -40,15 +40,15 @@ namespace OpenRA.Graphics
public IRenderable WithPalette(PaletteReference newPalette) { return this; } public IRenderable WithPalette(PaletteReference newPalette) { return this; }
public IRenderable WithZOffset(int newOffset) { return this; } public IRenderable WithZOffset(int newOffset) { return this; }
public IRenderable OffsetBy(WVec vec) { return new SelectionBoxRenderable(pos + vec, bounds, scale, color); } public IRenderable OffsetBy(WVec vec) { return new SelectionBoxRenderable(pos + vec, visualBounds, scale, color); }
public IRenderable AsDecoration() { return this; } public IRenderable AsDecoration() { return this; }
public IFinalizedRenderable PrepareRender(WorldRenderer wr) { return this; } public IFinalizedRenderable PrepareRender(WorldRenderer wr) { return this; }
public void Render(WorldRenderer wr) public void Render(WorldRenderer wr)
{ {
var screenPos = wr.ScreenPxPosition(pos); var screenPos = wr.ScreenPxPosition(pos);
var tl = screenPos + scale * new float2(bounds.Left, bounds.Top); var tl = screenPos + scale * new float2(visualBounds.Left, visualBounds.Top);
var br = screenPos + scale * new float2(bounds.Right, bounds.Bottom); var br = screenPos + scale * new float2(visualBounds.Right, visualBounds.Bottom);
var tr = new float2(br.X, tl.Y); var tr = new float2(br.X, tl.Y);
var bl = new float2(tl.X, br.Y); var bl = new float2(tl.X, br.Y);
var u = new float2(4f / wr.Viewport.Zoom, 0); var u = new float2(4f / wr.Viewport.Zoom, 0);

View File

@@ -171,6 +171,7 @@
<Compile Include="Graphics\BeamRenderable.cs" /> <Compile Include="Graphics\BeamRenderable.cs" />
<Compile Include="Graphics\ContrailRenderable.cs" /> <Compile Include="Graphics\ContrailRenderable.cs" />
<Compile Include="Graphics\RangeCircleRenderable.cs" /> <Compile Include="Graphics\RangeCircleRenderable.cs" />
<Compile Include="Graphics\SelectionBoxRenderable.cs" />
<Compile Include="Graphics\SpriteActorPreview.cs" /> <Compile Include="Graphics\SpriteActorPreview.cs" />
<Compile Include="Graphics\TextRenderable.cs" /> <Compile Include="Graphics\TextRenderable.cs" />
<Compile Include="Graphics\VoxelActorPreview.cs" /> <Compile Include="Graphics\VoxelActorPreview.cs" />
@@ -309,6 +310,7 @@
<Compile Include="Traits\Crushable.cs" /> <Compile Include="Traits\Crushable.cs" />
<Compile Include="Traits\CustomBuildTimeValue.cs" /> <Compile Include="Traits\CustomBuildTimeValue.cs" />
<Compile Include="Traits\CustomSellValue.cs" /> <Compile Include="Traits\CustomSellValue.cs" />
<Compile Include="Traits\CustomSelectionSize.cs" />
<Compile Include="Traits\Demolishable.cs" /> <Compile Include="Traits\Demolishable.cs" />
<Compile Include="Traits\DetectCloaked.cs" /> <Compile Include="Traits\DetectCloaked.cs" />
<Compile Include="Traits\EjectOnDeath.cs" /> <Compile Include="Traits\EjectOnDeath.cs" />
@@ -438,6 +440,7 @@
<Compile Include="Traits\RepairsBridges.cs" /> <Compile Include="Traits\RepairsBridges.cs" />
<Compile Include="Traits\SeedsResource.cs" /> <Compile Include="Traits\SeedsResource.cs" />
<Compile Include="Traits\StoresResources.cs" /> <Compile Include="Traits\StoresResources.cs" />
<Compile Include="Traits\Render\SelectionDecorations.cs" />
<Compile Include="Traits\SelfHealing.cs" /> <Compile Include="Traits\SelfHealing.cs" />
<Compile Include="Traits\Sellable.cs" /> <Compile Include="Traits\Sellable.cs" />
<Compile Include="Traits\ShakeOnDeath.cs" /> <Compile Include="Traits\ShakeOnDeath.cs" />

View File

@@ -0,0 +1,36 @@
#region Copyright & License Information
/*
* Copyright 2007-2015 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 OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
[Desc("Special case trait for unselectable actors that need to define targetable area bounds",
"for special cases like C4, engineer repair and tooltips.",
"Examples: bridge huts and crates.")]
public class CustomSelectionSizeInfo : ITraitInfo
{
public readonly int[] CustomBounds = null;
public object Create(ActorInitializer init) { return new CustomSelectionSize(this); }
}
public class CustomSelectionSize : IAutoSelectionSize
{
readonly CustomSelectionSizeInfo info;
public CustomSelectionSize(CustomSelectionSizeInfo info) { this.info = info; }
public int2 SelectionSize(Actor self)
{
return new int2(info.CustomBounds[0], info.CustomBounds[1]);
}
}
}

View File

@@ -9,16 +9,33 @@
#endregion #endregion
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing;
using System.Linq; using System.Linq;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Mods.Common.Graphics;
using OpenRA.Traits;
namespace OpenRA.Traits namespace OpenRA.Mods.Common.Traits
{ {
public class SelectionDecorationsInfo : ITraitInfo public class SelectionDecorationsInfo : ITraitInfo, ISelectionDecorationsInfo
{ {
public readonly string Palette = "chrome"; public readonly string Palette = "chrome";
[Desc("Visual bounds for selection box. If null, it uses AutoSelectionSize.",
"The first two values define the bounds' size, the optional third and fourth",
"values specify the position relative to the actors' center. Defaults to selectable bounds.")]
public readonly int[] VisualBounds = null;
[Desc("Health bar, production progress bar etc.")]
public readonly bool RenderSelectionBars = true;
public readonly bool RenderSelectionBox = true;
public readonly Color SelectionBoxColor = Color.White;
public object Create(ActorInitializer init) { return new SelectionDecorations(init.Self, this); } public object Create(ActorInitializer init) { return new SelectionDecorations(init.Self, this); }
public int[] SelectionBoxBounds { get { return VisualBounds; } }
} }
public class SelectionDecorations : IPostRenderSelection public class SelectionDecorations : IPostRenderSelection
@@ -27,7 +44,7 @@ namespace OpenRA.Traits
static readonly string[] PipStrings = { "pip-empty", "pip-green", "pip-yellow", "pip-red", "pip-gray", "pip-blue", "pip-ammo", "pip-ammoempty" }; static readonly string[] PipStrings = { "pip-empty", "pip-green", "pip-yellow", "pip-red", "pip-gray", "pip-blue", "pip-ammo", "pip-ammoempty" };
static readonly string[] TagStrings = { "", "tag-fake", "tag-primary" }; static readonly string[] TagStrings = { "", "tag-fake", "tag-primary" };
public SelectionDecorationsInfo Info; public readonly SelectionDecorationsInfo Info;
readonly Actor self; readonly Actor self;
public SelectionDecorations(Actor self, SelectionDecorationsInfo info) public SelectionDecorations(Actor self, SelectionDecorationsInfo info)
@@ -36,12 +53,37 @@ namespace OpenRA.Traits
Info = info; Info = info;
} }
IEnumerable<WPos> ActivityTargetPath()
{
if (!self.IsInWorld || self.IsDead)
yield break;
var activity = self.GetCurrentActivity();
if (activity != null)
{
var targets = activity.GetTargets(self);
yield return self.CenterPosition;
foreach (var t in targets.Where(t => t.Type != TargetType.Invalid))
yield return t.CenterPosition;
}
}
public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr) public IEnumerable<IRenderable> RenderAfterWorld(WorldRenderer wr)
{ {
if (!self.Owner.IsAlliedWith(self.World.RenderPlayer) || self.World.FogObscures(self)) if (!self.Owner.IsAlliedWith(self.World.RenderPlayer) || self.World.FogObscures(self))
yield break; yield break;
var b = self.Bounds; if (Info.RenderSelectionBox)
yield return new SelectionBoxRenderable(self, Info.SelectionBoxColor);
if (Info.RenderSelectionBars)
yield return new SelectionBarsRenderable(self);
if (self.World.LocalPlayer != null && self.World.LocalPlayer.PlayerActor.Trait<DeveloperMode>().PathDebug)
yield return new TargetLineRenderable(ActivityTargetPath(), Color.Green);
var b = self.VisualBounds;
var pos = wr.ScreenPxPosition(self.CenterPosition); var pos = wr.ScreenPxPosition(self.CenterPosition);
var tl = wr.Viewport.WorldToViewPx(pos + new int2(b.Left, b.Top)); var tl = wr.Viewport.WorldToViewPx(pos + new int2(b.Left, b.Top));
var bl = wr.Viewport.WorldToViewPx(pos + new int2(b.Left, b.Bottom)); var bl = wr.Viewport.WorldToViewPx(pos + new int2(b.Left, b.Bottom));
@@ -85,7 +127,7 @@ namespace OpenRA.Traits
var pipxyBase = basePosition + new int2(1 - pipSize.X / 2, -(3 + pipSize.Y / 2)); var pipxyBase = basePosition + new int2(1 - pipSize.X / 2, -(3 + pipSize.Y / 2));
var pipxyOffset = new int2(0, 0); var pipxyOffset = new int2(0, 0);
var pal = wr.Palette(Info.Palette); var pal = wr.Palette(Info.Palette);
var width = self.Bounds.Width; var width = self.VisualBounds.Width;
foreach (var pips in pipSources) foreach (var pips in pipSources)
{ {

View File

@@ -12,6 +12,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Mods.Common.Graphics;
using OpenRA.Traits; using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits namespace OpenRA.Mods.Common.Traits

View File

@@ -1152,6 +1152,29 @@ namespace OpenRA.Mods.Common.UtilityCommands
} }
} }
// 'Selectable' boolean was removed from selectable trait.
if (engineVersion < 20150619)
{
if (depth == 1 && node.Value.Nodes.Exists(n => n.Key == "Selectable"))
{
var selectable = node.Value.Nodes.FirstOrDefault(n => n.Key == "Selectable");
if (node.Key == "Selectable" && selectable.Value.Value == "false")
node.Key = "SelectableRemoveMe";
// To cover rare cases where the boolean was 'true'
if (node.Key == "Selectable" && selectable.Value.Value == "true")
node.Value.Nodes.Remove(selectable);
}
if (depth == 0 && node.Value.Nodes.Exists(n => n.Key == "SelectableRemoveMe"))
node.Value.Nodes.RemoveAll(n => n.Key == "SelectableRemoveMe");
Console.WriteLine("The 'Selectable' boolean has been removed from the Selectable trait.");
Console.WriteLine("If you just want to disable an inherited Selectable trait, use -Selectable instead.");
Console.WriteLine("For special cases like bridge huts, which need bounds to be targetable by C4 and engineers,");
Console.WriteLine("give them the CustomSelectionSize trait with CustomBounds.");
Console.WriteLine("See RA and C&C bridge huts or crates for reference.");
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
} }
} }

View File

@@ -12,6 +12,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Mods.Common.Graphics;
using OpenRA.Mods.Common.Traits; using OpenRA.Mods.Common.Traits;
using OpenRA.Mods.RA.Activities; using OpenRA.Mods.RA.Activities;

View File

@@ -545,8 +545,7 @@ Rules:
ShowOwnerRow: false ShowOwnerRow: false
TRAN: TRAN:
RejectsOrders: RejectsOrders:
Selectable: -Selectable:
Selectable: false
RevealsShroud: RevealsShroud:
Range: 5c0 Range: 5c0

View File

@@ -9,8 +9,6 @@ TRAN:
BuildPaletteOrder: 10 BuildPaletteOrder: 10
Prerequisites: hpad Prerequisites: hpad
Queue: Aircraft.GDI, Aircraft.Nod Queue: Aircraft.GDI, Aircraft.Nod
Selectable:
Bounds: 41,41
Helicopter: Helicopter:
LandWhenIdle: true LandWhenIdle: true
ROT: 5 ROT: 5
@@ -42,6 +40,8 @@ TRAN:
EmptyWeapon: HeliExplode EmptyWeapon: HeliExplode
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 41,41
HELI: HELI:
Inherits: ^Helicopter Inherits: ^Helicopter
@@ -54,8 +54,6 @@ HELI:
BuildPaletteOrder: 20 BuildPaletteOrder: 20
Prerequisites: hpad, anyhq, ~techlevel.medium Prerequisites: hpad, anyhq, ~techlevel.medium
Queue: Aircraft.Nod Queue: Aircraft.Nod
Selectable:
Bounds: 30,24
Helicopter: Helicopter:
RearmBuildings: hpad RearmBuildings: hpad
ROT: 4 ROT: 4
@@ -95,6 +93,8 @@ HELI:
EmptyWeapon: HeliExplode EmptyWeapon: HeliExplode
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 30,24
ORCA: ORCA:
Inherits: ^Helicopter Inherits: ^Helicopter
@@ -107,8 +107,6 @@ ORCA:
BuildPaletteOrder: 20 BuildPaletteOrder: 20
Prerequisites: hpad, anyhq, ~techlevel.medium Prerequisites: hpad, anyhq, ~techlevel.medium
Queue: Aircraft.GDI Queue: Aircraft.GDI
Selectable:
Bounds: 30,24
Helicopter: Helicopter:
RearmBuildings: hpad RearmBuildings: hpad
ROT: 4 ROT: 4
@@ -144,6 +142,8 @@ ORCA:
AutoSelectionSize: AutoSelectionSize:
WithMoveAnimation: WithMoveAnimation:
MoveSequence: move MoveSequence: move
SelectionDecorations:
VisualBounds: 30,24
C17: C17:
ParaDrop: ParaDrop:

View File

@@ -370,10 +370,8 @@ BRIDGEHUT:
Building: Building:
Footprint: __ __ Footprint: __ __
Dimensions: 2,2 Dimensions: 2,2
Selectable: CustomSelectionSize:
Selectable: false CustomBounds: 48,48
Bounds: 48,48
Priority: 2
BridgeHut: BridgeHut:
TargetableBuilding: TargetableBuilding:
TargetTypes: BridgeHut, C4 TargetTypes: BridgeHut, C4
@@ -438,7 +436,10 @@ VICE:
Tiberium: 100 Tiberium: 100
BlueTiberium: 100 BlueTiberium: 100
Beach: 60 Beach: 60
SelectionDecorations:
VisualBounds: 24,24
Selectable: Selectable:
Bounds: 24,24
TargetableUnit: TargetableUnit:
TargetTypes: Ground TargetTypes: Ground
AutoTarget: AutoTarget:

View File

@@ -34,6 +34,7 @@
ROT: 5 ROT: 5
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24,24
TargetableUnit: TargetableUnit:
TargetTypes: Ground, Vehicle TargetTypes: Ground, Vehicle
Repairable: Repairable:
@@ -81,6 +82,7 @@
ROT: 5 ROT: 5
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24,24
TargetableUnit: TargetableUnit:
TargetTypes: Ground, Vehicle TargetTypes: Ground, Vehicle
Repairable: Repairable:
@@ -125,6 +127,7 @@
GroundedTargetTypes: Ground GroundedTargetTypes: Ground
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24,24
Helicopter: Helicopter:
RepairBuildings: hpad RepairBuildings: hpad
RearmBuildings: RearmBuildings:
@@ -248,7 +251,6 @@
-AutoTarget: -AutoTarget:
-TakeCover: -TakeCover:
AppearsOnRadar: AppearsOnRadar:
SelectionDecorations:
Valued: Valued:
Cost: 70 Cost: 70
Tooltip: Tooltip:
@@ -298,7 +300,9 @@
Tiberium: 70 Tiberium: 70
BlueTiberium: 70 BlueTiberium: 70
Beach: 80 Beach: 80
SelectionDecorations:
Selectable: Selectable:
Bounds: 24,24
TargetableUnit: TargetableUnit:
TargetTypes: Ground, Infantry TargetTypes: Ground, Infantry
HiddenUnderFog: HiddenUnderFog:
@@ -329,6 +333,7 @@
UseLocation: yes UseLocation: yes
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24,24
TargetableUnit: TargetableUnit:
TargetTypes: Air TargetTypes: Air
HiddenUnderFog: HiddenUnderFog:
@@ -661,7 +666,6 @@
Image: crate Image: crate
WithCrateBody: WithCrateBody:
XmasImages: xcratea, xcrateb, xcratec, xcrated XmasImages: xcratea, xcrateb, xcratec, xcrated
Selectable: CustomSelectionSize:
Selectable: false CustomBounds: 16,16
Bounds: 15,15,-1,-1

View File

@@ -225,8 +225,6 @@ STEG:
WithDeathAnimation: WithDeathAnimation:
DeathSequencePalette: terrain DeathSequencePalette: terrain
DeathPaletteIsPlayerPalette: false DeathPaletteIsPlayerPalette: false
Selectable:
Bounds: 24,20,0,4
TREX: TREX:
Inherits: ^DINO Inherits: ^DINO
@@ -236,7 +234,9 @@ TREX:
Armament: Armament:
Weapon: teeth Weapon: teeth
Selectable: Selectable:
Bounds: 52,38 Bounds: 48,36,2,1
SelectionDecorations:
VisualBounds: 52,38
TRIC: TRIC:
Inherits: ^DINO Inherits: ^DINO
@@ -245,8 +245,8 @@ TRIC:
Description: Quadruped with large bony frill and three horns Description: Quadruped with large bony frill and three horns
Armament: Armament:
Weapon: horn Weapon: horn
Selectable: SelectionDecorations:
Bounds: 34,24,0,2 VisualBounds: 34,24,0,2
RAPT: RAPT:
Inherits: ^DINO Inherits: ^DINO
@@ -255,6 +255,4 @@ RAPT:
Description: Bipedal with enlarged sickle-shaped claw on each hindfoot Description: Bipedal with enlarged sickle-shaped claw on each hindfoot
Armament: Armament:
Weapon: claw Weapon: claw
Selectable:
Bounds: 20,20

View File

@@ -29,6 +29,8 @@ BOAT:
AllowMovement: false AllowMovement: false
WithSmoke: WithSmoke:
RejectsOrders: RejectsOrders:
SelectionDecorations:
VisualBounds: 42,24
LST: LST:
Inherits: ^Ship Inherits: ^Ship

View File

@@ -108,7 +108,7 @@ NUKE:
Prerequisites: fact Prerequisites: fact
Queue: Building.GDI, Building.Nod Queue: Building.GDI, Building.Nod
Building: Building:
Footprint: x_ xx Footprint: xx xx
Dimensions: 2,2 Dimensions: 2,2
Health: Health:
HP: 500 HP: 500
@@ -133,7 +133,7 @@ NUK2:
Prerequisites: anyhq, ~techlevel.medium Prerequisites: anyhq, ~techlevel.medium
Queue: Building.GDI, Building.Nod Queue: Building.GDI, Building.Nod
Building: Building:
Footprint: x_ xx Footprint: xx xx
Dimensions: 2,2 Dimensions: 2,2
Health: Health:
HP: 700 HP: 700
@@ -167,7 +167,7 @@ PROC:
DockAngle: 112 DockAngle: 112
DockOffset: 0,2 DockOffset: 0,2
IsDragRequired: True IsDragRequired: True
DragOffset: -640,341,0 DragOffset: -554,512,0
DragLength: 12 DragLength: 12
TickRate: 15 TickRate: 15
StoresResources: StoresResources:
@@ -175,7 +175,7 @@ PROC:
PipCount: 10 PipCount: 10
Capacity: 2000 Capacity: 2000
Selectable: Selectable:
Bounds: 73,72 Bounds: 72,56,0,12
CustomSellValue: CustomSellValue:
Value: 500 Value: 500
FreeActor: FreeActor:
@@ -187,6 +187,8 @@ PROC:
Power: Power:
Amount: -50 Amount: -50
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 73,72
SILO: SILO:
Inherits: ^BaseBuilding Inherits: ^BaseBuilding
@@ -214,14 +216,14 @@ SILO:
PipCount: 10 PipCount: 10
PipColor: Green PipColor: Green
Capacity: 2000 Capacity: 2000
Selectable:
Bounds: 49,30
-RenderBuilding: -RenderBuilding:
-EmitInfantryOnSell: -EmitInfantryOnSell:
Power: Power:
Amount: -10 Amount: -10
MustBeDestroyed: MustBeDestroyed:
RequiredForShortGame: false RequiredForShortGame: false
SelectionDecorations:
VisualBounds: 49,30
PYLE: PYLE:
Inherits: ^BaseBuilding Inherits: ^BaseBuilding
@@ -301,6 +303,8 @@ HAND:
Power: Power:
Amount: -20 Amount: -20
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
Selectable:
Bounds: 48,48,0,10
AFLD: AFLD:
Inherits: ^BaseBuilding Inherits: ^BaseBuilding
@@ -361,6 +365,8 @@ WEAP:
Building: Building:
Footprint: ___ xxx === Footprint: ___ xxx ===
Dimensions: 3,3 Dimensions: 3,3
Selectable:
Bounds: 72,48,0,12
Health: Health:
HP: 1000 HP: 1000
RevealsShroud: RevealsShroud:
@@ -449,6 +455,8 @@ HQ:
Building: Building:
Footprint: x_ xx Footprint: x_ xx
Dimensions: 2,2 Dimensions: 2,2
Selectable:
Bounds: 48,36,0,12
RequiresPower: RequiresPower:
CanPowerDown: CanPowerDown:
DisabledOverlay: DisabledOverlay:
@@ -499,6 +507,10 @@ FIX:
Building: Building:
Footprint: _x_ xxx _x_ Footprint: _x_ xxx _x_
Dimensions: 3,3 Dimensions: 3,3
Selectable:
Bounds: 64,34,0,3
SelectionDecorations:
VisualBounds: 72,48
Health: Health:
HP: 400 HP: 400
RevealsShroud: RevealsShroud:
@@ -529,6 +541,8 @@ EYE:
Building: Building:
Footprint: x_ xx Footprint: x_ xx
Dimensions: 2,2 Dimensions: 2,2
Selectable:
Bounds: 48,36,0,12
RequiresPower: RequiresPower:
CanPowerDown: CanPowerDown:
DisabledOverlay: DisabledOverlay:
@@ -578,6 +592,8 @@ TMPL:
Building: Building:
Footprint: ___ xxx xxx Footprint: ___ xxx xxx
Dimensions: 3,3 Dimensions: 3,3
Selectable:
Bounds: 72,48,0,16
RequiresPower: RequiresPower:
CanPowerDown: CanPowerDown:
DisabledOverlay: DisabledOverlay:
@@ -713,6 +729,8 @@ OBLI:
Building: Building:
Footprint: _ x Footprint: _ x
Dimensions: 1,2 Dimensions: 1,2
Selectable:
Bounds: 24,24,0,12
RequiresPower: RequiresPower:
DisabledOverlay: DisabledOverlay:
-GivesBuildableArea: -GivesBuildableArea:
@@ -802,6 +820,8 @@ ATWR:
Building: Building:
Footprint: _ x Footprint: _ x
Dimensions: 1,2 Dimensions: 1,2
Selectable:
Bounds: 24,24,0,12
RequiresPower: RequiresPower:
DisabledOverlay: DisabledOverlay:
-GivesBuildableArea: -GivesBuildableArea:

View File

@@ -39,6 +39,8 @@ MCV:
EmptyWeapon: UnitExplodeSmall EmptyWeapon: UnitExplodeSmall
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 36,36
HARV: HARV:
Inherits: ^Tank Inherits: ^Tank
@@ -55,7 +57,6 @@ HARV:
InitialActivity: FindResources InitialActivity: FindResources
Selectable: Selectable:
Priority: 7 Priority: 7
Bounds: 36,36
Harvester: Harvester:
Resources: Tiberium, BlueTiberium Resources: Tiberium, BlueTiberium
PipCount: 7 PipCount: 7
@@ -78,6 +79,8 @@ HARV:
RenderHarvester: RenderHarvester:
Explodes: Explodes:
Weapon: TiberiumExplosion Weapon: TiberiumExplosion
SelectionDecorations:
VisualBounds: 36,36
APC: APC:
Inherits: ^Tank Inherits: ^Tank
@@ -391,10 +394,10 @@ MTNK:
Explodes: Explodes:
Weapon: UnitExplodeSmall Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall EmptyWeapon: UnitExplodeSmall
Selectable:
Bounds: 28,28
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 28,28
HTNK: HTNK:
Inherits: ^Tank Inherits: ^Tank
@@ -446,10 +449,10 @@ HTNK:
Explodes: Explodes:
Weapon: UnitExplodeSmall Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall EmptyWeapon: UnitExplodeSmall
Selectable:
Bounds: 34,34,0,-3
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 34,34,0,-3
MSAM: MSAM:
Inherits: ^Tank Inherits: ^Tank

View File

@@ -49,23 +49,27 @@ proc:
idle: idle:
Length: 6 Length: 6
Tick: 120 Tick: 120
Offset: 2,4
damaged-idle: damaged-idle:
Start: 30 Start: 30
Length: 6 Length: 6
Tick: 120 Tick: 120
Offset: 2,4
dead: dead:
Start: 60 Start: 60
Tick: 800 Tick: 800
Offset: 2,4
make: procmake make: procmake
Length: * Length: *
Tick: 80 Tick: 80
Offset: 2,4
resources: proctwr resources: proctwr
Length: 6 Length: 6
Offset: -32,-21 Offset: -30,-17
damaged-resources: proctwr damaged-resources: proctwr
Start: 6 Start: 6
Length: 6 Length: 6
Offset: -32,-21 Offset: -30,-17
bib: bib2 bib: bib2
UseTilesetExtension: true UseTilesetExtension: true
Length: * Length: *

View File

@@ -145,12 +145,12 @@ orni:
RearmBuildings: RearmBuildings:
WithFacingSpriteBody: WithFacingSpriteBody:
WithShadow: WithShadow:
Selectable:
Bounds: 38,32,0,0
LeavesHusk: LeavesHusk:
HuskActor: orni.husk HuskActor: orni.husk
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 38,32,0,0
orni.bomber: orni.bomber:
AttackBomber: AttackBomber:

View File

@@ -35,6 +35,7 @@
ROT: 5 ROT: 5
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 32,32
TargetableUnit: TargetableUnit:
TargetTypes: Ground, C4 TargetTypes: Ground, C4
Passenger: Passenger:
@@ -90,6 +91,7 @@
ROT: 5 ROT: 5
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 32,32
TargetableUnit: TargetableUnit:
TargetTypes: Ground, C4 TargetTypes: Ground, C4
Passenger: Passenger:
@@ -271,6 +273,7 @@
UseLocation: yes UseLocation: yes
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 32,32
TargetableAircraft: TargetableAircraft:
TargetTypes: Air TargetTypes: Air
GroundedTargetTypes: Ground GroundedTargetTypes: Ground

View File

@@ -109,10 +109,9 @@ crate:
RenderSprites: RenderSprites:
Palette: effect Palette: effect
WithCrateBody: WithCrateBody:
Selectable:
Selectable: false
Bounds: 15,15,-1,-1
Passenger: Passenger:
CustomSelectionSize:
CustomBounds: 16,16
mpspawn: mpspawn:
Immobile: Immobile:

View File

@@ -76,6 +76,8 @@ conyard:
WithBuildingPlacedOverlay: WithBuildingPlacedOverlay:
Palette: d2k Palette: d2k
PrimaryBuilding: PrimaryBuilding:
SelectionDecorations:
VisualBounds: 96,64
power: power:
Inherits: ^Building Inherits: ^Building
@@ -110,6 +112,8 @@ power:
Amount: 100 Amount: 100
ScalePowerWithHealth: ScalePowerWithHealth:
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 64,64
barracks: barracks:
Inherits: ^Building Inherits: ^Building
@@ -125,7 +129,7 @@ barracks:
Name: Barracks Name: Barracks
Description: Trains infantry Description: Trains infantry
Building: Building:
Footprint: =x xx Footprint: xx xx
Dimensions: 2,2 Dimensions: 2,2
Bib: Bib:
Health: Health:
@@ -166,6 +170,8 @@ barracks:
atreides: barracks.atreides atreides: barracks.atreides
ordos: barracks.ordos ordos: barracks.ordos
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 64,64
refinery: refinery:
Inherits: ^Building Inherits: ^Building
@@ -219,6 +225,8 @@ refinery:
WithIdleOverlay@TOP: WithIdleOverlay@TOP:
Sequence: idle-top Sequence: idle-top
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 96,64
silo: silo:
Inherits: ^Building Inherits: ^Building
@@ -257,6 +265,8 @@ silo:
Amount: -5 Amount: -5
MustBeDestroyed: MustBeDestroyed:
RequiredForShortGame: false RequiredForShortGame: false
SelectionDecorations:
VisualBounds: 32,32
light: light:
Inherits: ^Building Inherits: ^Building
@@ -314,6 +324,8 @@ light:
Sequence: idle-top Sequence: idle-top
Power: Power:
Amount: -20 Amount: -20
SelectionDecorations:
VisualBounds: 96,64
heavy: heavy:
Inherits: ^Building Inherits: ^Building
@@ -322,7 +334,7 @@ heavy:
Queue: Building Queue: Building
BuildPaletteOrder: 100 BuildPaletteOrder: 100
Selectable: Selectable:
Bounds: 96,96 Bounds: 96,68,0,12
Valued: Valued:
Cost: 2000 Cost: 2000
Tooltip: Tooltip:
@@ -372,6 +384,8 @@ heavy:
Power: Power:
Amount: -30 Amount: -30
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 96,96
radar: radar:
Inherits: ^Building Inherits: ^Building
@@ -414,6 +428,8 @@ radar:
Power: Power:
Amount: -40 Amount: -40
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 96,64
starport: starport:
Inherits: ^Building Inherits: ^Building
@@ -473,6 +489,8 @@ starport:
Power: Power:
Amount: -40 Amount: -40
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 96,64
wall: wall:
Buildable: Buildable:
@@ -540,7 +558,7 @@ guntower:
Sellable: Sellable:
SellSounds: CHUNG.WAV SellSounds: CHUNG.WAV
Selectable: Selectable:
Bounds: 32,40,0,-8 Bounds: 32,32
Priority: 3 Priority: 3
-GivesBuildableArea: -GivesBuildableArea:
Health: Health:
@@ -576,6 +594,8 @@ guntower:
Amount: -20 Amount: -20
MustBeDestroyed: MustBeDestroyed:
RequiredForShortGame: false RequiredForShortGame: false
SelectionDecorations:
VisualBounds: 32,40,0,-8
rockettower: rockettower:
Inherits: ^Building Inherits: ^Building
@@ -594,7 +614,7 @@ rockettower:
Sellable: Sellable:
SellSounds: CHUNG.WAV SellSounds: CHUNG.WAV
Selectable: Selectable:
Bounds: 32,40,0,-8 Bounds: 32,32
Priority: 3 Priority: 3
-GivesBuildableArea: -GivesBuildableArea:
Health: Health:
@@ -631,6 +651,8 @@ rockettower:
Amount: -30 Amount: -30
MustBeDestroyed: MustBeDestroyed:
RequiredForShortGame: false RequiredForShortGame: false
SelectionDecorations:
VisualBounds: 32,40,0,-8
repair: repair:
Inherits: ^Building Inherits: ^Building
@@ -652,6 +674,10 @@ repair:
Type: Concrete Type: Concrete
RevealsShroud: RevealsShroud:
Range: 5c0 Range: 5c0
Selectable:
Bounds: 96,64
SelectionDecorations:
VisualBounds: 96,80
Reservable: Reservable:
RepairsUnits: RepairsUnits:
Interval: 15 Interval: 15
@@ -677,7 +703,7 @@ hightech:
Queue: Building Queue: Building
BuildPaletteOrder: 110 BuildPaletteOrder: 110
Selectable: Selectable:
Bounds: 96,96 Bounds: 96,68,0,12
Valued: Valued:
Cost: 750 Cost: 750
Tooltip: Tooltip:
@@ -722,6 +748,8 @@ hightech:
Sequence: production-welding Sequence: production-welding
Power: Power:
Amount: -40 Amount: -40
SelectionDecorations:
VisualBounds: 96,96
research: research:
Inherits: ^Building Inherits: ^Building
@@ -730,7 +758,7 @@ research:
Prerequisites: radar, heavy, upgrade.heavy, ~techlevel.high Prerequisites: radar, heavy, upgrade.heavy, ~techlevel.high
BuildPaletteOrder: 140 BuildPaletteOrder: 140
Selectable: Selectable:
Bounds: 96,64 Bounds: 96,64,0,16
Valued: Valued:
Cost: 1500 Cost: 1500
Tooltip: Tooltip:
@@ -767,6 +795,8 @@ research:
Power: Power:
Amount: -40 Amount: -40
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 96,80
palace: palace:
Inherits: ^Building Inherits: ^Building
@@ -828,6 +858,8 @@ palace:
RequiresPower: RequiresPower:
SupportPowerChargeBar: SupportPowerChargeBar:
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 96,96
conyard.atreides: conyard.atreides:
Inherits: conyard Inherits: conyard

View File

@@ -38,6 +38,8 @@ mcv:
HuskActor: mcv.husk HuskActor: mcv.husk
AttractsWorms: AttractsWorms:
Intensity: 700 Intensity: 700
SelectionDecorations:
VisualBounds: 42,42
harvester: harvester:
Inherits: ^Vehicle Inherits: ^Vehicle
@@ -85,6 +87,8 @@ harvester:
Palette: effect50alpha Palette: effect50alpha
AttractsWorms: AttractsWorms:
Intensity: 700 Intensity: 700
SelectionDecorations:
VisualBounds: 42,42
trike: trike:
Inherits: ^Vehicle Inherits: ^Vehicle
@@ -99,7 +103,6 @@ trike:
Description: Fast Scout\n Strong vs Infantry\n Weak vs Tanks, Aircraft Description: Fast Scout\n Strong vs Infantry\n Weak vs Tanks, Aircraft
Selectable: Selectable:
Class: trike Class: trike
Bounds: 24,24
Health: Health:
HP: 100 HP: 100
Armor: Armor:
@@ -155,7 +158,6 @@ quad:
EmptyWeapon: UnitExplodeTiny EmptyWeapon: UnitExplodeTiny
Selectable: Selectable:
Class: quad Class: quad
Bounds: 24,24
AttractsWorms: AttractsWorms:
Intensity: 470 Intensity: 470
@@ -200,7 +202,6 @@ siegetank:
InitialStance: Defend InitialStance: Defend
Selectable: Selectable:
Class: siegetank Class: siegetank
Bounds: 30,30
LeavesHusk: LeavesHusk:
HuskActor: siegetank.husk HuskActor: siegetank.husk
AttractsWorms: AttractsWorms:
@@ -241,7 +242,6 @@ missiletank:
EmptyWeapon: UnitExplodeScale EmptyWeapon: UnitExplodeScale
Selectable: Selectable:
Class: missiletank Class: missiletank
Bounds: 30,30
LeavesHusk: LeavesHusk:
HuskActor: missiletank.husk HuskActor: missiletank.husk
AttractsWorms: AttractsWorms:
@@ -258,8 +258,6 @@ sonictank:
Tooltip: Tooltip:
Name: Sonic Tank Name: Sonic Tank
Description: Fires sonic shocks\n Strong vs Infantry, Vehicles\n Weak vs Artillery, Aircraft Description: Fires sonic shocks\n Strong vs Infantry, Vehicles\n Weak vs Artillery, Aircraft
Selectable:
Bounds: 30,30
Health: Health:
HP: 130 HP: 130
Armor: Armor:
@@ -315,14 +313,14 @@ devast:
Explodes: Explodes:
Weapon: UnitExplodeScale Weapon: UnitExplodeScale
EmptyWeapon: UnitExplodeScale EmptyWeapon: UnitExplodeScale
Selectable:
Bounds: 44,38,0,0
LeavesHusk: LeavesHusk:
HuskActor: devast.husk HuskActor: devast.husk
AttractsWorms: AttractsWorms:
Intensity: 700 Intensity: 700
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 44,38,0,0
raider: raider:
Inherits: ^Vehicle Inherits: ^Vehicle
@@ -335,8 +333,6 @@ raider:
Tooltip: Tooltip:
Name: Raider Trike Name: Raider Trike
Description: Improved Scout\n Strong vs Infantry, Light Vehicles Description: Improved Scout\n Strong vs Infantry, Light Vehicles
Selectable:
Bounds: 24,24
Health: Health:
HP: 110 HP: 110
Armor: Armor:
@@ -408,8 +404,6 @@ deviatortank:
Explodes: Explodes:
Weapon: UnitExplodeSmall Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall EmptyWeapon: UnitExplodeSmall
Selectable:
Bounds: 30,30
LeavesHusk: LeavesHusk:
HuskActor: deviatortank.husk HuskActor: deviatortank.husk
AttractsWorms: AttractsWorms:
@@ -456,7 +450,6 @@ deviatortank:
EmptyWeapon: UnitExplodeSmall EmptyWeapon: UnitExplodeSmall
Selectable: Selectable:
Class: combat Class: combat
Bounds: 30,30
AttractsWorms: AttractsWorms:
Intensity: 520 Intensity: 520
AutoSelectionSize: AutoSelectionSize:

View File

@@ -114,7 +114,9 @@ MIG:
Ammo: 8 Ammo: 8
ReturnOnIdle: ReturnOnIdle:
Selectable: Selectable:
Bounds: 40,29,0,1 Bounds: 36,28,0,2
SelectionDecorations:
VisualBounds: 40,29,0,1
Contrail@1: Contrail@1:
Offset: -598,-683,0 Offset: -598,-683,0
Contrail@2: Contrail@2:
@@ -173,8 +175,8 @@ YAK:
PipCount: 6 PipCount: 6
ReloadTicks: 11 ReloadTicks: 11
ReturnOnIdle: ReturnOnIdle:
Selectable: SelectionDecorations:
Bounds: 30,28,0,2 VisualBounds: 30,28,0,2
WithMuzzleFlash: WithMuzzleFlash:
Contrail: Contrail:
Offset: -853,0,0 Offset: -853,0,0
@@ -269,8 +271,8 @@ HELI:
Offset: 0,0,85 Offset: 0,0,85
AmmoPool: AmmoPool:
Ammo: 8 Ammo: 8
Selectable: SelectionDecorations:
Bounds: 36,28,0,0 VisualBounds: 36,28,0,0
LeavesHusk: LeavesHusk:
HuskActor: HELI.Husk HuskActor: HELI.Husk
SmokeTrailWhenDamaged: SmokeTrailWhenDamaged:
@@ -322,8 +324,8 @@ HIND:
Ammo: 24 Ammo: 24
PipCount: 6 PipCount: 6
ReloadTicks: 8 ReloadTicks: 8
Selectable: SelectionDecorations:
Bounds: 38,32,0,0 VisualBounds: 38,32,0,0
WithMuzzleFlash: WithMuzzleFlash:
LeavesHusk: LeavesHusk:
HuskActor: HIND.Husk HuskActor: HIND.Husk

View File

@@ -3,7 +3,6 @@ C1:
C2: C2:
Inherits: ^CivInfantry Inherits: ^CivInfantry
Selectable:
Voiced: Voiced:
VoiceSet: CivilianFemaleVoice VoiceSet: CivilianFemaleVoice
@@ -12,7 +11,6 @@ C3:
C4: C4:
Inherits: ^CivInfantry Inherits: ^CivInfantry
Selectable:
WithInfantryBody: WithInfantryBody:
RenderSprites: RenderSprites:
Image: C2 Image: C2
@@ -27,7 +25,6 @@ C5:
C6: C6:
Inherits: ^CivInfantry Inherits: ^CivInfantry
Selectable:
WithInfantryBody: WithInfantryBody:
RenderSprites: RenderSprites:
Image: C2 Image: C2
@@ -42,7 +39,6 @@ C7:
C8: C8:
Inherits: ^CivInfantry Inherits: ^CivInfantry
Selectable:
WithInfantryBody: WithInfantryBody:
RenderSprites: RenderSprites:
Image: C2 Image: C2
@@ -57,7 +53,6 @@ C9:
C10: C10:
Inherits: ^CivInfantry Inherits: ^CivInfantry
Selectable:
WithInfantryBody: WithInfantryBody:
RenderSprites: RenderSprites:
Image: C2 Image: C2
@@ -495,10 +490,8 @@ BRIDGEHUT:
Building: Building:
Footprint: __ __ Footprint: __ __
Dimensions: 2,2 Dimensions: 2,2
Selectable: CustomSelectionSize:
Selectable: false CustomBounds: 48,48
Bounds: 48,48
Priority: 2
BridgeHut: BridgeHut:
TargetableBuilding: TargetableBuilding:
TargetTypes: BridgeHut, C4 TargetTypes: BridgeHut, C4
@@ -507,10 +500,8 @@ BRIDGEHUT.small:
Building: Building:
Footprint: _ Footprint: _
Dimensions: 1,1 Dimensions: 1,1
Selectable: CustomSelectionSize:
Selectable: false CustomBounds: 24,24
Bounds: 24,24
Priority: 2
BridgeHut: BridgeHut:
TargetableBuilding: TargetableBuilding:
TargetTypes: BridgeHut, C4 TargetTypes: BridgeHut, C4
@@ -639,22 +630,26 @@ LHUS:
EditorTilesetFilter: EditorTilesetFilter:
RequireTilesets: TEMPERAT RequireTilesets: TEMPERAT
Selectable: Selectable:
Bounds: 24,48 Bounds: 24,24,0,16
SelectionDecorations:
VisualBounds: 24,48
Tooltip: Tooltip:
Name: Lighthouse Name: Lighthouse
Building: Building:
Footprint: _ x Footprint: x
Dimensions: 1,2 Dimensions: 1,1
WINDMILL: WINDMILL:
Inherits: ^CivBuilding Inherits: ^CivBuilding
EditorTilesetFilter: EditorTilesetFilter:
RequireTilesets: TEMPERAT RequireTilesets: TEMPERAT
Selectable: Selectable:
Bounds: 36,36 Bounds: 24,24,0,8
SelectionDecorations:
VisualBounds: 36,36
Tooltip: Tooltip:
Name: Windmill Name: Windmill
Building: Building:
Footprint: _ x Footprint: x
Dimensions: 1,2 Dimensions: 1,1

View File

@@ -58,6 +58,7 @@
ROT: 5 ROT: 5
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24, 24
TargetableUnit: TargetableUnit:
TargetTypes: Ground, Repair, Vehicle TargetTypes: Ground, Repair, Vehicle
Repairable: Repairable:
@@ -112,6 +113,7 @@
ROT: 5 ROT: 5
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24, 24
TargetableUnit: TargetableUnit:
TargetTypes: Ground, C4, Repair, Tank TargetTypes: Ground, C4, Repair, Tank
Repairable: Repairable:
@@ -180,7 +182,7 @@
Beach: 80 Beach: 80
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 12,18,0,-6 Bounds: 12,18,0,-8
TargetableUnit: TargetableUnit:
TargetTypes: Ground, Infantry, Disguise TargetTypes: Ground, Infantry, Disguise
TakeCover: TakeCover:
@@ -257,6 +259,7 @@
Water: 100 Water: 100
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24,24
TargetableUnit: TargetableUnit:
TargetTypes: Ground, Water, Repair TargetTypes: Ground, Water, Repair
HiddenUnderFog: HiddenUnderFog:
@@ -289,6 +292,7 @@
UseLocation: true UseLocation: true
SelectionDecorations: SelectionDecorations:
Selectable: Selectable:
Bounds: 24,24
TargetableAircraft: TargetableAircraft:
TargetTypes: Air TargetTypes: Air
GroundedTargetTypes: Ground, Repair GroundedTargetTypes: Ground, Repair
@@ -660,11 +664,10 @@
Image: scrate Image: scrate
WithCrateBody: WithCrateBody:
XmasImages: xcratea, xcrateb, xcratec, xcrated XmasImages: xcratea, xcrateb, xcratec, xcrated
Selectable:
Selectable: false
Bounds: 15,15,-1,-1
Parachutable: Parachutable:
KilledOnImpassableTerrain: false KilledOnImpassableTerrain: false
ParachuteSequence: parach ParachuteSequence: parach
Passenger: Passenger:
CustomSelectionSize:
CustomBounds: 16,16

View File

@@ -13,6 +13,8 @@ DOG:
GenericName: Dog GenericName: Dog
Selectable: Selectable:
Bounds: 12,17,-1,-4 Bounds: 12,17,-1,-4
SelectionDecorations:
VisualBounds: 12,17,-1,-4
Health: Health:
HP: 12 HP: 12
Mobile: Mobile:
@@ -561,7 +563,9 @@ Ant:
BuildPaletteOrder: 1954 BuildPaletteOrder: 1954
Prerequisites: ~bio Prerequisites: ~bio
Selectable: Selectable:
Bounds: 30,30,0,-2 Bounds: 24,24,0,-5
SelectionDecorations:
VisualBounds: 30,30,0,-2
Health: Health:
HP: 750 HP: 750
Radius: 469 Radius: 469

View File

@@ -217,9 +217,6 @@ FLARE:
Tooltip: Tooltip:
Name: Flare Name: Flare
ShowOwnerRow: false ShowOwnerRow: false
Selectable:
Selectable: false
Bounds: 25,25
BodyOrientation: BodyOrientation:
MINE: MINE:

View File

@@ -35,8 +35,8 @@ SS:
LocalOffset: 0,-171,0, 0,171,0 LocalOffset: 0,-171,0, 0,171,0
FireDelay: 2 FireDelay: 2
AttackFrontal: AttackFrontal:
Selectable: SelectionDecorations:
Bounds: 38,38 VisualBounds: 38,38
Chronoshiftable: Chronoshiftable:
RepairableNear: RepairableNear:
AutoTarget: AutoTarget:
@@ -89,8 +89,8 @@ MSUB:
LocalOffset: 0,-171,0, 0,171,0 LocalOffset: 0,-171,0, 0,171,0
FireDelay: 2 FireDelay: 2
AttackFrontal: AttackFrontal:
Selectable: SelectionDecorations:
Bounds: 44,44 VisualBounds: 44,44
Chronoshiftable: Chronoshiftable:
RepairableNear: RepairableNear:
AutoTarget: AutoTarget:
@@ -145,6 +145,8 @@ DD:
AttackTurreted: AttackTurreted:
Selectable: Selectable:
Bounds: 38,38 Bounds: 38,38
SelectionDecorations:
VisualBounds: 38,38
WithFacingSpriteBody: WithFacingSpriteBody:
WithTurret: WithTurret:
AutoTarget: AutoTarget:
@@ -208,6 +210,8 @@ CA:
WithMuzzleFlash: WithMuzzleFlash:
Selectable: Selectable:
Bounds: 44,44 Bounds: 44,44
SelectionDecorations:
VisualBounds: 44,44
WithFacingSpriteBody: WithFacingSpriteBody:
WithTurret@PRIMARY: WithTurret@PRIMARY:
Turret: primary Turret: primary
@@ -242,6 +246,8 @@ LST:
Speed: 113 Speed: 113
RevealsShroud: RevealsShroud:
Range: 6c0 Range: 6c0
SelectionDecorations:
VisualBounds: 36,36
RenderLandingCraft: RenderLandingCraft:
OpenTerrainTypes: Clear, Rough, Road, Ore, Gems, Beach OpenTerrainTypes: Clear, Rough, Road, Ore, Gems, Beach
Cargo: Cargo:
@@ -290,6 +296,8 @@ PT:
WithMuzzleFlash: WithMuzzleFlash:
Selectable: Selectable:
Bounds: 32,32 Bounds: 32,32
SelectionDecorations:
VisualBounds: 32,32
WithFacingSpriteBody: WithFacingSpriteBody:
WithTurret: WithTurret:
AutoTarget: AutoTarget:

View File

@@ -61,6 +61,10 @@ GAP:
Building: Building:
Footprint: _ x Footprint: _ x
Dimensions: 1,2 Dimensions: 1,2
Selectable:
Bounds: 24,28,0,12
SelectionDecorations:
VisualBounds: 24,40,0,0
RequiresPower: RequiresPower:
CanPowerDown: CanPowerDown:
DisabledOverlay: DisabledOverlay:
@@ -269,7 +273,9 @@ IRON:
CanPowerDown: CanPowerDown:
DisabledOverlay: DisabledOverlay:
Selectable: Selectable:
Bounds: 50,50,0,-12 Bounds: 48,28,0,2
SelectionDecorations:
VisualBounds: 50,50,0,-12
Health: Health:
HP: 1000 HP: 1000
Armor: Armor:
@@ -380,6 +386,10 @@ TSLA:
Footprint: _ x Footprint: _ x
Dimensions: 1,2 Dimensions: 1,2
RequiresPower: RequiresPower:
Selectable:
Bounds: 24,24,0,16
SelectionDecorations:
VisualBounds: 24,36,0,4
CanPowerDown: CanPowerDown:
DisabledOverlay: DisabledOverlay:
-GivesBuildableArea: -GivesBuildableArea:
@@ -424,6 +434,10 @@ AGUN:
Building: Building:
Footprint: _ x Footprint: _ x
Dimensions: 1,2 Dimensions: 1,2
Selectable:
Bounds: 24,28,0,16
SelectionDecorations:
VisualBounds: 24,36,0,12
RequiresPower: RequiresPower:
CanPowerDown: CanPowerDown:
DisabledOverlay: DisabledOverlay:
@@ -929,6 +943,10 @@ PROC:
Building: Building:
Footprint: _x_ xxx x== Footprint: _x_ xxx x==
Dimensions: 3,3 Dimensions: 3,3
Selectable:
Bounds: 72,50,0,12
SelectionDecorations:
VisualBounds: 72,70,0,-2
TargetableBuilding: TargetableBuilding:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
Health: Health:
@@ -1220,6 +1238,10 @@ APWR:
Building: Building:
Footprint: ___ xxx xxx Footprint: ___ xxx xxx
Dimensions: 3,3 Dimensions: 3,3
Selectable:
Bounds: 72,48,0,12
SelectionDecorations:
VisualBounds: 72,64,0,-2
Health: Health:
HP: 700 HP: 700
Armor: Armor:
@@ -1447,6 +1469,10 @@ FIX:
Building: Building:
Footprint: _x_ xxx _x_ Footprint: _x_ xxx _x_
Dimensions: 3,3 Dimensions: 3,3
Selectable:
Bounds: 68,34,0,3
SelectionDecorations:
VisualBounds: 72,48
Health: Health:
HP: 800 HP: 800
Armor: Armor:

View File

@@ -20,6 +20,8 @@ V2RL:
Armament: Armament:
Weapon: SCUD Weapon: SCUD
AttackFrontal: AttackFrontal:
SelectionDecorations:
VisualBounds: 28,28
RenderSprites: RenderSprites:
AutoTarget: AutoTarget:
Explodes: Explodes:
@@ -111,10 +113,10 @@ V2RL:
EmptyWeapon: UnitExplodeSmall EmptyWeapon: UnitExplodeSmall
LeavesHusk: LeavesHusk:
HuskActor: 2TNK.Husk HuskActor: 2TNK.Husk
Selectable:
Bounds: 30,30
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 28,28
3TNK: 3TNK:
Inherits: ^Tank Inherits: ^Tank
@@ -154,10 +156,10 @@ V2RL:
EmptyWeapon: UnitExplodeSmall EmptyWeapon: UnitExplodeSmall
LeavesHusk: LeavesHusk:
HuskActor: 3TNK.Husk HuskActor: 3TNK.Husk
Selectable:
Bounds: 30,30
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 28,28
4TNK: 4TNK:
Inherits: ^Tank Inherits: ^Tank
@@ -211,10 +213,10 @@ V2RL:
Ticks: 3 Ticks: 3
HealIfBelow: 50% HealIfBelow: 50%
DamageCooldown: 150 DamageCooldown: 150
Selectable:
Bounds: 44,38,0,-4
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 44,38,0,-4
ARTY: ARTY:
Inherits: ^Tank Inherits: ^Tank
@@ -265,7 +267,8 @@ HARV:
Description: Collects Ore and Gems for processing.\n Unarmed Description: Collects Ore and Gems for processing.\n Unarmed
Selectable: Selectable:
Priority: 7 Priority: 7
Bounds: 42,42 SelectionDecorations:
VisualBounds: 42,42
Harvester: Harvester:
Capacity: 20 Capacity: 20
Resources: Ore,Gems Resources: Ore,Gems
@@ -309,7 +312,8 @@ MCV:
Description: Deploys into another Construction Yard.\n Unarmed Description: Deploys into another Construction Yard.\n Unarmed
Selectable: Selectable:
Priority: 4 Priority: 4
Bounds: 42,42 SelectionDecorations:
VisualBounds: 42,42
Health: Health:
HP: 600 HP: 600
Armor: Armor:
@@ -618,8 +622,8 @@ TTNK:
WithFacingSpriteBody: WithFacingSpriteBody:
WithIdleOverlay@SPINNER: WithIdleOverlay@SPINNER:
Sequence: spinner Sequence: spinner
Selectable: SelectionDecorations:
Bounds: 28,28,0,0 VisualBounds: 30,30
AutoTarget: AutoTarget:
Explodes: Explodes:
Weapon: UnitExplodeSmall Weapon: UnitExplodeSmall
@@ -663,10 +667,10 @@ FTRK:
Explodes: Explodes:
Weapon: UnitExplodeSmall Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall EmptyWeapon: UnitExplodeSmall
Selectable:
Bounds: 28,28,0,0
AutoSelectionSize: AutoSelectionSize:
RenderSprites: RenderSprites:
SelectionDecorations:
VisualBounds: 28,28
DTRK: DTRK:
Inherits: ^Vehicle Inherits: ^Vehicle
@@ -712,8 +716,8 @@ CTNK:
Tooltip: Tooltip:
Name: Chrono Tank Name: Chrono Tank
Description: Chrono Tank, teleports to areas within range.\n Strong vs Vehicles, Buildings\n Weak vs Infantry, Aircraft\n Special ability: Can teleport Description: Chrono Tank, teleports to areas within range.\n Strong vs Vehicles, Buildings\n Weak vs Infantry, Aircraft\n Special ability: Can teleport
Selectable: SelectionDecorations:
Bounds: 28,28 VisualBounds: 30,30
Health: Health:
HP: 400 HP: 400
Armor: Armor:
@@ -761,9 +765,9 @@ QTNK:
Crushes: wall, mine, crate, infantry Crushes: wall, mine, crate, infantry
RevealsShroud: RevealsShroud:
Range: 6c0 Range: 6c0
Selectable:
Bounds: 44,38,0,-4
WithFacingSpriteBody: WithFacingSpriteBody:
SelectionDecorations:
VisualBounds: 44,38,0,-4
Explodes: Explodes:
Weapon: UnitExplodeSmall Weapon: UnitExplodeSmall
MadTank: MadTank:
@@ -784,8 +788,8 @@ STNK:
Tooltip: Tooltip:
Name: Phase Transport Name: Phase Transport
Description: Lightly armored infantry transport\nwhich can cloak. Can detect cloaked units.\n Strong vs Light armor\n Weak vs Infantry, Tanks, Aircraft Description: Lightly armored infantry transport\nwhich can cloak. Can detect cloaked units.\n Strong vs Light armor\n Weak vs Infantry, Tanks, Aircraft
Selectable: SelectionDecorations:
Bounds: 28,28 VisualBounds: 26,26
Health: Health:
HP: 300 HP: 300
Armor: Armor:

View File

@@ -806,6 +806,8 @@ snowhut:
Tick: 120 Tick: 120
lhus: lhus:
Defaults:
Offset: 0,-16
idle: idle:
Length: 16 Length: 16
Tick: 180 Tick: 180
@@ -815,6 +817,8 @@ lhus:
Length: 8 Length: 8
windmill: windmill:
Defaults:
Offset: 0,-16
idle: idle:
Length: 8 Length: 8
Tick: 80 Tick: 80

View File

@@ -95,6 +95,8 @@ ORCA:
RenderVoxels: RenderVoxels:
WithVoxelBody: WithVoxelBody:
Hovers: Hovers:
SelectionDecorations:
VisualBounds: 30,24
ORCAB: ORCAB:
Inherits: ^Plane Inherits: ^Plane
@@ -136,6 +138,8 @@ ORCAB:
RenderVoxels: RenderVoxels:
WithVoxelBody: WithVoxelBody:
Hovers: Hovers:
SelectionDecorations:
VisualBounds: 30,24
ORCATRAN: ORCATRAN:
Inherits: ^Helicopter Inherits: ^Helicopter
@@ -230,6 +234,8 @@ SCRIN:
RenderSprites: RenderSprites:
RenderVoxels: RenderVoxels:
WithVoxelBody: WithVoxelBody:
SelectionDecorations:
VisualBounds: 30,24
APACHE: APACHE:
Inherits: ^Helicopter Inherits: ^Helicopter
@@ -270,3 +276,6 @@ APACHE:
RenderVoxels: RenderVoxels:
WithVoxelBody: WithVoxelBody:
Hovers: Hovers:
SelectionDecorations:
VisualBounds: 30,24

View File

@@ -1302,7 +1302,7 @@ GASPOT:
Footprint: x Footprint: x
Dimensions: 1, 1 Dimensions: 1, 1
Selectable: Selectable:
Bounds: 48, 82, 0, -25 Bounds: 48, 30, 0, -4
Power: Power:
Amount: -10 Amount: -10
Armor: Armor:
@@ -1313,6 +1313,8 @@ GASPOT:
Range: 6c0 Range: 6c0
WithIdleOverlay@LIGHTS: WithIdleOverlay@LIGHTS:
Sequence: idle-lights Sequence: idle-lights
SelectionDecorations:
VisualBounds: 48, 82, 0, -25
GALITE: GALITE:
Inherits: ^Building Inherits: ^Building
@@ -1336,10 +1338,12 @@ GALITE:
Sequence: lighting Sequence: lighting
Palette: alpha Palette: alpha
Selectable: Selectable:
Bounds: 25, 35, 0, -12 Bounds: 24, 24, 0, -4
Buildable: Buildable:
Queue: Defense Queue: Defense
Prerequisites: ~disabled Prerequisites: ~disabled
SelectionDecorations:
VisualBounds: 25, 35, 0, -12
GAICBM: GAICBM:
Inherits: ^Building Inherits: ^Building
@@ -1410,3 +1414,6 @@ UFO:
Type: Heavy Type: Heavy
EditorTilesetFilter: EditorTilesetFilter:
RequireTilesets: TEMPERAT RequireTilesets: TEMPERAT
SelectionDecorations:
VisualBounds: 144, 72, 0, 0

View File

@@ -136,9 +136,8 @@
Palette: terrain Palette: terrain
WithCrateBody: WithCrateBody:
Images: crate Images: crate
Selectable: CustomSelectionSize:
Selectable: false CustomBounds: 24,24
Bounds: 25,25,-1,-1
^Wall: ^Wall:
AppearsOnRadar: AppearsOnRadar:
@@ -279,8 +278,6 @@
^CivilianInfantry: ^CivilianInfantry:
Inherits: ^Infantry Inherits: ^Infantry
Selectable:
Bounds: 12,17,0,-9
Voiced: Voiced:
VoiceSet: Civilian VoiceSet: Civilian
Valued: Valued:

View File

@@ -25,7 +25,7 @@ GAPOWR:
WithIdleOverlay@PLUG: WithIdleOverlay@PLUG:
Sequence: idle-plug Sequence: idle-plug
Selectable: Selectable:
Bounds: 90, 84, 0, -12 Bounds: 90, 48, 0, -6
Power: Power:
Amount: 100 Amount: 100
InfiltrateForPowerOutage: InfiltrateForPowerOutage:
@@ -59,6 +59,8 @@ GAPOWR:
UpgradeMinEnabledLevel: 1 UpgradeMinEnabledLevel: 1
Amount: 50 Amount: 50
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 90, 84, 0, -12
GAPILE: GAPILE:
Inherits: ^Building Inherits: ^Building
@@ -77,7 +79,7 @@ GAPILE:
Footprint: xx xx Footprint: xx xx
Dimensions: 2,2 Dimensions: 2,2
Selectable: Selectable:
Bounds: 88, 56, 0, -8 Bounds: 88, 48, 0, -8
Health: Health:
HP: 800 HP: 800
Armor: Armor:
@@ -102,6 +104,8 @@ GAPILE:
Power: Power:
Amount: -20 Amount: -20
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 88, 56, 0, -8
GAWEAP: GAWEAP:
Inherits: ^Building Inherits: ^Building
@@ -120,7 +124,7 @@ GAWEAP:
Footprint: xxx= xxx= xxx= Footprint: xxx= xxx= xxx=
Dimensions: 4,3 Dimensions: 4,3
Selectable: Selectable:
Bounds: 154, 100, -2, -12 Bounds: 154, 96, -2, -12
Health: Health:
HP: 1000 HP: 1000
RevealsShroud: RevealsShroud:
@@ -149,6 +153,8 @@ GAWEAP:
Power: Power:
Amount: -30 Amount: -30
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 154, 100, -2, -12
GAHPAD: GAHPAD:
Inherits: ^Building Inherits: ^Building
@@ -189,6 +195,8 @@ GAHPAD:
Selectable: Selectable:
Bounds: 88, 66, 0, -5 Bounds: 88, 66, 0, -5
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 88, 66, 0, -5
GADEPT: GADEPT:
Inherits: ^Building Inherits: ^Building
@@ -205,7 +213,7 @@ GADEPT:
Footprint: =x= xxx =x= Footprint: =x= xxx =x=
Dimensions: 3,3 Dimensions: 3,3
Selectable: Selectable:
Bounds: 98, 68, -6, -6 Bounds: 96, 64, -6, -6
Health: Health:
HP: 1100 HP: 1100
RevealsShroud: RevealsShroud:
@@ -229,6 +237,8 @@ GADEPT:
Power: Power:
Amount: -30 Amount: -30
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 98, 68, -6, -6
GARADR: GARADR:
Inherits: ^Building Inherits: ^Building
@@ -247,7 +257,7 @@ GARADR:
Footprint: xx xx Footprint: xx xx
Dimensions: 2,2 Dimensions: 2,2
Selectable: Selectable:
Bounds: 96, 118, 0, -38 Bounds: 96, 48, 0, -6
Health: Health:
HP: 800 HP: 800
Armor: Armor:
@@ -270,6 +280,8 @@ GARADR:
Power: Power:
Amount: -50 Amount: -50
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 96, 118, 0, -38
GATECH: GATECH:
Inherits: ^Building Inherits: ^Building
@@ -300,6 +312,8 @@ GATECH:
Power: Power:
Amount: -150 Amount: -150
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 110, 60, 3, -4
GAPLUG: GAPLUG:
Inherits: ^Building Inherits: ^Building
@@ -309,7 +323,7 @@ GAPLUG:
Name: GDI Upgrade Center Name: GDI Upgrade Center
Description: Can be upgraded for additional technology. Description: Can be upgraded for additional technology.
Selectable: Selectable:
Bounds: 115,104,0,-24 Bounds: 115,72,0,-12
Buildable: Buildable:
BuildPaletteOrder: 100 BuildPaletteOrder: 100
Prerequisites: proc, gatech Prerequisites: proc, gatech
@@ -373,3 +387,6 @@ GAPLUG:
UpgradeMinEnabledLevel: 1 UpgradeMinEnabledLevel: 1
Sequence: idle-ioncannonb Sequence: idle-ioncannonb
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 115,104,0,-24

View File

@@ -36,7 +36,7 @@ GACTWR:
Prerequisites: gapile, ~structures.gdi Prerequisites: gapile, ~structures.gdi
Building: Building:
Selectable: Selectable:
Bounds: 48, 48, 0, -12 Bounds: 48, 36, 0, -6
DisabledOverlay: DisabledOverlay:
-GivesBuildableArea: -GivesBuildableArea:
Health: Health:
@@ -128,6 +128,8 @@ GACTWR:
tower.rocket: tower, tower.rocket tower.rocket: tower, tower.rocket
tower.sam: tower, tower.sam tower.sam: tower, tower.sam
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 48, 48, 0, -12
GAVULC: GAVULC:
Inherits: ^BuildingPlug Inherits: ^BuildingPlug

View File

@@ -115,6 +115,8 @@ SMECH:
MoveSequence: run MoveSequence: run
Selectable: Selectable:
Bounds: 20, 32, 0, -8 Bounds: 20, 32, 0, -8
SelectionDecorations:
VisualBounds: 20, 32, 0, -8
MMCH: MMCH:
Inherits: ^Tank Inherits: ^Tank
@@ -154,6 +156,8 @@ MMCH:
AutoTarget: AutoTarget:
Selectable: Selectable:
Bounds: 30, 42, 0, -8 Bounds: 30, 42, 0, -8
SelectionDecorations:
VisualBounds: 30, 42, 0, -8
HMEC: HMEC:
Inherits: ^Tank Inherits: ^Tank

View File

@@ -56,6 +56,8 @@ CYBORG:
WithInfantryBody: WithInfantryBody:
IdleSequences: idle1,idle2 IdleSequences: idle1,idle2
WithPermanentInjury: WithPermanentInjury:
SelectionDecorations:
VisualBounds: 16,31,0,-10
CYC2: CYC2:
Inherits: ^Infantry Inherits: ^Infantry
@@ -92,6 +94,8 @@ CYC2:
WithInfantryBody: WithInfantryBody:
IdleSequences: idle1,idle2 IdleSequences: idle1,idle2
WithPermanentInjury: WithPermanentInjury:
SelectionDecorations:
VisualBounds: 16,32,-1,-12
MHIJACK: MHIJACK:
Inherits: ^Infantry Inherits: ^Infantry

View File

@@ -15,7 +15,7 @@ NAPOWR:
Footprint: xx xx Footprint: xx xx
Dimensions: 2,2 Dimensions: 2,2
Selectable: Selectable:
Bounds: 88, 80, 2, -12 Bounds: 88, 48, 2, -6
Health: Health:
HP: 750 HP: 750
Armor: Armor:
@@ -32,6 +32,8 @@ NAPOWR:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
ScalePowerWithHealth: ScalePowerWithHealth:
DisabledOverlay: DisabledOverlay:
SelectionDecorations:
VisualBounds: 88, 80, 2, -12
NAAPWR: NAAPWR:
Inherits: ^Building Inherits: ^Building
@@ -50,7 +52,7 @@ NAAPWR:
Footprint: xxx xxx Footprint: xxx xxx
Dimensions: 2,3 Dimensions: 2,3
Selectable: Selectable:
Bounds: 100, 74, 0, -12 Bounds: 100, 54, 0, -4
Health: Health:
HP: 900 HP: 900
Armor: Armor:
@@ -67,6 +69,8 @@ NAAPWR:
TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate TargetTypes: Ground, C4, DetonateAttack, SpyInfiltrate
ScalePowerWithHealth: ScalePowerWithHealth:
DisabledOverlay: DisabledOverlay:
SelectionDecorations:
VisualBounds: 100, 74, 0, -12
NAHAND: NAHAND:
Inherits: ^Building Inherits: ^Building
@@ -85,7 +89,7 @@ NAHAND:
Footprint: xxx xxx Footprint: xxx xxx
Dimensions: 3,2 Dimensions: 3,2
Selectable: Selectable:
Bounds: 116, 78, 3, -8 Bounds: 116, 60, 3, -6
Health: Health:
HP: 800 HP: 800
Armor: Armor:
@@ -108,6 +112,8 @@ NAHAND:
Power: Power:
Amount: -20 Amount: -20
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 116, 78, 3, -8
NAWEAP: NAWEAP:
Inherits: ^Building Inherits: ^Building
@@ -126,7 +132,7 @@ NAWEAP:
Footprint: xxx= xxx= xxx= Footprint: xxx= xxx= xxx=
Dimensions: 4,3 Dimensions: 4,3
Selectable: Selectable:
Bounds: 149, 116, -3, -20 Bounds: 149, 80, -3, -10
Health: Health:
HP: 1000 HP: 1000
RevealsShroud: RevealsShroud:
@@ -151,6 +157,8 @@ NAWEAP:
Power: Power:
Amount: -30 Amount: -30
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 149, 116, -3, -20
NAHPAD: NAHPAD:
Inherits: ^Building Inherits: ^Building
@@ -189,8 +197,10 @@ NAHPAD:
Power: Power:
Amount: -10 Amount: -10
Selectable: Selectable:
Bounds: 78, 54, 0, -8 Bounds: 78, 48, 0, -6
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 78, 54, 0, -8
NARADR: NARADR:
Inherits: ^Building Inherits: ^Building
@@ -209,7 +219,7 @@ NARADR:
Footprint: xx xx Footprint: xx xx
Dimensions: 2,2 Dimensions: 2,2
Selectable: Selectable:
Bounds: 96, 82, 0, -17 Bounds: 96, 48, 0, -6
Health: Health:
HP: 800 HP: 800
Armor: Armor:
@@ -232,6 +242,8 @@ NARADR:
Power: Power:
Amount: -50 Amount: -50
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 96, 72, 0, -12
NATECH: NATECH:
Inherits: ^Building Inherits: ^Building
@@ -250,7 +262,7 @@ NATECH:
Footprint: xx xx Footprint: xx xx
Dimensions: 2,2 Dimensions: 2,2
Selectable: Selectable:
Bounds: 86, 58, 0, -4 Bounds: 86, 48, 0, -4
Health: Health:
HP: 500 HP: 500
Armor: Armor:
@@ -262,6 +274,8 @@ NATECH:
Power: Power:
Amount: -150 Amount: -150
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 86, 58, 0, -4
NASTLH: NASTLH:
Inherits: ^Building Inherits: ^Building
@@ -301,4 +315,7 @@ NASTLH:
DisableSound: cloak5.aud DisableSound: cloak5.aud
AffectsParent: true AffectsParent: true
Selectable: Selectable:
Bounds: 106, 60, 8, -15 Bounds: 106, 48, 8, -6
SelectionDecorations:
VisualBounds: 106, 60, 8, -15

View File

@@ -36,7 +36,7 @@ NALASR:
BuildPaletteOrder: 50 BuildPaletteOrder: 50
Building: Building:
Selectable: Selectable:
Bounds: 40, 36, -8, -8 Bounds: 40, 30, -8, -6
RequiresPower: RequiresPower:
DisabledOverlay: DisabledOverlay:
-GivesBuildableArea: -GivesBuildableArea:
@@ -62,6 +62,8 @@ NALASR:
AutoTarget: AutoTarget:
Power: Power:
Amount: -40 Amount: -40
SelectionDecorations:
VisualBounds: 40, 36, -8, -8
NAOBEL: NAOBEL:
Inherits: ^Building Inherits: ^Building
@@ -78,7 +80,7 @@ NAOBEL:
Footprint: xx xx Footprint: xx xx
Dimensions: 2,2 Dimensions: 2,2
Selectable: Selectable:
Bounds: 88, 74, 0, -14 Bounds: 88, 42, 0, -6
RequiresPower: RequiresPower:
DisabledOverlay: DisabledOverlay:
-GivesBuildableArea: -GivesBuildableArea:
@@ -108,6 +110,8 @@ NAOBEL:
Sequence: idle-lights Sequence: idle-lights
Power: Power:
Amount: -150 Amount: -150
SelectionDecorations:
VisualBounds: 88, 72, 0, -12
NASAM: NASAM:
Inherits: ^Building Inherits: ^Building
@@ -122,7 +126,7 @@ NASAM:
BuildPaletteOrder: 60 BuildPaletteOrder: 60
Building: Building:
Selectable: Selectable:
Bounds: 40, 36, -3, -8 Bounds: 40, 30, -3, -8
RequiresPower: RequiresPower:
DisabledOverlay: DisabledOverlay:
-GivesBuildableArea: -GivesBuildableArea:
@@ -150,6 +154,8 @@ NASAM:
LocalOffset: 512,0,512 LocalOffset: 512,0,512
Power: Power:
Amount: -30 Amount: -30
SelectionDecorations:
VisualBounds: 40, 36, -3, -8
GATICK: GATICK:
Inherits: ^Building Inherits: ^Building
@@ -300,3 +306,6 @@ NAMISL:
DisplayRadarPing: True DisplayRadarPing: True
BeaconPoster: BeaconPoster:
CameraActor: camera CameraActor: camera
SelectionDecorations:
VisualBounds: 75,48

View File

@@ -42,13 +42,15 @@ GACNST:
Power: Power:
Amount: 0 Amount: 0
Selectable: Selectable:
Bounds: 144, 80, 0, -12 Bounds: 144, 60, 0, -6
ProvidesPrerequisite@gdi: ProvidesPrerequisite@gdi:
Race: gdi Race: gdi
Prerequisite: structures.gdi Prerequisite: structures.gdi
ProvidesPrerequisite@nod: ProvidesPrerequisite@nod:
Race: nod Race: nod
Prerequisite: structures.nod Prerequisite: structures.nod
SelectionDecorations:
VisualBounds: 144, 80, 0, -12
PROC: PROC:
Inherits: ^Building Inherits: ^Building
@@ -65,7 +67,7 @@ PROC:
Footprint: xxx= xx== xxx= Footprint: xxx= xx== xxx=
Dimensions: 4,3 Dimensions: 4,3
Selectable: Selectable:
Bounds: 134, 122, 0, -18 Bounds: 134, 96, 0, -12
Health: Health:
HP: 900 HP: 900
RevealsShroud: RevealsShroud:
@@ -94,6 +96,8 @@ PROC:
Power: Power:
Amount: -30 Amount: -30
ProvidesPrerequisite@buildingname: ProvidesPrerequisite@buildingname:
SelectionDecorations:
VisualBounds: 134, 122, 0, -18
GASILO: GASILO:
Inherits: ^Building Inherits: ^Building
@@ -129,6 +133,8 @@ GASILO:
Capacity: 1500 Capacity: 1500
Power: Power:
Amount: -10 Amount: -10
SelectionDecorations:
VisualBounds: 80, 48, -5, 0
ANYPOWER: ANYPOWER:
Tooltip: Tooltip:

View File

@@ -62,3 +62,6 @@ NAPULS:
Sequence: turret Sequence: turret
Power: Power:
Amount: -150 Amount: -150
SelectionDecorations:
VisualBounds: 78, 54, 0, -12

View File

@@ -33,6 +33,8 @@ MCV:
RenderSprites: RenderSprites:
RenderVoxels: RenderVoxels:
WithVoxelBody: WithVoxelBody:
SelectionDecorations:
VisualBounds: 42,42
HARV: HARV:
Inherits: ^Vehicle Inherits: ^Vehicle
@@ -84,6 +86,8 @@ HARV:
WithHarvestAnimation: WithHarvestAnimation:
Offset: 384,0,0 Offset: 384,0,0
Palette: effect Palette: effect
SelectionDecorations:
VisualBounds: 36,36
LPST: LPST:
Inherits: ^Vehicle Inherits: ^Vehicle