diff --git a/Moose Development/Moose/Core/Database.lua b/Moose Development/Moose/Core/Database.lua index 85bde137c..2d985a021 100644 --- a/Moose Development/Moose/Core/Database.lua +++ b/Moose Development/Moose/Core/Database.lua @@ -1699,7 +1699,7 @@ function DATABASE:_EventOnBirth( Event ) if PlayerName then -- 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. if client == nil or (client and client:CountPlayers() == 0) then diff --git a/Moose Development/Moose/Ops/Airboss.lua b/Moose Development/Moose/Ops/Airboss.lua index d6d7b03a7..8ab6156f6 100644 --- a/Moose Development/Moose/Ops/Airboss.lua +++ b/Moose Development/Moose/Ops/Airboss.lua @@ -1283,6 +1283,8 @@ AIRBOSS = { -- @field #string RHINOE F/A-18E Superhornet (mod). -- @field #string RHINOF F/A-18F 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={ AV8B="AV8BNA", HORNET="FA-18C_hornet", @@ -1299,6 +1301,8 @@ AIRBOSS.AircraftCarrier={ RHINOE="FA-18E", RHINOF="FA-18F", GROWLER="EA-18G", + CORSAIR="F4U-1D", + CORSAIR_CW="F4U-1D CW", } --- Carrier types. @@ -1310,6 +1314,7 @@ AIRBOSS.AircraftCarrier={ -- @field #string TRUMAN USS Harry S. Truman (CVN-75) [Super Carrier Module] -- @field #string FORRESTAL USS Forrestal (CV-59) [Heatblur Carrier Module] -- @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 INVINCIBLE HMS Invincible (R05) [V/STOL Carrier] -- @field #string TARAWA USS Tarawa (LHA-1) [V/STOL Carrier] @@ -1325,6 +1330,7 @@ AIRBOSS.CarrierType = { STENNIS = "Stennis", FORRESTAL = "Forrestal", VINSON = "VINSON", + ESSEX = "Essex", HERMES = "HERMES81", INVINCIBLE = "hms_invincible", TARAWA = "LHA_Tarawa", @@ -2013,6 +2019,8 @@ function AIRBOSS:New( carriername, alias ) elseif self.carriertype == AIRBOSS.CarrierType.VINSON then -- Carl Vinson is legacy now. self:_InitStennis() + elseif self.carriertype == AIRBOSS.CarrierType.ESSEX then + self:_InitEssex() elseif self.carriertype == AIRBOSS.CarrierType.HERMES then -- Hermes parameters. self:_InitHermes() @@ -4627,6 +4635,51 @@ function AIRBOSS:_InitForrestal() 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. -- @param #AIRBOSS self function AIRBOSS:_InitHermes() @@ -5329,7 +5382,8 @@ function AIRBOSS:_GetAircraftAoA( playerData ) local goshawk = playerData.actype == AIRBOSS.AircraftCarrier.T45C local skyhawk = playerData.actype == AIRBOSS.AircraftCarrier.A4EC 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. local aoa = {} -- #AIRBOSS.AircraftAoA @@ -5374,7 +5428,6 @@ function AIRBOSS:_GetAircraftAoA( playerData ) aoa.Fast = 8.25 -- =17.5/2 aoa.FAST = 8.00 -- =16.5/2 elseif harrier then - -- 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 = 13.5 @@ -5383,7 +5436,15 @@ function AIRBOSS:_GetAircraftAoA( playerData ) aoa.OnSpeedMin = 9.5 aoa.Fast = 8.0 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 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 harrier = playerData.actype == AIRBOSS.AircraftCarrier.AV8B local goshawk = playerData.actype == AIRBOSS.AircraftCarrier.T45C + local corsair = playerData.actype == AIRBOSS.AircraftCarrier.CORSAIR or playerData.actype == AIRBOSS.AircraftCarrier.CORSAIR_CW -- Return values. local alt @@ -5555,6 +5617,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step ) elseif goshawk then alt = UTILS.FeetToMeters( 800 ) speed = UTILS.KnotsToMps( 300 ) + elseif corsair then + alt = UTILS.FeetToMeters( 300 ) + speed = UTILS.KnotsToMps( 120 ) end elseif step == AIRBOSS.PatternStep.BREAKENTRY then @@ -5568,6 +5633,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step ) elseif goshawk then alt = UTILS.FeetToMeters( 800 ) speed = UTILS.KnotsToMps( 300 ) + elseif corsair then + alt = UTILS.FeetToMeters( 200 ) + speed = UTILS.KnotsToMps( 110 ) end elseif step == AIRBOSS.PatternStep.EARLYBREAK then @@ -5576,6 +5644,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step ) alt = UTILS.FeetToMeters( 800 ) elseif skyhawk then alt = UTILS.FeetToMeters( 600 ) + elseif corsair then + alt = UTILS.FeetToMeters( 200 ) + speed = UTILS.KnotsToMps( 100 ) end elseif step == AIRBOSS.PatternStep.LATEBREAK then @@ -5584,6 +5655,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step ) alt = UTILS.FeetToMeters( 800 ) elseif skyhawk then alt = UTILS.FeetToMeters( 600 ) + elseif corsair then + alt = UTILS.FeetToMeters( 150 ) + speed = UTILS.KnotsToMps( 100 ) end elseif step == AIRBOSS.PatternStep.ABEAM then @@ -5592,6 +5666,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step ) alt = UTILS.FeetToMeters( 600 ) elseif skyhawk then alt = UTILS.FeetToMeters( 500 ) + elseif corsair then + alt = UTILS.FeetToMeters( 150 ) + speed = UTILS.KnotsToMps( 90 ) end aoa = aoaac.OnSpeed @@ -5616,6 +5693,9 @@ function AIRBOSS:_GetAircraftParameters( playerData, step ) alt = UTILS.FeetToMeters( 500 ) elseif harrier then alt = UTILS.FeetToMeters( 425 ) + elseif corsair then + alt = UTILS.FeetToMeters( 90 ) + speed = UTILS.KnotsToMps( 90 ) end 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. elseif skyhawk then alt = UTILS.FeetToMeters( 370 ) -- ? + elseif corsair then + alt = UTILS.FeetToMeters( 80 ) end -- 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 ) -- ? elseif harrier then alt=UTILS.FeetToMeters(312)-- 300-325 ft + elseif corsair then + alt = UTILS.FeetToMeters( 80 ) end aoa = aoaac.OnSpeed @@ -6519,6 +6603,8 @@ function AIRBOSS:_LandAI( flight ) Speed = UTILS.KnotsToKmph( 175 ) elseif flight.actype == AIRBOSS.AircraftCarrier.S3B or flight.actype == AIRBOSS.AircraftCarrier.S3BTANKER then Speed = UTILS.KnotsToKmph( 140 ) + elseif flight.actype == AIRBOSS.AircraftCarrier.CORSAIR or flight.actype == AIRBOSS.AircraftCarrier.CORSAIR_CW then + Speed = UTILS.KnotsToKmph( 100 ) end -- Carrier position. @@ -10314,6 +10400,9 @@ function AIRBOSS:_GetSternCoord() elseif self.carriertype == AIRBOSS.CarrierType.FORRESTAL then -- Forrestal 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 -- 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 )