CHIEF/AUFTRAG/OPSGROUP Fixed RECON type mission adhereing to paramters adinfinitum and randomly, fixed CAS mission in CHIEF

This commit is contained in:
Applevangelist 2021-12-04 16:24:45 +01:00
parent 1c5c205614
commit c34dc9f946
3 changed files with 29 additions and 11 deletions

View File

@ -1717,7 +1717,7 @@ function AUFTRAG:NewRECON(ZoneSet, Speed, Altitude, Adinfinitum, Randomly)
mission:_TargetFromObject(ZoneSet) mission:_TargetFromObject(ZoneSet)
mission.missionTask=mission:GetMissionTaskforMissionType(AUFTRAG.Type.RECON) mission.missionTask=mission:GetMissionTaskforMissionType(AUFTRAG.Type.RECON)
mission.optionROE=ENUMS.ROE.WeaponHold mission.optionROE=ENUMS.ROE.WeaponHold
mission.optionROT=ENUMS.ROT.PassiveDefense mission.optionROT=ENUMS.ROT.PassiveDefense
@ -1730,8 +1730,14 @@ function AUFTRAG:NewRECON(ZoneSet, Speed, Altitude, Adinfinitum, Randomly)
mission.categories={AUFTRAG.Category.ALL} mission.categories={AUFTRAG.Category.ALL}
mission.DCStask=mission:GetDCSMissionTask() mission.DCStask=mission:GetDCSMissionTask()
mission.DCStask.params.adinfitum=Adinfinitum mission.DCStask.params.adinfinitum=Adinfinitum
mission.DCStask.params.randomly=Randomly mission.DCStask.params.randomly=Randomly
if Randomly then
local targets = mission.DCStask.params.target.targets -- Ops.Target#TARGET
local shuffled = UTILS.ShuffleTable(targets)
mission.DCStask.params.target.targets = shuffled
end
return mission return mission
end end

View File

@ -2257,18 +2257,24 @@ function CHIEF:RecruitAssetsForZone(StratZone, MissionType, NassetsMin, NassetsM
-- Create Patrol zone mission. -- Create Patrol zone mission.
local caszone = StratZone.opszone.zone local caszone = StratZone.opszone.zone
local coord = caszone:GetCoordinate() local coord = caszone:GetCoordinate()
local height = UTILS.MetersToFeet(coord:GetLandHeight())+2000 local height = UTILS.MetersToFeet(coord:GetLandHeight())+2500
local mission=AUFTRAG:NewPATROLZONE(caszone) local Speed = 200
--local mission=AUFTRAG:NewPATROLZONE(caszone)
if assets[1] then
if assets[1].speedmax then
Speed = UTILS.KmphToKnots(assets[1].speedmax * 0.7) or 200
end
end
--local Speed = UTILS.KmphToKnots(assets[1].speedmax * 0.7) or 200
local Leg = caszone:GetRadius() <= 10000 and 5 or UTILS.MetersToNM(caszone:GetRadius())
local mission=AUFTRAG:NewCAS(caszone,height,Speed,coord,math.random(0,359),Leg)
mission:SetEngageDetected(25, {"Ground Units", "Light armed ships", "Helicopters"}) mission:SetEngageDetected(25, {"Ground Units", "Light armed ships", "Helicopters"})
mission:SetWeaponExpend(AI.Task.WeaponExpend.ALL) mission:SetWeaponExpend(AI.Task.WeaponExpend.ALL)
mission:SetMissionSpeed(Speed)
-- Add assets to mission. -- Add assets to mission.
for _,asset in pairs(assets) do for _,asset in pairs(assets) do
mission:AddAsset(asset) mission:AddAsset(asset)
if asset.speedmax then
local speed = UTILS.KmphToKnots(asset.speedmax * 0.7) or 100
mission:SetMissionSpeed(speed)
end
end end
-- Assign mission to legions. -- Assign mission to legions.
@ -2307,7 +2313,7 @@ function CHIEF:RecruitAssetsForZone(StratZone, MissionType, NassetsMin, NassetsM
-- Create Armored on guard mission -- Create Armored on guard mission
local TargetZone = StratZone.opszone.zone local TargetZone = StratZone.opszone.zone
local Target = TargetZone:GetCoordinate() local Target = TargetZone:GetCoordinate()
local mission=AUFTRAG:NewARMOREDGUARD(Target) local mission=AUFTRAG:NewARMOREDGUARD(Target,"Vee")
-- Add assets to mission. -- Add assets to mission.
for _,asset in pairs(assets) do for _,asset in pairs(assets) do

View File

@ -3923,6 +3923,10 @@ function OPSGROUP:AddMission(Mission)
-- Add mission to queue. -- Add mission to queue.
table.insert(self.missionqueue, Mission) table.insert(self.missionqueue, Mission)
-- ad infinitum?
self.adinfinitum = Mission.DCStask.params.adinfinitum and Mission.DCStask.params.adinfinitum or false
-- Info text. -- Info text.
local text=string.format("Added %s mission %s starting at %s, stopping at %s", local text=string.format("Added %s mission %s starting at %s, stopping at %s",
tostring(Mission.type), tostring(Mission.name), UTILS.SecondsToClock(Mission.Tstart, true), Mission.Tstop and UTILS.SecondsToClock(Mission.Tstop, true) or "INF") tostring(Mission.type), tostring(Mission.name), UTILS.SecondsToClock(Mission.Tstart, true), Mission.Tstop and UTILS.SecondsToClock(Mission.Tstop, true) or "INF")
@ -4954,7 +4958,9 @@ function OPSGROUP:onafterPassingWaypoint(From, Event, To, Waypoint)
-- Increase counter. -- Increase counter.
self.lastindex=self.lastindex+1 self.lastindex=self.lastindex+1
if self.adinfinitum and n==#target.targets then -- all targets done once
self.lastindex = 1
end
else else
-- Get waypoint index. -- Get waypoint index.