mirror of
https://github.com/akaAgar/the-universal-mission-for-dcs-world.git
synced 2025-11-25 19:31:01 +00:00
71 lines
2.2 KiB
Lua
71 lines
2.2 KiB
Lua
Library.factions = {}
|
|
Library.factions.defaults = { "USA", "Russia" }
|
|
Library.factions.tables = {}
|
|
|
|
--{{FACTIONS}}--
|
|
|
|
-- If default red faction is "Russia" and "Russia" is named "USSR" in this time period, change its name in the default
|
|
if Library.factions.tables["USSR"] and Library.factions.defaults[coalition.side.RED] == "Russia" then
|
|
Library.factions.defaults[coalition.side.RED] = "USSR"
|
|
end
|
|
|
|
function Library.factions.getUnits(faction, unitFamilies, count, singleType)
|
|
singleType = singleType or false
|
|
local timePeriod = TUM.settings.getValue(TUM.settings.id.TIME_PERIOD)
|
|
|
|
if not unitFamilies then return nil end
|
|
if not Library.factions.tables[faction] then return nil end
|
|
if not Library.factions.tables[faction].units then return nil end
|
|
if not Library.factions.tables[faction].units[timePeriod] then return nil end
|
|
|
|
if type(unitFamilies) == "number" then unitFamilies = { unitFamilies } end
|
|
count = math.max(1, count or 1)
|
|
|
|
local validUnits = {}
|
|
for _,f in ipairs(unitFamilies) do
|
|
local unitList = Library.factions.tables[faction].units[timePeriod][f]
|
|
|
|
if unitList and #unitList > 0 then
|
|
for __,u in ipairs(unitList) do
|
|
if not DCSEx.table.contains(validUnits, u) then
|
|
table.insert(validUnits, u)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if #validUnits == 0 then return nil end
|
|
|
|
local selectedUnits = {}
|
|
if singleType then
|
|
local unitType = DCSEx.table.getRandom(validUnits)
|
|
for _=1,count do
|
|
table.insert(selectedUnits, unitType)
|
|
end
|
|
else
|
|
for _=1,count do
|
|
table.insert(selectedUnits, DCSEx.table.getRandom(validUnits))
|
|
end
|
|
end
|
|
|
|
return selectedUnits
|
|
end
|
|
|
|
do
|
|
-- local function mergeFactions()
|
|
-- end
|
|
|
|
-- local function setDefaultUnitsIfMissing(unitTypes, defaults)
|
|
-- if not unitTypes or #unitTypes == 0 then
|
|
-- return defaults
|
|
-- end
|
|
|
|
-- return unitTypes
|
|
-- end
|
|
|
|
-- for k,_ in pairs(Library.factions) do
|
|
|
|
|
|
-- if not Library.factions[k][DCSEx.enums.unitFamily.SHIP_CARGO] = { "Dry-cargo ship-1", "Dry-cargo ship-2", "ELNYA", "Ship_Tilde_Supply" },
|
|
-- end
|
|
end
|