Merge pull request #22 from FlightControl-Master/Applevangelist-MOP-1

Add files via upload
This commit is contained in:
Applevangelist
2022-03-16 09:24:00 +01:00
committed by GitHub
2 changed files with 86 additions and 86 deletions
@@ -1,86 +1,86 @@
------------------------------------------------------------------------- -------------------------------------------------------------------------
-- MOP-100 - MARKEROPS_BASE - Basic Demo -- MOP-100 - MARKEROPS_BASE - Basic Demo
------------------------------------------------------------------------- -------------------------------------------------------------------------
-- Documentation -- Documentation
-- --
-- MARKEROPS_BASE: https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Core.MarkerOps_Base.html -- MARKEROPS_BASE: https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Core.MarkerOps_Base.html
-- --
------------------------------------------------------------------------- -------------------------------------------------------------------------
-- On the F10, call a tanker to start from the carrier. It will fly to -- On the radio menu, call a tanker to start from the carrier. It will fly to
-- an initial zone. Set a marker on the F10 map with keyword "TankerDemo". -- an initial zone. Set a marker on the F10 map with keyword "TankerDemo".
-- The Tanker will fly there. Set a marker on the F10 map with keywords -- The Tanker will fly there. Set a marker on the F10 map with keywords
-- "TankerDemo RTB". The tanke will RTB to the carrier. -- "TankerDemo RTB". The tanker will RTB to the carrier.
------------------------------------------------------------------------- -------------------------------------------------------------------------
-- Date: May 2021 -- Date: May 2021
------------------------------------------------------------------------- -------------------------------------------------------------------------
-- globals -- globals
mytanker = nil mytanker = nil
tankergroup = nil tankergroup = nil
TankerAuftrag = nil TankerAuftrag = nil
function menucalltanker() function menucalltanker()
if not mytanker then if not mytanker then
-- new MARKEROPS_BASE object -- new MARKEROPS_BASE object
mytanker = MARKEROPS_BASE:New("TankerDemo",{"RTB"}) -- Core.MarkerOps_Base#MARKEROPS_BASE mytanker = MARKEROPS_BASE:New("TankerDemo",{"RTB"}) -- Core.MarkerOps_Base#MARKEROPS_BASE
-- start FlightGroup -- start FlightGroup
tankergroup = FLIGHTGROUP:New("Tanker") tankergroup = FLIGHTGROUP:New("Tanker")
tankergroup:SetHomebase(AIRBASE:FindByName("Truman")) tankergroup:SetHomebase(AIRBASE:FindByName("Truman"))
tankergroup:SetDefaultRadio(245,"AM",false) tankergroup:SetDefaultRadio(245,"AM",false)
tankergroup:SetDespawnAfterLanding() tankergroup:SetDespawnAfterLanding()
tankergroup:SwitchTACAN(45, "TKR", 1, "X") tankergroup:SwitchTACAN(45, "TKR", 1, "X")
tankergroup:SetDefaultCallsign(CALLSIGN.Tanker.Texaco,1) tankergroup:SetDefaultCallsign(CALLSIGN.Tanker.Texaco,1)
-- Mission -- Mission
local InitialHold = ZONE:New("Initial Hold"):GetCoordinate() local InitialHold = ZONE:New("Initial Hold"):GetCoordinate()
TankerAuftrag = AUFTRAG:NewTANKER(InitialHold,18000,UTILS.KnotsToAltKIAS(220,18000),90,20,0) TankerAuftrag = AUFTRAG:NewTANKER(InitialHold,18000,UTILS.KnotsToAltKIAS(220,18000),90,20,0)
TankerAuftrag:SetMissionRange(500) TankerAuftrag:SetMissionRange(500)
tankergroup:AddMission(TankerAuftrag) tankergroup:AddMission(TankerAuftrag)
else else
local status = tankergroup:GetState() local status = tankergroup:GetState()
local m = MESSAGE:New(string.format("Tanker %s ops in status: %s", mytanker.Tag, status),10,"Info",true):ToAll() local m = MESSAGE:New(string.format("Tanker %s ops in status: %s", mytanker.Tag, status),10,"Info",true):ToAll()
end end
-- Handler function -- Handler function
local function Handler(Keywords,Coord) local function Handler(Keywords,Coord)
local MustRTB = false local MustRTB = false
for _,_word in pairs (Keywords) do for _,_word in pairs (Keywords) do
if string.lower(_word) == "rtb" then if string.lower(_word) == "rtb" then
MustRTB = true MustRTB = true
end end
end end
-- cancel current Auftrag -- cancel current Auftrag
TankerAuftrag:Cancel() TankerAuftrag:Cancel()
-- check if we need to RTB -- check if we need to RTB
if MustRTB then if MustRTB then
tankergroup:RTB(AIRBASE:FindByName("Truman")) tankergroup:RTB(AIRBASE:FindByName("Truman"))
else else
-- no, fly to coordinate of marker -- no, fly to coordinate of marker
local auftrag = AUFTRAG:NewTANKER(Coord,18000,UTILS.KnotsToAltKIAS(220,18000),90,20,0) local auftrag = AUFTRAG:NewTANKER(Coord,18000,UTILS.KnotsToAltKIAS(220,18000),90,20,0)
auftrag:SetMissionRange(500) auftrag:SetMissionRange(500)
tankergroup:AddMission(auftrag) tankergroup:AddMission(auftrag)
TankerAuftrag = auftrag TankerAuftrag = auftrag
end end
end end
-- Event functions -- Event functions
function mytanker:OnAfterMarkAdded(From,Event,To,Text,Keywords,Coord) function mytanker:OnAfterMarkAdded(From,Event,To,Text,Keywords,Coord)
local m = MESSAGE:New(string.format("Tanker %s Mark Added.", self.Tag),10,"Info",true):ToAll() local m = MESSAGE:New(string.format("Tanker %s Mark Added.", self.Tag),10,"Info",true):ToAll()
Handler(Keywords,Coord) Handler(Keywords,Coord)
end end
function mytanker:OnAfterMarkChanged(From,Event,To,Text,Keywords,Coord) function mytanker:OnAfterMarkChanged(From,Event,To,Text,Keywords,Coord)
local m = MESSAGE:New(string.format("Tanker %s Mark Changed.", self.Tag),10,"Info",true):ToAll() local m = MESSAGE:New(string.format("Tanker %s Mark Changed.", self.Tag),10,"Info",true):ToAll()
Handler(Keywords,Coord) Handler(Keywords,Coord)
end end
function mytanker:OnAfterMarkDeleted(From,Event,To) function mytanker:OnAfterMarkDeleted(From,Event,To)
local m = MESSAGE:New(string.format("Tanker %s Mark Deleted.", self.Tag),10,"Info",true):ToAll() local m = MESSAGE:New(string.format("Tanker %s Mark Deleted.", self.Tag),10,"Info",true):ToAll()
end end
end end
MenuTop = MENU_COALITION:New( coalition.side.BLUE,"Call Tanker") MenuTop = MENU_COALITION:New( coalition.side.BLUE,"Call Tanker")
MenuTanker = MENU_COALITION_COMMAND:New(coalition.side.BLUE,"Start Tanker",MenuTop,menucalltanker) MenuTanker = MENU_COALITION_COMMAND:New(coalition.side.BLUE,"Start Tanker",MenuTop,menucalltanker)