Add GDI 05c
Well, 05eb really, but until we implement campaign progression, calling it 'c' is the easiest way to differentiate it without breaking our mission title length/alignment conventions.
This commit is contained in:
committed by
Oliver Brakmann
parent
06ea7bf923
commit
c860bf19ee
158
mods/cnc/maps/gdi05c/gdi05c.lua
Normal file
158
mods/cnc/maps/gdi05c/gdi05c.lua
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
--[[
|
||||||
|
Copyright 2007-2021 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.
|
||||||
|
]]
|
||||||
|
|
||||||
|
Difficulty = Map.LobbyOption("difficulty")
|
||||||
|
|
||||||
|
RepairThreshold = { easy = 0.3, normal = 0.6, hard = 0.9 }
|
||||||
|
|
||||||
|
ActorRemovals =
|
||||||
|
{
|
||||||
|
easy = { Actor197, Actor198, Actor199, Actor162, Actor178, Actor181, Actor171, Actor163 },
|
||||||
|
normal = { Actor197, Actor162 },
|
||||||
|
hard = { },
|
||||||
|
}
|
||||||
|
|
||||||
|
AllToHuntTrigger = { Silo1, Proc1, Silo2, Radar1, Afld1, Hand1, Nuke1, Nuke2, Nuke3, Fact1 }
|
||||||
|
|
||||||
|
AtkRoute1 = { waypoint0, waypoint1, waypoint2, waypoint3, waypoint4 }
|
||||||
|
AtkRoute2 = { waypoint0, waypoint8, waypoint4 }
|
||||||
|
AtkRoute3 = { waypoint0, waypoint1, waypoint2, waypoint5, waypoint6, waypoint7 }
|
||||||
|
AtkRoute4 = { waypoint0, waypoint8, waypoint9, waypoint10, waypoint11 }
|
||||||
|
|
||||||
|
AutoCreateTeams =
|
||||||
|
{
|
||||||
|
{ types = { e1 = 2, e3 = 2 }, route = AtkRoute1 },
|
||||||
|
{ types = { e1 = 1, e3 = 2 }, route = AtkRoute2 },
|
||||||
|
{ types = { ltnk = 1 } , route = AtkRoute2 },
|
||||||
|
{ types = { bggy = 1 } , route = AtkRoute2 },
|
||||||
|
{ types = { bggy = 1 } , route = AtkRoute1 },
|
||||||
|
{ types = { ltnk = 1 } , route = AtkRoute3 },
|
||||||
|
{ types = { bggy = 1 } , route = AtkRoute4 }
|
||||||
|
}
|
||||||
|
|
||||||
|
Atk1Delay = { easy = DateTime.Seconds(60), normal = DateTime.Seconds(50), hard = DateTime.Seconds(40) }
|
||||||
|
Atk2Delay = { easy = DateTime.Seconds(90), normal = DateTime.Seconds(70), hard = DateTime.Seconds(50) }
|
||||||
|
Atk3Delay = { easy = DateTime.Seconds(120), normal = DateTime.Seconds(90), hard = DateTime.Seconds(70) }
|
||||||
|
Atk4Delay = { easy = DateTime.Seconds(150), normal = DateTime.Seconds(110), hard = DateTime.Seconds(90) }
|
||||||
|
AutoAtkStartDelay = { easy = DateTime.Seconds(150), normal = DateTime.Seconds(120), hard = DateTime.Seconds(90) }
|
||||||
|
AutoAtkMinDelay = { easy = DateTime.Minutes(1), normal = DateTime.Seconds(45), hard = DateTime.Seconds(30) }
|
||||||
|
AutoAtkMaxDelay = { easy = DateTime.Minutes(2), normal = DateTime.Seconds(90), hard = DateTime.Minutes(1) }
|
||||||
|
|
||||||
|
GDIBase = { GdiNuke1, GdiProc1, GdiWeap1, GdiNuke2, GdiNuke3, GdiPyle1, GdiSilo1, GdiRadar1 }
|
||||||
|
GDIUnits = { "e2", "e2", "e2", "e2", "e1", "e1", "e1", "e1", "mtnk", "mtnk", "jeep", "apc", "apc" }
|
||||||
|
GDIHarvester = { "harv" }
|
||||||
|
NodSams = { Sam1, Sam2, Sam3 }
|
||||||
|
|
||||||
|
AutoCreateTeam = function()
|
||||||
|
local team = Utils.Random(AutoCreateTeams)
|
||||||
|
for type, count in pairs(team.types) do
|
||||||
|
MoveAndHunt(Utils.Take(count, Nod.GetActorsByType(type)), team.route)
|
||||||
|
end
|
||||||
|
|
||||||
|
Trigger.AfterDelay(Utils.RandomInteger(AutoAtkMinDelay[Difficulty], AutoAtkMaxDelay[Difficulty]), AutoCreateTeam)
|
||||||
|
end
|
||||||
|
|
||||||
|
DiscoverGDIBase = function(actor, discoverer)
|
||||||
|
if BaseDiscovered or not discoverer == GDI then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
--Spawn harv only when base is discovered, otherwise it will waste tiberium and might get killed before the player arrives
|
||||||
|
if not GdiProc1.IsDead then
|
||||||
|
Reinforcements.Reinforce(GDI, GDIHarvester, { GdiProc1.Location + CVec.New(0, 2), GdiProc1.Location + CVec.New(-1, 3) }, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
Utils.Do(GDIBase, function(actor)
|
||||||
|
actor.Owner = GDI
|
||||||
|
end)
|
||||||
|
|
||||||
|
BaseDiscovered = true
|
||||||
|
|
||||||
|
EliminateNod = GDI.AddObjective("Eliminate all Nod forces in the area.")
|
||||||
|
GDI.MarkCompletedObjective(FindBase)
|
||||||
|
end
|
||||||
|
|
||||||
|
Atk1TriggerFunction = function()
|
||||||
|
MoveAndHunt(Utils.Take(2, Nod.GetActorsByType('e1')), AtkRoute1)
|
||||||
|
MoveAndHunt(Utils.Take(2, Nod.GetActorsByType('e3')), AtkRoute1)
|
||||||
|
end
|
||||||
|
|
||||||
|
Atk2TriggerFunction = function()
|
||||||
|
MoveAndHunt(Utils.Take(4, Nod.GetActorsByType('e3')), AtkRoute2)
|
||||||
|
end
|
||||||
|
|
||||||
|
Atk3TriggerFunction = function()
|
||||||
|
MoveAndHunt(Utils.Take(1, Nod.GetActorsByType('bggy')), AtkRoute2)
|
||||||
|
end
|
||||||
|
|
||||||
|
Atk4TriggerFunction = function()
|
||||||
|
MoveAndHunt(Utils.Take(2, Nod.GetActorsByType('e1')), AtkRoute1)
|
||||||
|
MoveAndHunt(Utils.Take(1, Nod.GetActorsByType('ltnk')), AtkRoute1)
|
||||||
|
end
|
||||||
|
|
||||||
|
InsertGDIUnits = function()
|
||||||
|
Media.PlaySpeechNotification(GDI, "Reinforce")
|
||||||
|
Reinforcements.Reinforce(GDI, GDIUnits, { UnitsEntry.Location, UnitsRally.Location }, 15)
|
||||||
|
end
|
||||||
|
|
||||||
|
WorldLoaded = function()
|
||||||
|
GDI = Player.GetPlayer("GDI")
|
||||||
|
AbandonedBase = Player.GetPlayer("AbandonedBase")
|
||||||
|
Nod = Player.GetPlayer("Nod")
|
||||||
|
|
||||||
|
InitObjectives(GDI)
|
||||||
|
|
||||||
|
RepairNamedActors(Nod, RepairThreshold[Difficulty])
|
||||||
|
|
||||||
|
FindBase = GDI.AddObjective("Find the GDI base.")
|
||||||
|
DestroySAMs = GDI.AddObjective("Destroy all SAM sites to receive air support.", "Secondary", false)
|
||||||
|
NodObjective = Nod.AddObjective("Destroy all GDI troops.")
|
||||||
|
|
||||||
|
Utils.Do(ActorRemovals[Difficulty], function(unit)
|
||||||
|
unit.Destroy()
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(Atk1Delay[Difficulty], Atk1TriggerFunction)
|
||||||
|
Trigger.AfterDelay(Atk2Delay[Difficulty], Atk2TriggerFunction)
|
||||||
|
Trigger.AfterDelay(Atk3Delay[Difficulty], Atk3TriggerFunction)
|
||||||
|
Trigger.AfterDelay(Atk4Delay[Difficulty], Atk4TriggerFunction)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(AutoAtkStartDelay[Difficulty], AutoCreateTeam)
|
||||||
|
|
||||||
|
Trigger.OnAllKilledOrCaptured(AllToHuntTrigger, function()
|
||||||
|
Utils.Do(Nod.GetGroundAttackers(), IdleHunt)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(40), function()
|
||||||
|
local delay = function() return DateTime.Seconds(30) end
|
||||||
|
local toBuild = function() return { "e1" } end
|
||||||
|
ProduceUnits(Nod, Hand1, delay, toBuild)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnPlayerDiscovered(AbandonedBase, DiscoverGDIBase)
|
||||||
|
|
||||||
|
Trigger.OnAllKilled(NodSams, function()
|
||||||
|
GDI.MarkCompletedObjective(DestroySAMs)
|
||||||
|
Actor.Create("airstrike.proxy", true, { Owner = GDI })
|
||||||
|
end)
|
||||||
|
|
||||||
|
Camera.Position = UnitsRally.CenterPosition
|
||||||
|
|
||||||
|
InsertGDIUnits()
|
||||||
|
end
|
||||||
|
|
||||||
|
Tick = function()
|
||||||
|
if DateTime.GameTime > 2 and GDI.HasNoRequiredUnits() then
|
||||||
|
Nod.MarkCompletedObjective(NodObjective)
|
||||||
|
end
|
||||||
|
|
||||||
|
if BaseDiscovered and Nod.HasNoRequiredUnits() then
|
||||||
|
GDI.MarkCompletedObjective(EliminateNod)
|
||||||
|
end
|
||||||
|
end
|
||||||
BIN
mods/cnc/maps/gdi05c/map.bin
Normal file
BIN
mods/cnc/maps/gdi05c/map.bin
Normal file
Binary file not shown.
BIN
mods/cnc/maps/gdi05c/map.png
Normal file
BIN
mods/cnc/maps/gdi05c/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
768
mods/cnc/maps/gdi05c/map.yaml
Normal file
768
mods/cnc/maps/gdi05c/map.yaml
Normal file
@@ -0,0 +1,768 @@
|
|||||||
|
MapFormat: 11
|
||||||
|
|
||||||
|
RequiresMod: cnc
|
||||||
|
|
||||||
|
Title: 05c: Repair the GDI base
|
||||||
|
|
||||||
|
Author: Westwood Studios
|
||||||
|
|
||||||
|
Tileset: TEMPERAT
|
||||||
|
|
||||||
|
MapSize: 64,64
|
||||||
|
|
||||||
|
Bounds: 9,1,54,45
|
||||||
|
|
||||||
|
Visibility: MissionSelector
|
||||||
|
|
||||||
|
Categories: Campaign
|
||||||
|
|
||||||
|
LockPreview: True
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Nod:
|
||||||
|
Name: Nod
|
||||||
|
Faction: nod
|
||||||
|
Color: FE1100
|
||||||
|
Enemies: GDI, AbandonedBase
|
||||||
|
Bot: campaign
|
||||||
|
PlayerReference@GDI:
|
||||||
|
Name: GDI
|
||||||
|
Playable: True
|
||||||
|
AllowBots: False
|
||||||
|
Required: True
|
||||||
|
LockFaction: True
|
||||||
|
Faction: gdi
|
||||||
|
LockColor: True
|
||||||
|
Color: F5D378
|
||||||
|
LockSpawn: True
|
||||||
|
LockTeam: True
|
||||||
|
Enemies: Nod
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: gdi
|
||||||
|
Color: F5D378
|
||||||
|
PlayerReference@AbandonedBase:
|
||||||
|
Name: AbandonedBase
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: gdi
|
||||||
|
Color: F5D378
|
||||||
|
Enemies: Nod
|
||||||
|
Bot: campaign
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Actor0: sbag
|
||||||
|
Location: 62,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor1: sbag
|
||||||
|
Location: 61,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor2: sbag
|
||||||
|
Location: 60,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor3: sbag
|
||||||
|
Location: 59,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor4: sbag
|
||||||
|
Location: 58,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor5: sbag
|
||||||
|
Location: 57,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor6: sbag
|
||||||
|
Location: 56,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor7: sbag
|
||||||
|
Location: 55,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor8: sbag
|
||||||
|
Location: 54,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor9: sbag
|
||||||
|
Location: 53,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor10: sbag
|
||||||
|
Location: 52,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor11: sbag
|
||||||
|
Location: 51,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor12: sbag
|
||||||
|
Location: 50,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor13: sbag
|
||||||
|
Location: 49,34
|
||||||
|
Owner: Nod
|
||||||
|
Actor14: sbag
|
||||||
|
Location: 62,33
|
||||||
|
Owner: Nod
|
||||||
|
Actor15: sbag
|
||||||
|
Location: 49,33
|
||||||
|
Owner: Nod
|
||||||
|
Actor16: sbag
|
||||||
|
Location: 62,32
|
||||||
|
Owner: Nod
|
||||||
|
Actor17: sbag
|
||||||
|
Location: 49,32
|
||||||
|
Owner: Nod
|
||||||
|
Actor18: sbag
|
||||||
|
Location: 62,31
|
||||||
|
Owner: Nod
|
||||||
|
Actor19: sbag
|
||||||
|
Location: 49,31
|
||||||
|
Owner: Nod
|
||||||
|
Actor20: sbag
|
||||||
|
Location: 62,30
|
||||||
|
Owner: Nod
|
||||||
|
Actor21: sbag
|
||||||
|
Location: 50,30
|
||||||
|
Owner: Nod
|
||||||
|
Actor22: sbag
|
||||||
|
Location: 49,30
|
||||||
|
Owner: Nod
|
||||||
|
Actor23: sbag
|
||||||
|
Location: 62,29
|
||||||
|
Owner: Nod
|
||||||
|
Actor24: sbag
|
||||||
|
Location: 50,29
|
||||||
|
Owner: Nod
|
||||||
|
Actor25: sbag
|
||||||
|
Location: 49,29
|
||||||
|
Owner: Nod
|
||||||
|
Actor26: sbag
|
||||||
|
Location: 62,28
|
||||||
|
Owner: Nod
|
||||||
|
Actor27: sbag
|
||||||
|
Location: 62,27
|
||||||
|
Owner: Nod
|
||||||
|
Actor28: sbag
|
||||||
|
Location: 62,26
|
||||||
|
Owner: Nod
|
||||||
|
Actor29: sbag
|
||||||
|
Location: 62,25
|
||||||
|
Owner: Nod
|
||||||
|
Actor30: sbag
|
||||||
|
Location: 50,25
|
||||||
|
Owner: Nod
|
||||||
|
Actor31: sbag
|
||||||
|
Location: 49,25
|
||||||
|
Owner: Nod
|
||||||
|
Actor32: sbag
|
||||||
|
Location: 62,24
|
||||||
|
Owner: Nod
|
||||||
|
Actor33: sbag
|
||||||
|
Location: 50,24
|
||||||
|
Owner: Nod
|
||||||
|
Actor34: sbag
|
||||||
|
Location: 49,24
|
||||||
|
Owner: Nod
|
||||||
|
Actor35: sbag
|
||||||
|
Location: 62,23
|
||||||
|
Owner: Nod
|
||||||
|
Actor36: sbag
|
||||||
|
Location: 49,23
|
||||||
|
Owner: Nod
|
||||||
|
Actor37: sbag
|
||||||
|
Location: 62,22
|
||||||
|
Owner: Nod
|
||||||
|
Actor38: sbag
|
||||||
|
Location: 49,22
|
||||||
|
Owner: Nod
|
||||||
|
Actor39: sbag
|
||||||
|
Location: 62,21
|
||||||
|
Owner: Nod
|
||||||
|
Actor40: sbag
|
||||||
|
Location: 49,21
|
||||||
|
Owner: Nod
|
||||||
|
Actor41: sbag
|
||||||
|
Location: 62,20
|
||||||
|
Owner: Nod
|
||||||
|
Actor42: sbag
|
||||||
|
Location: 49,20
|
||||||
|
Owner: Nod
|
||||||
|
Actor43: sbag
|
||||||
|
Location: 62,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor44: sbag
|
||||||
|
Location: 61,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor45: sbag
|
||||||
|
Location: 60,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor46: sbag
|
||||||
|
Location: 59,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor47: sbag
|
||||||
|
Location: 58,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor48: sbag
|
||||||
|
Location: 57,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor49: sbag
|
||||||
|
Location: 56,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor50: sbag
|
||||||
|
Location: 55,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor51: sbag
|
||||||
|
Location: 54,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor52: sbag
|
||||||
|
Location: 53,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor53: sbag
|
||||||
|
Location: 52,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor54: sbag
|
||||||
|
Location: 51,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor55: sbag
|
||||||
|
Location: 50,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor56: sbag
|
||||||
|
Location: 49,19
|
||||||
|
Owner: Nod
|
||||||
|
Actor57: sbag
|
||||||
|
Location: 37,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor58: sbag
|
||||||
|
Location: 36,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor59: sbag
|
||||||
|
Location: 35,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor60: sbag
|
||||||
|
Location: 34,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor61: sbag
|
||||||
|
Location: 33,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor62: sbag
|
||||||
|
Location: 32,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor63: sbag
|
||||||
|
Location: 31,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor64: sbag
|
||||||
|
Location: 30,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor65: sbag
|
||||||
|
Location: 29,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor66: sbag
|
||||||
|
Location: 28,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor67: sbag
|
||||||
|
Location: 27,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor68: sbag
|
||||||
|
Location: 23,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor69: sbag
|
||||||
|
Location: 22,10
|
||||||
|
Owner: GDI
|
||||||
|
Actor70: sbag
|
||||||
|
Location: 37,9
|
||||||
|
Owner: GDI
|
||||||
|
Actor71: sbag
|
||||||
|
Location: 28,9
|
||||||
|
Owner: GDI
|
||||||
|
Actor72: sbag
|
||||||
|
Location: 27,9
|
||||||
|
Owner: GDI
|
||||||
|
Actor73: sbag
|
||||||
|
Location: 23,9
|
||||||
|
Owner: GDI
|
||||||
|
Actor74: sbag
|
||||||
|
Location: 22,9
|
||||||
|
Owner: GDI
|
||||||
|
Actor75: sbag
|
||||||
|
Location: 21,9
|
||||||
|
Owner: GDI
|
||||||
|
Actor76: sbag
|
||||||
|
Location: 37,8
|
||||||
|
Owner: GDI
|
||||||
|
Actor77: sbag
|
||||||
|
Location: 21,8
|
||||||
|
Owner: GDI
|
||||||
|
Actor78: sbag
|
||||||
|
Location: 20,8
|
||||||
|
Owner: GDI
|
||||||
|
Actor79: sbag
|
||||||
|
Location: 19,8
|
||||||
|
Owner: GDI
|
||||||
|
Actor80: sbag
|
||||||
|
Location: 37,7
|
||||||
|
Owner: GDI
|
||||||
|
Actor81: sbag
|
||||||
|
Location: 36,7
|
||||||
|
Owner: GDI
|
||||||
|
Actor82: sbag
|
||||||
|
Location: 19,7
|
||||||
|
Owner: GDI
|
||||||
|
Actor83: sbag
|
||||||
|
Location: 37,6
|
||||||
|
Owner: GDI
|
||||||
|
Actor84: sbag
|
||||||
|
Location: 36,6
|
||||||
|
Owner: GDI
|
||||||
|
Actor85: sbag
|
||||||
|
Location: 19,6
|
||||||
|
Owner: GDI
|
||||||
|
Actor86: sbag
|
||||||
|
Location: 19,5
|
||||||
|
Owner: GDI
|
||||||
|
Actor87: sbag
|
||||||
|
Location: 37,4
|
||||||
|
Owner: GDI
|
||||||
|
Actor88: sbag
|
||||||
|
Location: 36,4
|
||||||
|
Owner: GDI
|
||||||
|
Actor89: sbag
|
||||||
|
Location: 24,4
|
||||||
|
Owner: GDI
|
||||||
|
Actor90: sbag
|
||||||
|
Location: 23,4
|
||||||
|
Owner: GDI
|
||||||
|
Actor91: sbag
|
||||||
|
Location: 22,4
|
||||||
|
Owner: GDI
|
||||||
|
Actor92: sbag
|
||||||
|
Location: 21,4
|
||||||
|
Owner: GDI
|
||||||
|
Actor93: sbag
|
||||||
|
Location: 20,4
|
||||||
|
Owner: GDI
|
||||||
|
Actor94: sbag
|
||||||
|
Location: 19,4
|
||||||
|
Owner: GDI
|
||||||
|
Actor95: sbag
|
||||||
|
Location: 37,3
|
||||||
|
Owner: GDI
|
||||||
|
Actor96: sbag
|
||||||
|
Location: 36,3
|
||||||
|
Owner: GDI
|
||||||
|
Actor97: sbag
|
||||||
|
Location: 27,3
|
||||||
|
Owner: GDI
|
||||||
|
Actor98: sbag
|
||||||
|
Location: 26,3
|
||||||
|
Owner: GDI
|
||||||
|
Actor99: sbag
|
||||||
|
Location: 25,3
|
||||||
|
Owner: GDI
|
||||||
|
Actor100: sbag
|
||||||
|
Location: 24,3
|
||||||
|
Owner: GDI
|
||||||
|
Actor101: sbag
|
||||||
|
Location: 37,2
|
||||||
|
Owner: GDI
|
||||||
|
Actor102: sbag
|
||||||
|
Location: 27,2
|
||||||
|
Owner: GDI
|
||||||
|
Actor103: sbag
|
||||||
|
Location: 37,1
|
||||||
|
Owner: GDI
|
||||||
|
Actor104: sbag
|
||||||
|
Location: 36,1
|
||||||
|
Owner: GDI
|
||||||
|
Actor105: sbag
|
||||||
|
Location: 35,1
|
||||||
|
Owner: GDI
|
||||||
|
Actor106: sbag
|
||||||
|
Location: 34,1
|
||||||
|
Owner: GDI
|
||||||
|
Actor107: sbag
|
||||||
|
Location: 31,1
|
||||||
|
Owner: GDI
|
||||||
|
Actor108: sbag
|
||||||
|
Location: 30,1
|
||||||
|
Owner: GDI
|
||||||
|
Actor109: sbag
|
||||||
|
Location: 27,1
|
||||||
|
Owner: GDI
|
||||||
|
Actor110: t01
|
||||||
|
Location: 12,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor111: t01
|
||||||
|
Location: 12,5
|
||||||
|
Owner: Neutral
|
||||||
|
Actor112: tc01
|
||||||
|
Location: 49,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor113: t11
|
||||||
|
Location: 35,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor114: tc04
|
||||||
|
Location: 18,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor115: tc01
|
||||||
|
Location: 20,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor116: tc04
|
||||||
|
Location: 12,6
|
||||||
|
Owner: Neutral
|
||||||
|
Actor117: tc04
|
||||||
|
Location: 15,16
|
||||||
|
Owner: Neutral
|
||||||
|
Actor118: tc03
|
||||||
|
Location: 20,18
|
||||||
|
Owner: Neutral
|
||||||
|
Actor119: tc02
|
||||||
|
Location: 15,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor120: tc01
|
||||||
|
Location: 19,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor121: tc04
|
||||||
|
Location: 21,37
|
||||||
|
Owner: Neutral
|
||||||
|
Actor122: tc05
|
||||||
|
Location: 28,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor123: tc01
|
||||||
|
Location: 25,44
|
||||||
|
Owner: Neutral
|
||||||
|
Actor124: tc01
|
||||||
|
Location: 51,38
|
||||||
|
Owner: Neutral
|
||||||
|
Actor125: tc04
|
||||||
|
Location: 43,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor126: tc05
|
||||||
|
Location: 60,35
|
||||||
|
Owner: Neutral
|
||||||
|
Actor127: tc04
|
||||||
|
Location: 49,34
|
||||||
|
Owner: Neutral
|
||||||
|
Actor128: tc05
|
||||||
|
Location: 58,40
|
||||||
|
Owner: Neutral
|
||||||
|
Actor129: tc03
|
||||||
|
Location: 57,44
|
||||||
|
Owner: Neutral
|
||||||
|
Actor130: t11
|
||||||
|
Location: 19,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor131: t12
|
||||||
|
Location: 11,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor132: t08
|
||||||
|
Location: 19,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor133: t08
|
||||||
|
Location: 17,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor134: t01
|
||||||
|
Location: 40,36
|
||||||
|
Owner: Neutral
|
||||||
|
Actor135: t02
|
||||||
|
Location: 40,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor136: tc04
|
||||||
|
Location: 28,10
|
||||||
|
Owner: Neutral
|
||||||
|
Actor137: tc02
|
||||||
|
Location: 37,10
|
||||||
|
Owner: Neutral
|
||||||
|
Actor138: tc01
|
||||||
|
Location: 34,12
|
||||||
|
Owner: Neutral
|
||||||
|
Hand1: hand
|
||||||
|
Location: 57,23
|
||||||
|
Owner: Nod
|
||||||
|
Nuke3: nuke
|
||||||
|
Location: 60,31
|
||||||
|
Owner: Nod
|
||||||
|
Nuke2: nuke
|
||||||
|
Location: 60,28
|
||||||
|
Owner: Nod
|
||||||
|
Silo2: silo
|
||||||
|
Location: 58,30
|
||||||
|
Owner: Nod
|
||||||
|
Silo1: silo
|
||||||
|
Location: 58,32
|
||||||
|
Owner: Nod
|
||||||
|
Radar1: hq
|
||||||
|
Location: 60,23
|
||||||
|
Owner: Nod
|
||||||
|
Afld1: afld
|
||||||
|
Location: 53,29
|
||||||
|
Owner: Nod
|
||||||
|
Proc1: proc
|
||||||
|
Location: 54,21
|
||||||
|
Owner: Nod
|
||||||
|
Nuke1: nuke
|
||||||
|
Location: 57,20
|
||||||
|
Owner: Nod
|
||||||
|
Fact1: fact
|
||||||
|
Location: 59,20
|
||||||
|
Owner: Nod
|
||||||
|
GdiNuke1: nuke
|
||||||
|
Location: 34,7
|
||||||
|
Owner: AbandonedBase
|
||||||
|
Health: 10
|
||||||
|
GdiNuke2: nuke
|
||||||
|
Location: 20,5
|
||||||
|
Owner: AbandonedBase
|
||||||
|
Health: 39
|
||||||
|
GdiSilo1: silo
|
||||||
|
Location: 22,5
|
||||||
|
Owner: AbandonedBase
|
||||||
|
Health: 38
|
||||||
|
GdiProc1: proc
|
||||||
|
Location: 25,4
|
||||||
|
Owner: AbandonedBase
|
||||||
|
Health: 45
|
||||||
|
FreeActor: False
|
||||||
|
GdiRadar1: hq
|
||||||
|
Location: 28,2
|
||||||
|
Owner: AbandonedBase
|
||||||
|
Health: 10
|
||||||
|
GdiWeap1: weap
|
||||||
|
Location: 30,3
|
||||||
|
Owner: AbandonedBase
|
||||||
|
Health: 25
|
||||||
|
GdiPyle1: pyle
|
||||||
|
Location: 32,7
|
||||||
|
Owner: AbandonedBase
|
||||||
|
Health: 39
|
||||||
|
GdiNuke3: nuke
|
||||||
|
Location: 33,2
|
||||||
|
Owner: AbandonedBase
|
||||||
|
Health: 41
|
||||||
|
Actor157: gun
|
||||||
|
Location: 48,30
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Actor158: gun
|
||||||
|
Location: 48,24
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Sam1: sam
|
||||||
|
Location: 51,33
|
||||||
|
Owner: Nod
|
||||||
|
Sam2: sam
|
||||||
|
Location: 51,20
|
||||||
|
Owner: Nod
|
||||||
|
Sam3: sam
|
||||||
|
Location: 60,27
|
||||||
|
Owner: Nod
|
||||||
|
Actor162: ltnk
|
||||||
|
Location: 61,7
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Actor163: ltnk
|
||||||
|
Location: 33,32
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 384
|
||||||
|
Actor164: ltnk
|
||||||
|
Location: 39,43
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 768
|
||||||
|
Actor165: bggy
|
||||||
|
Location: 56,20
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 384
|
||||||
|
Actor166: bggy
|
||||||
|
Location: 57,32
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Actor167: bggy
|
||||||
|
Location: 48,21
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Actor168: bggy
|
||||||
|
Location: 48,33
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Actor169: ltnk
|
||||||
|
Location: 48,20
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Actor170: ltnk
|
||||||
|
Location: 52,27
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Actor171: ltnk
|
||||||
|
Location: 32,27
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Actor177: harv
|
||||||
|
Location: 30,27
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
Actor178: bggy
|
||||||
|
Location: 27,22
|
||||||
|
Owner: Nod
|
||||||
|
Actor179: bggy
|
||||||
|
Location: 50,23
|
||||||
|
Owner: Nod
|
||||||
|
Stance: Defend
|
||||||
|
Actor180: bggy
|
||||||
|
Location: 51,23
|
||||||
|
Owner: Nod
|
||||||
|
Stance: Defend
|
||||||
|
Actor181: bggy
|
||||||
|
Location: 13,41
|
||||||
|
Owner: Nod
|
||||||
|
Actor182: ltnk
|
||||||
|
Location: 51,22
|
||||||
|
Owner: Nod
|
||||||
|
Stance: Defend
|
||||||
|
Actor183: e1
|
||||||
|
Location: 61,26
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 384
|
||||||
|
SubCell: 4
|
||||||
|
Actor184: e1
|
||||||
|
Location: 57,33
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 128
|
||||||
|
SubCell: 3
|
||||||
|
Actor185: e1
|
||||||
|
Location: 61,26
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 896
|
||||||
|
SubCell: 2
|
||||||
|
Actor186: e1
|
||||||
|
Location: 61,26
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 128
|
||||||
|
SubCell: 1
|
||||||
|
Actor187: e1
|
||||||
|
Location: 61,26
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 640
|
||||||
|
SubCell: 3
|
||||||
|
Actor188: e1
|
||||||
|
Location: 54,20
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 384
|
||||||
|
SubCell: 0
|
||||||
|
Actor189: e1
|
||||||
|
Location: 54,20
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 640
|
||||||
|
SubCell: 2
|
||||||
|
Actor190: e3
|
||||||
|
Location: 50,20
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 3
|
||||||
|
Actor191: e3
|
||||||
|
Location: 55,20
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 512
|
||||||
|
SubCell: 1
|
||||||
|
Actor192: e3
|
||||||
|
Location: 59,29
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 128
|
||||||
|
SubCell: 1
|
||||||
|
Actor193: e3
|
||||||
|
Location: 47,33
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
SubCell: 1
|
||||||
|
Stance: Defend
|
||||||
|
Actor194: e3
|
||||||
|
Location: 47,33
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
SubCell: 3
|
||||||
|
Stance: Defend
|
||||||
|
Actor195: e3
|
||||||
|
Location: 47,34
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 256
|
||||||
|
SubCell: 1
|
||||||
|
Stance: Defend
|
||||||
|
Actor196: e3
|
||||||
|
Location: 20,28
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 512
|
||||||
|
SubCell: 0
|
||||||
|
Stance: ReturnFire
|
||||||
|
Actor197: e3
|
||||||
|
Location: 31,39
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 640
|
||||||
|
SubCell: 0
|
||||||
|
Actor198: e3
|
||||||
|
Location: 28,40
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 640
|
||||||
|
SubCell: 0
|
||||||
|
Actor199: e3
|
||||||
|
Location: 17,16
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 3
|
||||||
|
Actor200: e3
|
||||||
|
Location: 15,22
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 1
|
||||||
|
Stance: ReturnFire
|
||||||
|
Actor201: e3
|
||||||
|
Location: 36,24
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 3
|
||||||
|
Actor210: e3
|
||||||
|
Location: 28,35
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 512
|
||||||
|
SubCell: 4
|
||||||
|
Stance: ReturnFire
|
||||||
|
DefaultChinookTarget: waypoint
|
||||||
|
Location: 32,36
|
||||||
|
Owner: Neutral
|
||||||
|
DefaultCameraPosition: waypoint
|
||||||
|
Location: 48,38
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint18: waypoint
|
||||||
|
Location: 46,34
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint11: waypoint
|
||||||
|
Location: 38,3
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint10: waypoint
|
||||||
|
Location: 57,1
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint9: waypoint
|
||||||
|
Location: 41,14
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint8: waypoint
|
||||||
|
Location: 42,19
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint7: waypoint
|
||||||
|
Location: 18,4
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint6: waypoint
|
||||||
|
Location: 10,2
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint5: waypoint
|
||||||
|
Location: 10,16
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint4: waypoint
|
||||||
|
Location: 32,16
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint3: waypoint
|
||||||
|
Location: 19,16
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint2: waypoint
|
||||||
|
Location: 19,21
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint1: waypoint
|
||||||
|
Location: 32,26
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint0: waypoint
|
||||||
|
Location: 46,26
|
||||||
|
Owner: Neutral
|
||||||
|
UnitsEntry: waypoint
|
||||||
|
Location: 54,45
|
||||||
|
Owner: Neutral
|
||||||
|
UnitsRally: waypoint
|
||||||
|
Location: 51,42
|
||||||
|
Owner: Neutral
|
||||||
|
|
||||||
|
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml
|
||||||
173
mods/cnc/maps/gdi05c/rules.yaml
Normal file
173
mods/cnc/maps/gdi05c/rules.yaml
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
World:
|
||||||
|
LuaScript:
|
||||||
|
Scripts: campaign-global.lua, gdi05c.lua
|
||||||
|
MissionData:
|
||||||
|
Briefing: A GDI field base is under attack. They have fended off one attack but will not survive another.\n\nMove to the base, repair the structures and then launch a strike force to destroy the Nod base in the area.\n\nDestroy all Nod units and structures.
|
||||||
|
BackgroundVideo: podium.vqa
|
||||||
|
BriefingVideo: gdi5.vqa
|
||||||
|
StartVideo: seige.vqa
|
||||||
|
WinVideo: nodlose.vqa
|
||||||
|
LossVideo: gdilose.vqa
|
||||||
|
MapOptions:
|
||||||
|
ShortGameCheckboxLocked: True
|
||||||
|
ShortGameCheckboxEnabled: False
|
||||||
|
SmudgeLayer@SCORCH:
|
||||||
|
InitialSmudges:
|
||||||
|
46,24: sc5,0
|
||||||
|
45,21: sc3,0
|
||||||
|
26,11: sc3,0
|
||||||
|
25,10: sc4,0
|
||||||
|
25,9: sc3,0
|
||||||
|
24,9: sc3,0
|
||||||
|
23,8: sc3,0
|
||||||
|
24,7: sc2,0
|
||||||
|
32,6: sc6,0
|
||||||
|
31,6: sc6,0
|
||||||
|
29,6: sc1,0
|
||||||
|
35,5: sc1,0
|
||||||
|
20,5: sc5,0
|
||||||
|
30,2: sc2,0
|
||||||
|
33,1: sc1,0
|
||||||
|
SmudgeLayer@CRATER:
|
||||||
|
InitialSmudges:
|
||||||
|
26,9: cr1,0
|
||||||
|
22,8: cr1,0
|
||||||
|
29,7: cr1,0
|
||||||
|
23,7: cr1,0
|
||||||
|
35,2: cr1,0
|
||||||
|
ScriptLobbyDropdown@difficulty:
|
||||||
|
ID: difficulty
|
||||||
|
Label: Difficulty
|
||||||
|
Values:
|
||||||
|
easy: Easy
|
||||||
|
normal: Normal
|
||||||
|
hard: Hard
|
||||||
|
Default: normal
|
||||||
|
Locked: false
|
||||||
|
|
||||||
|
Player:
|
||||||
|
EnemyWatcher:
|
||||||
|
PlayerResources:
|
||||||
|
DefaultCash: 2000
|
||||||
|
|
||||||
|
^Palettes:
|
||||||
|
IndexedPlayerPalette:
|
||||||
|
PlayerIndex:
|
||||||
|
AbandonedBase: 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191
|
||||||
|
IndexedPlayerPalette@units:
|
||||||
|
PlayerIndex:
|
||||||
|
AbandonedBase: 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191
|
||||||
|
|
||||||
|
^Building:
|
||||||
|
AnnounceOnSeen:
|
||||||
|
|
||||||
|
SBAG:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
GTWR:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
ATWR:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
WEAP:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
CYCL:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
NUK2:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
FIX:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
HPAD:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
BRIK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
HQ:
|
||||||
|
-AirstrikePower:
|
||||||
|
|
||||||
|
EYE:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
GUN:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
OBLI:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
TMPL:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
E2:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~pyle
|
||||||
|
|
||||||
|
E3:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
E5:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
HARV:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MTNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
HTNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
RMBO:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MSAM:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
ARTY:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MLRS:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
STNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MCV:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
FTNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
airstrike.proxy:
|
||||||
|
AirstrikePower:
|
||||||
|
SquadSize: 1
|
||||||
@@ -7,6 +7,7 @@ GDI Campaign:
|
|||||||
gdi04c
|
gdi04c
|
||||||
gdi05a
|
gdi05a
|
||||||
gdi05b
|
gdi05b
|
||||||
|
gdi05c
|
||||||
gdi06
|
gdi06
|
||||||
gdi07
|
gdi07
|
||||||
gdi08a
|
gdi08a
|
||||||
|
|||||||
Reference in New Issue
Block a user