mirror of
https://github.com/iTracerFacer/DCS_MissionDev.git
synced 2025-12-03 04:14:46 +00:00
Hover coach menus moved to bottom.
This commit is contained in:
parent
d8d5e049b9
commit
be75543c12
Binary file not shown.
@ -333,40 +333,7 @@ CTLD.Config = {
|
|||||||
ShowStockInMenu = true, -- if true, append simple stock hints to menu labels (per current nearest zone)
|
ShowStockInMenu = true, -- if true, append simple stock hints to menu labels (per current nearest zone)
|
||||||
HideZeroStockMenu = false, -- removed: previously created an "In Stock Here" submenu; now disabled by default
|
HideZeroStockMenu = false, -- removed: previously created an "In Stock Here" submenu; now disabled by default
|
||||||
},
|
},
|
||||||
}
|
|
||||||
|
|
||||||
-- Immersive Hover Coach configuration (messages, thresholds, throttling)
|
|
||||||
-- All user-facing text lives here; logic only fills placeholders.
|
|
||||||
-- #region Messaging
|
|
||||||
CTLD.HoverCoachConfig = {
|
|
||||||
enabled = true, -- master switch for hover coaching feature
|
|
||||||
coachOnByDefault = true, -- per-player default; players can toggle via F10 > Navigation > Hover Coach
|
|
||||||
|
|
||||||
-- Pickup parameters
|
|
||||||
maxCratesPerLoad = 6, -- maximum crates the aircraft can carry simultaneously
|
|
||||||
autoPickupDistance = 25, -- meters max search distance for candidate crates
|
|
||||||
|
|
||||||
thresholds = {
|
|
||||||
arrivalDist = 1000, -- m: start guidance “You’re close…”
|
|
||||||
closeDist = 100, -- m: reduce speed / set AGL guidance
|
|
||||||
precisionDist = 8, -- m: start precision hints
|
|
||||||
captureHoriz = 5, -- m: horizontal sweet spot radius
|
|
||||||
captureVert = 5, -- m: vertical sweet spot tolerance around AGL window
|
|
||||||
aglMin = 5, -- m: hover window min AGL
|
|
||||||
aglMax = 20, -- m: hover window max AGL
|
|
||||||
maxGS = 8/3.6, -- m/s: 8 km/h for precision, used for errors
|
|
||||||
captureGS = 4/3.6, -- m/s: 4 km/h capture requirement
|
|
||||||
maxVS = 2.0, -- m/s: absolute vertical speed during capture
|
|
||||||
driftResetDist = 13, -- m: if beyond, reset precision phase
|
|
||||||
stabilityHold = 2.0 -- s: hold steady before loading
|
|
||||||
},
|
|
||||||
|
|
||||||
throttle = {
|
|
||||||
coachUpdate = 3.0, -- s between hint updates in precision
|
|
||||||
generic = 3.0, -- s between non-coach messages
|
|
||||||
repeatSame = 6.0 -- s before repeating same message key
|
|
||||||
},
|
|
||||||
}
|
|
||||||
-- Troop type presets (menu-driven loadable teams)
|
-- Troop type presets (menu-driven loadable teams)
|
||||||
Troops = {
|
Troops = {
|
||||||
-- Default troop type to use when no specific type is chosen
|
-- Default troop type to use when no specific type is chosen
|
||||||
@ -412,11 +379,41 @@ CTLD.HoverCoachConfig = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
-- #endregion Config
|
-- #endregion Config
|
||||||
|
|
||||||
|
-- Immersive Hover Coach configuration (messages, thresholds, throttling)
|
||||||
|
-- All user-facing text lives here; logic only fills placeholders.
|
||||||
|
CTLD.HoverCoachConfig = {
|
||||||
|
enabled = true, -- master switch for hover coaching feature
|
||||||
|
coachOnByDefault = true, -- per-player default; players can toggle via F10 > Navigation > Hover Coach
|
||||||
|
|
||||||
|
-- Pickup parameters
|
||||||
|
maxCratesPerLoad = 6, -- maximum crates the aircraft can carry simultaneously
|
||||||
|
autoPickupDistance = 25, -- meters max search distance for candidate crates
|
||||||
|
|
||||||
|
thresholds = {
|
||||||
|
arrivalDist = 1000, -- m: start guidance "You're close…"
|
||||||
|
closeDist = 100, -- m: reduce speed / set AGL guidance
|
||||||
|
precisionDist = 8, -- m: start precision hints
|
||||||
|
captureHoriz = 5, -- m: horizontal sweet spot radius
|
||||||
|
captureVert = 5, -- m: vertical sweet spot tolerance around AGL window
|
||||||
|
aglMin = 5, -- m: hover window min AGL
|
||||||
|
aglMax = 20, -- m: hover window max AGL
|
||||||
|
maxGS = 8/3.6, -- m/s: 8 km/h for precision, used for errors
|
||||||
|
captureGS = 4/3.6, -- m/s: 4 km/h capture requirement
|
||||||
|
maxVS = 2.0, -- m/s: absolute vertical speed during capture
|
||||||
|
driftResetDist = 13, -- m: if beyond, reset precision phase
|
||||||
|
stabilityHold = 2.0 -- s: hold steady before loading
|
||||||
|
},
|
||||||
|
|
||||||
|
throttle = {
|
||||||
|
coachUpdate = 3.0, -- s between hint updates in precision
|
||||||
|
generic = 3.0, -- s between non-coach messages
|
||||||
|
repeatSame = 6.0 -- s before repeating same message key
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
-- =========================
|
-- =========================
|
||||||
-- MEDEVAC Configuration
|
-- MEDEVAC Configuration
|
||||||
-- =========================
|
-- =========================
|
||||||
@ -483,9 +480,10 @@ CTLD.MEDEVAC = {
|
|||||||
-- Mobile MASH (player-deployable via crates)
|
-- Mobile MASH (player-deployable via crates)
|
||||||
MobileMASH = {
|
MobileMASH = {
|
||||||
Enabled = true,
|
Enabled = true,
|
||||||
|
ZoneRadius = 500, -- radius of Mobile MASH zone in meters
|
||||||
CrateRecipeKey = 'MOBILE_MASH', -- catalog key for building mobile MASH
|
CrateRecipeKey = 'MOBILE_MASH', -- catalog key for building mobile MASH
|
||||||
AnnouncementInterval = 1800, -- 30 mins between announcements
|
AnnouncementInterval = 1800, -- 30 mins between announcements
|
||||||
AnnouncementFrequency = 251.0, -- AM frequency (not true ADF, just announces on radio)
|
BeaconFrequency = '30.0 FM', -- radio frequency for announcements
|
||||||
Destructible = true,
|
Destructible = true,
|
||||||
VehicleTypes = {
|
VehicleTypes = {
|
||||||
[coalition.side.BLUE] = 'M113', -- Medical variant for BLUE
|
[coalition.side.BLUE] = 'M113', -- Medical variant for BLUE
|
||||||
@ -2034,16 +2032,6 @@ function CTLD:BuildGroupMenus(group)
|
|||||||
|
|
||||||
-- Navigation
|
-- Navigation
|
||||||
local gname = group:GetName()
|
local gname = group:GetName()
|
||||||
CMD('Hover Coach: Enable', navRoot, function()
|
|
||||||
CTLD._coachOverride = CTLD._coachOverride or {}
|
|
||||||
CTLD._coachOverride[gname] = true
|
|
||||||
_eventSend(self, group, nil, 'coach_enabled', {})
|
|
||||||
end)
|
|
||||||
CMD('Hover Coach: Disable', navRoot, function()
|
|
||||||
CTLD._coachOverride = CTLD._coachOverride or {}
|
|
||||||
CTLD._coachOverride[gname] = false
|
|
||||||
_eventSend(self, group, nil, 'coach_disabled', {})
|
|
||||||
end)
|
|
||||||
CMD('Request Vectors to Nearest Crate', navRoot, function()
|
CMD('Request Vectors to Nearest Crate', navRoot, function()
|
||||||
local unit = group:GetUnit(1)
|
local unit = group:GetUnit(1)
|
||||||
if not unit or not unit:IsAlive() then return end
|
if not unit or not unit:IsAlive() then return end
|
||||||
@ -2274,6 +2262,18 @@ function CTLD:BuildGroupMenus(group)
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Hover Coach (at end of Navigation submenu)
|
||||||
|
CMD('Hover Coach: Enable', navRoot, function()
|
||||||
|
CTLD._coachOverride = CTLD._coachOverride or {}
|
||||||
|
CTLD._coachOverride[gname] = true
|
||||||
|
_eventSend(self, group, nil, 'coach_enabled', {})
|
||||||
|
end)
|
||||||
|
CMD('Hover Coach: Disable', navRoot, function()
|
||||||
|
CTLD._coachOverride = CTLD._coachOverride or {}
|
||||||
|
CTLD._coachOverride[gname] = false
|
||||||
|
_eventSend(self, group, nil, 'coach_disabled', {})
|
||||||
|
end)
|
||||||
|
|
||||||
-- Admin/Help
|
-- Admin/Help
|
||||||
-- Status & map controls
|
-- Status & map controls
|
||||||
CMD('Show CTLD Status', adminRoot, function()
|
CMD('Show CTLD Status', adminRoot, function()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user