Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local menu_id = "menu_roll_contract"
- Hooks:Add("MenuManagerSetupCustomMenus", "MenuManagerSetupCustomMenus_RandomContract", function(menu_manager, nodes)
- if nodes.lobby then
- MenuHelper:NewMenu( menu_id )
- end
- end)
- Hooks:Add("MenuManagerPopulateCustomMenus", "MenuManagerPopulateCustomMenus_RandomContract", function(menu_manager, nodes)
- if nodes.lobby then
- MenuCallbackHandler.Random_contract_now = function(self, item)
- local job_id_list = tweak_data.narrative:get_jobs_index()
- local job_tweak_data, is_not_dlc_or_got, choose_job, can_afford, retries
- local retry_limit = 50
- while (not is_not_dlc_or_got or not can_afford) and ((retries or 0) < retry_limit) do
- choose_job = job_id_list[math.random( #job_id_list )]
- job_tweak_data = tweak_data.narrative.jobs[choose_job]
- is_not_dlc_or_got = not job_tweak_data.dlc or managers.dlc:is_dlc_unlocked(job_tweak_data.dlc)
- can_afford = managers.money:can_afford_buy_premium_contract(tweak_data:difficulty_to_index(item._priority))
- retries = (retries or 0) + 1
- end
- if retries and retries < retry_limit then
- create_job({ difficulty = item._priority, job_id = choose_job })
- else
- QuickMenu:new(
- "Random Contrect",
- "Looks like you can't afford any random heist currently. sorry.",
- {
- {"Ok", is_cancel_button = true}
- },
- true
- )
- end
- end
- MenuHelper:AddButton({
- id = "roll_contract_ovk",
- title = "roll_contract_ovk_title",
- desc = "roll_contract_ovk_desc",
- callback = "Random_contract_now",
- priority = "overkill_145",
- menu_id = menu_id,
- })
- MenuHelper:AddButton({
- id = "roll_contract_dw",
- title = "roll_contract_dw_title",
- desc = "roll_contract_dw_desc",
- callback = "Random_contract_now",
- priority = "overkill_290",
- menu_id = menu_id,
- })
- end
- end)
- Hooks:Add("MenuManagerBuildCustomMenus", "MenuManagerBuildCustomMenus_RandomContract", function(menu_manager, nodes)
- if nodes.lobby and ( not LuaNetworking:IsMultiplayer() or ( LuaNetworking:IsMultiplayer() and LuaNetworking:IsHost() ) ) then
- nodes[menu_id] = MenuHelper:BuildMenu( menu_id )
- MenuHelper:AddMenuItem( nodes.lobby, menu_id, "menu_roll_contract_name", "menu_roll_contract_desc" )
- end
- end)
- Hooks:Add("LocalizationManagerPostInit", "RandomContract_loc", function(loc)
- LocalizationManager:add_localized_strings({
- ["menu_roll_contract"] = "Random contract",
- ["menu_roll_contract_name"] = "Random contract",
- ["menu_roll_contract_desc"] = "Change your contract to something random",
- ["roll_contract_ovk_title"] = "OVERKILL",
- ["roll_contract_ovk_desc"] = "Give you random contract in OVERKILL",
- ["roll_contract_dw_title"] = "DEATH WISH",
- ["roll_contract_dw_desc"] = "Give you random contract in DEATH WISH",
- })
- end)
- function create_job(data)
- local difficulty_id = tweak_data:difficulty_to_index(data.difficulty)
- managers.money:on_buy_premium_contract(data.job_id, difficulty_id)
- managers.job:on_buy_job(data.job_id, difficulty_id)
- MenuCallbackHandler:start_job({job_id = data.job_id, difficulty = data.difficulty})
- MenuCallbackHandler:save_progress()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement