diff --git a/code/modules/reagents/reagent_containers/Chemical_tongue.dm b/code/modules/reagents/reagent_containers/Chemical_tongue.dm index 6b75ccc5..72335bce 100644 --- a/code/modules/reagents/reagent_containers/Chemical_tongue.dm +++ b/code/modules/reagents/reagent_containers/Chemical_tongue.dm @@ -24,7 +24,7 @@ playsound(M.loc,'sound/effects/attackblob.ogg', rand(10,50), 1) if(isliving(M)) var/mob/living/deepkiss = M - deepkiss.adjustOxyLoss(10) + deepkiss.adjustOxyLoss(5) if(!reagents || !reagents.total_volume) M.visible_message("[user] pulls away from the kiss as their tongue in [M]'s mouth soon follows, slurping back into [user]'s muzzle.", \ "[user] thrusts their tongue down your throat! Pulling it back up as it slithers up then out from your mouth.") @@ -69,7 +69,7 @@ "[user] playfully licks over your lips, leaving some chemicals along it.") log_combat(user, M, "fed", reagents.log_list()) var/fraction = min(5/reagents.total_volume, 1) - reagents.reaction(M, INGEST, fraction) + reagents.reaction(M, TOUCH, fraction) addtimer(CALLBACK(reagents, /datum/reagents.proc/copy_to, M, 1), 5) if(user.a_intent == INTENT_HELP) @@ -86,6 +86,20 @@ else return +obj/item/reagent_containers/chemical_tongue/afterattack(obj/target, mob/user, proximity) + . = ..() + if(target.is_refillable()) //Something like a glass. Player probably wants to transfer TO it. + if(!reagents.total_volume) + to_chat(user, "[src] is empty!") + return + + if(target.reagents.holder_full()) + to_chat(user, "[target] is full.") + return + + var/trans = reagents.copy_to(target, amount_per_transfer_from_this) + to_chat(user, "You transfer [trans] unit\s of the solution to [target] by drooling into it.") + /obj/item/reagent_containers/chemical_tongue/attack_self(mob/user) var/chosen_reagent var/list/reagent_ids = sortList(GLOB.chemical_reagents_list) diff --git a/code/modules/spells/spell_types/adminbussed.dm b/code/modules/spells/spell_types/adminbussed.dm index ca9e05e0..24f1be23 100644 --- a/code/modules/spells/spell_types/adminbussed.dm +++ b/code/modules/spells/spell_types/adminbussed.dm @@ -20,7 +20,7 @@ /obj/effect/proc_holder/spell/self/Alteration_Mechanical/cast(mob/living/carbon/human/user) var/mob/living/carbon/human/H = user var/list/reagent_options = sortList(GLOB.chemical_reagents_list) - H.visible_message(" user] gains a look of \ + H.visible_message(" [user] gains a look of \ concentration while standing perfectly still.\ Their body seems to shift and starts reshaping itself.", "You focus intently on altering your body while \ @@ -109,54 +109,50 @@ H.give_breasts() else if (select_alteration == "Penis Production") - if(H.getorganslot("testicles")) - var/obj/item/organ/genital/testicles/T = H.getorganslot("testicles") - var/new_fluid_penis - switch(alert(usr, "Choose a method.", "Add Reagents", "Enter ID", "Choose ID")) - if("Enter ID") - var/valid_id - while(!valid_id) - new_fluid_penis = stripped_input(usr, "Enter the ID of the reagent you want to add to your testicles.") - if(!new_fluid_penis) //Get me out of here! - break - for(var/ID in reagent_options) - if(ID == new_fluid_penis) - valid_id = 1 - if(!valid_id) - to_chat(usr, "A reagent with that ID doesn't exist!") - if("Choose ID") - new_fluid_penis = input(usr, "Choose a reagent to add to your testicles.", "Choose a reagent.") as null|anything in reagent_options - if(new_fluid_penis) - T.fluid_id = new_fluid_penis - H.update_genitals() - H.apply_overlay() - else - to_chat(user, "You need balls for this to work.") - - else if(select_alteration == "Breast Production") - if(H.getorganslot("breasts")) - var/obj/item/organ/genital/testicles/B = H.getorganslot("breasts") - var/new_fluid_breasts - switch(alert(usr, "Choose a method.", "Add Reagents", "Enter ID", "Choose ID")) - if("Enter ID") - var/valid_id - while(!valid_id) - new_fluid_breasts = stripped_input(usr, "Enter the ID of the reagent you want to add to your breasts.") - if(!new_fluid_breasts) //Get me out of here! - break - for(var/ID in reagent_options) - if(ID == new_fluid_breasts) - valid_id = 1 - if(!valid_id) - to_chat(usr, "A reagent with that ID doesn't exist!") - if("Choose ID") - new_fluid_breasts = input(usr, "Choose a reagent to add to your breasts.", "Choose a reagent.") as null|anything in reagent_options - if(new_fluid_breasts) - B.fluid_id = new_fluid_breasts - H.update_genitals() - H.apply_overlay() - else + if(!H.getorganslot("testicles")) to_chat(user, "You need functioning breasts for this to work.") + else + for(var/obj/item/organ/genital/testicles/X in H.internal_organs) + var/new_fluid_penis + switch(alert(usr, "Choose a method.", "Add Reagents", "Enter ID", "Choose ID")) + if("Enter ID") + var/valid_id + while(!valid_id) + new_fluid_penis = stripped_input(usr, "Enter the ID of the reagent you want to add to your testicles.") + if(!new_fluid_penis) //Get me out of here! + break + for(var/ID in reagent_options) + if(ID == new_fluid_penis) + valid_id = 1 + if(!valid_id) + to_chat(usr, "A reagent with that ID doesn't exist!") + if("Choose ID") + new_fluid_penis = input(usr, "Choose a reagent to add to your testicles.", "Choose a reagent.") as null|anything in reagent_options + if(new_fluid_penis) + X.fluid_id = new_fluid_penis + + else if(select_alteration == "Breast Production") + if(!H.getorganslot("breasts")) + to_chat(user, "You need functioning breasts for this to work.") + else + for(var/obj/item/organ/genital/breasts/X in H.internal_organs) + var/new_fluid_breasts + switch(alert(usr, "Choose a method.", "Add Reagents", "Enter ID", "Choose ID")) + if("Enter ID") + var/valid_id + while(!valid_id) + new_fluid_breasts = stripped_input(usr, "Enter the ID of the reagent you want to add to your breasts.") + if(!new_fluid_breasts) //Get me out of here! + break + for(var/ID in reagent_options) + if(ID == new_fluid_breasts) + valid_id = 1 + if(!valid_id) + to_chat(usr, "A reagent with that ID doesn't exist!") + if("Choose ID") + new_fluid_breasts = input(usr, "Choose a reagent to add to your breasts.", "Choose a reagent.") as null|anything in reagent_options + if(new_fluid_breasts) + X.fluid_id = new_fluid_breasts else if (select_alteration == "Alter Height") var/altered_height