From 7bef144897dab5269fe33b8c679011bc4cac8bbf Mon Sep 17 00:00:00 2001 From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Date: Wed, 12 Jun 2024 14:54:22 -0400 Subject: [PATCH] Zombie cure bottles / injectors for admins, no synth cures, updates comments (#25733) * Zombie cure bottles / injectors for admins, no synth cures, updates comments * oops duplicate moment * removes abstract parent * Apply suggestions from code review Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> * number 15, burger king --------- Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> --- code/_globalvars/lists/reagents_lists.dm | 3 +- .../objects/items/weapons/storage/fancy.dm | 9 +++--- .../reagents/chemistry/reagents/medicine.dm | 6 ++-- .../reagent_containers/chemical_bottle.dm | 24 +++++++++++++++ .../reagents/reagent_containers/hypospray.dm | 28 ++++++++++++++++++ icons/obj/hypo.dmi | Bin 5923 -> 6760 bytes 6 files changed, 61 insertions(+), 9 deletions(-) diff --git a/code/_globalvars/lists/reagents_lists.dm b/code/_globalvars/lists/reagents_lists.dm index 94388ef1c72..91ce38c2776 100644 --- a/code/_globalvars/lists/reagents_lists.dm +++ b/code/_globalvars/lists/reagents_lists.dm @@ -47,5 +47,6 @@ GLOBAL_LIST_INIT(blocked_chems, list("polonium", "initropidril", "concentrated_i "fungalspores", "jagged_crystals", "salmonella", "lavaland_extract", "stable_mutagen", "beer2", "curare", "gluttonytoxin", "smoke_powder", "stimulative_cling", - "teslium_paste", "omnizine_no_addiction" + "teslium_paste", "omnizine_no_addiction", "zombiecure1", + "zombiecure2", "zombiecure3", "zombiecure4" )) diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 8185e2a4a9c..5a0f6744448 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -431,11 +431,10 @@ name = "secure vial storage box - 'Anti-Plague Sequences'" /obj/item/storage/lockbox/vials/zombie_cure/populate_contents() - for(var/count in 1 to 4) - var/obj/item/reagent_containers/glass/bottle/cure = new /obj/item/reagent_containers/glass/bottle(src) - cure.reagents.add_reagent("zombiecure[count]", 50) - var/datum/reagent/temp = GLOB.chemical_reagents_list["zombiecure[count]"] - cure.name = "[lowertext(temp.name)] bottle" + new /obj/item/reagent_containers/glass/bottle/zombiecure1(src) + new /obj/item/reagent_containers/glass/bottle/zombiecure2(src) + new /obj/item/reagent_containers/glass/bottle/zombiecure3(src) + new /obj/item/reagent_containers/glass/bottle/zombiecure4(src) ///Aquatic Starter Kit diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index 69ee3b37797..be8b3a02cf2 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -1609,7 +1609,7 @@ update_flags |= M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER, FALSE) return ..() | update_flags -// First level, prevents scratches from infecting you and stops the advance of low-level zombie infections. +// First level, prevents scratches from infecting you and cures stage 1 zombie infections. /datum/reagent/zombie_cure name = "Anti-Plague Sequence Alpha" id = "zombiecure1" @@ -1619,7 +1619,7 @@ color = "#003602" var/cure_level = 1 -// Cures low-level infections. Weakens zombies when in their system. +// Weakens a zombie's claws when in their system. Cures stage 1-3 infections. /datum/reagent/zombie_cure/second name = "Anti-Plague Sequence Beta" id = "zombiecure2" @@ -1627,7 +1627,7 @@ color = "#006238" cure_level = 2 -// Prevents zombies from reviving, but not from healing. Removes all zombie viruses except for the rotting stage. +// Significantly weakens a zombie's healing ability. Cures 1-5 infections and significantly slows the advance of the stage 6 infection /datum/reagent/zombie_cure/third name = "Anti-Plague Sequence Gamma" id = "zombiecure3" diff --git a/code/modules/reagents/reagent_containers/chemical_bottle.dm b/code/modules/reagents/reagent_containers/chemical_bottle.dm index d9b3f6ab99e..c2c86e1daba 100644 --- a/code/modules/reagents/reagent_containers/chemical_bottle.dm +++ b/code/modules/reagents/reagent_containers/chemical_bottle.dm @@ -417,3 +417,27 @@ desc = "A small bottle containing Bio Virus Antidote Kit." icon_state = "wide_bottle" list_reagents = list("atropine" = 5, "epinephrine" = 5, "salbutamol" = 10, "spaceacillin" = 10) + +/obj/item/reagent_containers/glass/bottle/zombiecure1 + name = "\improper Anti-Plague Sequence Alpha bottle" + desc = "A small bottle containing 50 units of Anti-Plague Sequence Alpha. Prevents infection, cures level 1 infection." + icon_state = "wide_bottle" + list_reagents = list("zombiecure1" = 50) + +/obj/item/reagent_containers/glass/bottle/zombiecure2 + name = "\improper Anti-Plague Sequence Beta bottle" + desc = "A small bottle containing 50 units of Anti-Plague Sequence Beta. Weakens zombies, heals low infections." + icon_state = "wide_bottle" + list_reagents = list("zombiecure2" = 50) + +/obj/item/reagent_containers/glass/bottle/zombiecure3 + name = "\improper Anti-Plague Sequence Gamma bottle" + desc = "A small bottle containing 50 units of Anti-Plague Sequence Gamma. Lowers zombies healing. Heals stage 5 and slows stage 6 infections." + icon_state = "wide_bottle" + list_reagents = list("zombiecure3" = 50) + +/obj/item/reagent_containers/glass/bottle/zombiecure4 + name = "\improper Anti-Plague Sequence Omega bottle" + desc = "A small bottle containing 50 units of Anti-Plague Sequence Omega. Cures all cases of the Necrotizing Plague. Also heals dead limbs." + icon_state = "wide_bottle" + list_reagents = list("zombiecure4" = 50) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 8e135140d3f..c6c5dd23839 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -253,3 +253,31 @@ /obj/item/reagent_containers/hypospray/autoinjector/nanocalcium/attack(mob/living/M, mob/user) if(..()) playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 20, 1) + +/obj/item/reagent_containers/hypospray/autoinjector/zombiecure + name = "\improper Anti-Plague Sequence Alpha autoinjector" + desc = "A small autoinjector containing 15 units of Anti-Plague Sequence Alpha. Prevents infection, cures level 1 infection." + icon_state = "zombiepen" + amount_per_transfer_from_this = 15 + volume = 15 + container_type = null //No sucking out the reagent + list_reagents = list("zombiecure1" = 15) + +/obj/item/reagent_containers/hypospray/autoinjector/zombiecure/attack(mob/living/M, mob/user) + if(..()) + playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 20, TRUE) //Sucker for sounds, also gets zombies attention. + +/obj/item/reagent_containers/hypospray/autoinjector/zombiecure/zombiecure2 + name = "\improper Anti-Plague Sequence Beta autoinjector" + desc = "A small autoinjector containing 15 units of Anti-Plague Sequence Beta. Weakens zombies, heals low infections." + list_reagents = list("zombiecure2" = 15) + +/obj/item/reagent_containers/hypospray/autoinjector/zombiecure/zombiecure3 + name = "\improper Anti-Plague Sequence Gamma autoinjector" + desc = "A small autoinjector containing 15 units of Anti-Plague Sequence Gamma. Lowers zombies healing. Heals stage 5 and slows stage 6 infections." + list_reagents = list("zombiecure3" = 15) + +/obj/item/reagent_containers/hypospray/autoinjector/zombiecure/zombiecure4 + name = "\improper Anti-Plague Sequence Omega autoinjector" + desc = "A small autoinjector containing 15 units of Anti-Plague Sequence Omega. Cures all cases of the Necrotizing Plague. Also heals dead limbs." + list_reagents = list("zombiecure4" = 15) diff --git a/icons/obj/hypo.dmi b/icons/obj/hypo.dmi index f688c9c64bcb756a1dc8da0a299e0a869dcffadf..3c940b69060b3572bb06a2ddb95bba13af930e41 100644 GIT binary patch literal 6760 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 literal 5923 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