Starbound/assets/devel/versioning/Item_6_7.lua
2025-03-21 22:23:30 +11:00

159 lines
5.5 KiB
Lua

require "/scripts/versioningutils.lua"
-- This version: replace many types of generated weapons with their activeitem equivalents,
-- rename a few items, and convert .wav to .ogg for remaining generated guns/swords
generalItemConversions = {
meatwine = "meatjuice",
winebottle = "cordialbottle",
wineglass = "cordialglass",
whiskeybottle = "rootpopbottle",
whiskeyflask = "rootpopflask",
beerhead = "bevhead",
ricewine = "ricevinegar",
wartwine = "wartjuice",
weyene = "oculemonade"
}
-- commented out entries are generated weapons to be converted next version
meleeWeaponConversions = {
avianspear = "commonspear",
aviansword = "commonshortsword",
-- boneaxe = "boneaxe",
-- bonehammer = "bonehammer",
-- bonesaw = "bonesaw",
-- bonesword = "bonesword",
-- candycane = "candycane",
commonaxe = "commonaxe",
commonbroadsword = "commonbroadsword",
commondagger = "commondagger",
commonhammer = "commonhammer",
commonshortsword = "commonshortsword",
commonspear = "commonspear",
-- crystalspear = "crystalspear",
-- eyeaxe = "eyeaxe",
-- eyesword = "eyesword",
firesword = "rarebroadsword",
floranmace = "commonhammer",
floranprod = "uncommonspear",
-- fryingpan = "fryingpan",
glitchlargemace = "commonhammer",
glitchsmallmace = "commonshortsword",
mushroomsword = "uncommonshortsword",
nightstick = "commonshortsword",
npcflorantier1spear = "commonspear",
npcmutantminerhammer = "commonhammer",
rainbowspear = "uncommonspear",
rustsword = "uncommonshortsword",
rareaxe = "rareaxe",
rarebroadsword = "rarebroadsword",
raredagger = "raredagger",
rarehammer = "rarehammer",
rareshortsword = "rareshortsword",
rarespear = "rarespear",
shiv = "commondagger",
-- slavesword = "slavesword",
-- starcleaversword = "starcleaversword",
-- steelchair = "steelchair",
teslaspear = "rarespear",
toxicbroadsword = "uncommonbroadsword",
uncommonaxe = "uncommonaxe",
uncommonbroadsword = "uncommonbroadsword",
uncommondagger = "uncommondagger",
uncommonhammer = "uncommonhammer",
uncommonshortsword = "uncommonshortsword",
uncommonspear = "uncommonspear",
wallpainter = "commonbroadsword",
watersword = "rarebroadsword"
}
-- commented out entries are generated weapons to be converted next version
rangedWeaponConversions = {
avianblaster = "uncommonpistol",
avianheavyblaster = "uncommonassaultrifle",
-- boneassault = "boneassault",
-- bonepistol = "bonepistol",
-- boneshotgun = "boneshotgun",
cellzapper = "uncommonsniperrifle",
commonassaultrifle = "commonassaultrifle",
commonburstrifle = "commonassaultrifle",
commongrenadelauncher = "commongrenadelauncher",
commonmachinepistol = "commonmachinepistol",
commonpistol = "commonpistol",
commonpulserifle = "commonassaultrifle",
commonrocketlauncher = "commonrocketlauncher",
commonshotgun = "commonshotgun",
commonsniperrifle = "commonsniperrifle",
-- crossbow = "crossbow",
-- crossbowspecial = "crossbowspecial",
-- crossbowwood = "crossbowwood",
flamethrower = "flamethrower",
florangrenadelauncher = "commongrenadelauncher",
floranneedler = "commonassaultrifle",
globelauncher = "commongrenadelauncher",
lightningcoil = "commonassaultrifle",
pulserifle = "commonassaultrifle",
rareassaultrifle = "rareassaultrifle",
raregrenadelauncher = "raregrenadelauncher",
raremachinepistol = "raremachinepistol",
rarepistol = "rarepistol",
rarerocketlauncher = "rarerocketlauncher",
rareshotgun = "rareshotgun",
raresniperrifle = "raresniperrifle",
revolver = "commonpistol",
stingergun = "commonassaultrifle",
shattergun = "commonshotgun",
uncommonassaultrifle = "uncommonassaultrifle",
uncommongrenadelauncher = "uncommongrenadelauncher",
uncommonmachinepistol = "uncommonmachinepistol",
uncommonpistol = "uncommonpistol",
uncommonpulserifle = "uncommonassaultrifle",
uncommonrocketlauncher = "uncommonrocketlauncher",
uncommonshotgun = "uncommonshotgun",
uncommonsniperrifle = "uncommonsniperrifle",
uzi = "commonmachinepistol"
}
weaponTypeInferences = {
["lightning coil"] = "lightningcoil",
["pulse rifle"] = "pulserifle",
["revolver"] = "revolver"
}
function update(data)
if generalItemConversions[data.name] then
data.name = generalItemConversions[data.name]
elseif data.name == "generatedsword" then
local definitionName = extractDefinitionName(data.parameters)
if definitionName then
if meleeWeaponConversions[definitionName] then
data.name = meleeWeaponConversions[definitionName]
data.parameters = { level = data.parameters.level }
end
end
elseif data.name == "generatedgun" then
local definitionName = extractDefinitionName(data.parameters)
if definitionName then
if rangedWeaponConversions[definitionName] then
data.name = rangedWeaponConversions[definitionName]
data.parameters = { level = data.parameters.level }
end
end
end
if data.name == "generatedgun" or data.name == "generatedsword" then
replacePatternInData(data.parameters, nil, ".wav", ".ogg")
replacePatternInData(data.parameters, nil, "swing_onehanded", "swing_shortsword")
replacePatternInData(data.parameters, nil, "swing_twohanded", "swing_broadsword")
end
return data
end
function extractDefinitionName(parameters)
local definitionName = parameters.definition or parameters.definitionName
if not definitionName and parameters.weaponType and weaponTypeInferences[string.lower(parameters.weaponType)] then
definitionName = weaponTypeInferences[string.lower(parameters.weaponType)]
end
return definitionName
end