Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Add Weapon Mod 1.0
- -- Script to add individual weapon mods to inventory
- PD2 = class()
- function PD2:getWeaponModPairs()
- return pairs(tweak_data.blackmarket.weapon_mods)
- end
- function PD2:getWeaponModName(mod_id)
- return self:localize(tweak_data.blackmarket.weapon_mods[mod_id].name_id)
- end
- function PD2:isLocalized(name_id)
- return name_id and managers.localization:exists(name_id)
- end
- function PD2:localize(name_id)
- if (self:isLocalized(name_id)) then
- return managers.localization:text(name_id)
- end
- return name_id
- end
- function PD2:getWeaponModAmount(mod_id)
- return managers.blackmarket:get_item_amount("normal", "weapon_mods", mod_id, true)
- end
- function PD2:addWeaponMod(mod_id)
- self:println("Adding " .. self:getWeaponModName(mod_id) .. " to inventory")
- managers.blackmarket:add_to_inventory("normal", "weapon_mods", mod_id, true)
- self:println("Added " .. self:getWeaponModName(mod_id) .. " to inventory, current stock " .. self:getWeaponModAmount(mod_id))
- end
- function PD2:println(text)
- io.stdout:write(text .. "\n")
- end
- function PD2:showDialog(title, options)
- show_sorted_dialog(title, "", options, nil, 20, 1)
- end
- WeaponModDialog = class()
- function WeaponModDialog:init(pd2)
- self.pd2 = pd2
- end
- function WeaponModDialog:showIfNotInGame()
- if not inGame() then
- self:show()
- end
- end
- function WeaponModDialog:show()
- self.pd2:showDialog("Add Weapon Mods", self:getDialogOptions())
- end
- function WeaponModDialog:getDialogOptions()
- local dialog_options = {}
- local pd2 = self.pd2
- local function addWeaponModCallback(mod_id)
- pd2:addWeaponMod(mod_id)
- end
- local function sortByName(a, b)
- return a.text < b.text
- end
- for mod_id, data in pd2.getWeaponModPairs() do
- local name_id = data.name_id
- if (pd2:isLocalized(name_id)) then
- local qty = pd2:getWeaponModAmount(mod_id)
- local name = pd2:localize(name_id) .. " / " .. mod_id .. " (" .. qty .. ")"
- table.insert(dialog_options, {
- text = name,
- callback = addWeaponModCallback,
- data = mod_id })
- end
- end
- table.sort(dialog_options, sortByName)
- return dialog_options
- end
- local pd2 = PD2:new()
- local weaponModDialog = WeaponModDialog:new(pd2)
- weaponModDialog:showIfNotInGame()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement