From 3a3869e095fce32d678d6877ffbb5b1522dfbdf6 Mon Sep 17 00:00:00 2001 From: FlightControl Date: Wed, 19 Apr 2017 16:53:35 +0200 Subject: [PATCH 1/3] Lasing is working --- Moose Development/Moose/AI/AI_Designate.lua | 230 ++++++++++++++++++ Moose Development/Moose/Core/Set.lua | 25 ++ Moose Development/Moose/Core/Spot.lua | 98 ++++++++ .../Moose/Functional/Detection.lua | 2 +- .../Moose/Wrapper/Positionable.lua | 44 ++++ Moose Development/Moose/Wrapper/Unit.lua | 2 + Moose Mission Setup/Moose.files | 2 + Moose Mission Setup/Moose.lua | 4 +- 8 files changed, 405 insertions(+), 2 deletions(-) create mode 100644 Moose Development/Moose/AI/AI_Designate.lua create mode 100644 Moose Development/Moose/Core/Spot.lua diff --git a/Moose Development/Moose/AI/AI_Designate.lua b/Moose Development/Moose/AI/AI_Designate.lua new file mode 100644 index 000000000..8c4335b4c --- /dev/null +++ b/Moose Development/Moose/AI/AI_Designate.lua @@ -0,0 +1,230 @@ +--- **AI (Release 2.1)** -- Management of target designation. +-- +-- --![Banner Image](..\Presentations\AI_DESIGNATE\CARGO.JPG) +-- +-- === +-- +-- @module AI_Designate + + +do -- AI_DESIGNATE + + --- @type AI_DESIGNATE + -- @extends Core.Fsm#FSM_PROCESS + + --- + -- + -- @field #AI_DESIGNATE AI_DESIGNATE + -- + AI_DESIGNATE = { + ClassName = "AI_DESIGNATE", + } + + --- AI_DESIGNATE Constructor. This class is an abstract class and should not be instantiated. + -- @param #AI_DESIGNATE self + -- @param Functional.Detection#DETECTION_BASE Detection + -- @param Core.Set#SET_GROUP GroupSet The set of groups to designate for. + -- @return #AI_DESIGNATE + function AI_DESIGNATE:New( Detection, GroupSet ) + + local self = BASE:Inherit( self, FSM:New() ) -- #AI_DESIGNATE + self:F( { Detection } ) + + self:SetStartState( "Designating" ) + self:AddTransition( "*", "Detect", "*" ) + self:AddTransition( "*", "LaseOn", "*" ) + self:AddTransition( "*", "LaseOff", "*" ) + self:AddTransition( "*", "Smoke", "*" ) + self:AddTransition( "*", "Status", "*" ) + + self.Detection = Detection + self.GroupSet = GroupSet + self.RecceSet = Detection:GetDetectionSetGroup() + self.Spots = {} + + self.Detection:__Start( 2 ) + + + return self + end + + --- + -- @param #AI_DESIGNATE self + -- @return #AI_DESIGNATE + function AI_DESIGNATE:onafterDetect() + + self:__Detect( -60 ) + + self.GroupSet:ForEachGroup( + + --- @param Wrapper.Group#GROUP GroupReport + function( GroupReport ) + + self:E(GroupReport:GetName()) + + local DesignateMenu = GroupReport:GetState( GroupReport, "DesignateMenu" ) -- Core.Menu#MENU_GROUP + if DesignateMenu then + DesignateMenu:Remove() + DesignateMenu = nil + self:E("Remove Menu") + end + DesignateMenu = MENU_GROUP:New( GroupReport, "Designate Targets" ) + self:E(DesignateMenu) + GroupReport:SetState( GroupReport, "DesignateMenu", DesignateMenu ) + + + local DetectedItems = self.Detection:GetDetectedItems() + + for Index, DetectedItemData in pairs( DetectedItems ) do + + local DetectedReport = self.Detection:DetectedItemReportSummary( Index ) + + GroupReport:MessageToAll( DetectedReport, 15, "Detected" ) + + local DetectedMenu = MENU_GROUP:New( + GroupReport, + DetectedReport, + DesignateMenu + ) + + if self.Spots[Index] then + + MENU_GROUP_COMMAND:New( + GroupReport, + "Switch laser Off", + DetectedMenu, + self.MenuLaseOff, + self, + Index + ) + else + MENU_GROUP_COMMAND:New( + GroupReport, + "Lase target 60 secs", + DetectedMenu, + self.MenuLaseOn, + self, + Index, + 60 + ) + MENU_GROUP_COMMAND:New( + GroupReport, + "Lase target 120 secs", + DetectedMenu, + self.MenuLaseOn, + self, + Index, + 120 + ) + end + + MENU_GROUP_COMMAND:New( + GroupReport, + "Smoke", + DetectedMenu, + self.MenuSmoke, + self, + Index + ) + + + end + end + ) + + return self + end + + --- + -- @param #AI_DESIGNATE self + function AI_DESIGNATE:MenuSmoke( Index ) + + self:E("Designate through Smoke") + + self:__Smoke( 1, Index ) + end + + --- + -- @param #AI_DESIGNATE self + function AI_DESIGNATE:MenuLaseOn( Index, Duration ) + + self:E("Designate through Lase") + + self:__LaseOn( 1, Index, Duration ) + end + + --- + -- @param #AI_DESIGNATE self + function AI_DESIGNATE:MenuLaseOff( Index, Duration ) + + self:E("Lasing off") + + self:__LaseOff( 1, Index ) + end + + --- + -- @param #AI_DESIGNATE self + -- @return #AI_DESIGNATE + function AI_DESIGNATE:onafterLaseOn( From, Event, To, Index, Duration ) + + local TargetSetUnit = self.Detection:GetDetectedSet( Index ) + + TargetSetUnit:ForEachUnit( + --- @param Wrapper.Unit#UNIT SmokeUnit + function( SmokeUnit ) + self:E("In procedure") + --if math.random( 1, ( 100 * TargetSetUnit:Count() ) / 100 ) <= 100 then + if SmokeUnit:IsAlive() then + local NearestRecceGroup = self.RecceSet:FindNearestGroupFromPointVec2(SmokeUnit:GetPointVec2()) + local NearestRecceUnit = NearestRecceGroup:GetUnit(1) + self:E( { NearestRecceUnit = NearestRecceUnit } ) + self.Spots[Index] = NearestRecceUnit:LaseUnitOn( SmokeUnit, nil, Duration ) + end + --end + end + ) + end + + --- + -- @param #AI_DESIGNATE self + -- @return #AI_DESIGNATE + function AI_DESIGNATE:onafterLaseOff( From, Event, To, Index ) + + local TargetSetUnit = self.Detection:GetDetectedSet( Index ) + + self.Spots[Index]:LaseOff() + self.Spots[Index] = nil + + end + + + --- + -- @param #AI_DESIGNATE self + -- @return #AI_DESIGNATE + function AI_DESIGNATE:onafterSmoke( From, Event, To, Index ) + + + local TargetSetUnit = self.Detection:GetDetectedSet( Index ) + + TargetSetUnit:ForEachUnit( + --- @param Wrapper.Unit#UNIT SmokeUnit + function( SmokeUnit ) + self:E("In procedure") + --if math.random( 1, ( 100 * TargetSetUnit:Count() ) / 100 ) <= 100 then + SCHEDULER:New( self, + function() + if SmokeUnit:IsAlive() then + SmokeUnit:Smoke( SMOKECOLOR.Red, 150 ) + end + end, {}, math.random( 10, 60 ) + ) + --end + end + ) + + + end + +end + + diff --git a/Moose Development/Moose/Core/Set.lua b/Moose Development/Moose/Core/Set.lua index f83a2903a..bac65d9aa 100644 --- a/Moose Development/Moose/Core/Set.lua +++ b/Moose Development/Moose/Core/Set.lua @@ -736,6 +736,31 @@ function SET_GROUP:FindGroup( GroupName ) return GroupFound end +--- Iterate the SET_GROUP while identifying the nearest object from a @{Point#POINT_VEC2}. +-- @param #SET_GROUP self +-- @param Core.Point#POINT_VEC2 PointVec2 A @{Point#POINT_VEC2} object from where to evaluate the closest object in the set. +-- @return Wrapper.Group#GROUP The closest group. +function SET_GROUP:FindNearestGroupFromPointVec2( PointVec2 ) + self:F2( PointVec2 ) + + local NearestGroup = nil + local ClosestDistance = nil + + for ObjectID, ObjectData in pairs( self.Set ) do + if NearestGroup == nil then + NearestGroup = ObjectData + ClosestDistance = PointVec2:DistanceFromVec2( ObjectData:GetVec2() ) + else + local Distance = PointVec2:DistanceFromVec2( ObjectData:GetVec2() ) + if Distance < ClosestDistance then + NearestGroup = ObjectData + ClosestDistance = Distance + end + end + end + + return NearestGroup +end --- Builds a set of groups of coalitions. diff --git a/Moose Development/Moose/Core/Spot.lua b/Moose Development/Moose/Core/Spot.lua new file mode 100644 index 000000000..9b4d9e12c --- /dev/null +++ b/Moose Development/Moose/Core/Spot.lua @@ -0,0 +1,98 @@ +--- **Core** -- Management of SPOT logistics, that can be transported from and to transportation carriers. +-- +-- ![Banner Image](..\Presentations\SPOT\Dia1.JPG) +-- +-- === +-- +-- Spot lases points endlessly or for a duration. +-- +-- ==== +-- +-- # Demo Missions +-- +-- ### [SPOT Demo Missions source code]() +-- +-- ### [SPOT Demo Missions, only for beta testers]() +-- +-- ### [ALL Demo Missions pack of the last release](https://github.com/FlightControl-Master/MOOSE_MISSIONS/releases) +-- +-- ==== +-- +-- # YouTube Channel +-- +-- ### [SPOT YouTube Channel]() +-- +-- ==== +-- +-- This module is still under construction, but is described above works already, and will keep working ... +-- +-- @module Spot + + +do + + --- @type SPOT + SPOT = { + ClassName = "SPOT", + } + + --- SPOT Constructor. + -- @param #SPOT self + -- @param Wrapper.Unit#UNIT Recce + -- @param #number LaserCode + -- @param #number Duration + -- @return #SPOT + function SPOT:New( Recce ) + + local self = BASE:Inherit( self, FSM:New() ) -- #SPOT + self:F( { Type, Name, Weight } ) + + self:SetStartState( "Off" ) + self:AddTransition( "Off", "LaseOn", "On" ) + self:AddTransition( "On" , "LaseOff", "Off" ) + + self.Recce = Recce + + self.LaseScheduler = SCHEDULER:New( self ) + + self:SetEventPriority( 5 ) + + return self + end + + --- @param #SPOT self + -- @param From + -- @param Event + -- @param To + -- @param Core.Point#POINT_VEC3 PointVec3 + -- @param #number LaserCode + -- @param #number Duration + function SPOT:onafterLaseOn( From, Event, To, PointVec3, LaserCode, Duration ) + + local function StopLase( self ) + self:LaseOff() + end + + local RecceDcsUnit = self.Recce:GetDCSObject() + local TargetVec3 = PointVec3:GetVec3() + self:E("lasing") + self.Spot = Spot.createInfraRed( RecceDcsUnit, { x = 0, y = 1, z = 0 }, TargetVec3, LaserCode ) + if Duration then + self.ScheduleID = self.LaseScheduler:Schedule( self, StopLase, {self}, Duration ) + end + end + + --- @param #SPOT self + -- @param From + -- @param Event + -- @param To + function SPOT:onafterLaseOff( From, Event, To ) + + self.Spot:destroy() + self.Spot = nil + if self.ScheduleID then + self.LaseScheduler:Stop(self.ScheduleID) + end + self.ScheduleID = nil + end +end \ No newline at end of file diff --git a/Moose Development/Moose/Functional/Detection.lua b/Moose Development/Moose/Functional/Detection.lua index 004d93c59..cfb9c02f4 100644 --- a/Moose Development/Moose/Functional/Detection.lua +++ b/Moose Development/Moose/Functional/Detection.lua @@ -1250,7 +1250,7 @@ do -- DETECTION_BASE --- Get the detection Groups. -- @param #DETECTION_BASE self - -- @return Wrapper.Group#GROUP + -- @return Core.Set#SET_GROUP function DETECTION_BASE:GetDetectionSetGroup() local DetectionSetGroup = self.DetectionSetGroup diff --git a/Moose Development/Moose/Wrapper/Positionable.lua b/Moose Development/Moose/Wrapper/Positionable.lua index e6bd95cd3..0d608432e 100644 --- a/Moose Development/Moose/Wrapper/Positionable.lua +++ b/Moose Development/Moose/Wrapper/Positionable.lua @@ -450,3 +450,47 @@ function POSITIONABLE:GetRadio() self:F2(self) return RADIO:New(self) end + +--- Start Lasing a POSITIONABLE +-- @param #POSITIONABLE self +-- @param #POSITIONABLE Target +-- @param #number LaserCode +-- @param #number Duration +-- @return Spot +function POSITIONABLE:LaseUnitOn( Target, LaserCode, Duration ) + self:F2() + + LaserCode = LaserCode or math.random( 1000, 9999 ) + + local TargetUnitName = Target:GetName() + + self.Spots = self.Spots or {} + self.Spots[TargetUnitName] = self.Spots[TargetUnitName] or {} + + local RecceDcsUnit = self:GetDCSObject() + local TargetVec3 = Target:GetVec3() + + self:E("bulding spot") + self.Spots[TargetUnitName] = SPOT:New( self ):LaseOn( Target:GetPointVec3(), LaserCode, Duration) + + return self.Spots[TargetUnitName] + +end + +--- Stop Lasing a POSITIONABLE +-- @param #POSITIONABLE self +-- @param #POSITIONABLE Target +-- @return #POSITIONABLE +function POSITIONABLE:LaseUnitOff( Target ) + self:F2() + + local TargetUnitName = Target:GetName() + + self.Spots = self.Spots or {} + if self.Spots[TargetUnitName] then + self.Spots[TargetUnitName]:LaseOff() + self.Spots[TargetUnitName] = nil + end + + return self +end diff --git a/Moose Development/Moose/Wrapper/Unit.lua b/Moose Development/Moose/Wrapper/Unit.lua index a8d4e75ca..183bc4d5a 100644 --- a/Moose Development/Moose/Wrapper/Unit.lua +++ b/Moose Development/Moose/Wrapper/Unit.lua @@ -859,6 +859,8 @@ function UNIT:SmokeBlue() trigger.action.smoke( self:GetVec3(), trigger.smokeColor.Blue ) end + + -- Is methods --- Returns if the unit is of an air category. diff --git a/Moose Mission Setup/Moose.files b/Moose Mission Setup/Moose.files index 57f9bca5a..a244de717 100644 --- a/Moose Mission Setup/Moose.files +++ b/Moose Mission Setup/Moose.files @@ -15,6 +15,7 @@ Core/Fsm.lua Core/Radio.lua Core/SpawnStatic.lua Core/Cargo.lua +Core/Spot.lua Wrapper/Object.lua Wrapper/Identifiable.lua @@ -41,6 +42,7 @@ AI/AI_Balancer.lua AI/AI_Patrol.lua AI/AI_Cap.lua AI/AI_Cas.lua +AI/AI_Designate.lua Actions/Act_Assign.lua Actions/Act_Route.lua diff --git a/Moose Mission Setup/Moose.lua b/Moose Mission Setup/Moose.lua index 53e72fc3d..e52e6aada 100644 --- a/Moose Mission Setup/Moose.lua +++ b/Moose Mission Setup/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20170416_0614' ) +env.info( 'Moose Generation Timestamp: 20170419_1613' ) local base = _G @@ -37,6 +37,7 @@ __Moose.Include( 'Core/Fsm.lua' ) __Moose.Include( 'Core/Radio.lua' ) __Moose.Include( 'Core/SpawnStatic.lua' ) __Moose.Include( 'Core/Cargo.lua' ) +__Moose.Include( 'Core/Spot.lua' ) __Moose.Include( 'Wrapper/Object.lua' ) __Moose.Include( 'Wrapper/Identifiable.lua' ) __Moose.Include( 'Wrapper/Positionable.lua' ) @@ -60,6 +61,7 @@ __Moose.Include( 'AI/AI_Balancer.lua' ) __Moose.Include( 'AI/AI_Patrol.lua' ) __Moose.Include( 'AI/AI_Cap.lua' ) __Moose.Include( 'AI/AI_Cas.lua' ) +__Moose.Include( 'AI/AI_Designate.lua' ) __Moose.Include( 'Actions/Act_Assign.lua' ) __Moose.Include( 'Actions/Act_Route.lua' ) __Moose.Include( 'Actions/Act_Account.lua' ) From b1c7e044226438f5d464048bb1e22f956261a837 Mon Sep 17 00:00:00 2001 From: FlightControl Date: Wed, 19 Apr 2017 19:13:23 +0200 Subject: [PATCH 2/3] Progress --- Moose Development/Moose/AI/AI_Designate.lua | 34 ++++++++++++++++--- Moose Development/Moose/Core/Spot.lua | 4 +-- .../Moose/Functional/Detection.lua | 12 +++---- .../Moose/Wrapper/Controllable.lua | 1 + Moose Mission Setup/Moose.lua | 2 +- 5 files changed, 39 insertions(+), 14 deletions(-) diff --git a/Moose Development/Moose/AI/AI_Designate.lua b/Moose Development/Moose/AI/AI_Designate.lua index 8c4335b4c..78f66446f 100644 --- a/Moose Development/Moose/AI/AI_Designate.lua +++ b/Moose Development/Moose/AI/AI_Designate.lua @@ -12,9 +12,32 @@ do -- AI_DESIGNATE --- @type AI_DESIGNATE -- @extends Core.Fsm#FSM_PROCESS - --- + --- # AI_DESIGNATE class, extends @{Fsm#FSM} -- - -- @field #AI_DESIGNATE AI_DESIGNATE + -- AI_DESIGNATE is orchestrating the designation of potential targets, and communicate these to a dedicated attacking group + -- of players, so that following a dynamically generated menu system, each detected set of potential targets can be lased or smoked... + -- + -- ## 1. AI_DESIGNATE constructor + -- + -- * @{#AI_DESIGNATE.New}(): Creates a new AI_DESIGNATE object. + -- + -- ## 2. AI_DESIGNATE is a FSM + -- + -- ![Process](µ) + -- + -- ### 2.1 AI_DESIGNATE States + -- + -- * **Designating** ( Group ): The process is not started yet. + -- + -- ### 2.2 AI_DESIGNATE Events + -- + -- * **@{#AI_DESIGNATE.Detect}**: Detect targets. + -- * **@{#AI_DESIGNATE.LaseOn}**: Lase the targets with the specified Index. + -- * **@{#AI_DESIGNATE.LaseOff}**: Stop lasing the targets with the specified Index. + -- * **@{#AI_DESIGNATE.Smoke}**: Smoke the targets with the specified Index. + -- * **@{#AI_DESIGNATE.}Status**: Report designation status. + -- + -- @field #AI_DESIGNATE -- AI_DESIGNATE = { ClassName = "AI_DESIGNATE", @@ -176,9 +199,10 @@ do -- AI_DESIGNATE --if math.random( 1, ( 100 * TargetSetUnit:Count() ) / 100 ) <= 100 then if SmokeUnit:IsAlive() then local NearestRecceGroup = self.RecceSet:FindNearestGroupFromPointVec2(SmokeUnit:GetPointVec2()) - local NearestRecceUnit = NearestRecceGroup:GetUnit(1) - self:E( { NearestRecceUnit = NearestRecceUnit } ) - self.Spots[Index] = NearestRecceUnit:LaseUnitOn( SmokeUnit, nil, Duration ) + if NearestRecceGroup then + local NearestRecceUnit = NearestRecceGroup:GetUnit(1) + self.Spots[Index] = NearestRecceUnit:LaseUnitOn( SmokeUnit, nil, Duration ) + end end --end end diff --git a/Moose Development/Moose/Core/Spot.lua b/Moose Development/Moose/Core/Spot.lua index 9b4d9e12c..292ed5346 100644 --- a/Moose Development/Moose/Core/Spot.lua +++ b/Moose Development/Moose/Core/Spot.lua @@ -1,4 +1,4 @@ ---- **Core** -- Management of SPOT logistics, that can be transported from and to transportation carriers. +--- **Core (Release 2.1)** -- Management of SPOT logistics, that can be transported from and to transportation carriers. -- -- ![Banner Image](..\Presentations\SPOT\Dia1.JPG) -- @@ -76,7 +76,7 @@ do local RecceDcsUnit = self.Recce:GetDCSObject() local TargetVec3 = PointVec3:GetVec3() self:E("lasing") - self.Spot = Spot.createInfraRed( RecceDcsUnit, { x = 0, y = 1, z = 0 }, TargetVec3, LaserCode ) + self.Spot = Spot.createInfraRed( RecceDcsUnit, { x = 0, y = 2, z = 0 }, TargetVec3, LaserCode ) if Duration then self.ScheduleID = self.LaseScheduler:Schedule( self, StopLase, {self}, Duration ) end diff --git a/Moose Development/Moose/Functional/Detection.lua b/Moose Development/Moose/Functional/Detection.lua index cfb9c02f4..4469a640e 100644 --- a/Moose Development/Moose/Functional/Detection.lua +++ b/Moose Development/Moose/Functional/Detection.lua @@ -309,12 +309,12 @@ do -- DETECTION_BASE self.DetectionInterval = 30 - self:InitDetectVisual( true ) - self:InitDetectOptical( true ) - self:InitDetectRadar( true ) - self:InitDetectRWR( true ) - self:InitDetectIRST( true ) - self:InitDetectDLINK( true ) + self:InitDetectVisual( false ) + self:InitDetectOptical( false ) + self:InitDetectRadar( false ) + self:InitDetectRWR( false ) + self:InitDetectIRST( false ) + self:InitDetectDLINK( false ) self:FilterCategories( { Unit.Category.AIRPLANE, diff --git a/Moose Development/Moose/Wrapper/Controllable.lua b/Moose Development/Moose/Wrapper/Controllable.lua index b81cda295..df7f17c85 100644 --- a/Moose Development/Moose/Wrapper/Controllable.lua +++ b/Moose Development/Moose/Wrapper/Controllable.lua @@ -1774,6 +1774,7 @@ function CONTROLLABLE:GetDetectedTargets( DetectVisual, DetectOptical, DetectRad local DetectionRWR = ( DetectRWR and DetectRWR == true ) and Controller.Detection.RWR or nil local DetectionDLINK = ( DetectDLINK and DetectDLINK == true ) and Controller.Detection.DLINK or nil + self:T( { DetectionVisual, DetectionOptical, DetectionRadar, DetectionIRST, DetectionRWR, DetectionDLINK } ) return self:_GetController():getDetectedTargets( DetectionVisual, DetectionOptical, DetectionRadar, DetectionIRST, DetectionRWR, DetectionDLINK ) end diff --git a/Moose Mission Setup/Moose.lua b/Moose Mission Setup/Moose.lua index e52e6aada..57c707caf 100644 --- a/Moose Mission Setup/Moose.lua +++ b/Moose Mission Setup/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20170419_1613' ) +env.info( 'Moose Generation Timestamp: 20170419_1913' ) local base = _G From cb5510d04771489766569411022fd4ce1402ed6e Mon Sep 17 00:00:00 2001 From: FlightControl Date: Wed, 19 Apr 2017 19:41:26 +0200 Subject: [PATCH 3/3] Publish to master --- Moose Development/Moose/AI/AI_Designate.lua | 9 +- Moose Development/Moose/Core/Spot.lua | 20 + .../Moose/Wrapper/Positionable.lua | 36 +- Moose Mission Setup/Moose.lua | 2 +- docs/Documentation/AI_Balancer.html | 2 + docs/Documentation/AI_Cap.html | 2 + docs/Documentation/AI_Cas.html | 2 + docs/Documentation/AI_Designate.html | 561 ++++++++++++++++++ docs/Documentation/AI_Patrol.html | 5 + docs/Documentation/Account.html | 2 + docs/Documentation/Airbase.html | 2 + docs/Documentation/AirbasePolice.html | 2 + docs/Documentation/Assign.html | 2 + docs/Documentation/Base.html | 2 + docs/Documentation/Cargo.html | 75 ++- docs/Documentation/CleanUp.html | 2 + docs/Documentation/Client.html | 2 + docs/Documentation/CommandCenter.html | 2 + docs/Documentation/Controllable.html | 2 + docs/Documentation/DCSAirbase.html | 2 + docs/Documentation/DCSCoalitionObject.html | 2 + docs/Documentation/DCSCommand.html | 2 + docs/Documentation/DCSController.html | 2 + docs/Documentation/DCSGroup.html | 2 + docs/Documentation/DCSObject.html | 2 + docs/Documentation/DCSTask.html | 2 + docs/Documentation/DCSTypes.html | 2 + docs/Documentation/DCSUnit.html | 2 + docs/Documentation/DCSVec3.html | 2 + docs/Documentation/DCSWorld.html | 2 + docs/Documentation/DCSZone.html | 2 + docs/Documentation/DCScountry.html | 2 + docs/Documentation/DCStimer.html | 2 + docs/Documentation/DCStrigger.html | 2 + docs/Documentation/Database.html | 2 + docs/Documentation/Detection.html | 6 +- docs/Documentation/DetectionManager.html | 2 + docs/Documentation/Escort.html | 2 + docs/Documentation/Event.html | 2 + docs/Documentation/Fsm.html | 5 +- docs/Documentation/Group.html | 2 + docs/Documentation/Identifiable.html | 2 + docs/Documentation/Menu.html | 2 + docs/Documentation/Message.html | 2 + docs/Documentation/MissileTrainer.html | 2 + docs/Documentation/Mission.html | 2 + docs/Documentation/Movement.html | 2 + docs/Documentation/Object.html | 2 + docs/Documentation/Point.html | 3 +- docs/Documentation/Positionable.html | 120 ++++ docs/Documentation/Process_JTAC.html | 2 + docs/Documentation/Process_Pickup.html | 2 + docs/Documentation/Radio.html | 2 + docs/Documentation/Route.html | 2 + docs/Documentation/Scenery.html | 2 + docs/Documentation/ScheduleDispatcher.html | 2 + docs/Documentation/Scheduler.html | 2 + docs/Documentation/Scoring.html | 2 + docs/Documentation/Sead.html | 2 + docs/Documentation/Set.html | 35 ++ docs/Documentation/Smoke.html | 2 + docs/Documentation/Spawn.html | 31 +- docs/Documentation/SpawnStatic.html | 3 +- docs/Documentation/Spot.html | 429 ++++++++++++++ docs/Documentation/Static.html | 2 + docs/Documentation/StaticObject.html | 2 + docs/Documentation/Task.html | 2 + docs/Documentation/Task_A2G.html | 2 + docs/Documentation/Task_A2G_Dispatcher.html | 2 + docs/Documentation/Task_Cargo.html | 2 + docs/Documentation/Task_PICKUP.html | 2 + docs/Documentation/Unit.html | 2 + docs/Documentation/Utils.html | 2 + docs/Documentation/Zone.html | 2 + docs/Documentation/env.html | 2 + docs/Documentation/index.html | 14 + docs/Documentation/land.html | 2 + docs/Documentation/routines.html | 2 + 78 files changed, 1429 insertions(+), 49 deletions(-) create mode 100644 docs/Documentation/AI_Designate.html create mode 100644 docs/Documentation/Spot.html diff --git a/Moose Development/Moose/AI/AI_Designate.lua b/Moose Development/Moose/AI/AI_Designate.lua index 78f66446f..5df5ee6cd 100644 --- a/Moose Development/Moose/AI/AI_Designate.lua +++ b/Moose Development/Moose/AI/AI_Designate.lua @@ -200,8 +200,13 @@ do -- AI_DESIGNATE if SmokeUnit:IsAlive() then local NearestRecceGroup = self.RecceSet:FindNearestGroupFromPointVec2(SmokeUnit:GetPointVec2()) if NearestRecceGroup then - local NearestRecceUnit = NearestRecceGroup:GetUnit(1) - self.Spots[Index] = NearestRecceUnit:LaseUnitOn( SmokeUnit, nil, Duration ) + for UnitID, UnitData in pairs( NearestRecceGroup:GetUnits() or {} ) do + local RecceUnit = UnitData -- Wrapper.Unit#UNIT + if RecceUnit:IsLasing() == false then + self.Spots[Index] = RecceUnit:LaseUnit( SmokeUnit, nil, Duration ) + break + end + end end end --end diff --git a/Moose Development/Moose/Core/Spot.lua b/Moose Development/Moose/Core/Spot.lua index 292ed5346..0e38763c5 100644 --- a/Moose Development/Moose/Core/Spot.lua +++ b/Moose Development/Moose/Core/Spot.lua @@ -67,6 +67,7 @@ do -- @param Core.Point#POINT_VEC3 PointVec3 -- @param #number LaserCode -- @param #number Duration + -- @return #SPOT function SPOT:onafterLaseOn( From, Event, To, PointVec3, LaserCode, Duration ) local function StopLase( self ) @@ -86,6 +87,7 @@ do -- @param From -- @param Event -- @param To + -- @return #SPOT function SPOT:onafterLaseOff( From, Event, To ) self.Spot:destroy() @@ -94,5 +96,23 @@ do self.LaseScheduler:Stop(self.ScheduleID) end self.ScheduleID = nil + + return self end + + --- Check if the SPOT is lasing + -- @param #SPOT self + -- @return #boolean true if it is lasing + function SPOT:IsLasing() + self:F2() + + local Lasing = false + + if self.Spot then + Lasing = true + end + + return Lasing + end + end \ No newline at end of file diff --git a/Moose Development/Moose/Wrapper/Positionable.lua b/Moose Development/Moose/Wrapper/Positionable.lua index 0d608432e..7b76f04d9 100644 --- a/Moose Development/Moose/Wrapper/Positionable.lua +++ b/Moose Development/Moose/Wrapper/Positionable.lua @@ -457,23 +457,19 @@ end -- @param #number LaserCode -- @param #number Duration -- @return Spot -function POSITIONABLE:LaseUnitOn( Target, LaserCode, Duration ) +function POSITIONABLE:LaseUnit( Target, LaserCode, Duration ) self:F2() LaserCode = LaserCode or math.random( 1000, 9999 ) - local TargetUnitName = Target:GetName() - - self.Spots = self.Spots or {} - self.Spots[TargetUnitName] = self.Spots[TargetUnitName] or {} - local RecceDcsUnit = self:GetDCSObject() local TargetVec3 = Target:GetVec3() self:E("bulding spot") - self.Spots[TargetUnitName] = SPOT:New( self ):LaseOn( Target:GetPointVec3(), LaserCode, Duration) + self.Spot = SPOT:New( self ) + self.Spot:LaseOn( Target:GetPointVec3(), LaserCode, Duration) - return self.Spots[TargetUnitName] + return self.Spot end @@ -481,16 +477,30 @@ end -- @param #POSITIONABLE self -- @param #POSITIONABLE Target -- @return #POSITIONABLE -function POSITIONABLE:LaseUnitOff( Target ) +function POSITIONABLE:LaseOff( Target ) self:F2() local TargetUnitName = Target:GetName() - self.Spots = self.Spots or {} - if self.Spots[TargetUnitName] then - self.Spots[TargetUnitName]:LaseOff() - self.Spots[TargetUnitName] = nil + if self.Spot then + self.Spot:LaseOff() + self.Spot = nil end return self end + +--- Check if the POSITIONABLE is lasing a target +-- @param #POSITIONABLE self +-- @return #boolean true if it is lasing a target +function POSITIONABLE:IsLasing() + self:F2() + + local Lasing = false + + if self.Spot then + Lasing = self.Spot:IsLasing() + end + + return Lasing +end diff --git a/Moose Mission Setup/Moose.lua b/Moose Mission Setup/Moose.lua index 57c707caf..33149fc5c 100644 --- a/Moose Mission Setup/Moose.lua +++ b/Moose Mission Setup/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20170419_1913' ) +env.info( 'Moose Generation Timestamp: 20170419_1937' ) local base = _G diff --git a/docs/Documentation/AI_Balancer.html b/docs/Documentation/AI_Balancer.html index 75e5c06cd..d17c8e59a 100644 --- a/docs/Documentation/AI_Balancer.html +++ b/docs/Documentation/AI_Balancer.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/AI_Cap.html b/docs/Documentation/AI_Cap.html index a02100d1d..9a258b212 100644 --- a/docs/Documentation/AI_Cap.html +++ b/docs/Documentation/AI_Cap.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/AI_Cas.html b/docs/Documentation/AI_Cas.html index 9c0d1d4e6..277ff5e1c 100644 --- a/docs/Documentation/AI_Cas.html +++ b/docs/Documentation/AI_Cas.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/AI_Designate.html b/docs/Documentation/AI_Designate.html new file mode 100644 index 000000000..924ecdb43 --- /dev/null +++ b/docs/Documentation/AI_Designate.html @@ -0,0 +1,561 @@ + + + + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Module AI_Designate

    + +

    AI (Release 2.1) -- Management of target designation.

    + + + +

    --Banner Image

    + +
    + + +

    Global(s)

    + + + + + +
    AI_DESIGNATE +

    AI_DESIGNATE class, extends Fsm#FSM

    + +

    AI_DESIGNATE is orchestrating the designation of potential targets, and communicate these to a dedicated attacking group +of players, so that following a dynamically generated menu system, each detected set of potential targets can be lased or smoked...

    +
    +

    Type AI_DESIGNATE

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AI_DESIGNATE.Detection + +
    AI_DESIGNATE.GroupSet + +
    AI_DESIGNATE:MenuLaseOff(Index, Duration) + +
    AI_DESIGNATE:MenuLaseOn(Index, Duration) + +
    AI_DESIGNATE:MenuSmoke(Index) + +
    AI_DESIGNATE:New(Detection, GroupSet) +

    AI_DESIGNATE Constructor.

    +
    AI_DESIGNATE.RecceSet + +
    AI_DESIGNATE.Spots + +
    AI_DESIGNATE:onafterDetect() + +
    AI_DESIGNATE:onafterLaseOff(From, Event, To, Index) + +
    AI_DESIGNATE:onafterLaseOn(From, Event, To, Index, Duration) + +
    AI_DESIGNATE:onafterSmoke(From, Event, To, Index) + +
    + +

    Global(s)

    +
    +
    + + #AI_DESIGNATE + +AI_DESIGNATE + +
    +
    + +

    AI_DESIGNATE class, extends Fsm#FSM

    + +

    AI_DESIGNATE is orchestrating the designation of potential targets, and communicate these to a dedicated attacking group +of players, so that following a dynamically generated menu system, each detected set of potential targets can be lased or smoked...

    + + + +

    1. AI_DESIGNATE constructor

    + + + +

    2. AI_DESIGNATE is a FSM

    + +

    Process

    + +

    2.1 AI_DESIGNATE States

    + +
      +
    • Designating ( Group ): The process is not started yet.
    • +
    + +

    2.2 AI_DESIGNATE Events

    + + + + +
    +
    +

    Type AI_Designate

    + +

    Type AI_DESIGNATE

    +

    Field(s)

    +
    +
    + + + +AI_DESIGNATE.Detection + +
    +
    + + + +
    +
    +
    +
    + + + +AI_DESIGNATE.GroupSet + +
    +
    + + + +
    +
    +
    +
    + + +AI_DESIGNATE:MenuLaseOff(Index, Duration) + +
    +
    + + + +

    Parameters

    +
      +
    • + +

      Index :

      + +
    • +
    • + +

      Duration :

      + +
    • +
    +
    +
    +
    +
    + + +AI_DESIGNATE:MenuLaseOn(Index, Duration) + +
    +
    + + + +

    Parameters

    +
      +
    • + +

      Index :

      + +
    • +
    • + +

      Duration :

      + +
    • +
    +
    +
    +
    +
    + + +AI_DESIGNATE:MenuSmoke(Index) + +
    +
    + + + +

    Parameter

    +
      +
    • + +

      Index :

      + +
    • +
    +
    +
    +
    +
    + + +AI_DESIGNATE:New(Detection, GroupSet) + +
    +
    + +

    AI_DESIGNATE Constructor.

    + + +

    This class is an abstract class and should not be instantiated.

    + +

    Parameters

    + +

    Return value

    + +

    #AI_DESIGNATE:

    + + +
    +
    +
    +
    + + + +AI_DESIGNATE.RecceSet + +
    +
    + + + +
    +
    +
    +
    + + + +AI_DESIGNATE.Spots + +
    +
    + + + +
    +
    +
    +
    + + +AI_DESIGNATE:onafterDetect() + +
    +
    + + + +

    Return value

    + +

    #AI_DESIGNATE:

    + + +
    +
    +
    +
    + + +AI_DESIGNATE:onafterLaseOff(From, Event, To, Index) + +
    +
    + + + +

    Parameters

    +
      +
    • + +

      From :

      + +
    • +
    • + +

      Event :

      + +
    • +
    • + +

      To :

      + +
    • +
    • + +

      Index :

      + +
    • +
    +

    Return value

    + +

    #AI_DESIGNATE:

    + + +
    +
    +
    +
    + + +AI_DESIGNATE:onafterLaseOn(From, Event, To, Index, Duration) + +
    +
    + + + +

    Parameters

    +
      +
    • + +

      From :

      + +
    • +
    • + +

      Event :

      + +
    • +
    • + +

      To :

      + +
    • +
    • + +

      Index :

      + +
    • +
    • + +

      Duration :

      + +
    • +
    +

    Return value

    + +

    #AI_DESIGNATE:

    + + +
    +
    +
    +
    + + +AI_DESIGNATE:onafterSmoke(From, Event, To, Index) + +
    +
    + + + +

    Parameters

    +
      +
    • + +

      From :

      + +
    • +
    • + +

      Event :

      + +
    • +
    • + +

      To :

      + +
    • +
    • + +

      Index :

      + +
    • +
    +

    Return value

    + +

    #AI_DESIGNATE:

    + + +
    +
    + +
    + +
    + + diff --git a/docs/Documentation/AI_Patrol.html b/docs/Documentation/AI_Patrol.html index 145ca6017..d80d5e9ce 100644 --- a/docs/Documentation/AI_Patrol.html +++ b/docs/Documentation/AI_Patrol.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -949,6 +951,9 @@ Use the method AIPATROLZONE.M + +

    This table contains the targets detected during patrol.

    +
    diff --git a/docs/Documentation/Account.html b/docs/Documentation/Account.html index 134b635fa..3f83cf7ca 100644 --- a/docs/Documentation/Account.html +++ b/docs/Documentation/Account.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Airbase.html b/docs/Documentation/Airbase.html index b08e91ce6..406aef9d1 100644 --- a/docs/Documentation/Airbase.html +++ b/docs/Documentation/Airbase.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/AirbasePolice.html b/docs/Documentation/AirbasePolice.html index 698da3ed6..8f5a5788d 100644 --- a/docs/Documentation/AirbasePolice.html +++ b/docs/Documentation/AirbasePolice.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Assign.html b/docs/Documentation/Assign.html index 11f0041b7..7f0d5c263 100644 --- a/docs/Documentation/Assign.html +++ b/docs/Documentation/Assign.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Base.html b/docs/Documentation/Base.html index 7e2d36e6d..30a860472 100644 --- a/docs/Documentation/Base.html +++ b/docs/Documentation/Base.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Cargo.html b/docs/Documentation/Cargo.html index a97780b33..c4e5754c6 100644 --- a/docs/Documentation/Cargo.html +++ b/docs/Documentation/Cargo.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -412,6 +414,12 @@ CARGO_GROUP.CargoCarrier + + + + CARGO_GROUP.CargoObject + + @@ -650,6 +658,12 @@ CARGO_UNIT:onafterBoard(Event, From, To, CargoCarrier, NearRadius, ...)

    Board Event.

    + + + + CARGO_UNIT:onafterBoarding(Event, From, To, CargoCarrier, NearRadius, ...) + +

    Boarding Event.

    @@ -1714,6 +1728,20 @@ The amount of seconds to delay the action.

    + +
    +
    +
    + + + +CARGO_GROUP.CargoObject + +
    +
    + + +
    @@ -2819,7 +2847,6 @@ The range till cargo will board.

    - CARGO_UNIT.CargoCarrier @@ -2991,6 +3018,52 @@ The range till cargo will board.

    + +CARGO_UNIT:onafterBoarding(Event, From, To, CargoCarrier, NearRadius, ...) + +
    +
    + +

    Boarding Event.

    + +

    Parameters

    +
      +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string From :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    • + +

      Wrapper.Unit#UNIT CargoCarrier :

      + +
    • +
    • + +

      #number NearRadius :

      + +
    • +
    • + +

      ... :

      + +
    • +
    +
    +
    +
    +
    + CARGO_UNIT:onafterUnBoarding(Event, From, To, ToPointVec2, NearRadius) diff --git a/docs/Documentation/CleanUp.html b/docs/Documentation/CleanUp.html index fa84131e1..6bceadbdd 100644 --- a/docs/Documentation/CleanUp.html +++ b/docs/Documentation/CleanUp.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Client.html b/docs/Documentation/Client.html index d4c925d9b..a16ba5843 100644 --- a/docs/Documentation/Client.html +++ b/docs/Documentation/Client.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/CommandCenter.html b/docs/Documentation/CommandCenter.html index c3e048507..92d92cdc9 100644 --- a/docs/Documentation/CommandCenter.html +++ b/docs/Documentation/CommandCenter.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Controllable.html b/docs/Documentation/Controllable.html index 2aeac8f53..97059f927 100644 --- a/docs/Documentation/Controllable.html +++ b/docs/Documentation/Controllable.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSAirbase.html b/docs/Documentation/DCSAirbase.html index bcd075f7d..a17c268a8 100644 --- a/docs/Documentation/DCSAirbase.html +++ b/docs/Documentation/DCSAirbase.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSCoalitionObject.html b/docs/Documentation/DCSCoalitionObject.html index ab1cd3fc9..169eae7a3 100644 --- a/docs/Documentation/DCSCoalitionObject.html +++ b/docs/Documentation/DCSCoalitionObject.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSCommand.html b/docs/Documentation/DCSCommand.html index 8f1be1fb1..e376d7140 100644 --- a/docs/Documentation/DCSCommand.html +++ b/docs/Documentation/DCSCommand.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSController.html b/docs/Documentation/DCSController.html index 180e4d977..8fbfebdc6 100644 --- a/docs/Documentation/DCSController.html +++ b/docs/Documentation/DCSController.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSGroup.html b/docs/Documentation/DCSGroup.html index 958ed0031..ab68bb9f9 100644 --- a/docs/Documentation/DCSGroup.html +++ b/docs/Documentation/DCSGroup.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSObject.html b/docs/Documentation/DCSObject.html index 88b67d3a5..cb8f9511a 100644 --- a/docs/Documentation/DCSObject.html +++ b/docs/Documentation/DCSObject.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSTask.html b/docs/Documentation/DCSTask.html index 32a1bd5a7..dafc82daa 100644 --- a/docs/Documentation/DCSTask.html +++ b/docs/Documentation/DCSTask.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSTypes.html b/docs/Documentation/DCSTypes.html index eac45e2ae..4c6af5412 100644 --- a/docs/Documentation/DCSTypes.html +++ b/docs/Documentation/DCSTypes.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSUnit.html b/docs/Documentation/DCSUnit.html index 27f223811..217c9e4db 100644 --- a/docs/Documentation/DCSUnit.html +++ b/docs/Documentation/DCSUnit.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSVec3.html b/docs/Documentation/DCSVec3.html index 16c845eb4..053d821be 100644 --- a/docs/Documentation/DCSVec3.html +++ b/docs/Documentation/DCSVec3.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSWorld.html b/docs/Documentation/DCSWorld.html index b4188357b..67919a39e 100644 --- a/docs/Documentation/DCSWorld.html +++ b/docs/Documentation/DCSWorld.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCSZone.html b/docs/Documentation/DCSZone.html index 97af5943c..b8de6f70b 100644 --- a/docs/Documentation/DCSZone.html +++ b/docs/Documentation/DCSZone.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCScountry.html b/docs/Documentation/DCScountry.html index e62671d74..7f906db86 100644 --- a/docs/Documentation/DCScountry.html +++ b/docs/Documentation/DCScountry.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCStimer.html b/docs/Documentation/DCStimer.html index d4d84f593..cccf1a281 100644 --- a/docs/Documentation/DCStimer.html +++ b/docs/Documentation/DCStimer.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/DCStrigger.html b/docs/Documentation/DCStrigger.html index 06e11aa76..559b4a938 100644 --- a/docs/Documentation/DCStrigger.html +++ b/docs/Documentation/DCStrigger.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Database.html b/docs/Documentation/Database.html index dfc8a9bb5..42683bd36 100644 --- a/docs/Documentation/Database.html +++ b/docs/Documentation/Database.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Detection.html b/docs/Documentation/Detection.html index c17360e5a..f5ebc18d1 100644 --- a/docs/Documentation/Detection.html +++ b/docs/Documentation/Detection.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -2298,7 +2300,7 @@ self

    - + #number DETECTION_BASE.DetectionInterval @@ -2588,7 +2590,7 @@ DetectedZone

    Return value

    -

    Wrapper.Group#GROUP:

    +

    Core.Set#SET_GROUP:

    diff --git a/docs/Documentation/DetectionManager.html b/docs/Documentation/DetectionManager.html index f44b7a2a7..41aa256ff 100644 --- a/docs/Documentation/DetectionManager.html +++ b/docs/Documentation/DetectionManager.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Escort.html b/docs/Documentation/Escort.html index 52cc36d94..d2c9807af 100644 --- a/docs/Documentation/Escort.html +++ b/docs/Documentation/Escort.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Event.html b/docs/Documentation/Event.html index 5de725053..5c5843e5a 100644 --- a/docs/Documentation/Event.html +++ b/docs/Documentation/Event.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html index c3394e0ee..9b6918395 100644 --- a/docs/Documentation/Fsm.html +++ b/docs/Documentation/Fsm.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -1620,7 +1622,7 @@ A string defining the start state.

    - + #string FSM._StartState @@ -1919,7 +1921,6 @@ A string defining the start state.

    - FSM.current diff --git a/docs/Documentation/Group.html b/docs/Documentation/Group.html index 2a7095a6d..7404cd7ba 100644 --- a/docs/Documentation/Group.html +++ b/docs/Documentation/Group.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Identifiable.html b/docs/Documentation/Identifiable.html index 3d15ed716..42ccbca59 100644 --- a/docs/Documentation/Identifiable.html +++ b/docs/Documentation/Identifiable.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Menu.html b/docs/Documentation/Menu.html index 7cab8f742..ec7099fe7 100644 --- a/docs/Documentation/Menu.html +++ b/docs/Documentation/Menu.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Message.html b/docs/Documentation/Message.html index e1f02c94e..b85ad5af2 100644 --- a/docs/Documentation/Message.html +++ b/docs/Documentation/Message.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/MissileTrainer.html b/docs/Documentation/MissileTrainer.html index 3664bf7a8..599c08c33 100644 --- a/docs/Documentation/MissileTrainer.html +++ b/docs/Documentation/MissileTrainer.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Mission.html b/docs/Documentation/Mission.html index 1dfbf5f58..e26e2d679 100644 --- a/docs/Documentation/Mission.html +++ b/docs/Documentation/Mission.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Movement.html b/docs/Documentation/Movement.html index 1a64cbb26..6199b647b 100644 --- a/docs/Documentation/Movement.html +++ b/docs/Documentation/Movement.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Object.html b/docs/Documentation/Object.html index a8198242c..8d18b31f7 100644 --- a/docs/Documentation/Object.html +++ b/docs/Documentation/Object.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Point.html b/docs/Documentation/Point.html index 2243bb9cc..5b0c5bbf8 100644 --- a/docs/Documentation/Point.html +++ b/docs/Documentation/Point.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -1443,7 +1445,6 @@ The new calculated POINT_VEC2.

    - POINT_VEC2.z diff --git a/docs/Documentation/Positionable.html b/docs/Documentation/Positionable.html index 1e498e791..e2b66ffe4 100644 --- a/docs/Documentation/Positionable.html +++ b/docs/Documentation/Positionable.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -233,6 +235,24 @@ POSITIONABLE:IsAboveRunway()

    Returns if the Positionable is located above a runway.

    + + + + POSITIONABLE:IsLasing() + +

    Check if the POSITIONABLE is lasing a target

    + + + + POSITIONABLE:LaseOff(Target) + +

    Stop Lasing a POSITIONABLE

    + + + + POSITIONABLE:LaseUnit(Target, LaserCode, Duration) + +

    Start Lasing a POSITIONABLE

    @@ -287,6 +307,12 @@ POSITIONABLE.PositionableName

    The name of the measurable.

    + + + + POSITIONABLE.Spot + + @@ -760,6 +786,86 @@ The POSITIONABLE is not existing or alive.

    + +POSITIONABLE:IsLasing() + +
    +
    + +

    Check if the POSITIONABLE is lasing a target

    + +

    Return value

    + +

    #boolean: +true if it is lasing a target

    + +
    +
    +
    +
    + + +POSITIONABLE:LaseOff(Target) + +
    +
    + +

    Stop Lasing a POSITIONABLE

    + +

    Parameter

    + +

    Return value

    + +

    #POSITIONABLE:

    + + +
    +
    +
    +
    + + +POSITIONABLE:LaseUnit(Target, LaserCode, Duration) + +
    +
    + +

    Start Lasing a POSITIONABLE

    + +

    Parameters

    +
      +
    • + +

      #POSITIONABLE Target :

      + +
    • +
    • + +

      #number LaserCode :

      + +
    • +
    • + +

      #number Duration :

      + +
    • +
    +

    Return value

    + + +

    Spot

    + +
    +
    +
    +
    + POSITIONABLE:Message(Message, Duration, Name) @@ -1073,6 +1179,20 @@ self

    The name of the measurable.

    + +
    +
    +
    + + + +POSITIONABLE.Spot + +
    +
    + + +
    diff --git a/docs/Documentation/Process_JTAC.html b/docs/Documentation/Process_JTAC.html index f3e75bb9b..87cc09ff3 100644 --- a/docs/Documentation/Process_JTAC.html +++ b/docs/Documentation/Process_JTAC.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Process_Pickup.html b/docs/Documentation/Process_Pickup.html index 6967c3780..883d39fb0 100644 --- a/docs/Documentation/Process_Pickup.html +++ b/docs/Documentation/Process_Pickup.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Radio.html b/docs/Documentation/Radio.html index 1254f064b..81eb3f9a4 100644 --- a/docs/Documentation/Radio.html +++ b/docs/Documentation/Radio.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Route.html b/docs/Documentation/Route.html index 837c6c28f..d8cee89d9 100644 --- a/docs/Documentation/Route.html +++ b/docs/Documentation/Route.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Scenery.html b/docs/Documentation/Scenery.html index f0530ef7a..b574ee5e8 100644 --- a/docs/Documentation/Scenery.html +++ b/docs/Documentation/Scenery.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/ScheduleDispatcher.html b/docs/Documentation/ScheduleDispatcher.html index 0175998ff..a6c841425 100644 --- a/docs/Documentation/ScheduleDispatcher.html +++ b/docs/Documentation/ScheduleDispatcher.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Scheduler.html b/docs/Documentation/Scheduler.html index fb456fcc0..b0e07d4a5 100644 --- a/docs/Documentation/Scheduler.html +++ b/docs/Documentation/Scheduler.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Scoring.html b/docs/Documentation/Scoring.html index 7868ecda1..eca127f05 100644 --- a/docs/Documentation/Scoring.html +++ b/docs/Documentation/Scoring.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Sead.html b/docs/Documentation/Sead.html index 06dcb8af4..067d5c8f2 100644 --- a/docs/Documentation/Sead.html +++ b/docs/Documentation/Sead.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Set.html b/docs/Documentation/Set.html index dff2ef289..a74f207e9 100644 --- a/docs/Documentation/Set.html +++ b/docs/Documentation/Set.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -755,6 +757,12 @@ SET_GROUP:FindInDatabase(Event)

    Handles the Database to check on any event that Object exists in the Database.

    + + + + SET_GROUP:FindNearestGroupFromPointVec2(PointVec2) + +

    Iterate the SET_GROUP while identifying the nearest object from a Point#POINT_VEC2.

    @@ -3607,6 +3615,33 @@ The GROUP

    + +SET_GROUP:FindNearestGroupFromPointVec2(PointVec2) + +
    +
    + +

    Iterate the SET_GROUP while identifying the nearest object from a Point#POINT_VEC2.

    + +

    Parameter

    + +

    Return value

    + +

    Wrapper.Group#GROUP: +The closest group.

    + +
    +
    +
    +
    + SET_GROUP:ForEachGroup(IteratorFunction, ...) diff --git a/docs/Documentation/Smoke.html b/docs/Documentation/Smoke.html index c4b4c2e9a..1daebbfe7 100644 --- a/docs/Documentation/Smoke.html +++ b/docs/Documentation/Smoke.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html index a495d0c0c..a55a5ab70 100644 --- a/docs/Documentation/Spawn.html +++ b/docs/Documentation/Spawn.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -810,12 +812,6 @@ and any spaces before and after the resulting name are removed.

    SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle) - - - - SPAWN.uncontrolled - - @@ -2584,9 +2580,6 @@ when nothing was spawned.

    - -

    By default, no InitLimit

    -
    @@ -2622,7 +2615,7 @@ when nothing was spawned.

    - #number + SPAWN.SpawnMaxGroups @@ -2639,7 +2632,7 @@ when nothing was spawned.

    - #number + SPAWN.SpawnMaxUnitsAlive @@ -2967,7 +2960,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
    - + #boolean SPAWN.SpawnUnControlled @@ -3557,20 +3550,6 @@ True = Continue Scheduler

    - -
    -
    -
    - - - -SPAWN.uncontrolled - -
    -
    - - -
    diff --git a/docs/Documentation/SpawnStatic.html b/docs/Documentation/SpawnStatic.html index 99a7e20af..50d0ec61a 100644 --- a/docs/Documentation/SpawnStatic.html +++ b/docs/Documentation/SpawnStatic.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -442,7 +444,6 @@ ptional) The name of the new static.

    - #number SPAWNSTATIC.SpawnIndex diff --git a/docs/Documentation/Spot.html b/docs/Documentation/Spot.html new file mode 100644 index 000000000..bf72b6ee4 --- /dev/null +++ b/docs/Documentation/Spot.html @@ -0,0 +1,429 @@ + + + + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Module Spot

    + +

    Core (Release 2.1) -- Management of SPOT logistics, that can be transported from and to transportation carriers.

    + + + +

    Banner Image

    + +
    + +

    Spot lases points endlessly or for a duration.

    + +
    + +

    Demo Missions

    + +

    SPOT Demo Missions source code

    + +

    SPOT Demo Missions, only for beta testers

    + +

    ALL Demo Missions pack of the last release

    + +
    + +

    YouTube Channel

    + +

    SPOT YouTube Channel

    + +
    + +

    This module is still under construction, but is described above works already, and will keep working ...

    + + +

    Global(s)

    + + + + + +
    SPOT + +
    +

    Type SPOT

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SPOT.ClassName + +
    SPOT:IsLasing() +

    Check if the SPOT is lasing

    +
    SPOT.LaseScheduler + +
    SPOT:New(Recce, LaserCode, Duration) +

    SPOT Constructor.

    +
    SPOT.Recce + +
    SPOT.ScheduleID + +
    SPOT.Spot + +
    SPOT:onafterLaseOff(From, Event, To) + +
    SPOT:onafterLaseOn(From, Event, To, PointVec3, LaserCode, Duration) + +
    + +

    Global(s)

    +
    +
    + + #SPOT + +SPOT + +
    +
    + + + +
    +
    +

    Type Spot

    + +

    Type SPOT

    +

    Field(s)

    +
    +
    + + #string + +SPOT.ClassName + +
    +
    + + + +
    +
    +
    +
    + + +SPOT:IsLasing() + +
    +
    + +

    Check if the SPOT is lasing

    + +

    Return value

    + +

    #boolean: +true if it is lasing

    + +
    +
    +
    +
    + + + +SPOT.LaseScheduler + +
    +
    + + + +
    +
    +
    +
    + + +SPOT:New(Recce, LaserCode, Duration) + +
    +
    + +

    SPOT Constructor.

    + +

    Parameters

    +
      +
    • + +

      Wrapper.Unit#UNIT Recce :

      + +
    • +
    • + +

      #number LaserCode :

      + +
    • +
    • + +

      #number Duration :

      + +
    • +
    +

    Return value

    + +

    #SPOT:

    + + +
    +
    +
    +
    + + + +SPOT.Recce + +
    +
    + + + +
    +
    +
    +
    + + +SPOT.ScheduleID + +
    +
    + + + +
    +
    +
    +
    + + +SPOT.Spot + +
    +
    + + + +
    +
    +
    +
    + + +SPOT:onafterLaseOff(From, Event, To) + +
    +
    + + + +

    Parameters

    +
      +
    • + +

      From :

      + +
    • +
    • + +

      Event :

      + +
    • +
    • + +

      To :

      + +
    • +
    +

    Return value

    + +

    #SPOT:

    + + +
    +
    +
    +
    + + +SPOT:onafterLaseOn(From, Event, To, PointVec3, LaserCode, Duration) + +
    +
    + + + +

    Parameters

    +
      +
    • + +

      From :

      + +
    • +
    • + +

      Event :

      + +
    • +
    • + +

      To :

      + +
    • +
    • + +

      Core.Point#POINT_VEC3 PointVec3 :

      + +
    • +
    • + +

      #number LaserCode :

      + +
    • +
    • + +

      #number Duration :

      + +
    • +
    +

    Return value

    + +

    #SPOT:

    + + +
    +
    + +
    + +
    + + diff --git a/docs/Documentation/Static.html b/docs/Documentation/Static.html index 82fa993f2..969de0fe0 100644 --- a/docs/Documentation/Static.html +++ b/docs/Documentation/Static.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/StaticObject.html b/docs/Documentation/StaticObject.html index 1a46c6616..7648af701 100644 --- a/docs/Documentation/StaticObject.html +++ b/docs/Documentation/StaticObject.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Task.html b/docs/Documentation/Task.html index 04fcba929..745408ed1 100644 --- a/docs/Documentation/Task.html +++ b/docs/Documentation/Task.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Task_A2G.html b/docs/Documentation/Task_A2G.html index e497997f4..e69ed8a75 100644 --- a/docs/Documentation/Task_A2G.html +++ b/docs/Documentation/Task_A2G.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Task_A2G_Dispatcher.html b/docs/Documentation/Task_A2G_Dispatcher.html index 553474a4c..56199fde1 100644 --- a/docs/Documentation/Task_A2G_Dispatcher.html +++ b/docs/Documentation/Task_A2G_Dispatcher.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Task_Cargo.html b/docs/Documentation/Task_Cargo.html index b2cbf3569..0d3a4ee9b 100644 --- a/docs/Documentation/Task_Cargo.html +++ b/docs/Documentation/Task_Cargo.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Task_PICKUP.html b/docs/Documentation/Task_PICKUP.html index a26b39707..a5e5d70b1 100644 --- a/docs/Documentation/Task_PICKUP.html +++ b/docs/Documentation/Task_PICKUP.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Unit.html b/docs/Documentation/Unit.html index d9cc8dfda..33927e5d5 100644 --- a/docs/Documentation/Unit.html +++ b/docs/Documentation/Unit.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Utils.html b/docs/Documentation/Utils.html index 553a2be0e..088bf9bbf 100644 --- a/docs/Documentation/Utils.html +++ b/docs/Documentation/Utils.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/Zone.html b/docs/Documentation/Zone.html index c684d66da..893b7d773 100644 --- a/docs/Documentation/Zone.html +++ b/docs/Documentation/Zone.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/env.html b/docs/Documentation/env.html index 03986352d..f56af08b7 100644 --- a/docs/Documentation/env.html +++ b/docs/Documentation/env.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/index.html b/docs/Documentation/index.html index bb25ca5bb..d651ef88a 100644 --- a/docs/Documentation/index.html +++ b/docs/Documentation/index.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • @@ -147,6 +149,12 @@ even when there are hardly any players in the mission.


    AI CAS classes makes AI Controllables execute a Close Air Support.

    + + + + AI_Designate + +

    AI (Release 2.1) -- Management of target designation.

    @@ -492,6 +500,12 @@ and creates a CSV file logging the scoring events and results for use at team or SpawnStatic

    Core -- Spawn dynamically new STATICs in your missions.

    + + + + Spot + +

    Core (Release 2.1) -- Management of SPOT logistics, that can be transported from and to transportation carriers.

    diff --git a/docs/Documentation/land.html b/docs/Documentation/land.html index f6b7ca91c..e7e0a1632 100644 --- a/docs/Documentation/land.html +++ b/docs/Documentation/land.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task
  • diff --git a/docs/Documentation/routines.html b/docs/Documentation/routines.html index 2503b891b..1db62f852 100644 --- a/docs/Documentation/routines.html +++ b/docs/Documentation/routines.html @@ -20,6 +20,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Designate
  • AI_Patrol
  • Account
  • Airbase
  • @@ -75,6 +76,7 @@
  • Smoke
  • Spawn
  • SpawnStatic
  • +
  • Spot
  • Static
  • StaticObject
  • Task