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
|
||||
gdi07
|
||||
gdi08a
|
||||
gdi09
|
||||
|
||||
Nod Campaign:
|
||||
nod01
|
||||
|
||||
Reference in New Issue
Block a user