mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
CTv0.1.7w
This commit is contained in:
@@ -235,7 +235,7 @@ CARRIERTRAINER.MenuF10={}
|
|||||||
|
|
||||||
--- Carrier trainer class version.
|
--- Carrier trainer class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
CARRIERTRAINER.version="0.1.7"
|
CARRIERTRAINER.version="0.1.7w"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
@@ -1064,6 +1064,9 @@ function CARRIERTRAINER:_CallTheBall(playerData)
|
|||||||
|
|
||||||
-- Next step: roger ball.
|
-- Next step: roger ball.
|
||||||
playerData.step=91
|
playerData.step=91
|
||||||
|
|
||||||
|
-- Store data.
|
||||||
|
playerData.groove.XX=groovedata
|
||||||
|
|
||||||
elseif rho<=RRB and playerData.step==91 then
|
elseif rho<=RRB and playerData.step==91 then
|
||||||
|
|
||||||
@@ -1128,7 +1131,7 @@ function CARRIERTRAINER:_CallTheBall(playerData)
|
|||||||
-- Store data.
|
-- Store data.
|
||||||
playerData.groove.AR=groovedata
|
playerData.groove.AR=groovedata
|
||||||
|
|
||||||
-- Next step: at the ramp.
|
-- Next step: in the wires.
|
||||||
playerData.step=95
|
playerData.step=95
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1172,6 +1175,11 @@ function CARRIERTRAINER:_CallTheBall(playerData)
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- LSO check if player needs to wave off.
|
--- LSO check if player needs to wave off.
|
||||||
|
-- Wave off conditions are:
|
||||||
|
--
|
||||||
|
-- * Glide slope error > 3 degrees.
|
||||||
|
-- * Line up error > 3 degrees.
|
||||||
|
-- * AoA<6.9 or AoA>9.3.
|
||||||
-- @param #CARRIERTRAINER self
|
-- @param #CARRIERTRAINER self
|
||||||
-- @param #number glideslopeError Glide slope error in degrees.
|
-- @param #number glideslopeError Glide slope error in degrees.
|
||||||
-- @param #number lineupError Line up error in degrees.
|
-- @param #number lineupError Line up error in degrees.
|
||||||
@@ -1205,21 +1213,22 @@ end
|
|||||||
-- @return #string Name of the step
|
-- @return #string Name of the step
|
||||||
function CARRIERTRAINER:_GS(step)
|
function CARRIERTRAINER:_GS(step)
|
||||||
local gp
|
local gp
|
||||||
if step==9 then
|
if step==90 then
|
||||||
gp="X"
|
gp="X0" -- Entering the groove.
|
||||||
elseif step==90 then
|
|
||||||
gp="IM"
|
|
||||||
elseif step==91 then
|
elseif step==91 then
|
||||||
gp="IC"
|
gp="XX" -- Starting the groove.
|
||||||
elseif step==92 then
|
elseif step==92 then
|
||||||
gp="AR"
|
gp="RB" -- Roger ball call.
|
||||||
elseif step==93 then
|
elseif step==93 then
|
||||||
|
gp="IM" -- In the middle.
|
||||||
elseif step==94 then
|
elseif step==94 then
|
||||||
|
gp="IC" -- In close.
|
||||||
elseif step==95 then
|
elseif step==95 then
|
||||||
|
gp="AR" -- At the ramp.
|
||||||
elseif step==96 then
|
elseif step==96 then
|
||||||
elseif step==97 then
|
gp="IW" -- In the wires.
|
||||||
end
|
end
|
||||||
|
return gp
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Trapped?
|
--- Trapped?
|
||||||
@@ -1424,7 +1433,7 @@ function CARRIERTRAINER:_Debrief(playerData)
|
|||||||
|
|
||||||
-- Debriefing text.
|
-- Debriefing text.
|
||||||
local text=string.format("Debriefing:\n")
|
local text=string.format("Debriefing:\n")
|
||||||
text=text..string.format("===================================================\n")
|
text=text..string.format("================================\n")
|
||||||
for _,_data in pairs(playerData.debrief) do
|
for _,_data in pairs(playerData.debrief) do
|
||||||
local step=_data.step
|
local step=_data.step
|
||||||
local comment=_data.hint
|
local comment=_data.hint
|
||||||
@@ -1836,13 +1845,28 @@ end
|
|||||||
-- @return #string LSO grade.
|
-- @return #string LSO grade.
|
||||||
function CARRIERTRAINER:_LSOgrade(playerData)
|
function CARRIERTRAINER:_LSOgrade(playerData)
|
||||||
|
|
||||||
|
local grade=""
|
||||||
|
|
||||||
|
if playerData.patternwo then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
if playerData.waveoff then
|
if playerData.waveoff then
|
||||||
|
|
||||||
elseif playerData.boltered then
|
elseif playerData.boltered then
|
||||||
|
|
||||||
elseif playerData.landed then
|
elseif playerData.landed then
|
||||||
|
|
||||||
local gdata=playerData.groove.X --#CARRIERTRAINER.GrooveData
|
--local gdata=playerData.groove.XX --#CARRIERTRAINER.GrooveData
|
||||||
|
|
||||||
|
|
||||||
|
grade=grade..playerData.groove.XX
|
||||||
|
grade=grade..playerData.groove.RB
|
||||||
|
grade=grade..playerData.groove.IM
|
||||||
|
grade=grade..playerData.groove.IC
|
||||||
|
grade=grade..playerData.groove.AR
|
||||||
|
grade=grade..playerData.groove.IW
|
||||||
|
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
@@ -1850,6 +1874,94 @@ function CARRIERTRAINER:_LSOgrade(playerData)
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Grade approach.
|
||||||
|
-- @param #CARRIERTRAINER self
|
||||||
|
-- @param #CARRIERTRAINER.GrooveData fdata Flight data in the groove.
|
||||||
|
-- @return #string LSO grade.
|
||||||
|
function CARRIERTRAINER:_Flightdata2Text(fdata)
|
||||||
|
|
||||||
|
local function little(text)
|
||||||
|
return string.format("(%s)",text)
|
||||||
|
end
|
||||||
|
local function underline(text)
|
||||||
|
return string.format("_%s_", text)
|
||||||
|
end
|
||||||
|
|
||||||
|
if fdata==nil then
|
||||||
|
return ""
|
||||||
|
end
|
||||||
|
|
||||||
|
local step=fdata.Step
|
||||||
|
local AOA=fdata.AoA
|
||||||
|
local GSE=fdata.GSE
|
||||||
|
local LUE=fdata.LUE
|
||||||
|
local ROL=fdata.Roll
|
||||||
|
|
||||||
|
local Y=self:_GS(step)
|
||||||
|
|
||||||
|
local S=nil
|
||||||
|
if AOA>9.3 then
|
||||||
|
S=underline("F")
|
||||||
|
elseif AOA>8.7 then
|
||||||
|
S="F"
|
||||||
|
elseif AOA>8.3 then
|
||||||
|
S=little("F")
|
||||||
|
elseif AOA<6.7 then
|
||||||
|
S=underline("SLO")
|
||||||
|
elseif AOA<7.7 then
|
||||||
|
S="SLO"
|
||||||
|
elseif AOA<7.9 then
|
||||||
|
S=little("SLO")
|
||||||
|
end
|
||||||
|
|
||||||
|
local A=nil
|
||||||
|
if GSE>1 then
|
||||||
|
A=underline("H")
|
||||||
|
elseif GSE>0.5 then
|
||||||
|
A=little("H")
|
||||||
|
elseif GSE>0.25 then
|
||||||
|
A="H"
|
||||||
|
elseif GSE<-1 then
|
||||||
|
A=underline("LO")
|
||||||
|
elseif GSE<-0.5 then
|
||||||
|
A=little("LO")
|
||||||
|
elseif GSE<-0.25 then
|
||||||
|
A="LO"
|
||||||
|
end
|
||||||
|
|
||||||
|
local D=nil
|
||||||
|
if LUE>3 then
|
||||||
|
D=underline("LUL")
|
||||||
|
elseif LUE>1 then
|
||||||
|
D="LUL"
|
||||||
|
elseif LUE>0.5 then
|
||||||
|
D=little("LUL")
|
||||||
|
elseif LUE<-3 then
|
||||||
|
D=underline("LUR")
|
||||||
|
elseif LUE<-1 then
|
||||||
|
D="LUR"
|
||||||
|
elseif LUE<-0.5 then
|
||||||
|
D=little("LUL")
|
||||||
|
end
|
||||||
|
|
||||||
|
local G=""
|
||||||
|
if S then
|
||||||
|
G=G..S
|
||||||
|
end
|
||||||
|
if A then
|
||||||
|
G=G..A
|
||||||
|
end
|
||||||
|
if D then
|
||||||
|
G=G..D
|
||||||
|
end
|
||||||
|
|
||||||
|
if G~="" then
|
||||||
|
G=G..Y
|
||||||
|
end
|
||||||
|
|
||||||
|
return G
|
||||||
|
end
|
||||||
|
|
||||||
--- Evaluate player's altitude at checkpoint.
|
--- Evaluate player's altitude at checkpoint.
|
||||||
-- @param #CARRIERTRAINER self
|
-- @param #CARRIERTRAINER self
|
||||||
-- @param #CARRIERTRAINER.PlayerData playerData Player data table.
|
-- @param #CARRIERTRAINER.PlayerData playerData Player data table.
|
||||||
|
|||||||
Reference in New Issue
Block a user