Merge pull request #10898 from pchote/map-format-eleven
Add support for multiple map categories.
This commit is contained in:
@@ -153,7 +153,7 @@ namespace OpenRA
|
||||
|
||||
public class Map : IReadOnlyFileSystem
|
||||
{
|
||||
public const int SupportedMapFormat = 10;
|
||||
public const int SupportedMapFormat = 11;
|
||||
|
||||
/// <summary>Defines the order of the fields in map.yaml</summary>
|
||||
static readonly MapField[] YamlFields =
|
||||
@@ -166,7 +166,7 @@ namespace OpenRA
|
||||
new MapField("MapSize"),
|
||||
new MapField("Bounds"),
|
||||
new MapField("Visibility"),
|
||||
new MapField("Type"),
|
||||
new MapField("Categories"),
|
||||
new MapField("LockPreview", required: false, ignoreIfValue: "False"),
|
||||
new MapField("Players", "PlayerDefinitions"),
|
||||
new MapField("Actors", "ActorDefinitions"),
|
||||
@@ -192,7 +192,7 @@ namespace OpenRA
|
||||
public bool LockPreview;
|
||||
public Rectangle Bounds;
|
||||
public MapVisibility Visibility = MapVisibility.Lobby;
|
||||
public string Type = "Conquest";
|
||||
public string[] Categories = { "Conquest" };
|
||||
|
||||
public int2 MapSize { get; private set; }
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace OpenRA
|
||||
{
|
||||
public readonly string title;
|
||||
public readonly string author;
|
||||
public readonly string map_type;
|
||||
public readonly string[] categories;
|
||||
public readonly int players;
|
||||
public readonly Rectangle bounds;
|
||||
public readonly int[] spawnpoints = { };
|
||||
@@ -64,7 +64,7 @@ namespace OpenRA
|
||||
IReadOnlyPackage parentPackage;
|
||||
|
||||
public string Title { get; private set; }
|
||||
public string Type { get; private set; }
|
||||
public string[] Categories { get; private set; }
|
||||
public string Author { get; private set; }
|
||||
public string TileSet { get; private set; }
|
||||
public MapPlayers Players { get; private set; }
|
||||
@@ -116,7 +116,7 @@ namespace OpenRA
|
||||
|
||||
Uid = uid;
|
||||
Title = "Unknown Map";
|
||||
Type = "Unknown";
|
||||
Categories = new[] { "Unknown" };
|
||||
Author = "Unknown Author";
|
||||
PlayerCount = 0;
|
||||
Bounds = Rectangle.Empty;
|
||||
@@ -153,8 +153,8 @@ namespace OpenRA
|
||||
|
||||
if (yaml.TryGetValue("Title", out temp))
|
||||
Title = temp.Value;
|
||||
if (yaml.TryGetValue("Type", out temp))
|
||||
Type = temp.Value;
|
||||
if (yaml.TryGetValue("Categories", out temp))
|
||||
Categories = FieldLoader.GetValue<string[]>("Categories", temp.Value);
|
||||
if (yaml.TryGetValue("Tileset", out temp))
|
||||
TileSet = temp.Value;
|
||||
if (yaml.TryGetValue("Author", out temp))
|
||||
@@ -257,7 +257,7 @@ namespace OpenRA
|
||||
return false;
|
||||
|
||||
// Other map types may have confusing settings or gameplay
|
||||
if (Type != "Conquest")
|
||||
if (!Categories.Contains("Conquest"))
|
||||
return false;
|
||||
|
||||
// Maps with bots disabled confuse new players
|
||||
@@ -290,7 +290,7 @@ namespace OpenRA
|
||||
}
|
||||
|
||||
Title = r.title;
|
||||
Type = r.map_type;
|
||||
Categories = r.categories;
|
||||
Author = r.author;
|
||||
PlayerCount = r.players;
|
||||
Bounds = r.bounds;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.Common.Lint
|
||||
@@ -28,8 +29,8 @@ namespace OpenRA.Mods.Common.Lint
|
||||
if (map.Title == null)
|
||||
emitError("Map does not define a valid title.");
|
||||
|
||||
if (map.Type == null)
|
||||
emitError("Map does not define a valid type.");
|
||||
if (!map.Categories.Any())
|
||||
emitError("Map does not define any categories.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -994,6 +994,14 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
yaml.Nodes.Add(new MiniYamlNode("LockPreview", new MiniYaml("True")));
|
||||
}
|
||||
|
||||
// Format 10 -> 11 replaced the single map type field with a list of categories
|
||||
if (mapFormat < 11)
|
||||
{
|
||||
var type = yaml.Nodes.First(n => n.Key == "Type");
|
||||
yaml.Nodes.Add(new MiniYamlNode("Categories", type.Value));
|
||||
yaml.Nodes.Remove(type);
|
||||
}
|
||||
|
||||
if (mapFormat < Map.SupportedMapFormat)
|
||||
{
|
||||
yaml.Nodes.First(n => n.Key == "MapFormat").Value = new MiniYaml(Map.SupportedMapFormat.ToString());
|
||||
|
||||
@@ -98,12 +98,17 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
var titleText = widget.Get<LabelWidget>("TITLE");
|
||||
var titleTextNoTabs = widget.GetOrNull<LabelWidget>("TITLE_NO_TABS");
|
||||
|
||||
var mapTitle = world.Map.Title;
|
||||
var firstCategory = world.Map.Categories.FirstOrDefault();
|
||||
if (firstCategory != null)
|
||||
mapTitle = firstCategory + ": " + mapTitle;
|
||||
|
||||
titleText.IsVisible = () => numTabs > 1 || (numTabs == 1 && titleTextNoTabs == null);
|
||||
titleText.GetText = () => string.Concat(world.Map.Type, ": ", world.Map.Title);
|
||||
titleText.GetText = () => mapTitle;
|
||||
if (titleTextNoTabs != null)
|
||||
{
|
||||
titleTextNoTabs.IsVisible = () => numTabs == 1;
|
||||
titleTextNoTabs.GetText = () => string.Concat(world.Map.Type, ": ", world.Map.Title);
|
||||
titleTextNoTabs.GetText = () => mapTitle;
|
||||
}
|
||||
|
||||
var bg = widget.Get<BackgroundWidget>("BACKGROUND");
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System.Linq;
|
||||
using OpenRA.Network;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
@@ -43,7 +44,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
var typeLabel = available.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||
if (typeLabel != null)
|
||||
typeLabel.GetText = () => lobby.Map.Type;
|
||||
{
|
||||
var type = new CachedTransform<MapPreview, string>(m => lobby.Map.Categories.FirstOrDefault() ?? "");
|
||||
typeLabel.GetText = () => type.Update(lobby.Map);
|
||||
}
|
||||
|
||||
var authorLabel = available.GetOrNull<LabelWidget>("MAP_AUTHOR");
|
||||
if (authorLabel != null)
|
||||
@@ -65,13 +69,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
preview.OnMouseDown = mi => LobbyUtils.SelectSpawnPoint(orderManager, preview, lobby.Map, mi);
|
||||
preview.SpawnOccupants = () => LobbyUtils.GetSpawnOccupants(orderManager.LobbyInfo, lobby.Map);
|
||||
|
||||
var title = invalid.GetOrNull<LabelWidget>("MAP_TITLE");
|
||||
if (title != null)
|
||||
title.GetText = () => lobby.Map.Title;
|
||||
var titleLabel = invalid.GetOrNull<LabelWidget>("MAP_TITLE");
|
||||
if (titleLabel != null)
|
||||
titleLabel.GetText = () => lobby.Map.Title;
|
||||
|
||||
var type = invalid.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||
if (type != null)
|
||||
type.GetText = () => lobby.Map.Type;
|
||||
var typeLabel = invalid.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||
if (typeLabel != null)
|
||||
{
|
||||
var type = new CachedTransform<MapPreview, string>(m => lobby.Map.Categories.FirstOrDefault() ?? "");
|
||||
typeLabel.GetText = () => type.Update(lobby.Map);
|
||||
}
|
||||
}
|
||||
|
||||
var download = widget.GetOrNull("MAP_DOWNLOADABLE");
|
||||
@@ -84,17 +91,20 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
preview.OnMouseDown = mi => LobbyUtils.SelectSpawnPoint(orderManager, preview, lobby.Map, mi);
|
||||
preview.SpawnOccupants = () => LobbyUtils.GetSpawnOccupants(orderManager.LobbyInfo, lobby.Map);
|
||||
|
||||
var title = download.GetOrNull<LabelWidget>("MAP_TITLE");
|
||||
if (title != null)
|
||||
title.GetText = () => lobby.Map.Title;
|
||||
var titleLabel = download.GetOrNull<LabelWidget>("MAP_TITLE");
|
||||
if (titleLabel != null)
|
||||
titleLabel.GetText = () => lobby.Map.Title;
|
||||
|
||||
var type = download.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||
if (type != null)
|
||||
type.GetText = () => lobby.Map.Type;
|
||||
var typeLabel = download.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||
if (typeLabel != null)
|
||||
{
|
||||
var type = new CachedTransform<MapPreview, string>(m => lobby.Map.Categories.FirstOrDefault() ?? "");
|
||||
typeLabel.GetText = () => type.Update(lobby.Map);
|
||||
}
|
||||
|
||||
var author = download.GetOrNull<LabelWidget>("MAP_AUTHOR");
|
||||
if (author != null)
|
||||
author.GetText = () => "Created by {0}".F(lobby.Map.Author);
|
||||
var authorLabel = download.GetOrNull<LabelWidget>("MAP_AUTHOR");
|
||||
if (authorLabel != null)
|
||||
authorLabel.GetText = () => "Created by {0}".F(lobby.Map.Author);
|
||||
|
||||
var install = download.GetOrNull<ButtonWidget>("MAP_INSTALL");
|
||||
if (install != null)
|
||||
@@ -116,13 +126,17 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
preview.OnMouseDown = mi => LobbyUtils.SelectSpawnPoint(orderManager, preview, lobby.Map, mi);
|
||||
preview.SpawnOccupants = () => LobbyUtils.GetSpawnOccupants(orderManager.LobbyInfo, lobby.Map);
|
||||
|
||||
var title = progress.GetOrNull<LabelWidget>("MAP_TITLE");
|
||||
if (title != null)
|
||||
title.GetText = () => lobby.Map.Title;
|
||||
var titleLabel = progress.GetOrNull<LabelWidget>("MAP_TITLE");
|
||||
if (titleLabel != null)
|
||||
titleLabel.GetText = () => lobby.Map.Title;
|
||||
|
||||
var type = progress.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||
if (type != null)
|
||||
type.GetText = () => lobby.Map.Type;
|
||||
var typeLabel = progress.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||
if (typeLabel != null)
|
||||
if (typeLabel != null)
|
||||
{
|
||||
var type = new CachedTransform<MapPreview, string>(m => lobby.Map.Categories.FirstOrDefault() ?? "");
|
||||
typeLabel.GetText = () => type.Update(lobby.Map);
|
||||
}
|
||||
|
||||
var statusSearching = progress.GetOrNull("MAP_STATUS_SEARCHING");
|
||||
if (statusSearching != null)
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
string selectedUid;
|
||||
Action<string> onSelect;
|
||||
|
||||
string gameMode;
|
||||
string category;
|
||||
string mapFilter;
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
@@ -170,30 +170,43 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
if (gameModeDropdown != null)
|
||||
{
|
||||
var gameModes = tabMaps[tab]
|
||||
.GroupBy(m => m.Type)
|
||||
.Select(g => Pair.New(g.Key, g.Count())).ToList();
|
||||
var categoryDict = new Dictionary<string, int>();
|
||||
foreach (var map in tabMaps[tab])
|
||||
{
|
||||
foreach (var category in map.Categories)
|
||||
{
|
||||
var count = 0;
|
||||
categoryDict.TryGetValue(category, out count);
|
||||
categoryDict[category] = count + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Order categories alphabetically
|
||||
var categories = categoryDict
|
||||
.Select(kv => Pair.New(kv.Key, kv.Value))
|
||||
.OrderBy(p => p.First)
|
||||
.ToList();
|
||||
|
||||
// 'all game types' extra item
|
||||
gameModes.Insert(0, Pair.New(null as string, tabMaps[tab].Count()));
|
||||
categories.Insert(0, Pair.New(null as string, tabMaps[tab].Count()));
|
||||
|
||||
Func<Pair<string, int>, string> showItem = x => "{0} ({1})".F(x.First ?? "All Game Types", x.Second);
|
||||
Func<Pair<string, int>, string> showItem = x => "{0} ({1})".F(x.First ?? "All Maps", x.Second);
|
||||
|
||||
Func<Pair<string, int>, ScrollItemWidget, ScrollItemWidget> setupItem = (ii, template) =>
|
||||
{
|
||||
var item = ScrollItemWidget.Setup(template,
|
||||
() => gameMode == ii.First,
|
||||
() => { gameMode = ii.First; EnumerateMaps(tab, itemTemplate); });
|
||||
() => category == ii.First,
|
||||
() => { category = ii.First; EnumerateMaps(tab, itemTemplate); });
|
||||
item.Get<LabelWidget>("LABEL").GetText = () => showItem(ii);
|
||||
return item;
|
||||
};
|
||||
|
||||
gameModeDropdown.OnClick = () =>
|
||||
gameModeDropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 210, gameModes, setupItem);
|
||||
gameModeDropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 210, categories, setupItem);
|
||||
|
||||
gameModeDropdown.GetText = () =>
|
||||
{
|
||||
var item = gameModes.FirstOrDefault(m => m.First == gameMode);
|
||||
var item = categories.FirstOrDefault(m => m.First == category);
|
||||
if (item == default(Pair<string, int>))
|
||||
item.First = "No matches";
|
||||
|
||||
@@ -209,7 +222,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
playerCountFilter = -1;
|
||||
|
||||
var maps = tabMaps[tab]
|
||||
.Where(m => gameMode == null || m.Type == gameMode)
|
||||
.Where(m => category == null || m.Categories.Contains(category))
|
||||
.Where(m => mapFilter == null ||
|
||||
(m.Title != null && m.Title.IndexOf(mapFilter, StringComparison.OrdinalIgnoreCase) >= 0) ||
|
||||
(m.Author != null && m.Author.IndexOf(mapFilter, StringComparison.OrdinalIgnoreCase) >= 0) ||
|
||||
@@ -251,7 +264,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
var detailsWidget = item.GetOrNull<LabelWidget>("DETAILS");
|
||||
if (detailsWidget != null)
|
||||
detailsWidget.GetText = () => "{0} ({1} players)".F(preview.Type, preview.PlayerCount);
|
||||
{
|
||||
var type = preview.Categories.FirstOrDefault();
|
||||
var details = "";
|
||||
if (type != null)
|
||||
details = type + " ";
|
||||
|
||||
details += "({0} players)".F(preview.PlayerCount);
|
||||
detailsWidget.GetText = () => details;
|
||||
}
|
||||
|
||||
var authorWidget = item.GetOrNull<LabelWidget>("AUTHOR");
|
||||
if (authorWidget != null)
|
||||
|
||||
@@ -83,7 +83,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
var type = panel.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||
if (type != null)
|
||||
type.GetText = () => selectedReplay.GameInfo.MapPreview.Type;
|
||||
{
|
||||
var mapType = new CachedTransform<MapPreview, string>(m => m.Categories.FirstOrDefault() ?? "");
|
||||
type.GetText = () => mapType.Update(selectedReplay.GameInfo.MapPreview);
|
||||
}
|
||||
|
||||
panel.Get<LabelWidget>("DURATION").GetText = () => WidgetUtils.FormatTimeSeconds((int)selectedReplay.GameInfo.Duration.TotalSeconds);
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 2,9,48,53
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 10,5,45,52
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 35,39,27,23
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 31,31,31,31
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 1,25,45,37
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 7,24,51,36
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 5,11,50,38
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 14,14,48,44
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 8,21,49,39
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 8,13,51,47
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 15,1,47,61
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 21,14,37,24
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 27,34,36,26
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 3,23,36,26
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 13,16,42,33
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 13,16,42,34
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 11,6,46,34
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 7,17,52,44
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 4,12,57,45
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 16,17,46,45
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 15,12,47,50
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 15,16,44,42
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 8,1,80,45
|
||||
|
||||
Visibility: Shellmap
|
||||
|
||||
Type: Shellmap
|
||||
Categories: Shellmap
|
||||
|
||||
Players:
|
||||
PlayerReference@Nod:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: cnc
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 16,16,36,36
|
||||
|
||||
Visibility: Lobby
|
||||
|
||||
Type: Drop Zone
|
||||
Categories: Drop Zone
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 2,2,28,24
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 2,2,28,24
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 2,2,48,48
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 2,2,48,48
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 2,2,64,64
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 8,8,64,64
|
||||
|
||||
Visibility: Lobby
|
||||
|
||||
Type: Conquest
|
||||
Categories: Conquest
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 16,16,96,96
|
||||
|
||||
Visibility: Lobby
|
||||
|
||||
Type: Conquest
|
||||
Categories: Conquest
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 4,4,48,48
|
||||
|
||||
Visibility: Lobby
|
||||
|
||||
Type: Conquest
|
||||
Categories: Conquest
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: d2k
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 16,16,80,80
|
||||
|
||||
Visibility: Shellmap
|
||||
|
||||
Type: Shellmap
|
||||
Categories: Shellmap
|
||||
|
||||
Players:
|
||||
PlayerReference@Neutral:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: ra
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 49,45,30,36
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: ra
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 43,44,50,42
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: ra
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 35,48,72,36
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MapFormat: 10
|
||||
MapFormat: 11
|
||||
|
||||
RequiresMod: ra
|
||||
|
||||
@@ -14,7 +14,7 @@ Bounds: 46,31,75,75
|
||||
|
||||
Visibility: MissionSelector
|
||||
|
||||
Type: Campaign
|
||||
Categories: Campaign
|
||||
|
||||
LockPreview: True
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user