From 30134a0d2f5c33bed80499ff48f049ada0930f65 Mon Sep 17 00:00:00 2001 From: zerothebigboy Date: Wed, 1 Sep 2021 06:32:33 -0400 Subject: [PATCH] cool --- code/game/gamemodes/clock_cult/clock_cult.dm | 2 +- code/game/gamemodes/clown_ops/clown_ops.dm | 2 +- code/game/gamemodes/nuclear/nuclear.dm | 6 +- code/game/objects/items/melee/energy.dm | 2 +- code/game/objects/items/storage/boxes.dm | 56 ++++---- code/modules/clothing/masks/gasmask.dm | 2 + code/modules/clothing/outfits/ert.dm | 34 ++--- code/modules/clothing/outfits/vr.dm | 2 +- .../jobs/job_types/atmospheric_technician.dm | 2 +- code/modules/jobs/job_types/chief_engineer.dm | 2 +- .../jobs/job_types/head_of_security.dm | 2 +- .../jobs/job_types/security_officer.dm | 2 +- code/modules/jobs/job_types/shaft_miner.dm | 2 +- .../jobs/job_types/station_engineer.dm | 2 +- code/modules/jobs/job_types/warden.dm | 2 +- .../reagents/reagent_containers/hypospray.dm | 120 +++++++++++++++--- .../uplink/uplink_items/uplink_devices.dm | 2 +- .../uplink/uplink_items/uplink_roles.dm | 2 +- .../inhands/equipment/medical_lefthand.dmi | Bin 3914 -> 3893 bytes icons/obj/syringe.dmi | Bin 7369 -> 10507 bytes 20 files changed, 161 insertions(+), 83 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index d8ebf6f20c..e81f5cb358 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -275,7 +275,7 @@ Credit where due: ears = /obj/item/radio/headset gloves = /obj/item/clothing/gloves/color/yellow belt = /obj/item/storage/belt/utility/servant - backpack_contents = list(/obj/item/storage/box/engineer = 1, \ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/clockwork/replica_fabricator = 1, /obj/item/stack/tile/brass/fifty = 1, /obj/item/reagent_containers/food/drinks/bottle/holyoil = 1) id = /obj/item/pda var/plasmaman //We use this to determine if we should activate internals in post_equip() diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm index 659d2de105..fa73e2cca9 100644 --- a/code/game/gamemodes/clown_ops/clown_ops.dm +++ b/code/game/gamemodes/clown_ops/clown_ops.dm @@ -43,7 +43,7 @@ l_pocket = /obj/item/pinpointer/nuke/syndicate r_pocket = /obj/item/bikehorn id = /obj/item/card/id/syndicate - backpack_contents = list(/obj/item/storage/box/syndie=1,\ + backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ /obj/item/kitchen/knife/combat/survival, /obj/item/reagent_containers/spray/waterflower/lube) implants = list(/obj/item/implant/sad_trombone) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index dcf84e84db..a82abe9b3d 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -127,7 +127,7 @@ l_pocket = /obj/item/pinpointer/nuke/syndicate id = /obj/item/card/id/syndicate belt = /obj/item/gun/ballistic/automatic/pistol - backpack_contents = list(/obj/item/storage/box/syndie=1,\ + backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ /obj/item/kitchen/knife/combat/survival) var/tc = 25 @@ -173,7 +173,7 @@ internals_slot = SLOT_R_STORE belt = /obj/item/storage/belt/military r_hand = /obj/item/gun/ballistic/automatic/shotgun/bulldog - backpack_contents = list(/obj/item/storage/box/syndie=1,\ + backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ /obj/item/tank/jetpack/oxygen/harness=1,\ /obj/item/gun/ballistic/automatic/pistol=1,\ /obj/item/kitchen/knife/combat/survival) @@ -188,7 +188,7 @@ r_pocket = /obj/item/tank/internals/emergency_oxygen/engi internals_slot = SLOT_R_STORE belt = /obj/item/storage/belt/military - backpack_contents = list(/obj/item/storage/box/syndie=1,\ + backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ /obj/item/tank/jetpack/oxygen/harness=1,\ /obj/item/gun/ballistic/automatic/pistol=1,\ /obj/item/kitchen/knife/combat/survival) diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 1be570b62b..275536d370 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -184,7 +184,7 @@ hitcost = 75 //Costs more than a standard cyborg esword w_class = WEIGHT_CLASS_NORMAL sharpness = SHARP_EDGED - light_color = "#40ceff" + light_color = LIGHT_COLOR_RED tool_behaviour = TOOL_SAW toolspeed = 0.7 diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index c188985853..8b897cb6e5 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -102,16 +102,22 @@ new /obj/item/disk/nanite_program(src) // Ordinary survival box -/obj/item/storage/box/survival/PopulateContents() +/obj/item/storage/box/survival name = "survival box" desc = "A box with the bare essentials of ensuring the survival of you and others." icon_state = "internals" illustration = "emergencytank" - new /obj/item/clothing/mask/breath(src) - new /obj/item/reagent_containers/hypospray/medipen(src) + var/mask_type = /obj/item/clothing/mask/breath + var/internal_type = /obj/item/tank/internals/emergency_oxygen + var/medipen_type = /obj/item/reagent_containers/hypospray/medipen + +/obj/item/storage/box/survival/PopulateContents() + new mask_type(src) + if(!isnull(medipen_type)) + new medipen_type(src) if(!isplasmaman(loc)) - new /obj/item/tank/internals/emergency_oxygen(src) + new internal_type(src) else new /obj/item/tank/internals/plasmaman/belt(src) @@ -119,10 +125,13 @@ ..() // we want the survival stuff too. new /obj/item/radio/off(src) -/obj/item/storage/box/survival_mining/PopulateContents() - new /obj/item/clothing/mask/gas/explorer(src) +// Mining survival box +/obj/item/storage/box/survival/mining + mask_type = /obj/item/clothing/mask/gas/explorer + +/obj/item/storage/box/survival/mining/PopulateContents() + ..() new /obj/item/crowbar/red(src) - new /obj/item/reagent_containers/hypospray/medipen(src) if(!isplasmaman(loc)) new /obj/item/tank/internals/emergency_oxygen(src) @@ -130,19 +139,13 @@ new /obj/item/tank/internals/plasmaman/belt(src) // Engineer survival box -/obj/item/storage/box/engineer/PopulateContents() +/obj/item/storage/box/survival/engineer name = "extended-capacity survival box" desc = "A box with the bare essentials of ensuring the survival of you and others. This one is labelled to contain an extended-capacity tank." illustration = "extendedtank" - new /obj/item/clothing/mask/breath(src) - new /obj/item/reagent_containers/hypospray/medipen(src) + internal_type = /obj/item/tank/internals/emergency_oxygen/engi - if(!isplasmaman(loc)) - new /obj/item/tank/internals/emergency_oxygen/engi(src) - else - new /obj/item/tank/internals/plasmaman/belt(src) - -/obj/item/storage/box/engineer/radio/PopulateContents() +/obj/item/storage/box/survival/engineer/radio/PopulateContents() ..() // we want the regular items too. new /obj/item/radio/off(src) @@ -151,24 +154,15 @@ name = "extended-capacity survival box" desc = "A box with the bare essentials of ensuring the survival of you and others. This one is labelled to contain an extended-capacity tank." illustration = "extendedtank" - new /obj/item/clothing/mask/gas/syndicate(src) - - if(!isplasmaman(loc)) - new /obj/item/tank/internals/emergency_oxygen/engi(src) - else - new /obj/item/tank/internals/plasmaman/belt(src) + mask_type = /obj/item/clothing/mask/gas/syndicate + internal_type = /obj/item/tank/internals/emergency_oxygen/engi + medipen_type = null // Security survival box -/obj/item/storage/box/security/PopulateContents() - new /obj/item/clothing/mask/gas/sechailer(src) - new /obj/item/reagent_containers/hypospray/medipen(src) +/obj/item/storage/box/survival/security + mask_type = /obj/item/clothing/mask/gas/sechailer - if(!isplasmaman(loc)) - new /obj/item/tank/internals/emergency_oxygen(src) - else - new /obj/item/tank/internals/plasmaman/belt(src) - -/obj/item/storage/box/security/radio/PopulateContents() +/obj/item/storage/box/survival/security/radio/PopulateContents() ..() // we want the regular stuff too new /obj/item/radio/off(src) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 525db577e0..2e3c544d08 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -83,6 +83,7 @@ icon_state = "clown" item_state = "clown_hat" dye_color = "clown" + w_class = WEIGHT_CLASS_SMALL flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) @@ -131,6 +132,7 @@ clothing_flags = ALLOWINTERNALS icon_state = "mime" item_state = "mime" + w_class = WEIGHT_CLASS_SMALL flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 7cd2e9b394..86aa0748df 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -30,7 +30,7 @@ glasses = /obj/item/clothing/glasses/hud/security/sunglasses back = /obj/item/storage/backpack/captain belt = /obj/item/storage/belt/security/full - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ /obj/item/gun/energy/e_gun=1) @@ -50,7 +50,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/ert/alert glasses = /obj/item/clothing/glasses/thermal/eyepatch - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/gun/energy/e_gun=1) @@ -58,7 +58,7 @@ /datum/outfit/ert/commander/alert/red name = "ERT Commander - Red Alert" - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/gun/energy/pulse/pistol/loyalpin=1) @@ -71,7 +71,7 @@ glasses = /obj/item/clothing/glasses/hud/security/sunglasses belt = /obj/item/storage/belt/security/full back = /obj/item/storage/backpack/security - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/storage/box/handcuffs=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ /obj/item/gun/energy/e_gun/stun=1,\ @@ -91,7 +91,7 @@ name = "ERT Security - Amber Alert" suit = /obj/item/clothing/suit/space/hardsuit/ert/alert/sec - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/storage/box/handcuffs=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/melee/baton/loaded=1,\ @@ -99,7 +99,7 @@ /datum/outfit/ert/security/alert/red name = "ERT Security - Red Alert" - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/storage/box/handcuffs=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/melee/baton/loaded=1,\ @@ -114,7 +114,7 @@ back = /obj/item/storage/backpack/satchel/med belt = /obj/item/storage/belt/medical r_hand = /obj/item/storage/firstaid/regular - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ /obj/item/gun/energy/e_gun=1,\ @@ -135,7 +135,7 @@ name = "ERT Medic - Amber Alert" suit = /obj/item/clothing/suit/space/hardsuit/ert/alert/med - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/gun/energy/e_gun=1,\ @@ -144,7 +144,7 @@ /datum/outfit/ert/medic/alert/red name = "ERT Medic - Red Alert" - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/gun/energy/pulse/pistol/loyalpin=1,\ @@ -161,7 +161,7 @@ belt = /obj/item/storage/belt/utility/full l_pocket = /obj/item/rcd_ammo/large r_hand = /obj/item/storage/firstaid/regular - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ /obj/item/gun/energy/e_gun=1,\ @@ -181,7 +181,7 @@ name = "ERT Engineer - Amber Alert" suit = /obj/item/clothing/suit/space/hardsuit/ert/alert/engi - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/gun/energy/e_gun=1,\ @@ -189,7 +189,7 @@ /datum/outfit/ert/engineer/alert/red name = "ERT Engineer - Red Alert" - backpack_contents = list(/obj/item/storage/box/engineer=1,\ + backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/gun/energy/pulse/pistol/loyalpin=1,\ @@ -260,7 +260,7 @@ name = "Inquisition Commander" r_hand = /obj/item/nullrod/scythe/talking/chainsword suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal - backpack_contents = list(/obj/item/storage/box/engineer=1, + backpack_contents = list(/obj/item/storage/box/survival/engineer=1, /obj/item/clothing/mask/gas/sechailer=1, /obj/item/gun/energy/e_gun=1) @@ -269,7 +269,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor - backpack_contents = list(/obj/item/storage/box/engineer=1, + backpack_contents = list(/obj/item/storage/box/survival/engineer=1, /obj/item/storage/box/handcuffs=1, /obj/item/clothing/mask/gas/sechailer=1, /obj/item/gun/energy/e_gun/stun=1, @@ -281,7 +281,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor - backpack_contents = list(/obj/item/storage/box/engineer=1, + backpack_contents = list(/obj/item/storage/box/survival/engineer=1, /obj/item/melee/baton/loaded=1, /obj/item/clothing/mask/gas/sechailer=1, /obj/item/gun/energy/e_gun=1, @@ -307,7 +307,7 @@ glasses = /obj/item/clothing/glasses/hud/health back = /obj/item/storage/backpack/cultpack belt = /obj/item/storage/belt/soulstone - backpack_contents = list(/obj/item/storage/box/engineer=1, + backpack_contents = list(/obj/item/storage/box/survival/engineer=1, /obj/item/nullrod=1, /obj/item/clothing/mask/gas/sechailer=1, /obj/item/gun/energy/e_gun=1, @@ -319,7 +319,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor belt = /obj/item/storage/belt/soulstone/full/chappy - backpack_contents = list(/obj/item/storage/box/engineer=1, + backpack_contents = list(/obj/item/storage/box/survival/engineer=1, /obj/item/grenade/chem_grenade/holy=1, /obj/item/nullrod=1, /obj/item/clothing/mask/gas/sechailer=1, diff --git a/code/modules/clothing/outfits/vr.dm b/code/modules/clothing/outfits/vr.dm index acf015c845..ac852a35a8 100644 --- a/code/modules/clothing/outfits/vr.dm +++ b/code/modules/clothing/outfits/vr.dm @@ -28,7 +28,7 @@ id = /obj/item/card/id/syndicate/locked_banking belt = /obj/item/gun/ballistic/automatic/pistol l_pocket = /obj/item/paper/fluff/vr/fluke_ops - backpack_contents = list(/obj/item/storage/box/syndie=1,\ + backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ /obj/item/kitchen/knife/combat/survival) starting_funds = 0 //Should be operating, not shopping. diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index bff56d1d16..de66c32138 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -39,7 +39,7 @@ backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering - box = /obj/item/storage/box/engineer + box = /obj/item/storage/box/survival/engineer pda_slot = SLOT_L_STORE backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index 902be0bdc8..804952dbb2 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -54,7 +54,7 @@ backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering - box = /obj/item/storage/box/engineer + box = /obj/item/storage/box/survival/engineer pda_slot = SLOT_L_STORE chameleon_extras = /obj/item/stamp/ce diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index c772a8acae..d612b6a56d 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -58,7 +58,7 @@ backpack = /obj/item/storage/backpack/security satchel = /obj/item/storage/backpack/satchel/sec duffelbag = /obj/item/storage/backpack/duffelbag/sec - box = /obj/item/storage/box/security + box = /obj/item/storage/box/survival/security implants = list(/obj/item/implant/mindshield) diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index bdae7fe028..3462fb96c9 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -133,7 +133,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S backpack = /obj/item/storage/backpack/security satchel = /obj/item/storage/backpack/satchel/sec duffelbag = /obj/item/storage/backpack/duffelbag/sec - box = /obj/item/storage/box/security + box = /obj/item/storage/box/survival/security implants = list(/obj/item/implant/mindshield) diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 04d3fb53b8..0c04380afe 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -45,7 +45,7 @@ backpack = /obj/item/storage/backpack/explorer satchel = /obj/item/storage/backpack/satchel/explorer duffelbag = /obj/item/storage/backpack/duffelbag - box = /obj/item/storage/box/survival_mining + box = /obj/item/storage/box/survival/mining chameleon_extras = /obj/item/gun/energy/kinetic_accelerator diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index 2396728ad8..25bd2196a0 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -42,7 +42,7 @@ backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering - box = /obj/item/storage/box/engineer + box = /obj/item/storage/box/survival/engineer pda_slot = SLOT_L_STORE backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm index dae3094ebe..074ccac09f 100644 --- a/code/modules/jobs/job_types/warden.dm +++ b/code/modules/jobs/job_types/warden.dm @@ -54,7 +54,7 @@ backpack = /obj/item/storage/backpack/security satchel = /obj/item/storage/backpack/satchel/sec duffelbag = /obj/item/storage/backpack/duffelbag/sec - box = /obj/item/storage/box/security + box = /obj/item/storage/box/survival/security implants = list(/obj/item/implant/mindshield) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 143025aed1..9d2e4a8e31 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -58,6 +58,7 @@ name = "combat stimulant injector" desc = "A modified air-needle autoinjector, used by support operatives to quickly heal injuries in combat and get people back in the fight." amount_per_transfer_from_this = 10 + item_state = "combat_hypo" icon_state = "combat_hypo" volume = 100 ignore_flags = 1 // So they can heal their comrades. @@ -69,17 +70,27 @@ list_reagents = list(/datum/reagent/medicine/epinephrine = 30, /datum/reagent/medicine/omnizine = 30, /datum/reagent/medicine/leporazine = 15, /datum/reagent/medicine/atropine = 15) /obj/item/reagent_containers/hypospray/combat/nanites - desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with experimental medical compounds for rapid healing." + name = "experimental combat stimulant injector" + desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with experimental medical nanites and a stimulant for rapid healing and a combat boost." + item_state = "nanite_hypo" + icon_state = "nanite_hypo" volume = 100 list_reagents = list(/datum/reagent/medicine/adminordrazine/quantum_heal = 80, /datum/reagent/medicine/synaptizine = 20) -/obj/item/reagent_containers/hypospray/magillitis - name = "experimental autoinjector" - desc = "A modified air-needle autoinjector with a small single-use reservoir. It contains an experimental serum." - icon_state = "combat_hypo" - volume = 5 - reagent_flags = NONE - list_reagents = list(/datum/reagent/magillitis = 5) +/obj/item/reagent_containers/hypospray/combat/nanites/update_icon() + if(reagents.total_volume > 0) + icon_state = initial(icon_state) + else + icon_state = "[initial(icon_state)]0" + +/obj/item/reagent_containers/hypospray/combat/heresypurge + name = "holy water piercing injector" + desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with 5 doses of a holy water and pacifier mixture. Not for use on your teammates." + item_state = "holy_hypo" + icon_state = "holy_hypo" + volume = 250 + list_reagents = list(/datum/reagent/water/holywater = 150, /datum/reagent/peaceborg_tire = 50, /datum/reagent/peaceborg_confuse = 50) + amount_per_transfer_from_this = 50 //MediPens @@ -136,6 +147,8 @@ /obj/item/reagent_containers/hypospray/medipen/ekit name = "emergency first-aid autoinjector" desc = "An epinephrine medipen with extra coagulant and antibiotics to help stabilize bad cuts and burns." + icon_state = "firstaid" + item_state = "firstaid" volume = 15 amount_per_transfer_from_this = 15 list_reagents = list(/datum/reagent/medicine/epinephrine = 12, /datum/reagent/medicine/coagulant = 2.5, /datum/reagent/medicine/spaceacillin = 0.5) @@ -143,15 +156,19 @@ /obj/item/reagent_containers/hypospray/medipen/blood_loss name = "hypovolemic-response autoinjector" desc = "A medipen designed to stabilize and rapidly reverse severe bloodloss." + icon_state = "hypovolemic" + item_state = "hypovolemic" volume = 15 amount_per_transfer_from_this = 15 list_reagents = list(/datum/reagent/medicine/epinephrine = 5, /datum/reagent/medicine/coagulant = 2.5, /datum/reagent/iron = 3.5, /datum/reagent/medicine/salglu_solution = 4) /obj/item/reagent_containers/hypospray/medipen/stimulants - name = "illegal stimpack medipen" - desc = "A highly illegal medipen due to its load and small injections, allow for five uses before being drained" + name = "stimpack medipen" + desc = "Contains stimulants." + icon_state = "syndipen" + item_state = "syndipen" volume = 50 - amount_per_transfer_from_this = 10 + amount_per_transfer_from_this = 50 list_reagents = list(/datum/reagent/medicine/stimulants = 50) /obj/item/reagent_containers/hypospray/medipen/stimulants/baseball @@ -166,6 +183,7 @@ name = "stimpack medipen" desc = "A rapid way to stimulate your body's adrenaline, allowing for freer movement in restrictive armor." icon_state = "stimpen" + item_state = "stimpen" volume = 20 amount_per_transfer_from_this = 20 list_reagents = list(/datum/reagent/medicine/ephedrine = 10, /datum/reagent/consumable/coffee = 10) @@ -177,20 +195,79 @@ /obj/item/reagent_containers/hypospray/medipen/morphine name = "morphine medipen" desc = "A rapid way to get you out of a tight situation and fast! You'll feel rather drowsy, though." + icon_state = "morphen" + item_state = "morphen" + volume = 10 + amount_per_transfer_from_this = 10 list_reagents = list(/datum/reagent/medicine/morphine = 10) +/obj/item/reagent_containers/hypospray/medipen/penacid + name = "pentetic acid medipen" + desc = "A autoinjector containing pentetic acid, used to reduce high levels of radiations and moderate toxins." + icon_state = "penacid" + item_state = "penacid" + volume = 10 + amount_per_transfer_from_this = 10 + list_reagents = list(/datum/reagent/medicine/pen_acid = 10) + +/obj/item/reagent_containers/hypospray/medipen/atropine + name = "atropine autoinjector" + desc = "A rapid way to save a person from a critical injury state!" + icon_state = "atropen" + item_state = "atropen" + volume = 10 + amount_per_transfer_from_this = 10 + list_reagents = list(/datum/reagent/medicine/atropine = 10) + +/obj/item/reagent_containers/hypospray/medipen/salacid + name = "salicyclic acid medipen" + desc = "A autoinjector containing salicyclic acid, used to treat severe brute damage." + icon_state = "salacid" + item_state = "salacid" + volume = 10 + amount_per_transfer_from_this = 10 + list_reagents = list(/datum/reagent/medicine/sal_acid = 10) + +/obj/item/reagent_containers/hypospray/medipen/oxandrolone + name = "oxandrolone medipen" + desc = "A autoinjector containing oxandrolone, used to treat severe burns." + icon_state = "oxapen" + item_state = "oxapen" + volume = 10 + amount_per_transfer_from_this = 10 + list_reagents = list(/datum/reagent/medicine/oxandrolone = 10) + +/obj/item/reagent_containers/hypospray/medipen/salbutamol + name = "salbutamol medipen" + desc = "A autoinjector containing salbutamol, used to heal oxygen damage quickly." + icon_state = "salpen" + item_state = "salpen" + volume = 10 + amount_per_transfer_from_this = 10 + list_reagents = list(/datum/reagent/medicine/salbutamol = 10) + /obj/item/reagent_containers/hypospray/medipen/tuberculosiscure name = "BVAK autoinjector" desc = "Bio Virus Antidote Kit autoinjector. Has a two use system for yourself, and someone else. Inject when infected." - icon_state = "stimpen" + icon_state = "tbpen" + item_state = "tbpen" volume = 60 amount_per_transfer_from_this = 30 list_reagents = list(/datum/reagent/medicine/atropine = 10, /datum/reagent/medicine/epinephrine = 10, /datum/reagent/medicine/salbutamol = 20, /datum/reagent/medicine/spaceacillin = 20) +/obj/item/reagent_containers/hypospray/medipen/tuberculosiscure/update_icon() + if(reagents.total_volume > 30) + icon_state = initial(icon_state) + else if (reagents.total_volume > 0) + icon_state = "[initial(icon_state)]1" + else + icon_state = "[initial(icon_state)]0" + /obj/item/reagent_containers/hypospray/medipen/survival name = "survival medipen" desc = "A medipen for surviving in the harshest of environments, heals and protects from environmental hazards. WARNING: Do not inject more than one pen in quick succession." - icon_state = "stimpen" + icon_state = "minepen" + item_state = "minepen" volume = 52 amount_per_transfer_from_this = 52 list_reagents = list(/datum/reagent/medicine/salbutamol = 10, /datum/reagent/medicine/leporazine = 15, /datum/reagent/medicine/neo_jelly = 15, /datum/reagent/medicine/epinephrine = 10, /datum/reagent/medicine/lavaland_extract = 2) @@ -198,16 +275,21 @@ /obj/item/reagent_containers/hypospray/medipen/firelocker name = "fire treatment medipen" desc = "A medipen that has been fulled with burn healing chemicals for personnel without advanced medical knowledge." + icon_state = "firepen" + item_state = "firepen" volume = 15 amount_per_transfer_from_this = 15 list_reagents = list(/datum/reagent/medicine/oxandrolone = 5, /datum/reagent/medicine/kelotane = 10) -/obj/item/reagent_containers/hypospray/combat/heresypurge - name = "holy water autoinjector" - desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with 5 doses of a holy water mixture." - volume = 250 - list_reagents = list(/datum/reagent/water/holywater = 150, /datum/reagent/peaceborg_tire = 50, /datum/reagent/peaceborg_confuse = 50) - amount_per_transfer_from_this = 50 +/obj/item/reagent_containers/hypospray/medipen/magillitis + name = "experimental autoinjector" + desc = "A custom-frame needle injector with a small single-use reservoir, containing an experimental serum. Unlike the more common medipen frame, it cannot pierce through protective armor or hardsuits, nor can the chemical inside be extracted." + icon_state = "gorillapen" + item_state = "gorillapen" + volume = 5 + ignore_flags = 0 + reagent_flags = NONE + list_reagents = list(/datum/reagent/magillitis = 5) #define HYPO_SPRAY 0 #define HYPO_INJECT 1 diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm index ad1cc31ba7..21889219cf 100644 --- a/code/modules/uplink/uplink_items/uplink_devices.dm +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -213,7 +213,7 @@ name = "Stimpack" desc = "Stimpacks, the tool of many great heroes. Makes you nearly immune to non-lethal weaponry for about \ 5 minutes after injection." - item = /obj/item/reagent_containers/syringe/stimulants + item = /obj/item/reagent_containers/hypospray/medipen/stimulants cost = 5 surplus = 90 diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm index 774c2d9794..72e0111c41 100644 --- a/code/modules/uplink/uplink_items/uplink_roles.dm +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -195,7 +195,7 @@ name = "Magillitis Serum Autoinjector" desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." - item = /obj/item/reagent_containers/hypospray/magillitis + item = /obj/item/reagent_containers/hypospray/medipen/magillitis cost = 8 restricted_roles = list("Geneticist", "Chief Medical Officer") diff --git a/icons/mob/inhands/equipment/medical_lefthand.dmi b/icons/mob/inhands/equipment/medical_lefthand.dmi index 8a199ba715798e9519b1786985764741ed38de8d..7cbb240b93dc75b1adbe50e211770dda260870ad 100644 GIT binary patch delta 3063 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 delta 3084 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 Ymr6i5A{2!BixPM%_fED{#w7560O|~DKL7v#