Merge pull request #3676 from Mailaender/native-r8s
Completely removed all conversion steps for Dune 2000
This commit is contained in:
4
Makefile
4
Makefile
@@ -152,8 +152,8 @@ mod_cnc: $(mod_cnc_TARGET)
|
||||
mod_d2k_SRCS := $(shell find OpenRA.Mods.D2k/ -iname '*.cs')
|
||||
mod_d2k_TARGET = mods/d2k/OpenRA.Mods.D2k.dll
|
||||
mod_d2k_KIND = library
|
||||
mod_d2k_DEPS = $(STD_MOD_DEPS) $(mod_ra_TARGET) $(mod_cnc_TARGET) $(utility_TARGET)
|
||||
mod_d2k_LIBS = $(COMMON_LIBS) $(STD_MOD_LIBS) $(mod_ra_TARGET) $(utility_TARGET)
|
||||
mod_d2k_DEPS = $(STD_MOD_DEPS) $(mod_ra_TARGET) $(mod_cnc_TARGET)
|
||||
mod_d2k_LIBS = $(COMMON_LIBS) $(STD_MOD_LIBS) $(mod_ra_TARGET)
|
||||
mod_d2k_EXTRA_CMDS = mono --debug RALint.exe d2k
|
||||
PROGRAMS += mod_d2k
|
||||
mod_d2k: $(mod_d2k_TARGET)
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace OpenRA.FileFormats
|
||||
foreach (var y in Nodes)
|
||||
{
|
||||
if (ret.ContainsKey(y.Key))
|
||||
throw new InvalidDataException("Duplicate key `{0}' in MiniYaml".F(y.Key));
|
||||
throw new InvalidDataException("Duplicate key `{0}' in {1}".F(y.Key, y.Location));
|
||||
ret.Add(y.Key, y.Value);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,16 +53,16 @@ namespace OpenRA
|
||||
public Group Group;
|
||||
public int Generation;
|
||||
|
||||
internal Actor(World world, string name, TypeDictionary initDict )
|
||||
internal Actor(World world, string name, TypeDictionary initDict)
|
||||
{
|
||||
var init = new ActorInitializer( this, initDict );
|
||||
var init = new ActorInitializer(this, initDict);
|
||||
|
||||
World = world;
|
||||
ActorID = world.NextAID();
|
||||
if( initDict.Contains<OwnerInit>() )
|
||||
if (initDict.Contains<OwnerInit>())
|
||||
Owner = init.Get<OwnerInit,Player>();
|
||||
|
||||
occupySpace = Lazy.New( () => TraitOrDefault<IOccupySpace>() );
|
||||
occupySpace = Lazy.New(() => TraitOrDefault<IOccupySpace>());
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
|
||||
@@ -38,17 +38,17 @@ namespace OpenRA.Graphics
|
||||
cursors = new Dictionary<string, CursorSequence>();
|
||||
palettes = new Cache<string, PaletteReference>(CreatePaletteReference);
|
||||
var sequences = new MiniYaml(null, sequenceFiles.Select(s => MiniYaml.FromFile(s)).Aggregate(MiniYaml.MergeLiberal));
|
||||
int[] ShadowIndex = { };
|
||||
var shadowIndex = new int[] { };
|
||||
|
||||
if (sequences.NodesDict.ContainsKey("ShadowIndex"))
|
||||
{
|
||||
Array.Resize(ref ShadowIndex, ShadowIndex.Length + 1);
|
||||
int.TryParse(sequences.NodesDict["ShadowIndex"].Value, out ShadowIndex[ShadowIndex.Length - 1]);
|
||||
Array.Resize(ref shadowIndex, shadowIndex.Length + 1);
|
||||
int.TryParse(sequences.NodesDict["ShadowIndex"].Value, out shadowIndex[shadowIndex.Length - 1]);
|
||||
}
|
||||
|
||||
palette = new HardwarePalette();
|
||||
foreach (var p in sequences.NodesDict["Palettes"].Nodes)
|
||||
palette.AddPalette(p.Key, new Palette(FileSystem.Open(p.Value.Value), ShadowIndex), false);
|
||||
palette.AddPalette(p.Key, new Palette(FileSystem.Open(p.Value.Value), shadowIndex), false);
|
||||
|
||||
foreach (var s in sequences.NodesDict["Cursors"].Nodes)
|
||||
LoadSequencesForCursor(s.Key, s.Value);
|
||||
@@ -76,7 +76,7 @@ namespace OpenRA.Graphics
|
||||
|
||||
renderer.SetPalette(palette);
|
||||
renderer.SpriteRenderer.DrawSprite(cursorSprite,
|
||||
lastMousePos - cursorSequence.Hotspot,
|
||||
lastMousePos - cursorSequence.Hotspot - (0.5f * cursorSprite.size).ToInt2(),
|
||||
palettes[cursorSequence.Palette],
|
||||
cursorSprite.size);
|
||||
}
|
||||
|
||||
@@ -44,9 +44,9 @@ namespace OpenRA.Graphics
|
||||
length = 1;
|
||||
|
||||
if (d.ContainsKey("x"))
|
||||
int.TryParse(d["x"].Value, out Hotspot.X );
|
||||
int.TryParse(d["x"].Value, out Hotspot.X);
|
||||
if (d.ContainsKey("y"))
|
||||
int.TryParse(d["y"].Value, out Hotspot.Y );
|
||||
int.TryParse(d["y"].Value, out Hotspot.Y);
|
||||
}
|
||||
|
||||
public Sprite GetSprite(int frame)
|
||||
|
||||
@@ -30,6 +30,7 @@ namespace OpenRA.Graphics
|
||||
public readonly int ZOffset;
|
||||
public readonly int ShadowStart;
|
||||
public readonly int ShadowZOffset;
|
||||
public readonly int[] Frames;
|
||||
|
||||
public Sequence(string unit, string name, MiniYaml info)
|
||||
{
|
||||
@@ -39,79 +40,90 @@ namespace OpenRA.Graphics
|
||||
var offset = float2.Zero;
|
||||
var blendMode = BlendMode.Alpha;
|
||||
|
||||
Start = int.Parse(d["Start"].Value);
|
||||
|
||||
if (d.ContainsKey("Offset"))
|
||||
offset = FieldLoader.GetValue<float2>("Offset", d["Offset"].Value);
|
||||
|
||||
if (d.ContainsKey("BlendMode"))
|
||||
blendMode = FieldLoader.GetValue<BlendMode>("BlendMode", d["BlendMode"].Value);
|
||||
|
||||
// Apply offset to each sprite in the sequence
|
||||
// Different sequences may apply different offsets to the same frame
|
||||
sprites = Game.modData.SpriteLoader.LoadAllSprites(srcOverride ?? unit).Select(
|
||||
s => new Sprite(s.sheet, s.bounds, s.offset + offset, s.channel, blendMode)).ToArray();
|
||||
|
||||
if (!d.ContainsKey("Length"))
|
||||
Length = 1;
|
||||
else if (d["Length"].Value == "*")
|
||||
Length = sprites.Length - Start;
|
||||
else
|
||||
Length = int.Parse(d["Length"].Value);
|
||||
|
||||
if (d.ContainsKey("Stride"))
|
||||
Stride = int.Parse(d["Stride"].Value);
|
||||
else
|
||||
Stride = Length;
|
||||
|
||||
if (d.ContainsKey("Facings"))
|
||||
try
|
||||
{
|
||||
var f = int.Parse(d["Facings"].Value);
|
||||
Facings = Math.Abs(f);
|
||||
reverseFacings = f < 0;
|
||||
if (d.ContainsKey("Start"))
|
||||
Start = int.Parse(d["Start"].Value);
|
||||
|
||||
if (d.ContainsKey("Offset"))
|
||||
offset = FieldLoader.GetValue<float2>("Offset", d["Offset"].Value);
|
||||
|
||||
if (d.ContainsKey("BlendMode"))
|
||||
blendMode = FieldLoader.GetValue<BlendMode>("BlendMode", d["BlendMode"].Value);
|
||||
|
||||
// Apply offset to each sprite in the sequence
|
||||
// Different sequences may apply different offsets to the same frame
|
||||
sprites = Game.modData.SpriteLoader.LoadAllSprites(srcOverride ?? unit).Select(
|
||||
s => new Sprite(s.sheet, s.bounds, s.offset + offset, s.channel, blendMode)).ToArray();
|
||||
|
||||
if (!d.ContainsKey("Length"))
|
||||
Length = 1;
|
||||
else if (d["Length"].Value == "*")
|
||||
Length = sprites.Length - Start;
|
||||
else
|
||||
Length = int.Parse(d["Length"].Value);
|
||||
|
||||
if (d.ContainsKey("Stride"))
|
||||
Stride = int.Parse(d["Stride"].Value);
|
||||
else
|
||||
Stride = Length;
|
||||
|
||||
if (d.ContainsKey("Facings"))
|
||||
{
|
||||
var f = int.Parse(d["Facings"].Value);
|
||||
Facings = Math.Abs(f);
|
||||
reverseFacings = f < 0;
|
||||
}
|
||||
else
|
||||
Facings = 1;
|
||||
|
||||
if (d.ContainsKey("Tick"))
|
||||
Tick = int.Parse(d["Tick"].Value);
|
||||
else
|
||||
Tick = 40;
|
||||
|
||||
if (d.ContainsKey("Transpose"))
|
||||
transpose = bool.Parse(d["Transpose"].Value);
|
||||
|
||||
if (d.ContainsKey("Frames"))
|
||||
Frames = Array.ConvertAll<string, int>(d["Frames"].Value.Split(','), int.Parse);
|
||||
|
||||
if (d.ContainsKey("ShadowStart"))
|
||||
ShadowStart = int.Parse(d["ShadowStart"].Value);
|
||||
else
|
||||
ShadowStart = -1;
|
||||
|
||||
if (d.ContainsKey("ShadowZOffset"))
|
||||
{
|
||||
WRange r;
|
||||
if (WRange.TryParse(d["ShadowZOffset"].Value, out r))
|
||||
ShadowZOffset = r.Range;
|
||||
}
|
||||
else
|
||||
ShadowZOffset = -5;
|
||||
|
||||
if (d.ContainsKey("ZOffset"))
|
||||
{
|
||||
WRange r;
|
||||
if (WRange.TryParse(d["ZOffset"].Value, out r))
|
||||
ZOffset = r.Range;
|
||||
}
|
||||
|
||||
if (Length > Stride)
|
||||
throw new InvalidOperationException(
|
||||
"{0}: Sequence {1}.{2}: Length must be <= stride"
|
||||
.F(info.Nodes[0].Location, unit, name));
|
||||
|
||||
if (Start < 0 || Start + Facings * Stride > sprites.Length || ShadowStart + Facings * Stride > sprites.Length)
|
||||
throw new InvalidOperationException(
|
||||
"{6}: Sequence {0}.{1} uses frames [{2}..{3}] of SHP `{4}`, but only 0..{5} actually exist"
|
||||
.F(unit, name, Start, Start + Facings * Stride - 1, srcOverride ?? unit, sprites.Length - 1,
|
||||
info.Nodes[0].Location));
|
||||
}
|
||||
else
|
||||
Facings = 1;
|
||||
|
||||
if (d.ContainsKey("Tick"))
|
||||
Tick = int.Parse(d["Tick"].Value);
|
||||
else
|
||||
Tick = 40;
|
||||
|
||||
if (d.ContainsKey("Transpose"))
|
||||
transpose = bool.Parse(d["Transpose"].Value);
|
||||
|
||||
if (d.ContainsKey("ShadowStart"))
|
||||
ShadowStart = int.Parse(d["ShadowStart"].Value);
|
||||
else
|
||||
ShadowStart = -1;
|
||||
|
||||
if (d.ContainsKey("ShadowZOffset"))
|
||||
catch (FormatException f)
|
||||
{
|
||||
WRange r;
|
||||
if (WRange.TryParse(d["ShadowZOffset"].Value, out r))
|
||||
ShadowZOffset = r.Range;
|
||||
throw new FormatException("Failed to parse sequences for {0}.{1} at {2}:\n{3}".F(unit, name, info.Nodes[0].Location, f));
|
||||
}
|
||||
else
|
||||
ShadowZOffset = -5;
|
||||
|
||||
if (d.ContainsKey("ZOffset"))
|
||||
{
|
||||
WRange r;
|
||||
if (WRange.TryParse(d["ZOffset"].Value, out r))
|
||||
ZOffset = r.Range;
|
||||
}
|
||||
|
||||
if (Length > Stride)
|
||||
throw new InvalidOperationException(
|
||||
"{0}: Sequence {1}.{2}: Length must be <= stride"
|
||||
.F(info.Nodes[0].Location, unit, name));
|
||||
|
||||
if (Start < 0 || Start + Facings * Stride > sprites.Length || ShadowStart + Facings * Stride > sprites.Length)
|
||||
throw new InvalidOperationException(
|
||||
"{6}: Sequence {0}.{1} uses frames [{2}..{3}] of SHP `{4}`, but only 0..{5} actually exist"
|
||||
.F(unit, name, Start, Start + Facings * Stride - 1, srcOverride ?? unit, sprites.Length - 1,
|
||||
info.Nodes[0].Location));
|
||||
}
|
||||
|
||||
public Sprite GetSprite(int frame)
|
||||
@@ -136,9 +148,12 @@ namespace OpenRA.Graphics
|
||||
if (reverseFacings)
|
||||
f = (Facings - f) % Facings;
|
||||
|
||||
int i = transpose ? (frame % Length) * Facings + f :
|
||||
var i = transpose ? (frame % Length) * Facings + f :
|
||||
(f * Stride) + (frame % Length);
|
||||
|
||||
if (Frames != null)
|
||||
return sprites[Frames[i]];
|
||||
|
||||
return sprites[start + i];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,15 +20,15 @@ namespace OpenRA
|
||||
{
|
||||
Dictionary<string, MiniYamlNode> widgets = new Dictionary<string, MiniYamlNode>();
|
||||
|
||||
public WidgetLoader( ModData modData )
|
||||
public WidgetLoader(ModData modData)
|
||||
{
|
||||
foreach( var file in modData.Manifest.ChromeLayout.Select( a => MiniYaml.FromFile( a ) ) )
|
||||
foreach (var file in modData.Manifest.ChromeLayout.Select(a => MiniYaml.FromFile(a)))
|
||||
foreach( var w in file )
|
||||
{
|
||||
var key = w.Key.Substring( w.Key.IndexOf( '@' ) + 1 );
|
||||
var key = w.Key.Substring( w.Key.IndexOf('@') + 1);
|
||||
if (widgets.ContainsKey(key))
|
||||
throw new InvalidDataException("Widget has duplicate Key `{0}`".F(w.Key));
|
||||
widgets.Add( key, w );
|
||||
throw new InvalidDataException("Widget has duplicate Key `{0}` at {1}".F(w.Key, w.Location));
|
||||
widgets.Add(key, w);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ using OpenRA.Graphics;
|
||||
using OpenRA.Mods.RA;
|
||||
using OpenRA.Mods.RA.Buildings;
|
||||
using OpenRA.Mods.RA.Orders;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.Cnc.Widgets
|
||||
@@ -53,7 +54,6 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
|
||||
public override Rectangle EventBounds { get { return eventBounds; } }
|
||||
Dictionary<Rectangle, ProductionIcon> icons = new Dictionary<Rectangle, ProductionIcon>();
|
||||
Dictionary<string, Sprite> iconSprites;
|
||||
Animation cantBuild, clock;
|
||||
Rectangle eventBounds = Rectangle.Empty;
|
||||
readonly WorldRenderer worldRenderer;
|
||||
@@ -71,13 +71,6 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
cantBuild = new Animation("clock");
|
||||
cantBuild.PlayFetchIndex("idle", () => 0);
|
||||
clock = new Animation("clock");
|
||||
|
||||
iconSprites = Rules.Info.Values
|
||||
.Where(u => u.Traits.Contains<BuildableInfo>() && u.Name[0] != '^')
|
||||
.ToDictionary(
|
||||
u => u.Name,
|
||||
u => Game.modData.SpriteLoader.LoadAllSprites(
|
||||
u.Traits.Get<TooltipInfo>().Icon ?? (u.Name + "icon"))[0]);
|
||||
}
|
||||
|
||||
public override void Tick()
|
||||
@@ -186,10 +179,12 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
var x = i % Columns;
|
||||
var y = i / Columns;
|
||||
var rect = new Rectangle(rb.X + x * 64 + 1, rb.Y + y * 48 + 1, 64, 48);
|
||||
var icon = new Animation(RenderSimple.GetImage(item));
|
||||
icon.Play(item.Traits.Get<TooltipInfo>().Icon);
|
||||
var pi = new ProductionIcon()
|
||||
{
|
||||
Name = item.Name,
|
||||
Sprite = iconSprites[item.Name],
|
||||
Sprite = icon.Image,
|
||||
Pos = new float2(rect.Location),
|
||||
Queued = CurrentQueue.AllQueued().Where(a => a.Item == item.Name).ToList(),
|
||||
};
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
readonly WorldRenderer worldRenderer;
|
||||
readonly SupportPowerManager spm;
|
||||
|
||||
Dictionary<string, Sprite> iconSprites;
|
||||
Animation icon;
|
||||
Animation clock;
|
||||
Dictionary<Rectangle, SupportPowerIcon> icons = new Dictionary<Rectangle, SupportPowerIcon>();
|
||||
|
||||
@@ -52,12 +52,7 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
tooltipContainer = Lazy.New(() =>
|
||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||
|
||||
iconSprites = Rules.Info.Values.SelectMany(u => u.Traits.WithInterface<SupportPowerInfo>())
|
||||
.Select(u => u.Image).Distinct()
|
||||
.ToDictionary(
|
||||
u => u,
|
||||
u => Game.modData.SpriteLoader.LoadAllSprites(u)[0]);
|
||||
|
||||
icon = new Animation("icon");
|
||||
clock = new Animation("clock");
|
||||
}
|
||||
|
||||
@@ -78,11 +73,12 @@ namespace OpenRA.Mods.Cnc.Widgets
|
||||
foreach (var p in powers)
|
||||
{
|
||||
var rect = new Rectangle(rb.X + 1, rb.Y + i * (48 + Spacing) + 1, 64, 48);
|
||||
icon.Play(p.Info.Icon);
|
||||
var power = new SupportPowerIcon()
|
||||
{
|
||||
Power = p,
|
||||
Pos = new float2(rect.Location),
|
||||
Sprite = iconSprites[p.Info.Image]
|
||||
Sprite = icon.Image
|
||||
};
|
||||
|
||||
icons.Add(rect, power);
|
||||
|
||||
@@ -79,10 +79,10 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="D2kLoadScreen.cs" />
|
||||
<Compile Include="Widgets\Logic\D2kInstallLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\D2kExtractGameFilesLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\D2kInstallFromCDLogic.cs" />
|
||||
<Compile Include="Widgets\Logic\D2kDownloadPackagesLogic.cs" />
|
||||
<Compile Include="BuildingCaptureNotification.cs" />
|
||||
<Compile Include="Render\WithCrumbleOverlay.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
@@ -91,10 +91,6 @@ copy "$(TargetPath)" "$(SolutionDir)mods/d2k/"
|
||||
cd "$(SolutionDir)"</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\OpenRA.Utility\OpenRA.Utility.csproj">
|
||||
<Project>{F33337BE-CB69-4B24-850F-07D23E408DDF}</Project>
|
||||
<Name>OpenRA.Utility</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OpenRA.Game\OpenRA.Game.csproj">
|
||||
<Project>{0DFB103F-2962-400F-8C6D-E2C28CCBA633}</Project>
|
||||
<Name>OpenRA.Game</Name>
|
||||
@@ -103,10 +99,6 @@ cd "$(SolutionDir)"</PostBuildEvent>
|
||||
<Project>{BDAEAB25-991E-46A7-AF1E-4F0E03358DAA}</Project>
|
||||
<Name>OpenRA.FileFormats</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OpenRA.TilesetBuilder\OpenRA.TilesetBuilder.csproj">
|
||||
<Project>{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}</Project>
|
||||
<Name>OpenRA.TilesetBuilder</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OpenRA.Mods.RA\OpenRA.Mods.RA.csproj">
|
||||
<Project>{4A8A43B5-A9EF-4ED0-99DD-4BAB10A0DB6E}</Project>
|
||||
<Name>OpenRA.Mods.RA</Name>
|
||||
@@ -129,4 +121,7 @@ cd "$(SolutionDir)"</PostBuildEvent>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Render\" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
46
OpenRA.Mods.D2k/Render/WithCrumbleOverlay.cs
Normal file
46
OpenRA.Mods.D2k/Render/WithCrumbleOverlay.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2013 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 OpenRA.FileFormats;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Mods.RA.Buildings;
|
||||
|
||||
namespace OpenRA.Mods.RA.Render
|
||||
{
|
||||
public class WithCrumbleOverlayInfo : ITraitInfo, Requires<RenderSpritesInfo>
|
||||
{
|
||||
[Desc("Sequence name to use")]
|
||||
public readonly string Sequence = "crumble-overlay";
|
||||
|
||||
public object Create(ActorInitializer init) { return new WithCrumbleOverlay(init.self, this); }
|
||||
}
|
||||
|
||||
public class WithCrumbleOverlay : INotifyBuildComplete
|
||||
{
|
||||
Animation overlay;
|
||||
bool buildComplete = false;
|
||||
|
||||
public WithCrumbleOverlay(Actor self, WithCrumbleOverlayInfo info)
|
||||
{
|
||||
var rs = self.Trait<RenderSprites>();
|
||||
|
||||
overlay = new Animation(rs.GetImage(self));
|
||||
overlay.PlayThen(info.Sequence, () => buildComplete = false);
|
||||
rs.anims.Add("make_overlay_{0}".F(info.Sequence),
|
||||
new AnimationWithOffset(overlay, null, () => !buildComplete, null));
|
||||
}
|
||||
|
||||
public void BuildingComplete(Actor self)
|
||||
{
|
||||
buildComplete = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,769 +0,0 @@
|
||||
#region Copyright & License Information
|
||||
/*
|
||||
* Copyright 2007-2012 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.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using OpenRA.FileFormats;
|
||||
using OpenRA.FileFormats.Graphics;
|
||||
using OpenRA.Utility;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.D2k.Widgets.Logic
|
||||
{
|
||||
public class D2kExtractGameFilesLogic
|
||||
{
|
||||
Widget panel;
|
||||
ProgressBarWidget progressBar;
|
||||
LabelWidget statusLabel;
|
||||
Action continueLoading;
|
||||
ButtonWidget retryButton, backButton;
|
||||
Widget extractingContainer, copyFilesContainer;
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
public D2kExtractGameFilesLogic(Widget widget, Action continueLoading)
|
||||
{
|
||||
panel = widget.Get("EXTRACT_GAMEFILES_PANEL");
|
||||
progressBar = panel.Get<ProgressBarWidget>("PROGRESS_BAR");
|
||||
statusLabel = panel.Get<LabelWidget>("STATUS_LABEL");
|
||||
|
||||
backButton = panel.Get<ButtonWidget>("BACK_BUTTON");
|
||||
backButton.OnClick = Ui.CloseWindow;
|
||||
|
||||
retryButton = panel.Get<ButtonWidget>("RETRY_BUTTON");
|
||||
retryButton.OnClick = Extract;
|
||||
|
||||
extractingContainer = panel.Get("EXTRACTING");
|
||||
copyFilesContainer = panel.Get("COPY_FILES");
|
||||
|
||||
Extract();
|
||||
this.continueLoading = continueLoading;
|
||||
}
|
||||
|
||||
void Extract()
|
||||
{
|
||||
backButton.IsDisabled = () => true;
|
||||
retryButton.IsDisabled = () => true;
|
||||
copyFilesContainer.IsVisible = () => false;
|
||||
extractingContainer.IsVisible = () => true;
|
||||
|
||||
var pathToDataR8 = Path.Combine(Platform.SupportDir, "Content/d2k/DATA.R8");
|
||||
var pathToPalette = "mods/d2k/bits/d2k.pal";
|
||||
var pathToSHPs = Path.Combine(Platform.SupportDir, "Content/d2k/SHPs");
|
||||
var pathToTilesets = Path.Combine(Platform.SupportDir, "Content/d2k/Tilesets");
|
||||
|
||||
var extractGameFiles = new string[][]
|
||||
{
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "0", "2", Path.Combine(pathToSHPs, "overlay") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3", "3", Path.Combine(pathToSHPs, "repairing") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4", "4", Path.Combine(pathToSHPs, "black") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "5", "8", Path.Combine(pathToSHPs, "selectionedges") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "9", "9", Path.Combine(pathToSHPs, "bar1") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "10", "10", Path.Combine(pathToSHPs, "bar2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "11", "11", Path.Combine(pathToSHPs, "bar3") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "12", "12", Path.Combine(pathToSHPs, "bar4") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "13", "13", Path.Combine(pathToSHPs, "bar5") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "14", "14", Path.Combine(pathToSHPs, "bar6") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "15", "16", Path.Combine(pathToSHPs, "dots") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "17", "26", Path.Combine(pathToSHPs, "numbers") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "27", "37", Path.Combine(pathToSHPs, "credits") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "40", "101", Path.Combine(pathToSHPs, "d2kshadow") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "102", "105", Path.Combine(pathToSHPs, "crates") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "107", "109", Path.Combine(pathToSHPs, "spicebloom") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "110", "111", Path.Combine(pathToSHPs, "stars") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "112", "113", Path.Combine(pathToSHPs, "greenuparrow") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "114", "129", Path.Combine(pathToSHPs, "rockcrater1") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "130", "145", Path.Combine(pathToSHPs, "rockcrater2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "146", "161", Path.Combine(pathToSHPs, "sandcrater1") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "162", "177", Path.Combine(pathToSHPs, "sandcrater2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "178", "193", Path.Combine(pathToSHPs, "unknown") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "194", "205", Path.Combine(pathToSHPs, "unknown2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "206", "381", Path.Combine(pathToSHPs, "rifle"), "--infantry" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "382", "457", Path.Combine(pathToSHPs, "rifledeath"), "--infantrydeath" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "458", "633", Path.Combine(pathToSHPs, "bazooka"), "--infantry" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "634", "693", Path.Combine(pathToSHPs, "bazookadeath"), "--infantrydeath" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "694", "869", Path.Combine(pathToSHPs, "fremen"), "--infantry" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "870", "929", Path.Combine(pathToSHPs, "fremendeath"), "--infantrydeath" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "930", "1105", Path.Combine(pathToSHPs, "sardaukar"), "--infantry" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1106", "1165", Path.Combine(pathToSHPs, "sardaukardeath"), "--infantrydeath" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1166", "1341", Path.Combine(pathToSHPs, "engineer"), "--infantry" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1342", "1401", Path.Combine(pathToSHPs, "engineerdeath"), "--infantrydeath" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1402", "1457", Path.Combine(pathToSHPs, "thumper"), "--infantry" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1458", "1462", Path.Combine(pathToSHPs, "thumping"), "--infantrydeath" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1463", "1542", Path.Combine(pathToSHPs, "thumper2"), "--infantry" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1543", "1602", Path.Combine(pathToSHPs, "thumperdeath"), "--infantrydeath" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1603", "1634", Path.Combine(pathToSHPs, "missiletank"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1635", "1666", Path.Combine(pathToSHPs, "trike"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1667", "1698", Path.Combine(pathToSHPs, "quad"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1699", "1730", Path.Combine(pathToSHPs, "harvester"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1731", "1762", Path.Combine(pathToSHPs, "combata"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1763", "1794", Path.Combine(pathToSHPs, "siegetank"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1795", "1826", Path.Combine(pathToSHPs, "dmcv"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1827", "1858", Path.Combine(pathToSHPs, "sonictank"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1859", "1890", Path.Combine(pathToSHPs, "combataturret"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1891", "1922", Path.Combine(pathToSHPs, "siegeturret"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1923", "1954", Path.Combine(pathToSHPs, "carryall"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "1955", "2050", Path.Combine(pathToSHPs, "orni"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2051", "2082", Path.Combine(pathToSHPs, "combath"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2083", "2114", Path.Combine(pathToSHPs, "devast"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2115", "2146", Path.Combine(pathToSHPs, "combathturret"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2147", "2148", Path.Combine(pathToSHPs, "deathhandmissile") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2149", "2324", Path.Combine(pathToSHPs, "saboteur"), "--infantry" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2325", "2388", Path.Combine(pathToSHPs, "saboteurdeath"), "--infantrydeath" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2389", "2420", Path.Combine(pathToSHPs, "deviatortank"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2421", "2452", Path.Combine(pathToSHPs, "raider"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2453", "2484", Path.Combine(pathToSHPs, "combato"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2485", "2516", Path.Combine(pathToSHPs, "combatoturret"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2517", "2517", Path.Combine(pathToSHPs, "frigate"), "--vehicle" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2518", "2520", Path.Combine(pathToSHPs, "heavya"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2521", "2522", Path.Combine(pathToSHPs, "radara"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2523", "2524", Path.Combine(pathToSHPs, "pwra"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2525", "2526", Path.Combine(pathToSHPs, "barra"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2527", "2558", Path.Combine(pathToSHPs, "walla"), "--wall" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2559", "2560", Path.Combine(pathToSHPs, "conyarda"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2561", "2563", Path.Combine(pathToSHPs, "refa"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2564", "2565", Path.Combine(pathToSHPs, "hightecha"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2566", "2570", Path.Combine(pathToSHPs, "siloa"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2571", "2572", Path.Combine(pathToSHPs, "repaira"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2573", "2588", Path.Combine(pathToSHPs, "guntowera"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2589", "2620", Path.Combine(pathToSHPs, "gunturreta"), "--turret" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2621", "2636", Path.Combine(pathToSHPs, "rockettowera"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2637", "2668", Path.Combine(pathToSHPs, "rocketturreta"), "--turret" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2669", "2670", Path.Combine(pathToSHPs, "researcha"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2671", "2672", Path.Combine(pathToSHPs, "starporta"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2673", "2675", Path.Combine(pathToSHPs, "lighta"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2676", "2677", Path.Combine(pathToSHPs, "palacea"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2678", "2680", Path.Combine(pathToSHPs, "heavyh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2681", "2682", Path.Combine(pathToSHPs, "radarh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2683", "2684", Path.Combine(pathToSHPs, "pwrh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2685", "2686", Path.Combine(pathToSHPs, "barrh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2687", "2718", Path.Combine(pathToSHPs, "wallh"), "--wall" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2719", "2720", Path.Combine(pathToSHPs, "conyardh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2721", "2723", Path.Combine(pathToSHPs, "refh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2724", "2725", Path.Combine(pathToSHPs, "hightechh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2726", "2730", Path.Combine(pathToSHPs, "siloh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2731", "2732", Path.Combine(pathToSHPs, "repairh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2733", "2748", Path.Combine(pathToSHPs, "guntowerh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2749", "2780", Path.Combine(pathToSHPs, "gunturreth"), "--turret" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2781", "2796", Path.Combine(pathToSHPs, "rockettowerh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2797", "2828", Path.Combine(pathToSHPs, "rocketturreth"), "--turret" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2829", "2830", Path.Combine(pathToSHPs, "researchh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2831", "2832", Path.Combine(pathToSHPs, "starporth"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2833", "2835", Path.Combine(pathToSHPs, "lighth"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2836", "2837", Path.Combine(pathToSHPs, "palaceh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2838", "2840", Path.Combine(pathToSHPs, "heavyo"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2841", "2842", Path.Combine(pathToSHPs, "radaro"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2843", "2844", Path.Combine(pathToSHPs, "pwro"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2845", "2846", Path.Combine(pathToSHPs, "barro"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2847", "2878", Path.Combine(pathToSHPs, "wallo"), "--wall" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2879", "2880", Path.Combine(pathToSHPs, "conyardo"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2881", "2883", Path.Combine(pathToSHPs, "refo"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2884", "2885", Path.Combine(pathToSHPs, "hightecho"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2886", "2890", Path.Combine(pathToSHPs, "siloo"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2891", "2892", Path.Combine(pathToSHPs, "repairo"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2893", "2908", Path.Combine(pathToSHPs, "guntowero"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2909", "2940", Path.Combine(pathToSHPs, "gunturreto"), "--turret" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2941", "2956", Path.Combine(pathToSHPs, "rockettowero"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2957", "2988", Path.Combine(pathToSHPs, "rocketturreto"), "--turret" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2989", "2990", Path.Combine(pathToSHPs, "researcho"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2991", "2992", Path.Combine(pathToSHPs, "starporto"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2993", "2995", Path.Combine(pathToSHPs, "lighto"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2996", "2997", Path.Combine(pathToSHPs, "palaceo"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2998", "2998", Path.Combine(pathToSHPs, "sietch"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "2999", "3000", Path.Combine(pathToSHPs, "starportc"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3001", "3003", Path.Combine(pathToSHPs, "heavyc"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3004", "3005", Path.Combine(pathToSHPs, "palacec"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3006", "3007", Path.Combine(pathToSHPs, "conyardh2"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3008", "3013", Path.Combine(pathToSHPs, "plates") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3014", "3014", Path.Combine(pathToSHPs, "unknown3"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3015", "3078", Path.Combine(pathToSHPs, "rpg"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3079", "3087", Path.Combine(pathToSHPs, "unknown4"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3088", "3247", Path.Combine(pathToSHPs, "missile"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3248", "3279", Path.Combine(pathToSHPs, "doubleblast"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3280", "3283", Path.Combine(pathToSHPs, "bombs"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3284", "3287", Path.Combine(pathToSHPs, "unknown6"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3288", "3289", Path.Combine(pathToSHPs, "unknown7"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3290", "3303", Path.Combine(pathToSHPs, "unknown8"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3304", "3305", Path.Combine(pathToSHPs, "unknown9"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3306", "3369", Path.Combine(pathToSHPs, "missile2"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3370", "3380", Path.Combine(pathToSHPs, "unload"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3381", "3385", Path.Combine(pathToSHPs, "harvest"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3386", "3389", Path.Combine(pathToSHPs, "miniboom"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3390", "3402", Path.Combine(pathToSHPs, "mediboom"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3403", "3417", Path.Combine(pathToSHPs, "mediboom2"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3418", "3420", Path.Combine(pathToSHPs, "minifire"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3421", "3428", Path.Combine(pathToSHPs, "miniboom2"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3429", "3432", Path.Combine(pathToSHPs, "minibooms"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3433", "3447", Path.Combine(pathToSHPs, "bigboom"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3448", "3470", Path.Combine(pathToSHPs, "bigboom2"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3471", "3493", Path.Combine(pathToSHPs, "bigboom3"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3494", "3501", Path.Combine(pathToSHPs, "unknown10"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3502", "3509", Path.Combine(pathToSHPs, "unknown11"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3510", "3511", Path.Combine(pathToSHPs, "unknown12"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3512", "3530", Path.Combine(pathToSHPs, "movingsand"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3531", "3534", Path.Combine(pathToSHPs, "unknown13"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3535", "3539", Path.Combine(pathToSHPs, "unknown14"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3540", "3543", Path.Combine(pathToSHPs, "unknown15"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3544", "3548", Path.Combine(pathToSHPs, "unknown16"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3549", "3564", Path.Combine(pathToSHPs, "wormjaw"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3565", "3585", Path.Combine(pathToSHPs, "wormdust"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3586", "3600", Path.Combine(pathToSHPs, "wormsigns1") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3601", "3610", Path.Combine(pathToSHPs, "wormsigns2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3611", "3615", Path.Combine(pathToSHPs, "wormsigns3") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3616", "3620", Path.Combine(pathToSHPs, "wormsigns4") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3621", "3625", Path.Combine(pathToSHPs, "rings"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3626", "3630", Path.Combine(pathToSHPs, "minipiff"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3631", "3678", Path.Combine(pathToSHPs, "movingsand2"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3679", "3686", Path.Combine(pathToSHPs, "selling"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3687", "3693", Path.Combine(pathToSHPs, "shockwave"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3694", "3711", Path.Combine(pathToSHPs, "electroplosion"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3712", "3722", Path.Combine(pathToSHPs, "fire"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3723", "3734", Path.Combine(pathToSHPs, "fire2"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3735", "3738", Path.Combine(pathToSHPs, "unknown21"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3739", "3742", Path.Combine(pathToSHPs, "unknown22"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3743", "3774", Path.Combine(pathToSHPs, "doublemuzzle"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3775", "3806", Path.Combine(pathToSHPs, "muzzle"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3807", "3838", Path.Combine(pathToSHPs, "doubleblastmuzzle"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3839", "3870", Path.Combine(pathToSHPs, "minimuzzle"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3871", "3872", Path.Combine(pathToSHPs, "unknown17"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3873", "3875", Path.Combine(pathToSHPs, "unknown18"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3876", "3876", Path.Combine(pathToSHPs, "unknown19"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3877", "3884", Path.Combine(pathToSHPs, "burst"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3885", "3898", Path.Combine(pathToSHPs, "fire3"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3899", "3910", Path.Combine(pathToSHPs, "energy"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3911", "3946", Path.Combine(pathToSHPs, "reveal"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3947", "3964", Path.Combine(pathToSHPs, "orbit"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3965", "3979", Path.Combine(pathToSHPs, "mushroomcloud"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3980", "3987", Path.Combine(pathToSHPs, "mediboom3"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "3988", "4010", Path.Combine(pathToSHPs, "largeboom"), "--projectile" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4011", "4011", Path.Combine(pathToSHPs, "rifleicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4012", "4012", Path.Combine(pathToSHPs, "bazookaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4013", "4013", Path.Combine(pathToSHPs, "engineericon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4014", "4014", Path.Combine(pathToSHPs, "thumpericon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4015", "4015", Path.Combine(pathToSHPs, "sardaukaricon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4016", "4016", Path.Combine(pathToSHPs, "trikeicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4017", "4017", Path.Combine(pathToSHPs, "raidericon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4018", "4018", Path.Combine(pathToSHPs, "quadicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4019", "4019", Path.Combine(pathToSHPs, "harvestericon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4020", "4020", Path.Combine(pathToSHPs, "combataicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4021", "4021", Path.Combine(pathToSHPs, "combathicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4022", "4022", Path.Combine(pathToSHPs, "combatoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4023", "4023", Path.Combine(pathToSHPs, "mcvicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4024", "4024", Path.Combine(pathToSHPs, "missiletankicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4025", "4025", Path.Combine(pathToSHPs, "deviatortankicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4026", "4026", Path.Combine(pathToSHPs, "siegetankicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4027", "4027", Path.Combine(pathToSHPs, "sonictankicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4028", "4028", Path.Combine(pathToSHPs, "devasticon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4029", "4029", Path.Combine(pathToSHPs, "carryallicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4030", "4030", Path.Combine(pathToSHPs, "carryallicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4031", "4031", Path.Combine(pathToSHPs, "orniicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4032", "4032", Path.Combine(pathToSHPs, "fremenicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4033", "4033", Path.Combine(pathToSHPs, "fremenicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4034", "4034", Path.Combine(pathToSHPs, "saboteuricon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4035", "4035", Path.Combine(pathToSHPs, "deathhandicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4036", "4036", Path.Combine(pathToSHPs, "rifleicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4037", "4037", Path.Combine(pathToSHPs, "bazookaicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4038", "4038", Path.Combine(pathToSHPs, "engineericon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4039", "4039", Path.Combine(pathToSHPs, "thumpericon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4040", "4040", Path.Combine(pathToSHPs, "sardaukaricon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4041", "4041", Path.Combine(pathToSHPs, "trikeicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4042", "4042", Path.Combine(pathToSHPs, "raidericon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4043", "4043", Path.Combine(pathToSHPs, "quadicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4044", "4044", Path.Combine(pathToSHPs, "harvestericon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4045", "4045", Path.Combine(pathToSHPs, "combataicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4046", "4046", Path.Combine(pathToSHPs, "conyardaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4047", "4047", Path.Combine(pathToSHPs, "conyardhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4048", "4048", Path.Combine(pathToSHPs, "conyardoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4049", "4049", Path.Combine(pathToSHPs, "conyardaicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4050", "4050", Path.Combine(pathToSHPs, "4plateaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4051", "4051", Path.Combine(pathToSHPs, "4platehicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4052", "4052", Path.Combine(pathToSHPs, "4plateoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4053", "4053", Path.Combine(pathToSHPs, "6plateaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4054", "4054", Path.Combine(pathToSHPs, "6platehicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4055", "4055", Path.Combine(pathToSHPs, "6plateoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4056", "4056", Path.Combine(pathToSHPs, "pwraicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4057", "4057", Path.Combine(pathToSHPs, "pwrhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4058", "4058", Path.Combine(pathToSHPs, "pwroicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4059", "4059", Path.Combine(pathToSHPs, "barraicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4060", "4060", Path.Combine(pathToSHPs, "barrhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4061", "4061", Path.Combine(pathToSHPs, "barroicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4062", "4062", Path.Combine(pathToSHPs, "orniicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4063", "4063", Path.Combine(pathToSHPs, "wallaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4064", "4064", Path.Combine(pathToSHPs, "wallhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4065", "4065", Path.Combine(pathToSHPs, "walloicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4066", "4066", Path.Combine(pathToSHPs, "refaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4067", "4067", Path.Combine(pathToSHPs, "refhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4068", "4068", Path.Combine(pathToSHPs, "refoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4069", "4069", Path.Combine(pathToSHPs, "guntoweraicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4070", "4070", Path.Combine(pathToSHPs, "guntowerhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4071", "4071", Path.Combine(pathToSHPs, "guntoweroicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4072", "4072", Path.Combine(pathToSHPs, "radaraicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4073", "4073", Path.Combine(pathToSHPs, "radarhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4074", "4074", Path.Combine(pathToSHPs, "radaroicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4075", "4075", Path.Combine(pathToSHPs, "rockettoweraicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4076", "4076", Path.Combine(pathToSHPs, "rockettowerhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4077", "4077", Path.Combine(pathToSHPs, "rockettoweroicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4078", "4078", Path.Combine(pathToSHPs, "hightechaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4079", "4079", Path.Combine(pathToSHPs, "hightechhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4080", "4080", Path.Combine(pathToSHPs, "hightechoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4081", "4081", Path.Combine(pathToSHPs, "lightaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4082", "4082", Path.Combine(pathToSHPs, "lighthicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4083", "4083", Path.Combine(pathToSHPs, "lightoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4084", "4084", Path.Combine(pathToSHPs, "siloaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4085", "4085", Path.Combine(pathToSHPs, "silohicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4086", "4086", Path.Combine(pathToSHPs, "silooicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4087", "4087", Path.Combine(pathToSHPs, "heavyaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4088", "4088", Path.Combine(pathToSHPs, "heavyhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4089", "4089", Path.Combine(pathToSHPs, "heavyoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4090", "4090", Path.Combine(pathToSHPs, "orniicon3") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4091", "4091", Path.Combine(pathToSHPs, "heavyhicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4092", "4092", Path.Combine(pathToSHPs, "starportaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4093", "4093", Path.Combine(pathToSHPs, "starporthicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4094", "4094", Path.Combine(pathToSHPs, "starportoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4095", "4095", Path.Combine(pathToSHPs, "orniicon4") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4096", "4096", Path.Combine(pathToSHPs, "repairaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4097", "4097", Path.Combine(pathToSHPs, "repairhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4098", "4098", Path.Combine(pathToSHPs, "repairoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4099", "4099", Path.Combine(pathToSHPs, "researchaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4100", "4100", Path.Combine(pathToSHPs, "researchhicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4101", "4101", Path.Combine(pathToSHPs, "researchoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4102", "4102", Path.Combine(pathToSHPs, "palaceaicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4103", "4103", Path.Combine(pathToSHPs, "palacehicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4104", "4104", Path.Combine(pathToSHPs, "palaceoicon") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4105", "4105", Path.Combine(pathToSHPs, "orniicon5") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4106", "4106", Path.Combine(pathToSHPs, "radaraicon2") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4107", "4107", Path.Combine(pathToSHPs, "radaraicon3") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4108", "4108", Path.Combine(pathToSHPs, "conyardaicon3") },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4109", "4150", Path.Combine(pathToSHPs, "conmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4151", "4174", Path.Combine(pathToSHPs, "wtrpmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4175", "4194", Path.Combine(pathToSHPs, "barramake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4195", "4212", Path.Combine(pathToSHPs, "barrhmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4213", "4230", Path.Combine(pathToSHPs, "barromake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4231", "4253", Path.Combine(pathToSHPs, "refmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4254", "4273", Path.Combine(pathToSHPs, "radarmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4274", "4294", Path.Combine(pathToSHPs, "highmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4295", "4312", Path.Combine(pathToSHPs, "lightmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4313", "4327", Path.Combine(pathToSHPs, "silomake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4328", "4346", Path.Combine(pathToSHPs, "heavymake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4347", "4369", Path.Combine(pathToSHPs, "starportmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4370", "4390", Path.Combine(pathToSHPs, "repairmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4391", "4412", Path.Combine(pathToSHPs, "researchmake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4413", "4435", Path.Combine(pathToSHPs, "palacemake"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4436", "4449", Path.Combine(pathToSHPs, "cranea"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4450", "4463", Path.Combine(pathToSHPs, "craneh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4464", "4477", Path.Combine(pathToSHPs, "craneo"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4478", "4491", Path.Combine(pathToSHPs, "cranea2"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4492", "4501", Path.Combine(pathToSHPs, "windtrapa"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4502", "4511", Path.Combine(pathToSHPs, "windtraph"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4512", "4521", Path.Combine(pathToSHPs, "windtrapo"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4522", "4552", Path.Combine(pathToSHPs, "disha"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4553", "4582", Path.Combine(pathToSHPs, "dishh"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4583", "4613", Path.Combine(pathToSHPs, "disho"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4614", "4643", Path.Combine(pathToSHPs, "highweld"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4644", "4673", Path.Combine(pathToSHPs, "lightweld"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4674", "4721", Path.Combine(pathToSHPs, "heavyweld"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4722", "4744", Path.Combine(pathToSHPs, "unknown20"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4745", "4759", Path.Combine(pathToSHPs, "marker"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4760", "4819", Path.Combine(pathToSHPs, "researchzaps"), "--building" },
|
||||
new string[] { "--r8", pathToDataR8, pathToPalette, "4820", "4840", Path.Combine(pathToSHPs, "deathhandlaunch"), "--building" },
|
||||
new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/MOUSE.R8"), pathToPalette, "0", "264", Path.Combine(pathToSHPs, "mouse") },
|
||||
new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "BASE"), "--tileset" },
|
||||
new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), pathToPalette, "748", "749", Path.Combine(pathToSHPs, "spice0") },
|
||||
new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBAT.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "BAT"), "--tileset" },
|
||||
new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBGBS.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "BGBS"), "--tileset" },
|
||||
new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXICE.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "ICE"), "--tileset" },
|
||||
new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXTREE.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "TREE"), "--tileset" },
|
||||
new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXWAST.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "WAST"), "--tileset" },
|
||||
////new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXXMAS.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "XMAS"), "--tileset" },
|
||||
};
|
||||
|
||||
var shpToCreate = new string[][]
|
||||
{
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "overlay.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "repairing.png"), "24" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "black.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "selectionedges.png"), "8" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bar1.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bar2.png"), "24" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bar3.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bar4.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bar5.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bar6.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "dots.png"), "4" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "numbers.png"), "8" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "credits.png"), "10" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "d2kshadow.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "crates.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "spicebloom.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "stars.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "greenuparrow.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rockcrater1.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rockcrater2.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "sandcrater1.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "sandcrater2.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown2.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rifle.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rifledeath.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bazooka.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bazookadeath.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "fremen.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "fremendeath.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "sardaukar.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "sardaukardeath.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "engineer.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "engineerdeath.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "thumper.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "thumping.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "thumper2.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "thumperdeath.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "missiletank.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "trike.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "quad.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "harvester.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "combata.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "siegetank.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "dmcv.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "sonictank.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "combataturret.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "siegeturret.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "carryall.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "orni.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "combath.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "devast.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "combathturret.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "deathhandmissile.png"), "24" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "saboteur.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "saboteurdeath.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "deviatortank.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "raider.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "combato.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "combatoturret.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "frigate.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "heavya.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "radara.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "pwra.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "barra.png"), "80" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "walla.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "conyarda.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "refa.png"), "120" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "hightecha.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "siloa.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "repaira.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "guntowera.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "gunturreta.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rockettowera.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rocketturreta.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "researcha.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "starporta.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "lighta.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "palacea.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "heavyh.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "radarh.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "pwrh.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wallh.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "barrh.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "conyardh.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "refh.png"), "120" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "hightechh.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "siloh.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "repairh.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "guntowerh.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "gunturreth.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rockettowerh.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rocketturreth.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "researchh.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "starporth.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "lighth.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "palaceh.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "heavyo.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "radaro.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "pwro.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "barro.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wallo.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "conyardo.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "refo.png"), "120" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "hightecho.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "siloo.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "repairo.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "guntowero.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "gunturreto.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rockettowero.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rocketturreto.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "researcho.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "starporto.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "lighto.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "palaceo.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "sietch.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "starportc.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "heavyc.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "palacec.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "conyardh2.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "plates.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown3.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rpg.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown4.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "missile.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "doubleblast.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bombs.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown6.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown7.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown8.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown9.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "missile2.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unload.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "harvest.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "miniboom.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "mediboom.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "mediboom2.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "minifire.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "miniboom2.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "minibooms.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bigboom.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bigboom2.png"), "72" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bigboom3.png"), "72" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown10.png"), "24" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown11.png"), "84" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown12.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "movingsand.png"), "72" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown13.png"), "72" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown14.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown15.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown16.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wormjaw.png"), "68" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wormdust.png"), "68" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wormsigns1.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wormsigns2.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wormsigns3.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wormsigns4.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rings.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "minipiff.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "movingsand2.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "selling.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "shockwave.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "electroplosion.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "fire.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "fire2.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown21.png"), "12" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown22.png"), "24" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "doublemuzzle.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "muzzle.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "doubleblastmuzzle.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "minimuzzle.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown17.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown18.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown19.png"), "16" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "burst.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "fire3.png"), "120" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "energy.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "reveal.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "orbit.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "mushroomcloud.png"), "72" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "mediboom3.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "largeboom.png"), "72" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rifleicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "bazookaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "engineericon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "thumpericon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "sardaukaricon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "trikeicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "raidericon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "quadicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "harvestericon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "combataicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "combathicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "combatoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "mcvicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "missiletankicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "deviatortankicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "siegetankicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "sonictankicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "devasticon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "carryallicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "orniicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "fremenicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "saboteuricon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "deathhandicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "conyardaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "conyardhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "conyardoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "4plateaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "4platehicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "4plateoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "6plateaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "6platehicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "6plateoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "pwraicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "pwrhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "pwroicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "barraicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "barrhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "barroicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wallaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wallhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "walloicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "refaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "refhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "refoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "guntoweraicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "guntowerhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "guntoweroicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "radaraicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "radarhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "radaroicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rockettoweraicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rockettowerhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "rockettoweroicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "hightechaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "hightechhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "hightechoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "lightaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "lighthicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "lightoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "siloaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "silohicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "silooicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "heavyaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "heavyhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "heavyoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "starportaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "starporthicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "starportoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "repairaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "repairhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "repairoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "researchaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "researchhicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "researchoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "palaceaicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "palacehicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "palaceoicon.png"), "60" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "conmake.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "wtrpmake.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "barramake.png"), "80" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "barrhmake.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "barromake.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "refmake.png"), "120" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "radarmake.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "highmake.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "lightmake.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "silomake.png"), "32" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "heavymake.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "starportmake.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "repairmake.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "researchmake.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "palacemake.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "cranea.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "craneh.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "craneo.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "windtrapa.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "windtraph.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "windtrapo.png"), "64" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "disha.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "dishh.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "disho.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "highweld.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "lightweld.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "heavyweld.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "unknown20.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "marker.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "researchzaps.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "deathhandlaunch.png"), "96" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "mouse.png"), "48" },
|
||||
new string[] { "--shp", Path.Combine(pathToSHPs, "spice0.png"), "32" },
|
||||
};
|
||||
|
||||
var shpToTranspose = new string[][]
|
||||
{
|
||||
new string[] { "--transpose", Path.Combine(pathToSHPs, "orni.shp"), Path.Combine(pathToSHPs, "orni.shp"), "0", "32", "3" },
|
||||
new string[] { "--transpose", Path.Combine(pathToSHPs, "rifle.shp"), Path.Combine(pathToSHPs, "rifle.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" },
|
||||
new string[] { "--transpose", Path.Combine(pathToSHPs, "bazooka.shp"), Path.Combine(pathToSHPs, "bazooka.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" },
|
||||
new string[] { "--transpose", Path.Combine(pathToSHPs, "fremen.shp"), Path.Combine(pathToSHPs, "fremen.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" },
|
||||
new string[] { "--transpose", Path.Combine(pathToSHPs, "sardaukar.shp"), Path.Combine(pathToSHPs, "sardaukar.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" },
|
||||
new string[] { "--transpose", Path.Combine(pathToSHPs, "thumper.shp"), Path.Combine(pathToSHPs, "thumper.shp"), "8", "8", "6" },
|
||||
new string[] { "--transpose", Path.Combine(pathToSHPs, "thumper2.shp"), Path.Combine(pathToSHPs, "thumper2.shp"), "8", "8", "5" },
|
||||
new string[] { "--transpose", Path.Combine(pathToSHPs, "engineer.shp"), Path.Combine(pathToSHPs, "engineer.shp"), "8", "8", "6" },
|
||||
new string[] { "--transpose", Path.Combine(pathToSHPs, "saboteur.shp"), Path.Combine(pathToSHPs, "saboteur.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" },
|
||||
};
|
||||
|
||||
var onError = (Action<string>)(s => Game.RunAfterTick(() =>
|
||||
{
|
||||
statusLabel.GetText = () => "Error: " + s;
|
||||
backButton.IsDisabled = () => false;
|
||||
retryButton.IsDisabled = () => false;
|
||||
}));
|
||||
|
||||
var t = new Thread(_ =>
|
||||
{
|
||||
try
|
||||
{
|
||||
for (int i = 0; i < extractGameFiles.Length; i++)
|
||||
{
|
||||
progressBar.Percentage = i * 100 / extractGameFiles.Count();
|
||||
statusLabel.GetText = () => "Extracting...";
|
||||
Utility.Command.ConvertR8ToPng(extractGameFiles[i]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < shpToCreate.Length; i++)
|
||||
{
|
||||
progressBar.Percentage = i * 100 / shpToCreate.Count();
|
||||
statusLabel.GetText = () => "Converting...";
|
||||
Utility.Command.ConvertPngToShp(shpToCreate[i]);
|
||||
File.Delete(shpToCreate[i][1]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < shpToTranspose.Length; i++)
|
||||
{
|
||||
progressBar.Percentage = i * 100 / shpToTranspose.Count();
|
||||
statusLabel.GetText = () => "Transposing...";
|
||||
Utility.Command.TransposeShp(shpToTranspose[i]);
|
||||
}
|
||||
|
||||
statusLabel.GetText = () => "Building tilesets...";
|
||||
int c = 0;
|
||||
string[] TilesetArray = new string[] { "BASE", "BAT", "BGBS", "ICE", "TREE", "WAST" };
|
||||
foreach (string set in TilesetArray)
|
||||
{
|
||||
progressBar.Percentage = c * 100 / TilesetArray.Count();
|
||||
File.Delete(Path.Combine(pathToTilesets, "{0}.tsx".F(set)));
|
||||
File.Copy("mods/d2k/tilesets/{0}.tsx".F(set), Path.Combine(pathToTilesets, "{0}.tsx".F(set)));
|
||||
|
||||
// TODO: this is ugly: a GUI will open and close immediately after some delay
|
||||
Process p = new Process();
|
||||
ProcessStartInfo TilesetBuilderProcessStartInfo = new ProcessStartInfo("OpenRA.TilesetBuilder.exe", Path.Combine(pathToTilesets, "{0}.png".F(set)) + " 32 --export Content/d2k/Tilesets");
|
||||
p.StartInfo = TilesetBuilderProcessStartInfo;
|
||||
p.Start();
|
||||
p.WaitForExit();
|
||||
File.Delete(Path.Combine(pathToTilesets, "{0}.tsx".F(set)));
|
||||
File.Delete(Path.Combine(pathToTilesets, "{0}.png".F(set)));
|
||||
File.Delete(Path.Combine(pathToTilesets, "{0}.yaml".F(set.ToLower())));
|
||||
File.Delete(Path.Combine(pathToTilesets, "{0}.pal".F(set.ToLower())));
|
||||
c++;
|
||||
}
|
||||
|
||||
Game.RunAfterTick(() =>
|
||||
{
|
||||
progressBar.Percentage = 100;
|
||||
statusLabel.GetText = () => "Extraction and conversion complete.";
|
||||
backButton.IsDisabled = () => false;
|
||||
continueLoading();
|
||||
});
|
||||
}
|
||||
catch
|
||||
{
|
||||
onError("Installation failed");
|
||||
}
|
||||
}) { IsBackground = true };
|
||||
t.Start();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,6 @@ using System.Linq;
|
||||
using System.Threading;
|
||||
using OpenRA.FileFormats;
|
||||
using OpenRA.FileFormats.Graphics;
|
||||
using OpenRA.Utility;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.D2k.Widgets.Logic
|
||||
|
||||
@@ -33,9 +33,6 @@ namespace OpenRA.Mods.D2k.Widgets.Logic
|
||||
panel.Get<ButtonWidget>("COPY_BUTTON").OnClick = () =>
|
||||
Ui.OpenWindow("INSTALL_FROMCD_PANEL", args);
|
||||
|
||||
panel.Get<ButtonWidget>("EXTRACT_BUTTON").OnClick = () =>
|
||||
Ui.OpenWindow("EXTRACT_GAMEFILES_PANEL", args);
|
||||
|
||||
panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
|
||||
|
||||
panel.Get<ButtonWidget>("MODS_BUTTON").OnClick = () =>
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
bool complete = false;
|
||||
bool started = false;
|
||||
|
||||
public override Activity Tick( Actor self )
|
||||
public override Activity Tick(Actor self)
|
||||
{
|
||||
if (self.IsDead())
|
||||
return NextActivity;
|
||||
@@ -66,6 +66,6 @@ namespace OpenRA.Mods.RA.Activities
|
||||
}
|
||||
|
||||
// Cannot be cancelled
|
||||
public override void Cancel( Actor self ) { }
|
||||
public override void Cancel(Actor self) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace OpenRA.Mods.RA.Render
|
||||
var self = init.self;
|
||||
|
||||
// Work around a bogus crash
|
||||
anim.PlayRepeating( NormalizeSequence(self, "idle") );
|
||||
anim.PlayRepeating(NormalizeSequence(self, "idle"));
|
||||
self.Trait<IBodyOrientation>().SetAutodetectedFacings(anim.CurrentSequence.Facings);
|
||||
|
||||
// Can't call Complete() directly from ctor because other traits haven't been inited yet
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace OpenRA.Mods.RA.Render
|
||||
public object Create(ActorInitializer init) { return new WithIdleOverlay(init.self, this); }
|
||||
}
|
||||
|
||||
public class WithIdleOverlay : INotifyDamageStateChanged, INotifyBuildComplete
|
||||
public class WithIdleOverlay : INotifyDamageStateChanged, INotifyBuildComplete, INotifySold
|
||||
{
|
||||
Animation overlay;
|
||||
bool buildComplete;
|
||||
@@ -50,6 +50,12 @@ namespace OpenRA.Mods.RA.Render
|
||||
buildComplete = true;
|
||||
}
|
||||
|
||||
public void Sold(Actor self) { }
|
||||
public void Selling(Actor self)
|
||||
{
|
||||
buildComplete = false;
|
||||
}
|
||||
|
||||
public void DamageStateChanged(Actor self, AttackInfo e)
|
||||
{
|
||||
overlay.ReplaceAnim(RenderSprites.NormalizeSequence(overlay, e.DamageState, overlay.CurrentSequence.Name));
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace OpenRA.Mods.RA
|
||||
public abstract class SupportPowerInfo : ITraitInfo
|
||||
{
|
||||
public readonly int ChargeTime = 0;
|
||||
public readonly string Image = null;
|
||||
public readonly string Icon = null;
|
||||
public readonly string Description = "";
|
||||
public readonly string LongDesc = "";
|
||||
public readonly bool AllowMultiple = false;
|
||||
|
||||
@@ -18,8 +18,9 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
public readonly string Description = "";
|
||||
public readonly string Name = "";
|
||||
[Desc("Defaults to actor name + icon suffix.")]
|
||||
public readonly string Icon = null;
|
||||
|
||||
[Desc("Sequence of the actor that contains the cameo.")]
|
||||
public readonly string Icon = "icon";
|
||||
|
||||
public virtual object Create(ActorInitializer init) { return new Tooltip(init.self, this); }
|
||||
}
|
||||
|
||||
@@ -37,10 +37,9 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
List<ProductionQueue> VisibleQueues;
|
||||
|
||||
bool paletteOpen = false;
|
||||
Dictionary<string, Sprite> iconSprites;
|
||||
|
||||
float2 paletteOpenOrigin = new float2(Game.viewport.Width - 215, 280);
|
||||
float2 paletteClosedOrigin = new float2(Game.viewport.Width - 16, 280);
|
||||
float2 paletteOpenOrigin;
|
||||
float2 paletteClosedOrigin;
|
||||
float2 paletteOrigin;
|
||||
|
||||
int paletteAnimationLength = 7;
|
||||
@@ -64,16 +63,16 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
cantBuild = new Animation("clock");
|
||||
cantBuild.PlayFetchIndex("idle", () => 0);
|
||||
clock = new Animation("clock");
|
||||
paletteOrigin = paletteClosedOrigin;
|
||||
VisibleQueues = new List<ProductionQueue>();
|
||||
CurrentQueue = null;
|
||||
}
|
||||
|
||||
iconSprites = Rules.Info.Values
|
||||
.Where(u => u.Traits.Contains<BuildableInfo>() && u.Name[0] != '^')
|
||||
.ToDictionary(
|
||||
u => u.Name,
|
||||
u => Game.modData.SpriteLoader.LoadAllSprites(
|
||||
u.Traits.Get<TooltipInfo>().Icon ?? (u.Name + "icon"))[0]);
|
||||
public override void Initialize(WidgetArgs args)
|
||||
{
|
||||
paletteOpenOrigin = new float2(Game.viewport.Width - Columns*IconWidth - 23, 280);
|
||||
paletteClosedOrigin = new float2(Game.viewport.Width - 16, 280);
|
||||
paletteOrigin = paletteClosedOrigin;
|
||||
base.Initialize(args);
|
||||
}
|
||||
|
||||
public override Rectangle EventBounds
|
||||
@@ -230,7 +229,9 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
{
|
||||
var rect = new RectangleF(origin.X + x * IconWidth, origin.Y + IconHeight * y, IconWidth, IconHeight);
|
||||
var drawPos = new float2(rect.Location);
|
||||
WidgetUtils.DrawSHP(iconSprites[item.Name], drawPos, worldRenderer);
|
||||
var icon = new Animation(RenderSimple.GetImage(item));
|
||||
icon.Play(item.Traits.Get<TooltipInfo>().Icon);
|
||||
WidgetUtils.DrawSHP(icon.Image, drawPos, worldRenderer);
|
||||
|
||||
var firstOfThis = queue.AllQueued().FirstOrDefault(a => a.Item == item.Name);
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.RA.Widgets
|
||||
@@ -20,7 +21,6 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
public class ObserverProductionIconsWidget : Widget
|
||||
{
|
||||
public Func<Player> GetPlayer;
|
||||
Dictionary<string, Sprite> iconSprites;
|
||||
World world;
|
||||
WorldRenderer worldRenderer;
|
||||
Dictionary<ProductionQueue, Animation> clocks;
|
||||
@@ -29,10 +29,6 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
public ObserverProductionIconsWidget(World world, WorldRenderer worldRenderer)
|
||||
: base()
|
||||
{
|
||||
iconSprites = Rules.Info.Values.Where(u => u.Traits.Contains<BuildableInfo>() && u.Name[0] != '^')
|
||||
.ToDictionary(
|
||||
u => u.Name,
|
||||
u => Game.modData.SpriteLoader.LoadAllSprites(u.Traits.Get<TooltipInfo>().Icon ?? (u.Name + "icon"))[0]);
|
||||
this.world = world;
|
||||
this.worldRenderer = worldRenderer;
|
||||
clocks = new Dictionary<ProductionQueue, Animation>();
|
||||
@@ -42,7 +38,6 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
: base(other)
|
||||
{
|
||||
GetPlayer = other.GetPlayer;
|
||||
iconSprites = other.iconSprites;
|
||||
world = other.world;
|
||||
worldRenderer = other.worldRenderer;
|
||||
clocks = other.clocks;
|
||||
@@ -67,25 +62,27 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
}
|
||||
foreach (var queue in queues)
|
||||
{
|
||||
var item = queue.Trait.CurrentItem();
|
||||
var item = queue.Trait.AllItems().FirstOrDefault();
|
||||
if (item == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
var sprite = iconSprites[item.Item];
|
||||
var size = sprite.size / new float2(2, 2);
|
||||
var icon = new Animation(RenderSimple.GetImage(item));
|
||||
icon.Play(item.Traits.Get<TooltipInfo>().Icon);
|
||||
var size = icon.Image.size / new float2(2, 2);
|
||||
var location = new float2(RenderBounds.Location) + new float2(queue.i * (int)size.Length, 0);
|
||||
WidgetUtils.DrawSHP(sprite, location, worldRenderer, size);
|
||||
WidgetUtils.DrawSHP(icon.Image, location, worldRenderer, size);
|
||||
|
||||
var current = queue.Trait.CurrentItem();
|
||||
if (current == null)
|
||||
continue;
|
||||
var clock = clocks[queue.Trait];
|
||||
clock.PlayFetchIndex("idle",
|
||||
() => item.TotalTime == 0 ? 0 : ((item.TotalTime - item.RemainingTime)
|
||||
* (clock.CurrentSequence.Length - 1) / item.TotalTime));
|
||||
() => current.TotalTime == 0 ? 0 : ((current.TotalTime - current.RemainingTime)
|
||||
* (clock.CurrentSequence.Length - 1) / current.TotalTime));
|
||||
clock.Tick();
|
||||
WidgetUtils.DrawSHP(clock.Image, location, worldRenderer, size);
|
||||
|
||||
var tiny = Game.Renderer.Fonts["Tiny"];
|
||||
var text = GetOverlayForItem(item);
|
||||
var text = GetOverlayForItem(current);
|
||||
tiny.DrawTextWithContrast(text,
|
||||
location + new float2(16, 16) - new float2(tiny.Measure(text).X / 2, 0),
|
||||
Color.White, Color.Black, 1);
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
public class ObserverSupportPowerIconsWidget : Widget
|
||||
{
|
||||
public Func<Player> GetPlayer;
|
||||
Dictionary<string, Sprite> iconSprites;
|
||||
Animation icon;
|
||||
World world;
|
||||
WorldRenderer worldRenderer;
|
||||
Dictionary<string, Animation> clocks;
|
||||
@@ -29,21 +29,18 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
public ObserverSupportPowerIconsWidget(World world, WorldRenderer worldRenderer)
|
||||
: base()
|
||||
{
|
||||
iconSprites = Rules.Info.Values.SelectMany(u => u.Traits.WithInterface<SupportPowerInfo>())
|
||||
.Select(u => u.Image).Distinct()
|
||||
.ToDictionary(
|
||||
u => u,
|
||||
u => Game.modData.SpriteLoader.LoadAllSprites(u)[0]);
|
||||
|
||||
this.world = world;
|
||||
this.worldRenderer = worldRenderer;
|
||||
clocks = new Dictionary<string, Animation>();
|
||||
icon = new Animation("icon");
|
||||
}
|
||||
|
||||
protected ObserverSupportPowerIconsWidget(ObserverSupportPowerIconsWidget other)
|
||||
: base(other)
|
||||
{
|
||||
GetPlayer = other.GetPlayer;
|
||||
iconSprites = other.iconSprites;
|
||||
icon = other.icon;
|
||||
world = other.world;
|
||||
worldRenderer = other.worldRenderer;
|
||||
clocks = other.clocks;
|
||||
@@ -68,12 +65,12 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
foreach (var power in powers)
|
||||
{
|
||||
var item = power.a.Value;
|
||||
if (item == null || item.Info == null || item.Info.Image == null)
|
||||
if (item == null || item.Info == null || item.Info.Icon == null)
|
||||
continue;
|
||||
var sprite = iconSprites[item.Info.Image];
|
||||
var size = sprite.size / new float2(2, 2);
|
||||
icon.Play(item.Info.Icon);
|
||||
var size = icon.Image.size / new float2(2, 2);
|
||||
var location = new float2(RenderBounds.Location) + new float2(power.i * (int)size.Length, 0);
|
||||
WidgetUtils.DrawSHP(sprite, location, worldRenderer, size);
|
||||
WidgetUtils.DrawSHP(icon.Image, location, worldRenderer, size);
|
||||
|
||||
var clock = clocks[power.a.Key];
|
||||
clock.PlayFetchIndex("idle",
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
public string ReadyText = "";
|
||||
public string HoldText = "";
|
||||
|
||||
Dictionary<string, Sprite> spsprites;
|
||||
Animation icon;
|
||||
Animation clock;
|
||||
readonly List<Pair<Rectangle, Action<MouseInput>>> buttons = new List<Pair<Rectangle,Action<MouseInput>>>();
|
||||
|
||||
@@ -41,12 +41,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
{
|
||||
base.Initialize(args);
|
||||
|
||||
spsprites = Rules.Info.Values.SelectMany( u => u.Traits.WithInterface<SupportPowerInfo>() )
|
||||
.Select(u => u.Image).Distinct()
|
||||
.ToDictionary(
|
||||
u => u,
|
||||
u => Game.modData.SpriteLoader.LoadAllSprites(u)[0]);
|
||||
|
||||
icon = new Animation("icon");
|
||||
clock = new Animation("clock");
|
||||
}
|
||||
|
||||
@@ -88,7 +83,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
WidgetUtils.DrawRGBA(WidgetUtils.GetChromeImage(world, "specialbin-middle"), new float2(rectBounds.X, rectBounds.Y + i * 51));
|
||||
WidgetUtils.DrawRGBA(WidgetUtils.GetChromeImage(world, "specialbin-bottom"), new float2(rectBounds.X, rectBounds.Y + numPowers * 51));
|
||||
|
||||
// Hack Hack Hack
|
||||
// HACK: Hack Hack Hack
|
||||
rectBounds.Width = 69;
|
||||
rectBounds.Height = 10 + numPowers * 51 + 21;
|
||||
|
||||
@@ -96,7 +91,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
foreach (var kv in powers)
|
||||
{
|
||||
var sp = kv.Value;
|
||||
var image = spsprites[sp.Info.Image];
|
||||
icon.Play(sp.Info.Icon);
|
||||
|
||||
var drawPos = new float2(rectBounds.X + 5, y);
|
||||
var rect = new Rectangle(rectBounds.X + 5, y, 64, 48);
|
||||
@@ -142,7 +137,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
}
|
||||
}
|
||||
|
||||
WidgetUtils.DrawSHP(image, drawPos, worldRenderer);
|
||||
WidgetUtils.DrawSHP(icon.Image, drawPos, worldRenderer);
|
||||
|
||||
clock.PlayFetchIndex("idle",
|
||||
() => sp.TotalTime == 0 ? clock.CurrentSequence.Length - 1 : (sp.TotalTime - sp.RemainingTime)
|
||||
|
||||
@@ -137,127 +137,9 @@ namespace OpenRA.Utility
|
||||
var bitmap = new Bitmap(frame.FrameSize.Width * frameCount, frame.FrameSize.Height, PixelFormat.Format8bppIndexed);
|
||||
bitmap.Palette = palette.AsSystemPalette();
|
||||
|
||||
int x = 0;
|
||||
|
||||
frame = srcImage[startFrame];
|
||||
|
||||
// resorting to RA/CnC compatible counter-clockwise frame order
|
||||
if (args.Contains("--infantry"))
|
||||
{
|
||||
endFrame = startFrame - 1;
|
||||
|
||||
// assuming 8 facings each animation set
|
||||
for (int e = 8; e < frameCount + 1; e = e + 8)
|
||||
{
|
||||
for (int f = startFrame + e - 1; f > endFrame; f--)
|
||||
{
|
||||
var offsetX = frame.FrameSize.Width / 2 - frame.Size.Width / 2;
|
||||
var offsetY = frame.FrameSize.Height / 2 - frame.Size.Height / 2;
|
||||
|
||||
Console.WriteLine("calculated OffsetX: {0}", offsetX);
|
||||
Console.WriteLine("calculated OffsetY: {0}", offsetY);
|
||||
|
||||
var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
|
||||
PixelFormat.Format8bppIndexed);
|
||||
|
||||
for (var i = 0; i < frame.Size.Height; i++)
|
||||
Marshal.Copy(frame.Image, i * frame.Size.Width,
|
||||
new IntPtr(data.Scan0.ToInt64() + i * data.Stride), frame.Size.Width);
|
||||
|
||||
bitmap.UnlockBits(data);
|
||||
|
||||
x += frame.FrameSize.Width;
|
||||
|
||||
frame = srcImage[f];
|
||||
Console.WriteLine("f: {0}", f);
|
||||
}
|
||||
|
||||
endFrame = startFrame + e - 1;
|
||||
frame = srcImage[startFrame + e];
|
||||
Console.WriteLine("e: {0}", e);
|
||||
Console.WriteLine("FrameCount: {0}", frameCount);
|
||||
}
|
||||
}
|
||||
else if (args.Contains("--vehicle") || args.Contains("--projectile"))
|
||||
{
|
||||
frame = srcImage[startFrame];
|
||||
|
||||
for (int f = endFrame - 1; f > startFrame - 1; f--)
|
||||
{
|
||||
var offsetX = frame.FrameSize.Width / 2 - frame.Offset.X;
|
||||
var offsetY = frame.FrameSize.Height / 2 - frame.Offset.Y;
|
||||
|
||||
Console.WriteLine("calculated OffsetX: {0}", offsetX);
|
||||
Console.WriteLine("calculated OffsetY: {0}", offsetY);
|
||||
|
||||
var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
|
||||
PixelFormat.Format8bppIndexed);
|
||||
|
||||
for (var i = 0; i < frame.Size.Height; i++)
|
||||
Marshal.Copy(frame.Image, i * frame.Size.Width,
|
||||
new IntPtr(data.Scan0.ToInt64() + i * data.Stride), frame.Size.Width);
|
||||
|
||||
bitmap.UnlockBits(data);
|
||||
|
||||
x += frame.FrameSize.Width;
|
||||
|
||||
frame = srcImage[f];
|
||||
}
|
||||
}
|
||||
else if (args.Contains("--turret"))
|
||||
{
|
||||
frame = srcImage[startFrame];
|
||||
|
||||
for (int f = endFrame - 1; f > startFrame - 1; f--)
|
||||
{
|
||||
var offsetX = Math.Abs(frame.Offset.X);
|
||||
var offsetY = frame.FrameSize.Height - Math.Abs(frame.Offset.Y);
|
||||
|
||||
Console.WriteLine("calculated OffsetX: {0}", offsetX);
|
||||
Console.WriteLine("calculated OffsetY: {0}", offsetY);
|
||||
|
||||
var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
|
||||
PixelFormat.Format8bppIndexed);
|
||||
|
||||
for (var i = 0; i < frame.Size.Height; i++)
|
||||
Marshal.Copy(frame.Image, i * frame.Size.Width,
|
||||
new IntPtr(data.Scan0.ToInt64() + i * data.Stride), frame.Size.Width);
|
||||
|
||||
bitmap.UnlockBits(data);
|
||||
|
||||
x += frame.FrameSize.Width;
|
||||
|
||||
frame = srcImage[f];
|
||||
}
|
||||
}
|
||||
else if (args.Contains("--wall"))
|
||||
{
|
||||
// complex resorting to RA/CnC compatible frame order
|
||||
var d2kBrikFrameOrder = new int[] { 1, 4, 2, 12, 5, 6, 16, 9, 3, 13, 7, 8, 14, 10, 11, 15, 17, 20, 18, 28, 21, 22, 32, 25, 19, 29, 23, 24, 30, 26, 27, 31 };
|
||||
foreach (int o in d2kBrikFrameOrder)
|
||||
{
|
||||
var f = startFrame - 1 + o;
|
||||
|
||||
frame = srcImage[f];
|
||||
|
||||
var offsetX = Math.Abs(frame.Offset.X);
|
||||
var offsetY = frame.FrameSize.Height - Math.Abs(frame.Offset.Y);
|
||||
Console.WriteLine("calculated OffsetX: {0}", offsetX);
|
||||
Console.WriteLine("calculated OffsetY: {0}", offsetY);
|
||||
|
||||
var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
|
||||
PixelFormat.Format8bppIndexed);
|
||||
|
||||
for (var i = 0; i < frame.Size.Height; i++)
|
||||
Marshal.Copy(frame.Image, i * frame.Size.Width,
|
||||
new IntPtr(data.Scan0.ToInt64() + i * data.Stride), frame.Size.Width);
|
||||
|
||||
bitmap.UnlockBits(data);
|
||||
|
||||
x += frame.FrameSize.Width;
|
||||
}
|
||||
}
|
||||
else if (args.Contains("--tileset"))
|
||||
if (args.Contains("--tileset"))
|
||||
{
|
||||
int f = 0;
|
||||
var tileset = new Bitmap(frame.FrameSize.Width * 20, frame.FrameSize.Height * 40, PixelFormat.Format8bppIndexed);
|
||||
@@ -287,39 +169,6 @@ namespace OpenRA.Utility
|
||||
|
||||
bitmap = tileset;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int f = startFrame; f < endFrame; f++)
|
||||
{
|
||||
frame = srcImage[f];
|
||||
var offsetX = 0;
|
||||
var offsetY = 0;
|
||||
if (args.Contains("--infantrydeath"))
|
||||
{
|
||||
offsetX = frame.FrameSize.Width / 2 - frame.Size.Width / 2;
|
||||
offsetY = frame.FrameSize.Height / 2 - frame.Size.Height / 2;
|
||||
}
|
||||
else if (args.Contains("--building"))
|
||||
{
|
||||
offsetX = Math.Abs(frame.Offset.X);
|
||||
offsetY = frame.FrameSize.Height - Math.Abs(frame.Offset.Y);
|
||||
}
|
||||
|
||||
Console.WriteLine("calculated OffsetX: {0}", offsetX);
|
||||
Console.WriteLine("calculated OffsetY: {0}", offsetY);
|
||||
|
||||
var data = bitmap.LockBits(new Rectangle(x + offsetX, 0 + offsetY, frame.Size.Width, frame.Size.Height), ImageLockMode.WriteOnly,
|
||||
PixelFormat.Format8bppIndexed);
|
||||
|
||||
for (var i = 0; i < frame.Size.Height; i++)
|
||||
Marshal.Copy(frame.Image, i * frame.Size.Width,
|
||||
new IntPtr(data.Scan0.ToInt64() + i * data.Stride), frame.Size.Width);
|
||||
|
||||
bitmap.UnlockBits(data);
|
||||
|
||||
x += frame.FrameSize.Width;
|
||||
}
|
||||
}
|
||||
|
||||
bitmap.Save(filename + ".png");
|
||||
Console.WriteLine(filename + ".png saved");
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace OpenRA.Utility
|
||||
Console.WriteLine(" --extract MOD[,MOD]* FILES [--userdir] Extract files from mod packages to the current (or user) directory");
|
||||
Console.WriteLine(" --tmp-png MOD[,MOD]* THEATER FILES Extract terrain tiles to PNG");
|
||||
Console.WriteLine(" --remap SRCMOD:PAL DESTMOD:PAL SRCSHP DESTSHP Remap SHPs to another palette");
|
||||
Console.WriteLine(" --r8 R8FILE PALETTE START END FILENAME [--noshadow] [--infrantry] [--vehicle] [--projectile] [--building] [--wall] [--tileset] Convert Dune 2000 DATA.R8 to PNGs choosing start- and endframe as well as type for correct offset to append multiple frames to one PNG named by filename optionally removing the shadow.");
|
||||
Console.WriteLine(" --r8 R8FILE PALETTE START END FILENAME [--noshadow] [--tileset] Convert Dune 2000 DATA.R8 to PNGs choosing start- and endframe as well as type to append multiple frames to one PNG named by filename optionally removing the shadow.");
|
||||
Console.WriteLine(" --transpose SRCSHP DESTSHP START N M [START N M ...] Transpose the N*M block of frames starting at START.");
|
||||
Console.WriteLine(" --docs MOD Generate trait documentation in MarkDown format.");
|
||||
Console.WriteLine(" --map-hash MAPFILE Generate hash of specified oramap file.");
|
||||
|
||||
@@ -15,7 +15,7 @@ Join the [Forums](http://www.sleipnirstuff.com/forum/viewforum.php?f=80) for dis
|
||||
Distributed mods include a reimagining of
|
||||
* Command & Conquer: Red Alert
|
||||
* Command & Conquer: Tiberian Dawn
|
||||
* Dune 2000 (experimental)
|
||||
* Dune 2000
|
||||
|
||||
Check our [Playing the Game](https://github.com/OpenRA/OpenRA/wiki/Playing-the-game) Guide to win multiplayer matches.
|
||||
|
||||
@@ -24,7 +24,6 @@ Check our [Playing the Game](https://github.com/OpenRA/OpenRA/wiki/Playing-the-g
|
||||
* Please read [INSTALL](https://github.com/OpenRA/OpenRA/blob/bleed/INSTALL) and [Compiling](https://github.com/OpenRA/OpenRA/wiki/Compiling) on how to set up an OpenRA development environment.
|
||||
* Read [HACKING](https://github.com/OpenRA/OpenRA/blob/bleed/HACKING) for an overview of the engine.
|
||||
* To get your patches merged please adhere to the [Contributing](https://github.com/OpenRA/OpenRA/blob/bleed/CONTRIBUTING.md) guidelines.
|
||||
* Some insights on the upcoming [Translation](https://github.com/OpenRA/OpenRA/wiki/Translation) framework.
|
||||
|
||||
## Mapping
|
||||
|
||||
@@ -33,7 +32,7 @@ Check our [Playing the Game](https://github.com/OpenRA/OpenRA/wiki/Playing-the-g
|
||||
|
||||
## Modding
|
||||
|
||||
* There exists an incomplete [Trait documentation](https://github.com/OpenRA/OpenRA/wiki/Trait-Documentation) to get started with yaml files.
|
||||
* There exists an auto-generated [Trait documentation](https://github.com/OpenRA/OpenRA/wiki/Traits) to get started with yaml files.
|
||||
* Check the [Modding Guide](https://github.com/OpenRA/OpenRA/wiki/Modding%20Guide) to create your own classic RTS.
|
||||
* Some hints on to create new OpenRA compatible [Pixelart](https://github.com/OpenRA/OpenRA/wiki/Pixelart).
|
||||
* Upload total conversions at [our ModDB profile](http://www.moddb.com/games/openra/mods)
|
||||
|
||||
@@ -7,281 +7,173 @@ Cursors:
|
||||
mouse2: cursor
|
||||
scroll-t:
|
||||
start:1
|
||||
x:14
|
||||
y:-2
|
||||
scroll-tr:
|
||||
start:2
|
||||
x:14
|
||||
y:-2
|
||||
scroll-r:
|
||||
start:3
|
||||
x:28
|
||||
y:12
|
||||
scroll-br:
|
||||
start:4
|
||||
x:28
|
||||
y:22
|
||||
scroll-b:
|
||||
start:5
|
||||
x:14
|
||||
y:22
|
||||
scroll-bl:
|
||||
start:6
|
||||
x:-2
|
||||
y:22
|
||||
scroll-l:
|
||||
start:7
|
||||
x:-1
|
||||
y:13
|
||||
scroll-tl:
|
||||
start:8
|
||||
x:-2
|
||||
y:-2
|
||||
scroll-t-blocked:
|
||||
start:130
|
||||
x:14
|
||||
y:-2
|
||||
scroll-tr-blocked:
|
||||
start:131
|
||||
x:14
|
||||
y:-2
|
||||
scroll-r-blocked:
|
||||
start:132
|
||||
x:28
|
||||
y:12
|
||||
scroll-br-blocked:
|
||||
start:133
|
||||
x:28
|
||||
y:22
|
||||
scroll-b-blocked:
|
||||
start:134
|
||||
x:14
|
||||
y:22
|
||||
scroll-bl-blocked:
|
||||
start:135
|
||||
x:-2
|
||||
y:22
|
||||
scroll-l-blocked:
|
||||
start:136
|
||||
x:-1
|
||||
y:13
|
||||
scroll-tl-blocked:
|
||||
start:137
|
||||
x:-2
|
||||
y:-2
|
||||
select:
|
||||
start:12
|
||||
length:6
|
||||
x:12
|
||||
y:12
|
||||
|
||||
default:
|
||||
start:0
|
||||
x: -16
|
||||
y: -12
|
||||
default-minimap:
|
||||
start:86
|
||||
length:1
|
||||
x: -16
|
||||
y: -12
|
||||
generic-blocked:
|
||||
start:9
|
||||
x:12
|
||||
y:12
|
||||
generic-blocked-minimap:
|
||||
start:27
|
||||
x:12
|
||||
y:12
|
||||
attack:
|
||||
start:18
|
||||
length:8
|
||||
x:12
|
||||
y:12
|
||||
attack-minimap:
|
||||
start:140
|
||||
length:8
|
||||
x:12
|
||||
y:12
|
||||
harvest:
|
||||
start:18
|
||||
length:8
|
||||
x:12
|
||||
y:12
|
||||
harvest-minimap:
|
||||
start:140
|
||||
length:8
|
||||
x:12
|
||||
y:12
|
||||
enter:
|
||||
start:119
|
||||
length:3
|
||||
x:12
|
||||
y:12
|
||||
enter-minimap:
|
||||
start:148
|
||||
length:3
|
||||
x:12
|
||||
y:12
|
||||
c4:
|
||||
start:122
|
||||
length:3
|
||||
x:12
|
||||
y:12
|
||||
c4-minimap:
|
||||
start:127
|
||||
length:3
|
||||
x:12
|
||||
y:12
|
||||
guard:
|
||||
start:153
|
||||
length:1
|
||||
x:12
|
||||
y:12
|
||||
guard-minimap:
|
||||
start:152
|
||||
length:1
|
||||
x:12
|
||||
y:12
|
||||
|
||||
# Cursors that need minimap variants
|
||||
deploy:
|
||||
start:53
|
||||
length:9
|
||||
x:12
|
||||
y:12
|
||||
repair:
|
||||
start:29
|
||||
length:24
|
||||
x:12
|
||||
y:12
|
||||
repair-blocked:
|
||||
start:126
|
||||
length:1
|
||||
x:12
|
||||
y:12
|
||||
sell:
|
||||
start:62
|
||||
length:24
|
||||
x:12
|
||||
y:12
|
||||
sell-blocked:
|
||||
start:125
|
||||
length:1
|
||||
x:12
|
||||
y:12
|
||||
ability:
|
||||
start:88
|
||||
length:8
|
||||
x:12
|
||||
y:12
|
||||
nuke:
|
||||
start:96
|
||||
length:7
|
||||
x:12
|
||||
y:12
|
||||
ioncannon:
|
||||
start:103
|
||||
length:16
|
||||
x:12
|
||||
y:12
|
||||
sell-vehicle:
|
||||
start:154
|
||||
length:24
|
||||
x:12
|
||||
y:12
|
||||
|
||||
mouse4:cursor
|
||||
move:
|
||||
start:0
|
||||
length:8
|
||||
x:12
|
||||
y:12
|
||||
move-minimap:
|
||||
start:9
|
||||
length:4
|
||||
x:12
|
||||
y:12
|
||||
move-rough:
|
||||
start:0
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
|
||||
attackmove:cursor
|
||||
attackmove:
|
||||
start:0
|
||||
length:8
|
||||
x:12
|
||||
y:12
|
||||
attackmove-minimap:
|
||||
start:9
|
||||
length:4
|
||||
x:12
|
||||
y:12
|
||||
move-blocked:
|
||||
start:8
|
||||
x:12
|
||||
y:12
|
||||
move-blocked-minimap:
|
||||
start:13
|
||||
length:1
|
||||
x:12
|
||||
y:12
|
||||
|
||||
mouse3: cursor2
|
||||
enter-blocked:
|
||||
start:212
|
||||
length:1
|
||||
x:12
|
||||
y:12
|
||||
enter-blocked-minimap:
|
||||
start:33
|
||||
length:1
|
||||
capture:
|
||||
start:164
|
||||
length:3
|
||||
x:12
|
||||
y:12
|
||||
capture-minimap:
|
||||
start:167
|
||||
length:3
|
||||
x:12
|
||||
y:12
|
||||
heal:
|
||||
start:160
|
||||
length:4
|
||||
x:12
|
||||
y:12
|
||||
heal-minimap:
|
||||
start:194
|
||||
length:1
|
||||
x:12
|
||||
y:12
|
||||
ability-minimap:
|
||||
start:214
|
||||
length:8
|
||||
x:12
|
||||
y:12
|
||||
deploy-blocked:
|
||||
start:211
|
||||
length:1
|
||||
x:12
|
||||
y:12
|
||||
goldwrench:
|
||||
start:170
|
||||
length:24
|
||||
x:12
|
||||
y:12
|
||||
goldwrench-blocked:
|
||||
start:213
|
||||
length:1
|
||||
x:12
|
||||
y:12
|
||||
|
||||
nopower: cursor
|
||||
powerdown-blocked:
|
||||
start:0
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
powerdown:
|
||||
start:1
|
||||
length: 3
|
||||
x: 12
|
||||
y: 12
|
||||
length: 3
|
||||
@@ -4,7 +4,6 @@ TRAN:
|
||||
Cost: 750
|
||||
Tooltip:
|
||||
Name: Chinook Transport
|
||||
Icon:tranicnh
|
||||
Description: Fast Infantry Transport Helicopter.\n Unarmed
|
||||
Buildable:
|
||||
BuildPaletteOrder: 10
|
||||
@@ -47,7 +46,6 @@ HELI:
|
||||
Cost: 1200
|
||||
Tooltip:
|
||||
Name: Apache Longbow
|
||||
Icon: heliicnh
|
||||
Description: Helicopter Gunship with Chainguns.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
@@ -100,7 +98,6 @@ ORCA:
|
||||
Cost: 1200
|
||||
Tooltip:
|
||||
Name: Orca
|
||||
Icon: orcaicnh
|
||||
Description: Helicopter Gunship with AG Missiles.\n Strong vs Buildings, Tanks\n Weak vs Infantry
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
@@ -148,7 +145,6 @@ C17:
|
||||
Tooltip:
|
||||
Name: Supply Aircraft
|
||||
Description: Drops vehicle reinforcements on Airstrips
|
||||
Icon: c17icnh
|
||||
Valued:
|
||||
Cost: 2000
|
||||
Plane:
|
||||
@@ -175,7 +171,6 @@ A10:
|
||||
Inherits: ^Plane
|
||||
Tooltip:
|
||||
Name: A10 Bomber
|
||||
Icon: a10icnh
|
||||
Description: Used to deliver Napalm strikes.
|
||||
Valued:
|
||||
Cost: 2000
|
||||
|
||||
@@ -5,7 +5,6 @@ E1:
|
||||
Tooltip:
|
||||
Name: Minigunner
|
||||
Description: General-purpose infantry.\n Strong vs Infantry\n Weak vs Vehicles
|
||||
Icon: e1icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 10
|
||||
Owner: gdi, nod
|
||||
@@ -30,7 +29,6 @@ E2:
|
||||
Tooltip:
|
||||
Name: Grenadier
|
||||
Description: Infantry armed with grenades. \n Strong vs Buildings, Infantry\n Weak vs Vehicles
|
||||
Icon: e2icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 40
|
||||
Prerequisites: anyhq
|
||||
@@ -62,7 +60,6 @@ E3:
|
||||
Tooltip:
|
||||
Name: Rocket Soldier
|
||||
Description: Anti-tank/Anti-aircraft infantry. \n Strong vs Tanks, Aircraft\n Weak vs Infantry
|
||||
Icon: e3icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
Owner: nod, gdi
|
||||
@@ -89,7 +86,6 @@ E4:
|
||||
Tooltip:
|
||||
Name: Flamethrower
|
||||
Description: Advanced Anti-infantry unit.\n Strong vs Infantry, Buildings\n Weak vs Vehicles
|
||||
Icon: e4icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 40
|
||||
Owner: nod
|
||||
@@ -118,7 +114,6 @@ E5:
|
||||
Tooltip:
|
||||
Name: Chem Warrior
|
||||
Description: Advanced Anti-infantry unit.\n Strong vs Infantry\n Weak vs Vehicles
|
||||
Icon: e5icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 50
|
||||
Owner: nod
|
||||
@@ -153,7 +148,6 @@ E6:
|
||||
Tooltip:
|
||||
Name: Engineer
|
||||
Description: Infiltrates and captures enemy structures.\n Strong vs Nothing\n Weak vs Everything
|
||||
Icon: e6icnh
|
||||
Buildable:
|
||||
BuildPaletteOrder: 30
|
||||
Owner: gdi,nod
|
||||
@@ -181,7 +175,6 @@ RMBO:
|
||||
Valued:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Icon: rmboicnh
|
||||
Name: Commando
|
||||
Description: Elite sniper infantry unit.\n Strong vs Infantry, Buildings\n Weak vs Vehicles
|
||||
Buildable:
|
||||
@@ -224,7 +217,6 @@ PVICE:
|
||||
Owner: gdi, nod
|
||||
Tooltip:
|
||||
Description: Mutated abomination that spits liquid tiberium.\n Strong vs Infantry, Buildings\n Weak vs Aircraft
|
||||
Icon: viceicnh
|
||||
DrawLineToTarget:
|
||||
SelectionDecorations:
|
||||
ActorLostNotification:
|
||||
@@ -234,7 +226,6 @@ STEG:
|
||||
Tooltip:
|
||||
Name: Stegosaurus
|
||||
Description: A large, heavily built, herbivorous quadruped
|
||||
Icon: stegicnh
|
||||
Armament:
|
||||
Weapon: tail
|
||||
|
||||
@@ -243,7 +234,6 @@ TREX:
|
||||
Tooltip:
|
||||
Name: Tyrannosaurus rex
|
||||
Description: Bipedal carnivore with a massive skull
|
||||
Icon: trexicnh
|
||||
Armament:
|
||||
Weapon: teeth
|
||||
|
||||
@@ -252,7 +242,6 @@ TRIC:
|
||||
Tooltip:
|
||||
Name: Triceratops
|
||||
Description: Quadruped with large bony frill and three horns
|
||||
Icon: tricicnh
|
||||
Armament:
|
||||
Weapon: horn
|
||||
|
||||
@@ -261,6 +250,5 @@ RAPT:
|
||||
Tooltip:
|
||||
Name: Velociraptor
|
||||
Description: Bipedal with enlarged sickle-shaped claw on each hindfoot
|
||||
Icon: rapticnh
|
||||
Armament:
|
||||
Weapon: claw
|
||||
|
||||
@@ -4,7 +4,6 @@ BOAT:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Gunboat
|
||||
Icon: boaticnh
|
||||
Health:
|
||||
HP: 700
|
||||
Armor:
|
||||
|
||||
@@ -11,7 +11,6 @@ FACT:
|
||||
Tooltip:
|
||||
Name: Construction Yard
|
||||
Description: Builds structures
|
||||
Icon: facticnh
|
||||
Building:
|
||||
Power: 15
|
||||
Footprint: xxx xxx
|
||||
@@ -55,7 +54,6 @@ NUKE:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Power Plant
|
||||
Icon: nukeicnh
|
||||
Description: Generates power
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: anypower
|
||||
@@ -79,7 +77,6 @@ NUK2:
|
||||
Cost: 500
|
||||
Tooltip:
|
||||
Name: Advanced Power Plant
|
||||
Icon:nuk2icnh
|
||||
Description: Provides more power, cheaper than the \nstandard Power Plant
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: anypower
|
||||
@@ -103,7 +100,6 @@ PROC:
|
||||
Cost: 1500
|
||||
Tooltip:
|
||||
Name: Tiberium Refinery
|
||||
Icon: procicnh
|
||||
Description: Processes raw Tiberium\ninto useable resources
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
@@ -142,7 +138,6 @@ SILO:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Tiberium Silo
|
||||
Icon: siloicnh
|
||||
Description: Stores processed Tiberium
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
@@ -174,7 +169,6 @@ PYLE:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Barracks
|
||||
Icon: pyleicnh
|
||||
Description: Trains infantry
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: barracks
|
||||
@@ -213,7 +207,6 @@ HAND:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Hand of Nod
|
||||
Icon: handicnh
|
||||
Description: Trains infantry
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: barracks
|
||||
@@ -249,7 +242,6 @@ AFLD:
|
||||
Cost: 2000
|
||||
Tooltip:
|
||||
Name: Airstrip
|
||||
Icon: afldicnh
|
||||
Description: Provides a dropzone\nfor vehicle reinforcements
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: vehicleproduction
|
||||
@@ -287,7 +279,6 @@ WEAP:
|
||||
Cost: 2000
|
||||
Tooltip:
|
||||
Name: Weapons Factory
|
||||
Icon: weapicnh
|
||||
Description: Assembly point for\nvehicle reinforcements
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: vehicleproduction
|
||||
@@ -326,7 +317,6 @@ HPAD:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Name: Helipad
|
||||
Icon:hpadicnh
|
||||
Description: Produces, rearms and\nrepairs helicopters
|
||||
Buildable:
|
||||
BuildPaletteOrder: 60
|
||||
@@ -362,7 +352,6 @@ HQ:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Name: Communications Center
|
||||
Icon: hqicnh
|
||||
Description: Provides an overview of the battlefield.\n Requires power to operate.
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: anyhq
|
||||
@@ -384,7 +373,7 @@ HQ:
|
||||
DetectCloaked:
|
||||
Range: 8
|
||||
AirstrikePower:
|
||||
Image: bombicnh
|
||||
Icon: airstrike
|
||||
ChargeTime: 180
|
||||
Description: Air Strike
|
||||
LongDesc: Deploy an aerial napalm strike.\nBurns buildings and infantry along a line.
|
||||
@@ -399,7 +388,6 @@ FIX:
|
||||
Cost: 500
|
||||
Tooltip:
|
||||
Name: Repair Facility
|
||||
Icon: fixicnh
|
||||
Description: Repairs vehicles
|
||||
Buildable:
|
||||
BuildPaletteOrder: 80
|
||||
@@ -425,7 +413,6 @@ EYE:
|
||||
Cost: 1800
|
||||
Tooltip:
|
||||
Name: Advanced Communications Center
|
||||
Icon: eyeicnh
|
||||
Description: Provides access to the Ion Cannon.\n Requires power to operate.
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: anyhq
|
||||
@@ -447,7 +434,7 @@ EYE:
|
||||
DetectCloaked:
|
||||
Range: 8
|
||||
IonCannonPower:
|
||||
Image: ionicnh
|
||||
Icon: ioncannon
|
||||
ChargeTime: 180
|
||||
Description: Ion Cannon
|
||||
LongDesc: Initiate an Ion Cannon strike.\nApplies instant damage to a small area.
|
||||
@@ -465,7 +452,6 @@ TMPL:
|
||||
Cost: 2000
|
||||
Tooltip:
|
||||
Name: Temple of Nod
|
||||
Icon: tmplicnh
|
||||
Description: Place of worship and secret missile silo.\n Requires power to operate.
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: anyhq
|
||||
@@ -483,7 +469,7 @@ TMPL:
|
||||
Range: 6
|
||||
Bib:
|
||||
NukePower:
|
||||
Image: atomicnh
|
||||
Icon: abomb
|
||||
ChargeTime: 300
|
||||
Description: Nuclear Strike
|
||||
LongDesc: Launch a tactical nuke.\nApplies heavy damage over a large area.
|
||||
@@ -500,7 +486,6 @@ GUN:
|
||||
Cost: 600
|
||||
Tooltip:
|
||||
Name: Turret
|
||||
Icon: gunicnh
|
||||
Description: Anti-Armor base defense.\n Strong vs Tanks\n Weak vs Infantry, Aircraft
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
@@ -538,7 +523,6 @@ SAM:
|
||||
Cost: 750
|
||||
Tooltip:
|
||||
Name: SAM Site
|
||||
Icon: samicnh
|
||||
Description: Anti-Air base defense.\n Strong vs Aircraft\n Weak vs Infantry, Tanks
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
@@ -575,7 +559,6 @@ OBLI:
|
||||
Cost: 1500
|
||||
Tooltip:
|
||||
Name: Obelisk of Light
|
||||
Icon:obliicnh
|
||||
Description: Advanced base defense.\n Requires power to operate.\n Strong vs Tanks, Infantry\n Weak vs Aircraft
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
@@ -616,7 +599,6 @@ GTWR:
|
||||
Cost: 500
|
||||
Tooltip:
|
||||
Name: Guard Tower
|
||||
Icon: gtwricnh
|
||||
Description: Basic defensive structure.\n Strong vs Infantry\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
@@ -652,7 +634,6 @@ ATWR:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Name: Advanced Guard Tower
|
||||
Icon: atwricnh
|
||||
Description: Anti-armor defensive structure.\n Strong vs Light Vehicles, Tanks\n Weak vs Infantry
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
@@ -694,7 +675,6 @@ SBAG:
|
||||
Value: 0
|
||||
Tooltip:
|
||||
Name: Sandbag Barrier
|
||||
Icon:sbagicnh
|
||||
Description: Stops infantry and blocks enemy fire.\nCan be crushed by tanks.
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
@@ -714,7 +694,6 @@ CYCL:
|
||||
Value: 0
|
||||
Tooltip:
|
||||
Name: Chain Link Barrier
|
||||
Icon:cyclicnh
|
||||
Description: Stops infantry and blocks enemy fire.\nCan be crushed by tanks.
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
@@ -734,7 +713,6 @@ BRIK:
|
||||
Value: 0
|
||||
Tooltip:
|
||||
Name: Concrete Barrier
|
||||
Icon:brikicnh
|
||||
Description: Stop units and blocks enemy fire.
|
||||
Buildable:
|
||||
Queue: Defense
|
||||
|
||||
@@ -85,7 +85,6 @@ MISS:
|
||||
Dimensions: 3,2
|
||||
Tooltip:
|
||||
Name: Tech Center
|
||||
Icon: missicnh
|
||||
Buildable:
|
||||
Queue: Building
|
||||
BuildPaletteOrder: 1000
|
||||
|
||||
@@ -4,7 +4,6 @@ MCV:
|
||||
Cost: 2000
|
||||
Tooltip:
|
||||
Name: Mobile Construction Vehicle
|
||||
Icon: mcvicnh
|
||||
Description: Deploys into another Construction Yard.\n Unarmed
|
||||
Buildable:
|
||||
BuildPaletteOrder: 100
|
||||
@@ -45,7 +44,6 @@ HARV:
|
||||
Cost: 1200
|
||||
Tooltip:
|
||||
Name: Harvester
|
||||
Icon: harvicnh
|
||||
Description: Collects Tiberium for processing.\n Unarmed
|
||||
Buildable:
|
||||
BuildPaletteOrder: 10
|
||||
@@ -83,7 +81,6 @@ APC:
|
||||
Cost: 600
|
||||
Tooltip:
|
||||
Name: APC
|
||||
Icon: apcicnh
|
||||
Description: Armored infantry transport and mobile AA\n Strong vs Aircraft, Vehicles\n Weak vs Infantry
|
||||
Buildable:
|
||||
BuildPaletteOrder: 30
|
||||
@@ -132,7 +129,6 @@ ARTY:
|
||||
Cost: 600
|
||||
Tooltip:
|
||||
Name: Artillery
|
||||
Icon:artyicnh
|
||||
Description: Long-range artillery.\n Strong vs Infantry, Vehicles\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 60
|
||||
@@ -167,7 +163,6 @@ FTNK:
|
||||
Cost: 800
|
||||
Tooltip:
|
||||
Name: Flame Tank
|
||||
Icon: ftnkicnh
|
||||
Description: Heavily armored flame-throwing vehicle.\n Strong vs Infantry, Buildings, Vehicles\n Weak vs Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 50
|
||||
@@ -201,7 +196,6 @@ BGGY:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Nod Buggy
|
||||
Icon: bggyicnh
|
||||
Description: Fast scout & anti-infantry vehicle.\n Strong vs Infantry, Vehicles\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
@@ -236,7 +230,6 @@ BIKE:
|
||||
Cost: 500
|
||||
Tooltip:
|
||||
Name: Recon Bike
|
||||
Icon: bikeicnh
|
||||
Description: Fast scout vehicle, armed with \nrockets.\n Strong vs Vehicles, Aircraft\n Weak vs Infantry
|
||||
Buildable:
|
||||
BuildPaletteOrder: 30
|
||||
@@ -274,7 +267,6 @@ JEEP:
|
||||
Cost: 400
|
||||
Tooltip:
|
||||
Name: Hum-Vee
|
||||
Icon: jeepicnh
|
||||
Description: Fast scout & anti-infantry vehicle.\n Strong vs Infantry, Vehicles\n Weak vs Tanks, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 20
|
||||
@@ -309,7 +301,6 @@ LTNK:
|
||||
Cost: 600
|
||||
Tooltip:
|
||||
Name: Light Tank
|
||||
Icon: ltnkicnh
|
||||
Description: Fast, light tank.\n Strong vs Vehicles, Tanks\n Weak vs Infantry, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 40
|
||||
@@ -348,7 +339,6 @@ MTNK:
|
||||
Cost: 800
|
||||
Tooltip:
|
||||
Name: Med. Tank
|
||||
Icon: mtnkicnh
|
||||
Description: General-Purpose GDI Tank.\n Strong vs Tanks, Vehicles\n Weak vs Infantry, Aircraft
|
||||
Buildable:
|
||||
BuildPaletteOrder: 40
|
||||
@@ -388,7 +378,6 @@ HTNK:
|
||||
Cost: 1500
|
||||
Tooltip:
|
||||
Name: Mammoth Tank
|
||||
Icon: htnkicnh
|
||||
Description: Heavily armored GDI Tank.\n Strong vs Everything
|
||||
Buildable:
|
||||
BuildPaletteOrder: 60
|
||||
@@ -440,7 +429,6 @@ MSAM:
|
||||
Cost: 1200
|
||||
Tooltip:
|
||||
Name: MLRS
|
||||
Icon: msamicnh
|
||||
Description: Long range rocket artillery.\n Strong vs all ground units.
|
||||
Buildable:
|
||||
BuildPaletteOrder: 50
|
||||
@@ -475,7 +463,6 @@ MLRS:
|
||||
Cost: 600
|
||||
Tooltip:
|
||||
Name: Mobile S.A.M.
|
||||
Icon: mlrsicnh
|
||||
Description: Powerful anti-air unit.\nCannot attack ground units.
|
||||
Buildable:
|
||||
BuildPaletteOrder: 70
|
||||
@@ -516,7 +503,6 @@ STNK:
|
||||
Cost: 900
|
||||
Tooltip:
|
||||
Name: Stealth Tank
|
||||
Icon: stnkicnh
|
||||
Description: Long-range missile tank that can cloak.\nHas weak armor. Can be spotted by infantry.\n Strong vs Vehicles, Tanks, Aircraft\n Weak vs Infantry.
|
||||
Buildable:
|
||||
BuildPaletteOrder: 90
|
||||
@@ -554,7 +540,6 @@ MHQ:
|
||||
Cost: 1000
|
||||
Tooltip:
|
||||
Name: Mobile HQ
|
||||
Icon: mhqicnh
|
||||
Description: Base of operations
|
||||
Health:
|
||||
HP: 200
|
||||
|
||||
@@ -2,6 +2,8 @@ c17:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
icon: c17iconh
|
||||
Start: 0
|
||||
|
||||
tran:
|
||||
idle:
|
||||
@@ -24,6 +26,8 @@ tran:
|
||||
Length: 4
|
||||
unload:
|
||||
Start: 35
|
||||
icon: tranicnh
|
||||
Start: 0
|
||||
|
||||
heli:
|
||||
idle:
|
||||
@@ -39,6 +43,9 @@ heli:
|
||||
Start: 0
|
||||
Length: 6
|
||||
Facings: 8
|
||||
icon: heliicnh
|
||||
Start: 0
|
||||
|
||||
orca:
|
||||
idle:
|
||||
Start: 0
|
||||
@@ -46,8 +53,12 @@ orca:
|
||||
damaged-idle:
|
||||
Start: 32
|
||||
Facings: 32
|
||||
icon: orcaicnh
|
||||
Start: 0
|
||||
|
||||
a10:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
Facings: 32
|
||||
icon: a10icnh
|
||||
Start: 0
|
||||
@@ -34,4 +34,6 @@ boat:
|
||||
wake-right: wake
|
||||
Start: 0
|
||||
Length: 6
|
||||
Offset: -1,2
|
||||
Offset: -1,2
|
||||
icon: boaticnh
|
||||
Start: 0
|
||||
@@ -31,6 +31,8 @@ steg:
|
||||
die6:
|
||||
Start: 176
|
||||
Length: 22
|
||||
icon: stegicnh
|
||||
Start: 0
|
||||
|
||||
trex:
|
||||
stand:
|
||||
@@ -65,6 +67,8 @@ trex:
|
||||
die6:
|
||||
Start: 144
|
||||
Length: 40
|
||||
icon: trexicnh
|
||||
Start: 0
|
||||
|
||||
tric:
|
||||
stand:
|
||||
@@ -99,6 +103,8 @@ tric:
|
||||
die6:
|
||||
Start: 176
|
||||
Length: 20
|
||||
icon: tricicnh
|
||||
Start: 0
|
||||
|
||||
rapt:
|
||||
stand:
|
||||
@@ -132,4 +138,6 @@ rapt:
|
||||
Length: 40
|
||||
die6:
|
||||
Start: 144
|
||||
Length: 40
|
||||
Length: 40
|
||||
icon: rapticnh
|
||||
Start: 0
|
||||
@@ -6,6 +6,9 @@ vice:
|
||||
Start: 0
|
||||
Length: 13
|
||||
Facings: 8
|
||||
icon: viceicnh
|
||||
Start: 0
|
||||
|
||||
pvice:
|
||||
idle:
|
||||
Start: 0
|
||||
@@ -14,6 +17,9 @@ pvice:
|
||||
Start: 0
|
||||
Length: 13
|
||||
Facings: 8
|
||||
icon: viceicnh
|
||||
Start: 0
|
||||
|
||||
e1:
|
||||
stand:
|
||||
Start: 0
|
||||
@@ -109,6 +115,8 @@ e1:
|
||||
Start: 16
|
||||
Length: 4
|
||||
Tick: 1600
|
||||
icon: e1icnh
|
||||
Start: 0
|
||||
|
||||
e2:
|
||||
stand:
|
||||
@@ -196,6 +204,8 @@ e2:
|
||||
Start: 16
|
||||
Length: 4
|
||||
Tick: 1600
|
||||
icon: e2icnh
|
||||
Start: 0
|
||||
|
||||
e3:
|
||||
stand:
|
||||
@@ -283,6 +293,8 @@ e3:
|
||||
Start: 16
|
||||
Length: 4
|
||||
Tick: 1600
|
||||
icon: e3icnh
|
||||
Start: 0
|
||||
|
||||
e4:
|
||||
stand:
|
||||
@@ -374,6 +386,9 @@ e4:
|
||||
Start: 0
|
||||
Length: 13
|
||||
Facings: 8
|
||||
icon: e4icnh
|
||||
Start: 0
|
||||
|
||||
e5:
|
||||
stand:
|
||||
Start: 0
|
||||
@@ -464,6 +479,9 @@ e5:
|
||||
Start: 0
|
||||
Length: 13
|
||||
Facings: 8
|
||||
icon: e5icnh
|
||||
Start: 0
|
||||
|
||||
e6:
|
||||
stand:
|
||||
Start: 0
|
||||
@@ -542,6 +560,9 @@ e6:
|
||||
Start: 16
|
||||
Length: 4
|
||||
Tick: 1600
|
||||
icon: e6icnh
|
||||
Start: 0
|
||||
|
||||
rmbo:
|
||||
stand:
|
||||
Start: 0
|
||||
@@ -632,3 +653,5 @@ rmbo:
|
||||
Start: 16
|
||||
Length: 4
|
||||
Tick: 1600
|
||||
icon: rmboicnh
|
||||
Start: 0
|
||||
@@ -734,6 +734,8 @@ miss:
|
||||
Start: 0
|
||||
Length: *
|
||||
Tick: 80
|
||||
icon: missicnh
|
||||
Start: 0
|
||||
|
||||
miss.husk:
|
||||
idle: miss
|
||||
|
||||
@@ -296,4 +296,12 @@ poweroff:
|
||||
offline:
|
||||
Start: 0
|
||||
Length: *
|
||||
Tick: 160
|
||||
Tick: 160
|
||||
|
||||
icon:
|
||||
airstrike: bombicnh
|
||||
Start: 0
|
||||
ioncannon: ionicnh
|
||||
Start: 0
|
||||
abomb: atomicnh
|
||||
Start: 0
|
||||
@@ -24,6 +24,8 @@ fact:
|
||||
bib: bib2
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: facticnh
|
||||
Start: 0
|
||||
|
||||
nuke:
|
||||
idle:
|
||||
@@ -44,6 +46,8 @@ nuke:
|
||||
bib: bib3
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: nukeicnh
|
||||
Start: 0
|
||||
|
||||
proc:
|
||||
idle:
|
||||
@@ -71,6 +75,8 @@ proc:
|
||||
bib: bib2
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: procicnh
|
||||
Start: 0
|
||||
|
||||
silo:
|
||||
idle:
|
||||
@@ -88,6 +94,8 @@ silo:
|
||||
bib: bib3
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: siloicnh
|
||||
Start: 0
|
||||
|
||||
hand:
|
||||
idle:
|
||||
@@ -103,6 +111,8 @@ hand:
|
||||
bib: bib3
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: handicnh
|
||||
Start: 0
|
||||
|
||||
pyle:
|
||||
idle:
|
||||
@@ -123,6 +133,8 @@ pyle:
|
||||
bib: bib3
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: pyleicnh
|
||||
Start: 0
|
||||
|
||||
weap:
|
||||
idle:
|
||||
@@ -148,6 +160,8 @@ weap:
|
||||
bib: bib2
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: weapicnh
|
||||
Start: 0
|
||||
|
||||
afld:
|
||||
idle:
|
||||
@@ -178,6 +192,8 @@ afld:
|
||||
bib: bib1
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: afldicnh
|
||||
Start: 0
|
||||
|
||||
hq:
|
||||
idle:
|
||||
@@ -197,6 +213,8 @@ hq:
|
||||
bib: bib3
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: hqicnh
|
||||
Start: 0
|
||||
|
||||
nuk2:
|
||||
idle:
|
||||
@@ -216,6 +234,8 @@ nuk2:
|
||||
bib: bib3
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: nuk2icnh
|
||||
Start: 0
|
||||
|
||||
hpad:
|
||||
idle:
|
||||
@@ -241,6 +261,8 @@ hpad:
|
||||
Start: 0
|
||||
Length: *
|
||||
Tick: 80
|
||||
icon: hpadicnh
|
||||
Start: 0
|
||||
|
||||
fix:
|
||||
idle:
|
||||
@@ -263,6 +285,8 @@ fix:
|
||||
Start: 0
|
||||
Length: 14
|
||||
Tick: 60
|
||||
icon: fixicnh
|
||||
Start: 0
|
||||
|
||||
eye:
|
||||
idle:
|
||||
@@ -282,6 +306,8 @@ eye:
|
||||
bib: bib3
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: eyeicnh
|
||||
Start: 0
|
||||
|
||||
tmpl:
|
||||
idle:
|
||||
@@ -303,6 +329,8 @@ tmpl:
|
||||
bib: bib2
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: tmplicnh
|
||||
Start: 0
|
||||
|
||||
obli:
|
||||
idle:
|
||||
@@ -321,6 +349,8 @@ obli:
|
||||
Start: 0
|
||||
Length: 13
|
||||
Tick: 80
|
||||
icon: obliicnh
|
||||
Start: 0
|
||||
|
||||
brik:
|
||||
idle:
|
||||
@@ -335,6 +365,8 @@ brik:
|
||||
critical-idle:
|
||||
Start: 48
|
||||
Length: 16
|
||||
icon: brikicnh
|
||||
Start: 0
|
||||
|
||||
sbag:
|
||||
idle:
|
||||
@@ -343,6 +375,8 @@ sbag:
|
||||
damaged-idle:
|
||||
Start: 16
|
||||
Length: 16
|
||||
icon: sbagicnh
|
||||
Start: 0
|
||||
|
||||
cycl:
|
||||
idle:
|
||||
@@ -354,6 +388,8 @@ cycl:
|
||||
critical-idle:
|
||||
Start: 32
|
||||
Length: 16
|
||||
icon: cyclicnh
|
||||
Start: 0
|
||||
|
||||
barb:
|
||||
idle:
|
||||
@@ -391,6 +427,8 @@ gun:
|
||||
muzzle: gunfire2
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: gunicnh
|
||||
Start: 0
|
||||
|
||||
sam:
|
||||
closed-idle:
|
||||
@@ -429,6 +467,9 @@ sam:
|
||||
Start: 0
|
||||
Length: 18
|
||||
Facings: 8
|
||||
icon: samicnh
|
||||
Start: 0
|
||||
|
||||
gtwr:
|
||||
idle:
|
||||
Start: 0
|
||||
@@ -444,6 +485,8 @@ gtwr:
|
||||
Start: 0
|
||||
Length: 6
|
||||
Facings: 8
|
||||
icon: gtwricnh
|
||||
Start: 0
|
||||
|
||||
atwr:
|
||||
idle:
|
||||
@@ -459,4 +502,5 @@ atwr:
|
||||
muzzle: gunfire2
|
||||
Start: 0
|
||||
Length: *
|
||||
|
||||
icon: atwricnh
|
||||
Start: 0
|
||||
@@ -2,6 +2,8 @@ mcv:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
icon: mcvicnh
|
||||
Start: 0
|
||||
|
||||
harv:
|
||||
idle:
|
||||
@@ -18,6 +20,8 @@ harv:
|
||||
dock-loop: harvdump
|
||||
Start: 7
|
||||
Length: 1
|
||||
icon: harvicnh
|
||||
Start: 0
|
||||
|
||||
bggy:
|
||||
idle:
|
||||
@@ -30,6 +34,8 @@ bggy:
|
||||
Start: 0
|
||||
Length: 6
|
||||
Facings: 8
|
||||
icon: bggyicnh
|
||||
Start: 0
|
||||
|
||||
mtnk:
|
||||
idle:
|
||||
@@ -41,6 +47,8 @@ mtnk:
|
||||
muzzle: gunfire2
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: mtnkicnh
|
||||
Start: 0
|
||||
|
||||
ltnk:
|
||||
idle:
|
||||
@@ -52,6 +60,8 @@ ltnk:
|
||||
muzzle: gunfire2
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: ltnkicnh
|
||||
Start: 0
|
||||
|
||||
htnk:
|
||||
idle:
|
||||
@@ -63,6 +73,8 @@ htnk:
|
||||
muzzle: gunfire2
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: htnkicnh
|
||||
Start: 0
|
||||
|
||||
jeep:
|
||||
idle:
|
||||
@@ -75,11 +87,15 @@ jeep:
|
||||
Start: 0
|
||||
Length: 6
|
||||
Facings: 8
|
||||
icon: jeepicnh
|
||||
Start: 0
|
||||
|
||||
bike:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
icon: bikeicnh
|
||||
Start: 0
|
||||
|
||||
ftnk:
|
||||
idle:
|
||||
@@ -89,6 +105,8 @@ ftnk:
|
||||
Start: 0
|
||||
Length: 13
|
||||
Facings: 8
|
||||
icon: ftnkicnh
|
||||
Start: 0
|
||||
|
||||
mhq:
|
||||
idle:
|
||||
@@ -97,6 +115,8 @@ mhq:
|
||||
spinner:
|
||||
Start: 32
|
||||
Length: 32
|
||||
icon: mhqicnh
|
||||
Start: 0
|
||||
|
||||
msam:
|
||||
idle:
|
||||
@@ -111,6 +131,8 @@ msam:
|
||||
turret-3:
|
||||
Start: 64
|
||||
Facings: 32
|
||||
icon: msamicnh
|
||||
Start: 0
|
||||
|
||||
mlrs:
|
||||
idle:
|
||||
@@ -125,11 +147,15 @@ mlrs:
|
||||
turret-3:
|
||||
Start: 96
|
||||
Facings: 32
|
||||
icon: mlrsicnh
|
||||
Start: 0
|
||||
|
||||
stnk:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
icon: stnkicnh
|
||||
Start: 0
|
||||
|
||||
arty:
|
||||
idle:
|
||||
@@ -138,6 +164,8 @@ arty:
|
||||
muzzle: gunfire2
|
||||
Start: 0
|
||||
Length: *
|
||||
icon: artyicnh
|
||||
Start: 0
|
||||
|
||||
apc:
|
||||
idle:
|
||||
@@ -155,4 +183,6 @@ apc:
|
||||
Start: 32
|
||||
Length: 3
|
||||
unload:
|
||||
Start: 32
|
||||
Start: 32
|
||||
icon: apcicnh
|
||||
Start: 0
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mods/d2k/bits/mouse.r8
Normal file
BIN
mods/d2k/bits/mouse.r8
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mods/d2k/bits/rockcrater1.shp
Normal file
BIN
mods/d2k/bits/rockcrater1.shp
Normal file
Binary file not shown.
BIN
mods/d2k/bits/rockcrater2.shp
Normal file
BIN
mods/d2k/bits/rockcrater2.shp
Normal file
Binary file not shown.
BIN
mods/d2k/bits/sandcrater1.shp
Normal file
BIN
mods/d2k/bits/sandcrater1.shp
Normal file
Binary file not shown.
BIN
mods/d2k/bits/sandcrater2.shp
Normal file
BIN
mods/d2k/bits/sandcrater2.shp
Normal file
Binary file not shown.
Binary file not shown.
BIN
mods/d2k/bits/spice0.shp
Normal file
BIN
mods/d2k/bits/spice0.shp
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
203
mods/d2k/chrome/assetbrowser.yaml
Normal file
203
mods/d2k/chrome/assetbrowser.yaml
Normal file
@@ -0,0 +1,203 @@
|
||||
Background@ASSETBROWSER_BG:
|
||||
Logic:AssetBrowserLogic
|
||||
X:(WINDOW_RIGHT - WIDTH)/2
|
||||
Y:(WINDOW_BOTTOM - HEIGHT)/2
|
||||
Width:700
|
||||
Height:410
|
||||
Children:
|
||||
Label@ASSETBROWSER_TITLE:
|
||||
X:0
|
||||
Y:20
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:Game Asset Viewer & Converter
|
||||
Align:Center
|
||||
Font:Bold
|
||||
DropDownButton@SOURCE_SELECTOR:
|
||||
X:40
|
||||
Y:45
|
||||
Width:160
|
||||
Height:25
|
||||
Font:Bold
|
||||
Text:Folders
|
||||
ScrollPanel@ASSET_LIST:
|
||||
X:40
|
||||
Y:80
|
||||
Width:160
|
||||
Height:190
|
||||
Children:
|
||||
ScrollItem@ASSET_TEMPLATE:
|
||||
Width:PARENT_RIGHT-27
|
||||
Height:25
|
||||
X:2
|
||||
Y:0
|
||||
Visible:false
|
||||
Children:
|
||||
Label@TITLE:
|
||||
X:10
|
||||
Width:PARENT_RIGHT-20
|
||||
Height:25
|
||||
TextField@FILENAME_INPUT:
|
||||
X:40
|
||||
Y:280
|
||||
Width:140
|
||||
Height:25
|
||||
Button@LOAD_BUTTON:
|
||||
X:40
|
||||
Y:310
|
||||
Width:140
|
||||
Height:25
|
||||
Text:Load
|
||||
Font:Bold
|
||||
Key:return
|
||||
Label@PREVIEW_TITLE:
|
||||
X:320
|
||||
Y:45
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:Preview
|
||||
Font:Bold
|
||||
Background@SPRITE_BG:
|
||||
X:220
|
||||
Y:80
|
||||
Width:250
|
||||
Height:250
|
||||
Background:dialog4
|
||||
Children:
|
||||
ShpImage@SPRITE:
|
||||
X:4
|
||||
Y:4
|
||||
Width:246
|
||||
Height:246
|
||||
Image:DATA.R8
|
||||
Palette:colorpicker
|
||||
Label@ACTIONS_TITLE:
|
||||
X:PARENT_RIGHT - 150
|
||||
Y:45
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:Actions
|
||||
Font:Bold
|
||||
Button@EXPORT_BUTTON:
|
||||
X:PARENT_RIGHT - 200
|
||||
Y:80
|
||||
Width:160
|
||||
Height:25
|
||||
Text:Selected to PNG
|
||||
Font:Bold
|
||||
Button@EXTRACT_BUTTON:
|
||||
X:PARENT_RIGHT - 200
|
||||
Y:115
|
||||
Width:160
|
||||
Height:25
|
||||
Text:Extract all to PNG
|
||||
Font:Bold
|
||||
TextField@IMAGE_FILENAME_INPUT:
|
||||
X:PARENT_RIGHT - 200
|
||||
Y:PARENT_BOTTOM - 235
|
||||
Width:100
|
||||
Height:25
|
||||
Text:pixelart.png
|
||||
TextField@IMAGE_SIZE_INPUT:
|
||||
X:PARENT_RIGHT - 90
|
||||
Y:PARENT_BOTTOM - 235
|
||||
Width:50
|
||||
Height:25
|
||||
Text:width
|
||||
Button@IMPORT_BUTTON:
|
||||
X:PARENT_RIGHT - 200
|
||||
Y:PARENT_BOTTOM - 200
|
||||
Width:160
|
||||
Height:25
|
||||
Text:Import from PNG
|
||||
Font:Bold
|
||||
Button@CLOSE_BUTTON:
|
||||
X:PARENT_RIGHT - 200
|
||||
Y:PARENT_BOTTOM - 115
|
||||
Width:160
|
||||
Height:25
|
||||
Text:Close
|
||||
Font:Bold
|
||||
Key:escape
|
||||
Container@FRAME_SELECTOR:
|
||||
X:45
|
||||
Y:360
|
||||
Children:
|
||||
Button@BUTTON_PREV:
|
||||
X:0
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
Children:
|
||||
Image@IMAGE_PREV:
|
||||
X:0
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
ImageCollection:music
|
||||
ImageName:prev
|
||||
Button@BUTTON_PLAY:
|
||||
X:35
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
Children:
|
||||
Image@IMAGE_PLAY:
|
||||
X:0
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
ImageCollection:music
|
||||
ImageName:play
|
||||
Button@BUTTON_PAUSE:
|
||||
Visible: no
|
||||
X:35
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
Children:
|
||||
Image@IMAGE_PAUSE:
|
||||
X:0
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
ImageCollection:music
|
||||
ImageName:pause
|
||||
Button@BUTTON_STOP:
|
||||
X:70
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
Children:
|
||||
Image@IMAGE_STOP:
|
||||
X:0
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
ImageCollection:music
|
||||
ImageName:stop
|
||||
Button@BUTTON_NEXT:
|
||||
X:105
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
Children:
|
||||
Image@IMAGE_NEXT:
|
||||
X:0
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
ImageCollection:music
|
||||
ImageName:next
|
||||
Slider@FRAME_SLIDER:
|
||||
X:160
|
||||
Y:0
|
||||
Width:410
|
||||
Height:20
|
||||
MinimumValue: 0
|
||||
Label@FRAME_COUNT:
|
||||
X:585
|
||||
Y:0
|
||||
Width:25
|
||||
Height:25
|
||||
Font:Bold
|
||||
@@ -32,8 +32,8 @@ Background@COLOR_CHOOSER:
|
||||
ShpImage@FACT:
|
||||
X:160
|
||||
Y:8
|
||||
Image:carryall
|
||||
Frame:13
|
||||
Image:DATA.R8
|
||||
Frame:1936
|
||||
Palette:colorpicker
|
||||
Button@RANDOM_BUTTON:
|
||||
Key:tab
|
||||
|
||||
@@ -3,7 +3,7 @@ Background@INSTALL_PANEL:
|
||||
X:(WINDOW_RIGHT - WIDTH)/2
|
||||
Y:(WINDOW_BOTTOM - HEIGHT)/2
|
||||
Width:630
|
||||
Height:350
|
||||
Height:200
|
||||
Children:
|
||||
Label@TITLE:
|
||||
X:0
|
||||
@@ -13,51 +13,23 @@ Background@INSTALL_PANEL:
|
||||
Text:Content files missing
|
||||
Align:Center
|
||||
Font:Bold
|
||||
Label@DESC1:
|
||||
Label@WELCOME:
|
||||
X:0
|
||||
Y:50
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:This is the work in progress Dune 2000 mod.
|
||||
Text:This is the work in progress Dune 2000 mod. It requires the original game files.
|
||||
Align:Center
|
||||
Label@DESC2:
|
||||
Label@DOWNLOAD:
|
||||
X:0
|
||||
Y:90
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:It requires the original Dune 2000 assets whose fileformats differ from other C&C games.
|
||||
Text:The easiest way is to simply click "Download" to fetch a minimal subset to get started.
|
||||
Align:Center
|
||||
Label@DESC3:
|
||||
Label@VIA_CD:
|
||||
X:0
|
||||
Y:130
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:The easiest way is to simply click download to fetch already prepared files and restart.
|
||||
Align:Center
|
||||
Label@DESC4:
|
||||
X:0
|
||||
Y:170
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:You can also copy "Dune 2000/Data/GAMESFX" folder and "Dune 2000/DATA/*.R8" files
|
||||
Align:Center
|
||||
Label@DESC5:
|
||||
X:0
|
||||
Y:190
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text: from your local Dune 2000 1.03 installation to ~/.openra/Content/d2k/ (Linux)
|
||||
Align:Center
|
||||
Label@DESC6:
|
||||
X:0
|
||||
Y:210
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text: or "My Documents/OpenRA/Content/d2k/" (Windows) and click "Extract Data".
|
||||
Align:Center
|
||||
Label@DESC7:
|
||||
X:0
|
||||
Y:250
|
||||
Y:110
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text: Put in your Dune 2000 CD and click "From CD" to extract game assets including music.
|
||||
@@ -76,13 +48,6 @@ Background@INSTALL_PANEL:
|
||||
Height:25
|
||||
Text:From CD
|
||||
Font:Bold
|
||||
Button@EXTRACT_BUTTON:
|
||||
X:260
|
||||
Y:PARENT_BOTTOM - 45
|
||||
Width:110
|
||||
Height:25
|
||||
Text:Extract Data
|
||||
Font:Bold
|
||||
Button@MODS_BUTTON:
|
||||
X:PARENT_RIGHT - 250
|
||||
Y:PARENT_BOTTOM - 45
|
||||
@@ -205,69 +170,4 @@ Background@INSTALL_FROMCD_PANEL:
|
||||
Height:25
|
||||
Text:Back
|
||||
Font:Bold
|
||||
Key:escape
|
||||
|
||||
Background@EXTRACT_GAMEFILES_PANEL:
|
||||
Logic:D2kExtractGameFilesLogic
|
||||
X:(WINDOW_RIGHT - WIDTH)/2
|
||||
Y:(WINDOW_BOTTOM - HEIGHT)/2
|
||||
Width:500
|
||||
Height:160
|
||||
Children:
|
||||
Label@TITLE:
|
||||
X:0
|
||||
Y:20
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:Extracting and Converting Dune 2000 Gamefiles
|
||||
Align:Center
|
||||
Font:Bold
|
||||
Container@EXTRACTING:
|
||||
Width:PARENT_RIGHT
|
||||
Height:PARENT_BOTTOM
|
||||
Visible: false
|
||||
Children:
|
||||
ProgressBar@PROGRESS_BAR:
|
||||
X:50
|
||||
Y:55
|
||||
Width:PARENT_RIGHT - 100
|
||||
Height:25
|
||||
Label@STATUS_LABEL:
|
||||
X:50
|
||||
Y:80
|
||||
Width:PARENT_RIGHT - 100
|
||||
Height:25
|
||||
Align:Left
|
||||
Container@COPY_FILES:
|
||||
Width:PARENT_RIGHT
|
||||
Height:PARENT_BOTTOM
|
||||
Visible: false
|
||||
Children:
|
||||
Label@INFO:
|
||||
Y:50
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:Gamefiles not not found.
|
||||
Align:Center
|
||||
Label@INFO2:
|
||||
Y:70
|
||||
Width:PARENT_RIGHT
|
||||
Height:25
|
||||
Text:Please copy the Data/*.R8 files from your Dune 2000 installation to OpenRAs Content/d2k directory then click Retry.
|
||||
Align:Center
|
||||
Button@RETRY_BUTTON:
|
||||
X:PARENT_RIGHT - 280
|
||||
Y:PARENT_BOTTOM - 45
|
||||
Width:120
|
||||
Height:25
|
||||
Text:Retry
|
||||
Font:Bold
|
||||
Key:return
|
||||
Button@BACK_BUTTON:
|
||||
X:PARENT_RIGHT - 140
|
||||
Y:PARENT_BOTTOM - 45
|
||||
Width:120
|
||||
Height:25
|
||||
Text:Back
|
||||
Font:Bold
|
||||
Key:escape
|
||||
Key:escape
|
||||
@@ -153,13 +153,15 @@ Container@PLAYER_WIDGETS:
|
||||
BuildPalette@INGAME_BUILD_PALETTE:
|
||||
X:WINDOW_RIGHT - 250
|
||||
Y:280
|
||||
Width:238 # TODO: why is this ignored?
|
||||
Width:238
|
||||
Height:500
|
||||
ReadyText: READY
|
||||
HoldText: ON HOLD
|
||||
RequiresText: Requires
|
||||
IconWidth: 60
|
||||
IconHeight: 48
|
||||
Columns: 3
|
||||
Rows: 4
|
||||
Background@DIPLOMACY_BG:
|
||||
Logic:DiplomacyLogic
|
||||
X:(WINDOW_RIGHT - WIDTH)/2
|
||||
|
||||
@@ -2,246 +2,255 @@ ShadowIndex: 1
|
||||
|
||||
Palettes:
|
||||
cursor: cursor.pal
|
||||
mouse: d2k.pal
|
||||
mouse.r8: d2k.pal
|
||||
|
||||
Cursors:
|
||||
mouse: mouse
|
||||
mouse.r8: mouse.r8
|
||||
scroll-t:
|
||||
start:112
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-tr:
|
||||
start: 120
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-r:
|
||||
start: 128
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-br:
|
||||
start: 136
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-b:
|
||||
start:148
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-bl:
|
||||
start:156
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-l:
|
||||
start:164
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-tl:
|
||||
start:172
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-t-blocked:
|
||||
start:180
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-tr-blocked:
|
||||
start:188
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-r-blocked:
|
||||
start:196
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-br-blocked:
|
||||
start:204
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-b-blocked:
|
||||
start:212
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-bl-blocked:
|
||||
start:220
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-l-blocked:
|
||||
start:228
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
scroll-tl-blocked:
|
||||
start:236
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
select:
|
||||
start:40
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
|
||||
x: 24
|
||||
y: 24
|
||||
default:
|
||||
start:0
|
||||
x: 24
|
||||
y: 24
|
||||
default-minimap:
|
||||
start:0
|
||||
x: 24
|
||||
y: 24
|
||||
generic-blocked:
|
||||
start:24
|
||||
x: 24
|
||||
y: 24
|
||||
generic-blocked-minimap:
|
||||
start:24
|
||||
x: 24
|
||||
y: 24
|
||||
move:
|
||||
start:8
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
move-minimap:
|
||||
start:48
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
move-blocked:
|
||||
start:24
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
move-blocked-minimap:
|
||||
start:24
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
attack:
|
||||
start:16
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
attack-minimap:
|
||||
start:16
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
attackmove:
|
||||
start:16
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
attackmove-minimap:
|
||||
start:16
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
harvest:
|
||||
start:16
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
harvest-minimap:
|
||||
start:203
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
enter:
|
||||
start:32
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
enter-minimap:
|
||||
start:32
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
enter-blocked:
|
||||
start:104
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
enter-blocked-minimap:
|
||||
start:104
|
||||
x: 24
|
||||
y: 24
|
||||
c4:
|
||||
start:248
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
c4-minimap:
|
||||
start:248
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
guard:
|
||||
start:72
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
guard-minimap:
|
||||
start:72
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
capture:
|
||||
start:32
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
capture-minimap:
|
||||
start:32
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
ability:
|
||||
start:72
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
ability-minimap:
|
||||
start:72
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
|
||||
# Cursors that need minimap variants
|
||||
deploy:
|
||||
start:96
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
deploy-blocked:
|
||||
start:104
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
nuke:
|
||||
start:240
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
|
||||
sell:
|
||||
start:80
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
sell-blocked:
|
||||
start:56
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
repair:
|
||||
start:88
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
repair-blocked:
|
||||
start:64
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
goldwrench:
|
||||
start:88
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
goldwrench-blocked:
|
||||
start:64
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
move-rough:
|
||||
start:256
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
x: 24
|
||||
y: 24
|
||||
|
||||
nopower: cursor
|
||||
powerdown-blocked:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
Metadata:
|
||||
Title: Dune 2000 (beta)
|
||||
Description: early version of the Dune 2000 mod
|
||||
Title: Dune 2000
|
||||
Description: OpenRA Reimagining of the classic game
|
||||
Version: {DEV_VERSION}
|
||||
Author: The OpenRA Developers
|
||||
|
||||
@@ -10,16 +10,11 @@ Folders:
|
||||
./mods/d2k/bits
|
||||
./mods/d2k/uibits
|
||||
./mods/ra/uibits
|
||||
~^/Content/ra
|
||||
~^/Content/d2k
|
||||
~^/Content/d2k/GAMESFX
|
||||
~^/Content/d2k/Music
|
||||
~^/Content/d2k/Tilesets
|
||||
~^/Content/d2k/SHPs
|
||||
|
||||
Packages:
|
||||
~main.mix
|
||||
conquer.mix
|
||||
SOUND.RS
|
||||
|
||||
Rules:
|
||||
@@ -75,12 +70,10 @@ ChromeLayout:
|
||||
mods/ra/chrome/cheats.yaml
|
||||
mods/ra/chrome/musicplayer.yaml
|
||||
mods/d2k/chrome/tooltips.yaml
|
||||
mods/ra/chrome/assetbrowser.yaml
|
||||
mods/d2k/chrome/assetbrowser.yaml
|
||||
mods/ra/chrome/convertassets.yaml
|
||||
|
||||
Weapons:
|
||||
mods/d2k/weapons/defaults.yaml
|
||||
mods/d2k/weapons/explosions.yaml
|
||||
mods/d2k/weapons.yaml
|
||||
|
||||
Voices:
|
||||
@@ -101,8 +94,8 @@ Movies:
|
||||
|
||||
LoadScreen: D2kLoadScreen
|
||||
InstallerMenuWidget: INSTALL_PANEL
|
||||
TestFile: SOUND.RS
|
||||
PackageURL: http://open-ra.org/get-dependency.php?file=d2k-complete-packages
|
||||
TestFile: DATA.R8
|
||||
PackageURL: http://open-ra.org/get-dependency.php?file=d2k-103-packages
|
||||
|
||||
ServerTraits:
|
||||
LobbyCommands
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
Tooltip:
|
||||
Name: Carryall
|
||||
Description: Fast drop ship.\n Unarmed
|
||||
Icon: carryallicon
|
||||
Health:
|
||||
HP: 250
|
||||
Armor:
|
||||
@@ -17,7 +16,7 @@
|
||||
ROT: 4
|
||||
Speed: 30
|
||||
LandableTerrainTypes: Sand, Rock, Transition, Spice, Dune
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
LandAltitude: 800
|
||||
RenderUnit:
|
||||
@@ -42,7 +41,7 @@ FRIGATE:
|
||||
Plane:
|
||||
ROT: 5
|
||||
Speed: 50
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
Health:
|
||||
HP: 500
|
||||
@@ -85,7 +84,7 @@ ORNI:
|
||||
InitialFacing: 20
|
||||
ROT: 6
|
||||
Speed: 40
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
RenderUnit:
|
||||
WithShadow:
|
||||
@@ -108,7 +107,7 @@ ORNI.bomber:
|
||||
Plane:
|
||||
ROT: 5
|
||||
Speed: 50
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
LimitedAmmo:
|
||||
Ammo: 5
|
||||
@@ -137,7 +136,7 @@ CARRYALL.infantry:
|
||||
Plane:
|
||||
ROT: 4
|
||||
Speed: 40
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
RenderUnit:
|
||||
Image: carryall
|
||||
@@ -169,7 +168,7 @@ CARRYALL.Husk:
|
||||
Helicopter:
|
||||
ROT: 4
|
||||
Speed: 30
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
RenderUnit:
|
||||
Image: carryall
|
||||
@@ -182,7 +181,7 @@ ORNI.Husk:
|
||||
Helicopter:
|
||||
ROT: 6
|
||||
Speed: 40
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
RenderUnit:
|
||||
Image: orni
|
||||
@@ -195,7 +194,7 @@ ORNI.bomber.Husk:
|
||||
Plane:
|
||||
ROT: 5
|
||||
Speed: 50
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
RenderUnit:
|
||||
Image: orni
|
||||
@@ -208,7 +207,7 @@ CARRYALL.infantry.Husk:
|
||||
Plane:
|
||||
ROT: 4
|
||||
Speed: 40
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
RenderUnit:
|
||||
Image: carryall
|
||||
@@ -221,7 +220,7 @@ BADR.Husk:
|
||||
Plane:
|
||||
ROT: 4
|
||||
Speed: 40
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
RearmBuildings: starporta,starporto,starporth
|
||||
RenderUnit:
|
||||
Image: carryall
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
CONYARDA:
|
||||
Inherits: ^CONYARD
|
||||
Transforms:
|
||||
IntoActor: mcva
|
||||
Offset:1,1
|
||||
Facing: 270
|
||||
|
||||
PWRA:
|
||||
Inherits: ^POWER
|
||||
Buildable:
|
||||
Owner: atreides
|
||||
|
||||
GUNTOWERA:
|
||||
Inherits: ^GUNTOWER
|
||||
Buildable:
|
||||
Owner: atreides
|
||||
|
||||
ROCKETTOWERA:
|
||||
Inherits: ^ROCKETTOWER
|
||||
Buildable:
|
||||
Owner: atreides
|
||||
|
||||
REFA:
|
||||
Inherits: ^REFINERY
|
||||
Buildable:
|
||||
@@ -22,6 +28,15 @@ BARRA:
|
||||
Buildable:
|
||||
Owner: atreides
|
||||
|
||||
REPAIRA:
|
||||
Inherits: ^REPAIR
|
||||
Buildable:
|
||||
Owner: atreides
|
||||
|
||||
RESEARCHA:
|
||||
Inherits: ^RESEARCH
|
||||
Buildable:
|
||||
Owner: atreides
|
||||
|
||||
HIGHTECHA:
|
||||
Inherits: ^HIGHTECH
|
||||
@@ -33,7 +48,7 @@ PALACEA:
|
||||
Buildable:
|
||||
Owner: atreides
|
||||
AirstrikePower:
|
||||
Image: orniicon
|
||||
Icon: ornistrike
|
||||
Description: Air Strike
|
||||
ChargeTime: 180
|
||||
LongDesc: Ornithopter drops a load of parachuted\nbombs on your target
|
||||
@@ -92,21 +107,6 @@ MCVA.starport:
|
||||
Valued:
|
||||
Cost: 2500
|
||||
|
||||
TRIKEA:
|
||||
Inherits: ^TRIKE
|
||||
Buildable:
|
||||
Owner: atreides, harkonnen
|
||||
RenderUnit:
|
||||
Image: TRIKE
|
||||
|
||||
TRIKEA.starport:
|
||||
Inherits: TRIKEA
|
||||
Buildable:
|
||||
Owner: atreides, harkonnen, ordos
|
||||
Queue: Starport
|
||||
Valued:
|
||||
Cost: 315
|
||||
|
||||
CARRYALLA:
|
||||
Inherits: ^CARRYALL
|
||||
RenderUnit:
|
||||
@@ -119,8 +119,6 @@ CARRYALLA.starport:
|
||||
|
||||
COMBATA:
|
||||
Inherits: ^COMBAT
|
||||
Tooltip:
|
||||
Icon: combataicon
|
||||
Buildable:
|
||||
Owner: atreides
|
||||
RevealsShroud:
|
||||
@@ -141,8 +139,6 @@ COMBATA:
|
||||
|
||||
COMBATA.Husk:
|
||||
Inherits: ^COMBAT.Husk
|
||||
Tooltip:
|
||||
Icon: combataicon
|
||||
RenderUnit:
|
||||
Image: COMBATA
|
||||
|
||||
@@ -166,7 +162,6 @@ SONICTANK:
|
||||
Tooltip:
|
||||
Name: Sonic Tank
|
||||
Description: Fires sonic shocks\n Strong vs Infantry, Vehicles\n Weak vs Artillery, Aircraft
|
||||
Icon: sonictankicon
|
||||
Selectable:
|
||||
Bounds: 30,30
|
||||
Health:
|
||||
@@ -193,8 +188,6 @@ SONICTANK:
|
||||
|
||||
SONICTANK.Husk:
|
||||
Inherits: ^Husk
|
||||
Tooltip:
|
||||
Icon: sonictankicon
|
||||
RenderUnit:
|
||||
Image: SONICTANK
|
||||
|
||||
|
||||
@@ -28,10 +28,11 @@
|
||||
Types:Vehicle
|
||||
GivesBounty:
|
||||
Repairable:
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
DebugMuzzlePositions:
|
||||
Guard:
|
||||
Guardable:
|
||||
RenderUnit:
|
||||
BodyOrientation:
|
||||
UpdatesPlayerStatistics:
|
||||
|
||||
@@ -65,10 +66,11 @@
|
||||
Types:Tank
|
||||
GivesBounty:
|
||||
Repairable:
|
||||
RepairBuildings: repair
|
||||
RepairBuildings: repaira,repairo,repairh
|
||||
DebugMuzzlePositions:
|
||||
Guard:
|
||||
Guardable:
|
||||
RenderUnit:
|
||||
BodyOrientation:
|
||||
UpdatesPlayerStatistics:
|
||||
|
||||
@@ -234,3 +236,4 @@
|
||||
Range: 3
|
||||
BodyOrientation:
|
||||
UpdatesPlayerStatistics:
|
||||
WithCrumbleOverlay:
|
||||
@@ -1,15 +1,21 @@
|
||||
CONYARDH:
|
||||
Inherits: ^CONYARD
|
||||
Transforms:
|
||||
IntoActor: mcvh
|
||||
Offset:1,1
|
||||
Facing: 270
|
||||
|
||||
PWRH:
|
||||
Inherits: ^POWER
|
||||
Buildable:
|
||||
Owner: harkonnen
|
||||
|
||||
GUNTOWERH:
|
||||
Inherits: ^GUNTOWER
|
||||
Buildable:
|
||||
Owner: harkonnen
|
||||
|
||||
ROCKETTOWERH:
|
||||
Inherits: ^ROCKETTOWER
|
||||
Buildable:
|
||||
Owner: harkonnen
|
||||
|
||||
REFH:
|
||||
Inherits: ^REFINERY
|
||||
Buildable:
|
||||
@@ -23,6 +29,16 @@ BARRH:
|
||||
Owner: harkonnen
|
||||
-RepairsUnits:
|
||||
|
||||
REPAIRH:
|
||||
Inherits: ^REPAIR
|
||||
Buildable:
|
||||
Owner: harkonnen
|
||||
|
||||
RESEARCHH:
|
||||
Inherits: ^RESEARCH
|
||||
Buildable:
|
||||
Owner: harkonnen
|
||||
|
||||
SILOH:
|
||||
Inherits: ^SILO
|
||||
Buildable:
|
||||
@@ -64,7 +80,7 @@ PALACEH:
|
||||
Tooltip:
|
||||
Description: Provides elite infantry\n Special Ability: Death Hand Missile
|
||||
NukePower:
|
||||
Image: deathhandicon
|
||||
Icon: deathhand
|
||||
ChargeTime: 300
|
||||
Description: Death Hand
|
||||
LongDesc: Launches a nuclear missile at a target location
|
||||
@@ -97,38 +113,6 @@ MCVH.starport:
|
||||
Valued:
|
||||
Cost: 2500
|
||||
|
||||
#TRIKEH:
|
||||
# Inherits: ^TRIKE
|
||||
# Buildable:
|
||||
# Owner: harkonnen
|
||||
# Valued:
|
||||
# Cost: 250
|
||||
# Tooltip:
|
||||
# Name: Scout Quad
|
||||
# Description: Heavy Scout\n Strong vs Infantry
|
||||
# Icon: quadicon
|
||||
# Health:
|
||||
# HP: 125
|
||||
# Mobile:
|
||||
# ROT: 9
|
||||
# Speed: 11
|
||||
# Armament:
|
||||
# Weapon: M60mg
|
||||
# LocalOffset: 43,0,128
|
||||
# AttackFrontal:
|
||||
# RenderUnit:
|
||||
# Image: QUAD
|
||||
|
||||
#TRIKEH.starport:
|
||||
# Inherits: ^TRIKE
|
||||
# Buildable:
|
||||
# Owner: harkonnen
|
||||
# Queue: Starport
|
||||
# Valued:
|
||||
# Cost: 149
|
||||
# RenderUnit:
|
||||
# Image: TRIKE
|
||||
|
||||
CARRYALLH:
|
||||
Inherits: ^CARRYALL
|
||||
RenderUnit:
|
||||
@@ -139,16 +123,8 @@ CARRYALLH.starport:
|
||||
Valued:
|
||||
Cost: 1500
|
||||
|
||||
QUADH:
|
||||
Inherits: QUAD
|
||||
Buildable:
|
||||
-Prerequisites:
|
||||
Owner: harkonnen
|
||||
|
||||
COMBATH:
|
||||
Inherits: ^COMBAT
|
||||
Tooltip:
|
||||
Icon: combathicon
|
||||
Buildable:
|
||||
Owner: harkonnen
|
||||
Mobile:
|
||||
@@ -166,8 +142,6 @@ COMBATH:
|
||||
|
||||
COMBATH.Husk:
|
||||
Inherits: ^COMBAT.Husk
|
||||
Tooltip:
|
||||
Icon: combathicon
|
||||
RenderUnit:
|
||||
Image: COMBATH
|
||||
|
||||
@@ -183,7 +157,7 @@ DEVAST:
|
||||
Buildable:
|
||||
Queue: Armor
|
||||
BuildPaletteOrder: 100
|
||||
Prerequisites: Ix
|
||||
Prerequisites: Research
|
||||
Owner: harkonnen
|
||||
Hotkey: d
|
||||
Valued:
|
||||
@@ -191,7 +165,6 @@ DEVAST:
|
||||
Tooltip:
|
||||
Name: Devastator
|
||||
Description: Super Heavy Tank\n Strong vs Tanks\n Weak vs Artillery, Aircraft
|
||||
Icon: devasticon
|
||||
Health:
|
||||
HP: 650
|
||||
Armor:
|
||||
@@ -220,8 +193,6 @@ DEVAST.Husk:
|
||||
Inherits: ^Husk
|
||||
Health:
|
||||
HP: 125
|
||||
Tooltip:
|
||||
Icon: devasticon
|
||||
RenderUnit:
|
||||
Image: DEVAST
|
||||
|
||||
|
||||
@@ -91,7 +91,6 @@ MEDIC:
|
||||
Tooltip:
|
||||
Name: Medic
|
||||
Description: Heals nearby infantry\n Strong vs Nothing\n Weak vs Everything
|
||||
Icon: thumpericon
|
||||
Selectable:
|
||||
Bounds: 12,17,0,0
|
||||
Voice: EngineerVoice
|
||||
@@ -108,59 +107,4 @@ MEDIC:
|
||||
PipType: Blue
|
||||
-AutoTarget:
|
||||
AttackMove:
|
||||
JustMove: true
|
||||
RenderInfantry:
|
||||
Image: THUMPER
|
||||
|
||||
|
||||
#THUMPER:
|
||||
# Inherits: ^Infantry
|
||||
# Buildable:
|
||||
# Queue: Infantry
|
||||
# BuildPaletteOrder: 50
|
||||
# Owner: atreides,harkonnen,ordos
|
||||
# Valued:
|
||||
# Cost: 400
|
||||
# Tooltip:
|
||||
# Name: Thumper
|
||||
# Description: Attracts sandsworm through vibrations\n Strong vs Nothing\n Weak vs Everything
|
||||
# Selectable:
|
||||
# Bounds: 12,17,0,0
|
||||
# Health:
|
||||
# HP: 25
|
||||
# Mobile:
|
||||
# Speed: 4
|
||||
# Passenger:
|
||||
# -AutoTarget:
|
||||
# AttackMove:
|
||||
# JustMove: true
|
||||
# Transforms:
|
||||
# IntoActor: thumping
|
||||
# Offset:1,1
|
||||
# Facing: 1
|
||||
#
|
||||
#THUMPING:
|
||||
# Inherits: ^Building
|
||||
# Building:
|
||||
# Power: 0
|
||||
# Footprint: x
|
||||
# Dimensions: 1,1
|
||||
# TerrainTypes: Sand, Dune
|
||||
# Health:
|
||||
# HP: 25
|
||||
# Armor:
|
||||
# Type: None
|
||||
# RevealsShroud:
|
||||
# Range: 5
|
||||
# Valued:
|
||||
# Cost: 400
|
||||
# Tooltip:
|
||||
# Name: Thumper
|
||||
# -Capturable:
|
||||
# -CapturableBar:
|
||||
# -Sellable:
|
||||
# -GivesBuildableArea:
|
||||
# FreeActor:
|
||||
# Actor: SANDWORM
|
||||
# SpawnOffset: 1,2
|
||||
# Facing: 1
|
||||
JustMove: true
|
||||
@@ -1,15 +1,21 @@
|
||||
CONYARDO:
|
||||
Inherits: ^CONYARD
|
||||
Transforms:
|
||||
IntoActor: mcvo
|
||||
Offset:1,1
|
||||
Facing: 270
|
||||
|
||||
PWRO:
|
||||
Inherits: ^POWER
|
||||
Buildable:
|
||||
Owner: ordos
|
||||
|
||||
GUNTOWERO:
|
||||
Inherits: ^GUNTOWER
|
||||
Buildable:
|
||||
Owner: ordos
|
||||
|
||||
ROCKETTOWERO:
|
||||
Inherits: ^ROCKETTOWER
|
||||
Buildable:
|
||||
Owner: ordos
|
||||
|
||||
REFO:
|
||||
Inherits: ^REFINERY
|
||||
Buildable:
|
||||
@@ -22,6 +28,16 @@ BARRO:
|
||||
Buildable:
|
||||
Owner: ordos
|
||||
|
||||
REPAIRO:
|
||||
Inherits: ^REPAIR
|
||||
Buildable:
|
||||
Owner: ordos
|
||||
|
||||
RESEARCHO:
|
||||
Inherits: ^RESEARCH
|
||||
Buildable:
|
||||
Owner: ordos
|
||||
|
||||
SILOO:
|
||||
Inherits: ^SILO
|
||||
Buildable:
|
||||
@@ -61,7 +77,7 @@ PALACEO:
|
||||
Buildable:
|
||||
Owner: ordos
|
||||
AirstrikePower:
|
||||
Image: orniicon
|
||||
Icon: ornistrike
|
||||
Description: Air Strike
|
||||
ChargeTime: 180
|
||||
LongDesc: Ornithopter drops a load of parachuted\nbombs on your target
|
||||
@@ -93,8 +109,6 @@ MCVO.starport:
|
||||
|
||||
COMBATO:
|
||||
Inherits: ^COMBAT
|
||||
Tooltip:
|
||||
Icon: combatoicon
|
||||
Buildable:
|
||||
Owner: ordos
|
||||
RevealsShroud:
|
||||
@@ -113,8 +127,6 @@ COMBATO:
|
||||
|
||||
COMBATO.Husk:
|
||||
Inherits: ^COMBAT.Husk
|
||||
Tooltip:
|
||||
Icon: combatoicon
|
||||
RenderUnit:
|
||||
Image: COMBATO
|
||||
|
||||
@@ -125,31 +137,44 @@ COMBATO.starport:
|
||||
Valued:
|
||||
Cost: 875
|
||||
|
||||
TRIKEO:
|
||||
Inherits: ^TRIKE
|
||||
RAIDER:
|
||||
Inherits: ^Vehicle
|
||||
Buildable:
|
||||
Queue: Vehicle
|
||||
BuildPaletteOrder: 10
|
||||
Hotkey: w
|
||||
Owner: ordos
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Name: Raider Trike
|
||||
Description: Improved Scout\n Strong vs Infantry, Light Vehicles
|
||||
Icon: raidericon
|
||||
Selectable:
|
||||
Bounds: 24,24
|
||||
Health:
|
||||
HP: 110
|
||||
Armor:
|
||||
Type: Light
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 14
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
RenderUnit:
|
||||
Image: RAIDER
|
||||
WithMuzzleFlash:
|
||||
Armament:
|
||||
Weapon: HMGo
|
||||
LocalOffset: 256,0,128
|
||||
AttackFrontal:
|
||||
AutoTarget:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeTiny
|
||||
EmptyWeapon: UnitExplodeTiny
|
||||
|
||||
STEALTHTRIKE:
|
||||
Inherits: ^TRIKE
|
||||
STEALTHRAIDER:
|
||||
Inherits: ^Vehicle
|
||||
Buildable:
|
||||
Queue: Vehicle
|
||||
Prerequisites: Hitech
|
||||
Owner: ordos
|
||||
BuildPaletteOrder: 30
|
||||
@@ -158,18 +183,26 @@ STEALTHTRIKE:
|
||||
Tooltip:
|
||||
Name: Stealth Raider Trike
|
||||
Description: Invisible Raider Trike\n Strong vs Infantry, Light Vehicles
|
||||
Icon: raidersicon
|
||||
Selectable:
|
||||
Bounds: 24,24
|
||||
Health:
|
||||
HP: 110
|
||||
Armor:
|
||||
Type: Light
|
||||
Mobile:
|
||||
ROT: 10
|
||||
Speed: 14
|
||||
RevealsShroud:
|
||||
Range: 7
|
||||
RenderUnit:
|
||||
Image: RAIDER
|
||||
WithMuzzleFlash:
|
||||
Armament:
|
||||
Weapon: HMGo
|
||||
LocalOffset: 256,0,128
|
||||
AttackFrontal:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeTiny
|
||||
EmptyWeapon: UnitExplodeTiny
|
||||
Cloak:
|
||||
InitialDelay: 45
|
||||
CloakDelay: 90
|
||||
@@ -178,16 +211,6 @@ STEALTHTRIKE:
|
||||
AutoTarget:
|
||||
InitialStance: HoldFire
|
||||
|
||||
#TRIKEO.starport:
|
||||
# Inherits: ^TRIKE
|
||||
# Buildable:
|
||||
# Queue: Starport
|
||||
# Owner: ordos
|
||||
# RenderUnit:
|
||||
# Image: TRIKE
|
||||
# Valued:
|
||||
# Cost: 149
|
||||
|
||||
CARRYALLO:
|
||||
Inherits: ^CARRYALL
|
||||
RenderUnit:
|
||||
@@ -205,7 +228,6 @@ DEVIATORTANK:
|
||||
Tooltip:
|
||||
Name: Deviator
|
||||
Description: Causes no actual damage\nFires a warhead which changes allegiances\n but does not effect buildings or tanks
|
||||
Icon: deviatortankicon
|
||||
Buildable:
|
||||
Queue: Armor
|
||||
BuildPaletteOrder: 50
|
||||
@@ -238,8 +260,6 @@ DEVIATORTANK:
|
||||
|
||||
DEVIATORTANK.Husk:
|
||||
Inherits: ^Husk
|
||||
Tooltip:
|
||||
Icon: deviatortankicon
|
||||
RenderUnit:
|
||||
Image: DEVIATORTANK
|
||||
|
||||
|
||||
@@ -61,6 +61,8 @@
|
||||
Range: 4
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: Power
|
||||
WithIdleOverlay@ZAPS:
|
||||
Sequence: idle-zaps
|
||||
|
||||
^BARRACKS:
|
||||
Inherits: ^Building
|
||||
@@ -215,6 +217,8 @@
|
||||
ProductionBar:
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: Light
|
||||
WithIdleOverlay@WELDING:
|
||||
Sequence: idle-welding
|
||||
|
||||
^HEAVY:
|
||||
Inherits: ^Building
|
||||
@@ -253,11 +257,13 @@
|
||||
ProductionBar:
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: Heavy
|
||||
WithIdleOverlay@WELDING:
|
||||
Sequence: idle-welding
|
||||
|
||||
^RADAR:
|
||||
Inherits: ^Building
|
||||
RequiresPower:
|
||||
CanPowerDown:
|
||||
Inherits: ^Building
|
||||
Buildable:
|
||||
Prerequisites: Barracks
|
||||
Queue: Building
|
||||
@@ -287,6 +293,8 @@
|
||||
RenderDetectionCircle:
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: Outpost
|
||||
WithIdleOverlay@DISH:
|
||||
Sequence: idle-dish
|
||||
|
||||
^STARPORT:
|
||||
Inherits: ^Building
|
||||
@@ -330,12 +338,15 @@
|
||||
Prerequisite: Starport
|
||||
|
||||
WALL:
|
||||
Inherits: ^WALL
|
||||
Buildable:
|
||||
Owner:
|
||||
|
||||
^WALL:
|
||||
Buildable:
|
||||
Queue: Building
|
||||
Prerequisites: Barracks
|
||||
Owner: atreides, harkonnen, ordos
|
||||
BuildPaletteOrder: 60
|
||||
#Hotkey: g
|
||||
SoundOnDamageTransition:
|
||||
DamagedSound:
|
||||
DestroyedSound: EXPLSML4.WAV
|
||||
@@ -346,7 +357,6 @@ WALL:
|
||||
Tooltip:
|
||||
Name: Concrete Wall
|
||||
Description: Stop units and blocks enemy fire.
|
||||
Icon: wallaicon
|
||||
AppearsOnRadar:
|
||||
Building:
|
||||
BuildSounds: CHUNG.WAV
|
||||
@@ -361,15 +371,14 @@ WALL:
|
||||
CrushClasses: Concretewall
|
||||
LineBuild:
|
||||
Range: 8
|
||||
#SelectionDecorations:
|
||||
#Selectable:
|
||||
# Priority: 1
|
||||
# SelectionDecorations:
|
||||
# Selectable:
|
||||
# Priority: 1
|
||||
TargetableBuilding:
|
||||
TargetTypes: Ground, C4
|
||||
RenderBuildingWall:
|
||||
HasMakeAnimation: false
|
||||
Image: walla
|
||||
#GivesExperience:
|
||||
EditorAppearance:
|
||||
RelativeToTopLeft: yes
|
||||
AutoTargetIgnore:
|
||||
@@ -379,12 +388,11 @@ WALL:
|
||||
Guardable:
|
||||
BodyOrientation:
|
||||
|
||||
GUNTOWER:
|
||||
^GUNTOWER:
|
||||
Inherits: ^Building
|
||||
Buildable:
|
||||
Queue: Building
|
||||
Prerequisites: Barracks
|
||||
Owner: atreides, harkonnen, ordos
|
||||
BuildPaletteOrder: 90
|
||||
Hotkey: g
|
||||
Valued:
|
||||
@@ -392,7 +400,6 @@ GUNTOWER:
|
||||
Tooltip:
|
||||
Name: Gun Tower
|
||||
Description: Defensive structure\n Strong vs Tanks\n Weak vs Infantry, Aircraft
|
||||
Icon: guntoweraicon
|
||||
Building:
|
||||
Power: -20
|
||||
Adjacent: 4
|
||||
@@ -411,7 +418,6 @@ GUNTOWER:
|
||||
RenderRangeCircle:
|
||||
RenderBuilding:
|
||||
HasMakeAnimation: false
|
||||
Image: guntowera
|
||||
WithTurret:
|
||||
Turreted:
|
||||
ROT: 6
|
||||
@@ -421,26 +427,16 @@ GUNTOWER:
|
||||
LocalOffset: 469,0,299
|
||||
AttackTurreted:
|
||||
AutoTarget:
|
||||
LeavesHusk:
|
||||
HuskActor: Guntower.Husk
|
||||
RenderDetectionCircle:
|
||||
DetectCloaked:
|
||||
Range: 5
|
||||
-WithCrumbleOverlay:
|
||||
|
||||
GUNTOWER.Husk:
|
||||
Inherits: ^TowerHusk
|
||||
Tooltip:
|
||||
Name: Destroyed Tower
|
||||
Icon: guntoweraicon
|
||||
RenderUnit:
|
||||
Image: guntowera
|
||||
|
||||
ROCKETTOWER:
|
||||
^ROCKETTOWER:
|
||||
Inherits: ^Building
|
||||
Buildable:
|
||||
Queue: Building
|
||||
Prerequisites: Outpost
|
||||
Owner: atreides, harkonnen, ordos
|
||||
BuildPaletteOrder: 120
|
||||
Hotkey: m
|
||||
Valued:
|
||||
@@ -448,7 +444,6 @@ ROCKETTOWER:
|
||||
Tooltip:
|
||||
Name: Rocket Tower
|
||||
Description: Defensive structure\n Strong vs Infantry, Aircraft\n Weak vs Tanks\n\n Requires power to operate
|
||||
Icon: rockettoweraicon
|
||||
Building:
|
||||
Power: -30
|
||||
Adjacent: 4
|
||||
@@ -467,7 +462,6 @@ ROCKETTOWER:
|
||||
RenderRangeCircle:
|
||||
RenderBuilding:
|
||||
HasMakeAnimation: false
|
||||
Image: rockettowera
|
||||
WithTurret:
|
||||
Armament:
|
||||
Weapon: TowerMissile
|
||||
@@ -479,26 +473,16 @@ ROCKETTOWER:
|
||||
AutoTarget:
|
||||
RequiresPower:
|
||||
CanPowerDown:
|
||||
LeavesHusk:
|
||||
HuskActor: Rockettower.Husk
|
||||
RenderDetectionCircle:
|
||||
DetectCloaked:
|
||||
Range: 6
|
||||
-WithCrumbleOverlay:
|
||||
|
||||
ROCKETTOWER.Husk:
|
||||
Inherits: ^TowerHusk
|
||||
Tooltip:
|
||||
Name: Destroyed Tower
|
||||
Icon: rockettoweraicon
|
||||
RenderUnit:
|
||||
Image: rockettowera
|
||||
|
||||
REPAIR:
|
||||
^REPAIR:
|
||||
Inherits: ^Building
|
||||
Buildable:
|
||||
Queue: Building
|
||||
Prerequisites: Heavy
|
||||
Owner: atreides, harkonnen, ordos
|
||||
BuildPaletteOrder: 130
|
||||
Hotkey: e
|
||||
Valued:
|
||||
@@ -506,7 +490,6 @@ REPAIR:
|
||||
Tooltip:
|
||||
Name: Repair Pad
|
||||
Description: Repairs vehicles\n Allows construction of MCVs
|
||||
Icon: repairaicon
|
||||
Building:
|
||||
Power: -10
|
||||
Footprint: =x= =x= ===
|
||||
@@ -523,6 +506,8 @@ REPAIR:
|
||||
ValuePercentage: 50
|
||||
RallyPoint:
|
||||
RallyPoint: 1,3
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: Repair
|
||||
|
||||
^HIGHTECH:
|
||||
Inherits: ^Building
|
||||
@@ -551,13 +536,14 @@ REPAIR:
|
||||
Range: 4
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: Hitech
|
||||
WithIdleOverlay@WELDING:
|
||||
Sequence: idle-welding
|
||||
|
||||
RESEARCH:
|
||||
^RESEARCH:
|
||||
Inherits: ^Building
|
||||
Buildable:
|
||||
Queue: Building
|
||||
Prerequisites: Hitech
|
||||
Owner: atreides, harkonnen, ordos
|
||||
BuildPaletteOrder: 140
|
||||
Hotkey: v
|
||||
Selectable:
|
||||
@@ -567,9 +553,8 @@ RESEARCH:
|
||||
Tooltip:
|
||||
Name: IX Research Center
|
||||
Description: Unlocks experimental tanks\n Special Ability: Carryall Combat Drop
|
||||
Icon: researchaicon
|
||||
ParatroopersPower:
|
||||
Image: carryallicon
|
||||
Icon: paratroopers
|
||||
UnitType: carryall.infantry
|
||||
FlareTime: 0
|
||||
ChargeTime: 180
|
||||
@@ -581,8 +566,8 @@ RESEARCH:
|
||||
FlareType:
|
||||
Building:
|
||||
Power: -40
|
||||
Footprint: xxx xxx
|
||||
Dimensions: 3,2
|
||||
Footprint: _x_ xxx xxx
|
||||
Dimensions: 3,3
|
||||
Bib:
|
||||
Health:
|
||||
HP: 1000
|
||||
@@ -591,12 +576,14 @@ RESEARCH:
|
||||
RevealsShroud:
|
||||
Range: 4
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: Ix
|
||||
Prerequisite: Research
|
||||
WithIdleOverlay@LIGHTS:
|
||||
Sequence: idle-lights
|
||||
|
||||
^PALACE:
|
||||
Inherits: ^Building
|
||||
Buildable:
|
||||
Prerequisites: Ix
|
||||
Prerequisites: Research
|
||||
Queue: Building
|
||||
BuildPaletteOrder: 150
|
||||
Hotkey: p
|
||||
@@ -609,8 +596,8 @@ RESEARCH:
|
||||
Description: Unlocks elite infantry\n Special Ability: Ornithopter Strike
|
||||
Building:
|
||||
Power: -50
|
||||
Footprint: _x_ xxx =xx
|
||||
Dimensions: 3,3
|
||||
Footprint: xxx xxx
|
||||
Dimensions: 3,2
|
||||
Bib:
|
||||
Health:
|
||||
HP: 2000
|
||||
@@ -622,7 +609,7 @@ RESEARCH:
|
||||
DetectCloaked:
|
||||
Range: 4
|
||||
ProvidesCustomPrerequisite:
|
||||
Prerequisite: TPal
|
||||
Prerequisite: Palace
|
||||
|
||||
SIETCH:
|
||||
Inherits: ^Building
|
||||
@@ -685,6 +672,10 @@ HITECH:
|
||||
Tooltip:
|
||||
Name: High-Tech Facility
|
||||
|
||||
IX:
|
||||
REPAIR:
|
||||
Tooltip:
|
||||
Name: IX Research Center
|
||||
Name: Repair Pad
|
||||
|
||||
RESEARCH:
|
||||
Tooltip:
|
||||
Name: Ix Research Center
|
||||
|
||||
@@ -117,9 +117,7 @@ Player:
|
||||
fremen: 0.5%
|
||||
sardaukar: 1.5%
|
||||
harvester: 0.1%
|
||||
trikea.starport: 5%
|
||||
#trikeh.starport: 5%
|
||||
#trikeo.starport: 5%
|
||||
trike.starport: 5%
|
||||
quad.starport: 7.5%
|
||||
siegetank.starport: 5%
|
||||
missiletank.starport: 7.5%
|
||||
@@ -129,9 +127,7 @@ Player:
|
||||
sonictank: 10%
|
||||
devast: 10%
|
||||
deviatortank: 7.5%
|
||||
trikea: 10%
|
||||
#trikeh: 10%
|
||||
trikeo: 10%
|
||||
trike: 10%
|
||||
quad: 15%
|
||||
siegetank: 10%
|
||||
missiletank: 15%
|
||||
@@ -143,6 +139,14 @@ Player:
|
||||
Name:Vidious
|
||||
UnitQueues: Infantry, Vehicle, Armor, Starport
|
||||
RallypointTestBuilding: conyarda
|
||||
BuildingCommonNames:
|
||||
ConstructionYard: conyarda,conyardh,conyardo
|
||||
Refinery: refa,refh,refo
|
||||
Power: pwra,pwrh,pwro
|
||||
VehiclesFactory: lighta,lighth,lighto,heavya,heavyh,heavyo
|
||||
Silo: siloa, siloh, siloo
|
||||
UnitsCommonNames:
|
||||
Mcv: mcva,mcvh,mcvo
|
||||
BuildingFractions:
|
||||
refa: 20.1%
|
||||
refh: 20.1%
|
||||
@@ -180,9 +184,7 @@ Player:
|
||||
fremen: 0.25%
|
||||
sardaukar: 1%
|
||||
harvester: 0.1%
|
||||
trikea.starport: 7.5%
|
||||
#trikeh.starport: 7.5%
|
||||
#trikeo.starport: 7.5%
|
||||
trike.starport: 7.5%
|
||||
quad.starport: 12.5%
|
||||
siegetank.starport: 5%
|
||||
missiletank.starport: 7.5%
|
||||
@@ -192,9 +194,8 @@ Player:
|
||||
sonictank: 10%
|
||||
devast: 10%
|
||||
deviatortank: 7.5%
|
||||
trikea: 15%
|
||||
#trikeh: 15%
|
||||
trikeo: 15%
|
||||
trike: 15%
|
||||
raider: 15%
|
||||
quad: 25%
|
||||
siegetank: 10%
|
||||
missiletank: 15%
|
||||
@@ -206,6 +207,14 @@ Player:
|
||||
Name:Gladius
|
||||
UnitQueues: Infantry, Vehicle, Armor, Starport
|
||||
RallypointTestBuilding: conyarda
|
||||
BuildingCommonNames:
|
||||
ConstructionYard: conyarda,conyardh,conyardo
|
||||
Refinery: refa,refh,refo
|
||||
Power: pwra,pwrh,pwro
|
||||
VehiclesFactory: lighta,lighth,lighto,heavya,heavyh,heavyo
|
||||
Silo: siloa, siloh, siloo
|
||||
UnitsCommonNames:
|
||||
Mcv: mcva,mcvh,mcvo
|
||||
BuildingFractions:
|
||||
refa: 20.1%
|
||||
refh: 20.1%
|
||||
@@ -241,9 +250,7 @@ Player:
|
||||
fremen: 1%
|
||||
sardaukar: 3%
|
||||
harvester: 0.1%
|
||||
trikea.starport: 5%
|
||||
#trikeh.starport: 5%
|
||||
#trikeo.starport: 5%
|
||||
trike.starport: 5%
|
||||
quad.starport: 7.5%
|
||||
siegetank.starport: 5%
|
||||
missiletank.starport: 7.5%
|
||||
@@ -253,9 +260,8 @@ Player:
|
||||
sonictank: 10%
|
||||
devast: 10%
|
||||
deviatortank: 7.5%
|
||||
trikea: 10%
|
||||
#trikeh: 10%
|
||||
trikeo: 10%
|
||||
trike: 10%
|
||||
raider: 10%
|
||||
quad: 15%
|
||||
siegetank: 10%
|
||||
missiletank: 15%
|
||||
@@ -276,7 +282,7 @@ World:
|
||||
LoadWidgetAtGameStart:
|
||||
Widget: INGAME_ROOT
|
||||
ScreenShaker:
|
||||
NukePaletteEffect:
|
||||
# NukePaletteEffect: # TODO: does not work well with additive blending (idle overlays still use player palette effects)
|
||||
BuildingInfluence:
|
||||
ChooseBuildTabOnSelect:
|
||||
CrateSpawner:
|
||||
@@ -299,8 +305,9 @@ World:
|
||||
AllowModifiers: false
|
||||
PaletteFromFile@effect:
|
||||
Name: effect
|
||||
Filename: temperat.pal
|
||||
Filename: d2k.pal
|
||||
ShadowIndex: 4
|
||||
AllowModifiers: false
|
||||
PaletteFromFile@colorpicker:
|
||||
Name: colorpicker
|
||||
Filename: d2k.pal
|
||||
@@ -413,12 +420,12 @@ CRATE:
|
||||
Amount: 1500
|
||||
SelectionShares: 25
|
||||
UseCashTick: yes
|
||||
GiveUnitCrateAction@TrikeA:
|
||||
GiveUnitCrateAction@Trike:
|
||||
SelectionShares: 20
|
||||
Unit: trikea
|
||||
GiveUnitCrateAction@TrikeO:
|
||||
Unit: trike
|
||||
GiveUnitCrateAction@Raider:
|
||||
SelectionShares: 15
|
||||
Unit: trikeo
|
||||
Unit: raider
|
||||
GiveUnitCrateAction@Quad:
|
||||
SelectionShares: 40
|
||||
Unit: quad
|
||||
@@ -437,9 +444,9 @@ CRATE:
|
||||
GiveUnitCrateAction@MissileTank:
|
||||
SelectionShares: 10
|
||||
Unit: missiletank
|
||||
GiveUnitCrateAction@StealthTrike:
|
||||
GiveUnitCrateAction@StealthRaider:
|
||||
SelectionShares: 7
|
||||
Unit: stealthtrike
|
||||
Unit: stealthraider
|
||||
GiveUnitCrateAction@Fremen:
|
||||
SelectionShares: 5
|
||||
Unit: fremen
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
^MCV:
|
||||
Inherits: ^Vehicle
|
||||
Buildable:
|
||||
Prerequisites: repair
|
||||
Prerequisites: Repair
|
||||
Queue: Armor
|
||||
BuildPaletteOrder: 110
|
||||
Hotkey: m
|
||||
@@ -10,7 +10,6 @@
|
||||
Tooltip:
|
||||
Name: Mobile Construction Vehicle
|
||||
Description: Deploys into another Construction Yard\n Unarmed
|
||||
Icon: mcvicon
|
||||
Selectable:
|
||||
Priority: 3
|
||||
Bounds: 42,42
|
||||
@@ -40,7 +39,6 @@ MCV.Husk:
|
||||
HP: 175
|
||||
Tooltip:
|
||||
Name: Destroyed Mobile Construction Vehicle
|
||||
Icon: missiletankicon
|
||||
RenderUnit:
|
||||
Image: DMCV
|
||||
|
||||
@@ -57,7 +55,6 @@ HARVESTER:
|
||||
Tooltip:
|
||||
Name: Spice Harvester
|
||||
Description: Collects Spice for processing\n Unarmed
|
||||
Icon: harvestericon
|
||||
Selectable:
|
||||
Priority: 7
|
||||
Bounds: 42,42
|
||||
@@ -96,7 +93,6 @@ HARVESTER.Husk:
|
||||
HP: 150
|
||||
Tooltip:
|
||||
Name: Destroyed Spice Harvester
|
||||
Icon: harvestericon
|
||||
RenderUnit:
|
||||
Image: HARVESTER
|
||||
|
||||
@@ -108,18 +104,18 @@ HARVESTER.starport:
|
||||
Valued:
|
||||
Cost: 1500
|
||||
|
||||
^TRIKE:
|
||||
TRIKE:
|
||||
Inherits: ^Vehicle
|
||||
Buildable:
|
||||
Queue: Vehicle
|
||||
BuildPaletteOrder: 10
|
||||
Hotkey: w
|
||||
Owner: atreides, harkonnen
|
||||
Valued:
|
||||
Cost: 250
|
||||
Tooltip:
|
||||
Name: Scout Trike
|
||||
Description: Fast Scout\n Strong vs Infantry
|
||||
Icon: trikeicon
|
||||
Selectable:
|
||||
Bounds: 24,24
|
||||
Health:
|
||||
@@ -141,18 +137,28 @@ HARVESTER.starport:
|
||||
Explodes:
|
||||
Weapon: UnitExplodeTiny
|
||||
EmptyWeapon: UnitExplodeTiny
|
||||
#Cargo:
|
||||
# Types: Infantry
|
||||
# MaxWeight: 1
|
||||
# PipCount: 1
|
||||
# UnloadFacing: 220
|
||||
# Cargo:
|
||||
# Types: Infantry
|
||||
# MaxWeight: 1
|
||||
# PipCount: 1
|
||||
# UnloadFacing: 220
|
||||
|
||||
TRIKE.starport:
|
||||
Inherits: TRIKE
|
||||
Buildable:
|
||||
Owner: atreides, harkonnen, ordos
|
||||
Queue: Starport
|
||||
Valued:
|
||||
Cost: 315
|
||||
RenderUnit:
|
||||
Image: TRIKE
|
||||
|
||||
QUAD:
|
||||
Inherits: ^Vehicle
|
||||
Buildable:
|
||||
Queue: Vehicle
|
||||
Prerequisites: Light,Outpost
|
||||
Owner: atreides, ordos
|
||||
Owner: atreides, ordos, harkonnen
|
||||
BuildPaletteOrder: 20
|
||||
Hotkey: q
|
||||
Valued:
|
||||
@@ -160,7 +166,6 @@ QUAD:
|
||||
Tooltip:
|
||||
Name: Missile Quad
|
||||
Description: Missile Scout\n Strong vs Vehicles\n Weak vs Infantry
|
||||
Icon: quadicon
|
||||
Health:
|
||||
HP: 125
|
||||
Armor:
|
||||
@@ -170,8 +175,6 @@ QUAD:
|
||||
Speed: 9
|
||||
RevealsShroud:
|
||||
Range: 8
|
||||
RenderUnit:
|
||||
Image: QUAD
|
||||
Armament:
|
||||
Weapon: QuadRockets
|
||||
LocalOffset: 128,0,85#-4
|
||||
@@ -190,6 +193,8 @@ QUAD.starport:
|
||||
Queue: Starport
|
||||
Valued:
|
||||
Cost: 500
|
||||
RenderUnit:
|
||||
Image: QUAD
|
||||
|
||||
^COMBAT:
|
||||
Inherits: ^Tank
|
||||
@@ -250,7 +255,6 @@ SIEGETANK:
|
||||
Tooltip:
|
||||
Name: Siege Tank
|
||||
Description: Siege Artillery\n Strong vs Infantry, Buildings\n Weak vs Tanks, Aircraft
|
||||
Icon: siegetankicon
|
||||
Health:
|
||||
HP: 120
|
||||
Armor:
|
||||
@@ -286,7 +290,6 @@ SIEGETANK:
|
||||
SIEGETANK.Husk:
|
||||
Inherits: ^Husk
|
||||
Tooltip:
|
||||
Icon: siegetankicon
|
||||
ThrowsParticle@turret:
|
||||
Anim: turret
|
||||
RenderUnit:
|
||||
@@ -306,7 +309,6 @@ MISSILETANK:
|
||||
Tooltip:
|
||||
Name: Rocket Tank
|
||||
Description: Rocket Artillery\n Strong vs Vehicles, Buildings\n Weak vs Infantry, Aircraft
|
||||
Icon: missiletankicon
|
||||
Buildable:
|
||||
Queue: Armor
|
||||
Prerequisites: Hitech
|
||||
@@ -327,7 +329,7 @@ MISSILETANK:
|
||||
Armament:
|
||||
Weapon: 227mm
|
||||
LocalOffset: -213,128,171, -213,-256,171
|
||||
FireDelay: 15
|
||||
FireDelay: 15
|
||||
AttackFrontal:
|
||||
AutoTarget:
|
||||
InitialStance: Defend
|
||||
@@ -341,8 +343,6 @@ MISSILETANK:
|
||||
|
||||
MISSILETANK.Husk:
|
||||
Inherits: ^Husk
|
||||
Tooltip:
|
||||
Icon: missiletankicon
|
||||
RenderUnit:
|
||||
Image: MISSILETANK
|
||||
|
||||
|
||||
@@ -1,19 +1,27 @@
|
||||
carryall:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
unload:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 1923
|
||||
Facings: -32
|
||||
unload: DATA.R8
|
||||
Start: 1923
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4029
|
||||
Offset: -30,-24
|
||||
|
||||
|
||||
orni:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 1955
|
||||
Facings: -32
|
||||
Length: 3
|
||||
Tick: 120
|
||||
Transpose: true
|
||||
icon: DATA.R8
|
||||
Start: 4031
|
||||
Offset: -30,-24
|
||||
|
||||
frigate:
|
||||
idle:
|
||||
Start: 0
|
||||
idle: DATA.R8
|
||||
Start: 2517
|
||||
Facings: 1
|
||||
@@ -1,385 +1,441 @@
|
||||
rifle:
|
||||
stand:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand2:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand3:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
run:
|
||||
Start: 8
|
||||
stand: DATA.R8
|
||||
Start: 206
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand2: DATA.R8
|
||||
Start: 206
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand3: DATA.R8
|
||||
Start: 206
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
run: DATA.R8
|
||||
Start: 214
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Tick: 110
|
||||
shoot:
|
||||
Start: 56
|
||||
Length: 5
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
prone-stand:
|
||||
Start: 104
|
||||
Length: 1
|
||||
Facings: 8
|
||||
prone-run:
|
||||
Start: 112
|
||||
Transpose: true
|
||||
shoot: DATA.R8
|
||||
Start: 254
|
||||
Length: 6
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-stand: DATA.R8
|
||||
Start: 302
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-run: DATA.R8
|
||||
Start: 310
|
||||
Length: 3
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 110
|
||||
standup-0:
|
||||
Start: 96
|
||||
Length: 1
|
||||
Facings: 8
|
||||
standup-0: DATA.R8
|
||||
Start: 302
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
prone-shoot:
|
||||
Start: 136
|
||||
prone-shoot: DATA.R8
|
||||
Start: 334
|
||||
Length: 6
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
die1: DATA.R8
|
||||
Start: 382
|
||||
Length: 5
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
die1: rifledeath
|
||||
Start: 12
|
||||
Length: 12
|
||||
die2: DATA.R8
|
||||
Start: 387
|
||||
Length: 7
|
||||
Tick: 80
|
||||
die2: rifledeath
|
||||
Start: 12
|
||||
die3: DATA.R8
|
||||
Start: 394
|
||||
Length: 7
|
||||
die4: DATA.R8
|
||||
Start: 401
|
||||
Length: 7
|
||||
die5: DATA.R8
|
||||
Start: 408
|
||||
Length: 7
|
||||
die6: DATA.R8
|
||||
Start: 415
|
||||
Length: 12
|
||||
Tick: 80
|
||||
die3: rifledeath
|
||||
Start: 36
|
||||
die-crushed: DATA.R8
|
||||
Start: 430
|
||||
Length: 12
|
||||
Tick: 80
|
||||
die4: rifledeath
|
||||
Start: 24
|
||||
Length: 12
|
||||
Tick: 80
|
||||
die5: rifledeath
|
||||
Start: 0
|
||||
Length: 12
|
||||
Tick: 80
|
||||
die6: rifledeath
|
||||
Start: 12
|
||||
Length: 12
|
||||
Tick: 80
|
||||
die-crushed: rifledeath
|
||||
Start: 48
|
||||
Length: 12
|
||||
Tick: 160
|
||||
Tick: 1600
|
||||
icon: DATA.R8
|
||||
Start: 4011
|
||||
Offset: -30,-24
|
||||
|
||||
bazooka:
|
||||
stand:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand2:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand3:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
run:
|
||||
Start: 8
|
||||
stand: DATA.R8
|
||||
Start: 458
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand2: DATA.R8
|
||||
Start: 458
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand3: DATA.R8
|
||||
Start: 458
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
run: DATA.R8
|
||||
Start: 466
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Tick: 120
|
||||
shoot:
|
||||
Start: 56
|
||||
Length: 5
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
prone-stand:
|
||||
Start: 104
|
||||
Transpose: true
|
||||
shoot: DATA.R8
|
||||
Start: 506
|
||||
Length: 6
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-stand: DATA.R8
|
||||
Start: 562
|
||||
Length: 1
|
||||
Facings: 8
|
||||
prone-run:
|
||||
Start: 112
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-run: DATA.R8
|
||||
Start: 570
|
||||
Length: 3
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
standup-0:
|
||||
Start: 96
|
||||
standup-0: DATA.R8
|
||||
Start: 554
|
||||
Length: 1
|
||||
Facings: 8
|
||||
prone-shoot:
|
||||
Start: 136
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-shoot: DATA.R8
|
||||
Start: 586
|
||||
Length: 6
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
die1: DATA.R8
|
||||
Start: 634
|
||||
Length: 5
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
die1: bazookadeath
|
||||
Start: 0
|
||||
Length: 5
|
||||
die2: bazookadeath
|
||||
Start: 5
|
||||
die2: DATA.R8
|
||||
Start: 639
|
||||
Length: 7
|
||||
die3: bazookadeath
|
||||
Start: 12
|
||||
die3: DATA.R8
|
||||
Start: 646
|
||||
Length: 7
|
||||
die4: bazookadeath
|
||||
Start: 19
|
||||
die4: DATA.R8
|
||||
Start: 653
|
||||
Length: 7
|
||||
die5: bazookadeath
|
||||
Start: 26
|
||||
die5: DATA.R8
|
||||
Start: 660
|
||||
Length: 7
|
||||
die6: bazookadeath
|
||||
Start: 26
|
||||
die6: DATA.R8
|
||||
Start: 660
|
||||
Length: 7
|
||||
die-crushed: bazookadeath
|
||||
Start: 34
|
||||
die-crushed: DATA.R8
|
||||
Start: 668
|
||||
Length: 26
|
||||
Tick: 1600
|
||||
icon: DATA.R8
|
||||
Start: 4012
|
||||
Offset: -30,-24
|
||||
|
||||
engineer:
|
||||
stand:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand2:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
run:
|
||||
Start: 8
|
||||
stand: DATA.R8
|
||||
Start: 1166
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand2: DATA.R8
|
||||
Start: 1166
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
run: DATA.R8
|
||||
Start: 1174
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
die1: engineerdeath
|
||||
Start: 0
|
||||
die1: DATA.R8
|
||||
Start: 1342
|
||||
Length: 5
|
||||
die2: engineerdeath
|
||||
Start: 5
|
||||
die2: DATA.R8
|
||||
Start: 1347
|
||||
Length: 7
|
||||
die3: engineerdeath
|
||||
Start: 12
|
||||
die3: DATA.R8
|
||||
Start: 1354
|
||||
Length: 7
|
||||
die4: engineerdeath
|
||||
Start: 19
|
||||
die4: DATA.R8
|
||||
Start: 1361
|
||||
Length: 7
|
||||
die5: engineerdeath
|
||||
Start: 26
|
||||
die5: DATA.R8
|
||||
Start: 1368
|
||||
Length: 7
|
||||
die6: engineerdeath
|
||||
Start: 26
|
||||
die6: DATA.R8
|
||||
Start: 1368
|
||||
Length: 7
|
||||
die-crushed: engineerdeath
|
||||
Start: 34
|
||||
die-crushed: DATA.R8
|
||||
Start: 1376
|
||||
Length: 26
|
||||
Tick: 1600
|
||||
icon: DATA.R8
|
||||
Start: 4013
|
||||
Offset: -30,-24
|
||||
|
||||
thumper:
|
||||
stand:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand2:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
run:
|
||||
Start: 8
|
||||
medic: # actually thumper
|
||||
stand: DATA.R8
|
||||
Start: 1402
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand2: DATA.R8
|
||||
Start: 1402
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
run: DATA.R8
|
||||
Start: 1410
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
heal: thumping
|
||||
Start: 0
|
||||
Length: 4
|
||||
Tick: 480
|
||||
die1: thumperdeath
|
||||
Start: 0
|
||||
heal: DATA.R8
|
||||
Start: 1458
|
||||
Length: 5
|
||||
die2: thumperdeath
|
||||
Start: 5
|
||||
Tick: 480
|
||||
die1: DATA.R8
|
||||
Start: 1543
|
||||
Length: 5
|
||||
die2: DATA.R8
|
||||
Start: 1548
|
||||
Length: 7
|
||||
die3: thumperdeath
|
||||
Start: 12
|
||||
die3: DATA.R8
|
||||
Start: 1555
|
||||
Length: 7
|
||||
die4: thumperdeath
|
||||
Start: 19
|
||||
die4: DATA.R8
|
||||
Start: 1562
|
||||
Length: 7
|
||||
die5: thumperdeath
|
||||
Start: 26
|
||||
die5: DATA.R8
|
||||
Start: 1569
|
||||
Length: 7
|
||||
die6: thumperdeath
|
||||
Start: 26
|
||||
die6: DATA.R8
|
||||
Start: 1569
|
||||
Length: 7
|
||||
die-crushed: thumperdeath
|
||||
Start: 34
|
||||
die-crushed: DATA.R8
|
||||
Start: 1577
|
||||
Length: 26
|
||||
Tick: 1600
|
||||
icon: DATA.R8
|
||||
Start: 4014
|
||||
Offset: -30,-24
|
||||
|
||||
thumping:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: 4
|
||||
idle: DATA.R8
|
||||
Start: 1458
|
||||
Length: 5
|
||||
Tick: 150
|
||||
make:
|
||||
Start: 0
|
||||
Length: 4
|
||||
damaged-idle:
|
||||
Start: 0
|
||||
Length: 4
|
||||
make: DATA.R8
|
||||
Start: 1458
|
||||
Length: 5
|
||||
damaged-idle: DATA.R8
|
||||
Start: 1458
|
||||
Length: 5
|
||||
Tick: 150
|
||||
icon: DATA.R8
|
||||
Frames: 4014
|
||||
Offset: -30,-24
|
||||
|
||||
fremen:
|
||||
stand:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand2:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
run:
|
||||
Start: 8
|
||||
stand: DATA.R8
|
||||
Start: 694
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand2: DATA.R8
|
||||
Start: 694
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
run: DATA.R8
|
||||
Start: 702
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
shoot:
|
||||
Start: 56
|
||||
Length: 5
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
prone-stand:
|
||||
Start: 104
|
||||
shoot: DATA.R8
|
||||
Start: 742
|
||||
Length: 6
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-stand: DATA.R8
|
||||
Start: 798
|
||||
Length: 1
|
||||
Facings: 8
|
||||
prone-run:
|
||||
Start: 112
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-run: DATA.R8
|
||||
Start: 806
|
||||
Length: 3
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
standup-0:
|
||||
Start: 96
|
||||
standup-0: DATA.R8
|
||||
Start: 790
|
||||
Length: 1
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
prone-shoot:
|
||||
Start: 136
|
||||
prone-shoot: DATA.R8
|
||||
Start: 822
|
||||
Length: 6
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
die1: DATA.R8
|
||||
Start: 870
|
||||
Length: 5
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
die1: fremendeath
|
||||
Start: 0
|
||||
Length: 5
|
||||
die2: fremendeath
|
||||
Start: 5
|
||||
die2: DATA.R8
|
||||
Start: 875
|
||||
Length: 7
|
||||
die3: fremendeath
|
||||
Start: 12
|
||||
die3: DATA.R8
|
||||
Start: 882
|
||||
Length: 7
|
||||
die4: fremendeath
|
||||
Start: 19
|
||||
die4: DATA.R8
|
||||
Start: 889
|
||||
Length: 7
|
||||
die5: fremendeath
|
||||
Start: 26
|
||||
die5: DATA.R8
|
||||
Start: 896
|
||||
Length: 7
|
||||
die6: fremendeath
|
||||
Start: 26
|
||||
die6: DATA.R8
|
||||
Start: 896
|
||||
Length: 7
|
||||
die-crushed: fremendeath
|
||||
Start: 34
|
||||
die-crushed: DATA.R8
|
||||
Start: 904
|
||||
Length: 26
|
||||
Tick: 1600
|
||||
icon: DATA.R8
|
||||
Start: 4032
|
||||
Offset: -30,-24
|
||||
|
||||
saboteur:
|
||||
stand:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand2:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand3:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
run:
|
||||
Start: 8
|
||||
stand: DATA.R8
|
||||
Start: 2149
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand2: DATA.R8
|
||||
Start: 2149
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand3: DATA.R8
|
||||
Start: 2149
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
run: DATA.R8
|
||||
Start: 2157
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
prone-stand:
|
||||
Start: 104
|
||||
prone-stand: DATA.R8
|
||||
Start: 2253
|
||||
Length: 1
|
||||
Facings: 8
|
||||
prone-run:
|
||||
Start: 112
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-run: DATA.R8
|
||||
Start: 2261
|
||||
Length: 3
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
standup-0:
|
||||
Start: 96
|
||||
standup-0: DATA.R8
|
||||
Start: 2245
|
||||
Length: 1
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
die1: saboteurdeath
|
||||
Start: 0
|
||||
die1: DATA.R8
|
||||
Start: 2325
|
||||
Length: 5
|
||||
die2: saboteurdeath
|
||||
Start: 5
|
||||
die2: DATA.R8
|
||||
Start: 2330
|
||||
Length: 7
|
||||
die3: saboteurdeath
|
||||
Start: 12
|
||||
die3: DATA.R8
|
||||
Start: 2337
|
||||
Length: 7
|
||||
die4: saboteurdeath
|
||||
Start: 19
|
||||
die4: DATA.R8
|
||||
Start: 2344
|
||||
Length: 7
|
||||
die5: saboteurdeath
|
||||
Start: 26
|
||||
die5: DATA.R8
|
||||
Start: 2351
|
||||
Length: 7
|
||||
die6: saboteurdeath
|
||||
Start: 26
|
||||
die6: DATA.R8
|
||||
Start: 2351
|
||||
Length: 7
|
||||
die-crushed: saboteurdeath
|
||||
Start: 34
|
||||
die-crushed: DATA.R8
|
||||
Start: 2359
|
||||
Length: 26
|
||||
Tick: 1600
|
||||
icon: DATA.R8
|
||||
Start: 4034
|
||||
Offset: -30,-24
|
||||
|
||||
sardaukar:
|
||||
stand:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
stand2:
|
||||
Start: 0
|
||||
Facings: 8
|
||||
run:
|
||||
Start: 8
|
||||
stand: DATA.R8
|
||||
Start: 930
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
stand2: DATA.R8
|
||||
Start: 930
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
run: DATA.R8
|
||||
Start: 938
|
||||
Length: 6
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
shoot: DATA.R8
|
||||
Start: 978
|
||||
Length: 6
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-stand: DATA.R8
|
||||
Start: 1034
|
||||
Length: 1
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
prone-run: DATA.R8
|
||||
Start: 1042
|
||||
Length: 3
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
standup-0: DATA.R8
|
||||
Start: 1026
|
||||
Length: 1
|
||||
Facings: -8
|
||||
Transpose: true
|
||||
Tick: 120
|
||||
prone-shoot: DATA.R8
|
||||
Start: 1058
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
shoot:
|
||||
Start: 56
|
||||
Transpose: true
|
||||
die1: DATA.R8
|
||||
Start: 1106
|
||||
Length: 5
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
prone-stand:
|
||||
Start: 104
|
||||
Length: 1
|
||||
Facings: 8
|
||||
prone-run:
|
||||
Start: 112
|
||||
Length: 3
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
standup-0:
|
||||
Start: 96
|
||||
Length: 1
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
prone-shoot:
|
||||
Start: 136
|
||||
Length: 5
|
||||
Facings: 8
|
||||
Tick: 120
|
||||
die1: sardaukardeath
|
||||
Start: 0
|
||||
Length: 5
|
||||
die2: sardaukardeath
|
||||
Start: 5
|
||||
die2: DATA.R8
|
||||
Start: 1111
|
||||
Length: 7
|
||||
die3: sardaukardeath
|
||||
Start: 12
|
||||
die3: DATA.R8
|
||||
Start: 1118
|
||||
Length: 7
|
||||
die4: sardaukardeath
|
||||
Start: 19
|
||||
die4: DATA.R8
|
||||
Start: 1125
|
||||
Length: 7
|
||||
die5: sardaukardeath
|
||||
Start: 26
|
||||
die5: DATA.R8
|
||||
Start: 1132
|
||||
Length: 7
|
||||
die6: sardaukardeath
|
||||
Start: 26
|
||||
die6: DATA.R8
|
||||
Start: 1132
|
||||
Length: 7
|
||||
die-crushed: sardaukardeath
|
||||
Start: 34
|
||||
die-crushed: DATA.R8
|
||||
Start: 1140
|
||||
Length: 26
|
||||
Tick: 1600
|
||||
Tick: 1600
|
||||
icon: DATA.R8
|
||||
Start: 4015
|
||||
Offset: -30,-24
|
||||
|
||||
@@ -1,67 +1,24 @@
|
||||
crate:
|
||||
idle: crates
|
||||
Start: 0
|
||||
crate:
|
||||
idle: DATA.R8
|
||||
Start: 102
|
||||
ZOffset: -511
|
||||
land: crates
|
||||
Start: 0
|
||||
Offset: -16,-16
|
||||
land: DATA.R8
|
||||
Start: 102
|
||||
ZOffset: -511
|
||||
Offset: -16,-16
|
||||
|
||||
spicebloom:
|
||||
make:
|
||||
Start: 0
|
||||
make: DATA.R8
|
||||
Start: 107
|
||||
Length: 3
|
||||
active:
|
||||
Start: 2
|
||||
Offset: -16,-16
|
||||
active: DATA.R8
|
||||
Start: 109
|
||||
Length: 1
|
||||
ZOffset: -511
|
||||
idle:
|
||||
Start: 2
|
||||
Offset: -16,-16
|
||||
idle: DATA.R8
|
||||
Start: 109
|
||||
ZOffset: -511
|
||||
|
||||
sandworm:
|
||||
stand: wormsigns1
|
||||
Start: 0
|
||||
Length: *
|
||||
run: wormsigns2
|
||||
Start: 0
|
||||
Facings: 15
|
||||
Length: 1
|
||||
die1: wormsigns3
|
||||
Start: 0
|
||||
Length: 1
|
||||
die2: wormsigns3
|
||||
Start: 0
|
||||
Length: 1
|
||||
die3: wormsigns3
|
||||
Start: 0
|
||||
Length: 1
|
||||
die4: wormsigns3
|
||||
Start: 0
|
||||
Length: 1
|
||||
die5: wormsigns3
|
||||
Start: 0
|
||||
Length: 1
|
||||
die6: wormsigns3
|
||||
Start: 0
|
||||
Length: 1
|
||||
die-crushed: wormsigns3
|
||||
Start: 0
|
||||
Length: 1
|
||||
Tick: 1600
|
||||
wormattack: wormjaw
|
||||
Start: 0
|
||||
Length: 15
|
||||
|
||||
plates:
|
||||
idle:
|
||||
Start: 0
|
||||
Length: 6
|
||||
scratched-idle:
|
||||
Start: 0
|
||||
Length: 6
|
||||
damaged-idle:
|
||||
Start: 0
|
||||
Length: 6
|
||||
critical-idle:
|
||||
Start: 0
|
||||
Length: 6
|
||||
Offset: -16,-16
|
||||
@@ -1,73 +1,76 @@
|
||||
explosion:
|
||||
piff: minipiff
|
||||
Start: 0
|
||||
Length: *
|
||||
piffs: minipiff
|
||||
Start: 0
|
||||
Length: *
|
||||
small_explosion: veh-hit3
|
||||
Start: 0
|
||||
Length: *
|
||||
med_explosion: frag1
|
||||
Start: 0
|
||||
Length: *
|
||||
large_explosion: bigboom
|
||||
Start: 0
|
||||
Length: *
|
||||
small_artillery: veh-hit2
|
||||
Start: 0
|
||||
Length: *
|
||||
artillery: art-exp1
|
||||
Start: 0
|
||||
Length: *
|
||||
self_destruct: art-exp1
|
||||
Start: 0
|
||||
Length: *
|
||||
small_building: veh-hit1
|
||||
Start: 0
|
||||
Length: *
|
||||
building: fball1
|
||||
Start: 0
|
||||
Length: *
|
||||
small_napalm: napalm1
|
||||
Start: 0
|
||||
Length: *
|
||||
napalm: napalm2
|
||||
Start: 0
|
||||
Length: *
|
||||
napalm2: napalm2
|
||||
Start: 0
|
||||
Length: *
|
||||
piff: DATA.R8
|
||||
Start: 3626
|
||||
Length: 5
|
||||
piffs: DATA.R8
|
||||
Start: 3626
|
||||
Length: 5
|
||||
small_explosion: DATA.R8
|
||||
Start: 3386
|
||||
Length: 4
|
||||
BlendMode: Additive
|
||||
med_explosion: DATA.R8
|
||||
Start: 3390
|
||||
Length: 12
|
||||
BlendMode: Additive
|
||||
tiny_explosion: DATA.R8
|
||||
Start: 3390
|
||||
Length: 12
|
||||
BlendMode: Additive
|
||||
nuke: DATA.R8
|
||||
Start: 3965
|
||||
Length: 14
|
||||
Tick: 60
|
||||
shockwave: shockwave
|
||||
Start: 0
|
||||
Length: *
|
||||
Tick: 30
|
||||
nuke: atomsfx
|
||||
Start: 0
|
||||
Length: *
|
||||
BlendMode: Additive
|
||||
mini_explosion: DATA.R8
|
||||
Start: 3403
|
||||
Length: 15
|
||||
Tick: 60
|
||||
|
||||
90mm:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
BlendMode: Additive
|
||||
self_destruct: DATA.R8
|
||||
Start: 3433
|
||||
Length: 15
|
||||
BlendMode: Additive
|
||||
building: DATA.R8
|
||||
Start: 3448
|
||||
Length: 22
|
||||
BlendMode: Additive
|
||||
large_explosion: DATA.R8
|
||||
Start: 3988
|
||||
Length: 22
|
||||
BlendMode: Additive
|
||||
artillery: DATA.R8
|
||||
Start: 3988
|
||||
Length: 22
|
||||
BlendMode: Additive
|
||||
small_artillery: DATA.R8
|
||||
Start: 3988
|
||||
Length: 22
|
||||
BlendMode: Additive
|
||||
small_napalm: DATA.R8
|
||||
Start: 3421
|
||||
Length: 8
|
||||
BlendMode: Additive
|
||||
shockwave: DATA.R8
|
||||
Start: 3687
|
||||
Length: 6
|
||||
BlendMode: Additive
|
||||
|
||||
laserfire:
|
||||
idle: miniboom
|
||||
Start: 0
|
||||
Length: *
|
||||
idle: DATA.R8
|
||||
Start: 3386
|
||||
Length: 3
|
||||
|
||||
pips:
|
||||
groups: numbers
|
||||
Start: 0
|
||||
groups: DATA.R8
|
||||
Start: 17
|
||||
Length: 10
|
||||
tag-primary: stars
|
||||
Start: 0
|
||||
pip-empty: dots
|
||||
Start: 0
|
||||
pip-green: dots
|
||||
Start: 1
|
||||
tag-primary: DATA.R8
|
||||
Start: 110
|
||||
pip-empty: DATA.R8
|
||||
Start: 15
|
||||
pip-green: DATA.R8
|
||||
Start: 16
|
||||
|
||||
clock:
|
||||
idle:
|
||||
@@ -90,16 +93,21 @@ rank:
|
||||
Length: *
|
||||
|
||||
overlay:
|
||||
build-valid-arrakis:
|
||||
build-valid-arrakis: DATA.R8
|
||||
Start: 0
|
||||
build-invalid:
|
||||
Offset: -20,-20
|
||||
build-invalid: DATA.R8
|
||||
Start: 1
|
||||
target-select:
|
||||
Offset: -20,-20
|
||||
target-select: DATA.R8
|
||||
Start: 2
|
||||
target-valid-arrakis:
|
||||
Offset: -20,-20
|
||||
target-valid-arrakis: DATA.R8
|
||||
Start: 0
|
||||
target-invalid:
|
||||
Offset: -20,-20
|
||||
target-invalid: DATA.R8
|
||||
Start: 1
|
||||
Offset: -20,-20
|
||||
|
||||
rallypoint:
|
||||
flag:flagfly
|
||||
@@ -111,84 +119,91 @@ rallypoint:
|
||||
Length: *
|
||||
|
||||
rpg:
|
||||
idle:
|
||||
Start: 0
|
||||
idle: DATA.R8
|
||||
Start: 3015
|
||||
Facings: 32
|
||||
|
||||
crate-effects:
|
||||
dollar: selling
|
||||
Start: 0
|
||||
Length: *
|
||||
reveal-map: orbit
|
||||
Start: 0
|
||||
Length: *
|
||||
hide-map: reveal
|
||||
Start: 0
|
||||
Length: *
|
||||
dollar: DATA.R8
|
||||
Start: 3679
|
||||
Length: 8
|
||||
reveal-map: DATA.R8
|
||||
Start: 3947
|
||||
Length: 18
|
||||
hide-map: DATA.R8
|
||||
Start: 3911
|
||||
Length: 36
|
||||
levelup: levelup
|
||||
Start: 0
|
||||
Length: *
|
||||
Tick: 200
|
||||
|
||||
allyrepair:
|
||||
repair:
|
||||
Start: 0
|
||||
Length: *
|
||||
Tick: 160
|
||||
repair: DATA.R8
|
||||
Frames: 3, 39
|
||||
Length: 2
|
||||
Tick: 300
|
||||
|
||||
missile:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 3088
|
||||
Facings: -32
|
||||
|
||||
missile2:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 3306
|
||||
Facings: -32
|
||||
|
||||
atomic:
|
||||
up: deathhandmissile
|
||||
Start: 0
|
||||
up: DATA.R8
|
||||
Start: 2147
|
||||
Length: 1
|
||||
down: deathhandmissile
|
||||
Start: 1
|
||||
down: DATA.R8
|
||||
Start: 2148
|
||||
Length: 1
|
||||
|
||||
fire:
|
||||
1: fire2
|
||||
Start: 0
|
||||
Length: *
|
||||
1: DATA.R8
|
||||
Start: 3712
|
||||
Length: 10
|
||||
Offset: 0,-3
|
||||
2: fire2
|
||||
Start: 0
|
||||
Length: *
|
||||
BlendMode: Additive
|
||||
2: DATA.R8
|
||||
Start: 3723
|
||||
Length: 11
|
||||
Offset: 0,-3
|
||||
3: fire3
|
||||
Start: 0
|
||||
Length: *
|
||||
BlendMode: Additive
|
||||
3: DATA.R8
|
||||
Start: 3885
|
||||
Length: 13
|
||||
Offset: 0,-3
|
||||
4: fire
|
||||
Start: 0
|
||||
Length: *
|
||||
BlendMode: Additive
|
||||
4: DATA.R8
|
||||
Start: 3712
|
||||
Length: 10
|
||||
Offset: 0,-3
|
||||
BlendMode: Additive
|
||||
|
||||
smoke_m:
|
||||
idle: minifire
|
||||
Start: 0
|
||||
Length: *
|
||||
loop: minifire
|
||||
Start: 0
|
||||
Length: *
|
||||
end: minifire
|
||||
Start: 0
|
||||
idle: DATA.R8
|
||||
Start: 3418
|
||||
Length: 2
|
||||
BlendMode: Additive
|
||||
loop: DATA.R8
|
||||
Start: 3418
|
||||
Length: 2
|
||||
BlendMode: Additive
|
||||
end: DATA.R8
|
||||
Start: 3418
|
||||
Length: 3
|
||||
BlendMode: Additive
|
||||
|
||||
bombs:
|
||||
open:
|
||||
Start: 0
|
||||
open: DATA.R8
|
||||
Start: 3280
|
||||
Length: 4
|
||||
idle:
|
||||
Start: 0
|
||||
idle: DATA.R8
|
||||
Start: 3280
|
||||
Length: 4
|
||||
|
||||
parach:
|
||||
@@ -210,10 +225,22 @@ waypoint:
|
||||
Length: *
|
||||
|
||||
sietch:
|
||||
idle:
|
||||
Start: 0
|
||||
idle: DATA.R8
|
||||
Start: 2998
|
||||
|
||||
doubleblast:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 16
|
||||
idle: DATA.R8
|
||||
Start: 3279
|
||||
Facings: -16
|
||||
BlendMode: Additive
|
||||
|
||||
icon:
|
||||
paratroopers: DATA.R8
|
||||
Start: 4029
|
||||
Offset: -30,-24
|
||||
ornistrike: DATA.R8
|
||||
Start: 4031
|
||||
Offset: -30,-24
|
||||
deathhand: DATA.R8
|
||||
Start: 4035
|
||||
Offset: -30,-24
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,113 +1,162 @@
|
||||
dmcv:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 1795
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4023
|
||||
Offset: -30,-24
|
||||
|
||||
harvester:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
harvest: harvest2
|
||||
Start: 0
|
||||
idle: DATA.R8
|
||||
Start: 1699
|
||||
Facings: -32
|
||||
harvest: DATA.R8
|
||||
Start: 3631
|
||||
Length: 6
|
||||
Facings: 8
|
||||
Facings: -8
|
||||
Tick: 80
|
||||
ZOffset: 1
|
||||
dock: unload2
|
||||
Start: 0
|
||||
dock: DATA.R8
|
||||
Start: 3370
|
||||
Length: 10
|
||||
dock-loop: unload2
|
||||
Start: 10
|
||||
dock-loop: DATA.R8
|
||||
Start: 3380
|
||||
Length: 1
|
||||
icon: DATA.R8
|
||||
Start: 4019
|
||||
Offset: -30,-24
|
||||
|
||||
trike:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
unload:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
muzzle: minimuzzle
|
||||
Start: 0
|
||||
Length: 1
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 1635
|
||||
Facings: -32
|
||||
unload: DATA.R8
|
||||
Start: 1635
|
||||
Facings: -32
|
||||
muzzle: DATA.R8
|
||||
Start: 3839
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4041
|
||||
Offset: -30,-24
|
||||
|
||||
quad:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
unload:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
muzzle: minimuzzle
|
||||
Start: 0
|
||||
Length: 1
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 1667
|
||||
Facings: -32
|
||||
unload: DATA.R8
|
||||
Start: 1667
|
||||
Facings: -32
|
||||
muzzle: DATA.R8
|
||||
Start: 3839
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4018
|
||||
Offset: -30,-24
|
||||
|
||||
siegetank:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
turret: siegeturret
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 1763
|
||||
Facings: -32
|
||||
turret: DATA.R8
|
||||
Start: 1891
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4026
|
||||
Offset: -30,-24
|
||||
|
||||
missiletank:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 1603
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4024
|
||||
Offset: -30,-24
|
||||
|
||||
sonictank:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 1827
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4027
|
||||
Offset: -30,-24
|
||||
|
||||
combata:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
turret: combataturret
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 1731
|
||||
Facings: -32
|
||||
turret: DATA.R8
|
||||
Start: 1859
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4020
|
||||
Offset: -30,-24
|
||||
|
||||
combath:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
turret: combathturret
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 2051
|
||||
Facings: -32
|
||||
turret: DATA.R8
|
||||
Start: 2115
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4021
|
||||
Offset: -30,-24
|
||||
|
||||
devast:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
muzzle: doubleblastmuzzle
|
||||
Start: 0
|
||||
idle: DATA.R8
|
||||
Start: 2083
|
||||
Facings: -32
|
||||
muzzle: DATA.R8
|
||||
Start: 3807
|
||||
Length: 1
|
||||
Facings: 32
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4028
|
||||
Offset: -30,-24
|
||||
|
||||
combato:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
turret: combatoturret
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 2453
|
||||
Facings: -32
|
||||
turret: DATA.R8
|
||||
Start: 2485
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4022
|
||||
Offset: -30,-24
|
||||
|
||||
raider:
|
||||
idle:
|
||||
idle: DATA.R8
|
||||
Start: 2421
|
||||
Facings: -32
|
||||
unload: DATA.R8
|
||||
Start: 2421
|
||||
Facings: -32
|
||||
muzzle: DATA.R8
|
||||
Start: 3839
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4017
|
||||
Offset: -30,-24
|
||||
|
||||
stealthraider:
|
||||
idle: DATA.R8
|
||||
Start: 2421
|
||||
Facings: -32
|
||||
unload: DATA.R8
|
||||
Start: 2421
|
||||
Facings: -32
|
||||
muzzle: DATA.R8
|
||||
Start: 3839
|
||||
Facings: -32
|
||||
icon: raidersicon
|
||||
Start: 0
|
||||
Facings: 32
|
||||
unload:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
muzzle: minimuzzle
|
||||
Start: 0
|
||||
Length: 1
|
||||
Facings: 32
|
||||
|
||||
deviatortank:
|
||||
idle:
|
||||
Start: 0
|
||||
Facings: 32
|
||||
idle: DATA.R8
|
||||
Start: 2389
|
||||
Facings: -32
|
||||
icon: DATA.R8
|
||||
Start: 4025
|
||||
Offset: -30,-24
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ LMG:
|
||||
ContrailUsePlayerColor: true
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
Versus:
|
||||
Wood: 25%
|
||||
Light: 40%
|
||||
Heavy: 10%
|
||||
@@ -36,13 +36,13 @@ Bazooka:
|
||||
RangeLimit: 35
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
Versus:
|
||||
None: 10%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 90%
|
||||
Concrete: 40%
|
||||
Explosion: small_artillery
|
||||
Explosion: small_explosion
|
||||
InfDeath: 4
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Damage: 50
|
||||
@@ -61,7 +61,7 @@ Sniper:
|
||||
Warhead:
|
||||
Damage: 60
|
||||
Spread: 1
|
||||
Versus:
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 0%
|
||||
Light: 1%
|
||||
@@ -82,7 +82,7 @@ Vulcan:
|
||||
ContrailUsePlayerColor: true
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
Versus:
|
||||
Wood: 0%
|
||||
Light: 60%
|
||||
Heavy: 10%
|
||||
@@ -107,7 +107,7 @@ Slung:
|
||||
Image: MISSILE
|
||||
Warhead:
|
||||
Spread: 6
|
||||
Versus:
|
||||
Versus:
|
||||
None: 0%
|
||||
Wood: 75%
|
||||
Light: 40%
|
||||
@@ -133,7 +133,7 @@ HMG:
|
||||
ContrailUsePlayerColor: true
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
Versus:
|
||||
Wood: 15%
|
||||
Light: 45%
|
||||
Heavy: 20%
|
||||
@@ -156,7 +156,7 @@ HMGo:
|
||||
ContrailUsePlayerColor: true
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
Versus:
|
||||
Wood: 15%
|
||||
Light: 45%
|
||||
Heavy: 25%
|
||||
@@ -183,7 +183,7 @@ QuadRockets:
|
||||
RangeLimit: 40
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
Versus:
|
||||
None: 35%
|
||||
Wood: 45%
|
||||
Light: 100%
|
||||
@@ -203,11 +203,10 @@ TurretGun:
|
||||
Speed: 55
|
||||
High: yes
|
||||
Shadow: yes
|
||||
Image: 90MM
|
||||
Inaccuracy: 9
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 75%
|
||||
Light: 100%
|
||||
@@ -258,10 +257,9 @@ TowerMissile:
|
||||
Projectile: Bullet
|
||||
Speed: 50
|
||||
Inaccuracy: 12
|
||||
Image: 90MM
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 50%
|
||||
Light: 100%
|
||||
@@ -279,10 +277,9 @@ TowerMissile:
|
||||
Projectile: Bullet
|
||||
Speed: 55
|
||||
Inaccuracy: 11
|
||||
Image: 90MM
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
Versus:
|
||||
None: 50%
|
||||
Wood: 50%
|
||||
Light: 100%
|
||||
@@ -302,7 +299,7 @@ DevBullet:
|
||||
Image: doubleblast
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 50%
|
||||
Light: 100%
|
||||
@@ -313,7 +310,7 @@ DevBullet:
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
Damage: 100
|
||||
|
||||
227mm:
|
||||
227mm:
|
||||
ROF: 100
|
||||
Range: 10
|
||||
MinRange: 4
|
||||
@@ -333,7 +330,7 @@ DevBullet:
|
||||
ContrailLength: 5
|
||||
Warhead:
|
||||
Spread: 12
|
||||
Versus:
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 50%
|
||||
Light: 100%
|
||||
@@ -361,7 +358,7 @@ FakeMissile:
|
||||
ContrailUsePlayerColor : True
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
Versus:
|
||||
None: 0%
|
||||
Wood: 0%
|
||||
Concrete: 0%
|
||||
@@ -384,7 +381,7 @@ FakeMissile:
|
||||
ContrailLength: 20
|
||||
Warhead:
|
||||
Spread: 12
|
||||
Versus:
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 80%
|
||||
Light: 75%
|
||||
@@ -408,7 +405,7 @@ Sound:
|
||||
UsePlayerColor: true
|
||||
Warhead:
|
||||
Spread: 1
|
||||
Versus:
|
||||
Versus:
|
||||
None: 60%
|
||||
Wood: 85%
|
||||
Light: 80%
|
||||
@@ -426,7 +423,7 @@ ChainGun:
|
||||
High: true
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
Versus:
|
||||
Wood: 50%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
@@ -443,7 +440,7 @@ Heal:
|
||||
Speed: 100
|
||||
Warhead:
|
||||
Spread: 5
|
||||
Versus:
|
||||
Versus:
|
||||
Wood: 0%
|
||||
Light: 0%
|
||||
Heavy: 0%
|
||||
@@ -457,7 +454,7 @@ WormJaw:
|
||||
Report: WORM.WAV
|
||||
Warhead:
|
||||
Spread: 5
|
||||
Versus:
|
||||
Versus:
|
||||
Wood: 0%
|
||||
Concrete: 0%
|
||||
Damage: 100
|
||||
@@ -470,7 +467,7 @@ ParaBomb:
|
||||
Image: BOMBS
|
||||
Warhead:
|
||||
Spread: 6
|
||||
Versus:
|
||||
Versus:
|
||||
None: 30%
|
||||
Wood: 75%
|
||||
Light: 75%
|
||||
@@ -487,14 +484,117 @@ Napalm:
|
||||
Image: BOMBS
|
||||
Warhead:
|
||||
Spread: 20
|
||||
Versus:
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 100%
|
||||
Light: 30%
|
||||
Heavy: 20%
|
||||
Concrete: 70%
|
||||
InfDeath: 4
|
||||
Explosion: napalm
|
||||
Explosion: small_artillery
|
||||
ImpactSound: NAPALM1.WAV
|
||||
SmudgeType: Crater
|
||||
Damage: 300
|
||||
|
||||
Crush:
|
||||
Warhead:
|
||||
ImpactSound: CRUSH1.WAV
|
||||
Damage: 100
|
||||
|
||||
Demolish:
|
||||
Warhead:
|
||||
ImpactSound: EXPLLG2.WAV
|
||||
Explosion: building
|
||||
|
||||
Atomic:
|
||||
Warhead:
|
||||
Damage: 1800
|
||||
Spread: 64
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 50%
|
||||
Concrete: 50%
|
||||
Explosion: nuke
|
||||
InfDeath: 5
|
||||
ImpactSound: EXPLLG2.WAV
|
||||
|
||||
CrateNuke:
|
||||
Warhead:
|
||||
Damage: 800
|
||||
Spread: 50
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 75%
|
||||
Light: 25%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
Explosion: nuke
|
||||
InfDeath: 5
|
||||
ImpactSound: EXPLLG2.WAV
|
||||
|
||||
CrateExplosion:
|
||||
Warhead:
|
||||
Damage: 400
|
||||
Spread: 10
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: building
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLSML4.WAV
|
||||
|
||||
UnitExplode:
|
||||
Warhead:
|
||||
Damage: 500
|
||||
Spread: 10
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: building
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLMD1.WAV
|
||||
|
||||
UnitExplodeSmall:
|
||||
Warhead:
|
||||
Damage: 60
|
||||
Spread: 10
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: self_destruct
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLHG1.WAV, EXPLLG1.WAV, EXPLMD1.WAV, EXPLSML4.WAV
|
||||
|
||||
UnitExplodeTiny:
|
||||
Warhead:
|
||||
Damage: 30
|
||||
Spread: 7
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: med_explosion
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLMD2.WAV, EXPLSML1.WAV, EXPLSML2.WAV, EXPLSML3.WAV
|
||||
|
||||
UnitExplodeScale:
|
||||
Warhead:
|
||||
Damage: 90
|
||||
Spread: 13
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: building
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLLG2.WAV, EXPLLG3.WAV, EXPLLG5.WAV
|
||||
@@ -1,188 +0,0 @@
|
||||
# to do: explosion animations, spreads
|
||||
|
||||
|
||||
|
||||
### Warheads
|
||||
|
||||
W_Bullets: # Machine Guns
|
||||
Report: MGUN2.WAV #machine gun burst sound
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 75%
|
||||
Light: 40%
|
||||
Heavy: 20%
|
||||
Concrete: 10%
|
||||
Explosion: piffs
|
||||
InfDeath: 2
|
||||
|
||||
W_Bazooka:
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 8%
|
||||
Wood: 45%
|
||||
Light: 70%
|
||||
Heavy: 100%
|
||||
Concrete: 75%
|
||||
InfDeath: 4
|
||||
Explosion: med_explosion
|
||||
WaterExplosion: med_splash
|
||||
ImpactSound: kaboom12.aud # TODO: fallback to RA
|
||||
|
||||
W_HE: # Grenadier, siege tank
|
||||
Warhead:
|
||||
Spread: 12
|
||||
Versus:
|
||||
None: 125%
|
||||
Wood: 70%
|
||||
Light: 30%
|
||||
Heavy: 20%
|
||||
Concrete: 100%
|
||||
# vvv below taken from 155mm
|
||||
InfDeath: 3
|
||||
Explosion: self_destruct
|
||||
WaterExplosion: large_splash
|
||||
ImpactSound: explsml2
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
|
||||
W_GT_AT: # Sardaukar & Fremen's longer range weapons
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 25%
|
||||
Wood: 65%
|
||||
Light: 100%
|
||||
Heavy: 50%
|
||||
Concrete: 100%
|
||||
InfDeath: 4
|
||||
Explosion: med_explosion
|
||||
WaterExplosion: med_splash
|
||||
ImpactSound: kaboom12.aud # TODO: fallback to RA
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
|
||||
W_AT: # Tank shells, gun turret
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 60%
|
||||
Light: 100%
|
||||
Heavy: 75%
|
||||
Concrete: 50%
|
||||
Explosion: med_explosion
|
||||
ImpactSound: kaboom30.aud # TODO: fallback to RA
|
||||
InfDeath: 4
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
|
||||
W_AT_Mis: # Rocket Launcher, tower missile
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
None: 15%
|
||||
Wood: 65%
|
||||
Light: 90%
|
||||
Heavy: 100%
|
||||
Concrete: 75%
|
||||
InfDeath: 4
|
||||
Explosion: large_explosion
|
||||
WaterExplosion: med_splash
|
||||
ImpactSound: explsml1.wav
|
||||
SmudgeType: SandCrater, RockCrater
|
||||
|
||||
W_Deviate:
|
||||
Warhead:
|
||||
Spread: 8
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 20%
|
||||
Light: 20%
|
||||
Heavy: 20%
|
||||
Concrete: 20%
|
||||
Explosion: med_explosion
|
||||
WaterExplosion: med_splash
|
||||
|
||||
W_Sonic:
|
||||
Warhead:
|
||||
Spread: 6
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 60%
|
||||
Concrete: 50%
|
||||
Explosion: med_explosion
|
||||
WaterExplosion: med_splash
|
||||
|
||||
W_Plasma:
|
||||
Warhead:
|
||||
Spread: 3
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 60%
|
||||
Heavy: 50%
|
||||
Concrete: 100%
|
||||
Explosion: med_explosion
|
||||
WaterExplosion: med_splash
|
||||
|
||||
|
||||
|
||||
|
||||
### Projectiles
|
||||
|
||||
P_Bullets: #from M60mg
|
||||
Projectile: Bullet
|
||||
Speed: 100
|
||||
ContrailLength: 3
|
||||
TrailInterval: 1
|
||||
ContrailDelay: 0
|
||||
ContrailUsePlayerColor: true
|
||||
|
||||
P_OneShot: #from Sniper
|
||||
Report: RIFLE.AUD # TODO: fallback to RA
|
||||
Projectile: Bullet
|
||||
Speed: 150
|
||||
ContrailLength: 6
|
||||
TrailInterval: 1
|
||||
ContrailDelay: 0
|
||||
ContrailUsePlayerColor: true
|
||||
|
||||
P_Bazooka: #From bazooka/1st (dragon?)
|
||||
Projectile: Missile
|
||||
Speed: 25
|
||||
Arm: 2
|
||||
High: true
|
||||
Shadow: yes
|
||||
Proximity: true
|
||||
Trail: smokey
|
||||
Inaccuracy: 3
|
||||
Image: DRAGON
|
||||
ROT: 5
|
||||
RangeLimit: 35
|
||||
|
||||
P_Rocket: #From QuadRockets
|
||||
Projectile: Missile
|
||||
Arm: 0
|
||||
High: yes
|
||||
Shadow: yes
|
||||
Proximity: yes
|
||||
Inaccuracy: 3
|
||||
Image: DRAGON
|
||||
ROT: 10
|
||||
Trail: smokey
|
||||
Speed: 40
|
||||
RangeLimit: 40
|
||||
|
||||
P_Missile: #From 227mm
|
||||
Projectile: Bullet
|
||||
Speed: 20
|
||||
Arm: 5
|
||||
High: yes
|
||||
Shadow: yes
|
||||
Inaccuracy: 55
|
||||
Angle: 0.2
|
||||
Image: MISSILE
|
||||
ROT: 5
|
||||
ContrailLength: 5
|
||||
@@ -1,105 +0,0 @@
|
||||
Crush:
|
||||
Warhead:
|
||||
ImpactSound: CRUSH1.WAV
|
||||
Damage: 100
|
||||
|
||||
Demolish:
|
||||
Warhead:
|
||||
ImpactSound: EXPLLG2.WAV
|
||||
Explosion: building
|
||||
|
||||
Atomic:
|
||||
Warhead:
|
||||
Damage: 1800
|
||||
Spread: 64
|
||||
Versus:
|
||||
None: 100%
|
||||
Wood: 100%
|
||||
Light: 100%
|
||||
Heavy: 50%
|
||||
Concrete: 50%
|
||||
Explosion: nuke
|
||||
InfDeath: 5
|
||||
ImpactSound: EXPLLG2.WAV
|
||||
|
||||
CrateNuke:
|
||||
Warhead:
|
||||
Damage: 800
|
||||
Spread: 50
|
||||
Versus:
|
||||
None: 20%
|
||||
Wood: 75%
|
||||
Light: 25%
|
||||
Heavy: 25%
|
||||
Concrete: 50%
|
||||
Explosion: nuke
|
||||
InfDeath: 5
|
||||
ImpactSound: EXPLLG2.WAV
|
||||
|
||||
CrateExplosion:
|
||||
Warhead:
|
||||
Damage: 400
|
||||
Spread: 10
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: building
|
||||
WaterExplosion: building
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLSML4.WAV
|
||||
|
||||
UnitExplode:
|
||||
Warhead:
|
||||
Damage: 500
|
||||
Spread: 10
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: building
|
||||
WaterExplosion: large_splash
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLMD1.WAV
|
||||
|
||||
UnitExplodeSmall:
|
||||
Warhead:
|
||||
Damage: 60
|
||||
Spread: 10
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: self_destruct
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLHG1.WAV, EXPLLG1.WAV, EXPLMD1.WAV, EXPLSML4.WAV
|
||||
|
||||
UnitExplodeTiny:
|
||||
Warhead:
|
||||
Damage: 30
|
||||
Spread: 7
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: med_explosion
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLMD2.WAV, EXPLSML1.WAV, EXPLSML2.WAV, EXPLSML3.WAV
|
||||
|
||||
UnitExplodeScale:
|
||||
Warhead:
|
||||
Damage: 90
|
||||
Spread: 13
|
||||
Versus:
|
||||
None: 90%
|
||||
Wood: 75%
|
||||
Light: 60%
|
||||
Heavy: 25%
|
||||
Explosion: building
|
||||
InfDeath: 4
|
||||
ImpactSound: EXPLLG2.WAV, EXPLLG3.WAV, EXPLLG5.WAV
|
||||
|
||||
@@ -5,78 +5,48 @@ Cursors:
|
||||
mouse: cursor
|
||||
scroll-t:
|
||||
start:1
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-tr:
|
||||
start: 2
|
||||
x: 12
|
||||
y: 12
|
||||
start:2
|
||||
scroll-r:
|
||||
start: 3
|
||||
x: 12
|
||||
y: 12
|
||||
start:3
|
||||
scroll-br:
|
||||
start: 4
|
||||
x: 12
|
||||
y: 12
|
||||
start:4
|
||||
scroll-b:
|
||||
start:5
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-bl:
|
||||
start:6
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-l:
|
||||
start:7
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-tl:
|
||||
start:8
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-t-blocked:
|
||||
start:124
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-tr-blocked:
|
||||
start:125
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-r-blocked:
|
||||
start:126
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-br-blocked:
|
||||
start:127
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-b-blocked:
|
||||
start:128
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-bl-blocked:
|
||||
start:129
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-l-blocked:
|
||||
start:130
|
||||
x: 12
|
||||
y: 12
|
||||
scroll-tl-blocked:
|
||||
start:131
|
||||
x: 12
|
||||
y: 12
|
||||
select:
|
||||
start:15
|
||||
length: 6
|
||||
x: 12
|
||||
y: 12
|
||||
|
||||
default:
|
||||
start:0
|
||||
x: -16
|
||||
y: -12
|
||||
default-minimap:
|
||||
start:80
|
||||
x: -16
|
||||
y: -12
|
||||
generic-blocked:
|
||||
start:9
|
||||
generic-blocked-minimap:
|
||||
@@ -84,181 +54,111 @@ Cursors:
|
||||
move:
|
||||
start:10
|
||||
length: 4
|
||||
x: 12
|
||||
y: 12
|
||||
move-minimap:
|
||||
start:29
|
||||
length: 4
|
||||
x: 12
|
||||
y: 12
|
||||
move-rough:
|
||||
start:10
|
||||
length: 4
|
||||
x: 12
|
||||
y: 12
|
||||
move-blocked:
|
||||
start:14
|
||||
x: 12
|
||||
y: 12
|
||||
move-blocked-minimap:
|
||||
start:33
|
||||
x: 12
|
||||
y: 12
|
||||
attack:
|
||||
start:195
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
attack-minimap:
|
||||
start:203
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
attackmove:
|
||||
start:21
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
attackmove-minimap:
|
||||
start:134
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
harvest:
|
||||
start:21
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
harvest-minimap:
|
||||
start:134
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
enter:
|
||||
start:113
|
||||
length: 3
|
||||
x: 12
|
||||
y: 12
|
||||
enter-minimap:
|
||||
start:139
|
||||
length: 3
|
||||
x: 12
|
||||
y: 12
|
||||
enter-blocked:
|
||||
start:212
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
enter-blocked-minimap:
|
||||
start:33
|
||||
c4:
|
||||
start:116
|
||||
length: 3
|
||||
x: 12
|
||||
y: 12
|
||||
c4-minimap:
|
||||
start:121
|
||||
length: 3
|
||||
x: 12
|
||||
y: 12
|
||||
guard:
|
||||
start:147
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
guard-minimap:
|
||||
start:146
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
capture:
|
||||
start:164
|
||||
length: 3
|
||||
x: 12
|
||||
y: 12
|
||||
capture-minimap:
|
||||
start:167
|
||||
length: 3
|
||||
x: 12
|
||||
y: 12
|
||||
heal:
|
||||
start:160
|
||||
length: 4
|
||||
x: 12
|
||||
y: 12
|
||||
heal-minimap:
|
||||
start:194
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
ability:
|
||||
start:82
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
ability-minimap:
|
||||
start:214
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
|
||||
# Cursors that need minimap variants
|
||||
deploy:
|
||||
start:59
|
||||
length: 9
|
||||
x: 12
|
||||
y: 12
|
||||
deploy-blocked:
|
||||
start:211
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
goldwrench:
|
||||
start:170
|
||||
length: 24
|
||||
x: 12
|
||||
y: 12
|
||||
goldwrench-blocked:
|
||||
start:213
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
nuke:
|
||||
start:90
|
||||
length: 7
|
||||
x: 12
|
||||
y: 12
|
||||
chrono-select:
|
||||
start:97
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
chrono-target:
|
||||
start:105
|
||||
length: 8
|
||||
x: 12
|
||||
y: 12
|
||||
|
||||
sell:
|
||||
start:68
|
||||
length: 12
|
||||
x: 12
|
||||
y: 12
|
||||
sell-blocked:
|
||||
start:119
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
repair:
|
||||
start:35
|
||||
length: 24
|
||||
x: 12
|
||||
y: 12
|
||||
repair-blocked:
|
||||
start:120
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
sell2:
|
||||
start:148
|
||||
length: 12
|
||||
@@ -267,10 +167,6 @@ Cursors:
|
||||
powerdown-blocked:
|
||||
start:0
|
||||
length: 1
|
||||
x: 12
|
||||
y: 12
|
||||
powerdown:
|
||||
start:1
|
||||
length: 3
|
||||
x: 12
|
||||
y: 12
|
||||
length: 3
|
||||
@@ -448,7 +448,6 @@ SNIPER:
|
||||
Valued:
|
||||
Cost: 700
|
||||
Tooltip:
|
||||
Icon: snipericon
|
||||
Name: Sniper
|
||||
Description: Elite sniper infantry unit.\n Strong vs Infantry\n Weak vs Vehicles
|
||||
Buildable:
|
||||
@@ -492,7 +491,6 @@ Zombie:
|
||||
Valued:
|
||||
Cost: 100
|
||||
Tooltip:
|
||||
Icon: zombicon
|
||||
Name: Zombie
|
||||
Description: Slow undead. Attacks in close combat.
|
||||
Buildable:
|
||||
@@ -519,7 +517,6 @@ Ant:
|
||||
Valued:
|
||||
Cost: 300
|
||||
Tooltip:
|
||||
Icon: anticon
|
||||
Name: Giant Ant
|
||||
Description: Irradiated insect that grew oversize.
|
||||
Buildable:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user