From 93ab1c9791354f86c7f18cfec7e5eccb76e8b1f3 Mon Sep 17 00:00:00 2001 From: BoomerThor <121932955+BoomerThor@users.noreply.github.com> Date: Sun, 16 Jun 2024 11:22:03 -0400 Subject: [PATCH] Cargo additions, bugfixes and changes (#19438) Operation Managers and Hangar Techs were supposed to always have the Cargo Control program downloadable, but it was access-locked behind HOP (which has been changed to executive officer). I also gave the program the ability to run on laptops, so cargo techs actually have a reason to bring a laptop. Fixes some cargo bounties that were bugged (including #17225) and removed some that cannot be fulfilled. Smoke grenades were removed from security, machinists can't print the Telecomms Traffic Control board, science can't print NVGs anymore, and there is no way in-game to produce monkey hide. --- code/modules/cargo/bounties/assistant.dm | 9 -- code/modules/cargo/bounties/chef.dm | 93 +++++++++++++++---- code/modules/cargo/bounties/engineer.dm | 11 ++- code/modules/cargo/bounties/science.dm | 11 --- code/modules/cargo/bounties/security.dm | 9 -- code/modules/cargo/bounties/special.dm | 2 +- code/modules/cargo/exports/materials.dm | 1 - .../file_system/programs/app_presets_crew.dm | 14 +++ .../programs/civilian/cargo_control.dm | 4 +- .../programs/civilian/cargo_delivery.dm | 2 +- html/changelogs/BoomerThor - Cargonia.yml | 11 +++ 11 files changed, 116 insertions(+), 51 deletions(-) create mode 100644 html/changelogs/BoomerThor - Cargonia.yml diff --git a/code/modules/cargo/bounties/assistant.dm b/code/modules/cargo/bounties/assistant.dm index 58c9f6a7457..9ea0ffbefbf 100644 --- a/code/modules/cargo/bounties/assistant.dm +++ b/code/modules/cargo/bounties/assistant.dm @@ -100,15 +100,6 @@ random_count = 5 wanted_types = list(/obj/item/trash) -/datum/bounty/item/assistant/monkey_hide - name = "Monkey Hide" - description = "One of the scientists at %BOSSSHORT is interested in testing products on monkey skin. Your mission is to acquire monkey's hide and ship it." - reward_low = 1500 - reward_high = 2500 - required_count = 5 - random_count = 1 - wanted_types = list(/obj/item/stack/material/animalhide/monkey) - /datum/bounty/item/assistant/heart name = "Heart" description = "%PERSONNAME is in critical condition after suffering a heart attack. Doctors say they need a new heart, fast. Ship one, pronto! Organic or mechanical, just hurry up!" diff --git a/code/modules/cargo/bounties/chef.dm b/code/modules/cargo/bounties/chef.dm index bf8503e481e..7c489a6d7b7 100644 --- a/code/modules/cargo/bounties/chef.dm +++ b/code/modules/cargo/bounties/chef.dm @@ -43,13 +43,17 @@ reward_high = 4500 required_count = 4 random_count = 1 - wanted_types = list(/obj/item/reagent_containers/food/snacks/icecreamsandwich, /obj/item/reagent_containers/food/snacks/icecream) + wanted_types = list(/obj/item/reagent_containers/food/snacks/icecreamsandwich, + /obj/item/reagent_containers/food/snacks/icecream, + /obj/item/reagent_containers/food/snacks/creamice) /datum/bounty/item/chef/icecream/applies_to(obj/O) if(!..()) return FALSE if(istype(O, /obj/item/reagent_containers/food/snacks/icecreamsandwich)) return TRUE + if(istype(O, /obj/item/reagent_containers/food/snacks/creamice)) + return TRUE var/obj/item/reagent_containers/food/snacks/icecream/I = O if(I?.ice_creamed) return TRUE @@ -66,8 +70,12 @@ /obj/item/reagent_containers/food/snacks/plump_pie, /obj/item/reagent_containers/food/snacks/xemeatpie, /obj/item/reagent_containers/food/snacks/cherrypie, + /obj/item/reagent_containers/food/snacks/chocolate_rikazu, + /obj/item/reagent_containers/food/snacks/fruit_rikazu, + /obj/item/reagent_containers/food/snacks/meat_rikazu, /obj/item/reagent_containers/food/snacks/sliceable/keylimepie, - /obj/item/reagent_containers/food/snacks/sliceable/giffypie) + /obj/item/reagent_containers/food/snacks/sliceable/giffypie, + /obj/item/reagent_containers/food/snacks/vegetable_rikazu) /datum/bounty/item/chef/salad name = "Salad" @@ -87,7 +95,8 @@ wanted_types = list(/obj/item/reagent_containers/food/snacks/carrotfries, /obj/item/reagent_containers/food/snacks/fries, /obj/item/reagent_containers/food/snacks/chilicheesefries, - /obj/item/reagent_containers/food/snacks/cheesyfries) + /obj/item/reagent_containers/food/snacks/cheesyfries, + /obj/item/reagent_containers/food/snacks/earthenroot_fries) /datum/bounty/item/chef/superbite name = "Super Bite Burger" @@ -160,6 +169,9 @@ random_count = 1 wanted_types = list(/obj/item/reagent_containers/food/snacks/variable/kebab, /obj/item/reagent_containers/food/snacks/monkeykabob, + /obj/item/reagent_containers/food/snacks/neaerakabob, + /obj/item/reagent_containers/food/snacks/nomadskewer, + /obj/item/reagent_containers/food/snacks/stokkebab, /obj/item/reagent_containers/food/snacks/tofukabob, /obj/item/reagent_containers/food/snacks/koiskebab3, /obj/item/reagent_containers/food/snacks/donerkebab) @@ -226,17 +238,27 @@ reward_high = 5300 required_count = 3 random_count = 1 - wanted_types = list(/obj/item/reagent_containers/food/snacks/bacon_stick, + wanted_types = list(/obj/item/reagent_containers/food/snacks/aghrasshcake, + /obj/item/reagent_containers/food/snacks/bacon_stick, + /obj/item/reagent_containers/food/snacks/batwings, + /obj/item/reagent_containers/food/snacks/chilied_eggs, /obj/item/reagent_containers/food/snacks/egg_pancake, + /obj/item/reagent_containers/food/snacks/father_breakfast, + /obj/item/reagent_containers/food/snacks/gukhefish, + /obj/item/reagent_containers/food/snacks/hatchbowl, /obj/item/reagent_containers/food/snacks/hatchling_suprise, + /obj/item/reagent_containers/food/snacks/jellystew, + /obj/item/reagent_containers/food/snacks/razirnoodles, /obj/item/reagent_containers/food/snacks/red_sun_special, /obj/item/reagent_containers/food/snacks/riztizkzi_sea, + /obj/item/reagent_containers/food/snacks/sintapudding, + /obj/item/reagent_containers/food/snacks/sliceable/eyebowl, /obj/item/reagent_containers/food/snacks/sliceable/grilled_carp, /obj/item/reagent_containers/food/snacks/sliceable/sushi_roll, + /obj/item/reagent_containers/food/snacks/stokkebab, /obj/item/reagent_containers/food/snacks/stuffed_meatball, - /obj/item/reagent_containers/food/snacks/chilied_eggs, - /obj/item/reagent_containers/food/snacks/sliceable/eyebowl, - /obj/item/reagent_containers/food/snacks/hatchbowl) + /obj/item/reagent_containers/food/snacks/stuffedcarp, + /obj/item/reagent_containers/food/snacks/stuffedfish) /datum/bounty/item/chef/tajara name = "Adhomai Delicacies" @@ -245,16 +267,48 @@ reward_high = 5500 required_count = 3 random_count = 1 - wanted_types = list(/obj/item/reagent_containers/food/snacks/adhomian_sausage, + wanted_types = list(/obj/item/reagent_containers/food/snacks/adhomian_porridge, + /obj/item/reagent_containers/food/snacks/adhomian_sausage, + /obj/item/reagent_containers/food/snacks/avah, + /obj/item/reagent_containers/food/snacks/chipplate/crownfurter, + /obj/item/reagent_containers/food/snacks/chipplate/miniavah_basket, + /obj/item/reagent_containers/food/snacks/chocolate_rikazu, + /obj/item/reagent_containers/food/snacks/clam_pasta, + /obj/item/reagent_containers/food/snacks/cone_cake, + /obj/item/reagent_containers/food/snacks/creamice, + /obj/item/reagent_containers/food/snacks/dip/sarmikhir, + /obj/item/reagent_containers/food/snacks/dip/tajhummus, + /obj/item/reagent_containers/food/snacks/dirt_roast, + /obj/item/reagent_containers/food/snacks/earthenroot_fries, + /obj/item/reagent_containers/food/snacks/earthenroot_mash, + /obj/item/reagent_containers/food/snacks/earthenroot_wedges, /obj/item/reagent_containers/food/snacks/fermented_worm, + /obj/item/reagent_containers/food/snacks/fermented_worm_sandwich, + /obj/item/reagent_containers/food/snacks/fruit_rikazu, + /obj/item/reagent_containers/food/snacks/fruitgello, /obj/item/reagent_containers/food/snacks/hardbread, + /obj/item/reagent_containers/food/snacks/hardbread_pudding, /obj/item/reagent_containers/food/snacks/lardwich, + /obj/item/reagent_containers/food/snacks/meat_rikazu, /obj/item/reagent_containers/food/snacks/nomadskewer, + /obj/item/reagent_containers/food/snacks/salad/earthenroot, + /obj/item/reagent_containers/food/snacks/sarmikhir_sandwich, + /obj/item/reagent_containers/food/snacks/seafoodmousse, + /obj/item/reagent_containers/food/snacks/sliceable/aspicfatshouter, + /obj/item/reagent_containers/food/snacks/sliceable/fatshouter_fillet, + /obj/item/reagent_containers/food/snacks/sliceable/fatshouterbake, + /obj/item/reagent_containers/food/snacks/sliceable/vegello, + /obj/item/reagent_containers/food/snacks/sliceable/zkahnkowafull, /obj/item/reagent_containers/food/snacks/soup/earthenroot, + /obj/item/reagent_containers/food/snacks/soup/tajfish, /obj/item/reagent_containers/food/snacks/spicy_clams, /obj/item/reagent_containers/food/snacks/stew/tajaran, + /obj/item/reagent_containers/food/snacks/stuffed_earthenroot, /obj/item/reagent_containers/food/snacks/tajaran_bread, - /obj/item/reagent_containers/food/snacks/tajcandy) + /obj/item/reagent_containers/food/snacks/tajcandy, + /obj/item/reagent_containers/food/snacks/tunneler_meategg, + /obj/item/reagent_containers/food/snacks/tunneler_souffle, + /obj/item/reagent_containers/food/snacks/vegetable_rikazu) /datum/bounty/item/chef/skrell name = "Federation Delicacies" @@ -263,11 +317,19 @@ reward_high = 5700 required_count = 3 random_count = 1 - wanted_types = list(/obj/item/reagent_containers/food/snacks/lortl, + wanted_types = list(/obj/item/reagent_containers/food/snacks/chipplate/neaeracandy, + /obj/item/reagent_containers/food/snacks/fjylozynboiled, + /obj/item/reagent_containers/food/snacks/gnaqmi, + /obj/item/reagent_containers/food/snacks/jyalrafresh, + /obj/item/reagent_containers/food/snacks/konaqu, + /obj/item/reagent_containers/food/snacks/lortl, + /obj/item/reagent_containers/food/snacks/neaerakabob, + /obj/item/reagent_containers/food/snacks/neaeraloaf, + /obj/item/reagent_containers/food/snacks/qlguabi, /obj/item/reagent_containers/food/snacks/soup/qilvo, /obj/item/reagent_containers/food/snacks/soup/zantiri, - /obj/item/reagent_containers/food/snacks/xuqqil, - /obj/item/reagent_containers/food/snacks/qlguabi) + /obj/item/reagent_containers/food/snacks/stew/neaera, + /obj/item/reagent_containers/food/snacks/xuqqil) /datum/bounty/item/chef/curry name = "Curry" @@ -278,6 +340,7 @@ random_count = 1 wanted_types = list(/obj/item/reagent_containers/food/snacks/redcurry, /obj/item/reagent_containers/food/snacks/greencurry, + /obj/item/reagent_containers/food/snacks/xanu_curry, /obj/item/reagent_containers/food/snacks/yellowcurry) /datum/bounty/item/chef/dip @@ -314,9 +377,7 @@ reward_high = 3900 required_count = 3 random_count = 1 - wanted_types = list( - /obj/item/reagent_containers/food/snacks/ramenbowl - ) + wanted_types = list(/obj/item/reagent_containers/food/snacks/ramenbowl, /obj/item/reagent_containers/food/snacks/aoyama_ramen) /datum/bounty/item/chef/matsuul name = "Matsuul" @@ -326,7 +387,7 @@ required_count = 3 random_count = 1 wanted_types = list( - /obj/item/reagent_containers/food/snacks/ramenbowl + /obj/item/reagent_containers/food/snacks/matsuul ) /datum/bounty/item/chef/roulades name = "Roulades" diff --git a/code/modules/cargo/bounties/engineer.dm b/code/modules/cargo/bounties/engineer.dm index 9d97dd3a8dd..d64d2956e65 100644 --- a/code/modules/cargo/bounties/engineer.dm +++ b/code/modules/cargo/bounties/engineer.dm @@ -5,7 +5,16 @@ reward_high = 3900 required_count = 4 random_count = 2 - wanted_types = list(/obj/structure/bed/stool/chair/padded) + wanted_types = list(/obj/structure/bed/stool/chair) + +/datum/bounty/item/engineer/comfy_chair/applies_to(var/obj/structure/bed/stool/chair/O) + if(!..()) + return FALSE + if(!istype(O)) + return FALSE + if(O.padding_material) // Checks if the chair is padded + return TRUE + return FALSE /datum/bounty/item/engineer/smes_coil name = "Superconductive magnetic coil" diff --git a/code/modules/cargo/bounties/science.dm b/code/modules/cargo/bounties/science.dm index 69a5debb1db..dbfc97a47e9 100644 --- a/code/modules/cargo/bounties/science.dm +++ b/code/modules/cargo/bounties/science.dm @@ -1,10 +1,3 @@ -/datum/bounty/item/science/nightvision_goggles - name = "Night Vision Goggles" - description = "An electrical storm has busted all the lights at %BOSSSHORT. While management is waiting for replacements, perhaps some night vision goggles can be shipped?" - reward_low = 5200 - reward_high = 6000 - wanted_types = list(/obj/item/clothing/glasses/night) - /datum/bounty/item/science/experimental_welding_tool name = "Experimental Welding Tool" description = "A recent accident has left most of %BOSSSHORT's welding tools exploded. Ship replacements to be rewarded." @@ -68,10 +61,6 @@ name = "Telecomms Server Monitor Circuitboard" wanted_types = list(/obj/item/circuitboard/comm_server) -/datum/bounty/item/science/circuitboard/commtraffic - name = "Telecomms Traffic Control Circuitboard" - wanted_types = list(/obj/item/circuitboard/comm_traffic) - /datum/bounty/item/science/circuitboard/messagemonitor name = "Message Monitor Circuitboard" wanted_types = list(/obj/item/circuitboard/message_monitor) diff --git a/code/modules/cargo/bounties/security.dm b/code/modules/cargo/bounties/security.dm index c706e700080..2d5d163b668 100644 --- a/code/modules/cargo/bounties/security.dm +++ b/code/modules/cargo/bounties/security.dm @@ -64,15 +64,6 @@ random_count = 1 wanted_types = list(/obj/item/grenade/chem_grenade/teargas) -/datum/bounty/item/security/smoke - name = "Smoke Grenades" - description = "We need a few extra smoke grenades to restock the ERT. Any station that ships spares will be compensated." - reward_low = 2200 - reward_high = 3200 - required_count = 3 - random_count = 1 - wanted_types = list(/obj/item/grenade/chem_grenade/gas, /obj/item/grenade/smokebomb) - /datum/bounty/item/security/pepper name = "Pepper Spray" description = "Time to help some civil protection troopers toughen their response to being pepper sprayed. Any station that helps will be compensated. I love this job. -%PERSONNAME" diff --git a/code/modules/cargo/bounties/special.dm b/code/modules/cargo/bounties/special.dm index c9126c16bf1..55e1ec51914 100644 --- a/code/modules/cargo/bounties/special.dm +++ b/code/modules/cargo/bounties/special.dm @@ -23,7 +23,7 @@ /datum/bounty/item/phoron_sheet name = "Phoron Sheets" - description = "Shipment of Phoron is considered to be a key part of the SCCV Horizon's operations within the CRZ. This bounty should always be prioritized." + description = "Shipment of Phoron is considered to be a key part of the SCCV Horizon's operations. This bounty should always be prioritized." reward_low = 2600 reward_high = 3750 required_count = 40 diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index e819dbc926f..addb3c3dc89 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -58,4 +58,3 @@ cost = 5 material_id = "glass" message = "glass sheets" - diff --git a/code/modules/modular_computers/file_system/programs/app_presets_crew.dm b/code/modules/modular_computers/file_system/programs/app_presets_crew.dm index 7f53b2df092..a18f92e9a2a 100644 --- a/code/modules/modular_computers/file_system/programs/app_presets_crew.dm +++ b/code/modules/modular_computers/file_system/programs/app_presets_crew.dm @@ -296,6 +296,20 @@ ) return flatten_list(_prg_list) +/datum/modular_computer_app_presets/supply/mining + name = "operations_mining" + display_name = "Mining" + description = "Contains the most common EVA programs." + available = TRUE + +/datum/modular_computer_app_presets/supply/mining/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/away_manifest(comp), + ) + return flatten_list(_prg_list) + /datum/modular_computer_app_presets/supply/machinist name = "operations_machinist" display_name = "Operations - Machinist" diff --git a/code/modules/modular_computers/file_system/programs/civilian/cargo_control.dm b/code/modules/modular_computers/file_system/programs/civilian/cargo_control.dm index 6dba4d36c9b..74f69f033b9 100644 --- a/code/modules/modular_computers/file_system/programs/civilian/cargo_control.dm +++ b/code/modules/modular_computers/file_system/programs/civilian/cargo_control.dm @@ -7,9 +7,9 @@ size = 12 requires_ntnet = TRUE available_on_ntnet = TRUE - required_access_download = ACCESS_HOP + required_access_download = ACCESS_CARGO required_access_run = ACCESS_CARGO - usage_flags = PROGRAM_CONSOLE | PROGRAM_TELESCREEN + usage_flags = PROGRAM_LAPTOP | PROGRAM_CONSOLE | PROGRAM_TELESCREEN tgui_id = "CargoControl" var/page = "overview_main" //overview_main - Main Menu, overview_submitted - Submitted Order Overview, overview_approved - Approved Order Overview, settings - Settings, details - order details, bounties - centcom bounties diff --git a/code/modules/modular_computers/file_system/programs/civilian/cargo_delivery.dm b/code/modules/modular_computers/file_system/programs/civilian/cargo_delivery.dm index 1c9c74013a7..6fb869794fa 100644 --- a/code/modules/modular_computers/file_system/programs/civilian/cargo_delivery.dm +++ b/code/modules/modular_computers/file_system/programs/civilian/cargo_delivery.dm @@ -7,7 +7,7 @@ size = 6 requires_ntnet = TRUE available_on_ntnet = TRUE - required_access_download = ACCESS_HOP + required_access_download = ACCESS_CARGO usage_flags = PROGRAM_ALL tgui_id = "CargoDelivery" diff --git a/html/changelogs/BoomerThor - Cargonia.yml b/html/changelogs/BoomerThor - Cargonia.yml new file mode 100644 index 00000000000..aa4ca57a180 --- /dev/null +++ b/html/changelogs/BoomerThor - Cargonia.yml @@ -0,0 +1,11 @@ +author: BoomerThor + +delete-after: True + +changes: + - bugfix: "Updates the cultural food bounty lists to include recent contributions." + - rscdel: "Removed depreciated bounties (smoke grenades, telecomms traffic, NVGs, monkey hide)." + - bugfix: "Fixed the padded chairs bounty to work properly." + - spellcheck: "Removes a mention of the Horizon being in the CRZ from the phoron bounty." + - qol: "Changed the access requirements for the Cargo Control and Cargo Delivery programs. OMs and Techs can now download these programs on their laptops." + - qol: "Added a mining laptop preset that comes with the shuttle manifest program."