mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 21:48:39 +01:00
Merge branch 'master' of github.com:tgstation/tgstation into upstream-2026-06-23
This commit is contained in:
@@ -715,10 +715,8 @@ ADMIN_VERB(centcom_podlauncher, R_ADMIN, "Config/Launch Supplypod", "Configure a
|
||||
/datum/centcom_podlauncher/proc/launch(turf/target_turf) //Game time started
|
||||
if (isnull(target_turf))
|
||||
return
|
||||
var/obj/structure/closet/supplypod/centcompod/toLaunch = duplicate_object(temp_pod) //Duplicate the temp_pod (which we have been varediting or configuring with the UI) and store the result
|
||||
var/obj/structure/closet/supplypod/centcompod/toLaunch = duplicate_object(temp_pod, GLOB.areas_by_type[/area/centcom/central_command_areas/supplypod/supplypod_temp_holding]) //Duplicate the temp_pod (which we have been varediting or configuring with the UI) and store the result
|
||||
toLaunch.update_appearance()//we update_appearance() here so that the door doesnt "flicker on" right after it lands
|
||||
var/shippingLane = GLOB.areas_by_type[/area/centcom/central_command_areas/supplypod/supplypod_temp_holding]
|
||||
toLaunch.forceMove(shippingLane)
|
||||
if (launchClone) //We arent launching the actual items from the bay, rather we are creating clones and launching those
|
||||
if(launchRandomItem)
|
||||
var/launch_candidate = pick_n_take(launchList)
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
/obj/item/jacobs_ladder,
|
||||
/obj/item/borg/upgrade/modkit/lifesteal,
|
||||
/obj/item/clockwork_alloy,
|
||||
/obj/item/gun/energy/recharge/kinetic_accelerator/bdm,
|
||||
)
|
||||
|
||||
/datum/export/lavaland/major //valuable chest/ruin loot, minor megafauna loot
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
available_items[item.category] -= item.identifier
|
||||
if(!length(available_items[item.category]))
|
||||
available_items -= item.category
|
||||
categories -= item.category
|
||||
|
||||
/**
|
||||
* Handles buying the item for a market.
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
var/obj/item/clothing/under/misc/syndicate_souvenir/souvenir = new(loc)
|
||||
humie.equip_to_slot_if_possible(souvenir, ITEM_SLOT_ICLOTHING, indirect_action = TRUE)
|
||||
var/obj/item/clothing/accessory/anti_sec_pin/pin = new(loc)
|
||||
pin.attach(souvenir)
|
||||
pin.try_attach(souvenir)
|
||||
|
||||
if(isnull(humie.w_uniform))
|
||||
//FUCKING SLAVES, GET YOUR CLOTHES BACK ON!
|
||||
|
||||
@@ -159,10 +159,13 @@
|
||||
|
||||
for(var/pack_id in SSshuttle.supply_packs)
|
||||
var/datum/supply_pack/pack = SSshuttle.supply_packs[pack_id]
|
||||
var/list/available_packs = get_packs_data(pack.group)
|
||||
if(!length(available_packs)) //No available packs, hide category
|
||||
continue
|
||||
if(!data["supplies"][pack.group])
|
||||
data["supplies"][pack.group] = list(
|
||||
"name" = pack.group,
|
||||
"packs" = get_packs_data(pack.group),
|
||||
"packs" = available_packs,
|
||||
)
|
||||
|
||||
data["displayed_currency_full_name"] = " [MONEY_NAME]"
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
var/obj/structure/closet/crate/C
|
||||
if(paying_account)
|
||||
C = new /obj/structure/closet/crate/secure/owned(A, paying_account)
|
||||
C.name = "[crate_name] - Purchased by [paying_account.account_holder]"
|
||||
C.name = "[crate_name || C.name] - Purchased by [paying_account.account_holder]"
|
||||
else if(!crate_type && !crate_override)
|
||||
CRASH("tried to generate a supply pack without a valid crate type")
|
||||
else if(crate_override)
|
||||
@@ -78,7 +78,8 @@
|
||||
|
||||
else
|
||||
C = new crate_type(A)
|
||||
C.name = crate_name
|
||||
if(crate_name)
|
||||
C.name = crate_name
|
||||
if(access)
|
||||
C.req_access = list(access)
|
||||
if(access_any)
|
||||
|
||||
@@ -34,9 +34,5 @@
|
||||
name = "Shrubbery Crate"
|
||||
desc = "Crate full of hedge shrubs."
|
||||
cost = CARGO_CRATE_VALUE * 5
|
||||
contains = list(/obj/item/grown/shrub = 8)
|
||||
crate_name = "shrubbery crate"
|
||||
var/shrub_amount = 8
|
||||
|
||||
/datum/supply_pack/exploration/shrubbery/fill(obj/container)
|
||||
for(var/i in 1 to shrub_amount)
|
||||
new /obj/item/grown/shrub(container)
|
||||
|
||||
@@ -2,6 +2,15 @@
|
||||
group = "Livestock"
|
||||
crate_type = /obj/structure/closet/crate/critter
|
||||
|
||||
/datum/supply_pack/critter/stasis
|
||||
group = "Livestock (Stasis)"
|
||||
crate_type = /obj/structure/closet/crate/critter/stasis
|
||||
|
||||
/datum/supply_pack/critter/stasis/fill(obj/container)
|
||||
. = ..()
|
||||
for(var/mob/living/stasis_mob in container)
|
||||
stasis_mob.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_CRATE_EFFECT)
|
||||
|
||||
/datum/supply_pack/critter/parrot
|
||||
name = "Bird Crate"
|
||||
desc = "Contains five expert telecommunication birds."
|
||||
@@ -260,9 +269,9 @@
|
||||
contains = list(/obj/item/storage/fish_case/tiziran = 2)
|
||||
crate_name = "tiziran fish crate"
|
||||
|
||||
/datum/supply_pack/critter/turtle
|
||||
/datum/supply_pack/critter/stasis/turtle
|
||||
name = "Turtle Crate"
|
||||
desc = "Cute flora turtles that'll emit good vibes to nearby plants!"
|
||||
cost = CARGO_CRATE_VALUE * 2
|
||||
contains = list(/mob/living/basic/turtle)
|
||||
crate_name = "flora-turtle crate"
|
||||
crate_name = "flora-turtle stasis crate"
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
contains = list(/obj/item/reagent_containers/hypospray/medipen = 2,
|
||||
/obj/item/reagent_containers/hypospray/medipen/ekit = 3,
|
||||
/obj/item/reagent_containers/hypospray/medipen/blood_loss = 3)
|
||||
crate_name = "medipen crate"
|
||||
crate_name = null
|
||||
crate_type = /obj/structure/closet/crate/deforest
|
||||
|
||||
/datum/supply_pack/medical/coroner_crate
|
||||
@@ -48,23 +48,24 @@
|
||||
name = "Chemical Starter Kit Crate"
|
||||
desc = "Contains thirteen different chemicals, for all the fun experiments you can make."
|
||||
cost = CARGO_CRATE_VALUE * 2.6
|
||||
contains = list(/obj/item/reagent_containers/cup/bottle/hydrogen,
|
||||
/obj/item/reagent_containers/cup/bottle/carbon,
|
||||
/obj/item/reagent_containers/cup/bottle/nitrogen,
|
||||
/obj/item/reagent_containers/cup/bottle/oxygen,
|
||||
/obj/item/reagent_containers/cup/bottle/fluorine,
|
||||
/obj/item/reagent_containers/cup/bottle/phosphorus,
|
||||
/obj/item/reagent_containers/cup/bottle/silicon,
|
||||
/obj/item/reagent_containers/cup/bottle/chlorine,
|
||||
/obj/item/reagent_containers/cup/bottle/radium,
|
||||
/obj/item/reagent_containers/cup/bottle/sacid,
|
||||
/obj/item/reagent_containers/cup/bottle/ethanol,
|
||||
/obj/item/reagent_containers/cup/bottle/potassium,
|
||||
/obj/item/reagent_containers/cup/bottle/sugar,
|
||||
/obj/item/clothing/glasses/science,
|
||||
/obj/item/reagent_containers/dropper,
|
||||
/obj/item/storage/box/beakers,
|
||||
)
|
||||
contains = list(
|
||||
/obj/item/reagent_containers/cup/bottle/hydrogen,
|
||||
/obj/item/reagent_containers/cup/bottle/carbon,
|
||||
/obj/item/reagent_containers/cup/bottle/nitrogen,
|
||||
/obj/item/reagent_containers/cup/bottle/oxygen,
|
||||
/obj/item/reagent_containers/cup/bottle/fluorine,
|
||||
/obj/item/reagent_containers/cup/bottle/phosphorus,
|
||||
/obj/item/reagent_containers/cup/bottle/silicon,
|
||||
/obj/item/reagent_containers/cup/bottle/chlorine,
|
||||
/obj/item/reagent_containers/cup/bottle/radium,
|
||||
/obj/item/reagent_containers/cup/bottle/sacid,
|
||||
/obj/item/reagent_containers/cup/bottle/ethanol,
|
||||
/obj/item/reagent_containers/cup/bottle/potassium,
|
||||
/obj/item/reagent_containers/cup/bottle/sugar,
|
||||
/obj/item/clothing/glasses/science,
|
||||
/obj/item/reagent_containers/dropper,
|
||||
/obj/item/storage/box/beakers,
|
||||
)
|
||||
crate_name = "chemical crate"
|
||||
|
||||
/datum/supply_pack/medical/defibs
|
||||
@@ -72,48 +73,49 @@
|
||||
desc = "Contains two defibrillators for bringing the recently deceased back to life."
|
||||
cost = CARGO_CRATE_VALUE * 5
|
||||
contains = list(/obj/item/defibrillator/loaded = 2)
|
||||
crate_name = "defibrillator crate"
|
||||
crate_type = /obj/structure/closet/crate/medical
|
||||
crate_name = null
|
||||
crate_type = /obj/structure/closet/crate/deforest
|
||||
|
||||
/datum/supply_pack/medical/iv_drip
|
||||
name = "IV Drip Crate"
|
||||
desc = "Contains a single IV drip for administering blood to patients."
|
||||
cost = CARGO_CRATE_VALUE * 2
|
||||
contains = list(/obj/machinery/iv_drip)
|
||||
crate_name = "iv drip crate"
|
||||
crate_type = /obj/structure/closet/crate/medical
|
||||
crate_name = null
|
||||
crate_type = /obj/structure/closet/crate/deforest
|
||||
|
||||
/datum/supply_pack/medical/supplies
|
||||
name = "Medical Supplies Crate"
|
||||
desc = "Contains a random assortment of medical supplies. German doctor not included."
|
||||
cost = CARGO_CRATE_VALUE * 4
|
||||
contains = list(/obj/item/reagent_containers/cup/bottle/multiver,
|
||||
/obj/item/reagent_containers/cup/bottle/epinephrine,
|
||||
/obj/item/reagent_containers/cup/bottle/morphine,
|
||||
/obj/item/reagent_containers/cup/bottle/toxin,
|
||||
/obj/item/reagent_containers/cup/beaker/large,
|
||||
/obj/item/reagent_containers/applicator/pill/insulin,
|
||||
/obj/item/stack/medical/wrap/gauze,
|
||||
/obj/item/storage/box/bandages,
|
||||
/obj/item/storage/box/beakers,
|
||||
/obj/item/storage/box/medigels,
|
||||
/obj/item/storage/box/syringes,
|
||||
/obj/item/storage/box/bodybags,
|
||||
/obj/item/storage/medkit/regular,
|
||||
/obj/item/storage/medkit/o2,
|
||||
/obj/item/storage/medkit/toxin,
|
||||
/obj/item/storage/medkit/brute,
|
||||
/obj/item/storage/medkit/fire,
|
||||
/obj/item/defibrillator/loaded,
|
||||
/obj/item/reagent_containers/blood/o_minus,
|
||||
/obj/item/storage/pill_bottle/mining,
|
||||
/obj/item/reagent_containers/applicator/pill/neurine,
|
||||
/obj/item/stack/medical/bone_gel = 2,
|
||||
/obj/item/vending_refill/medical,
|
||||
/obj/item/vending_refill/drugs,
|
||||
)
|
||||
crate_name = "medical supplies crate"
|
||||
crate_type = /obj/structure/closet/crate/medical
|
||||
contains = list(
|
||||
/obj/item/reagent_containers/cup/bottle/multiver,
|
||||
/obj/item/reagent_containers/cup/bottle/epinephrine,
|
||||
/obj/item/reagent_containers/cup/bottle/morphine,
|
||||
/obj/item/reagent_containers/cup/bottle/toxin,
|
||||
/obj/item/reagent_containers/cup/beaker/large,
|
||||
/obj/item/reagent_containers/applicator/pill/insulin,
|
||||
/obj/item/stack/medical/wrap/gauze,
|
||||
/obj/item/storage/box/bandages,
|
||||
/obj/item/storage/box/beakers,
|
||||
/obj/item/storage/box/medigels,
|
||||
/obj/item/storage/box/syringes,
|
||||
/obj/item/storage/box/bodybags,
|
||||
/obj/item/storage/medkit/regular,
|
||||
/obj/item/storage/medkit/o2,
|
||||
/obj/item/storage/medkit/toxin,
|
||||
/obj/item/storage/medkit/brute,
|
||||
/obj/item/storage/medkit/fire,
|
||||
/obj/item/defibrillator/loaded,
|
||||
/obj/item/reagent_containers/blood/o_minus,
|
||||
/obj/item/storage/pill_bottle/mining,
|
||||
/obj/item/reagent_containers/applicator/pill/neurine,
|
||||
/obj/item/stack/medical/bone_gel = 2,
|
||||
/obj/item/vending_refill/medical,
|
||||
/obj/item/vending_refill/drugs,
|
||||
)
|
||||
crate_name = null
|
||||
crate_type = /obj/structure/closet/crate/deforest
|
||||
test_ignored = TRUE
|
||||
|
||||
/datum/supply_pack/medical/supplies/fill(obj/container)
|
||||
@@ -126,8 +128,8 @@
|
||||
desc = "A crate containing the medication required for living with Hereditary Manifold Sickness, Sansufentanyl."
|
||||
cost = CARGO_CRATE_VALUE * 3
|
||||
contains = list(/obj/item/storage/pill_bottle/sansufentanyl = 2)
|
||||
crate_name = "experimental medicine crate"
|
||||
crate_type = /obj/structure/closet/crate/medical
|
||||
crate_name = null
|
||||
crate_type = /obj/structure/closet/crate/interdyne_normal
|
||||
|
||||
/datum/supply_pack/medical/surgery
|
||||
name = "Surgical Supplies Crate"
|
||||
@@ -140,7 +142,7 @@
|
||||
/obj/item/reagent_containers/medigel/sterilizine,
|
||||
/obj/item/emergency_bed,
|
||||
)
|
||||
crate_name = "surgical supplies crate"
|
||||
crate_name = null
|
||||
crate_type = /obj/structure/closet/crate/deforest
|
||||
|
||||
/datum/supply_pack/medical/salglucanister
|
||||
@@ -161,19 +163,20 @@
|
||||
cost = CARGO_CRATE_VALUE * 5
|
||||
access = ACCESS_CMO
|
||||
access_view = ACCESS_VIROLOGY
|
||||
contains = list(/obj/item/reagent_containers/cup/bottle/flu_virion,
|
||||
/obj/item/reagent_containers/cup/bottle/cold,
|
||||
/obj/item/reagent_containers/cup/bottle/random_virus = 4,
|
||||
/obj/item/reagent_containers/cup/bottle/fake_gbs,
|
||||
/obj/item/reagent_containers/cup/bottle/magnitis,
|
||||
/obj/item/reagent_containers/cup/bottle/pierrot_throat,
|
||||
/obj/item/reagent_containers/cup/bottle/brainrot,
|
||||
/obj/item/reagent_containers/cup/bottle/anxiety,
|
||||
/obj/item/reagent_containers/cup/bottle/beesease,
|
||||
/obj/item/storage/box/syringes,
|
||||
/obj/item/storage/box/beakers,
|
||||
/obj/item/reagent_containers/cup/bottle/mutagen,
|
||||
)
|
||||
contains = list(
|
||||
/obj/item/reagent_containers/cup/bottle/flu_virion,
|
||||
/obj/item/reagent_containers/cup/bottle/cold,
|
||||
/obj/item/reagent_containers/cup/bottle/random_virus = 4,
|
||||
/obj/item/reagent_containers/cup/bottle/fake_gbs,
|
||||
/obj/item/reagent_containers/cup/bottle/magnitis,
|
||||
/obj/item/reagent_containers/cup/bottle/pierrot_throat,
|
||||
/obj/item/reagent_containers/cup/bottle/brainrot,
|
||||
/obj/item/reagent_containers/cup/bottle/anxiety,
|
||||
/obj/item/reagent_containers/cup/bottle/beesease,
|
||||
/obj/item/storage/box/syringes,
|
||||
/obj/item/storage/box/beakers,
|
||||
/obj/item/reagent_containers/cup/bottle/mutagen,
|
||||
)
|
||||
crate_name = "virus crate"
|
||||
crate_type = /obj/structure/closet/crate/secure/plasma
|
||||
order_flags = ORDER_DANGEROUS
|
||||
@@ -183,16 +186,17 @@
|
||||
desc = "Contains the CMO's turtleneck and turtleneck skirt."
|
||||
cost = CARGO_CRATE_VALUE * 2
|
||||
access = ACCESS_CMO
|
||||
contains = list(/obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck,
|
||||
/obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck/skirt,
|
||||
)
|
||||
contains = list(
|
||||
/obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck,
|
||||
/obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck/skirt,
|
||||
)
|
||||
|
||||
/datum/supply_pack/medical/arm_implants
|
||||
name = "Strong-Arm Implant Set"
|
||||
desc = "A crate containing two implants, which can be surgically implanted to empower the strength of human arms. Warranty void if exposed to electromagnetic pulses."
|
||||
cost = CARGO_CRATE_VALUE * 6
|
||||
contains = list(/obj/item/organ/cyberimp/arm/strongarm = 2)
|
||||
crate_name = "Strong-Arm implant crate"
|
||||
crate_name = "\improper Strong-Arm implant crate"
|
||||
discountable = SUPPLY_PACK_RARE_DISCOUNTABLE
|
||||
|
||||
/datum/supply_pack/medical/paperwork_implants
|
||||
@@ -244,4 +248,14 @@
|
||||
/obj/item/sensor_device,
|
||||
/obj/item/sensor_device,
|
||||
)
|
||||
crate_name = "handheld crew monitor crate"
|
||||
crate_name = null
|
||||
crate_type = /obj/structure/closet/crate/deforest
|
||||
|
||||
/datum/supply_pack/medical/first_aid_board
|
||||
name = "DeForest First Aid Station"
|
||||
desc = "A crate containing a circuit board used to construct a DeForest First Aid Station - \
|
||||
a machine designed to treat minor injuries and ailments. Components not included."
|
||||
cost = CARGO_CRATE_VALUE * 6
|
||||
contains = list(/obj/item/circuitboard/machine/wall_healer)
|
||||
crate_name = null
|
||||
crate_type = /obj/structure/closet/crate/deforest
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today! \
|
||||
Contains one MULEbot."
|
||||
cost = CARGO_CRATE_VALUE * 4
|
||||
contains = list(/mob/living/simple_animal/bot/mulebot)
|
||||
contains = list(/mob/living/basic/bot/mulebot)
|
||||
crate_name = "\improper MULEbot Crate"
|
||||
crate_type = /obj/structure/closet/crate/large
|
||||
|
||||
|
||||
Reference in New Issue
Block a user