From 62bad226e52338197ae790d51c4617498e98d928 Mon Sep 17 00:00:00 2001 From: clemty Date: Sun, 27 Sep 2015 22:41:15 +0200 Subject: [PATCH] N64 Special Ops - GDI 1 --- OpenRA.sln | 15 +- mods/cnc/maps/cnc64gdi01/cnc64gdi01.lua | 211 ++++++ mods/cnc/maps/cnc64gdi01/map.bin | Bin 0 -> 20497 bytes mods/cnc/maps/cnc64gdi01/map.png | Bin 0 -> 16873 bytes mods/cnc/maps/cnc64gdi01/map.yaml | 823 ++++++++++++++++++++++++ mods/cnc/missions.yaml | 3 + 6 files changed, 1045 insertions(+), 7 deletions(-) create mode 100644 mods/cnc/maps/cnc64gdi01/cnc64gdi01.lua create mode 100644 mods/cnc/maps/cnc64gdi01/map.bin create mode 100644 mods/cnc/maps/cnc64gdi01/map.png create mode 100644 mods/cnc/maps/cnc64gdi01/map.yaml diff --git a/OpenRA.sln b/OpenRA.sln index 79124b7d44..4058bb1230 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -39,29 +39,30 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts", 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\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\nod06c\nod06c.lua = mods\cnc\maps\nod06c\nod06c.lua + mods\cnc\maps\funpark01\scj01ea.lua = mods\cnc\maps\funpark01\scj01ea.lua + mods\cnc\maps\cnc64gdi01\cnc64gdi01.lua = mods\cnc\maps\cnc64gdi01\cnc64gdi01.lua mods\cnc\maps\shellmap\shellmap.lua = mods\cnc\maps\shellmap\shellmap.lua EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Red Alert Lua scripts", "Red Alert Lua scripts", "{B35D533F-BEB6-4674-A466-324EEFD97259}" ProjectSection(SolutionItems) = preProject - mods\ra\maps\allies-05a\AI.lua = mods\ra\maps\allies-05a\AI.lua mods\ra\maps\allies-01\allies01.lua = mods\ra\maps\allies-01\allies01.lua mods\ra\maps\allies-02\allies02.lua = mods\ra\maps\allies-02\allies02.lua mods\ra\maps\allies-03a\allies03a.lua = mods\ra\maps\allies-03a\allies03a.lua mods\ra\maps\allies-03b\allies03b.lua = mods\ra\maps\allies-03b\allies03b.lua mods\ra\maps\allies-05a\allies05a.lua = mods\ra\maps\allies-05a\allies05a.lua - mods\ra\maps\desert-shellmap\desert-shellmap.lua = mods\ra\maps\desert-shellmap\desert-shellmap.lua + mods\ra\maps\allies-05a\AI.lua = mods\ra\maps\allies-05a\AI.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\survival01\survival01.lua = mods\ra\maps\survival01\survival01.lua + mods\ra\maps\survival02\survival02.lua = mods\ra\maps\survival02\survival02.lua 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\soviet-01\soviet01.lua = mods\ra\maps\soviet-01\soviet01.lua - mods\ra\maps\survival01\survival01.lua = mods\ra\maps\survival01\survival01.lua - mods\ra\maps\survival02\survival02.lua = mods\ra\maps\survival02\survival02.lua - mods\ra\maps\soviet-02a\soviet02a.lua = mods\ra\maps\soviet-02a\soviet02a.lua + mods\ra\maps\desert-shellmap\desert-shellmap.lua = mods\ra\maps\desert-shellmap\desert-shellmap.lua EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dune 2000 Lua scripts", "Dune 2000 Lua scripts", "{06B1AE07-DDB0-4287-8700-A8CD9A0E652E}" diff --git a/mods/cnc/maps/cnc64gdi01/cnc64gdi01.lua b/mods/cnc/maps/cnc64gdi01/cnc64gdi01.lua new file mode 100644 index 0000000000..41e923043a --- /dev/null +++ b/mods/cnc/maps/cnc64gdi01/cnc64gdi01.lua @@ -0,0 +1,211 @@ +CommandoReinforcements = { "rmbo" } +MCVReinforcements = { "mcv" } + +inf1 = { "e4" } + +AutocreateSquads = +{ + { "stnk", "stnk" }, + { "ftnk", "ftnk" }, + { "ltnk", "ltnk", "bike" }, + { "arty", "arty", "bike", "bike" }, + { "ltnk", "ltnk" }, + { "stnk", "stnk" }, + { "ltnk", "ltnk" }, + { "arty", "arty" } +} + +AttackTriggers = { AttackTrigger1, AttackTrigger2, AttackTrigger3, AttackTrigger4 } + +harvester = { "harv" } + +SamSites = { SAM01, SAM02 } + +WorldLoaded = function() + player = Player.GetPlayer("GDI") + enemy = Player.GetPlayer("Nod") + + 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, "Win") + end) + + Trigger.OnPlayerLost(player, function() + Media.PlaySpeechNotification(player, "Lose") + end) + + destroySAMsCenterObjective = player.AddPrimaryObjective("Destroy the SAM sites protecting the Obelisk.") + destroyObeliskObjective = player.AddPrimaryObjective("Destroy the Obelisk.") + destroyBiotechCenterObjective = player.AddPrimaryObjective("Destroy the biotech facility.") + + Trigger.OnAllKilled(SamSites, function() + AirSupport = Actor.Create("airstrike.proxy", true, { Owner = player }) + AirSupportEnabled = true + player.MarkCompletedObjective(destroySAMsCenterObjective) + end) + + Trigger.OnDamaged(Obelisk01, function() + Trigger.AfterDelay(DateTime.Seconds(1), Obelisk01.Kill) + end) + + Trigger.OnKilled(Obelisk01, function() + player.MarkCompletedObjective(destroyObeliskObjective) + Trigger.AfterDelay(DateTime.Seconds(5), function() Reinforce(MCVReinforcements) end) + ObeliskFlare.Destroy() + if AirSupportEnabled then AirSupport.Destroy() end + end) + + Trigger.OnKilled(Biolab, function() + player.MarkCompletedObjective(destroyBiotechCenterObjective) + end) + + Trigger.OnCapture(Biolab, function() + Biolab.Kill() + end) + + Trigger.OnDamaged(Biolab, HuntTriggerFunction) + + AIRepairBuildings(enemy) + AIRebuildHarvesters(enemy) + + Utils.Do(AttackTriggers, function(a) + Trigger.OnKilledOrCaptured(a, function() + NodVehicleProduction(Utils.Random(AutocreateSquads)) + end) + end) + + Trigger.AfterDelay(DateTime.Seconds(150), AutoCreateTeam) + Trigger.AfterDelay(DateTime.Minutes(5), HeliHunt) + + NodInfantryProduction() + + Camera.Position = UnitsRally.CenterPosition + ObeliskFlare = Actor.Create('flare', true, { Owner = player, Location = Flare.Location }) + Reinforce(CommandoReinforcements) +end + +Tick = function() + if DateTime.GameTime > DateTime.Seconds(5) and player.HasNoRequiredUnits() then + player.MarkFailedObjective(destroyBiotechCenterObjective) + end +end + +Reinforce = function(units) + Media.PlaySpeechNotification(player, "Reinforce") + ReinforceWithLandingCraft(units, lstStart.Location, lstEnd.Location, UnitsRally.Location) +end + +ReinforceWithLandingCraft = function(units, transportStart, transportUnload, rallypoint) + local transport = Actor.Create("oldlst", true, { Owner = player, Facing = 0, Location = transportStart }) + local subcell = 0 + Utils.Do(units, function(a) + transport.LoadPassenger(Actor.Create(a, false, { Owner = transport.Owner, Facing = transport.Facing, Location = transportUnload, SubCell = subcell })) + subcell = subcell + 1 + end) + + transport.ScriptedMove(transportUnload) + + transport.CallFunc(function() + Utils.Do(units, function() + local a = transport.UnloadPassenger() + a.IsInWorld = true + a.MoveIntoWorld(transport.Location - CVec.New(0, 1)) + + if rallypoint ~= nil then + a.Move(rallypoint) + end + end) + end) + + transport.Wait(5) + transport.ScriptedMove(transportStart) + transport.Destroy() +end + +HuntTriggerFunction = function() + local list = enemy.GetGroundAttackers() + Utils.Do(list, function(unit) + IdleHunt(unit) + end) +end + +IdleHunt = function(unit) + if not unit.IsDead then + Trigger.OnIdle(unit, function() + unit.AttackMove(UnitsRally.Location, 50) + unit.Hunt() + end) + end +end + +NodInfantryProduction = function() + if HandOfNod.IsDead or HandOfNod.Owner == player then + return + end + HandOfNod.Build(inf1, SquadHunt) + Trigger.AfterDelay(DateTime.Seconds(15), NodInfantryProduction) +end + +NodVehicleProduction = function(Squad) + if Airfield.IsDead or not Airfield.Owner == enemy then + return + end + Airfield.Build(Squad, SquadHunt) +end + +AIRepairBuildings = function(ai) + Utils.Do(Map.NamedActors, function(actor) + if actor.Owner == ai and actor.HasProperty("StartBuildingRepairs") then + Trigger.OnDamaged(actor, function(building) + if building.Owner == ai and building.Health < 0.9 * building.MaxHealth then + building.StartBuildingRepairs() + end + end) + end + end) +end + +HeliHunt = function() + local helicopters = enemy.GetActorsByType("heli") + SquadHunt(helicopters) +end + +SquadHunt = function(actors) + Utils.Do(actors, function(actor) + Trigger.OnIdle(actor, function() + actor.AttackMove(UnitsRally.Location, 50) + actor.Hunt() + end) + end) +end + +AIRebuildHarvesters = function(ai) + if AIHarvesterCount == NIL or AIHarvesterCount == 0 then + AIHarvesterCount = #ai.GetActorsByType("harv") + IsBuildingHarvester = false + end + + local CurrentHarvesterCount = #ai.GetActorsByType("harv") + + if CurrentHarvesterCount < AIHarvesterCount and Airfield.Owner == enemy and not IsBuildingHarvester and not Airfield.IsDead then + IsBuildingHarvester = true + Airfield.Build(harvester, function() + IsBuildingHarvester = false + end) + end + Trigger.AfterDelay(DateTime.Seconds(5), function() AIRebuildHarvesters(ai) end) +end + +AutoCreateTeam = function() + NodVehicleProduction(Utils.Random(AutocreateSquads)) + Trigger.AfterDelay(DateTime.Seconds(150), AutoCreateTeam) +end diff --git a/mods/cnc/maps/cnc64gdi01/map.bin b/mods/cnc/maps/cnc64gdi01/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..dc30c087287e85ee116e8df7678c66467e042611 GIT binary patch literal 20497 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 literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/cnc64gdi01/map.png b/mods/cnc/maps/cnc64gdi01/map.png new file mode 100644 index 0000000000000000000000000000000000000000..9a66d34bca5c8d7bf6a670089d73c92798731c22 GIT binary patch literal 16873 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�cHGnm8e(9k6wHOd`3@Yc6#Dm+Z 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