diff --git a/OpenRA.sln b/OpenRA.sln index 7a686570c3..c224607671 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -32,6 +32,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts", mods\cnc\maps\gdi04c\gdi04c.lua = mods\cnc\maps\gdi04c\gdi04c.lua 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\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/gdi06/gdi06.lua b/mods/cnc/maps/gdi06/gdi06.lua new file mode 100644 index 0000000000..ad1a81e6af --- /dev/null +++ b/mods/cnc/maps/gdi06/gdi06.lua @@ -0,0 +1,233 @@ +IslandSamSites = { SAM01, SAM02 } +NodBase = { PowerPlant1, PowerPlant2, PowerPlant3, PowerPlant4, PowerPlant5, Refinery, HandOfNod, Silo1, Silo2, Silo3, Silo4, ConYard, CommCenter } + +FlameSquad = { FlameGuy1, FlameGuy2, FlameGuy3 } +FlameSquadRoute = { waypoint4.Location, waypoint12.Location, waypoint4.Location, waypoint6.Location } + +FootPatrol1Squad = { MiniGunner1, MiniGunner2, RocketSoldier1 } +FootPatrol1Route = { + waypoint4.Location, + waypoint12.Location, + waypoint13.Location, + waypoint3.Location, + waypoint2.Location, + waypoint7.Location, + waypoint6.Location +} + +FootPatrol2Squad = { MiniGunner3, MiniGunner4 } +FootPatrol2Route = { + waypoint14.Location, + waypoint16.Location +} + +FootPatrol3Squad = { MiniGunner5, MiniGunner6 } +FootPatrol3Route = { + waypoint15.Location, + waypoint17.Location +} + +FootPatrol4Route = { + waypoint4.Location, + waypoint5.Location +} + +FootPatrol5Squad = { RocketSoldier2, RocketSoldier3, RocketSoldier4 } +FootPatrol5Route = { + waypoint4.Location, + waypoint12.Location, + waypoint13.Location, + waypoint8.Location, + waypoint9.Location, +} + +Buggy1Route = { + waypoint6.Location, + waypoint7.Location, + waypoint2.Location, + waypoint8.Location, + waypoint9.Location, + waypoint8.Location, + waypoint2.Location, + waypoint7.Location +} + +Buggy2Route = { + waypoint6.Location, + waypoint10.Location, + waypoint11.Location, + waypoint10.Location +} + +HuntTriggerActivator = { SAM03, SAM04, SAM05, SAM06, LightTank1, LightTank2, LightTank3, Buggy1, Buggy2, Turret1, Turret2 } + +AttackCellTriggerActivator = { CPos.New(57,26), CPos.New(56,26), CPos.New(57,25), CPos.New(56,25), CPos.New(57,24), CPos.New(56,24), CPos.New(57,23), CPos.New(56,23), CPos.New(57,22), CPos.New(56,22), CPos.New(57,21), CPos.New(56,21) } +AttackUnits = { LightTank2, LightTank3 } + +KillCounter = 0 + +WorldLoaded = function() + player = Player.GetPlayer("GDI") + enemy = Player.GetPlayer("Nod") + civilian = Player.GetPlayer("Neutral") + + 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) + + if Map.Difficulty == "Easy" then + CommandoType = "rmbo.easy" + KillCounterHuntThreshold = 30 + elseif Map.Difficulty == "Hard" then + CommandoType = "rmbo.hard" + KillCounterHuntThreshold = 15 + else + CommandoType = "rmbo" + KillCounterHuntThreshold = 20 + end + + destroyObjective = player.AddPrimaryObjective("Destroy the Nod ********.") + + Trigger.OnKilled(Airfield, function() + player.MarkCompletedObjective(destroyObjective) + end) + + Utils.Do(NodBase, function(structure) + Trigger.OnKilled(structure, function() + player.MarkCompletedObjective(destroyObjective) + end) + end) + + Trigger.OnAllKilled(IslandSamSites, function() + TransportFlare = Actor.Create('flare', true, { Owner = player, Location = Flare.Location }) + Reinforcements.ReinforceWithTransport(player, 'tran', nil, { lstStart.Location, TransportRally.Location }) + end) + + Trigger.OnKilled(CivFleeTrigger, function() + if not Civilian.IsDead then + Civilian.Move(CivHideOut.Location) + end + end) + + Trigger.OnKilled(AttackTrigger2, function() + Utils.Do(FlameSquad, function(unit) + unit.Patrol(FlameSquadRoute, false) + end) + end) + + Trigger.OnEnteredFootprint(AttackCellTriggerActivator, function(a, id) + if a.Owner == player then + Utils.Do(AttackUnits, function(unit) + unit.AttackMove(waypoint10.Location) + end) + Trigger.RemoveFootprintTrigger(id) + end + end) + + Utils.Do(HuntTriggerActivator, function(unit) + Trigger.OnDamaged(unit, HuntTriggerFunction) + end) + + Trigger.AfterDelay(5, NodKillCounter) + + Utils.Do(FootPatrol1Squad, function(unit) + unit.Patrol(FootPatrol1Route, true) + end) + + Utils.Do(FootPatrol2Squad, function(unit) + unit.Patrol(FootPatrol2Route, true, 50) + end) + + Utils.Do(FootPatrol3Squad, function(unit) + unit.Patrol(FootPatrol3Route, true, 50) + end) + + Utils.Do(FootPatrol5Squad, function(unit) + unit.Patrol(FootPatrol5Route, true, 50) + end) + + AttackTrigger2.Patrol(FootPatrol4Route, true, 25) + LightTank1.Move(waypoint6.Location) + Buggy1.Patrol(Buggy1Route, true, 25) + Buggy2.Patrol(Buggy2Route, true, 25) + + Camera.Position = UnitsRally.CenterPosition + Reinforce({ CommandoType }) +end + +Tick = function() + if DateTime.GameTime > DateTime.Seconds(5) and player.HasNoRequiredUnits() then + player.MarkFailedObjective(destroyObjective) + 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 + +NodKillCounter = function() + local enemyUnits = enemy.GetGroundAttackers() + Utils.Do(enemyUnits, function(unit) + Trigger.OnKilled(unit, function() + KillCounter = KillCounter + 1 + if KillCounter >= KillCounterHuntThreshold then + HuntTriggerFunction() + end + end) + end) +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, unit.Hunt) + end +end diff --git a/mods/cnc/maps/gdi06/map.bin b/mods/cnc/maps/gdi06/map.bin new file mode 100644 index 0000000000..03315e8b66 Binary files /dev/null and b/mods/cnc/maps/gdi06/map.bin differ diff --git a/mods/cnc/maps/gdi06/map.png b/mods/cnc/maps/gdi06/map.png new file mode 100644 index 0000000000..d1f4b4665a Binary files /dev/null and b/mods/cnc/maps/gdi06/map.png differ diff --git a/mods/cnc/maps/gdi06/map.yaml b/mods/cnc/maps/gdi06/map.yaml new file mode 100644 index 0000000000..e41d6d7152 --- /dev/null +++ b/mods/cnc/maps/gdi06/map.yaml @@ -0,0 +1,1170 @@ +MapFormat: 7 + +RequiresMod: cnc + +Title: Infiltrate Nod Base + +Description: Use a GDI Commando to infiltrate the Nod base. **** ** destroy the ******** so that the base is incapacitated. Get in, hit it, and get the **** out. + +Author: Westwood Studios + +Tileset: TEMPERAT + +MapSize: 64,64 + +Bounds: 15,1,47,61 + +Visibility: MissionSelector + +Type: Campaign + +Videos: + Briefing: gdi6.vqa + GameStart: nitejump.vqa + GameWon: sabotage.vqa + GameLost: gdilose.vqa + +Music: + rain-ambient: Rain (ambient) + Hidden: true + +Options: + Crates: False + Creeps: False + Fog: True + Shroud: True + AllyBuildRadius: False + FragileAlliances: False + StartingCash: 0 + ConfigurableStartingUnits: False + Difficulties: Easy, Normal, Hard + ShortGame: True + +Players: + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: gdi + Enemies: GDI, Nod + PlayerReference@Nod: + Name: Nod + Faction: nod + ColorRamp: 3,255,127 + Allies: Nod + Enemies: GDI + PlayerReference@GDI: + Name: GDI + AllowBots: False + Playable: True + Required: True + LockFaction: True + Faction: gdi + LockColor: True + ColorRamp: 31,222,183 + LockSpawn: True + LockTeam: True + Allies: GDI + Enemies: Nod + +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: Nod + Actor37: brik + Location: 57,19 + Owner: Nod + Actor38: brik + Location: 56,19 + Owner: Nod + Actor39: brik + Location: 55,19 + Owner: Nod + Actor40: brik + Location: 54,19 + Owner: Nod + Actor41: brik + Location: 53,19 + Owner: Nod + Actor42: brik + Location: 52,19 + Owner: Nod + Actor43: brik + Location: 47,19 + Owner: Nod + Actor44: brik + Location: 46,19 + Owner: Nod + Actor45: brik + Location: 45,19 + Owner: Nod + Actor46: brik + Location: 44,19 + Owner: Nod + Actor47: brik + Location: 43,19 + Owner: Nod + Actor48: brik + Location: 42,19 + Owner: Nod + Actor49: brik + Location: 41,19 + Owner: Nod + Actor50: brik + Location: 40,19 + Owner: Nod + Actor51: brik + Location: 58,18 + Owner: Nod + Actor52: brik + Location: 57,18 + Owner: Nod + Actor53: brik + Location: 53,18 + Owner: Nod + Actor54: brik + Location: 52,18 + Owner: Nod + Actor55: brik + Location: 47,18 + Owner: Nod + Actor56: brik + Location: 46,18 + Owner: Nod + Actor57: brik + Location: 41,18 + Owner: Nod + Actor58: brik + Location: 40,18 + Owner: Nod + Actor59: brik + Location: 58,17 + Owner: Nod + Actor60: brik + Location: 40,17 + Owner: Nod + Actor61: brik + Location: 58,16 + Owner: Nod + Actor62: brik + Location: 40,16 + Owner: Nod + Actor63: brik + Location: 58,15 + Owner: Nod + Actor64: brik + Location: 40,15 + Owner: Nod + Actor65: brik + Location: 58,14 + Owner: Nod + Actor66: brik + Location: 41,14 + Owner: Nod + Actor67: brik + Location: 40,14 + Owner: Nod + Actor68: brik + Location: 58,13 + Owner: Nod + Actor69: brik + Location: 41,13 + Owner: Nod + Actor70: brik + Location: 40,13 + Owner: Nod + Actor71: brik + Location: 58,12 + Owner: Nod + Actor72: brik + Location: 58,11 + Owner: Nod + Actor73: brik + Location: 57,11 + Owner: Nod + Actor74: brik + Location: 58,10 + Owner: Nod + Actor75: brik + Location: 57,10 + Owner: Nod + Actor76: brik + Location: 41,10 + Owner: Nod + Actor77: brik + Location: 40,10 + Owner: Nod + Actor78: brik + Location: 41,9 + Owner: Nod + Actor79: brik + Location: 40,9 + Owner: Nod + Actor80: cycl + Location: 48,8 + Owner: Nod + Actor81: cycl + Location: 47,8 + Owner: Nod + Actor82: cycl + Location: 44,8 + Owner: Nod + Actor83: cycl + Location: 43,8 + Owner: Nod + Actor84: brik + Location: 40,8 + Owner: Nod + Actor85: brik + Location: 61,7 + Owner: Nod + Actor86: brik + Location: 60,7 + Owner: Nod + Actor87: cycl + Location: 59,7 + Owner: Nod + Actor88: cycl + Location: 58,7 + Owner: Nod + Actor89: cycl + Location: 57,7 + Owner: Nod + Actor90: cycl + Location: 56,7 + Owner: Nod + Actor91: cycl + Location: 55,7 + Owner: Nod + Actor92: cycl + Location: 54,7 + Owner: Nod + Actor93: cycl + Location: 53,7 + Owner: Nod + Actor94: cycl + Location: 52,7 + Owner: Nod + Actor95: cycl + Location: 51,7 + Owner: Nod + Actor96: cycl + Location: 50,7 + Owner: Nod + Actor97: cycl + Location: 49,7 + Owner: Nod + Actor98: cycl + Location: 48,7 + Owner: Nod + Actor99: cycl + Location: 43,7 + Owner: Nod + Actor100: brik + Location: 40,7 + Owner: Nod + Actor101: brik + Location: 61,6 + Owner: Nod + Actor102: brik + Location: 60,6 + Owner: Nod + Actor103: cycl + Location: 48,6 + Owner: Nod + Actor104: cycl + Location: 43,6 + Owner: Nod + Actor105: brik + Location: 40,6 + Owner: Nod + Actor106: brik + Location: 61,5 + Owner: Nod + Actor107: cycl + Location: 48,5 + Owner: Nod + Actor108: cycl + Location: 47,5 + Owner: Nod + Actor109: cycl + Location: 46,5 + Owner: Nod + Actor110: cycl + Location: 45,5 + Owner: Nod + Actor111: cycl + Location: 44,5 + Owner: Nod + Actor112: cycl + Location: 43,5 + Owner: Nod + Actor113: brik + Location: 40,5 + Owner: Nod + Actor114: brik + Location: 61,4 + Owner: Nod + Actor115: brik + Location: 40,4 + Owner: Nod + Actor116: brik + Location: 61,3 + Owner: Nod + Actor117: brik + Location: 60,3 + Owner: Nod + Actor118: brik + Location: 41,3 + Owner: Nod + Actor119: brik + Location: 40,3 + Owner: Nod + Actor120: brik + Location: 61,2 + Owner: Nod + Actor121: brik + Location: 60,2 + Owner: Nod + Actor122: brik + Location: 59,2 + Owner: Nod + Actor123: brik + Location: 58,2 + Owner: Nod + Actor124: brik + Location: 57,2 + Owner: Nod + Actor125: brik + Location: 56,2 + Owner: Nod + Actor126: brik + Location: 55,2 + Owner: Nod + Actor127: brik + Location: 54,2 + Owner: Nod + Actor128: brik + Location: 53,2 + Owner: Nod + Actor129: brik + Location: 52,2 + Owner: Nod + Actor130: brik + Location: 51,2 + Owner: Nod + Actor131: brik + Location: 50,2 + Owner: Nod + Actor132: brik + Location: 49,2 + Owner: Nod + Actor133: brik + Location: 48,2 + Owner: Nod + Actor134: brik + Location: 47,2 + Owner: Nod + Actor135: brik + Location: 46,2 + Owner: Nod + Actor136: brik + Location: 45,2 + Owner: Nod + Actor137: brik + Location: 44,2 + Owner: Nod + Actor138: brik + Location: 43,2 + Owner: Nod + Actor139: brik + Location: 42,2 + Owner: Nod + Actor140: brik + Location: 41,2 + Owner: Nod + Actor141: brik + Location: 40,2 + Owner: Nod + Actor142: t02 + Location: 40,21 + Owner: Neutral + Actor143: t02 + Location: 33,15 + Owner: Neutral + Actor144: t01 + Location: 39,15 + Owner: Neutral + Actor145: t01 + Location: 49,30 + Owner: Neutral + Actor146: tc03 + Location: 36,35 + Owner: Neutral + Actor147: t01 + Location: 36,33 + Owner: Neutral + Actor148: tc01 + Location: 30,37 + Owner: Neutral + Actor149: tc01 + Location: 16,41 + Owner: Neutral + Actor150: t03 + Location: 47,32 + Owner: Neutral + Actor151: t02 + Location: 61,32 + Owner: Neutral + Actor152: t01 + Location: 58,32 + Owner: Neutral + Actor153: tc04 + Location: 44,32 + Owner: Neutral + Actor154: tc01 + Location: 36,3 + Owner: Neutral + Actor155: tc01 + Location: 23,10 + Owner: Neutral + Actor156: tc01 + Location: 20,30 + Owner: Neutral + Actor157: tc01 + Location: 30,25 + Owner: Neutral + Actor158: tc04 + Location: 33,26 + Owner: Neutral + Actor159: tc04 + Location: 22,29 + Owner: Neutral + Actor160: tc04 + Location: 22,13 + Owner: Neutral + Actor161: tc01 + Location: 34,21 + Owner: Neutral + Actor162: tc01 + Location: 51,32 + Owner: Neutral + Actor163: tc02 + Location: 53,33 + Owner: Neutral + Actor164: tc04 + Location: 55,32 + Owner: Neutral + Actor165: t01 + Location: 48,32 + Owner: Neutral + Actor166: tc04 + Location: 49,31 + Owner: Neutral + Actor167: tc02 + Location: 42,33 + Owner: Neutral + Actor168: tc01 + Location: 40,33 + Owner: Neutral + Actor169: tc01 + Location: 59,18 + Owner: Neutral + Actor170: t01 + Location: 59,20 + Owner: Neutral + Actor171: t07 + Location: 46,35 + Owner: Neutral + Actor172: tc01 + Location: 42,36 + Owner: Neutral + Actor173: tc02 + Location: 44,36 + Owner: Neutral + Actor174: t01 + Location: 38,36 + Owner: Neutral + Actor175: tc01 + Location: 25,38 + Owner: Neutral + Actor176: tc04 + Location: 22,37 + Owner: Neutral + Actor177: tc04 + Location: 24,32 + Owner: Neutral + Actor178: tc01 + Location: 36,36 + Owner: Neutral + Actor179: t03 + Location: 34,37 + Owner: Neutral + Actor180: t03 + Location: 32,30 + Owner: Neutral + Actor181: tc02 + Location: 54,40 + Owner: Neutral + Actor182: tc04 + Location: 57,42 + Owner: Neutral + Actor183: tc04 + Location: 38,44 + Owner: Neutral + Actor184: tc02 + Location: 38,50 + Owner: Neutral + Actor185: t05 + Location: 39,40 + Owner: Neutral + Actor186: t01 + Location: 41,47 + Owner: Neutral + Actor187: t01 + Location: 48,45 + Owner: Neutral + Actor188: t01 + Location: 45,50 + Owner: Neutral + Actor189: t01 + Location: 49,53 + Owner: Neutral + Actor190: tc04 + Location: 47,54 + Owner: Neutral + Actor191: tc04 + Location: 55,47 + Owner: Neutral + Actor192: tc02 + Location: 49,50 + Owner: Neutral + Actor193: tc02 + Location: 43,40 + Owner: Neutral + Actor194: tc01 + Location: 42,44 + Owner: Neutral + Actor195: t01 + Location: 48,38 + Owner: Neutral + Actor196: t02 + Location: 49,38 + Owner: Neutral + Actor197: t02 + Location: 38,40 + Owner: Neutral + Actor198: tc01 + Location: 52,42 + Owner: Neutral + Actor199: t01 + Location: 57,38 + Owner: Neutral + Actor200: t01 + Location: 51,43 + Owner: Neutral + Actor201: t02 + Location: 56,43 + Owner: Neutral + Actor202: t01 + Location: 51,35 + Owner: Neutral + Actor203: t01 + Location: 59,35 + Owner: Neutral + Actor204: tc01 + Location: 57,35 + Owner: Neutral + Actor205: t02 + Location: 21,36 + Owner: Neutral + SAM03: sam + Location: 54,18 + Owner: Nod + SAM04: sam + Location: 44,18 + Owner: Nod + Turret1: gun + Location: 46,20 + Owner: Nod + Facing: 128 + Turret2: gun + Location: 53,20 + Owner: Nod + Facing: 128 + Silo1: silo + Location: 42,16 + Owner: Nod + PowerPlant1: nuke + Location: 42,13 + Owner: Nod + Silo2: silo + Location: 50,10 + Owner: Nod + Silo3: silo + Location: 52,10 + Owner: Nod + Refinery: proc + Location: 54,10 + Owner: Nod + FreeActor: False + SAM05: sam + Location: 42,3 + Owner: Nod + CommCenter: hq + Location: 50,4 + Owner: Nod + PowerPlant2: nuke + Location: 52,4 + Owner: Nod + PowerPlant3: nuke + Location: 54,4 + Owner: Nod + Airfield: afld + Location: 56,4 + Owner: Nod + SAM06: sam + Location: 58,3 + Owner: Nod + Actor221: v08 + Location: 37,34 + Owner: Neutral + Actor222: v08 + Location: 25,34 + Owner: Neutral + Actor223: v03 + Location: 29,35 + Owner: Neutral + Actor224: v05 + Location: 23,37 + Owner: Neutral + Actor225: v06 + Location: 33,34 + Owner: Neutral + Actor226: v07 + Location: 29,34 + Owner: Neutral + Actor227: v04 + Location: 25,37 + Owner: Neutral + Actor228: v05 + Location: 32,38 + Owner: Neutral + Actor229: v01 + Location: 31,38 + Owner: Neutral + SAM01: sam + Location: 53,40 + Owner: Nod + SAM02: sam + Location: 38,40 + Owner: Nod + ConYard: fact + Location: 55,14 + Owner: Nod + PowerPlant4: nuke + Location: 53,14 + Owner: Nod + PowerPlant5: nuke + Location: 51,14 + Owner: Nod + HandOfNod: hand + Location: 44,12 + Owner: Nod + Silo4: silo + Location: 44,16 + Owner: Nod + Actor237: v06 + Location: 25,40 + Owner: Neutral + Actor238: sam + Location: 50,28 + Owner: Nod + Actor239: sam + Location: 41,24 + Owner: Nod + Actor240: sam + Location: 22,29 + Owner: Nod + LightTank1: ltnk + Location: 57,17 + Owner: Nod + LightTank2: ltnk + Location: 60,33 + Owner: Nod + LightTank3: ltnk + Location: 59,33 + Owner: Nod + Buggy1: bggy + Location: 49,16 + Owner: Nod + Facing: 128 + Buggy2: bggy + Location: 49,17 + Owner: Nod + Facing: 128 + Actor246: e1 + Location: 44,7 + Owner: Nod + SubCell: 3 + RocketSoldier2: e3 + Location: 52,12 + Owner: Nod + SubCell: 3 + RocketSoldier3: e3 + Location: 52,13 + Owner: Nod + SubCell: 0 + RocketSoldier4: e3 + Location: 51,13 + Owner: Nod + SubCell: 2 + Actor250: e3 + Location: 43,44 + Owner: Nod + SubCell: 3 + Actor251: e3 + Location: 18,32 + Owner: Nod + Facing: 64 + SubCell: 3 + Actor252: e3 + Location: 17,32 + Owner: Nod + Facing: 224 + SubCell: 2 + Actor253: e3 + Location: 21,30 + Owner: Nod + Facing: 96 + SubCell: 3 + Actor254: e3.sticky + Location: 16,6 + Owner: Nod + Facing: 160 + SubCell: 3 + Actor255: e3.sticky + Location: 15,7 + Owner: Nod + Facing: 64 + SubCell: 4 + FlameGuy1: e4 + Location: 48,15 + Owner: Nod + SubCell: 1 + FlameGuy2: e4 + Location: 47,15 + Owner: Nod + SubCell: 0 + FlameGuy3: e4 + Location: 46,15 + Owner: Nod + SubCell: 2 + Actor259: e3.sticky + Location: 34,21 + Owner: Nod + SubCell: 2 + Actor260: e3.sticky + Location: 21,15 + Owner: Nod + Facing: 160 + SubCell: 0 + RocketSoldier1: e3 + Location: 48,14 + Owner: Nod + SubCell: 1 + MiniGunner1: e1 + Location: 47,13 + Owner: Nod + SubCell: 4 + MiniGunner2: e1 + Location: 47,14 + Owner: Nod + SubCell: 0 + Actor264: e3 + Location: 52,17 + Owner: Nod + Facing: 160 + SubCell: 1 + Actor265: e3 + Location: 52,17 + Owner: Nod + Facing: 160 + SubCell: 2 + Actor266: e3 + Location: 47,17 + Owner: Nod + Facing: 96 + SubCell: 1 + Actor267: e3 + Location: 46,17 + Owner: Nod + Facing: 96 + SubCell: 2 + AttackTrigger2: e1 + Location: 39,6 + Owner: Nod + Facing: 128 + SubCell: 0 + Actor269: e3.sticky + Location: 40,25 + Owner: Nod + Facing: 96 + SubCell: 0 + Actor270: e1 + Location: 53,42 + Owner: Nod + SubCell: 0 + Actor271: e3 + Location: 43,40 + Owner: Nod + Facing: 96 + SubCell: 4 + Actor272: e1 + Location: 49,43 + Owner: Nod + Facing: 96 + SubCell: 4 + Actor273: e1 + Location: 50,43 + Owner: Nod + Facing: 128 + SubCell: 1 + Actor274: e1 + Location: 53,47 + Owner: Nod + Facing: 32 + SubCell: 3 + CivFleeTrigger: e1 + Location: 23,36 + Owner: Nod + Facing: 224 + SubCell: 3 + Civilian: c8 + Location: 22,36 + Owner: Neutral + Facing: 96 + SubCell: 3 + CivHideOut: waypoint + Location: 26,32 + Owner: Neutral + MiniGunner5: e1 + Location: 51,20 + Owner: Nod + SubCell: 1 + MiniGunner6: e1 + Location: 51,20 + Owner: Nod + SubCell: 2 + MiniGunner3: e1 + Location: 48,20 + Owner: Nod + SubCell: 1 + MiniGunner4: e1 + Location: 48,20 + Owner: Nod + SubCell: 2 + waypoint27: waypoint + Location: 32,32 + Owner: Neutral + Flare: waypoint + Location: 30,41 + Owner: Neutral + waypoint17: waypoint + Location: 47,22 + Owner: Neutral + waypoint16: waypoint + Location: 52,22 + Owner: Neutral + waypoint15: waypoint + Location: 54,22 + Owner: Neutral + waypoint14: waypoint + Location: 45,22 + Owner: Neutral + waypoint13: waypoint + Location: 18,18 + Owner: Neutral + waypoint12: waypoint + Location: 20,7 + Owner: Neutral + waypoint11: waypoint + Location: 60,10 + Owner: Neutral + waypoint10: waypoint + Location: 60,23 + Owner: Neutral + waypoint9: waypoint + Location: 38,19 + Owner: Neutral + waypoint8: waypoint + Location: 24,18 + Owner: Neutral + waypoint7: waypoint + Location: 36,32 + Owner: Neutral + waypoint6: waypoint + Location: 49,24 + Owner: Neutral + waypoint5: waypoint + Location: 39,13 + Owner: Neutral + waypoint4: waypoint + Location: 39,7 + Owner: Neutral + waypoint3: waypoint + Location: 26,27 + Owner: Neutral + waypoint2: waypoint + Location: 27,32 + Owner: Neutral + TransportRally: waypoint + Location: 36,42 + Owner: Neutral + UnitsRally: waypoint + Owner: GDI + Location: 55,52 + lstEnd: waypoint + Owner: GDI + Location: 55,53 + lstStart: waypoint + Owner: GDI + Location: 55,61 + +Smudges: + +Rules: + World: + -SpawnMPUnits: + -MPStartLocations: + -CrateSpawner: + LuaScript: + Scripts: gdi06.lua + ObjectivesPanel: + PanelName: MISSION_OBJECTIVES + MusicPlaylist: + BackgroundMusic: rain-ambient + StartingMusic: rain + WeatherOverlay: + ParticleDensityFactor: 0.0007625 + ChangingWindLevel: true + WindLevels: -5, -3, -2, 0, 2, 3, 5 + WindTick: 150, 550 + InstantWindChanges: false + UseSquares: false + PaticleSize: 0, 0 + ScatterDirection: 0, 0 + Gravity: 8.00, 12.00 + SwingOffset: 0, 0 + SwingSpeed: 0, 0 + SwingAmplitude: 0, 0 + ParticleColors: 255,48,64,116, 255,40,56,108, 255,32,44,96, 255,24,44,84 + LineTailAlphaValue: 150 + GlobalLightingPaletteEffect: + Red: 0.75 + Green: 0.85 + Blue: 1.5 + Ambient: 0.35 + Player: + -ConquestVictoryConditions: + MissionObjectives: + EarlyGameOver: true + ^Vehicle: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + FLARE: + RevealsShroud: + Range: 5c0 + OLDLST: + Inherits: LST + -WithRoof: + -Selectable: + RejectsOrders: + SAM: + SpawnActorOnDeath: + Actor: e1 + RMBO: + MustBeDestroyed: + RequiredForShortGame: true + AutoTarget: + TargetWhenIdle: false + TargetWhenDamaged: true + Health: + HP: 150 + RMBO.easy: + Inherits: RMBO + Health: + HP: 300 + SelfHealing: + Ticks: 10 + HealIfBelow: 50% + DamageCooldown: 200 + RenderSprites: + Image: RMBO + RMBO.hard: + Inherits: RMBO + AutoTarget: + TargetWhenDamaged: false + RenderSprites: + Image: RMBO + E3.sticky: + Inherits: E3 + AutoTarget: + AllowMovement: false + RenderSprites: + Image: E3 + +Sequences: + oldlst: + idle: lst + Start: 0 + Facings: 1 + ZOffset: -1024 + icon: lsticnh.tem + AddExtension: False + +VoxelSequences: + +Weapons: + +Voices: + +Notifications: + +Translations: diff --git a/mods/cnc/maps/gdi06/rain-ambient.aud b/mods/cnc/maps/gdi06/rain-ambient.aud new file mode 100644 index 0000000000..6d14c5d7e8 Binary files /dev/null and b/mods/cnc/maps/gdi06/rain-ambient.aud differ diff --git a/mods/cnc/missions.yaml b/mods/cnc/missions.yaml index f39340dded..6441dc6b19 100644 --- a/mods/cnc/missions.yaml +++ b/mods/cnc/missions.yaml @@ -7,6 +7,7 @@ GDI Campaign: ./mods/cnc/maps/gdi04c ./mods/cnc/maps/gdi05a ./mods/cnc/maps/gdi05b + ./mods/cnc/maps/gdi06 Nod Campaign: ./mods/cnc/maps/nod01