mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
AIRBOSS
- Essex - Corsair
This commit is contained in:
parent
cbcc893ce5
commit
24b47b02e0
@ -1699,7 +1699,7 @@ function DATABASE:_EventOnBirth( Event )
|
|||||||
if PlayerName then
|
if PlayerName then
|
||||||
|
|
||||||
-- Debug info.
|
-- Debug info.
|
||||||
self:I(string.format("Player '%s' joined unit '%s' of group '%s'", tostring(PlayerName), tostring(Event.IniDCSUnitName), tostring(Event.IniDCSGroupName)))
|
self:I(string.format("Player '%s' joined unit '%s' (%s) of group '%s'", tostring(PlayerName), tostring(Event.IniDCSUnitName), tostring(Event.IniTypeName), tostring(Event.IniDCSGroupName)))
|
||||||
|
|
||||||
-- Add client in case it does not exist already.
|
-- Add client in case it does not exist already.
|
||||||
if client == nil or (client and client:CountPlayers() == 0) then
|
if client == nil or (client and client:CountPlayers() == 0) then
|
||||||
|
|||||||
@ -1283,6 +1283,8 @@ AIRBOSS = {
|
|||||||
-- @field #string RHINOE F/A-18E Superhornet (mod).
|
-- @field #string RHINOE F/A-18E Superhornet (mod).
|
||||||
-- @field #string RHINOF F/A-18F Superhornet (mod).
|
-- @field #string RHINOF F/A-18F Superhornet (mod).
|
||||||
-- @field #string GROWLER FEA-18G Superhornet (mod).
|
-- @field #string GROWLER FEA-18G Superhornet (mod).
|
||||||
|
-- @field #string CORSAIR F4U-1D Corsair.
|
||||||
|
-- @field #string CORSAIR_CW F4U-1D Corsair Mk.4 (clipped wing).
|
||||||
AIRBOSS.AircraftCarrier={
|
AIRBOSS.AircraftCarrier={
|
||||||
AV8B="AV8BNA",
|
AV8B="AV8BNA",
|
||||||
HORNET="FA-18C_hornet",
|
HORNET="FA-18C_hornet",
|
||||||
@ -1299,6 +1301,8 @@ AIRBOSS.AircraftCarrier={
|
|||||||
RHINOE="FA-18E",
|
RHINOE="FA-18E",
|
||||||
RHINOF="FA-18F",
|
RHINOF="FA-18F",
|
||||||
GROWLER="EA-18G",
|
GROWLER="EA-18G",
|
||||||
|
CORSAIR="F4U-1D",
|
||||||
|
CORSAIR_CW="F4U-1D CW",
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Carrier types.
|
--- Carrier types.
|
||||||
@ -1310,6 +1314,7 @@ AIRBOSS.AircraftCarrier={
|
|||||||
-- @field #string TRUMAN USS Harry S. Truman (CVN-75) [Super Carrier Module]
|
-- @field #string TRUMAN USS Harry S. Truman (CVN-75) [Super Carrier Module]
|
||||||
-- @field #string FORRESTAL USS Forrestal (CV-59) [Heatblur Carrier Module]
|
-- @field #string FORRESTAL USS Forrestal (CV-59) [Heatblur Carrier Module]
|
||||||
-- @field #string VINSON USS Carl Vinson (CVN-70) [Deprecated!]
|
-- @field #string VINSON USS Carl Vinson (CVN-70) [Deprecated!]
|
||||||
|
-- @field #string ESSEX Essex class carrier (e.g. USS Yorktown (CV-10)) [Magnitude 3 Carrier Module]
|
||||||
-- @field #string HERMES HMS Hermes (R12) [V/STOL Carrier]
|
-- @field #string HERMES HMS Hermes (R12) [V/STOL Carrier]
|
||||||
-- @field #string INVINCIBLE HMS Invincible (R05) [V/STOL Carrier]
|
-- @field #string INVINCIBLE HMS Invincible (R05) [V/STOL Carrier]
|
||||||
-- @field #string TARAWA USS Tarawa (LHA-1) [V/STOL Carrier]
|
-- @field #string TARAWA USS Tarawa (LHA-1) [V/STOL Carrier]
|
||||||
@ -1325,6 +1330,7 @@ AIRBOSS.CarrierType = {
|
|||||||
STENNIS = "Stennis",
|
STENNIS = "Stennis",
|
||||||
FORRESTAL = "Forrestal",
|
FORRESTAL = "Forrestal",
|
||||||
VINSON = "VINSON",
|
VINSON = "VINSON",
|
||||||
|
ESSEX = "Essex",
|
||||||
HERMES = "HERMES81",
|
HERMES = "HERMES81",
|
||||||
INVINCIBLE = "hms_invincible",
|
INVINCIBLE = "hms_invincible",
|
||||||
TARAWA = "LHA_Tarawa",
|
TARAWA = "LHA_Tarawa",
|
||||||
@ -2013,6 +2019,8 @@ function AIRBOSS:New( carriername, alias )
|
|||||||
elseif self.carriertype == AIRBOSS.CarrierType.VINSON then
|
elseif self.carriertype == AIRBOSS.CarrierType.VINSON then
|
||||||
-- Carl Vinson is legacy now.
|
-- Carl Vinson is legacy now.
|
||||||
self:_InitStennis()
|
self:_InitStennis()
|
||||||
|
elseif self.carriertype == AIRBOSS.CarrierType.ESSEX then
|
||||||
|
self:_InitEssex()
|
||||||
elseif self.carriertype == AIRBOSS.CarrierType.HERMES then
|
elseif self.carriertype == AIRBOSS.CarrierType.HERMES then
|
||||||
-- Hermes parameters.
|
-- Hermes parameters.
|
||||||
self:_InitHermes()
|
self:_InitHermes()
|
||||||
@ -4627,6 +4635,51 @@ function AIRBOSS:_InitForrestal()
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Init parameters for Essec class carriers.
|
||||||
|
-- @param #AIRBOSS self
|
||||||
|
function AIRBOSS:_InitEssex()
|
||||||
|
|
||||||
|
-- Init Nimitz as default.
|
||||||
|
self:_InitNimitz()
|
||||||
|
|
||||||
|
-- Carrier Parameters.
|
||||||
|
self.carrierparam.sterndist = -126
|
||||||
|
self.carrierparam.deckheight = 19.27 --DCS World\CoreMods\tech\M3 WWII PTO units\Database\Essex_Class_Carrier_1944.lua
|
||||||
|
|
||||||
|
-- Total size of the carrier (approx as rectangle).
|
||||||
|
self.carrierparam.totlength = 268
|
||||||
|
self.carrierparam.totwidthport = 23
|
||||||
|
self.carrierparam.totwidthstarboard = 23
|
||||||
|
|
||||||
|
-- Landing runway.
|
||||||
|
self.carrierparam.rwyangle = 0.0
|
||||||
|
self.carrierparam.rwylength = 265
|
||||||
|
self.carrierparam.rwywidth = 20
|
||||||
|
|
||||||
|
-- Wires.
|
||||||
|
self.carrierparam.wire1 = 21.9
|
||||||
|
self.carrierparam.wire2 = 28.3
|
||||||
|
self.carrierparam.wire3 = 34.7
|
||||||
|
self.carrierparam.wire4 = 41.1
|
||||||
|
self.carrierparam.wire5 = 47.4
|
||||||
|
self.carrierparam.wire6 = 53.7
|
||||||
|
self.carrierparam.wire7 = 59.0
|
||||||
|
|
||||||
|
self.carrierparam.wire8 = 64.1
|
||||||
|
self.carrierparam.wire9 = 72.7
|
||||||
|
self.carrierparam.wire10 = 78.0
|
||||||
|
self.carrierparam.wire11 = 85.5
|
||||||
|
|
||||||
|
self.carrierparam.wire12 = 105.9
|
||||||
|
self.carrierparam.wire13 = 113.3
|
||||||
|
self.carrierparam.wire14 = 121.0
|
||||||
|
self.carrierparam.wire15 = 128.5
|
||||||
|
|
||||||
|
-- Landing distance.
|
||||||
|
self.carrierparam.landingdist = self.carrierparam.sterndist+self.carrierparam.wire3
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
--- Init parameters for R12 HMS Hermes carrier.
|
--- Init parameters for R12 HMS Hermes carrier.
|
||||||
-- @param #AIRBOSS self
|
-- @param #AIRBOSS self
|
||||||
function AIRBOSS:_InitHermes()
|
function AIRBOSS:_InitHermes()
|
||||||
@ -5329,7 +5382,8 @@ function AIRBOSS:_GetAircraftAoA( playerData )
|
|||||||
local goshawk = playerData.actype == AIRBOSS.AircraftCarrier.T45C
|
local goshawk = playerData.actype == AIRBOSS.AircraftCarrier.T45C
|
||||||
local skyhawk = playerData.actype == AIRBOSS.AircraftCarrier.A4EC
|
local skyhawk = playerData.actype == AIRBOSS.AircraftCarrier.A4EC
|
||||||
local harrier = playerData.actype == AIRBOSS.AircraftCarrier.AV8B
|
local harrier = playerData.actype == AIRBOSS.AircraftCarrier.AV8B
|
||||||
local tomcat = playerData.actype == AIRBOSS.AircraftCarrier.F14A or playerData.actype == AIRBOSS.AircraftCarrier.F14B
|
local tomcat = playerData.actype == AIRBOSS.AircraftCarrier.F14A or playerData.actype == AIRBOSS.AircraftCarrier.F14B
|
||||||
|
local corsair = playerData.actype == AIRBOSS.AircraftCarrier.CORSAIR or playerData.actype == AIRBOSS.AircraftCarrier.CORSAIR_CW
|
||||||
|
|
||||||
-- Table with AoA values.
|
-- Table with AoA values.
|
||||||
local aoa = {} -- #AIRBOSS.AircraftAoA
|
local aoa = {} -- #AIRBOSS.AircraftAoA
|
||||||
@ -5374,7 +5428,6 @@ function AIRBOSS:_GetAircraftAoA( playerData )
|
|||||||
aoa.Fast = 8.25 -- =17.5/2
|
aoa.Fast = 8.25 -- =17.5/2
|
||||||
aoa.FAST = 8.00 -- =16.5/2
|
aoa.FAST = 8.00 -- =16.5/2
|
||||||
elseif harrier then
|
elseif harrier then
|
||||||
|
|
||||||
-- AV-8B Harrier parameters. Tuning done on the Fast AoA to allow for abeam and ninety at Nozzles 55. Pene testing
|
-- AV-8B Harrier parameters. Tuning done on the Fast AoA to allow for abeam and ninety at Nozzles 55. Pene testing
|
||||||
aoa.SLOW = 16.0
|
aoa.SLOW = 16.0
|
||||||
aoa.Slow = 13.5
|
aoa.Slow = 13.5
|
||||||
@ -5383,7 +5436,15 @@ function AIRBOSS:_GetAircraftAoA( playerData )
|
|||||||
aoa.OnSpeedMin = 9.5
|
aoa.OnSpeedMin = 9.5
|
||||||
aoa.Fast = 8.0
|
aoa.Fast = 8.0
|
||||||
aoa.FAST = 7.5
|
aoa.FAST = 7.5
|
||||||
|
elseif corsair then
|
||||||
|
-- F4U-1D Corsair parameters.
|
||||||
|
aoa.SLOW = 16.0
|
||||||
|
aoa.Slow = 13.5
|
||||||
|
aoa.OnSpeedMax = 12.5
|
||||||
|
aoa.OnSpeed = 10.0
|
||||||
|
aoa.OnSpeedMin = 9.5
|
||||||
|
aoa.Fast = 8.0
|
||||||
|
aoa.FAST = 7.5
|
||||||
end
|
end
|
||||||
|
|
||||||
return aoa
|
return aoa
|
||||||
@ -5496,6 +5557,7 @@ function AIRBOSS:_GetAircraftParameters( playerData, step )
|
|||||||
local tomcat = playerData.actype == AIRBOSS.AircraftCarrier.F14A or playerData.actype == AIRBOSS.AircraftCarrier.F14B
|
local tomcat = playerData.actype == AIRBOSS.AircraftCarrier.F14A or playerData.actype == AIRBOSS.AircraftCarrier.F14B
|
||||||
local harrier = playerData.actype == AIRBOSS.AircraftCarrier.AV8B
|
local harrier = playerData.actype == AIRBOSS.AircraftCarrier.AV8B
|
||||||
local goshawk = playerData.actype == AIRBOSS.AircraftCarrier.T45C
|
local goshawk = playerData.actype == AIRBOSS.AircraftCarrier.T45C
|
||||||
|
local corsair = playerData.actype == AIRBOSS.AircraftCarrier.CORSAIR or playerData.actype == AIRBOSS.AircraftCarrier.CORSAIR_CW
|
||||||
|
|
||||||
-- Return values.
|
-- Return values.
|
||||||
local alt
|
local alt
|
||||||
@ -5555,6 +5617,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step )
|
|||||||
elseif goshawk then
|
elseif goshawk then
|
||||||
alt = UTILS.FeetToMeters( 800 )
|
alt = UTILS.FeetToMeters( 800 )
|
||||||
speed = UTILS.KnotsToMps( 300 )
|
speed = UTILS.KnotsToMps( 300 )
|
||||||
|
elseif corsair then
|
||||||
|
alt = UTILS.FeetToMeters( 300 )
|
||||||
|
speed = UTILS.KnotsToMps( 120 )
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif step == AIRBOSS.PatternStep.BREAKENTRY then
|
elseif step == AIRBOSS.PatternStep.BREAKENTRY then
|
||||||
@ -5568,6 +5633,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step )
|
|||||||
elseif goshawk then
|
elseif goshawk then
|
||||||
alt = UTILS.FeetToMeters( 800 )
|
alt = UTILS.FeetToMeters( 800 )
|
||||||
speed = UTILS.KnotsToMps( 300 )
|
speed = UTILS.KnotsToMps( 300 )
|
||||||
|
elseif corsair then
|
||||||
|
alt = UTILS.FeetToMeters( 200 )
|
||||||
|
speed = UTILS.KnotsToMps( 110 )
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif step == AIRBOSS.PatternStep.EARLYBREAK then
|
elseif step == AIRBOSS.PatternStep.EARLYBREAK then
|
||||||
@ -5576,6 +5644,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step )
|
|||||||
alt = UTILS.FeetToMeters( 800 )
|
alt = UTILS.FeetToMeters( 800 )
|
||||||
elseif skyhawk then
|
elseif skyhawk then
|
||||||
alt = UTILS.FeetToMeters( 600 )
|
alt = UTILS.FeetToMeters( 600 )
|
||||||
|
elseif corsair then
|
||||||
|
alt = UTILS.FeetToMeters( 200 )
|
||||||
|
speed = UTILS.KnotsToMps( 100 )
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif step == AIRBOSS.PatternStep.LATEBREAK then
|
elseif step == AIRBOSS.PatternStep.LATEBREAK then
|
||||||
@ -5584,6 +5655,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step )
|
|||||||
alt = UTILS.FeetToMeters( 800 )
|
alt = UTILS.FeetToMeters( 800 )
|
||||||
elseif skyhawk then
|
elseif skyhawk then
|
||||||
alt = UTILS.FeetToMeters( 600 )
|
alt = UTILS.FeetToMeters( 600 )
|
||||||
|
elseif corsair then
|
||||||
|
alt = UTILS.FeetToMeters( 150 )
|
||||||
|
speed = UTILS.KnotsToMps( 100 )
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif step == AIRBOSS.PatternStep.ABEAM then
|
elseif step == AIRBOSS.PatternStep.ABEAM then
|
||||||
@ -5592,6 +5666,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step )
|
|||||||
alt = UTILS.FeetToMeters( 600 )
|
alt = UTILS.FeetToMeters( 600 )
|
||||||
elseif skyhawk then
|
elseif skyhawk then
|
||||||
alt = UTILS.FeetToMeters( 500 )
|
alt = UTILS.FeetToMeters( 500 )
|
||||||
|
elseif corsair then
|
||||||
|
alt = UTILS.FeetToMeters( 150 )
|
||||||
|
speed = UTILS.KnotsToMps( 90 )
|
||||||
end
|
end
|
||||||
|
|
||||||
aoa = aoaac.OnSpeed
|
aoa = aoaac.OnSpeed
|
||||||
@ -5616,6 +5693,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step )
|
|||||||
alt = UTILS.FeetToMeters( 500 )
|
alt = UTILS.FeetToMeters( 500 )
|
||||||
elseif harrier then
|
elseif harrier then
|
||||||
alt = UTILS.FeetToMeters( 425 )
|
alt = UTILS.FeetToMeters( 425 )
|
||||||
|
elseif corsair then
|
||||||
|
alt = UTILS.FeetToMeters( 90 )
|
||||||
|
speed = UTILS.KnotsToMps( 90 )
|
||||||
end
|
end
|
||||||
|
|
||||||
aoa = aoaac.OnSpeed
|
aoa = aoaac.OnSpeed
|
||||||
@ -5628,6 +5708,8 @@ function AIRBOSS:_GetAircraftParameters( playerData, step )
|
|||||||
alt = UTILS.FeetToMeters( 430 ) -- Tomcat should be a bit higher as it intercepts the GS a bit higher.
|
alt = UTILS.FeetToMeters( 430 ) -- Tomcat should be a bit higher as it intercepts the GS a bit higher.
|
||||||
elseif skyhawk then
|
elseif skyhawk then
|
||||||
alt = UTILS.FeetToMeters( 370 ) -- ?
|
alt = UTILS.FeetToMeters( 370 ) -- ?
|
||||||
|
elseif corsair then
|
||||||
|
alt = UTILS.FeetToMeters( 80 )
|
||||||
end
|
end
|
||||||
-- Harrier wont get into wake pos. Runway is not angled and it stays port.
|
-- Harrier wont get into wake pos. Runway is not angled and it stays port.
|
||||||
|
|
||||||
@ -5643,6 +5725,8 @@ function AIRBOSS:_GetAircraftParameters( playerData, step )
|
|||||||
alt = UTILS.FeetToMeters( 300 ) -- ?
|
alt = UTILS.FeetToMeters( 300 ) -- ?
|
||||||
elseif harrier then
|
elseif harrier then
|
||||||
alt=UTILS.FeetToMeters(312)-- 300-325 ft
|
alt=UTILS.FeetToMeters(312)-- 300-325 ft
|
||||||
|
elseif corsair then
|
||||||
|
alt = UTILS.FeetToMeters( 80 )
|
||||||
end
|
end
|
||||||
|
|
||||||
aoa = aoaac.OnSpeed
|
aoa = aoaac.OnSpeed
|
||||||
@ -6519,6 +6603,8 @@ function AIRBOSS:_LandAI( flight )
|
|||||||
Speed = UTILS.KnotsToKmph( 175 )
|
Speed = UTILS.KnotsToKmph( 175 )
|
||||||
elseif flight.actype == AIRBOSS.AircraftCarrier.S3B or flight.actype == AIRBOSS.AircraftCarrier.S3BTANKER then
|
elseif flight.actype == AIRBOSS.AircraftCarrier.S3B or flight.actype == AIRBOSS.AircraftCarrier.S3BTANKER then
|
||||||
Speed = UTILS.KnotsToKmph( 140 )
|
Speed = UTILS.KnotsToKmph( 140 )
|
||||||
|
elseif flight.actype == AIRBOSS.AircraftCarrier.CORSAIR or flight.actype == AIRBOSS.AircraftCarrier.CORSAIR_CW then
|
||||||
|
Speed = UTILS.KnotsToKmph( 100 )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Carrier position.
|
-- Carrier position.
|
||||||
@ -10314,6 +10400,9 @@ function AIRBOSS:_GetSternCoord()
|
|||||||
elseif self.carriertype == AIRBOSS.CarrierType.FORRESTAL then
|
elseif self.carriertype == AIRBOSS.CarrierType.FORRESTAL then
|
||||||
-- Forrestal
|
-- Forrestal
|
||||||
self.sterncoord:Translate( self.carrierparam.sterndist, hdg, true, true ):Translate( 7.5, FB + 90, true, true )
|
self.sterncoord:Translate( self.carrierparam.sterndist, hdg, true, true ):Translate( 7.5, FB + 90, true, true )
|
||||||
|
elseif self.carriertype == AIRBOSS.CarrierType.ESSEX then
|
||||||
|
-- Forrestal
|
||||||
|
self.sterncoord:Translate( self.carrierparam.sterndist, hdg, true, true ):Translate( -1, FB + 90, true, true )
|
||||||
else
|
else
|
||||||
-- Nimitz SC: translate 8 meters starboard wrt Final bearing.
|
-- Nimitz SC: translate 8 meters starboard wrt Final bearing.
|
||||||
self.sterncoord:Translate( self.carrierparam.sterndist, hdg, true, true ):Translate( 9.5, FB + 90, true, true )
|
self.sterncoord:Translate( self.carrierparam.sterndist, hdg, true, true ):Translate( 9.5, FB + 90, true, true )
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user