This commit is contained in:
Frank
2020-07-23 19:15:26 +02:00
parent 98971736f8
commit 2328f9a36b
3 changed files with 27 additions and 17 deletions

View File

@@ -1555,8 +1555,8 @@ function AIRWING:onafterAssetSpawned(From, Event, To, group, asset, request)
end end
-- Add group to the detection set of the WINGCOMMANDER. -- Add group to the detection set of the WINGCOMMANDER.
if self.wingcommander then if self.wingcommander and self.wingcommander.chief then
self.wingcommander.detectionset:AddGroup(asset.flightgroup.group) self.wingcommander.chief.detectionset:AddGroup(asset.flightgroup.group)
end end
end end
@@ -1574,8 +1574,8 @@ function AIRWING:onafterAssetDead(From, Event, To, asset, request)
self:GetParent(self).onafterAssetDead(self, From, Event, To, asset, request) self:GetParent(self).onafterAssetDead(self, From, Event, To, asset, request)
-- Add group to the detection set of the WINGCOMMANDER. -- Add group to the detection set of the WINGCOMMANDER.
if self.wingcommander then if self.wingcommander and self.wingcommander.chief then
self.wingcommander.detectionset:RemoveGroupsByName({asset.spawngroupname}) self.wingcommander.chief.detectionset:RemoveGroupsByName({asset.spawngroupname})
end end
-- Remove asset from mission is done via Mission:AssetDead() call from flightgroup onafterFlightDead function -- Remove asset from mission is done via Mission:AssetDead() call from flightgroup onafterFlightDead function

View File

@@ -110,6 +110,7 @@ function CHIEF:New(AgentSet, Coalition)
self:AddTransition("*", "AssignMissionArmy", "*") -- Assign mission to a GENERAL. self:AddTransition("*", "AssignMissionArmy", "*") -- Assign mission to a GENERAL.
self:AddTransition("*", "CancelMission", "*") -- Cancel mission. self:AddTransition("*", "CancelMission", "*") -- Cancel mission.
self:AddTransition("*", "Defcon", "*") -- Change defence condition. self:AddTransition("*", "Defcon", "*") -- Change defence condition.
self:AddTransition("*", "DeclareWar", "*") -- Declare War.
------------------------ ------------------------
--- Pseudo Functions --- --- Pseudo Functions ---
@@ -238,12 +239,14 @@ end
--- Set the wing commander for the airforce. --- Set the wing commander for the airforce.
-- @param #CHIEF self -- @param #CHIEF self
-- @param Ops.WingCommander WingCommander The WINGCOMMANDER object. -- @param Ops.WingCommander#WINGCOMMANDER WingCommander The WINGCOMMANDER object.
-- @return #CHIEF self -- @return #CHIEF self
function CHIEF:SetWingCommander(WingCommander) function CHIEF:SetWingCommander(WingCommander)
self.wingcommander=WingCommander self.wingcommander=WingCommander
self.wingcommander.chief=self
return self return self
end end
@@ -594,14 +597,18 @@ function CHIEF:CheckMissionQueue()
-- PLANNNED Mission -- PLANNNED Mission
--- ---
-- Check if there is an airwing that can do the mission.
local airwing=self:GetAirwingForMission(mission) local airwing=self:GetAirwingForMission(mission)
if airwing then if airwing then
-- Add mission to airwing. -- Add mission to airwing.
self:MissionAssign(airwing, mission) self:AssignMissionAirforce(mission)
return return
else
self:T(self.lid.."NO airwing")
end end
else else

View File

@@ -18,6 +18,7 @@
-- @field #string lid Class id string for output to DCS log file. -- @field #string lid Class id string for output to DCS log file.
-- @field #table airwings Table of airwings which are commanded. -- @field #table airwings Table of airwings which are commanded.
-- @field #table missionqueue Mission queue. -- @field #table missionqueue Mission queue.
-- @field Ops.ChiefOfStaff#CHIEF chief Chief of staff.
-- @extends Core.Fsm#FSM -- @extends Core.Fsm#FSM
--- Be surprised! --- Be surprised!
@@ -66,11 +67,18 @@ function WINGCOMMANDER:New()
-- Inherit everything from INTEL class. -- Inherit everything from INTEL class.
local self=BASE:Inherit(self, FSM:New()) --#WINGCOMMANDER local self=BASE:Inherit(self, FSM:New()) --#WINGCOMMANDER
self.lid="WINGCOMMANDER | "
-- Start state.
self:SetStartState("NotReadyYet")
-- Add FSM transitions. -- Add FSM transitions.
-- From State --> Event --> To State -- From State --> Event --> To State
self:AddTransition("*", "MissionAssign", "*") -- Mission was assigned to an AIRWING. self:AddTransition("NotReadyYet", "Start", "OnDuty") -- Start WC.
self:AddTransition("*", "CancelMission", "*") -- Cancel mission. self:AddTransition("*", "Status", "*") -- Status report.
self:AddTransition("*", "Defcon", "*") -- Cancel mission. self:AddTransition("*", "MissionAssign", "*") -- Mission was assigned to an AIRWING.
self:AddTransition("*", "CancelMission", "*") -- Cancel mission.
self:AddTransition("*", "Defcon", "*") -- Cancel mission.
------------------------ ------------------------
--- Pseudo Functions --- --- Pseudo Functions ---
@@ -112,7 +120,6 @@ function WINGCOMMANDER:New()
end end
self.Debug=true self.Debug=true
return self return self
end end
@@ -183,9 +190,6 @@ function WINGCOMMANDER:onafterStart(From, Event, To)
local text=string.format("Starting Wing Commander") local text=string.format("Starting Wing Commander")
self:I(self.lid..text) self:I(self.lid..text)
-- Start parent INTEL.
self:GetParent(self).onafterStart(self, From, Event, To)
-- Start attached airwings. -- Start attached airwings.
for _,_airwing in pairs(self.airwings) do for _,_airwing in pairs(self.airwings) do
local airwing=_airwing --Ops.AirWing#AIRWING local airwing=_airwing --Ops.AirWing#AIRWING
@@ -194,6 +198,7 @@ function WINGCOMMANDER:onafterStart(From, Event, To)
end end
end end
self:__Status(-1)
end end
--- On after "Status" event. --- On after "Status" event.
@@ -204,9 +209,6 @@ end
-- @param #string To To state. -- @param #string To To state.
function WINGCOMMANDER:onafterStatus(From, Event, To) function WINGCOMMANDER:onafterStatus(From, Event, To)
-- Start parent INTEL.
self:GetParent(self).onafterStatus(self, From, Event, To)
-- FSM state. -- FSM state.
local fsmstate=self:GetState() local fsmstate=self:GetState()
@@ -226,6 +228,7 @@ function WINGCOMMANDER:onafterStatus(From, Event, To)
self:I(self.lid..text) self:I(self.lid..text)
end end
self:__Status(-30)
end end
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------