From 809f57e48d0522d34adaff3016f695f721a631f1 Mon Sep 17 00:00:00 2001 From: dtluna Date: Tue, 11 Dec 2018 15:45:48 +0300 Subject: [PATCH] Add Nod 10b mission --- mods/cnc/maps/nod10b/map.bin | Bin 0 -> 20497 bytes mods/cnc/maps/nod10b/map.png | Bin 0 -> 20927 bytes mods/cnc/maps/nod10b/map.yaml | 722 ++++++++++++++++++++++++++++++++ mods/cnc/maps/nod10b/nod10b.lua | 172 ++++++++ mods/cnc/maps/nod10b/rules.yaml | 54 +++ mods/cnc/missions.yaml | 1 + 6 files changed, 949 insertions(+) create mode 100644 mods/cnc/maps/nod10b/map.bin create mode 100644 mods/cnc/maps/nod10b/map.png create mode 100644 mods/cnc/maps/nod10b/map.yaml create mode 100644 mods/cnc/maps/nod10b/nod10b.lua create mode 100644 mods/cnc/maps/nod10b/rules.yaml diff --git a/mods/cnc/maps/nod10b/map.bin b/mods/cnc/maps/nod10b/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..69aa730016315b8f2fc54bafa2c71fa0ace9af8e GIT binary patch literal 20497 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 literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/nod10b/map.yaml b/mods/cnc/maps/nod10b/map.yaml new file mode 100644 index 0000000000..23d7523f06 --- /dev/null +++ b/mods/cnc/maps/nod10b/map.yaml @@ -0,0 +1,722 @@ +MapFormat: 11 + +RequiresMod: cnc + +Title: 10b: Destroy the Mammoth Tank Facility + +Author: Westwood Studios + +Tileset: DESERT + +MapSize: 64,64 + +Bounds: 5,8,56,51 + +Visibility: MissionSelector + +Categories: Campaign + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: gdi + PlayerReference@Creeps: + Name: Creeps + NonCombatant: True + Faction: Random + PlayerReference@GDI: + Name: GDI + Faction: gdi + Color: F6D679 + Enemies: Nod + PlayerReference@Nod: + Name: Nod + AllowBots: False + Playable: True + Required: True + Faction: nod + LockColor: True + Color: FE1100 + LockSpawn: True + LockTeam: True + Enemies: GDI +Actors: + Actor0: brik + Location: 38,55 + Owner: Neutral + Actor1: brik + Location: 37,55 + Owner: Neutral + Actor2: brik + Location: 36,55 + Owner: Neutral + Actor3: brik + Location: 35,55 + Owner: Neutral + Actor4: brik + Location: 34,55 + Owner: Neutral + Actor5: brik + Location: 33,55 + Owner: Neutral + Actor6: brik + Location: 32,55 + Owner: Neutral + Actor7: brik + Location: 31,55 + Owner: Neutral + Actor8: brik + Location: 30,55 + Owner: Neutral + Actor9: brik + Location: 29,55 + Owner: Neutral + Actor10: brik + Location: 28,55 + Owner: Neutral + Actor11: brik + Location: 27,55 + Owner: Neutral + Actor12: brik + Location: 26,55 + Owner: Neutral + Actor13: brik + Location: 25,55 + Owner: Neutral + Actor14: brik + Location: 24,55 + Owner: Neutral + Actor15: brik + Location: 23,55 + Owner: Neutral + Actor16: brik + Location: 22,55 + Owner: Neutral + Actor17: brik + Location: 21,55 + Owner: Neutral + Actor18: brik + Location: 20,55 + Owner: Neutral + Actor19: brik + Location: 19,55 + Owner: Neutral + Actor20: brik + Location: 18,55 + Owner: Neutral + Actor21: brik + Location: 17,55 + Owner: Neutral + Actor22: brik + Location: 38,54 + Owner: Neutral + Actor23: brik + Location: 37,54 + Owner: Neutral + Actor24: cycl + Location: 30,54 + Owner: Neutral + Actor25: cycl + Location: 29,54 + Owner: Neutral + Actor26: cycl + Location: 28,54 + Owner: Neutral + Actor27: cycl + Location: 27,54 + Owner: Neutral + Actor28: cycl + Location: 26,54 + Owner: Neutral + Actor29: cycl + Location: 25,54 + Owner: Neutral + Actor30: cycl + Location: 24,54 + Owner: Neutral + Actor31: cycl + Location: 23,54 + Owner: Neutral + Actor32: brik + Location: 17,54 + Owner: Neutral + Actor33: brik + Location: 38,53 + Owner: Neutral + Actor34: cycl + Location: 30,53 + Owner: Neutral + Actor35: cycl + Location: 23,53 + Owner: Neutral + Actor36: brik + Location: 17,53 + Owner: Neutral + Actor37: brik + Location: 38,52 + Owner: Neutral + Actor38: cycl + Location: 30,52 + Owner: Neutral + Actor39: cycl + Location: 23,52 + Owner: Neutral + Actor40: brik + Location: 17,52 + Owner: Neutral + Actor41: brik + Location: 38,51 + Owner: Neutral + Actor42: cycl + Location: 30,51 + Owner: Neutral + Actor43: cycl + Location: 23,51 + Owner: Neutral + Actor44: brik + Location: 18,51 + Owner: Neutral + Actor45: brik + Location: 17,51 + Owner: Neutral + Actor46: brik + Location: 38,50 + Owner: Neutral + Actor47: cycl + Location: 30,50 + Owner: Neutral + Actor48: cycl + Location: 29,50 + Owner: Neutral + Actor49: cycl + Location: 28,50 + Owner: Neutral + Actor50: cycl + Location: 25,50 + Owner: Neutral + Actor51: cycl + Location: 24,50 + Owner: Neutral + Actor52: cycl + Location: 23,50 + Owner: Neutral + Actor53: brik + Location: 18,50 + Owner: Neutral + Actor54: brik + Location: 17,50 + Owner: Neutral + Actor55: brik + Location: 38,49 + Owner: Neutral + Actor56: brik + Location: 38,48 + Owner: Neutral + Actor57: brik + Location: 37,48 + Owner: Neutral + Actor58: brik + Location: 38,47 + Owner: Neutral + Actor59: brik + Location: 37,47 + Owner: Neutral + Actor60: brik + Location: 36,47 + Owner: Neutral + Actor61: brik + Location: 35,47 + Owner: Neutral + Actor62: brik + Location: 18,47 + Owner: Neutral + Actor63: brik + Location: 17,47 + Owner: Neutral + Actor64: brik + Location: 35,46 + Owner: Neutral + Actor65: brik + Location: 18,46 + Owner: Neutral + Actor66: brik + Location: 17,46 + Owner: Neutral + Actor67: brik + Location: 35,45 + Owner: Neutral + Actor68: brik + Location: 17,45 + Owner: Neutral + Actor69: brik + Location: 35,44 + Owner: Neutral + Actor70: brik + Location: 17,44 + Owner: Neutral + Actor71: brik + Location: 35,43 + Owner: Neutral + Actor72: brik + Location: 17,43 + Owner: Neutral + Actor73: brik + Location: 35,42 + Owner: Neutral + Actor74: brik + Location: 34,42 + Owner: Neutral + Actor75: brik + Location: 29,42 + Owner: Neutral + Actor76: brik + Location: 28,42 + Owner: Neutral + Actor77: brik + Location: 23,42 + Owner: Neutral + Actor78: brik + Location: 22,42 + Owner: Neutral + Actor79: brik + Location: 18,42 + Owner: Neutral + Actor80: brik + Location: 17,42 + Owner: Neutral + Actor81: brik + Location: 35,41 + Owner: Neutral + Actor82: brik + Location: 34,41 + Owner: Neutral + Actor83: brik + Location: 33,41 + Owner: Neutral + Actor84: brik + Location: 32,41 + Owner: Neutral + Actor85: brik + Location: 31,41 + Owner: Neutral + Actor86: brik + Location: 30,41 + Owner: Neutral + Actor87: brik + Location: 29,41 + Owner: Neutral + Actor88: brik + Location: 28,41 + Owner: Neutral + Actor89: brik + Location: 23,41 + Owner: Neutral + Actor90: brik + Location: 22,41 + Owner: Neutral + Actor91: brik + Location: 21,41 + Owner: Neutral + Actor92: brik + Location: 20,41 + Owner: Neutral + Actor93: brik + Location: 19,41 + Owner: Neutral + Actor94: brik + Location: 18,41 + Owner: Neutral + Actor95: brik + Location: 17,41 + Owner: Neutral + Actor96: t18 + Location: 43,54 + Owner: Neutral + Actor97: t08 + Location: 42,56 + Owner: Neutral + Actor98: t18 + Location: 5,29 + Owner: Neutral + Actor99: t18 + Location: 13,31 + Owner: Neutral + Actor100: t18 + Location: 17,18 + Owner: Neutral + Actor101: t18 + Location: 30,15 + Owner: Neutral + Actor102: t18 + Location: 57,12 + Owner: Neutral + Actor103: t18 + Location: 36,23 + Owner: Neutral + Actor104: t18 + Location: 18,55 + Owner: Neutral + Actor105: t18 + Location: 35,45 + Owner: Neutral + Actor106: t18 + Location: 42,48 + Owner: Neutral + Actor107: t18 + Location: 54,48 + Owner: Neutral + Actor108: t08 + Location: 57,48 + Owner: Neutral + Actor109: t08 + Location: 57,51 + Owner: Neutral + Actor110: t08 + Location: 53,50 + Owner: Neutral + Actor111: t08 + Location: 54,51 + Owner: Neutral + Actor112: t08 + Location: 49,50 + Owner: Neutral + Actor113: t08 + Location: 48,49 + Owner: Neutral + Actor114: t08 + Location: 51,53 + Owner: Neutral + Actor115: t08 + Location: 46,52 + Owner: Neutral + Silo1: silo + Location: 22,43 + Owner: GDI + Silo2: silo + Location: 23,45 + Owner: GDI + WeaponsFactory: weap + Location: 35,49 + Owner: GDI + Actor119: v20 + Location: 56,46 + Owner: Neutral + Actor120: v21 + Location: 54,47 + Owner: Neutral + Actor121: v22 + Location: 48,47 + Owner: Neutral + Actor122: v23 + Location: 52,44 + Owner: Neutral + Actor123: v24 + Location: 57,48 + Owner: Neutral + Actor124: v25 + Location: 57,51 + Owner: Neutral + Actor125: v26 + Location: 47,50 + Owner: Neutral + Actor126: v27 + Location: 50,50 + Owner: Neutral + Actor127: v27 + Location: 51,50 + Owner: Neutral + Actor128: v27 + Location: 59,49 + Owner: Neutral + Actor129: v30 + Location: 59,52 + Owner: Neutral + Actor130: v31 + Location: 43,47 + Owner: Neutral + Actor131: v32 + Location: 42,48 + Owner: Neutral + Actor132: v20 + Location: 47,51 + Owner: Neutral + Actor133: v21 + Location: 52,51 + Owner: Neutral + Actor134: v22 + Location: 54,52 + Owner: Neutral + Actor135: v23 + Location: 44,48 + Owner: Neutral + Actor136: v24 + Location: 46,48 + Owner: Neutral + Actor137: v26 + Location: 54,50 + Owner: Neutral + CommCenter: hq + Location: 30,42 + Owner: GDI + ConYard: fact + Location: 32,44 + Owner: GDI + PowerPlant1: nuke + Location: 33,47 + Owner: GDI + PowerPlant2: nuke + Location: 18,43 + Owner: GDI + PowerPlant3: nuke + Location: 35,52 + Owner: GDI + PowerPlant4: nuke + Location: 20,42 + Owner: GDI + Barracks: pyle + Location: 30,45 + Owner: GDI + PowerPlant5: nuke + Location: 18,52 + Owner: GDI + GuardTower1: gtwr + Location: 23,40 + Owner: GDI + GuardTower2: gtwr + Location: 28,40 + Owner: GDI + Actor148: jeep + Location: 56,17 + Owner: GDI + Facing: 159 + Mammoth1: htnk + Location: 29,53 + Owner: GDI + Mammoth2: htnk + Location: 26,52 + Owner: GDI + Mammoth3: htnk + Location: 24,53 + Owner: GDI + PatrollingMammoth: htnk + Location: 59,42 + Owner: GDI + Facing: 31 + Actor153: arty + Location: 27,28 + Owner: Nod + MediumTank1: mtnk + Location: 43,28 + Owner: GDI + Facing: 191 + MediumTank2: mtnk + Location: 43,29 + Owner: GDI + Facing: 191 + Rifleman1: e1 + Location: 16,54 + Owner: GDI + SubCell: 3 + Rifleman2: e1 + Location: 16,54 + Owner: GDI + SubCell: 1 + Rifleman3: e1 + Location: 16,54 + Owner: GDI + SubCell: 2 + Rifleman4: e1 + Location: 16,54 + Owner: GDI + SubCell: 4 + Actor160: e1 + Location: 17,14 + Owner: GDI + Facing: 191 + SubCell: 3 + Actor161: e1 + Location: 17,15 + Owner: GDI + Facing: 191 + SubCell: 1 + Actor162: e1 + Location: 17,15 + Owner: GDI + Facing: 191 + SubCell: 2 + Actor163: e1 + Location: 17,14 + Owner: GDI + Facing: 191 + SubCell: 4 + Actor164: e2 + Location: 15,28 + Owner: GDI + SubCell: 2 + Actor165: e2 + Location: 15,28 + Owner: GDI + SubCell: 1 + Actor166: e2 + Location: 15,28 + Owner: GDI + SubCell: 3 + Actor167: e2 + Location: 15,28 + Owner: GDI + SubCell: 4 + Actor168: e2 + Location: 36,9 + Owner: GDI + Facing: 159 + SubCell: 4 + Actor169: e2 + Location: 36,9 + Owner: GDI + Facing: 159 + SubCell: 3 + Actor170: e2 + Location: 32,16 + Owner: GDI + SubCell: 1 + Actor171: e2 + Location: 32,16 + Owner: GDI + SubCell: 2 + Actor172: e2 + Location: 57,18 + Owner: GDI + Facing: 159 + SubCell: 2 + Actor173: e2 + Location: 57,18 + Owner: GDI + Facing: 159 + SubCell: 0 + Actor174: c8 + Location: 57,54 + Owner: Neutral + SubCell: 0 + Actor175: c3 + Location: 56,49 + Owner: Neutral + Facing: 95 + SubCell: 2 + Actor176: c4 + Location: 56,49 + Owner: Neutral + Facing: 223 + SubCell: 3 + Actor177: e3 + Location: 26,27 + Owner: Nod + SubCell: 1 + Actor178: e3 + Location: 26,27 + Owner: Nod + SubCell: 3 + Actor179: e3 + Location: 26,27 + Owner: Nod + SubCell: 2 + Actor180: e3 + Location: 26,27 + Owner: Nod + SubCell: 4 + Actor181: e3 + Location: 28,27 + Owner: Nod + SubCell: 2 + Actor182: e3 + Location: 29,27 + Owner: Nod + SubCell: 1 + Actor183: e3 + Location: 29,27 + Owner: Nod + SubCell: 3 + Actor184: e3 + Location: 28,27 + Owner: Nod + SubCell: 4 + Actor185: e6 + Location: 27,27 + Owner: Nod + SubCell: 2 + Actor186: e3 + Location: 29,45 + Owner: GDI + SubCell: 3 + Actor187: e3 + Location: 29,45 + Owner: GDI + SubCell: 4 + Grenadier1: e2 + Location: 40,19 + Owner: GDI + Facing: 191 + SubCell: 2 + Grenadier2: e2 + Location: 40,18 + Owner: GDI + Facing: 191 + SubCell: 4 + Grenadier3: e2 + Location: 41,19 + Owner: GDI + Facing: 191 + SubCell: 1 + Grenadier4: e2 + Location: 41,18 + Owner: GDI + Facing: 191 + SubCell: 3 + Actor192: e3 + Location: 19,51 + Owner: GDI + SubCell: 2 + Actor193: e3 + Location: 20,51 + Owner: GDI + SubCell: 1 + Actor194: e3 + Location: 37,52 + Owner: GDI + Facing: 31 + SubCell: 4 + Actor195: e3 + Location: 33,54 + Owner: GDI + SubCell: 4 + Actor196: e3 + Location: 34,54 + Owner: GDI + SubCell: 3 + DefaultCameraPosition: waypoint + Location: 20,21 + Owner: Neutral + ChinookEntry: waypoint + Location: 20, 8 + Owner: Neutral + ChinookTarget: waypoint + Location: 27,25 + Owner: Neutral + MammothWaypoint1: waypoint + Location: 9,37 + Owner: Neutral + MammothWaypoint2: waypoint + Location: 54,14 + Owner: Neutral + NorthEntrance: waypoint + Location: 29,36 + Owner: Neutral + RiflemenWaypoint1: waypoint + Location: 16,41 + Owner: Neutral + RiflemenWaypoint2: waypoint + Location: 16,54 + Owner: Neutral + +Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml diff --git a/mods/cnc/maps/nod10b/nod10b.lua b/mods/cnc/maps/nod10b/nod10b.lua new file mode 100644 index 0000000000..c8cca6548d --- /dev/null +++ b/mods/cnc/maps/nod10b/nod10b.lua @@ -0,0 +1,172 @@ +--[[ + Copyright 2007-2018 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. +]] + +if Map.LobbyOption("difficulty") == "easy" then + Rambo = "rmbo.easy" +elseif Map.LobbyOption("difficulty") == "hard" then + Rambo = "rmbo.hard" +else + Rambo = "rmbo" +end + +GDIBuildings = {ConYard, PowerPlant1, PowerPlant2, PowerPlant3, PowerPlant4, PowerPlant5, Barracks, +Silo1, Silo2, WeaponsFactory, CommCenter, GuardTower1, GuardTower2} + + +function RepairBuilding(building, attacker) + if not building.IsDead and building.Owner == enemy then + building.StartBuildingRepairs(enemy) + end +end + + +Mammoths = {Mammoth1, Mammoth2, Mammoth3} +Grenadiers = {Grenadier1, Grenadier2, Grenadier3, Grenadier4} +MediumTanks = {MediumTank1, MediumTank2} +Riflemen = {Rifleman1, Rifleman2, Rifleman3, Rifleman4} + +MammothPatrolPath = {MammothWaypoint1.Location, MammothWaypoint2.Location} +RiflemenPatrolPath = {RiflemenWaypoint1.Location, RiflemenWaypoint2.Location} + +DamageTrigger = false + + +function TankDamaged(tank, attacker) + if not DamageTrigger then + DamageTrigger = true + Utils.Do(Grenadiers, function(grenadier) + if not grenadier.IsDead then + grenadier.AttackMove(tank.Location) + end + end) + end +end + + +function GrenadierDamaged(grenadier, attacker) + if not DamageTrigger then + DamageTrigger = true + Utils.Do(MediumTanks, function(tank) + if not tank.IsDead then + tank.AttackMove(grenadier.Location) + end + end) + end +end + + +InfantrySquad = {"e1", "e1", "e1", "e1", "e1"} + + +function MoveToNorthEntrance(squad) + Utils.Do(squad, function(unit) + if not unit.IsDead then + unit.AttackMove(NorthEntrance.Location) + end + end) +end + + +function EnteredFromNorth(actor, id) + if actor.Owner == player then + Trigger.RemoveFootprintTrigger(id) + if not Barracks.IsDead and Barracks.Owner == enemy then + Barracks.Build(InfantrySquad, MoveToNorthEntrance) + end + end +end + + +function DeliverCommando() + Media.PlaySpeechNotification(player, "Reinforce") + units = Reinforcements.ReinforceWithTransport(player, 'tran.in', {Rambo}, {ChinookEntry.Location, ChinookTarget.Location}, {ChinookEntry.Location}) + rambo = units[2][1] + Trigger.OnKilled(rambo, function(a, k) + player.MarkFailedObjective(keepRamboAliveObjective) + end) + Trigger.OnPlayerWon(player, function(player) + if not rambo.IsDead then + player.MarkCompletedObjective(keepRamboAliveObjective) + end + end) +end + + +function WorldLoaded() + player = Player.GetPlayer("Nod") + enemy = Player.GetPlayer("GDI") + + enemy.Cash = 10000 + + Camera.Position = DefaultCameraPosition.CenterPosition + Trigger.OnObjectiveAdded(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective") + end) + Trigger.OnObjectiveCompleted(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed") + end) + Trigger.OnObjectiveFailed(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed") + end) + + Trigger.OnPlayerWon(player, function() + Media.PlaySpeechNotification(player, "Win") + end) + + Trigger.OnPlayerLost(player, function() + Media.PlaySpeechNotification(player, "Lose") + end) + + gdiObjective = enemy.AddPrimaryObjective("Eliminate all Nod forces in the area.") + warFactoryObjective = player.AddPrimaryObjective("Destroy or capture the Weapons Factory.") + destroyTanksObjective = player.AddPrimaryObjective("Destroy the Mammoth tanks in the R&D base.") + keepRamboAliveObjective = player.AddSecondaryObjective("Keep your Commando alive.") + + Trigger.OnKilledOrCaptured(WeaponsFactory, function() + player.MarkCompletedObjective(warFactoryObjective) + end) + Trigger.OnAllKilled(Mammoths, function() + player.MarkCompletedObjective(destroyTanksObjective) + end) + + Trigger.AfterDelay(DateTime.Seconds(1), DeliverCommando) + + Utils.Do(Mammoths, function(mammoth) + mammoth.Stance = "HoldFire" + end) + + Utils.Do(MediumTanks, function(tank) + Trigger.OnDamaged(tank, TankDamaged) + end) + + Utils.Do(Grenadiers, function(grenadier) + Trigger.OnDamaged(grenadier, GrenadierDamaged) + end) + + Utils.Do(GDIBuildings, function(building) + Trigger.OnDamaged(building, RepairBuilding) + end) + + Trigger.OnEnteredFootprint({NorthEntrance.Location}, EnteredFromNorth) + + Utils.Do(Riflemen, function(rifleman) + rifleman.Patrol(RiflemenPatrolPath) + end) + + PatrollingMammoth.Patrol(MammothPatrolPath) +end + + +function Tick() + if DateTime.GameTime > 2 then + if player.HasNoRequiredUnits() then + enemy.MarkCompletedObjective(gdiObjective) + end + end +end diff --git a/mods/cnc/maps/nod10b/rules.yaml b/mods/cnc/maps/nod10b/rules.yaml new file mode 100644 index 0000000000..ebe6e8f1bc --- /dev/null +++ b/mods/cnc/maps/nod10b/rules.yaml @@ -0,0 +1,54 @@ +World: + LuaScript: + Scripts: nod10b.lua + MissionData: + Briefing: GDI is developing a new, heavily armored tank. Our spies have located the GDI R&D base.\n\nUse your small strike force to locate and penetrate the center. Be sure to destroy the tanks in the base and the factory. + BackgroundVideo: kanepre.vqa + LossVideo: deskill.vqa + WinVideo: tankkill.vqa + BriefingVideo: nod10b.vqa + ScriptLobbyDropdown@difficulty: + ID: difficulty + Label: Difficulty + Values: + easy: Easy + normal: Normal + hard: Hard + Default: easy + -LegacyBridgeLayer: + +Player: + PlayerResources: + DefaultCash: 0 + +TRAN.IN: + Inherits: TRAN + RejectsOrders: + -Selectable: + RenderSprites: + Image: TRAN + Buildable: + Prerequisites: ~disabled + Interactable: + -RevealsShroud: + +RMBO.easy: + Inherits: RMBO + Health: + HP: 30000 + SelfHealing: + Step: 500 + Delay: 10 + HealIfBelow: 50 + DamageCooldown: 200 + RenderSprites: + Image: RMBO + +RMBO.hard: + Inherits: RMBO + -AutoTarget: + -AutoTargetPriority@DEFAULT: + -AutoTargetPriority@ATTACKANYTHING: + -AttackMove: + RenderSprites: + Image: RMBO diff --git a/mods/cnc/missions.yaml b/mods/cnc/missions.yaml index e5a597d0ef..e5c15be2bb 100644 --- a/mods/cnc/missions.yaml +++ b/mods/cnc/missions.yaml @@ -28,6 +28,7 @@ Nod Campaign: ./mods/cnc/maps/nod08a ./mods/cnc/maps/nod08b ./mods/cnc/maps/nod09 + ./mods/cnc/maps/nod10b Funpark Campaign: ./mods/cnc/maps/funpark01