Add gdi09ea
This commit is contained in:
204
mods/cnc/maps/gdi09/gdi09-AI.lua
Normal file
204
mods/cnc/maps/gdi09/gdi09-AI.lua
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
--[[
|
||||||
|
Copyright 2007-2020 The OpenRA Developers (see AUTHORS)
|
||||||
|
This file is part of OpenRA, which is free software. It is made
|
||||||
|
available to you under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation, either version 3 of
|
||||||
|
the License, or (at your option) any later version. For more
|
||||||
|
information, see COPYING.
|
||||||
|
]]
|
||||||
|
|
||||||
|
AttackPaths = { { waypoint7 }, { waypoint8 } }
|
||||||
|
NodBase = { handofnod, nodairfield, nodrefinery, NodCYard, nodpower1, nodpower2, nodpower3, nodpower4, nodpower5, gun5, gun6, gun7, gun8, nodsilo1, nodsilo2, nodsilo3, nodsilo4, nodobelisk }
|
||||||
|
|
||||||
|
PatrolProductionQueue = { }
|
||||||
|
InfantryAttackGroup = { }
|
||||||
|
InfantryGroupSize = 5
|
||||||
|
InfantryProductionCooldown = DateTime.Minutes(3)
|
||||||
|
InfantryProductionTypes = { "e1", "e1", "e1", "e3", "e3", "e4" }
|
||||||
|
HarvesterProductionType = { "harv" }
|
||||||
|
VehicleAttackGroup = { }
|
||||||
|
VehicleGroupSize = 5
|
||||||
|
VehicleProductionCooldown = DateTime.Minutes(3)
|
||||||
|
VehicleProductionTypes = { "bggy", "bggy", "bggy", "ltnk", "ltnk", "arty" }
|
||||||
|
StartingCash = 14000
|
||||||
|
|
||||||
|
BaseRefinery = { type = "proc", pos = CPos.New(12, 25) }
|
||||||
|
BaseNuke1 = { type = "nuke", pos = CPos.New(5, 24) }
|
||||||
|
BaseNuke2 = { type = "nuke", pos = CPos.New(3, 24) }
|
||||||
|
BaseNuke3 = { type = "nuke", pos = CPos.New(16, 30) }
|
||||||
|
BaseNuke4 = { type = "nuke", pos = CPos.New(14, 30) }
|
||||||
|
BaseNuke5 = { type = "nuke", pos = CPos.New(12, 30) }
|
||||||
|
InfantryProduction = { type = "hand", pos = CPos.New(15, 24) }
|
||||||
|
VehicleProduction = { type = "afld", pos = CPos.New(3, 27) }
|
||||||
|
|
||||||
|
NodGuards = { Actor168, Actor169, Actor170, Actor171, Actor172, Actor181, Actor177, Actor188, Actor189, Actor190 }
|
||||||
|
|
||||||
|
BaseBuildings = { BaseRefinery, BaseNuke1, BaseNuke2, BaseNuke3, BaseNuke4, InfantryProduction, VehicleProduction }
|
||||||
|
|
||||||
|
BuildBuilding = function(building, cyard)
|
||||||
|
local buildingCost = Actor.Cost(building.type)
|
||||||
|
if CyardIsBuilding or Nod.Cash < buildingCost then
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), function() BuildBuilding(building, cyard) end)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
CyardIsBuilding = true
|
||||||
|
|
||||||
|
Nod.Cash = Nod.Cash - buildingCost
|
||||||
|
Trigger.AfterDelay(Actor.BuildTime(building.type), function()
|
||||||
|
CyardIsBuilding = false
|
||||||
|
|
||||||
|
if cyard.IsDead or cyard.Owner ~= Nod then
|
||||||
|
Nod.Cash = Nod.Cash + buildingCost
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local actor = Actor.Create(building.type, true, { Owner = Nod, Location = building.pos })
|
||||||
|
|
||||||
|
if actor.Type == 'hand' or actor.Type == 'pyle' then
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceInfantry(actor) end)
|
||||||
|
elseif actor.Type == 'afld' or actor.Type == 'weap' then
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceVehicle(actor) end)
|
||||||
|
end
|
||||||
|
|
||||||
|
Trigger.OnKilled(actor, function()
|
||||||
|
BuildBuilding(building, cyard)
|
||||||
|
end)
|
||||||
|
|
||||||
|
RepairBuilding(Nod, actor, 0.75)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
HasHarvester = function()
|
||||||
|
local harv = Nod.GetActorsByType("harv")
|
||||||
|
return #harv > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
GuardBase = function()
|
||||||
|
Utils.Do(NodBase, function(building)
|
||||||
|
Trigger.OnDamaged(building, function()
|
||||||
|
if not building.IsDead then
|
||||||
|
Utils.Do(NodGuards, function(guard)
|
||||||
|
if not guard.IsDead then
|
||||||
|
guard.Stop()
|
||||||
|
guard.Guard(building)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceHarvester = function(building)
|
||||||
|
if not buildingHarvester then
|
||||||
|
buildingHarvester = true
|
||||||
|
building.Build(HarvesterProductionType, function()
|
||||||
|
buildingHarvester = false
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceInfantry = function(building)
|
||||||
|
if building.IsDead or building.Owner ~= Nod then
|
||||||
|
return
|
||||||
|
elseif not HasHarvester() then
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceInfantry(building) end)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if #PatrolProductionQueue >= 1 then
|
||||||
|
local inQueue = PatrolProductionQueue[1]
|
||||||
|
local toBuild = { inQueue.unit[1] }
|
||||||
|
local patrolPath = inQueue.waypoints
|
||||||
|
building.Build(toBuild, function(unit)
|
||||||
|
ReplenishPatrolUnit(unit[1], handofnod, patrolPath, 40)
|
||||||
|
table.remove(PatrolProductionQueue, 1)
|
||||||
|
end)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceInfantry(building) end)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9))
|
||||||
|
local toBuild = { Utils.Random(InfantryProductionTypes) }
|
||||||
|
local Path = Utils.Random(AttackPaths)
|
||||||
|
building.Build(toBuild, function(unit)
|
||||||
|
InfantryAttackGroup[#InfantryAttackGroup + 1] = unit[1]
|
||||||
|
|
||||||
|
if #InfantryAttackGroup >= InfantryGroupSize then
|
||||||
|
MoveAndHunt(InfantryAttackGroup, Path)
|
||||||
|
InfantryAttackGroup = { }
|
||||||
|
Trigger.AfterDelay(InfantryProductionCooldown, function() ProduceInfantry(building) end)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(delay, function() ProduceInfantry(building) end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
ProduceVehicle = function(building)
|
||||||
|
if building.IsDead or building.Owner ~= Nod then
|
||||||
|
return
|
||||||
|
elseif not HasHarvester() then
|
||||||
|
ProduceHarvester(building)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceVehicle(building) end)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local delay = Utils.RandomInteger(DateTime.Seconds(12), DateTime.Seconds(17))
|
||||||
|
local toBuild = { Utils.Random(VehicleProductionTypes) }
|
||||||
|
local Path = Utils.Random(AttackPaths)
|
||||||
|
building.Build(toBuild, function(unit)
|
||||||
|
VehicleAttackGroup[#VehicleAttackGroup + 1] = unit[1]
|
||||||
|
|
||||||
|
if #VehicleAttackGroup >= VehicleGroupSize then
|
||||||
|
MoveAndHunt(VehicleAttackGroup, Path)
|
||||||
|
VehicleAttackGroup = { }
|
||||||
|
Trigger.AfterDelay(VehicleProductionCooldown, function() ProduceVehicle(building) end)
|
||||||
|
else
|
||||||
|
Trigger.AfterDelay(delay, function() ProduceVehicle(building) end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
StartAI = function()
|
||||||
|
RepairNamedActors(Nod, 0.75)
|
||||||
|
|
||||||
|
Nod.Cash = StartingCash
|
||||||
|
GuardBase()
|
||||||
|
end
|
||||||
|
|
||||||
|
Trigger.OnAllKilledOrCaptured(NodBase, function()
|
||||||
|
Utils.Do(Nod.GetGroundAttackers(), IdleHunt)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(nodrefinery, function(building)
|
||||||
|
BuildBuilding(BaseRefinery, NodCYard)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(nodpower1, function(building)
|
||||||
|
BuildBuilding(BaseNuke1, NodCYard)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(nodpower2, function(building)
|
||||||
|
BuildBuilding(BaseNuke2, NodCYard)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(nodpower3, function(building)
|
||||||
|
BuildBuilding(BaseNuke3, NodCYard)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(nodpower4, function(building)
|
||||||
|
BuildBuilding(BaseNuke4, NodCYard)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(nodpower5, function(building)
|
||||||
|
BuildBuilding(BaseNuke5, NodCYard)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(handofnod, function(building)
|
||||||
|
BuildBuilding(InfantryProduction, NodCYard)
|
||||||
|
end)
|
||||||
|
|
||||||
|
Trigger.OnKilled(nodairfield, function(building)
|
||||||
|
BuildBuilding(VehicleProduction, NodCYard)
|
||||||
|
end)
|
||||||
170
mods/cnc/maps/gdi09/gdi09.lua
Normal file
170
mods/cnc/maps/gdi09/gdi09.lua
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
--[[
|
||||||
|
Copyright 2007-2020 The OpenRA Developers (see AUTHORS)
|
||||||
|
This file is part of OpenRA, which is free software. It is made
|
||||||
|
available to you under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation, either version 3 of
|
||||||
|
the License, or (at your option) any later version. For more
|
||||||
|
information, see COPYING.
|
||||||
|
]]
|
||||||
|
|
||||||
|
InsertionHelicopterType = "tran.insertion"
|
||||||
|
GDIHeliReinfUnits = { "e2", "e2", "e2", "e3", "e3" }
|
||||||
|
|
||||||
|
SamSites = { sam1, sam2, sam3, sam4 }
|
||||||
|
NodBunkersNorth = { gun3, gun4 }
|
||||||
|
NodBunkersSouth = { gun1, gun2 }
|
||||||
|
|
||||||
|
BoatEscapeTrigger = { CPos.New(2,37) }
|
||||||
|
|
||||||
|
WaypointGroup1 = { waypoint1, waypoint2, waypoint8 }
|
||||||
|
WaypointGroup2 = { waypoint1, waypoint2, waypoint3, waypoint9 }
|
||||||
|
WaypointGroup3 = { waypoint1, waypoint2, waypoint3, waypoint10, waypoint11, waypoint12, waypoint6, waypoint13 }
|
||||||
|
WaypointGroup4 = { waypoint1, waypoint2, waypoint3, waypoint4 }
|
||||||
|
Patrol1Waypoints = { waypoint11.Location, waypoint10.Location }
|
||||||
|
Patrol2Waypoints = { waypoint1.Location, waypoint2.Location, waypoint3.Location, waypoint4.Location, waypoint5.Location, waypoint4.Location, waypoint3.Location, waypoint2.Location, waypoint1.Location, waypoint6.Location }
|
||||||
|
|
||||||
|
Nod1 = { units = { ['e1'] = 2, ['e3'] = 2 }, waypoints = WaypointGroup1, delay = 40 }
|
||||||
|
Nod2 = { units = { ['e3'] = 2, ['e4'] = 2 }, waypoints = WaypointGroup2, delay = 50 }
|
||||||
|
Nod3 = { units = { ['e1'] = 2, ['e3'] = 3, ['e4'] = 2 }, waypoints = WaypointGroup1, delay = 50 }
|
||||||
|
Nod4 = { units = { ['bggy'] = 2 }, waypoints = WaypointGroup2, delay = 50 }
|
||||||
|
Nod5 = { units = { ['e4'] = 2, ['ltnk'] = 1 }, waypoints = WaypointGroup1, delay = 50 }
|
||||||
|
Auto1 = { units = { ['e4'] = 2, ['arty'] = 1 }, waypoints = WaypointGroup1, delay = 50 }
|
||||||
|
Auto2 = { units = { ['e1'] = 2, ['e3'] = 2 }, waypoints = WaypointGroup2, delay = 50 }
|
||||||
|
Auto3 = { units = { ['e3'] = 2, ['e4'] = 2 }, waypoints = WaypointGroup1, delay = 50 }
|
||||||
|
Auto4 = { units = { ['e1'] = 3, ['e4'] = 1 }, waypoints = WaypointGroup1, delay = 50 }
|
||||||
|
Auto5 = { units = { ['ltnk'] = 1, ['bggy'] = 1 }, waypoints = WaypointGroup1, delay = 60 }
|
||||||
|
Auto6 = { units = { ['bggy'] = 1 }, waypoints = WaypointGroup2, delay = 50 }
|
||||||
|
Auto7 = { units = { ['ltnk'] = 1 }, waypoints = WaypointGroup2, delay = 50 }
|
||||||
|
Auto8 = { units = { ['e4'] = 2, ['bggy'] = 1 }, waypoints = WaypointGroup4, delay = 0 }
|
||||||
|
|
||||||
|
Patrols = {
|
||||||
|
grd1 = { units = { ['e3'] = 3 }, waypoints = Patrol1Waypoints, wait = 40, initialWaypointPlacement = { 1 } },
|
||||||
|
grd2 = { units = { ['e1'] = 2, ['e3'] = 2, ['e4'] = 2 }, waypoints = Patrol2Waypoints, wait = 20, initialWaypointPlacement = { 4, 10, 1 } }
|
||||||
|
}
|
||||||
|
|
||||||
|
AutoAttackWaves = { Nod1, Nod2, Nod3, Nod4, Nod5, Auto1, Auto2, Auto3, Auto4, Auto5, Auto6, Auto7, Auto8 }
|
||||||
|
|
||||||
|
StationaryGuards = { Actor174, Actor173, Actor182, Actor183, Actor184, Actor185, Actor186, Actor187 , Actor199, Actor200, Actor201, Actor202, Actor203, Actor204 }
|
||||||
|
|
||||||
|
StartStationaryGuards = function()
|
||||||
|
Utils.Do(StationaryGuards, function(unit)
|
||||||
|
if not unit.IsDead then
|
||||||
|
unit.Patrol( { unit.Location } , true, 20)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
SendWaves = function(counter, Waves)
|
||||||
|
if counter <= #Waves then
|
||||||
|
local team = Waves[counter]
|
||||||
|
|
||||||
|
for type, amount in pairs(team.units) do
|
||||||
|
MoveAndHunt(Utils.Take(amount, Nod.GetActorsByType(type)), team.waypoints)
|
||||||
|
end
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(team.delay), function() SendWaves(counter + 1, Waves) end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
StartPatrols = function()
|
||||||
|
for k, team in pairs(Patrols) do
|
||||||
|
local group = 1
|
||||||
|
for type, amount in pairs(team.units) do
|
||||||
|
for i = 1, amount do
|
||||||
|
Reinforcements.Reinforce(Nod, { type }, { team.waypoints[team.initialWaypointPlacement[group]] }, 0, function(unit)
|
||||||
|
ReplenishPatrolUnit(unit, handofnod, team.waypoints, team.wait)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
group = group + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Patrols = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
ReplenishPatrolUnit = function(unit, building, waypoints, waitatwaypoint)
|
||||||
|
unit.Patrol(waypoints, true, waitatwaypoint)
|
||||||
|
Trigger.OnKilled(unit, function()
|
||||||
|
local queueUnit = { unit = { unit.Type }, atbuilding = { building }, waypoints = waypoints }
|
||||||
|
PatrolProductionQueue[#PatrolProductionQueue + 1] = queueUnit
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
SendGDIReinforcements = function()
|
||||||
|
Media.PlaySpeechNotification(GDI, "Reinforce")
|
||||||
|
Reinforcements.ReinforceWithTransport(GDI, InsertionHelicopterType, GDIHeliReinfUnits, { GDIHeliEntryNorth.Location, GDIHeliLZ.Location }, { GDIHeliLZ.Location + CVec.New(20, 0) })
|
||||||
|
end
|
||||||
|
|
||||||
|
SendGDIReinforcementChinook = function()
|
||||||
|
Reinforcements.ReinforceWithTransport(GDI, 'tran', nil, { GDIHeliEntryNorth.Location, GDIHeliLZ.Location })
|
||||||
|
end
|
||||||
|
|
||||||
|
SpawnGunboat = function()
|
||||||
|
Media.PlaySpeechNotification(GDI, "Reinforce")
|
||||||
|
Actor.Create("boat", true, { Owner = GDI, Facing = 0, Location = CPos.New(62,37) })
|
||||||
|
end
|
||||||
|
|
||||||
|
WorldLoaded = function()
|
||||||
|
GDI = Player.GetPlayer("GDI")
|
||||||
|
Nod = Player.GetPlayer("Nod")
|
||||||
|
|
||||||
|
Camera.Position = DefaultCameraPosition.CenterPosition
|
||||||
|
|
||||||
|
DestroyBunkers = GDI.AddObjective("Destroy the Nod bunkers to allow Carter's\nconvoy to pass through safely.")
|
||||||
|
Trigger.OnAllKilled(NodBunkersNorth, function()
|
||||||
|
GDI.MarkCompletedObjective(DestroyBunkers)
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(1), SpawnGunboat)
|
||||||
|
end)
|
||||||
|
Trigger.OnAllKilled(NodBunkersSouth, function()
|
||||||
|
GDI.MarkCompletedObjective(DestroyBunkers)
|
||||||
|
SendGDIReinforcementChinook()
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(1), SpawnGunboat)
|
||||||
|
end)
|
||||||
|
Trigger.OnEnteredFootprint(BoatEscapeTrigger, function(a, id)
|
||||||
|
if a.Type == "boat" then
|
||||||
|
a.Destroy()
|
||||||
|
Media.DisplayMessage("Part of Carter's convoy passed through!")
|
||||||
|
Media.PlaySoundNotification(GDI, "AlertBleep")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
SecureArea = GDI.AddObjective("Destroy the Nod strike force.")
|
||||||
|
KillGDI = Nod.AddObjective("Kill all enemies!")
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Seconds(5), SendGDIReinforcements)
|
||||||
|
|
||||||
|
AirSupport = GDI.AddObjective("Destroy the SAM sites to receive air support.", "Secondary", false)
|
||||||
|
Trigger.OnAllKilled(SamSites, function()
|
||||||
|
GDI.MarkCompletedObjective(AirSupport)
|
||||||
|
Actor.Create("airstrike.proxy", true, { Owner = GDI })
|
||||||
|
end)
|
||||||
|
|
||||||
|
Actor.Create("flare", true, { Owner = GDI, Location = DefaultFlareLocation.Location })
|
||||||
|
|
||||||
|
StartStationaryGuards()
|
||||||
|
|
||||||
|
StartAI()
|
||||||
|
|
||||||
|
StartPatrols()
|
||||||
|
|
||||||
|
InitObjectives(GDI)
|
||||||
|
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(1), function() SendWaves(1, AutoAttackWaves) end)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(3), function() ProduceInfantry(handofnod) end)
|
||||||
|
Trigger.AfterDelay(DateTime.Minutes(3), function() ProduceVehicle(nodairfield) end)
|
||||||
|
|
||||||
|
local initialArrivingUnits = { Actor175, Actor191, Actor192, Actor193, Actor194, Actor195, Actor196, Actor197, Actor198 }
|
||||||
|
Utils.Do(initialArrivingUnits, function(unit)
|
||||||
|
unit.Move(unit.Location + CVec.New(0, 1), 0)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
Tick = function()
|
||||||
|
if DateTime.GameTime > DateTime.Seconds(5) then
|
||||||
|
if GDI.HasNoRequiredUnits() then
|
||||||
|
Nod.MarkCompletedObjective(KillGDI)
|
||||||
|
end
|
||||||
|
if Nod.HasNoRequiredUnits() then
|
||||||
|
GDI.MarkCompletedObjective(SecureArea)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
BIN
mods/cnc/maps/gdi09/map.bin
Normal file
BIN
mods/cnc/maps/gdi09/map.bin
Normal file
Binary file not shown.
BIN
mods/cnc/maps/gdi09/map.png
Normal file
BIN
mods/cnc/maps/gdi09/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
782
mods/cnc/maps/gdi09/map.yaml
Normal file
782
mods/cnc/maps/gdi09/map.yaml
Normal file
@@ -0,0 +1,782 @@
|
|||||||
|
MapFormat: 11
|
||||||
|
|
||||||
|
RequiresMod: cnc
|
||||||
|
|
||||||
|
Title: 09: Secure the Danube
|
||||||
|
|
||||||
|
Author: Westwood Studios
|
||||||
|
|
||||||
|
Tileset: WINTER
|
||||||
|
|
||||||
|
MapSize: 64,64
|
||||||
|
|
||||||
|
Bounds: 2,3,60,48
|
||||||
|
|
||||||
|
Visibility: MissionSelector
|
||||||
|
|
||||||
|
Categories: Campaign
|
||||||
|
|
||||||
|
LockPreview: True
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: gdi
|
||||||
|
PlayerReference@Nod:
|
||||||
|
Name: Nod
|
||||||
|
Faction: nod
|
||||||
|
Color: FF1400
|
||||||
|
Allies: Nod
|
||||||
|
Enemies: GDI
|
||||||
|
Bot: campaign
|
||||||
|
PlayerReference@GDI:
|
||||||
|
Name: GDI
|
||||||
|
AllowBots: False
|
||||||
|
Playable: True
|
||||||
|
Required: True
|
||||||
|
LockFaction: True
|
||||||
|
Faction: gdi
|
||||||
|
LockColor: True
|
||||||
|
Color: F5D378
|
||||||
|
LockSpawn: True
|
||||||
|
LockTeam: True
|
||||||
|
Allies: GDI
|
||||||
|
Enemies: Nod
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
Actor0: sbag
|
||||||
|
Location: 30,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor1: sbag
|
||||||
|
Location: 29,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor2: sbag
|
||||||
|
Location: 28,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor3: sbag
|
||||||
|
Location: 27,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor4: sbag
|
||||||
|
Location: 26,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor5: sbag
|
||||||
|
Location: 30,42
|
||||||
|
Owner: Neutral
|
||||||
|
Actor6: sbag
|
||||||
|
Location: 28,42
|
||||||
|
Owner: Neutral
|
||||||
|
Actor7: sbag
|
||||||
|
Location: 26,42
|
||||||
|
Owner: Neutral
|
||||||
|
Actor8: sbag
|
||||||
|
Location: 35,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor9: sbag
|
||||||
|
Location: 33,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor10: sbag
|
||||||
|
Location: 31,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor11: brik
|
||||||
|
Location: 21,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor12: brik
|
||||||
|
Location: 20,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor13: brik
|
||||||
|
Location: 19,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor14: brik
|
||||||
|
Location: 18,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor15: brik
|
||||||
|
Location: 17,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor16: brik
|
||||||
|
Location: 16,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor17: brik
|
||||||
|
Location: 15,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor18: brik
|
||||||
|
Location: 14,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor19: brik
|
||||||
|
Location: 13,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor20: brik
|
||||||
|
Location: 12,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor21: brik
|
||||||
|
Location: 11,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor22: brik
|
||||||
|
Location: 10,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor23: brik
|
||||||
|
Location: 9,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor24: brik
|
||||||
|
Location: 8,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor25: brik
|
||||||
|
Location: 7,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor26: brik
|
||||||
|
Location: 6,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor27: brik
|
||||||
|
Location: 5,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor28: brik
|
||||||
|
Location: 4,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor29: brik
|
||||||
|
Location: 3,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor30: brik
|
||||||
|
Location: 2,33
|
||||||
|
Owner: Neutral
|
||||||
|
Actor31: sbag
|
||||||
|
Location: 35,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor32: sbag
|
||||||
|
Location: 34,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor33: sbag
|
||||||
|
Location: 33,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor34: sbag
|
||||||
|
Location: 32,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor35: sbag
|
||||||
|
Location: 31,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor36: brik
|
||||||
|
Location: 21,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor37: brik
|
||||||
|
Location: 2,32
|
||||||
|
Owner: Neutral
|
||||||
|
Actor38: brik
|
||||||
|
Location: 21,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor39: brik
|
||||||
|
Location: 20,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor40: brik
|
||||||
|
Location: 2,31
|
||||||
|
Owner: Neutral
|
||||||
|
Actor41: brik
|
||||||
|
Location: 21,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor42: brik
|
||||||
|
Location: 20,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor43: brik
|
||||||
|
Location: 2,30
|
||||||
|
Owner: Neutral
|
||||||
|
Actor44: wood
|
||||||
|
Location: 31,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor45: brik
|
||||||
|
Location: 2,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor46: wood
|
||||||
|
Location: 31,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor47: brik
|
||||||
|
Location: 2,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor48: wood
|
||||||
|
Location: 42,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor49: wood
|
||||||
|
Location: 41,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor50: wood
|
||||||
|
Location: 40,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor51: wood
|
||||||
|
Location: 39,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor52: brik
|
||||||
|
Location: 2,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor53: wood
|
||||||
|
Location: 42,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor54: v16
|
||||||
|
Location: 41,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor55: v18
|
||||||
|
Location: 40,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor56: wood
|
||||||
|
Location: 39,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor57: brik
|
||||||
|
Location: 21,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor58: brik
|
||||||
|
Location: 20,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor59: brik
|
||||||
|
Location: 2,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor60: wood
|
||||||
|
Location: 42,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor61: v14
|
||||||
|
Location: 41,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor62: v15
|
||||||
|
Location: 40,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor63: wood
|
||||||
|
Location: 39,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor64: brik
|
||||||
|
Location: 21,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor65: brik
|
||||||
|
Location: 20,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor66: brik
|
||||||
|
Location: 2,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor67: wood
|
||||||
|
Location: 42,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor68: wood
|
||||||
|
Location: 39,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor69: brik
|
||||||
|
Location: 21,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor70: brik
|
||||||
|
Location: 14,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor71: brik
|
||||||
|
Location: 13,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor72: brik
|
||||||
|
Location: 8,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor73: brik
|
||||||
|
Location: 7,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor74: brik
|
||||||
|
Location: 2,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor75: brik
|
||||||
|
Location: 21,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor76: brik
|
||||||
|
Location: 20,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor77: brik
|
||||||
|
Location: 19,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor78: brik
|
||||||
|
Location: 18,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor79: brik
|
||||||
|
Location: 17,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor80: brik
|
||||||
|
Location: 16,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor81: brik
|
||||||
|
Location: 15,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor82: brik
|
||||||
|
Location: 14,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor83: brik
|
||||||
|
Location: 13,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor84: brik
|
||||||
|
Location: 8,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor85: brik
|
||||||
|
Location: 7,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor86: brik
|
||||||
|
Location: 6,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor87: brik
|
||||||
|
Location: 5,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor88: brik
|
||||||
|
Location: 4,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor89: brik
|
||||||
|
Location: 3,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor90: brik
|
||||||
|
Location: 2,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor91: t02
|
||||||
|
Location: 46,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor92: t02
|
||||||
|
Location: 14,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor93: t01
|
||||||
|
Location: 18,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor94: t14
|
||||||
|
Location: 44,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor95: tc01
|
||||||
|
Location: 43,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor96: tc02
|
||||||
|
Location: 42,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor97: tc04
|
||||||
|
Location: 45,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor98: split2
|
||||||
|
Location: 55,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor99: split2
|
||||||
|
Location: 60,28
|
||||||
|
Owner: Neutral
|
||||||
|
Actor100: tc04
|
||||||
|
Location: 34,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor101: tc02
|
||||||
|
Location: 37,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor102: t10
|
||||||
|
Location: 32,27
|
||||||
|
Owner: Neutral
|
||||||
|
Actor103: t01
|
||||||
|
Location: 34,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor104: t17
|
||||||
|
Location: 35,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor105: tc01
|
||||||
|
Location: 31,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor106: tc04
|
||||||
|
Location: 51,15
|
||||||
|
Owner: Neutral
|
||||||
|
Actor107: tc04
|
||||||
|
Location: 37,5
|
||||||
|
Owner: Neutral
|
||||||
|
Actor108: tc04
|
||||||
|
Location: 39,14
|
||||||
|
Owner: Neutral
|
||||||
|
Actor109: tc04
|
||||||
|
Location: 30,6
|
||||||
|
Owner: Neutral
|
||||||
|
Actor110: tc02
|
||||||
|
Location: 29,14
|
||||||
|
Owner: Neutral
|
||||||
|
Actor111: tc01
|
||||||
|
Location: 44,12
|
||||||
|
Owner: Neutral
|
||||||
|
Actor112: tc01
|
||||||
|
Location: 32,9
|
||||||
|
Owner: Neutral
|
||||||
|
Actor113: t03
|
||||||
|
Location: 34,17
|
||||||
|
Owner: Neutral
|
||||||
|
Actor114: t02
|
||||||
|
Location: 44,20
|
||||||
|
Owner: Neutral
|
||||||
|
Actor115: t01
|
||||||
|
Location: 42,19
|
||||||
|
Owner: Neutral
|
||||||
|
Actor116: t01
|
||||||
|
Location: 43,10
|
||||||
|
Owner: Neutral
|
||||||
|
Actor117: t01
|
||||||
|
Location: 35,15
|
||||||
|
Owner: Neutral
|
||||||
|
Actor118: t01
|
||||||
|
Location: 31,10
|
||||||
|
Owner: Neutral
|
||||||
|
Actor119: tc02
|
||||||
|
Location: 22,42
|
||||||
|
Owner: Neutral
|
||||||
|
Actor120: tc04
|
||||||
|
Location: 2,47
|
||||||
|
Owner: Neutral
|
||||||
|
Actor121: tc05
|
||||||
|
Location: 15,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor122: tc02
|
||||||
|
Location: 27,53
|
||||||
|
Owner: Neutral
|
||||||
|
Actor123: t01
|
||||||
|
Location: 30,50
|
||||||
|
Owner: Neutral
|
||||||
|
Actor124: t02
|
||||||
|
Location: 23,52
|
||||||
|
Owner: Neutral
|
||||||
|
Actor125: t03
|
||||||
|
Location: 33,45
|
||||||
|
Owner: Neutral
|
||||||
|
Actor126: tc01
|
||||||
|
Location: 22,22
|
||||||
|
Owner: Neutral
|
||||||
|
Actor127: t07
|
||||||
|
Location: 5,5
|
||||||
|
Owner: Neutral
|
||||||
|
Actor128: tc04
|
||||||
|
Location: 8,4
|
||||||
|
Owner: Neutral
|
||||||
|
Actor129: tc01
|
||||||
|
Location: 3,4
|
||||||
|
Owner: Neutral
|
||||||
|
Actor130: t07
|
||||||
|
Location: 38,23
|
||||||
|
Owner: Neutral
|
||||||
|
Actor131: t11
|
||||||
|
Location: 30,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor132: tc04
|
||||||
|
Location: 24,43
|
||||||
|
Owner: Neutral
|
||||||
|
Actor133: tc04
|
||||||
|
Location: 25,29
|
||||||
|
Owner: Neutral
|
||||||
|
Actor134: tc05
|
||||||
|
Location: 52,22
|
||||||
|
Owner: Neutral
|
||||||
|
gun1: gun
|
||||||
|
Location: 27,42
|
||||||
|
Owner: Nod
|
||||||
|
gun2: gun
|
||||||
|
Location: 29,42
|
||||||
|
Owner: Nod
|
||||||
|
gun3: gun
|
||||||
|
Location: 34,33
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 159
|
||||||
|
gun4: gun
|
||||||
|
Location: 32,33
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 159
|
||||||
|
Actor139: v04
|
||||||
|
Location: 45,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor140: v07
|
||||||
|
Location: 51,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor141: v06
|
||||||
|
Location: 40,24
|
||||||
|
Owner: Neutral
|
||||||
|
Actor142: v05
|
||||||
|
Location: 43,26
|
||||||
|
Owner: Neutral
|
||||||
|
Actor143: v03
|
||||||
|
Location: 35,25
|
||||||
|
Owner: Neutral
|
||||||
|
Actor144: v01
|
||||||
|
Location: 37,26
|
||||||
|
Owner: Neutral
|
||||||
|
sam1: sam
|
||||||
|
Location: 3,4
|
||||||
|
Owner: Nod
|
||||||
|
sam2: sam
|
||||||
|
Location: 19,24
|
||||||
|
Owner: Nod
|
||||||
|
sam3: sam
|
||||||
|
Location: 2,22
|
||||||
|
Owner: Nod
|
||||||
|
sam4: sam
|
||||||
|
Location: 19,32
|
||||||
|
Owner: Nod
|
||||||
|
nodpower1: nuke
|
||||||
|
Location: 5,24
|
||||||
|
Owner: Nod
|
||||||
|
nodpower2: nuke
|
||||||
|
Location: 3,24
|
||||||
|
Owner: Nod
|
||||||
|
gun5: gun
|
||||||
|
Location: 13,22
|
||||||
|
Owner: Nod
|
||||||
|
gun6: gun
|
||||||
|
Location: 8,22
|
||||||
|
Owner: Nod
|
||||||
|
NodCYard: fact
|
||||||
|
Location: 7,30
|
||||||
|
Owner: Nod
|
||||||
|
nodobelisk: obli
|
||||||
|
Location: 18,32
|
||||||
|
Owner: Nod
|
||||||
|
nodpower3: nuke
|
||||||
|
Location: 16,30
|
||||||
|
Owner: Nod
|
||||||
|
nodpower4: nuke
|
||||||
|
Location: 14,30
|
||||||
|
Owner: Nod
|
||||||
|
nodsilo1: silo
|
||||||
|
Location: 5,31
|
||||||
|
Owner: Nod
|
||||||
|
nodsilo2: silo
|
||||||
|
Location: 10,31
|
||||||
|
Owner: Nod
|
||||||
|
nodsilo3: silo
|
||||||
|
Location: 3,31
|
||||||
|
Owner: Nod
|
||||||
|
nodrefinery: proc
|
||||||
|
Location: 12,25
|
||||||
|
Owner: Nod
|
||||||
|
FreeActor: False
|
||||||
|
nodairfield: afld
|
||||||
|
Location: 3,27
|
||||||
|
Owner: Nod
|
||||||
|
handofnod: hand
|
||||||
|
Location: 15,25
|
||||||
|
Owner: Nod
|
||||||
|
nodsilo4: silo
|
||||||
|
Location: 17,24
|
||||||
|
Owner: Nod
|
||||||
|
nodpower5: nuke
|
||||||
|
Location: 12,30
|
||||||
|
Owner: Nod
|
||||||
|
gun7: gun
|
||||||
|
Location: 22,25
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 191
|
||||||
|
gun8: gun
|
||||||
|
Location: 22,31
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 191
|
||||||
|
Actor167: harv
|
||||||
|
Location: 20,28
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 191
|
||||||
|
Actor168: ltnk
|
||||||
|
Location: 19,26
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 127
|
||||||
|
Actor169: ltnk
|
||||||
|
Location: 18,26
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 127
|
||||||
|
Actor170: ltnk
|
||||||
|
Location: 8,28
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 127
|
||||||
|
Actor171: bggy
|
||||||
|
Location: 18,31
|
||||||
|
Owner: Nod
|
||||||
|
Actor172: bggy
|
||||||
|
Location: 19,31
|
||||||
|
Owner: Nod
|
||||||
|
Actor173: bggy
|
||||||
|
Location: 40,14
|
||||||
|
Owner: Nod
|
||||||
|
Actor174: arty
|
||||||
|
Location: 8,15
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 31
|
||||||
|
Actor175: mcv
|
||||||
|
Location: 54,4
|
||||||
|
Owner: GDI
|
||||||
|
Facing: 127
|
||||||
|
Actor176: e3
|
||||||
|
Location: 19,25
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 1
|
||||||
|
Actor177: e3
|
||||||
|
Location: 17,26
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 3
|
||||||
|
Actor178: e3
|
||||||
|
Location: 8,25
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 1
|
||||||
|
Actor179: e3
|
||||||
|
Location: 10,29
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 0
|
||||||
|
Actor180: e1
|
||||||
|
Location: 5,30
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 0
|
||||||
|
Actor181: e1
|
||||||
|
Location: 8,26
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 4
|
||||||
|
Actor182: e4
|
||||||
|
Location: 7,14
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 31
|
||||||
|
SubCell: 3
|
||||||
|
Actor183: e4
|
||||||
|
Location: 7,14
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 31
|
||||||
|
SubCell: 2
|
||||||
|
Actor184: e4
|
||||||
|
Location: 25,6
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 191
|
||||||
|
SubCell: 1
|
||||||
|
Actor185: e4
|
||||||
|
Location: 25,4
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 191
|
||||||
|
SubCell: 3
|
||||||
|
Actor186: e3
|
||||||
|
Location: 33,9
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 0
|
||||||
|
Actor187: e3
|
||||||
|
Location: 31,6
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 3
|
||||||
|
Actor188: e3
|
||||||
|
Location: 17,27
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 2
|
||||||
|
Actor189: e3
|
||||||
|
Location: 17,26
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 2
|
||||||
|
Actor190: e3
|
||||||
|
Location: 17,27
|
||||||
|
Owner: Nod
|
||||||
|
SubCell: 0
|
||||||
|
Actor191: e2
|
||||||
|
Location: 53,6
|
||||||
|
Owner: GDI
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 4
|
||||||
|
Actor192: e2
|
||||||
|
Location: 54,6
|
||||||
|
Owner: GDI
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 3
|
||||||
|
Actor193: e2
|
||||||
|
Location: 53,7
|
||||||
|
Owner: GDI
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 2
|
||||||
|
Actor194: e3
|
||||||
|
Location: 54,6
|
||||||
|
Owner: GDI
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 4
|
||||||
|
Actor195: e3
|
||||||
|
Location: 55,6
|
||||||
|
Owner: GDI
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 3
|
||||||
|
Actor196: e3
|
||||||
|
Location: 55,7
|
||||||
|
Owner: GDI
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 1
|
||||||
|
Actor197: e3
|
||||||
|
Location: 54,7
|
||||||
|
Owner: GDI
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 2
|
||||||
|
Actor198: e2
|
||||||
|
Location: 54,7
|
||||||
|
Owner: GDI
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 1
|
||||||
|
Actor199: e3
|
||||||
|
Location: 25,34
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 4
|
||||||
|
Actor200: e3
|
||||||
|
Location: 25,34
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 3
|
||||||
|
Actor201: e3
|
||||||
|
Location: 24,34
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 4
|
||||||
|
Actor202: e3
|
||||||
|
Location: 25,34
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 1
|
||||||
|
Actor203: e3
|
||||||
|
Location: 24,34
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 2
|
||||||
|
Actor204: e3
|
||||||
|
Location: 25,34
|
||||||
|
Owner: Nod
|
||||||
|
Facing: 127
|
||||||
|
SubCell: 2
|
||||||
|
GDIHeliEntryNorth: waypoint
|
||||||
|
Location: 57,6
|
||||||
|
Owner: Neutral
|
||||||
|
DefaultCameraPosition: waypoint
|
||||||
|
Location: 48,3
|
||||||
|
Owner: Neutral
|
||||||
|
DefaultFlareLocation: waypoint
|
||||||
|
Location: 33,31
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint23: waypoint
|
||||||
|
Location: 53,37
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint19: waypoint
|
||||||
|
Location: 52,42
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint18: waypoint
|
||||||
|
Location: 52,19
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint17: waypoint
|
||||||
|
Location: 9,30
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint11: waypoint
|
||||||
|
Location: 23,24
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint10: waypoint
|
||||||
|
Location: 23,32
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint9: waypoint
|
||||||
|
Location: 43,5
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint8: waypoint
|
||||||
|
Location: 60,18
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint7: waypoint
|
||||||
|
Location: 52,6
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint6: waypoint
|
||||||
|
Location: 9,16
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint5: waypoint
|
||||||
|
Location: 4,10
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint4: waypoint
|
||||||
|
Location: 12,5
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint3: waypoint
|
||||||
|
Location: 28,5
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint2: waypoint
|
||||||
|
Location: 30,20
|
||||||
|
Owner: Neutral
|
||||||
|
waypoint1: waypoint
|
||||||
|
Location: 23,28
|
||||||
|
Owner: Neutral
|
||||||
|
GDIHeliLZ: waypoint
|
||||||
|
Location: 41,44
|
||||||
|
Owner: Neutral
|
||||||
|
|
||||||
|
Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml
|
||||||
|
|
||||||
|
Weapons: weapons.yaml
|
||||||
146
mods/cnc/maps/gdi09/rules.yaml
Normal file
146
mods/cnc/maps/gdi09/rules.yaml
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
World:
|
||||||
|
LuaScript:
|
||||||
|
Scripts: campaign-global.lua, gdi09.lua, gdi09-AI.lua
|
||||||
|
MusicPlaylist:
|
||||||
|
StartingMusic: march
|
||||||
|
VictoryMusic: gdi_win1
|
||||||
|
MissionData:
|
||||||
|
Briefing: Take out Nod turrets along shore so Gunboats can move in safely on the Nod base.\n\nThe Nod base must be destroyed.\n\nIf gunboats can get in, they should be able to destroy the base with no difficulty.\n\nKeep an eye out for the new weapon Nod is rumored to be working on.
|
||||||
|
BriefingVideo: gdi9.vqa
|
||||||
|
WinVideo: gunboat.vqa
|
||||||
|
LossVideo: gameover.vqa
|
||||||
|
|
||||||
|
ATWR:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
NUK2:
|
||||||
|
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
|
||||||
|
|
||||||
|
HTNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
TRAN:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
ORCA:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
RMBO:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MSAM:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MCV:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
BOAT:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
FTNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
STNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
HELI:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
LTNK:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~afld
|
||||||
|
|
||||||
|
ARTY:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~afld
|
||||||
|
|
||||||
|
E4:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: barracks
|
||||||
|
|
||||||
|
E5:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
MLRS:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
SAM:
|
||||||
|
Buildable:
|
||||||
|
Prerequisites: ~disabled
|
||||||
|
|
||||||
|
^Bridge:
|
||||||
|
DamageMultiplier@INVULNERABLE:
|
||||||
|
Modifier: 0
|
||||||
|
|
||||||
|
BRIDGEHUT:
|
||||||
|
-Targetable:
|
||||||
|
|
||||||
|
TRAN.Extraction:
|
||||||
|
Inherits: TRAN
|
||||||
|
RevealsShroud:
|
||||||
|
Range: 0c0
|
||||||
|
RejectsOrders:
|
||||||
|
-Selectable:
|
||||||
|
RenderSprites:
|
||||||
|
Image: tran
|
||||||
|
Interactable:
|
||||||
|
|
||||||
|
TRAN.Insertion:
|
||||||
|
Inherits: TRAN.Extraction
|
||||||
|
Cargo:
|
||||||
|
MaxWeight: 0
|
||||||
|
|
||||||
|
HQ:
|
||||||
|
Tooltip:
|
||||||
|
-AirstrikePower:
|
||||||
|
Buildable:
|
||||||
|
Description: Provides an overview of the battlefield.\n Requires power to operate.
|
||||||
|
|
||||||
|
airstrike.proxy:
|
||||||
|
AirstrikePower:
|
||||||
|
SquadSize: 2
|
||||||
|
SquadOffset: -1536, 1024, 0
|
||||||
|
|
||||||
|
BOAT:
|
||||||
|
AutoTarget:
|
||||||
|
InitialStance: AttackAnything
|
||||||
|
RejectsOrders:
|
||||||
|
Except: Attack
|
||||||
13
mods/cnc/maps/gdi09/weapons.yaml
Normal file
13
mods/cnc/maps/gdi09/weapons.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
BoatMissile:
|
||||||
|
Warhead@Bonus: SpreadDamage
|
||||||
|
Spread: 128
|
||||||
|
Damage: 2000
|
||||||
|
Versus:
|
||||||
|
None: 50
|
||||||
|
Wood: 100
|
||||||
|
Light: 100
|
||||||
|
Heavy: 100
|
||||||
|
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
|
||||||
|
|
||||||
|
TurretGun:
|
||||||
|
ReloadDelay: 40
|
||||||
@@ -10,6 +10,7 @@ GDI Campaign:
|
|||||||
gdi06
|
gdi06
|
||||||
gdi07
|
gdi07
|
||||||
gdi08a
|
gdi08a
|
||||||
|
gdi09
|
||||||
|
|
||||||
Nod Campaign:
|
Nod Campaign:
|
||||||
nod01
|
nod01
|
||||||
|
|||||||
Reference in New Issue
Block a user