diff --git a/Moose Development/Moose/Ops/Intelligence.lua b/Moose Development/Moose/Ops/Intelligence.lua index 14882c67e..a20365af8 100644 --- a/Moose Development/Moose/Ops/Intelligence.lua +++ b/Moose Development/Moose/Ops/Intelligence.lua @@ -169,14 +169,14 @@ INTEL.Ctype={ --- INTEL class version. -- @field #string version -INTEL.version="0.3.9" +INTEL.version="0.3.10" ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ToDo list ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- TODO: Add min cluster size. Only create new clusters if they have a certain group size. --- TODO: process detected set asynchroniously for better performance. +-- NODO: process detected set asynchroniously for better performance. -- DONE: Add statics. -- DONE: Filter detection methods. -- DONE: Accept zones. @@ -536,8 +536,11 @@ function INTEL:RemoveCorridorZone(CorridorZone) return self end ---- [Air] Add corrdidor zone floor and height. Are considered as ASL (above sea level or barometric) values. +--- [Air] Add corrdidor zone floor and height. This is generally applicable to all(!) corridor zones. Considered as ASL (above sea level or barometric) values. -- Overrides corridor exception for objects flying outside this limitations. +-- To set an individual ceiling/floor on any Core.Zone#ZONE you wish to use, set these properties on the Core.Zone#ZONE object: +-- `mycorridorzone:SetProperty("CorridorFloor",500)` -- meters, case sensitivity matters! +-- `mycorridorzone:SetProperty("CorridorCeiling",10000)` -- meters, case sensitivity matters! -- @param #INTEL self -- @param #number Floor Floor altitude in meters. -- @param #number Ceiling Ceiling altitude in meters. @@ -548,8 +551,11 @@ function INTEL:SetCorridorLimits(Floor,Ceiling) return self end ---- [Air] Add corrdidor zone floor and height. Are considered as ASL (above sea level or barometric) values. +--- [Air] Add corrdidor zone floor and height. This is generally applicable to all(!) corridor zones. Considered as ASL (above sea level or barometric) values. -- Overrides corridor exception for objects flying outside this limitations. +-- To set an individual ceiling/floor on any Core.Zone#ZONE you wish to use, set these properties on the Core.Zone#ZONE object: +-- `mycorridorzone:SetProperty("CorridorFloor",UTILS.FeetToMeters(5000))` -- feet, case sensitivity matters! +-- `mycorridorzone:SetProperty("CorridorCeiling",UTILS.FeetToMeters(20000))` -- feet, case sensitivity matters! -- @param #INTEL self -- @param #number Floor Floor altitude in feet. -- @param #number Ceiling Ceiling altitude in feet. @@ -991,14 +997,16 @@ function INTEL:UpdateIntel() for _,_zone in pairs(self.corridorzoneset.Set) do local zone=_zone --Core.Zone#ZONE if unit:IsInZone(zone) then + local corridorfloor = zone:GetProperty("CorridorFloor") or self.corridorfloor + local corridorceiling = zone:GetProperty("CorridorCeiling") or self.corridorceiling local debugtext = "Corridorzone Check for unit "..unit:GetName().."\n" debugtext = debugtext .. string.format("IsAir %s | Alt %dft | Floor %dft | Ceil %dft",tostring(unit:IsAir()),tonumber(UTILS.MetersToFeet(unit:GetAltitude())), - tonumber(UTILS.MetersToFeet(self.corridorfloor)),tonumber(UTILS.MetersToFeet(self.corridorceiling))) + tonumber(UTILS.MetersToFeet(corridorfloor)),tonumber(UTILS.MetersToFeet(corridorceiling))) MESSAGE:New(debugtext,15,"INTEL"):ToAllIf(self.verbose>1):ToLogIf(self.verbose>1) - if unit:IsAir() and (self.corridorfloor ~= nil or self.corridorceiling ~= nil) then + if unit:IsAir() and (corridorfloor ~= nil or corridorceiling ~= nil) then local alt = unit:GetAltitude() - if self.corridorfloor and alt > self.corridorfloor then inzone = true end - if self.corridorceiling and (inzone == true or self.corridorfloor == nil) and alt < self.corridorceiling then inzone = true else inzone = false end + if corridorfloor and alt > corridorfloor then inzone = true end + if corridorceiling and (inzone == true or corridorfloor == nil) and alt < corridorceiling then inzone = true else inzone = false end if inzone == true then break end else inzone=true diff --git a/Moose Development/Moose/Ops/PlayerTask.lua b/Moose Development/Moose/Ops/PlayerTask.lua index 0800ddc77..d52e7347a 100644 --- a/Moose Development/Moose/Ops/PlayerTask.lua +++ b/Moose Development/Moose/Ops/PlayerTask.lua @@ -2120,7 +2120,7 @@ function PLAYERTASKCONTROLLER:New(Name, Coalition, Type, ClientFilter) self:AddTransition("*", "Stop", "Stopped") self:__Start(2) - local starttime = math.random(5,10) + local starttime = math.random(10,15) self:__Status(starttime) self:I(self.lid..self.version.." Started.") @@ -3787,7 +3787,7 @@ function PLAYERTASKCONTROLLER:_FlashInfo() local task = self.TasksPerPlayer:ReadByID(_playername) -- Ops.PlayerTask#PLAYERTASK local Coordinate = task.Target:GetCoordinate() local CoordText = "" - if self.Type ~= PLAYERTASKCONTROLLER.Type.A2A then + if self.Type ~= PLAYERTASKCONTROLLER.Type.A2A and task.Type~=AUFTRAG.Type.INTERCEPT then CoordText = Coordinate:ToStringA2G(_client, nil, self.ShowMagnetic) else CoordText = Coordinate:ToStringA2A(_client, nil, self.ShowMagnetic) @@ -3846,7 +3846,7 @@ function PLAYERTASKCONTROLLER:_ActiveTaskInfo(Task, Group, Client) local CoordTextLLDM = nil local ShowThreatInfo = task.ShowThreatDetails local LasingDrone = self:_FindLasingDroneForTaskID(task.PlayerTaskNr) - if self.Type ~= PLAYERTASKCONTROLLER.Type.A2A then + if self.Type ~= PLAYERTASKCONTROLLER.Type.A2A and task.Type~=AUFTRAG.Type.INTERCEPT then CoordText = Coordinate:ToStringA2G(Client,nil,self.ShowMagnetic) else CoordText = Coordinate:ToStringA2A(Client,nil,self.ShowMagnetic) @@ -5059,7 +5059,8 @@ function PLAYERTASKCONTROLLER:onafterStart(From, Event, To) self:SetEventPriority(5) -- Persistence if self.TaskPersistanceSwitch == true then - self:_LoadTasksPersisted() + self:ScheduleOnce(5,self._LoadTasksPersisted,self) + --self:_LoadTasksPersisted() end return self end