diff --git a/mods/ra/maps/soviet-04a/main.lua b/mods/ra/maps/soviet-04a/main.lua index c68f400014..cfaef8bc0b 100644 --- a/mods/ra/maps/soviet-04a/main.lua +++ b/mods/ra/maps/soviet-04a/main.lua @@ -37,14 +37,21 @@ RunInitialActivities = function() Trigger.OnEnteredFootprint(VillageCamArea, function(actor, id) if actor.Owner == player then - local camera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location }) Trigger.RemoveFootprintTrigger(id) - Trigger.OnAllKilled(Village, function() - camera.Destroy() - end) + + if not AllVillagersDead then + VillageCamera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location }) + end end end) + Trigger.OnAllKilled(Village, function() + if VillageCamera then + VillageCamera.Destroy() + end + AllVillagersDead = true + end) + Trigger.OnAnyKilled(Civs, function() Trigger.ClearAll(civ1) Trigger.ClearAll(civ2) diff --git a/mods/ra/maps/soviet-04b/main.lua b/mods/ra/maps/soviet-04b/main.lua index 6d2a991d1c..3ff5cb5f1b 100644 --- a/mods/ra/maps/soviet-04b/main.lua +++ b/mods/ra/maps/soviet-04b/main.lua @@ -39,14 +39,21 @@ RunInitialActivities = function() Trigger.OnEnteredFootprint(VillageCamArea, function(actor, id) if actor.Owner == player then - local camera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location }) Trigger.RemoveFootprintTrigger(id) - Trigger.OnAllKilled(Village, function() - camera.Destroy() - end) + + if not AllVillagersDead then + VillageCamera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location }) + end end end) + Trigger.OnAllKilled(Village, function() + if VillageCamera then + VillageCamera.Destroy() + end + AllVillagersDead = true + end) + Trigger.OnAnyKilled(Civs, function() Trigger.ClearAll(civ1) Trigger.ClearAll(civ2)