Penile masturbation is fixed again. Masturbation cooldown set to 5 seconds once again, as intended. mob_masturbate is now mob_climax(forced_climax=FALSE). It can be used to masturbate alone, cum inside someone partially or completely and can be used to trigger a forced orgasm through all eligible genitals. Hexacrocin (Aphro PLUS) now increases your minimum arousal over time when overdosing, up to your maximum arousal level at which point you are constantly aroused. When fully aroused, hexacrocin overdose will force an orgasm. Hexacamhor (ANaphro PLUS) overdose now decreases minimum arousal over time, down to 0. Added to_chat feedback to the player when their libido changes permanently. Changed old "src <<" messages to use the new to_chat in citadel chems and citadel arousal, so text should display now. Changed names of genitals to be capitalized, to avoid the code automatically calling them "The X". Masturbation also has more helpful feedback messages when you lack the correct organs. The old force_orgasm proc is removed, use mob_climax(forced_climax=TRUE) instead.
56 lines
1.6 KiB
Plaintext
56 lines
1.6 KiB
Plaintext
/obj/item/organ/genital/testicles
|
|
name = "Testicles"
|
|
desc = "A male reproductive organ."
|
|
icon_state = "testicles"
|
|
icon = 'code/citadel/icons/penis.dmi'
|
|
zone = "groin"
|
|
slot = "testicles"
|
|
w_class = 3
|
|
var/internal = FALSE
|
|
size = BALLS_SIZE_DEF
|
|
var/sack_size = BALLS_SACK_SIZE_DEF
|
|
fluid_id = "semen"
|
|
producing = TRUE
|
|
var/sent_full_message = 1 //defaults to 1 since they're full to start
|
|
var/obj/item/organ/genital/penis/linked_penis
|
|
|
|
/obj/item/organ/genital/testicles/Initialize()
|
|
. = ..()
|
|
reagents.add_reagent(fluid_id, fluid_max_volume)
|
|
|
|
/obj/item/organ/genital/testicles/on_life()
|
|
if(QDELETED(src))
|
|
return
|
|
if(reagents && producing)
|
|
generate_cum()
|
|
|
|
/obj/item/organ/genital/testicles/proc/generate_cum()
|
|
reagents.maximum_volume = fluid_max_volume
|
|
if(reagents.total_volume >= reagents.maximum_volume)
|
|
if(!sent_full_message)
|
|
send_full_message()
|
|
sent_full_message = 1
|
|
return FALSE
|
|
sent_full_message = 0
|
|
update_link()
|
|
if(!linked_penis)
|
|
return FALSE
|
|
reagents.isolate_reagent(fluid_id)//remove old reagents if it changed and just clean up generally
|
|
reagents.add_reagent(fluid_id, (fluid_mult * fluid_rate))//generate the cum
|
|
|
|
/obj/item/organ/genital/testicles/update_link()
|
|
if(owner && !QDELETED(src))
|
|
linked_penis = (owner.getorganslot("penis"))
|
|
if(linked_penis)
|
|
linked_penis.linked_balls = src
|
|
else
|
|
if(linked_penis)
|
|
linked_penis.linked_balls = null
|
|
linked_penis = null
|
|
|
|
/obj/item/organ/genital/testicles/proc/send_full_message(msg = "Your balls finally feel full, again.")
|
|
if(owner && istext(msg))
|
|
owner << msg
|
|
return TRUE
|
|
|