From d76a8c29502ed2a3ef8ffa32ee5f2b0d03369d32 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 17 Aug 2013 10:54:54 +1200 Subject: [PATCH] Allow maps to override options. Closes #3646. Also set sensible defaults for most of the maps and mini games. --- OpenRA.Game/Map.cs | 41 ++- OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs | 46 +++- OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs | 16 +- mods/cnc/maps/gdi01/map.yaml | 7 +- mods/cnc/maps/nod01/map.yaml | 7 +- mods/cnc/maps/the-hot-box.oramap | Bin 2208 -> 0 bytes mods/cnc/maps/the-hot-box/map.bin | Bin 0 -> 20485 bytes mods/cnc/maps/the-hot-box/map.yaml | 245 ++++++++++++++++++ mods/ra/maps/Fort-Lonestar/map.yaml | 6 + mods/ra/maps/Survival01/map.yaml | 11 +- mods/ra/maps/Survival02/map.yaml | 8 +- mods/ra/maps/allies-01/map.yaml | 7 +- mods/ra/maps/allies-02/map.yaml | 6 + mods/ra/maps/allies-03/map.yaml | 7 +- mods/ra/maps/allies-04/map.yaml | 7 +- mods/ra/maps/bomber-john/map.yaml | 6 + .../maps/drop-zone-battle-of-tikiaki/map.yaml | 9 +- mods/ra/maps/drop-zone-w/map.yaml | 9 +- mods/ra/maps/drop-zone/map.yaml | 9 +- mods/ra/maps/monster-tank-madness/map.yaml | 6 + mods/ra/maps/soviet-01-classic/map.yaml | 6 + mods/ra/maps/training-camp/map.yaml | 6 + 22 files changed, 437 insertions(+), 28 deletions(-) delete mode 100644 mods/cnc/maps/the-hot-box.oramap create mode 100755 mods/cnc/maps/the-hot-box/map.bin create mode 100755 mods/cnc/maps/the-hot-box/map.yaml diff --git a/OpenRA.Game/Map.cs b/OpenRA.Game/Map.cs index f792d41884..1e3bc30bcc 100644 --- a/OpenRA.Game/Map.cs +++ b/OpenRA.Game/Map.cs @@ -16,10 +16,36 @@ using System.Linq; using System.Security.Cryptography; using System.Text; using OpenRA.FileFormats; +using OpenRA.Network; using OpenRA.Traits; namespace OpenRA { + public class MapOptions + { + public bool? Cheats; + public bool? Crates; + public bool? Fog; + public bool? Shroud; + public bool? FragileAlliances; + public bool ConfigurableStartingUnits = true; + public string[] Difficulties; + + public void UpdateServerSettings(Session.Global settings) + { + if (Cheats.HasValue) + settings.AllowCheats = Cheats.Value; + if (Crates.HasValue) + settings.Crates = Crates.Value; + if (Fog.HasValue) + settings.Fog = Fog.Value; + if (Shroud.HasValue) + settings.Shroud = Shroud.Value; + if (FragileAlliances.HasValue) + settings.FragileAlliances = FragileAlliances.Value; + } + } + public class Map { [FieldLoader.Ignore] IFolder container; @@ -37,9 +63,20 @@ namespace OpenRA public string Description; public string Author; public string Tileset; - public string[] Difficulties; public bool AllowStartUnitConfig = true; + [FieldLoader.LoadUsing("LoadOptions")] + public MapOptions Options; + + static object LoadOptions(MiniYaml y) + { + var options = new MapOptions(); + if (y.NodesDict.ContainsKey("Options")) + FieldLoader.Load(options, y.NodesDict["Options"]); + + return options; + } + [FieldLoader.Ignore] public Lazy> Actors; public int PlayerCount { get { return Players.Count(p => p.Value.Playable); } } @@ -177,7 +214,7 @@ namespace OpenRA "Description", "Author", "Tileset", - "Difficulties", + "Options", "MapSize", "Bounds", "UseAsShellmap", diff --git a/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs b/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs index 9d500e0cc5..c9db7aa6ee 100644 --- a/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs +++ b/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs @@ -309,6 +309,12 @@ namespace OpenRA.Mods.RA.Server return true; } + if (server.Map.Options.FragileAlliances.HasValue) + { + server.SendOrderTo(conn, "Message", "Map has disabled alliance configuration"); + return true; + } + bool.TryParse(s, out server.lobbyInfo.GlobalSettings.FragileAlliances); server.SyncLobbyInfo(); return true; @@ -322,6 +328,12 @@ namespace OpenRA.Mods.RA.Server return true; } + if (server.Map.Options.Cheats.HasValue) + { + server.SendOrderTo(conn, "Message", "Map has disabled cheat configuration"); + return true; + } + bool.TryParse(s, out server.lobbyInfo.GlobalSettings.AllowCheats); server.SyncLobbyInfo(); return true; @@ -335,6 +347,12 @@ namespace OpenRA.Mods.RA.Server return true; } + if (server.Map.Options.Shroud.HasValue) + { + server.SendOrderTo(conn, "Message", "Map has disabled shroud configuration"); + return true; + } + bool.TryParse(s, out server.lobbyInfo.GlobalSettings.Shroud); server.SyncLobbyInfo(); return true; @@ -348,6 +366,13 @@ namespace OpenRA.Mods.RA.Server return true; } + if (server.Map.Options.Fog.HasValue) + { + server.SendOrderTo(conn, "Message", "Map has disabled fog configuration"); + return true; + } + + bool.TryParse(s, out server.lobbyInfo.GlobalSettings.Fog); server.SyncLobbyInfo(); return true; @@ -402,6 +427,12 @@ namespace OpenRA.Mods.RA.Server return true; } + if (server.Map.Options.Crates.HasValue) + { + server.SendOrderTo(conn, "Message", "Map has disabled crate configuration"); + return true; + } + bool.TryParse(s, out server.lobbyInfo.GlobalSettings.Crates); server.SyncLobbyInfo(); return true; @@ -414,10 +445,11 @@ namespace OpenRA.Mods.RA.Server server.SendOrderTo(conn, "Message", "Only the host can set that option"); return true; } - if ((server.Map.Difficulties == null && s != null) || (server.Map.Difficulties != null && !server.Map.Difficulties.Contains(s))) + + if ((server.Map.Options.Difficulties == null && s != null) || (server.Map.Options.Difficulties != null && !server.Map.Options.Difficulties.Contains(s))) { server.SendOrderTo(conn, "Message", "Unsupported difficulty selected: {0}".F(s)); - server.SendOrderTo(conn, "Message", "Supported difficulties: {0}".F(server.Map.Difficulties.JoinWith(","))); + server.SendOrderTo(conn, "Message", "Supported difficulties: {0}".F(server.Map.Options.Difficulties.JoinWith(","))); return true; } @@ -434,7 +466,7 @@ namespace OpenRA.Mods.RA.Server return true; } - if (!server.Map.AllowStartUnitConfig) + if (!server.Map.Options.ConfigurableStartingUnits) { server.SendOrderTo(conn, "Message", "Map has disabled start unit configuration"); return true; @@ -636,14 +668,16 @@ namespace OpenRA.Mods.RA.Server .Select(p => MakeSlotFromPlayerReference(p.Value)) .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.Difficulties != null && server.Map.Difficulties.Any()) + if (server.Map.Options.Difficulties != null && server.Map.Options.Difficulties.Any()) { - if (!server.Map.Difficulties.Contains(server.lobbyInfo.GlobalSettings.Difficulty)) - server.lobbyInfo.GlobalSettings.Difficulty = server.Map.Difficulties.First(); + if (!server.Map.Options.Difficulties.Contains(server.lobbyInfo.GlobalSettings.Difficulty)) + server.lobbyInfo.GlobalSettings.Difficulty = server.Map.Options.Difficulties.First(); } else server.lobbyInfo.GlobalSettings.Difficulty = null; } diff --git a/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs index fb2e025eac..b0c5d1ce20 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs @@ -272,7 +272,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic if (allowCheats != null) { allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats; - allowCheats.IsDisabled = configurationDisabled; + allowCheats.IsDisabled = () => Map.Options.Cheats.HasValue || configurationDisabled(); allowCheats.OnClick = () => orderManager.IssueOrder(Order.Command( "allowcheats {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllowCheats))); } @@ -281,7 +281,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic if (crates != null) { crates.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.Crates; - crates.IsDisabled = configurationDisabled; + crates.IsDisabled = () => Map.Options.Crates.HasValue || configurationDisabled(); crates.OnClick = () => orderManager.IssueOrder(Order.Command( "crates {0}".F(!orderManager.LobbyInfo.GlobalSettings.Crates))); } @@ -290,7 +290,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic if (fragileAlliance != null) { fragileAlliance.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.FragileAlliances; - fragileAlliance.IsDisabled = configurationDisabled; + fragileAlliance.IsDisabled = () => Map.Options.FragileAlliances.HasValue || configurationDisabled(); fragileAlliance.OnClick = () => orderManager.IssueOrder(Order.Command( "fragilealliance {0}".F(!orderManager.LobbyInfo.GlobalSettings.FragileAlliances))); }; @@ -298,12 +298,12 @@ namespace OpenRA.Mods.RA.Widgets.Logic var difficulty = optionsBin.GetOrNull("DIFFICULTY_DROPDOWNBUTTON"); if (difficulty != null) { - difficulty.IsVisible = () => Map != null && Map.Difficulties != null && Map.Difficulties.Any(); + difficulty.IsVisible = () => Map.Options.Difficulties != null && Map.Options.Difficulties.Any(); difficulty.IsDisabled = configurationDisabled; difficulty.GetText = () => orderManager.LobbyInfo.GlobalSettings.Difficulty; difficulty.OnMouseDown = _ => { - var options = Map.Difficulties.Select(d => new DropDownOption + var options = Map.Options.Difficulties.Select(d => new DropDownOption { Title = d, IsSelected = () => orderManager.LobbyInfo.GlobalSettings.Difficulty == d, @@ -336,7 +336,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic .Select(a => a.Class).Distinct(); startingUnits.IsDisabled = configurationDisabled; - startingUnits.IsVisible = () => Map.AllowStartUnitConfig; + startingUnits.IsVisible = () => Map.Options.ConfigurableStartingUnits; startingUnits.GetText = () => className(orderManager.LobbyInfo.GlobalSettings.StartingUnitsClass); startingUnits.OnMouseDown = _ => { @@ -364,7 +364,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic if (enableShroud != null) { enableShroud.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.Shroud; - enableShroud.IsDisabled = configurationDisabled; + enableShroud.IsDisabled = () => Map.Options.Shroud.HasValue || configurationDisabled(); enableShroud.OnClick = () => orderManager.IssueOrder(Order.Command( "shroud {0}".F(!orderManager.LobbyInfo.GlobalSettings.Shroud))); }; @@ -373,7 +373,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic if (enableFog != null) { enableFog.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.Fog; - enableFog.IsDisabled = configurationDisabled; + enableFog.IsDisabled = () => Map.Options.Fog.HasValue || configurationDisabled(); enableFog.OnClick = () => orderManager.IssueOrder(Order.Command( "fog {0}".F(!orderManager.LobbyInfo.GlobalSettings.Fog))); }; diff --git a/mods/cnc/maps/gdi01/map.yaml b/mods/cnc/maps/gdi01/map.yaml index 8a0cd32357..c5907cc2f6 100644 --- a/mods/cnc/maps/gdi01/map.yaml +++ b/mods/cnc/maps/gdi01/map.yaml @@ -20,7 +20,12 @@ UseAsShellmap: False Type: Campaign -AllowStartUnitConfig: False +Options: + Crates: false + Fog: false + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false Players: PlayerReference@BadGuy: diff --git a/mods/cnc/maps/nod01/map.yaml b/mods/cnc/maps/nod01/map.yaml index 9c0e8c69ac..40897c2a68 100644 --- a/mods/cnc/maps/nod01/map.yaml +++ b/mods/cnc/maps/nod01/map.yaml @@ -20,7 +20,12 @@ UseAsShellmap: False Type: Campaign -AllowStartUnitConfig: False +Options: + Crates: false + Fog: false + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false Players: PlayerReference@Neutral: diff --git a/mods/cnc/maps/the-hot-box.oramap b/mods/cnc/maps/the-hot-box.oramap deleted file mode 100644 index 8039ef8356961b038f41dbc8b1aec1b5e3847747..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2208 zcmZ{mXHe4%7R5tH5CjYgibNp*O~J9$pNY=+@RMN%nVr#A+;vw})t)4qLV2q* z(&(FxvQRNWSFuFpo=&~Wg)jK z_K;}e{nE@*jb^JA#hYE-V?Zzif-T0#l~rHeLpoBkDe}Qo=)&iSUzlr22uHxEVmoGs)0R+OA`usIjMgJzvo`W48xdWYTN+ z5Avm=`hk$83dAj#~_`=50&k>zca~?3+ob zxjfzKz+ug{5oB9Qg6RTGdzEwa1lSTFMnBG=XjfQ&iBa`;NOvvoDhye*w!)2v6nO1W zll$8P?3PgVp{|`@qcULEpWU<*v{l{*Dm z7Xh=~%&MAVizi`i)D=@?v|3Nytbh9XmCK5Ls&8e*`@o%x5gM#*fG**PS20b$kRFnb zR3;{=%QrkN3=TLu&yLO9KN6lk4K@ZGorsJ|PlES0jrDTM;ZvSGS)3Ec(m5O$o09k5 z)9`Njm<4|)5^%izDLpM&#)at|S-E#_Td5dabrdJHwzE?}F<(?-AifFI%@Y$n859{u zH>XA_yMy=Lx~WD$Iy@|fsGv1n3M^WEG+=e4-kn3jS)+NG!Y@$UTSUX{#Vwy1V$#Vf z$tnoWV8bS+bt1FQ${swi>$%g?9;z{{A)rxl?50cC{2YbA95^IU4TPu@pX6Z6JT@1E~LWCT2`}uXiu)n zYypR;G5slx;mb!>5pzcdAv1FHWq`4OBgR22091FNs`~Nm@5JtVdAss)XH6E2gE)T7 zeTV3HK{>p<9#MChqtp^#C=}LvbiYcRjTHBX-Wqy*Z^v|*xWRE)CjRA{0EDhk45GmH zEckzkt}MV~`(J$U_IXsvIN*by_%CAon-2tcj9;6>u>bHyu?Sr%0x|}wNAB5o1YY3# zS?aFfa%a?wAR(M?tYV^PPK_koKxIpOcj@Eized*coW`1E+6(b{9Ig<~aIC53i#}G% zG4qONvV_HIq(yNw@JmPV&cgI^{$?1|mzd)S{1N`wz-o zeItF2o-v;A;gZ9}AJrslrcI-laQZN5#OE`KJ9MC@cUG$tf4K|2srZND zU2hrmZL|S89LOmITq7coujhnEk;oPK9XV^{`tW+pXp!3BdK=XR8SI99F=xqn()a+F zk>-1y9R=6nJc^nvgMJ7Wwbr^exqS|@5Fayd^*i5Nd1g(=^+HkWeA2V)Eje7Z!zBGv zBd2J&Uf7zbFrF3c!le@<^J5&4!P3WlQQ7tJ=KC4>QKYC9x6OY>nSNw!(2P$VSRV@W zE-#IBHrc<7+?+&bZdF!(#@h&%>u-MG8Q;JcN`<4@WzM8ZO@s5!5GW78qA9k{lx%^>hSSwP!tSO&jpB_w!CGb} zFxuFUUT(uFvBak67BK8u{(uitU2Y2AWT7c3H7mtqJZ?yvSR8kitNSK}eB{ zRom2+^0@mp%3PW&^t!AYc@WtxZjZ5m1_Ad%w!9Lp#2a#Gr357i|_!wXl=L>QghqbCfL zLtPp{`~^QPuhEk^hPIYm+*+XjUl0x$@R#{dUHE(G@6`A+ahmr}hS*y2 R@&9tT57zfUA-@0v`WMQQHTwVn diff --git a/mods/cnc/maps/the-hot-box/map.bin b/mods/cnc/maps/the-hot-box/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..b34b6f4f1ba98887691cb4772a597acb36536435 GIT binary patch literal 20485 zcmeI2%WC6T5Qe`a$(P*INq0~8%rMgfbAh?Mz--cCh5;|K>UAzoS%5u=>bH0>a@0lmph6(^dh6fR%ua zfMv9;fMUREz-GWQ+IB!GU@c%PU>R-0|6*fj8JUm!yo}7peK!0X{^LAnwc{);qiy&% z{AXo8zJ3{*kNcdB{{x7IIv^bMQGE)1DZjIwli&JmHUF*K2UxeGkJXp*dx5<}oTaDj znE&FvAx4S?8}0=_7`!Mp0*=+Lh;4<8yTT*V|#~v)V?&QbL}s(aT{S1%I@?j z-{9PcZ)1DseXM&=P2|q*rE2xS%FW&{{Sm%*_ihU}^EIwr8 zKMj*jXks_T)nSZOuqrYm-vxE3W`l-sB_PFpk|VY`l1r&yN&8JUmAOKN)-_8#v2R}>yHAKGmS zZAmN-Yot1*y1?^rK6@eqN+GmF;+XM4o>G$?GzOlS^b%Yf6cmPNAphegXU+=?>*>Y@1gc2 zPSqv$CB-XIK752ii*i+-Yj9Twt0VCnjs@_qDQPw|yPEf!A2q*d{^+54I6aYc^HThG zE+hLN_#z{8ek3lka~_@$^7c4hvhk*|G-b`E=C$Tq%?Hh|nm>D3JqkU_U*Qt#QnVeg z{RMRa7xKAeyDQ!LY`ke~&5CAA^G5TX<|oZ>n!kLCKI=X^KJUJYpCh^bLLR}nkWXY} ze%hKR?sGQ&HI8Ogv#oin`Tm|^pOVjp&#uq=d(PuI{DQ)TB+^`%kNZ51tK@kt4kU2s zQ})^PdHsO%`ocVF~ zT~U!sEF^QDhP^JTi_?wre7N3a-DT$i|B2_E!I>nYgg8oEKk>{d`46$_Vs-EGyi3Vt z!)5oD+o+Nm%k~-SOg1it{{}R$8xc0Q`P>!p%PyO)SxbH`~~p;8K;42 z$p28iLAI#&pW|BlkE%O|1*UKRzv=W@(yCh#c^46*-olYlH=>-Ztq04 zllR`=8||Hj|LFE%Z|hQUS#x=nGM}HIPI9Y-GUxoe+lRjw^1!3$vF=I!8O}e8ojK<} z=GH@blsq;($v>(1zmJ`n*Qa6Zi8UUUN7-Z3dsP37viih1Q^mqG{6FB_!}eJ5*z)e` zpPX`g8s9SWpHtq>>)ssrpPAuVe3%E5&v|AV#$NK8yf|FcIkT|$681hPtMj<)C9|Ez zw?%QA*S#-+;aPl`2b0fvW*Wv`?i$RWQNSo*6fg=H1&jhl0i%FXz$jo8FbWt2i~>dh jqkvJsC}0#Y3K#{90!9I&fKk9GU=%P47zK<1ORvEHq6EF} literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/the-hot-box/map.yaml b/mods/cnc/maps/the-hot-box/map.yaml new file mode 100755 index 0000000000..7eafb51baf --- /dev/null +++ b/mods/cnc/maps/the-hot-box/map.yaml @@ -0,0 +1,245 @@ +Selectable: True + +MapFormat: 5 + +Title: The Hot Box + +Description: Drop Zone for CnC + +Author: Dan9550 + +Tileset: DESERT + +MapSize: 64,64 + +Bounds: 16,16,36,36 + +UseAsShellmap: False + +Type: Drop Zone + +Options: + Fog: false + Shroud: false + Crates: true + FragileAlliances: false + ConfigurableStartingUnits: false + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Race: gdi + PlayerReference@Multi0: + Name: Multi0 + Playable: True + LockRace: True + Race: nod + Enemies: Multi9,Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi7,Multi8 + PlayerReference@Multi1: + Name: Multi1 + Playable: True + LockRace: True + Race: nod + Enemies: Multi0,Multi2,Multi3,Multi4,Multi5,Multi6,Multi7,Multi8,Multi9 + PlayerReference@Multi2: + Name: Multi2 + Playable: True + LockRace: True + Race: nod + Enemies: Multi0,Multi1,Multi3,Multi4,Multi5,Multi6,Multi7,Multi8,Multi9 + PlayerReference@Multi3: + Name: Multi3 + Playable: True + LockRace: True + Race: nod + Enemies: Multi0,Multi1,Multi2,Multi4,Multi5,Multi6,Multi7,Multi8,Multi9 + PlayerReference@Multi4: + Name: Multi4 + Playable: True + LockRace: True + Race: nod + Enemies: Multi0,Multi1,Multi2,Multi3,Multi5,Multi6,Multi7,Multi8,Multi9 + PlayerReference@Multi5: + Name: Multi5 + Playable: True + LockRace: True + Race: nod + Enemies: Multi0,Multi1,Multi2,Multi3,Multi4,Multi6,Multi7,Multi8,Multi9 + PlayerReference@Multi6: + Name: Multi6 + Playable: True + LockRace: True + Race: nod + Enemies: Multi0,Multi1,Multi2,Multi3,Multi4,Multi5,Multi7,Multi8,Multi9 + PlayerReference@Multi7: + Name: Multi7 + Playable: True + LockRace: True + Race: nod + Enemies: Multi0,Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi8,Multi9 + PlayerReference@Multi8: + Name: Multi8 + Playable: True + LockRace: True + Race: nod + Enemies: Multi0,Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi7,Multi9 + PlayerReference@Multi9: + Name: Multi9 + Playable: True + LockRace: True + Race: nod + Enemies: Multi0,Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi7,Multi8 + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + Race: gdi + Enemies: Multi0,Multi1,Multi2,Multi3,Multi4,Multi5,Multi6,Multi7,Multi8,Multi9 + +Actors: + Actor0: apc + Location: 40,17 + Owner: Multi0 + Actor1: apc + Location: 42,17 + Owner: Multi1 + Actor2: apc + Location: 40,19 + Owner: Multi2 + Actor3: apc + Location: 46,21 + Owner: Multi3 + Actor4: apc + Location: 48,21 + Owner: Multi4 + Actor5: apc + Location: 50,19 + Owner: Multi5 + Actor6: apc + Location: 50,21 + Owner: Multi6 + Actor7: apc + Location: 50,17 + Owner: Multi7 + Actor8: apc + Location: 39,21 + Owner: Multi8 + Actor9: apc + Location: 47,17 + Owner: Multi9 + Actor10: tc02 + Location: 22,43 + Owner: Neutral + Actor11: v20 + Location: 44,38 + Owner: Neutral + Actor12: v34 + Location: 28,38 + Owner: Neutral + Actor13: v35 + Location: 29,39 + Owner: Neutral + Actor14: v36 + Location: 38,35 + Owner: Neutral + Actor15: v23 + Location: 46,39 + Owner: Neutral + Actor16: v27 + Location: 22,28 + Owner: Neutral + Actor17: t02 + Location: 26,26 + Owner: Neutral + Actor18: t07 + Location: 26,27 + Owner: Neutral + Actor19: tc04 + Location: 25,16 + Owner: Neutral + Actor20: tc03 + Location: 26,17 + Owner: Neutral + Actor21: mpspawn + Location: 40,18 + Owner: Neutral + Actor22: mpspawn + Location: 42,18 + Owner: Neutral + Actor23: mpspawn + Location: 40,20 + Owner: Neutral + Actor24: mpspawn + Location: 39,22 + Owner: Neutral + Actor25: mpspawn + Location: 47,18 + Owner: Neutral + Actor26: mpspawn + Location: 50,18 + Owner: Neutral + Actor27: mpspawn + Location: 50,20 + Owner: Neutral + Actor28: mpspawn + Location: 50,22 + Owner: Neutral + Actor29: mpspawn + Location: 48,22 + Owner: Neutral + Actor30: mpspawn + Location: 46,22 + Owner: Neutral + +Smudges: + +Rules: + World: + CrateSpawner: + Maximum: 4 + SpawnInterval: 5 + -SpawnMPUnits: + -MPStartLocations: + CRATE: + -HealUnitsCrateAction: + -LevelUpCrateAction: + -GiveMcvCrateAction: + -RevealMapCrateAction: + -HideMapCrateAction: + -CloakCrateAction: + -ExplodeCrateAction@nuke: + -ExplodeCrateAction@boom: + -ExplodeCrateAction@fire: + -SupportPowerCrateAction@parabombs: + -GiveCashCrateAction: + GiveUnitCrateAction@stnk: + SelectionShares: 4 + Unit: stnk + GiveUnitCrateAction@bike: + SelectionShares: 6 + Unit: bike + GiveUnitCrateAction@htnk: + SelectionShares: 1 + Unit: htnk + GiveUnitCrateAction@e5: + SelectionShares: 1 + Unit: e5 + GiveUnitCrateAction@e1: + SelectionShares: 1 + Unit: e1 + APC: + Health: + HP: 1000 + RevealsShroud: + Range: 40 + MustBeDestroyed: + -AttackMove: + +Sequences: + +Weapons: + +Voices: + +Notifications: diff --git a/mods/ra/maps/Fort-Lonestar/map.yaml b/mods/ra/maps/Fort-Lonestar/map.yaml index ae6717ca6c..3072dfd7cf 100644 --- a/mods/ra/maps/Fort-Lonestar/map.yaml +++ b/mods/ra/maps/Fort-Lonestar/map.yaml @@ -18,6 +18,12 @@ UseAsShellmap: False Type: Minigame +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ra/maps/Survival01/map.yaml b/mods/ra/maps/Survival01/map.yaml index 94d5de6714..faf43728bb 100644 --- a/mods/ra/maps/Survival01/map.yaml +++ b/mods/ra/maps/Survival01/map.yaml @@ -10,15 +10,20 @@ Author: Nuke'm Bro. Tileset: TEMPERAT -Difficulties: Easy,Normal,Hard - MapSize: 96,64 Bounds: 4,4,88,56 UseAsShellmap: False -Type: Campaign +Type: Minigame + +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Difficulties: Easy,Normal,Hard Players: PlayerReference@Neutral: diff --git a/mods/ra/maps/Survival02/map.yaml b/mods/ra/maps/Survival02/map.yaml index 8a0364911d..9ce437abd4 100644 --- a/mods/ra/maps/Survival02/map.yaml +++ b/mods/ra/maps/Survival02/map.yaml @@ -16,7 +16,13 @@ Bounds: 2,2,76,76 UseAsShellmap: False -Type: Campaign +Type: Minigame + +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false Players: PlayerReference@Neutral: diff --git a/mods/ra/maps/allies-01/map.yaml b/mods/ra/maps/allies-01/map.yaml index 090e4c3216..fa3769a3d7 100644 --- a/mods/ra/maps/allies-01/map.yaml +++ b/mods/ra/maps/allies-01/map.yaml @@ -20,7 +20,12 @@ UseAsShellmap: False Type: Campaign -Difficulties: Easy, Normal +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Difficulties: Easy, Normal Players: PlayerReference@Neutral: diff --git a/mods/ra/maps/allies-02/map.yaml b/mods/ra/maps/allies-02/map.yaml index d6bfc8b1c5..93ff88674a 100644 --- a/mods/ra/maps/allies-02/map.yaml +++ b/mods/ra/maps/allies-02/map.yaml @@ -20,6 +20,12 @@ UseAsShellmap: False Type: Campaign +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Players: PlayerReference@Neutral: Name: Neutral diff --git a/mods/ra/maps/allies-03/map.yaml b/mods/ra/maps/allies-03/map.yaml index ba17a52b0f..c48aeecae4 100644 --- a/mods/ra/maps/allies-03/map.yaml +++ b/mods/ra/maps/allies-03/map.yaml @@ -20,7 +20,12 @@ UseAsShellmap: False Type: Campaign -Difficulties: Easy, Normal, Hard +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Difficulties: Easy, Normal, Hard Players: PlayerReference@Neutral: diff --git a/mods/ra/maps/allies-04/map.yaml b/mods/ra/maps/allies-04/map.yaml index 203621ca06..d96b91c28c 100644 --- a/mods/ra/maps/allies-04/map.yaml +++ b/mods/ra/maps/allies-04/map.yaml @@ -12,7 +12,12 @@ Author: Scott_NZ Tileset: TEMPERAT -Difficulties: Easy,Normal,Hard +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Difficulties: Easy,Normal,Hard MapSize: 128,128 diff --git a/mods/ra/maps/bomber-john/map.yaml b/mods/ra/maps/bomber-john/map.yaml index fdf8001184..a1e75707d8 100644 --- a/mods/ra/maps/bomber-john/map.yaml +++ b/mods/ra/maps/bomber-john/map.yaml @@ -18,6 +18,12 @@ UseAsShellmap: False Type: Minigame +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Players: PlayerReference@Neutral: Name: Neutral 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 2e06646c14..646afc9323 100644 --- a/mods/ra/maps/drop-zone-battle-of-tikiaki/map.yaml +++ b/mods/ra/maps/drop-zone-battle-of-tikiaki/map.yaml @@ -16,7 +16,14 @@ Bounds: 16,16,32,32 UseAsShellmap: False -Type: Minigame +Type: Drop Zone + +Options: + Fog: false + Shroud: false + Crates: true + FragileAlliances: false + ConfigurableStartingUnits: false Players: PlayerReference@Neutral: diff --git a/mods/ra/maps/drop-zone-w/map.yaml b/mods/ra/maps/drop-zone-w/map.yaml index 0aee39dc1d..60b8045f8c 100644 --- a/mods/ra/maps/drop-zone-w/map.yaml +++ b/mods/ra/maps/drop-zone-w/map.yaml @@ -16,7 +16,14 @@ Bounds: 16,16,32,32 UseAsShellmap: False -Type: Minigame +Type: Drop Zone + +Options: + Fog: false + Shroud: false + Crates: true + FragileAlliances: false + ConfigurableStartingUnits: false Players: PlayerReference@Neutral: diff --git a/mods/ra/maps/drop-zone/map.yaml b/mods/ra/maps/drop-zone/map.yaml index aaac395510..561a2bab06 100644 --- a/mods/ra/maps/drop-zone/map.yaml +++ b/mods/ra/maps/drop-zone/map.yaml @@ -16,7 +16,14 @@ Bounds: 16,16,32,32 UseAsShellmap: False -Type: Minigame +Type: Drop Zone + +Options: + Fog: false + Shroud: false + Crates: true + FragileAlliances: false + ConfigurableStartingUnits: false Players: PlayerReference@Neutral: diff --git a/mods/ra/maps/monster-tank-madness/map.yaml b/mods/ra/maps/monster-tank-madness/map.yaml index 8cdf0571be..68a204951f 100644 --- a/mods/ra/maps/monster-tank-madness/map.yaml +++ b/mods/ra/maps/monster-tank-madness/map.yaml @@ -20,6 +20,12 @@ UseAsShellmap: False Type: Campaign +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Players: PlayerReference@Greece: Name: Greece diff --git a/mods/ra/maps/soviet-01-classic/map.yaml b/mods/ra/maps/soviet-01-classic/map.yaml index 2eafc08291..558f52ec1e 100644 --- a/mods/ra/maps/soviet-01-classic/map.yaml +++ b/mods/ra/maps/soviet-01-classic/map.yaml @@ -20,6 +20,12 @@ UseAsShellmap: False Type: Campaign +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Players: PlayerReference@GoodGuy: Name: GoodGuy diff --git a/mods/ra/maps/training-camp/map.yaml b/mods/ra/maps/training-camp/map.yaml index 58e2436397..f1a5a0fd65 100644 --- a/mods/ra/maps/training-camp/map.yaml +++ b/mods/ra/maps/training-camp/map.yaml @@ -18,6 +18,12 @@ UseAsShellmap: False Type: Minigame +Options: + Fog: true + Shroud: true + FragileAlliances: false + ConfigurableStartingUnits: false + Players: PlayerReference@Neutral: Name: Neutral