From dffa1e45f4255cd211207fb9d9488c31cd92c6dd Mon Sep 17 00:00:00 2001 From: Michael Silber Date: Thu, 12 Sep 2019 11:13:17 +0200 Subject: [PATCH] Add gdi08a --- OpenRA.sln | 2 + mods/cnc/maps/gdi08a/gdi08a-AI.lua | 194 +++++++ mods/cnc/maps/gdi08a/gdi08a.lua | 152 +++++ mods/cnc/maps/gdi08a/map.bin | Bin 0 -> 20497 bytes mods/cnc/maps/gdi08a/map.png | Bin 0 -> 46411 bytes mods/cnc/maps/gdi08a/map.yaml | 886 +++++++++++++++++++++++++++++ mods/cnc/maps/gdi08a/rules.yaml | 154 +++++ mods/cnc/missions.yaml | 1 + 8 files changed, 1389 insertions(+) create mode 100644 mods/cnc/maps/gdi08a/gdi08a-AI.lua create mode 100644 mods/cnc/maps/gdi08a/gdi08a.lua create mode 100644 mods/cnc/maps/gdi08a/map.bin create mode 100644 mods/cnc/maps/gdi08a/map.png create mode 100644 mods/cnc/maps/gdi08a/map.yaml create mode 100644 mods/cnc/maps/gdi08a/rules.yaml diff --git a/OpenRA.sln b/OpenRA.sln index fde7d02055..2ca255db8c 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -30,6 +30,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts", mods\cnc\maps\gdi05b\gdi05b.lua = mods\cnc\maps\gdi05b\gdi05b.lua mods\cnc\maps\gdi06\gdi06.lua = mods\cnc\maps\gdi06\gdi06.lua mods\cnc\maps\gdi07\gdi07.lua = mods\cnc\maps\gdi07\gdi07.lua + mods\cnc\maps\gdi08a\gdi08a-AI.lua = mods\cnc\maps\gdi08a\gdi08a-AI.lua + mods\cnc\maps\gdi08a\gdi08a.lua = mods\cnc\maps\gdi08a\gdi08a.lua mods\cnc\maps\nod01\nod01.lua = mods\cnc\maps\nod01\nod01.lua mods\cnc\maps\nod02a\nod02a.lua = mods\cnc\maps\nod02a\nod02a.lua mods\cnc\maps\nod02b\nod02b.lua = mods\cnc\maps\nod02b\nod02b.lua diff --git a/mods/cnc/maps/gdi08a/gdi08a-AI.lua b/mods/cnc/maps/gdi08a/gdi08a-AI.lua new file mode 100644 index 0000000000..a97f6d50b9 --- /dev/null +++ b/mods/cnc/maps/gdi08a/gdi08a-AI.lua @@ -0,0 +1,194 @@ +--[[ + Copyright 2007-2020 The OpenRA Developers (see AUTHORS) + This file is part of OpenRA, which is free software. It is made + available to you under the terms of the GNU General Public License + as published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. For more + information, see COPYING. +]] + +AttackPaths = { WaypointGroup3, WaypointGroup4, WaypointGroup5 } +NodBase = { handofnod, nodairfield, nodrefinery, NodYard, nodpower1, nodpower2, nodpower3, nodpower4, gun1, gun2, nodsilo1, nodsilo2, nodsilo3, nodsilo4} + +PatrolProductionQueue = { } + +InfantryAttackGroup = { } +InfantryGroupSize = 5 +InfantryProductionCooldown = DateTime.Minutes(3) +InfantryProductionTypes = { "e1", "e1", "e1", "e3", "e3", "e4" } +HarvesterProductionType = { "harv" } + +VehicleAttackGroup = { } +VehicleGroupSize = 5 +VehicleProductionCooldown = DateTime.Minutes(3) +VehicleProductionTypes = { "bggy", "bggy", "bike", "ltnk", "ltnk" } + +StartingCash = 14000 + +BaseRefinery = { type = "proc", pos = CPos.New(24, 16), cost = 1500 } +BaseGun1 = { type = "gun", pos = CPos.New( 21, 19), cost = 600 } +BaseGun2 = { type = "gun", pos = CPos.New( 26, 21), cost = 600 } +BaseNuke1 = { type = "nuke", pos = CPos.New( 23, 14), cost = 500 } +BaseNuke2 = { type = "nuke", pos = CPos.New( 10, 9), cost = 500 } +BaseNuke3 = { type = "nuke", pos = CPos.New( 6, 8), cost = 500 } +BaseNuke4 = { type = "nuke", pos = CPos.New( 8, 8), cost = 500 } +InfantryProduction = { type = "hand", pos = CPos.New(27, 17), cost = 500 } +VehicleProduction = { type = "afld", pos = CPos.New(27, 14), cost = 2000 } + +NodGuards = { Actor154, Actor155, Actor218, Actor219 } + +BaseBuildings = { BaseRefinery, BaseNuke1, BaseNuke2, BaseNuke3, BaseNuke4, InfantryProduction, VehicleProduction, BaseGun1, BaseGun2 } + +BuildBuilding = function(building, cyard) + if CyardIsBuilding or Nod.Cash < building.cost then + Trigger.AfterDelay(DateTime.Seconds(10), function() BuildBuilding(building, cyard) end) + return + end + + CyardIsBuilding = true + + Nod.Cash = Nod.Cash - building.cost + Trigger.AfterDelay(Actor.BuildTime(building.type), function() + CyardIsBuilding = false + + if cyard.IsDead or cyard.Owner ~= Nod then + Nod.Cash = Nod.Cash + building.cost + return + end + + local actor = Actor.Create(building.type, true, { Owner = Nod, Location = building.pos }) + + if actor.Type == 'hand' or actor.Type == 'pyle' then + Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceInfantry(actor) end) + elseif actor.Type == 'afld' or actor.Type == 'weap' then + Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceVehicle(actor) end) + end + + Trigger.OnKilled(actor, function() + BuildBuilding(building, cyard) + end) + + RepairBuilding(GDI, actor, 0.75) + end) +end + +CheckForHarvester = function() + local harv = Nod.GetActorsByType("harv") + return #harv > 0 +end + +GuardBase = function() + Utils.Do(NodBase, function(building) + Trigger.OnDamaged(building, function() + Utils.Do(NodGuards, function(guard) + if not guard.IsDead and not building.IsDead then + guard.Stop() + guard.Guard(building) + end + end) + end) + end) +end + +ProduceHarvester = function(building) + if not buildingHarvester then + buildingHarvester = true + building.Build(HarvesterProductionType, function() + buildingHarvester = false + end) + end +end + +ProduceInfantry = function(building) + if building.IsDead or building.Owner ~= Nod then + return + elseif not CheckForHarvester() then + Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceInfantry(building) end) + return + end + + local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9)) + local toBuild = { Utils.Random(InfantryProductionTypes) } + local Path = Utils.Random(AttackPaths) + building.Build(toBuild, function(unit) + InfantryAttackGroup[#InfantryAttackGroup + 1] = unit[1] + + if #InfantryAttackGroup >= InfantryGroupSize then + MoveAndHunt(InfantryAttackGroup, Path) + InfantryAttackGroup = { } + Trigger.AfterDelay(InfantryProductionCooldown, function() ProduceInfantry(building) end) + else + Trigger.AfterDelay(delay, function() ProduceInfantry(building) end) + end + end) +end + +ProduceVehicle = function(building) + if building.IsDead or building.Owner ~= Nod then + return + elseif not CheckForHarvester() then + ProduceHarvester(building) + Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceVehicle(building) end) + return + end + + local delay = Utils.RandomInteger(DateTime.Seconds(12), DateTime.Seconds(17)) + local toBuild = { Utils.Random(VehicleProductionTypes) } + local Path = Utils.Random(AttackPaths) + building.Build(toBuild, function(unit) + VehicleAttackGroup[#VehicleAttackGroup + 1] = unit[1] + + if #VehicleAttackGroup >= VehicleGroupSize then + MoveAndHunt(VehicleAttackGroup, Path) + VehicleAttackGroup = { } + Trigger.AfterDelay(VehicleProductionCooldown, function() ProduceVehicle(building) end) + else + Trigger.AfterDelay(delay, function() ProduceVehicle(building) end) + end + end) +end + +StartAI = function() + Nod.Cash = StartingCash + GuardBase() +end + +Trigger.OnAllKilledOrCaptured(NodBase, function() + Utils.Do(Nod.GetGroundAttackers(), IdleHunt) +end) + +Trigger.OnKilled(nodrefinery, function() + BuildBuilding(BaseRefinery, NodYard) +end) + +Trigger.OnKilled(nodpower1, function() + BuildBuilding(BaseNuke1, NodYard) +end) + +Trigger.OnKilled(nodpower2, function() + BuildBuilding(BaseNuke2, NodYard) +end) + +Trigger.OnKilled(nodpower3, function() + BuildBuilding(BaseNuke3, NodYard) +end) + +Trigger.OnKilled(nodpower4, function() + BuildBuilding(BaseNuke4, NodYard) +end) + +Trigger.OnKilled(gun1, function() + BuildBuilding(BaseGun1, NodYard) +end) + +Trigger.OnKilled(gun2, function() + BuildBuilding(BaseGun2, NodYard) +end) + +Trigger.OnKilled(handofnod, function() + BuildBuilding(InfantryProduction, NodYard) +end) + +Trigger.OnKilled(nodairfield, function() + BuildBuilding(VehicleProduction, NodYard) +end) diff --git a/mods/cnc/maps/gdi08a/gdi08a.lua b/mods/cnc/maps/gdi08a/gdi08a.lua new file mode 100644 index 0000000000..c048cd9b2d --- /dev/null +++ b/mods/cnc/maps/gdi08a/gdi08a.lua @@ -0,0 +1,152 @@ +--[[ + Copyright 2007-2020 The OpenRA Developers (see AUTHORS) + This file is part of OpenRA, which is free software. It is made + available to you under the terms of the GNU General Public License + as published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. For more + information, see COPYING. +]] + +SamSites = { sam1, sam2, sam3 } + +WaypointGroup1 = { waypoint4, waypoint5, waypoint6, waypoint7, waypoint10, waypoint11, waypoint12 } +WaypointGroup2 = { waypoint4, waypoint5, waypoint13, waypoint16 } +WaypointGroup3 = { waypoint4, waypoint5, waypoint6, waypoint8 } +WaypointGroup4 = { waypoint4, waypoint5, waypoint6, waypoint7, waypoint9 } +WaypointGroup5 = { waypoint4, waypoint5, waypoint6 } +WaypointGroup6 = { waypoint4, waypoint5, waypoint6, waypoint7, waypoint14, waypoint15 } +WaypointGroup7 = { waypoint4, waypoint5 } +WaypointGroupCiv = { waypoint0, waypoint1, waypoint2, waypoint3 } + +Atk1 = { units = { ['ltnk'] = 1 }, waypoints = WaypointGroup1, delay = 0 } +Atk2 = { units = { ['ltnk'] = 1 }, waypoints = WaypointGroup2, delay = 0 } +Civ1 = { units = { ['c3'] = 1 }, waypoints = WaypointGroupCiv, delay = 0 } +Nod1 = { units = { ['e1'] = 2, ['e2'] = 2, ['e4'] = 2 }, waypoints = WaypointGroup3, delay = 90 } +Nod2 = { units = { ['e3'] = 2, ['e4'] = 2 }, waypoints = WaypointGroup3, delay = 130 } +Nod3 = { units = { ['e1'] = 2, ['e3'] = 3 }, waypoints = WaypointGroup3, delay = 50 } +Nod4 = { units = { ['bggy'] = 2 }, waypoints = WaypointGroup3, delay = 200 } +Nod5 = { units = { ['e4'] = 2, ['ltnk'] = 1 }, waypoints = WaypointGroup1, delay = 250 } +Nod6 = { units = { ['arty'] = 1 }, waypoints = WaypointGroup4, delay = 40 } +Nod7 = { units = { ['e3'] = 2, ['e4'] = 2 }, waypoints = WaypointGroup4, delay = 40 } +Nod8 = { units = { ['ltnk'] = 1, ['bggy'] = 1 }, waypoints = WaypointGroup3, delay = 170 } +Auto1 = { units = { ['e1'] = 2, ['e2'] = 2 }, waypoints = WaypointGroup5, delay = 50 } +Auto2 = { units = { ['e3'] = 3, ['e4'] = 2 }, waypoints = WaypointGroup3, delay = 50 } +Auto3 = { units = { ['ltnk'] = 1, ['bggy'] = 1 }, waypoints = WaypointGroup3, delay = 50 } +Auto4 = { units = { ['bggy'] = 2 }, waypoints = WaypointGroup7, delay = 50 } +Auto5 = { units = { ['ltnk'] = 1 }, waypoints = WaypointGroup6, delay = 50 } +Auto6 = { units = { ['arty'] = 1 }, waypoints = WaypointGroup4, delay = 50 } +Auto7 = { units = { ['e3'] = 3, ['e4'] = 2 }, waypoints = WaypointGroup6, delay = 50 } + +AutoAttackWaves = { Atk1, Atk2, Nod1, Nod2, Nod3, Nod4, Nod5, Nod6, Nod7, Nod8, Auto1, Auto2, Auto3, Auto4, Auto5, Auto6, Auto7 } + +StationaryGuardUnits = { Actor181, Actor182, Actor183, Actor184, Actor198, Actor199, Actor157, Actor175, Actor176, Actor173, Actor174, Actor158, Actor200, Actor159, Actor179, Actor180, Actor184, Actor185, Actor216, Actor217, Actor153, Actor215, Actor214, Actor213} + +DamagedGDIAssets = { Actor126, Actor127, Actor128, Actor129, Actor130,Actor131, Actor132, Actor133, Actor134, Actor135, Actor136, Actor137, Actor138, Actor160, Actor161, Actor162, Actor163, Actor164, Actor165, Actor166, Actor168, Actor169, Actor170} + +StartStationaryGuards = function(StationaryGuards) + Utils.Do(StationaryGuards, function(unit) + if not unit.IsDead then + unit.Patrol( { unit.Location } , true, 20) + end + end) +end + +SendWaves = function(counter, Waves) + if counter <= #Waves then + local team = Waves[counter] + + for type, amount in pairs(team.units) do + MoveAndHunt(Utils.Take(amount, Nod.GetActorsByType(type)), team.waypoints) + end + + Trigger.AfterDelay(DateTime.Seconds(team.delay), function() SendWaves(counter + 1, Waves) end) + end +end + +SendAttackWave = function(team) + for type, amount in pairs(team.units) do + count = 0 + local actors = Nod.GetActorsByType(type) + Utils.Do(actors, function(actor) + if actor.IsIdle and count < amount then + SetAttackWaypoints(actor, team.waypoints) + IdleHunt(actor) + count = count + 1 + end + end) + end +end + +SetAttackWaypoints = function(actor, waypoints) + if not actor.IsDead then + Utils.Do(waypoints, function(waypoint) + actor.AttackMove(waypoint.Location) + end) + end +end + +CeckRepairGDIAssetsObjective = function() + local failed = false + local repaired = true + Utils.Do(DamagedGDIAssets, function(actor) + if actor.IsDead then + failed = true + elseif actor.Health < actor.MaxHealth then + repaired = false + end + end) + + if failed then + GDI.MarkFailedObjective(RepairAssets) + return + elseif repaired then + GDI.MarkCompletedObjective(RepairAssets) + return + end + Trigger.AfterDelay(DateTime.Seconds(3), function() CeckRepairGDIAssetsObjective() end) +end + +WorldLoaded = function() + GDI = Player.GetPlayer("GDI") + Nod = Player.GetPlayer("Nod") + + Camera.Position = DefaultCameraPosition.CenterPosition + + StartStationaryGuards(StationaryGuardUnits) + + StartAI() + + InitObjectives(GDI) + + SecureArea = GDI.AddObjective("Destroy the Nod strike force.") + KillGDI = Nod.AddObjective("Kill all enemies!") + + RepairAssets = GDI.AddObjective("Repair GDI base and vehicles.", "Secondary", false) + Trigger.AfterDelay(DateTime.Seconds(5), function() CeckRepairGDIAssetsObjective() end) + + AirSupport = GDI.AddObjective("Destroy the SAM sites to receive air support.", "Secondary", false) + Trigger.OnAllKilled(SamSites, function() + GDI.MarkCompletedObjective(AirSupport) + Actor.Create("airstrike.proxy", true, { Owner = GDI }) + end) + + local InitialArrivingUnits = { Actor166 } + Utils.Do(InitialArrivingUnits, function(unit) + unit.Move(unit.Location + CVec.New(1, 1), 0) + end) + + Trigger.AfterDelay(DateTime.Minutes(1), function() SendWaves(1, AutoAttackWaves) end) + Trigger.AfterDelay(DateTime.Minutes(2), function() ProduceInfantry(handofnod) end) + Trigger.AfterDelay(DateTime.Minutes(2), function() ProduceVehicle(nodairfield) end) +end + +Tick = function() + if DateTime.GameTime > DateTime.Seconds(5) then + if GDI.HasNoRequiredUnits() then + Nod.MarkCompletedObjective(KillGDI) + end + if Nod.HasNoRequiredUnits() then + GDI.MarkCompletedObjective(SecureArea) + end + end +end diff --git a/mods/cnc/maps/gdi08a/map.bin b/mods/cnc/maps/gdi08a/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..359e8a7cf41ca08dc1356bdf83796901fd9905ce GIT binary patch literal 20497 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 literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/gdi08a/map.png b/mods/cnc/maps/gdi08a/map.png new file mode 100644 index 0000000000000000000000000000000000000000..395064cd8bd7169e6e76a6255a42cad60f3ee32d GIT binary patch literal 46411 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 &EKQ|&bE!d)= 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

fv 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 literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/gdi08a/map.yaml b/mods/cnc/maps/gdi08a/map.yaml new file mode 100644 index 0000000000..c06a47244c --- /dev/null +++ b/mods/cnc/maps/gdi08a/map.yaml @@ -0,0 +1,886 @@ +MapFormat: 11 + +RequiresMod: cnc + +Title: 08a: Restore GDI Presence Near Salzburg + +Author: Westwood Studios + +Tileset: WINTER + +MapSize: 64,64 + +Bounds: 3,7,51,50 + +Visibility: MissionSelector + +Categories: Campaign + +LockPreview: True + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: gdi + PlayerReference@Nod: + Name: Nod + Faction: nod + Color: FF1400 + Allies: Nod + Enemies: GDI + Bot: campaign + PlayerReference@GDI: + Name: GDI + AllowBots: False + Playable: True + Required: True + LockFaction: True + Faction: gdi + LockColor: True + Color: F5D378 + LockSpawn: True + LockTeam: True + Allies: GDI + Enemies: Nod + +Actors: + Actor0: sbag + Location: 53,56 + Owner: Neutral + Actor1: sbag + Location: 52,56 + Owner: Neutral + Actor2: sbag + Location: 51,56 + Owner: Neutral + Actor3: sbag + Location: 50,56 + Owner: Neutral + Actor4: sbag + Location: 49,56 + Owner: Neutral + Actor5: sbag + Location: 48,56 + Owner: Neutral + Actor6: sbag + Location: 47,56 + Owner: Neutral + Actor7: sbag + Location: 46,56 + Owner: Neutral + Actor8: sbag + Location: 45,56 + Owner: Neutral + Actor9: sbag + Location: 44,56 + Owner: Neutral + Actor10: sbag + Location: 43,56 + Owner: Neutral + Actor11: sbag + Location: 41,56 + Owner: Neutral + Actor12: sbag + Location: 40,56 + Owner: Neutral + Actor13: wood + Location: 5,56 + Owner: Neutral + Actor14: wood + Location: 4,56 + Owner: Neutral + Actor15: wood + Location: 3,56 + Owner: Neutral + Actor16: sbag + Location: 53,55 + Owner: Neutral + Actor17: sbag + Location: 40,55 + Owner: Neutral + Actor18: v18 + Location: 5,55 + Owner: Neutral + Actor19: v17 + Location: 4,55 + Owner: Neutral + Actor20: sbag + Location: 53,54 + Owner: Neutral + Actor21: sbag + Location: 40,54 + Owner: Neutral + Actor22: wood + Location: 17,54 + Owner: Neutral + Actor23: wood + Location: 16,54 + Owner: Neutral + Actor24: wood + Location: 15,54 + Owner: Neutral + Actor25: wood + Location: 14,54 + Owner: Neutral + Actor26: wood + Location: 11,54 + Owner: Neutral + Actor27: wood + Location: 10,54 + Owner: Neutral + Actor28: v14 + Location: 6,54 + Owner: Neutral + Actor29: v15 + Location: 5,54 + Owner: Neutral + Actor30: v16 + Location: 4,54 + Owner: Neutral + Actor31: sbag + Location: 53,53 + Owner: Neutral + Actor32: wood + Location: 6,53 + Owner: Neutral + Actor33: wood + Location: 17,52 + Owner: Neutral + Actor34: wood + Location: 16,52 + Owner: Neutral + Actor35: wood + Location: 15,52 + Owner: Neutral + Actor36: wood + Location: 14,52 + Owner: Neutral + Actor37: wood + Location: 11,52 + Owner: Neutral + Actor38: wood + Location: 10,52 + Owner: Neutral + Actor39: sbag + Location: 53,51 + Owner: Neutral + Actor40: sbag + Location: 53,50 + Owner: Neutral + Actor41: sbag + Location: 40,50 + Owner: Neutral + Actor42: sbag + Location: 53,49 + Owner: Neutral + Actor43: sbag + Location: 40,49 + Owner: Neutral + Actor44: sbag + Location: 53,48 + Owner: Neutral + Actor45: sbag + Location: 53,47 + Owner: Neutral + Actor46: sbag + Location: 40,47 + Owner: Neutral + Actor47: sbag + Location: 53,46 + Owner: Neutral + Actor48: sbag + Location: 52,46 + Owner: Neutral + Actor49: sbag + Location: 51,46 + Owner: Neutral + Actor50: sbag + Location: 50,46 + Owner: Neutral + Actor51: sbag + Location: 49,46 + Owner: Neutral + Actor52: sbag + Location: 48,46 + Owner: Neutral + Actor53: sbag + Location: 42,46 + Owner: Neutral + Actor54: sbag + Location: 41,46 + Owner: Neutral + Actor55: sbag + Location: 40,46 + Owner: Neutral + Actor56: t01 + Location: 33,32 + Owner: Neutral + Actor57: t01 + Location: 33,34 + Owner: Neutral + Actor58: tc01 + Location: 47,27 + Owner: Neutral + Actor59: t01 + Location: 42,18 + Owner: Neutral + Actor60: t01 + Location: 41,16 + Owner: Neutral + Actor61: t01 + Location: 36,18 + Owner: Neutral + Actor62: t01 + Location: 15,50 + Owner: Neutral + Actor63: t01 + Location: 6,54 + Owner: Neutral + Actor64: t01 + Location: 11,48 + Owner: Neutral + Actor65: tc01 + Location: 14,33 + Owner: Neutral + Actor66: tc04 + Location: 17,35 + Owner: Neutral + Actor67: tc01 + Location: 9,19 + Owner: Neutral + Actor68: tc04 + Location: 11,20 + Owner: Neutral + Actor69: t06 + Location: 37,8 + Owner: Neutral + Actor70: t03 + Location: 33,8 + Owner: Neutral + Actor71: t02 + Location: 36,9 + Owner: Neutral + Actor72: t01 + Location: 32,7 + Owner: Neutral + Actor73: tc04 + Location: 50,9 + Owner: Neutral + Actor74: tc01 + Location: 45,7 + Owner: Neutral + Actor75: tc01 + Location: 38,13 + Owner: Neutral + Actor76: tc02 + Location: 35,22 + Owner: Neutral + Actor77: tc05 + Location: 32,21 + Owner: Neutral + Actor78: t10 + Location: 17,47 + Owner: Neutral + Actor79: t13 + Location: 16,50 + Owner: Neutral + Actor80: tc01 + Location: 15,48 + Owner: Neutral + Actor81: tc02 + Location: 6,51 + Owner: Neutral + Actor82: tc02 + Location: 3,47 + Owner: Neutral + Actor83: tc04 + Location: 3,51 + Owner: Neutral + Actor84: tc04 + Location: 5,47 + Owner: Neutral + Actor85: tc04 + Location: 9,54 + Owner: Neutral + Actor86: tc04 + Location: 3,40 + Owner: Neutral + Actor87: t13 + Location: 4,42 + Owner: Neutral + Actor88: t11 + Location: 10,12 + Owner: Neutral + Actor89: t15 + Location: 4,10 + Owner: Neutral + Actor90: t16 + Location: 3,9 + Owner: Neutral + Actor91: tc02 + Location: 5,12 + Owner: Neutral + Actor92: tc01 + Location: 4,7 + Owner: Neutral + Actor93: tc04 + Location: 20,11 + Owner: Neutral + Actor94: tc04 + Location: 19,47 + Owner: Neutral + Actor95: tc05 + Location: 20,49 + Owner: Neutral + Actor96: tc04 + Location: 40,17 + Owner: Neutral + Actor97: tc01 + Location: 44,36 + Owner: Neutral + Actor98: tc04 + Location: 39,37 + Owner: Neutral + Actor99: tc02 + Location: 40,30 + Owner: Neutral + Actor100: tc02 + Location: 30,32 + Owner: Neutral + Actor101: t10 + Location: 32,33 + Owner: Neutral + Actor102: tc04 + Location: 37,54 + Owner: Neutral + Actor103: tc02 + Location: 34,53 + Owner: Neutral + Actor104: t01 + Location: 31,53 + Owner: Neutral + Actor105: t01 + Location: 16,54 + Owner: Neutral + Actor106: t02 + Location: 18,55 + Owner: Neutral + Actor107: t11 + Location: 25,32 + Owner: Neutral + Actor108: t11 + Location: 41,44 + Owner: Neutral + Actor109: tc01 + Location: 51,44 + Owner: Neutral + Actor110: tc04 + Location: 27,40 + Owner: Neutral + Actor111: tc05 + Location: 30,42 + Owner: Neutral + Actor112: t07 + Location: 31,39 + Owner: Neutral + Actor113: t06 + Location: 26,42 + Owner: Neutral + Actor114: t03 + Location: 28,43 + Owner: Neutral + sam1: sam + Location: 11,20 + Owner: Nod + sam2: sam + Location: 33,18 + Owner: Nod + sam3: sam + Location: 16,7 + Owner: Nod + Actor118: v05 + Location: 17,49 + Owner: Neutral + Actor119: v07 + Location: 9,49 + Owner: Neutral + Actor120: v06 + Location: 4,53 + Owner: Neutral + Actor121: v05 + Location: 6,49 + Owner: Neutral + Actor122: v04 + Location: 4,50 + Owner: Neutral + Actor123: v03 + Location: 10,50 + Owner: Neutral + Actor124: v01 + Location: 3,48 + Owner: Neutral + Actor125: v06 + Location: 20,49 + Owner: Neutral + Actor126: gtwr + Location: 41,54 + Owner: GDI + Health: 41 + Actor127: gtwr + Location: 41,50 + Owner: GDI + Health: 16 + Actor128: hq + Location: 51,47 + Owner: GDI + Health: 39 + Actor129: proc + Location: 44,46 + Owner: GDI + Health: 33 + FreeActor: False + Actor130: silo + Location: 49,54 + Owner: GDI + Health: 53 + Actor131: silo + Location: 47,47 + Owner: GDI + Health: 20 + Actor132: silo + Location: 47,53 + Owner: GDI + Health: 13 + Actor133: silo + Location: 51,54 + Owner: GDI + Health: 28 + Actor134: nuke + Location: 49,51 + Owner: GDI + Health: 14 + Actor135: nuke + Location: 49,48 + Owner: GDI + Health: 20 + Actor136: nuke + Location: 51,50 + Owner: GDI + Health: 35 + Actor137: pyle + Location: 47,49 + Owner: GDI + Health: 18 + Actor138: fix + Location: 44,52 + Owner: GDI + Health: 28 + gun1: gun + Location: 21,19 + Owner: Nod + NodYard: fact + Location: 7,11 + Owner: Nod + nodrefinery: proc + Location: 24,16 + Owner: Nod + FreeActor: False + nodsilo1: silo + Location: 29,17 + Owner: Nod + nodsilo2: silo + Location: 9,7 + Owner: Nod + nodsilo3: silo + Location: 12,9 + Owner: Nod + nodsilo4: silo + Location: 11,7 + Owner: Nod + nodairfield: afld + Location: 27,14 + Owner: Nod + nodpower1: nuke + Location: 23,14 + Owner: Nod + nodpower2: nuke + Location: 10,9 + Owner: Nod + nodpower3: nuke + Location: 6,8 + Owner: Nod + nodpower4: nuke + Location: 8,8 + Owner: Nod + handofnod: hand + Location: 27,17 + Owner: Nod + gun2: gun + Location: 26,21 + Owner: Nod + Actor153: arty + Location: 4,12 + Owner: Nod + Facing: 127 + Actor154: bggy + Location: 20,18 + Owner: Nod + Actor155: ltnk + Location: 19,18 + Owner: Nod + Actor156: bggy + Location: 10,21 + Owner: Nod + Facing: 95 + Actor157: ltnk + Location: 40,35 + Owner: Nod + Facing: 159 + Actor158: ltnk + Location: 45,23 + Owner: Nod + Facing: 95 + Actor159: ltnk + Location: 41,14 + Owner: Nod + Facing: 159 + Actor160: mtnk + Location: 42,55 + Owner: GDI + Health: 35 + Facing: 223 + Actor161: mtnk + Location: 33,52 + Owner: GDI + Health: 43 + Facing: 31 + Actor162: apc + Location: 37,50 + Owner: GDI + Health: 68 + Facing: 127 + Actor163: apc + Location: 39,48 + Owner: GDI + Health: 45 + Facing: 127 + Actor164: msam + Location: 42,49 + Owner: GDI + Health: 40 + Facing: 95 + Actor165: msam + Location: 41,51 + Owner: GDI + Health: 50 + Facing: 159 + Actor166: msam + Location: 33,48 + Owner: GDI + Health: 65 + Facing: 159 + Actor167: harv + Location: 23,23 + Owner: Nod + Facing: 95 + Actor168: harv + Location: 38,53 + Owner: GDI + Health: 51 + Facing: 31 + Actor169: jeep + Location: 36,52 + Owner: GDI + Health: 72 + Facing: 95 + Actor170: jeep + Location: 34,51 + Owner: GDI + Health: 31 + Facing: 159 + Actor171: arty + Location: 19,17 + Owner: Nod + Actor172: ltnk + Location: 22,11 + Owner: Nod + Facing: 159 + Actor173: e1 + Location: 45,36 + Owner: Nod + SubCell: 3 + Actor174: e1 + Location: 44,36 + Owner: Nod + SubCell: 4 + Actor175: e3 + Location: 41,36 + Owner: Nod + Facing: 159 + SubCell: 2 + Actor176: e3 + Location: 41,36 + Owner: Nod + Facing: 159 + SubCell: 3 + Actor177: e3 + Location: 42,17 + Owner: Nod + Facing: 159 + SubCell: 0 + Actor178: e3 + Location: 40,17 + Owner: Nod + Facing: 159 + SubCell: 4 + Actor179: e4 + Location: 42,15 + Owner: Nod + Facing: 159 + SubCell: 2 + Actor180: e4 + Location: 42,15 + Owner: Nod + Facing: 159 + SubCell: 3 + Actor181: e1 + Location: 16,53 + Owner: Nod + Facing: 191 + SubCell: 3 + Actor182: e1 + Location: 15,53 + Owner: Nod + Facing: 191 + SubCell: 2 + Actor183: e1 + Location: 17,53 + Owner: Nod + Facing: 191 + SubCell: 3 + Actor184: e1 + Location: 16,53 + Owner: Nod + Facing: 191 + SubCell: 2 + Actor185: c3 + Location: 18,50 + Owner: Neutral + Facing: 159 + SubCell: 1 + Actor186: e1 + Location: 46,51 + Owner: GDI + Facing: 159 + SubCell: 1 + Actor187: e1 + Location: 44,52 + Owner: GDI + Health: 87 + Facing: 223 + SubCell: 2 + Actor188: e1 + Location: 43,53 + Owner: GDI + Health: 31 + Facing: 31 + SubCell: 4 + Actor189: e1 + Location: 42,54 + Owner: GDI + Health: 75 + SubCell: 2 + Actor190: e1 + Location: 39,52 + Owner: GDI + Health: 77 + Facing: 159 + SubCell: 4 + Actor191: e1 + Location: 42,53 + Owner: GDI + Health: 69 + Facing: 159 + SubCell: 0 + Actor192: e2 + Location: 40,53 + Owner: GDI + Health: 75 + Facing: 31 + SubCell: 2 + Actor193: e2 + Location: 45,51 + Owner: GDI + Facing: 127 + SubCell: 1 + Actor194: e2 + Location: 38,50 + Owner: GDI + Health: 27 + Facing: 223 + SubCell: 0 + Actor195: e2 + Location: 46,52 + Owner: GDI + Facing: 31 + SubCell: 1 + Actor196: e2 + Location: 36,53 + Owner: GDI + Health: 57 + Facing: 159 + SubCell: 0 + Actor197: e2 + Location: 37,54 + Owner: GDI + Facing: 31 + SubCell: 1 + Actor198: e3 + Location: 27,40 + Owner: Nod + SubCell: 4 + Actor199: e3 + Location: 29,40 + Owner: Nod + SubCell: 3 + Actor200: e3 + Location: 48,27 + Owner: Nod + SubCell: 3 + Actor201: e1 + Location: 27,21 + Owner: Nod + SubCell: 3 + Actor202: e1 + Location: 27,21 + Owner: Nod + SubCell: 4 + Actor203: e1 + Location: 27,21 + Owner: Nod + SubCell: 2 + Actor204: e1 + Location: 27,21 + Owner: Nod + SubCell: 1 + Actor205: e3 + Location: 28,21 + Owner: Nod + SubCell: 4 + Actor206: e3 + Location: 28,21 + Owner: Nod + SubCell: 2 + Actor207: e3 + Location: 29,21 + Owner: Nod + SubCell: 1 + Actor208: e3 + Location: 29,21 + Owner: Nod + SubCell: 3 + Actor209: e4 + Location: 30,21 + Owner: Nod + SubCell: 1 + Actor210: e4 + Location: 30,21 + Owner: Nod + SubCell: 3 + Actor211: e4 + Location: 30,21 + Owner: Nod + SubCell: 2 + Actor212: e4 + Location: 30,21 + Owner: Nod + SubCell: 4 + Actor213: e1 + Location: 13,12 + Owner: Nod + SubCell: 3 + Actor214: e1 + Location: 14,12 + Owner: Nod + SubCell: 1 + Actor215: e1 + Location: 15,11 + Owner: Nod + SubCell: 0 + Actor216: e3 + Location: 5,7 + Owner: Nod + SubCell: 3 + Actor217: e3 + Location: 7,7 + Owner: Nod + SubCell: 3 + Actor218: e3 + Location: 19,15 + Owner: Nod + SubCell: 1 + Actor219: e3 + Location: 20,16 + Owner: Nod + SubCell: 1 + DefaultChinookTarget: waypoint + Location: 41,56 + Owner: Neutral + DefaultCameraPosition: waypoint + Location: 41,49 + Owner: Neutral + waypoint16: waypoint + Location: 10,22 + Owner: Neutral + waypoint15: waypoint + Location: 53,45 + Owner: Neutral + waypoint14: waypoint + Location: 53,40 + Owner: Neutral + waypoint13: waypoint + Location: 13,26 + Owner: Neutral + waypoint12: waypoint + Location: 52,25 + Owner: Neutral + waypoint11: waypoint + Location: 36,27 + Owner: Neutral + waypoint10: waypoint + Location: 38,32 + Owner: Neutral + waypoint9: waypoint + Location: 47,43 + Owner: Neutral + waypoint8: waypoint + Location: 24,55 + Owner: Neutral + waypoint7: waypoint + Location: 43,40 + Owner: Neutral + waypoint6: waypoint + Location: 24,38 + Owner: Neutral + waypoint5: waypoint + Location: 20,29 + Owner: Neutral + waypoint4: waypoint + Location: 23,24 + Owner: Neutral + waypoint3: waypoint + Location: 5,43 + Owner: Neutral + waypoint2: waypoint + Location: 8,47 + Owner: Neutral + waypoint1: waypoint + Location: 8,53 + Owner: Neutral + waypoint0: waypoint + Location: 19,53 + Owner: Neutral + +Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml diff --git a/mods/cnc/maps/gdi08a/rules.yaml b/mods/cnc/maps/gdi08a/rules.yaml new file mode 100644 index 0000000000..8d0a5d1abf --- /dev/null +++ b/mods/cnc/maps/gdi08a/rules.yaml @@ -0,0 +1,154 @@ +World: + LuaScript: + Scripts: campaign-global.lua, gdi08a.lua, gdi08a-AI.lua + MusicPlaylist: + StartingMusic: march + VictoryMusic: gdi_win1 + MissionData: + Briefing: U.N. Sanction has cut funding to the Global Defense Initiative. Field Units are helpless.\n\nUse the repair facility to keep your units in the field long enough to destroy the Nod base in this region.\n\nAll Nod units and structures must be destroyed. + BriefingVideo: gdi8a.vqa + BackgroundVideo: tbrinfo1.vqa + WinVideo: paratrop.vqa + LossVideo: gameover.vqa + SmudgeLayer@SCORCH: + InitialSmudges: + 42,56: sc1,0 + 41,52: sc6,0 + 38,51: sc2,0 + 43,50: sc3,0 + 40,48: sc4,0 + 47,46: sc5,0 + +ATWR: + Buildable: + Prerequisites: ~disabled + +NUK2: + Buildable: + Prerequisites: ~disabled + +HPAD: + Buildable: + Prerequisites: ~disabled + +BRIK: + Buildable: + Prerequisites: ~disabled + +EYE: + Buildable: + Prerequisites: ~disabled + +OBLI: + Buildable: + Prerequisites: ~disabled + +TMPL: + Buildable: + Prerequisites: ~disabled + +HTNK: + Buildable: + Prerequisites: ~disabled + +TRAN: + Buildable: + Prerequisites: ~disabled + +ORCA: + Buildable: + Prerequisites: ~disabled + +RMBO: + Buildable: + Prerequisites: ~disabled + +MSAM: + Buildable: + Prerequisites: ~disabled + +MCV: + Buildable: + Prerequisites: ~disabled + +BOAT: + Buildable: + Prerequisites: ~disabled + +FTNK: + Buildable: + Prerequisites: ~disabled + +STNK: + Buildable: + Prerequisites: ~disabled + +HELI: + Buildable: + Prerequisites: ~disabled + +LTNK: + Buildable: + Prerequisites: ~afld + +ARTY: + Buildable: + Prerequisites: ~disabled + +E4: + Buildable: + Prerequisites: barracks + +E5: + Buildable: + Prerequisites: ~disabled + +MLRS: + Buildable: + Prerequisites: ~disabled + +CYCL: + Buildable: + Prerequisites: ~disabled + +GTWR: + Buildable: + Prerequisites: ~disabled + +SBAG: + Buildable: + Queue: Defence.GDI, Defence.Nod + +GUN: + Buildable: + Queue: Defence.GDI, Defence.Nod + +C3: + Tooltip: + Name: Farmer Mike + +SAM: + Buildable: + Prerequisites: ~disabled + +^Bridge: + DamageMultiplier@INVULNERABLE: + Modifier: 0 + +BRIDGEHUT: + -Targetable: + +airstrike.proxy: + AirstrikePower: + SquadSize: 2 + SquadOffset: -1536, 1024, 0 + +HQ: + Tooltip: + -AirstrikePower: + Buildable: + Description: Provides an overview of the battlefield.\n Requires power to operate. + +AFLD: + RallyPoint: + Offset: -5, 2 diff --git a/mods/cnc/missions.yaml b/mods/cnc/missions.yaml index 7234d483fa..6765f4b0cf 100644 --- a/mods/cnc/missions.yaml +++ b/mods/cnc/missions.yaml @@ -9,6 +9,7 @@ GDI Campaign: gdi05b gdi06 gdi07 + gdi08a Nod Campaign: nod01