diff --git a/OpenRA.Game/Manifest.cs b/OpenRA.Game/Manifest.cs index 3bfe70e905..1878bae660 100644 --- a/OpenRA.Game/Manifest.cs +++ b/OpenRA.Game/Manifest.cs @@ -44,7 +44,6 @@ namespace OpenRA public readonly IReadOnlyDictionary Packages; public readonly IReadOnlyDictionary MapFolders; public readonly MiniYaml LoadScreen; - public readonly MiniYaml LobbyDefaults; public readonly Dictionary RequiresMods; public readonly Dictionary> Fonts; @@ -98,9 +97,6 @@ namespace OpenRA if (!yaml.TryGetValue("LoadScreen", out LoadScreen)) throw new InvalidDataException("`LoadScreen` section is not defined."); - if (!yaml.TryGetValue("LobbyDefaults", out LobbyDefaults)) - throw new InvalidDataException("`LobbyDefaults` section is not defined."); - Fonts = yaml["Fonts"].ToDictionary(my => { var nd = my.ToDictionary(); diff --git a/OpenRA.Game/Map/Map.cs b/OpenRA.Game/Map/Map.cs index 33518de4ff..3767d51456 100644 --- a/OpenRA.Game/Map/Map.cs +++ b/OpenRA.Game/Map/Map.cs @@ -56,50 +56,6 @@ namespace OpenRA } } - public class MapOptions - { - public bool? Cheats; - public bool? Crates; - public bool? Creeps; - public bool? Fog; - public bool? Shroud; - public bool? AllyBuildRadius; - public int? StartingCash; - public string TechLevel; - public bool ConfigurableStartingUnits = true; - public string[] Difficulties = { }; - public bool? ShortGame; - - public void UpdateServerSettings(Session.Global settings) - { - if (Cheats.HasValue) - settings.AllowCheats = Cheats.Value; - if (Crates.HasValue) - settings.Crates = Crates.Value; - if (Creeps.HasValue) - settings.Creeps = Creeps.Value; - if (Fog.HasValue) - settings.Fog = Fog.Value; - if (Shroud.HasValue) - settings.Shroud = Shroud.Value; - if (AllyBuildRadius.HasValue) - settings.AllyBuildRadius = AllyBuildRadius.Value; - if (StartingCash.HasValue) - settings.StartingCash = StartingCash.Value; - if (ShortGame.HasValue) - settings.ShortGame = ShortGame.Value; - } - } - - public class MapVideos - { - public string BackgroundInfo; - public string Briefing; - public string GameStart; - public string GameWon; - public string GameLost; - } - [Flags] public enum MapVisibility { @@ -110,7 +66,7 @@ namespace OpenRA public class Map : IReadOnlyFileSystem { - public const int SupportedMapFormat = 8; + public const int SupportedMapFormat = 9; public const int MaxTilesInCircleRange = 50; public readonly MapGrid Grid; @@ -130,10 +86,8 @@ namespace OpenRA public string Title; public string Type = "Conquest"; - public string Description; public string Author; public string Tileset; - public bool AllowStartUnitConfig = true; public Bitmap CustomPreview; public bool InvalidCustomRules { get; private set; } @@ -145,30 +99,6 @@ namespace OpenRA return SubCellOffsets[(int)subCell]; } - [FieldLoader.LoadUsing("LoadOptions")] public MapOptions Options; - - static object LoadOptions(MiniYaml y) - { - var options = new MapOptions(); - var nodesDict = y.ToDictionary(); - if (nodesDict.ContainsKey("Options")) - FieldLoader.Load(options, nodesDict["Options"]); - - return options; - } - - [FieldLoader.LoadUsing("LoadVideos")] public MapVideos Videos; - - static object LoadVideos(MiniYaml y) - { - var videos = new MapVideos(); - var nodesDict = y.ToDictionary(); - if (nodesDict.ContainsKey("Videos")) - FieldLoader.Load(videos, nodesDict["Videos"]); - - return videos; - } - public static string ComputeUID(IReadOnlyPackage package) { // UID is calculated by taking an SHA1 of the yaml and binary data @@ -270,13 +200,10 @@ namespace OpenRA var tileRef = new TerrainTile(tileset.Templates.First().Key, 0); Title = "Name your map here"; - Description = "Describe your map here"; Author = "Your name here"; MapSize = new int2(size); Tileset = tileset.Id; - Videos = new MapVideos(); - Options = new MapOptions(); MapResources = Exts.Lazy(() => new CellLayer(Grid.Type, size)); @@ -500,7 +427,6 @@ namespace OpenRA "MapFormat", "RequiresMod", "Title", - "Description", "Author", "Tileset", "MapSize", @@ -517,12 +443,7 @@ namespace OpenRA root.Add(new MiniYamlNode(field, FieldSaver.FormatValue(this, f))); } - root.Add(new MiniYamlNode("Videos", FieldSaver.SaveDifferences(Videos, new MapVideos()))); - - root.Add(new MiniYamlNode("Options", FieldSaver.SaveDifferences(Options, new MapOptions()))); - root.Add(new MiniYamlNode("Players", null, PlayerDefinitions)); - root.Add(new MiniYamlNode("Actors", null, ActorDefinitions)); root.Add(new MiniYamlNode("Smudges", null, SmudgeDefinitions)); root.Add(new MiniYamlNode("Rules", null, RuleDefinitions)); @@ -858,10 +779,10 @@ namespace OpenRA ProjectedCellBounds = new ProjectedCellRegion(this, tl, br); } - public void FixOpenAreas(Ruleset rules) + public void FixOpenAreas() { var r = new Random(); - var tileset = rules.TileSets[Tileset]; + var tileset = Rules.TileSets[Tileset]; for (var j = Bounds.Top; j < Bounds.Bottom; j++) { diff --git a/OpenRA.Game/Network/Session.cs b/OpenRA.Game/Network/Session.cs index dbb6e48341..63eeb34af5 100644 --- a/OpenRA.Game/Network/Session.cs +++ b/OpenRA.Game/Network/Session.cs @@ -190,8 +190,8 @@ namespace OpenRA.Network public bool Fog = true; public bool AllyBuildRadius = true; public int StartingCash = 5000; - public string TechLevel = "none"; - public string StartingUnitsClass = "none"; + public string TechLevel; + public string StartingUnitsClass; public string GameSpeedType = "default"; public bool ShortGame = true; public bool AllowVersionMismatch; diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index d186f6aeeb..0d14b76022 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -154,16 +154,14 @@ namespace OpenRA.Server } }; - FieldLoader.Load(LobbyInfo.GlobalSettings, modData.Manifest.LobbyDefaults); - - foreach (var t in serverTraits.WithInterface()) - t.ServerStarted(this); - - Log.Write("server", "Initial mod: {0}", ModData.Manifest.Mod.Id); - Log.Write("server", "Initial map: {0}", LobbyInfo.GlobalSettings.Map); - new Thread(_ => { + foreach (var t in serverTraits.WithInterface()) + t.ServerStarted(this); + + Log.Write("server", "Initial mod: {0}", ModData.Manifest.Mod.Id); + Log.Write("server", "Initial map: {0}", LobbyInfo.GlobalSettings.Map); + var timeout = serverTraits.WithInterface().Min(t => t.TickTimeout); for (;;) { @@ -608,10 +606,7 @@ namespace OpenRA.Server DispatchOrders(toDrop, frame, new byte[] { 0xbf }); if (!Conns.Any()) - { - FieldLoader.Load(LobbyInfo.GlobalSettings, ModData.Manifest.LobbyDefaults); TempBans.Clear(); - } if (Conns.Any() || LobbyInfo.GlobalSettings.Dedicated) SyncLobbyClients(); diff --git a/OpenRA.Game/Traits/Player/DeveloperMode.cs b/OpenRA.Game/Traits/Player/DeveloperMode.cs index d74bec2f4f..ac628dc1cb 100644 --- a/OpenRA.Game/Traits/Player/DeveloperMode.cs +++ b/OpenRA.Game/Traits/Player/DeveloperMode.cs @@ -14,17 +14,46 @@ namespace OpenRA.Traits [Desc("Attach this to the player actor.")] public class DeveloperModeInfo : ITraitInfo { + [Desc("Default value of the developer mode checkbox in the lobby.")] + public bool Enabled = false; + + [Desc("Prevent the developer mode state from being changed in the lobby.")] + public bool Locked = false; + + [Desc("Default cash bonus granted by the give cash cheat.")] public int Cash = 20000; + + [Desc("Growth steps triggered by the grow resources button.")] public int ResourceGrowth = 100; + + [Desc("Enable the fast build cheat by default.")] public bool FastBuild; + + [Desc("Enable the fast support powers cheat by default.")] public bool FastCharge; + + [Desc("Enable the disable visibility cheat by default.")] public bool DisableShroud; - public bool PathDebug; + + [Desc("Enable the unlimited power cheat by default.")] public bool UnlimitedPower; + + [Desc("Enable the build anywhere cheat by default.")] public bool BuildAnywhere; + + [Desc("Enable the path debug overlay by default.")] + public bool PathDebug; + + [Desc("Enable the combat geometry overlay by default.")] public bool ShowCombatGeometry; + + [Desc("Enable the debug geometry overlay by default.")] public bool ShowDebugGeometry; + + [Desc("Enable the depth buffer overlay by default.")] public bool ShowDepthPreview; + + [Desc("Enable the actor tags overlay by default.")] public bool ShowActorTags; public object Create(ActorInitializer init) { return new DeveloperMode(this); } diff --git a/OpenRA.Game/Traits/Player/PlayerResources.cs b/OpenRA.Game/Traits/Player/PlayerResources.cs index 0dca7e6e0a..604c0e2f3a 100644 --- a/OpenRA.Game/Traits/Player/PlayerResources.cs +++ b/OpenRA.Game/Traits/Player/PlayerResources.cs @@ -16,9 +16,15 @@ namespace OpenRA.Traits { public class PlayerResourcesInfo : ITraitInfo { + [Desc("Starting cash options that are available in the lobby options.")] public readonly int[] SelectableCash = { 2500, 5000, 10000, 20000 }; + + [Desc("Default starting cash option: should be one of the SelectableCash options.")] public readonly int DefaultCash = 5000; + [Desc("Force the DefaultCash option by disabling changes in the lobby.")] + public readonly bool DefaultCashLocked = false; + public object Create(ActorInitializer init) { return new PlayerResources(init.Self, this); } } diff --git a/OpenRA.Game/Traits/World/Shroud.cs b/OpenRA.Game/Traits/World/Shroud.cs index 206f295cbf..7fbbc62c0c 100644 --- a/OpenRA.Game/Traits/World/Shroud.cs +++ b/OpenRA.Game/Traits/World/Shroud.cs @@ -18,6 +18,18 @@ namespace OpenRA.Traits [Desc("Required for shroud and fog visibility checks. Add this to the player actor.")] public class ShroudInfo : ITraitInfo { + [Desc("Default value of the fog checkbox in the lobby.")] + public bool FogEnabled = true; + + [Desc("Prevent the fog enabled state from being changed in the lobby.")] + public bool FogLocked = false; + + [Desc("Default value of the explore map checkbox in the lobby.")] + public bool ExploredMapEnabled = false; + + [Desc("Prevent the explore map enabled state from being changed in the lobby.")] + public bool ExploredMapLocked = false; + public object Create(ActorInitializer init) { return new Shroud(init.Self); } } diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj index f210809632..915b947708 100644 --- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj +++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj @@ -732,6 +732,10 @@ + + + + diff --git a/OpenRA.Mods.Common/ServerTraits/LobbyCommands.cs b/OpenRA.Mods.Common/ServerTraits/LobbyCommands.cs index feb026946f..5089f8b7ca 100644 --- a/OpenRA.Mods.Common/ServerTraits/LobbyCommands.cs +++ b/OpenRA.Mods.Common/ServerTraits/LobbyCommands.cs @@ -348,7 +348,6 @@ namespace OpenRA.Mods.Common.Server var oldSlots = server.LobbyInfo.Slots.Keys.ToArray(); LoadMap(server); - SetDefaultDifficulty(server); // Reset client states foreach (var c in server.LobbyInfo.Clients) @@ -408,7 +407,8 @@ namespace OpenRA.Mods.Common.Server return true; } - if (server.Map.Options.Cheats.HasValue) + var devMode = server.Map.Rules.Actors["player"].TraitInfo(); + if (devMode.Locked) { server.SendOrderTo(conn, "Message", "Map has disabled cheat configuration."); return true; @@ -431,7 +431,8 @@ namespace OpenRA.Mods.Common.Server return true; } - if (server.Map.Options.Shroud.HasValue) + var shroud = server.Map.Rules.Actors["player"].TraitInfo(); + if (shroud.ExploredMapLocked) { server.SendOrderTo(conn, "Message", "Map has disabled shroud configuration."); return true; @@ -454,7 +455,8 @@ namespace OpenRA.Mods.Common.Server return true; } - if (server.Map.Options.Fog.HasValue) + var shroud = server.Map.Rules.Actors["player"].TraitInfo(); + if (shroud.FogLocked) { server.SendOrderTo(conn, "Message", "Map has disabled fog configuration."); return true; @@ -518,7 +520,8 @@ namespace OpenRA.Mods.Common.Server return true; } - if (server.Map.Options.Crates.HasValue) + var crateSpawner = server.Map.Rules.Actors["world"].TraitInfoOrDefault(); + if (crateSpawner == null || crateSpawner.Locked) { server.SendOrderTo(conn, "Message", "Map has disabled crate configuration."); return true; @@ -541,7 +544,8 @@ namespace OpenRA.Mods.Common.Server return true; } - if (server.Map.Options.Creeps.HasValue) + var mapCreeps = server.Map.Rules.Actors["world"].TraitInfoOrDefault(); + if (mapCreeps == null || mapCreeps.Locked) { server.SendOrderTo(conn, "Message", "Map has disabled Creeps spawning configuration."); return true; @@ -564,7 +568,8 @@ namespace OpenRA.Mods.Common.Server return true; } - if (server.Map.Options.AllyBuildRadius.HasValue) + var mapBuildRadius = server.Map.Rules.Actors["world"].TraitInfoOrDefault(); + if (mapBuildRadius == null || mapBuildRadius.AllyBuildRadiusLocked) { server.SendOrderTo(conn, "Message", "Map has disabled ally build radius configuration."); return true; @@ -581,19 +586,23 @@ namespace OpenRA.Mods.Common.Server { "difficulty", s => { - if (!server.Map.Options.Difficulties.Any()) - return true; - if (!client.IsAdmin) { server.SendOrderTo(conn, "Message", "Only the host can set that option."); return true; } - if (s != null && !server.Map.Options.Difficulties.Contains(s)) + var mapOptions = server.Map.Rules.Actors["world"].TraitInfo(); + if (mapOptions.DifficultyLocked || !mapOptions.Difficulties.Any()) + { + server.SendOrderTo(conn, "Message", "Map has disabled difficulty configuration."); + return true; + } + + if (s != null && !mapOptions.Difficulties.Contains(s)) { server.SendOrderTo(conn, "Message", "Invalid difficulty selected: {0}".F(s)); - server.SendOrderTo(conn, "Message", "Supported values: {0}".F(server.Map.Options.Difficulties.JoinWith(", "))); + server.SendOrderTo(conn, "Message", "Supported values: {0}".F(mapOptions.Difficulties.JoinWith(", "))); return true; } @@ -613,7 +622,8 @@ namespace OpenRA.Mods.Common.Server return true; } - if (!server.Map.Options.ConfigurableStartingUnits) + var startingUnits = server.Map.Rules.Actors["world"].TraitInfoOrDefault(); + if (startingUnits == null || startingUnits.Locked) { server.SendOrderTo(conn, "Message", "Map has disabled start unit configuration."); return true; @@ -644,13 +654,14 @@ namespace OpenRA.Mods.Common.Server return true; } - if (server.Map.Options.StartingCash.HasValue) + var playerResources = server.Map.Rules.Actors["player"].TraitInfo(); + if (playerResources.DefaultCashLocked) { server.SendOrderTo(conn, "Message", "Map has disabled cash configuration."); return true; } - var startingCashOptions = server.Map.Rules.Actors["player"].TraitInfo().SelectableCash; + var startingCashOptions = playerResources.SelectableCash; var requestedCash = Exts.ParseIntegerInvariant(s); if (!startingCashOptions.Contains(requestedCash)) { @@ -675,7 +686,8 @@ namespace OpenRA.Mods.Common.Server return true; } - if (server.Map.Options.TechLevel != null) + var mapOptions = server.Map.Rules.Actors["world"].TraitInfo(); + if (mapOptions.TechLevelLocked) { server.SendOrderTo(conn, "Message", "Map has disabled Tech configuration."); return true; @@ -931,7 +943,8 @@ namespace OpenRA.Mods.Common.Server return true; } - if (server.Map.Options.ShortGame.HasValue) + var mapOptions = server.Map.Rules.Actors["world"].TraitInfo(); + if (mapOptions.ShortGameLocked) { server.SendOrderTo(conn, "Message", "Map has disabled short game configuration."); return true; @@ -982,7 +995,6 @@ namespace OpenRA.Mods.Common.Server public void ServerStarted(S server) { LoadMap(server); - SetDefaultDifficulty(server); } static Session.Slot MakeSlotFromPlayerReference(PlayerReference pr) @@ -1001,6 +1013,33 @@ namespace OpenRA.Mods.Common.Server }; } + public static void LoadMapSettings(Session.Global gs, Map map) + { + var devMode = map.Rules.Actors["player"].TraitInfo(); + gs.AllowCheats = devMode.Enabled; + + var crateSpawner = map.Rules.Actors["world"].TraitInfoOrDefault(); + gs.Crates = crateSpawner != null && crateSpawner.Enabled; + + var shroud = map.Rules.Actors["player"].TraitInfo(); + gs.Fog = shroud.FogEnabled; + gs.Shroud = !shroud.ExploredMapEnabled; + + var resources = map.Rules.Actors["player"].TraitInfo(); + gs.StartingCash = resources.DefaultCash; + + var startingUnits = map.Rules.Actors["world"].TraitInfoOrDefault(); + gs.StartingUnitsClass = startingUnits == null ? "none" : startingUnits.StartingUnitsClass; + + var mapBuildRadius = map.Rules.Actors["world"].TraitInfoOrDefault(); + gs.AllyBuildRadius = mapBuildRadius != null && mapBuildRadius.AllyBuildRadiusEnabled; + + var mapOptions = map.Rules.Actors["world"].TraitInfo(); + gs.ShortGame = mapOptions.ShortGameEnabled; + gs.TechLevel = mapOptions.TechLevel; + gs.Difficulty = mapOptions.Difficulty ?? mapOptions.Difficulties.FirstOrDefault(); + } + static void LoadMap(S server) { server.Map = new Map(server.ModData, server.ModData.MapCache[server.LobbyInfo.GlobalSettings.Map].Package); @@ -1011,19 +1050,7 @@ namespace OpenRA.Mods.Common.Server .Where(s => s != null) .ToDictionary(s => s.PlayerReference, s => s); - server.Map.Options.UpdateServerSettings(server.LobbyInfo.GlobalSettings); - } - - static void SetDefaultDifficulty(S server) - { - if (!server.Map.Options.Difficulties.Any()) - { - server.LobbyInfo.GlobalSettings.Difficulty = null; - return; - } - - if (!server.Map.Options.Difficulties.Contains(server.LobbyInfo.GlobalSettings.Difficulty)) - server.LobbyInfo.GlobalSettings.Difficulty = server.Map.Options.Difficulties.First(); + LoadMapSettings(server.LobbyInfo.GlobalSettings, server.Map); } static HSLColor SanitizePlayerColor(S server, HSLColor askedColor, int playerIndex, Connection connectionToEcho = null) diff --git a/OpenRA.Mods.Common/ServerTraits/LobbySettingsNotification.cs b/OpenRA.Mods.Common/ServerTraits/LobbySettingsNotification.cs index e273532642..963ffcd99c 100644 --- a/OpenRA.Mods.Common/ServerTraits/LobbySettingsNotification.cs +++ b/OpenRA.Mods.Common/ServerTraits/LobbySettingsNotification.cs @@ -24,7 +24,7 @@ namespace OpenRA.Mods.Common.Server return; var defaults = new Session.Global(); - FieldLoader.Load(defaults, Game.ModData.Manifest.LobbyDefaults); + LobbyCommands.LoadMapSettings(defaults, server.Map); if (server.LobbyInfo.GlobalSettings.AllowCheats != defaults.AllowCheats) server.SendOrderTo(conn, "Message", "Allow Cheats: {0}".F(server.LobbyInfo.GlobalSettings.AllowCheats)); diff --git a/OpenRA.Mods.Common/Traits/Player/ProvidesTechPrerequisite.cs b/OpenRA.Mods.Common/Traits/Player/ProvidesTechPrerequisite.cs index eac51c5720..c35c7a1ac5 100644 --- a/OpenRA.Mods.Common/Traits/Player/ProvidesTechPrerequisite.cs +++ b/OpenRA.Mods.Common/Traits/Player/ProvidesTechPrerequisite.cs @@ -40,8 +40,7 @@ namespace OpenRA.Mods.Common.Traits public ProvidesTechPrerequisite(ProvidesTechPrerequisiteInfo info, ActorInitializer init) { this.info = info; - var tech = init.World.Map.Options.TechLevel ?? init.World.LobbyInfo.GlobalSettings.TechLevel; - enabled = info.Name == tech; + enabled = info.Name == init.World.LobbyInfo.GlobalSettings.TechLevel; } } } diff --git a/OpenRA.Mods.Common/Traits/World/CrateSpawner.cs b/OpenRA.Mods.Common/Traits/World/CrateSpawner.cs index f3afbd039e..f030c469a3 100644 --- a/OpenRA.Mods.Common/Traits/World/CrateSpawner.cs +++ b/OpenRA.Mods.Common/Traits/World/CrateSpawner.cs @@ -20,6 +20,12 @@ namespace OpenRA.Mods.Common.Traits { public class CrateSpawnerInfo : ITraitInfo { + [Desc("Default value of the crates checkbox in the lobby.")] + public readonly bool Enabled = true; + + [Desc("Prevent the crates state from being changed in the lobby.")] + public readonly bool Locked = false; + [Desc("Minimum number of crates.")] public readonly int Minimum = 1; @@ -42,14 +48,14 @@ namespace OpenRA.Mods.Common.Traits public readonly int WaterChance = 20; [ActorReference] - [Desc("Crate actors to drop")] + [Desc("Crate actors to drop.")] public readonly string[] CrateActors = { "crate" }; - [Desc("Chance of each crate actor spawning")] + [Desc("Chance of each crate actor spawning.")] public readonly int[] CrateActorShares = { 10 }; [ActorReference] - [Desc("If a DeliveryAircraft: is specified, then this actor will deliver crates")] + [Desc("If a DeliveryAircraft: is specified, then this actor will deliver crates.")] public readonly string DeliveryAircraft = null; [Desc("Number of facings that the delivery aircraft may approach from.")] diff --git a/OpenRA.Mods.Common/Traits/World/MapBuildRadius.cs b/OpenRA.Mods.Common/Traits/World/MapBuildRadius.cs new file mode 100644 index 0000000000..d3becc3a00 --- /dev/null +++ b/OpenRA.Mods.Common/Traits/World/MapBuildRadius.cs @@ -0,0 +1,28 @@ +#region Copyright & License Information +/* + * Copyright 2007-2016 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, either version 3 of + * the License, or (at your option) any later version. For more + * information, see COPYING. + */ +#endregion + +using System.Collections.Generic; +using OpenRA.Traits; + +namespace OpenRA.Mods.Common.Traits +{ + [Desc("Controls the build radius checkboxes in the lobby options.")] + public class MapBuildRadiusInfo : TraitInfo + { + [Desc("Default value of the ally build radius checkbox in the lobby.")] + public readonly bool AllyBuildRadiusEnabled = true; + + [Desc("Prevent the ally build radius state from being changed in the lobby.")] + public readonly bool AllyBuildRadiusLocked = false; + } + + public class MapBuildRadius { } +} diff --git a/OpenRA.Mods.Common/Traits/World/MapCreeps.cs b/OpenRA.Mods.Common/Traits/World/MapCreeps.cs new file mode 100644 index 0000000000..192976e15f --- /dev/null +++ b/OpenRA.Mods.Common/Traits/World/MapCreeps.cs @@ -0,0 +1,28 @@ +#region Copyright & License Information +/* + * Copyright 2007-2016 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, either version 3 of + * the License, or (at your option) any later version. For more + * information, see COPYING. + */ +#endregion + +using System.Collections.Generic; +using OpenRA.Traits; + +namespace OpenRA.Mods.Common.Traits +{ + [Desc("Controls the 'Creeps' checkbox in the lobby options.")] + public class MapCreepsInfo : TraitInfo + { + [Desc("Default value of the creeps checkbox in the lobby.")] + public readonly bool Enabled = true; + + [Desc("Prevent the creeps state from being changed in the lobby.")] + public readonly bool Locked = false; + } + + public class MapCreeps { } +} diff --git a/OpenRA.Mods.Common/Traits/World/MapOptions.cs b/OpenRA.Mods.Common/Traits/World/MapOptions.cs new file mode 100644 index 0000000000..a86fc39046 --- /dev/null +++ b/OpenRA.Mods.Common/Traits/World/MapOptions.cs @@ -0,0 +1,43 @@ +#region Copyright & License Information +/* + * Copyright 2007-2016 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, either version 3 of + * the License, or (at your option) any later version. For more + * information, see COPYING. + */ +#endregion + +using System.Collections.Generic; +using OpenRA.Traits; + +namespace OpenRA.Mods.Common.Traits +{ + [Desc("Controls the map difficulty, tech level, and short game lobby options.")] + public class MapOptionsInfo : TraitInfo + { + [Desc("Default value of the short game checkbox in the lobby.")] + public readonly bool ShortGameEnabled = true; + + [Desc("Prevent the short game enabled state from being changed in the lobby.")] + public readonly bool ShortGameLocked = false; + + [Desc("Default tech level.")] + public readonly string TechLevel = "Unrestricted"; + + [Desc("Prevent the tech level from being changed in the lobby.")] + public readonly bool TechLevelLocked = false; + + [Desc("Difficulty levels supported by the map.")] + public readonly string[] Difficulties = { }; + + [Desc("Default difficulty level.")] + public readonly string Difficulty = null; + + [Desc("Prevent the difficulty from being changed in the lobby.")] + public readonly bool DifficultyLocked = false; + } + + public class MapOptions { } +} diff --git a/OpenRA.Mods.Common/Traits/World/MissionData.cs b/OpenRA.Mods.Common/Traits/World/MissionData.cs new file mode 100644 index 0000000000..5c7370974b --- /dev/null +++ b/OpenRA.Mods.Common/Traits/World/MissionData.cs @@ -0,0 +1,40 @@ +#region Copyright & License Information +/* + * Copyright 2007-2016 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, either version 3 of + * the License, or (at your option) any later version. For more + * information, see COPYING. + */ +#endregion + +using System.Collections.Generic; +using OpenRA.Traits; + +namespace OpenRA.Mods.Common.Traits +{ + [Desc("Defines the FMVs that can be played by missions.")] + public class MissionDataInfo : TraitInfo + { + [Desc("Briefing text displayed in the mission browser.")] + public readonly string Briefing; + + [Desc("Played by the \"Background Info\" button in the mission browser.")] + public readonly string BackgroundVideo; + + [Desc("Played by the \"Briefing\" button in the mission browser.")] + public readonly string BriefingVideo; + + [Desc("Automatically played before starting the mission.")] + public readonly string StartVideo; + + [Desc("Automatically played when the player wins the mission.")] + public readonly string WinVideo; + + [Desc("Automatically played when the player loses the mission.")] + public readonly string LossVideo; + } + + public class MissionData { } +} diff --git a/OpenRA.Mods.Common/Traits/World/SpawnMPUnits.cs b/OpenRA.Mods.Common/Traits/World/SpawnMPUnits.cs index c4f461ae40..3bbc5e5e02 100644 --- a/OpenRA.Mods.Common/Traits/World/SpawnMPUnits.cs +++ b/OpenRA.Mods.Common/Traits/World/SpawnMPUnits.cs @@ -18,7 +18,13 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("Spawn base actor at the spawnpoint and support units in an annulus around the base actor. Both are defined at MPStartUnits. Attach this to the world actor.")] - public class SpawnMPUnitsInfo : TraitInfo, Requires, Requires { } + public class SpawnMPUnitsInfo : TraitInfo, Requires, Requires + { + public readonly string StartingUnitsClass = "none"; + + [Desc("Prevent the starting units option from being changed in the lobby.")] + public bool Locked = false; + } public class SpawnMPUnits : IWorldLoaded { diff --git a/OpenRA.Mods.Common/UtilityCommands/ImportLegacyMapCommand.cs b/OpenRA.Mods.Common/UtilityCommands/ImportLegacyMapCommand.cs index 099583d101..b64cfe17c9 100644 --- a/OpenRA.Mods.Common/UtilityCommands/ImportLegacyMapCommand.cs +++ b/OpenRA.Mods.Common/UtilityCommands/ImportLegacyMapCommand.cs @@ -33,9 +33,9 @@ namespace OpenRA.Mods.Common.UtilityCommands public ModData ModData; public Map Map; - public Ruleset Rules; public List Players = new List(); public MapPlayers MapPlayers; + public MiniYaml Rules = new MiniYaml(""); public bool ValidateArguments(string[] args) { @@ -49,7 +49,6 @@ namespace OpenRA.Mods.Common.UtilityCommands // HACK: The engine code assumes that Game.modData is set. Game.ModData = modData; - Rules = modData.RulesetCache.Load(modData.DefaultFileSystem); var filename = args[1]; using (var stream = modData.DefaultFileSystem.Open(filename)) @@ -62,14 +61,12 @@ namespace OpenRA.Mods.Common.UtilityCommands ValidateMapFormat(format); var tileset = GetTileset(mapSection); - Map = new Map(modData, Rules.TileSets[tileset], MapSize, MapSize) + Map = new Map(modData, modData.DefaultRules.TileSets[tileset], MapSize, MapSize) { Title = basic.GetValue("Name", Path.GetFileNameWithoutExtension(filename)), Author = "Westwood Studios" }; - Map.Description = ExtractBriefing(file); - Map.RequiresMod = modData.Manifest.Mod.Id; SetBounds(Map, mapSection); @@ -77,7 +74,8 @@ namespace OpenRA.Mods.Common.UtilityCommands ReadPacks(file, filename); ReadTrees(file); - Map.Videos = LoadVideos(file, "BASIC"); + LoadVideos(file, "BASIC"); + LoadBriefing(file); ReadActors(file); @@ -93,7 +91,9 @@ namespace OpenRA.Mods.Common.UtilityCommands Map.PlayerDefinitions = MapPlayers.ToMiniYaml(); } - Map.FixOpenAreas(Rules); + Map.FixOpenAreas(); + + Map.RuleDefinitions = Rules.Nodes; var dest = Path.GetFileNameWithoutExtension(args[1]) + ".oramap"; var package = new ZipFile(modData.ModFiles, dest, true); @@ -119,17 +119,34 @@ namespace OpenRA.Mods.Common.UtilityCommands public abstract void ValidateMapFormat(int format); - static string ExtractBriefing(IniFile file) + void LoadBriefing(IniFile file) { var briefingSection = file.GetSection("Briefing", true); if (briefingSection == null) - return string.Empty; + return; var briefing = new StringBuilder(); foreach (var s in briefingSection) briefing.AppendLine(s.Value); - return briefing.Replace("\n", " ").ToString(); + if (briefing.Length == 0) + return; + + var worldNode = Rules.Nodes.FirstOrDefault(n => n.Key == "World"); + if (worldNode == null) + { + worldNode = new MiniYamlNode("World", new MiniYaml("", new List())); + Rules.Nodes.Add(worldNode); + } + + var missionData = worldNode.Value.Nodes.FirstOrDefault(n => n.Key == "MissionData"); + if (missionData == null) + { + missionData = new MiniYamlNode("MissionData", new MiniYaml("", new List())); + worldNode.Value.Nodes.Add(missionData); + } + + missionData.Value.Nodes.Add(new MiniYamlNode("Briefing", briefing.Replace("\n", " ").ToString())); } static void SetBounds(Map map, IniSection mapSection) @@ -146,10 +163,9 @@ namespace OpenRA.Mods.Common.UtilityCommands public abstract void ReadPacks(IniFile file, string filename); - static MapVideos LoadVideos(IniFile file, string section) + void LoadVideos(IniFile file, string section) { - var videos = new MapVideos(); - + var videos = new List(); foreach (var s in file.GetSection(section)) { if (s.Value != "x" && s.Value != "") @@ -157,32 +173,49 @@ namespace OpenRA.Mods.Common.UtilityCommands switch (s.Key) { case "Intro": - videos.BackgroundInfo = s.Value.ToLower() + ".vqa"; + videos.Add(new MiniYamlNode("BackgroundVideo", s.Value.ToLower() + ".vqa")); break; case "Brief": - videos.Briefing = s.Value.ToLower() + ".vqa"; + videos.Add(new MiniYamlNode("BriefingVideo", s.Value.ToLower() + ".vqa")); break; case "Action": - videos.GameStart = s.Value.ToLower() + ".vqa"; + videos.Add(new MiniYamlNode("StartVideo", s.Value.ToLower() + ".vqa")); break; case "Win": - videos.GameWon = s.Value.ToLower() + ".vqa"; + videos.Add(new MiniYamlNode("WinVideo", s.Value.ToLower() + ".vqa")); break; case "Lose": - videos.GameLost = s.Value.ToLower() + ".vqa"; + videos.Add(new MiniYamlNode("LossVideo", s.Value.ToLower() + ".vqa")); break; } } } - return videos; + if (videos.Any()) + { + var worldNode = Rules.Nodes.FirstOrDefault(n => n.Key == "World"); + if (worldNode == null) + { + worldNode = new MiniYamlNode("World", new MiniYaml("", new List())); + Rules.Nodes.Add(worldNode); + } + + var missionData = worldNode.Value.Nodes.FirstOrDefault(n => n.Key == "MissionData"); + if (missionData == null) + { + missionData = new MiniYamlNode("MissionData", new MiniYaml("", new List())); + worldNode.Value.Nodes.Add(missionData); + } + + missionData.Value.Nodes.AddRange(videos); + } } public virtual void ReadActors(IniFile file) { - LoadActors(file, "STRUCTURES", Players, MapSize, Rules, Map); - LoadActors(file, "UNITS", Players, MapSize, Rules, Map); - LoadActors(file, "INFANTRY", Players, MapSize, Rules, Map); + LoadActors(file, "STRUCTURES", Players, MapSize, Map); + LoadActors(file, "UNITS", Players, MapSize, Map); + LoadActors(file, "INFANTRY", Players, MapSize, Map); } public abstract void LoadPlayer(IniFile file, string section); @@ -298,7 +331,7 @@ namespace OpenRA.Mods.Common.UtilityCommands mapPlayers.Players[section] = pr; } - public static void LoadActors(IniFile file, string section, List players, int mapSize, Ruleset rules, Map map) + public static void LoadActors(IniFile file, string section, List players, int mapSize, Map map) { foreach (var s in file.GetSection(section, true)) { @@ -334,7 +367,7 @@ namespace OpenRA.Mods.Common.UtilityCommands var actorCount = map.ActorDefinitions.Count; - if (!rules.Actors.ContainsKey(parts[1].ToLowerInvariant())) + if (!map.Rules.Actors.ContainsKey(parts[1].ToLowerInvariant())) Console.WriteLine("Ignoring unknown actor type: `{0}`".F(parts[1].ToLowerInvariant())); else map.ActorDefinitions.Add(new MiniYamlNode("Actor" + actorCount++, actor.Save())); diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeMapCommand.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeMapCommand.cs index 2d351c3e7f..3070183e4c 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeMapCommand.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeMapCommand.cs @@ -10,6 +10,8 @@ #endregion using System; +using System.Collections.Generic; +using System.Text; using OpenRA.FileSystem; namespace OpenRA.Mods.Common.UtilityCommands @@ -23,13 +25,10 @@ namespace OpenRA.Mods.Common.UtilityCommands return args.Length >= 3; } - [Desc("MAP", "CURRENTENGINE", "Upgrade map rules to the latest engine version.")] - public void Run(ModData modData, string[] args) + public static void UpgradeMap(ModData modData, IReadWritePackage package, int engineDate) { - // HACK: The engine code assumes that Game.modData is set. - Game.ModData = modData; + UpgradeRules.UpgradeMapFormat(modData, package); - var engineDate = Exts.ParseIntegerInvariant(args[2]); if (engineDate < UpgradeRules.MinimumSupportedVersion) { Console.WriteLine("Unsupported engine version. Use the release-{0} utility to update to that version, and then try again", @@ -37,9 +36,6 @@ namespace OpenRA.Mods.Common.UtilityCommands return; } - var package = modData.ModFiles.OpenWritablePackage(args[1]); - UpgradeRules.UpgradeMapFormat(modData, package); - var map = new Map(modData, package); UpgradeRules.UpgradeWeaponRules(engineDate, ref map.WeaponDefinitions, null, 0); UpgradeRules.UpgradeActorRules(engineDate, ref map.RuleDefinitions, null, 0); @@ -47,5 +43,16 @@ namespace OpenRA.Mods.Common.UtilityCommands UpgradeRules.UpgradeActors(engineDate, ref map.ActorDefinitions, null, 0); map.Save(package); } + + [Desc("MAP", "CURRENTENGINE", "Upgrade map rules to the latest engine version.")] + public void Run(ModData modData, string[] args) + { + // HACK: The engine code assumes that Game.modData is set. + Game.ModData = modData; + + var package = modData.ModFiles.OpenWritablePackage(args[1]); + var engineDate = Exts.ParseIntegerInvariant(args[2]); + UpgradeMap(modData, package, engineDate); + } } } diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeModCommand.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeModCommand.cs index 9b20c83729..407232f721 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeModCommand.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeModCommand.cs @@ -74,22 +74,45 @@ namespace OpenRA.Mods.Common.UtilityCommands ProcessYaml("Chrome Metrics", modData.Manifest.ChromeMetrics, modData, engineDate, UpgradeRules.UpgradeChromeMetrics); ProcessYaml("Chrome Layout", modData.Manifest.ChromeLayout, modData, engineDate, UpgradeRules.UpgradeChromeLayout); + // The map cache won't be valid if there was a map format upgrade, so walk the map packages manually + // Only upgrade system maps - user maps must be updated manually using --upgrade-map Console.WriteLine("Processing Maps:"); - var mapPreviews = modData.MapCache - .Where(m => m.Status == MapStatus.Available); - - foreach (var p in mapPreviews) + foreach (var kv in modData.Manifest.MapFolders) { - var package = (IReadWritePackage)p.Package; - Console.WriteLine("\t" + package.Name); - UpgradeRules.UpgradeMapFormat(modData, package); + var name = kv.Key; + var classification = string.IsNullOrEmpty(kv.Value) + ? MapClassification.Unknown : Enum.Parse(kv.Value); - var map = new Map(modData, package); - UpgradeRules.UpgradeActorRules(engineDate, ref map.RuleDefinitions, null, 0); - UpgradeRules.UpgradeWeaponRules(engineDate, ref map.WeaponDefinitions, null, 0); - UpgradeRules.UpgradePlayers(engineDate, ref map.PlayerDefinitions, null, 0); - UpgradeRules.UpgradeActors(engineDate, ref map.ActorDefinitions, null, 0); - map.Save(package); + if (classification != MapClassification.System) + continue; + + var optional = name.StartsWith("~"); + if (optional) + name = name.Substring(1); + + try + { + using (var package = (IReadWritePackage)modData.ModFiles.OpenPackage(name)) + { + foreach (var map in package.Contents) + { + try + { + using (var mapPackage = modData.ModFiles.OpenPackage(map, package)) + { + if (mapPackage != null) + UpgradeMapCommand.UpgradeMap(modData, (IReadWritePackage)mapPackage, engineDate); + } + } + catch (Exception e) + { + Console.WriteLine("Failed to upgrade map {0}", map); + Console.WriteLine("Error was: {0}", e.ToString()); + } + } + } + } + catch { } } } } diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index b40c525ee2..97e7099097 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -728,10 +728,6 @@ namespace OpenRA.Mods.Common.UtilityCommands if (mapFormat < 6) throw new InvalidDataException("Map format {0} is not supported.\n File: {1}".F(mapFormat, package.Name)); - // Nothing to do - if (mapFormat >= 8) - return; - // Format 6 -> 7 combined the Selectable and UseAsShellmap flags into the Class enum if (mapFormat < 7) { @@ -790,6 +786,169 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + // Format 8 -> 9 moved map options and videos from the map file itself to traits + if (mapFormat < 9) + { + var rules = yaml.Nodes.FirstOrDefault(n => n.Key == "Rules"); + var worldNode = rules.Value.Nodes.FirstOrDefault(n => n.Key == "World"); + if (worldNode == null) + worldNode = new MiniYamlNode("World", new MiniYaml("", new List())); + + var playerNode = rules.Value.Nodes.FirstOrDefault(n => n.Key == "Player"); + if (playerNode == null) + playerNode = new MiniYamlNode("Player", new MiniYaml("", new List())); + + var visibilityNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Visibility"); + if (visibilityNode != null) + { + var visibility = FieldLoader.GetValue("Visibility", visibilityNode.Value.Value); + if (visibility.HasFlag(MapVisibility.MissionSelector)) + { + var missionData = new MiniYamlNode("MissionData", new MiniYaml("", new List())); + worldNode.Value.Nodes.Add(missionData); + + var description = yaml.Nodes.FirstOrDefault(n => n.Key == "Description"); + if (description != null) + missionData.Value.Nodes.Add(new MiniYamlNode("Briefing", description.Value.Value)); + + var videos = yaml.Nodes.FirstOrDefault(n => n.Key == "Videos"); + if (videos != null && videos.Value.Nodes.Any()) + { + var backgroundVideo = videos.Value.Nodes.FirstOrDefault(n => n.Key == "BackgroundInfo"); + if (backgroundVideo != null) + missionData.Value.Nodes.Add(new MiniYamlNode("BackgroundVideo", backgroundVideo.Value.Value)); + + var briefingVideo = videos.Value.Nodes.FirstOrDefault(n => n.Key == "Briefing"); + if (briefingVideo != null) + missionData.Value.Nodes.Add(new MiniYamlNode("BriefingVideo", briefingVideo.Value.Value)); + + var startVideo = videos.Value.Nodes.FirstOrDefault(n => n.Key == "GameStart"); + if (startVideo != null) + missionData.Value.Nodes.Add(new MiniYamlNode("StartVideo", startVideo.Value.Value)); + + var winVideo = videos.Value.Nodes.FirstOrDefault(n => n.Key == "GameWon"); + if (winVideo != null) + missionData.Value.Nodes.Add(new MiniYamlNode("WinVideo", winVideo.Value.Value)); + + var lossVideo = videos.Value.Nodes.FirstOrDefault(n => n.Key == "GameLost"); + if (lossVideo != null) + missionData.Value.Nodes.Add(new MiniYamlNode("LossVideo", lossVideo.Value.Value)); + } + } + } + + var mapOptions = yaml.Nodes.FirstOrDefault(n => n.Key == "Options"); + if (mapOptions != null) + { + var cheats = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "Cheats"); + if (cheats != null) + { + worldNode.Value.Nodes.Add(new MiniYamlNode("DeveloperMode", new MiniYaml("", new List() + { + new MiniYamlNode("Locked", "True"), + new MiniYamlNode("Enabled", cheats.Value.Value) + }))); + } + + var crates = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "Crates"); + if (crates != null && !worldNode.Value.Nodes.Any(n => n.Key == "-CrateSpawner")) + { + if (!FieldLoader.GetValue("crates", crates.Value.Value)) + worldNode.Value.Nodes.Add(new MiniYamlNode("-CrateSpawner", new MiniYaml(""))); + } + + var creeps = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "Creeps"); + if (creeps != null) + { + worldNode.Value.Nodes.Add(new MiniYamlNode("MapCreeps", new MiniYaml("", new List() + { + new MiniYamlNode("Locked", "True"), + new MiniYamlNode("Enabled", creeps.Value.Value) + }))); + } + + var fog = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "Fog"); + var shroud = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "Shroud"); + if (fog != null || shroud != null) + { + var shroudNode = new MiniYamlNode("Shroud", new MiniYaml("", new List())); + playerNode.Value.Nodes.Add(shroudNode); + + if (fog != null) + { + shroudNode.Value.Nodes.Add(new MiniYamlNode("FogLocked", "True")); + shroudNode.Value.Nodes.Add(new MiniYamlNode("FogEnabled", fog.Value.Value)); + } + + if (shroud != null) + { + var enabled = FieldLoader.GetValue("shroud", shroud.Value.Value); + shroudNode.Value.Nodes.Add(new MiniYamlNode("ExploredMapLocked", "True")); + shroudNode.Value.Nodes.Add(new MiniYamlNode("ExploredMapEnabled", FieldSaver.FormatValue(!enabled))); + } + } + + var allyBuildRadius = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "AllyBuildRadius"); + if (allyBuildRadius != null) + { + worldNode.Value.Nodes.Add(new MiniYamlNode("MapBuildRadius", new MiniYaml("", new List() + { + new MiniYamlNode("AllyBuildRadiusLocked", "True"), + new MiniYamlNode("AllyBuildRadiusEnabled", allyBuildRadius.Value.Value) + }))); + } + + var startingCash = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "StartingCash"); + if (startingCash != null) + { + playerNode.Value.Nodes.Add(new MiniYamlNode("PlayerResources", new MiniYaml("", new List() + { + new MiniYamlNode("DefaultCashLocked", "True"), + new MiniYamlNode("DefaultCash", startingCash.Value.Value) + }))); + } + + var startingUnits = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "ConfigurableStartingUnits"); + if (startingUnits != null && !worldNode.Value.Nodes.Any(n => n.Key == "-SpawnMPUnits")) + { + worldNode.Value.Nodes.Add(new MiniYamlNode("SpawnMPUnits", new MiniYaml("", new List() + { + new MiniYamlNode("Locked", "True"), + }))); + } + + var techLevel = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "TechLevel"); + var difficulties = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "Difficulties"); + var shortGame = mapOptions.Value.Nodes.FirstOrDefault(n => n.Key == "ShortGame"); + if (techLevel != null || difficulties != null || shortGame != null) + { + var optionsNode = new MiniYamlNode("MapOptions", new MiniYaml("", new List())); + worldNode.Value.Nodes.Add(optionsNode); + + if (techLevel != null) + { + optionsNode.Value.Nodes.Add(new MiniYamlNode("TechLevelLocked", "True")); + optionsNode.Value.Nodes.Add(new MiniYamlNode("TechLevel", techLevel.Value.Value)); + } + + if (difficulties != null) + optionsNode.Value.Nodes.Add(new MiniYamlNode("Difficulties", difficulties.Value.Value)); + + if (shortGame != null) + { + optionsNode.Value.Nodes.Add(new MiniYamlNode("ShortGameLocked", "True")); + optionsNode.Value.Nodes.Add(new MiniYamlNode("ShortGameEnabled", shortGame.Value.Value)); + } + } + } + + if (worldNode.Value.Nodes.Any() && !rules.Value.Nodes.Contains(worldNode)) + rules.Value.Nodes.Add(worldNode); + + if (playerNode.Value.Nodes.Any() && !rules.Value.Nodes.Contains(playerNode)) + rules.Value.Nodes.Add(playerNode); + } + yaml.Nodes.First(n => n.Key == "MapFormat").Value = new MiniYaml(Map.SupportedMapFormat.ToString()); package.Update("map.yaml", Encoding.UTF8.GetBytes(yaml.Nodes.WriteToString())); diff --git a/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs index 53b4241590..45fe326b1e 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Editor/NewMapLogic.cs @@ -63,7 +63,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic map.SetBounds(tl, br); map.PlayerDefinitions = new MapPlayers(map.Rules, map.SpawnPoints.Value.Length).ToMiniYaml(); - map.FixOpenAreas(world.Map.Rules); + map.FixOpenAreas(); Action afterSave = uid => { diff --git a/OpenRA.Mods.Common/Widgets/Logic/Editor/SaveMapLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Editor/SaveMapLogic.cs index 5dcd4a7d8b..4f89cebd16 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Editor/SaveMapLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Editor/SaveMapLogic.cs @@ -52,10 +52,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic var author = widget.Get("AUTHOR"); author.Text = map.Author; - // TODO: This should use a multi-line textfield once they exist - var description = widget.Get("DESCRIPTION"); - description.Text = map.Description; - // TODO: This should use a multi-selection dropdown once they exist var visibilityDropdown = widget.Get("VISIBILITY_DROPDOWN"); { @@ -160,7 +156,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic return; map.Title = title.Text; - map.Description = description.Text; map.Author = author.Text; map.Visibility = (MapVisibility)Enum.Parse(typeof(MapVisibility), visibilityDropdown.Text); diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoBriefingLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoBriefingLogic.cs index ef0622cff6..b029c32c16 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoBriefingLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameInfoBriefingLogic.cs @@ -9,6 +9,7 @@ */ #endregion +using OpenRA.Mods.Common.Traits; using OpenRA.Widgets; namespace OpenRA.Mods.Common.Widgets.Logic @@ -24,12 +25,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic var mapDescriptionPanel = widget.Get("MAP_DESCRIPTION_PANEL"); var mapDescription = widget.Get("MAP_DESCRIPTION"); var mapFont = Game.Renderer.Fonts[mapDescription.Font]; - var text = world.Map.Description != null ? world.Map.Description.Replace("\\n", "\n") : ""; - text = WidgetUtils.WrapText(text, mapDescription.Bounds.Width, mapFont); - mapDescription.Text = text; - mapDescription.Bounds.Height = mapFont.Measure(text).Y; - mapDescriptionPanel.ScrollToTop(); - mapDescriptionPanel.Layout.AdjustChildren(); + + var missionData = world.Map.Rules.Actors["world"].TraitInfoOrDefault(); + if (missionData != null) + { + var text = WidgetUtils.WrapText(missionData.Briefing.Replace("\\n", "\n"), mapDescription.Bounds.Width, mapFont); + mapDescription.Text = text; + mapDescription.Bounds.Height = mapFont.Measure(text).Y; + mapDescriptionPanel.ScrollToTop(); + mapDescriptionPanel.Layout.AdjustChildren(); + } } } } diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs index 51be133f18..e51a32d3ff 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs @@ -63,10 +63,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (world.LocalPlayer != null) { var scriptContext = world.WorldActor.TraitOrDefault(); - var video = world.LocalPlayer.WinState == WinState.Won ? world.Map.Videos.GameWon : world.Map.Videos.GameLost; - - if (!string.IsNullOrEmpty(video) && !(scriptContext != null && scriptContext.FatalErrorOccurred)) - Media.PlayFMVFullscreen(world, video, () => { }); + var missionData = world.WorldActor.Info.TraitInfoOrDefault(); + if (missionData != null && !(scriptContext != null && scriptContext.FatalErrorOccurred)) + { + var video = world.LocalPlayer.WinState == WinState.Won ? missionData.WinVideo : missionData.LossVideo; + if (!string.IsNullOrEmpty(video)) + Media.PlayFMVFullscreen(world, video, () => { }); + } } var optionsButton = playerRoot.GetOrNull("OPTIONS_BUTTON"); diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs index 836b8b4ed4..5084aa284d 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs @@ -349,8 +349,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic var allowCheats = optionsBin.GetOrNull("ALLOWCHEATS_CHECKBOX"); if (allowCheats != null) { + var cheatsLocked = new CachedTransform( + map => map.Rules.Actors["player"].TraitInfo().Locked); + allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats; - allowCheats.IsDisabled = () => configurationDisabled() || Map.Options.Cheats.HasValue; + allowCheats.IsDisabled = () => configurationDisabled() || cheatsLocked.Update(Map); allowCheats.OnClick = () => orderManager.IssueOrder(Order.Command( "allowcheats {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllowCheats))); } @@ -358,8 +361,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic var crates = optionsBin.GetOrNull("CRATES_CHECKBOX"); if (crates != null) { + var cratesLocked = new CachedTransform(map => + { + var crateSpawner = map.Rules.Actors["world"].TraitInfoOrDefault(); + return crateSpawner == null || crateSpawner.Locked; + }); + crates.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.Crates; - crates.IsDisabled = () => configurationDisabled() || Map.Options.Crates.HasValue; + crates.IsDisabled = () => configurationDisabled() || cratesLocked.Update(Map); crates.OnClick = () => orderManager.IssueOrder(Order.Command( "crates {0}".F(!orderManager.LobbyInfo.GlobalSettings.Crates))); } @@ -367,8 +376,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic var creeps = optionsBin.GetOrNull("CREEPS_CHECKBOX"); if (creeps != null) { + var creepsLocked = new CachedTransform(map => + { + var mapCreeps = map.Rules.Actors["world"].TraitInfoOrDefault(); + return mapCreeps == null || mapCreeps.Locked; + }); + creeps.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.Creeps; - creeps.IsDisabled = () => configurationDisabled() || Map.Options.Creeps.HasValue; + creeps.IsDisabled = () => configurationDisabled() || creepsLocked.Update(Map); creeps.OnClick = () => orderManager.IssueOrder(Order.Command( "creeps {0}".F(!orderManager.LobbyInfo.GlobalSettings.Creeps))); } @@ -376,8 +391,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic var allybuildradius = optionsBin.GetOrNull("ALLYBUILDRADIUS_CHECKBOX"); if (allybuildradius != null) { + var allyBuildRadiusLocked = new CachedTransform(map => + { + var mapBuildRadius = map.Rules.Actors["world"].TraitInfoOrDefault(); + return mapBuildRadius == null || mapBuildRadius.AllyBuildRadiusLocked; + }); + allybuildradius.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllyBuildRadius; - allybuildradius.IsDisabled = () => configurationDisabled() || Map.Options.AllyBuildRadius.HasValue; + allybuildradius.IsDisabled = () => configurationDisabled() || allyBuildRadiusLocked.Update(Map); allybuildradius.OnClick = () => orderManager.IssueOrder(Order.Command( "allybuildradius {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllyBuildRadius))); } @@ -385,8 +406,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic var shortGame = optionsBin.GetOrNull("SHORTGAME_CHECKBOX"); if (shortGame != null) { + var shortGameLocked = new CachedTransform( + map => map.Rules.Actors["world"].TraitInfo().ShortGameLocked); + shortGame.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.ShortGame; - shortGame.IsDisabled = () => configurationDisabled() || Map.Options.ShortGame.HasValue; + shortGame.IsDisabled = () => configurationDisabled() || shortGameLocked.Update(Map); shortGame.OnClick = () => orderManager.IssueOrder(Order.Command( "shortgame {0}".F(!orderManager.LobbyInfo.GlobalSettings.ShortGame))); } @@ -394,12 +418,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic var difficulty = optionsBin.GetOrNull("DIFFICULTY_DROPDOWNBUTTON"); if (difficulty != null) { - difficulty.IsVisible = () => Map != null && Map.Options.Difficulties.Any(); - difficulty.IsDisabled = configurationDisabled; + var mapOptions = new CachedTransform( + map => map.Rules.Actors["world"].TraitInfo()); + + difficulty.IsVisible = () => Map != null && mapOptions.Update(Map).Difficulties.Any(); + difficulty.IsDisabled = () => configurationDisabled() || mapOptions.Update(Map).DifficultyLocked; difficulty.GetText = () => orderManager.LobbyInfo.GlobalSettings.Difficulty; difficulty.OnMouseDown = _ => { - var options = Map.Options.Difficulties.Select(d => new DropDownOption + var options = mapOptions.Update(Map).Difficulties.Select(d => new DropDownOption { Title = d, IsSelected = () => orderManager.LobbyInfo.GlobalSettings.Difficulty == d, @@ -420,19 +447,27 @@ namespace OpenRA.Mods.Common.Widgets.Logic var startingUnits = optionsBin.GetOrNull("STARTINGUNITS_DROPDOWNBUTTON"); if (startingUnits != null) { - var startUnitsInfo = modRules.Actors["world"].TraitInfos(); - var classes = startUnitsInfo.Select(a => a.Class).Distinct(); + var startUnitsInfos = new CachedTransform>( + map => map.Rules.Actors["world"].TraitInfos()); + + var startUnitsLocked = new CachedTransform(map => + { + var spawnUnitsInfo = map.Rules.Actors["world"].TraitInfoOrDefault(); + return spawnUnitsInfo == null || spawnUnitsInfo.Locked; + }); + Func className = c => { - var selectedClass = startUnitsInfo.Where(s => s.Class == c).Select(u => u.ClassName).FirstOrDefault(); + var selectedClass = startUnitsInfos.Update(Map).Where(s => s.Class == c).Select(u => u.ClassName).FirstOrDefault(); return selectedClass != null ? selectedClass : c; }; - startingUnits.IsDisabled = () => configurationDisabled() || !Map.Options.ConfigurableStartingUnits; + startingUnits.IsDisabled = () => configurationDisabled() || startUnitsLocked.Update(Map); startingUnits.GetText = () => MapPreview.Status != MapStatus.Available || - Map == null || !Map.Options.ConfigurableStartingUnits ? "Not Available" : className(orderManager.LobbyInfo.GlobalSettings.StartingUnitsClass); + Map == null || startUnitsLocked.Update(Map) ? "Not Available" : className(orderManager.LobbyInfo.GlobalSettings.StartingUnitsClass); startingUnits.OnMouseDown = _ => { + var classes = startUnitsInfos.Update(Map).Select(a => a.Class).Distinct(); var options = classes.Select(c => new DropDownOption { Title = className(c), @@ -456,12 +491,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic var startingCash = optionsBin.GetOrNull("STARTINGCASH_DROPDOWNBUTTON"); if (startingCash != null) { - startingCash.IsDisabled = () => configurationDisabled() || Map.Options.StartingCash.HasValue; + var playerResources = new CachedTransform( + map => map.Rules.Actors["player"].TraitInfo()); + + startingCash.IsDisabled = () => configurationDisabled() || playerResources.Update(Map).DefaultCashLocked; startingCash.GetText = () => MapPreview.Status != MapStatus.Available || - Map == null || Map.Options.StartingCash.HasValue ? "Not Available" : "${0}".F(orderManager.LobbyInfo.GlobalSettings.StartingCash); + Map == null || playerResources.Update(Map).DefaultCashLocked ? "Not Available" : "${0}".F(orderManager.LobbyInfo.GlobalSettings.StartingCash); startingCash.OnMouseDown = _ => { - var options = modRules.Actors["player"].TraitInfo().SelectableCash.Select(c => new DropDownOption + var options = playerResources.Update(Map).SelectableCash.Select(c => new DropDownOption { Title = "${0}".F(c), IsSelected = () => orderManager.LobbyInfo.GlobalSettings.StartingCash == c, @@ -482,19 +520,23 @@ namespace OpenRA.Mods.Common.Widgets.Logic var techLevel = optionsBin.GetOrNull("TECHLEVEL_DROPDOWNBUTTON"); if (techLevel != null) { - var techTraits = modRules.Actors["player"].TraitInfos().ToList(); - techLevel.IsVisible = () => techTraits.Count > 0; + var mapOptions = new CachedTransform( + map => map.Rules.Actors["world"].TraitInfo()); + var techLevels = new CachedTransform>( + map => map.Rules.Actors["player"].TraitInfos().ToList()); + + techLevel.IsVisible = () => Map != null && techLevels.Update(Map).Any(); var techLevelDescription = optionsBin.GetOrNull("TECHLEVEL_DESC"); if (techLevelDescription != null) - techLevelDescription.IsVisible = () => techTraits.Count > 0; + techLevelDescription.IsVisible = techLevel.IsVisible; - techLevel.IsDisabled = () => configurationDisabled() || Map.Options.TechLevel != null || techTraits.Count <= 1; + techLevel.IsDisabled = () => configurationDisabled() || mapOptions.Update(Map).TechLevelLocked; techLevel.GetText = () => MapPreview.Status != MapStatus.Available || - Map == null || Map.Options.TechLevel != null ? "Not Available" : "{0}".F(orderManager.LobbyInfo.GlobalSettings.TechLevel); + Map == null || mapOptions.Update(Map).TechLevelLocked ? "Not Available" : "{0}".F(orderManager.LobbyInfo.GlobalSettings.TechLevel); techLevel.OnMouseDown = _ => { - var options = techTraits.Select(c => new DropDownOption + var options = techLevels.Update(Map).Select(c => new DropDownOption { Title = "{0}".F(c.Name), IsSelected = () => orderManager.LobbyInfo.GlobalSettings.TechLevel == c.Name, @@ -553,8 +595,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic var exploredMap = optionsBin.GetOrNull("EXPLORED_MAP_CHECKBOX"); if (exploredMap != null) { + var exploredMapLocked = new CachedTransform( + map => map.Rules.Actors["player"].TraitInfo().ExploredMapLocked); + exploredMap.IsChecked = () => !orderManager.LobbyInfo.GlobalSettings.Shroud; - exploredMap.IsDisabled = () => configurationDisabled() || Map.Options.Shroud.HasValue; + exploredMap.IsDisabled = () => configurationDisabled() || exploredMapLocked.Update(Map); exploredMap.OnClick = () => orderManager.IssueOrder(Order.Command( "shroud {0}".F(!orderManager.LobbyInfo.GlobalSettings.Shroud))); } @@ -562,8 +607,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic var enableFog = optionsBin.GetOrNull("FOG_CHECKBOX"); if (enableFog != null) { + var fogLocked = new CachedTransform( + map => map.Rules.Actors["player"].TraitInfo().FogLocked); + enableFog.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.Fog; - enableFog.IsDisabled = () => configurationDisabled() || Map.Options.Fog.HasValue; + enableFog.IsDisabled = () => configurationDisabled() || fogLocked.Update(Map); enableFog.OnClick = () => orderManager.IssueOrder(Order.Command( "fog {0}".F(!orderManager.LobbyInfo.GlobalSettings.Fog))); } @@ -761,11 +809,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic { // Tell the server that we have the map orderManager.IssueOrder(Order.Command("state {0}".F(Session.ClientState.NotReady))); - - // Restore default starting cash if the last map set it to something invalid - var pri = modRules.Actors["player"].TraitInfo(); - if (!currentMap.Options.StartingCash.HasValue && !pri.SelectableCash.Contains(orderManager.LobbyInfo.GlobalSettings.StartingCash)) - orderManager.IssueOrder(Order.Command("startingcash {0}".F(pri.DefaultCash))); } }); }).Start(); diff --git a/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs index 2baa8bfa2f..484fc132f6 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs @@ -15,6 +15,7 @@ using System.IO; using System.Linq; using System.Threading; using OpenRA.Graphics; +using OpenRA.Mods.Common.Traits; using OpenRA.Network; using OpenRA.Primitives; using OpenRA.Widgets; @@ -177,15 +178,51 @@ namespace OpenRA.Mods.Common.Widgets.Logic selectedMapPreview = preview; // Cache the rules on a background thread to avoid jank - new Thread(() => selectedMap.PreloadRules()).Start(); + var difficultyDisabled = true; + var difficulties = new string[0]; - var briefingVideo = selectedMap.Videos.Briefing; - var briefingVideoVisible = briefingVideo != null; - var briefingVideoDisabled = !(briefingVideoVisible && modData.DefaultFileSystem.Exists(briefingVideo)); + var briefingVideo = ""; + var briefingVideoVisible = false; + var briefingVideoDisabled = true; - var infoVideo = selectedMap.Videos.BackgroundInfo; - var infoVideoVisible = infoVideo != null; - var infoVideoDisabled = !(infoVideoVisible && modData.DefaultFileSystem.Exists(infoVideo)); + var infoVideo = ""; + var infoVideoVisible = false; + var infoVideoDisabled = true; + + var map = selectedMap; + new Thread(() => + { + map.PreloadRules(); + var mapOptions = map.Rules.Actors["world"].TraitInfo(); + + difficulty = mapOptions.Difficulty ?? mapOptions.Difficulties.FirstOrDefault(); + difficulties = mapOptions.Difficulties; + difficultyDisabled = mapOptions.DifficultyLocked || mapOptions.Difficulties.Length <= 1; + + var missionData = map.Rules.Actors["world"].TraitInfoOrDefault(); + if (missionData != null) + { + briefingVideo = missionData.BriefingVideo; + briefingVideoVisible = briefingVideo != null; + briefingVideoDisabled = !(briefingVideoVisible && modData.DefaultFileSystem.Exists(briefingVideo)); + + infoVideo = missionData.BackgroundVideo; + infoVideoVisible = infoVideo != null; + infoVideoDisabled = !(infoVideoVisible && modData.DefaultFileSystem.Exists(infoVideo)); + + var briefing = WidgetUtils.WrapText(missionData.Briefing.Replace("\\n", "\n"), description.Bounds.Width, descriptionFont); + var height = descriptionFont.Measure(briefing).Y; + Game.RunAfterTick(() => + { + if (map == selectedMap) + { + description.Text = briefing; + description.Bounds.Height = height; + descriptionPanel.Layout.AdjustChildren(); + } + }); + } + }).Start(); startBriefingVideoButton.IsVisible = () => briefingVideoVisible && playingVideo != PlayingVideo.Briefing; startBriefingVideoButton.IsDisabled = () => briefingVideoDisabled || playingVideo != PlayingVideo.None; @@ -195,22 +232,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic startInfoVideoButton.IsDisabled = () => infoVideoDisabled || playingVideo != PlayingVideo.None; startInfoVideoButton.OnClick = () => PlayVideo(videoPlayer, infoVideo, PlayingVideo.Info, () => StopVideo(videoPlayer)); - var text = selectedMap.Description != null ? selectedMap.Description.Replace("\\n", "\n") : ""; - text = WidgetUtils.WrapText(text, description.Bounds.Width, descriptionFont); - description.Text = text; - description.Bounds.Height = descriptionFont.Measure(text).Y; descriptionPanel.ScrollToTop(); - descriptionPanel.Layout.AdjustChildren(); if (difficultyButton != null) { - difficultyButton.IsDisabled = () => !selectedMap.Options.Difficulties.Any(); - - difficulty = selectedMap.Options.Difficulties.FirstOrDefault(); + difficultyButton.IsDisabled = () => difficultyDisabled; difficultyButton.GetText = () => difficulty ?? "Normal"; difficultyButton.OnMouseDown = _ => { - var options = selectedMap.Options.Difficulties.Select(d => new DropDownOption + var options = difficulties.Select(d => new DropDownOption { Title = d, IsSelected = () => difficulty == d, @@ -304,18 +334,18 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (selectedMap.InvalidCustomRules) return; - var gameStartVideo = selectedMap.Videos.GameStart; var orders = new[] { Order.Command("gamespeed {0}".F(gameSpeed)), Order.Command("difficulty {0}".F(difficulty)), Order.Command("state {0}".F(Session.ClientState.Ready)) }; - if (gameStartVideo != null && modData.DefaultFileSystem.Exists(gameStartVideo)) + var missionData = selectedMap.Rules.Actors["world"].TraitInfoOrDefault(); + if (missionData != null && missionData.StartVideo != null && modData.DefaultFileSystem.Exists(missionData.StartVideo)) { var fsPlayer = fullscreenVideoPlayer.Get("PLAYER"); fullscreenVideoPlayer.Visible = true; - PlayVideo(fsPlayer, gameStartVideo, PlayingVideo.GameStart, () => + PlayVideo(fsPlayer, missionData.StartVideo, PlayingVideo.GameStart, () => { StopVideo(fsPlayer); Game.CreateAndStartLocalServer(selectedMapPreview.Uid, orders, onStart); diff --git a/OpenRA.Mods.RA/ImportRedAlertLegacyMapCommand.cs b/OpenRA.Mods.RA/ImportRedAlertLegacyMapCommand.cs index 77b09d7ead..ed3b5840a2 100644 --- a/OpenRA.Mods.RA/ImportRedAlertLegacyMapCommand.cs +++ b/OpenRA.Mods.RA/ImportRedAlertLegacyMapCommand.cs @@ -226,7 +226,7 @@ namespace OpenRA.Mods.RA.UtilityCommands public override void ReadActors(IniFile file) { base.ReadActors(file); - LoadActors(file, "SHIPS", Players, MapSize, Rules, Map); + LoadActors(file, "SHIPS", Players, MapSize, Map); } } } diff --git a/OpenRA.Mods.TS/UtilityCommands/ImportTSMapCommand.cs b/OpenRA.Mods.TS/UtilityCommands/ImportTSMapCommand.cs index 0f42b7e616..9407683635 100644 --- a/OpenRA.Mods.TS/UtilityCommands/ImportTSMapCommand.cs +++ b/OpenRA.Mods.TS/UtilityCommands/ImportTSMapCommand.cs @@ -236,7 +236,6 @@ namespace OpenRA.Mods.TS.UtilityCommands map.MapTiles = Exts.Lazy(() => new CellLayer(map.Grid.Type, size)); map.MapHeight = Exts.Lazy(() => new CellLayer(map.Grid.Type, size)); - map.Options = new MapOptions(); map.RequiresMod = modData.Manifest.Mod.Id; return map; diff --git a/mods/all/mod.yaml b/mods/all/mod.yaml index cd68ac6c3e..b45aa40a12 100644 --- a/mods/all/mod.yaml +++ b/mods/all/mod.yaml @@ -31,8 +31,6 @@ ChromeMetrics: Fonts: -LobbyDefaults: - SoundFormats: SpriteFormats: diff --git a/mods/cnc/chrome/editor.yaml b/mods/cnc/chrome/editor.yaml index f36150d269..6da45a9ad9 100644 --- a/mods/cnc/chrome/editor.yaml +++ b/mods/cnc/chrome/editor.yaml @@ -78,7 +78,7 @@ Background@SAVE_MAP_PANEL: X: (WINDOW_RIGHT - WIDTH)/2 Y: (WINDOW_BOTTOM - HEIGHT)/2 Width: 345 - Height: 264 + Height: 229 Children: Label@LABEL_TITLE: Text: Save Map @@ -89,7 +89,7 @@ Background@SAVE_MAP_PANEL: Align: Center Background@SAVE_MAP_BACKGROUND: Width: PARENT_RIGHT - Height: 230 + Height: 195 Background: panel-black Children: Label@TITLE_LABEL: @@ -118,60 +118,47 @@ Background@SAVE_MAP_PANEL: Width: 220 MaxLength: 50 Height: 25 - Label@DESCRIPTION_LABEL: - X: 10 - Y: 84 - Width: 95 - Height: 25 - Align: Right - Text: Description: - TextField@DESCRIPTION: - X: 110 - Y: 85 - Width: 220 - MaxLength: 50 - Height: 25 Label@VISIBILITY_LABEL: X: 10 - Y: 119 + Y: 84 Width: 95 Height: 25 Align: Right Text: Visibility: DropDownButton@VISIBILITY_DROPDOWN: X: 110 - Y: 120 + Y: 85 Width: 220 Height: 25 Font: Regular Label@DIRECTORY_LABEL: X: 10 - Y: 154 + Y: 119 Width: 95 Height: 25 Align: Right Text: Directory: DropDownButton@DIRECTORY_DROPDOWN: X: 110 - Y: 155 + Y: 120 Width: 220 Height: 25 Font: Regular Label@FILENAME_LABEL: X: 10 - Y: 189 + Y: 154 Width: 95 Height: 25 Align: Right Text: Filename: TextField@FILENAME: X: 110 - Y: 190 + Y: 155 Width: 105 Height: 25 DropDownButton@TYPE_DROPDOWN: X: 220 - Y: 190 + Y: 155 Width: 110 Height: 25 Font: Regular diff --git a/mods/cnc/maps/IN-IslandDuel.oramap b/mods/cnc/maps/IN-IslandDuel.oramap index 0fba246522..79317b3540 100644 Binary files a/mods/cnc/maps/IN-IslandDuel.oramap and b/mods/cnc/maps/IN-IslandDuel.oramap differ diff --git a/mods/cnc/maps/Instant_Karma.oramap b/mods/cnc/maps/Instant_Karma.oramap index f5ae9943f7..8e6b82aa54 100644 Binary files a/mods/cnc/maps/Instant_Karma.oramap and b/mods/cnc/maps/Instant_Karma.oramap differ diff --git a/mods/cnc/maps/Nullpeter.oramap b/mods/cnc/maps/Nullpeter.oramap index 3888a84458..48924371ea 100644 Binary files a/mods/cnc/maps/Nullpeter.oramap and b/mods/cnc/maps/Nullpeter.oramap differ diff --git a/mods/cnc/maps/_lostsouls.oramap b/mods/cnc/maps/_lostsouls.oramap index 347a2d071c..a6725789be 100644 Binary files a/mods/cnc/maps/_lostsouls.oramap and b/mods/cnc/maps/_lostsouls.oramap differ diff --git a/mods/cnc/maps/aggressivetendencies.oramap b/mods/cnc/maps/aggressivetendencies.oramap index b284f4272e..51914a00e6 100644 Binary files a/mods/cnc/maps/aggressivetendencies.oramap and b/mods/cnc/maps/aggressivetendencies.oramap differ diff --git a/mods/cnc/maps/avocado.oramap b/mods/cnc/maps/avocado.oramap index 0c127fea0f..45d75188a7 100644 Binary files a/mods/cnc/maps/avocado.oramap and b/mods/cnc/maps/avocado.oramap differ diff --git a/mods/cnc/maps/break_of_day.oramap b/mods/cnc/maps/break_of_day.oramap index 87f3523bc4..da69d8954d 100644 Binary files a/mods/cnc/maps/break_of_day.oramap and b/mods/cnc/maps/break_of_day.oramap differ diff --git a/mods/cnc/maps/chokepoint.oramap b/mods/cnc/maps/chokepoint.oramap index 411929f294..2107ee5146 100644 Binary files a/mods/cnc/maps/chokepoint.oramap and b/mods/cnc/maps/chokepoint.oramap differ diff --git a/mods/cnc/maps/chord_simple.oramap b/mods/cnc/maps/chord_simple.oramap index 4304c988aa..f194aaf883 100644 Binary files a/mods/cnc/maps/chord_simple.oramap and b/mods/cnc/maps/chord_simple.oramap differ diff --git a/mods/cnc/maps/cnc64gdi01/map.yaml b/mods/cnc/maps/cnc64gdi01/map.yaml index 91e2c0857f..696d729e56 100644 --- a/mods/cnc/maps/cnc64gdi01/map.yaml +++ b/mods/cnc/maps/cnc64gdi01/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: C&C64 Special Ops - GDI 1 -Description: Nod is experimenting on civilians with Tiberium. Use the commando to take out the SAM sites surrounding the dropoff area. With the SAMs gone you will then get an airstrike. Take out the Obelisk and an MCV will be delivered to help you to locate and destroy the biochem facility. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - GameStart: obel.vqa - GameWon: orcabomb.vqa - GameLost: cutout.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 10000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Nod: Name: Nod @@ -758,10 +740,32 @@ Rules: PanelName: MISSION_OBJECTIVES MusicPlaylist: StartingMusic: aoi + MissionData: + Briefing: Nod is experimenting on civilians with Tiberium. Use the commando to take out the SAM sites surrounding the dropoff area. With the SAMs gone you will then get an airstrike. Take out the Obelisk and an MCV will be delivered to help you to locate and destroy the biochem facility. + StartVideo: obel.vqa + WinVideo: orcabomb.vqa + LossVideo: cutout.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False Player: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 10000 ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/dead_in_motion_2.oramap b/mods/cnc/maps/dead_in_motion_2.oramap index 2b0c4f773d..3127524f44 100644 Binary files a/mods/cnc/maps/dead_in_motion_2.oramap and b/mods/cnc/maps/dead_in_motion_2.oramap differ diff --git a/mods/cnc/maps/deterring_democracy.oramap b/mods/cnc/maps/deterring_democracy.oramap index edc8f52ba8..2da5077208 100644 Binary files a/mods/cnc/maps/deterring_democracy.oramap and b/mods/cnc/maps/deterring_democracy.oramap differ diff --git a/mods/cnc/maps/deterring_democracy_plus.oramap b/mods/cnc/maps/deterring_democracy_plus.oramap index f5f31adb36..a29cf315d9 100644 Binary files a/mods/cnc/maps/deterring_democracy_plus.oramap and b/mods/cnc/maps/deterring_democracy_plus.oramap differ diff --git a/mods/cnc/maps/eastwest3.oramap b/mods/cnc/maps/eastwest3.oramap index 2e51f524b3..3c6c5f1e3e 100644 Binary files a/mods/cnc/maps/eastwest3.oramap and b/mods/cnc/maps/eastwest3.oramap differ diff --git a/mods/cnc/maps/escalations.oramap b/mods/cnc/maps/escalations.oramap index e0ef8468c0..2547026318 100644 Binary files a/mods/cnc/maps/escalations.oramap and b/mods/cnc/maps/escalations.oramap differ diff --git a/mods/cnc/maps/funpark01/map.yaml b/mods/cnc/maps/funpark01/map.yaml index 21e924e320..7c5fc72163 100644 --- a/mods/cnc/maps/funpark01/map.yaml +++ b/mods/cnc/maps/funpark01/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Strange Behavior -Description: There have been some reports of strange animals in this area. \n\nTake your units to investigate, and report back your findings. - Author: Westwood Studios Tileset: JUNGLE @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: generic.vqa - GameStart: dino.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -361,7 +343,7 @@ Actors: Location: 21,15 Owner: Civilian Actor117: v06 - Owner: Neutral # TREX can't attack it + Owner: Neutral Location: 21,8 Actor100: v07 Location: 12,12 @@ -443,6 +425,14 @@ Rules: MissionObjectives: EarlyGameOver: true EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -453,6 +443,20 @@ Rules: PanelName: MISSION_OBJECTIVES MusicPlaylist: StartingMusic: j1 + MissionData: + Briefing: There have been some reports of strange animals in this area. \n\nTake your units to investigate, and report back your findings. + BriefingVideo: generic.vqa + StartVideo: dino.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/garden2.oramap b/mods/cnc/maps/garden2.oramap index a886a48edf..0a17f8c895 100644 Binary files a/mods/cnc/maps/garden2.oramap and b/mods/cnc/maps/garden2.oramap differ diff --git a/mods/cnc/maps/gdi01/map.yaml b/mods/cnc/maps/gdi01/map.yaml index d64a671cbc..cd73905d5b 100644 --- a/mods/cnc/maps/gdi01/map.yaml +++ b/mods/cnc/maps/gdi01/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Storm the Beachhead -Description: Use the units provided to protect the Mobile Construction Vehicle (MCV).\n\nYou should then deploy the MCV by selecting it with a left-click and then right-clicking on it.\n\nThen you can begin to build up a base. Start with a Power Plant.\n\nFinally, search out and destroy all enemy Nod units in the surrounding area. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: intro2.vqa - Briefing: gdi1.vqa - GameStart: landing.vqa - GameWon: consyard.vqa - GameLost: gameover.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Nod: Name: Nod @@ -442,10 +422,34 @@ Rules: PanelName: MISSION_OBJECTIVES MusicPlaylist: StartingMusic: aoi + MissionData: + Briefing: Use the units provided to protect the Mobile Construction Vehicle (MCV).\n\nYou should then deploy the MCV by selecting it with a left-click and then right-clicking on it.\n\nThen you can begin to build up a base. Start with a Power Plant.\n\nFinally, search out and destroy all enemy Nod units in the surrounding area. + BackgroundVideo: intro2.vqa + BriefingVideo: gdi1.vqa + StartVideo: landing.vqa + WinVideo: consyard.vqa + LossVideo: gameover.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False Player: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/gdi02/map.yaml b/mods/cnc/maps/gdi02/map.yaml index 0764b7d7d0..2798f82527 100644 --- a/mods/cnc/maps/gdi02/map.yaml +++ b/mods/cnc/maps/gdi02/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Knock out the Refinery -Description: Defend your position, deploy the MCV, then build a sizable force to search out and destroy the Nod base in the area.\n\nAll Nod units and structures must be either destroyed or captured to complete objective. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: gdi2.vqa - GameWon: flag.vqa - GameLost: gameover.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@GDI: Name: GDI @@ -669,10 +651,32 @@ Rules: PanelName: MISSION_OBJECTIVES MusicPlaylist: StartingMusic: befeared + MissionData: + Briefing: Defend your position, deploy the MCV, then build a sizable force to search out and destroy the Nod base in the area.\n\nAll Nod units and structures must be either destroyed or captured to complete objective. + BriefingVideo: gdi2.vqa + WinVideo: flag.vqa + LossVideo: gameover.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False Player: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/gdi03/map.yaml b/mods/cnc/maps/gdi03/map.yaml index c85290ca17..d0c1178d0e 100644 --- a/mods/cnc/maps/gdi03/map.yaml +++ b/mods/cnc/maps/gdi03/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Destroy The SAM Sites -Description: Build up forces to destroy Nod base.\n\nOnce all Nod SAM sites are neutralized then air support will be provided to combat obstacles such as turrets.\n\nDestroy all units and structures to complete the mission objective. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: gdi3.vqa - GameStart: samdie.vqa - GameWon: bombaway.vqa - GameLost: gameover.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Nod: Name: Nod @@ -744,10 +725,33 @@ Rules: PanelName: MISSION_OBJECTIVES MusicPlaylist: StartingMusic: crep226m + MissionData: + Briefing: Build up forces to destroy Nod base.\n\nOnce all Nod SAM sites are neutralized then air support will be provided to combat obstacles such as turrets.\n\nDestroy all units and structures to complete the mission objective. + BriefingVideo: gdi3.vqa + StartVideo: samdie.vqa + WinVideo: bombaway.vqa + LossVideo: gameover.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False Player: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/gdi04a/map.yaml b/mods/cnc/maps/gdi04a/map.yaml index 1fc4588ffd..6999238095 100644 --- a/mods/cnc/maps/gdi04a/map.yaml +++ b/mods/cnc/maps/gdi04a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Get the Rods back (a) -Description: Nod has captured classified GDI property.\n\nYou must find and retrieve the stolen equipment.\n\nIt is being transported in a shipping crate.\n\nUse the new APC to strategically transport infantry through Nod forces. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: bkground.vqa - Briefing: gdi4b.vqa - GameStart: nitejump.vqa - GameWon: burdet1.vqa - GameLost: gameover.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Nod: Name: Nod @@ -503,10 +483,34 @@ Rules: PanelName: MISSION_OBJECTIVES MusicPlaylist: StartingMusic: fist226m + MissionData: + Briefing: Nod has captured classified GDI property.\n\nYou must find and retrieve the stolen equipment.\n\nIt is being transported in a shipping crate.\n\nUse the new APC to strategically transport infantry through Nod forces. + BackgroundVideo: bkground.vqa + BriefingVideo: gdi4b.vqa + StartVideo: nitejump.vqa + WinVideo: burdet1.vqa + LossVideo: gameover.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False Player: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/gdi04b/map.yaml b/mods/cnc/maps/gdi04b/map.yaml index bf56533002..61657f4505 100644 --- a/mods/cnc/maps/gdi04b/map.yaml +++ b/mods/cnc/maps/gdi04b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Get the Rods back (b) -Description: Nod has captured classified GDI property.\n\nYou must find and retrieve the stolen equipment.\n\nIt is being transported in a shipping crate.\n\nUse the new APC to strategically transport infantry through Nod forces. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: bkground.vqa - Briefing: gdi4b.vqa - GameStart: nitejump.vqa - GameWon: burdet1.vqa - GameLost: gameover.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Nod: Name: Nod @@ -574,10 +554,34 @@ Rules: PanelName: MISSION_OBJECTIVES MusicPlaylist: StartingMusic: fist226m + MissionData: + Briefing: Nod has captured classified GDI property.\n\nYou must find and retrieve the stolen equipment.\n\nIt is being transported in a shipping crate.\n\nUse the new APC to strategically transport infantry through Nod forces. + BackgroundVideo: bkground.vqa + BriefingVideo: gdi4b.vqa + StartVideo: nitejump.vqa + WinVideo: burdet1.vqa + LossVideo: gameover.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False Player: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/gdi04c/map.yaml b/mods/cnc/maps/gdi04c/map.yaml index 79f3a4a699..fccc9c340e 100644 --- a/mods/cnc/maps/gdi04c/map.yaml +++ b/mods/cnc/maps/gdi04c/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Take Białystok -Description: Nod is moving to capture and hold a civilian town.\n\nYour mission is to reach the town first and hold off invading Nod units until GDI reinforcements can arrive.\n\nAll invading Nod units must be destroyed. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: bkground.vqa - Briefing: gdi4a.vqa - GameStart: nodsweep.vqa - GameWon: burdet1.vqa - GameLost: gameover.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -801,10 +781,34 @@ Rules: PanelName: MISSION_OBJECTIVES MusicPlaylist: StartingMusic: ind + MissionData: + Briefing: Nod is moving to capture and hold a civilian town.\n\nYour mission is to reach the town first and hold off invading Nod units until GDI reinforcements can arrive.\n\nAll invading Nod units must be destroyed. + BackgroundVideo: bkground.vqa + BriefingVideo: gdi4a.vqa + StartVideo: nodsweep.vqa + WinVideo: burdet1.vqa + LossVideo: gameover.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False Player: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/gdi05a/map.yaml b/mods/cnc/maps/gdi05a/map.yaml index b5375324bd..714991411d 100644 --- a/mods/cnc/maps/gdi05a/map.yaml +++ b/mods/cnc/maps/gdi05a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Repair the GDI base (a) -Description: A GDI field base is under attack. They have fended off one attack but will not survive another.\n\nMove to the base, repair the structures and then launch a strike force to destroy the Nod base in the area.\n\nDestroy all Nod units and structures. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,25 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: podium.vqa - Briefing: gdi5.vqa - GameStart: seige.vqa - GameWon: nodlose.vqa - GameLost: gdilose.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 2000 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Nod: Name: Nod @@ -814,11 +793,36 @@ Rules: PanelName: MISSION_OBJECTIVES MusicPlaylist: StartingMusic: rain + MissionData: + Briefing: A GDI field base is under attack. They have fended off one attack but will not survive another.\n\nMove to the base, repair the structures and then launch a strike force to destroy the Nod base in the area.\n\nDestroy all Nod units and structures. + BackgroundVideo: podium.vqa + BriefingVideo: gdi5.vqa + StartVideo: seige.vqa + WinVideo: nodlose.vqa + LossVideo: gdilose.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False Player: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 2000 ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/gdi05b/map.yaml b/mods/cnc/maps/gdi05b/map.yaml index c5c9750045..4b30768a76 100644 --- a/mods/cnc/maps/gdi05b/map.yaml +++ b/mods/cnc/maps/gdi05b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Repair the GDI base (b) -Description: A GDI field base is under attack. They have fended off one attack but will not survive another.\n\nMove to the base, repair the structures and then launch a strike force to destroy the Nod base in the area.\n\nDestroy all Nod units and structures. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: podium.vqa - Briefing: gdi5.vqa - GameStart: seige.vqa - GameWon: nodlose.vqa - GameLost: gdilose.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 4000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Nod: Name: Nod @@ -660,6 +640,14 @@ Rules: EnemyWatcher: MusicPlaylist: StartingMusic: rain + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 4000 World: -CrateSpawner: -SpawnMPUnits: @@ -668,6 +656,22 @@ Rules: PanelName: MISSION_OBJECTIVES LuaScript: Scripts: gdi05b.lua + MissionData: + Briefing: A GDI field base is under attack. They have fended off one attack but will not survive another.\n\nMove to the base, repair the structures and then launch a strike force to destroy the Nod base in the area.\n\nDestroy all Nod units and structures. + BackgroundVideo: podium.vqa + BriefingVideo: gdi5.vqa + StartVideo: seige.vqa + WinVideo: nodlose.vqa + LossVideo: gdilose.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/gdi06/map.yaml b/mods/cnc/maps/gdi06/map.yaml index 81b03ca1ac..ce9656dcb6 100644 --- a/mods/cnc/maps/gdi06/map.yaml +++ b/mods/cnc/maps/gdi06/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Infiltrate Nod Base -Description: Use a GDI Commando to infiltrate the Nod base. **** ** destroy the ******** so that the base is incapacitated. Get in, hit it, and get the **** out. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: gdi6.vqa - GameStart: nitejump.vqa - GameWon: sabotage.vqa - GameLost: gdilose.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: True - Players: PlayerReference@Neutral: Name: Neutral @@ -1085,10 +1065,34 @@ Rules: Green: 0.85 Blue: 1.5 Ambient: 0.35 + MissionData: + Briefing: Use a GDI Commando to infiltrate the Nod base. **** ** destroy the ******** so that the base is incapacitated. Get in, hit it, and get the **** out. + BriefingVideo: gdi6.vqa + StartVideo: nitejump.vqa + WinVideo: sabotage.vqa + LossVideo: gdilose.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: True Player: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/haos_ridges_cnc.oramap b/mods/cnc/maps/haos_ridges_cnc.oramap index 255a663bd6..ad6b6d84c6 100644 Binary files a/mods/cnc/maps/haos_ridges_cnc.oramap and b/mods/cnc/maps/haos_ridges_cnc.oramap differ diff --git a/mods/cnc/maps/hegemony_or_survival.oramap b/mods/cnc/maps/hegemony_or_survival.oramap index 2120269888..eafd807be4 100644 Binary files a/mods/cnc/maps/hegemony_or_survival.oramap and b/mods/cnc/maps/hegemony_or_survival.oramap differ diff --git a/mods/cnc/maps/hegemony_or_survival_8p.oramap b/mods/cnc/maps/hegemony_or_survival_8p.oramap index 847760d774..df4a36c0c1 100644 Binary files a/mods/cnc/maps/hegemony_or_survival_8p.oramap and b/mods/cnc/maps/hegemony_or_survival_8p.oramap differ diff --git a/mods/cnc/maps/into_the_river_below.oramap b/mods/cnc/maps/into_the_river_below.oramap index addc4c48a9..8443ac929f 100644 Binary files a/mods/cnc/maps/into_the_river_below.oramap and b/mods/cnc/maps/into_the_river_below.oramap differ diff --git a/mods/cnc/maps/lessons_from_kosovo.oramap b/mods/cnc/maps/lessons_from_kosovo.oramap index 06261b522d..a75575d17f 100644 Binary files a/mods/cnc/maps/lessons_from_kosovo.oramap and b/mods/cnc/maps/lessons_from_kosovo.oramap differ diff --git a/mods/cnc/maps/llamas.oramap b/mods/cnc/maps/llamas.oramap index 1012fccd53..5492e2b6ef 100644 Binary files a/mods/cnc/maps/llamas.oramap and b/mods/cnc/maps/llamas.oramap differ diff --git a/mods/cnc/maps/llamas2.oramap b/mods/cnc/maps/llamas2.oramap index 58c370fcfe..fe5d22cd39 100644 Binary files a/mods/cnc/maps/llamas2.oramap and b/mods/cnc/maps/llamas2.oramap differ diff --git a/mods/cnc/maps/manufacturing_consent.oramap b/mods/cnc/maps/manufacturing_consent.oramap index 7d2178d304..cb92cb9044 100644 Binary files a/mods/cnc/maps/manufacturing_consent.oramap and b/mods/cnc/maps/manufacturing_consent.oramap differ diff --git a/mods/cnc/maps/minus_two.oramap b/mods/cnc/maps/minus_two.oramap index c5c8ef8b00..4e6bddcede 100644 Binary files a/mods/cnc/maps/minus_two.oramap and b/mods/cnc/maps/minus_two.oramap differ diff --git a/mods/cnc/maps/morbid-aimless-poseidon-2.oramap b/mods/cnc/maps/morbid-aimless-poseidon-2.oramap index 56ba57d3eb..c028ddb5c7 100644 Binary files a/mods/cnc/maps/morbid-aimless-poseidon-2.oramap and b/mods/cnc/maps/morbid-aimless-poseidon-2.oramap differ diff --git a/mods/cnc/maps/mtnukebait.oramap b/mods/cnc/maps/mtnukebait.oramap index 86d27f3eac..2168b5d6ea 100644 Binary files a/mods/cnc/maps/mtnukebait.oramap and b/mods/cnc/maps/mtnukebait.oramap differ diff --git a/mods/cnc/maps/necessary_illusions.oramap b/mods/cnc/maps/necessary_illusions.oramap index 87920c1465..e75d9b7256 100644 Binary files a/mods/cnc/maps/necessary_illusions.oramap and b/mods/cnc/maps/necessary_illusions.oramap differ diff --git a/mods/cnc/maps/nod01/map.yaml b/mods/cnc/maps/nod01/map.yaml index cfc11bfb25..ba092f79f3 100644 --- a/mods/cnc/maps/nod01/map.yaml +++ b/mods/cnc/maps/nod01/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Nikoomba's Demise -Description: In order for the Brotherhood to gain a foothold, we must begin by eliminating certain elements.\n\nNikoomba, the nearby village's leader, is one such element.\n\nHis views and ours do not coincide.\n\nHe and his whole group must be eliminated. - Author: Westwood Studios Tileset: DESERT @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: intro2.vqa - Briefing: nod1.vqa - GameLost: nodlose.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -295,6 +277,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -306,6 +296,20 @@ Rules: MusicPlaylist: StartingMusic: nomercy VictoryMusic: nod_win1 + MissionData: + Briefing: In order for the Brotherhood to gain a foothold, we must begin by eliminating certain elements.\n\nNikoomba, the nearby village's leader, is one such element.\n\nHis views and ours do not coincide.\n\nHe and his whole group must be eliminated. + BackgroundVideo: intro2.vqa + BriefingVideo: nod1.vqa + LossVideo: nodlose.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False C10: Tooltip: Name: Nikoomba diff --git a/mods/cnc/maps/nod02a/map.yaml b/mods/cnc/maps/nod02a/map.yaml index 238835aa0d..57c6f89fe6 100644 --- a/mods/cnc/maps/nod02a/map.yaml +++ b/mods/cnc/maps/nod02a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Invasion of Egypt (a) -Description: GDI has kept a stranglehold on Egypt for many years. Set up a forward attack base in your area. To do this you must select your Mobile Construction Vehicle (MCV) and right click on it. From here you can begin to build a base. This area contains plenty of Tiberium, so establishing the base should be easy. - Author: Westwood Studios Tileset: DESERT @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: nod2.vqa - GameStart: seige.vqa - GameWon: airstrk.vqa - GameLost: deskill.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 4000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@GDI: Name: GDI @@ -235,6 +216,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 4000 World: -CrateSpawner: -SpawnMPUnits: @@ -246,6 +235,21 @@ Rules: MusicPlaylist: StartingMusic: ind2 VictoryMusic: nod_win1 + MissionData: + Briefing: GDI has kept a stranglehold on Egypt for many years. Set up a forward attack base in your area. To do this you must select your Mobile Construction Vehicle (MCV) and right click on it. From here you can begin to build a base. This area contains plenty of Tiberium, so establishing the base should be easy. + BriefingVideo: nod2.vqa + StartVideo: seige.vqa + WinVideo: airstrk.vqa + LossVideo: deskill.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/nod02b/map.yaml b/mods/cnc/maps/nod02b/map.yaml index cdab60e28b..0a9ef82522 100644 --- a/mods/cnc/maps/nod02b/map.yaml +++ b/mods/cnc/maps/nod02b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Invasion of Egypt (b) -Description: GDI has kept a stranglehold on Egypt for many years. Set up a forward attack base in your area. To do this you must select your Mobile Construction Vehicle (MCV) and right click on it. From here you can begin to build a base. This area contains plenty of Tiberium, so establishing the base should be easy. - Author: Westwood Studios Tileset: DESERT @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: nod2.vqa - GameStart: seige.vqa - GameWon: airstrk.vqa - GameLost: deskill.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 4000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@GDI: Name: GDI @@ -277,6 +258,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 4000 World: -CrateSpawner: -SpawnMPUnits: @@ -288,6 +277,21 @@ Rules: MusicPlaylist: StartingMusic: ind2 VictoryMusic: nod_win1 + MissionData: + Briefing: GDI has kept a stranglehold on Egypt for many years. Set up a forward attack base in your area. To do this you must select your Mobile Construction Vehicle (MCV) and right click on it. From here you can begin to build a base. This area contains plenty of Tiberium, so establishing the base should be easy. + BriefingVideo: nod2.vqa + StartVideo: seige.vqa + WinVideo: airstrk.vqa + LossVideo: deskill.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/nod03a/map.yaml b/mods/cnc/maps/nod03a/map.yaml index 18b329e259..61e8a82791 100644 --- a/mods/cnc/maps/nod03a/map.yaml +++ b/mods/cnc/maps/nod03a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Sudanese Prison Break (a) -Description: GDI has established a prison camp, where they are detaining some of the local political leaders.\n\nKane wishes to liberate these victims.\n\nDestroy the GDI forces and capture the prison, do not destroy it. - Author: Westwood Studios Tileset: DESERT @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: nod3.vqa - GameStart: dessweep.vqa - GameWon: desflees.vqa - GameLost: flag.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 4000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -471,6 +452,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 4000 World: -CrateSpawner: -SpawnMPUnits: @@ -482,6 +471,21 @@ Rules: MusicPlaylist: StartingMusic: chrg226m VictoryMusic: nod_win1 + MissionData: + Briefing: GDI has established a prison camp, where they are detaining some of the local political leaders.\n\nKane wishes to liberate these victims.\n\nDestroy the GDI forces and capture the prison, do not destroy it. + BriefingVideo: nod3.vqa + StartVideo: dessweep.vqa + WinVideo: desflees.vqa + LossVideo: flag.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/nod03b/map.yaml b/mods/cnc/maps/nod03b/map.yaml index 47f3be57e7..3d28587062 100644 --- a/mods/cnc/maps/nod03b/map.yaml +++ b/mods/cnc/maps/nod03b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Sudanese Prison Break (b) -Description: GDI has established a prison camp, where they are detaining some of the local political leaders.\n\nKane wishes to liberate these victims.\n\nDestroy the GDI forces and capture the prison, do not destroy it. - Author: Westwood Studios Tileset: DESERT @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: nod3.vqa - GameStart: dessweep.vqa - GameWon: desflees.vqa - GameLost: flag.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 4000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -515,6 +496,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 4000 World: -CrateSpawner: -SpawnMPUnits: @@ -526,6 +515,21 @@ Rules: MusicPlaylist: StartingMusic: chrg226m VictoryMusic: nod_win1 + MissionData: + Briefing: GDI has established a prison camp, where they are detaining some of the local political leaders.\n\nKane wishes to liberate these victims.\n\nDestroy the GDI forces and capture the prison, do not destroy it. + BriefingVideo: nod3.vqa + StartVideo: dessweep.vqa + WinVideo: desflees.vqa + LossVideo: flag.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/nod04a/map.yaml b/mods/cnc/maps/nod04a/map.yaml index 7e407d9333..55ddad2b97 100644 --- a/mods/cnc/maps/nod04a/map.yaml +++ b/mods/cnc/maps/nod04a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Mao Civil War (a) -Description: A small village friendly to our cause has been increasingly harassed by GDI, and the Brotherhood wishes you to assist them in their efforts.\n\nSeek out the enemy village and destroy it. The event will be disguised as a GDI attack. - Author: Westwood Studios Tileset: DESERT @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: nod4b.vqa - GameStart: retro.vqa - GameLost: deskill.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -579,6 +561,14 @@ Rules: MissionObjectives: EarlyGameOver: true EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -590,6 +580,20 @@ Rules: MusicPlaylist: StartingMusic: valkyrie VictoryMusic: nod_win1 + MissionData: + Briefing: A small village friendly to our cause has been increasingly harassed by GDI, and the Brotherhood wishes you to assist them in their efforts.\n\nSeek out the enemy village and destroy it. The event will be disguised as a GDI attack. + BriefingVideo: nod4b.vqa + StartVideo: retro.vqa + LossVideo: deskill.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/nod04b/map.yaml b/mods/cnc/maps/nod04b/map.yaml index 1b3f1f62ba..4701aa3ad6 100644 --- a/mods/cnc/maps/nod04b/map.yaml +++ b/mods/cnc/maps/nod04b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Oum Hadjer (b) -Description: A small village friendly to our cause has been increasingly harassed by GDI, and the Brotherhood wishes you to assist them in their efforts.\n\nSeek out the enemy village and destroy it. The event will be disguised as a GDI attack. - Author: Westwood Studios Tileset: DESERT @@ -18,21 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: nod4b.vqa - GameLost: nodlose.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@GDI: Name: GDI @@ -516,6 +499,14 @@ Rules: MissionObjectives: EarlyGameOver: true EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -527,6 +518,19 @@ Rules: MusicPlaylist: StartingMusic: warfare VictoryMusic: nod_win1 + MissionData: + Briefing: A small village friendly to our cause has been increasingly harassed by GDI, and the Brotherhood wishes you to assist them in their efforts.\n\nSeek out the enemy village and destroy it. The event will be disguised as a GDI attack. + BriefingVideo: nod4b.vqa + LossVideo: nodlose.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/nod05/map.yaml b/mods/cnc/maps/nod05/map.yaml index 83187b6a57..640c08996f 100644 --- a/mods/cnc/maps/nod05/map.yaml +++ b/mods/cnc/maps/nod05/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Warthog Hunt -Description: Our brothers within GDI tell us of A-10 strike jets scheduled to be deployed here soon. Our suppliers have delivered new Surface to Air Missiles to aid you. Use the SAMs to defend your base, then seek out their base and destroy it. - Author: Westwood Studios Tileset: DESERT @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: sethpre.vqa - Briefing: nod5.vqa - GameStart: samsite.vqa - GameWon: insites.vqa - GameLost: flag.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@GDI: Name: GDI @@ -418,6 +398,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -429,6 +417,22 @@ Rules: MusicPlaylist: StartingMusic: airstrik VictoryMusic: nod_win1 + MissionData: + Briefing: Our brothers within GDI tell us of A-10 strike jets scheduled to be deployed here soon. Our suppliers have delivered new Surface to Air Missiles to aid you. Use the SAMs to defend your base, then seek out their base and destroy it. + BackgroundVideo: sethpre.vqa + BriefingVideo: nod5.vqa + StartVideo: samsite.vqa + WinVideo: insites.vqa + LossVideo: flag.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/nod06a/map.yaml b/mods/cnc/maps/nod06a/map.yaml index c960036aef..c3e7e3c577 100644 --- a/mods/cnc/maps/nod06a/map.yaml +++ b/mods/cnc/maps/nod06a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Steal The Detonator (a) -Description: GDI has imported a Nuclear Detonator in an attempt to sway a few local political leaders. Penetrate the base and steal the detonator. A chopper will be sent to meet you at a designated landing zone. Look for the landing flare once you have stolen the device. - Author: Westwood Studios Tileset: DESERT @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: nod6.vqa - GameStart: sundial.vqa - GameLost: banner.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -684,6 +666,14 @@ Rules: MissionObjectives: EarlyGameOver: true EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -695,6 +685,20 @@ Rules: MusicPlaylist: StartingMusic: rout VictoryMusic: nod_win1 + MissionData: + Briefing: GDI has imported a Nuclear Detonator in an attempt to sway a few local political leaders. Penetrate the base and steal the detonator. A chopper will be sent to meet you at a designated landing zone. Look for the landing flare once you have stolen the device. + BriefingVideo: nod6.vqa + StartVideo: sundial.vqa + LossVideo: banner.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/nod06b/map.yaml b/mods/cnc/maps/nod06b/map.yaml index 3872aa3f54..101dcf7ddc 100644 --- a/mods/cnc/maps/nod06b/map.yaml +++ b/mods/cnc/maps/nod06b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Steal The Detonator (b) -Description: GDI has imported a Nuclear Detonator in an attempt to sway a few local political leaders. Penetrate the base and steal the detonator. A chopper will be sent to meet you at a designated landing zone. Look for the landing flare once you have stolen the device. - Author: Westwood Studios Tileset: DESERT @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: nod6.vqa - GameStart: sundial.vqa - GameLost: banner.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@GDI: Name: GDI @@ -628,6 +610,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -639,6 +629,20 @@ Rules: MusicPlaylist: StartingMusic: rout VictoryMusic: nod_win1 + MissionData: + Briefing: GDI has imported a Nuclear Detonator in an attempt to sway a few local political leaders. Penetrate the base and steal the detonator. A chopper will be sent to meet you at a designated landing zone. Look for the landing flare once you have stolen the device. + BriefingVideo: nod6.vqa + StartVideo: sundial.vqa + LossVideo: banner.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/nod06c/map.yaml b/mods/cnc/maps/nod06c/map.yaml index 1584ff9192..dad74b44bf 100644 --- a/mods/cnc/maps/nod06c/map.yaml +++ b/mods/cnc/maps/nod06c/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: Steal The Detonator (c) -Description: GDI has imported a Nuclear Detonator in an attempt to sway a few local political leaders. Penetrate the base and steal the detonator. A chopper will be sent to meet you at a designated landing zone. Look for the landing flare once you have stolen the device. - Author: Westwood Studios Tileset: DESERT @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: nod6.vqa - GameStart: sundial.vqa - GameLost: banner.vqa - -Options: - Crates: False - Creeps: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 4000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@GDI: Name: GDI @@ -512,6 +494,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 4000 World: -CrateSpawner: -SpawnMPUnits: @@ -523,6 +513,20 @@ Rules: MusicPlaylist: StartingMusic: rout VictoryMusic: nod_win1 + MissionData: + Briefing: GDI has imported a Nuclear Detonator in an attempt to sway a few local political leaders. Penetrate the base and steal the detonator. A chopper will be sent to meet you at a designated landing zone. Look for the landing flare once you have stolen the device. + BriefingVideo: nod6.vqa + StartVideo: sundial.vqa + LossVideo: banner.vqa + MapCreeps: + Locked: True + Enabled: False + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/cnc/maps/pirates_and_emperors.oramap b/mods/cnc/maps/pirates_and_emperors.oramap index 1428924ef9..8f0f99a8f7 100644 Binary files a/mods/cnc/maps/pirates_and_emperors.oramap and b/mods/cnc/maps/pirates_and_emperors.oramap differ diff --git a/mods/cnc/maps/pressure_cnc.oramap b/mods/cnc/maps/pressure_cnc.oramap index c2393f420e..ddd121c6cd 100644 Binary files a/mods/cnc/maps/pressure_cnc.oramap and b/mods/cnc/maps/pressure_cnc.oramap differ diff --git a/mods/cnc/maps/profit_over_people.oramap b/mods/cnc/maps/profit_over_people.oramap index d976254054..31f7d3dc56 100644 Binary files a/mods/cnc/maps/profit_over_people.oramap and b/mods/cnc/maps/profit_over_people.oramap differ diff --git a/mods/cnc/maps/rogue_states.oramap b/mods/cnc/maps/rogue_states.oramap index 4235afcf4e..ea95fa49a7 100644 Binary files a/mods/cnc/maps/rogue_states.oramap and b/mods/cnc/maps/rogue_states.oramap differ diff --git a/mods/cnc/maps/rubicon.oramap b/mods/cnc/maps/rubicon.oramap index b41fbd2d2f..9dd572055b 100644 Binary files a/mods/cnc/maps/rubicon.oramap and b/mods/cnc/maps/rubicon.oramap differ diff --git a/mods/cnc/maps/sandstorm.oramap b/mods/cnc/maps/sandstorm.oramap index 0ed80d27c3..4f99d7e8dd 100644 Binary files a/mods/cnc/maps/sandstorm.oramap and b/mods/cnc/maps/sandstorm.oramap differ diff --git a/mods/cnc/maps/sea_and_cake.oramap b/mods/cnc/maps/sea_and_cake.oramap index 726521a4c1..cb5cf1e361 100644 Binary files a/mods/cnc/maps/sea_and_cake.oramap and b/mods/cnc/maps/sea_and_cake.oramap differ diff --git a/mods/cnc/maps/shellmap/map.yaml b/mods/cnc/maps/shellmap/map.yaml index 69d44dafde..f3fcf81444 100644 --- a/mods/cnc/maps/shellmap/map.yaml +++ b/mods/cnc/maps/shellmap/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: shellmap -Description: CNC Shellmap - Author: Chris Forbes Tileset: WINTER @@ -18,10 +16,6 @@ Visibility: Shellmap Type: Shellmap -Videos: - -Options: - Players: PlayerReference@Nod: Name: Nod diff --git a/mods/cnc/maps/the-hot-box/map.yaml b/mods/cnc/maps/the-hot-box/map.yaml index 62408c3270..7bd16cd088 100644 --- a/mods/cnc/maps/the-hot-box/map.yaml +++ b/mods/cnc/maps/the-hot-box/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: cnc Title: The Hot Box -Description: Drop Zone for CnC - Author: Dan9550 Tileset: DESERT @@ -18,18 +16,6 @@ Visibility: Lobby Type: Drop Zone -Videos: - -Options: - Crates: True - Fog: False - Shroud: False - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - TechLevel: Unrestricted - ConfigurableStartingUnits: False - Players: PlayerReference@Neutral: Name: Neutral @@ -218,6 +204,12 @@ Rules: InitialSpawnDelay: 0 -SpawnMPUnits: -MPStartLocations: + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Unrestricted UNITCRATE: Inherits: ^Crate GiveUnitCrateAction@stnk: @@ -241,6 +233,15 @@ Rules: MustBeDestroyed: RequiredForShortGame: true -AttackMove: + Player: + Shroud: + FogLocked: True + FogEnabled: False + ExploredMapLocked: True + ExploredMapEnabled: True + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 Sequences: diff --git a/mods/cnc/maps/the_hourglass.oramap b/mods/cnc/maps/the_hourglass.oramap index 5dc778eaaf..d3126dfbc3 100644 Binary files a/mods/cnc/maps/the_hourglass.oramap and b/mods/cnc/maps/the_hourglass.oramap differ diff --git a/mods/cnc/maps/thesentinel.oramap b/mods/cnc/maps/thesentinel.oramap index e864931e24..fc6daefb45 100644 Binary files a/mods/cnc/maps/thesentinel.oramap and b/mods/cnc/maps/thesentinel.oramap differ diff --git a/mods/cnc/maps/tiberium-oasis-cluster.oramap b/mods/cnc/maps/tiberium-oasis-cluster.oramap index 5b4ed0b2e6..6b8ecbb6ad 100644 Binary files a/mods/cnc/maps/tiberium-oasis-cluster.oramap and b/mods/cnc/maps/tiberium-oasis-cluster.oramap differ diff --git a/mods/cnc/maps/treasure-island-2.oramap b/mods/cnc/maps/treasure-island-2.oramap index c9d0dca4d0..a033ba53c8 100644 Binary files a/mods/cnc/maps/treasure-island-2.oramap and b/mods/cnc/maps/treasure-island-2.oramap differ diff --git a/mods/cnc/maps/two-ponds.oramap b/mods/cnc/maps/two-ponds.oramap index f2ef89f4e8..12ba259071 100644 Binary files a/mods/cnc/maps/two-ponds.oramap and b/mods/cnc/maps/two-ponds.oramap differ diff --git a/mods/cnc/maps/vectorsofbattle.oramap b/mods/cnc/maps/vectorsofbattle.oramap index 3058cd1913..81732c2c08 100644 Binary files a/mods/cnc/maps/vectorsofbattle.oramap and b/mods/cnc/maps/vectorsofbattle.oramap differ diff --git a/mods/cnc/maps/white_acres.oramap b/mods/cnc/maps/white_acres.oramap index defbbea614..f185d06d6e 100644 Binary files a/mods/cnc/maps/white_acres.oramap and b/mods/cnc/maps/white_acres.oramap differ diff --git a/mods/cnc/mod.yaml b/mods/cnc/mod.yaml index 6054801125..6ef4201c25 100644 --- a/mods/cnc/mod.yaml +++ b/mods/cnc/mod.yaml @@ -162,15 +162,6 @@ ServerTraits: MasterServerPinger LobbySettingsNotification -LobbyDefaults: - AllowCheats: false - Crates: true - StartingUnitsClass: light - FragileAlliances: false - Shroud: true - Fog: true - TechLevel: Unrestricted - ChromeMetrics: common|metrics.yaml cnc|metrics.yaml diff --git a/mods/cnc/rules/world.yaml b/mods/cnc/rules/world.yaml index 5ff347d8eb..3322a2dd44 100644 --- a/mods/cnc/rules/world.yaml +++ b/mods/cnc/rules/world.yaml @@ -72,7 +72,10 @@ World: ResourceClaimLayer: PathfinderDebugOverlay: WarheadDebugOverlay: + MapCreeps: SpawnMapActors: + MapBuildRadius: + MapOptions: MPStartLocations: CreateMPPlayers: MPStartUnits@mcvonly: @@ -135,6 +138,7 @@ World: BaseActor: mcv SupportActors: e1,e1,e1,e1,e1,e2,e2,e2,e3,e3,apc,mtnk SpawnMPUnits: + StartingUnitsClass: light CrateSpawner: Minimum: 1 Maximum: 6 diff --git a/mods/d2k/maps/atreides-01a/map.yaml b/mods/d2k/maps/atreides-01a/map.yaml index 592dcac56c..4286f82986 100644 --- a/mods/d2k/maps/atreides-01a/map.yaml +++ b/mods/d2k/maps/atreides-01a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: d2k Title: Atreides 01a -Description: Harvest Spice from the Imperial Basin. Construct a Spice Refinery and defend it against the Harkonnen troops scattered throughout the basin. You have been assigned only limited offensive forces - use them wisely.\n\nYou will have to learn the subtleties of mining as you go, but remember to build Silos to store the Spice. When you run out of storage space you can not gather more Spice. Also, any building without adequate concrete foundation will need immediate repair and be vulnerable to erosive damage from the harsh environment. Your greatest adversary may be the elements.\n\nGood luck.\n - Author: Westwood Studios Tileset: ARRAKIS @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: A_BR01_E.VQA - -Options: - Crates: False - Creeps: True - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 2300 - TechLevel: Low - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -134,6 +116,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 2300 World: -CrateSpawner: -SpawnMPUnits: @@ -145,6 +135,21 @@ Rules: WormManager: Minimum: 1 Maximum: 1 + MissionData: + Briefing: Harvest Spice from the Imperial Basin. Construct a Spice Refinery and defend it against the Harkonnen troops scattered throughout the basin. You have been assigned only limited offensive forces - use them wisely.\n\nYou will have to learn the subtleties of mining as you go, but remember to build Silos to store the Spice. When you run out of storage space you can not gather more Spice. Also, any building without adequate concrete foundation will need immediate repair and be vulnerable to erosive damage from the harsh environment. Your greatest adversary may be the elements.\n\nGood luck.\n + BriefingVideo: A_BR01_E.VQA + MapCreeps: + Locked: True + Enabled: True + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Low + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False construction_yard: Production: Produces: Building diff --git a/mods/d2k/maps/atreides-01b/map.yaml b/mods/d2k/maps/atreides-01b/map.yaml index de5ad5ce68..1d0e06cecb 100644 --- a/mods/d2k/maps/atreides-01b/map.yaml +++ b/mods/d2k/maps/atreides-01b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: d2k Title: Atreides 01b -Description: Harvest Spice from the Imperial Basin. Construct a Spice Refinery and defend it against the Harkonnen troops scattered throughout the basin. You have been assigned only limited offensive forces - use them wisely.\n\nYou will have to learn the subtleties of mining as you go, but remember to build Silos to store the Spice. When you run out of storage space you can not gather more Spice. Also, any building without adequate concrete foundation will need immediate repair and be vulnerable to erosive damage from the harsh environment. Your greatest adversary may be the elements.\n\nGood luck.\n - Author: Westwood Studios Tileset: ARRAKIS @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: A_BR01_E.VQA - -Options: - Crates: False - Creeps: True - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 2300 - TechLevel: Low - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -133,6 +115,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 2300 World: -CrateSpawner: -SpawnMPUnits: @@ -144,6 +134,21 @@ Rules: WormManager: Minimum: 1 Maximum: 1 + MissionData: + Briefing: Harvest Spice from the Imperial Basin. Construct a Spice Refinery and defend it against the Harkonnen troops scattered throughout the basin. You have been assigned only limited offensive forces - use them wisely.\n\nYou will have to learn the subtleties of mining as you go, but remember to build Silos to store the Spice. When you run out of storage space you can not gather more Spice. Also, any building without adequate concrete foundation will need immediate repair and be vulnerable to erosive damage from the harsh environment. Your greatest adversary may be the elements.\n\nGood luck.\n + BriefingVideo: A_BR01_E.VQA + MapCreeps: + Locked: True + Enabled: True + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Low + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False construction_yard: Production: Produces: Building diff --git a/mods/d2k/maps/atreides-02a/map.yaml b/mods/d2k/maps/atreides-02a/map.yaml index 294c0e37c5..4756c83559 100644 --- a/mods/d2k/maps/atreides-02a/map.yaml +++ b/mods/d2k/maps/atreides-02a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: d2k Title: Atreides 02a -Description: Infiltrate the Imperial Basin and build up our forces until they are strong enough to eradicate the local Harkonnen presence.\n\nThe Harkonnen are reinforcing their troops by air, so be on your guard. Use the Outpost's radar to detect attacks from unexpected quarters.\n\nBe careful when mining the Spice. Spice mounds grow out of the sand. While a vital source of Spice, Spice mounds can damage or destroy any unit that blunders into them.\n\nGood luck.\n - Author: Westwood Studios Tileset: ARRAKIS @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: A_BR02_E.VQA - -Options: - Crates: False - Creeps: True - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - TechLevel: Low - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -191,6 +173,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -202,6 +192,21 @@ Rules: WormManager: Minimum: 1 Maximum: 1 + MissionData: + Briefing: Infiltrate the Imperial Basin and build up our forces until they are strong enough to eradicate the local Harkonnen presence.\n\nThe Harkonnen are reinforcing their troops by air, so be on your guard. Use the Outpost's radar to detect attacks from unexpected quarters.\n\nBe careful when mining the Spice. Spice mounds grow out of the sand. While a vital source of Spice, Spice mounds can damage or destroy any unit that blunders into them.\n\nGood luck.\n + BriefingVideo: A_BR02_E.VQA + MapCreeps: + Locked: True + Enabled: True + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Low + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False carryall.reinforce: Cargo: MaxWeight: 10 diff --git a/mods/d2k/maps/atreides-02b/map.yaml b/mods/d2k/maps/atreides-02b/map.yaml index fe9eb172f4..dc56fdff3c 100644 --- a/mods/d2k/maps/atreides-02b/map.yaml +++ b/mods/d2k/maps/atreides-02b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: d2k Title: Atreides 02b -Description: Infiltrate the Imperial Basin and build up our forces until they are strong enough to eradicate the local Harkonnen presence.\n\nThe Harkonnen are reinforcing their troops by air, so be on your guard. Use the Outpost's radar to detect attacks from unexpected quarters.\n\nBe careful when mining the Spice. Spice mounds grow out of the sand. While a vital source of Spice, Spice mounds can damage or destroy any unit that blunders into them.\n\nGood luck.\n - Author: Westwood Studios Tileset: ARRAKIS @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: A_BR02_E.VQA - -Options: - Crates: False - Creeps: True - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - TechLevel: Low - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -161,6 +143,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -172,6 +162,21 @@ Rules: WormManager: Minimum: 1 Maximum: 1 + MissionData: + Briefing: Infiltrate the Imperial Basin and build up our forces until they are strong enough to eradicate the local Harkonnen presence.\n\nThe Harkonnen are reinforcing their troops by air, so be on your guard. Use the Outpost's radar to detect attacks from unexpected quarters.\n\nBe careful when mining the Spice. Spice mounds grow out of the sand. While a vital source of Spice, Spice mounds can damage or destroy any unit that blunders into them.\n\nGood luck.\n + BriefingVideo: A_BR02_E.VQA + MapCreeps: + Locked: True + Enabled: True + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Low + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False carryall.reinforce: Cargo: MaxWeight: 10 diff --git a/mods/d2k/maps/atreides-03a/map.yaml b/mods/d2k/maps/atreides-03a/map.yaml index 5ccda9f77c..bf48ef64d5 100644 --- a/mods/d2k/maps/atreides-03a/map.yaml +++ b/mods/d2k/maps/atreides-03a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: d2k Title: Atreides 03a -Description: Bring the Atreides forces up to combat strength - quickly. Guard against surprise attacks and ensure Spice production.\n\nThe Ordos forces are light but numerous. To combat the Ordos, you have been granted license to produce Quads, which have a greater anti-vehicle capability than Trikes. Upgrade your Light Factories to allow production of these units.\n\nMeet any agression with overwhelming force.\n\nGood luck.\n - Author: Westwood Studios Tileset: ARRAKIS @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: A_BR03_E.VQA - -Options: - Crates: False - Creeps: True - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 3000 - TechLevel: Low - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -158,6 +140,14 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 3000 World: -CrateSpawner: -SpawnMPUnits: @@ -169,6 +159,21 @@ Rules: WormManager: Minimum: 1 Maximum: 1 + MissionData: + Briefing: Bring the Atreides forces up to combat strength - quickly. Guard against surprise attacks and ensure Spice production.\n\nThe Ordos forces are light but numerous. To combat the Ordos, you have been granted license to produce Quads, which have a greater anti-vehicle capability than Trikes. Upgrade your Light Factories to allow production of these units.\n\nMeet any agression with overwhelming force.\n\nGood luck.\n + BriefingVideo: A_BR03_E.VQA + MapCreeps: + Locked: True + Enabled: True + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Low + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False carryall.reinforce: Cargo: MaxWeight: 10 diff --git a/mods/d2k/maps/battle-for-dune.oramap b/mods/d2k/maps/battle-for-dune.oramap index 31fcc56a0b..e2064012df 100644 Binary files a/mods/d2k/maps/battle-for-dune.oramap and b/mods/d2k/maps/battle-for-dune.oramap differ diff --git a/mods/d2k/maps/death-depths.oramap b/mods/d2k/maps/death-depths.oramap index e5d0480333..1c0cf2bafc 100644 Binary files a/mods/d2k/maps/death-depths.oramap and b/mods/d2k/maps/death-depths.oramap differ diff --git a/mods/d2k/maps/desert-twister.oramap b/mods/d2k/maps/desert-twister.oramap index 2a33152b40..c74afdf54a 100644 Binary files a/mods/d2k/maps/desert-twister.oramap and b/mods/d2k/maps/desert-twister.oramap differ diff --git a/mods/d2k/maps/eyesofthedesert.oramap b/mods/d2k/maps/eyesofthedesert.oramap index 9a665aacfb..4359275f6e 100644 Binary files a/mods/d2k/maps/eyesofthedesert.oramap and b/mods/d2k/maps/eyesofthedesert.oramap differ diff --git a/mods/d2k/maps/imperial-basin.oramap b/mods/d2k/maps/imperial-basin.oramap index c424b52230..9e58065d71 100644 Binary files a/mods/d2k/maps/imperial-basin.oramap and b/mods/d2k/maps/imperial-basin.oramap differ diff --git a/mods/d2k/maps/kanly.oramap b/mods/d2k/maps/kanly.oramap index 2e5a299c10..65f18e74d9 100644 Binary files a/mods/d2k/maps/kanly.oramap and b/mods/d2k/maps/kanly.oramap differ diff --git a/mods/d2k/maps/mount-idaho/map.yaml b/mods/d2k/maps/mount-idaho/map.yaml index a1ef33d549..c579883d02 100644 --- a/mods/d2k/maps/mount-idaho/map.yaml +++ b/mods/d2k/maps/mount-idaho/map.yaml @@ -1,4 +1,4 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: d2k @@ -16,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/d2k/maps/oasis-conquest/map.yaml b/mods/d2k/maps/oasis-conquest/map.yaml index 8814ec9708..88ccc67f57 100644 --- a/mods/d2k/maps/oasis-conquest/map.yaml +++ b/mods/d2k/maps/oasis-conquest/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: d2k Title: Oasis Conquest -Description: 2v2v2 or FFA - Author: Janitor Tileset: ARRAKIS @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/d2k/maps/pasty-mesa/map.yaml b/mods/d2k/maps/pasty-mesa/map.yaml index 5b2ecd0107..49da99556b 100644 --- a/mods/d2k/maps/pasty-mesa/map.yaml +++ b/mods/d2k/maps/pasty-mesa/map.yaml @@ -1,4 +1,4 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: d2k @@ -16,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/d2k/maps/shellmap/map.yaml b/mods/d2k/maps/shellmap/map.yaml index e017e0c33e..858efdc4bb 100644 --- a/mods/d2k/maps/shellmap/map.yaml +++ b/mods/d2k/maps/shellmap/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: d2k Title: D2k Shellmap -Description: Static Shellmap - Author: Westwood Studios Tileset: ARRAKIS @@ -18,10 +16,6 @@ Visibility: Shellmap Type: Shellmap -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/d2k/maps/the-duell.oramap b/mods/d2k/maps/the-duell.oramap index f1357fc950..a02a456fbb 100644 Binary files a/mods/d2k/maps/the-duell.oramap and b/mods/d2k/maps/the-duell.oramap differ diff --git a/mods/d2k/maps/tucks-sietch.oramap b/mods/d2k/maps/tucks-sietch.oramap index bd409a0b26..e0df676bf3 100644 Binary files a/mods/d2k/maps/tucks-sietch.oramap and b/mods/d2k/maps/tucks-sietch.oramap differ diff --git a/mods/d2k/maps/venac-ditch.oramap b/mods/d2k/maps/venac-ditch.oramap index 42bb323c5f..8d55fe7336 100644 Binary files a/mods/d2k/maps/venac-ditch.oramap and b/mods/d2k/maps/venac-ditch.oramap differ diff --git a/mods/d2k/maps/vladimirs-folly.oramap b/mods/d2k/maps/vladimirs-folly.oramap index 5f619bd151..b57bd3bba0 100644 Binary files a/mods/d2k/maps/vladimirs-folly.oramap and b/mods/d2k/maps/vladimirs-folly.oramap differ diff --git a/mods/d2k/mod.yaml b/mods/d2k/mod.yaml index 803adf11c9..293205472d 100644 --- a/mods/d2k/mod.yaml +++ b/mods/d2k/mod.yaml @@ -155,15 +155,6 @@ ServerTraits: MasterServerPinger LobbySettingsNotification -LobbyDefaults: - AllowCheats: false - Crates: true - StartingUnitsClass: none - FragileAlliances: false - Shroud: true - Fog: true - TechLevel: Unrestricted - ChromeMetrics: common|metrics.yaml d2k|metrics.yaml diff --git a/mods/d2k/rules/world.yaml b/mods/d2k/rules/world.yaml index 02bcc2ff29..4da9d90426 100644 --- a/mods/d2k/rules/world.yaml +++ b/mods/d2k/rules/world.yaml @@ -87,7 +87,10 @@ World: Type: SandCrater Sequence: sandcraters SmokePercentage: 0 + MapCreeps: SpawnMapActors: + MapBuildRadius: + MapOptions: CreateMPPlayers: MPStartLocations: MPStartUnits@mcv: diff --git a/mods/modchooser/mod.yaml b/mods/modchooser/mod.yaml index f34ff92ef8..96ce3e0d00 100644 --- a/mods/modchooser/mod.yaml +++ b/mods/modchooser/mod.yaml @@ -53,8 +53,6 @@ Fonts: Font: common|FreeSansBold.ttf Size:10 -LobbyDefaults: - SoundFormats: SpriteFormats: ShpTD diff --git a/mods/ra/chrome/editor.yaml b/mods/ra/chrome/editor.yaml index 864561c3b8..9cb9d32a56 100644 --- a/mods/ra/chrome/editor.yaml +++ b/mods/ra/chrome/editor.yaml @@ -75,7 +75,7 @@ Background@SAVE_MAP_PANEL: X: (WINDOW_RIGHT - WIDTH)/2 Y: (WINDOW_BOTTOM - HEIGHT)/2 Width: 350 - Height: 335 + Height: 300 Children: Label@LABEL_TITLE: X: (PARENT_RIGHT - WIDTH)/2 @@ -111,58 +111,45 @@ Background@SAVE_MAP_PANEL: Width: 220 MaxLength: 50 Height: 25 - Label@DESCRIPTION_LABEL: - X: 10 - Y: 129 - Width: 95 - Height: 25 - Align: Right - Text: Description: - TextField@DESCRIPTION: - X: 110 - Y: 130 - Width: 220 - MaxLength: 50 - Height: 25 Label@VISIBILITY_LABEL: X: 10 - Y: 164 + Y: 129 Width: 95 Height: 25 Align: Right Text: Visibility: DropDownButton@VISIBILITY_DROPDOWN: X: 110 - Y: 165 + Y: 130 Width: 220 Height: 25 Label@DIRECTORY_LABEL: X: 10 - Y: 199 + Y: 164 Width: 95 Height: 25 Align: Right Text: Directory: DropDownButton@DIRECTORY_DROPDOWN: X: 110 - Y: 200 + Y: 165 Width: 220 Height: 25 Label@FILENAME_LABEL: X: 10 - Y: 234 + Y: 199 Width: 95 Height: 25 Align: Right Text: Filename: TextField@FILENAME: X: 110 - Y: 235 + Y: 200 Width: 105 Height: 25 DropDownButton@TYPE_DROPDOWN: X: 220 - Y: 235 + Y: 200 Width: 110 Height: 25 Button@SAVE_BUTTON: diff --git a/mods/ra/maps/Sahara.oramap b/mods/ra/maps/Sahara.oramap index 10f74b845e..86b8530e25 100644 Binary files a/mods/ra/maps/Sahara.oramap and b/mods/ra/maps/Sahara.oramap differ diff --git a/mods/ra/maps/a-path-beyond.oramap b/mods/ra/maps/a-path-beyond.oramap index 6f2e9baf11..feaee12482 100644 Binary files a/mods/ra/maps/a-path-beyond.oramap and b/mods/ra/maps/a-path-beyond.oramap differ diff --git a/mods/ra/maps/alaska-anarchy-redux.oramap b/mods/ra/maps/alaska-anarchy-redux.oramap index 710fe1429f..e1ea7c5fc8 100644 Binary files a/mods/ra/maps/alaska-anarchy-redux.oramap and b/mods/ra/maps/alaska-anarchy-redux.oramap differ diff --git a/mods/ra/maps/all-connected.oramap b/mods/ra/maps/all-connected.oramap index 105217c9cb..850316b7b7 100644 Binary files a/mods/ra/maps/all-connected.oramap and b/mods/ra/maps/all-connected.oramap differ diff --git a/mods/ra/maps/allies-01/map.yaml b/mods/ra/maps/allies-01/map.yaml index a6ebdcd0d7..b88288f2a3 100644 --- a/mods/ra/maps/allies-01/map.yaml +++ b/mods/ra/maps/allies-01/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 01: In the thick of it -Description: Rescue Einstein from the Headquarters inside this Soviet complex.\n\nOnce found, evacuate him via the helicopter at the signal flare.\n\nEinstein and Tanya must be kept alive at all costs.\n\nBeware the Soviet's Tesla Coils.\n\nDirect Tanya to destroy the westmost power plants to take them off-line. - Author: Westwood Studios Tileset: SNOW @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: prolog.vqa - Briefing: ally1.vqa - GameStart: landing.vqa - GameWon: snowbomb.vqa - GameLost: bmap.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - Players: PlayerReference@USSR: Name: USSR @@ -470,6 +452,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -478,6 +468,16 @@ Rules: Scripts: allies01.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: Rescue Einstein from the Headquarters inside this Soviet complex.\n\nOnce found, evacuate him via the helicopter at the signal flare.\n\nEinstein and Tanya must be kept alive at all costs.\n\nBeware the Soviet's Tesla Coils.\n\nDirect Tanya to destroy the westmost power plants to take them off-line. + BackgroundVideo: prolog.vqa + BriefingVideo: ally1.vqa + StartVideo: landing.vqa + WinVideo: snowbomb.vqa + LossVideo: bmap.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False TRAN.Extraction: Inherits: TRAN WithFacingSpriteBody: diff --git a/mods/ra/maps/allies-02/map.yaml b/mods/ra/maps/allies-02/map.yaml index a1b3ec1f0d..90d3eff867 100644 --- a/mods/ra/maps/allies-02/map.yaml +++ b/mods/ra/maps/allies-02/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 02: Five to one -Description: A critical supply convoy is due through this area in 10 minutes, but Soviet forces have blocked the road in several places.\n\nUnless you can clear them out, those supplies will never make it to the front.\n\nThe convoy will come from the northwest, and time is short so work quickly. - Author: Westwood Studios Tileset: SNOW @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: ally2.vqa - GameStart: mcv.vqa - GameWon: montpass.vqa - GameLost: frozen.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5700 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard, Real tough guy - ShortGame: False - Players: PlayerReference@USSR: Name: USSR @@ -698,6 +679,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5700 World: -CrateSpawner: -SpawnMPUnits: @@ -706,6 +695,19 @@ Rules: Scripts: allies02.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: A critical supply convoy is due through this area in 10 minutes, but Soviet forces have blocked the road in several places.\n\nUnless you can clear them out, those supplies will never make it to the front.\n\nThe convoy will come from the northwest, and time is short so work quickly. + BriefingVideo: ally2.vqa + StartVideo: mcv.vqa + WinVideo: montpass.vqa + LossVideo: frozen.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal, Hard, Real tough guy + ShortGameLocked: True + ShortGameEnabled: False ^Vehicle: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/allies-03a/map.yaml b/mods/ra/maps/allies-03a/map.yaml index 837001b77a..3e1f711078 100644 --- a/mods/ra/maps/allies-03a/map.yaml +++ b/mods/ra/maps/allies-03a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 03a: Dead End -Description: LANDCOM 16 HQS.\nTOP SECRET.\nTO: FIELD COMMANDER A9\n\nINTELLIGENCE RECON SHOWS HEAVY\nSOVIET MOVEMENT IN YOUR AREA.\nNEARBY BRIDGES ARE KEY TO SOVIET\nADVANCEMENT. DESTROY ALL BRIDGES\nASAP. TANYA WILL ASSIST. KEEP HER\nALIVE AT ALL COSTS.\n\nCONFIRMATION CODE 1612.\n\nTRANSMISSION ENDS.\n - Author: Westwood Studios Tileset: SNOW @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - GameStart: brdgtilt.vqa - GameWon: toofar.vqa - GameLost: sovtstar.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -1331,6 +1313,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -1339,6 +1329,18 @@ Rules: Scripts: allies03a.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: LANDCOM 16 HQS.\nTOP SECRET.\nTO: FIELD COMMANDER A9\n\nINTELLIGENCE RECON SHOWS HEAVY\nSOVIET MOVEMENT IN YOUR AREA.\nNEARBY BRIDGES ARE KEY TO SOVIET\nADVANCEMENT. DESTROY ALL BRIDGES\nASAP. TANYA WILL ASSIST. KEEP HER\nALIVE AT ALL COSTS.\n\nCONFIRMATION CODE 1612.\n\nTRANSMISSION ENDS.\n + StartVideo: brdgtilt.vqa + WinVideo: toofar.vqa + LossVideo: sovtstar.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal + ShortGameLocked: True + ShortGameEnabled: False ^Infantry: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/allies-03b/map.yaml b/mods/ra/maps/allies-03b/map.yaml index c8fc121956..bebf9c3b25 100644 --- a/mods/ra/maps/allies-03b/map.yaml +++ b/mods/ra/maps/allies-03b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 03b: Dead End -Description: LANDCOM 16 HQS.\nTOP SECRET.\nTO: FIELD COMMANDER A9\n\nINTELLIGENCE RECON SHOWS HEAVY\nSOVIET MOVEMENT IN YOUR AREA.\nNEARBY BRIDGES ARE KEY TO SOVIET\nADVANCEMENT. DESTROY ALL BRIDGES\nASAP. TANYA WILL ASSIST. KEEP HER\nALIVE AT ALL COSTS.\n\nCONFIRMATION CODE 1612.\n\nTRANSMISSION ENDS.\n - Author: Westwood Studios Tileset: SNOW @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - GameStart: brdgtilt.vqa - GameWon: toofar.vqa - GameLost: sovtstar.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -1226,6 +1208,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -1234,6 +1224,18 @@ Rules: Scripts: allies03b.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: LANDCOM 16 HQS.\nTOP SECRET.\nTO: FIELD COMMANDER A9\n\nINTELLIGENCE RECON SHOWS HEAVY\nSOVIET MOVEMENT IN YOUR AREA.\nNEARBY BRIDGES ARE KEY TO SOVIET\nADVANCEMENT. DESTROY ALL BRIDGES\nASAP. TANYA WILL ASSIST. KEEP HER\nALIVE AT ALL COSTS.\n\nCONFIRMATION CODE 1612.\n\nTRANSMISSION ENDS.\n + StartVideo: brdgtilt.vqa + WinVideo: toofar.vqa + LossVideo: sovtstar.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal + ShortGameLocked: True + ShortGameEnabled: False ^Infantry: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/allies-05a/map.yaml b/mods/ra/maps/allies-05a/map.yaml index a1daad0886..10143d10c5 100644 --- a/mods/ra/maps/allies-05a/map.yaml +++ b/mods/ra/maps/allies-05a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 05a: Tanya's Tale -Description: Rescue Tanya.\n\nOnce disguised, your spy can move past any enemy unit, except dogs, without being detected. Direct him into the weapons factory located at a nearby Soviet Base where he will hijack a truck and free Tanya.\n\nWith Tanya's help, take out the air defenses on the island and a Chinook will arrive to rescue her.\n\nThen destroy all remaining Soviet buildings and units. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: ally5.vqa - GameStart: tanya1.vqa - GameWon: tanya2.vqa - GameLost: grvestne.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - TechLevel: Medium - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard, Real tough guy - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -1587,6 +1567,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -1595,6 +1583,21 @@ Rules: Scripts: allies05a.lua, allies05a-AI.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: Rescue Tanya.\n\nOnce disguised, your spy can move past any enemy unit, except dogs, without being detected. Direct him into the weapons factory located at a nearby Soviet Base where he will hijack a truck and free Tanya.\n\nWith Tanya's help, take out the air defenses on the island and a Chinook will arrive to rescue her.\n\nThen destroy all remaining Soviet buildings and units. + BriefingVideo: ally5.vqa + StartVideo: tanya1.vqa + WinVideo: tanya2.vqa + LossVideo: grvestne.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Medium + Difficulties: Easy, Normal, Hard, Real tough guy + ShortGameLocked: True + ShortGameEnabled: False ^Infantry: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/arctic-triangle-affair.oramap b/mods/ra/maps/arctic-triangle-affair.oramap index 44edcf81e6..c2ee3ceb25 100644 Binary files a/mods/ra/maps/arctic-triangle-affair.oramap and b/mods/ra/maps/arctic-triangle-affair.oramap differ diff --git a/mods/ra/maps/asymmetric-battle.oramap b/mods/ra/maps/asymmetric-battle.oramap index 2051c1fa69..300e876980 100644 Binary files a/mods/ra/maps/asymmetric-battle.oramap and b/mods/ra/maps/asymmetric-battle.oramap differ diff --git a/mods/ra/maps/bad-neighbors.oramap b/mods/ra/maps/bad-neighbors.oramap index f530d21d84..a993924bd3 100644 Binary files a/mods/ra/maps/bad-neighbors.oramap and b/mods/ra/maps/bad-neighbors.oramap differ diff --git a/mods/ra/maps/barracuda.oramap b/mods/ra/maps/barracuda.oramap index 69e73f3793..029f0e0482 100644 Binary files a/mods/ra/maps/barracuda.oramap and b/mods/ra/maps/barracuda.oramap differ diff --git a/mods/ra/maps/behind-the-veil.oramap b/mods/ra/maps/behind-the-veil.oramap index 823d5a53ab..93da8951da 100644 Binary files a/mods/ra/maps/behind-the-veil.oramap and b/mods/ra/maps/behind-the-veil.oramap differ diff --git a/mods/ra/maps/blitzkrieg.oramap b/mods/ra/maps/blitzkrieg.oramap index be2678a435..d9c480fba4 100644 Binary files a/mods/ra/maps/blitzkrieg.oramap and b/mods/ra/maps/blitzkrieg.oramap differ diff --git a/mods/ra/maps/bloody-delta.oramap b/mods/ra/maps/bloody-delta.oramap index 17223f0b19..307ec942cc 100644 Binary files a/mods/ra/maps/bloody-delta.oramap and b/mods/ra/maps/bloody-delta.oramap differ diff --git a/mods/ra/maps/bombardment-islands.oramap b/mods/ra/maps/bombardment-islands.oramap index fb86693a41..4b5a452eec 100644 Binary files a/mods/ra/maps/bombardment-islands.oramap and b/mods/ra/maps/bombardment-islands.oramap differ diff --git a/mods/ra/maps/bomber-john/map.yaml b/mods/ra/maps/bomber-john/map.yaml index e351cba4bc..389921b4f9 100644 --- a/mods/ra/maps/bomber-john/map.yaml +++ b/mods/ra/maps/bomber-john/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Bomber John -Description: Lay mines, wait for them to explode, kill your enemies. - Author: Holloweye Tileset: TEMPERAT @@ -18,18 +16,6 @@ Visibility: Lobby Type: Minigame -Videos: - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 60 - TechLevel: Unrestricted - ConfigurableStartingUnits: False - Players: PlayerReference@Neutral: Name: Neutral @@ -772,6 +758,12 @@ Rules: World: -CrateSpawner: -SpawnMPUnits: + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Unrestricted APWR: Buildable: Prerequisites: ~disabled @@ -808,6 +800,14 @@ Rules: Player: ClassicProductionQueue@Building: BuildSpeed: 0.4 + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 60 MNLYR: Inherits: ^Tank Buildable: diff --git a/mods/ra/maps/breaking-point.oramap b/mods/ra/maps/breaking-point.oramap index 58aa19b91a..f3f1eac20e 100644 Binary files a/mods/ra/maps/breaking-point.oramap and b/mods/ra/maps/breaking-point.oramap differ diff --git a/mods/ra/maps/burlesca/map.yaml b/mods/ra/maps/burlesca/map.yaml index f6c9652e7f..39c179cb14 100644 --- a/mods/ra/maps/burlesca/map.yaml +++ b/mods/ra/maps/burlesca/map.yaml @@ -1,4 +1,4 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra @@ -16,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ra/maps/calm-before-storm.oramap b/mods/ra/maps/calm-before-storm.oramap index 6b933208d9..4aba20692c 100644 Binary files a/mods/ra/maps/calm-before-storm.oramap and b/mods/ra/maps/calm-before-storm.oramap differ diff --git a/mods/ra/maps/center-of-attention-redux-2/map.yaml b/mods/ra/maps/center-of-attention-redux-2/map.yaml index 74bcf2bd4b..e1bbb86568 100644 --- a/mods/ra/maps/center-of-attention-redux-2/map.yaml +++ b/mods/ra/maps/center-of-attention-redux-2/map.yaml @@ -1,4 +1,4 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra @@ -16,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ra/maps/central-conflict.oramap b/mods/ra/maps/central-conflict.oramap index e93b52555f..e4cdb06c45 100644 Binary files a/mods/ra/maps/central-conflict.oramap and b/mods/ra/maps/central-conflict.oramap differ diff --git a/mods/ra/maps/chaos-canyon.oramap b/mods/ra/maps/chaos-canyon.oramap index 7b3e588d11..b78274c4df 100644 Binary files a/mods/ra/maps/chaos-canyon.oramap and b/mods/ra/maps/chaos-canyon.oramap differ diff --git a/mods/ra/maps/chokepoint.oramap b/mods/ra/maps/chokepoint.oramap index c1b566aed4..ed013b8edc 100644 Binary files a/mods/ra/maps/chokepoint.oramap and b/mods/ra/maps/chokepoint.oramap differ diff --git a/mods/ra/maps/coastal-influence.oramap b/mods/ra/maps/coastal-influence.oramap index cea61d9f9f..3bdba98e95 100644 Binary files a/mods/ra/maps/coastal-influence.oramap and b/mods/ra/maps/coastal-influence.oramap differ diff --git a/mods/ra/maps/cold-front.oramap b/mods/ra/maps/cold-front.oramap index 92af6738a4..2da20518ac 100644 Binary files a/mods/ra/maps/cold-front.oramap and b/mods/ra/maps/cold-front.oramap differ diff --git a/mods/ra/maps/contact.oramap b/mods/ra/maps/contact.oramap index 6cc787579c..bb0dbcaeec 100644 Binary files a/mods/ra/maps/contact.oramap and b/mods/ra/maps/contact.oramap differ diff --git a/mods/ra/maps/desert-shellmap/map.yaml b/mods/ra/maps/desert-shellmap/map.yaml index d700145a48..809387e8e4 100644 --- a/mods/ra/maps/desert-shellmap/map.yaml +++ b/mods/ra/maps/desert-shellmap/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Desert Shellmap -Description: Desert Shellmap - Author: Scott_NZ Tileset: DESERT @@ -18,10 +16,6 @@ Visibility: Shellmap Type: Shellmap -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ra/maps/doubles.oramap b/mods/ra/maps/doubles.oramap index 5b28a25a15..c99a73a7b5 100644 Binary files a/mods/ra/maps/doubles.oramap and b/mods/ra/maps/doubles.oramap differ diff --git a/mods/ra/maps/doughnut.oramap b/mods/ra/maps/doughnut.oramap index 9da0b23302..c0140c3042 100644 Binary files a/mods/ra/maps/doughnut.oramap and b/mods/ra/maps/doughnut.oramap differ diff --git a/mods/ra/maps/drop-zone-battle-of-tikiaki/map.yaml b/mods/ra/maps/drop-zone-battle-of-tikiaki/map.yaml index b50fe1b44a..51b921d36c 100644 --- a/mods/ra/maps/drop-zone-battle-of-tikiaki/map.yaml +++ b/mods/ra/maps/drop-zone-battle-of-tikiaki/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Drop Zone - Battle of Tikiaki -Description: Pick up the crates with the APC to get units to kill the other players; Using Holloweye's .yaml - Author: Knivesron Tileset: TEMPERAT @@ -18,18 +16,6 @@ Visibility: Lobby Type: Drop Zone -Videos: - -Options: - Crates: True - Fog: False - Shroud: False - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - TechLevel: Unrestricted - ConfigurableStartingUnits: False - Players: PlayerReference@Neutral: Name: Neutral @@ -299,6 +285,12 @@ Rules: InitialSpawnDelay: 0 -SpawnMPUnits: -MPStartLocations: + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Unrestricted UNITCRATE: Inherits: ^Crate GiveUnitCrateAction@ttnk: @@ -351,6 +343,15 @@ Rules: HP: 120 Mobile: Speed: 99 + Player: + Shroud: + FogLocked: True + FogEnabled: False + ExploredMapLocked: True + ExploredMapEnabled: True + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 Sequences: diff --git a/mods/ra/maps/drop-zone-w/map.yaml b/mods/ra/maps/drop-zone-w/map.yaml index f21f44374e..8708381323 100644 --- a/mods/ra/maps/drop-zone-w/map.yaml +++ b/mods/ra/maps/drop-zone-w/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Drop Zone W -Description: Pick up the crates with the naval mobile HQ to get units to kill the other players. v0.2 - Author: riderr3 Tileset: SNOW @@ -18,18 +16,6 @@ Visibility: Lobby Type: Drop Zone -Videos: - -Options: - Crates: True - Fog: False - Shroud: False - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - TechLevel: Unrestricted - ConfigurableStartingUnits: False - Players: PlayerReference@Neutral: Name: Neutral @@ -205,6 +191,12 @@ Rules: InitialSpawnDelay: 0 -SpawnMPUnits: -MPStartLocations: + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Unrestricted UNITCRATE: Inherits: ^Crate GiveUnitCrateAction@pt: @@ -253,6 +245,15 @@ Rules: -GivesBounty: MSUB: -GivesBounty: + Player: + Shroud: + FogLocked: True + FogEnabled: False + ExploredMapLocked: True + ExploredMapEnabled: True + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 Sequences: lst: diff --git a/mods/ra/maps/drop-zone/map.yaml b/mods/ra/maps/drop-zone/map.yaml index 9ec2dda8c7..8484845c5f 100644 --- a/mods/ra/maps/drop-zone/map.yaml +++ b/mods/ra/maps/drop-zone/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Drop Zone -Description: Pick up the crates with the APC to get units to kill the other players. - Author: Holloweye Tileset: TEMPERAT @@ -18,18 +16,6 @@ Visibility: Lobby Type: Drop Zone -Videos: - -Options: - Crates: True - Fog: False - Shroud: False - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - TechLevel: Unrestricted - ConfigurableStartingUnits: False - Players: PlayerReference@Neutral: Name: Neutral @@ -194,6 +180,12 @@ Rules: InitialSpawnDelay: 0 -SpawnMPUnits: -MPStartLocations: + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Unrestricted UNITCRATE: Inherits: ^Crate GiveUnitCrateAction@ttnk: @@ -246,6 +238,15 @@ Rules: HP: 120 Mobile: Speed: 99 + Player: + Shroud: + FogLocked: True + FogEnabled: False + ExploredMapLocked: True + ExploredMapEnabled: True + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 Sequences: diff --git a/mods/ra/maps/east-vs-west.oramap b/mods/ra/maps/east-vs-west.oramap index cd98aece12..1afea2081b 100644 Binary files a/mods/ra/maps/east-vs-west.oramap and b/mods/ra/maps/east-vs-west.oramap differ diff --git a/mods/ra/maps/encounter.oramap b/mods/ra/maps/encounter.oramap index 19463c0acd..8d7e31fcf6 100644 Binary files a/mods/ra/maps/encounter.oramap and b/mods/ra/maps/encounter.oramap differ diff --git a/mods/ra/maps/engagement.oramap b/mods/ra/maps/engagement.oramap index 29724e4df1..29b4d47a94 100644 Binary files a/mods/ra/maps/engagement.oramap and b/mods/ra/maps/engagement.oramap differ diff --git a/mods/ra/maps/equal-opportunity.oramap b/mods/ra/maps/equal-opportunity.oramap index 73a5202ea6..bdeec4bb89 100644 Binary files a/mods/ra/maps/equal-opportunity.oramap and b/mods/ra/maps/equal-opportunity.oramap differ diff --git a/mods/ra/maps/first-come-first-served.oramap b/mods/ra/maps/first-come-first-served.oramap index cfc8f75953..7d8f602522 100644 Binary files a/mods/ra/maps/first-come-first-served.oramap and b/mods/ra/maps/first-come-first-served.oramap differ diff --git a/mods/ra/maps/forest-path.oramap b/mods/ra/maps/forest-path.oramap index 259a9e346d..195523c0ed 100644 Binary files a/mods/ra/maps/forest-path.oramap and b/mods/ra/maps/forest-path.oramap differ diff --git a/mods/ra/maps/fort-lonestar/map.yaml b/mods/ra/maps/fort-lonestar/map.yaml index c7e404a422..b1ab9388da 100644 --- a/mods/ra/maps/fort-lonestar/map.yaml +++ b/mods/ra/maps/fort-lonestar/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Fort Lonestar -Description: Survive multiple waves of attacking enemies. - Author: Nuke'm Bro, abcdefg30 Tileset: TEMPERAT @@ -18,20 +16,6 @@ Visibility: Lobby Type: Minigame -Videos: - -Options: - Fog: True - Shroud: True - AllyBuildRadius: True - FragileAlliances: False - StartingCash: 50 - TechLevel: Unrestricted - StartingUnitsClass: none - ConfigurableStartingUnits: False - ShortGame: False - Difficulties: Hard (4P), Normal (3P), Easy (2P), Very Easy (1P), Real tough guy, Endless mode - Players: PlayerReference@Neutral: Name: Neutral @@ -516,6 +500,17 @@ Rules: Scripts: fort-lonestar.lua ScriptUpgradesCache: Upgrades: invulnerability + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: True + SpawnMPUnits: + Locked: True + MapOptions: + TechLevelLocked: True + TechLevel: Unrestricted + Difficulties: Hard (4P), Normal (3P), Easy (2P), Very Easy (1P), Real tough guy, Endless mode + ShortGameLocked: True + ShortGameEnabled: False FORTCRATE: Inherits: ^Crate SupportPowerCrateAction@parabombs: @@ -551,6 +546,14 @@ Rules: ClassicProductionQueue@Infantry: BuildSpeed: 1 -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 50 ^Infantry: Inherits@IC: ^IronCurtainable ^Husk: @@ -895,7 +898,7 @@ Weapons: Range: 5c0 Projectile: GravityBomb Image: BOMBLET - OpenSequence: idle # TODO: This crashes otherwise + OpenSequence: idle Warhead@1Dam: SpreadDamage Spread: 426 Versus: diff --git a/mods/ra/maps/ghost-town.oramap b/mods/ra/maps/ghost-town.oramap index b8307f2d0f..3e9ab2c061 100644 Binary files a/mods/ra/maps/ghost-town.oramap and b/mods/ra/maps/ghost-town.oramap differ diff --git a/mods/ra/maps/haos-ridges.oramap b/mods/ra/maps/haos-ridges.oramap index f278efac34..3bf8c11fbe 100644 Binary files a/mods/ra/maps/haos-ridges.oramap and b/mods/ra/maps/haos-ridges.oramap differ diff --git a/mods/ra/maps/high-and-low-extended.oramap b/mods/ra/maps/high-and-low-extended.oramap index 581f94a384..cef56ce5f6 100644 Binary files a/mods/ra/maps/high-and-low-extended.oramap and b/mods/ra/maps/high-and-low-extended.oramap differ diff --git a/mods/ra/maps/high-and-low.oramap b/mods/ra/maps/high-and-low.oramap index 88e3b9ffa5..eea1b8e44c 100644 Binary files a/mods/ra/maps/high-and-low.oramap and b/mods/ra/maps/high-and-low.oramap differ diff --git a/mods/ra/maps/intervention/map.yaml b/mods/ra/maps/intervention/map.yaml index d61f60adf1..f144ec62d2 100644 --- a/mods/ra/maps/intervention/map.yaml +++ b/mods/ra/maps/intervention/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Intervention! -Description: The Soviet Air Force is flying air raids against a civilian village.\n\nWe have to do everything in our power to stop them!\n\nYour job is to establish a base on the mainland ASAP. We can prevent the village's destruction by capturing the enemy's Air Force Headquarters building. The enemy base is heavily guarded, though. You will not have enough time to build a force big enough to overpower the Soviet defences. You will have to find a way to sneak in!\n\nGood luck, Commander!\n - Author: Antares79 Tileset: TEMPERAT @@ -18,19 +16,6 @@ Visibility: MissionSelector Type: Mission -Videos: - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 2000 - ConfigurableStartingUnits: False - Difficulties: Medium, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -2220,6 +2205,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 2000 World: -CrateSpawner: -SpawnMPUnits: @@ -2228,6 +2221,15 @@ Rules: Scripts: intervention.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: The Soviet Air Force is flying air raids against a civilian village.\n\nWe have to do everything in our power to stop them!\n\nYour job is to establish a base on the mainland ASAP. We can prevent the village's destruction by capturing the enemy's Air Force Headquarters building. The enemy base is heavily guarded, though. You will not have enough time to build a force big enough to overpower the Soviet defences. You will have to find a way to sneak in!\n\nGood luck, Commander!\n + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Medium, Hard + ShortGameLocked: True + ShortGameEnabled: False CAMERA: RevealsShroud: Range: 18c0 diff --git a/mods/ra/maps/island-hoppers.oramap b/mods/ra/maps/island-hoppers.oramap index ee28588e95..6251d9de46 100644 Binary files a/mods/ra/maps/island-hoppers.oramap and b/mods/ra/maps/island-hoppers.oramap differ diff --git a/mods/ra/maps/keep-off-the-grass-2.oramap b/mods/ra/maps/keep-off-the-grass-2.oramap index bb26d5084b..00e8f84fbd 100644 Binary files a/mods/ra/maps/keep-off-the-grass-2.oramap and b/mods/ra/maps/keep-off-the-grass-2.oramap differ diff --git a/mods/ra/maps/koth-hopes-anchor/map.yaml b/mods/ra/maps/koth-hopes-anchor/map.yaml index a878346b0d..d2da4a6ba2 100644 --- a/mods/ra/maps/koth-hopes-anchor/map.yaml +++ b/mods/ra/maps/koth-hopes-anchor/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Hopes Anchor -Description: KOTH - Author: Nuke'm Bro. Tileset: TEMPERAT @@ -18,10 +16,6 @@ Visibility: Lobby Type: KotH -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ra/maps/mad-science.oramap b/mods/ra/maps/mad-science.oramap index c3db049e77..eeba94b843 100644 Binary files a/mods/ra/maps/mad-science.oramap and b/mods/ra/maps/mad-science.oramap differ diff --git a/mods/ra/maps/man-to-man.oramap b/mods/ra/maps/man-to-man.oramap index 51ae6a4914..cb6519164c 100644 Binary files a/mods/ra/maps/man-to-man.oramap and b/mods/ra/maps/man-to-man.oramap differ diff --git a/mods/ra/maps/marooned-2.oramap b/mods/ra/maps/marooned-2.oramap index e02bb44afd..f1c7fc7374 100644 Binary files a/mods/ra/maps/marooned-2.oramap and b/mods/ra/maps/marooned-2.oramap differ diff --git a/mods/ra/maps/mass-confliction.oramap b/mods/ra/maps/mass-confliction.oramap index aa76c76bff..d3753654df 100644 Binary files a/mods/ra/maps/mass-confliction.oramap and b/mods/ra/maps/mass-confliction.oramap differ diff --git a/mods/ra/maps/monster-tank-madness/map.yaml b/mods/ra/maps/monster-tank-madness/map.yaml index 5eb881309c..10a325f3d6 100644 --- a/mods/ra/maps/monster-tank-madness/map.yaml +++ b/mods/ra/maps/monster-tank-madness/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Monster Tank Madness -Description: Dr. Demitri, creator of a Soviet Super Tank, wants to defect.\n\nWe planned to extract him while the Soviets were testing their new weapon, but something has gone wrong.\n\nThe Super Tanks are out of control, and Demitri is missing -- likely hiding in the village to the far south.\n\nFind our outpost and start repairs on it, then find and evacuate Demitri.\n\nAs for the tanks, we can reprogram them. Send a spy into the Soviet radar dome in the NE, turning the tanks on their creators.\n - Author: Westwood Studios Tileset: SNOW @@ -18,18 +16,6 @@ Visibility: MissionSelector Type: Mission -Videos: - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Greece: Name: Greece @@ -2107,6 +2093,14 @@ Rules: MissionObjectives: EarlyGameOver: true EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -2116,6 +2110,14 @@ Rules: ObjectivesPanel: PanelName: MISSION_OBJECTIVES -StartGameNotification: + MissionData: + Briefing: Dr. Demitri, creator of a Soviet Super Tank, wants to defect.\n\nWe planned to extract him while the Soviets were testing their new weapon, but something has gone wrong.\n\nThe Super Tanks are out of control, and Demitri is missing -- likely hiding in the village to the far south.\n\nFind our outpost and start repairs on it, then find and evacuate Demitri.\n\nAs for the tanks, we can reprogram them. Send a spy into the Soviet radar dome in the NE, turning the tanks on their creators.\n + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Building: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/north-by-northwest.oramap b/mods/ra/maps/north-by-northwest.oramap index f5c00ba8d1..fffca295fa 100644 Binary files a/mods/ra/maps/north-by-northwest.oramap and b/mods/ra/maps/north-by-northwest.oramap differ diff --git a/mods/ra/maps/ore-lord.oramap b/mods/ra/maps/ore-lord.oramap index 4de51adaf4..e0884fbf0d 100644 Binary files a/mods/ra/maps/ore-lord.oramap and b/mods/ra/maps/ore-lord.oramap differ diff --git a/mods/ra/maps/pearly-wastelands.oramap b/mods/ra/maps/pearly-wastelands.oramap index 8a015a5509..30c81ca111 100644 Binary files a/mods/ra/maps/pearly-wastelands.oramap and b/mods/ra/maps/pearly-wastelands.oramap differ diff --git a/mods/ra/maps/poland-raid/map.yaml b/mods/ra/maps/poland-raid/map.yaml index f3a4a370d3..185826aa0e 100644 --- a/mods/ra/maps/poland-raid/map.yaml +++ b/mods/ra/maps/poland-raid/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Poland Raid -Description: Great FFA map. There is lot of resources to control. - Author: s1w Tileset: TEMPERAT @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ra/maps/pressure.oramap b/mods/ra/maps/pressure.oramap index 63c8199746..c7a1041794 100644 Binary files a/mods/ra/maps/pressure.oramap and b/mods/ra/maps/pressure.oramap differ diff --git a/mods/ra/maps/puddles-redux.oramap b/mods/ra/maps/puddles-redux.oramap index d6ebf1ec3d..49e3739300 100644 Binary files a/mods/ra/maps/puddles-redux.oramap and b/mods/ra/maps/puddles-redux.oramap differ diff --git a/mods/ra/maps/raraku.oramap b/mods/ra/maps/raraku.oramap index fc37d2b5a6..8c4917dbed 100644 Binary files a/mods/ra/maps/raraku.oramap and b/mods/ra/maps/raraku.oramap differ diff --git a/mods/ra/maps/regeneration-basin.oramap b/mods/ra/maps/regeneration-basin.oramap index 3881a01412..e32af6dd7e 100644 Binary files a/mods/ra/maps/regeneration-basin.oramap and b/mods/ra/maps/regeneration-basin.oramap differ diff --git a/mods/ra/maps/ring-of-fire.oramap b/mods/ra/maps/ring-of-fire.oramap index aaf1609f40..9df2842e07 100644 Binary files a/mods/ra/maps/ring-of-fire.oramap and b/mods/ra/maps/ring-of-fire.oramap differ diff --git a/mods/ra/maps/seaside-2.oramap b/mods/ra/maps/seaside-2.oramap index a1e1d1a951..e8beedb660 100644 Binary files a/mods/ra/maps/seaside-2.oramap and b/mods/ra/maps/seaside-2.oramap differ diff --git a/mods/ra/maps/sidestep.oramap b/mods/ra/maps/sidestep.oramap index 1be04d30e7..2e03f5021a 100644 Binary files a/mods/ra/maps/sidestep.oramap and b/mods/ra/maps/sidestep.oramap differ diff --git a/mods/ra/maps/singles.oramap b/mods/ra/maps/singles.oramap index 9e9a1a12d9..a0a2b546cf 100644 Binary files a/mods/ra/maps/singles.oramap and b/mods/ra/maps/singles.oramap differ diff --git a/mods/ra/maps/snow town/map.yaml b/mods/ra/maps/snow town/map.yaml index b8c71724c5..c6ce1cdfab 100644 --- a/mods/ra/maps/snow town/map.yaml +++ b/mods/ra/maps/snow town/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Snow Town -Description: 3v3 - Author: MicroBit Tileset: SNOW @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ra/maps/snowy-island.oramap b/mods/ra/maps/snowy-island.oramap index b47a2f6d60..6c030373e9 100644 Binary files a/mods/ra/maps/snowy-island.oramap and b/mods/ra/maps/snowy-island.oramap differ diff --git a/mods/ra/maps/soviet-01/map.yaml b/mods/ra/maps/soviet-01/map.yaml index 98600f1625..19f1064640 100644 --- a/mods/ra/maps/soviet-01/map.yaml +++ b/mods/ra/maps/soviet-01/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 01: Lesson in Blood -Description: A pitiful excuse for resistance has blockaded itself in this village.\n\nStalin has decided to make an example of them. Kill them all and destroy their homes. You will have Yak aircraft to use in teaching these rebels a lesson. - Author: Westwood Studios Tileset: SNOW @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - BackgroundInfo: prolog.vqa - Briefing: soviet1.vqa - GameStart: flare.vqa - GameWon: snstrafe.vqa - GameLost: sfrozen.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@France: Name: France @@ -610,6 +591,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -618,6 +607,19 @@ Rules: Scripts: soviet01.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: A pitiful excuse for resistance has blockaded itself in this village.\n\nStalin has decided to make an example of them. Kill them all and destroy their homes. You will have Yak aircraft to use in teaching these rebels a lesson. + BackgroundVideo: prolog.vqa + BriefingVideo: soviet1.vqa + StartVideo: flare.vqa + WinVideo: snstrafe.vqa + LossVideo: sfrozen.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False V01: SpawnActorOnDeath: Actor: healcrate diff --git a/mods/ra/maps/soviet-02a/map.yaml b/mods/ra/maps/soviet-02a/map.yaml index d0c89573df..cd9cf03ff1 100644 --- a/mods/ra/maps/soviet-02a/map.yaml +++ b/mods/ra/maps/soviet-02a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 02a: The thin red line -Description: Tomorrow, the attack on Germany begins, but today, we must protect our facility from Allied attacks.\n\nKeep the Command Center intact at all costs, and destroy any Allied fortification you might find. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: soviet2.vqa - GameStart: spotter.vqa - GameWon: sovtstar.vqa - GameLost: sovcemet.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@USSR: Name: USSR @@ -588,6 +570,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -596,6 +586,18 @@ Rules: Scripts: soviet02a.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: Tomorrow, the attack on Germany begins, but today, we must protect our facility from Allied attacks.\n\nKeep the Command Center intact at all costs, and destroy any Allied fortification you might find. + BriefingVideo: soviet2.vqa + StartVideo: spotter.vqa + WinVideo: sovtstar.vqa + LossVideo: sovcemet.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Building: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/soviet-02b/map.yaml b/mods/ra/maps/soviet-02b/map.yaml index becb96fa45..98ac25b9fc 100644 --- a/mods/ra/maps/soviet-02b/map.yaml +++ b/mods/ra/maps/soviet-02b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 02b: The thin red line -Description: Tomorrow, the attack on Germany begins, but today, we must protect our facility from Allied attacks.\n\nKeep the Command Center intact at all costs, and destroy any Allied fortification you might find. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,22 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: soviet2.vqa - GameStart: spotter.vqa - GameWon: sovtstar.vqa - GameLost: sovcemet.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -511,6 +493,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -519,6 +509,18 @@ Rules: Scripts: soviet02b.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: Tomorrow, the attack on Germany begins, but today, we must protect our facility from Allied attacks.\n\nKeep the Command Center intact at all costs, and destroy any Allied fortification you might find. + BriefingVideo: soviet2.vqa + StartVideo: spotter.vqa + WinVideo: sovtstar.vqa + LossVideo: sovcemet.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Building: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/soviet-03/map.yaml b/mods/ra/maps/soviet-03/map.yaml index cfb20db954..ff6667b553 100644 --- a/mods/ra/maps/soviet-03/map.yaml +++ b/mods/ra/maps/soviet-03/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 03: Covert cleanup -Description: A spy who has compromised the security of one of the northern sarin gas sites has been traced back to Lund, Sweden, by Nadia's intelligence groups.\n\nHe has been marked for death and a squad of Soviet troops was dispatched to the location to hunt him down. - Author: Westwood Studios Tileset: SNOW @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: soviet3.vqa - GameStart: search.vqa - GameWon: execute.vqa - GameLost: take_off.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -1192,6 +1173,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -1200,6 +1189,19 @@ Rules: Scripts: soviet03.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: A spy who has compromised the security of one of the northern sarin gas sites has been traced back to Lund, Sweden, by Nadia's intelligence groups.\n\nHe has been marked for death and a squad of Soviet troops was dispatched to the location to hunt him down. + BriefingVideo: soviet3.vqa + StartVideo: search.vqa + WinVideo: execute.vqa + LossVideo: take_off.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False ^Building: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/soviet-04a/map.yaml b/mods/ra/maps/soviet-04a/map.yaml index 9562ccb057..8a9d5409b6 100644 --- a/mods/ra/maps/soviet-04a/map.yaml +++ b/mods/ra/maps/soviet-04a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 04a: Behind the lines -Description: The Allied base in this region is proving to be problematic.\n\nYour mission is to take it out so that we can begin to move forces through this area.\n\nAs long as they have communications they will be able to call upon heavy reinforcements.\n\nCrush their communications, and they should be easier to remove. - Author: Westwood Studios Tileset: SNOW @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: soviet4.vqa - GameStart: sovmcv.vqa - GameWon: radrraid.vqa - GameLost: allymorf.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - TechLevel: Medium - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -647,6 +627,14 @@ Rules: -EnemyWatcher: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -655,6 +643,21 @@ Rules: Scripts: soviet04a.lua, soviet04a-AI.lua, soviet04a-reinforcements_teams.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: The Allied base in this region is proving to be problematic.\n\nYour mission is to take it out so that we can begin to move forces through this area.\n\nAs long as they have communications they will be able to call upon heavy reinforcements.\n\nCrush their communications, and they should be easier to remove. + BriefingVideo: soviet4.vqa + StartVideo: sovmcv.vqa + WinVideo: radrraid.vqa + LossVideo: allymorf.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Medium + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False ^Infantry: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/soviet-04b/map.yaml b/mods/ra/maps/soviet-04b/map.yaml index 6f2e5f6acb..82ce456604 100644 --- a/mods/ra/maps/soviet-04b/map.yaml +++ b/mods/ra/maps/soviet-04b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 04b: Behind the lines -Description: The Allied base in this region is proving to be problematic.\n\nYour mission is to take it out so that we can begin to move forces through this area.\n\nAs long as they have communications they will be able to call upon heavy reinforcements.\n\nCrush their communications, and they should be easier to remove. - Author: Westwood Studios Tileset: SNOW @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: soviet4.vqa - GameStart: sovmcv.vqa - GameWon: radrraid.vqa - GameLost: allymorf.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - TechLevel: Medium - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -675,6 +655,14 @@ Rules: -EnemyWatcher: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -683,6 +671,21 @@ Rules: Scripts: soviet04b.lua, soviet04b-AI.lua, soviet04b-reinforcements_teams.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: The Allied base in this region is proving to be problematic.\n\nYour mission is to take it out so that we can begin to move forces through this area.\n\nAs long as they have communications they will be able to call upon heavy reinforcements.\n\nCrush their communications, and they should be easier to remove. + BriefingVideo: soviet4.vqa + StartVideo: sovmcv.vqa + WinVideo: radrraid.vqa + LossVideo: allymorf.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Medium + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False ^Infantry: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/soviet-05/map.yaml b/mods/ra/maps/soviet-05/map.yaml index 592fae3be2..8d7b5947d0 100644 --- a/mods/ra/maps/soviet-05/map.yaml +++ b/mods/ra/maps/soviet-05/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 05: Distant Thunder -Description: Khalkis island contains a large quantity of ore that we need.\n\nThe Allies are well aware of our plans, and intend to establish their own base there. See to it that they fail.\n\nIn addition, capture their radar center so we can track Allied activity in this area. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,24 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: soviet5.vqa - GameStart: double.vqa - GameWon: strafe.vqa - GameLost: sovbatl.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - TechLevel: Medium - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -629,6 +609,14 @@ Rules: -EnemyWatcher: MissionObjectives: EarlyGameOver: true + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -637,6 +625,21 @@ Rules: Scripts: soviet05.lua, soviet05-AI.lua, soviet05-reinforcements_teams.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: Khalkis island contains a large quantity of ore that we need.\n\nThe Allies are well aware of our plans, and intend to establish their own base there. See to it that they fail.\n\nIn addition, capture their radar center so we can track Allied activity in this area. + BriefingVideo: soviet5.vqa + StartVideo: double.vqa + WinVideo: strafe.vqa + LossVideo: sovbatl.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Medium + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False ^Infantry: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/soviet-06a/map.yaml b/mods/ra/maps/soviet-06a/map.yaml index e28178a382..40093664a4 100644 --- a/mods/ra/maps/soviet-06a/map.yaml +++ b/mods/ra/maps/soviet-06a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 06a: Bridge over the River Grotzny -Description: There is a special cargo that needs to be transported to a nearby Soviet base in the northeast.\n\nMake sure the trucks reach their destination intact. Along the way, there is a bridge which the Allies may have destroyed.\n\nIf so, use the Naval options at your disposal. Our attack subs will make short work of any Allied boats you discover. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: soviet6.vqa - GameStart: onthprwl.vqa - GameWon: sitduck.vqa - GameLost: dpthchrg.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 11500 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -855,6 +836,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 11500 World: -CrateSpawner: -SpawnMPUnits: @@ -863,6 +852,19 @@ Rules: Scripts: soviet06a.lua, soviet06a-AI.lua, soviet06a-reinforcements_teams.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: There is a special cargo that needs to be transported to a nearby Soviet base in the northeast.\n\nMake sure the trucks reach their destination intact. Along the way, there is a bridge which the Allies may have destroyed.\n\nIf so, use the Naval options at your disposal. Our attack subs will make short work of any Allied boats you discover. + BriefingVideo: soviet6.vqa + StartVideo: onthprwl.vqa + WinVideo: sitduck.vqa + LossVideo: dpthchrg.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False ^Building: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/soviet-06b/map.yaml b/mods/ra/maps/soviet-06b/map.yaml index ee96b51fc6..7087a534ee 100644 --- a/mods/ra/maps/soviet-06b/map.yaml +++ b/mods/ra/maps/soviet-06b/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 06b: Bridge over the River VizchGoi -Description: There is a special cargo that needs to be transported to a nearby Soviet base in the northeast.\n\nMake sure the trucks reach their destination intact. Along the way, there is a bridge which the Allies may have destroyed.\n\nIf so, use the Naval options at your disposal. Our attack subs will make short work of any Allied boats you discover. - Author: Westwood Studios Tileset: TEMPERAT @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: soviet6.vqa - GameStart: onthprwl.vqa - GameWon: sitduck.vqa - GameLost: dpthchrg.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 11500 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -547,6 +528,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 11500 World: -CrateSpawner: -SpawnMPUnits: @@ -555,6 +544,19 @@ Rules: Scripts: soviet06b.lua, soviet06b-AI.lua, soviet06b-reinforcements_teams.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: There is a special cargo that needs to be transported to a nearby Soviet base in the northeast.\n\nMake sure the trucks reach their destination intact. Along the way, there is a bridge which the Allies may have destroyed.\n\nIf so, use the Naval options at your disposal. Our attack subs will make short work of any Allied boats you discover. + BriefingVideo: soviet6.vqa + StartVideo: onthprwl.vqa + WinVideo: sitduck.vqa + LossVideo: dpthchrg.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False ^Building: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/soviet-07/map.yaml b/mods/ra/maps/soviet-07/map.yaml index 4a861e2985..eb5bcba684 100644 --- a/mods/ra/maps/soviet-07/map.yaml +++ b/mods/ra/maps/soviet-07/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: 07: Core of the matter -Description: The Allies have infiltrated one of our nuclear reactors! They have tampered with the core so that a meltdown is imminent within 30 minutes. They must not succeed!\n\nEnter the base and find any remaining technicians. Guide them to the 4 coolant stations so they can activate them, then activate the main computer. The security systems have been armed so beware.\n\nKill any Allies you find. - Author: Westwood Studios Tileset: INTERIOR @@ -18,23 +16,6 @@ Visibility: MissionSelector Type: Campaign -Videos: - Briefing: soviet7.vqa - GameStart: countdwn.vqa - GameWon: averted.vqa - GameLost: nukestok.vqa - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 0 - ConfigurableStartingUnits: False - Difficulties: Easy, Normal, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -814,6 +795,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 0 World: -CrateSpawner: -SpawnMPUnits: @@ -822,6 +811,19 @@ Rules: Scripts: soviet07.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: The Allies have infiltrated one of our nuclear reactors! They have tampered with the core so that a meltdown is imminent within 30 minutes. They must not succeed!\n\nEnter the base and find any remaining technicians. Guide them to the 4 coolant stations so they can activate them, then activate the main computer. The security systems have been armed so beware.\n\nKill any Allies you find. + BriefingVideo: soviet7.vqa + StartVideo: countdwn.vqa + WinVideo: averted.vqa + LossVideo: nukestok.vqa + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Normal, Hard + ShortGameLocked: True + ShortGameEnabled: False ^Infantry: -GivesBounty: Tooltip: diff --git a/mods/ra/maps/styrian-mountains.oramap b/mods/ra/maps/styrian-mountains.oramap index 666304bb79..94d68dedaa 100644 Binary files a/mods/ra/maps/styrian-mountains.oramap and b/mods/ra/maps/styrian-mountains.oramap differ diff --git a/mods/ra/maps/suffrage.oramap b/mods/ra/maps/suffrage.oramap index 045939a8bc..372316673b 100644 Binary files a/mods/ra/maps/suffrage.oramap and b/mods/ra/maps/suffrage.oramap differ diff --git a/mods/ra/maps/survival01/map.yaml b/mods/ra/maps/survival01/map.yaml index 1da62ddb7a..e55e1f8581 100644 --- a/mods/ra/maps/survival01/map.yaml +++ b/mods/ra/maps/survival01/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Survival 01 -Description: LANDCOM 66 HQS.\nTOP SECRET.\nTO: FIELD COMMANDER A34\n\nTHE SOVIETS STARTED HEAVY ATTACKS AT OUR POSITION.\n SURVIVE AND HOLD THE BASE UNTIL OUR FRENCH ALLIES ARRIVE.\n\nCONFIRMATION CODE 5593.\n\nTRANSMISSION ENDS. - Author: Nuke'm Bro Tileset: TEMPERAT @@ -18,19 +16,6 @@ Visibility: MissionSelector Type: Mission -Videos: - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - ConfigurableStartingUnits: False - Difficulties: Easy, Medium, Hard - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -1217,6 +1202,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -1225,6 +1218,15 @@ Rules: Scripts: survival01.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: LANDCOM 66 HQS.\nTOP SECRET.\nTO: FIELD COMMANDER A34\n\nTHE SOVIETS STARTED HEAVY ATTACKS AT OUR POSITION.\n SURVIVE AND HOLD THE BASE UNTIL OUR FRENCH ALLIES ARRIVE.\n\nCONFIRMATION CODE 5593.\n\nTRANSMISSION ENDS. + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + Difficulties: Easy, Medium, Hard + ShortGameLocked: True + ShortGameEnabled: False ^Infantry: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/survival02/map.yaml b/mods/ra/maps/survival02/map.yaml index a086d26648..6e9f859523 100644 --- a/mods/ra/maps/survival02/map.yaml +++ b/mods/ra/maps/survival02/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Survival 02 -Description: INCOMING REPORT:\n\nCommander! The Soviets have rendered us useless...\nReports indicate Soviet reinforcements are coming to finish us off... The situation looks bleak...\n - Author: Nuke'm Bro. Tileset: SNOW @@ -18,18 +16,6 @@ Visibility: MissionSelector Type: Mission -Videos: - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 5000 - ConfigurableStartingUnits: False - ShortGame: False - Players: PlayerReference@Neutral: Name: Neutral @@ -1026,6 +1012,14 @@ Rules: MissionObjectives: EarlyGameOver: true -EnemyWatcher: + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 5000 World: -CrateSpawner: -SpawnMPUnits: @@ -1034,6 +1028,14 @@ Rules: Scripts: survival02.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES + MissionData: + Briefing: INCOMING REPORT:\n\nCommander! The Soviets have rendered us useless...\nReports indicate Soviet reinforcements are coming to finish us off... The situation looks bleak...\n + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + ShortGameLocked: True + ShortGameEnabled: False ^Infantry: Tooltip: GenericVisibility: Enemy diff --git a/mods/ra/maps/synergy.oramap b/mods/ra/maps/synergy.oramap index 1deeb2947b..a3010423a7 100644 Binary files a/mods/ra/maps/synergy.oramap and b/mods/ra/maps/synergy.oramap differ diff --git a/mods/ra/maps/tabula-rasa.oramap b/mods/ra/maps/tabula-rasa.oramap index e9e02a7e4b..dd7c3c789b 100644 Binary files a/mods/ra/maps/tabula-rasa.oramap and b/mods/ra/maps/tabula-rasa.oramap differ diff --git a/mods/ra/maps/tainted-peak.oramap b/mods/ra/maps/tainted-peak.oramap index 56157a9fa3..12c18469ec 100644 Binary files a/mods/ra/maps/tainted-peak.oramap and b/mods/ra/maps/tainted-peak.oramap differ diff --git a/mods/ra/maps/temperal.oramap b/mods/ra/maps/temperal.oramap index de0246fed0..ac9141a5e3 100644 Binary files a/mods/ra/maps/temperal.oramap and b/mods/ra/maps/temperal.oramap differ diff --git a/mods/ra/maps/tournament-island.oramap b/mods/ra/maps/tournament-island.oramap index e48c53ce23..3a12ca9223 100644 Binary files a/mods/ra/maps/tournament-island.oramap and b/mods/ra/maps/tournament-island.oramap differ diff --git a/mods/ra/maps/training-camp/map.yaml b/mods/ra/maps/training-camp/map.yaml index 8532e5beb1..6be043de75 100644 --- a/mods/ra/maps/training-camp/map.yaml +++ b/mods/ra/maps/training-camp/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ra Title: Training camp -Description: Defeat your enemys by capturing their buildings. - Author: Holloweye Tileset: TEMPERAT @@ -18,18 +16,6 @@ Visibility: Lobby Type: Minigame -Videos: - -Options: - Crates: False - Fog: True - Shroud: True - AllyBuildRadius: False - FragileAlliances: False - StartingCash: 100 - TechLevel: Unrestricted - ConfigurableStartingUnits: False - Players: PlayerReference@Neutral: Name: Neutral @@ -811,11 +797,25 @@ Rules: -CrateSpawner: -SpawnMPUnits: -MPStartLocations: + MapBuildRadius: + AllyBuildRadiusLocked: True + AllyBuildRadiusEnabled: False + MapOptions: + TechLevelLocked: True + TechLevel: Unrestricted Player: ClassicProductionQueue@Infantry: BuildSpeed: 1 ClassicProductionQueue@Vehicle: BuildSpeed: 1 + Shroud: + FogLocked: True + FogEnabled: True + ExploredMapLocked: True + ExploredMapEnabled: False + PlayerResources: + DefaultCashLocked: True + DefaultCash: 100 OILB: Health: HP: 6000 diff --git a/mods/ra/maps/vegetation.oramap b/mods/ra/maps/vegetation.oramap index 2fa593d6ac..5f98766c38 100644 Binary files a/mods/ra/maps/vegetation.oramap and b/mods/ra/maps/vegetation.oramap differ diff --git a/mods/ra/mod.yaml b/mods/ra/mod.yaml index ce39ee15a0..1a82d24cf8 100644 --- a/mods/ra/mod.yaml +++ b/mods/ra/mod.yaml @@ -165,15 +165,6 @@ ServerTraits: MasterServerPinger LobbySettingsNotification -LobbyDefaults: - AllowCheats: false - Crates: true - StartingUnitsClass: none - FragileAlliances: false - Shroud: true - Fog: true - TechLevel: Unrestricted - ChromeMetrics: common|metrics.yaml ra|metrics.yaml diff --git a/mods/ra/rules/world.yaml b/mods/ra/rules/world.yaml index 7a1be7743b..2b78cfc0e9 100644 --- a/mods/ra/rules/world.yaml +++ b/mods/ra/rules/world.yaml @@ -120,6 +120,8 @@ World: PathfinderDebugOverlay: WarheadDebugOverlay: SpawnMapActors: + MapBuildRadius: + MapOptions: CreateMPPlayers: MPStartUnits@mcvonly: Class: none diff --git a/mods/ts/maps/arivruns/map.yaml b/mods/ts/maps/arivruns/map.yaml index 9dbd68134c..fc0c150619 100644 --- a/mods/ts/maps/arivruns/map.yaml +++ b/mods/ts/maps/arivruns/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: A River Runs Near It -Description: Describe your map here - Author: Westwood Studios Tileset: TEMPERATE @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/maps/cliffsin/map.yaml b/mods/ts/maps/cliffsin/map.yaml index 7ef22fc19d..3410b3ed61 100644 --- a/mods/ts/maps/cliffsin/map.yaml +++ b/mods/ts/maps/cliffsin/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: Cliffs of Insanity -Description: Describe your map here - Author: Westwood Studios Tileset: TEMPERATE @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/maps/gdi4a/map.yaml b/mods/ts/maps/gdi4a/map.yaml index ab84663dc5..563198a288 100644 --- a/mods/ts/maps/gdi4a/map.yaml +++ b/mods/ts/maps/gdi4a/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: Defend Crash Site -Description: Whatever is contained in this craft, it is apparent that Nod doesn't want GDI to have it. - Author: Westwood Studios Tileset: TEMPERATE @@ -18,10 +16,6 @@ Visibility: Shellmap Type: Shellmap -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/maps/karasjok/map.yaml b/mods/ts/maps/karasjok/map.yaml index f0d3d0b1e2..7ab542ddc9 100644 --- a/mods/ts/maps/karasjok/map.yaml +++ b/mods/ts/maps/karasjok/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: Town of Karasjok -Description: Dark 2-5 player map with a decent amount of Tiberium. - Author: Crash Tileset: SNOW @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/maps/rivrrad4/map.yaml b/mods/ts/maps/rivrrad4/map.yaml index 654cfc0b2e..c0d9324730 100644 --- a/mods/ts/maps/rivrrad4/map.yaml +++ b/mods/ts/maps/rivrrad4/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: River Raid -Description: Describe your map here - Author: Westwood Studios Tileset: TEMPERATE @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/maps/springs/map.yaml b/mods/ts/maps/springs/map.yaml index a8202a574d..351ea171fc 100644 --- a/mods/ts/maps/springs/map.yaml +++ b/mods/ts/maps/springs/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: Hot Springs -Description: Describe your map here - Author: Westwood Studios Tileset: SNOW @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/maps/t_garden/map.yaml b/mods/ts/maps/t_garden/map.yaml index d9b39c7adc..b93aec77d8 100644 --- a/mods/ts/maps/t_garden/map.yaml +++ b/mods/ts/maps/t_garden/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: Tiberium Garden Redux -Description: Large two-to-five player skirmish map remake of Tiberium Garden from Tiberian Dawn featuring abandoned structures from the First Tiberium War. - Author: Westwood Studios Tileset: TEMPERATE @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/maps/tactical/map.yaml b/mods/ts/maps/tactical/map.yaml index ea83ed6ada..5aeaad64f1 100644 --- a/mods/ts/maps/tactical/map.yaml +++ b/mods/ts/maps/tactical/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: Tactical -Description: Describe your map here - Author: Westwood Studios Tileset: TEMPERATE @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/maps/terrace/map.yaml b/mods/ts/maps/terrace/map.yaml index 1aa062f527..77bf857cf7 100644 --- a/mods/ts/maps/terrace/map.yaml +++ b/mods/ts/maps/terrace/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: Terraces -Description: Describe your map here - Author: Westwood Studios Tileset: TEMPERATE @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/maps/tread_l/map.yaml b/mods/ts/maps/tread_l/map.yaml index f4d73670a8..7e1b45a6c9 100644 --- a/mods/ts/maps/tread_l/map.yaml +++ b/mods/ts/maps/tread_l/map.yaml @@ -1,11 +1,9 @@ -MapFormat: 8 +MapFormat: 9 RequiresMod: ts Title: Tread Lightly -Description: Describe your map here - Author: Westwood Studios Tileset: SNOW @@ -18,10 +16,6 @@ Visibility: Lobby Type: Conquest -Videos: - -Options: - Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ts/mod.yaml b/mods/ts/mod.yaml index 6684bfda44..371bcdd251 100644 --- a/mods/ts/mod.yaml +++ b/mods/ts/mod.yaml @@ -214,14 +214,6 @@ ServerTraits: MasterServerPinger LobbySettingsNotification -LobbyDefaults: - AllowCheats: true - Crates: true - StartingUnitsClass: none - FragileAlliances: false - Shroud: true - Fog: true - ChromeMetrics: common|metrics.yaml ts|metrics.yaml diff --git a/mods/ts/rules/player.yaml b/mods/ts/rules/player.yaml index 141e5d8617..da243b3670 100644 --- a/mods/ts/rules/player.yaml +++ b/mods/ts/rules/player.yaml @@ -42,6 +42,7 @@ Player: PlayerResources: ActorGroupProxy: DeveloperMode: + Enabled: true Shroud: FrozenActorLayer: BaseAttackNotifier: diff --git a/mods/ts/rules/world.yaml b/mods/ts/rules/world.yaml index 0d1204d59e..2dca965534 100644 --- a/mods/ts/rules/world.yaml +++ b/mods/ts/rules/world.yaml @@ -98,6 +98,8 @@ World: PathfinderDebugOverlay: WarheadDebugOverlay: SpawnMapActors: + MapBuildRadius: + MapOptions: CreateMPPlayers: MPStartUnits@MCV: Class: none