mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
xx
This commit is contained in:
parent
9966c5eadf
commit
a3d7c9e537
@ -60,6 +60,8 @@
|
|||||||
-- @field #number ShoradActDistance Distance of an attacker in meters from a Mantis SAM site, on which Shorad will be switched on. Useful to not give away Shorad sites too early. Default 15km. Should be smaller than checkradius.
|
-- @field #number ShoradActDistance Distance of an attacker in meters from a Mantis SAM site, on which Shorad will be switched on. Useful to not give away Shorad sites too early. Default 15km. Should be smaller than checkradius.
|
||||||
-- @field #boolean checkforfriendlies If true, do not activate a SAM installation if a friendly aircraft is in firing range.
|
-- @field #boolean checkforfriendlies If true, do not activate a SAM installation if a friendly aircraft is in firing range.
|
||||||
-- @field #table FilterZones Table of Core.Zone#ZONE Zones Consider SAM groups in this zone(s) only for this MANTIS instance, must be handed as #table of Zone objects.
|
-- @field #table FilterZones Table of Core.Zone#ZONE Zones Consider SAM groups in this zone(s) only for this MANTIS instance, must be handed as #table of Zone objects.
|
||||||
|
-- @field #boolean SmokeDecoy If true, smoke short range SAM units as decoy if a plane is in firing range.
|
||||||
|
-- @field #number SmokeDecoyColor Color to use, defaults to SMOKECOLOR.White
|
||||||
-- @extends Core.Base#BASE
|
-- @extends Core.Base#BASE
|
||||||
|
|
||||||
|
|
||||||
@ -329,6 +331,8 @@ MANTIS = {
|
|||||||
autoshorad = true,
|
autoshorad = true,
|
||||||
ShoradGroupSet = nil,
|
ShoradGroupSet = nil,
|
||||||
checkforfriendlies = false,
|
checkforfriendlies = false,
|
||||||
|
SmokeDecoy = false,
|
||||||
|
SmokeDecoyColor = SMOKECOLOR.White,
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Advanced state enumerator
|
--- Advanced state enumerator
|
||||||
@ -592,6 +596,9 @@ do
|
|||||||
self.SkateNumber = 3
|
self.SkateNumber = 3
|
||||||
self.shootandscoot = false
|
self.shootandscoot = false
|
||||||
|
|
||||||
|
self.SmokeDecoy = false
|
||||||
|
self.SmokeDecoyColor = SMOKECOLOR.White
|
||||||
|
|
||||||
self.UseEmOnOff = true
|
self.UseEmOnOff = true
|
||||||
if EmOnOff == false then
|
if EmOnOff == false then
|
||||||
self.UseEmOnOff = false
|
self.UseEmOnOff = false
|
||||||
@ -603,6 +610,7 @@ do
|
|||||||
self.advAwacs = false
|
self.advAwacs = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Set the string id for output to DCS.log file.
|
-- Set the string id for output to DCS.log file.
|
||||||
self.lid=string.format("MANTIS %s | ", self.name)
|
self.lid=string.format("MANTIS %s | ", self.name)
|
||||||
|
|
||||||
@ -663,7 +671,7 @@ do
|
|||||||
|
|
||||||
-- TODO Version
|
-- TODO Version
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
self.version="0.8.22"
|
self.version="0.8.23"
|
||||||
self:I(string.format("***** Starting MANTIS Version %s *****", self.version))
|
self:I(string.format("***** Starting MANTIS Version %s *****", self.version))
|
||||||
|
|
||||||
--- FSM Functions ---
|
--- FSM Functions ---
|
||||||
@ -899,6 +907,16 @@ do
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Function to set Short Range SAMs to spit out smoke as decoy, if an enemy plane is in range.
|
||||||
|
-- @param #MANTIS self
|
||||||
|
-- @param #boolean Onoff Set to true for on and nil/false for off.
|
||||||
|
-- @param #number Color (Optional) Color to use, defaults to `SMOKECOLOR.White`
|
||||||
|
function MANTIS:SetSmokeDecoy(Onoff,Color)
|
||||||
|
self.SmokeDecoy = Onoff
|
||||||
|
self.SmokeDecoyColor = Color or SMOKECOLOR.White
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
--- Function to set number of SAMs going active on a valid, detected thread
|
--- Function to set number of SAMs going active on a valid, detected thread
|
||||||
-- @param #MANTIS self
|
-- @param #MANTIS self
|
||||||
-- @param #number Short Number of short-range systems activated, defaults to 1.
|
-- @param #number Short Number of short-range systems activated, defaults to 1.
|
||||||
@ -1550,18 +1568,18 @@ do
|
|||||||
local grpname = group:GetName()
|
local grpname = group:GetName()
|
||||||
local grpcoord = group:GetCoordinate()
|
local grpcoord = group:GetCoordinate()
|
||||||
local grprange,grpheight,type,blind = self:_GetSAMRange(grpname)
|
local grprange,grpheight,type,blind = self:_GetSAMRange(grpname)
|
||||||
table.insert( SAM_Tbl, {grpname, grpcoord, grprange, grpheight, blind})
|
table.insert( SAM_Tbl, {grpname, grpcoord, grprange, grpheight, blind, type})
|
||||||
--table.insert( SEAD_Grps, grpname )
|
--table.insert( SEAD_Grps, grpname )
|
||||||
if type == MANTIS.SamType.LONG then
|
if type == MANTIS.SamType.LONG then
|
||||||
table.insert( SAM_Tbl_lg, {grpname, grpcoord, grprange, grpheight, blind})
|
table.insert( SAM_Tbl_lg, {grpname, grpcoord, grprange, grpheight, blind, type})
|
||||||
table.insert( SEAD_Grps, grpname )
|
table.insert( SEAD_Grps, grpname )
|
||||||
--self:T("SAM "..grpname.." is type LONG")
|
--self:T("SAM "..grpname.." is type LONG")
|
||||||
elseif type == MANTIS.SamType.MEDIUM then
|
elseif type == MANTIS.SamType.MEDIUM then
|
||||||
table.insert( SAM_Tbl_md, {grpname, grpcoord, grprange, grpheight, blind})
|
table.insert( SAM_Tbl_md, {grpname, grpcoord, grprange, grpheight, blind, type})
|
||||||
table.insert( SEAD_Grps, grpname )
|
table.insert( SEAD_Grps, grpname )
|
||||||
--self:T("SAM "..grpname.." is type MEDIUM")
|
--self:T("SAM "..grpname.." is type MEDIUM")
|
||||||
elseif type == MANTIS.SamType.SHORT then
|
elseif type == MANTIS.SamType.SHORT then
|
||||||
table.insert( SAM_Tbl_sh, {grpname, grpcoord, grprange, grpheight, blind})
|
table.insert( SAM_Tbl_sh, {grpname, grpcoord, grprange, grpheight, blind, type})
|
||||||
--self:T("SAM "..grpname.." is type SHORT")
|
--self:T("SAM "..grpname.." is type SHORT")
|
||||||
self.ShoradGroupSet:Add(grpname,group)
|
self.ShoradGroupSet:Add(grpname,group)
|
||||||
if not self.autoshorad then
|
if not self.autoshorad then
|
||||||
@ -1609,16 +1627,16 @@ do
|
|||||||
local grpname = group:GetName()
|
local grpname = group:GetName()
|
||||||
local grpcoord = group:GetCoordinate()
|
local grpcoord = group:GetCoordinate()
|
||||||
local grprange, grpheight,type,blind = self:_GetSAMRange(grpname)
|
local grprange, grpheight,type,blind = self:_GetSAMRange(grpname)
|
||||||
table.insert( SAM_Tbl, {grpname, grpcoord, grprange, grpheight, blind}) -- make the table lighter, as I don't really use the zone here
|
table.insert( SAM_Tbl, {grpname, grpcoord, grprange, grpheight, blind, type}) -- make the table lighter, as I don't really use the zone here
|
||||||
table.insert( SEAD_Grps, grpname )
|
table.insert( SEAD_Grps, grpname )
|
||||||
if type == MANTIS.SamType.LONG then
|
if type == MANTIS.SamType.LONG then
|
||||||
table.insert( SAM_Tbl_lg, {grpname, grpcoord, grprange, grpheight, blind})
|
table.insert( SAM_Tbl_lg, {grpname, grpcoord, grprange, grpheight, blind, type})
|
||||||
--self:I({grpname,grprange, grpheight})
|
--self:I({grpname,grprange, grpheight})
|
||||||
elseif type == MANTIS.SamType.MEDIUM then
|
elseif type == MANTIS.SamType.MEDIUM then
|
||||||
table.insert( SAM_Tbl_md, {grpname, grpcoord, grprange, grpheight, blind})
|
table.insert( SAM_Tbl_md, {grpname, grpcoord, grprange, grpheight, blind, type})
|
||||||
--self:I({grpname,grprange, grpheight})
|
--self:I({grpname,grprange, grpheight})
|
||||||
elseif type == MANTIS.SamType.SHORT then
|
elseif type == MANTIS.SamType.SHORT then
|
||||||
table.insert( SAM_Tbl_sh, {grpname, grpcoord, grprange, grpheight, blind})
|
table.insert( SAM_Tbl_sh, {grpname, grpcoord, grprange, grpheight, blind, type})
|
||||||
--self:I({grpname,grprange, grpheight})
|
--self:I({grpname,grprange, grpheight})
|
||||||
self.ShoradGroupSet:Add(grpname,group)
|
self.ShoradGroupSet:Add(grpname,group)
|
||||||
if self.autoshorad then
|
if self.autoshorad then
|
||||||
@ -1688,6 +1706,7 @@ do
|
|||||||
local radius = _data[3]
|
local radius = _data[3]
|
||||||
local height = _data[4]
|
local height = _data[4]
|
||||||
local blind = _data[5] * 1.25 + 1
|
local blind = _data[5] * 1.25 + 1
|
||||||
|
local shortsam = _data[6] == MANTIS.SamType.SHORT and true or false
|
||||||
local samgroup = GROUP:FindByName(name)
|
local samgroup = GROUP:FindByName(name)
|
||||||
local IsInZone, Distance = self:_CheckObjectInZone(detset, samcoordinate, radius, height, dlink)
|
local IsInZone, Distance = self:_CheckObjectInZone(detset, samcoordinate, radius, height, dlink)
|
||||||
local suppressed = self.SuppressedGroups[name] or false
|
local suppressed = self.SuppressedGroups[name] or false
|
||||||
@ -1713,6 +1732,15 @@ do
|
|||||||
self:__RedState(1,samgroup)
|
self:__RedState(1,samgroup)
|
||||||
self.SamStateTracker[name] = "RED"
|
self.SamStateTracker[name] = "RED"
|
||||||
end
|
end
|
||||||
|
if shortsam == true and self.SmokeDecoy == true then
|
||||||
|
local units = samgroup:GetUnits() or {}
|
||||||
|
local smoke = self.SmokeDecoyColor or SMOKECOLOR.White
|
||||||
|
for _,unit in pairs(units) do
|
||||||
|
if unit and unit:IsAlive() then
|
||||||
|
unit:Smoke(smoke,2,2)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
-- link in to SHORAD if available
|
-- link in to SHORAD if available
|
||||||
-- DONE: Test integration fully
|
-- DONE: Test integration fully
|
||||||
if self.ShoradLink and (Distance < self.ShoradActDistance or Distance < blind ) then -- don't give SHORAD position away too early
|
if self.ShoradLink and (Distance < self.ShoradActDistance or Distance < blind ) then -- don't give SHORAD position away too early
|
||||||
|
|||||||
@ -1166,6 +1166,125 @@ ENUMS.Storage.weapons.bombs.AGM_62 = "weapons.bombs.AGM_62"
|
|||||||
ENUMS.Storage.weapons.containers.US_M10_SMOKE_TANK_WHITE = "weapons.containers.{US_M10_SMOKE_TANK_WHITE}"
|
ENUMS.Storage.weapons.containers.US_M10_SMOKE_TANK_WHITE = "weapons.containers.{US_M10_SMOKE_TANK_WHITE}"
|
||||||
ENUMS.Storage.weapons.missiles.MICA_T = "weapons.missiles.MICA_T"
|
ENUMS.Storage.weapons.missiles.MICA_T = "weapons.missiles.MICA_T"
|
||||||
ENUMS.Storage.weapons.containers.HVAR_rocket = "weapons.containers.HVAR_rocket"
|
ENUMS.Storage.weapons.containers.HVAR_rocket = "weapons.containers.HVAR_rocket"
|
||||||
|
-- 2025
|
||||||
|
ENUMS.Storage.weapons.containers.LANTIRN = "weapons.containers.LANTIRN"
|
||||||
|
ENUMS.Storage.weapons.missiles.AGM_78B = "weapons.missiles.AGM_78B"
|
||||||
|
ENUMS.Storage.weapons.containers.uh_60l_pilot = "weapons.containers.uh-60l_pilot"
|
||||||
|
ENUMS.Storage.weapons.missiles.AIM_92E = "weapons.missiles.AIM-92E"
|
||||||
|
ENUMS.Storage.weapons.missiles.KD_63B = "weapons.missiles.KD_63B"
|
||||||
|
ENUMS.Storage.weapons.bombs.Type_200A = "weapons.bombs.Type_200A"
|
||||||
|
ENUMS.Storage.weapons.missiles.HB_AIM_7E_2 = "weapons.missiles.HB-AIM-7E-2"
|
||||||
|
ENUMS.Storage.weapons.containers.Spear = "weapons.containers.Spear"
|
||||||
|
ENUMS.Storage.weapons.missiles.LS_6 = "weapons.missiles.LS_6"
|
||||||
|
ENUMS.Storage.weapons.containers.HB_ALE_40_0_120 = "weapons.containers.HB_ALE_40_0_120"
|
||||||
|
ENUMS.Storage.weapons.containers.Fantasm = "weapons.containers.Fantasm"
|
||||||
|
ENUMS.Storage.weapons.nurs.FFAR_Mk61 = "weapons.nurs.FFAR_Mk61"
|
||||||
|
ENUMS.Storage.weapons.bombs.HB_F4E_GBU15V1 = "weapons.bombs.HB_F4E_GBU15V1"
|
||||||
|
ENUMS.Storage.weapons.containers.HB_F14_EXT_AN_APQ_167 = "weapons.containers.HB_F14_EXT_AN_APQ-167"
|
||||||
|
ENUMS.Storage.weapons.nurs.LWL_RP = "weapons.nurs.LWL_RP"
|
||||||
|
ENUMS.Storage.weapons.bombs.AGM_62_I = "weapons.bombs.AGM_62_I"
|
||||||
|
ENUMS.Storage.weapons.containers.ETHER = "weapons.containers.ETHER"
|
||||||
|
ENUMS.Storage.weapons.containers.TANGAZH = "weapons.containers.TANGAZH"
|
||||||
|
ENUMS.Storage.weapons.bombs.LYSBOMB_11086 = "weapons.bombs.LYSBOMB 11086"
|
||||||
|
ENUMS.Storage.weapons.containers.Stub_Wing = "weapons.containers.Stub_Wing"
|
||||||
|
ENUMS.Storage.weapons.missiles.AIM_9E = "weapons.missiles.AIM-9E"
|
||||||
|
ENUMS.Storage.weapons.missiles.C_701T = "weapons.missiles.C_701T"
|
||||||
|
ENUMS.Storage.weapons.bombs.BAP_100 = "weapons.bombs.BAP_100"
|
||||||
|
ENUMS.Storage.weapons.missiles.CM_802AKG = "weapons.missiles.CM-802AKG"
|
||||||
|
ENUMS.Storage.weapons.missiles.CM_400AKG = "weapons.missiles.CM-400AKG"
|
||||||
|
ENUMS.Storage.weapons.missiles.C_802AK = "weapons.missiles.C_802AK"
|
||||||
|
ENUMS.Storage.weapons.missiles.KD_63 = "weapons.missiles.KD_63"
|
||||||
|
ENUMS.Storage.weapons.containers.HB_ORD_Pave_Spike_Fast = "weapons.containers.HB_ORD_Pave_Spike_Fast"
|
||||||
|
ENUMS.Storage.weapons.missiles.SPIKE_ER2 = "weapons.missiles.SPIKE_ER2"
|
||||||
|
ENUMS.Storage.weapons.containers.KINGAL = "weapons.containers.KINGAL"
|
||||||
|
ENUMS.Storage.weapons.containers.LANTIRN_F14_TARGET = "weapons.containers.LANTIRN-F14-TARGET"
|
||||||
|
ENUMS.Storage.weapons.containers.SPS_141 = "weapons.containers.SPS-141"
|
||||||
|
ENUMS.Storage.weapons.bombs.BLU_3B_GROUP = "weapons.bombs.BLU-3B_GROUP"
|
||||||
|
ENUMS.Storage.weapons.containers.HB_ALE_40_30_0 = "weapons.containers.HB_ALE_40_30_0"
|
||||||
|
ENUMS.Storage.weapons.droptanks.HB_HIGH_PERFORMANCE_CENTERLINE_600_GAL = "weapons.droptanks.HB_HIGH_PERFORMANCE_CENTERLINE_600_GAL"
|
||||||
|
ENUMS.Storage.weapons.containers.ALQ_184 = "weapons.containers.ALQ-184"
|
||||||
|
ENUMS.Storage.weapons.missiles.AGM_45B = "weapons.missiles.AGM_45B"
|
||||||
|
ENUMS.Storage.weapons.bombs.BLU_3_GROUP = "weapons.bombs.BLU-3_GROUP"
|
||||||
|
ENUMS.Storage.weapons.missiles.SPIKE_ER = "weapons.missiles.SPIKE_ER"
|
||||||
|
ENUMS.Storage.weapons.nurs.ARAKM70BAPPX = "weapons.nurs.ARAKM70BAPPX"
|
||||||
|
ENUMS.Storage.weapons.bombs.LYSBOMB_11088 = "weapons.bombs.LYSBOMB 11088"
|
||||||
|
ENUMS.Storage.weapons.bombs.LYSBOMB_11087 = "weapons.bombs.LYSBOMB 11087"
|
||||||
|
ENUMS.Storage.weapons.missiles.KD_20 = "weapons.missiles.KD_20"
|
||||||
|
ENUMS.Storage.weapons.droptanks.HB_F_4E_EXT_WingTank = "weapons.droptanks.HB_F-4E_EXT_WingTank"
|
||||||
|
ENUMS.Storage.weapons.missiles.Rb_04 = "weapons.missiles.Rb_04"
|
||||||
|
ENUMS.Storage.weapons.containers.AAQ_33 = "weapons.containers.AAQ-33"
|
||||||
|
ENUMS.Storage.weapons.droptanks.HB_F_4E_EXT_Center_Fuel_Tank_EMPTY = "weapons.droptanks.HB_F-4E_EXT_Center_Fuel_Tank_EMPTY"
|
||||||
|
ENUMS.Storage.weapons.droptanks.HB_F_4E_EXT_WingTank_R_EMPTY = "weapons.droptanks.HB_F-4E_EXT_WingTank_R_EMPTY"
|
||||||
|
ENUMS.Storage.weapons.droptanks.HB_F_4E_EXT_WingTank_EMPTY = "weapons.droptanks.HB_F-4E_EXT_WingTank_EMPTY"
|
||||||
|
ENUMS.Storage.weapons.containers.uh_60l_copilot = "weapons.containers.uh-60l_copilot"
|
||||||
|
ENUMS.Storage.weapons.droptanks.JAYHAWK_80gal_Fuel_Tankv2 = "weapons.droptanks.JAYHAWK_80gal_Fuel_Tankv2"
|
||||||
|
ENUMS.Storage.weapons.containers.supply_m134 = "weapons.containers.supply_m134"
|
||||||
|
ENUMS.Storage.weapons.containers.Seahawk_Pylon = "weapons.containers.Seahawk_Pylon"
|
||||||
|
ENUMS.Storage.weapons.nurs.LWL_MPP = "weapons.nurs.LWL_MPP"
|
||||||
|
ENUMS.Storage.weapons.nurs.S_5KP = "weapons.nurs.S_5KP"
|
||||||
|
ENUMS.Storage.weapons.missiles.AIM_92J = "weapons.missiles.AIM-92J"
|
||||||
|
ENUMS.Storage.weapons.missiles.HB_AIM_7E = "weapons.missiles.HB-AIM-7E"
|
||||||
|
ENUMS.Storage.weapons.containers.ALQ_131 = "weapons.containers.ALQ-131"
|
||||||
|
ENUMS.Storage.weapons.containers.HB_F14_EXT_TARPS = "weapons.containers.HB_F14_EXT_TARPS"
|
||||||
|
ENUMS.Storage.weapons.containers.MH60_SOAR = "weapons.containers.MH60_SOAR"
|
||||||
|
ENUMS.Storage.weapons.missiles.YJ_83 = "weapons.missiles.YJ-83"
|
||||||
|
ENUMS.Storage.weapons.bombs.GBU_8_B = "weapons.bombs.GBU_8_B"
|
||||||
|
ENUMS.Storage.weapons.containers.HB_F14_EXT_ECA = "weapons.containers.HB_F14_EXT_ECA"
|
||||||
|
ENUMS.Storage.weapons.bombs.BAP_100 = "weapons.bombs.BAP-100"
|
||||||
|
ENUMS.Storage.weapons.nurs.M261_MPSM_Rocket = "weapons.nurs.M261_MPSM_Rocket"
|
||||||
|
ENUMS.Storage.weapons.droptanks.SEAHAWK_120_Fuel_Tank = "weapons.droptanks.SEAHAWK_120_Fuel_Tank"
|
||||||
|
ENUMS.Storage.weapons.containers.SHPIL = "weapons.containers.SHPIL"
|
||||||
|
ENUMS.Storage.weapons.bombs.GBU_39 = "weapons.bombs.GBU_39"
|
||||||
|
ENUMS.Storage.weapons.nurs.S_5M = "weapons.nurs.S_5M"
|
||||||
|
ENUMS.Storage.weapons.containers.HB_ALE_40_15_90 = "weapons.containers.HB_ALE_40_15_90"
|
||||||
|
ENUMS.Storage.weapons.missiles.AIM_7E = "weapons.missiles.AIM-7E"
|
||||||
|
ENUMS.Storage.weapons.missiles.AIM_9P3 = "weapons.missiles.AIM-9P3"
|
||||||
|
ENUMS.Storage.weapons.missiles.AGM_12B = "weapons.missiles.AGM_12B"
|
||||||
|
ENUMS.Storage.weapons.missiles.CM_802AKG = "weapons.missiles.CM_802AKG"
|
||||||
|
ENUMS.Storage.weapons.droptanks.JAYHAWK_120_Fuel_Dual_Tank = "weapons.droptanks.JAYHAWK_120_Fuel_Dual_Tank"
|
||||||
|
ENUMS.Storage.weapons.droptanks.HB_F_4E_EXT_Center_Fuel_Tank = "weapons.droptanks.HB_F-4E_EXT_Center_Fuel_Tank"
|
||||||
|
ENUMS.Storage.weapons.containers.PAVETACK = "weapons.containers.PAVETACK"
|
||||||
|
ENUMS.Storage.weapons.missiles.LS_6_500 = "weapons.missiles.LS_6_500"
|
||||||
|
ENUMS.Storage.weapons.bombs.LYSBOMB_11089 = "weapons.bombs.LYSBOMB 11089"
|
||||||
|
ENUMS.Storage.weapons.bombs.BLU_4B_GROUP = "weapons.bombs.BLU-4B_GROUP"
|
||||||
|
ENUMS.Storage.weapons.containers.ah_64d_radar = "weapons.containers.ah-64d_radar"
|
||||||
|
ENUMS.Storage.weapons.containers.F_18_LDT_POD = "weapons.containers.F-18-LDT-POD"
|
||||||
|
ENUMS.Storage.weapons.containers.HB_ALE_40_30_60 = "weapons.containers.HB_ALE_40_30_60"
|
||||||
|
ENUMS.Storage.weapons.bombs.LS_6_100 = "weapons.bombs.LS_6_100"
|
||||||
|
ENUMS.Storage.weapons.droptanks.HB_F_4E_EXT_WingTank_R = "weapons.droptanks.HB_F-4E_EXT_WingTank_R"
|
||||||
|
ENUMS.Storage.weapons.containers.SORBCIJA_R = "weapons.containers.SORBCIJA_R"
|
||||||
|
ENUMS.Storage.weapons.missiles.CATM_65K = "weapons.missiles.CATM_65K"
|
||||||
|
ENUMS.Storage.weapons.containers.HB_ORD_Pave_Spike = "weapons.containers.HB_ORD_Pave_Spike"
|
||||||
|
ENUMS.Storage.weapons.containers.RobbieTank1 = "weapons.containers.RobbieTank1"
|
||||||
|
ENUMS.Storage.weapons.containers.SKY_SHADOW = "weapons.containers.SKY_SHADOW"
|
||||||
|
ENUMS.Storage.weapons.containers.SORBCIJA_L = "weapons.containers.SORBCIJA_L"
|
||||||
|
ENUMS.Storage.weapons.containers.Pavehawk = "weapons.containers.Pavehawk"
|
||||||
|
ENUMS.Storage.weapons.bombs.BLG66_EG = "weapons.bombs.BLG66_EG"
|
||||||
|
ENUMS.Storage.weapons.missiles.AGM_12C_ED = "weapons.missiles.AGM_12C_ED"
|
||||||
|
ENUMS.Storage.weapons.missiles.AIM_92C = "weapons.missiles.AIM-92C"
|
||||||
|
ENUMS.Storage.weapons.containers.MPS_410 = "weapons.containers.MPS-410"
|
||||||
|
ENUMS.Storage.weapons.missiles.HJ_12 = "weapons.missiles.HJ-12"
|
||||||
|
ENUMS.Storage.weapons.containers.AAQ_28_LITENING = "weapons.containers.AAQ-28_LITENING"
|
||||||
|
ENUMS.Storage.weapons.containers.F_18_FLIR_POD = "weapons.containers.F-18-FLIR-POD"
|
||||||
|
ENUMS.Storage.weapons.bombs.BLU_3B_GROUP = "weapons.bombs.BLU_3B_GROUP"
|
||||||
|
ENUMS.Storage.weapons.containers.UH60L_Jayhawk = "weapons.containers.UH60L_Jayhawk"
|
||||||
|
ENUMS.Storage.weapons.containers.BOZ_100 = "weapons.containers.BOZ-100"
|
||||||
|
ENUMS.Storage.weapons.missiles.AGM_78A = "weapons.missiles.AGM_78A"
|
||||||
|
ENUMS.Storage.weapons.missiles.LAU_61_APKWS_M282 = "weapons.missiles.LAU_61_APKWS_M282"
|
||||||
|
ENUMS.Storage.weapons.bombs.BAP_100 = "weapons.bombs.BAP-100"
|
||||||
|
ENUMS.Storage.weapons.missiles.CM_802AKG = "weapons.missiles.CM-802AKG"
|
||||||
|
ENUMS.Storage.weapons.bombs.BLU_3B_GROUP = "weapons.bombs.BLU_3B_GROUP"
|
||||||
|
ENUMS.Storage.weapons.bombs.BLU_4B_GROUP = "weapons.bombs.BLU-4B_GROUP"
|
||||||
|
ENUMS.Storage.weapons.nurs.S_5M = "weapons.nurs.S_5M"
|
||||||
|
ENUMS.Storage.weapons.missiles.AGM_12A = "weapons.missiles.AGM_12A"
|
||||||
|
ENUMS.Storage.weapons.droptanks.JAYHAWK_120_Fuel_Tank = "weapons.droptanks.JAYHAWK_120_Fuel_Tank"
|
||||||
|
ENUMS.Storage.weapons.bombs.GBU_15_V_1_B = "weapons.bombs.GBU_15_V_1_B"
|
||||||
|
-- dupes with typos
|
||||||
|
ENUMS.Storage.weapons.bombs.BAP100 = "weapons.bombs.BAP_100"
|
||||||
|
ENUMS.Storage.weapons.bombs.BLU3B_GROUP = "weapons.bombs.BLU-3B_GROUP"
|
||||||
|
ENUMS.Storage.weapons.missiles.CM_802AKG = "weapons.missiles.CM_802AKG"
|
||||||
|
ENUMS.Storage.weapons.bombs.BLU_4B_GROUP = "weapons.bombs.BLU_4B_GROUP"
|
||||||
|
ENUMS.Storage.weapons.nurs.S5M = "weapons.nurs.S-5M"
|
||||||
-- Gazelle
|
-- Gazelle
|
||||||
ENUMS.Storage.weapons.Gazelle.HMP400_100RDS = {4,15,46,1771}
|
ENUMS.Storage.weapons.Gazelle.HMP400_100RDS = {4,15,46,1771}
|
||||||
ENUMS.Storage.weapons.Gazelle.HMP400_200RDS = {4,15,46,1770}
|
ENUMS.Storage.weapons.Gazelle.HMP400_200RDS = {4,15,46,1770}
|
||||||
@ -1177,16 +1296,16 @@ ENUMS.Storage.weapons.Gazelle.GIAT_M261_HEAP = {4,15,46,1765}
|
|||||||
ENUMS.Storage.weapons.Gazelle.GIAT_M261_APHE = {4,15,46,1764}
|
ENUMS.Storage.weapons.Gazelle.GIAT_M261_APHE = {4,15,46,1764}
|
||||||
ENUMS.Storage.weapons.Gazelle.GAZELLE_IR_DEFLECTOR = {4,15,47,680}
|
ENUMS.Storage.weapons.Gazelle.GAZELLE_IR_DEFLECTOR = {4,15,47,680}
|
||||||
ENUMS.Storage.weapons.Gazelle.GAZELLE_FAS_SANDFILTER = {4,15,47,679}
|
ENUMS.Storage.weapons.Gazelle.GAZELLE_FAS_SANDFILTER = {4,15,47,679}
|
||||||
-- Chinook
|
-- Chinook (changed)
|
||||||
ENUMS.Storage.weapons.CH47.CH47_PORT_M60D = {4,15,46,2476}
|
ENUMS.Storage.weapons.CH47.CH47_PORT_M60D = {4,15,46,2489}
|
||||||
ENUMS.Storage.weapons.CH47.CH47_STBD_M60D = {4,15,46,2477}
|
ENUMS.Storage.weapons.CH47.CH47_STBD_M60D = {4,15,46,2488}
|
||||||
ENUMS.Storage.weapons.CH47.CH47_AFT_M60D = {4,15,46,2478}
|
ENUMS.Storage.weapons.CH47.CH47_AFT_M60D = {4,15,46,2490}
|
||||||
ENUMS.Storage.weapons.CH47.CH47_PORT_M134D = {4,15,46,2482}
|
ENUMS.Storage.weapons.CH47.CH47_PORT_M134D = {4,15,46,2494}
|
||||||
ENUMS.Storage.weapons.CH47.CH47_STBD_M134D = {4,15,46,2483}
|
ENUMS.Storage.weapons.CH47.CH47_STBD_M134D = {4,15,46,2495}
|
||||||
ENUMS.Storage.weapons.CH47.CH47_AFT_M3M = {4,15,46,2484}
|
ENUMS.Storage.weapons.CH47.CH47_AFT_M3M = {4,15,46,2496} --
|
||||||
ENUMS.Storage.weapons.CH47.CH47_PORT_M240H = {4,15,46,2479}
|
ENUMS.Storage.weapons.CH47.CH47_PORT_M240H = {4,15,46,2492}
|
||||||
ENUMS.Storage.weapons.CH47.CH47_STBD_M240H = {4,15,46,2480}
|
ENUMS.Storage.weapons.CH47.CH47_STBD_M240H = {4,15,46,2491}
|
||||||
ENUMS.Storage.weapons.CH47.CH47_AFT_M240H = {4,15,46,2481}
|
ENUMS.Storage.weapons.CH47.CH47_AFT_M240H = {4,15,46,2493}
|
||||||
-- Huey
|
-- Huey
|
||||||
ENUMS.Storage.weapons.UH1H.M134_MiniGun_Right = {4,15,46,161}
|
ENUMS.Storage.weapons.UH1H.M134_MiniGun_Right = {4,15,46,161}
|
||||||
ENUMS.Storage.weapons.UH1H.M134_MiniGun_Left = {4,15,46,160}
|
ENUMS.Storage.weapons.UH1H.M134_MiniGun_Left = {4,15,46,160}
|
||||||
|
|||||||
@ -203,7 +203,7 @@ STORAGE.Type = {
|
|||||||
|
|
||||||
--- STORAGE class version.
|
--- STORAGE class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
STORAGE.version="0.1.4"
|
STORAGE.version="0.1.5"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
@ -231,7 +231,7 @@ function STORAGE:New(AirbaseName)
|
|||||||
self.warehouse=self.airbase:getWarehouse()
|
self.warehouse=self.airbase:getWarehouse()
|
||||||
end
|
end
|
||||||
|
|
||||||
self.lid = string.format("STORAGE %s", AirbaseName)
|
self.lid = string.format("STORAGE %s | ", AirbaseName)
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
@ -251,7 +251,7 @@ function STORAGE:NewFromStaticCargo(StaticCargoName)
|
|||||||
self.warehouse=Warehouse.getCargoAsWarehouse(self.airbase)
|
self.warehouse=Warehouse.getCargoAsWarehouse(self.airbase)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.lid = string.format("STORAGE %s", StaticCargoName)
|
self.lid = string.format("STORAGE %s | ", StaticCargoName)
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
@ -271,7 +271,7 @@ function STORAGE:NewFromDynamicCargo(DynamicCargoName)
|
|||||||
self.warehouse=Warehouse.getCargoAsWarehouse(self.airbase)
|
self.warehouse=Warehouse.getCargoAsWarehouse(self.airbase)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.lid = string.format("STORAGE %s", DynamicCargoName)
|
self.lid = string.format("STORAGE %s | ", DynamicCargoName)
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
@ -656,7 +656,6 @@ function STORAGE:SaveToFile(Path,Filename)
|
|||||||
for key,amount in pairs(lq) do
|
for key,amount in pairs(lq) do
|
||||||
DataLiquids = DataLiquids..tostring(key).."="..tostring(amount).."\n"
|
DataLiquids = DataLiquids..tostring(key).."="..tostring(amount).."\n"
|
||||||
end
|
end
|
||||||
--self:I(DataLiquids)
|
|
||||||
UTILS.SaveToFile(Path,Filename.."_Liquids.csv",DataLiquids)
|
UTILS.SaveToFile(Path,Filename.."_Liquids.csv",DataLiquids)
|
||||||
if self.verbose and self.verbose > 0 then
|
if self.verbose and self.verbose > 0 then
|
||||||
self:I(self.lid.."Saving Liquids to "..tostring(Path).."\\"..tostring(Filename).."_Liquids.csv")
|
self:I(self.lid.."Saving Liquids to "..tostring(Path).."\\"..tostring(Filename).."_Liquids.csv")
|
||||||
@ -668,7 +667,6 @@ function STORAGE:SaveToFile(Path,Filename)
|
|||||||
for key,amount in pairs(ac) do
|
for key,amount in pairs(ac) do
|
||||||
DataAircraft = DataAircraft..tostring(key).."="..tostring(amount).."\n"
|
DataAircraft = DataAircraft..tostring(key).."="..tostring(amount).."\n"
|
||||||
end
|
end
|
||||||
--self:I(DataAircraft)
|
|
||||||
UTILS.SaveToFile(Path,Filename.."_Aircraft.csv",DataAircraft)
|
UTILS.SaveToFile(Path,Filename.."_Aircraft.csv",DataAircraft)
|
||||||
if self.verbose and self.verbose > 0 then
|
if self.verbose and self.verbose > 0 then
|
||||||
self:I(self.lid.."Saving Aircraft to "..tostring(Path).."\\"..tostring(Filename).."_Aircraft.csv")
|
self:I(self.lid.."Saving Aircraft to "..tostring(Path).."\\"..tostring(Filename).."_Aircraft.csv")
|
||||||
@ -677,9 +675,17 @@ function STORAGE:SaveToFile(Path,Filename)
|
|||||||
|
|
||||||
if UTILS.TableLength(wp) > 0 then
|
if UTILS.TableLength(wp) > 0 then
|
||||||
DataWeapons = DataWeapons .."Weapons and Materiel in Storage:\n"
|
DataWeapons = DataWeapons .."Weapons and Materiel in Storage:\n"
|
||||||
for key,amount in pairs(wp) do
|
|
||||||
DataWeapons = DataWeapons..tostring(key).."="..tostring(amount).."\n"
|
for _,_category in pairs(ENUMS.Storage.weapons) do
|
||||||
|
for _,_key in pairs(_category) do
|
||||||
|
local amount = self:GetAmount(_key)
|
||||||
|
if type(_key) == "table" then
|
||||||
|
_key = "{"..table.concat(_key,",").."}"
|
||||||
|
end
|
||||||
|
DataWeapons = DataWeapons..tostring(_key).."="..tostring(amount).."\n"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Gazelle table keys
|
-- Gazelle table keys
|
||||||
for key,amount in pairs(ENUMS.Storage.weapons.Gazelle) do
|
for key,amount in pairs(ENUMS.Storage.weapons.Gazelle) do
|
||||||
amount = self:GetItemAmount(ENUMS.Storage.weapons.Gazelle[key])
|
amount = self:GetItemAmount(ENUMS.Storage.weapons.Gazelle[key])
|
||||||
@ -705,7 +711,6 @@ function STORAGE:SaveToFile(Path,Filename)
|
|||||||
amount = self:GetItemAmount(ENUMS.Storage.weapons.AH64D[key])
|
amount = self:GetItemAmount(ENUMS.Storage.weapons.AH64D[key])
|
||||||
DataWeapons = DataWeapons.."ENUMS.Storage.weapons.AH64D."..tostring(key).."="..tostring(amount).."\n"
|
DataWeapons = DataWeapons.."ENUMS.Storage.weapons.AH64D."..tostring(key).."="..tostring(amount).."\n"
|
||||||
end
|
end
|
||||||
--self:I(DataAircraft)
|
|
||||||
UTILS.SaveToFile(Path,Filename.."_Weapons.csv",DataWeapons)
|
UTILS.SaveToFile(Path,Filename.."_Weapons.csv",DataWeapons)
|
||||||
if self.verbose and self.verbose > 0 then
|
if self.verbose and self.verbose > 0 then
|
||||||
self:I(self.lid.."Saving Weapons to "..tostring(Path).."\\"..tostring(Filename).."_Weapons.csv")
|
self:I(self.lid.."Saving Weapons to "..tostring(Path).."\\"..tostring(Filename).."_Weapons.csv")
|
||||||
@ -777,14 +782,26 @@ function STORAGE:LoadFromFile(Path,Filename)
|
|||||||
local Ok,Weapons = UTILS.LoadFromFile(Path,Filename.."_Weapons.csv")
|
local Ok,Weapons = UTILS.LoadFromFile(Path,Filename.."_Weapons.csv")
|
||||||
if Ok then
|
if Ok then
|
||||||
if self.verbose and self.verbose > 0 then
|
if self.verbose and self.verbose > 0 then
|
||||||
self:I(self.lid.."Loading _eapons from "..tostring(Path).."\\"..tostring(Filename).."_Weapons.csv")
|
self:I(self.lid.."Loading Weapons from "..tostring(Path).."\\"..tostring(Filename).."_Weapons.csv")
|
||||||
end
|
end
|
||||||
for _id,_line in pairs(Weapons) do
|
for _id,_line in pairs(Weapons) do
|
||||||
if string.find(_line,"Storage") == nil then
|
if string.find(_line,"Storage") == nil then
|
||||||
local tbl=UTILS.Split(_line,"=")
|
local tbl=UTILS.Split(_line,"=")
|
||||||
local wpname = tbl[1]
|
local wpname = tbl[1]
|
||||||
local wpnumber = tonumber(tbl[2])
|
local wpnumber = tonumber(tbl[2])
|
||||||
self:SetAmount(wpname,wpnumber)
|
if string.find(wpname,"{") == 1 then
|
||||||
|
--self:I("Found a table: "..wpname)
|
||||||
|
wpname = string.gsub(wpname,"{","")
|
||||||
|
wpname = string.gsub(wpname,"}","")
|
||||||
|
local tbl = UTILS.Split(wpname,",")
|
||||||
|
local wptbl = {}
|
||||||
|
for _id,_key in ipairs(tbl) do
|
||||||
|
table.insert(wptbl,_id,_key)
|
||||||
|
end
|
||||||
|
self:SetAmount(wptbl,wpnumber)
|
||||||
|
else
|
||||||
|
self:SetAmount(wpname,wpnumber)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user