diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 66aad01d7c4..0663e0d2bae 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -104,19 +104,26 @@ /obj/item/reagent_containers/hypospray/autoinjector name = "autoinjector" desc = "A rapid and safe way to administer small amounts of drugs by untrained or trained personnel." - icon_state = "autoinjector1" - item_state = "autoinjector1" - var/empty_state = "autoinjector0" - flags = OPENCONTAINER + desc_fluff = "Funded by the Stellar Corporate Conglomerate, produced by Zeng-Hu Pharmaceuticals, this autoinjector system was rebuilt from the ground up from the old variant to provide maximum user feedback." + desc_info = "Autoinjectors are spent after using them. To re-use, use a screwdriver to open the back panel, then simply pour any desired reagent inside. Use in-hand, or click it while it's in your active hand to prepare it for reuse." + icon_state = "autoinjector" + item_state = "autoinjector" + var/name_label + var/spent = TRUE amount_per_transfer_from_this = 5 possible_transfer_amounts = null volume = 5 time = 0 /obj/item/reagent_containers/hypospray/autoinjector/Initialize() - . =..() - icon_state = empty_state - item_state = empty_state + . = ..() + if(name_label) + name_unlabel = name + name = "[name] ([name_label])" + verbs += /atom/proc/remove_label + if(reagents_to_add) + flags = 0 + spent = FALSE update_icon() /obj/item/reagent_containers/hypospray/autoinjector/attack(var/mob/M, var/mob/user, target_zone) @@ -125,10 +132,17 @@ return FALSE . = ..() +/obj/item/reagent_containers/hypospray/autoinjector/afterattack(mob/M, mob/user, proximity) + . = ..() + if(.) + spent = TRUE + update_icon() + /obj/item/reagent_containers/hypospray/autoinjector/attack_self(mob/user as mob) if(is_open_container()) if(LAZYLEN(reagents.reagent_volumes)) to_chat(user, SPAN_NOTICE("With a quick twist of \the [src]'s lid, you secure the reagents inside.")) + spent = FALSE flags &= ~OPENCONTAINER update_icon() else @@ -146,12 +160,18 @@ . = ..() /obj/item/reagent_containers/hypospray/autoinjector/update_icon() - if(reagents.total_volume > 0 && !is_open_container()) - icon_state = initial(icon_state) - item_state = initial(icon_state) - else - icon_state = empty_state - item_state = empty_state + cut_overlays() + if(!is_open_container()) + var/mutable_appearance/backing_overlay = mutable_appearance(icon, "autoinjector_secured") + add_overlay(backing_overlay) + + icon_state = "[initial(icon_state)][spent]" + item_state = "[initial(item_state)][spent]" + + if(reagents.total_volume) + var/mutable_appearance/reagent_overlay = mutable_appearance(icon, "autoinjector_reagents") + reagent_overlay.color = reagents.get_color() + add_overlay(reagent_overlay) /obj/item/reagent_containers/hypospray/autoinjector/examine(mob/user) ..(user) @@ -162,11 +182,11 @@ /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline - name = "autoinjector (inaprovaline)" + name_label = "inaprovaline" reagents_to_add = list(/decl/reagent/inaprovaline = 5) /obj/item/reagent_containers/hypospray/autoinjector/emergency - name = "autoinjector (emergency)" + name_label = "emergency" reagents_to_add = list(/decl/reagent/inaprovaline = 2.5, /decl/reagent/dexalin = 2.5) /obj/item/reagent_containers/hypospray/autoinjector/emergency/Initialize() @@ -174,14 +194,14 @@ desc += " This auto-injector is to be used in emergencies. It contains a small amount of inaprovaline and dexalin." /obj/item/reagent_containers/hypospray/autoinjector/coagzolug - name = "autoinjector (coagzolug)" + name_label = "coagzolug" desc = "A rapid and safe way to administer small amounts of drugs by untrained or trained personnel. This one contains coagzolug, a quick-acting blood coagulant that will slow bleeding for as long as it's within the bloodstream." volume = 5 flags = 0 reagents_to_add = list(/decl/reagent/coagzolug = 5) /obj/item/reagent_containers/hypospray/autoinjector/sideeffectbgone - name = "sideeffects-be-gone! autoinjector" + name_label = "sideeffects-be-gone!" desc = "A special cocktail designed to counter the side-effects of various drugs. Has 2 uses." volume = 30 amount_per_transfer_from_this = 15 diff --git a/html/changelogs/geeves-autoinjector_enbiggen.yml b/html/changelogs/geeves-autoinjector_enbiggen.yml new file mode 100644 index 00000000000..a545fc2c9c5 --- /dev/null +++ b/html/changelogs/geeves-autoinjector_enbiggen.yml @@ -0,0 +1,8 @@ +author: Geeves + +delete-after: True + +changes: + - tweak: "Autoinjectors have been resprited, they are now slightly bigger." + - rscadd: "Special autoinjectors that spawn with reagents are properly labeled, which allows you to take the label off whenever." + - rscadd: "Autoinjectors have received some flavour text in its extended description." \ No newline at end of file diff --git a/icons/obj/syringe.dmi b/icons/obj/syringe.dmi index ed75d052a19..06a984d74f4 100644 Binary files a/icons/obj/syringe.dmi and b/icons/obj/syringe.dmi differ