Files
spearhead/classes/configuration/CapConfig.lua
T
dutchie031 0233b9e2d7 Cap rework (#48)
- Refactored all CAP classes.
- Improved timing
- Zones are now not tied to MissionStages
  - CAPROUTE_<routeID>_<free>
  - routeID is now what is used in the naming convention.
- Units taxi back to their spawn parking space and rearm there.
  (Units destroyed while in the Rearming or Repairing state are not taken into account)
2025-06-01 18:58:35 +02:00

100 lines
2.7 KiB
Lua

---@class CapConfig
---@field private _isEnabled boolean
---@field private _minSpeed number
---@field private _maxSpeed number
---@field private _minAlt number
---@field private _maxAlt number
---@field private _minDurationOnStation number
---@field private _maxDurationOnStation number
---@field private _maxDeviationRange number
---@field private _rearmDelay number
---@field private _repairDelay number
---@field private _deathDelay number
local CapConfig = {};
CapConfig.__index = CapConfig
---@return CapConfig
function CapConfig.new()
local self = setmetatable({}, CapConfig)
if SpearheadConfig == nil then SpearheadConfig = {} end
if SpearheadConfig.CapConfig == nil then SpearheadConfig.CapConfig = {} end
local enabled = SpearheadConfig.CapConfig.enabled
if enabled == nil then enabled = true end
self._isEnabled = enabled
self._minSpeed = (tonumber(SpearheadConfig.CapConfig.minSpeed) or 400) * 0.514444
self._maxSpeed = (tonumber(SpearheadConfig.CapConfig.maxSpeed) or 400) * 0.514444
self._minAlt = (tonumber(SpearheadConfig.CapConfig.minAlt) or 18000) * 0.3048
self._maxAlt = (tonumber(SpearheadConfig.CapConfig.maxAlt) or 28000) * 0.3048
self._minDurationOnStation = 1200
self._maxDurationOnStation = 2700
self._maxDeviationRange = 35 * 1852 -- in meters
self._rearmDelay = tonumber(SpearheadConfig.CapConfig.rearmDelay) or 600
self._repairDelay = tonumber(SpearheadConfig.CapConfig.repairDelay) or 600
self._deathDelay = tonumber(SpearheadConfig.CapConfig.deathDelay) or 1800
return self;
end
function CapConfig:isEnabled()
return self._isEnabled
end
---@return number
function CapConfig:getMinSpeed()
return self._minSpeed
end
---@return number
function CapConfig:getMaxSpeed()
return self._maxSpeed
end
---@return number
function CapConfig:getMinAlt()
return self._minAlt
end
---@return number
function CapConfig:getMaxAlt()
return self._maxAlt
end
---@return number
function CapConfig:getMinDurationOnStation()
return self._minDurationOnStation
end
---@return number
function CapConfig:getMaxDurationOnStation()
return self._maxDurationOnStation
end
---@return number
function CapConfig:getMaxDeviationRange()
return self._maxDeviationRange
end
---@return number
function CapConfig:getRearmDelay()
return self._rearmDelay
end
function CapConfig:getRepairDelay()
return self._repairDelay
end
---@return number
function CapConfig:getDeathDelay()
return self._deathDelay
end
if not Spearhead.internal then Spearhead.internal = {} end
if not Spearhead.internal.configuration then Spearhead.internal.configuration = {} end
Spearhead.internal.configuration.CapConfig = CapConfig;