From 290310fbe80acdd2ade18ca227c169a5ba612276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 10 Mar 2013 07:28:21 +0100 Subject: [PATCH] Added Mission Survival01 mission --- OpenRA.Mods.RA/Missions/Survival01Script.cs | 350 +++++ OpenRA.Mods.RA/OpenRA.Mods.RA.csproj | 1 + mods/ra/maps/Survival01/map.bin | Bin 0 -> 30725 bytes mods/ra/maps/Survival01/map.yaml | 1304 +++++++++++++++++++ 4 files changed, 1655 insertions(+) create mode 100644 OpenRA.Mods.RA/Missions/Survival01Script.cs create mode 100644 mods/ra/maps/Survival01/map.bin create mode 100644 mods/ra/maps/Survival01/map.yaml diff --git a/OpenRA.Mods.RA/Missions/Survival01Script.cs b/OpenRA.Mods.RA/Missions/Survival01Script.cs new file mode 100644 index 0000000000..92bdcb3a3b --- /dev/null +++ b/OpenRA.Mods.RA/Missions/Survival01Script.cs @@ -0,0 +1,350 @@ +#region Copyright & License Information +/* + * Copyright 2007-2013 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation. For more information, + * see COPYING. + */ +#endregion + +using System.Collections.Generic; +using System.Linq; +using System; +using OpenRA.FileFormats; +using OpenRA.Mods.RA.Activities; +using OpenRA.Mods.RA.Move; +using OpenRA.Traits; +using OpenRA.Widgets; +using OpenRA.Mods.RA.Buildings; + +namespace OpenRA.Mods.RA.Missions +{ + class Survival01ScriptInfo : TraitInfo, Requires { } + + class Survival01Script : IHasObjectives, IWorldLoaded, ITick + { + public event Action OnObjectivesUpdated = notify => { }; + + public IEnumerable Objectives { get { return objectives.Values; } } + + Dictionary objectives = new Dictionary + { + { maintainPresenceID, new Objective(ObjectiveType.Primary, maintainPresence, ObjectiveStatus.InProgress) }, + { destroySovietsID, new Objective(ObjectiveType.Primary, destroySoviets, ObjectiveStatus.Inactive) } + }; + + const int maintainPresenceID = 0; + const int destroySovietsID = 1; + + const string maintainPresence = "Enforce your position and hold-out the onslaught until reinforcements arrive. We must not lose the base!"; + const string destroySoviets = "Take control of french reinforcements and dismantle the nearby Soviet base."; + + Player allies; + Player soviets; + + Actor sovietEntryPoint1; + Actor sovietEntryPoint2; + Actor sovietEntryPoint3; + Actor sovietEntryPoint4; + Actor sovietEntryPoint5; + CPos[] sovietEntryPoints; + Actor sovietRallyPoint1; + Actor sovietRallyPoint2; + Actor sovietRallyPoint3; + Actor sovietRallyPoint4; + Actor sovietRallyPoint5; + CPos[] sovietRallyPoints; + + Actor sovietinfantryentry1; + Actor sovietinfantryrally1; + + Actor badgerEntryPoint1; + Actor badgerEntryPoint2; + Actor paraDrop1; + Actor paraDrop2; + Actor sovietEntryPoint7; + + Actor alliesbase1; + Actor alliesbase2; + Actor alliesbase; + Actor sam1; + Actor sam2; + Actor barrack1; + World world; + + CountdownTimer survivalTimer; + CountdownTimerWidget survivalTimerWidget; + + int attackAtFrame; + int attackAtFrameIncrement; + int attackAtFrameInf; + int attackAtFrameIncrementInf; + + const int paradropTicks = 750; + static readonly string[] badger1Passengers = { "e1", "e1", "e1", "e2", "e2" }; + + const int factoryClearRange = 10; + static readonly string[] squad1 = { "e1", "e1" }; + static readonly string[] squad2 = { "e2", "e2" }; + static readonly string[] sovietVehicles = { "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "v2rl", "v2rl", "ftrk", "ftrk", "ftrk", "apc", "apc" }; + static readonly string[] sovietInfantry = { "e1", "e1", "e1", "e1", "e2", "e2", "e2", "e4", "e4", "e3", }; + static readonly string[] reinforcements = { "2tnk", "2tnk", "2tnk", "2tnk", "2tnk", "1tnk", "1tnk", "1tnk", "arty", "arty", "arty", "jeep", "jeep" }; + const int sovietAttackGroupSize = 5; + const int sovietInfantryGroupSize = 7; + + const int timerTicks = 1500 * 25; + bool spawningSovietUnits = true; + bool spawningInfantry = true; + string difficulty; + + void MissionAccomplished(string text) + { + MissionUtils.CoopMissionAccomplished(world, text, allies); + } + + public void Tick(Actor self) + { + if (allies.WinState != WinState.Undefined) + return; + + survivalTimer.Tick(); + + if (world.FrameNumber == attackAtFrame) + { + attackAtFrame += attackAtFrameIncrement; + attackAtFrameIncrement = Math.Max(attackAtFrameIncrement - 5, 100); + SpawnSovietUnits(); + ManageSovietUnits(); + MissionUtils.CapOre(soviets); + } + + if (world.FrameNumber == attackAtFrameInf) + { + attackAtFrameInf += attackAtFrameIncrementInf; + attackAtFrameIncrementInf = Math.Max(attackAtFrameIncrementInf - 5, 100); + SpawnSovietInfantry(); + } + + if (barrack1.Destroyed) + { + spawningInfantry = false; + } + + if (world.FrameNumber == paradropTicks) + { + MissionUtils.Paradrop(world, soviets, badger1Passengers, badgerEntryPoint1.Location, paraDrop1.Location); + MissionUtils.Paradrop(world, soviets, badger1Passengers, badgerEntryPoint2.Location, paraDrop2.Location); + } + + if (world.FrameNumber == paradropTicks * 2) + { + MissionUtils.Paradrop(world, soviets, badger1Passengers, badgerEntryPoint1.Location, alliesbase2.Location); + MissionUtils.Paradrop(world, soviets, badger1Passengers, badgerEntryPoint2.Location, alliesbase1.Location); + } + + if (world.FrameNumber == 1500 * 23) + { + attackAtFrame = 100; + attackAtFrameIncrement = 100; + } + + if (world.FrameNumber == 1500 * 25) + { + spawningSovietUnits = false; + spawningInfantry = false; + } + + if (objectives[destroySovietsID].Status == ObjectiveStatus.InProgress) + { + if (barrack1.Destroyed) + { + objectives[destroySovietsID].Status = ObjectiveStatus.Completed; + OnObjectivesUpdated(true); + MissionAccomplished("The French forces have survived and dismantled the soviet presence in the area!"); + } + } + } + + void SendSquad1() + { + for (int i = 0; i < squad1.Length; i++) + { + var actor = world.CreateActor(squad1[i], new TypeDictionary { new OwnerInit(soviets), new LocationInit(alliesbase1.Location + new CVec(-2 + i, -6 + i * 2)) }); + actor.QueueActivity(new Move.Move(alliesbase1.Location)); + } + } + + void SendSquad2() + { + for (int i = 0; i < squad2.Length; i++) + { + var actor = world.CreateActor(squad2[i], new TypeDictionary { new OwnerInit(soviets), new LocationInit(alliesbase2.Location + new CVec(-9 + i, -2 + i * 2)) }); + actor.QueueActivity(new Move.Move(alliesbase2.Location)); + } + } + + void SpawnSovietInfantry() + { + if (spawningInfantry) + { + var units = world.CreateActor((sovietInfantry).Random(world.SharedRandom), new TypeDictionary { new LocationInit(sovietinfantryentry1.Location), new OwnerInit(soviets) }); + units.QueueActivity(new Move.Move(sovietinfantryrally1.Location, 3)); + var unitsincircle = world.FindAliveCombatantActorsInCircle(Util.CenterOfCell(sovietinfantryrally1.Location), 10) + .Where(a => a.Owner == soviets && a.IsIdle && a.HasTrait()); + if (unitsincircle.Count() >= sovietInfantryGroupSize) + { + foreach (var scatteredunits in unitsincircle) + AttackNearestAlliedActor(scatteredunits); + } + } + } + + void SpawnSovietUnits() + { + if (spawningSovietUnits) + { + var route = world.SharedRandom.Next(sovietEntryPoints.Length); + var spawnPoint = sovietEntryPoints[route]; + var rallyPoint = sovietRallyPoints[route]; + var unit = world.CreateActor(sovietVehicles.Random(world.SharedRandom), + new TypeDictionary { new LocationInit(spawnPoint), new OwnerInit(soviets) }); + unit.QueueActivity(new AttackMove.AttackMoveActivity(unit, new Move.Move(rallyPoint, 3))); + } + } + + void AttackNearestAlliedActor(Actor self) + { + var enemies = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && (u.Owner == allies) + && ((u.HasTrait() && !u.HasTrait()) || u.HasTrait())); + var targetEnemy = enemies.OrderBy(u => (self.CenterLocation - u.CenterLocation).LengthSquared).FirstOrDefault(); + if (targetEnemy != null) + { + self.QueueActivity(new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(targetEnemy), 3))); + } + } + + void ManageSovietUnits() + { + foreach (var rallyPoint in sovietRallyPoints) + { + var units = world.FindAliveCombatantActorsInCircle(Util.CenterOfCell(rallyPoint), 4) + .Where(u => u.IsIdle && u.HasTrait() && u.Owner == soviets); + if (units.Count() >= sovietAttackGroupSize) + { + foreach (var unit in units) + { + AttackNearestAlliedActor(unit); + } + } + } + var scatteredUnits = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && u.HasTrait() && u.IsIdle && u.Owner == soviets) + .Except(world.WorldActor.Trait().Actors.Values) + .Except(sovietRallyPoints.SelectMany(rp => world.FindAliveCombatantActorsInCircle(Util.CenterOfCell(rp), 4))); + foreach (var unit in scatteredUnits) + { + AttackNearestAlliedActor(unit); + } + } + + void StartCountDownTimer() + { + Sound.Play("timergo1.aud"); + survivalTimer = new CountdownTimer(timerTicks, CountDownTimerExpired, true); + survivalTimerWidget = new CountdownTimerWidget(survivalTimer, "Survive: {0}"); + Ui.Root.AddChild(survivalTimerWidget); + } + + void SendReinforcements() + { + foreach (var unit in reinforcements) + { + var u = world.CreateActor(unit, new TypeDictionary + { + new LocationInit(sovietEntryPoint7.Location), + new FacingInit(0), + new OwnerInit(allies) + }); + u.QueueActivity(new Move.Move(alliesbase.Location)); + } + } + + void CountDownTimerExpired(CountdownTimer countDownTimer) + { + survivalTimerWidget.Visible = false; + SendReinforcements(); + objectives[maintainPresenceID].Status = ObjectiveStatus.Completed; + objectives[destroySovietsID].Status = ObjectiveStatus.InProgress; + OnObjectivesUpdated(true); + } + + public void WorldLoaded(World w) + { + world = w; + + allies = w.Players.SingleOrDefault(p => p.InternalName == "Allies"); + if (allies != null) + { + attackAtFrameInf = 300; + attackAtFrameIncrementInf = 300; + attackAtFrame = 450; + attackAtFrameIncrement = 450; + } + + difficulty = w.LobbyInfo.GlobalSettings.Difficulty; + Game.Debug("{0} difficulty selected".F(difficulty)); + + switch (difficulty) + { + case "Hard": + attackAtFrameIncrement = 350; + attackAtFrameIncrementInf = 200; + break; + case "Normal": + attackAtFrameIncrement = 450; + attackAtFrameIncrementInf = 300; + break; + case "Easy": + attackAtFrameIncrement = 550; + attackAtFrameIncrementInf = 400; + break; + } + + soviets = w.Players.Single(p => p.InternalName == "Soviets"); + var actors = w.WorldActor.Trait().Actors; + sovietEntryPoint1 = actors["sovietEntryPoint1"]; + sovietEntryPoint2 = actors["sovietEntryPoint2"]; + sovietEntryPoint3 = actors["sovietEntryPoint3"]; + sovietEntryPoint4 = actors["sovietEntryPoint4"]; + sovietEntryPoint5 = actors["sovietEntryPoint5"]; + sovietEntryPoints = new[] { sovietEntryPoint1, sovietEntryPoint2, sovietEntryPoint3, sovietEntryPoint4, sovietEntryPoint5 }.Select(p => p.Location).ToArray(); + sovietRallyPoint1 = actors["sovietRallyPoint1"]; + sovietRallyPoint2 = actors["sovietRallyPoint2"]; + sovietRallyPoint3 = actors["sovietRallyPoint3"]; + sovietRallyPoint4 = actors["sovietRallyPoint4"]; + sovietRallyPoint5 = actors["sovietRallyPoint5"]; + sovietRallyPoints = new[] { sovietRallyPoint1, sovietRallyPoint2, sovietRallyPoint3, sovietRallyPoint4, sovietRallyPoint5 }.Select(p => p.Location).ToArray(); + alliesbase = actors["alliesbase"]; + alliesbase1 = actors["alliesbase1"]; + alliesbase2 = actors["alliesbase2"]; + badgerEntryPoint1 = actors["BadgerEntryPoint1"]; + badgerEntryPoint2 = actors["BadgerEntryPoint2"]; + sovietEntryPoint7 = actors["sovietEntryPoint7"]; + sovietinfantryentry1 = actors["SovietInfantryEntry1"]; + sovietinfantryrally1 = actors["SovietInfantryRally1"]; + paraDrop1 = actors["ParaDrop1"]; + paraDrop2 = actors["ParaDrop2"]; + barrack1 = actors["Barrack1"]; + sam1 = actors["Sam1"]; + sam2 = actors["Sam2"]; + var shroud = w.WorldActor.Trait(); + shroud.Explore(w, sam1.Location, 4); + shroud.Explore(w, sam2.Location, 4); + Game.MoveViewport(alliesbase.Location.ToFloat2()); + StartCountDownTimer(); + SendSquad1(); + SendSquad2(); + MissionUtils.PlayMissionMusic(); + } + } +} diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 00c0d47f48..af25a6f0ae 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -255,6 +255,7 @@ + diff --git a/mods/ra/maps/Survival01/map.bin b/mods/ra/maps/Survival01/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..942e6c2de72bd85c01ff8e69f4b095550e780057 GIT binary patch literal 30725 zcmeI4OOGALk%dn^?yLJg^rX6JdeH<3NINeCk;~Z_S{s7)GxlNzBf)<|PeYJo$&vs8 zdP83LK}nR%h13M~CkFGf4a`p%*v4ppJ72`9tS*xG_RhYGxkNINl@%Fr;zU$dR#x4v z{$78lwf1Gtz@C9%ppMeis!EBTqbTDe&DUD4b+FcIt=U=?@?S=2*Q(cQ)*7!vhQrBP zqqU|tq#JR#$V-fYl<8cWYc$tEtvanxhtdD8^ry-ITpI&tUEJ9X*>=sM>VG;V)t{q* zFERW`lOrvT^dJBdDmd}t;7e6s22}hyOw1spjZ8RrBMN76$LWDD99DCU=Q>Q-m;h&2 z|EY2tqr-k50^W zizBU$^zf0sSCWUE!G*&wyKDhrpH~nL)X5Fu0ySc|j8TRlhO@J|7IQr?*CTUXDwwfo zTQqAoXfIMSsg&vD9vORK=Bbr2CKb z$dSHZn1oWG9{#S&8QSzj+Gh%Zw)w59-^N+`<6_B%J&nVqv{bXyIPn{;arS6w0Hb&0 z4AOS~dl|-d!wDQ$)`{jPdf-GyITipAOTtgTQvFpRgkdfL3N9F=1(3uAobnJ(`RcBh zs+MY(nk>7ysLz%v6TpXnHxk$8A8ngMkj~gDEsIeA+q#jP{GL@GIypDEP=W>QUJq@+PfxTw z(L*P?n0%T><`&QJr~*GBh#4tsCK);rqaWDdrw6;Z19&7k%V9H-CQ*|`80zg}-B1m~ zZQmf`R1V*W9}PGgGFb=#nbVwTcB0jZ9zKcr2fM~_P-b{=LO2M4M`+OO_T=}{@57t} z;iw@=4@2hb^ z!3hAS_kM<_$H2HKDD{6zuSaP3seX3ulW$@Q+RcEfz@+FqlkofE7YN!_x^i7)EUNk@S)3*Hyi)_Cr-4b|G`%uwMOI z`gM3Tno3hO)5ssVGE^EpRD-b>t|Kwd<=AVIqV!_Oa|z%wHEy=Q4i}JLPE}3SP9uM?YtmfzF4!H;_6@XcNPara zKu%x2-+_O0S+mRC9O9V-_st}W2d{se80Z8)G18k+u+ps8&5NpDRP(Q4kr?4ZTf9bi zK2<%9D3CvaFz=OyffqEW!=2JkJH)o(Uum+^Vx2|+z@RG8= z5IkUFLs@CM(sHGTaxD0p%gI3R6Mn9L=)@grGmM*yx1_g14Di+SYMzf% zK8xfyy#~N)p=zPgLbH-QV0NBR2h}8l*OP=Gmz33oZi?H8f40(UrH5Dg-Zkl(nrk5p zjNmO@rlw64xT42p{R3bp71;2R_UJ8DZ>f1#dRNUS(kGz=G3tnZdTq(+LgR%F7FsU! zKw`!P@}wi5c3DqG{{_Lnk!-+^@|Ese>B35vuBo~fP!YqfCl+#pHptOHgS1(c^$*Fz zrHx;l3bBu+k5#{`>Rq*;1ZGAtgtOskS#=;8%q(=ch*&(B_@Uj&V=o#fKlKj+JT5pz zH{z%BV5LV^`u??yzInFMGVRZXQ&p#GPosU-c}u#b=9b2Pkp2*CLpzM2B%o%yy(!)7+SnT3Ig0`w7aWD~h1>36 z8VAog_yLS91V{$#;tPk^C9xSu#_D?K8t#uyRi8#Z%}#_Fvbd${mfBkZ*y)EVYr_|M zD65;QZiW?PA|iuX)H!4D)OJLJX&fZz*+@Q}z5soB0vpUg;?TaBK!mTs>cz9eig@MONr;c!E+OO$U`&`$8Gox8v)9pFWCNij1WYg zU=cC2fo+jbxCqmUUv99j?$@QpTtBDkxp0sI1|+NXdX{r9O2&6S1wcN9EQ;qorp@x) z6y{O`jcxd$5sR20%7DSp!Qgrfr<@_#Se7ST#|!V!9GB`~T?$}^3|A4M0rJVlau?wF zrGEWNaml$HvII19~d}dH^H_n*CXyA0Qtz!Pbi&81{uinEbBV&%Q@DN zHXp1ah#-0Z@4EnCcm(L50)lpvf6sFh+Axi_bHF=8kiiPVNYa2Y-)FH4RKvzDZR80G zJ^0Hg8qr_oB@d?)*A_2GFNEWC;`>3#f7;xC`&C?*`FL^9a}xv6gMMt$-dKE{QnyiX zVNDqoKArYp#v`Z(KT6QXAs}f3CZY!Zk{cY_snH9nUWg%HV3wVSf z9CLtVI6*-M0BEMBhZ=1*L`~`EMpR)J8N2{Lg&zDx0}l@71XO5q{7p9XLh8}#UjW&kxAm#^2 zM}$+W3&7!)#=Kx_b?Ysj-@YJ!1KKzxcU!@oSapxw=~V&O%^1yBU9-%Sbyo zCI3GUTlzwyZ&ZI1HFgg;OmoY7H%WdPQGl5UL0KVVl%Cbgs$PzM+Vf|mXJU=yw;Rqz zfHgB|7WHs1CEll8QgbPg<6{gjiB0?7LNWjnLTCWSk-|jiAGl8(!GE?%GI&U5Ao48F zyh8S6QkUe%oyjw*o(cZ@HHI&-dZucocGm61#rlU3TvByO?WN4*LCVlIlwuT?$sA1xmy8Cg$x9r&1u6nx0kc2#1Wd3zi(ct?F$x&#HPhv$`o~0T*c_9NBkU+>r^65l?8k~04 zDTGtLb{Oj%=Ir<#)$gc%HbM|#Dhzudk!s5d0fo~t`5*kGo1@y>s&0#V(ywp(yRdhk zaurk$p1jN<2%%^*{vWA%N_tB5)6&xc7337iWC-pDtLZ-At9R7A6Uf@HkMm(QNOkcal*t&qIIg&(PXO4Uuj= z+Q(`=R@aZ!?fcUE;SS*OBCbJikGvmL}P0ET`m9Fulq}gDGzIV6W~2k5VVDgE;9mjdVk&+^}-vfd7cuWEEv)7(G?rgnpv zVu&_QZ2+JAgW2Reh3?t`0KadYrW&+ZF=-}>8Y|Se05I1l8B7zYfQ7fxX{;2i1C5a>SCa%p1sW0H6GmIZm74|DGKHI0PGn zpaC!_L8mFj1;9Jp4)o#evO*}&3kW+pqq3Yv6+`+joj9C(K{&XhF=SElmNxR#+wlAQ zr9SiH&8g@497x^nK$g3D7{c;*GboTp=sAV-3 z3&L_ogB+mtOFnob;+WowpR{>WdQ#1!wH~eOM{8c-`USMP3T^2N{G-a8)5dh0YfA^3 zFaa0=3Ip-lq=APa;E$J*G@RIjJ01LcLFnBT%pni#@Ve+h=VtsrlzyoC$#9{4w5}el z@nTe7K!X9~_)c;Dpc!mvLpi`!tSw8Rku+4><&XwO@#}Dq{K$vDgJ%Jpf(>f@SIA>) zv0k$if)&hhh(*da{M8TDJQ*&)o;h6jzWIvuiW+W|Nh~$+tO{U3X=cK*OieBb|DG%l+3;3+tta4Jh`|%mzGAHiM7;^*9zG>|X`Lh+$&l`{paEUQzpV>E{6z z1SOsOzm&k?=rn;;{~60z!=W18ee*Z zM_EusW19;xHpv7D4Tc}&vghy>)vsvu^T2>>6waaqkoE%oVl8*)^2}mb#5GhQWBk?6 zVmJjPU`E5N+`q+G1`V#E8vP6bHeR3yTX@I)*Y_{>$41=3KGWzl z3TNYv#$oR5Kqf95(#9GAlYA302$iqXCxz29q;iIKbnY@^^iZ)*P;hjB2 zhPJPWNR_g9rqigl@}C3I58zpOWPlbYAs86QTG8Kp(&;>OVq+R#FwIyDA&D&n!0dn` z;Injcc2)9(HEKK~oT@pE5U|}H&VH-r+dRanvc>=y0~sD-TMArZk(xWZSCXLO&;@L( zva16aAOXJPGc_ZOaw`EphlGIIj?h4unz0AYll~duRPAYbzwoW9Z^H$6KyqBxR9FYU zgT4(vzN4SIf7CU5)S!y?V6E$!0c;c;K|kOzN&^y%pCQQWgvQJ7=vRvYeQ@^elIe;k7TcNmc|^WDU1StzwZqOfKg*5C{6tI;02+< zD2~w2aC+#cjRxA(2Gb2GIq88sV*4S8;ns#2+R(FV)waRFHvF;3d{uf?^=r~=v1W^9 zbGaU&0-e+HZUwbafi^m+u?|8ka`$l?*N6*Z)b!*j@hybE<-kVk}DSb3&Q0a(i@Ta zxWg#GW5p44AQ+1nnj^mDTN;GX(Erj0c>)Ul`U#Dm5NXp~2`~B|yLpFs8~7eMdH{g( z>8H}Cs>@;$(?$gt?`_gB;Q1S>-r#I}?_sAng)n%Sh;W&p03PA!EZ@>#g#sHHzF?I@ z?obD9O!W`3d++x_Yz8L(Y!61`T>fnZ4kH^sRrP6nzzn2FgXETQbGCou0Jb>w3+WeO zy?@LE43Yq5LxZ^pcNj&_aPt!+i~hF^=_B&sKWuehtB3Pj0%P{ZX6$NGw&TYHg(Sh; zVvzRGh+n|N5de*;!=3jBbtei6*{3o}?X=2c9jaYy59WXoXllS6*U;NLQ!)-f8j znzy>Y&0iPhn;`FsyFQu{#pfCRS#96SVXv z=9o*JIe1#X)V;_9Jb)Kvp9*0PE0#B{7H#(}x@iYFu)VP#d*j>rM<*t1dR4A6PfABc4aJlfFUR3U*W%Ym&(l5!hm#n?XuAdlD7<1z(-A8warV&SG1XEUkj z@4uxXrl9pcLvWHL&~vcm*TJ15+=92`XE;1y1q=Z0KU(AZqL2?j+A0B=~rDTGTxB7>FT zHxlT962X{z`rkh2L2y0p#8r+1A7Mc z4D1=$Gq7i1&%mC6Jp+3N{>ltg)nD1bx$61rbZlqs?q5~!(*L@_{to@G*v#4;|NL3S z@PB8)5AI>0*%bh|hk_mQ--P$O%YXiwBLwV*|G4b&o%ru20n>J1$iGzjx6eT4-G={x z;BRldvxx85-)a5_3p*nqqrap4cL?Hd!|vw#>+HuhxU>AT;T_(7ckKDz{GNe51A7Mc z4D1=$Gq7i1&%mC6Jp+3N_6+P9*fX$aV9&swfz1rWuJKOaTd`@lOZ!;g;l3$*raRoV z#`mzl!)?>B9T~X0e>;9}7!in9H#_^cTkAxBm(F+W@9qkK{d{x1v+(Z??-}?jFz|me CEkq*# literal 0 HcmV?d00001 diff --git a/mods/ra/maps/Survival01/map.yaml b/mods/ra/maps/Survival01/map.yaml new file mode 100644 index 0000000000..7fabdc1b5f --- /dev/null +++ b/mods/ra/maps/Survival01/map.yaml @@ -0,0 +1,1304 @@ +Selectable: True + +MapFormat: 5 + +Title: Survivial01 + +Description: Survive! + +Author: Nuke'm Bro. + +Tileset: TEMPERAT + +Difficulties: Easy,Normal,Hard + +MapSize: 96,64 + +Bounds: 4,4,88,56 + +UseAsShellmap: False + +Type: Campaign + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Race: allies + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + Race: allies + PlayerReference@Allies: + Name: Allies + Playable: True + AllowBots: False + LockRace: True + Race: allies + LockColor: True + ColorRamp: 115,240,130,10 + LockSpawn: True + LockTeam: True + Enemies: Soviets + PlayerReference@Soviets: + Name: Soviets + Race: soviet + ColorRamp: 0,255,128,10 + Enemies: Allies + +Actors: + Actor113: fenc + Location: 46,54 + Owner: Allies + Actor115: fenc + Location: 46,55 + Owner: Allies + Actor88: brik + Location: 48,54 + Owner: Allies + Actor84: hpad + Location: 66,47 + Owner: Allies + Actor5: brik + Location: 72,55 + Owner: Allies + Actor4: brik + Location: 72,54 + Owner: Allies + Actor6: brik + Location: 72,53 + Owner: Allies + Actor77: brik + Location: 67,57 + Owner: Allies + Actor8: brik + Location: 72,52 + Owner: Allies + Actor9: brik + Location: 72,51 + Owner: Allies + Actor13: brik + Location: 75,50 + Owner: Allies + Actor12: brik + Location: 75,51 + Owner: Allies + Actor11: brik + Location: 74,51 + Owner: Allies + Actor10: brik + Location: 73,51 + Owner: Allies + Actor14: brik + Location: 75,49 + Owner: Allies + Actor15: brik + Location: 75,48 + Owner: Allies + Actor16: brik + Location: 76,48 + Owner: Allies + Actor17: brik + Location: 76,47 + Owner: Allies + Actor18: brik + Location: 75,47 + Owner: Allies + Actor19: brik + Location: 75,41 + Owner: Allies + Actor20: brik + Location: 75,42 + Owner: Allies + Actor21: brik + Location: 76,42 + Owner: Allies + Actor22: brik + Location: 76,41 + Owner: Allies + Actor23: brik + Location: 74,41 + Owner: Allies + Actor24: brik + Location: 73,41 + Owner: Allies + Actor25: brik + Location: 72,41 + Owner: Allies + Actor26: brik + Location: 71,41 + Owner: Allies + Actor27: brik + Location: 71,40 + Owner: Allies + Actor28: brik + Location: 70,40 + Owner: Allies + Actor29: brik + Location: 70,41 + Owner: Allies + Actor30: brik + Location: 61,40 + Owner: Allies + Actor31: brik + Location: 61,41 + Owner: Allies + Actor83: hpad + Location: 57,48 + Owner: Allies + Actor33: brik + Location: 60,40 + Owner: Allies + Actor1: brik + Location: 57,56 + Owner: Allies + Actor35: brik + Location: 59,40 + Owner: Allies + Actor36: brik + Location: 58,40 + Owner: Allies + Actor37: brik + Location: 57,40 + Owner: Allies + Actor38: brik + Location: 57,41 + Owner: Allies + Actor39: brik + Location: 56,41 + Owner: Allies + Actor40: brik + Location: 55,41 + Owner: Allies + Actor41: brik + Location: 54,41 + Owner: Allies + Actor42: brik + Location: 53,41 + Owner: Allies + Actor43: brik + Location: 53,42 + Owner: Allies + Actor44: brik + Location: 52,42 + Owner: Allies + Actor45: brik + Location: 51,42 + Owner: Allies + Actor46: brik + Location: 50,42 + Owner: Allies + Actor47: brik + Location: 49,42 + Owner: Allies + Actor48: brik + Location: 48,42 + Owner: Allies + Actor49: brik + Location: 48,43 + Owner: Allies + Actor50: brik + Location: 49,43 + Owner: Allies + Actor51: brik + Location: 48,52 + Owner: Allies + Actor52: brik + Location: 48,51 + Owner: Allies + Actor53: brik + Location: 48,50 + Owner: Allies + Actor54: brik + Location: 48,49 + Owner: Allies + Actor55: brik + Location: 48,48 + Owner: Allies + Actor71: brik + Location: 64,56 + Owner: Allies + Actor58: brik + Location: 46,47 + Owner: Allies + Actor57: brik + Location: 46,48 + Owner: Allies + Actor56: brik + Location: 47,48 + Owner: Allies + Actor59: brik + Location: 47,47 + Owner: Allies + Actor72: brik + Location: 64,57 + Owner: Allies + Actor65: brik + Location: 51,57 + Owner: Allies + Actor66: brik + Location: 50,57 + Owner: Allies + Actor61: brik + Location: 55,57 + Owner: Allies + Actor2: brik + Location: 57,57 + Owner: Allies + Actor34: brik + Location: 56,57 + Owner: Allies + Actor62: brik + Location: 54,57 + Owner: Allies + Actor74: brik + Location: 63,56 + Owner: Allies + Actor79: brik + Location: 65,57 + Owner: Allies + Actor80: apwr + Location: 68,53 + Owner: Allies + Actor81: powr + Location: 65,53 + Owner: Allies + Actor63: brik + Location: 53,57 + Owner: Allies + Actor64: brik + Location: 52,57 + Owner: Allies + Actor68: brik + Location: 72,57 + Owner: Allies + Actor73: brik + Location: 63,57 + Owner: Allies + Actor69: brik + Location: 71,57 + Owner: Allies + Actor76: brik + Location: 68,57 + Owner: Allies + Actor78: brik + Location: 66,57 + Owner: Allies + Actor75: brik + Location: 69,57 + Owner: Allies + Actor70: brik + Location: 70,57 + Owner: Allies + Actor7: brik + Location: 72,56 + Owner: Allies + Actor60: brik + Location: 56,56 + Owner: Allies + Actor 408: weap + Location: 53,46 + Owner: Allies + Actor32: tent + Location: 62,47 + Owner: Allies + Actor0: brik + Location: 48,53 + Owner: Allies + Actor111: proc + Location: 43,55 + Owner: Allies + Actor112: fenc + Location: 45,54 + Owner: Allies + Actor116: fenc + Location: 46,56 + Owner: Allies + Actor89: fenc + Location: 65,46 + Owner: Allies + Actor90: fenc + Location: 66,46 + Owner: Allies + Actor91: fenc + Location: 67,46 + Owner: Allies + Actor92: fenc + Location: 68,46 + Owner: Allies + Actor93: fenc + Location: 68,47 + Owner: Allies + Actor94: fenc + Location: 68,48 + Owner: Allies + Actor95: fenc + Location: 68,49 + Owner: Allies + Actor96: fenc + Location: 57,47 + Owner: Allies + Actor97: fenc + Location: 58,47 + Owner: Allies + Actor98: fenc + Location: 59,47 + Owner: Allies + Actor99: fenc + Location: 59,48 + Owner: Allies + Actor100: fenc + Location: 59,49 + Owner: Allies + Actor101: fix + Location: 50,52 + Owner: Allies + Actor102: dome + Location: 55,53 + Owner: Allies + Actor103: powr + Location: 58,41 + Owner: Allies + Actor104: apwr + Location: 71,47 + Owner: Allies + Actor105: fact + Location: 59,51 + Owner: Allies + Actor106: powr + Location: 55,42 + Owner: Allies + Actor107: gun + Location: 64,42 + Owner: Allies + Actor108: pbox.e1 + Location: 67,42 + Owner: Allies + Actor109: pbox.e1 + Location: 74,45 + Owner: Allies + Actor110: gun + Location: 50,45 + Owner: Allies + Actor114: fenc + Location: 44,54 + Owner: Allies + Actor118: fenc + Location: 42,57 + Owner: Allies + Actor117: fenc + Location: 46,57 + Owner: Allies + Actor67: brik + Location: 49,57 + Owner: Allies + Actor82: brik + Location: 48,57 + Owner: Allies + Actor85: brik + Location: 48,56 + Owner: Allies + Actor87: brik + Location: 48,55 + Owner: Allies + Actor86: brik + Location: 49,56 + Owner: Allies + Actor119: fenc + Location: 42,56 + Owner: Allies + Actor120: mine + Location: 30,58 + Owner: Neutral + Actor121: oilb + Location: 43,38 + Owner: Neutral + Actor122: oilb + Location: 36,37 + Owner: Neutral + Actor124: oilb + Location: 88,46 + Owner: Allies + Actor123: oilb + Location: 80,46 + Owner: Allies + Actor130: fenc + Location: 88,48 + Owner: Neutral + Actor129: fenc + Location: 89,48 + Owner: Neutral + Actor125: fenc + Location: 90,45 + Owner: Neutral + Actor127: fenc + Location: 90,47 + Owner: Neutral + Actor126: fenc + Location: 90,46 + Owner: Neutral + Actor128: fenc + Location: 90,48 + Owner: Neutral + Actor131: fenc + Location: 87,48 + Owner: Neutral + Actor141: fenc + Location: 78,11 + Owner: Soviets + Actor403: sam + Location: 76,11 + Owner: Soviets + Actor134: afld + Location: 86,5 + Owner: Soviets + Actor133: afld + Location: 80,6 + Owner: Soviets + Actor132: afld + Location: 75,5 + Owner: Soviets + Actor160: fenc + Location: 77,4 + Owner: Soviets + Actor159: fenc + Location: 76,4 + Owner: Soviets + Actor162: fenc + Location: 74,4 + Owner: Soviets + Actor161: fenc + Location: 78,4 + Owner: Soviets + Actor136: fenc + Location: 75,11 + Owner: Soviets + Actor137: fenc + Location: 75,10 + Owner: Soviets + Actor138: fenc + Location: 76,10 + Owner: Soviets + Actor139: fenc + Location: 77,10 + Owner: Soviets + Actor140: fenc + Location: 78,10 + Owner: Soviets + Actor143: barl + Location: 79,6 + Owner: Soviets + Actor144: brl3 + Location: 74,5 + Owner: Soviets + Actor145: brl3 + Location: 75,7 + Owner: Soviets + Actor146: barl + Location: 74,6 + Owner: Soviets + Actor147: barl + Location: 80,5 + Owner: Soviets + Actor148: brl3 + Location: 84,6 + Owner: Soviets + Actor149: brl3 + Location: 85,5 + Owner: Soviets + Actor150: brl3 + Location: 83,6 + Owner: Soviets + Actor151: barl + Location: 84,5 + Owner: Soviets + Actor142: brl3 + Location: 79,5 + Owner: Soviets + Actor152: barl + Location: 82,6 + Owner: Soviets + Actor153: barl + Location: 84,7 + Owner: Soviets + Actor154: barl + Location: 85,6 + Owner: Soviets + Actor155: barl + Location: 89,5 + Owner: Soviets + Actor171: fenc + Location: 87,4 + Owner: Soviets + Actor172: fenc + Location: 88,4 + Owner: Soviets + Actor156: brl3 + Location: 90,5 + Owner: Soviets + Actor170: fenc + Location: 86,4 + Owner: Soviets + Actor169: fenc + Location: 85,4 + Owner: Soviets + Actor158: fenc + Location: 75,4 + Owner: Soviets + Actor168: fenc + Location: 84,4 + Owner: Soviets + Actor157: barl + Location: 90,6 + Owner: Soviets + Actor167: fenc + Location: 83,4 + Owner: Soviets + Actor166: fenc + Location: 82,4 + Owner: Soviets + Actor165: fenc + Location: 81,4 + Owner: Soviets + Actor164: fenc + Location: 80,4 + Owner: Soviets + Actor163: fenc + Location: 79,4 + Owner: Soviets + Actor173: fenc + Location: 89,4 + Owner: Soviets + Actor174: fenc + Location: 90,4 + Owner: Soviets + Actor175: fenc + Location: 91,4 + Owner: Soviets + Actor176: fenc + Location: 91,5 + Owner: Soviets + Actor177: fenc + Location: 91,6 + Owner: Soviets + Actor178: fenc + Location: 91,7 + Owner: Soviets + Actor179: fenc + Location: 91,8 + Owner: Soviets + Actor180: fenc + Location: 90,8 + Owner: Soviets + Actor181: fenc + Location: 90,7 + Owner: Soviets + Actor183: proc + Location: 81,11 + Owner: Soviets + Actor187: t11 + Location: 69,10 + Owner: Neutral + Actor186: t16 + Location: 58,6 + Owner: Neutral + Actor185: tc04 + Location: 57,8 + Owner: Neutral + Actor184: mine + Location: 85,22 + Owner: Neutral + Actor188: tc01 + Location: 69,6 + Owner: Neutral + Actor189: t12 + Location: 62,13 + Owner: Neutral + Actor193: fenc + Location: 75,16 + Owner: Soviets + Actor194: fenc + Location: 75,15 + Owner: Soviets + Actor191: fenc + Location: 74,15 + Owner: Soviets + Actor192: fenc + Location: 74,16 + Owner: Soviets + Actor195: ftur + Location: 78,17 + Owner: Soviets + Actor190: fenc + Location: 74,14 + Owner: Soviets + Actor198: apwr + Location: 88,12 + Owner: Soviets + Actor196: silo + Location: 84,13 + Owner: Soviets + Actor197: silo + Location: 84,12 + Owner: Soviets + Actor199: e1 + Location: 79,15 + Owner: Soviets + Actor200: e2 + Location: 81,17 + Owner: Soviets + Actor201: v2rl + Location: 76,15 + Owner: Soviets + Actor202: tc04 + Location: 4,15 + Owner: Soviets + Actor203: tc01 + Location: 7,17 + Owner: Soviets + Actor204: t15 + Location: 9,16 + Owner: Neutral + Actor205: tc05 + Location: 4,26 + Owner: Neutral + Actor206: tc02 + Location: 5,24 + Owner: Neutral + Actor207: tc04 + Location: 7,25 + Owner: Neutral + Actor208: tc03 + Location: 40,21 + Owner: Neutral + Sam1: sam + Location: 62,27 + Owner: Soviets + Actor210: tc04 + Location: 34,22 + Owner: Neutral + Actor211: tc02 + Location: 32,33 + Owner: Neutral + Actor212: t16 + Location: 35,33 + Owner: Neutral + Actor213: t11 + Location: 49,37 + Owner: Neutral + Actor214: tc04 + Location: 82,39 + Owner: Neutral + Actor215: tc01 + Location: 89,39 + Owner: Neutral + Actor216: tc05 + Location: 85,39 + Owner: Neutral + Actor217: t16 + Location: 80,41 + Owner: Neutral + Actor218: fenc + Location: 79,48 + Owner: Neutral + Actor219: fenc + Location: 80,48 + Owner: Neutral + Actor220: fenc + Location: 81,48 + Owner: Neutral + Actor221: fenc + Location: 82,48 + Owner: Neutral + Actor222: fenc + Location: 82,47 + Owner: Neutral + Actor223: tc02 + Location: 21,41 + Owner: Neutral + Actor224: tc04 + Location: 35,43 + Owner: Neutral + Actor225: tc02 + Location: 38,44 + Owner: Neutral + Actor226: t16 + Location: 38,42 + Owner: Neutral + Actor227: t13 + Location: 44,33 + Owner: Neutral + Actor228: t02 + Location: 39,31 + Owner: Neutral + Actor229: tc04 + Location: 54,13 + Owner: Neutral + Actor230: t07 + Location: 47,12 + Owner: Neutral + Actor235: brik + Location: 12,18 + Owner: Neutral + Actor267: brik + Location: 33,17 + Owner: Neutral + Actor237: brik + Location: 11,19 + Owner: Neutral + Actor231: brik + Location: 11,16 + Owner: Neutral + Actor238: brik + Location: 12,19 + Owner: Neutral + Actor232: brik + Location: 11,17 + Owner: Neutral + Actor243: ftur + Location: 23,16 + Owner: Soviets + Actor244: ftur + Location: 29,13 + Owner: Soviets + Actor307: v2rl + Location: 31,9 + Owner: Soviets + Actor306: v2rl + Location: 31,18 + Owner: Soviets + Actor241: dome + Location: 14,16 + Owner: Soviets + Actor239: apwr + Location: 24,5 + Owner: Soviets + Actor234: brik + Location: 12,16 + Owner: Neutral + Actor233: brik + Location: 12,17 + Owner: Neutral + Actor236: brik + Location: 11,18 + Owner: Neutral + Actor293: brik + Location: 25,4 + Owner: Neutral + Actor291: brik + Location: 26,4 + Owner: Neutral + Actor295: brik + Location: 23,4 + Owner: Neutral + Actor294: brik + Location: 24,4 + Owner: Neutral + Actor290: brik + Location: 27,4 + Owner: Neutral + Actor289: brik + Location: 28,4 + Owner: Neutral + Actor288: brik + Location: 29,4 + Owner: Neutral + Actor287: brik + Location: 30,4 + Owner: Neutral + Actor286: brik + Location: 31,4 + Owner: Neutral + Actor285: brik + Location: 32,5 + Owner: Neutral + Actor284: brik + Location: 32,4 + Owner: Neutral + Actor283: brik + Location: 33,4 + Owner: Neutral + Actor261: brik + Location: 29,19 + Owner: Neutral + Actor262: brik + Location: 30,19 + Owner: Neutral + Actor260: brik + Location: 28,19 + Owner: Neutral + Actor265: brik + Location: 32,18 + Owner: Neutral + Actor259: brik + Location: 27,19 + Owner: Neutral + Sam2: sam + Location: 17,31 + Owner: Soviets + Actor264: brik + Location: 32,19 + Owner: Neutral + Actor246: brik + Location: 14,19 + Owner: Neutral + Actor242: brik + Location: 13,19 + Owner: Neutral + Actor263: brik + Location: 31,19 + Owner: Neutral + Actor266: brik + Location: 33,18 + Owner: Neutral + Actor247: brik + Location: 15,19 + Owner: Neutral + Actor248: brik + Location: 16,19 + Owner: Neutral + Actor249: brik + Location: 17,19 + Owner: Neutral + Actor251: brik + Location: 19,19 + Owner: Neutral + Actor250: brik + Location: 18,19 + Owner: Neutral + Actor254: brik + Location: 19,18 + Owner: Neutral + Actor253: brik + Location: 20,18 + Owner: Neutral + Actor252: brik + Location: 20,19 + Owner: Neutral + Actor281: brik + Location: 33,6 + Owner: Neutral + Actor277: brik + Location: 33,9 + Owner: Neutral + Actor276: brik + Location: 32,10 + Owner: Neutral + Actor270: brik + Location: 33,15 + Owner: Neutral + Actor278: brik + Location: 33,8 + Owner: Neutral + Actor275: brik + Location: 33,10 + Owner: Neutral + Actor274: brik + Location: 33,11 + Owner: Neutral + Actor273: brik + Location: 32,15 + Owner: Neutral + Actor271: brik + Location: 32,16 + Owner: Neutral + Actor282: brik + Location: 33,5 + Owner: Neutral + Actor272: brik + Location: 32,11 + Owner: Neutral + Actor279: brik + Location: 33,7 + Owner: Neutral + Actor269: brik + Location: 33,16 + Owner: Neutral + Actor268: brik + Location: 33,19 + Owner: Neutral + Actor420: weap + Location: 22,12 + Owner: Soviets + Actor240: apwr + Location: 16,13 + Owner: Soviets + Actor258: brik + Location: 26,18 + Owner: Neutral + Actor255: brik + Location: 25,18 + Owner: Neutral + Actor256: brik + Location: 25,19 + Owner: Neutral + Actor257: brik + Location: 26,19 + Owner: Neutral + Actor309: e1 + Location: 52,44 + Owner: Allies + Barrack1: barr + Location: 28,7 + Owner: Soviets + Actor305: v2rl + Location: 17,18 + Owner: Soviets + Actor304: e3 + Location: 17,17 + Owner: Soviets + Actor303: e1 + Location: 29,15 + Owner: Soviets + Actor300: e1 + Location: 25,16 + Owner: Soviets + Actor301: e2 + Location: 21,17 + Owner: Soviets + Actor302: e3 + Location: 28,10 + Owner: Soviets + sovietRallyPoint3: waypoint + Location: 37,13 + Owner: Neutral + sovietRallyPoint2: waypoint + Location: 23,21 + Owner: Neutral + Actor404: sam + Location: 29,17 + Owner: Soviets + sovietRallyPoint1: waypoint + Location: 23,39 + Owner: Neutral + Actor310: e1 + Location: 50,47 + Owner: Allies + Actor311: e1 + Location: 62,43 + Owner: Allies + Actor312: e1 + Location: 64,44 + Owner: Allies + Actor313: e3 + Location: 66,44 + Owner: Allies + Actor314: e1 + Location: 69,43 + Owner: Allies + Actor315: e1 + Location: 73,43 + Owner: Allies + Actor316: jeep + Location: 54,49 + Owner: Allies + Actor317: 1tnk + Location: 69,45 + Owner: Allies + Actor318: 1tnk + Location: 52,46 + Owner: Allies + sovietEntryPoint1: waypoint + Location: 4,31 + Owner: Neutral + sovietEntryPoint2: waypoint + Location: 4,21 + Owner: Neutral + sovietEntryPoint3: waypoint + Location: 37,4 + Owner: Neutral + sovietEntryPoint4: waypoint + Location: 65,4 + Owner: Neutral + sovietEntryPoint5: waypoint + Location: 91,19 + Owner: Neutral + sovietEntryPoint7: waypoint + Location: 91,43 + Owner: Neutral + alliesEntryPoint: waypoint + Location: 60,59 + Owner: Neutral + Actor296: tc02 + Location: 73,32 + Owner: Neutral + Actor298: tc01 + Location: 77,34 + Owner: Neutral + Actor299: tc04 + Location: 83,35 + Owner: Neutral + Actor308: tc01 + Location: 86,35 + Owner: Neutral + Actor319: t07 + Location: 90,27 + Owner: Neutral + Actor320: tc01 + Location: 80,26 + Owner: Neutral + alliesbase1: waypoint + Location: 66,45 + Owner: Neutral + alliesbase2: waypoint + Location: 51,46 + Owner: Neutral + alliesbase3: waypoint + Location: 72,45 + Owner: Neutral + alliesbase: waypoint + Location: 60,48 + Owner: Neutral + sovietRallyPoint4: waypoint + Location: 65,13 + Owner: Neutral + sovietRallyPoint5: waypoint + Location: 80,19 + Owner: Neutral + Actor321: brik + Location: 60,41 + Owner: Allies + BadgerEntryPoint1: waypoint + Location: 1,54 + Owner: Neutral + BadgerEntryPoint2: waypoint + Location: 1,47 + Owner: Neutral + ParaDrop1: waypoint + Location: 54,51 + Owner: Neutral + ParaDrop2: waypoint + Location: 67,51 + Owner: Neutral + ParaBomb1: waypoint + Location: 69,54 + Owner: Neutral + ParaBomb2: waypoint + Location: 72,48 + Owner: Neutral + Actor135: e1 + Location: 63,39 + Owner: Soviets + Actor209: e2 + Location: 65,40 + Owner: Soviets + Actor280: e1 + Location: 68,40 + Owner: Soviets + Actor292: e1 + Location: 76,44 + Owner: Soviets + Actor322: e2 + Location: 78,46 + Owner: Soviets + Actor323: e1 + Location: 46,44 + Owner: Soviets + Actor324: e3 + Location: 45,46 + Owner: Soviets + Actor325: e3 + Location: 66,39 + Owner: Soviets + Actor326: v2rl + Location: 61,37 + Owner: Soviets + Actor327: brl3 + Location: 79,47 + Owner: Allies + Actor328: barl + Location: 79,46 + Owner: Allies + Actor329: brl3 + Location: 87,45 + Owner: Allies + Actor330: barl + Location: 87,46 + Owner: Allies + Actor331: barl + Location: 88,45 + Owner: Allies + Actor332: oilb + Location: 74,53 + Owner: Allies + Actor333: fenc + Location: 73,55 + Owner: Allies + Actor334: fenc + Location: 74,55 + Owner: Allies + Actor335: fenc + Location: 75,55 + Owner: Allies + Actor336: fenc + Location: 75,52 + Owner: Allies + Actor337: fenc + Location: 76,52 + Owner: Allies + Actor338: fenc + Location: 74,52 + Owner: Allies + Actor339: brl3 + Location: 73,53 + Owner: Allies + Actor340: barl + Location: 73,52 + Owner: Allies + Actor3: spef + Location: 13,9 + Owner: Soviets + Factory: waypoint + Location: 23,13 + Owner: Neutral + Actor297: brik + Location: 22,4 + Owner: Neutral + Actor341: brik + Location: 21,4 + Owner: Neutral + Actor342: brik + Location: 21,5 + Owner: Neutral + Actor343: brik + Location: 22,5 + Owner: Neutral + SovietInfantryEntry1: waypoint + Location: 28,9 + Owner: Neutral + SovietInfantryRally1: waypoint + Location: 23,26 + Owner: Neutral + Actor346: t15 + Location: 57,24 + Owner: Neutral + +Smudges: + +Rules: + World: + -CrateDrop: + -SpawnMPUnits: + -MPStartLocations: + Survival01Script: + MissionObjectivesPanel: + ObjectivesPanel: MISSION_OBJECTIVES + TENT: + ProvidesCustomPrerequisite: + Prerequisite: barracks + GUN: + Valued: + Cost: 1000 + BARR: + ProvidesCustomPrerequisite: + Prerequisite: barracks + Buildable: + Owner: None + MEDI: + Buildable: + Prerequisites: barracks + SPY: + Buildable: + Prerequisites: barracks, dome + MIG: + Buildable: + Owner: None + YAK: + Buildable: + Owner: None + HELI: + Buildable: + Owner: None + SS: + Buildable: + Owner: None + MSUB: + Buildable: + Owner: None + DD: + Buildable: + Owner: None + CA: + Buildable: + Owner: None + PT: + Buildable: + Owner: None + MSLO: + Buildable: + Owner: None + GAP: + Buildable: + Owner: None + SPEN: + Buildable: + Owner: None + SYRD: + Buildable: + Owner: None + IRON: + Buildable: + Owner: None + PDOX: + Buildable: + Owner: None + TSLA: + Buildable: + Owner: None + AGUN: + Buildable: + Owner: None + FTUR: + Buildable: + Owner: None + SAM: + Buildable: + Owner: None + ATEK: + Buildable: + Owner: None + AFLD: + Buildable: + Owner: None + STEK: + Buildable: + Owner: None + 4TNK: + Buildable: + Owner: None + MCV: + Buildable: + Owner: None + APC: + Buildable: + Owner: None + MNLY.AP: + Buildable: + Owner: None + MNLY.AT: + Buildable: + Owner: None + TTNK: + Buildable: + Owner: None + FTRK: + Buildable: + Owner: None + CTNK: + Buildable: + Owner: None + DOME: + Buildable: + Owner: None + BRIK: + Buildable: + Owner: None + +Sequences: + +Weapons: + +Voices: + +Notifications: