mirror of
https://github.com/spencershepard/RotorOps.git
synced 2025-11-10 15:45:30 +00:00
Update RotaryOps.lua
This commit is contained in:
parent
17ee12f5a1
commit
ce31e0edb6
@ -1,9 +1,14 @@
|
|||||||
RotorOps = {}
|
RotorOps = {}
|
||||||
RotorOps.transports = {'UH-1H', 'Mi-8MT', 'Mi-24P'}
|
RotorOps.transports = {'UH-1H', 'Mi-8MT', 'Mi-24P'}
|
||||||
RotorOps.conflict_started = false
|
RotorOps.conflict_started = false
|
||||||
RotorOps.zone_states = {not_started = 0, active = 1, cleared = 2}
|
RotorOps.zone_states = {not_started = 0, active = 1, cleared = 2, started = 3}
|
||||||
RotorOps.ground_speed = 10
|
RotorOps.ground_speed = 10
|
||||||
RotorOps.std_phonetic_names = true
|
|
||||||
|
RotorOps.zones = {}
|
||||||
|
RotorOps.active_zone = ""
|
||||||
|
RotorOps.active_zone_index = 1
|
||||||
|
RotorOps.active_zone_flag = 1
|
||||||
|
|
||||||
trigger.action.outText("ROTOR OPS STARTED", 5)
|
trigger.action.outText("ROTOR OPS STARTED", 5)
|
||||||
env.info("ROTOR OPS STARTED")
|
env.info("ROTOR OPS STARTED")
|
||||||
|
|
||||||
@ -277,10 +282,7 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
RotorOps.zones = {}
|
|
||||||
RotorOps.active_zone = ""
|
|
||||||
RotorOps.active_zone_index = 1
|
|
||||||
RotorOps.active_zone_flag = 1
|
|
||||||
|
|
||||||
|
|
||||||
function RotorOps.sortOutInfantry(mixed_units)
|
function RotorOps.sortOutInfantry(mixed_units)
|
||||||
@ -296,6 +298,8 @@ function RotorOps.sortOutInfantry(mixed_units)
|
|||||||
return {infantry = _infantry, not_infantry = _not_infantry}
|
return {infantry = _infantry, not_infantry = _not_infantry}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function RotorOps.assessUnitsInZone(var)
|
function RotorOps.assessUnitsInZone(var)
|
||||||
--find and sort units found in the active zone
|
--find and sort units found in the active zone
|
||||||
local red_ground_units = mist.getUnitsInZones(mist.makeUnitTable({'[red][vehicle]'}), {RotorOps.active_zone}) --consider adding other unit types
|
local red_ground_units = mist.getUnitsInZones(mist.makeUnitTable({'[red][vehicle]'}), {RotorOps.active_zone}) --consider adding other unit types
|
||||||
@ -312,13 +316,17 @@ function RotorOps.assessUnitsInZone(var)
|
|||||||
gameMsg(gameMsgs.cleared, RotorOps.active_zone_index)
|
gameMsg(gameMsgs.cleared, RotorOps.active_zone_index)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local message = ""
|
||||||
|
local header = ""
|
||||||
if RotorOps.conflict_started then
|
if RotorOps.conflict_started then
|
||||||
trigger.action.outText("[BATTLE FOR "..RotorOps.active_zone .. "] RED: " ..#red_infantry.. " infantry, " .. #red_vehicles .. " vehicles. BLUE: "..#blue_infantry.. " infantry, " .. #blue_vehicles.." vehicles.", 5, true)
|
message = "[BATTLE FOR "..RotorOps.active_zone .. "] RED: " ..#red_infantry.. " infantry, " .. #red_vehicles .. " vehicles. BLUE: "..#blue_infantry.. " infantry, " .. #blue_vehicles.." vehicles."
|
||||||
else trigger.outText("ALL TROOPS GET TO TRANSPORT AND PREPARE FOR DEPLOYMENT!")
|
else
|
||||||
|
message = "ALL TROOPS GET TO TRANSPORT AND PREPARE FOR DEPLOYMENT!"
|
||||||
end
|
end
|
||||||
|
trigger.action.outText(message , 5, true)
|
||||||
local id = timer.scheduleFunction(RotorOps.assessUnitsInZone, 1, timer.getTime() + 5)
|
local id = timer.scheduleFunction(RotorOps.assessUnitsInZone, 1, timer.getTime() + 5)
|
||||||
end
|
end
|
||||||
local id = timer.scheduleFunction(RotorOps.assessUnitsInZone, 1, timer.getTime() + 5)
|
|
||||||
|
|
||||||
|
|
||||||
function RotorOps.drawZones(zones)
|
function RotorOps.drawZones(zones)
|
||||||
@ -363,25 +371,28 @@ function RotorOps.addPilots(var)
|
|||||||
end
|
end
|
||||||
local id = timer.scheduleFunction(RotorOps.addPilots, 1, timer.getTime() + 15)
|
local id = timer.scheduleFunction(RotorOps.addPilots, 1, timer.getTime() + 15)
|
||||||
end
|
end
|
||||||
RotorOps.addPilots(1)
|
|
||||||
|
|
||||||
function RotorOps.sendUnitsToZone(units_table, zone)
|
|
||||||
|
function RotorOps.sendUnitsToZone(units_table, zone, _formation, _final_heading, _speed, _force_offroad)
|
||||||
|
local formation = _formation or 'cone'
|
||||||
|
local final_heading = _final_heading or nil
|
||||||
|
local speed = _speed or RotorOps.ground_speed
|
||||||
|
local force_offroad = _force_offroad or false
|
||||||
local groups = RotorOps.groupsFromUnits(units_table)
|
local groups = RotorOps.groupsFromUnits(units_table)
|
||||||
for index, group in pairs(groups) do
|
for index, group in pairs(groups) do
|
||||||
--debugMsg("sending to zone: "..zone.." grp: "..group)
|
--debugMsg("sending to zone: "..zone.." grp: "..group)
|
||||||
mist.groupToPoint(group, zone, 'cone', nil, nil, false)
|
mist.groupToPoint(group, zone, formation, final_heading, speed, force_offroad)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function RotorOps.pushZone()
|
function RotorOps.pushZone()
|
||||||
RotorOps.setActiveZone(1)
|
RotorOps.setActiveZone(RotorOps.active_zone_index + 1)
|
||||||
RotorOps.sendUnitsToZone(staged_units, RotorOps.zones[RotorOps.active_zone_index].outter_zone_name)
|
RotorOps.sendUnitsToZone(staged_units, RotorOps.zones[RotorOps.active_zone_index].outter_zone_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
function RotorOps.fallBack()
|
function RotorOps.fallBack()
|
||||||
RotorOps.setActiveZone(-1)
|
RotorOps.setActiveZone(RotorOps.active_zone_index - 1)
|
||||||
RotorOps.sendUnitsToZone(staged_units, RotorOps.zones[RotorOps.active_zone_index].outter_zone_name)
|
RotorOps.sendUnitsToZone(staged_units, RotorOps.zones[RotorOps.active_zone_index].outter_zone_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -396,15 +407,18 @@ function RotorOps.startConflict()
|
|||||||
commandDB['fall_back'] = missionCommands.addCommand( "Fall back to prev zone" , conflict_zones_menu , RotorOps.fallBack)
|
commandDB['fall_back'] = missionCommands.addCommand( "Fall back to prev zone" , conflict_zones_menu , RotorOps.fallBack)
|
||||||
|
|
||||||
gameMsg(gameMsgs.push, 2)
|
gameMsg(gameMsgs.push, 2)
|
||||||
|
RotorOps.setActiveZone(2)
|
||||||
staged_units = mist.getUnitsInZones(mist.makeUnitTable({'[all][vehicle]'}), {RotorOps.zones[1].outter_zone_name})
|
staged_units = mist.getUnitsInZones(mist.makeUnitTable({'[all][vehicle]'}), {RotorOps.zones[1].outter_zone_name})
|
||||||
|
--local helicopters = mist.getUnitsInZones(mist.makeUnitTable({'[all][helicopter]'}), {RotorOps.zones[1].outter_zone_name})
|
||||||
|
--RotorOps.sendUnitsToZone(helicopters, RotorOps.zones[2].outter_zone_name, nil, nil, 90)
|
||||||
RotorOps.sendUnitsToZone(staged_units, RotorOps.zones[2].outter_zone_name)
|
RotorOps.sendUnitsToZone(staged_units, RotorOps.zones[2].outter_zone_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function RotorOps.setActiveZone(value) --this should accept the zone index so that we can set active value to any zone and set up zones appropriately
|
function RotorOps.setActiveZone(new_index)
|
||||||
local old_index = RotorOps.active_zone_index
|
local old_index = RotorOps.active_zone_index
|
||||||
local new_index = RotorOps.active_zone_index + value
|
--local new_index = RotorOps.active_zone_index + value
|
||||||
if new_index > #RotorOps.zones then
|
if new_index > #RotorOps.zones then
|
||||||
new_index = #RotorOps.zones
|
new_index = #RotorOps.zones
|
||||||
end
|
end
|
||||||
@ -428,9 +442,20 @@ function RotorOps.setActiveZone(value) --this should accept the zone index so t
|
|||||||
RotorOps.active_zone = RotorOps.zones[new_index].outter_zone_name
|
RotorOps.active_zone = RotorOps.zones[new_index].outter_zone_name
|
||||||
debugMsg("active zone: "..RotorOps.active_zone.." old zone: "..RotorOps.zones[old_index].outter_zone_name)
|
debugMsg("active zone: "..RotorOps.active_zone.." old zone: "..RotorOps.zones[old_index].outter_zone_name)
|
||||||
trigger.action.setUserFlag(RotorOps.active_zone_flag, RotorOps.active_zone_index)
|
trigger.action.setUserFlag(RotorOps.active_zone_flag, RotorOps.active_zone_index)
|
||||||
RotorOps.drawZones()
|
RotorOps.drawZones(RotorOps.zones)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function RotorOps.zoneCleared(zone)
|
||||||
|
for key, value in pairs(RotorOps.zones) do
|
||||||
|
if zone == RotorOps.zones[key].outter_zone_name then
|
||||||
|
local flag = RotorOps.zones[key].zone_status_flag
|
||||||
|
trigger.action.setUserFlag(_zone_status_flag, RotorOps.zone_states.cleared)
|
||||||
|
else --debugMsg(zone.." not found in table")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
function RotorOps.setupCTLD()
|
function RotorOps.setupCTLD()
|
||||||
ctld.enableCrates = false
|
ctld.enableCrates = false
|
||||||
ctld.enabledFOBBuilding = false
|
ctld.enabledFOBBuilding = false
|
||||||
@ -461,14 +486,13 @@ function RotorOps.setupCTLD()
|
|||||||
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
RotorOps.setupCTLD()
|
|
||||||
|
|
||||||
|
|
||||||
function RotorOps.logSomething()
|
|
||||||
|
function RotorOps.debugAction()
|
||||||
--trigger.action.outText("zones: ".. mist.utils.tableShow(RotorOps.zones), 5)
|
--trigger.action.outText("zones: ".. mist.utils.tableShow(RotorOps.zones), 5)
|
||||||
for key, value in pairs(RotorOps.zones) do
|
RotorOps.zoneCleared("CHARLIE")
|
||||||
trigger.action.outText("zone: ".. RotorOps.zones[key].outter_zone_name, 5)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -478,9 +502,9 @@ function RotorOps.setupRadioMenu()
|
|||||||
|
|
||||||
|
|
||||||
commandDB['start_conflict'] = missionCommands.addCommand( "Start conflict" , conflict_zones_menu , RotorOps.startConflict)
|
commandDB['start_conflict'] = missionCommands.addCommand( "Start conflict" , conflict_zones_menu , RotorOps.startConflict)
|
||||||
--commandDB['log_something'] = missionCommands.addCommand( "Log something" , conflict_zones_menu , RotorOps.logSomething)
|
commandDB['debug_action'] = missionCommands.addCommand( "Debug action" , conflict_zones_menu , RotorOps.debugAction)
|
||||||
end
|
end
|
||||||
RotorOps.setupRadioMenu()
|
|
||||||
|
|
||||||
function RotorOps.spawnInfantryAtZone(vars)
|
function RotorOps.spawnInfantryAtZone(vars)
|
||||||
local side = vars.side
|
local side = vars.side
|
||||||
@ -514,21 +538,12 @@ function RotorOps.addZone(_outter_zone_name, _zone_status_flag)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function RotorOps.setupConflict(_active_zone_flag)
|
function RotorOps.setupConflict(_active_zone_flag)
|
||||||
|
local id = timer.scheduleFunction(RotorOps.assessUnitsInZone, 1, timer.getTime() + 5)
|
||||||
|
RotorOps.addPilots(1)
|
||||||
|
RotorOps.setupCTLD()
|
||||||
|
RotorOps.setupRadioMenu()
|
||||||
RotorOps.active_zone_flag = _active_zone_flag
|
RotorOps.active_zone_flag = _active_zone_flag
|
||||||
RotorOps.setActiveZone(0)
|
--RotorOps.setActiveZone(2)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--[[
|
|
||||||
vars = {
|
|
||||||
inner_zone = '',
|
|
||||||
infantry_spawn = 10,
|
|
||||||
infantry_respawn = 50,
|
|
||||||
infantry_spawn_zone = ''
|
|
||||||
defender_coal = 'red'
|
|
||||||
}
|
|
||||||
]]
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user