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