From ad986b2fb41aae6bc8f0bb0cca061ebc2777d851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 27 Dec 2015 16:48:39 +0100 Subject: [PATCH] Port the Co-Op Allies03 map to Lua. --- OpenRA.sln | 2 + mods/ra/maps/exodus/exodus.lua | 387 +++++++++ mods/ra/maps/exodus/map.bin | Bin 0 -> 92177 bytes mods/ra/maps/exodus/map.png | Bin 0 -> 17580 bytes mods/ra/maps/exodus/map.yaml | 1429 ++++++++++++++++++++++++++++++++ mods/ra/maps/exodus/rules.yaml | 184 ++++ 6 files changed, 2002 insertions(+) create mode 100644 mods/ra/maps/exodus/exodus.lua create mode 100644 mods/ra/maps/exodus/map.bin create mode 100644 mods/ra/maps/exodus/map.png create mode 100644 mods/ra/maps/exodus/map.yaml create mode 100644 mods/ra/maps/exodus/rules.yaml diff --git a/OpenRA.sln b/OpenRA.sln index 26d6996939..dddabd21dd 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -74,6 +74,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Red Alert Lua scripts", "Re mods\ra\maps\fort-lonestar\fort-lonestar.lua = mods\ra\maps\fort-lonestar\fort-lonestar.lua mods\ra\maps\intervention\intervention.lua = mods\ra\maps\intervention\intervention.lua mods\ra\maps\monster-tank-madness\monster-tank-madness.lua = mods\ra\maps\monster-tank-madness\monster-tank-madness.lua + mods\ra\maps\evacuation\evacuation.lua = mods\ra\maps\evacuation\evacuation.lua + mods\ra\maps\exodus\exodus.lua = mods\ra\maps\exodus\exodus.lua mods\ra\maps\soviet-01\soviet01.lua = mods\ra\maps\soviet-01\soviet01.lua mods\ra\maps\soviet-02a\soviet02a.lua = mods\ra\maps\soviet-02a\soviet02a.lua mods\ra\maps\soviet-02b\soviet02b.lua = mods\ra\maps\soviet-02b\soviet02b.lua diff --git a/mods/ra/maps/exodus/exodus.lua b/mods/ra/maps/exodus/exodus.lua new file mode 100644 index 0000000000..cd7c038002 --- /dev/null +++ b/mods/ra/maps/exodus/exodus.lua @@ -0,0 +1,387 @@ +Difficulty = Map.LobbyOption("difficulty") + +UnitsEvacuatedThreshold = +{ + hard = 200, + normal = 100, + easy = 50 +} + +AttackAtFrame = +{ + hard = 500, + normal = 500, + easy = 600 +} + +MinAttackAtFrame = +{ + hard = 100, + normal = 100, + easy = 150 +} + +MaxSovietYaks = +{ + hard = 4, + normal = 2, + easy = 0 +} + +SovietParadrops = +{ + hard = 40, + normal = 20, + easy = 0 +} + +SovietParadropTicks = +{ + hard = DateTime.Minutes(17), + normal = DateTime.Minutes(20), + easy = DateTime.Minutes(20) +} + +SovietUnits2Ticks = +{ + hard = DateTime.Minutes(12), + normal = DateTime.Minutes(15), + easy = DateTime.Minutes(15) +} + +SovietEntryPoints = +{ + SovietEntryPoint1, SovietEntryPoint2, SovietEntryPoint3, SovietEntryPoint4, SovietEntryPoint5, SovietEntryPoint6 +} + +SovietRallyPoints = +{ + SovietRallyPoint1, SovietRallyPoint2, SovietRallyPoint3, SovietRallyPoint4, SovietRallyPoint5, SovietRallyPoint6 +} + +SovietAirfields = +{ + SovietAirfield1, SovietAirfield2, SovietAirfield3, SovietAirfield4, + SovietAirfield5, SovietAirfield6, SovietAirfield7, SovietAirfield8 +} + +MountainEntry = +{ + MountainEntry1.Location, MountainEntry2.Location, MountainEntry3.Location, MountainEntry4.Location, + MountainEntry5.Location, MountainEntry6.Location, MountainEntry7.Location, MountainEntry8.Location +} + +BridgeEntry = +{ + BridgeEntry1.Location, BridgeEntry2.Location, BridgeEntry3.Location, BridgeEntry4.Location +} + +MobileConstructionVehicle = { "mcv" } +Yak = { "yak" } + +ReinforcementsTicks1 = DateTime.Minutes(5) +Reinforcements1 = +{ + "mgg", "2tnk", "2tnk", "2tnk", "2tnk", "1tnk", "1tnk", + "jeep", "jeep", "e1", "e1", "e1", "e1", "e3", "e3" +} + +ReinforcementsTicks2 = DateTime.Minutes(10) +Reinforcements2 = +{ + "mgg", "2tnk", "2tnk", "2tnk", "2tnk", "truk", "truk", "truk", + "truk", "truk", "truk", "1tnk", "1tnk", "jeep", "jeep" +} + +SovietUnits1 = +{ + "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "3tnk", "v2rl", "v2rl", "ftrk", + "apc", "e1", "e1", "e2", "e3", "e3", "e4" +} + +SovietUnits2 = +{ + "4tnk", "4tnk", "4tnk", "4tnk", "3tnk", "3tnk", "3tnk", "3tnk", "v2rl", + "v2rl", "ftrk", "apc", "e1", "e1", "e2", "e3", "e3", "e4" +} + +CurrentReinforcement1 = 0 +CurrentReinforcement2 = 0 +SpawnAlliedUnit = function(units) + Reinforcements.Reinforce(allies1, units, { Allies1EntryPoint.Location, Allies1MovePoint.Location }) + + if allies2 then + Reinforcements.Reinforce(allies2, units, { Allies2EntryPoint.Location, Allies2MovePoint.Location }) + end + + Utils.Do(humans, function(player) + Trigger.AfterDelay(DateTime.Seconds(2), function() + Media.PlaySpeechNotification(player, "AlliedReinforcementsNorth") + end) + end) + + if CurrentReinforcement1 < #Reinforcements1 then + CurrentReinforcement1 = CurrentReinforcement1 + 1 + Trigger.AfterDelay(ReinforcementsTicks1, function() + reinforcements1 = { Reinforcements1[CurrentReinforcement1] } + SpawnAlliedUnit(reinforcements1) + end) + end + + if CurrentReinforcement2 < #Reinforcements2 then + CurrentReinforcement2 = CurrentReinforcement2 + 1 + Trigger.AfterDelay(ReinforcementsTicks2, function() + reinforcements2 = { Reinforcements2[CurrentReinforcement2] } + SpawnAlliedUnit(reinforcements2) + end) + end +end + +SovietGroupSize = 5 +SpawnSovietUnits = function() + local spawnPoint = Utils.Random(SovietEntryPoints) + local rallyPoint = Utils.Random(SovietRallyPoints) + local route = { spawnPoint.Location, rallyPoint.Location } + + local units = SovietUnits1 + if DateTime.GameTime >= SovietUnits2Ticks[Difficulty] then + units = SovietUnits2 + end + + local unit = { Utils.Random(units) } + Reinforcements.Reinforce(soviets, unit, route) + + local delay = math.max(attackAtFrame - 5, minAttackAtFrame) + Trigger.AfterDelay(delay, SpawnSovietUnits) +end + +SovietParadrop = 0 +SendSovietParadrop = function() + local sovietParadrops = SovietParadrops[Difficulty] + + if (SovietParadrop > sovietParadrops) then + return + end + + SovietParadrop = SovietParadrop + 1 + + Utils.Do(humans, function(player) + Media.PlaySpeechNotification(player, "SovietForcesApproaching") + end) + + local x = Utils.RandomInteger(ParadropBoxTopLeft.Location.X, ParadropBoxBottomRight.Location.X) + local y = Utils.RandomInteger(ParadropBoxBottomRight.Location.Y, ParadropBoxTopLeft.Location.Y) + + local randomParadropCell = CPos.New(x, y) + local lz = Map.CenterOfCell(randomParadropCell) + + local powerproxy = Actor.Create("powerproxy.paratroopers", false, { Owner = soviets }) + powerproxy.SendParatroopers(lz) + powerproxy.Destroy() + + Trigger.AfterDelay(sovietParadropTicks, SendSovietParadrop) +end + +IdleHunt = function(unit) + Trigger.OnIdle(unit, unit.Hunt) +end + +ManageSovietUnits = function() + Utils.Do(SovietRallyPoints, function(rallyPoint) + local radius = WDist.FromCells(8) + local units = Map.ActorsInCircle(rallyPoint.CenterPosition, radius, function(actor) + return actor.Owner == soviets and actor.HasProperty("Hunt") + end) + + if #units > SovietGroupSize then + Utils.Do(units, IdleHunt) + end + end) + + local scatteredUnits = Utils.Where(soviets.GetGroundAttackers(), function(unit) + return not Map.IsNamedActor(unit) and unit.IsIdle and unit.HasProperty("Hunt") + end) + Utils.Do(scatteredUnits, IdleHunt) +end + +AircraftTargets = function() + local targets = Utils.Where(Map.ActorsInWorld, function(a) + return (a.Owner == allies1 or a.Owner == allies2) and a.HasProperty("Health") + end) + + -- prefer mobile units + table.sort(targets, function(a, b) return a.HasProperty("Move") and not b.HasProperty("Move") end) + + return targets +end + +YakAttack = function(yak, target) + if not target or target.IsDead or (not target.IsInWorld) then + local targets = AircraftTargets() + if #targets > 0 then + target = Utils.Random(targets) + else + yak.Wait(DateTime.Seconds(5)) + end + end + + if target and yak.AmmoCount() > 0 then + yak.Attack(target) + else + yak.ReturnToBase() -- includes yak.Resupply() + end + + yak.CallFunc(function() + YakAttack(yak, target) + end) +end + +ManageSovietAircraft = function() + if allies1.IsObjectiveCompleted(destroyAirbases) then + return + end + + local maxSovietYaks = MaxSovietYaks[Difficulty] + local sovietYaks = soviets.GetActorsByType('yak') + if #sovietYaks < maxSovietYaks then + soviets.Build(Yak, function(units) + local yak = units[1] + YakAttack(yak) + end) + end +end + +UnitsEvacuated = 0 +EvacuateAlliedUnit = function(unit) + if (unit.Owner == allies1 or unit.Owner == allies2) and unit.HasProperty("Move") then + unit.Stop() + unit.Owner = allies + + if unit.Type == 'mgg' then + Utils.Do(humans, function(player) + if player then + player.MarkCompletedObjective(evacuateMgg) + end + end) + end + + UnitsEvacuated = UnitsEvacuated + 1 + if unit.HasProperty("HasPassengers") then + UnitsEvacuated = UnitsEvacuated + unit.PassengerCount + end + + local exitCell = Map.ClosestEdgeCell(unit.Location) + Trigger.OnIdle(unit, function() + unit.ScriptedMove(exitCell) + end) + + local exit = Map.CenterOfCell(exitCell) + Trigger.OnEnteredProximityTrigger(exit, WDist.FromCells(1), function(a) + a.Destroy() + end) + + UserInterface.SetMissionText(UnitsEvacuated .. "/" .. unitsEvacuatedThreshold .. " units evacuated.", TextColor) + + if UnitsEvacuated >= unitsEvacuatedThreshold then + Utils.Do(humans, function(player) + if player then + player.MarkCompletedObjective(evacuateUnits) + end + end) + end + end +end + +Tick = function() + if DateTime.GameTime % 100 == 0 then + ManageSovietUnits() + ManageSovietAircraft() + + Utils.Do(humans, function(player) + if player and player.HasNoRequiredUnits() then + soviets.MarkCompletedObjective(sovietObjective) + end + end) + end +end + +WorldLoaded = function() + -- NPC + neutral = Player.GetPlayer("Neutral") + allies = Player.GetPlayer("Allies") + soviets = Player.GetPlayer("Soviets") + + -- Player controlled + allies1 = Player.GetPlayer("Allies1") + allies2 = Player.GetPlayer("Allies2") + + humans = { allies1, allies2 } + Utils.Do(humans, function(player) + if player and player.IsLocalPlayer then + 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, "MissionAccomplished") + end) + + Trigger.OnPlayerLost(player, function() + Media.PlaySpeechNotification(player, "MissionFailed") + end) + + TextColor = player.Color + end + end) + + unitsEvacuatedThreshold = UnitsEvacuatedThreshold[Difficulty] + UserInterface.SetMissionText(UnitsEvacuated .. "/" .. unitsEvacuatedThreshold .. " units evacuated.", TextColor) + Utils.Do(humans, function(player) + if player then + evacuateUnits = player.AddPrimaryObjective("Evacuate " .. unitsEvacuatedThreshold .. " units.") + destroyAirbases = player.AddSecondaryObjective("Destroy the nearby Soviet airbases.") + evacuateMgg = player.AddSecondaryObjective("Evacuate at least one mobile gap generator.") + end + end) + + Trigger.OnAllKilledOrCaptured(SovietAirfields, function() + Utils.Do(humans, function(player) + if player then + player.MarkCompletedObjective(destroyAirbases) + end + end) + end) + + sovietObjective = soviets.AddPrimaryObjective("Eradicate all allied troops.") + + if not allies2 or allies1.IsLocalPlayer then + Camera.Position = Allies1EntryPoint.CenterPosition + else + Camera.Position = Allies2EntryPoint.CenterPosition + end + + if not allies2 then + allies1.Cash = 10000 + Media.DisplayMessage("Transferring funds.", "Co-Commander is missing") + end + + SpawnAlliedUnit(MobileConstructionVehicle) + + minAttackAtFrame = MinAttackAtFrame[Difficulty] + attackAtFrame = AttackAtFrame[Difficulty] + Trigger.AfterDelay(attackAtFrame, SpawnSovietUnits) + + sovietParadropTicks = SovietParadropTicks[Difficulty] + Trigger.AfterDelay(sovietParadropTicks, SendSovietParadrop) + + Trigger.OnEnteredFootprint(MountainEntry, EvacuateAlliedUnit) + Trigger.OnEnteredFootprint(BridgeEntry, EvacuateAlliedUnit) +end diff --git a/mods/ra/maps/exodus/map.bin b/mods/ra/maps/exodus/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..1889cec6d20c622b2d64fe787100a042ab2550c0 GIT binary patch literal 92177 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