@@ -18,6 +18,12 @@ namespace OpenRA.Traits
|
|||||||
[Desc("This is the internal name for owner checks.")]
|
[Desc("This is the internal name for owner checks.")]
|
||||||
public readonly string Race = null;
|
public readonly string Race = null;
|
||||||
|
|
||||||
|
[Desc("The side that the country belongs to. For example, England belongs to the 'Allies' side.")]
|
||||||
|
public readonly string Side = null;
|
||||||
|
|
||||||
|
[Translate]
|
||||||
|
public readonly string Description = null;
|
||||||
|
|
||||||
public readonly bool Selectable = true;
|
public readonly bool Selectable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ namespace OpenRA.Widgets
|
|||||||
public readonly string TooltipContainer;
|
public readonly string TooltipContainer;
|
||||||
public readonly string TooltipTemplate = "BUTTON_TOOLTIP";
|
public readonly string TooltipTemplate = "BUTTON_TOOLTIP";
|
||||||
[Translate] public string TooltipText;
|
[Translate] public string TooltipText;
|
||||||
|
public Func<string> GetTooltipText;
|
||||||
|
|
||||||
// Equivalent to OnMouseUp, but without an input arg
|
// Equivalent to OnMouseUp, but without an input arg
|
||||||
public Action OnClick = () => {};
|
public Action OnClick = () => {};
|
||||||
@@ -68,6 +69,7 @@ namespace OpenRA.Widgets
|
|||||||
OnKeyPress = _ => OnClick();
|
OnKeyPress = _ => OnClick();
|
||||||
IsDisabled = () => Disabled;
|
IsDisabled = () => Disabled;
|
||||||
IsHighlighted = () => Highlighted;
|
IsHighlighted = () => Highlighted;
|
||||||
|
GetTooltipText = () => TooltipText;
|
||||||
tooltipContainer = Exts.Lazy(() =>
|
tooltipContainer = Exts.Lazy(() =>
|
||||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||||
}
|
}
|
||||||
@@ -102,6 +104,7 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
TooltipTemplate = other.TooltipTemplate;
|
TooltipTemplate = other.TooltipTemplate;
|
||||||
TooltipText = other.TooltipText;
|
TooltipText = other.TooltipText;
|
||||||
|
GetTooltipText = other.GetTooltipText;
|
||||||
TooltipContainer = other.TooltipContainer;
|
TooltipContainer = other.TooltipContainer;
|
||||||
tooltipContainer = Exts.Lazy(() =>
|
tooltipContainer = Exts.Lazy(() =>
|
||||||
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
|
||||||
@@ -177,19 +180,23 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
public override void MouseEntered()
|
public override void MouseEntered()
|
||||||
{
|
{
|
||||||
if (TooltipContainer == null) return;
|
if (TooltipContainer == null || GetTooltipText() == null)
|
||||||
|
return;
|
||||||
|
|
||||||
tooltipContainer.Value.SetTooltip(TooltipTemplate,
|
tooltipContainer.Value.SetTooltip(TooltipTemplate,
|
||||||
new WidgetArgs() {{ "button", this }});
|
new WidgetArgs { { "button", this } });
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void MouseExited()
|
public override void MouseExited()
|
||||||
{
|
{
|
||||||
if (TooltipContainer == null) return;
|
if (TooltipContainer == null || !tooltipContainer.IsValueCreated)
|
||||||
|
return;
|
||||||
|
|
||||||
tooltipContainer.Value.RemoveTooltip();
|
tooltipContainer.Value.RemoveTooltip();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override int2 ChildOrigin { get { return RenderOrigin +
|
public override int2 ChildOrigin { get { return RenderOrigin +
|
||||||
((Depressed) ? new int2(VisualHeight, VisualHeight) : new int2(0, 0)); } }
|
(Depressed ? new int2(VisualHeight, VisualHeight) : new int2(0, 0)); } }
|
||||||
|
|
||||||
public override void Draw()
|
public override void Draw()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,5 +33,17 @@ namespace OpenRA.Widgets
|
|||||||
{
|
{
|
||||||
return FieldLoader.GetValue<T>(key, data[key]);
|
return FieldLoader.GetValue<T>(key, data[key]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool TryGet<T>(string key, out T result)
|
||||||
|
{
|
||||||
|
string s;
|
||||||
|
if (!data.TryGetValue(key, out s))
|
||||||
|
{
|
||||||
|
result = default(T);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
result = FieldLoader.GetValue<T>(key, s);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,12 +19,19 @@ namespace OpenRA.Widgets
|
|||||||
{
|
{
|
||||||
Widget panel;
|
Widget panel;
|
||||||
MaskWidget fullscreenMask;
|
MaskWidget fullscreenMask;
|
||||||
|
Widget panelRoot;
|
||||||
|
|
||||||
|
public string PanelRoot;
|
||||||
|
|
||||||
[ObjectCreator.UseCtor]
|
[ObjectCreator.UseCtor]
|
||||||
public DropDownButtonWidget(Ruleset modRules)
|
public DropDownButtonWidget(Ruleset modRules)
|
||||||
: base(modRules) { }
|
: base(modRules) { }
|
||||||
|
|
||||||
protected DropDownButtonWidget(DropDownButtonWidget widget) : base(widget) { }
|
protected DropDownButtonWidget(DropDownButtonWidget widget)
|
||||||
|
: base(widget)
|
||||||
|
{
|
||||||
|
PanelRoot = widget.PanelRoot;
|
||||||
|
}
|
||||||
|
|
||||||
public override void Draw()
|
public override void Draw()
|
||||||
{
|
{
|
||||||
@@ -34,7 +41,7 @@ namespace OpenRA.Widgets
|
|||||||
var image = ChromeProvider.GetImage("scrollbar", IsDisabled() ? "down_pressed" : "down_arrow");
|
var image = ChromeProvider.GetImage("scrollbar", IsDisabled() ? "down_pressed" : "down_arrow");
|
||||||
var rb = RenderBounds;
|
var rb = RenderBounds;
|
||||||
var color = GetColor();
|
var color = GetColor();
|
||||||
var colordisabled = GetColorDisabled();
|
var colorDisabled = GetColorDisabled();
|
||||||
|
|
||||||
WidgetUtils.DrawRGBA( image,
|
WidgetUtils.DrawRGBA( image,
|
||||||
stateOffset + new float2( rb.Right - rb.Height + 4,
|
stateOffset + new float2( rb.Right - rb.Height + 4,
|
||||||
@@ -42,7 +49,7 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
WidgetUtils.FillRectWithColor(new Rectangle(stateOffset.X + rb.Right - rb.Height,
|
WidgetUtils.FillRectWithColor(new Rectangle(stateOffset.X + rb.Right - rb.Height,
|
||||||
stateOffset.Y + rb.Top + 3, 1, rb.Height - 6),
|
stateOffset.Y + rb.Top + 3, 1, rb.Height - 6),
|
||||||
IsDisabled() ? colordisabled : color);
|
IsDisabled() ? colorDisabled : color);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Widget Clone() { return new DropDownButtonWidget(this); }
|
public override Widget Clone() { return new DropDownButtonWidget(this); }
|
||||||
@@ -61,8 +68,8 @@ namespace OpenRA.Widgets
|
|||||||
if (panel == null)
|
if (panel == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Ui.Root.RemoveChild(fullscreenMask);
|
panelRoot.RemoveChild(fullscreenMask);
|
||||||
Ui.Root.RemoveChild(panel);
|
panelRoot.RemoveChild(panel);
|
||||||
panel = fullscreenMask = null;
|
panel = fullscreenMask = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,11 +87,17 @@ namespace OpenRA.Widgets
|
|||||||
if (onCancel != null)
|
if (onCancel != null)
|
||||||
fullscreenMask.OnMouseDown += _ => onCancel();
|
fullscreenMask.OnMouseDown += _ => onCancel();
|
||||||
|
|
||||||
Ui.Root.AddChild(fullscreenMask);
|
panelRoot = PanelRoot == null ? Ui.Root : Ui.Root.Get(PanelRoot);
|
||||||
|
|
||||||
|
panelRoot.AddChild(fullscreenMask);
|
||||||
|
|
||||||
var oldBounds = panel.Bounds;
|
var oldBounds = panel.Bounds;
|
||||||
panel.Bounds = new Rectangle(RenderOrigin.X, RenderOrigin.Y + Bounds.Height, oldBounds.Width, oldBounds.Height);
|
panel.Bounds = new Rectangle(
|
||||||
Ui.Root.AddChild(panel);
|
RenderOrigin.X - panelRoot.RenderOrigin.X,
|
||||||
|
RenderOrigin.Y + Bounds.Height - panelRoot.RenderOrigin.Y,
|
||||||
|
oldBounds.Width,
|
||||||
|
oldBounds.Height);
|
||||||
|
panelRoot.AddChild(panel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ShowDropDown<T>(string panelTemplate, int maxHeight, IEnumerable<T> options, Func<T, ScrollItemWidget, ScrollItemWidget> setupItem)
|
public void ShowDropDown<T>(string panelTemplate, int maxHeight, IEnumerable<T> options, Func<T, ScrollItemWidget, ScrollItemWidget> setupItem)
|
||||||
@@ -116,14 +129,14 @@ namespace OpenRA.Widgets
|
|||||||
var panel = (ScrollPanelWidget)Ui.LoadWidget(panelTemplate, null, new WidgetArgs()
|
var panel = (ScrollPanelWidget)Ui.LoadWidget(panelTemplate, null, new WidgetArgs()
|
||||||
{{ "substitutions", substitutions }});
|
{{ "substitutions", substitutions }});
|
||||||
|
|
||||||
var headerTemplate = panel.Get<ScrollItemWidget>("HEADER");
|
var headerTemplate = panel.GetOrNull<ScrollItemWidget>("HEADER");
|
||||||
var itemTemplate = panel.Get<ScrollItemWidget>("TEMPLATE");
|
var itemTemplate = panel.Get<ScrollItemWidget>("TEMPLATE");
|
||||||
panel.RemoveChildren();
|
panel.RemoveChildren();
|
||||||
|
|
||||||
foreach (var kv in groups)
|
foreach (var kv in groups)
|
||||||
{
|
{
|
||||||
var group = kv.Key;
|
var group = kv.Key;
|
||||||
if (group.Length > 0)
|
if (group.Length > 0 && headerTemplate != null)
|
||||||
{
|
{
|
||||||
var header = ScrollItemWidget.Setup(headerTemplate, () => true, () => {});
|
var header = ScrollItemWidget.Setup(headerTemplate, () => true, () => {});
|
||||||
header.Get<LabelWidget>("LABEL").GetText = () => group;
|
header.Get<LabelWidget>("LABEL").GetText = () => group;
|
||||||
|
|||||||
@@ -223,6 +223,7 @@
|
|||||||
<Compile Include="Widgets\Logic\AssetBrowserLogic.cs" />
|
<Compile Include="Widgets\Logic\AssetBrowserLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\ButtonTooltipLogic.cs" />
|
<Compile Include="Widgets\Logic\ButtonTooltipLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\ColorPickerLogic.cs" />
|
<Compile Include="Widgets\Logic\ColorPickerLogic.cs" />
|
||||||
|
<Compile Include="Widgets\Logic\CountryTooltipLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\DisconnectWatcherLogic.cs" />
|
<Compile Include="Widgets\Logic\DisconnectWatcherLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\Ingame\IngameRadarDisplayLogic.cs" />
|
<Compile Include="Widgets\Logic\Ingame\IngameRadarDisplayLogic.cs" />
|
||||||
<Compile Include="Widgets\Logic\Ingame\LoadIngamePlayerOrObserverUILogic.cs" />
|
<Compile Include="Widgets\Logic\Ingame\LoadIngamePlayerOrObserverUILogic.cs" />
|
||||||
|
|||||||
@@ -19,9 +19,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
{
|
{
|
||||||
var label = widget.Get<LabelWidget>("LABEL");
|
var label = widget.Get<LabelWidget>("LABEL");
|
||||||
var font = Game.Renderer.Fonts[label.Font];
|
var font = Game.Renderer.Fonts[label.Font];
|
||||||
var labelWidth = font.Measure(button.TooltipText).X;
|
var text = button.GetTooltipText();
|
||||||
|
var labelWidth = font.Measure(text).X;
|
||||||
|
|
||||||
label.GetText = () => button.TooltipText;
|
label.GetText = () => text;
|
||||||
label.Bounds.Width = labelWidth;
|
label.Bounds.Width = labelWidth;
|
||||||
widget.Bounds.Width = 2 * label.Bounds.X + labelWidth;
|
widget.Bounds.Width = 2 * label.Bounds.X + labelWidth;
|
||||||
|
|
||||||
|
|||||||
52
OpenRA.Mods.Common/Widgets/Logic/CountryTooltipLogic.cs
Normal file
52
OpenRA.Mods.Common/Widgets/Logic/CountryTooltipLogic.cs
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2014 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.Linq;
|
||||||
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Widgets.Logic
|
||||||
|
{
|
||||||
|
public class CountryTooltipLogic
|
||||||
|
{
|
||||||
|
[ObjectCreator.UseCtor]
|
||||||
|
public CountryTooltipLogic(Widget widget, ButtonWidget button)
|
||||||
|
{
|
||||||
|
var lines = button.GetTooltipText().Replace("\\n", "\n").Split('\n');
|
||||||
|
|
||||||
|
var header = widget.Get<LabelWidget>("HEADER");
|
||||||
|
var headerLine = lines[0];
|
||||||
|
var headerFont = Game.Renderer.Fonts[header.Font];
|
||||||
|
var headerSize = headerFont.Measure(headerLine);
|
||||||
|
header.Bounds.Width += headerSize.X;
|
||||||
|
header.Bounds.Height += headerSize.Y;
|
||||||
|
header.GetText = () => headerLine;
|
||||||
|
|
||||||
|
if (lines.Length > 1)
|
||||||
|
{
|
||||||
|
var description = widget.Get<LabelWidget>("DESCRIPTION");
|
||||||
|
var descriptionLines = lines.Skip(1).ToArray();
|
||||||
|
var descriptionFont = Game.Renderer.Fonts[description.Font];
|
||||||
|
description.Bounds.Y += header.Bounds.Y + header.Bounds.Height;
|
||||||
|
description.Bounds.Width += descriptionLines.Select(l => descriptionFont.Measure(l).X).Max();
|
||||||
|
description.Bounds.Height += descriptionFont.Measure(descriptionLines.First()).Y * descriptionLines.Length;
|
||||||
|
description.GetText = () => string.Join("\n", descriptionLines);
|
||||||
|
|
||||||
|
widget.Bounds.Width = Math.Max(header.Bounds.X + header.Bounds.Width, description.Bounds.X + description.Bounds.Width);
|
||||||
|
widget.Bounds.Height = description.Bounds.Y + description.Bounds.Height;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
widget.Bounds.Width = header.Bounds.X + header.Bounds.Width;
|
||||||
|
widget.Bounds.Height = header.Bounds.Y + header.Bounds.Height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,7 +18,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
[ObjectCreator.UseCtor]
|
[ObjectCreator.UseCtor]
|
||||||
public AddRaceSuffixLogic(Widget widget, World world)
|
public AddRaceSuffixLogic(Widget widget, World world)
|
||||||
{
|
{
|
||||||
var suffix = "-" + world.LocalPlayer.Country.Race;
|
string race;
|
||||||
|
if (!ChromeMetrics.TryGet("RaceSuffix-" + world.LocalPlayer.Country.Race, out race))
|
||||||
|
race = world.LocalPlayer.Country.Race;
|
||||||
|
var suffix = "-" + race;
|
||||||
|
|
||||||
if (widget is ButtonWidget)
|
if (widget is ButtonWidget)
|
||||||
((ButtonWidget)widget).Background += suffix;
|
((ButtonWidget)widget).Background += suffix;
|
||||||
else if (widget is ImageWidget)
|
else if (widget is ImageWidget)
|
||||||
|
|||||||
@@ -49,7 +49,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
readonly Widget chatTemplate;
|
readonly Widget chatTemplate;
|
||||||
|
|
||||||
readonly ScrollPanelWidget players;
|
readonly ScrollPanelWidget players;
|
||||||
readonly Dictionary<string, string> countryNames;
|
|
||||||
|
readonly Dictionary<string, LobbyCountry> countries = new Dictionary<string, LobbyCountry>();
|
||||||
|
|
||||||
readonly ColorPreviewManagerWidget colorPreview;
|
readonly ColorPreviewManagerWidget colorPreview;
|
||||||
|
|
||||||
@@ -142,10 +143,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
colorPreview = lobby.Get<ColorPreviewManagerWidget>("COLOR_MANAGER");
|
colorPreview = lobby.Get<ColorPreviewManagerWidget>("COLOR_MANAGER");
|
||||||
colorPreview.Color = Game.Settings.Player.Color;
|
colorPreview.Color = Game.Settings.Player.Color;
|
||||||
|
|
||||||
countryNames = modRules.Actors["world"].Traits.WithInterface<CountryInfo>()
|
countries.Add("random", new LobbyCountry { Name = "Any" });
|
||||||
.Where(c => c.Selectable)
|
foreach (var c in modRules.Actors["world"].Traits.WithInterface<CountryInfo>().Where(c => c.Selectable))
|
||||||
.ToDictionary(a => a.Race, a => a.Name);
|
countries.Add(c.Race, new LobbyCountry { Name = c.Name, Side = c.Side, Description = c.Description });
|
||||||
countryNames.Add("random", "Any");
|
|
||||||
|
|
||||||
var gameStarting = false;
|
var gameStarting = false;
|
||||||
Func<bool> configurationDisabled = () => !Game.IsHost || gameStarting ||
|
Func<bool> configurationDisabled = () => !Game.IsHost || gameStarting ||
|
||||||
@@ -691,7 +691,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
LobbyUtils.SetupEditableNameWidget(template, slot, client, orderManager);
|
LobbyUtils.SetupEditableNameWidget(template, slot, client, orderManager);
|
||||||
|
|
||||||
LobbyUtils.SetupEditableColorWidget(template, slot, client, orderManager, colorPreview);
|
LobbyUtils.SetupEditableColorWidget(template, slot, client, orderManager, colorPreview);
|
||||||
LobbyUtils.SetupEditableFactionWidget(template, slot, client, orderManager, countryNames);
|
LobbyUtils.SetupEditableFactionWidget(template, slot, client, orderManager, countries);
|
||||||
LobbyUtils.SetupEditableTeamWidget(template, slot, client, orderManager, Map);
|
LobbyUtils.SetupEditableTeamWidget(template, slot, client, orderManager, Map);
|
||||||
LobbyUtils.SetupEditableSpawnWidget(template, slot, client, orderManager, Map);
|
LobbyUtils.SetupEditableSpawnWidget(template, slot, client, orderManager, Map);
|
||||||
LobbyUtils.SetupEditableReadyWidget(template, slot, client, orderManager, Map);
|
LobbyUtils.SetupEditableReadyWidget(template, slot, client, orderManager, Map);
|
||||||
@@ -707,7 +707,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
LobbyUtils.SetupKickWidget(template, slot, client, orderManager, lobby,
|
LobbyUtils.SetupKickWidget(template, slot, client, orderManager, lobby,
|
||||||
() => panel = PanelType.Kick, () => panel = PanelType.Players);
|
() => panel = PanelType.Kick, () => panel = PanelType.Players);
|
||||||
LobbyUtils.SetupColorWidget(template, slot, client);
|
LobbyUtils.SetupColorWidget(template, slot, client);
|
||||||
LobbyUtils.SetupFactionWidget(template, slot, client, countryNames);
|
LobbyUtils.SetupFactionWidget(template, slot, client, countries);
|
||||||
LobbyUtils.SetupTeamWidget(template, slot, client);
|
LobbyUtils.SetupTeamWidget(template, slot, client);
|
||||||
LobbyUtils.SetupSpawnWidget(template, slot, client);
|
LobbyUtils.SetupSpawnWidget(template, slot, client);
|
||||||
LobbyUtils.SetupReadyWidget(template, slot, client);
|
LobbyUtils.SetupReadyWidget(template, slot, client);
|
||||||
@@ -810,4 +810,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
public Action OnClick;
|
public Action OnClick;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class LobbyCountry
|
||||||
|
{
|
||||||
|
public string Name;
|
||||||
|
public string Description;
|
||||||
|
public string Side;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,21 +105,25 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void ShowRaceDropDown(DropDownButtonWidget dropdown, Session.Client client,
|
public static void ShowRaceDropDown(DropDownButtonWidget dropdown, Session.Client client,
|
||||||
OrderManager orderManager, Dictionary<string, string> countryNames)
|
OrderManager orderManager, Dictionary<string, LobbyCountry> countries)
|
||||||
{
|
{
|
||||||
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (race, itemTemplate) =>
|
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (race, itemTemplate) =>
|
||||||
{
|
{
|
||||||
var item = ScrollItemWidget.Setup(itemTemplate,
|
var item = ScrollItemWidget.Setup(itemTemplate,
|
||||||
() => client.Country == race,
|
() => client.Country == race,
|
||||||
() => orderManager.IssueOrder(Order.Command("race {0} {1}".F(client.Index, race))));
|
() => orderManager.IssueOrder(Order.Command("race {0} {1}".F(client.Index, race))));
|
||||||
item.Get<LabelWidget>("LABEL").GetText = () => countryNames[race];
|
var country = countries[race];
|
||||||
|
item.Get<LabelWidget>("LABEL").GetText = () => country.Name;
|
||||||
var flag = item.Get<ImageWidget>("FLAG");
|
var flag = item.Get<ImageWidget>("FLAG");
|
||||||
flag.GetImageCollection = () => "flags";
|
flag.GetImageCollection = () => "flags";
|
||||||
flag.GetImageName = () => race;
|
flag.GetImageName = () => race;
|
||||||
|
item.GetTooltipText = () => country.Description;
|
||||||
return item;
|
return item;
|
||||||
};
|
};
|
||||||
|
|
||||||
dropdown.ShowDropDown("RACE_DROPDOWN_TEMPLATE", 150, countryNames.Keys, setupItem);
|
var options = countries.GroupBy(c => c.Value.Side).ToDictionary(g => g.Key ?? "", g => g.Select(c => c.Key));
|
||||||
|
|
||||||
|
dropdown.ShowDropDown("RACE_DROPDOWN_TEMPLATE", 150, options, setupItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ShowColorDropDown(DropDownButtonWidget color, Session.Client client,
|
public static void ShowColorDropDown(DropDownButtonWidget color, Session.Client client,
|
||||||
@@ -389,21 +393,25 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
color.GetColor = () => c.Color.RGB;
|
color.GetColor = () => c.Color.RGB;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetupEditableFactionWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager, Dictionary<string,string> countryNames)
|
public static void SetupEditableFactionWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager,
|
||||||
|
Dictionary<string, LobbyCountry> countries)
|
||||||
{
|
{
|
||||||
var dropdown = parent.Get<DropDownButtonWidget>("FACTION");
|
var dropdown = parent.Get<DropDownButtonWidget>("FACTION");
|
||||||
dropdown.IsDisabled = () => s.LockRace || orderManager.LocalClient.IsReady;
|
dropdown.IsDisabled = () => s.LockRace || orderManager.LocalClient.IsReady;
|
||||||
dropdown.OnMouseDown = _ => ShowRaceDropDown(dropdown, c, orderManager, countryNames);
|
dropdown.OnMouseDown = _ => ShowRaceDropDown(dropdown, c, orderManager, countries);
|
||||||
SetupFactionWidget(dropdown, s, c, countryNames);
|
var factionDescription = countries[c.Country].Description;
|
||||||
|
dropdown.GetTooltipText = () => factionDescription;
|
||||||
|
SetupFactionWidget(dropdown, s, c, countries);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetupFactionWidget(Widget parent, Session.Slot s, Session.Client c, Dictionary<string,string> countryNames)
|
public static void SetupFactionWidget(Widget parent, Session.Slot s, Session.Client c,
|
||||||
|
Dictionary<string, LobbyCountry> countries)
|
||||||
{
|
{
|
||||||
var factionname = parent.Get<LabelWidget>("FACTIONNAME");
|
var factionName = parent.Get<LabelWidget>("FACTIONNAME");
|
||||||
factionname.GetText = () => countryNames[c.Country];
|
factionName.GetText = () => countries[c.Country].Name;
|
||||||
var factionflag = parent.Get<ImageWidget>("FACTIONFLAG");
|
var factionFlag = parent.Get<ImageWidget>("FACTIONFLAG");
|
||||||
factionflag.GetImageName = () => c.Country;
|
factionFlag.GetImageName = () => c.Country;
|
||||||
factionflag.GetImageCollection = () => "flags";
|
factionFlag.GetImageCollection = () => "flags";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetupEditableTeamWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager, MapPreview map)
|
public static void SetupEditableTeamWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager, MapPreview map)
|
||||||
|
|||||||
@@ -169,6 +169,7 @@ Container@SETTINGS_PANEL:
|
|||||||
Y: 205
|
Y: 205
|
||||||
Width: 70
|
Width: 70
|
||||||
Height: 25
|
Height: 25
|
||||||
|
IgnoreChildMouseOver: true
|
||||||
Children:
|
Children:
|
||||||
ColorBlock@COLORBLOCK:
|
ColorBlock@COLORBLOCK:
|
||||||
X: 5
|
X: 5
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ ScrollPanel@LOBBY_PLAYER_BIN:
|
|||||||
X: 190
|
X: 190
|
||||||
Width: 80
|
Width: 80
|
||||||
Height: 25
|
Height: 25
|
||||||
|
IgnoreChildMouseOver: true
|
||||||
Children:
|
Children:
|
||||||
ColorBlock@COLORBLOCK:
|
ColorBlock@COLORBLOCK:
|
||||||
X: 5
|
X: 5
|
||||||
@@ -61,6 +62,7 @@ ScrollPanel@LOBBY_PLAYER_BIN:
|
|||||||
X: 280
|
X: 280
|
||||||
Width: 130
|
Width: 130
|
||||||
Height: 25
|
Height: 25
|
||||||
|
IgnoreChildMouseOver: true
|
||||||
Children:
|
Children:
|
||||||
Image@FACTIONFLAG:
|
Image@FACTIONFLAG:
|
||||||
Width: 23
|
Width: 23
|
||||||
|
|||||||
BIN
mods/ra/bits/armordropicon.shp
Normal file
BIN
mods/ra/bits/armordropicon.shp
Normal file
Binary file not shown.
@@ -336,11 +336,22 @@ strategic: strategic.png
|
|||||||
player_owned: 96,0,32,32
|
player_owned: 96,0,32,32
|
||||||
|
|
||||||
flags: buttons.png
|
flags: buttons.png
|
||||||
allies: 30,112,30,15
|
|
||||||
soviet: 0,112,30,15
|
soviet: 0,112,30,15
|
||||||
|
allies: 30,112,30,15
|
||||||
random: 60,112,30,15
|
random: 60,112,30,15
|
||||||
spectator: 60,112,30,15
|
spectator: 60,112,30,15
|
||||||
|
|
||||||
|
russia: 0,127,30,15
|
||||||
|
ukraine: 30,127,30,15
|
||||||
|
england: 60,127,30,15
|
||||||
|
|
||||||
|
germany: 0,142,30,15
|
||||||
|
spain: 30,142,30,15
|
||||||
|
france: 60,142,30,15
|
||||||
|
|
||||||
|
turkey: 0,157,30,15
|
||||||
|
greece: 30,157,30,15
|
||||||
|
|
||||||
music: musicplayer.png
|
music: musicplayer.png
|
||||||
pause: 0,0,25,25
|
pause: 0,0,25,25
|
||||||
stop: 28,0,25,25
|
stop: 28,0,25,25
|
||||||
@@ -351,10 +362,10 @@ music: musicplayer.png
|
|||||||
slowmo: 168,0,25,25
|
slowmo: 168,0,25,25
|
||||||
|
|
||||||
scrollbar: buttons.png
|
scrollbar: buttons.png
|
||||||
down_arrow: 16,140,16,16
|
down_arrow: 116,140,16,16
|
||||||
down_pressed: 16,140,16,16
|
down_pressed: 116,140,16,16
|
||||||
up_arrow: 32,140,16,16
|
up_arrow: 132,140,16,16
|
||||||
up_pressed: 32,140,16,16
|
up_pressed: 132,140,16,16
|
||||||
|
|
||||||
# A copy of dialog3 (pressed button)
|
# A copy of dialog3 (pressed button)
|
||||||
progressbar-bg: dialog.png
|
progressbar-bg: dialog.png
|
||||||
@@ -728,10 +739,10 @@ checkbox: dialog.png
|
|||||||
corner-br: 767,127,1,1
|
corner-br: 767,127,1,1
|
||||||
|
|
||||||
checkbox-bits: buttons.png
|
checkbox-bits: buttons.png
|
||||||
checked: 0,157,16,16
|
checked: 100,157,16,16
|
||||||
checked-disabled: 0,173,16,16
|
checked-disabled: 100,173,16,16
|
||||||
crossed: 16,157,16,16
|
crossed: 116,157,16,16
|
||||||
crossed-disabled: 16,173,16,16
|
crossed-disabled: 116,173,16,16
|
||||||
|
|
||||||
checkbox-hover: dialog.png
|
checkbox-hover: dialog.png
|
||||||
background: 641,129,126,126
|
background: 641,129,126,126
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ ScrollPanel@LOBBY_PLAYER_BIN:
|
|||||||
X: 190
|
X: 190
|
||||||
Width: 80
|
Width: 80
|
||||||
Height: 25
|
Height: 25
|
||||||
|
IgnoreChildMouseOver: true
|
||||||
Children:
|
Children:
|
||||||
ColorBlock@COLORBLOCK:
|
ColorBlock@COLORBLOCK:
|
||||||
X: 5
|
X: 5
|
||||||
@@ -61,6 +62,10 @@ ScrollPanel@LOBBY_PLAYER_BIN:
|
|||||||
X: 280
|
X: 280
|
||||||
Width: 130
|
Width: 130
|
||||||
Height: 25
|
Height: 25
|
||||||
|
IgnoreChildMouseOver: true
|
||||||
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
TooltipTemplate: FACTION_DESCRIPTION_TOOLTIP
|
||||||
|
PanelRoot: FACTION_DROPDOWN_PANEL_ROOT # ensure that tooltips for the options are on top of the dropdown panel
|
||||||
Children:
|
Children:
|
||||||
Image@FACTIONFLAG:
|
Image@FACTIONFLAG:
|
||||||
Width: 30
|
Width: 30
|
||||||
@@ -326,12 +331,27 @@ ScrollPanel@LOBBY_PLAYER_BIN:
|
|||||||
ScrollPanel@RACE_DROPDOWN_TEMPLATE:
|
ScrollPanel@RACE_DROPDOWN_TEMPLATE:
|
||||||
Width: DROPDOWN_WIDTH
|
Width: DROPDOWN_WIDTH
|
||||||
Children:
|
Children:
|
||||||
|
ScrollItem@HEADER:
|
||||||
|
BaseName: scrollheader
|
||||||
|
Width: PARENT_RIGHT-27
|
||||||
|
Height: 13
|
||||||
|
X: 2
|
||||||
|
Y: 0
|
||||||
|
Visible: false
|
||||||
|
Children:
|
||||||
|
Label@LABEL:
|
||||||
|
Font: TinyBold
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: 10
|
||||||
|
Align: Center
|
||||||
ScrollItem@TEMPLATE:
|
ScrollItem@TEMPLATE:
|
||||||
Width: PARENT_RIGHT-27
|
Width: PARENT_RIGHT-27
|
||||||
Height: 25
|
Height: 25
|
||||||
X: 2
|
X: 2
|
||||||
Y: 0
|
Y: 0
|
||||||
Visible: false
|
Visible: false
|
||||||
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
TooltipTemplate: FACTION_DESCRIPTION_TOOLTIP
|
||||||
Children:
|
Children:
|
||||||
Image@FLAG:
|
Image@FLAG:
|
||||||
X: 5
|
X: 5
|
||||||
@@ -342,4 +362,3 @@ ScrollPanel@RACE_DROPDOWN_TEMPLATE:
|
|||||||
X: 40
|
X: 40
|
||||||
Width: 60
|
Width: 60
|
||||||
Height: 25
|
Height: 25
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ Background@SERVER_LOBBY:
|
|||||||
Text: Team
|
Text: Team
|
||||||
Align: Center
|
Align: Center
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Label@LABEL_LOBBY_TEAM:
|
Label@LABEL_LOBBY_SPAWN:
|
||||||
X: 478
|
X: 478
|
||||||
Width: 48
|
Width: 48
|
||||||
Height: 25
|
Height: 25
|
||||||
@@ -141,5 +141,5 @@ Background@SERVER_LOBBY:
|
|||||||
Text: Disconnect
|
Text: Disconnect
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Key: escape
|
Key: escape
|
||||||
|
Container@FACTION_DROPDOWN_PANEL_ROOT:
|
||||||
TooltipContainer@TOOLTIP_CONTAINER:
|
TooltipContainer@TOOLTIP_CONTAINER:
|
||||||
|
|
||||||
|
|||||||
@@ -182,6 +182,7 @@ Background@SETTINGS_PANEL:
|
|||||||
Y: 205
|
Y: 205
|
||||||
Width: 70
|
Width: 70
|
||||||
Height: 25
|
Height: 25
|
||||||
|
IgnoreChildMouseOver: true
|
||||||
Children:
|
Children:
|
||||||
ColorBlock@COLORBLOCK:
|
ColorBlock@COLORBLOCK:
|
||||||
X: 5
|
X: 5
|
||||||
|
|||||||
@@ -186,3 +186,22 @@ Background@SUPPORT_POWER_TOOLTIP:
|
|||||||
Y: 22
|
Y: 22
|
||||||
Font: TinyBold
|
Font: TinyBold
|
||||||
VAlign: Top
|
VAlign: Top
|
||||||
|
|
||||||
|
Background@FACTION_DESCRIPTION_TOOLTIP:
|
||||||
|
Logic: CountryTooltipLogic
|
||||||
|
Background: dialog4
|
||||||
|
Children:
|
||||||
|
Label@HEADER:
|
||||||
|
X: 7
|
||||||
|
Y: 6
|
||||||
|
Width: 8
|
||||||
|
Height: 12
|
||||||
|
Font: Bold
|
||||||
|
VAlign: Top
|
||||||
|
Label@DESCRIPTION:
|
||||||
|
X: 14
|
||||||
|
Y: 0
|
||||||
|
Width: 15
|
||||||
|
Height: 14
|
||||||
|
Font: TinyBold
|
||||||
|
VAlign: Top
|
||||||
@@ -982,6 +982,18 @@ Rules:
|
|||||||
HIJACKER:
|
HIJACKER:
|
||||||
Buildable:
|
Buildable:
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~disabled
|
||||||
|
FACF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
WEAF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
SYRF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
DOMF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
|
|
||||||
|
|||||||
@@ -1578,6 +1578,18 @@ Rules:
|
|||||||
SHOK:
|
SHOK:
|
||||||
Buildable:
|
Buildable:
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~disabled
|
||||||
|
FACF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
WEAF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
SYRF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
DOMF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
|
|
||||||
|
|||||||
@@ -1262,8 +1262,10 @@ Rules:
|
|||||||
ParachuteSequence: parach
|
ParachuteSequence: parach
|
||||||
AFLD.mission:
|
AFLD.mission:
|
||||||
Inherits: AFLD
|
Inherits: AFLD
|
||||||
-AirstrikePower:
|
-AirstrikePower@spyplane:
|
||||||
-ParatroopersPower:
|
-ParatroopersPower@paratroopers
|
||||||
|
-ParatroopersPower@armordrop:
|
||||||
|
-AirstrikePower@parabombs:
|
||||||
-SupportPowerChargeBar:
|
-SupportPowerChargeBar:
|
||||||
RenderBuilding:
|
RenderBuilding:
|
||||||
Image: AFLD
|
Image: AFLD
|
||||||
@@ -1351,6 +1353,18 @@ Rules:
|
|||||||
DTRK:
|
DTRK:
|
||||||
Buildable:
|
Buildable:
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~disabled
|
||||||
|
FACF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
WEAF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
SYRF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
DOMF:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
Sequences:
|
Sequences:
|
||||||
|
|
||||||
|
|||||||
@@ -24,3 +24,10 @@ Metrics:
|
|||||||
SpawnColor: 255,255,255
|
SpawnColor: 255,255,255
|
||||||
SpawnContrastColor: 0,0,0
|
SpawnContrastColor: 0,0,0
|
||||||
SpawnLabelOffset: 0,1
|
SpawnLabelOffset: 0,1
|
||||||
|
RaceSuffix-allies: allies
|
||||||
|
RaceSuffix-england: allies
|
||||||
|
RaceSuffix-france: allies
|
||||||
|
RaceSuffix-germany: allies
|
||||||
|
RaceSuffix-soviet: soviet
|
||||||
|
RaceSuffix-russia: soviet
|
||||||
|
RaceSuffix-ukraine: soviet
|
||||||
|
|||||||
@@ -62,8 +62,8 @@ Player:
|
|||||||
ttnk: 10%
|
ttnk: 10%
|
||||||
stnk: 5%
|
stnk: 5%
|
||||||
SquadSize: 20
|
SquadSize: 20
|
||||||
SupportPowerDecision@Airstrike:
|
SupportPowerDecision@spyplane:
|
||||||
OrderName: AirstrikePowerInfoOrder
|
OrderName: SovietSpyPlane
|
||||||
MinimumAttractiveness: 1
|
MinimumAttractiveness: 1
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
Against: Enemy
|
Against: Enemy
|
||||||
@@ -71,8 +71,8 @@ Player:
|
|||||||
Attractiveness: 1
|
Attractiveness: 1
|
||||||
TargetMetric: None
|
TargetMetric: None
|
||||||
CheckRadius: 5c0
|
CheckRadius: 5c0
|
||||||
SupportPowerDecision@Paratroopers:
|
SupportPowerDecision@paratroopers:
|
||||||
OrderName: ParatroopersPowerInfoOrder
|
OrderName: SovietParatroopers
|
||||||
MinimumAttractiveness: 5
|
MinimumAttractiveness: 5
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
Against: Enemy
|
Against: Enemy
|
||||||
@@ -86,7 +86,31 @@ Player:
|
|||||||
Attractiveness: -10
|
Attractiveness: -10
|
||||||
TargetMetric: None
|
TargetMetric: None
|
||||||
CheckRadius: 10c0
|
CheckRadius: 10c0
|
||||||
SupportPowerDecision@NukePower:
|
SupportPowerDecision@armordrop:
|
||||||
|
OrderName: RussiaArmorDrop
|
||||||
|
MinimumAttractiveness: 5
|
||||||
|
Consideration@1:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Structure
|
||||||
|
Attractiveness: 1
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 10c0
|
||||||
|
Consideration@2:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Vehicle, Tank, Infantry, Defense
|
||||||
|
Attractiveness: -10
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 10c0
|
||||||
|
SupportPowerDecision@parabombs:
|
||||||
|
OrderName: UkraineParabombs
|
||||||
|
MinimumAttractiveness: 1
|
||||||
|
Consideration@1:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Structure
|
||||||
|
Attractiveness: 1
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 5c0
|
||||||
|
SupportPowerDecision@nukepower:
|
||||||
OrderName: NukePowerInfoOrder
|
OrderName: NukePowerInfoOrder
|
||||||
MinimumAttractiveness: 3000
|
MinimumAttractiveness: 3000
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
@@ -180,8 +204,8 @@ Player:
|
|||||||
ca: 10%
|
ca: 10%
|
||||||
pt: 10%
|
pt: 10%
|
||||||
SquadSize: 40
|
SquadSize: 40
|
||||||
SupportPowerDecision@Airstrike:
|
SupportPowerDecision@spyplane:
|
||||||
OrderName: AirstrikePowerInfoOrder
|
OrderName: SovietSpyPlane
|
||||||
MinimumAttractiveness: 1
|
MinimumAttractiveness: 1
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
Against: Enemy
|
Against: Enemy
|
||||||
@@ -189,8 +213,8 @@ Player:
|
|||||||
Attractiveness: 1
|
Attractiveness: 1
|
||||||
TargetMetric: None
|
TargetMetric: None
|
||||||
CheckRadius: 5c0
|
CheckRadius: 5c0
|
||||||
SupportPowerDecision@Paratroopers:
|
SupportPowerDecision@paratroopers:
|
||||||
OrderName: ParatroopersPowerInfoOrder
|
OrderName: SovietParatroopers
|
||||||
MinimumAttractiveness: 5
|
MinimumAttractiveness: 5
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
Against: Enemy
|
Against: Enemy
|
||||||
@@ -204,7 +228,31 @@ Player:
|
|||||||
Attractiveness: -10
|
Attractiveness: -10
|
||||||
TargetMetric: None
|
TargetMetric: None
|
||||||
CheckRadius: 10c0
|
CheckRadius: 10c0
|
||||||
SupportPowerDecision@NukePower:
|
SupportPowerDecision@armordrop:
|
||||||
|
OrderName: RussiaArmorDrop
|
||||||
|
MinimumAttractiveness: 5
|
||||||
|
Consideration@1:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Structure
|
||||||
|
Attractiveness: 1
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 10c0
|
||||||
|
Consideration@2:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Vehicle, Tank, Infantry, Defense
|
||||||
|
Attractiveness: -10
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 10c0
|
||||||
|
SupportPowerDecision@parabombs:
|
||||||
|
OrderName: UkraineParabombs
|
||||||
|
MinimumAttractiveness: 1
|
||||||
|
Consideration@1:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Structure
|
||||||
|
Attractiveness: 1
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 5c0
|
||||||
|
SupportPowerDecision@nukepower:
|
||||||
OrderName: NukePowerInfoOrder
|
OrderName: NukePowerInfoOrder
|
||||||
MinimumAttractiveness: 3000
|
MinimumAttractiveness: 3000
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
@@ -297,8 +345,8 @@ Player:
|
|||||||
ca: 10%
|
ca: 10%
|
||||||
pt: 10%
|
pt: 10%
|
||||||
SquadSize: 10
|
SquadSize: 10
|
||||||
SupportPowerDecision@Airstrike:
|
SupportPowerDecision@spyplane:
|
||||||
OrderName: AirstrikePowerInfoOrder
|
OrderName: SovietSpyPlane
|
||||||
MinimumAttractiveness: 1
|
MinimumAttractiveness: 1
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
Against: Enemy
|
Against: Enemy
|
||||||
@@ -306,8 +354,8 @@ Player:
|
|||||||
Attractiveness: 1
|
Attractiveness: 1
|
||||||
TargetMetric: None
|
TargetMetric: None
|
||||||
CheckRadius: 5c0
|
CheckRadius: 5c0
|
||||||
SupportPowerDecision@Paratroopers:
|
SupportPowerDecision@paratroopers:
|
||||||
OrderName: ParatroopersPowerInfoOrder
|
OrderName: SovietParatroopers
|
||||||
MinimumAttractiveness: 5
|
MinimumAttractiveness: 5
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
Against: Enemy
|
Against: Enemy
|
||||||
@@ -321,7 +369,31 @@ Player:
|
|||||||
Attractiveness: -10
|
Attractiveness: -10
|
||||||
TargetMetric: None
|
TargetMetric: None
|
||||||
CheckRadius: 10c0
|
CheckRadius: 10c0
|
||||||
SupportPowerDecision@NukePower:
|
SupportPowerDecision@armordrop:
|
||||||
|
OrderName: RussiaArmorDrop
|
||||||
|
MinimumAttractiveness: 5
|
||||||
|
Consideration@1:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Structure
|
||||||
|
Attractiveness: 1
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 10c0
|
||||||
|
Consideration@2:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Vehicle, Tank, Infantry, Defense
|
||||||
|
Attractiveness: -10
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 10c0
|
||||||
|
SupportPowerDecision@parabombs:
|
||||||
|
OrderName: UkraineParabombs
|
||||||
|
MinimumAttractiveness: 1
|
||||||
|
Consideration@1:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Structure
|
||||||
|
Attractiveness: 1
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 5c0
|
||||||
|
SupportPowerDecision@nukepower:
|
||||||
OrderName: NukePowerInfoOrder
|
OrderName: NukePowerInfoOrder
|
||||||
MinimumAttractiveness: 3000
|
MinimumAttractiveness: 3000
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
@@ -389,8 +461,8 @@ Player:
|
|||||||
ca: 20%
|
ca: 20%
|
||||||
pt: 10%
|
pt: 10%
|
||||||
SquadSize: 1
|
SquadSize: 1
|
||||||
SupportPowerDecision@Airstrike:
|
SupportPowerDecision@spyplane:
|
||||||
OrderName: AirstrikePowerInfoOrder
|
OrderName: SovietSpyPlane
|
||||||
MinimumAttractiveness: 1
|
MinimumAttractiveness: 1
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
Against: Enemy
|
Against: Enemy
|
||||||
@@ -398,8 +470,8 @@ Player:
|
|||||||
Attractiveness: 1
|
Attractiveness: 1
|
||||||
TargetMetric: None
|
TargetMetric: None
|
||||||
CheckRadius: 5c0
|
CheckRadius: 5c0
|
||||||
SupportPowerDecision@Paratroopers:
|
SupportPowerDecision@paratroopers:
|
||||||
OrderName: ParatroopersPowerInfoOrder
|
OrderName: SovietParatroopers
|
||||||
MinimumAttractiveness: 5
|
MinimumAttractiveness: 5
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
Against: Enemy
|
Against: Enemy
|
||||||
@@ -413,7 +485,31 @@ Player:
|
|||||||
Attractiveness: -10
|
Attractiveness: -10
|
||||||
TargetMetric: None
|
TargetMetric: None
|
||||||
CheckRadius: 10c0
|
CheckRadius: 10c0
|
||||||
SupportPowerDecision@NukePower:
|
SupportPowerDecision@armordrop:
|
||||||
|
OrderName: RussiaArmorDrop
|
||||||
|
MinimumAttractiveness: 5
|
||||||
|
Consideration@1:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Structure
|
||||||
|
Attractiveness: 1
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 10c0
|
||||||
|
Consideration@2:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Vehicle, Tank, Infantry, Defense
|
||||||
|
Attractiveness: -10
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 10c0
|
||||||
|
SupportPowerDecision@parabombs:
|
||||||
|
OrderName: UkraineParabombs
|
||||||
|
MinimumAttractiveness: 1
|
||||||
|
Consideration@1:
|
||||||
|
Against: Enemy
|
||||||
|
Types: Structure
|
||||||
|
Attractiveness: 1
|
||||||
|
TargetMetric: None
|
||||||
|
CheckRadius: 5c0
|
||||||
|
SupportPowerDecision@nukepower:
|
||||||
OrderName: NukePowerInfoOrder
|
OrderName: NukePowerInfoOrder
|
||||||
MinimumAttractiveness: 3000
|
MinimumAttractiveness: 3000
|
||||||
Consideration@1:
|
Consideration@1:
|
||||||
|
|||||||
@@ -147,6 +147,15 @@
|
|||||||
TimedUpgradeBar:
|
TimedUpgradeBar:
|
||||||
Upgrade: invulnerability
|
Upgrade: invulnerability
|
||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
|
Parachutable:
|
||||||
|
ParachuteOffset: 0,0,200
|
||||||
|
KilledOnImpassableTerrain: true
|
||||||
|
ParachuteSequence: parach
|
||||||
|
ShadowSequence:
|
||||||
|
GroundCorpseSequence:
|
||||||
|
GroundCorpsePalette:
|
||||||
|
WaterCorpseSequence:
|
||||||
|
WaterCorpsePalette:
|
||||||
|
|
||||||
^Infantry:
|
^Infantry:
|
||||||
AppearsOnRadar:
|
AppearsOnRadar:
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ SPY:
|
|||||||
Queue: Infantry
|
Queue: Infantry
|
||||||
BuildAtProductionType: Soldier
|
BuildAtProductionType: Soldier
|
||||||
BuildPaletteOrder: 90
|
BuildPaletteOrder: 90
|
||||||
Prerequisites: dome, ~tent, ~techlevel.medium
|
Prerequisites: ~!infantry.england, dome, ~tent, ~techlevel.medium
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 500
|
Cost: 500
|
||||||
-Tooltip:
|
-Tooltip:
|
||||||
@@ -226,6 +226,17 @@ SPY:
|
|||||||
Weapon: SilencedPPK
|
Weapon: SilencedPPK
|
||||||
AttackFrontal:
|
AttackFrontal:
|
||||||
|
|
||||||
|
SPY.England:
|
||||||
|
Inherits: SPY
|
||||||
|
RenderDisguise:
|
||||||
|
Image: spy
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~infantry.england, dome, ~tent, ~techlevel.medium
|
||||||
|
Valued:
|
||||||
|
Cost: 250
|
||||||
|
DisguiseToolTip:
|
||||||
|
Name: British Spy
|
||||||
|
|
||||||
E7:
|
E7:
|
||||||
Inherits: ^Infantry
|
Inherits: ^Infantry
|
||||||
Buildable:
|
Buildable:
|
||||||
|
|||||||
@@ -78,10 +78,6 @@ CRATE:
|
|||||||
RevealMapCrateAction:
|
RevealMapCrateAction:
|
||||||
SelectionShares: 1
|
SelectionShares: 1
|
||||||
Effect: reveal-map
|
Effect: reveal-map
|
||||||
SupportPowerCrateAction@parabombs:
|
|
||||||
SelectionShares: 5
|
|
||||||
Proxy: powerproxy.parabombs
|
|
||||||
Effect: parabombs
|
|
||||||
DuplicateUnitCrateAction:
|
DuplicateUnitCrateAction:
|
||||||
SelectionShares: 10
|
SelectionShares: 10
|
||||||
MaxAmount: 5
|
MaxAmount: 5
|
||||||
@@ -94,51 +90,51 @@ CRATE:
|
|||||||
GiveUnitCrateAction@jeep:
|
GiveUnitCrateAction@jeep:
|
||||||
SelectionShares: 7
|
SelectionShares: 7
|
||||||
Units: jeep
|
Units: jeep
|
||||||
ValidRaces: allies
|
ValidRaces: allies, england, france, germany
|
||||||
Prerequisites: techlevel.low
|
Prerequisites: techlevel.low
|
||||||
GiveUnitCrateAction@arty:
|
GiveUnitCrateAction@arty:
|
||||||
SelectionShares: 6
|
SelectionShares: 6
|
||||||
Units: arty
|
Units: arty
|
||||||
ValidRaces: allies
|
ValidRaces: allies, england, france, germany
|
||||||
Prerequisites: techlevel.medium, dome
|
Prerequisites: techlevel.medium, dome
|
||||||
GiveUnitCrateAction@v2rl:
|
GiveUnitCrateAction@v2rl:
|
||||||
SelectionShares: 6
|
SelectionShares: 6
|
||||||
Units: v2rl
|
Units: v2rl
|
||||||
ValidRaces: soviet
|
ValidRaces: soviet, russia, ukraine
|
||||||
Prerequisites: techlevel.medium, dome
|
Prerequisites: techlevel.medium, dome
|
||||||
GiveUnitCrateAction@1tnk:
|
GiveUnitCrateAction@1tnk:
|
||||||
SelectionShares: 5
|
SelectionShares: 5
|
||||||
Units: 1tnk
|
Units: 1tnk
|
||||||
ValidRaces: allies
|
ValidRaces: allies, england, france, germany
|
||||||
Prerequisites: techlevel.low
|
Prerequisites: techlevel.low
|
||||||
GiveUnitCrateAction@2tnk:
|
GiveUnitCrateAction@2tnk:
|
||||||
SelectionShares: 4
|
SelectionShares: 4
|
||||||
Units: 2tnk
|
Units: 2tnk
|
||||||
ValidRaces: allies
|
ValidRaces: allies, england, france, germany
|
||||||
Prerequisites: techlevel.medium, fix
|
Prerequisites: techlevel.medium, fix
|
||||||
GiveUnitCrateAction@3tnk:
|
GiveUnitCrateAction@3tnk:
|
||||||
SelectionShares: 4
|
SelectionShares: 4
|
||||||
Units: 3tnk
|
Units: 3tnk
|
||||||
ValidRaces: soviet
|
ValidRaces: soviet, russia, ukraine
|
||||||
Prerequisites: techlevel.medium, fix
|
Prerequisites: techlevel.medium, fix
|
||||||
GiveUnitCrateAction@4tnk:
|
GiveUnitCrateAction@4tnk:
|
||||||
SelectionShares: 3
|
SelectionShares: 3
|
||||||
Units: 4tnk
|
Units: 4tnk
|
||||||
ValidRaces: soviet
|
ValidRaces: soviet, russia, ukraine
|
||||||
Prerequisites: techlevel.unrestricted, fix, techcenter
|
Prerequisites: techlevel.unrestricted, fix, techcenter
|
||||||
GiveUnitCrateAction@squadlight:
|
GiveUnitCrateAction@squadlight:
|
||||||
SelectionShares: 7
|
SelectionShares: 7
|
||||||
Units: e1,e1,e1,e3,e3
|
Units: e1,e1,e1,e3,e3
|
||||||
ValidRaces: allies, soviet
|
ValidRaces: allies, england, france, germany, soviet, russia, ukraine
|
||||||
GiveUnitCrateAction@squadheavyallies:
|
GiveUnitCrateAction@squadheavyallies:
|
||||||
SelectionShares: 7
|
SelectionShares: 7
|
||||||
Units: e1,e1,e1,e1,e3,e3,e3,e6,medi
|
Units: e1,e1,e1,e1,e3,e3,e3,e6,medi
|
||||||
ValidRaces: allies
|
ValidRaces: allies, england, france, germany
|
||||||
TimeDelay: 4500
|
TimeDelay: 4500
|
||||||
GiveUnitCrateAction@squadheavysoviet:
|
GiveUnitCrateAction@squadheavysoviet:
|
||||||
SelectionShares: 7
|
SelectionShares: 7
|
||||||
Units: e1,e1,e4,e4,e3,e3,e3
|
Units: e1,e1,e4,e4,e3,e3,e3
|
||||||
ValidRaces: soviet
|
ValidRaces: soviet, russia, ukraine
|
||||||
TimeDelay: 4500
|
TimeDelay: 4500
|
||||||
GrantUpgradeCrateAction@invuln:
|
GrantUpgradeCrateAction@invuln:
|
||||||
SelectionShares: 5
|
SelectionShares: 5
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ GAP:
|
|||||||
Buildable:
|
Buildable:
|
||||||
Queue: Defense
|
Queue: Defense
|
||||||
BuildPaletteOrder: 110
|
BuildPaletteOrder: 110
|
||||||
Prerequisites: atek, ~structures.allies, ~techlevel.unrestricted
|
Prerequisites: atek, ~!structures.france, ~structures.allies, ~techlevel.unrestricted
|
||||||
Building:
|
Building:
|
||||||
Footprint: _ x
|
Footprint: _ x
|
||||||
Dimensions: 1,2
|
Dimensions: 1,2
|
||||||
@@ -81,6 +81,19 @@ GAP:
|
|||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
RequiredForShortGame: false
|
RequiredForShortGame: false
|
||||||
|
|
||||||
|
GAP.France:
|
||||||
|
Inherits: GAP
|
||||||
|
RenderBuilding:
|
||||||
|
Image: gap
|
||||||
|
Tooltip:
|
||||||
|
Name: Advanced Gap Generator
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: atek, ~structures.france, ~techlevel.unrestricted
|
||||||
|
RevealsShroud:
|
||||||
|
Range: 10c0
|
||||||
|
CreatesShroud:
|
||||||
|
Range: 10c0
|
||||||
|
|
||||||
SPEN:
|
SPEN:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
InfiltrateForSupportPower:
|
InfiltrateForSupportPower:
|
||||||
@@ -133,6 +146,30 @@ SPEN:
|
|||||||
ProductionBar:
|
ProductionBar:
|
||||||
Power:
|
Power:
|
||||||
Amount: -30
|
Amount: -30
|
||||||
|
ProvidesCustomPrerequisite@soviet:
|
||||||
|
Race: soviet, russia, ukraine
|
||||||
|
Prerequisite: ships.soviet
|
||||||
|
ProvidesCustomPrerequisite@sovietvanilla:
|
||||||
|
Race: soviet
|
||||||
|
Prerequisite: ships.sovietvanilla
|
||||||
|
ProvidesCustomPrerequisite@russia:
|
||||||
|
Race: russia
|
||||||
|
Prerequisite: ships.russia
|
||||||
|
ProvidesCustomPrerequisite@ukraine:
|
||||||
|
Race: ukraine
|
||||||
|
Prerequisite: ships.ukraine
|
||||||
|
ProvidesCustomPrerequisite@sovietstructure:
|
||||||
|
RequiresPrerequisites: structures.soviet
|
||||||
|
Prerequisite: ships.soviet
|
||||||
|
ProvidesCustomPrerequisite@sovietvanillastructure:
|
||||||
|
RequiresPrerequisites: structures.sovietvanilla
|
||||||
|
Prerequisite: ships.sovietvanilla
|
||||||
|
ProvidesCustomPrerequisite@russianstructure:
|
||||||
|
RequiresPrerequisites: structures.russia
|
||||||
|
Prerequisite: ships.russia
|
||||||
|
ProvidesCustomPrerequisite@ukrainianstructure:
|
||||||
|
RequiresPrerequisites: structures.ukraine
|
||||||
|
Prerequisite: ships.ukraine
|
||||||
|
|
||||||
SYRD:
|
SYRD:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
@@ -186,6 +223,36 @@ SYRD:
|
|||||||
ProductionBar:
|
ProductionBar:
|
||||||
Power:
|
Power:
|
||||||
Amount: -30
|
Amount: -30
|
||||||
|
ProvidesCustomPrerequisite@allies:
|
||||||
|
Race: allies, england, france, germany
|
||||||
|
Prerequisite: ships.allies
|
||||||
|
ProvidesCustomPrerequisite@alliesvanilla:
|
||||||
|
Race: allies
|
||||||
|
Prerequisite: ships.alliesvanilla
|
||||||
|
ProvidesCustomPrerequisite@england:
|
||||||
|
Race: england
|
||||||
|
Prerequisite: ships.england
|
||||||
|
ProvidesCustomPrerequisite@france:
|
||||||
|
Race: france
|
||||||
|
Prerequisite: ships.france
|
||||||
|
ProvidesCustomPrerequisite@germany:
|
||||||
|
Race: germany
|
||||||
|
Prerequisite: ships.germany
|
||||||
|
ProvidesCustomPrerequisite@alliedstructure:
|
||||||
|
RequiresPrerequisites: structures.allies
|
||||||
|
Prerequisite: ships.allies
|
||||||
|
ProvidesCustomPrerequisite@alliedvanillastructure:
|
||||||
|
RequiresPrerequisites: structures.alliesvanilla
|
||||||
|
Prerequisite: ships.alliesvanilla
|
||||||
|
ProvidesCustomPrerequisite@englishstructure:
|
||||||
|
RequiresPrerequisites: structures.england
|
||||||
|
Prerequisite: ships.england
|
||||||
|
ProvidesCustomPrerequisite@frenchstructure:
|
||||||
|
RequiresPrerequisites: structures.france
|
||||||
|
Prerequisite: ships.france
|
||||||
|
ProvidesCustomPrerequisite@germanstructure:
|
||||||
|
RequiresPrerequisites: structures.germany
|
||||||
|
Prerequisite: ships.germany
|
||||||
|
|
||||||
IRON:
|
IRON:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
@@ -238,7 +305,7 @@ PDOX:
|
|||||||
Buildable:
|
Buildable:
|
||||||
Queue: Defense
|
Queue: Defense
|
||||||
BuildPaletteOrder: 120
|
BuildPaletteOrder: 120
|
||||||
Prerequisites: atek, ~structures.allies, ~techlevel.unrestricted
|
Prerequisites: atek, ~structures.allies, ~!structures.germany, ~techlevel.unrestricted
|
||||||
BuildLimit: 1
|
BuildLimit: 1
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 1500
|
Cost: 1500
|
||||||
@@ -278,6 +345,20 @@ PDOX:
|
|||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
RequiredForShortGame: false
|
RequiredForShortGame: false
|
||||||
|
|
||||||
|
PDOX.Germany:
|
||||||
|
Inherits: PDOX
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: atek, ~structures.germany, ~techlevel.unrestricted
|
||||||
|
RenderBuilding:
|
||||||
|
Image: pdox
|
||||||
|
Tooltip:
|
||||||
|
Name: Advanced Chronosphere
|
||||||
|
Description: Teleports a large group of units across the\nmap for a short time. Requires power to operate.\n Special Ability: Chronoshift\n\nMaximum 1 can be built
|
||||||
|
ChronoshiftPower:
|
||||||
|
Description: Advanced Chronoshift
|
||||||
|
LongDesc: Teleports a large group of units across the\nmap for 20 seconds.
|
||||||
|
Range: 2
|
||||||
|
|
||||||
TSLA:
|
TSLA:
|
||||||
Inherits: ^Defense
|
Inherits: ^Defense
|
||||||
Buildable:
|
Buildable:
|
||||||
@@ -691,17 +772,59 @@ WEAP:
|
|||||||
Production:
|
Production:
|
||||||
Produces: Vehicle
|
Produces: Vehicle
|
||||||
ProvidesCustomPrerequisite@allies:
|
ProvidesCustomPrerequisite@allies:
|
||||||
Race: allies
|
Race: allies, england, france, germany
|
||||||
Prerequisite: vehicles.allies
|
Prerequisite: vehicles.allies
|
||||||
|
ProvidesCustomPrerequisite@alliesvanilla:
|
||||||
|
Race: allies
|
||||||
|
Prerequisite: vehicles.alliesvanilla
|
||||||
|
ProvidesCustomPrerequisite@england:
|
||||||
|
Race: england
|
||||||
|
Prerequisite: vehicles.england
|
||||||
|
ProvidesCustomPrerequisite@france:
|
||||||
|
Race: france
|
||||||
|
Prerequisite: vehicles.france
|
||||||
|
ProvidesCustomPrerequisite@germany:
|
||||||
|
Race: germany
|
||||||
|
Prerequisite: vehicles.germany
|
||||||
ProvidesCustomPrerequisite@soviet:
|
ProvidesCustomPrerequisite@soviet:
|
||||||
Race: soviet
|
Race: soviet, russia, ukraine
|
||||||
Prerequisite: vehicles.soviet
|
Prerequisite: vehicles.soviet
|
||||||
|
ProvidesCustomPrerequisite@sovietvanilla:
|
||||||
|
Race: soviet
|
||||||
|
Prerequisite: vehicles.sovietvanilla
|
||||||
|
ProvidesCustomPrerequisite@russia:
|
||||||
|
Race: russia
|
||||||
|
Prerequisite: vehicles.russia
|
||||||
|
ProvidesCustomPrerequisite@ukraine:
|
||||||
|
Race: ukraine
|
||||||
|
Prerequisite: vehicles.ukraine
|
||||||
ProvidesCustomPrerequisite@alliedstructure:
|
ProvidesCustomPrerequisite@alliedstructure:
|
||||||
RequiresPrerequisites: structures.allies
|
RequiresPrerequisites: structures.allies
|
||||||
Prerequisite: vehicles.allies
|
Prerequisite: vehicles.allies
|
||||||
|
ProvidesCustomPrerequisite@alliedvanillastructure:
|
||||||
|
RequiresPrerequisites: structures.alliesvanilla
|
||||||
|
Prerequisite: vehicles.alliesvanilla
|
||||||
|
ProvidesCustomPrerequisite@englishstructure:
|
||||||
|
RequiresPrerequisites: structures.england
|
||||||
|
Prerequisite: vehicles.england
|
||||||
|
ProvidesCustomPrerequisite@frenchstructure:
|
||||||
|
RequiresPrerequisites: structures.france
|
||||||
|
Prerequisite: vehicles.france
|
||||||
|
ProvidesCustomPrerequisite@germanstructure:
|
||||||
|
RequiresPrerequisites: structures.germany
|
||||||
|
Prerequisite: vehicles.germany
|
||||||
ProvidesCustomPrerequisite@sovietstructure:
|
ProvidesCustomPrerequisite@sovietstructure:
|
||||||
RequiresPrerequisites: structures.soviet
|
RequiresPrerequisites: structures.soviet
|
||||||
Prerequisite: vehicles.soviet
|
Prerequisite: vehicles.soviet
|
||||||
|
ProvidesCustomPrerequisite@sovietvanillastructure:
|
||||||
|
RequiresPrerequisites: structures.sovietvanilla
|
||||||
|
Prerequisite: vehicles.sovietvanilla
|
||||||
|
ProvidesCustomPrerequisite@russianstructure:
|
||||||
|
RequiresPrerequisites: structures.russia
|
||||||
|
Prerequisite: vehicles.russia
|
||||||
|
ProvidesCustomPrerequisite@ukrainianstructure:
|
||||||
|
RequiresPrerequisites: structures.ukraine
|
||||||
|
Prerequisite: vehicles.ukraine
|
||||||
PrimaryBuilding:
|
PrimaryBuilding:
|
||||||
ProductionBar:
|
ProductionBar:
|
||||||
Power:
|
Power:
|
||||||
@@ -717,11 +840,32 @@ FACT:
|
|||||||
BuildPaletteOrder: 1000
|
BuildPaletteOrder: 1000
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~disabled
|
||||||
ProvidesCustomPrerequisite@allies:
|
ProvidesCustomPrerequisite@allies:
|
||||||
Race: allies
|
Race: allies, england, france, germany
|
||||||
Prerequisite: structures.allies
|
Prerequisite: structures.allies
|
||||||
|
ProvidesCustomPrerequisite@alliesvanilla:
|
||||||
|
Race: allies
|
||||||
|
Prerequisite: structures.alliesvanilla
|
||||||
|
ProvidesCustomPrerequisite@england:
|
||||||
|
Race: england
|
||||||
|
Prerequisite: structures.england
|
||||||
|
ProvidesCustomPrerequisite@france:
|
||||||
|
Race: france
|
||||||
|
Prerequisite: structures.france
|
||||||
|
ProvidesCustomPrerequisite@germany:
|
||||||
|
Race: germany
|
||||||
|
Prerequisite: structures.germany
|
||||||
ProvidesCustomPrerequisite@soviet:
|
ProvidesCustomPrerequisite@soviet:
|
||||||
Race: soviet
|
Race: soviet, russia, ukraine
|
||||||
Prerequisite: structures.soviet
|
Prerequisite: structures.soviet
|
||||||
|
ProvidesCustomPrerequisite@sovietvanilla:
|
||||||
|
Race: soviet
|
||||||
|
Prerequisite: structures.sovietvanilla
|
||||||
|
ProvidesCustomPrerequisite@russia:
|
||||||
|
Race: russia
|
||||||
|
Prerequisite: structures.russia
|
||||||
|
ProvidesCustomPrerequisite@ukraine:
|
||||||
|
Race: ukraine
|
||||||
|
Prerequisite: structures.ukraine
|
||||||
Health:
|
Health:
|
||||||
HP: 1500
|
HP: 1500
|
||||||
Armor:
|
Armor:
|
||||||
@@ -863,6 +1007,36 @@ HPAD:
|
|||||||
PrimaryBuilding:
|
PrimaryBuilding:
|
||||||
Power:
|
Power:
|
||||||
Amount: -10
|
Amount: -10
|
||||||
|
ProvidesCustomPrerequisite@allies:
|
||||||
|
Race: allies, england, france, germany
|
||||||
|
Prerequisite: aircraft.allies
|
||||||
|
ProvidesCustomPrerequisite@alliesvanilla:
|
||||||
|
Race: allies
|
||||||
|
Prerequisite: aircraft.alliesvanilla
|
||||||
|
ProvidesCustomPrerequisite@england:
|
||||||
|
Race: england
|
||||||
|
Prerequisite: aircraft.england
|
||||||
|
ProvidesCustomPrerequisite@france:
|
||||||
|
Race: france
|
||||||
|
Prerequisite: aircraft.france
|
||||||
|
ProvidesCustomPrerequisite@germany:
|
||||||
|
Race: germany
|
||||||
|
Prerequisite: aircraft.germany
|
||||||
|
ProvidesCustomPrerequisite@alliedstructure:
|
||||||
|
RequiresPrerequisites: structures.allies
|
||||||
|
Prerequisite: aircraft.allies
|
||||||
|
ProvidesCustomPrerequisite@alliedvanillastructure:
|
||||||
|
RequiresPrerequisites: structures.alliesvanilla
|
||||||
|
Prerequisite: aircraft.alliesvanilla
|
||||||
|
ProvidesCustomPrerequisite@englishstructure:
|
||||||
|
RequiresPrerequisites: structures.england
|
||||||
|
Prerequisite: aircraft.england
|
||||||
|
ProvidesCustomPrerequisite@frenchstructure:
|
||||||
|
RequiresPrerequisites: structures.france
|
||||||
|
Prerequisite: aircraft.france
|
||||||
|
ProvidesCustomPrerequisite@germanstructure:
|
||||||
|
RequiresPrerequisites: structures.germany
|
||||||
|
Prerequisite: aircraft.germany
|
||||||
|
|
||||||
AFLD:
|
AFLD:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
@@ -893,7 +1067,33 @@ AFLD:
|
|||||||
Production:
|
Production:
|
||||||
Produces: Aircraft, Plane
|
Produces: Aircraft, Plane
|
||||||
Reservable:
|
Reservable:
|
||||||
AirstrikePower:
|
ProvidesCustomPrerequisite@soviet:
|
||||||
|
Race: soviet, russia, ukraine
|
||||||
|
Prerequisite: aircraft.soviet
|
||||||
|
ProvidesCustomPrerequisite@sovietvanilla:
|
||||||
|
Race: soviet
|
||||||
|
Prerequisite: aircraft.sovietvanilla
|
||||||
|
ProvidesCustomPrerequisite@russia:
|
||||||
|
Race: russia
|
||||||
|
Prerequisite: aircraft.russia
|
||||||
|
ProvidesCustomPrerequisite@ukraine:
|
||||||
|
Race: ukraine
|
||||||
|
Prerequisite: aircraft.ukraine
|
||||||
|
ProvidesCustomPrerequisite@sovietstructure:
|
||||||
|
RequiresPrerequisites: structures.soviet
|
||||||
|
Prerequisite: aircraft.soviet
|
||||||
|
ProvidesCustomPrerequisite@sovietvanillastructure:
|
||||||
|
RequiresPrerequisites: structures.sovietvanilla
|
||||||
|
Prerequisite: aircraft.sovietvanilla
|
||||||
|
ProvidesCustomPrerequisite@russianstructure:
|
||||||
|
RequiresPrerequisites: structures.russia
|
||||||
|
Prerequisite: aircraft.russia
|
||||||
|
ProvidesCustomPrerequisite@ukrainianstructure:
|
||||||
|
RequiresPrerequisites: structures.ukraine
|
||||||
|
Prerequisite: aircraft.ukraine
|
||||||
|
AirstrikePower@spyplane:
|
||||||
|
OrderName: SovietSpyPlane
|
||||||
|
Prerequisites: aircraft.sovietvanilla
|
||||||
Icon: spyplane
|
Icon: spyplane
|
||||||
ChargeTime: 180
|
ChargeTime: 180
|
||||||
Description: Spy Plane
|
Description: Spy Plane
|
||||||
@@ -906,7 +1106,9 @@ AFLD:
|
|||||||
QuantizedFacings: 8
|
QuantizedFacings: 8
|
||||||
DisplayBeacon: true
|
DisplayBeacon: true
|
||||||
BeaconPoster: camicon
|
BeaconPoster: camicon
|
||||||
ParatroopersPower:
|
ParatroopersPower@paratroopers:
|
||||||
|
OrderName: SovietParatroopers
|
||||||
|
Prerequisites: aircraft.sovietvanilla
|
||||||
Icon: paratroopers
|
Icon: paratroopers
|
||||||
ChargeTime: 360
|
ChargeTime: 360
|
||||||
Description: Paratroopers
|
Description: Paratroopers
|
||||||
@@ -918,6 +1120,35 @@ AFLD:
|
|||||||
CameraActor: camera.paradrop
|
CameraActor: camera.paradrop
|
||||||
DisplayBeacon: true
|
DisplayBeacon: true
|
||||||
BeaconPoster: pinficon
|
BeaconPoster: pinficon
|
||||||
|
ParatroopersPower@armordrop:
|
||||||
|
OrderName: RussiaArmorDrop
|
||||||
|
Prerequisites: aircraft.russia
|
||||||
|
Icon: armordrop
|
||||||
|
ChargeTime: 450
|
||||||
|
Description: Armor Airdrop
|
||||||
|
LongDesc: Badgers drop a pair of\nHeavy Tanks anywhere on the map.
|
||||||
|
DropItems: 3TNK,3TNK
|
||||||
|
SquadSize: 2
|
||||||
|
SelectTargetSound: slcttgt1.aud
|
||||||
|
AllowImpassableCells: false
|
||||||
|
QuantizedFacings: 8
|
||||||
|
CameraActor: camera.paradrop
|
||||||
|
DisplayBeacon: true
|
||||||
|
BeaconPoster: armordropicon
|
||||||
|
AirstrikePower@parabombs:
|
||||||
|
OrderName: UkraineParabombs
|
||||||
|
Prerequisites: aircraft.ukraine
|
||||||
|
Icon: parabombs
|
||||||
|
ChargeTime: 270
|
||||||
|
Description: Parabombs
|
||||||
|
LongDesc: A Badger drops a load of parachuted\nbombs on your target.
|
||||||
|
SelectTargetSound: slcttgt1.aud
|
||||||
|
CameraActor: camera
|
||||||
|
CameraRemoveDelay: 150
|
||||||
|
UnitType: badr.bomber
|
||||||
|
QuantizedFacings: 8
|
||||||
|
DisplayBeacon: true
|
||||||
|
BeaconPoster: pbmbicon
|
||||||
ProductionBar:
|
ProductionBar:
|
||||||
SupportPowerChargeBar:
|
SupportPowerChargeBar:
|
||||||
PrimaryBuilding:
|
PrimaryBuilding:
|
||||||
@@ -1050,6 +1281,30 @@ BARR:
|
|||||||
ProductionBar:
|
ProductionBar:
|
||||||
ProvidesCustomPrerequisite:
|
ProvidesCustomPrerequisite:
|
||||||
Prerequisite: barracks
|
Prerequisite: barracks
|
||||||
|
ProvidesCustomPrerequisite@soviet:
|
||||||
|
Race: soviet, russia, ukraine
|
||||||
|
Prerequisite: infantry.soviet
|
||||||
|
ProvidesCustomPrerequisite@sovietvanilla:
|
||||||
|
Race: soviet
|
||||||
|
Prerequisite: infantry.sovietvanilla
|
||||||
|
ProvidesCustomPrerequisite@russia:
|
||||||
|
Race: russia
|
||||||
|
Prerequisite: infantry.russia
|
||||||
|
ProvidesCustomPrerequisite@ukraine:
|
||||||
|
Race: ukraine
|
||||||
|
Prerequisite: infantry.ukraine
|
||||||
|
ProvidesCustomPrerequisite@sovietstructure:
|
||||||
|
RequiresPrerequisites: structures.soviet
|
||||||
|
Prerequisite: infantry.soviet
|
||||||
|
ProvidesCustomPrerequisite@sovietvanillastructure:
|
||||||
|
RequiresPrerequisites: structures.sovietvanilla
|
||||||
|
Prerequisite: infantry.sovietvanilla
|
||||||
|
ProvidesCustomPrerequisite@russianstructure:
|
||||||
|
RequiresPrerequisites: structures.russia
|
||||||
|
Prerequisite: infantry.russia
|
||||||
|
ProvidesCustomPrerequisite@ukrainianstructure:
|
||||||
|
RequiresPrerequisites: structures.ukraine
|
||||||
|
Prerequisite: infantry.ukraine
|
||||||
Power:
|
Power:
|
||||||
Amount: -20
|
Amount: -20
|
||||||
|
|
||||||
@@ -1119,8 +1374,38 @@ TENT:
|
|||||||
Produces: Infantry, Soldier
|
Produces: Infantry, Soldier
|
||||||
PrimaryBuilding:
|
PrimaryBuilding:
|
||||||
ProductionBar:
|
ProductionBar:
|
||||||
ProvidesCustomPrerequisite:
|
ProvidesCustomPrerequisite@barracks:
|
||||||
Prerequisite: barracks
|
Prerequisite: barracks
|
||||||
|
ProvidesCustomPrerequisite@allies:
|
||||||
|
Race: allies, england, france, germany
|
||||||
|
Prerequisite: infantry.allies
|
||||||
|
ProvidesCustomPrerequisite@alliesvanilla:
|
||||||
|
Race: allies
|
||||||
|
Prerequisite: infantry.alliesvanilla
|
||||||
|
ProvidesCustomPrerequisite@england:
|
||||||
|
Race: england
|
||||||
|
Prerequisite: infantry.england
|
||||||
|
ProvidesCustomPrerequisite@france:
|
||||||
|
Race: france
|
||||||
|
Prerequisite: infantry.france
|
||||||
|
ProvidesCustomPrerequisite@germany:
|
||||||
|
Race: germany
|
||||||
|
Prerequisite: infantry.germany
|
||||||
|
ProvidesCustomPrerequisite@alliedstructure:
|
||||||
|
RequiresPrerequisites: structures.allies
|
||||||
|
Prerequisite: infantry.allies
|
||||||
|
ProvidesCustomPrerequisite@alliedvanillastructure:
|
||||||
|
RequiresPrerequisites: structures.alliesvanilla
|
||||||
|
Prerequisite: infantry.alliesvanilla
|
||||||
|
ProvidesCustomPrerequisite@englishstructure:
|
||||||
|
RequiresPrerequisites: structures.england
|
||||||
|
Prerequisite: infantry.england
|
||||||
|
ProvidesCustomPrerequisite@frenchstructure:
|
||||||
|
RequiresPrerequisites: structures.france
|
||||||
|
Prerequisite: infantry.france
|
||||||
|
ProvidesCustomPrerequisite@germanstructure:
|
||||||
|
RequiresPrerequisites: structures.germany
|
||||||
|
Prerequisite: infantry.germany
|
||||||
Power:
|
Power:
|
||||||
Amount: -20
|
Amount: -20
|
||||||
|
|
||||||
@@ -1157,21 +1442,24 @@ FIX:
|
|||||||
FACF:
|
FACF:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 50
|
Cost: 200
|
||||||
Buildable:
|
Buildable:
|
||||||
BuildPaletteOrder: 940
|
BuildPaletteOrder: 940
|
||||||
Queue: Defense
|
Queue: Defense
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~structures.alliesvanilla, ~techlevel.medium
|
||||||
Tooltip:
|
Tooltip:
|
||||||
Icon: fake-icon
|
Icon: fake-icon
|
||||||
Name: Fake Construction Yard
|
Name: Fake Construction Yard
|
||||||
Description: Looks like a Construction Yard.
|
Description: Looks like a Construction Yard.
|
||||||
|
GenericName: Construction Yard
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
GenericStancePrefix: False
|
||||||
Building:
|
Building:
|
||||||
Footprint: xxx xxx xxx
|
Footprint: xxx xxx xxx
|
||||||
Dimensions: 3,3
|
Dimensions: 3,3
|
||||||
-GivesBuildableArea:
|
-GivesBuildableArea:
|
||||||
Health:
|
Health:
|
||||||
HP: 30
|
HP: 100
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 4c0
|
Range: 4c0
|
||||||
Bib:
|
Bib:
|
||||||
@@ -1179,28 +1467,29 @@ FACF:
|
|||||||
Image: FACT
|
Image: FACT
|
||||||
Fake:
|
Fake:
|
||||||
-EmitInfantryOnSell:
|
-EmitInfantryOnSell:
|
||||||
Power:
|
|
||||||
Amount: -2
|
|
||||||
-MustBeDestroyed:
|
-MustBeDestroyed:
|
||||||
|
|
||||||
WEAF:
|
WEAF:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 50
|
Cost: 200
|
||||||
Buildable:
|
Buildable:
|
||||||
BuildPaletteOrder: 920
|
BuildPaletteOrder: 920
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~structures.alliesvanilla, ~techlevel.medium
|
||||||
Queue: Defense
|
Queue: Defense
|
||||||
Tooltip:
|
Tooltip:
|
||||||
Icon: fake-icon
|
Icon: fake-icon
|
||||||
Name: Fake War Factory
|
Name: Fake War Factory
|
||||||
Description: Looks like a War Factory.
|
Description: Looks like a War Factory.
|
||||||
|
GenericName: War Factory
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
GenericStancePrefix: False
|
||||||
Building:
|
Building:
|
||||||
Footprint: xxx xxx
|
Footprint: xxx xxx
|
||||||
Dimensions: 3,2
|
Dimensions: 3,2
|
||||||
-GivesBuildableArea:
|
-GivesBuildableArea:
|
||||||
Health:
|
Health:
|
||||||
HP: 30
|
HP: 100
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 4c0
|
Range: 4c0
|
||||||
Bib:
|
Bib:
|
||||||
@@ -1209,22 +1498,23 @@ WEAF:
|
|||||||
Image: WEAP
|
Image: WEAP
|
||||||
Fake:
|
Fake:
|
||||||
-EmitInfantryOnSell:
|
-EmitInfantryOnSell:
|
||||||
Power:
|
|
||||||
Amount: -2
|
|
||||||
-MustBeDestroyed:
|
-MustBeDestroyed:
|
||||||
|
|
||||||
SYRF:
|
SYRF:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 50
|
Cost: 200
|
||||||
Buildable:
|
Buildable:
|
||||||
BuildPaletteOrder: 900
|
BuildPaletteOrder: 900
|
||||||
Queue: Defense
|
Queue: Defense
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~structures.alliesvanilla, ~techlevel.medium
|
||||||
Tooltip:
|
Tooltip:
|
||||||
Icon: fake-icon
|
Icon: fake-icon
|
||||||
Name: Fake Shipyard
|
Name: Fake Shipyard
|
||||||
Description: Looks like a Shipyard.
|
Description: Looks like a Shipyard.
|
||||||
|
GenericName: Shipyard
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
GenericStancePrefix: False
|
||||||
TargetableBuilding:
|
TargetableBuilding:
|
||||||
TargetTypes: Ground, Water
|
TargetTypes: Ground, Water
|
||||||
Building:
|
Building:
|
||||||
@@ -1234,21 +1524,19 @@ SYRF:
|
|||||||
TerrainTypes: Water
|
TerrainTypes: Water
|
||||||
-GivesBuildableArea:
|
-GivesBuildableArea:
|
||||||
Health:
|
Health:
|
||||||
HP: 30
|
HP: 100
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 4c0
|
Range: 4c0
|
||||||
RenderBuilding:
|
RenderBuilding:
|
||||||
Image: SYRD
|
Image: SYRD
|
||||||
Fake:
|
Fake:
|
||||||
-EmitInfantryOnSell:
|
-EmitInfantryOnSell:
|
||||||
Power:
|
|
||||||
Amount: -2
|
|
||||||
-MustBeDestroyed:
|
-MustBeDestroyed:
|
||||||
|
|
||||||
SPEF:
|
SPEF:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 50
|
Cost: 200
|
||||||
TargetableBuilding:
|
TargetableBuilding:
|
||||||
TargetTypes: Ground, Water
|
TargetTypes: Ground, Water
|
||||||
Buildable:
|
Buildable:
|
||||||
@@ -1259,6 +1547,9 @@ SPEF:
|
|||||||
Icon: fake-icon
|
Icon: fake-icon
|
||||||
Name: Fake Sub Pen
|
Name: Fake Sub Pen
|
||||||
Description: Looks like a Sub Pen.
|
Description: Looks like a Sub Pen.
|
||||||
|
GenericName: Sub Pen
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
GenericStancePrefix: False
|
||||||
Building:
|
Building:
|
||||||
Footprint: xxx xxx xxx
|
Footprint: xxx xxx xxx
|
||||||
Dimensions: 3,3
|
Dimensions: 3,3
|
||||||
@@ -1266,35 +1557,36 @@ SPEF:
|
|||||||
TerrainTypes: Water
|
TerrainTypes: Water
|
||||||
-GivesBuildableArea:
|
-GivesBuildableArea:
|
||||||
Health:
|
Health:
|
||||||
HP: 30
|
HP: 100
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 4c0
|
Range: 4c0
|
||||||
RenderBuilding:
|
RenderBuilding:
|
||||||
Image: SPEN
|
Image: SPEN
|
||||||
Fake:
|
Fake:
|
||||||
-EmitInfantryOnSell:
|
-EmitInfantryOnSell:
|
||||||
Power:
|
|
||||||
Amount: -2
|
|
||||||
-MustBeDestroyed:
|
-MustBeDestroyed:
|
||||||
|
|
||||||
DOMF:
|
DOMF:
|
||||||
Inherits: ^Building
|
Inherits: ^Building
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 50
|
Cost: 200
|
||||||
Tooltip:
|
Tooltip:
|
||||||
Icon: fake-icon
|
Icon: fake-icon
|
||||||
Name: Fake Radar Dome
|
Name: Fake Radar Dome
|
||||||
Description: Looks like a Radar Dome.
|
Description: Looks like a Radar Dome.
|
||||||
|
GenericName: Radar Dome
|
||||||
|
GenericVisibility: Enemy
|
||||||
|
GenericStancePrefix: False
|
||||||
Buildable:
|
Buildable:
|
||||||
BuildPaletteOrder: 930
|
BuildPaletteOrder: 930
|
||||||
Queue: Defense
|
Queue: Defense
|
||||||
Prerequisites: ~disabled
|
Prerequisites: ~structures.alliesvanilla, ~techlevel.medium
|
||||||
Building:
|
Building:
|
||||||
Footprint: xx xx
|
Footprint: xx xx
|
||||||
Dimensions: 2,2
|
Dimensions: 2,2
|
||||||
-GivesBuildableArea:
|
-GivesBuildableArea:
|
||||||
Health:
|
Health:
|
||||||
HP: 30
|
HP: 100
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 4c0
|
Range: 4c0
|
||||||
Bib:
|
Bib:
|
||||||
@@ -1302,8 +1594,6 @@ DOMF:
|
|||||||
Image: DOME
|
Image: DOME
|
||||||
Fake:
|
Fake:
|
||||||
-EmitInfantryOnSell:
|
-EmitInfantryOnSell:
|
||||||
Power:
|
|
||||||
Amount: -2
|
|
||||||
-MustBeDestroyed:
|
-MustBeDestroyed:
|
||||||
|
|
||||||
SBAG:
|
SBAG:
|
||||||
|
|||||||
@@ -420,7 +420,7 @@ MNLY.AP:
|
|||||||
Mine: MINP
|
Mine: MINP
|
||||||
MineImmune:
|
MineImmune:
|
||||||
LimitedAmmo:
|
LimitedAmmo:
|
||||||
Ammo: 3
|
Ammo: 5
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5
|
||||||
CloakTypes: Mine
|
CloakTypes: Mine
|
||||||
@@ -454,7 +454,7 @@ MNLY.AT:
|
|||||||
Mine: MINV
|
Mine: MINV
|
||||||
MineImmune:
|
MineImmune:
|
||||||
LimitedAmmo:
|
LimitedAmmo:
|
||||||
Ammo: 3
|
Ammo: 5
|
||||||
DetectCloaked:
|
DetectCloaked:
|
||||||
Range: 5
|
Range: 5
|
||||||
CloakTypes: Mine
|
CloakTypes: Mine
|
||||||
@@ -635,7 +635,7 @@ DTRK:
|
|||||||
Buildable:
|
Buildable:
|
||||||
Queue: Vehicle
|
Queue: Vehicle
|
||||||
BuildPaletteOrder: 170
|
BuildPaletteOrder: 170
|
||||||
Prerequisites: stek, ~vehicles.soviet, ~techlevel.unrestricted
|
Prerequisites: stek, ~vehicles.ukraine, ~techlevel.unrestricted
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 2500
|
Cost: 2500
|
||||||
Tooltip:
|
Tooltip:
|
||||||
@@ -666,7 +666,7 @@ CTNK:
|
|||||||
Buildable:
|
Buildable:
|
||||||
Queue: Vehicle
|
Queue: Vehicle
|
||||||
BuildPaletteOrder: 210
|
BuildPaletteOrder: 210
|
||||||
Prerequisites: atek, pdox, ~vehicles.allies, ~techlevel.unrestricted
|
Prerequisites: atek, pdox, ~vehicles.germany, ~techlevel.unrestricted
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 1350
|
Cost: 1350
|
||||||
Tooltip:
|
Tooltip:
|
||||||
@@ -704,9 +704,9 @@ QTNK:
|
|||||||
Buildable:
|
Buildable:
|
||||||
Queue: Vehicle
|
Queue: Vehicle
|
||||||
BuildPaletteOrder: 200
|
BuildPaletteOrder: 200
|
||||||
Prerequisites: fix, stek, ~vehicles.soviet, ~techlevel.unrestricted
|
Prerequisites: fix, stek, ~vehicles.russia, ~techlevel.unrestricted
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 2500
|
Cost: 2000
|
||||||
Tooltip:
|
Tooltip:
|
||||||
Name: MAD Tank
|
Name: MAD Tank
|
||||||
Description: Deals seismic damage to nearby vehicles\nand structures.\n Strong vs Vehicles, Buildings\n Weak vs Infantry
|
Description: Deals seismic damage to nearby vehicles\nand structures.\n Strong vs Vehicles, Buildings\n Weak vs Infantry
|
||||||
@@ -734,7 +734,7 @@ STNK:
|
|||||||
Buildable:
|
Buildable:
|
||||||
Queue: Vehicle
|
Queue: Vehicle
|
||||||
BuildPaletteOrder: 140
|
BuildPaletteOrder: 140
|
||||||
Prerequisites: atek, ~vehicles.allies, ~techlevel.unrestricted
|
Prerequisites: atek, ~vehicles.england, ~techlevel.unrestricted
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 1350
|
Cost: 1350
|
||||||
Tooltip:
|
Tooltip:
|
||||||
|
|||||||
@@ -95,9 +95,38 @@ World:
|
|||||||
Country@0:
|
Country@0:
|
||||||
Name: Allies
|
Name: Allies
|
||||||
Race: allies
|
Race: allies
|
||||||
|
Side: Allies
|
||||||
|
Description: Allies: Deception\nSpecial Ability: Can build fake structures
|
||||||
Country@1:
|
Country@1:
|
||||||
|
Name: England
|
||||||
|
Race: england
|
||||||
|
Side: Allies
|
||||||
|
Description: England: Espionage\nSpecial Unit: British Spy\nSpecial Unit: Phase Transport
|
||||||
|
Country@2:
|
||||||
|
Name: France
|
||||||
|
Race: france
|
||||||
|
Side: Allies
|
||||||
|
Description: France: Concealment\nSpecial Structure: Advanced Gap Generator\nSpecial Unit: Mobile Gap Generator
|
||||||
|
Country@3:
|
||||||
|
Name: Germany
|
||||||
|
Race: germany
|
||||||
|
Side: Allies
|
||||||
|
Description: Germany: Technology\nSpecial Structure: Advanced Chronosphere\nSpecial Unit: Chrono Tank
|
||||||
|
Country@4:
|
||||||
Name: Soviet
|
Name: Soviet
|
||||||
Race: soviet
|
Race: soviet
|
||||||
|
Side: Soviet
|
||||||
|
Description: Soviet: Infantry\nSpecial Ability: Paradrop\nSpecial Ability: Spy Plane
|
||||||
|
Country@5:
|
||||||
|
Name: Russia
|
||||||
|
Race: russia
|
||||||
|
Side: Soviet
|
||||||
|
Description: Russia: Tanks\nSpecial Ability: Armor Airdrop\nSpecial Unit: MAD Tank
|
||||||
|
Country@6:
|
||||||
|
Name: Ukraine
|
||||||
|
Race: ukraine
|
||||||
|
Side: Soviet
|
||||||
|
Description: Ukraine: Demolitions\nSpecial Ability: Parabombs\nSpecial Unit: Demolition Truck
|
||||||
DomainIndex:
|
DomainIndex:
|
||||||
SmudgeLayer@SCORCH:
|
SmudgeLayer@SCORCH:
|
||||||
Type: Scorch
|
Type: Scorch
|
||||||
@@ -139,12 +168,12 @@ World:
|
|||||||
MPStartUnits@mcvonly:
|
MPStartUnits@mcvonly:
|
||||||
Class: none
|
Class: none
|
||||||
ClassName: MCV Only
|
ClassName: MCV Only
|
||||||
Races: soviet, allies
|
Races: allies, england, france, germany, soviet, russia, ukraine
|
||||||
BaseActor: mcv
|
BaseActor: mcv
|
||||||
MPStartUnits@lightallies:
|
MPStartUnits@lightallies:
|
||||||
Class: light
|
Class: light
|
||||||
ClassName: Light Support
|
ClassName: Light Support
|
||||||
Races: allies
|
Races: allies, england, france, germany
|
||||||
BaseActor: mcv
|
BaseActor: mcv
|
||||||
SupportActors: e1,e1,e1,e3,e3,jeep,1tnk
|
SupportActors: e1,e1,e1,e3,e3,jeep,1tnk
|
||||||
InnerSupportRadius: 3
|
InnerSupportRadius: 3
|
||||||
@@ -152,7 +181,7 @@ World:
|
|||||||
MPStartUnits@lightsoviet:
|
MPStartUnits@lightsoviet:
|
||||||
Class: light
|
Class: light
|
||||||
ClassName: Light Support
|
ClassName: Light Support
|
||||||
Races: soviet
|
Races: soviet, russia, ukraine
|
||||||
BaseActor: mcv
|
BaseActor: mcv
|
||||||
SupportActors: e1,e1,e1,e3,e3,apc,ftrk
|
SupportActors: e1,e1,e1,e3,e3,apc,ftrk
|
||||||
InnerSupportRadius: 3
|
InnerSupportRadius: 3
|
||||||
@@ -160,7 +189,7 @@ World:
|
|||||||
MPStartUnits@heavyallies:
|
MPStartUnits@heavyallies:
|
||||||
Class: heavy
|
Class: heavy
|
||||||
ClassName: Heavy Support
|
ClassName: Heavy Support
|
||||||
Races: allies
|
Races: allies, england, france, germany
|
||||||
BaseActor: mcv
|
BaseActor: mcv
|
||||||
SupportActors: e1,e1,e1,e3,e3,jeep,1tnk,2tnk,2tnk,2tnk
|
SupportActors: e1,e1,e1,e3,e3,jeep,1tnk,2tnk,2tnk,2tnk
|
||||||
InnerSupportRadius: 3
|
InnerSupportRadius: 3
|
||||||
@@ -168,7 +197,7 @@ World:
|
|||||||
MPStartUnits@heavysoviet:
|
MPStartUnits@heavysoviet:
|
||||||
Class: heavy
|
Class: heavy
|
||||||
ClassName: Heavy Support
|
ClassName: Heavy Support
|
||||||
Races: soviet
|
Races: soviet, russia, ukraine
|
||||||
BaseActor: mcv
|
BaseActor: mcv
|
||||||
SupportActors: e1,e1,e1,e3,e3,apc,ftrk,3tnk,3tnk
|
SupportActors: e1,e1,e1,e3,e3,apc,ftrk,3tnk,3tnk
|
||||||
InnerSupportRadius: 3
|
InnerSupportRadius: 3
|
||||||
|
|||||||
@@ -141,6 +141,10 @@ beacon:
|
|||||||
Start: 0
|
Start: 0
|
||||||
Length: *
|
Length: *
|
||||||
Offset: 0,-42
|
Offset: 0,-42
|
||||||
|
armordropicon: lores-pinficon
|
||||||
|
Start: 0
|
||||||
|
Length: *
|
||||||
|
Offset: 0,-42
|
||||||
clock: beaconclock
|
clock: beaconclock
|
||||||
Start: 0
|
Start: 0
|
||||||
Length: *
|
Length: *
|
||||||
@@ -516,6 +520,8 @@ icon:
|
|||||||
Start: 0
|
Start: 0
|
||||||
paratroopers: pinficon
|
paratroopers: pinficon
|
||||||
Start: 0
|
Start: 0
|
||||||
|
armordrop: armordropicon
|
||||||
|
Start: 0
|
||||||
gps: gpssicon
|
gps: gpssicon
|
||||||
Start: 0
|
Start: 0
|
||||||
parabombs: pbmbicon
|
parabombs: pbmbicon
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 19 KiB |
@@ -1,7 +1,12 @@
|
|||||||
GenericVoice:
|
GenericVoice:
|
||||||
Variants:
|
Variants:
|
||||||
soviet: .r01,.r03
|
|
||||||
allies: .v01,.v03
|
allies: .v01,.v03
|
||||||
|
england: .v01,.v03
|
||||||
|
france: .v01,.v03
|
||||||
|
germany: .v01,.v03
|
||||||
|
soviet: .r01,.r03
|
||||||
|
russia: .r01,.r03
|
||||||
|
ukraine: .r01,.r03
|
||||||
Voices:
|
Voices:
|
||||||
Select: await1,ready,report1,yessir1
|
Select: await1,ready,report1,yessir1
|
||||||
Move: ackno,affirm1,noprob,overout,ritaway,roger,ugotit
|
Move: ackno,affirm1,noprob,overout,ritaway,roger,ugotit
|
||||||
@@ -12,8 +17,13 @@ GenericVoice:
|
|||||||
|
|
||||||
VehicleVoice:
|
VehicleVoice:
|
||||||
Variants:
|
Variants:
|
||||||
soviet: .r00,.r02
|
|
||||||
allies: .v00,.v02
|
allies: .v00,.v02
|
||||||
|
england: .v00,.v02
|
||||||
|
france: .v00,.v02
|
||||||
|
germany: .v00,.v02
|
||||||
|
soviet: .r00,.r02
|
||||||
|
russia: .r00,.r02
|
||||||
|
ukraine: .r00,.r02
|
||||||
Voices:
|
Voices:
|
||||||
Select: vehic1,yessir1,report1,await1
|
Select: vehic1,yessir1,report1,await1
|
||||||
Move: ackno,affirm1
|
Move: ackno,affirm1
|
||||||
|
|||||||
@@ -1109,9 +1109,8 @@ ParaBomb:
|
|||||||
Velocity: 43
|
Velocity: 43
|
||||||
Acceleration: 0
|
Acceleration: 0
|
||||||
Warhead@1Dam: SpreadDamage
|
Warhead@1Dam: SpreadDamage
|
||||||
Spread: 256
|
Spread: 768
|
||||||
Damage: 50
|
Damage: 300
|
||||||
Falloff: 1000, 368, 135, 50, 18, 7, 0
|
|
||||||
DeathType: 4
|
DeathType: 4
|
||||||
Versus:
|
Versus:
|
||||||
None: 30
|
None: 30
|
||||||
|
|||||||
Reference in New Issue
Block a user