mirror of
https://github.com/akaAgar/the-universal-mission-for-dcs-world.git
synced 2025-11-25 19:31:01 +00:00
93 lines
3.9 KiB
Lua
93 lines
3.9 KiB
Lua
DCSEx.unitNamesMaker = {}
|
|
|
|
do
|
|
local function getSectionNameSuffixAir()
|
|
return DCSEx.table.getRandom({"squadron", "wing"})
|
|
end
|
|
|
|
local function getSectionNameSuffixGround()
|
|
return DCSEx.table.getRandom({"bataillon", "brigade", "corps", "division", "regiment"})
|
|
end
|
|
|
|
local function getSectionNameSuffixNaval()
|
|
return DCSEx.table.getRandom({"fleet", "force"})
|
|
end
|
|
|
|
local function getDefaultSectionName()
|
|
return "unit "..getSectionNameSuffixGround()
|
|
end
|
|
|
|
local function getNameByDesc(unitDesc)
|
|
if not unitDesc then return getDefaultSectionName() end
|
|
|
|
if unitDesc.attributes["UAVs"] then
|
|
return DCSEx.table.getRandom({"unmanned"}).." "..getSectionNameSuffixAir()
|
|
end
|
|
if unitDesc.attributes["Bombers"] then
|
|
return DCSEx.table.getRandom({"bomber"}).." "..getSectionNameSuffixAir()
|
|
end
|
|
if unitDesc.attributes["Fighters"] or unitDesc.attributes["Interceptors"] or unitDesc.attributes["Battle airplanes"] then
|
|
return DCSEx.table.getRandom({"fighter", "fighting"}).." "..getSectionNameSuffixAir()
|
|
end
|
|
if unitDesc.attributes["Planes"] then
|
|
return DCSEx.table.getRandom({"air", "cargo", "transport"}).." "..getSectionNameSuffixAir()
|
|
end
|
|
|
|
if unitDesc.attributes["Attack helicopters"] then
|
|
return DCSEx.table.getRandom({"assault", "rotary"}).." "..getSectionNameSuffixAir()
|
|
end
|
|
if unitDesc.attributes["Helicopters"] then
|
|
return DCSEx.table.getRandom({"tactical"}).." "..getSectionNameSuffixAir()
|
|
end
|
|
|
|
if unitDesc.attributes["Aircraft Carriers"] then
|
|
return DCSEx.table.getRandom({"carrier"}).." "..getSectionNameSuffixNaval()
|
|
end
|
|
if unitDesc.attributes["Unarmed ships"] then
|
|
return DCSEx.table.getRandom({"cargo", "logistical"}).." "..getSectionNameSuffixNaval()
|
|
end
|
|
if unitDesc.attributes["Ships"] then
|
|
return DCSEx.table.getRandom({"expeditionary", "assault"}).." "..getSectionNameSuffixNaval()
|
|
end
|
|
|
|
if unitDesc.attributes["MANPADS AUX"] or unitDesc.attributes["MANPADS"] or unitDesc.attributes["Armed Air Defence"] or unitDesc.attributes["SAM elements"] or unitDesc.attributes["SAM related"] or unitDesc.attributes["SAM"] then
|
|
return DCSEx.table.getRandom({"air defense"}).." "..getSectionNameSuffixGround()
|
|
end
|
|
|
|
if unitDesc.attributes["Tanks"] or unitDesc.attributes["HeavyArmoredUnits"] or unitDesc.attributes["LightArmoredUnits"] then
|
|
return DCSEx.table.getRandom({"armor", "heavy"}).." "..getSectionNameSuffixGround()
|
|
end
|
|
if unitDesc.attributes["LightArmoredUnits"] then
|
|
return DCSEx.table.getRandom({"armored", "mechanized"}).." "..getSectionNameSuffixGround()
|
|
end
|
|
if unitDesc.attributes["Ground vehicles"] then
|
|
return DCSEx.table.getRandom({"engineer","logistical","support","tactical"}).." "..getSectionNameSuffixGround()
|
|
end
|
|
if unitDesc.attributes["Infantry"] then
|
|
return DCSEx.table.getRandom({"infantry"}).." "..getSectionNameSuffixGround()
|
|
end
|
|
|
|
return getDefaultSectionName()
|
|
end
|
|
|
|
function DCSEx.unitNamesMaker.getName(groupID, unitTypes)
|
|
local nameNumber = tostring(groupID)
|
|
|
|
if (nameNumber:sub(-1) == "1") then nameNumber = nameNumber.."st"
|
|
elseif (nameNumber:sub(-1) == "2") then nameNumber = nameNumber.."nd"
|
|
elseif (nameNumber:sub(-1) == "3") then nameNumber = nameNumber.."rd"
|
|
else nameNumber = nameNumber.."th"
|
|
end
|
|
|
|
local nameSection = getDefaultSectionName()
|
|
if unitTypes and #unitTypes > 0 then
|
|
local desc = Unit.getDescByName(unitTypes[1])
|
|
if desc then
|
|
nameSection = getNameByDesc(desc)
|
|
end
|
|
end
|
|
|
|
return nameNumber.." "..nameSection
|
|
end
|
|
end
|