From e0e13f6a6a634acf24ded5faa00eca6cc0f87dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 10 Apr 2016 13:31:56 +0200 Subject: [PATCH 1/2] Add GDI mission 7: Finish The Nod Base. --- OpenRA.sln | 1 + mods/cnc/maps/gdi07/gdi07.lua | 205 ++++++ mods/cnc/maps/gdi07/map.bin | Bin 0 -> 20497 bytes mods/cnc/maps/gdi07/map.png | Bin 0 -> 48877 bytes mods/cnc/maps/gdi07/map.yaml | 1031 ++++++++++++++++++++++++++++ mods/cnc/maps/gdi07/rules.yaml | 146 ++++ mods/cnc/maps/gdi07/sequences.yaml | 7 + mods/cnc/missions.yaml | 1 + 8 files changed, 1391 insertions(+) create mode 100644 mods/cnc/maps/gdi07/gdi07.lua create mode 100644 mods/cnc/maps/gdi07/map.bin create mode 100644 mods/cnc/maps/gdi07/map.png create mode 100644 mods/cnc/maps/gdi07/map.yaml create mode 100644 mods/cnc/maps/gdi07/rules.yaml create mode 100644 mods/cnc/maps/gdi07/sequences.yaml diff --git a/OpenRA.sln b/OpenRA.sln index bc518274b1..25b080b2bd 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -33,6 +33,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts", mods\cnc\maps\gdi05a\gdi05a.lua = mods\cnc\maps\gdi05a\gdi05a.lua 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\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/gdi07/gdi07.lua b/mods/cnc/maps/gdi07/gdi07.lua new file mode 100644 index 0000000000..cda8185caa --- /dev/null +++ b/mods/cnc/maps/gdi07/gdi07.lua @@ -0,0 +1,205 @@ +InfantryReinforcements = { "e1", "e1", "e2" } +JeepReinforcements = { "jeep" } +TankReinforcements = { "mtnk" } +BaseReinforcements = { "mcv" } +GDIBaseBuildings = { "pyle", "fact", "nuke", "hq", "weap" } + +SamSites = { sam1, sam2, sam3, sam4 } +NodBase = { handofnod, nodpower1, nodpower2, nodpower3, nodairfield, nodrefinery, nodconyard } +HiddenNodUnits = { sleeper1, sleeper2, sleeper3, sleeper4 } + +ReinforceWithLandingCraft = function(units, transportStart, transportUnload, rallypoint) + local transport = Actor.Create("oldlst", true, { Owner = GDI, 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) + Media.PlaySpeechNotification(player, "Reinforce") + + 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 + +CheckForBase = function(player) + local buildings = 0 + + Utils.Do(GDIBaseBuildings, function(name) + if #GDI.GetActorsByType(name) > 0 then + buildings = buildings + 1 + end + end) + + return buildings == #GDIBaseBuildings +end + +SendReinforcements = function() + Trigger.AfterDelay(DateTime.Seconds(20), function() + ReinforceWithLandingCraft(BaseReinforcements, spawnpoint3.Location - CVec.New(0, -4), spawnpoint3.Location - CVec.New(0, -1), spawnpoint3.Location) + end) + + Trigger.AfterDelay(DateTime.Seconds(10), function() + ReinforceWithLandingCraft(TankReinforcements, spawnpoint2.Location - CVec.New(0, -4), spawnpoint2.Location - CVec.New(0, -1), spawnpoint2.Location) + + ReinforceWithLandingCraft(TankReinforcements, spawnpoint3.Location - CVec.New(0, -4), spawnpoint3.Location - CVec.New(0, -1), spawnpoint3.Location) + end) + + Trigger.AfterDelay(DateTime.Seconds(5), function() + ReinforceWithLandingCraft(JeepReinforcements, spawnpoint1.Location - CVec.New(0, -4), spawnpoint1.Location - CVec.New(0, -1), spawnpoint1.Location) + end) + + ReinforceWithLandingCraft(InfantryReinforcements, spawnpoint2.Location - CVec.New(0, -4), spawnpoint2.Location - CVec.New(0, -1), spawnpoint2.Location) + + ReinforceWithLandingCraft(InfantryReinforcements, spawnpoint3.Location - CVec.New(0, -4), spawnpoint3.Location - CVec.New(0, -1), spawnpoint3.Location) +end + +AttackPlayer = function() + + Trigger.AfterDelay(DateTime.Seconds(40), function() + for type, count in pairs({ ['e3'] = 3, ['e4'] = 2 }) do + atk1Actors = Utils.Take(count, Nod.GetActorsByType(type)) + Utils.Do(atk1Actors, function(unit) + unit.Move(waypoint6.Location) + unit.Move(waypoint7.Location) + unit.Move(waypoint8.Location) + unit.Move(waypoint9.Location) + unit.Move(waypoint10.Location) + unit.AttackMove(waypoint11.Location) + end) + end + end) + + Trigger.AfterDelay(DateTime.Seconds(40), function() + for type, count in pairs({ ['e1'] = 3, ['e3'] = 2 }) do + atk2Actors = Utils.Take(count, Nod.GetActorsByType(type)) + Utils.Do(atk2Actors, function(unit) + unit.Move(waypoint11.Location) + unit.Move(waypoint12.Location) + unit.Move(waypoint15.Location) + unit.Move(waypoint16.Location) + unit.Hunt() + end) + end + end) + + Trigger.AfterDelay(DateTime.Seconds(80), function() + for type, count in pairs({ ['e3'] = 3, ['e4'] = 2 }) do + atk3Actors = Utils.Take(count, Nod.GetActorsByType(type)) + Utils.Do(atk3Actors, function(unit) + unit.Move(waypoint6.Location) + unit.Move(waypoint7.Location) + unit.Move(waypoint8.Location) + unit.Move(waypoint9.Location) + unit.Move(waypoint10.Location) + unit.AttackMove(waypoint11.Location) + end) + end + end) + + Trigger.AfterDelay(DateTime.Seconds(80), function() + for type, count in pairs({ ['e1'] = 3, ['e3'] = 2 }) do + atk4Actors = Utils.Take(count, Nod.GetActorsByType(type)) + Utils.Do(atk4Actors, function(unit) + unit.Move(waypoint11.Location) + unit.Move(waypoint12.Location) + unit.Move(waypoint15.Location) + unit.Move(waypoint16.Location) + unit.AttackMove(waypoint11.Location) + end) + end + end) + + Trigger.AfterDelay(DateTime.Seconds(80), function() + atk5Actors = Utils.Take(2, Nod.GetActorsByType('bggy')) + Utils.Do(atk5Actors, function(unit) + unit.Move(waypoint11.Location) + unit.Move(waypoint12.Location) + unit.Move(waypoint15.Location) + unit.Move(waypoint16.Location) + unit.Hunt() + end) + end) + + Utils.Do(NodBase, function(actor) + Trigger.OnRemovedFromWorld(actor, function() + Utils.Do(Nod.GetGroundAttackers(Nod), function(unit) + unit.Hunt() + end) + end) + end) + + Utils.Do(HiddenNodUnits, function(actor) + actor.Hunt() + end) + +end + +WorldLoaded = function() + GDI = Player.GetPlayer("GDI") + Nod = Player.GetPlayer("Nod") + + Camera.Position = spawnpoint2.CenterPosition + + Trigger.OnObjectiveAdded(GDI, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective") + end) + + Trigger.OnObjectiveCompleted(GDI, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed") + end) + + Trigger.OnObjectiveFailed(GDI, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed") + end) + + Trigger.OnPlayerWon(GDI, function() + Media.PlaySpeechNotification(Nod, "Win") + end) + + Trigger.OnPlayerLost(GDI, function() + Media.PlaySpeechNotification(Nod, "Lose") + end) + + gdiMainObjective = GDI.AddPrimaryObjective("Destroy remaining Nod structures and units.") + gdiBaseObjective = GDI.AddSecondaryObjective("Build up a base.") + nodObjective = Nod.AddPrimaryObjective("Kill all enemies!") + + SendReinforcements() + + gdiAirSupportObjective = GDI.AddSecondaryObjective("Destroy the SAM sites to receive air support.") + Trigger.OnAllKilled(SamSites, function() + GDI.MarkCompletedObjective(gdiAirSupportObjective) + Actor.Create("airstrike.proxy", true, { Owner = GDI }) + end) + + AttackPlayer() +end + +Tick = function() + if DateTime.GameTime > DateTime.Seconds(5) then + if GDI.HasNoRequiredUnits() then + Nod.MarkCompletedObjective(nodObjective) + end + if Nod.HasNoRequiredUnits() then + GDI.MarkCompletedObjective(gdiMainObjective) + end + if not GDI.IsObjectiveCompleted(gdiBaseObjective) and DateTime.GameTime % DateTime.Seconds(1) == 0 and CheckForBase() then + GDI.MarkCompletedObjective(gdiBaseObjective) + end + end +end diff --git a/mods/cnc/maps/gdi07/map.bin b/mods/cnc/maps/gdi07/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..553ff8d8f72433d4f4ad5113b20570e8a0a77613 GIT binary patch literal 20497 zcmeI3%Z?RC5{Cb*s&nd`z5*l6Aloz^ZU)DX%d?#-(c6fYl>T=3n_iP%Gr0XJ zTmWQSITElZhx5O@ue7gzUz2^!_chBwS=-loeqGtuG`F-_jCO=+q);J(4D529vF_r@ z%;JggQZ9_eio;DKudCS*wh##UUN!!K{}1rPc}}4Z_y;EiC8z=kR(J(7z-TmVx@e)$ z1#;kFnt}jGj1z>^>E)F|-E5$Tx;;Wa8tAnWY$1bMGJnW_5_^O_R>q{tDHQo%&~EVbVx2k#qhljtAP0k$01SmFL7o=ew>))ZXhZ=0fw@FHEROmAV#}fhbX8d%~0=HBw>EXaY-rDHp74jLv69yb#T&8Yq z2%wzTD6N`SlU6h5xkKQIz&@4NeAfTq|D*MvP{JM-M|f1+XuDVmiZVP?iaf>EX{Q%R zAf$zXRN%olJ&<1eh|3s4j0#;A!|Um|{uIm+f-x56KWC0}>4W?S45}ap_OK2Hqot89 zvx-Gt=|zSD29PiWV03|&A+%88i6jNs2=Ge9qpT1~^nf2FE=%M3lQGBHpvr$7Ap{LM zbJ+TWen5g5BvdHa!lF?@xZAO47c6f98Ua8ZNN4~as3<7mi6p9!@eqbnw=Fnf2+s0K z9sCFTSC#+6LYi~tsPhlQtqp~knBSM~tGO-RR&z(X6IK8THv0lv(+C&_Qm5DMgBBU; zmb6nif+R{Pv@pbeAx1mHDYI(*Aw$N+lUW?GpauTx^N)Qj?7=WP(F}meeWm+qZ!6ta zdq?Sxx?9q%;?Yg%rkd}h?}9oY84Ql2#E@ul$efU1rh+8;@qHjX!^RxKl%;C@i9?#< zfqASPef~i|=FCj@FX`JTSc!1oi4aU~Dcvd_-Bh}%_B*BT0unqsE9?lPD5!E2AeIU( z=ts=>sn8gl=XRpQD=X)){$#2n1Uctps|C4_JzoF4{x~j~e-v69Jb*ua8+4(ZMx&yR z6;L7R44Hl*eK9~qhDLgwSAb+-sLJpnpcy≻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 literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/gdi07/map.png b/mods/cnc/maps/gdi07/map.png new file mode 100644 index 0000000000000000000000000000000000000000..153cea19149a765cb534e22c03d06229bfe0f417 GIT binary patch literal 48877 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 HKk$D5+OX(< literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/gdi07/map.yaml b/mods/cnc/maps/gdi07/map.yaml new file mode 100644 index 0000000000..d75d0866e9 --- /dev/null +++ b/mods/cnc/maps/gdi07/map.yaml @@ -0,0 +1,1031 @@ +MapFormat: 11 + +RequiresMod: cnc + +Title: Finish The Nod Base + +Author: Westwood Studios + +Tileset: TEMPERAT + +MapSize: 64,64 + +Bounds: 4,1,58,50 + +Visibility: MissionSelector + +Categories: Mission + +LockPreview: True + +Players: + PlayerReference@Nod: + Name: Nod + Faction: nod + Color: FE1100 + Allies: Nod + Enemies: GDI + 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 + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: gdi + +Actors: + Actor0: wood + Location: 35,37 + Owner: Neutral + Actor1: wood + Location: 34,37 + Owner: Neutral + Actor2: wood + Location: 33,37 + Owner: Neutral + Actor3: wood + Location: 32,37 + Owner: Neutral + Actor4: wood + Location: 31,37 + Owner: Neutral + Actor5: wood + Location: 35,36 + Owner: Neutral + Actor6: v16 + Location: 34,36 + Owner: Neutral + Actor7: v15 + Location: 33,36 + Owner: Neutral + Actor8: v14 + Location: 32,36 + Owner: Neutral + Actor9: wood + Location: 31,36 + Owner: Neutral + Actor10: wood + Location: 35,35 + Owner: Neutral + Actor11: v17 + Location: 34,35 + Owner: Neutral + Actor12: v18 + Location: 33,35 + Owner: Neutral + Actor13: v12 + Location: 32,35 + Owner: Neutral + Actor14: wood + Location: 31,35 + Owner: Neutral + Actor15: wood + Location: 35,34 + Owner: Neutral + Actor16: wood + Location: 32,34 + Owner: Neutral + Actor17: wood + Location: 31,34 + Owner: Neutral + Actor18: sbag + Location: 58,21 + Owner: Nod + Actor19: sbag + Location: 54,21 + Owner: Nod + Actor20: sbag + Location: 52,21 + Owner: Nod + Actor21: sbag + Location: 47,21 + Owner: Nod + Actor22: sbag + Location: 45,21 + Owner: Nod + Actor23: sbag + Location: 41,21 + Owner: Nod + Actor24: sbag + Location: 58,20 + Owner: Nod + Actor25: sbag + Location: 57,20 + Owner: Nod + Actor26: sbag + Location: 56,20 + Owner: Nod + Actor27: sbag + Location: 55,20 + Owner: Nod + Actor28: sbag + Location: 54,20 + Owner: Nod + Actor29: sbag + Location: 52,20 + Owner: Nod + Actor30: sbag + Location: 47,20 + Owner: Nod + Actor31: sbag + Location: 45,20 + Owner: Nod + Actor32: sbag + Location: 44,20 + Owner: Nod + Actor33: sbag + Location: 43,20 + Owner: Nod + Actor34: sbag + Location: 42,20 + Owner: Nod + Actor35: sbag + Location: 41,20 + Owner: Nod + Actor36: brik + Location: 58,19 + Owner: Neutral + Actor37: brik + Location: 57,19 + Owner: Neutral + Actor38: brik + Location: 56,19 + Owner: Neutral + Actor39: brik + Location: 55,19 + Owner: Neutral + Actor40: brik + Location: 54,19 + Owner: Neutral + Actor41: brik + Location: 53,19 + Owner: Neutral + Actor42: brik + Location: 52,19 + Owner: Neutral + Actor43: brik + Location: 47,19 + Owner: Neutral + Actor44: brik + Location: 46,19 + Owner: Neutral + Actor45: brik + Location: 45,19 + Owner: Neutral + Actor46: brik + Location: 44,19 + Owner: Neutral + Actor47: brik + Location: 43,19 + Owner: Neutral + Actor48: brik + Location: 42,19 + Owner: Neutral + Actor49: brik + Location: 41,19 + Owner: Neutral + Actor50: brik + Location: 40,19 + Owner: Neutral + Actor51: brik + Location: 58,18 + Owner: Neutral + Actor52: brik + Location: 57,18 + Owner: Neutral + Actor53: brik + Location: 53,18 + Owner: Neutral + Actor54: brik + Location: 52,18 + Owner: Neutral + Actor55: brik + Location: 47,18 + Owner: Neutral + Actor56: brik + Location: 46,18 + Owner: Neutral + Actor57: brik + Location: 41,18 + Owner: Neutral + Actor58: brik + Location: 40,18 + Owner: Neutral + Actor59: brik + Location: 58,17 + Owner: Neutral + Actor60: brik + Location: 40,17 + Owner: Neutral + Actor61: brik + Location: 58,16 + Owner: Neutral + Actor62: brik + Location: 40,16 + Owner: Neutral + Actor63: brik + Location: 58,15 + Owner: Neutral + Actor64: brik + Location: 40,15 + Owner: Neutral + Actor65: brik + Location: 58,14 + Owner: Neutral + Actor66: brik + Location: 41,14 + Owner: Neutral + Actor67: brik + Location: 40,14 + Owner: Neutral + Actor68: brik + Location: 58,13 + Owner: Neutral + Actor69: brik + Location: 41,13 + Owner: Neutral + Actor70: brik + Location: 40,13 + Owner: Neutral + Actor71: brik + Location: 58,12 + Owner: Neutral + Actor72: brik + Location: 58,11 + Owner: Neutral + Actor73: brik + Location: 57,11 + Owner: Neutral + Actor74: brik + Location: 58,10 + Owner: Neutral + Actor75: brik + Location: 57,10 + Owner: Neutral + Actor76: brik + Location: 41,10 + Owner: Neutral + Actor77: brik + Location: 40,10 + Owner: Neutral + Actor78: brik + Location: 41,9 + Owner: Neutral + Actor79: brik + Location: 40,9 + Owner: Neutral + Actor80: cycl + Location: 58,8 + Owner: Neutral + Actor81: cycl + Location: 54,8 + Owner: Neutral + Actor82: cycl + Location: 48,8 + Owner: Neutral + Actor83: cycl + Location: 47,8 + Owner: Neutral + Actor84: cycl + Location: 44,8 + Owner: Neutral + Actor85: cycl + Location: 43,8 + Owner: Neutral + Actor86: brik + Location: 40,8 + Owner: Neutral + Actor87: brik + Location: 61,7 + Owner: Neutral + Actor88: brik + Location: 60,7 + Owner: Neutral + Actor89: cycl + Location: 59,7 + Owner: Neutral + Actor90: cycl + Location: 58,7 + Owner: Neutral + Actor91: cycl + Location: 54,7 + Owner: Neutral + Actor92: cycl + Location: 53,7 + Owner: Neutral + Actor93: cycl + Location: 52,7 + Owner: Neutral + Actor94: cycl + Location: 51,7 + Owner: Neutral + Actor95: cycl + Location: 50,7 + Owner: Neutral + Actor96: cycl + Location: 49,7 + Owner: Neutral + Actor97: cycl + Location: 48,7 + Owner: Neutral + Actor98: cycl + Location: 43,7 + Owner: Neutral + Actor99: brik + Location: 40,7 + Owner: Neutral + Actor100: brik + Location: 61,6 + Owner: Neutral + Actor101: brik + Location: 60,6 + Owner: Neutral + Actor102: cycl + Location: 48,6 + Owner: Neutral + Actor103: cycl + Location: 43,6 + Owner: Neutral + Actor104: brik + Location: 40,6 + Owner: Neutral + Actor105: brik + Location: 61,5 + Owner: Neutral + Actor106: cycl + Location: 48,5 + Owner: Neutral + Actor107: cycl + Location: 47,5 + Owner: Neutral + Actor108: cycl + Location: 46,5 + Owner: Neutral + Actor109: cycl + Location: 45,5 + Owner: Neutral + Actor110: cycl + Location: 44,5 + Owner: Neutral + Actor111: cycl + Location: 43,5 + Owner: Neutral + Actor112: brik + Location: 40,5 + Owner: Neutral + Actor113: brik + Location: 61,4 + Owner: Neutral + Actor114: brik + Location: 40,4 + Owner: Neutral + Actor115: brik + Location: 61,3 + Owner: Neutral + Actor116: brik + Location: 60,3 + Owner: Neutral + Actor117: brik + Location: 41,3 + Owner: Neutral + Actor118: brik + Location: 40,3 + Owner: Neutral + Actor119: brik + Location: 61,2 + Owner: Neutral + Actor120: brik + Location: 60,2 + Owner: Neutral + Actor121: brik + Location: 59,2 + Owner: Neutral + Actor122: brik + Location: 58,2 + Owner: Neutral + Actor123: brik + Location: 57,2 + Owner: Neutral + Actor124: brik + Location: 56,2 + Owner: Neutral + Actor125: brik + Location: 55,2 + Owner: Neutral + Actor126: brik + Location: 54,2 + Owner: Neutral + Actor127: brik + Location: 53,2 + Owner: Neutral + Actor128: brik + Location: 52,2 + Owner: Neutral + Actor129: brik + Location: 51,2 + Owner: Neutral + Actor130: brik + Location: 50,2 + Owner: Neutral + Actor131: brik + Location: 49,2 + Owner: Neutral + Actor132: brik + Location: 48,2 + Owner: Neutral + Actor133: brik + Location: 47,2 + Owner: Neutral + Actor134: brik + Location: 46,2 + Owner: Neutral + Actor135: brik + Location: 45,2 + Owner: Neutral + Actor136: brik + Location: 44,2 + Owner: Neutral + Actor137: brik + Location: 43,2 + Owner: Neutral + Actor138: brik + Location: 42,2 + Owner: Neutral + Actor139: brik + Location: 41,2 + Owner: Neutral + Actor140: brik + Location: 40,2 + Owner: Neutral + Actor141: t01 + Location: 30,36 + Owner: Neutral + Actor142: tc01 + Location: 30,37 + Owner: Neutral + Actor143: t01 + Location: 35,26 + Owner: Neutral + Actor144: t01 + Location: 34,26 + Owner: Neutral + Actor145: t01 + Location: 41,23 + Owner: Neutral + Actor146: t01 + Location: 23,14 + Owner: Neutral + Actor147: t01 + Location: 21,12 + Owner: Neutral + Actor148: t02 + Location: 21,36 + Owner: Neutral + Actor149: t01 + Location: 22,34 + Owner: Neutral + Actor150: tc01 + Location: 57,35 + Owner: Neutral + Actor151: t01 + Location: 59,35 + Owner: Neutral + Actor152: t01 + Location: 51,35 + Owner: Neutral + Actor153: t02 + Location: 55,42 + Owner: Neutral + Actor154: t01 + Location: 51,43 + Owner: Neutral + Actor155: t01 + Location: 57,38 + Owner: Neutral + Actor156: tc01 + Location: 52,42 + Owner: Neutral + Actor157: t02 + Location: 38,40 + Owner: Neutral + Actor158: t02 + Location: 49,39 + Owner: Neutral + Actor159: t01 + Location: 48,38 + Owner: Neutral + Actor160: tc01 + Location: 42,44 + Owner: Neutral + Actor161: tc02 + Location: 43,40 + Owner: Neutral + Actor162: tc02 + Location: 49,49 + Owner: Neutral + Actor163: tc04 + Location: 55,47 + Owner: Neutral + Actor164: t01 + Location: 48,45 + Owner: Neutral + Actor165: t01 + Location: 41,47 + Owner: Neutral + Actor166: tc04 + Location: 38,44 + Owner: Neutral + Actor167: tc04 + Location: 57,42 + Owner: Neutral + Actor168: tc02 + Location: 54,40 + Owner: Neutral + Actor169: t03 + Location: 32,30 + Owner: Neutral + Actor170: t03 + Location: 34,37 + Owner: Neutral + Actor171: tc01 + Location: 36,36 + Owner: Neutral + Actor172: tc04 + Location: 25,33 + Owner: Neutral + Actor173: tc04 + Location: 22,37 + Owner: Neutral + Actor174: tc05 + Location: 22,33 + Owner: Neutral + Actor175: tc01 + Location: 25,38 + Owner: Neutral + Actor176: t07 + Location: 25,41 + Owner: Neutral + Actor177: t01 + Location: 38,36 + Owner: Neutral + Actor178: tc02 + Location: 44,36 + Owner: Neutral + Actor179: tc01 + Location: 42,36 + Owner: Neutral + Actor180: t07 + Location: 46,35 + Owner: Neutral + Actor181: t01 + Location: 59,20 + Owner: Neutral + Actor182: tc01 + Location: 59,18 + Owner: Neutral + Actor183: tc01 + Location: 40,33 + Owner: Neutral + Actor184: tc04 + Location: 50,31 + Owner: Neutral + Actor185: t01 + Location: 49,32 + Owner: Neutral + Actor186: tc04 + Location: 55,32 + Owner: Neutral + Actor187: tc02 + Location: 53,33 + Owner: Neutral + Actor188: tc01 + Location: 51,32 + Owner: Neutral + Actor189: tc01 + Location: 33,20 + Owner: Neutral + Actor190: tc04 + Location: 21,13 + Owner: Neutral + Actor191: tc04 + Location: 22,29 + Owner: Neutral + Actor192: tc04 + Location: 31,26 + Owner: Neutral + Actor193: tc01 + Location: 30,25 + Owner: Neutral + Actor194: tc01 + Location: 18,34 + Owner: Neutral + Actor195: tc01 + Location: 23,10 + Owner: Neutral + Actor196: tc01 + Location: 36,3 + Owner: Neutral + Actor197: t01 + Location: 58,32 + Owner: Neutral + Actor198: t02 + Location: 61,32 + Owner: Neutral + Actor199: t03 + Location: 48,32 + Owner: Neutral + Actor200: tc04 + Location: 6,26 + Owner: Neutral + Actor201: tc04 + Location: 4,6 + Owner: Neutral + Actor202: tc02 + Location: 9,9 + Owner: Neutral + Actor203: tc01 + Location: 5,18 + Owner: Neutral + Actor204: tc02 + Location: 16,21 + Owner: Neutral + Actor205: tc01 + Location: 12,28 + Owner: Neutral + Actor206: t01 + Location: 11,24 + Owner: Neutral + Actor207: t01 + Location: 6,19 + Owner: Neutral + Actor208: t02 + Location: 9,21 + Owner: Neutral + Actor209: t02 + Location: 12,11 + Owner: Neutral + Actor210: t01 + Location: 6,10 + Owner: Neutral + Actor211: t01 + Location: 30,2 + Owner: Neutral + Actor212: t01 + Location: 14,17 + Owner: Neutral + Actor213: t01 + Location: 18,26 + Owner: Neutral + Actor214: gun + Location: 41,33 + Owner: Nod + Facing: 192 + Actor215: gun + Location: 53,20 + Owner: Nod + Actor216: gun + Location: 37,3 + Owner: Nod + Actor217: gun + Location: 46,20 + Owner: Nod + handofnod: hand + Location: 44,12 + Owner: Nod + Actor219: silo + Location: 44,16 + Owner: Nod + Actor220: silo + Location: 42,16 + Owner: Nod + nodpower1: nuke + Location: 42,13 + Owner: Nod + Actor222: hq + Location: 50,4 + Owner: Nod + nodpower2: nuke + Location: 52,4 + Owner: Nod + nodpower3: nuke + Location: 54,4 + Owner: Nod + nodairfield: afld + Location: 56,4 + Owner: Nod + Actor226: silo + Location: 50,10 + Owner: Nod + Actor227: silo + Location: 52,10 + Owner: Nod + nodrefinery: proc + Location: 54,10 + Owner: Nod + FreeActor: false + Actor229: nuke + Location: 51,14 + Owner: Nod + Actor230: nuke + Location: 53,14 + Owner: Nod + nodconyard: fact + Location: 55,14 + Owner: Nod + Actor232: v03 + Location: 29,35 + Owner: Neutral + Health: 41 + Actor233: v01 + Location: 31,38 + Owner: Neutral + Health: 33 + Actor234: v05 + Location: 32,38 + Owner: Neutral + Health: 39 + Actor235: v04 + Location: 25,37 + Owner: Neutral + Health: 39 + Actor236: v06 + Location: 33,34 + Owner: Neutral + Health: 58 + Actor237: v05 + Location: 23,37 + Owner: Neutral + Health: 39 + Actor238: v08 + Location: 37,34 + Owner: Neutral + sam1: sam + Location: 48,31 + Owner: Nod + sam2: sam + Location: 22,13 + Owner: Nod + sam3: sam + Location: 44,18 + Owner: Nod + sam4: sam + Location: 54,18 + Owner: Nod + Actor243: gun + Location: 37,14 + Owner: Nod + Facing: 160 + Actor244: bggy + Location: 46,12 + Owner: Nod + Actor245: bggy + Location: 60,20 + Owner: Nod + Actor246: ltnk + Location: 60,8 + Owner: Nod + Actor247: ltnk + Location: 44,6 + Owner: Nod + Actor248: bggy + Location: 20,3 + Owner: Nod + Facing: 128 + Actor249: bggy + Location: 19,3 + Owner: Nod + Facing: 128 + Actor250: harv + Location: 49,13 + Owner: Nod + Facing: 128 + Actor251: ltnk + Location: 14,4 + Owner: Nod + Facing: 128 + Actor252: ltnk + Location: 44,7 + Owner: Nod + Actor253: ltnk + Location: 45,6 + Owner: Nod + Actor254: bggy + Location: 47,7 + Owner: Nod + Actor255: bggy + Location: 47,6 + Owner: Nod + Actor256: ltnk + Location: 6,16 + Owner: Nod + Facing: 96 + Actor257: bggy + Location: 23,27 + Owner: Nod + Facing: 192 + Actor258: e3 + Location: 39,6 + Owner: Nod + SubCell: 0 + Actor259: e3 + Location: 39,6 + Owner: Nod + SubCell: 2 + Actor260: c6 + Location: 29,32 + Owner: Neutral + Facing: 96 + SubCell: 3 + Actor261: c4 + Location: 34,32 + Owner: Neutral + Facing: 160 + SubCell: 2 + Actor262: c3 + Location: 29,37 + Owner: Neutral + Facing: 224 + SubCell: 3 + Actor263: c2 + Location: 27,36 + Owner: Neutral + Facing: 32 + SubCell: 1 + Actor264: e1 + Location: 48,20 + Owner: Nod + SubCell: 1 + Actor265: e1 + Location: 48,20 + Owner: Nod + SubCell: 2 + Actor266: e1 + Location: 51,20 + Owner: Nod + SubCell: 1 + Actor267: e1 + Location: 51,20 + Owner: Nod + SubCell: 2 + sleeper1: e4 + Location: 29,41 + Owner: Nod + SubCell: 4 + sleeper2: e4 + Location: 29,42 + Owner: Nod + SubCell: 2 + sleeper3: e4 + Location: 29,42 + Owner: Nod + SubCell: 1 + sleeper4: e4 + Location: 29,41 + Owner: Nod + SubCell: 3 + Actor272: e3 + Location: 8,26 + Owner: Nod + SubCell: 3 + Actor273: e3 + Location: 7,26 + Owner: Nod + SubCell: 3 + Actor274: e3 + Location: 16,21 + Owner: Nod + SubCell: 0 + Actor275: e3 + Location: 9,9 + Owner: Nod + SubCell: 0 + Actor276: e3 + Location: 4,6 + Owner: Nod + SubCell: 4 + Actor277: e4 + Location: 13,28 + Owner: Nod + Facing: 160 + SubCell: 3 + Actor278: e4 + Location: 6,18 + Owner: Nod + Facing: 96 + SubCell: 3 + Actor279: e4 + Location: 7,13 + Owner: Nod + Facing: 96 + SubCell: 1 + waypoint27: waypoint + Location: 32,32 + Owner: Neutral + waypoint26: waypoint + Location: 6,43 + Owner: Neutral + waypoint18: waypoint + Location: 47,4 + Owner: Neutral + waypoint17: waypoint + Location: 56,8 + Owner: Neutral + waypoint16: waypoint + Location: 9,19 + Owner: Neutral + waypoint15: waypoint + Location: 17,4 + Owner: Neutral + waypoint14: waypoint + Location: 37,18 + Owner: Neutral + waypoint13: waypoint + Location: 18,19 + Owner: Neutral + waypoint12: waypoint + Location: 22,8 + Owner: Neutral + waypoint11: waypoint + Location: 43,11 + Owner: Neutral + waypoint10: waypoint + Location: 20,45 + Owner: Neutral + waypoint9: waypoint + Location: 28,45 + Owner: Neutral + waypoint8: waypoint + Location: 28,36 + Owner: Neutral + Actor293: waypoint + Location: 37,30 + Owner: Neutral + waypoint7: waypoint + Location: 37,30 + Owner: Neutral + Actor295: waypoint + Location: 49,24 + Owner: Neutral + waypoint6: waypoint + Location: 49,24 + Owner: Neutral + Actor297: waypoint + Location: 55,22 + Owner: Neutral + waypoint5: waypoint + Location: 55,22 + Owner: Neutral + Actor299: waypoint + Location: 48,22 + Owner: Neutral + waypoint4: waypoint + Location: 48,22 + Owner: Neutral + Actor301: waypoint + Location: 51,22 + Owner: Neutral + waypoint3: waypoint + Location: 51,22 + Owner: Neutral + Actor303: waypoint + Location: 44,22 + Owner: Neutral + waypoint2: waypoint + Location: 44,22 + Owner: Neutral + Actor305: waypoint + Location: 39,13 + Owner: Neutral + waypoint1: waypoint + Location: 39,13 + Owner: Neutral + Actor307: waypoint + Location: 39,7 + Owner: Neutral + waypoint0: waypoint + Location: 39,7 + Owner: Neutral + spawnpoint1: waypoint + Owner: Neutral + Location: 9,46 + spawnpoint2: waypoint + Owner: Neutral + Location: 11,46 + spawnpoint3: waypoint + Owner: Neutral + Location: 14,46 + +Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml + +Sequences: sequences.yaml diff --git a/mods/cnc/maps/gdi07/rules.yaml b/mods/cnc/maps/gdi07/rules.yaml new file mode 100644 index 0000000000..a6d4f44153 --- /dev/null +++ b/mods/cnc/maps/gdi07/rules.yaml @@ -0,0 +1,146 @@ +World: + LuaScript: + Scripts: gdi07.lua + MissionData: + Briefing: Previous mission objective not complete.\nAirfield was to be targeted. \n\nNew objective: Build up a base and Destroy remaining Nod structures and units.\n\nReinforcements will be provided. + BriefingVideo: gdi7.vqa + StartVideo: turtkill.vqa + WinVideo: pintle.vqa + LossVideo: gameover.vqa + +SBAG: + Buildable: + Prerequisites: ~disabled + +ATWR: + Buildable: + Prerequisites: ~disabled + +CYCL: + Buildable: + Prerequisites: ~disabled + +NUK2: + Buildable: + Prerequisites: ~disabled + +FIX: + Buildable: + Prerequisites: ~disabled + +HPAD: + Buildable: + Prerequisites: ~disabled + +BRIK: + Buildable: + Prerequisites: ~disabled + +EYE: + Buildable: + Prerequisites: ~disabled + +GUN: + Buildable: + Prerequisites: ~disabled + +OBLI: + Buildable: + Prerequisites: ~disabled + +TMPL: + Buildable: + Prerequisites: ~disabled + +E3: + 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 + +LST: + Buildable: + Prerequisites: ~disabled + +FTNK: + Buildable: + Prerequisites: ~disabled + +STNK: + Buildable: + Prerequisites: ~disabled + +ARTY: + Buildable: + Prerequisites: ~disabled + +HELI: + Buildable: + Prerequisites: ~disabled + +E5: + Buildable: + Prerequisites: ~disabled + +MLRS: + Buildable: + Prerequisites: ~disabled + +OLDLST: + Inherits: LST + -WithRoof: + -Selectable: + RejectsOrders: + Cargo: + Types: disabled + +HQ: + Tooltip: + Description: Provides an overview of the battlefield.\n Requires power to operate. + -AirstrikePower: + +airstrike.proxy: + AlwaysVisible: + AirstrikePower: + Icon: airstrike + StartFullyCharged: True + ChargeTime: 120 + SquadSize: 3 + QuantizedFacings: 8 + Description: Air Strike + LongDesc: Deploy an aerial napalm strike.\nBurns buildings and infantry along a line. + EndChargeSound: airredy1.aud + SelectTargetSound: select1.aud + InsufficientPowerSound: nopower1.aud + IncomingSound: enemya.aud + UnitType: a10 + DisplayBeacon: True + BeaconPoster: airstrike + DisplayRadarPing: True + CameraActor: camera diff --git a/mods/cnc/maps/gdi07/sequences.yaml b/mods/cnc/maps/gdi07/sequences.yaml new file mode 100644 index 0000000000..3f043f3d34 --- /dev/null +++ b/mods/cnc/maps/gdi07/sequences.yaml @@ -0,0 +1,7 @@ +oldlst: + idle: lst + Start: 0 + Facings: 1 + ZOffset: -1024 + icon: lsticnh.tem + AddExtension: False diff --git a/mods/cnc/missions.yaml b/mods/cnc/missions.yaml index 28f70ced90..f76654083d 100644 --- a/mods/cnc/missions.yaml +++ b/mods/cnc/missions.yaml @@ -8,6 +8,7 @@ GDI Campaign: ./mods/cnc/maps/gdi05a ./mods/cnc/maps/gdi05b ./mods/cnc/maps/gdi06 + ./mods/cnc/maps/gdi07 Nod Campaign: ./mods/cnc/maps/nod01 From 5154e8b7ad1a016677745f03b0af68c7f0adb6a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Tue, 31 May 2016 21:11:02 +0200 Subject: [PATCH 2/2] Adjust the rallypoints to avoid overlaps when not giving orders. --- mods/cnc/maps/gdi07/gdi07.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mods/cnc/maps/gdi07/gdi07.lua b/mods/cnc/maps/gdi07/gdi07.lua index cda8185caa..fe9e9cd51d 100644 --- a/mods/cnc/maps/gdi07/gdi07.lua +++ b/mods/cnc/maps/gdi07/gdi07.lua @@ -50,22 +50,22 @@ end SendReinforcements = function() Trigger.AfterDelay(DateTime.Seconds(20), function() - ReinforceWithLandingCraft(BaseReinforcements, spawnpoint3.Location - CVec.New(0, -4), spawnpoint3.Location - CVec.New(0, -1), spawnpoint3.Location) + ReinforceWithLandingCraft(BaseReinforcements, spawnpoint3.Location - CVec.New(0, -4), spawnpoint3.Location - CVec.New(0, -1), waypoint26.Location) end) Trigger.AfterDelay(DateTime.Seconds(10), function() - ReinforceWithLandingCraft(TankReinforcements, spawnpoint2.Location - CVec.New(0, -4), spawnpoint2.Location - CVec.New(0, -1), spawnpoint2.Location) + ReinforceWithLandingCraft(TankReinforcements, spawnpoint2.Location - CVec.New(0, -4), spawnpoint2.Location - CVec.New(0, -1), waypoint10.Location) - ReinforceWithLandingCraft(TankReinforcements, spawnpoint3.Location - CVec.New(0, -4), spawnpoint3.Location - CVec.New(0, -1), spawnpoint3.Location) + ReinforceWithLandingCraft(TankReinforcements, spawnpoint3.Location - CVec.New(0, -4), spawnpoint3.Location - CVec.New(0, -1), waypoint10.Location) end) Trigger.AfterDelay(DateTime.Seconds(5), function() - ReinforceWithLandingCraft(JeepReinforcements, spawnpoint1.Location - CVec.New(0, -4), spawnpoint1.Location - CVec.New(0, -1), spawnpoint1.Location) + ReinforceWithLandingCraft(JeepReinforcements, spawnpoint1.Location - CVec.New(0, -4), spawnpoint1.Location - CVec.New(0, -1), waypoint10.Location) end) - ReinforceWithLandingCraft(InfantryReinforcements, spawnpoint2.Location - CVec.New(0, -4), spawnpoint2.Location - CVec.New(0, -1), spawnpoint2.Location) + ReinforceWithLandingCraft(InfantryReinforcements, spawnpoint2.Location - CVec.New(0, -4), spawnpoint2.Location - CVec.New(0, -1), waypoint10.Location) - ReinforceWithLandingCraft(InfantryReinforcements, spawnpoint3.Location - CVec.New(0, -4), spawnpoint3.Location - CVec.New(0, -1), spawnpoint3.Location) + ReinforceWithLandingCraft(InfantryReinforcements, spawnpoint3.Location - CVec.New(0, -4), spawnpoint3.Location - CVec.New(0, -1), waypoint10.Location) end AttackPlayer = function()