From 5456cd04c3d2336f9f1aa775d212198ca5a79246 Mon Sep 17 00:00:00 2001 From: Applevangelist Date: Sun, 18 Jun 2023 13:29:07 +0200 Subject: [PATCH 1/2] #PLAYERTASKCONTROLLER * Menu build lock --- Moose Development/Moose/Ops/PlayerTask.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Moose Development/Moose/Ops/PlayerTask.lua b/Moose Development/Moose/Ops/PlayerTask.lua index 50fc27582..a7c127b1f 100644 --- a/Moose Development/Moose/Ops/PlayerTask.lua +++ b/Moose Development/Moose/Ops/PlayerTask.lua @@ -1536,7 +1536,7 @@ PLAYERTASKCONTROLLER.Messages = { --- PLAYERTASK class version. -- @field #string version -PLAYERTASKCONTROLLER.version="0.1.60" +PLAYERTASKCONTROLLER.version="0.1.60a" --- Create and run a new TASKCONTROLLER instance. -- @param #PLAYERTASKCONTROLLER self @@ -2195,8 +2195,10 @@ function PLAYERTASKCONTROLLER:_EventHandler(EventData) --local text = string.format("%s, %s, switch to %s for task assignment!",EventData.IniPlayerName,self.MenuName or self.Name,freqtext) local text = string.format(switchtext,playername,self.MenuName or self.Name,freqtext) self.SRSQueue:NewTransmission(text,nil,self.SRS,timer.getAbsTime()+60,2,{EventData.IniGroup},text,30,self.BCFrequency,self.BCModulation) - if EventData.IniUnitName then - self:_BuildMenus(CLIENT:FindByName(EventData.IniUnitName)) + if EventData.IniPlayerName then + self.PlayerMenu[EventData.IniPlayerName] = nil + --self:_BuildMenus(CLIENT:FindByName(EventData.IniUnitName)) + self:_BuildMenus(CLIENT:FindByPlayerName(EventData.IniPlayerName)) end end end @@ -3460,7 +3462,14 @@ end -- @return #PLAYERTASKCONTROLLER self function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced,fromsuccess) self:T(self.lid.."_BuildMenus") - + + if self.MenuBuildLocked and (timer.getAbsTime() - self.MenuBuildLocked < 2) then + self:ScheduleOnce(2,self._BuildMenus,self,Client,enforced,fromsuccess) + return self + else + self.MenuBuildLocked = timer.getAbsTime() + end + local clients = self.ClientSet:GetAliveSet() local joinorabort = false local timedbuild = false @@ -3653,6 +3662,7 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced,fromsuccess) end end end + self.MenuBuildLocked = false return self end From 970275e96e8c781e47cb4d92b509e838a0a30849 Mon Sep 17 00:00:00 2001 From: Applevangelist Date: Wed, 21 Jun 2023 10:25:00 +0200 Subject: [PATCH 2/2] #AIRBOSS * Added adjustment degrees for wind speed --- Moose Development/Moose/Ops/Airboss.lua | 38 +++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/Moose Development/Moose/Ops/Airboss.lua b/Moose Development/Moose/Ops/Airboss.lua index 3ede4bd16..7794d63fc 100644 --- a/Moose Development/Moose/Ops/Airboss.lua +++ b/Moose Development/Moose/Ops/Airboss.lua @@ -1751,7 +1751,7 @@ AIRBOSS.MenuF10Root = nil --- Airboss class version. -- @field #string version -AIRBOSS.version = "1.3.1" +AIRBOSS.version = "1.3.2" ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- TODO list ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -11550,8 +11550,42 @@ end -- @return #number Carrier heading in degrees. function AIRBOSS:GetHeadingIntoWind( magnetic, coord ) + local function adjustDegreesForWindSpeed(windSpeed) + local degreesAdjustment = 0 + -- the windspeeds are in m/s + + -- +0 degrees at 15m/s = 37kts + -- +0 degrees at 14m/s = 35kts + -- +0 degrees at 13m/s = 33kts + -- +4 degrees at 12m/s = 31kts + -- +4 degrees at 11m/s = 29kts + -- +4 degrees at 10m/s = 27kts + -- +4 degrees at 9m/s = 27kts + -- +4 degrees at 8m/s = 27kts + -- +8 degrees at 7m/s = 27kts + -- +8 degrees at 6m/s = 27kts + -- +8 degrees at 5m/s = 26kts + -- +20 degrees at 4m/s = 26kts + -- +20 degrees at 3m/s = 26kts + -- +30 degrees at 2m/s = 26kts 1s + + if windSpeed > 0 and windSpeed < 3 then + degreesAdjustment = 30 + elseif windSpeed >= 3 and windSpeed < 5 then + degreesAdjustment = 20 + elseif windSpeed >= 5 and windSpeed < 8 then + degreesAdjustment = 8 + elseif windSpeed >= 8 and windSpeed < 13 then + degreesAdjustment = 4 + elseif windSpeed >= 13 then + degreesAdjustment = 0 + end + + return degreesAdjustment + end + -- Get direction the wind is blowing from. This is where we want to go. - local windfrom, vwind = self:GetWind( nil, nil, coord ) + local windfrom, vwind = self:GetWind( nil, nil, coord ) + adjustDegreesForWindSpeed(vwind) -- Actually, we want the runway in the wind. local intowind = windfrom - self.carrierparam.rwyangle