MetalStormGhost b6f0ec4da0 Copied init.lua into init_header.lua, init_body.lua and init_footer.lua
The init.lua script will be generated by
 1. injecting the header, then
 2. generating the ZoneCommand zones, then
 3. generating ConnectionManager connections, then
 4. injecting init_body.lua, then
 5. generating sypply injection and finally by
 6. injecting init_footer.lua
2024-02-25 12:39:29 +02:00

4670 lines
166 KiB
Lua

local savefile = 'pretense_1.1.json'
if lfs then
local dir = lfs.writedir()..'Missions/Saves/'
lfs.mkdir(dir)
savefile = dir..savefile
env.info('Pretense - Save file path: '..savefile)
end
do
TemplateDB.templates["infantry-red"] = {
units = {
"BTR_D",
"T-90",
"T-90",
"Infantry AK ver2",
"Infantry AK",
"Infantry AK",
"Paratrooper RPG-16",
"Infantry AK ver3",
"SA-18 Igla manpad"
},
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["infantry-blue"] = {
units = {
"M1045 HMMWV TOW",
"Soldier stinger",
"Soldier M4 GRG",
"Soldier M4 GRG",
"Soldier M4 GRG",
"Soldier M4 GRG",
"Soldier M4 GRG",
"M1043 HMMWV Armament"
},
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["defense-red"] = {
units = {
"Infantry AK ver2",
"Infantry AK",
"Infantry AK ver3",
"Paratrooper RPG-16",
"SA-18 Igla manpad"
},
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["defense-blue"] = {
units = {
"Soldier M4 GRG",
"Soldier M4 GRG",
"Soldier M4 GRG",
"Soldier RPG",
"Soldier stinger",
},
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["shorad-red"] = {
units = {
"Strela-10M3",
"Strela-10M3",
"Ural-4320T",
"2S6 Tunguska"
},
maxDist = 300,
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["shorad-blue"] = {
units = {
"Roland ADS",
"M48 Chaparral",
"M 818",
"Gepard",
"Gepard"
},
maxDist = 300,
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["sam-red"] = {
units = {
"p-19 s-125 sr",
"Ural-4320T",
"Ural-4320T",
"S_75M_Volhov",
"S_75M_Volhov",
"S_75M_Volhov",
"S_75M_Volhov",
"S_75M_Volhov",
"Tor 9A331",
"SNR_75V"
},
maxDist = 300,
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["sam-blue"] = {
units = {
"Hawk pcp",
"Hawk cwar",
"Hawk ln",
"Hawk ln",
"Hawk ln",
"Hawk ln",
"Hawk ln",
"Hawk tr",
"M 818",
"Hawk sr"
},
maxDist = 300,
skill = "Good",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["patriot"] = {
units = {
"Patriot cp",
"Patriot str",
"M 818",
"M 818",
"Patriot ln",
"Patriot ln",
"Patriot ln",
"Patriot ln",
"Patriot str",
"Patriot str",
"Patriot str",
"Patriot EPP",
"Patriot ECS",
"Patriot AMG"
},
maxDist = 300,
skill = "Good",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["sa3"] = {
units = {
"p-19 s-125 sr",
"snr s-125 tr",
"5p73 s-125 ln",
"5p73 s-125 ln",
"Ural-4320T",
"5p73 s-125 ln",
"5p73 s-125 ln"
},
maxDist = 300,
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["sa6"] = {
units = {
"Kub 1S91 str",
"Kub 2P25 ln",
"Kub 2P25 ln",
"Kub 2P25 ln",
"Kub 2P25 ln",
"2S6 Tunguska",
"Ural-4320T",
"2S6 Tunguska",
"Kub 2P25 ln"
},
maxDist = 300,
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["sa10"] = {
units = {
"S-300PS 54K6 cp",
"S-300PS 5P85C ln",
"S-300PS 5P85C ln",
"S-300PS 5P85C ln",
"GAZ-66",
"GAZ-66",
"GAZ-66",
"S-300PS 5P85C ln",
"S-300PS 5P85C ln",
"S-300PS 5P85C ln",
"S-300PS 40B6MD sr",
"S-300PS 40B6M tr",
"S-300PS 64H6E sr"
},
maxDist = 300,
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["sa5"] = {
units = {
"RLS_19J6",
"Ural-4320T",
"Ural-4320T",
"RPC_5N62V",
"S-200_Launcher",
"S-200_Launcher",
"S-200_Launcher",
"S-200_Launcher",
"S-200_Launcher",
"S-200_Launcher"
},
maxDist = 300,
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["sa11"] = {
units = {
"SA-11 Buk SR 9S18M1",
"SA-11 Buk LN 9A310M1",
"SA-11 Buk LN 9A310M1",
"SA-11 Buk LN 9A310M1",
"SA-11 Buk LN 9A310M1",
"SA-11 Buk LN 9A310M1",
"2S6 Tunguska",
"SA-11 Buk SR 9S18M1",
"GAZ-66",
"GAZ-66",
"SA-11 Buk CC 9S470M1"
},
maxDist = 300,
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
TemplateDB.templates["nasams"] = {
units = {
"NASAMS_Command_Post",
"NASAMS_Radar_MPQ64F1",
"Vulcan",
"M 818",
"M 818",
"Roland ADS",
"Roland ADS",
"NASAMS_LN_C",
"NASAMS_LN_C",
"NASAMS_LN_C",
"NASAMS_LN_C",
"NASAMS_Radar_MPQ64F1",
"NASAMS_Radar_MPQ64F1",
"NASAMS_Radar_MPQ64F1"
},
maxDist = 300,
skill = "Excellent",
dataCategory= TemplateDB.type.group
}
end
presets = {
upgrades = {
basic = {
tent = Preset:new({
display = 'Tent',
cost = 1500,
type = 'upgrade',
template = "tent"
}),
comPost = Preset:new({
display = 'Barracks',
cost = 1500,
type = 'upgrade',
template = "barracks"
}),
outpost = Preset:new({
display = 'Outpost',
cost = 1500,
type = 'upgrade',
template = "outpost"
})
},
attack = {
ammoCache = Preset:new({
display = 'Ammo Cache',
cost = 1500,
type = 'upgrade',
template = "ammo-cache"
}),
ammoDepot = Preset:new({
display = 'Ammo Depot',
cost = 2000,
type = 'upgrade',
template = "ammo-depot"
})
},
supply = {
fuelCache = Preset:new({
display = 'Fuel Cache',
cost = 1500,
type = 'upgrade',
template = "fuel-cache"
}),
fuelTank = Preset:new({
display = 'Fuel Tank',
cost = 1500,
type = 'upgrade',
template = "fuel-tank-big"
}),
fuelTankFarp = Preset:new({
display = 'Fuel Tank',
cost = 1500,
type = 'upgrade',
template = "fuel-tank-small"
}),
factory1 = Preset:new({
display='Factory',
cost = 2000,
type ='upgrade',
income = 20,
template = "factory-1"
}),
factory2 = Preset:new({
display='Factory',
cost = 2000,
type ='upgrade',
income = 20,
template = "factory-2"
}),
factoryTank = Preset:new({
display='Storage Tank',
cost = 1500,
type ='upgrade',
income = 10,
template = "chem-tank"
}),
ammoDepot = Preset:new({
display = 'Ammo Depot',
cost = 2000,
type = 'upgrade',
income = 40,
template = "ammo-depot"
}),
oilPump = Preset:new({
display = 'Oil Pump',
cost = 1500,
type = 'upgrade',
income = 20,
template = "oil-pump"
}),
hangar = Preset:new({
display = 'Hangar',
cost = 2000,
type = 'upgrade',
income = 30,
template = "hangar"
}),
excavator = Preset:new({
display = 'Excavator',
cost = 2000,
type = 'upgrade',
income = 20,
template = "excavator"
}),
farm1 = Preset:new({
display = 'Farm House',
cost = 2000,
type = 'upgrade',
income = 40,
template = "farm-house-1"
}),
farm2 = Preset:new({
display = 'Farm House',
cost = 2000,
type = 'upgrade',
income = 40,
template = "farm-house-2"
}),
refinery1 = Preset:new({
display='Refinery',
cost = 2000,
type ='upgrade',
income = 100,
template = "factory-1"
}),
powerplant1 = Preset:new({
display='Power Plant',
cost = 1500,
type ='upgrade',
income = 25,
template = "factory-1"
}),
powerplant2 = Preset:new({
display='Power Plant',
cost = 1500,
type ='upgrade',
income = 25,
template = "factory-2"
}),
antenna = Preset:new({
display='Antenna',
cost = 1000,
type ='upgrade',
income = 10,
template = "antenna"
}),
hq = Preset:new({
display='HQ Building',
cost = 2000,
type ='upgrade',
income = 50,
template = "tv-tower"
})
},
airdef = {
comCenter = Preset:new({
display = 'Command Center',
cost = 2500,
type = 'upgrade',
template = "command-center"
})
}
},
defenses = {
red = {
infantry = Preset:new({
display = 'Infantry',
cost=2000,
type='defense',
template='infantry-red',
}),
shorad = Preset:new({
display = 'SAM',
cost=2500,
type='defense',
template='shorad-red',
}),
sam = Preset:new({
display = 'SAM',
cost=3000,
type='defense',
template='sam-red',
}),
sa10 = Preset:new({
display = 'SAM',
cost=3000,
type='defense',
template='sa10',
}),
sa5 = Preset:new({
display = 'SAM',
cost=3000,
type='defense',
template='sa5',
}),
sa3 = Preset:new({
display = 'SAM',
cost=3000,
type='defense',
template='sa3',
}),
sa6 = Preset:new({
display = 'SAM',
cost=3000,
type='defense',
template='sa6',
}),
sa11 = Preset:new({
display = 'SAM',
cost=3000,
type='defense',
template='sa11',
})
},
blue = {
infantry = Preset:new({
display = 'Infantry',
cost=2000,
type='defense',
template='infantry-blue',
}),
shorad = Preset:new({
display = 'SAM',
cost=2500,
type='defense',
template='shorad-blue',
}),
sam = Preset:new({
display = 'SAM',
cost=3000,
type='defense',
template='sam-blue',
}),
patriot = Preset:new({
display = 'SAM',
cost=3000,
type='defense',
template='patriot',
}),
nasams = Preset:new({
display = 'SAM',
cost=3000,
type='defense',
template='nasams',
})
}
},
missions = {
supply = {
convoy = Preset:new({
display = 'Supply convoy',
cost = 4000,
type = 'mission',
missionType = ZoneCommand.missionTypes.supply_convoy
}),
convoy_escorted = Preset:new({
display = 'Supply convoy',
cost = 3000,
type = 'mission',
missionType = ZoneCommand.missionTypes.supply_convoy
}),
helo = Preset:new({
display = 'Supply helicopter',
cost = 2500,
type='mission',
missionType = ZoneCommand.missionTypes.supply_air
}),
transfer = Preset:new({
display = 'Supply transfer',
cost = 1000,
type='mission',
missionType = ZoneCommand.missionTypes.supply_transfer
})
},
attack = {
surface = Preset:new({
display = 'Ground assault',
cost = 100,
type = 'mission',
missionType = ZoneCommand.missionTypes.assault,
}),
cas = Preset:new({
display = 'CAS',
cost = 200,
type='mission',
missionType = ZoneCommand.missionTypes.cas
}),
bai = Preset:new({
display = 'BAI',
cost = 200,
type='mission',
missionType = ZoneCommand.missionTypes.bai
}),
strike = Preset:new({
display = 'Strike',
cost = 300,
type='mission',
missionType = ZoneCommand.missionTypes.strike
}),
sead = Preset:new({
display = 'SEAD',
cost = 200,
type='mission',
missionType = ZoneCommand.missionTypes.sead
}),
helo = Preset:new({
display = 'CAS',
cost = 100,
type='mission',
missionType = ZoneCommand.missionTypes.cas_helo
})
},
patrol={
aircraft = Preset:new({
display= "Patrol",
cost = 100,
type='mission',
missionType = ZoneCommand.missionTypes.patrol
})
},
support ={
awacs = Preset:new({
display= "AWACS",
cost = 300,
type='mission',
bias='5',
missionType = ZoneCommand.missionTypes.awacs
}),
tanker = Preset:new({
display= "Tanker",
cost = 200,
type='mission',
bias='2',
missionType = ZoneCommand.missionTypes.tanker
})
}
},
special = {
red = {
infantry = Preset:new({
display = 'Infantry',
cost=-1,
type='defense',
template='defense-red',
}),
},
blue = {
infantry = Preset:new({
display = 'Infantry',
cost=-1,
type='defense',
template='defense-blue',
})
}
}
}
zones = {}
do
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Batumi.lua ]]-----------------
zones.batumi = ZoneCommand:new('Batumi')
zones.batumi.initialState = { side=2 }
zones.batumi.keepActive = true
zones.batumi.isHeloSpawn = true
zones.batumi.isPlaneSpawn = true
zones.batumi.maxResource = 50000
zones.batumi:defineUpgrades({
[1] = { --red side
presets.upgrades.basic.comPost:extend({
name = 'batumi-com-red',
products = {
presets.special.red.infantry:extend({ name='batumi-defense-red'}),
presets.defenses.red.infantry:extend({ name='batumi-garrison-red' })
}
}),
},
[2] = --blue side
{
presets.upgrades.basic.comPost:extend({
name = 'batumi-com-blue',
products = {
presets.special.blue.infantry:extend({ name='batumi-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='batumi-garrison-blue' })
}
}),
presets.upgrades.supply.fuelTank:extend({
name = 'batumi-fueltank-blue',
products = {
presets.missions.supply.convoy_escorted:extend({ name='batumi-supply-convoy-1'}),
presets.missions.supply.helo:extend({ name='batumi-supply-blue-1' }),
presets.missions.supply.transfer:extend({name='batumi-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name = 'batumi-mission-command-blue',
products = {
presets.defenses.blue.shorad:extend({ name='batumi-sam-blue' }),
presets.missions.attack.sead:extend({name='batumi-sead-blue-1', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='batumi-cas-blue-1', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='batumi-cas-blue-1', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='batumi-strike-blue-1', altitude=20000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='batumi-patrol-blue-1', altitude=25000, range=25}),
presets.missions.support.awacs:extend({name='batumi-awacs-blue', altitude=30000, freq=257.5}),
presets.missions.support.tanker:extend({name='batumi-tanker-blue', altitude=25000, freq=257, tacan='37', variant="Drogue"})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Batumi.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Mike.lua ]]-----------------
zones.mike = ZoneCommand:new("Mike")
zones.mike.initialState = { side=1 }
zones.mike.keepActive = true
zones.mike:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='mike-tent-red',
products = {
presets.special.red.infantry:extend({ name='mike-defense-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='mike-comcenter-red',
products = {
presets.defenses.red.sam:extend({ name='mike-sam-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='mike-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='mike-defense-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='mike-comcenter-blue',
products = {
presets.defenses.blue.sam:extend({ name='mike-sam-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Mike.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Tyrnyauz.lua ]]-----------------
zones.tyrnyauz = ZoneCommand:new("Tyrnyauz")
zones.tyrnyauz.initialState = { side=1 }
zones.tyrnyauz.isHeloSpawn = true
zones.tyrnyauz:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='tyrnyauz-tent-red',
products = {
presets.special.red.infantry:extend({ name='tyrnyauz-defense-red'}),
presets.defenses.red.infantry:extend({ name='tyrnyauz-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='tyrnyauz-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='tyrnyauz-supply-red'}),
presets.missions.supply.helo:extend({name='tyrnyauz-supply-red-2'}),
presets.missions.supply.transfer:extend({name='tyrnyauz-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='tyrnyauz-ammo-red',
products = {
presets.missions.attack.surface:extend({name='tyrnyauz-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='tyrnyauz-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='tyrnyauz-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='tyrnyauz-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='tyrnyauz-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='tyrnyauz-supply-blue'}),
presets.missions.supply.helo:extend({name='tyrnyauz-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='tyrnyauz-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='tyrnyauz-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='tyrnyauz-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Tyrnyauz.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/India.lua ]]-----------------
zones.india = ZoneCommand:new("India")
zones.india.initialState = nil
zones.india:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='india-tent-red',
products = {
presets.special.red.infantry:extend({ name='india-defense-red'}),
presets.defenses.red.infantry:extend({ name='india-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='india-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='india-supply-red'}),
presets.missions.supply.transfer:extend({name='india-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='india-ammo-red',
products = {
presets.missions.attack.surface:extend({name='india-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='india-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='india-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='india-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='india-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='india-supply-blue'}),
presets.missions.supply.transfer:extend({name='india-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='india-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='india-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/India.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/IntelCenter.lua ]]-----------------
zones.intelcenter = ZoneCommand:new("Intel Center")
zones.intelcenter.initialState = { side=1 }
zones.intelcenter:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='intelcenter-tent-red',
products = {
presets.special.red.infantry:extend({ name='intelcenter-defense-red'}),
presets.defenses.red.infantry:extend({ name='intelcenter-garrison-red'})
}
}),
presets.upgrades.supply.hq:extend({
name='intelcenter-hq-red',
products = {
presets.missions.supply.convoy:extend({ name='intelcenter-supply-red'}),
presets.missions.supply.convoy:extend({ name='intelcenter-supply-red-1'}),
presets.missions.supply.transfer:extend({name='intelcenter-transfer-red'})
}
}),
presets.upgrades.supply.antenna:extend({
name='intelcenter-antenna-red',
products = {
}
}),
presets.upgrades.supply.antenna:extend({
name='intelcenter-antenna-red-1',
products = {
}
}),
presets.upgrades.supply.antenna:extend({
name='intelcenter-antenna-red-2',
products = {
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='intelcenter-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='intelcenter-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='intelcenter-garrison-blue'})
}
}),
presets.upgrades.supply.hq:extend({
name='intelcenter-hq-blue',
products = {
presets.missions.supply.convoy:extend({ name='intelcenter-supply-blue'}),
presets.missions.supply.convoy:extend({ name='intelcenter-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='intelcenter-transfer-blue'})
}
}),
presets.upgrades.supply.antenna:extend({
name='intelcenter-antenna-blue',
products = {
}
}),
presets.upgrades.supply.antenna:extend({
name='intelcenter-antenna-blue-1',
products = {
}
}),
presets.upgrades.supply.antenna:extend({
name='intelcenter-antenna-blue-2',
products = {
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/IntelCenter.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Mineralnye.lua ]]-----------------
zones.mineralnye = ZoneCommand:new("Mineralnye")
zones.mineralnye.initialState = { side=1 }
zones.mineralnye.keepActive = true
zones.mineralnye.isHeloSpawn = true
zones.mineralnye.isPlaneSpawn = true
zones.mineralnye:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='mineralnye-compost-red',
products = {
presets.special.red.infantry:extend({ name='mineralnye-defense-red'}),
presets.defenses.red.infantry:extend({ name='mineralnye-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='mineralnye-fuel-red',
products = {
presets.missions.supply.helo:extend({name='mineralnye-supply-red'}),
presets.missions.supply.helo:extend({name='mineralnye-supply-red-1'}),
presets.missions.supply.transfer:extend({name='mineralnye-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='mineralnye-comcenter-red',
products = {
presets.defenses.red.sa11:extend({ name='mineralnye-airdef-red'}),
presets.missions.attack.cas:extend({name='mineralnye-cas-red', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='mineralnye-cas-red', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='mineralnye-strike-red', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.strike:extend({name='mineralnye-strike-red-1', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='mineralnye-patrol-red', altitude=25000, range=25})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='mineralnye-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='mineralnye-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='mineralnye-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='mineralnye-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='mineralnye-supply-blue'}),
presets.missions.supply.helo:extend({name='mineralnye-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='mineralnye-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='mineralnye-comcenter-blue',
products = {
presets.defenses.blue.nasams:extend({ name='mineralnye-airdef-blue'}),
presets.missions.attack.cas:extend({name='mineralnye-cas-blue', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='mineralnye-cas-blue', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='mineralnye-strike-blue', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.strike:extend({name='mineralnye-strike-blue-1', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='mineralnye-patrol-blue', altitude=25000, range=25})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Mineralnye.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/PowerPlant.lua ]]-----------------
zones.powerplant = ZoneCommand:new("Power Plant")
zones.powerplant.initialState = { side=1 }
zones.powerplant:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='powerplant-tent-red',
products = {
presets.special.red.infantry:extend({ name='powerplant-defense-red'}),
presets.defenses.red.infantry:extend({ name='powerplant-garrison-red'})
}
}),
presets.upgrades.supply.powerplant1:extend({
name='powerplant-building-red-1',
products = {
presets.missions.supply.convoy:extend({ name='powerplant-supply-red'}),
presets.missions.supply.transfer:extend({name='powerplant-transfer-red'})
}
}),
presets.upgrades.supply.powerplant2:extend({
name='powerplant-building-red-2',
products = {
presets.missions.supply.convoy:extend({ name='powerplant-supply-red-1'}),
presets.missions.supply.transfer:extend({name='powerplant-transfer-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='powerplant-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='powerplant-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='powerplant-garrison-blue'})
}
}),
presets.upgrades.supply.powerplant1:extend({
name='powerplant-building-blue-1',
products = {
presets.missions.supply.convoy:extend({ name='powerplant-supply-blue'}),
presets.missions.supply.transfer:extend({name='powerplant-transfer-blue'})
}
}),
presets.upgrades.supply.powerplant2:extend({
name='powerplant-building-blue-2',
products = {
presets.missions.supply.convoy:extend({ name='powerplant-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='powerplant-transfer-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/PowerPlant.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Zugdidi.lua ]]-----------------
zones.zugdidi = ZoneCommand:new("Zugdidi")
zones.zugdidi.initialState = { side=1 }
zones.zugdidi:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='zugdidi-compost-red',
products = {
presets.missions.supply.transfer:extend({name='zugdidi-transfer-red'}),
presets.special.red.infantry:extend({ name='zugdidi-defense-red'}),
presets.defenses.red.infantry:extend({ name='zugdidi-garrison-red'}),
presets.missions.attack.surface:extend({name='zugdidi-attack-red'}),
presets.missions.supply.convoy:extend({name='zugdidi-supply-red'})
}
}),
presets.upgrades.supply.hangar:extend({
name='zugdidi-hangar-red-1',
products = {
presets.missions.supply.helo:extend({name='zugdidi-supply-red-1'})
}
}),
presets.upgrades.supply.hangar:extend({
name='zugdidi-hangar-red-2',
products = {
presets.missions.supply.helo:extend({name='zugdidi-supply-red-2'})
}
}),
presets.upgrades.supply.hangar:extend({
name='zugdidi-hangar-red-3',
products = {
presets.missions.supply.helo:extend({name='zugdidi-supply-red-3'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='zugdidi-comcenter-red',
products = {
presets.defenses.red.sa6:extend({ name='zugdidi-sam-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='zugdidi-compost-blue',
products = {
presets.missions.supply.transfer:extend({name='zugdidi-transfer-blue'}),
presets.special.blue.infantry:extend({ name='zugdidi-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='zugdidi-garrison-blue'}),
presets.missions.attack.surface:extend({name='zugdidi-attack-blue'}),
presets.missions.supply.convoy:extend({name='zugdidi-supply-blue'})
}
}),
presets.upgrades.supply.hangar:extend({
name='zugdidi-hangar-blue-1',
products = {
presets.missions.supply.helo:extend({name='zugdidi-supply-blue-1'})
}
}),
presets.upgrades.supply.hangar:extend({
name='zugdidi-hangar-blue-2',
products = {
presets.missions.supply.helo:extend({name='zugdidi-supply-blue-2'})
}
}),
presets.upgrades.supply.hangar:extend({
name='zugdidi-hangar-blue-3',
products = {
presets.missions.supply.helo:extend({name='zugdidi-supply-blue-3'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='zugdidi-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({ name='zugdidi-sam-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Zugdidi.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Babugent.lua ]]-----------------
zones.babugent = ZoneCommand:new("Babugent")
zones.babugent.initialState = { side=1 }
zones.babugent:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='babugent-tent-red',
products = {
presets.special.red.infantry:extend({ name='babugent-defense-red'}),
presets.defenses.red.infantry:extend({ name='babugent-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='babugent-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='babugent-supply-red'}),
presets.missions.supply.helo:extend({name='babugent-supply-red-2'}),
presets.missions.supply.transfer:extend({name='babugent-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='babugent-ammo-red',
products = {
presets.missions.attack.surface:extend({name='babugent-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='babugent-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='babugent-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='babugent-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='babugent-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='babugent-supply-blue'}),
presets.missions.supply.helo:extend({name='babugent-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='babugent-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='babugent-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='babugent-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Babugent.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Kislovodsk.lua ]]-----------------
zones.kislovodsk = ZoneCommand:new("Kislovodsk")
zones.kislovodsk.initialState = { side=1 }
zones.kislovodsk:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='kislovodsk-tent-red',
products = {
presets.special.red.infantry:extend({ name='kislovodsk-defense-red'}),
presets.defenses.red.infantry:extend({ name='kislovodsk-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='kislovodsk-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='kislovodsk-supply-red'}),
presets.missions.supply.transfer:extend({name='kislovodsk-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='kislovodsk-ammo-red',
products = {
presets.missions.attack.surface:extend({name='kislovodsk-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='kislovodsk-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='kislovodsk-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='kislovodsk-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='kislovodsk-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='kislovodsk-supply-blue'}),
presets.missions.supply.transfer:extend({name='kislovodsk-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='kislovodsk-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='kislovodsk-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Kislovodsk.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Gudauta.lua ]]-----------------
zones.gudauta = ZoneCommand:new("Gudauta")
zones.gudauta.initialState = { side=1 }
zones.gudauta.keepActive = true
zones.gudauta.maxResource = 50000
zones.gudauta:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='gudauta-compost-red',
products = {
presets.special.red.infantry:extend({ name='gudauta-defense-red'}),
presets.defenses.red.infantry:extend({ name='gudauta-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='gudauta-fuel-red',
products = {
presets.missions.supply.helo:extend({name='gudauta-supply-red'}),
presets.missions.supply.helo:extend({name='gudauta-supply-red-1'}),
presets.missions.supply.transfer:extend({name='gudauta-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='gudauta-comcenter-red',
products = {
presets.defenses.red.sam:extend({ name='gudauta-airdef-red'}),
presets.missions.attack.sead:extend({name='gudauta-sead-red', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.sead:extend({name='gudauta-sead-red-1', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='gudauta-cas-red', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='gudauta-cas-red', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.patrol.aircraft:extend({name='gudauta-patrol-red', altitude=25000, range=25})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='gudauta-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='gudauta-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='gudauta-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='gudauta-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='gudauta-supply-blue'}),
presets.missions.supply.helo:extend({name='gudauta-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='gudauta-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='gudauta-comcenter-blue',
products = {
presets.defenses.blue.sam:extend({ name='gudauta-airdef-blue'}),
presets.missions.attack.sead:extend({name='gudauta-sead-blue', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.sead:extend({name='gudauta-sead-blue-1', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='gudauta-cas-blue', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='gudauta-cas-blue', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.patrol.aircraft:extend({name='gudauta-patrol-blue', altitude=25000, range=25})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Gudauta.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Distillery.lua ]]-----------------
zones.distillery = ZoneCommand:new("Distillery")
zones.distillery.initialState = { side=1 }
zones.distillery:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='distillery-tent-red',
products = {
presets.special.red.infantry:extend({ name='distillery-defense-red'}),
presets.defenses.red.infantry:extend({ name='distillery-garrison-red'})
}
}),
presets.upgrades.supply.factory1:extend({
name='distillery-prod-red-1',
products = {
presets.missions.supply.convoy:extend({ name='distillery-supply-red-1'}),
presets.missions.supply.transfer:extend({name='distillery-transfer-red'})
}
}),
presets.upgrades.supply.factory2:extend({
name='distillery-prod-red-2',
products = {
presets.missions.supply.convoy:extend({ name='distillery-supply-red-2', cost=2000}),
presets.missions.supply.transfer:extend({name='distillery-transfer-red2'})
}
}),
presets.upgrades.supply.factoryTank:extend({
name='distillery-tank-red-1',
products = {
}
}),
presets.upgrades.supply.factoryTank:extend({
name='distillery-tank-red-2',
products = {
}
}),
presets.upgrades.supply.factoryTank:extend({
name='distillery-tank-red-3',
products = {
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='distillery-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='distillery-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='distillery-garrison-blue'})
}
}),
presets.upgrades.supply.factory1:extend({
name='distillery-prod-blue-1',
products = {
presets.missions.supply.convoy:extend({ name='distillery-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='distillery-transfer-blue'})
}
}),
presets.upgrades.supply.factory2:extend({
name='distillery-prod-blue-2',
products = {
presets.missions.supply.convoy:extend({ name='distillery-supply-blue-2', cost=2000}),
presets.missions.supply.transfer:extend({name='distillery-transfer-blue2'})
}
}),
presets.upgrades.supply.factoryTank:extend({
name='distillery-tank-blue-1',
products = {
}
}),
presets.upgrades.supply.factoryTank:extend({
name='distillery-tank-blue-2',
products = {
}
}),
presets.upgrades.supply.factoryTank:extend({
name='distillery-tank-blue-3',
products = {
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Distillery.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Sochi.lua ]]-----------------
zones.sochi = ZoneCommand:new("Sochi")
zones.sochi.initialState = { side=1 }
zones.sochi.keepActive = true
zones.sochi.maxResource = 50000
zones.sochi:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='sochi-compost-red',
products = {
presets.special.red.infantry:extend({ name='sochi-defense-red'}),
presets.defenses.red.infantry:extend({ name='sochi-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='sochi-fuel-red',
products = {
presets.missions.supply.helo:extend({name='sochi-supply-red-1'}),
presets.missions.supply.helo:extend({name='sochi-supply-red-2'}),
presets.missions.supply.convoy_escorted:extend({name='sochi-supply-red-3'}),
presets.missions.supply.transfer:extend({name='sochi-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='sochi-comcenter-red',
products = {
presets.defenses.red.sa10:extend({ name='sochi-airdef-red'}),
presets.missions.attack.sead:extend({name='sochi-sead-red', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.strike:extend({name='sochi-strike-red', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='sochi-patrol-red', altitude=25000, range=25}),
presets.missions.patrol.aircraft:extend({name='sochi-patrol-red-1', altitude=25000, range=25}),
presets.missions.attack.cas:extend({name='sochi-cas-red', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='sochi-cas-red', altitude=10000, expend=AI.Task.WeaponExpend.ONE})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='sochi-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='sochi-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='sochi-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='sochi-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='sochi-supply-blue-1'}),
presets.missions.supply.helo:extend({name='sochi-supply-blue-2'}),
presets.missions.supply.convoy_escorted:extend({name='sochi-supply-blue-3'}),
presets.missions.supply.transfer:extend({name='sochi-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='sochi-comcenter-blue',
products = {
presets.defenses.blue.patriot:extend({ name='sochi-airdef-blue'}),
presets.missions.attack.sead:extend({name='sochi-sead-blue', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.strike:extend({name='sochi-strike-blue', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='sochi-patrol-blue', altitude=25000, range=25}),
presets.missions.attack.cas:extend({name='sochi-cas-blue', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='sochi-cas-blue', altitude=10000, expend=AI.Task.WeaponExpend.ONE})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Sochi.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Golf.lua ]]-----------------
zones.golf = ZoneCommand:new("Golf")
zones.golf.initialState = nil
zones.golf.isHeloSpawn = true
zones.golf:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='golf-tent-red',
products = {
presets.special.red.infantry:extend({ name='golf-defense-red'}),
presets.defenses.red.infantry:extend({ name='golf-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='golf-fuel-red',
products = {
presets.missions.supply.helo:extend({name='golf-supply-red'}),
presets.missions.supply.helo:extend({name='golf-supply-red-1'}),
presets.missions.supply.transfer:extend({name='golf-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='golf-comcenter-red',
products = {
presets.defenses.red.shorad:extend({name='golf-sam-red'}),
presets.missions.attack.helo:extend({name='golf-cas-red', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='golf-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='golf-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='golf-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='golf-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='golf-supply-blue'}),
presets.missions.supply.helo:extend({name='golf-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='golf-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='golf-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({name='golf-sam-blue'}),
presets.missions.attack.helo:extend({name='golf-cas-blue', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Golf.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Charlie.lua ]]-----------------
zones.charlie = ZoneCommand:new("Charlie")
zones.charlie.initialState = { side=2 }
zones.charlie.keepActive = true
zones.charlie:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='charlie-tent-red',
products = {
presets.special.red.infantry:extend({ name='charlie-defense-red'}),
presets.defenses.red.infantry:extend({ name='charlie-garrison-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='charlie-comcenter-red',
products = {
presets.defenses.red.sam:extend({ name='charlie-sam-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='charlie-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='charlie-defense-red'}),
}
}),
presets.upgrades.airdef.comCenter:extend({
name='charlie-comcenter-blue',
products = {
presets.defenses.blue.sam:extend({ name='charlie-sam-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Charlie.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Lentehi.lua ]]-----------------
zones.lentehi = ZoneCommand:new("Lentehi")
zones.lentehi.initialState = { side=1 }
zones.lentehi:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='lentehi-tent-red',
products = {
presets.special.red.infantry:extend({ name='lentehi-defense-red'}),
presets.defenses.red.infantry:extend({ name='lentehi-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='lentehi-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='lentehi-supply-red'}),
presets.missions.supply.helo:extend({name='lentehi-supply-red-2'}),
presets.missions.supply.transfer:extend({name='lentehi-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='lentehi-ammo-red',
products = {
presets.missions.attack.surface:extend({name='lentehi-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='lentehi-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='lentehi-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='lentehi-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='lentehi-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='lentehi-supply-blue'}),
presets.missions.supply.helo:extend({name='lentehi-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='lentehi-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='lentehi-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='lentehi-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Lentehi.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Refinery.lua ]]-----------------
zones.refinery = ZoneCommand:new("Refinery")
zones.refinery.initialState = { side=1 }
zones.refinery:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='refinery-tent-red',
products = {
presets.special.red.infantry:extend({ name='refinery-defense-red'}),
presets.defenses.red.infantry:extend({ name='refinery-garrison-red'})
}
}),
presets.upgrades.supply.refinery1:extend({
name='refinery-building-red',
products = {
presets.missions.supply.convoy:extend({ name='refinery-supply-red'}),
presets.missions.supply.convoy:extend({ name='refinery-supply-red-1'}),
presets.missions.supply.helo:extend({ name='refinery-supply-red-2'}),
presets.missions.supply.transfer:extend({name='refinery-transfer-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='refinery-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='refinery-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='refinery-garrison-blue'})
}
}),
presets.upgrades.supply.refinery1:extend({
name='refinery-building-blue',
products = {
presets.missions.supply.convoy:extend({ name='refinery-supply-blue'}),
presets.missions.supply.convoy:extend({ name='refinery-supply-blue-1'}),
presets.missions.supply.helo:extend({ name='refinery-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='refinery-transfer-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Refinery.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Mozdok.lua ]]-----------------
zones.mozdok = ZoneCommand:new("Mozdok")
zones.mozdok.initialState = { side=1 }
zones.mozdok.keepActive = true
zones.mozdok.maxResource = 50000
zones.mozdok:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='mozdok-compost-red',
products = {
presets.special.red.infantry:extend({ name='mozdok-defense-red'}),
presets.defenses.red.infantry:extend({ name='mozdok-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='mozdok-fuel-red',
products = {
presets.missions.supply.helo:extend({name='mozdok-supply-red-1'}),
presets.missions.supply.helo:extend({name='mozdok-supply-red-2'}),
presets.missions.supply.convoy_escorted:extend({name='mozdok-supply-red-3'}),
presets.missions.supply.transfer:extend({name='mozdok-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='mozdok-comcenter-red',
products = {
presets.defenses.red.sa10:extend({ name='mozdok-airdef-red'}),
presets.missions.patrol.aircraft:extend({name='mozdok-patrol-red', altitude=25000, range=25}),
presets.missions.attack.cas:extend({name='mozdok-cas-red', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='mozdok-cas-red', altitude=10000, expend=AI.Task.WeaponExpend.ONE})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='mozdok-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='mozdok-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='mozdok-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='mozdok-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='mozdok-supply-blue-1'}),
presets.missions.supply.helo:extend({name='mozdok-supply-blue-2'}),
presets.missions.supply.convoy_escorted:extend({name='mozdok-supply-blue-3'}),
presets.missions.supply.transfer:extend({name='mozdok-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='mozdok-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({ name='mozdok-airdef-blue'}),
presets.missions.patrol.aircraft:extend({name='mozdok-patrol-blue', altitude=25000, range=25}),
presets.missions.attack.cas:extend({name='mozdok-cas-blue', altitude=15000, cost=50, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.cas:extend({name='mozdok-cas-blue-1', altitude=15000, cost=50, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='mozdok-cas-blue', altitude=15000, cost=50, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='mozdok-cas-blue-1', altitude=15000, cost=50, expend=AI.Task.WeaponExpend.ONE})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Mozdok.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Lima.lua ]]-----------------
zones.lima = ZoneCommand:new("Lima")
zones.lima.initialState = { side=1 }
zones.lima:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='lima-tent-red',
products = {
presets.special.red.infantry:extend({ name='lima-defense-red'}),
presets.defenses.red.infantry:extend({ name='lima-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='lima-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='lima-supply-red'}),
presets.missions.supply.helo:extend({name='lima-supply-red-1'}),
presets.missions.supply.transfer:extend({name='lima-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='lima-ammo-red',
products = {
presets.missions.attack.surface:extend({name='lima-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='lima-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='lima-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='lima-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='lima-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='lima-supply-blue'}),
presets.missions.supply.helo:extend({name='lima-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='lima-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='lima-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='lima-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Lima.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Oscar.lua ]]-----------------
zones.oscar = ZoneCommand:new("Oscar")
zones.oscar.initialState = { side=1 }
zones.oscar:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='oscar-tent-red',
products = {
presets.special.red.infantry:extend({ name='oscar-defense-red'}),
presets.defenses.red.infantry:extend({ name='oscar-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='oscar-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='oscar-supply-red'}),
presets.missions.supply.transfer:extend({name='oscar-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='oscar-ammo-red',
products = {
presets.missions.attack.surface:extend({name='oscar-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='oscar-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='oscar-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='oscar-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='oscar-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='oscar-supply-blue'}),
presets.missions.supply.transfer:extend({name='oscar-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='oscar-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='oscar-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Oscar.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Nalchik.lua ]]-----------------
zones.nalchik = ZoneCommand:new("Nalchik")
zones.nalchik.initialState = { side=1 }
zones.nalchik.keepActive = true
zones.nalchik.isHeloSpawn = true
zones.nalchik.isPlaneSpawn = true
zones.nalchik:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='nalchik-compost-red',
products = {
presets.special.red.infantry:extend({ name='nalchik-defense-red'}),
presets.defenses.red.infantry:extend({ name='nalchik-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='nalchik-fuel-red',
products = {
presets.missions.supply.helo:extend({name='nalchik-supply-red-1'}),
presets.missions.supply.helo:extend({name='nalchik-supply-red-2'}),
presets.missions.supply.transfer:extend({name='nalchik-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='nalchik-comcenter-red',
products = {
presets.defenses.red.sa3:extend({ name='nalchik-airdef-red'}),
presets.missions.attack.sead:extend({name='nalchik-sead-red', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='nalchik-cas-red', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='nalchik-cas-red', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='nalchik-strike-red', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='nalchik-patrol-red', altitude=25000, range=25}),
presets.missions.patrol.aircraft:extend({name='nalchik-patrol-red-2', altitude=25000, range=25}),
presets.missions.support.awacs:extend({name='nalchik-awacs-red', altitude=30000, freq=251.2}),
presets.missions.support.tanker:extend({name='nalchik-tanker-red', altitude=30000, freq=252.2, tacan='40', variant='Drogue'})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='nalchik-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='nalchik-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='nalchik-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='nalchik-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='nalchik-supply-blue-1'}),
presets.missions.supply.helo:extend({name='nalchik-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='nalchik-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='nalchik-comcenter-blue',
products = {
presets.defenses.blue.nasams:extend({ name='nalchik-airdef-blue'}),
presets.missions.support.awacs:extend({name='nalchik-awacs-blue', altitude=30000, freq=259.5}),
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Nalchik.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Digora.lua ]]-----------------
zones.digora = ZoneCommand:new("Digora")
zones.digora.initialState = { side=1 }
zones.digora:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='digora-tent-red',
products = {
presets.special.red.infantry:extend({ name='digora-defense-red'}),
presets.defenses.red.infantry:extend({ name='digora-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='digora-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='digora-supply-red'}),
presets.missions.supply.transfer:extend({name='digora-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='digora-ammo-red',
products = {
presets.missions.attack.surface:extend({name='digora-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='digora-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='digora-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='digora-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='digora-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='digora-supply-blue'}),
presets.missions.supply.transfer:extend({name='digora-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='digora-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='digora-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Digora.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Uniform.lua ]]-----------------
zones.uniform = ZoneCommand:new("Uniform")
zones.uniform.initialState = { side=1 }
zones.uniform:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='uniform-tent-red',
products = {
presets.special.red.infantry:extend({ name='uniform-defense-red'}),
presets.defenses.red.infantry:extend({ name='uniform-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='uniform-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='uniform-supply-red'}),
presets.missions.supply.transfer:extend({name='uniform-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='uniform-ammo-red',
products = {
presets.missions.attack.surface:extend({name='uniform-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='uniform-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='uniform-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='uniform-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='uniform-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='uniform-supply-blue'}),
presets.missions.supply.transfer:extend({name='uniform-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='uniform-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='uniform-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Uniform.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Factory.lua ]]-----------------
zones.factory = ZoneCommand:new("Factory")
zones.factory.initialState = { side=2 }
zones.factory:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='factory-tent-red',
products = {
presets.special.red.infantry:extend({ name='factory-defense-red'}),
presets.defenses.red.infantry:extend({ name='factory-garrison-red'})
}
}),
presets.upgrades.supply.factory1:extend({
name='factory-prod-red-1',
products = {
presets.missions.supply.convoy:extend({ name='factory-supply-red-1'}),
presets.missions.supply.transfer:extend({name='factory-transfer-red'})
}
}),
presets.upgrades.supply.factory2:extend({
name='factory-prod-red-2',
products = {
presets.missions.supply.convoy:extend({ name='factory-supply-red-2', cost=2000}),
presets.missions.supply.transfer:extend({name='factory-transfer-red2'})
}
}),
presets.upgrades.supply.factoryTank:extend({
name='factory-tank-red-1',
products = {
}
}),
presets.upgrades.supply.factoryTank:extend({
name='factory-tank-red-2',
products = {
}
}),
presets.upgrades.supply.factoryTank:extend({
name='factory-tank-red-3',
products = {
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='factory-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='factory-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='factory-garrison-blue'})
}
}),
presets.upgrades.supply.factory1:extend({
name='factory-prod-blue-1',
products = {
presets.missions.supply.convoy:extend({ name='factory-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='factory-transfer-blue'})
}
}),
presets.upgrades.supply.factory2:extend({
name='factory-prod-blue-2',
products = {
presets.missions.supply.convoy:extend({ name='factory-supply-blue-2', cost=2000}),
presets.missions.supply.transfer:extend({name='factory-transfer-blue2'})
}
}),
presets.upgrades.supply.factoryTank:extend({
name='factory-tank-blue-1',
products = {
}
}),
presets.upgrades.supply.factoryTank:extend({
name='factory-tank-blue-2',
products = {
}
}),
presets.upgrades.supply.factoryTank:extend({
name='factory-tank-blue-3',
products = {
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Factory.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Senaki.lua ]]-----------------
zones.senaki = ZoneCommand:new("Senaki")
zones.senaki.initialState = { side=1 }
zones.senaki.keepActive = true
zones.senaki.isHeloSpawn = true
zones.senaki.isPlaneSpawn = true
zones.senaki.maxResource = 50000
zones.senaki:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='senaki-compost-red',
products = {
presets.special.red.infantry:extend({ name='senaki-defense-red'}),
presets.defenses.red.infantry:extend({ name='senaki-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='senaki-fuel-red',
products = {
presets.missions.supply.helo:extend({name='senaki-supply-red-1'}),
presets.missions.supply.helo:extend({name='senaki-supply-red-2'}),
presets.missions.supply.transfer:extend({name='senaki-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='senaki-comcenter-red',
products = {
presets.defenses.red.sa3:extend({ name='senaki-airdef-red'}),
presets.missions.attack.sead:extend({name='senaki-sead-red', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='senaki-cas-red', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='senaki-cas-red', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='senaki-strike-red', altitude=20000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='senaki-patrol-red', altitude=25000, range=25}),
presets.missions.patrol.aircraft:extend({name='senaki-patrol-red-2', altitude=20000, range=25})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='senaki-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='senaki-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='senaki-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='senaki-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='senaki-supply-blue-1'}),
presets.missions.supply.helo:extend({name='senaki-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='senaki-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='senaki-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({ name='senaki-airdef-blue'}),
presets.missions.attack.sead:extend({name='senaki-sead-blue', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='senaki-cas-blue', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='senaki-cas-blue', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='senaki-strike-blue', altitude=20000, expend=AI.Task.WeaponExpend.TWO}),
presets.missions.patrol.aircraft:extend({name='senaki-patrol-blue', altitude=25000, range=25})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Senaki.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Kutaisi.lua ]]-----------------
zones.kutaisi = ZoneCommand:new("Kutaisi")
zones.kutaisi.initialState = { side=1 }
zones.kutaisi.keepActive = true
zones.kutaisi.maxResource = 50000
zones.kutaisi:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='kutaisi-compost-red',
products = {
presets.special.red.infantry:extend({ name='kutaisi-defense-red'}),
presets.defenses.red.infantry:extend({ name='kutaisi-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='kutaisi-fuel-red',
products = {
presets.missions.supply.helo:extend({name='kutaisi-supply-red-1'}),
presets.missions.supply.helo:extend({name='kutaisi-supply-red-2'}),
presets.missions.supply.transfer:extend({name='kutaisi-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='kutaisi-comcenter-red',
products = {
presets.defenses.red.shorad:extend({ name='kutaisi-airdef-red'}),
presets.missions.attack.sead:extend({name='kutaisi-sead-red', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='kutaisi-cas-red', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='kutaisi-cas-red', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='kutaisi-strike-red', altitude=20000, expend=AI.Task.WeaponExpend.HALF}),
presets.missions.patrol.aircraft:extend({name='kutaisi-patrol-red', altitude=25000, range=25}),
presets.missions.patrol.aircraft:extend({name='kutaisi-patrol-red-2', altitude=25000, range=25})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='kutaisi-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='kutaisi-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='kutaisi-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='kutaisi-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='kutaisi-supply-blue-1'}),
presets.missions.supply.helo:extend({name='kutaisi-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='kutaisi-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='kutaisi-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({ name='kutaisi-airdef-blue'}),
presets.missions.attack.sead:extend({name='kutaisi-sead-blue', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='kutaisi-cas-blue', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='kutaisi-cas-blue', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='kutaisi-strike-blue', altitude=20000, expend=AI.Task.WeaponExpend.TWO}),
presets.missions.patrol.aircraft:extend({name='kutaisi-patrol-blue', altitude=25000, range=25})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Kutaisi.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Prohladniy.lua ]]-----------------
zones.prohladniy = ZoneCommand:new("Prohladniy")
zones.prohladniy.initialState = { side=1 }
zones.prohladniy:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='prohladniy-tent-red',
products = {
presets.special.red.infantry:extend({ name='prohladniy-defense-red'}),
presets.defenses.red.infantry:extend({ name='prohladniy-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='prohladniy-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='prohladniy-supply-red'}),
presets.missions.supply.transfer:extend({name='prohladniy-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='prohladniy-ammo-red',
products = {
presets.missions.attack.surface:extend({name='prohladniy-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='prohladniy-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='prohladniy-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='prohladniy-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='prohladniy-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='prohladniy-supply-blue'}),
presets.missions.supply.transfer:extend({name='prohladniy-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='prohladniy-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='prohladniy-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Prohladniy.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Tallyk.lua ]]-----------------
zones.tallyk = ZoneCommand:new("Tallyk")
zones.tallyk.initialState = { side=1 }
zones.tallyk.keepActive = true
zones.tallyk:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='tallyk-tent-red',
products = {
presets.special.red.infantry:extend({ name='tallyk-defense-red'}),
presets.defenses.red.infantry:extend({ name='tallyk-garrison-red'}),
presets.missions.attack.surface:extend({name='tallyk-assault-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='tallyk-comcenter-red',
products = {
presets.defenses.red.sam:extend({ name='tallyk-sam-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='tallyk-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='tallyk-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='tallyk-garrison-blue'}),
presets.missions.attack.surface:extend({name='tallyk-assault-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='tallyk-comcenter-blue',
products = {
presets.defenses.blue.sam:extend({ name='tallyk-sam-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Tallyk.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Terek.lua ]]-----------------
zones.terek = ZoneCommand:new("Terek")
zones.terek.initialState = { side=1 }
zones.terek:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='terek-tent-red',
products = {
presets.special.red.infantry:extend({ name='terek-defense-red'}),
presets.defenses.red.infantry:extend({ name='terek-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='terek-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='terek-supply-red'}),
presets.missions.supply.transfer:extend({name='terek-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='terek-ammo-red',
products = {
presets.missions.attack.surface:extend({name='terek-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='terek-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='terek-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='terek-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='terek-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='terek-supply-blue'}),
presets.missions.supply.transfer:extend({name='terek-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='terek-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='terek-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Terek.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Humara.lua ]]-----------------
zones.humara = ZoneCommand:new("Humara")
zones.humara.initialState = { side=1 }
zones.humara:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='humara-tent-red',
products = {
presets.special.red.infantry:extend({ name='humara-defense-red'}),
presets.defenses.red.infantry:extend({ name='humara-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='humara-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='humara-supply-red'}),
presets.missions.supply.transfer:extend({name='humara-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='humara-ammo-red',
products = {
presets.missions.attack.surface:extend({name='humara-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='humara-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='humara-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='humara-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='humara-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='humara-supply-blue'}),
presets.missions.supply.transfer:extend({name='humara-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='humara-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='humara-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Humara.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Ochamchira.lua ]]-----------------
zones.ochamchira = ZoneCommand:new("Ochamchira")
zones.ochamchira.initialState = { side=1 }
zones.ochamchira:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='ochamchira-tent-red',
products = {
presets.special.red.infantry:extend({ name='ochamchira-defense-red'}),
presets.defenses.red.infantry:extend({ name='ochamchira-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='ochamchira-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='ochamchira-supply-red'}),
presets.missions.supply.transfer:extend({name='ochamchira-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='ochamchira-ammo-red',
products = {
presets.missions.attack.surface:extend({name='ochamchira-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='ochamchira-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='ochamchira-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='ochamchira-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='ochamchira-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='ochamchira-supply-blue'}),
presets.missions.supply.transfer:extend({name='ochamchira-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='ochamchira-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='ochamchira-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Ochamchira.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/November.lua ]]-----------------
zones.november = ZoneCommand:new("November")
zones.november.initialState = { side=1 }
zones.november.isHeloSpawn = true
zones.november:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='november-tent-red',
products = {
presets.special.red.infantry:extend({ name='november-defense-red'}),
presets.defenses.red.infantry:extend({ name='november-garrison-red'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='november-fuel-red',
products = {
presets.missions.supply.helo:extend({name='november-supply-red'}),
presets.missions.supply.helo:extend({name='november-supply-red-1'}),
presets.missions.supply.transfer:extend({name='november-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='november-comcenter-red',
products = {
presets.defenses.red.shorad:extend({name='november-sam-red'}),
presets.missions.attack.helo:extend({name='november-cas-red', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='november-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='november-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='november-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='november-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='november-supply-blue'}),
presets.missions.supply.helo:extend({name='november-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='november-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='november-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({name='november-sam-blue'}),
presets.missions.attack.helo:extend({name='november-cas-blue', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/November.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/XRay.lua ]]-----------------
zones.xray = ZoneCommand:new("XRay")
zones.xray.initialState = { side=1 }
zones.xray:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='xray-tent-red',
products = {
presets.special.red.infantry:extend({ name='xray-defense-red'}),
presets.defenses.red.infantry:extend({ name='xray-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='xray-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='xray-supply-red'}),
presets.missions.supply.helo:extend({name='xray-supply-red-2'}),
presets.missions.supply.transfer:extend({name='xray-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='xray-ammo-red',
products = {
presets.missions.attack.surface:extend({name='xray-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='xray-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='xray-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='xray-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='xray-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='xray-supply-blue'}),
presets.missions.supply.helo:extend({name='xray-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='xray-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='xray-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='xray-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/XRay.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Whiskey.lua ]]-----------------
zones.whiskey = ZoneCommand:new("Whiskey")
zones.whiskey.initialState = { side=1 }
zones.whiskey:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='whiskey-tent-red',
products = {
presets.special.red.infantry:extend({ name='whiskey-defense-red'}),
presets.defenses.red.infantry:extend({ name='whiskey-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='whiskey-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='whiskey-supply-red'}),
presets.missions.supply.transfer:extend({name='whiskey-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='whiskey-ammo-red',
products = {
presets.missions.attack.surface:extend({name='whiskey-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='whiskey-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='whiskey-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='whiskey-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='whiskey-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='whiskey-supply-blue'}),
presets.missions.supply.transfer:extend({name='whiskey-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='whiskey-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='whiskey-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Whiskey.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Mine.lua ]]-----------------
zones.mine = ZoneCommand:new("Mine")
zones.mine.initialState = { side=1 }
zones.mine:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='mine-tent-red',
products = {
presets.special.red.infantry:extend({ name='mine-defense-red'}),
presets.defenses.red.infantry:extend({ name='mine-garrison-red'})
}
}),
presets.upgrades.supply.excavator:extend({
name='mine-excavator-red-1',
products = {
presets.missions.supply.convoy:extend({ name='mine-supply-red'}),
presets.missions.supply.transfer:extend({name='mine-transfer-red'})
}
}),
presets.upgrades.supply.excavator:extend({
name='mine-excavator-red-2',
products = {
presets.missions.supply.convoy:extend({ name='mine-supply-red'}),
presets.missions.supply.transfer:extend({name='mine-transfer-red'})
}
}),
presets.upgrades.supply.excavator:extend({
name='mine-excavator-red-3',
products = {
presets.missions.supply.convoy:extend({ name='mine-supply-red'}),
presets.missions.supply.transfer:extend({name='mine-transfer-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='mine-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='mine-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='mine-garrison-blue'})
}
}),
presets.upgrades.supply.excavator:extend({
name='mine-excavator-blue-1',
products = {
presets.missions.supply.convoy:extend({ name='mine-supply-blue'}),
presets.missions.supply.transfer:extend({name='mine-transfer-blue'})
}
}),
presets.upgrades.supply.excavator:extend({
name='mine-excavator-blue-2',
products = {
presets.missions.supply.convoy:extend({ name='mine-supply-blue'}),
presets.missions.supply.transfer:extend({name='mine-transfer-blue'})
}
}),
presets.upgrades.supply.excavator:extend({
name='mine-excavator-blue-3',
products = {
presets.missions.supply.convoy:extend({ name='mine-supply-blue'}),
presets.missions.supply.transfer:extend({name='mine-transfer-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Mine.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Papa.lua ]]-----------------
zones.papa = ZoneCommand:new("Papa")
zones.papa.initialState = { side=1 }
zones.papa.keepActive = true
zones.papa:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='papa-tent-red',
products = {
presets.special.red.infantry:extend({ name='papa-defense-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='papa-comcenter-red',
products = {
presets.defenses.red.sam:extend({ name='papa-sam-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='papa-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='papa-defense-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='papa-comcenter-blue',
products = {
presets.defenses.blue.sam:extend({ name='papa-sam-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Papa.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Sukhumi.lua ]]-----------------
zones.sukhumi = ZoneCommand:new("Sukhumi")
zones.sukhumi.initialState = { side=1 }
zones.sukhumi.keepActive = true
zones.sukhumi.maxResource = 50000
zones.sukhumi:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='sukhumi-compost-red',
products = {
presets.special.red.infantry:extend({ name='sukhumi-defense-red'}),
presets.defenses.red.infantry:extend({ name='sukhumi-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='sukhumi-fuel-red',
products = {
presets.missions.supply.helo:extend({name='sukhumi-supply-red-1'}),
presets.missions.supply.helo:extend({name='sukhumi-supply-red-2'}),
presets.missions.supply.transfer:extend({name='sukhumi-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='sukhumi-comcenter-red',
products = {
presets.defenses.red.sa11:extend({ name='sukhumi-airdef-red'}),
presets.missions.attack.sead:extend({name='sukhumi-sead-red', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='sukhumi-cas-red', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='sukhumi-cas-red', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='sukhumi-strike-red', altitude=20000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='sukhumi-patrol-red', altitude=25000, range=25}),
presets.missions.patrol.aircraft:extend({name='sukhumi-patrol-red-2', altitude=25000, range=25})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='sukhumi-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='sukhumi-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='sukhumi-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='sukhumi-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='sukhumi-supply-blue-1'}),
presets.missions.supply.helo:extend({name='sukhumi-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='sukhumi-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='sukhumi-comcenter-blue',
products = {
presets.defenses.blue.nasams:extend({ name='sukhumi-airdef-blue'}),
presets.missions.attack.sead:extend({name='sukhumi-sead-blue', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='sukhumi-cas-blue', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='sukhumi-cas-blue', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='sukhumi-strike-blue', altitude=20000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='sukhumi-patrol-blue', altitude=25000, range=25})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Sukhumi.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Farm.lua ]]-----------------
zones.farm = ZoneCommand:new("Farm")
zones.farm.initialState = { side=1 }
zones.farm:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='farm-tent-red',
products = {
presets.special.red.infantry:extend({ name='farm-defense-red'}),
presets.defenses.red.infantry:extend({ name='farm-garrison-red'})
}
}),
presets.upgrades.supply.farm1:extend({
name='farm-prod-red-1',
products = {
presets.missions.supply.convoy:extend({ name='farm-supply-red'}),
presets.missions.supply.transfer:extend({name='farm-transfer-red'})
}
}),
presets.upgrades.supply.farm2:extend({
name='farm-prod-red-2',
products = {
presets.missions.supply.convoy:extend({ name='farm-supply-red'}),
presets.missions.supply.transfer:extend({name='farm-transfer-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='farm-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='farm-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='farm-garrison-blue'})
}
}),
presets.upgrades.supply.farm1:extend({
name='farm-prod-blue-1',
products = {
presets.missions.supply.convoy:extend({ name='farm-supply-blue'}),
presets.missions.supply.transfer:extend({name='farm-transfer-blue'})
}
}),
presets.upgrades.supply.farm2:extend({
name='farm-prod-blue-2',
products = {
presets.missions.supply.convoy:extend({ name='farm-supply-blue'}),
presets.missions.supply.transfer:extend({name='farm-transfer-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Farm.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Romeo.lua ]]-----------------
zones.romeo = ZoneCommand:new("Romeo")
zones.romeo.initialState = { side=1 }
zones.romeo:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='romeo-tent-red',
products = {
presets.special.red.infantry:extend({ name='romeo-defense-red'}),
presets.defenses.red.infantry:extend({ name='romeo-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='romeo-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='romeo-supply-red'}),
presets.missions.supply.transfer:extend({name='romeo-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='romeo-ammo-red',
products = {
presets.missions.attack.surface:extend({name='romeo-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='romeo-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='romeo-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='romeo-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='romeo-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='romeo-supply-blue'}),
presets.missions.supply.transfer:extend({name='romeo-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='romeo-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='romeo-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Romeo.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Zulu.lua ]]-----------------
zones.zulu = ZoneCommand:new("Zulu")
zones.zulu.initialState = { side=1 }
zones.zulu:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='zulu-tent-red',
products = {
presets.special.red.infantry:extend({ name='zulu-defense-red'}),
presets.defenses.red.infantry:extend({ name='zulu-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='zulu-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='zulu-supply-red'}),
presets.missions.supply.transfer:extend({name='zulu-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='zulu-ammo-red',
products = {
presets.missions.attack.surface:extend({name='zulu-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='zulu-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='zulu-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='zulu-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='zulu-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='zulu-supply-blue'}),
presets.missions.supply.transfer:extend({name='zulu-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='zulu-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='zulu-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Zulu.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Yankee.lua ]]-----------------
zones.yankee = ZoneCommand:new("Yankee")
zones.yankee.initialState = { side=1 }
zones.yankee:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='yankee-tent-red',
products = {
presets.special.red.infantry:extend({ name='yankee-defense-red'}),
presets.defenses.red.infantry:extend({ name='yankee-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='yankee-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='yankee-supply-red'}),
presets.missions.supply.transfer:extend({name='yankee-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='yankee-ammo-red',
products = {
presets.missions.attack.surface:extend({name='yankee-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='yankee-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='yankee-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='yankee-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='yankee-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='yankee-supply-blue'}),
presets.missions.supply.transfer:extend({name='yankee-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='yankee-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='yankee-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Yankee.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Malgobek.lua ]]-----------------
zones.malgobek = ZoneCommand:new("Malgobek")
zones.malgobek.initialState = { side=1 }
zones.malgobek:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='malgobek-tent-red',
products = {
presets.special.red.infantry:extend({ name='malgobek-defense-red'}),
presets.defenses.red.infantry:extend({ name='malgobek-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='malgobek-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='malgobek-supply-red'}),
presets.missions.supply.transfer:extend({name='malgobek-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='malgobek-ammo-red',
products = {
presets.missions.attack.surface:extend({name='malgobek-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='malgobek-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='malgobek-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='malgobek-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='malgobek-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='malgobek-supply-blue'}),
presets.missions.supply.transfer:extend({name='malgobek-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='malgobek-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='malgobek-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Malgobek.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Kilo.lua ]]-----------------
zones.kilo = ZoneCommand:new("Kilo")
zones.kilo.initialState = { side=1 }
zones.kilo:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='kilo-tent-red',
products = {
presets.special.red.infantry:extend({ name='kilo-defense-red'}),
presets.defenses.red.infantry:extend({ name='kilo-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='kilo-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='kilo-supply-red'}),
presets.missions.supply.transfer:extend({name='kilo-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='kilo-ammo-red',
products = {
presets.missions.attack.surface:extend({name='kilo-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='kilo-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='kilo-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='kilo-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='kilo-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='kilo-supply-blue'}),
presets.missions.supply.transfer:extend({name='kilo-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='kilo-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='kilo-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Kilo.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Quebec.lua ]]-----------------
zones.quebec = ZoneCommand:new("Quebec")
zones.quebec.initialState = { side=1 }
zones.quebec.keepActive = true
zones.quebec:defineUpgrades({
[1] =
{
presets.upgrades.basic.tent:extend({
name='quebec-tent-red',
products = {
presets.special.red.infantry:extend({ name='quebec-defense-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='quebec-comcenter-red',
products = {
presets.defenses.red.sam:extend({ name='quebec-sam-red'})
}
})
},
[2] =
{
presets.upgrades.basic.tent:extend({
name='quebec-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='quebec-defense-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='quebec-comcenter-blue',
products = {
presets.defenses.blue.sam:extend({ name='quebec-sam-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Quebec.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/OilFields.lua ]]-----------------
zones.oilfields = ZoneCommand:new("Oil Fields")
zones.oilfields.initialState = { side=1 }
zones.oilfields:defineUpgrades({
[1] = {
presets.upgrades.basic.outpost:extend({
name='oilfields-outpost-red',
products = {
presets.special.red.infantry:extend({ name='oilfields-defense-red'}),
presets.defenses.red.infantry:extend({ name='oilfields-garrison-red'})
}
}),
presets.upgrades.supply.oilPump:extend({
name='oilfields-pump-red-1',
products = {
presets.missions.supply.transfer:extend({name='oilfields-transfer-red1'})
}
}),
presets.upgrades.supply.oilPump:extend({
name='oilfields-pump-red-2',
products = {
presets.missions.supply.convoy:extend({name='oilfields-supply-red-1'})
}
}),
presets.upgrades.supply.oilPump:extend({
name='oilfields-pump-red-3',
products = {
presets.missions.supply.transfer:extend({name='oilfields-transfer-red2'})
}
}),
presets.upgrades.supply.oilPump:extend({
name='oilfields-pump-red-4',
products = {
presets.missions.supply.convoy:extend({name='oilfields-supply-red-2'})
}
})
},
[2] = {
presets.upgrades.basic.outpost:extend({
name='oilfields-outpost-blue',
products = {
presets.special.blue.infantry:extend({ name='oilfields-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='oilfields-garrison-blue'})
}
}),
presets.upgrades.supply.oilPump:extend({
name='oilfields-pump-blue-1',
products = {
presets.missions.supply.transfer:extend({name='oilfields-transfer-blue1'})
}
}),
presets.upgrades.supply.oilPump:extend({
name='oilfields-pump-blue-2',
products = {
presets.missions.supply.convoy:extend({name='oilfields-supply-blue-1'})
}
}),
presets.upgrades.supply.oilPump:extend({
name='oilfields-pump-blue-3',
products = {
presets.missions.supply.transfer:extend({name='oilfields-transfer-blue2'})
}
}),
presets.upgrades.supply.oilPump:extend({
name='oilfields-pump-blue-4',
products = {
presets.missions.supply.convoy:extend({name='oilfields-supply-blue-2'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/OilFields.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Echo.lua ]]-----------------
zones.echo = ZoneCommand:new("Echo")
zones.echo.initialState = { side=2 }
zones.echo:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='echo-tent-red',
products = {
presets.special.red.infantry:extend({ name='echo-defense-red'}),
presets.defenses.red.infantry:extend({ name='echo-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='echo-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='echo-supply-red'}),
presets.missions.supply.transfer:extend({name='echo-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='echo-ammo-red',
products = {
presets.missions.attack.surface:extend({name='echo-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='echo-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='echo-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='echo-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='echo-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='echo-supply-blue'}),
presets.missions.supply.transfer:extend({name='echo-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='echo-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='echo-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Echo.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Kobuleti.lua ]]-----------------
zones.kobuleti = ZoneCommand:new("Kobuleti")
zones.kobuleti.initialState = { side=2 }
zones.kobuleti.keepActive = true
zones.kobuleti.isHeloSpawn = true
zones.kobuleti.isPlaneSpawn = true
zones.kobuleti.maxResource = 50000
zones.kobuleti:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='kobuleti-compost-red',
products = {
presets.special.red.infantry:extend({ name='kobuleti-defense-red'}),
presets.defenses.red.infantry:extend({ name='kobuleti-garrison-red'}),
presets.missions.attack.surface:extend({ name='kobuleti-assault-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='kobuleti-fuel-red',
products = {
presets.missions.supply.helo:extend({name='kobuleti-supply-red-1'}),
presets.missions.supply.helo:extend({name='kobuleti-supply-red-2'}),
presets.missions.supply.transfer:extend({name='kobuleti-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='kobuleti-comcenter-red',
products = {
presets.defenses.red.shorad:extend({ name='kobuleti-airdef-red'}),
presets.missions.attack.sead:extend({name='kobuleti-sead-red', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='kobuleti-cas-red', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='kobuleti-cas-red', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='kobuleti-strike-red', altitude=20000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='kobuleti-patrol-red', altitude=25000, range=25})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='kobuleti-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='kobuleti-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='kobuleti-garrison-blue'}),
presets.missions.attack.surface:extend({ name='kobuleti-assault-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='kobuleti-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='kobuleti-supply-blue-1'}),
presets.missions.supply.helo:extend({name='kobuleti-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='kobuleti-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='kobuleti-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({ name='kobuleti-airdef-blue'}),
presets.missions.attack.sead:extend({name='kobuleti-sead-blue', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.cas:extend({name='kobuleti-cas-blue', altitude=15000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.bai:extend({name='kobuleti-cas-blue', altitude=10000, expend=AI.Task.WeaponExpend.ONE}),
presets.missions.attack.strike:extend({name='kobuleti-strike-blue', altitude=20000, expend=AI.Task.WeaponExpend.TWO}),
presets.missions.patrol.aircraft:extend({name='kobuleti-patrol-blue', altitude=25000, range=25}),
presets.missions.support.awacs:extend({name='kobuleti-awacs-blue', altitude=30000, freq=258.5}),
presets.missions.support.tanker:extend({name='kobuleti-tanker-blue', altitude=23000, freq=258, tacan='38', variant='Boom'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Kobuleti.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Alpha.lua ]]-----------------
zones.alpha = ZoneCommand:new('Alpha')
zones.alpha.initialState = { side=2 }
zones.alpha:defineUpgrades({
[1] = --red side
{
presets.upgrades.basic.tent:extend({
name = 'alpha-tent-red',
products = {
presets.special.red.infantry:extend({ name='alpha-defense-red'}),
presets.defenses.red.infantry:extend({ name='alpha-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name = 'alpha-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({ name='alpha-supply-red'}),
presets.missions.supply.transfer:extend({name='alpha-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name = 'alpha-ammo-red',
products = {
presets.missions.attack.surface:extend({ name='alpha-assault-red'})
}
})
},
[2] = --blue side
{
presets.upgrades.basic.tent:extend({
name = 'alpha-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='alpha-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='alpha-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name = 'alpha-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({ name='alpha-supply-blue'}),
presets.missions.supply.transfer:extend({name='alpha-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name = 'alpha-ammo-blue',
products = {
presets.missions.attack.surface:extend({ name='alpha-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Alpha.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Foxtrot.lua ]]-----------------
zones.foxtrot = ZoneCommand:new("Foxtrot")
zones.foxtrot.initialState = { side=2 }
zones.foxtrot:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='foxtrot-tent-red',
products = {
presets.special.red.infantry:extend({ name='foxtrot-defense-red'}),
presets.defenses.red.infantry:extend({ name='foxtrot-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='foxtrot-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='foxtrot-supply-red'}),
presets.missions.supply.transfer:extend({name='foxtrot-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='foxtrot-ammo-red',
products = {
presets.missions.attack.surface:extend({name='foxtrot-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='foxtrot-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='foxtrot-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='foxtrot-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='foxtrot-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='foxtrot-supply-blue'}),
presets.missions.supply.transfer:extend({name='foxtrot-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='foxtrot-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='foxtrot-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Foxtrot.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Sierra.lua ]]-----------------
zones.sierra = ZoneCommand:new("Sierra")
zones.sierra.initialState = { side=1 }
zones.sierra.isHeloSpawn = true
zones.sierra:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='sierra-tent-red',
products = {
presets.special.red.infantry:extend({ name='sierra-defense-red'}),
presets.defenses.red.infantry:extend({ name='sierra-garrison-red'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='sierra-fuel-red',
products = {
presets.missions.supply.helo:extend({name='sierra-supply-red'}),
presets.missions.supply.helo:extend({name='sierra-supply-red-1'}),
presets.missions.supply.transfer:extend({name='sierra-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='sierra-comcenter-red',
products = {
presets.defenses.red.shorad:extend({name='sierra-sam-red'}),
presets.missions.attack.helo:extend({name='sierra-cas-red', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='sierra-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='sierra-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='sierra-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='sierra-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='sierra-supply-blue'}),
presets.missions.supply.helo:extend({name='sierra-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='sierra-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='sierra-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({name='sierra-sam-blue'}),
presets.missions.attack.helo:extend({name='sierra-cas-blue', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Sierra.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Oni.lua ]]-----------------
zones.oni = ZoneCommand:new("Oni")
zones.oni.initialState = { side=1 }
zones.oni:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='oni-tent-red',
products = {
presets.special.red.infantry:extend({ name='oni-defense-red'}),
presets.defenses.red.infantry:extend({ name='oni-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='oni-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='oni-supply-red'}),
presets.missions.supply.helo:extend({name='oni-supply-red-2'}),
presets.missions.supply.transfer:extend({name='oni-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='oni-ammo-red',
products = {
presets.missions.attack.surface:extend({name='oni-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='oni-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='oni-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='oni-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='oni-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='oni-supply-blue'}),
presets.missions.supply.helo:extend({name='oni-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='oni-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='oni-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='oni-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Oni.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Hotel.lua ]]-----------------
zones.hotel = ZoneCommand:new("Hotel")
zones.hotel.initialState = nil
zones.hotel:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='hotel-tent-red',
products = {
presets.special.red.infantry:extend({ name='hotel-defense-red'}),
presets.defenses.red.infantry:extend({ name='hotel-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='hotel-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='hotel-supply-red'}),
presets.missions.supply.transfer:extend({name='hotel-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='hotel-ammo-red',
products = {
presets.missions.attack.surface:extend({name='hotel-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='hotel-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='hotel-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='hotel-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='hotel-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='hotel-supply-blue'}),
presets.missions.supply.transfer:extend({name='hotel-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='hotel-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='hotel-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Hotel.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Victor.lua ]]-----------------
zones.victor = ZoneCommand:new("Victor")
zones.victor.initialState = { side=1 }
zones.victor:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='victor-tent-red',
products = {
presets.special.red.infantry:extend({ name='victor-defense-red'}),
presets.defenses.red.infantry:extend({ name='victor-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='victor-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='victor-supply-red'}),
presets.missions.supply.helo:extend({name='victor-supply-red-2'}),
presets.missions.supply.transfer:extend({name='victor-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='victor-ammo-red',
products = {
presets.missions.attack.surface:extend({name='victor-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='victor-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='victor-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='victor-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='victor-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='victor-supply-blue'}),
presets.missions.supply.helo:extend({name='victor-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='victor-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='victor-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='victor-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Victor.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Tango.lua ]]-----------------
zones.tango = ZoneCommand:new("Tango")
zones.tango.initialState = { side=1 }
zones.tango.isHeloSpawn = true
zones.tango:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='tango-tent-red',
products = {
presets.special.red.infantry:extend({ name='tango-defense-red'}),
presets.defenses.red.infantry:extend({ name='tango-garrison-red'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='tango-fuel-red',
products = {
presets.missions.supply.helo:extend({name='tango-supply-red'}),
presets.missions.supply.helo:extend({name='tango-supply-red-1'}),
presets.missions.supply.transfer:extend({name='tango-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='tango-comcenter-red',
products = {
presets.defenses.red.shorad:extend({name='tango-sam-red'}),
presets.missions.attack.helo:extend({name='tango-cas-red', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='tango-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='tango-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='tango-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='tango-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='tango-supply-blue'}),
presets.missions.supply.helo:extend({name='tango-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='tango-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='tango-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({name='tango-sam-blue'}),
presets.missions.attack.helo:extend({name='tango-cas-blue', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Tango.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Unal.lua ]]-----------------
zones.unal = ZoneCommand:new("Unal")
zones.unal.initialState = { side=1 }
zones.unal.isHeloSpawn = true
zones.unal:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='unal-tent-red',
products = {
presets.special.red.infantry:extend({ name='unal-defense-red'}),
presets.defenses.red.infantry:extend({ name='unal-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='unal-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='unal-supply-red'}),
presets.missions.supply.helo:extend({name='unal-supply-red-2'}),
presets.missions.supply.transfer:extend({name='unal-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='unal-ammo-red',
products = {
presets.missions.attack.surface:extend({name='unal-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='unal-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='unal-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='unal-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='unal-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='unal-supply-blue'}),
presets.missions.supply.helo:extend({name='unal-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='unal-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='unal-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='unal-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Unal.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Beslan.lua ]]-----------------
zones.beslan = ZoneCommand:new("Beslan")
zones.beslan.initialState = { side=1 }
zones.beslan.keepActive = true
zones.beslan.maxResource = 50000
zones.beslan:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='beslan-compost-red',
products = {
presets.special.red.infantry:extend({ name='beslan-defense-red'}),
presets.defenses.red.infantry:extend({ name='beslan-garrison-red'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='beslan-fuel-red',
products = {
presets.missions.supply.helo:extend({name='beslan-supply-red-1'}),
presets.missions.supply.helo:extend({name='beslan-supply-red-2'}),
presets.missions.supply.convoy_escorted:extend({name='beslan-supply-red-3'}),
presets.missions.supply.transfer:extend({name='beslan-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='beslan-comcenter-red',
products = {
presets.defenses.red.sa5:extend({ name='beslan-airdef-red'}),
presets.missions.attack.sead:extend({name='beslan-sead-red', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.strike:extend({name='beslan-strike-red', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.strike:extend({name='beslan-strike-red-1', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='beslan-patrol-red', altitude=25000, range=25})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='beslan-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='beslan-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='beslan-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTank:extend({
name='beslan-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='beslan-supply-blue-1'}),
presets.missions.supply.helo:extend({name='beslan-supply-blue-2'}),
presets.missions.supply.convoy_escorted:extend({name='beslan-supply-blue-3'}),
presets.missions.supply.transfer:extend({name='beslan-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='beslan-comcenter-blue',
products = {
presets.defenses.blue.patriot:extend({ name='beslan-airdef-blue'}),
presets.missions.attack.sead:extend({name='beslan-sead-blue', altitude=25000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.strike:extend({name='beslan-strike-blue', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.attack.strike:extend({name='beslan-strike-blue-1', altitude=30000, expend=AI.Task.WeaponExpend.ALL}),
presets.missions.patrol.aircraft:extend({name='beslan-patrol-blue', altitude=25000, range=25})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Beslan.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Bravo.lua ]]-----------------
zones.bravo = ZoneCommand:new("Bravo")
zones.bravo.initialState = { side=2 }
zones.bravo:defineUpgrades({
[1] =
{
presets.upgrades.basic.comPost:extend({
name='bravo-compost-red',
products = {
presets.special.red.infantry:extend({ name='bravo-defense-red'}),
presets.defenses.red.infantry:extend({ name='bravo-garrison-red'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='bravo-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({ name='bravo-supply-red'}),
presets.missions.supply.transfer:extend({name='bravo-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='bravo-comcenter-red',
products = {
presets.defenses.red.shorad:extend({ name='bravo-airdef-red'}),
presets.missions.attack.helo:extend({name='bravo-attack-red', altitude=200, expend=AI.Task.WeaponExpend.HALF})
}
})
},
[2] =
{
presets.upgrades.basic.comPost:extend({
name='bravo-compost-blue',
products = {
presets.special.blue.infantry:extend({ name='bravo-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='bravo-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='bravo-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({ name='bravo-supply-blue'}),
presets.missions.supply.transfer:extend({name='bravo-transfer-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='bravo-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({ name='bravo-airdef-blue'}),
presets.missions.attack.helo:extend({name='bravo-attack-blue', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Bravo.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/WeaponDepot.lua ]]-----------------
zones.weapondepot = ZoneCommand:new("Weapon Depot")
zones.weapondepot.initialState = { side=1 }
zones.weapondepot:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='weapons-tent-red',
products = {
presets.special.red.infantry:extend({ name='weapons-defense-red'}),
presets.defenses.red.infantry:extend({ name='weapons-garrison-red'})
}
}),
presets.upgrades.supply.ammoDepot:extend({
name='weapons-ammo-red-1',
products = {
presets.missions.supply.convoy:extend({name='weapons-supply-red-1'}),
presets.missions.supply.transfer:extend({name='weapons-transfer-red-1'})
}
}),
presets.upgrades.supply.ammoDepot:extend({
name='weapons-ammo-red-2',
products = {
presets.missions.supply.convoy:extend({name='weapons-supply-red-2'}),
presets.missions.supply.transfer:extend({name='weapons-transfer-red-2'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='weapons-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='weapons-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='weapons-garrison-blue'})
}
}),
presets.upgrades.supply.ammoDepot:extend({
name='weapons-ammo-blue-1',
products = {
presets.missions.supply.convoy:extend({name='weapons-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='weapons-transfer-blue-1'})
}
}),
presets.upgrades.supply.ammoDepot:extend({
name='weapons-ammo-blue-2',
products = {
presets.missions.supply.convoy:extend({name='weapons-supply-blue-2'}),
presets.missions.supply.transfer:extend({name='weapons-transfer-blue-2'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/WeaponDepot.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Delta.lua ]]-----------------
zones.delta = ZoneCommand:new("Delta")
zones.delta.initialState = { side=2 }
zones.delta:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='delta-tent-red',
products = {
presets.special.red.infantry:extend({ name='delta-defense-red'}),
presets.defenses.red.infantry:extend({ name='delta-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='delta-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='delta-supply-red'}),
presets.missions.supply.transfer:extend({name='delta-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='delta-ammo-red',
products = {
presets.missions.attack.surface:extend({name='delta-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='delta-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='delta-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='delta-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='delta-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='delta-supply-blue'}),
presets.missions.supply.transfer:extend({name='delta-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='delta-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='delta-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Delta.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Cherkessk.lua ]]-----------------
zones.cherkessk = ZoneCommand:new("Cherkessk")
zones.cherkessk.initialState = { side=1 }
zones.cherkessk.isHeloSpawn = true
zones.cherkessk:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='cherkessk-tent-red',
products = {
presets.special.red.infantry:extend({ name='cherkessk-defense-red'}),
presets.defenses.red.infantry:extend({ name='cherkessk-garrison-red'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='cherkessk-fuel-red',
products = {
presets.missions.supply.helo:extend({name='cherkessk-supply-red'}),
presets.missions.supply.helo:extend({name='cherkessk-supply-red-1'}),
presets.missions.supply.transfer:extend({name='cherkessk-transfer-red'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='cherkessk-comcenter-red',
products = {
presets.defenses.red.shorad:extend({name='cherkessk-sam-red'}),
presets.missions.attack.helo:extend({name='cherkessk-cas-red', altitude=200, expend=AI.Task.WeaponExpend.HALF }),
presets.missions.attack.helo:extend({name='cherkessk-cas-red-1', altitude=200, expend=AI.Task.WeaponExpend.HALF }),
presets.missions.attack.surface:extend({name='cherkessk-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='cherkessk-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='cherkessk-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='cherkessk-garrison-blue'})
}
}),
presets.upgrades.supply.fuelTankFarp:extend({
name='cherkessk-fuel-blue',
products = {
presets.missions.supply.helo:extend({name='cherkessk-supply-blue'}),
presets.missions.supply.helo:extend({name='cherkessk-supply-blue-1'}),
presets.missions.supply.transfer:extend({name='cherkessk-transfer-blue'}),
presets.missions.attack.surface:extend({name='cherkessk-assault-blue'})
}
}),
presets.upgrades.airdef.comCenter:extend({
name='cherkessk-comcenter-blue',
products = {
presets.defenses.blue.shorad:extend({name='cherkessk-sam-blue'}),
presets.missions.attack.helo:extend({name='cherkessk-cas-blue', altitude=200, expend=AI.Task.WeaponExpend.HALF }),
presets.missions.attack.helo:extend({name='cherkessk-cas-blue-1', altitude=200, expend=AI.Task.WeaponExpend.HALF })
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Cherkessk.lua ]]-----------------
-----------------[[ MissionSpecific/PretenseCaucasus/ZoneDefinitions/Juliett.lua ]]-----------------
zones.juliett = ZoneCommand:new("Juliett")
zones.initialState = nil
zones.juliett:defineUpgrades({
[1] = {
presets.upgrades.basic.tent:extend({
name='juliett-tent-red',
products = {
presets.special.red.infantry:extend({ name='juliett-defense-red'}),
presets.defenses.red.infantry:extend({ name='juliett-garrison-red'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='juliett-fuel-red',
products = {
presets.missions.supply.convoy_escorted:extend({name='juliett-supply-red'}),
presets.missions.supply.transfer:extend({name='juliett-transfer-red'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='juliett-ammo-red',
products = {
presets.missions.attack.surface:extend({name='juliett-assault-red'})
}
})
},
[2] = {
presets.upgrades.basic.tent:extend({
name='juliett-tent-blue',
products = {
presets.special.blue.infantry:extend({ name='juliett-defense-blue'}),
presets.defenses.blue.infantry:extend({ name='juliett-garrison-blue'})
}
}),
presets.upgrades.supply.fuelCache:extend({
name='juliett-fuel-blue',
products = {
presets.missions.supply.convoy_escorted:extend({name='juliett-supply-blue'}),
presets.missions.supply.transfer:extend({name='juliett-transfer-blue'})
}
}),
presets.upgrades.attack.ammoCache:extend({
name='juliett-ammo-blue',
products = {
presets.missions.attack.surface:extend({name='juliett-assault-blue'})
}
})
}
})
-----------------[[ END OF MissionSpecific/PretenseCaucasus/ZoneDefinitions/Juliett.lua ]]-----------------
cm = ConnectionManager:new()
cm:addConnection('Batumi', 'Alpha')
cm:addConnection('Alpha', 'Bravo')
cm:addConnection('Bravo', 'Kobuleti')
cm:addConnection('Bravo', 'Factory')
cm:addConnection('Kobuleti', 'Factory')
cm:addConnection('Kobuleti', 'Charlie')
cm:addConnection('Foxtrot', 'Charlie')
cm:addConnection('Foxtrot', 'Kobuleti')
cm:addConnection('Delta','Foxtrot')
cm:addConnection('Delta','Kobuleti')
cm:addConnection('Delta','Factory')
cm:addConnection('Echo','Charlie')
cm:addConnection('Golf','Echo')
cm:addConnection('Golf','Foxtrot')
cm:addConnection('India','Delta')
cm:addConnection('Hotel','Golf')
cm:addConnection('Hotel','Foxtrot')
cm:addConnection('Hotel','Delta')
cm:addConnection('Hotel','India')
cm:addConnection('Juliett','Echo')
cm:addConnection('Juliett','Golf')
cm:addConnection('Senaki','Juliett')
cm:addConnection('Senaki','Golf')
cm:addConnection('Senaki','Hotel')
cm:addConnection('Kutaisi','Hotel')
cm:addConnection('Kutaisi','India')
cm:addConnection('Kilo','Juliett')
cm:addConnection('Mike','Kutaisi')
cm:addConnection('Mike','Senaki')
cm:addConnection('Romeo','Mike')
cm:addConnection('Romeo','Kutaisi')
cm:addConnection('Weapon Depot','Juliett')
cm:addConnection('Weapon Depot','Senaki')
cm:addConnection('Weapon Depot','Kilo')
cm:addConnection('November','Weapon Depot')
cm:addConnection('November','Senaki')
cm:addConnection('November','Mike')
cm:addConnection('Oil Fields','Romeo')
cm:addConnection('Quebec','Kilo')
cm:addConnection('Zugdidi','Weapon Depot')
cm:addConnection('Zugdidi','Quebec')
cm:addConnection('Zugdidi','November')
cm:addConnection('Zugdidi','Kilo')
cm:addConnection('Distillery','November')
cm:addConnection('Distillery','Mike')
cm:addConnection('Zugdidi','Papa')
cm:addConnection('November','Papa')
cm:addConnection('Sierra','Papa')
cm:addConnection('Sierra','Zugdidi')
cm:addConnection('Sierra','Uniform')
cm:addConnection('Mine','Uniform')
cm:addConnection('Tango','Quebec')
cm:addConnection('Tango','Zugdidi')
cm:addConnection('Sierra','Tango')
cm:addConnection('Whiskey','Tango')
cm:addConnection('Ochamchira','Tango')
cm:addConnection('Ochamchira','Whiskey')
cm:addConnection('Ochamchira','Farm')
cm:addConnection('Ochamchira','Zulu')
cm:addConnection('Farm','Zulu')
cm:addConnection('Sukhumi','Zulu')
cm:addConnection('Lentehi','Distillery', true, 3000)
cm:addConnection('Lentehi','Babugent', true, 5000)
cm:addConnection('Nalchik','Babugent')
cm:addConnection('Victor','Distillery', true, 2000)
cm:addConnection('Victor','Romeo')
cm:addConnection('Victor','Lentehi')
cm:addConnection('Victor','Oil Fields', true, 2000)
cm:addConnection('Victor','Oni')
cm:addConnection('Unal','Oni', true, 4500)
cm:addConnection('Beslan','Unal')
cm:addConnection('Digora','Beslan')
cm:addConnection('Digora','Unal')
cm:addConnection('Digora','Babugent')
cm:addConnection('Terek','Digora')
cm:addConnection('Terek','Nalchik')
cm:addConnection('Terek','Beslan')
cm:addConnection('Prohladniy','Terek')
cm:addConnection('Prohladniy','Nalchik')
cm:addConnection('Malgobek','Terek')
cm:addConnection('Malgobek','Beslan')
cm:addConnection('Lima','Mine')
cm:addConnection('Lima','Lentehi', true, 4000)
cm:addConnection('Tyrnyauz','Lima', true, 4000)
cm:addConnection('Tyrnyauz','Nalchik')
cm:addConnection('XRay','Sukhumi')
cm:addConnection('Oscar','Sukhumi')
cm:addConnection('Oscar','XRay')
cm:addConnection('Mozdok','Malgobek')
cm:addConnection('Mozdok','Prohladniy')
cm:addConnection('Gudauta','Oscar')
cm:addConnection('Yankee','Gudauta')
cm:addConnection('Sochi','Yankee')
cm:addConnection('Refinery','XRay', true, 4000)
cm:addConnection('Refinery','Humara')
cm:addConnection('Intel Center','Tyrnyauz')
cm:addConnection('Intel Center','Nalchik')
cm:addConnection('Intel Center','Prohladniy')
cm:addConnection('Intel Center','Kislovodsk')
cm:addConnection('Mineralnye','Intel Center')
cm:addConnection('Kislovodsk','Mineralnye')
cm:addConnection('Tallyk','Mineralnye')
cm:addConnection('Tallyk','Kislovodsk')
cm:addConnection('Power Plant','Mineralnye')
cm:addConnection('Power Plant','Tallyk')
cm:addConnection('Cherkessk','Tallyk')
cm:addConnection('Cherkessk','Power Plant')
cm:addConnection('Cherkessk','Humara')
end
ZoneCommand.setNeighbours(cm)
bm = BattlefieldManager:new()
mc = MarkerCommands:new()
pt = PlayerTracker:new(mc)
mt = MissionTracker:new(pt, mc)
st = SquadTracker:new()
ct = CSARTracker:new()
pl = PlayerLogistics:new(mt, pt, st, ct)
gci = GCI:new(2)
gm = GroupMonitor:new(cm)
ZoneCommand.groupMonitor = gm
-- PlayerLogistics:registerSquadGroup(squadType, groupname, weight,cost,jobtime,extracttime, squadSize)
pl:registerSquadGroup(PlayerLogistics.infantryTypes.capture, 'capture-squad', 700, 200, 60, 60*30, 4)
pl:registerSquadGroup(PlayerLogistics.infantryTypes.sabotage, 'sabotage-squad', 800, 500, 60*5, 60*30, 4)
pl:registerSquadGroup(PlayerLogistics.infantryTypes.ambush, 'ambush-squad', 900, 300, 60*20, 60*30, 5)
pl:registerSquadGroup(PlayerLogistics.infantryTypes.engineer, 'engineer-squad', 200, 1000,60, 60*30, 2)
pl:registerSquadGroup(PlayerLogistics.infantryTypes.manpads, 'manpads-squad', 900, 500, 60*20, 60*30, 5)
pl:registerSquadGroup(PlayerLogistics.infantryTypes.spy, 'spy-squad', 100, 300, 60*10, 60*30, 1)
pl:registerSquadGroup(PlayerLogistics.infantryTypes.rapier, 'rapier-squad', 1200,2000,60*60, 60*30, 8)
Group.getByName('jtacDrone'):destroy()
CommandFunctions.jtac = JTAC:new({name = 'jtacDrone'})
pm = PersistenceManager:new(savefile, gm, st, ct, pl)
pm:load()
if pm:canRestore() then
pm:restoreZones()
pm:restoreAIMissions()
pm:restoreBattlefield()
pm:restoreCsar()
pm:restoreSquads()
else
--initial states
Starter.start(zones)
end
timer.scheduleFunction(function(param, time)
pm:save()
env.info("Mission state saved")
return time+60
end, zones, timer.getTime()+60)
--make sure support units are present where needed
ensureSpawn = {
['golf-farp-suport'] = zones.golf,
['november-farp-suport'] = zones.november,
['tango-farp-suport'] = zones.tango,
['sierra-farp-suport'] = zones.sierra,
['cherkessk-farp-suport'] = zones.cherkessk,
['unal-farp-suport'] = zones.unal,
['tyrnyauz-farp-suport'] = zones.tyrnyauz
}
for grname, zn in pairs(ensureSpawn) do
local g = Group.getByName(grname)
if g then g:destroy() end
end
timer.scheduleFunction(function(param, time)
for grname, zn in pairs(ensureSpawn) do
local g = Group.getByName(grname)
if zn.side == 2 then
if not g then
local err, msg = pcall(mist.respawnGroup,grname,true)
if not err then
env.info("ERROR spawning "..grname)
env.info(msg)
end
end
else
if g then g:destroy() end
end
end
return time+30
end, {}, timer.getTime()+30)
--supply injection
local blueSupply = {'offmap-supply-blue-1','offmap-supply-blue-2','offmap-supply-blue-3','offmap-supply-blue-4','offmap-supply-blue-5'}
local redSupply = {'offmap-supply-red-1','offmap-supply-red-2','offmap-supply-red-3','offmap-supply-red-4','offmap-supply-red-5'}
local offmapZones = {
zones.batumi,
zones.sochi,
zones.nalchik,
zones.beslan,
zones.mozdok,
zones.mineralnye,
-- zones.senaki,
-- zones.sukhumi,
-- zones.gudauta,
-- zones.kobuleti,
}
supplyPointRegistry = {
blue = {},
red = {}
}
for i,v in ipairs(blueSupply) do
local g = Group.getByName(v)
if g then
supplyPointRegistry.blue[v] = g:getUnit(1):getPoint()
end
end
for i,v in ipairs(redSupply) do
local g = Group.getByName(v)
if g then
supplyPointRegistry.red[v] = g:getUnit(1):getPoint()
end
end
offmapSupplyRegistry = {}
timer.scheduleFunction(function(param, time)
local availableBlue = {}
for i,v in ipairs(param.blue) do
if offmapSupplyRegistry[v] == nil then
table.insert(availableBlue, v)
end
end
local availableRed = {}
for i,v in ipairs(param.red) do
if offmapSupplyRegistry[v] == nil then
table.insert(availableRed, v)
end
end
local redtargets = {}
local bluetargets = {}
for _, zn in ipairs(param.offmapZones) do
if zn:needsSupplies(3000) then
local isOnRoute = false
for _,data in pairs(offmapSupplyRegistry) do
if data.zone.name == zn.name then
isOnRoute = true
break
end
end
if not isOnRoute then
if zn.side == 1 then
table.insert(redtargets, zn)
elseif zn.side == 2 then
table.insert(bluetargets, zn)
end
end
end
end
if #availableRed > 0 and #redtargets > 0 then
local zn = redtargets[math.random(1,#redtargets)]
local red = nil
local minD = 999999999
for i,v in ipairs(availableRed) do
local d = mist.utils.get2DDist(zn.zone.point, supplyPointRegistry.red[v])
if d < minD then
red = v
minD = d
end
end
if not red then red = availableRed[math.random(1,#availableRed)] end
local gr = red
red = nil
mist.respawnGroup(gr, true)
offmapSupplyRegistry[gr] = {zone = zn, assigned = timer.getAbsTime()}
env.info(gr..' was deployed')
timer.scheduleFunction(function(param,time)
local g = Group.getByName(param.group)
TaskExtensions.landAtAirfield(g, param.target.zone.point)
env.info(param.group..' going to '..param.target.name)
end, {group=gr, target=zn}, timer.getTime()+2)
end
if #availableBlue > 0 and #bluetargets>0 then
local zn = bluetargets[math.random(1,#bluetargets)]
local blue = nil
local minD = 999999999
for i,v in ipairs(availableBlue) do
local d = mist.utils.get2DDist(zn.zone.point, supplyPointRegistry.blue[v])
if d < minD then
blue = v
minD = d
end
end
if not blue then blue = availableBlue[math.random(1,#availableBlue)] end
local gr = blue
blue = nil
mist.respawnGroup(gr, true)
offmapSupplyRegistry[gr] = {zone = zn, assigned = timer.getAbsTime()}
env.info(gr..' was deployed')
timer.scheduleFunction(function(param,time)
local g = Group.getByName(param.group)
TaskExtensions.landAtAirfield(g, param.target.zone.point)
env.info(param.group..' going to '..param.target.name)
end, {group=gr, target=zn}, timer.getTime()+2)
end
return time+(60*5)
end, {blue = blueSupply, red = redSupply, offmapZones = offmapZones}, timer.getTime()+60)
timer.scheduleFunction(function(param, time)
for groupname,data in pairs(offmapSupplyRegistry) do
local gr = Group.getByName(groupname)
if not gr then
offmapSupplyRegistry[groupname] = nil
env.info(groupname..' was destroyed')
end
if gr and ((timer.getAbsTime() - data.assigned) > (60*60)) then
gr:destroy()
offmapSupplyRegistry[groupname] = nil
env.info(groupname..' despawned due to being alive for too long')
end
if gr and Utils.allGroupIsLanded(gr) and Utils.someOfGroupInZone(gr, data.zone.name) then
data.zone:addResource(15000)
gr:destroy()
offmapSupplyRegistry[groupname] = nil
env.info(groupname..' landed at '..data.zone.name..' and delivered 15000 resources')
end
end
return time+180
end, {}, timer.getTime()+180)