Allow mission use LobbyOptions as options and remove unused translation
This commit is contained in:
committed by
Matthias Mailänder
parent
cd40d150c1
commit
b1f5367822
@@ -17,6 +17,7 @@ using System.Threading;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Mods.Common.Traits;
|
||||
using OpenRA.Network;
|
||||
using OpenRA.Traits;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
@@ -24,6 +25,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
public class MissionBrowserLogic : ChromeLogic
|
||||
{
|
||||
enum PlayingVideo { None, Info, Briefing, GameStart }
|
||||
enum PanelType { MissionInfo, Options }
|
||||
|
||||
[TranslationReference]
|
||||
const string NoVideoTitle = "dialog-no-video.title";
|
||||
@@ -43,16 +45,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
[TranslationReference]
|
||||
const string CantPlayCancel = "dialog-cant-play-video.cancel";
|
||||
|
||||
[TranslationReference]
|
||||
const string DifficultyNormal = "options-difficulty.normal";
|
||||
|
||||
readonly ModData modData;
|
||||
readonly Action onStart;
|
||||
readonly Widget missionDetail;
|
||||
readonly Widget optionsContainer;
|
||||
readonly Widget checkboxRowTemplate;
|
||||
readonly Widget dropdownRowTemplate;
|
||||
readonly ScrollPanelWidget descriptionPanel;
|
||||
readonly LabelWidget description;
|
||||
readonly SpriteFont descriptionFont;
|
||||
readonly DropDownButtonWidget difficultyButton;
|
||||
readonly DropDownButtonWidget gameSpeedButton;
|
||||
readonly ButtonWidget startBriefingVideoButton;
|
||||
readonly ButtonWidget stopBriefingVideoButton;
|
||||
readonly ButtonWidget startInfoVideoButton;
|
||||
@@ -66,9 +67,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
MapPreview selectedMap;
|
||||
PlayingVideo playingVideo;
|
||||
|
||||
string difficulty;
|
||||
string gameSpeed;
|
||||
readonly Dictionary<string, string> missionOptions = new();
|
||||
PanelType panel = PanelType.MissionInfo;
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
public MissionBrowserLogic(Widget widget, ModData modData, World world, Action onStart, Action onExit, string initialMap)
|
||||
@@ -96,13 +96,18 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
widget.Get("MISSION_BIN").IsVisible = () => playingVideo != PlayingVideo.None;
|
||||
fullscreenVideoPlayer = Ui.LoadWidget<BackgroundWidget>("FULLSCREEN_PLAYER", Ui.Root, new WidgetArgs { { "world", world } });
|
||||
|
||||
descriptionPanel = widget.Get<ScrollPanelWidget>("MISSION_DESCRIPTION_PANEL");
|
||||
missionDetail = widget.Get("MISSION_DETAIL");
|
||||
|
||||
descriptionPanel = missionDetail.Get<ScrollPanelWidget>("MISSION_DESCRIPTION_PANEL");
|
||||
descriptionPanel.IsVisible = () => panel == PanelType.MissionInfo;
|
||||
|
||||
description = descriptionPanel.Get<LabelWidget>("MISSION_DESCRIPTION");
|
||||
descriptionFont = Game.Renderer.Fonts[description.Font];
|
||||
|
||||
difficultyButton = widget.Get<DropDownButtonWidget>("DIFFICULTY_DROPDOWNBUTTON");
|
||||
gameSpeedButton = widget.GetOrNull<DropDownButtonWidget>("GAMESPEED_DROPDOWNBUTTON");
|
||||
optionsContainer = missionDetail.Get("MISSION_OPTIONS");
|
||||
optionsContainer.IsVisible = () => panel == PanelType.Options;
|
||||
checkboxRowTemplate = optionsContainer.Get("CHECKBOX_ROW_TEMPLATE");
|
||||
dropdownRowTemplate = optionsContainer.Get("DROPDOWN_ROW_TEMPLATE");
|
||||
|
||||
startBriefingVideoButton = widget.Get<ButtonWidget>("START_BRIEFING_VIDEO_BUTTON");
|
||||
stopBriefingVideoButton = widget.Get<ButtonWidget>("STOP_BRIEFING_VIDEO_BUTTON");
|
||||
@@ -191,6 +196,19 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
Ui.CloseWindow();
|
||||
onExit();
|
||||
};
|
||||
|
||||
var tabContainer = widget.Get("MISSION_TABS");
|
||||
tabContainer.IsVisible = () => true;
|
||||
|
||||
var optionsTab = tabContainer.Get<ButtonWidget>("OPTIONS_TAB");
|
||||
optionsTab.IsHighlighted = () => panel == PanelType.Options;
|
||||
optionsTab.IsDisabled = () => false;
|
||||
optionsTab.OnClick = () => panel = PanelType.Options;
|
||||
|
||||
var missionTab = tabContainer.Get<ButtonWidget>("MISSIONINFO_TAB");
|
||||
missionTab.IsHighlighted = () => panel == PanelType.MissionInfo;
|
||||
missionTab.IsDisabled = () => false;
|
||||
missionTab.OnClick = () => panel = PanelType.MissionInfo;
|
||||
}
|
||||
|
||||
void OnGameStart()
|
||||
@@ -238,28 +256,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
selectedMap = preview;
|
||||
|
||||
// Cache the rules on a background thread to avoid jank
|
||||
var difficultyDisabled = true;
|
||||
var difficulties = new Dictionary<string, string>();
|
||||
|
||||
var briefingVideo = "";
|
||||
var briefingVideoVisible = false;
|
||||
|
||||
var infoVideo = "";
|
||||
var infoVideoVisible = false;
|
||||
|
||||
panel = PanelType.MissionInfo;
|
||||
|
||||
new Thread(() =>
|
||||
{
|
||||
var mapDifficulty = preview.WorldActorInfo.TraitInfos<ScriptLobbyDropdownInfo>()
|
||||
.FirstOrDefault(sld => sld.ID == "difficulty");
|
||||
|
||||
if (mapDifficulty != null)
|
||||
{
|
||||
difficulty = mapDifficulty.Default;
|
||||
difficulties = mapDifficulty.Values;
|
||||
difficultyDisabled = mapDifficulty.Locked;
|
||||
}
|
||||
|
||||
var missionData = preview.WorldActorInfo.TraitInfoOrDefault<MissionDataInfo>();
|
||||
if (missionData != null)
|
||||
{
|
||||
@@ -291,58 +297,107 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
descriptionPanel.ScrollToTop();
|
||||
|
||||
if (difficultyButton != null)
|
||||
RebuildOptions();
|
||||
}
|
||||
|
||||
void RebuildOptions()
|
||||
{
|
||||
if (selectedMap == null || selectedMap.WorldActorInfo == null)
|
||||
return;
|
||||
|
||||
missionOptions.Clear();
|
||||
optionsContainer.RemoveChildren();
|
||||
|
||||
var allOptions = selectedMap.PlayerActorInfo.TraitInfos<ILobbyOptions>()
|
||||
.Concat(selectedMap.WorldActorInfo.TraitInfos<ILobbyOptions>())
|
||||
.SelectMany(t => t.LobbyOptions(selectedMap))
|
||||
.Where(o => o.IsVisible)
|
||||
.OrderBy(o => o.DisplayOrder).ToArray();
|
||||
|
||||
Widget row = null;
|
||||
var checkboxColumns = new Queue<CheckboxWidget>();
|
||||
var dropdownColumns = new Queue<DropDownButtonWidget>();
|
||||
|
||||
var yOffset = 0;
|
||||
foreach (var option in allOptions.Where(o => o is LobbyBooleanOption))
|
||||
{
|
||||
var difficultyName = new CachedTransform<string, string>(id => preview.GetLocalisedString(
|
||||
id == null || !difficulties.ContainsKey(id) ? DifficultyNormal : difficulties[id]));
|
||||
missionOptions[option.Id] = option.DefaultValue;
|
||||
|
||||
difficultyButton.IsDisabled = () => difficultyDisabled;
|
||||
difficultyButton.GetText = () => difficultyName.Update(difficulty);
|
||||
difficultyButton.OnMouseDown = _ =>
|
||||
if (checkboxColumns.Count == 0)
|
||||
{
|
||||
var options = difficulties.Select(kv => new DropDownOption
|
||||
{
|
||||
Title = preview.GetLocalisedString(kv.Value),
|
||||
IsSelected = () => difficulty == kv.Key,
|
||||
OnClick = () => difficulty = kv.Key
|
||||
});
|
||||
row = checkboxRowTemplate.Clone();
|
||||
row.Bounds.Y = yOffset;
|
||||
yOffset += row.Bounds.Height;
|
||||
foreach (var child in row.Children)
|
||||
if (child is CheckboxWidget childCheckbox)
|
||||
checkboxColumns.Enqueue(childCheckbox);
|
||||
|
||||
ScrollItemWidget SetupItem(DropDownOption option, ScrollItemWidget template)
|
||||
{
|
||||
var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => option.Title;
|
||||
return item;
|
||||
}
|
||||
optionsContainer.AddChild(row);
|
||||
}
|
||||
|
||||
difficultyButton.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", options.Count() * 30, options, SetupItem);
|
||||
var checkbox = checkboxColumns.Dequeue();
|
||||
|
||||
checkbox.GetText = () => option.Name;
|
||||
if (option.Description != null)
|
||||
checkbox.GetTooltipText = () => option.Description;
|
||||
|
||||
checkbox.IsVisible = () => true;
|
||||
checkbox.IsChecked = () => missionOptions[option.Id] == "True";
|
||||
checkbox.IsDisabled = () => option.IsLocked;
|
||||
checkbox.OnClick = () =>
|
||||
{
|
||||
if (missionOptions[option.Id] == "True")
|
||||
missionOptions[option.Id] = "False";
|
||||
else
|
||||
missionOptions[option.Id] = "True";
|
||||
};
|
||||
}
|
||||
|
||||
if (gameSpeedButton != null)
|
||||
foreach (var option in allOptions.Where(o => o is not LobbyBooleanOption))
|
||||
{
|
||||
var speeds = modData.Manifest.Get<GameSpeeds>().Speeds;
|
||||
gameSpeed = "default";
|
||||
missionOptions[option.Id] = option.DefaultValue;
|
||||
|
||||
var speedText = new CachedTransform<string, string>(s => TranslationProvider.GetString(speeds[s].Name));
|
||||
gameSpeedButton.GetText = () => speedText.Update(gameSpeed);
|
||||
gameSpeedButton.OnMouseDown = _ =>
|
||||
if (dropdownColumns.Count == 0)
|
||||
{
|
||||
var options = speeds.Select(s => new DropDownOption
|
||||
{
|
||||
Title = TranslationProvider.GetString(s.Value.Name),
|
||||
IsSelected = () => gameSpeed == s.Key,
|
||||
OnClick = () => gameSpeed = s.Key
|
||||
});
|
||||
row = dropdownRowTemplate.Clone();
|
||||
row.Bounds.Y = yOffset;
|
||||
yOffset += row.Bounds.Height;
|
||||
foreach (var child in row.Children)
|
||||
if (child is DropDownButtonWidget dropDown)
|
||||
dropdownColumns.Enqueue(dropDown);
|
||||
|
||||
ScrollItemWidget SetupItem(DropDownOption option, ScrollItemWidget template)
|
||||
optionsContainer.AddChild(row);
|
||||
}
|
||||
|
||||
var dropdown = dropdownColumns.Dequeue();
|
||||
|
||||
dropdown.GetText = () => option.Values[missionOptions[option.Id]];
|
||||
if (option.Description != null)
|
||||
dropdown.GetTooltipText = () => option.Description;
|
||||
dropdown.IsVisible = () => true;
|
||||
dropdown.IsDisabled = () => option.IsLocked;
|
||||
|
||||
dropdown.OnMouseDown = _ =>
|
||||
{
|
||||
ScrollItemWidget SetupItem(KeyValuePair<string, string> c, ScrollItemWidget template)
|
||||
{
|
||||
var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => option.Title;
|
||||
bool IsSelected() => missionOptions[option.Id] == c.Key;
|
||||
void OnClick() => missionOptions[option.Id] = c.Key;
|
||||
|
||||
var item = ScrollItemWidget.Setup(template, IsSelected, OnClick);
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => c.Value;
|
||||
return item;
|
||||
}
|
||||
|
||||
gameSpeedButton.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", options.Count() * 30, options, SetupItem);
|
||||
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", option.Values.Count * 30, option.Values, SetupItem);
|
||||
};
|
||||
|
||||
var label = row.GetOrNull<LabelWidget>(dropdown.Id + "_DESC");
|
||||
if (label != null)
|
||||
{
|
||||
label.GetText = () => option.Name + ":";
|
||||
label.IsVisible = () => true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -432,10 +487,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
selectedMap = modData.MapCache[map];
|
||||
var orders = new List<Order>();
|
||||
if (difficulty != null)
|
||||
orders.Add(Order.Command($"option difficulty {difficulty}"));
|
||||
|
||||
orders.Add(Order.Command($"option gamespeed {gameSpeed}"));
|
||||
foreach (var option in missionOptions)
|
||||
orders.Add(Order.Command($"option {option.Key} {option.Value}"));
|
||||
|
||||
orders.Add(Order.Command($"state {Session.ClientState.Ready}"));
|
||||
|
||||
var missionData = selectedMap.WorldActorInfo.TraitInfoOrDefault<MissionDataInfo>();
|
||||
@@ -449,12 +504,5 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
else
|
||||
Game.CreateAndStartLocalServer(selectedMap.Uid, orders);
|
||||
}
|
||||
|
||||
sealed class DropDownOption
|
||||
{
|
||||
public string Title;
|
||||
public Func<bool> IsSelected;
|
||||
public Action OnClick;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,42 +67,89 @@ Container@MISSIONBROWSER_PANEL:
|
||||
IgnoreMouseOver: True
|
||||
IgnoreMouseInput: True
|
||||
ShowSpawnPoints: False
|
||||
ScrollPanel@MISSION_DESCRIPTION_PANEL:
|
||||
Container@MISSION_DETAIL:
|
||||
Y: 213
|
||||
Width: PARENT_RIGHT
|
||||
Height: 157
|
||||
TopBottomSpacing: 5
|
||||
Height: 170
|
||||
Children:
|
||||
Label@MISSION_DESCRIPTION:
|
||||
X: 4
|
||||
Width: PARENT_RIGHT - 32
|
||||
VAlign: Top
|
||||
Font: Small
|
||||
Label@DIFFICULTY_DESC:
|
||||
Y: PARENT_BOTTOM - HEIGHT
|
||||
Width: 56
|
||||
Height: 25
|
||||
Text: label-mission-info-difficulty-desc
|
||||
Align: Right
|
||||
DropDownButton@DIFFICULTY_DROPDOWNBUTTON:
|
||||
X: 61
|
||||
Y: PARENT_BOTTOM - HEIGHT
|
||||
Width: 120
|
||||
Height: 25
|
||||
Font: Regular
|
||||
Label@GAMESPEED_DESC:
|
||||
X: PARENT_RIGHT - WIDTH - 125
|
||||
Y: PARENT_BOTTOM - HEIGHT
|
||||
Width: 120
|
||||
Height: 25
|
||||
Text: label-mission-info-gamespeed-desc
|
||||
Align: Right
|
||||
DropDownButton@GAMESPEED_DROPDOWNBUTTON:
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: PARENT_BOTTOM - HEIGHT
|
||||
Width: 120
|
||||
Height: 25
|
||||
Font: Regular
|
||||
ScrollPanel@MISSION_DESCRIPTION_PANEL:
|
||||
Height: PARENT_BOTTOM
|
||||
Width: PARENT_RIGHT
|
||||
TopBottomSpacing: 5
|
||||
Children:
|
||||
Label@MISSION_DESCRIPTION:
|
||||
X: 4
|
||||
Width: PARENT_RIGHT - 32
|
||||
VAlign: Top
|
||||
Font: Small
|
||||
ScrollPanel@MISSION_OPTIONS:
|
||||
Height: PARENT_BOTTOM
|
||||
Width: PARENT_RIGHT
|
||||
TopBottomSpacing: 5
|
||||
Children:
|
||||
Container@CHECKBOX_ROW_TEMPLATE:
|
||||
Width: PARENT_RIGHT
|
||||
Height: 30
|
||||
Children:
|
||||
Checkbox@A:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT / 2 - 25
|
||||
Height: 20
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Checkbox@B:
|
||||
X: PARENT_RIGHT / 2 + 5
|
||||
Width: PARENT_RIGHT / 2 - 25
|
||||
Height: 20
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Container@DROPDOWN_ROW_TEMPLATE:
|
||||
Height: 60
|
||||
Width: PARENT_RIGHT
|
||||
Children:
|
||||
LabelForInput@A_DESC:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Height: 20
|
||||
Visible: False
|
||||
For: A
|
||||
DropDownButton@A:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Y: 25
|
||||
Height: 25
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
LabelForInput@B_DESC:
|
||||
X: PARENT_RIGHT / 2 + 5
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Height: 20
|
||||
Visible: False
|
||||
For: B
|
||||
DropDownButton@B:
|
||||
X: PARENT_RIGHT / 2 + 5
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Y: 25
|
||||
Height: 25
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Container@MISSION_TABS:
|
||||
Width: PARENT_RIGHT
|
||||
Y: PARENT_BOTTOM - 50
|
||||
Children:
|
||||
Button@MISSIONINFO_TAB:
|
||||
Width: PARENT_RIGHT / 2
|
||||
Y: 25
|
||||
Height: 28
|
||||
Font: Bold
|
||||
Text: button-missionbrowser-panel-mission-info
|
||||
Button@OPTIONS_TAB:
|
||||
X: PARENT_RIGHT / 2
|
||||
Width: PARENT_RIGHT / 2
|
||||
Y: 25
|
||||
Height: 28
|
||||
Font: Bold
|
||||
Text: button-missionbrowser-panel-mission-options
|
||||
Button@BACK_BUTTON:
|
||||
Y: PARENT_BOTTOM - 1
|
||||
Width: 140
|
||||
|
||||
@@ -513,9 +513,9 @@ button-bg-cancel = Back
|
||||
|
||||
## missionbrowser.yaml
|
||||
label-missionbrowser-panel-title = Missions
|
||||
label-mission-info-difficulty-desc = Difficulty:
|
||||
label-mission-info-gamespeed-desc = Speed:
|
||||
button-missionbrowser-panel-back = Back
|
||||
button-missionbrowser-panel-mission-info = Mission Info
|
||||
button-missionbrowser-panel-mission-options = Options
|
||||
button-missionbrowser-panel-start-briefing-video = Watch Briefing
|
||||
button-missionbrowser-panel-stop-briefing-video = Stop Briefing
|
||||
button-missionbrowser-panel-start-info-video = Watch Info Video
|
||||
|
||||
@@ -4,4 +4,5 @@ dropdown-difficulty =
|
||||
|
||||
options-difficulty =
|
||||
.easy = Easy
|
||||
.normal = Normal
|
||||
.hard = Hard
|
||||
|
||||
@@ -30,9 +30,6 @@ dropdown-map-creeps =
|
||||
.label = Creep Actors
|
||||
.description = Hostile forces spawn on the battlefield
|
||||
|
||||
options-difficulty =
|
||||
.normal = Normal
|
||||
|
||||
## Structures
|
||||
notification-construction-complete = Construction complete.
|
||||
notification-unit-ready = Unit ready.
|
||||
|
||||
@@ -4,5 +4,6 @@ dropdown-difficulty =
|
||||
|
||||
options-difficulty =
|
||||
.easy = Easy
|
||||
.normal = Normal
|
||||
.hard = Hard
|
||||
.tough = Real tough guy
|
||||
|
||||
@@ -4,5 +4,6 @@ dropdown-difficulty =
|
||||
|
||||
options-difficulty =
|
||||
.easy = Easy
|
||||
.normal = Normal
|
||||
.hard = Hard
|
||||
.tough = Real tough guy
|
||||
|
||||
@@ -61,42 +61,89 @@ Background@MISSIONBROWSER_PANEL:
|
||||
IgnoreMouseOver: True
|
||||
IgnoreMouseInput: True
|
||||
ShowSpawnPoints: False
|
||||
ScrollPanel@MISSION_DESCRIPTION_PANEL:
|
||||
Container@MISSION_DETAIL:
|
||||
Y: 212
|
||||
Width: PARENT_RIGHT
|
||||
Height: 143
|
||||
TopBottomSpacing: 5
|
||||
Height: 155
|
||||
Children:
|
||||
Label@MISSION_DESCRIPTION:
|
||||
X: 4
|
||||
Width: PARENT_RIGHT - 32
|
||||
VAlign: Top
|
||||
Font: Small
|
||||
Label@DIFFICULTY_DESC:
|
||||
Y: PARENT_BOTTOM - HEIGHT
|
||||
Width: 56
|
||||
Height: 25
|
||||
Text: label-mission-info-difficulty-desc
|
||||
Align: Right
|
||||
DropDownButton@DIFFICULTY_DROPDOWNBUTTON:
|
||||
X: 61
|
||||
Y: PARENT_BOTTOM - HEIGHT
|
||||
Width: 135
|
||||
Height: 25
|
||||
Font: Regular
|
||||
Label@GAMESPEED_DESC:
|
||||
X: PARENT_RIGHT - WIDTH - 115
|
||||
Y: PARENT_BOTTOM - HEIGHT
|
||||
Width: 120
|
||||
Height: 25
|
||||
Text: label-mission-info-gamespeed-desc
|
||||
Align: Right
|
||||
DropDownButton@GAMESPEED_DROPDOWNBUTTON:
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: PARENT_BOTTOM - HEIGHT
|
||||
Width: 110
|
||||
Height: 25
|
||||
Font: Regular
|
||||
ScrollPanel@MISSION_DESCRIPTION_PANEL:
|
||||
Height: PARENT_BOTTOM
|
||||
Width: PARENT_RIGHT
|
||||
TopBottomSpacing: 5
|
||||
Children:
|
||||
Label@MISSION_DESCRIPTION:
|
||||
X: 4
|
||||
Width: PARENT_RIGHT - 32
|
||||
VAlign: Top
|
||||
Font: Small
|
||||
ScrollPanel@MISSION_OPTIONS:
|
||||
Height: PARENT_BOTTOM
|
||||
Width: PARENT_RIGHT
|
||||
TopBottomSpacing: 5
|
||||
Children:
|
||||
Container@CHECKBOX_ROW_TEMPLATE:
|
||||
Width: PARENT_RIGHT
|
||||
Height: 30
|
||||
Children:
|
||||
Checkbox@A:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT / 2 - 25
|
||||
Height: 20
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Checkbox@B:
|
||||
X: PARENT_RIGHT / 2 + 5
|
||||
Width: PARENT_RIGHT / 2 - 25
|
||||
Height: 20
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Container@DROPDOWN_ROW_TEMPLATE:
|
||||
Height: 60
|
||||
Width: PARENT_RIGHT
|
||||
Children:
|
||||
LabelForInput@A_DESC:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Height: 20
|
||||
Visible: False
|
||||
For: A
|
||||
DropDownButton@A:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Y: 25
|
||||
Height: 25
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
LabelForInput@B_DESC:
|
||||
X: PARENT_RIGHT / 2 + 5
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Height: 20
|
||||
Visible: False
|
||||
For: B
|
||||
DropDownButton@B:
|
||||
X: PARENT_RIGHT / 2 + 5
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Y: 25
|
||||
Height: 25
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Container@MISSION_TABS:
|
||||
Width: PARENT_RIGHT
|
||||
Y: PARENT_BOTTOM - 50
|
||||
Children:
|
||||
Button@MISSIONINFO_TAB:
|
||||
Width: PARENT_RIGHT / 2
|
||||
Y: 25
|
||||
Height: 28
|
||||
Font: Bold
|
||||
Text: button-missionbrowser-panel-mission-info
|
||||
Button@OPTIONS_TAB:
|
||||
X: PARENT_RIGHT / 2
|
||||
Width: PARENT_RIGHT / 2
|
||||
Y: 25
|
||||
Height: 28
|
||||
Font: Bold
|
||||
Text: button-missionbrowser-panel-mission-options
|
||||
Button@START_BRIEFING_VIDEO_BUTTON:
|
||||
X: 20
|
||||
Y: PARENT_BOTTOM - 45
|
||||
|
||||
@@ -368,6 +368,8 @@ button-missionbrowser-panel-start-info-video = Watch Info Video
|
||||
button-missionbrowser-panel-stop-info-video = Stop Info Video
|
||||
button-missionbrowser-panel-startgame = Play
|
||||
button-missionbrowser-panel-back = Back
|
||||
button-missionbrowser-panel-mission-info = Mission Info
|
||||
button-missionbrowser-panel-mission-options = Options
|
||||
|
||||
## multiplayer-browser.yaml
|
||||
label-multiplayer-panel-title = Multiplayer
|
||||
|
||||
@@ -42,32 +42,34 @@ Background@MISSIONBROWSER_PANEL:
|
||||
Height: 25
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
TooltipTemplate: SIMPLE_TOOLTIP
|
||||
Label@DIFFICULTY_DESC:
|
||||
X: 210 - WIDTH - 125
|
||||
Y: 468
|
||||
Width: 56
|
||||
Button@START_BRIEFING_VIDEO_BUTTON:
|
||||
X: 20
|
||||
Y: 455
|
||||
Width: 190
|
||||
Height: 25
|
||||
Text: label-missionbrowser-panel-difficulty-desc
|
||||
Align: Right
|
||||
DropDownButton@DIFFICULTY_DROPDOWNBUTTON:
|
||||
X: 210 - WIDTH
|
||||
Y: 468
|
||||
Width: 120
|
||||
Text: button-missionbrowser-panel-start-briefing-video
|
||||
Font: Bold
|
||||
Button@STOP_BRIEFING_VIDEO_BUTTON:
|
||||
X: 20
|
||||
Y: 455 + HEIGHT
|
||||
Width: 190
|
||||
Height: 25
|
||||
Font: Regular
|
||||
Label@GAMESPEED_DESC:
|
||||
X: 210 - WIDTH - 125
|
||||
Y: 508
|
||||
Width: 120
|
||||
Text: button-missionbrowser-panel-stop-briefing-video
|
||||
Font: Bold
|
||||
Button@START_INFO_VIDEO_BUTTON:
|
||||
X: 20
|
||||
Y: 455 + 2 * HEIGHT
|
||||
Width: 190
|
||||
Height: 25
|
||||
Text: label-missionbrowser-panel-gamespeed-desc
|
||||
Align: Right
|
||||
DropDownButton@GAMESPEED_DROPDOWNBUTTON:
|
||||
X: 210 - WIDTH
|
||||
Y: 508
|
||||
Width: 120
|
||||
Text: button-missionbrowser-panel-start-info-video
|
||||
Font: Bold
|
||||
Button@STOP_INFO_VIDEO_BUTTON:
|
||||
X: 20
|
||||
Y: 455 + 3 * HEIGHT
|
||||
Width: 190
|
||||
Height: 25
|
||||
Font: Regular
|
||||
Text: button-missionbrowser-panel-stop-info-video
|
||||
Font: Bold
|
||||
Container@MISSION_INFO:
|
||||
X: 220
|
||||
Y: 50
|
||||
@@ -87,45 +89,90 @@ Background@MISSIONBROWSER_PANEL:
|
||||
IgnoreMouseOver: True
|
||||
IgnoreMouseInput: True
|
||||
ShowSpawnPoints: False
|
||||
ScrollPanel@MISSION_DESCRIPTION_PANEL:
|
||||
Container@MISSION_DETAIL:
|
||||
Y: 337
|
||||
Width: PARENT_RIGHT
|
||||
Height: 146
|
||||
Children:
|
||||
Label@MISSION_DESCRIPTION:
|
||||
X: 4
|
||||
Y: 1
|
||||
Width: PARENT_RIGHT - 32
|
||||
VAlign: Top
|
||||
Font: Small
|
||||
Button@START_BRIEFING_VIDEO_BUTTON:
|
||||
ScrollPanel@MISSION_DESCRIPTION_PANEL:
|
||||
Height: PARENT_BOTTOM
|
||||
Width: PARENT_RIGHT
|
||||
TopBottomSpacing: 5
|
||||
Children:
|
||||
Label@MISSION_DESCRIPTION:
|
||||
X: 4
|
||||
Width: PARENT_RIGHT - 32
|
||||
VAlign: Top
|
||||
Font: Small
|
||||
ScrollPanel@MISSION_OPTIONS:
|
||||
Height: PARENT_BOTTOM
|
||||
Width: PARENT_RIGHT
|
||||
TopBottomSpacing: 5
|
||||
Children:
|
||||
Container@CHECKBOX_ROW_TEMPLATE:
|
||||
Width: PARENT_RIGHT
|
||||
Height: 30
|
||||
Children:
|
||||
Checkbox@A:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT / 2 - 25
|
||||
Height: 20
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Checkbox@B:
|
||||
X: PARENT_RIGHT / 2 + 5
|
||||
Width: PARENT_RIGHT / 2 - 25
|
||||
Height: 20
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Container@DROPDOWN_ROW_TEMPLATE:
|
||||
Height: 60
|
||||
Width: PARENT_RIGHT
|
||||
Children:
|
||||
LabelForInput@A_DESC:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Height: 20
|
||||
Visible: False
|
||||
For: A
|
||||
DropDownButton@A:
|
||||
X: 10
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Y: 25
|
||||
Height: 25
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
LabelForInput@B_DESC:
|
||||
X: PARENT_RIGHT / 2 + 5
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Height: 20
|
||||
Visible: False
|
||||
For: B
|
||||
DropDownButton@B:
|
||||
X: PARENT_RIGHT / 2 + 5
|
||||
Width: PARENT_RIGHT / 2 - 35
|
||||
Y: 25
|
||||
Height: 25
|
||||
Visible: False
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
Container@MISSION_TABS:
|
||||
Width: 320
|
||||
X: 220
|
||||
Y: PARENT_BOTTOM - 45
|
||||
Width: 130
|
||||
Height: 25
|
||||
Text: button-missionbrowser-panel-start-briefing-video
|
||||
Font: Bold
|
||||
Button@STOP_BRIEFING_VIDEO_BUTTON:
|
||||
X: 220
|
||||
Y: PARENT_BOTTOM - 45
|
||||
Width: 130
|
||||
Height: 25
|
||||
Text: button-missionbrowser-panel-stop-briefing-video
|
||||
Font: Bold
|
||||
Button@START_INFO_VIDEO_BUTTON:
|
||||
X: 360
|
||||
Y: PARENT_BOTTOM - 45
|
||||
Width: 130
|
||||
Height: 25
|
||||
Text: button-missionbrowser-panel-start-info-video
|
||||
Font: Bold
|
||||
Button@STOP_INFO_VIDEO_BUTTON:
|
||||
X: 360
|
||||
Y: PARENT_BOTTOM - 45
|
||||
Width: 130
|
||||
Height: 25
|
||||
Text: button-missionbrowser-panel-stop-info-video
|
||||
Font: Bold
|
||||
Y: PARENT_BOTTOM - 84
|
||||
Children:
|
||||
Button@MISSIONINFO_TAB:
|
||||
Width: PARENT_RIGHT / 2
|
||||
Y: 25
|
||||
Height: 28
|
||||
Font: Bold
|
||||
Text: button-missionbrowser-panel-mission-info
|
||||
Button@OPTIONS_TAB:
|
||||
X: PARENT_RIGHT / 2
|
||||
Width: PARENT_RIGHT / 2
|
||||
Y: 25
|
||||
Height: 28
|
||||
Font: Bold
|
||||
Text: button-missionbrowser-panel-mission-options
|
||||
Button@STARTGAME_BUTTON:
|
||||
X: PARENT_RIGHT - 140 - 130
|
||||
Y: PARENT_BOTTOM - 45
|
||||
|
||||
@@ -245,8 +245,6 @@ label-update-notice-b = Download the latest version from www.openra.net
|
||||
|
||||
## missionbrowser.yaml
|
||||
label-missionbrowser-panel-title = Missions
|
||||
label-missionbrowser-panel-difficulty-desc = Difficulty:
|
||||
label-missionbrowser-panel-gamespeed-desc = Speed:
|
||||
button-missionbrowser-panel-start-briefing-video = Watch Briefing
|
||||
button-missionbrowser-panel-stop-briefing-video = Stop Briefing
|
||||
button-missionbrowser-panel-start-info-video = Watch Info Video
|
||||
|
||||
@@ -4,4 +4,5 @@ dropdown-difficulty =
|
||||
|
||||
options-difficulty =
|
||||
.easy = Easy
|
||||
.normal = Normal
|
||||
.hard = Hard
|
||||
|
||||
@@ -31,9 +31,6 @@ options-starting-units =
|
||||
.light-support = Light Support
|
||||
.heavy-support = Heavy Support
|
||||
|
||||
options-difficulty =
|
||||
.normal = Normal
|
||||
|
||||
## Arrakis
|
||||
notification-worm-attack = Worm attack.
|
||||
notification-worm-sign = Worm sign.
|
||||
|
||||
@@ -2,10 +2,6 @@
|
||||
label-gamesave-loading-screen-title = Loading Saved Game
|
||||
label-gamesave-loading-screen-desc = Press Escape to cancel loading and return to the main menu
|
||||
|
||||
## missionbrowser.yaml
|
||||
label-mission-info-difficulty-desc = Difficulty:
|
||||
label-mission-info-gamespeed-desc = Speed:
|
||||
|
||||
## ingame-observer.yaml
|
||||
button-observer-widgets-pause-tooltip = Pause
|
||||
button-observer-widgets-play-tooltip = Play
|
||||
|
||||
@@ -4,4 +4,5 @@ dropdown-difficulty =
|
||||
|
||||
options-difficulty =
|
||||
.easy = Easy
|
||||
.normal = Normal
|
||||
.hard = Hard
|
||||
|
||||
@@ -32,9 +32,6 @@ options-starting-units =
|
||||
.light-support = Light Support
|
||||
.heavy-support = Heavy Support
|
||||
|
||||
options-difficulty =
|
||||
.normal = Normal
|
||||
|
||||
## Structures
|
||||
notification-construction-complete = Construction complete.
|
||||
notification-unit-ready = Unit ready.
|
||||
|
||||
@@ -4,5 +4,6 @@ dropdown-difficulty =
|
||||
|
||||
options-difficulty =
|
||||
.easy = Easy
|
||||
.normal = Normal
|
||||
.hard = Hard
|
||||
.tough = Real tough guy
|
||||
|
||||
@@ -4,5 +4,6 @@ dropdown-difficulty =
|
||||
|
||||
options-difficulty =
|
||||
.easy = Easy
|
||||
.normal = Normal
|
||||
.hard = Hard
|
||||
.tough = Real tough guy
|
||||
|
||||
@@ -4,5 +4,6 @@ dropdown-difficulty =
|
||||
|
||||
options-difficulty =
|
||||
.easy = Easy
|
||||
.normal = Normal
|
||||
.hard = Hard
|
||||
.tough = Real tough guy
|
||||
|
||||
@@ -13,10 +13,6 @@ label-voxel-selector-pitch = Pitch
|
||||
label-voxel-selector-yaw = Yaw
|
||||
button-assetbrowser-panel-close = Close
|
||||
|
||||
## missionbrowser.yaml
|
||||
label-mission-info-difficulty-desc = Difficulty:
|
||||
label-mission-info-gamespeed-desc = Speed:
|
||||
|
||||
## color-picker.yaml
|
||||
button-color-chooser-random = Random
|
||||
button-color-chooser-store = Store
|
||||
|
||||
@@ -29,9 +29,6 @@ dropdown-map-creeps =
|
||||
.label = Creep Actors
|
||||
.description = Hostile forces spawn on the battlefield
|
||||
|
||||
options-difficulty =
|
||||
.normal = Normal
|
||||
|
||||
## Structures
|
||||
notification-construction-complete = Construction complete.
|
||||
notification-unit-ready = Unit ready.
|
||||
|
||||
Reference in New Issue
Block a user