diff --git a/mods/cnc/maps/gdi02/gdi02.lua b/mods/cnc/maps/gdi02/gdi02.lua index 2936f041a7..dd58233f75 100644 --- a/mods/cnc/maps/gdi02/gdi02.lua +++ b/mods/cnc/maps/gdi02/gdi02.lua @@ -88,6 +88,15 @@ WorldLoaded = function() gdiObjective1 = player.AddPrimaryObjective("Eliminate all Nod forces in the area") gdiObjective2 = player.AddSecondaryObjective("Capture the Tiberium Refinery") + -- Work around limitations with the yaml merger that prevent MustBeDestroyed from working on the silos + siloARemoved = false + Trigger.OnCapture(SiloA, function() siloARemoved = true end) + Trigger.OnKilled(SiloA, function() siloARemoved = true end) + + siloBRemoved = false + Trigger.OnCapture(SiloB, function() siloBRemoved = true end) + Trigger.OnKilled(SiloB, function() siloBRemoved = true end) + Trigger.OnCapture(NodRefinery, function() player.MarkCompletedObjective(gdiObjective2) end) Trigger.OnKilled(NodRefinery, function() player.MarkFailedObjective(gdiObjective2) end) @@ -98,7 +107,7 @@ Tick = function() if player.HasNoRequiredUnits() then enemy.MarkCompletedObjective(nodObjective) end - if enemy.HasNoRequiredUnits() then + if enemy.HasNoRequiredUnits() and siloARemoved and siloBRemoved then player.MarkCompletedObjective(gdiObjective1) end end diff --git a/mods/cnc/maps/gdi02/map.yaml b/mods/cnc/maps/gdi02/map.yaml index 58fb676ac5..5cf6ff98a7 100644 --- a/mods/cnc/maps/gdi02/map.yaml +++ b/mods/cnc/maps/gdi02/map.yaml @@ -302,12 +302,12 @@ Actors: Owner: GDI Health: 0.34375 Facing: 0 - Actor79: silo + SiloA: silo Location: 57,32 Owner: Nod Health: 1 Facing: 0 - Actor80: silo + SiloB: silo Location: 59,32 Owner: Nod Health: 1