From 6a2b9fc41b42b9644accc98da01f464719961856 Mon Sep 17 00:00:00 2001 From: Alexander Boll Date: Mon, 4 May 2015 23:16:21 +0200 Subject: [PATCH] added mission 5 nod Update nod05 --- OpenRA.sln | 1 + mods/cnc/maps/nod05/map.bin | Bin 0 -> 20497 bytes mods/cnc/maps/nod05/map.png | Bin 0 -> 41557 bytes mods/cnc/maps/nod05/map.yaml | 525 ++++++++++++++++++++++++++++++++++ mods/cnc/maps/nod05/nod05.lua | 339 ++++++++++++++++++++++ mods/cnc/missions.yaml | 1 + 6 files changed, 866 insertions(+) create mode 100644 mods/cnc/maps/nod05/map.bin create mode 100644 mods/cnc/maps/nod05/map.png create mode 100644 mods/cnc/maps/nod05/map.yaml create mode 100644 mods/cnc/maps/nod05/nod05.lua diff --git a/OpenRA.sln b/OpenRA.sln index d1d53e0ee3..a2e37de2a1 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -38,6 +38,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts", mods\cnc\maps\nod03b\nod03b.lua = mods\cnc\maps\nod03b\nod03b.lua mods\cnc\maps\nod04a\nod04a.lua = mods\cnc\maps\nod04a\nod04a.lua mods\cnc\maps\nod04b\nod04b.lua = mods\cnc\maps\nod04b\nod04b.lua + mods\cnc\maps\nod05\nod05.lua = mods\cnc\maps\nod05\nod05.lua mods\cnc\maps\shellmap\shellmap.lua = mods\cnc\maps\shellmap\shellmap.lua EndProjectSection EndProject diff --git a/mods/cnc/maps/nod05/map.bin b/mods/cnc/maps/nod05/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..cfd826e67f4ce783138f8fc9e51e7eaa7ea2c277 GIT binary patch literal 20497 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 literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/nod05/map.yaml b/mods/cnc/maps/nod05/map.yaml new file mode 100644 index 0000000000..430da16baa --- /dev/null +++ b/mods/cnc/maps/nod05/map.yaml @@ -0,0 +1,525 @@ +MapFormat: 7 + +RequiresMod: cnc + +Title: Warthog Hunt + +Description: Our brothers within GDI tell us of A-10 strike jets scheduled to be deployed here soon. Our suppliers have delivered new Surface to Air Missiles to aid you. Use the SAMs to defend your base, then seek out their base and destroy it. + +Author: Westwood Studios + +Tileset: DESERT + +MapSize: 64,64 + +Bounds: 4,12,57,45 + +Visibility: MissionSelector + +Type: Campaign + +Videos: + BackgroundInfo: sethpre.vqa + Briefing: nod5.vqa + GameStart: samsite.vqa + GameWon: insites.vqa + GameLost: flag.vqa + +Options: + Crates: False + Creeps: False + Fog: True + Shroud: True + AllyBuildRadius: False + FragileAlliances: False + StartingCash: 5000 + ConfigurableStartingUnits: False + ShortGame: False + +Players: + PlayerReference@GDI: + Name: GDI + Race: gdi + ColorRamp: 31,222,183 + Allies: GDI + Enemies: Nod + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Race: gdi + Allies: 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 + Allies: Nod + Enemies: GDI + +Actors: + Actor0: sbag + Location: 30,22 + Owner: Neutral + Actor1: sbag + Location: 29,22 + Owner: Neutral + Actor2: sbag + Location: 28,22 + Owner: Neutral + Actor3: sbag + Location: 23,22 + Owner: Neutral + Actor4: sbag + Location: 22,22 + Owner: Neutral + Actor5: sbag + Location: 21,22 + Owner: Neutral + Actor6: sbag + Location: 20,22 + Owner: Neutral + Actor7: sbag + Location: 19,22 + Owner: Neutral + Actor8: sbag + Location: 30,21 + Owner: Neutral + Actor9: sbag + Location: 19,21 + Owner: Neutral + Actor10: sbag + Location: 18,21 + Owner: Neutral + Actor11: sbag + Location: 30,20 + Owner: Neutral + Actor12: sbag + Location: 30,19 + Owner: Neutral + Actor13: sbag + Location: 30,18 + Owner: Neutral + Actor14: sbag + Location: 30,17 + Owner: Neutral + Actor15: sbag + Location: 16,15 + Owner: Neutral + Actor16: sbag + Location: 16,14 + Owner: Neutral + Actor17: sbag + Location: 28,13 + Owner: Neutral + Actor18: sbag + Location: 27,13 + Owner: Neutral + Actor19: sbag + Location: 26,13 + Owner: Neutral + Actor20: sbag + Location: 25,13 + Owner: Neutral + Actor21: sbag + Location: 24,13 + Owner: Neutral + Actor22: sbag + Location: 23,13 + Owner: Neutral + Actor23: sbag + Location: 22,13 + Owner: Neutral + Actor24: sbag + Location: 21,13 + Owner: Neutral + Actor25: sbag + Location: 20,13 + Owner: Neutral + Actor26: sbag + Location: 19,13 + Owner: Neutral + Actor27: sbag + Location: 18,13 + Owner: Neutral + Actor28: sbag + Location: 17,13 + Owner: Neutral + Actor29: sbag + Location: 16,13 + Owner: Neutral + Actor30: t18 + Location: 52,25 + Owner: Neutral + Actor31: t18 + Location: 54,31 + Owner: Neutral + Actor32: t18 + Location: 17,39 + Owner: Neutral + Actor33: t08 + Location: 17,43 + Owner: Neutral + Actor34: t08 + Location: 23,37 + Owner: Neutral + Actor35: t08 + Location: 22,35 + Owner: Neutral + Actor36: t08 + Location: 15,37 + Owner: Neutral + Actor37: rock2 + Location: 8,50 + Owner: Neutral + Actor38: rock5 + Location: 18,49 + Owner: Neutral + Actor39: t08 + Location: 19,48 + Owner: Neutral + Actor40: t08 + Location: 21,52 + Owner: Neutral + Actor42: t08 + Location: 54,56 + Owner: Neutral + Actor43: t08 + Location: 31,49 + Owner: Neutral + Actor44: t08 + Location: 10,38 + Owner: Neutral + Actor45: t08 + Location: 6,41 + Owner: Neutral + Actor46: t08 + Location: 5,30 + Owner: Neutral + Actor47: t08 + Location: 10,16 + Owner: Neutral + Actor48: t08 + Location: 15,14 + Owner: Neutral + Actor49: t08 + Location: 19,23 + Owner: Neutral + Actor50: t08 + Location: 38,43 + Owner: Neutral + Actor51: t18 + Location: 47,21 + Owner: Neutral + Actor52: t18 + Location: 48,20 + Owner: Neutral + Actor53: t18 + Location: 30,21 + Owner: Neutral + Actor65: v24 + Location: 18,38 + Owner: Neutral + Actor66: v32 + Location: 19,41 + Owner: Special + Actor67: v30 + Location: 15,40 + Owner: Neutral + Actor68: v29 + Location: 17,40 + Owner: Neutral + Actor69: v28 + Location: 23,38 + Owner: Neutral + Actor70: v27 + Location: 23,36 + Owner: Neutral + Actor71: v27 + Location: 22,36 + Owner: Neutral + Actor72: v26 + Location: 16,37 + Owner: Neutral + Actor82: mtnk + Location: 21,21 + Owner: GDI + Actor83: mtnk + Location: 17,14 + Owner: GDI + Actor84: jeep + Location: 29,21 + Owner: GDI + Actor85: jeep + Location: 29,20 + Owner: GDI + Actor86: e2 + Location: 58,30 + Owner: GDI + SubCell: 2 + Actor87: e2 + Location: 57,29 + Owner: GDI + SubCell: 0 + Actor88: e1 + Location: 32,49 + Owner: GDI + SubCell: 1 + Actor89: e1 + Location: 7,30 + Owner: GDI + Facing: 128 + SubCell: 3 + Actor90: e2 + Location: 6,30 + Owner: GDI + Facing: 96 + SubCell: 1 + Actor91: e2 + Location: 8,28 + Owner: GDI + Facing: 160 + SubCell: 3 + Actor92: e2 + Location: 39,43 + Owner: GDI + SubCell: 1 + waypoint27: waypoint + Location: 39,36 + Owner: Neutral + waypoint26: waypoint + Location: 44,48 + Owner: Neutral + waypoint12: waypoint + Location: 6,20 + Owner: Neutral + waypoint11: waypoint + Location: 5,26 + Owner: Neutral + waypoint10: waypoint + Location: 35,13 + Owner: Neutral + waypoint9: waypoint + Location: 52,13 + Owner: Neutral + waypoint8: waypoint + Location: 47,55 + Owner: Neutral + waypoint7: waypoint + Location: 26,54 + Owner: Neutral + waypoint6: waypoint + Location: 56,37 + Owner: Neutral + waypoint5: waypoint + Location: 30,52 + Owner: Neutral + waypoint4: waypoint + Location: 12,47 + Owner: Neutral + waypoint3: waypoint + Location: 11,35 + Owner: Neutral + waypoint2: waypoint + Location: 55,42 + Owner: Neutral + waypoint1: waypoint + Location: 26,32 + Owner: Neutral + waypoint0: waypoint + Location: 26,25 + Owner: Neutral + UnitsEntry: waypoint + Location: 52,56 + Owner: Neutral + UnitsRallyVehicle: waypoint + Location: 51,49 + Owner: Neutral + UnitsRallyRocket: waypoint + Location: 49,49 + Owner: Neutral + UnitsRallyGunner: waypoint + Location: 53,49 + Owner: Neutral + UnitsRallyMCV: waypoint + Location: 51,52 + Owner: Neutral + Tower1: gtwr + Location: 28,21 + Owner: GDI + Tower2: gtwr + Location: 23,21 + Owner: GDI + Radar: hq + Location: 21,14 + Owner: GDI + Silo1: silo + Location: 16,20 + Owner: GDI + Silo2: silo + Location: 16,18 + Owner: GDI + Silo3: silo + Location: 16,16 + Owner: GDI + Refinery: proc + Location: 18,17 + Owner: GDI + Barracks: pyle + Location: 25,18 + Owner: GDI + Plant1: nuke + Location: 21,17 + Owner: GDI + Plant2: nuke + Location: 23,17 + Owner: GDI + Yard: fact + Location: 18,14 + Owner: GDI + Factory: weap + Location: 26,13 + Owner: GDI + +Smudges: + cr1 46,48 0: + +Rules: + Player: + -ConquestVictoryConditions: + MissionObjectives: + EarlyGameOver: true + World: + -CrateSpawner: + -SpawnMPUnits: + -MPStartLocations: + ObjectivesPanel: + PanelName: MISSION_OBJECTIVES + LuaScript: + Scripts: nod05.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 + NUK2: + Buildable: + Prerequisites: ~disabled + GUN: + Buildable: + Prerequisites: ~disabled + CYCL: + Buildable: + Prerequisites: ~disabled + FIX: + Buildable: + Prerequisites: ~disabled + HPAD: + Buildable: + Prerequisites: ~disabled + OBLI: + Buildable: + Prerequisites: ~disabled + BRIK: + Buildable: + Prerequisites: ~disabled + TMPL: + Buildable: + Prerequisites: ~disabled + E5: + Buildable: + Prerequisites: ~disabled + RMBO: + Buildable: + Prerequisites: ~disabled + MLRS: + Buildable: + Prerequisites: ~disabled + MCV: + Buildable: + Prerequisites: ~disabled + LST: + Buildable: + Prerequisites: ~disabled + C17: + Buildable: + Prerequisites: ~disabled + GTWR: + Buildable: + Prerequisites: ~disabled + WEAP: + Buildable: + Prerequisites: ~disabled + EYE: + Buildable: + Prerequisites: ~disabled + ATWR: + Buildable: + Prerequisites: ~disabled + HARV: + Buildable: + Prerequisites: ~disabled + FTNK: + Buildable: + Prerequisites: ~disabled + STNK: + Buildable: + Prerequisites: ~disabled + ARTY: + Buildable: + Prerequisites: ~disabled + E3: + Buildable: + Prerequisites: ~disabled + MTNK: + Buildable: + Prerequisites: ~disabled + HTNK: + Buildable: + Prerequisites: ~disabled + ORCA: + Buildable: + Prerequisites: ~disabled + MSAM: + Buildable: + Prerequisites: ~disabled + A10: + TargetableUnit: + +Sequences: + +VoxelSequences: + +Weapons: + +Voices: + +Notifications: + +Translations: diff --git a/mods/cnc/maps/nod05/nod05.lua b/mods/cnc/maps/nod05/nod05.lua new file mode 100644 index 0000000000..1a357bc22e --- /dev/null +++ b/mods/cnc/maps/nod05/nod05.lua @@ -0,0 +1,339 @@ +NodUnitsVehicle = { 'bike', 'bike', 'bggy', 'ltnk', 'bike', 'bike' } +NodUnitsRocket = { 'e1', 'e1', 'e1', 'e1' } +NodUnitsGunner = { 'e3', 'e3', 'e3', 'e3' } +GDIReinforceUnits = { 'e2', 'e2', 'e2', 'e2', 'e2' } + +Gdi1Units = { ['e1'] = 3, ['e2'] = 1 } +Gdi2Units = { ['e1'] = 2, ['e2'] = 1 } +Gdi3Units = { ['jeep'] = 1 } +Gdi4Units = { ['mtnk'] = 1 } +Gdi5Units = { ['e1'] = 1, ['e2'] = 2 } +Gdi6Units = { ['e1'] = 3 } +Gdi7Units = { ['e2'] = 2 } +Gdi8Units = { ['e2'] = 5 } + +AllUnits = { Gdi1Units, Gdi2Units, Gdi3Units, Gdi4Units, Gdi5Units, Gdi6Units, Gdi7Units, Gdi8Units } + +AirstrikeDelay = DateTime.Minutes(1) + DateTime.Seconds(40) +YyyyTriggerFunctionTime = DateTime.Minutes(1) + DateTime.Seconds(30) +ZzzzTriggerFunctionTime = DateTime.Minutes(2) + DateTime.Seconds(30) +Grd1TriggerFunctionTime = DateTime.Seconds(3) +Atk2TriggerFunctionTime = DateTime.Minutes(1) + DateTime.Seconds(10) +Atk3TriggerFunctionTime = DateTime.Minutes(3) + DateTime.Seconds(10) +Atk4TriggerFunctionTime = DateTime.Minutes(4) + DateTime.Seconds(40) +Atk6TriggerFunctionTime = DateTime.Minutes(2) + DateTime.Seconds(30) + +DelyCellTriggerActivator = { CPos.New(29,30), CPos.New(28,30), CPos.New(27,30), CPos.New(26,30), CPos.New(25,30), CPos.New(24,30), CPos.New(23,30), CPos.New(22,30), CPos.New(21,30), CPos.New(29,29), CPos.New(28,29), CPos.New(27,29), CPos.New(26,29), CPos.New(25,29), CPos.New(24,29), CPos.New(23,29), CPos.New(22,29) } +DelzCellTriggerActivator = { CPos.New(29,27), CPos.New(28,27), CPos.New(27,27), CPos.New(26,27), CPos.New(25,27), CPos.New(24,27), CPos.New(29,26), CPos.New(28,26), CPos.New(27,26), CPos.New(26,26), CPos.New(25,26), CPos.New(24,26) } +Atk5CellTriggerActivator = { CPos.New(10,33), CPos.New(9,33), CPos.New(8,33), CPos.New(9,32), CPos.New(8,32), CPos.New(7,32), CPos.New(8,31), CPos.New(7,31), CPos.New(6,31) } +Atk1CellTriggerActivator = { CPos.New(10,33), CPos.New(9,33), CPos.New(8,33), CPos.New(9,32), CPos.New(8,32), CPos.New(7,32), CPos.New(8,31), CPos.New(7,31), CPos.New(6,31) } + +Gdi1Waypoints = { waypoint0, waypoint1, waypoint3, waypoint4 } +Gdi2Waypoints = { waypoint0, waypoint1, waypoint3, waypoint4, waypoint5 } +Gdi3Waypoints = { waypoint0, waypoint1, waypoint2 } +Gdi5Waypoints = { waypoint0, waypoint1, waypoint3, waypoint1, waypoint6 } +Gdi11Waypoints = { waypoint0, waypoint1, waypoint3, waypoint4, waypoint7, waypoint8 } +Gdi12Waypoints = { waypoint0, waypoint1, waypoint3, waypoint11, waypoint12 } + +AllWaypoints = { Gdi1Waypoints, Gdi2Waypoints, Gdi3Waypoints, Gdi5Waypoints, Gdi11Waypoints, Gdi12Waypoints } + +HuntActorTriggerActivator = { Tower1, Tower2, Radar, Silo1, Silo2, Silo3, Refinery, Barracks, Plant1, Plant2, Yard, Factory } + +GDIStartUnits = { } + +SendGDIAirstrike = function() + if not Radar.IsDead then + local target = getAirstrikeTarget() + + if target then + Radar.SendAirstrike(target, false, 256 - 28) + Trigger.AfterDelay(AirstrikeDelay, SendGDIAirstrike) + else + Trigger.AfterDelay(AirstrikeDelay/4, SendGDIAirstrike) + end + end +end + +YyyyTriggerFunction = function() + if not YyyyTriggerSwitch then + for type, count in pairs(Gdi2Units) do + MyActors = Utils.Take(count, GDI.GetActorsByType(type)) + Utils.Do(MyActors, function(actor) + WaypointMovementAndHunt(actor, Gdi2Waypoints) + end) + end + end +end + +ZzzzTriggerFunction = function() + if not ZzzzTriggerSwitch then + for type, count in pairs(Gdi1Units) do + MyActors = Utils.Take(count, GDI.GetActorsByType(type)) + Utils.Do(MyActors, function(actor) + WaypointMovementAndHunt(actor, Gdi1Waypoints) + end) + end + end +end + +Grd1TriggerFunction = function() + MyActors = Utils.Take(2, GDI.GetActorsByType('jeep')) + Utils.Do(MyActors, function(actor) + WaypointMovementAndHunt(actor, Gdi5Waypoints) + end) +end + +Atk5TriggerFunction = function() + WaypointMovementAndHunt(GDI.GetActorsByType('mtnk')[1], Gdi12Waypoints) +end + +Atk2TriggerFunction = function() + for type, count in pairs(Gdi1Units) do + MyActors = Utils.Take(count, GDI.GetActorsByType(type)) + Utils.Do(MyActors, function(actor) + WaypointMovementAndHunt(actor, Gdi1Waypoints) + end) + end +end + +Atk3TriggerFunction = function() + for type, count in pairs(Gdi2Units) do + MyActors = Utils.Take(count, GDI.GetActorsByType(type)) + Utils.Do(MyActors, function(actor) + WaypointMovementAndHunt(actor, Gdi2Waypoints) + end) + end +end + +Atk4TriggerFunction = function() + WaypointMovementAndHunt(GDI.GetActorsByType('jeep')[1], Gdi3Waypoints) +end + +Atk6TriggerFunction = function() + WaypointMovementAndHunt(GDI.GetActorsByType('mtnk')[1], Gdi2Waypoints) +end + +Atk1TriggerFunction = function() + Reinforcements.ReinforceWithTransport(GDI, 'tran', GDIReinforceUnits, { waypoint9.Location, waypoint26.Location }, nil, + function(transport, cargo) + transport.UnloadPassengers() + Utils.Do(cargo, function(actor) + IdleHunt(actor) + end) + end) +end + +AutoTriggerFunction = function() + local units = AllUnits[DateTime.GameTime % #AllUnits + 1] + local waypoints = AllWaypoints[DateTime.GameTime % #AllWaypoints + 1] + + for type, count in pairs(units) do + MyActors = Utils.Take(count, GDI.GetActorsByType(type)) + Utils.Do(MyActors, function(actor) + WaypointMovementAndHunt(actor, waypoints) + end) + end +end + +HuntTriggerFunction = function() + local list = GDI.GetGroundAttackers() + Utils.Do(list, function(unit) + IdleHunt(unit) + end) +end + +WaypointMovementAndHunt = function(unit, waypoints) + if unit ~= nil then + Utils.Do(waypoints, function(waypoint) + unit.AttackMove(waypoint.Location) + end) + IdleHunt(unit) + end +end + +InsertNodUnits = function() + Camera.Position = UnitsEntry.CenterPosition + + Reinforcements.Reinforce(Nod, NodUnitsVehicle, { UnitsEntry.Location, UnitsRallyVehicle.Location }, 1) + Reinforcements.Reinforce(Nod, NodUnitsRocket, { UnitsEntry.Location, UnitsRallyRocket.Location }, 50) + Reinforcements.Reinforce(Nod, NodUnitsGunner, { UnitsEntry.Location, UnitsRallyGunner.Location }, 50) + Trigger.AfterDelay(DateTime.Seconds(6), function() + Reinforcements.Reinforce(Nod, { 'mcv' }, { UnitsEntry.Location, UnitsRallyMCV.Location }) + end) +end + +WorldLoaded = function() + GDI = Player.GetPlayer("GDI") + Nod = Player.GetPlayer("Nod") + + InsertNodUnits() + + 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("Build 3 SAMs") + NodObjective2 = Nod.AddPrimaryObjective("Destroy the GDI base") + GDIObjective = GDI.AddPrimaryObjective("Kill all enemies!") + + Trigger.AfterDelay(AirstrikeDelay, SendGDIAirstrike) + Trigger.AfterDelay(YyyyTriggerFunctionTime, YyyyTriggerFunction) + Trigger.AfterDelay(ZzzzTriggerFunctionTime, ZzzzTriggerFunction) + + Trigger.OnEnteredFootprint(DelyCellTriggerActivator, function(a, id) + if a.Owner == Nod then + YyyyTriggerSwitch = true + Trigger.RemoveFootprintTrigger(id) + end + end) + + Trigger.OnEnteredFootprint(DelzCellTriggerActivator, function(a, id) + if a.Owner == Nod then + ZzzzTriggerSwitch = true + Trigger.RemoveFootprintTrigger(id) + end + end) + + Trigger.AfterDelay(Grd1TriggerFunctionTime, Grd1TriggerFunction) + + Trigger.OnEnteredFootprint(Atk5CellTriggerActivator, function(a, id) + if a.Owner == Nod then + Atk5TriggerFunction() + Trigger.RemoveFootprintTrigger(id) + end + end) + + Trigger.AfterDelay(Atk2TriggerFunctionTime, Atk2TriggerFunction) + Trigger.AfterDelay(Atk3TriggerFunctionTime, Atk3TriggerFunction) + Trigger.AfterDelay(Atk4TriggerFunctionTime, Atk4TriggerFunction) + Trigger.AfterDelay(Atk6TriggerFunctionTime, Atk6TriggerFunction) + + Trigger.OnEnteredFootprint(Atk1CellTriggerActivator, function(a, id) + if a.Owner == Nod then + Atk1TriggerFunction() + Trigger.RemoveFootprintTrigger(id) + end + end) + + Trigger.OnDiscovered(Tower1, AutoTriggerFunction) + Trigger.OnDiscovered(Tower2, AutoTriggerFunction) + + Trigger.OnAllRemovedFromWorld(HuntActorTriggerActivator, HuntTriggerFunction) + + Trigger.AfterDelay(0, getStartUnits) +end + +Tick = function() + if Nod.HasNoRequiredUnits() then + if DateTime.GameTime > 2 then + GDI.MarkCompletedObjective(GDIObjective) + end + end + + if not Nod.IsObjectiveCompleted(NodObjective1) and CheckForSams(Nod) then + Nod.MarkCompletedObjective(NodObjective1) + end + + if GDI.HasNoRequiredUnits() then + Nod.MarkCompletedObjective(NodObjective2) + end + + if DateTime.GameTime % DateTime.Seconds(3) == 0 then + checkProduction(GDI) + end + + if DateTime.GameTime % DateTime.Seconds(45) == 0 then + AutoTriggerFunction() + end +end + +IdleHunt = function(unit) + if not unit.IsDead then + Trigger.OnIdle(unit, unit.Hunt) + end +end + +CheckForSams = function(player) + local baseBuildings = Map.ActorsInBox(Map.TopLeft, Map.BottomRight, function(actor) + return actor.Owner == Nod and actor.Type == 'sam' end) + + return #baseBuildings >= 3 +end + +checkProduction = function(player) + local Units = Map.ActorsInBox(Map.TopLeft, Map.BottomRight, function(actor) + return actor.Owner == GDI + end) + + local UnitsType = { } + for type, count in pairs(GDIStartUnits) do + counter = 0 + Utils.Do(Units, function(unit) + if unit.Type == type then + counter = counter + 1 + end + end) + if counter < count then + for i = 1, count - counter, 1 do + UnitsType[i] = type + end + end + if #UnitsType > 0 then + if (type == 'jeep' or type == 'mtnk') and not Factory.IsDead then + Factory.Build(UnitsType) + elseif (type == 'e1' or type == 'e2') and not Barracks.IsDead then + Barracks.Build(UnitsType) + end + end + UnitsType = { } + end +end + +getStartUnits = function() + local Units = Map.ActorsInBox(Map.TopLeft, Map.BottomRight, function(actor) + return actor.Owner == GDI and ( actor.Type == 'e2' or actor.Type == 'e1' or actor.Type == 'jeep' or actor.Type == 'mtnk') + end) + Utils.Do(Units, function(unit) + if not GDIStartUnits[unit.Type] then + GDIStartUnits[unit.Type] = 1 + else + GDIStartUnits[unit.Type] = GDIStartUnits[unit.Type] + 1 + end + end) +end + +searches = 0 +getAirstrikeTarget = function() + local list = Nod.GetGroundAttackers() + local target = list[DateTime.GameTime % #list + 1].CenterPosition + + local sams = Map.ActorsInCircle(target, WRange.New(8 * 1024), function(actor) + return actor.Type == "sam" end) + + if #sams == 0 then + searches = 0 + return target + elseif searches < 6 then + searches = searches + 1 + return getAirstrikeTarget() + else + searches = 0 + return nil + end +end diff --git a/mods/cnc/missions.yaml b/mods/cnc/missions.yaml index fda4916595..7a2d167356 100644 --- a/mods/cnc/missions.yaml +++ b/mods/cnc/missions.yaml @@ -16,3 +16,4 @@ Nod Campaign: ./mods/cnc/maps/nod03b ./mods/cnc/maps/nod04a ./mods/cnc/maps/nod04b + ./mods/cnc/maps/nod05