From 3b8d1c4eb97acb01f6b77e018876bf918280a0dc Mon Sep 17 00:00:00 2001 From: Lexanx <61974560+Lexanx@users.noreply.github.com> Date: Fri, 23 Feb 2024 18:24:51 +0300 Subject: [PATCH] Feat: Yeosa Unathi's poison (#725) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Описание https://github.com/ss220-space/Baystation12/issues/541 Унатхам ядовитым, добавляет абилку сцеживания 8 единиц яда, в емкость в активной руке. КД 30 секунд. Потребляет 25 нутримента и 15 жажды. Так же Йоза теперь имеют иммунитет к своему яду ## Changelog :cl: rscadd: Унатхи Йоза могут сцеживать яд. /:cl: --- .../mob/living/carbon/human/human_defines.dm | 4 +++- .../mob/living/carbon/human/human_powers.dm | 22 +++++++++++++++++++ .../Chemistry-Reagents-Toxins.dm | 3 +++ .../species/station/lizard_subspecies.dm | 4 ++++ 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index ae6498dcc3..7048c31b92 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -111,4 +111,6 @@ var/list/descriptors - var/last_smelt = 0 \ No newline at end of file + var/last_smelt = 0 + + var/venom_cooldown = 0 // used for Unathi diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 7f6cc0a754..988bbfdb06 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -112,3 +112,25 @@ var/new_skin = input(usr, "Choose your new skin colour: ", "Change Colour", rgb(r_skin, g_skin, b_skin)) as color|null change_skin_color(hex2num(copytext(new_skin, 2, 4)), hex2num(copytext(new_skin, 4, 6)), hex2num(copytext(new_skin, 6, 8))) + +/mob/living/carbon/human/unathi/yeosa/proc/decant_venom() + set category = "Abilities" + set name = "Decant Venom" + set desc = "" + var/obj/item/target = usr.get_active_hand() + var/poison_type = /datum/reagent/toxin/yeosvenom + + + if(venom_cooldown > world.time) + to_chat(usr, SPAN_WARNING("Your venom glands are too exhausted, it will take some time before you can decant your innate venom again.")) + return + if(istype(target, /obj/item/reagent_containers/)) + if(target.reagents) + target.reagents.add_reagent(poison_type, 8) + src.adjust_nutrition(-25) + src.adjust_hydration(-15) + usr.visible_message( + SPAN_NOTICE("\The [usr] sticks their fangs into the side of the [target], dripping thick, green-ish substance into the container."), + SPAN_NOTICE("You stick your fangs into the side of the \the [target], allowing some of your innate venom to drip into the container.") + ) + venom_cooldown = world.time + (30 SECONDS) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index dfd29bbb06..d93684cc59 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -85,6 +85,9 @@ strength = 1 /datum/reagent/toxin/yeosvenom/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(M.is_species(SPECIES_YEOSA)) + return // Yeosa is immune to it's own venom + if(prob(volume*10)) M.confused = max(M.confused, 10) ..() diff --git a/code/modules/species/station/lizard_subspecies.dm b/code/modules/species/station/lizard_subspecies.dm index b1efbca772..4db41d2056 100644 --- a/code/modules/species/station/lizard_subspecies.dm +++ b/code/modules/species/station/lizard_subspecies.dm @@ -21,6 +21,10 @@ /obj/aura/regenerating/human/unathi/yeosa ) + inherent_verbs = list( + /mob/living/carbon/human/proc/diona_heal_toggle, /mob/living/carbon/human/unathi/yeosa/proc/decant_venom + ) + additional_available_cultural_info = list( TAG_CULTURE = list( CULTURE_UNATHI_YEOSA_ABYSS,