From e77123316e56cad282cdcbebe43c271a81c02189 Mon Sep 17 00:00:00 2001 From: Alexander Boll Date: Tue, 5 May 2015 20:53:40 +0200 Subject: [PATCH] added mission 6b nod --- OpenRA.sln | 1 + mods/cnc/maps/nod06a/nod06a.lua | 2 +- mods/cnc/maps/nod06b/map.bin | Bin 0 -> 20497 bytes mods/cnc/maps/nod06b/map.png | Bin 0 -> 39852 bytes mods/cnc/maps/nod06b/map.yaml | 666 ++++++++++++++++++++++++++++++++ mods/cnc/maps/nod06b/nod06b.lua | 189 +++++++++ mods/cnc/missions.yaml | 2 +- 7 files changed, 858 insertions(+), 2 deletions(-) create mode 100644 mods/cnc/maps/nod06b/map.bin create mode 100644 mods/cnc/maps/nod06b/map.png create mode 100644 mods/cnc/maps/nod06b/map.yaml create mode 100644 mods/cnc/maps/nod06b/nod06b.lua diff --git a/OpenRA.sln b/OpenRA.sln index cc441d80f8..469e1f50a9 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -41,6 +41,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts", mods\cnc\maps\nod05\nod05.lua = mods\cnc\maps\nod05\nod05.lua mods\cnc\maps\funpark01\scj01ea.lua = mods\cnc\maps\funpark01\scj01ea.lua mods\cnc\maps\nod06a\nod06a.lua = mods\cnc\maps\nod06a\nod06a.lua + mods\cnc\maps\nod06b\nod06b.lua = mods\cnc\maps\nod06b\nod06b.lua mods\cnc\maps\shellmap\shellmap.lua = mods\cnc\maps\shellmap\shellmap.lua EndProjectSection EndProject diff --git a/mods/cnc/maps/nod06a/nod06a.lua b/mods/cnc/maps/nod06a/nod06a.lua index f786a1b5a8..d16df4226e 100644 --- a/mods/cnc/maps/nod06a/nod06a.lua +++ b/mods/cnc/maps/nod06a/nod06a.lua @@ -189,7 +189,7 @@ WorldLoaded = function() end) Trigger.OnEnteredFootprint(Win2CellTriggerActivator, function(a, id) - if a.Owner == Nod then + if a.Owner == Nod and NodObjective1 then Nod.MarkCompletedObjective(NodObjective3) Trigger.RemoveFootprintTrigger(id) end diff --git a/mods/cnc/maps/nod06b/map.bin b/mods/cnc/maps/nod06b/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..fa72c3da00fe56c5386472ec3e35cb3e20913565 GIT binary patch literal 20497 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 YTEC}lvxVmw{~BQUy-nBl{woIl4e|byQUCw| literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/nod06b/map.png b/mods/cnc/maps/nod06b/map.png new file mode 100644 index 0000000000000000000000000000000000000000..7c57ce86a7d8eb0feed24318d5512b347aa619f1 GIT binary patch literal 39852 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

tf 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 z zSC9}H?mCTE#S3L)xwvKvnn7_<(B!g=XM=UQWLF=%R+L_JCo67kJu0P28(EC2XxIf# zF=}Vmbs;ee?p0ypi`Qn;d>aq6dCu-PQA7Ye2kDEu6MNvMF>Ui4n;|clN@mm8u-{-B zNdHmF-dtZkA*deE#4(idYH(>yr5RSwG_XIQp(ppi)7-rdomc>1+FN|0x_`0w96Cbs zgmv+mcC{!oBb}n*I^dJf#)#s0h7qkoEzwm@GoEStds;V<;gH>W-h<{u-Cv;c|LW39 zKWeL$Xx47prPx$82aOMe2-n zW`?Z{YZUoUl4q6dVAb>-$n_uhi|l$;CUqNEba?PCs(RCdFX4TV1VOf>0ATpfn>8i6 z>*aW2-euE&Wzsy@*!NXkj0Q_$EkJ{kXI!0K-v+zGc`nEQfA*rUoQZ!FTsw_cZaum` NDhitN6;Siw{{hwWDZ~H( literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/nod06b/map.yaml b/mods/cnc/maps/nod06b/map.yaml new file mode 100644 index 0000000000..77255941c9 --- /dev/null +++ b/mods/cnc/maps/nod06b/map.yaml @@ -0,0 +1,666 @@ +MapFormat: 7 + +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 + +MapSize: 64,64 + +Bounds: 15,12,47,50 + +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 + Playable: False + Race: gdi + ColorRamp: 31,222,183 + Enemies: Nod + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Race: gdi + Enemies: Nod, GDI + PlayerReference@Civilians: + Name: Civilians + NonCombatant: True + Race: gdi + Enemies: Nod + PlayerReference@Nod: + Name: Nod + Playable: True + AllowBots: False + Required: True + LockRace: True + Race: nod + LockColor: True + ColorRamp: 3,255,127 + LockSpawn: True + LockTeam: True + Enemies: GDI, Civilians + +Actors: + Actor0: sbag + Location: 54,29 + Owner: GDI + Actor1: sbag + Location: 50,29 + Owner: GDI + Actor2: sbag + Location: 49,29 + Owner: GDI + Actor3: sbag + Location: 48,29 + Owner: GDI + Actor4: sbag + Location: 47,29 + Owner: GDI + Actor5: sbag + Location: 46,29 + Owner: GDI + Actor6: sbag + Location: 45,29 + Owner: GDI + Actor7: sbag + Location: 44,29 + Owner: GDI + Actor8: sbag + Location: 43,29 + Owner: GDI + Actor9: sbag + Location: 42,29 + Owner: GDI + Actor10: sbag + Location: 41,29 + Owner: GDI + Actor11: sbag + Location: 40,29 + Owner: GDI + Actor12: sbag + Location: 54,28 + Owner: GDI + Actor13: cycl + Location: 48,28 + Owner: GDI + Actor14: cycl + Location: 47,28 + Owner: GDI + Actor15: cycl + Location: 46,28 + Owner: GDI + Actor16: sbag + Location: 40,28 + Owner: GDI + Actor17: sbag + Location: 54,27 + Owner: GDI + Actor18: cycl + Location: 48,27 + Owner: GDI + Actor19: cycl + Location: 46,27 + Owner: GDI + Actor20: sbag + Location: 40,27 + Owner: GDI + Actor21: sbag + Location: 54,26 + Owner: GDI + Actor22: cycl + Location: 48,26 + Owner: GDI + Actor23: cycl + Location: 47,26 + Owner: GDI + Actor24: cycl + Location: 46,26 + Owner: GDI + Actor25: sbag + Location: 40,26 + Owner: GDI + Actor26: sbag + Location: 54,25 + Owner: GDI + Actor27: sbag + Location: 40,25 + Owner: GDI + Actor28: sbag + Location: 54,24 + Owner: GDI + Actor29: sbag + Location: 54,23 + Owner: GDI + Actor30: sbag + Location: 54,22 + Owner: GDI + Actor31: sbag + Location: 54,21 + Owner: GDI + Actor32: sbag + Location: 40,21 + Owner: GDI + Actor33: sbag + Location: 54,20 + Owner: GDI + Actor34: sbag + Location: 40,20 + Owner: GDI + Actor35: sbag + Location: 54,19 + Owner: GDI + Actor36: sbag + Location: 40,19 + Owner: GDI + Actor37: sbag + Location: 54,18 + Owner: GDI + Actor38: sbag + Location: 40,18 + Owner: GDI + Actor39: sbag + Location: 54,17 + Owner: GDI + Actor40: sbag + Location: 53,17 + Owner: GDI + Actor41: sbag + Location: 52,17 + Owner: GDI + Actor42: sbag + Location: 51,17 + Owner: GDI + Actor43: sbag + Location: 50,17 + Owner: GDI + Actor44: sbag + Location: 49,17 + Owner: GDI + Actor45: sbag + Location: 48,17 + Owner: GDI + Actor46: sbag + Location: 47,17 + Owner: GDI + Actor47: sbag + Location: 46,17 + Owner: GDI + Actor48: sbag + Location: 45,17 + Owner: GDI + Actor49: sbag + Location: 44,17 + Owner: GDI + Actor50: sbag + Location: 43,17 + Owner: GDI + Actor51: sbag + Location: 42,17 + Owner: GDI + Actor52: sbag + Location: 41,17 + Owner: GDI + Actor53: sbag + Location: 40,17 + Owner: GDI + Actor54: t18 + Location: 28,31 + Owner: Neutral + Actor55: t08 + Location: 25,26 + Owner: Neutral + Actor56: t08 + Location: 27,21 + Owner: Neutral + Actor57: t18 + Location: 25,20 + Owner: Neutral + Actor58: t18 + Location: 33,45 + Owner: Neutral + Actor59: t18 + Location: 23,48 + Owner: Neutral + Actor60: t08 + Location: 52,38 + Owner: Neutral + Actor61: t08 + Location: 55,47 + Owner: Neutral + Actor62: rock6 + Location: 24,55 + Owner: Neutral + Actor63: t08 + Location: 32,58 + Owner: Neutral + Actor64: t08 + Location: 35,56 + Owner: Neutral + Actor65: t08 + Location: 30,50 + Owner: Neutral + Actor66: t08 + Location: 35,52 + Owner: Neutral + Actor67: t08 + Location: 37,56 + Owner: Neutral + Actor68: t08 + Location: 16,53 + Owner: Neutral + Actor69: t08 + Location: 25,61 + Owner: Neutral + Actor70: t08 + Location: 17,41 + Owner: Neutral + Actor71: t08 + Location: 49,34 + Owner: Neutral + Actor72: t08 + Location: 27,48 + Owner: Neutral + Actor73: t08 + Location: 34,36 + Owner: Neutral + Actor74: t08 + Location: 25,52 + Owner: Neutral + Actor75: t08 + Location: 43,30 + Owner: Neutral + Actor76: rock1 + Location: 45,29 + Owner: Neutral + Actor77: t18 + Location: 48,44 + Owner: Neutral + Actor78: t18 + Location: 58,45 + Owner: Neutral + Actor79: t18 + Location: 35,38 + Owner: Neutral + Actor80: t18 + Location: 50,55 + Owner: Neutral + Actor81: t18 + Location: 23,15 + Owner: Neutral + Actor82: t18 + Location: 15,13 + Owner: Neutral + Actor83: t08 + Location: 39,14 + Owner: Neutral + Actor85: nuke + Location: 44,18 + Owner: GDI + Actor86: v35 + Location: 36,57 + Owner: Civilians + Actor87: v34 + Location: 34,56 + Owner: Civilians + Actor88: v33 + Location: 32,56 + Owner: Civilians + Actor89: v30 + Location: 36,51 + Owner: Civilians + Actor90: v30 + Location: 30,52 + Owner: Civilians + Actor91: v29 + Location: 36,52 + Owner: Civilians + Actor92: v27 + Location: 24,53 + Owner: Civilians + Actor93: v27 + Location: 25,53 + Owner: Civilians + Actor94: v27 + Location: 26,53 + Owner: Civilians + Actor95: v26 + Location: 31,53 + Owner: Civilians + Actor96: v25 + Location: 30,50 + Owner: Civilians + Actor97: v24 + Location: 29,52 + Owner: Civilians + Actor98: v23 + Location: 32,57 + Owner: Civilians + Actor99: v22 + Location: 35,53 + Owner: Civilians + Actor100: v21 + Location: 25,57 + Owner: Civilians + Actor101: v20 + Location: 26,54 + Owner: Civilians + Actor104: silo + Location: 52,20 + Owner: GDI + Actor106: gtwr + Location: 55,29 + Owner: GDI + Actor107: gtwr + Location: 49,30 + Owner: GDI + Actor108: hq + Location: 52,25 + Owner: GDI + Actor109: proc + Location: 48,21 + Owner: GDI + Actor110: pyle + Location: 46,18 + Owner: GDI + Actor111: nuke + Location: 42,18 + Owner: GDI + Actor113: mtnk + Location: 19,38 + Owner: GDI + Actor114: jeep + Location: 19,52 + Owner: GDI + Actor115: mtnk + Location: 36,37 + Owner: GDI + Facing: 160 + Actor116: jeep + Location: 29,24 + Owner: GDI + Facing: 96 + Actor117: mtnk + Location: 24,48 + Owner: GDI + Facing: 192 + Actor118: mtnk + Location: 28,42 + Owner: GDI + Facing: 160 + Actor128: e2 + Location: 18,41 + Owner: GDI + SubCell: 1 + Actor129: e2 + Location: 42,28 + Owner: GDI + SubCell: 4 + Actor130: e2 + Location: 43,28 + Owner: GDI + SubCell: 3 + Actor131: e2 + Location: 43,28 + Owner: GDI + SubCell: 1 + Actor132: e2 + Location: 42,28 + Owner: GDI + SubCell: 2 + Actor133: e1 + Location: 41,28 + Owner: GDI + SubCell: 2 + Actor134: e1 + Location: 41,28 + Owner: GDI + SubCell: 3 + Actor135: e1 + Location: 41,28 + Owner: GDI + SubCell: 4 + Actor136: e1 + Location: 41,28 + Owner: GDI + SubCell: 1 + Actor137: e3 + Location: 27,45 + Owner: GDI + Facing: 160 + SubCell: 4 + Actor138: e1 + Location: 25,58 + Owner: GDI + Facing: 160 + SubCell: 3 + Actor139: c3 + Location: 36,58 + Owner: Civilians + SubCell: 0 + Actor140: c5 + Location: 37,58 + Owner: Civilians + SubCell: 0 + Actor141: e1 + Location: 31,59 + Owner: GDI + Facing: 192 + SubCell: 4 + Actor142: e2 + Location: 31,57 + Owner: GDI + SubCell: 4 + Actor143: e2 + Location: 37,54 + Owner: GDI + SubCell: 0 + Actor144: e2 + Location: 34,60 + Owner: GDI + Facing: 192 + SubCell: 3 + Actor157: e1 + Location: 22,60 + Owner: GDI + SubCell: 1 + Actor158: e1 + Location: 17,39 + Owner: GDI + SubCell: 4 + Actor160: e3 + Location: 27,46 + Owner: GDI + Facing: 32 + SubCell: 1 + Actor161: e3 + Location: 33,45 + Owner: GDI + Facing: 192 + SubCell: 4 + Actor162: e2 + Location: 34,45 + Owner: GDI + Facing: 224 + SubCell: 0 + waypoint27: waypoint + Location: 60,18 + Owner: Neutral + waypoint26: waypoint + Location: 15,15 + Owner: Neutral + waypoint25: waypoint + Location: 54,52 + Owner: Neutral + waypoint17: waypoint + Location: 53,53 + Owner: Neutral + waypoint10: waypoint + Location: 59,23 + Owner: Neutral + waypoint9: waypoint + Location: 52,13 + Owner: Neutral + waypoint8: waypoint + Location: 59,13 + Owner: Neutral + waypoint7: waypoint + Location: 23,46 + Owner: Neutral + waypoint6: waypoint + Location: 37,46 + Owner: Neutral + waypoint5: waypoint + Location: 37,41 + Owner: Neutral + waypoint4: waypoint + Location: 26,40 + Owner: Neutral + waypoint3: waypoint + Location: 24,31 + Owner: Neutral + waypoint2: waypoint + Location: 32,23 + Owner: Neutral + waypoint1: waypoint + Location: 44,24 + Owner: Neutral + waypoint0: waypoint + Location: 59,18 + Owner: Neutral + UnitsEntryVehicle: waypoint + Location: 18,12 + Owner: Neutral + UnitsRallyVehicle1: waypoint + Location: 18,21 + Owner: Neutral + UnitsRallyVehicle2: waypoint + Location: 18,19 + Owner: Neutral + UnitsEntryGunner: waypoint + Location: 16,12 + Owner: Neutral + UnitsRallyGunner: waypoint + Location: 16,20 + Owner: Neutral + UnitsEntryRocket: waypoint + Location: 22,12 + Owner: Neutral + UnitsRallyRocket: waypoint + Location: 20,20 + Owner: Neutral + ChnEntry: waypoint + Location: 26,61 + Owner: Neutral + Detonator: CRATE.plain + Location: 47, 27 + Owner: GDI + Chn1Actor1: fact + Location: 48,18 + Owner: GDI + Chn1Actor2: silo + Location: 51,18 + Owner: GDI + Chn2Actor1: weap + Location: 51,21 + Owner: GDI + Atk1Actor1: gtwr + Location: 39,25 + Owner: GDI + Atk1Actor2: gtwr + Location: 39,21 + Owner: GDI + Atk2Actor1: e2 + Location: 18,36 + Owner: GDI + SubCell: 3 + Atk2Actor2: e2 + Location: 17,36 + Owner: GDI + SubCell: 1 + +Smudges: + +Rules: + Player: + -ConquestVictoryConditions: + MissionObjectives: + EarlyGameOver: true + World: + -CrateSpawner: + -SpawnMPUnits: + -MPStartLocations: + ObjectivesPanel: + PanelName: MISSION_OBJECTIVES + LuaScript: + Scripts: nod06b.lua + ^Vehicle: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^CivBuildingHusk: + Tooltip: + ShowOwnerRow: false + FLARE: + Tooltip: + ShowOwnerRow: false + +Sequences: + +VoxelSequences: + +Weapons: + +Voices: + +Notifications: + +Translations: diff --git a/mods/cnc/maps/nod06b/nod06b.lua b/mods/cnc/maps/nod06b/nod06b.lua new file mode 100644 index 0000000000..c0e94feba0 --- /dev/null +++ b/mods/cnc/maps/nod06b/nod06b.lua @@ -0,0 +1,189 @@ +NodUnitsVehicle1 = { 'bggy', 'bggy', 'bike', 'bike', 'bike' } +NodUnitsVehicle2 = { 'ltnk', 'ltnk', 'ltnk' } +NodUnitsGunner = { 'e1', 'e1', 'e1', 'e1', 'e1', 'e1' } +NodUnitsRocket = { 'e3', 'e3', 'e3', 'e3', 'e3', 'e3' } +Gdi1Units = { 'e1', 'e1', 'e2', 'e2', 'e2' } + +HuntCellTriggerActivator = { CPos.New(61,34), CPos.New(60,34), CPos.New(59,34), CPos.New(58,34), CPos.New(57,34), CPos.New(56,34), CPos.New(55,34), CPos.New(61,33), CPos.New(60,33), CPos.New(59,33), CPos.New(58,33), CPos.New(57,33), CPos.New(56,33) } +DzneCellTriggerActivator = { CPos.New(50,30), CPos.New(49,30), CPos.New(48,30), CPos.New(47,30), CPos.New(46,30), CPos.New(45,30), CPos.New(50,29), CPos.New(49,29), CPos.New(48,29), CPos.New(47,29), CPos.New(46,29), CPos.New(45,29), CPos.New(50,28), CPos.New(49,28), CPos.New(48,28), CPos.New(47,28), CPos.New(46,28), CPos.New(45,28), CPos.New(50,27), CPos.New(49,27), CPos.New(46,27), CPos.New(45,27), CPos.New(50,26), CPos.New(49,26), CPos.New(48,26), CPos.New(47,26), CPos.New(46,26), CPos.New(45,26), CPos.New(50,25), CPos.New(49,25), CPos.New(48,25), CPos.New(47,25), CPos.New(46,25), CPos.New(45,25) } +Win1CellTriggerActivator = { CPos.New(47,27) } +Win2CellTriggerActivator = { CPos.New(57,57), CPos.New(56,57), CPos.New(55,57), CPos.New(57,56), CPos.New(56,56), CPos.New(55,56), CPos.New(57,55), CPos.New(56,55), CPos.New(55,55), CPos.New(57,54), CPos.New(56,54), CPos.New(55,54), CPos.New(57,53), CPos.New(56,53), CPos.New(55,53), CPos.New(57,52), CPos.New(56,52), CPos.New(55,52) } +ChnCellTriggerActivator = { CPos.New(61,52), CPos.New(60,52), CPos.New(59,52), CPos.New(58,52), CPos.New(61,51), CPos.New(60,51), CPos.New(59,51), CPos.New(58,51), CPos.New(61,50), CPos.New(60,50), CPos.New(59,50), CPos.New(58,50) } + +Chn1ActorTriggerActivator = { Chn1Actor1, Chn1Actor2 } +Chn2ActorTriggerActivator = { Chn2Actor1 } +Atk1ActorTriggerActivator = { Atk1Actor1, Atk1Actor2 } +Atk2ActorTriggerActivator = { Atk2Actor1, Atk2Actor2 } + +Chn1Waypoints = { ChnEntry.Location, waypoint0.Location } +Chn2Waypoints = { ChnEntry.Location, waypoint0.Location } +Gdi5Waypoint = { waypoint1, waypoint2, waypoint3, waypoint4, waypoint5, waypoint6, waypoint7 } + +HuntTriggerFunction = function() + local list = GDI.GetGroundAttackers() + Utils.Do(list, function(unit) + IdleHunt(unit) + end) +end + +Win1TriggerFunction = function() + NodObjective2 = Nod.AddPrimaryObjective("Move to the evacuation point") + Nod.MarkCompletedObjective(NodObjective1) +end + +Chn1TriggerFunction = function() + if not Chn1Switch then + local cargo = Reinforcements.ReinforceWithTransport(GDI, 'tran', Gdi1Units, Chn1Waypoints, { ChnEntry.Location })[2] + Utils.Do(cargo, function(actor) + IdleHunt(actor) + end) + Chn1Switch = true + end +end + +Atk1TriggerFunction = function() + if not Atk1Switch then + for type, count in pairs({ ['e2'] = 2, ['jeep'] = 1, ['e1'] = 2}) do + MyActors = Utils.Take(count, GDI.GetActorsByType(type)) + Utils.Do(MyActors, function(actor) + IdleHunt(actor) + end) + end + Atk1Switch = true + end +end + +Atk2TriggerFunction = function() + if not Atk2Switch then + for type, count in pairs({ ['e2'] = 2, ['e1'] = 2}) do + MyActors = Utils.Take(count, GDI.GetActorsByType(type)) + Utils.Do(MyActors, function(actor) + MoveAndHunt(actor, Gdi5Waypoint) + end) + end + Atk2Switch = true + end +end + +Chn2TriggerFunction = function() + if not Chn2Switch then + local cargo = Reinforcements.ReinforceWithTransport(GDI, 'tran', Gdi1Units, Chn2Waypoints, { ChnEntry.Location })[2] + Utils.Do(cargo, function(actor) + IdleHunt(actor) + end) + Chn2Switch = true + end +end + +MoveAndHunt = function(unit, waypoints) + if unit ~= nil then + Utils.Do(waypoints, function(waypoint) + unit.AttackMove(waypoint.Location) + end) + IdleHunt(unit) + end +end + +InsertNodUnits = function() + Media.PlaySpeechNotification(Nod, "Reinforce") + Camera.Position = UnitsRallyVehicle2.CenterPosition + + Reinforcements.Reinforce(Nod, NodUnitsVehicle1, { UnitsEntryVehicle.Location, UnitsRallyVehicle1.Location }, 10) + Reinforcements.Reinforce(Nod, NodUnitsVehicle2, { UnitsEntryVehicle.Location, UnitsRallyVehicle2.Location }, 15) + Reinforcements.Reinforce(Nod, NodUnitsGunner, { UnitsEntryGunner.Location, UnitsRallyGunner.Location }, 15) + Reinforcements.Reinforce(Nod, NodUnitsRocket, { UnitsEntryRocket.Location, UnitsRallyRocket.Location }, 25) +end + + +WorldLoaded = function() + GDI = Player.GetPlayer("GDI") + Nod = Player.GetPlayer("Nod") + + Trigger.OnObjectiveAdded(Nod, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective") + end) + + Trigger.OnObjectiveCompleted(Nod, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed") + end) + + Trigger.OnObjectiveFailed(Nod, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed") + end) + + Trigger.OnPlayerWon(Nod, function() + Media.PlaySpeechNotification(Nod, "Win") + end) + + Trigger.OnPlayerLost(Nod, function() + Media.PlaySpeechNotification(Nod, "Lose") + end) + + NodObjective1 = Nod.AddPrimaryObjective("Steal the GDI nuclear detonator") + GDIObjective = GDI.AddPrimaryObjective("Stop the Nod taskforce from escaping with the detonator") + + InsertNodUnits() + + Trigger.OnEnteredFootprint(HuntCellTriggerActivator, function(a, id) + if a.Owner == Nod then + HuntTriggerFunction() + Trigger.RemoveFootprintTrigger(id) + end + end) + + Trigger.OnEnteredFootprint(DzneCellTriggerActivator, function(a, id) + if a.Owner == Nod then + Actor.Create('flare', true, { Owner = Nod, Location = waypoint17.Location }) + Trigger.RemoveFootprintTrigger(id) + end + end) + + Trigger.OnEnteredFootprint(Win1CellTriggerActivator, function(a, id) + if a.Owner == Nod then + Win1TriggerFunction() + Trigger.RemoveFootprintTrigger(id) + end + end) + + Trigger.OnEnteredFootprint(Win2CellTriggerActivator, function(a, id) + if a.Owner == Nod and NodObjective2 then + Nod.MarkCompletedObjective(NodObjective2) + Trigger.RemoveFootprintTrigger(id) + end + end) + + OnAnyDamaged(Chn1ActorTriggerActivator, Chn1TriggerFunction) + + OnAnyDamaged(Atk1ActorTriggerActivator, Atk1TriggerFunction) + + OnAnyDamaged(Atk2ActorTriggerActivator, Atk2TriggerFunction) + + OnAnyDamaged(Chn2ActorTriggerActivator, Chn2TriggerFunction) + + Trigger.OnEnteredFootprint(ChnCellTriggerActivator, function(a, id) + if a.Owner == Nod then + Reinforcements.Reinforce(Nod, { 'tran' }, { ChnEntry.Location, waypoint17.Location }, 11) + Trigger.RemoveFootprintTrigger(id) + end + end) +end + +Tick = function() + if Nod.HasNoRequiredUnits() then + if DateTime.GameTime > 2 then + GDI.MarkCompletedObjective(GDIObjective) + end + end +end + +IdleHunt = function(unit) + if not unit.IsDead then + Trigger.OnIdle(unit, unit.Hunt) + end +end + +OnAnyDamaged = function(actors, func) + Utils.Do(actors, function(actor) + Trigger.OnDamaged(actor, func) + end) +end diff --git a/mods/cnc/missions.yaml b/mods/cnc/missions.yaml index b788cae5e0..9b9f70e58f 100644 --- a/mods/cnc/missions.yaml +++ b/mods/cnc/missions.yaml @@ -18,7 +18,7 @@ Nod Campaign: ./mods/cnc/maps/nod04b ./mods/cnc/maps/nod05 ./mods/cnc/maps/nod06a + ./mods/cnc/maps/nod06b Funpark Campaign: ./mods/cnc/maps/funpark01 -