mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
docs
This commit is contained in:
parent
39ffc28cb4
commit
b4c82d0aac
@ -73,7 +73,7 @@
|
||||
-- @field #table recoverytime List of time intervals when aircraft are recovered.
|
||||
-- @extends Core.Fsm#FSM
|
||||
|
||||
--- Practice Carrier Landings
|
||||
--- The boss!
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
@ -81,7 +81,18 @@
|
||||
--
|
||||
-- # The AIRBOSS Concept
|
||||
--
|
||||
-- bla bla
|
||||
-- On an aircraft carrier, the AIRBOSS is guy who is in charge!
|
||||
--
|
||||
-- # Recovery Cases
|
||||
--
|
||||
-- The AIRBOSS class supports all three commonly used recovery cases, i.e.
|
||||
-- * CASE I, which is for daytime and good weather
|
||||
-- * CASE II, for daytime but poor visibility conditions and
|
||||
-- * CASE III for nighttime recoveries.
|
||||
--
|
||||
-- ## CASE I
|
||||
--
|
||||
-- When CASE I recovery is active,
|
||||
--
|
||||
-- @field #AIRBOSS
|
||||
AIRBOSS = {
|
||||
@ -189,7 +200,6 @@ AIRBOSS.CarrierType={
|
||||
-- @type AIRBOSS.AircraftParameters
|
||||
-- @field #number AoA Onspeed Angle of Attack.
|
||||
-- @field #number Dboat Ideal distance to the carrier.
|
||||
-- @field #number
|
||||
|
||||
|
||||
--- Pattern steps.
|
||||
@ -436,23 +446,18 @@ AIRBOSS.MenuF10={}
|
||||
|
||||
--- Airboss class version.
|
||||
-- @field #string version
|
||||
AIRBOSS.version="0.3.2"
|
||||
AIRBOSS.version="0.3.2w"
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-- TODO list
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
-- TODO: Set case II and III times.
|
||||
-- TODO: Get an _OK_ pass if long in groove. Possible other pattern wave offs as well?!
|
||||
-- TODO: Add radio transmission queue for LSO and airboss.
|
||||
-- TODO: Get correct wire when trapped.
|
||||
-- TODO: Add radio check (LSO, AIRBOSS) to F10 radio menu.
|
||||
-- DONE: Monitor holding of players/AI in zoneHolding.
|
||||
-- TODO: Right pattern step after bolter/wo/patternWO?
|
||||
-- TODO: Handle crash event. Delete A/C from queue, send rescue helo, stop carrier?
|
||||
-- TODO: Add aircraft numbers in queue to carrier info F10 radio output.
|
||||
-- DONE: Transmission via radio.
|
||||
-- DONE: Get board numbers.
|
||||
-- TODO: Get fuel state in pounds.
|
||||
-- TODO: Add user functions.
|
||||
-- TODO: Generalize parameters for other carriers.
|
||||
@ -462,6 +467,11 @@ AIRBOSS.version="0.3.2"
|
||||
-- TODO: Foul deck check.
|
||||
-- TODO: Persistence of results.
|
||||
-- TODO: Strike group with helo bringing cargo etc.
|
||||
-- DONE: Add aircraft numbers in queue to carrier info F10 radio output.
|
||||
-- DONE: Monitor holding of players/AI in zoneHolding.
|
||||
-- DONE: Transmission via radio.
|
||||
-- DONE: Get board numbers.
|
||||
-- DONE: Get an _OK_ pass if long in groove. Possible other pattern wave offs as well?!
|
||||
-- DONE: Add scoring to radio menu.
|
||||
-- DONE: Optimized debrief.
|
||||
-- DONE: Add automatic grading.
|
||||
@ -1148,9 +1158,9 @@ function AIRBOSS:_GetAircraftParameters(playerData, step)
|
||||
local hornet=playerData.actype==AIRBOSS.AircraftCarrier.HORNET
|
||||
local skyhawk=playerData.actype==AIRBOSS.AircraftCarrier.A4EC
|
||||
|
||||
local dist
|
||||
local alt
|
||||
local aoa
|
||||
local dist
|
||||
local speed
|
||||
|
||||
if step==AIRBOSS.PatternStep.DESCENT4K then
|
||||
@ -1257,6 +1267,7 @@ function AIRBOSS:_GetAircraftParameters(playerData, step)
|
||||
|
||||
end
|
||||
|
||||
return alt, aoa, dist, speed
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
@ -1546,8 +1557,6 @@ function AIRBOSS:_RemoveFlightGroup(group)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
--- Orbit at a specified position at a specified alititude with a specified speed.
|
||||
-- @param #AIRBOSS self
|
||||
-- @param #AIRBOSS.PlayerData playerData Player data.
|
||||
|
||||
@ -49,7 +49,65 @@
|
||||
--
|
||||
-- # Recovery Tanker
|
||||
--
|
||||
-- bla bla
|
||||
-- A recovery tanker acts as refueling unit flying overhead an aircraft carrier in order to supply incoming flights with gas if necessary.
|
||||
--
|
||||
-- # Simple Script
|
||||
--
|
||||
-- In the mission editor you have to set up a carrier unit, which will act as "mother". In the following, this unit will be named "USS Stennis".
|
||||
--
|
||||
-- Secondly, you need to define a recovery tanker group in the mission editor and set it to "LATE ACTIVATED". The name of the group we'll use is "Texaco".
|
||||
--
|
||||
-- The basic script is very simple and consists of only two lines.
|
||||
--
|
||||
-- TexacoStennis=RECOVERYTANKER:New(UNIT:FindByName("USS Stennis"), "Texaco")
|
||||
-- TexacoStennis:Start()
|
||||
--
|
||||
-- The first line will create a new RECOVERYTANKER object and the second line starts the process.
|
||||
--
|
||||
-- With this setup, the tanker will be spawned on the USS Stennis with running engines. After it takes off, it will fly a position astern of the boat and from there start its
|
||||
-- pattern. This is a counter clockwise racetrack pattern at angels 6.
|
||||
--
|
||||
-- 
|
||||
--
|
||||
-- The "downwind" leg of the pattern is normally used for refueling.
|
||||
--
|
||||
-- Once the tanker runs out of fuel itself, it will return to the carrier and be respawned.
|
||||
--
|
||||
-- # Fine Tuning
|
||||
--
|
||||
-- Several parameters can be customized by the mission designer.
|
||||
--
|
||||
-- ## Adjusting the Takeoff Type
|
||||
--
|
||||
-- By default, the tanker is spawned with running engies on the carrier. The mission designer has set option to set the take off type via the @{#RECOVERYTANKER.SetTakeoff} function.
|
||||
-- Or via shortcuts
|
||||
--
|
||||
-- * @{#RECOVERYTANKER.SetTakeoffHot}(): Will set the takeoff to hot, which is also the default.
|
||||
-- * @{#RECOVERYTANKER.SetTakeoffCold}(): Will set the takeoff type to cold, i.e. with engines off.
|
||||
-- * @{#RECOVERYTANKER.SetTakeoffAir}(): Will set the takeoff type to air, i.e. the tanker will be spawned in air relatively far behind the carrier.
|
||||
--
|
||||
-- For example,
|
||||
-- TexacoStennis=RECOVERYTANKER:New(UNIT:FindByName("USS Stennis"), "Texaco")
|
||||
-- TexacoStennis:SetTakeoffAir()
|
||||
-- TexacoStennis:Start()
|
||||
-- will spawn the tanker several nautical miles astern the carrier. From there it will start its pattern.
|
||||
--
|
||||
-- Spawning in air is not as realsitic but can be useful do avoid DCS bugs and shortcomings like aircraft crashing into each other on the flight deck.
|
||||
--
|
||||
-- **Note** that when spawning in air is set, the tanker will also not return to the boat, once it is out of fuel. Instead it will be respawned directly in air.
|
||||
--
|
||||
-- If only the first spawning should happen on the carrier, one use the @{#RECOVERYTANKER.SetRespawnInAir}() function to command that all subsequent spawning
|
||||
-- will happen in air.
|
||||
--
|
||||
-- If the helo should no be respawned at all, one can set @{#RECOVERYTANKER.SetRespawnOff}().
|
||||
--
|
||||
-- ## Adjusting the Pattern
|
||||
--
|
||||
-- The racetrack pattern parameters can be fine tuned via the following functions:
|
||||
--
|
||||
-- * @{#RECOVERYTANKER.SetAltitude}(*altitude*), where *altitude* is the pattern altitude in feet. Default 6000 ft.
|
||||
-- * @{#RECOVERYTANKER.SetSpeed}(*speed*), where *speed* is the pattern speed in knots. Default is 272 knots.
|
||||
-- * @{#RECOVERYTANKER.SetRacetrackDistances}(*distbow*, *diststern*), where *distbow* and *diststern* are the distances ahead and astern the boat, respectively.
|
||||
--
|
||||
-- @field #RECOVERYTANKER
|
||||
RECOVERYTANKER = {
|
||||
@ -734,8 +792,8 @@ function RECOVERYTANKER:_PatternUpdate()
|
||||
local wp={}
|
||||
|
||||
-- New waypoint with orbit pattern task.
|
||||
wp[1]=self.tanker:GetCoordinate():WaypointAirTurningPoint(nil , self.speed, {}, "Current Position")
|
||||
wp[2]=p0:WaypointAirTurningPoint(nil, self.speed, {taskorbit}, "Tanker Orbit")
|
||||
--wp[1]=self.tanker:GetCoordinate():WaypointAirTurningPoint(nil , self.speed, {}, "Current Position")
|
||||
wp[1]=p0:WaypointAirTurningPoint(nil, self.speed, {taskorbit}, "Tanker Orbit")
|
||||
|
||||
-- Initialize WP and route tanker.
|
||||
self.tanker:WayPointInitialize(wp)
|
||||
|
||||
@ -45,9 +45,85 @@
|
||||
--
|
||||
-- 
|
||||
--
|
||||
-- # Recue helo
|
||||
-- # Recue Helo
|
||||
--
|
||||
-- The rescue helo will fly in close formation with another unit, which is typically an aircraft carrier.
|
||||
-- It's mission is to rescue crashed units or ejected pilots. Well, and to look cool...
|
||||
--
|
||||
-- # Simple Script
|
||||
--
|
||||
-- In the mission editor you have to set up a carrier unit, which will act as "mother". In the following, this unit will be named "USS Stennis".
|
||||
--
|
||||
-- Secondly, you need to define a recue helicopter group in the mission editor and set it to "LATE ACTIVATED". The name of the group we'll use is "Recue Helo".
|
||||
--
|
||||
-- The basic script is very simple and consists of only two lines.
|
||||
--
|
||||
-- RescueheloStennis=RESCUEHELO:New(UNIT:FindByName("USS Stennis"), "Rescue Helo")
|
||||
-- RescueheloStennis:Start()
|
||||
--
|
||||
-- The first line will create a new RESCUEHELO object and the second line starts the process.
|
||||
--
|
||||
-- **NOTE** that it is *very important* to define the RESCUEHELO object as **global** variable. Otherwise, the lua garbage collector will kill the formation!
|
||||
--
|
||||
-- By default, the helo will be spawned on the USS Stennis with hot engines. Then it will take off and go on station on the starboard side of the boat.
|
||||
--
|
||||
-- Once the helo is out of fuel, it will return to the carrier. When the helo lands, it will be respawned immidiately and go back on station.
|
||||
--
|
||||
-- If a unit crashes or a pilot ejects within a radius of 100 km from the USS Stennis, the helo will automatically fly to the crash side and
|
||||
-- rescue to pilot. This will take around 5 minutes. After that, the helo will return to the Stennis, land there and bring back the poor guy.
|
||||
-- When this is done, the helo will go back on station.
|
||||
--
|
||||
-- # Fine Tuning
|
||||
--
|
||||
-- The implementation allows to customize quite a few settings easily
|
||||
--
|
||||
-- ## Adjusting the Takeoff Type
|
||||
--
|
||||
-- By default, the helo is spawned with running engies on the carrier. The mission designer has set option to set the take off type via the @{#RESCUEHELO.SetTakeoff} function.
|
||||
-- Or via shortcuts
|
||||
--
|
||||
-- * @{#RESCUEHELO.SetTakeoffHot}(): Will set the takeoff to hot, which is also the default.
|
||||
-- * @{#RESCUEHELO.SetTakeoffCold}(): Will set the takeoff type to cold, i.e. with engines off.
|
||||
-- * @{#RESCUEHELO.SetTakeoffAir}(): Will set the takeoff type to air, i.e. the helo will be spawned in air near the unit which he follows.
|
||||
--
|
||||
-- For example,
|
||||
-- RescueheloStennis=RESCUEHELO:New(UNIT:FindByName("USS Stennis"), "Rescue Helo")
|
||||
-- RescueheloStennis:SetTakeoffAir()
|
||||
-- RescueheloStennis:Start()
|
||||
-- will spawn the helo near the USS Stennis in air.
|
||||
--
|
||||
-- Spawning in air is not as realsitic but can be useful do avoid DCS bugs and shortcomings like aircraft crashing into each other on the flight deck.
|
||||
--
|
||||
-- **Note** that when spawning in air is set, the helo will also not return to the boat, once it is out of fuel. Instead it will be respawned in air.
|
||||
--
|
||||
-- If only the first spawning should happen on the carrier, one use the @{#RESCUEHELO.SetRespawnInAir}() function to command that all subsequent spawning
|
||||
-- will happen in air.
|
||||
--
|
||||
-- If the helo should no be respawned at all, one can set @{#RESCUEHELO.SetRespawnOff}().
|
||||
--
|
||||
-- ## Setting a Home Base
|
||||
--
|
||||
-- It is possible to define a "home base" other than the aircaft carrier. For example, one could imagine a strike group, and the helo will be spawned from
|
||||
-- another ship which has a helo pad.
|
||||
--
|
||||
-- RescueheloStennis=RESCUEHELO:New(UNIT:FindByName("USS Stennis"), "Rescue Helo")
|
||||
-- RescueheloStennis:SetHomeBase(AIRBASE:FindByName("USS Normandy"))
|
||||
-- RescueheloStennis:Start()
|
||||
--
|
||||
-- In this case, the helo will be spawned on the USS Normandy and then make its way to the USS Stennis to establish the formation.
|
||||
-- Note that the distance to the mother ship should be rather small since the helo will go there very slowly.
|
||||
--
|
||||
-- Once the helo runs out of fuel, it will return to the USS Normandy and not the Stennis for respawning.
|
||||
--
|
||||
--
|
||||
-- # Adjusting the Formation Positon
|
||||
--
|
||||
-- The position of the helo relative to the mother ship can be tuned via the functions
|
||||
--
|
||||
-- * @{#RESCUEHELO.SetAltitude}(*altitude*), where *altitude* is the altitude the helo flies at in meters. Default is 70 meters.
|
||||
-- * @{#RESCUEHELO.SetOffsetX}(*distance*)}, where *distance is the distance in the direction of movement of the carrier. Default is 200 meters.
|
||||
-- * @{#RESCUEHELO.SetOffsetZ}(*distance*)}, where *distance is the distance on the starboard side. Default is 200 meters.
|
||||
--
|
||||
-- bla bla
|
||||
--
|
||||
-- @field #RESCUEHELO
|
||||
RESCUEHELO = {
|
||||
@ -80,6 +156,7 @@ RESCUEHELO.version="0.9.3"
|
||||
|
||||
-- TODO: Add option to stop carrier while rescue operation is in progress.
|
||||
-- TODO: Possibility to add already present/spawned aircraft, e.g. for warehouse.
|
||||
-- TODO: Add option to deactivate the rescueing.
|
||||
-- TODO: Write documenation.
|
||||
-- DONE: Add rescue event when aircraft crashes.
|
||||
-- DONE: Make offset input parameter.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user