diff --git a/mods/cnc/maps/nod03b/map.bin b/mods/cnc/maps/nod03b/map.bin new file mode 100644 index 0000000000..e37ee46f41 Binary files /dev/null and b/mods/cnc/maps/nod03b/map.bin differ diff --git a/mods/cnc/maps/nod03b/map.yaml b/mods/cnc/maps/nod03b/map.yaml new file mode 100644 index 0000000000..91a6399b29 --- /dev/null +++ b/mods/cnc/maps/nod03b/map.yaml @@ -0,0 +1,758 @@ +Selectable: True + +MapFormat: 6 + +RequiresMod: cnc + +Title: Sudanese Prison Break (b) + +Description: GDI has established a prison camp, where they are detaining some of the local political leaders. Kane wishes to liberate these victims. Destroy the GDI forces and capture the prison, do not destroy it. + +Author: Westwood Studios + +Tileset: DESERT + +MapSize: 64,64 + +Bounds: 13,16,42,34 + +UseAsShellmap: False + +Type: Campaign + +Options: + Crates: False + Fog: False + Shroud: True + AllyBuildRadius: False + FragileAlliances: False + StartingCash: 4000 + ConfigurableStartingUnits: False + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Race: gdi + Allies: GDI + Enemies: Nod + PlayerReference@GDI: + Name: GDI + Race: gdi + ColorRamp: 31,222,183 + Allies: GDI + Enemies: Nod + PlayerReference@Nod: + Name: Nod + Playable: True + AllowBots: False + Required: True + LockRace: True + Race: nod + LockColor: True + ColorRamp: 3,255,127 + LockSpawn: True + LockTeam: True + Allies: Nod + Enemies: GDI + +Actors: + Actor117: e1 + Location: 41,21 + Owner: GDI + Health: 1 + Facing: 192 + SubCell: 0 + Actor118: e1 + Location: 48,21 + Owner: GDI + Health: 1 + Facing: 192 + SubCell: 4 + Actor119: e2 + Location: 27,25 + Owner: GDI + Health: 1 + Facing: 128 + SubCell: 0 + Actor120: e2 + Location: 36,30 + Owner: GDI + Health: 1 + Facing: 64 + SubCell: 4 + Actor121: e2 + Location: 41,39 + Owner: GDI + Health: 1 + Facing: 64 + SubCell: 1 + Actor122: e2 + Location: 42,49 + Owner: GDI + Health: 1 + Facing: 32 + SubCell: 0 + Actor123: e2 + Location: 43,26 + Owner: GDI + Health: 1 + Facing: 128 + SubCell: 1 + Actor111: e1 + Location: 34,31 + Owner: GDI + Health: 1 + Facing: 96 + SubCell: 4 + Actor106: e1 + Location: 40,22 + Owner: GDI + Health: 1 + Facing: 128 + SubCell: 2 + Actor107: e1 + Location: 40,21 + Owner: GDI + Health: 1 + Facing: 0 + SubCell: 0 + Actor108: e1 + Location: 36,33 + Owner: GDI + Health: 1 + Facing: 0 + SubCell: 0 + Actor109: e1 + Location: 34,24 + Owner: GDI + Health: 1 + Facing: 96 + SubCell: 3 + Actor86: e1 + Location: 51,21 + Owner: GDI + Health: 1 + Facing: 160 + SubCell: 0 + Actor87: e1 + Location: 16,39 + Owner: GDI + Health: 1 + Facing: 0 + SubCell: 0 + Actor88: e1 + Location: 20,28 + Owner: GDI + Health: 1 + Facing: 128 + SubCell: 2 + Actor89: e1 + Location: 19,21 + Owner: GDI + Health: 1 + Facing: 128 + SubCell: 1 + Actor90: e1 + Location: 30,43 + Owner: GDI + Health: 1 + Facing: 96 + SubCell: 1 + Actor91: e1 + Location: 30,43 + Owner: GDI + Health: 1 + Facing: 96 + SubCell: 4 + Actor92: e1 + Location: 34,32 + Owner: GDI + Health: 1 + Facing: 128 + SubCell: 4 + Actor93: e1 + Location: 23,35 + Owner: GDI + Health: 1 + Facing: 0 + SubCell: 0 + Actor94: e1 + Location: 17,32 + Owner: GDI + Health: 1 + Facing: 128 + SubCell: 1 + Actor95: e1 + Location: 24,43 + Owner: GDI + Health: 1 + Facing: 96 + SubCell: 0 + Actor96: e1 + Location: 15,37 + Owner: GDI + Health: 1 + Facing: 64 + SubCell: 1 + Actor97: e1 + Location: 24,30 + Owner: GDI + Health: 1 + Facing: 64 + SubCell: 3 + Actor98: e1 + Location: 35,27 + Owner: GDI + Health: 1 + Facing: 0 + SubCell: 2 + Actor82: e1 + Location: 25,43 + Owner: GDI + Health: 1 + Facing: 96 + SubCell: 0 + Actor0: sbag + Location: 30,22 + Owner: Neutral + Actor1: sbag + Location: 29,22 + Owner: Neutral + Actor2: sbag + Location: 28,22 + Owner: Neutral + Actor3: sbag + Location: 30,21 + Owner: Neutral + Actor4: sbag + Location: 17,21 + Owner: Neutral + Actor5: sbag + Location: 16,21 + Owner: Neutral + Actor6: sbag + Location: 14,21 + Owner: Neutral + Actor7: sbag + Location: 13,21 + Owner: Neutral + Actor8: sbag + Location: 30,20 + Owner: Neutral + Actor9: sbag + Location: 17,20 + Owner: Neutral + Actor10: sbag + Location: 13,20 + Owner: Neutral + Actor11: sbag + Location: 30,19 + Owner: Neutral + Actor12: sbag + Location: 17,19 + Owner: Neutral + Actor13: sbag + Location: 13,19 + Owner: Neutral + Actor14: sbag + Location: 30,18 + Owner: Neutral + Actor15: sbag + Location: 17,18 + Owner: Neutral + Actor16: sbag + Location: 13,18 + Owner: Neutral + Actor17: sbag + Location: 30,17 + Owner: Neutral + Actor18: sbag + Location: 17,17 + Owner: Neutral + Actor19: sbag + Location: 13,17 + Owner: Neutral + Actor20: sbag + Location: 30,16 + Owner: Neutral + Actor21: sbag + Location: 29,16 + Owner: Neutral + Actor22: sbag + Location: 28,16 + Owner: Neutral + Actor23: sbag + Location: 27,16 + Owner: Neutral + Actor24: sbag + Location: 26,16 + Owner: Neutral + Actor25: sbag + Location: 25,16 + Owner: Neutral + Actor26: sbag + Location: 24,16 + Owner: Neutral + Actor27: sbag + Location: 23,16 + Owner: Neutral + Actor28: sbag + Location: 22,16 + Owner: Neutral + Actor29: sbag + Location: 21,16 + Owner: Neutral + Actor30: sbag + Location: 20,16 + Owner: Neutral + Actor31: sbag + Location: 19,16 + Owner: Neutral + Actor32: sbag + Location: 18,16 + Owner: Neutral + Actor33: sbag + Location: 17,16 + Owner: Neutral + Actor34: sbag + Location: 16,16 + Owner: Neutral + Actor35: sbag + Location: 15,16 + Owner: Neutral + Actor36: sbag + Location: 14,16 + Owner: Neutral + Actor37: sbag + Location: 13,16 + Owner: Neutral + Actor38: t08 + Location: 35,39 + Owner: Neutral + Actor39: t18 + Location: 33,38 + Owner: Neutral + Actor40: t08 + Location: 39,27 + Owner: Neutral + Actor41: t08 + Location: 47,24 + Owner: Neutral + Actor42: t18 + Location: 45,24 + Owner: Neutral + Actor43: t08 + Location: 35,33 + Owner: Neutral + Actor44: t08 + Location: 39,36 + Owner: Neutral + Actor45: t08 + Location: 39,21 + Owner: Neutral + Actor46: t08 + Location: 42,21 + Owner: Neutral + Actor47: t08 + Location: 27,31 + Owner: Neutral + Actor48: t08 + Location: 15,39 + Owner: Neutral + Actor49: t18 + Location: 15,42 + Owner: Neutral + Actor50: t18 + Location: 13,37 + Owner: Neutral + Actor51: silo + Location: 23,17 + Owner: GDI + Health: 1 + Facing: 0 + Actor52: silo + Location: 18,17 + Owner: GDI + Health: 1 + Facing: 0 + Actor53: pyle + Location: 23,19 + Owner: GDI + Health: 1 + Facing: 0 + Actor54: nuke + Location: 25,17 + Owner: GDI + Health: 1 + Facing: 0 + Actor55: fact + Location: 27,17 + Owner: GDI + Health: 1 + Facing: 0 + Actor56: gtwr + Location: 18,23 + Owner: GDI + Health: 1 + Facing: 0 + Actor57: v20 + Location: 13,38 + Owner: Neutral + Health: 1 + Facing: 0 + Actor58: v21 + Location: 13,40 + Owner: Neutral + Health: 1 + Facing: 0 + Actor59: v22 + Location: 18,40 + Owner: Neutral + Health: 1 + Facing: 0 + Actor60: v24 + Location: 15,37 + Owner: Neutral + Health: 1 + Facing: 0 + Actor61: v25 + Location: 17,41 + Owner: Neutral + Health: 1 + Facing: 0 + Actor62: v19 + Location: 28,41 + Owner: Neutral + Health: 1 + Facing: 0 + Actor63: proc + Location: 20,17 + Owner: GDI + Health: 1 + Facing: 0 + TechCenter: miss + Location: 14,17 + Owner: GDI + Health: 1 + Facing: 0 + Actor65: v19 + Location: 29,41 + Owner: Neutral + Health: 1 + Facing: 0 + Actor67: v19 + Location: 30,42 + Owner: Neutral + Health: 1 + Facing: 0 + Actor68: v19 + Location: 29,42 + Owner: Neutral + Health: 1 + Facing: 0 + Actor69: mcv + Location: 52,37 + Owner: Nod + Health: 1 + Facing: 128 + Actor70: bike + Location: 48,39 + Owner: Nod + Health: 1 + Facing: 128 +# Actor71: bggy +# Location: 48,38 +# Owner: Nod +# Health: 0.9921875 +# Facing: 128 + Actor72: jeep + Location: 28,21 + Owner: GDI + Health: 1 + Facing: 128 + Actor73: jeep + Location: 35,30 + Owner: GDI + Health: 1 + Facing: 96 + Actor74: jeep + Location: 32,36 + Owner: GDI + Health: 1 + Facing: 96 + Actor75: jeep + Location: 29,21 + Owner: GDI + Health: 1 + Facing: 128 + Actor76: bggy + Location: 49,38 + Owner: Nod + Health: 1 + Facing: 128 + Actor77: jeep + Location: 47,21 + Owner: GDI + Health: 1 + Facing: 160 + Actor78: bike + Location: 49,39 + Owner: Nod + Health: 1 + Facing: 128 + Actor79: bggy + Location: 49,37 + Owner: Nod + Health: 1 + Facing: 128 +# Actor80: bggy +# Location: 48,37 +# Owner: Nod +# Health: 1 +# Facing: 128 + Actor83: e6 + Location: 48,40 + Owner: Nod + Health: 1 + Facing: 128 + SubCell: 3 + Actor84: e6 + Location: 48,40 + Owner: Nod + Health: 1 + Facing: 128 + SubCell: 4 + Actor85: e6 + Location: 48,41 + Owner: Nod + Health: 1 + Facing: 128 + SubCell: 0 + Actor99: e1 + Location: 50,41 + Owner: Nod + Health: 1 + Facing: 128 + SubCell: 3 + Actor100: e1 + Location: 50,41 + Owner: Nod + Health: 1 + Facing: 128 + SubCell: 4 + Actor101: c1 + Location: 16,36 + Owner: GDI + Health: 1 + Facing: 192 + SubCell: 4 + Actor102: c3 + Location: 17,40 + Owner: Neutral + Health: 1 + Facing: 224 + SubCell: 2 + Actor103: c5 + Location: 16,40 + Owner: Neutral + Health: 1 + Facing: 224 + SubCell: 1 + Actor104: c6 + Location: 14,36 + Owner: Neutral + Health: 0.5976563 + Facing: 0 + SubCell: 4 + Actor105: c7 + Location: 18,38 + Owner: Neutral + Health: 1 + Facing: 224 + SubCell: 4 +# Actor110: e1 +# Location: 51,41 +# Owner: Nod +# Health: 1 +# Facing: 128 +# SubCell: 3 + Actor112: e1 + Location: 50,40 + Owner: Nod + Health: 1 + Facing: 128 + SubCell: 3 +# Actor113: e1 +# Location: 51,40 +# Owner: Nod +# Health: 1 +# Facing: 128 +# SubCell: 3 + Actor114: e1 + Location: 50,40 + Owner: Nod + Health: 1 + Facing: 128 + SubCell: 4 + Actor115: e1 + Location: 49,40 + Owner: Nod + Health: 1 + Facing: 128 + SubCell: 4 + Actor116: e1 + Location: 49,41 + Owner: Nod + Health: 1 + Facing: 128 + SubCell: 4 + PlayerBase: waypoint + Location: 50,39 + Owner: Neutral + WP9: waypoint + Location: 48,32 + Owner: Neutral + WP8: waypoint + Location: 41,23 + Owner: Neutral + WP7: waypoint + Location: 44,30 + Owner: Neutral + WP6: waypoint + Location: 41,38 + Owner: Neutral + WP5: waypoint + Location: 30,36 + Owner: Neutral + WP4: waypoint + Location: 48,47 + Owner: Neutral + WP3: waypoint + Location: 31,47 + Owner: Neutral + WP2: waypoint + Location: 24,44 + Owner: Neutral + WP1: waypoint + Location: 25,32 + Owner: Neutral + WP0: waypoint + Location: 24,22 + Owner: Neutral + CellTrigA: waypoint + Location: 43,28 + Owner: Neutral + CellTrigB: waypoint + Location: 37,49 + Owner: Neutral + GDIBarracksSpawn: waypoint + Location: 23,20 + Owner: Neutral + +Smudges: + +Rules: + Player: + -ConquestVictoryConditions: + World: + -CrateSpawner: + -SpawnMPUnits: + -MPStartLocations: + LuaScriptInterface: + LuaScripts: mission.lua + NUK2: + Buildable: + Owner: None + AFLD: + Buildable: + Owner: None + HPAD: + Buildable: + Owner: None + FIX: + Buildable: + Owner: None + TMPL: + Buildable: + Owner: None + GUN: + Buildable: + Owner: None + SAM: + Buildable: + Owner: None + OBLI: + Buildable: + Owner: None + GTWR: + Buildable: + Owner: None + BRIK: + Buildable: + Owner: None + WEAP: + Buildable: + Owner: None + EYE: + Buildable: + Owner: None + ATWR: + Buildable: + Owner: None + HQ: + Buildable: + Owner: None + E4: + Buildable: + Owner: None + E5: + Buildable: + Owner: None + MISS: + Tooltip: + Name: Prison + Capturable: + HQ.NOAIRSTRIKE: + RequiresPower: + CanPowerDown: + Inherits: ^Building + Valued: + Cost: 1000 + Tooltip: + Name: Communications Center + Description: Provides an overview of the battlefield.\n Requires power to operate. + ProvidesCustomPrerequisite: + Prerequisite: anyhq + Buildable: + BuildPaletteOrder: 70 + Prerequisites: proc + Owner: gdi,nod + Building: + Power: -40 + Footprint: x_ xx + Dimensions: 2,2 + Health: + HP: 750 + RevealsShroud: + Range: 10 + Bib: + ProvidesRadar: + RenderDetectionCircle: + DetectCloaked: + Range: 8 + RenderBuilding: + Image: hq + +Sequences: + +VoxelSequences: + +Weapons: + +Voices: + +Notifications: + +Translations: diff --git a/mods/cnc/maps/nod03b/mission.lua b/mods/cnc/maps/nod03b/mission.lua new file mode 100644 index 0000000000..8171a58770 --- /dev/null +++ b/mods/cnc/maps/nod03b/mission.lua @@ -0,0 +1,65 @@ +FirstAttackWave = { "e1", "e1", "e2", } +SecondAttackWave = { "e1", "e1", "e1", } +ThirdAttackWave = { "e1", "e1", "e1", "e2", } + +MissionAccomplished = function() + Mission.MissionOver({ player }, nil, false) + Media.PlayMovieFullscreen("desflees.vqa") +end + +MissionFailed = function() + Mission.MissionOver(nil, { player }, false) + Media.PlayMovieFullscreen("flag.vqa") +end + +SendFirstAttackWave = function() + local wave = Reinforcements.Reinforce(enemy, FirstAttackWave, GDIBarracksSpawn.Location, WP0.Location, 0) + Utils.Do(wave, function(soldier) + Actor.Move(soldier, WP1.Location) + Actor.Move(soldier, WP2.Location) + Actor.Move(soldier, WP3.Location) + Actor.Move(soldier, WP4.Location) + --Actor.Move(soldier, WP5.Location) + Actor.AttackMove(soldier, PlayerBase.Location) + end) +end + +SendSecondAttackWave = function() + local wave = Reinforcements.Reinforce(enemy, SecondAttackWave, GDIBarracksSpawn.Location, WP0.Location, 0) + Utils.Do(wave, function(soldier) + Actor.Move(soldier, WP1.Location) + Actor.Move(soldier, WP5.Location) + Actor.Move(soldier, WP6.Location) + Actor.Move(soldier, WP7.Location) + Actor.Move(soldier, WP9.Location) + Actor.AttackMove(soldier, PlayerBase.Location) + end) +end + +SendThirdAttackWave = function() + local wave = Reinforcements.Reinforce(enemy, ThirdAttackWave, GDIBarracksSpawn.Location, WP0.Location, 0) + Utils.Do(wave, function(soldier) + Actor.Move(soldier, WP1.Location) + Actor.Move(soldier, WP2.Location) + Actor.Move(soldier, WP3.Location) + Actor.Move(soldier, WP4.Location) + Actor.AttackMove(soldier, PlayerBase.Location) + end) +end + +WorldLoaded = function() + player = OpenRA.GetPlayer("Nod") + enemy = OpenRA.GetPlayer("GDI") + Media.PlayMovieFullscreen("nod3.vqa") + OpenRA.RunAfterDelay(25 * 40, SendFirstAttackWave) + OpenRA.RunAfterDelay(25 * 80, SendSecondAttackWave) + OpenRA.RunAfterDelay(25 * 140, SendThirdAttackWave) + Actor.OnCaptured(TechCenter, MissionAccomplished) + Actor.OnKilled(TechCenter, MissionFailed) +end + +Tick = function() + if Mission.RequiredUnitsAreDestroyed(player) then + MissionFailed() + end +end