73 lines
2.5 KiB
Plaintext
73 lines
2.5 KiB
Plaintext
/obj/item/organ/genital/testicles
|
|
name = "testicles"
|
|
desc = "A male reproductive organ."
|
|
icon_state = "testicles"
|
|
icon = 'modular_citadel/icons/obj/genitals/testicles.dmi'
|
|
zone = BODY_ZONE_PRECISE_GROIN
|
|
slot = ORGAN_SLOT_TESTICLES
|
|
size = BALLS_SIZE_MIN
|
|
linked_organ_slot = ORGAN_SLOT_PENIS
|
|
genital_flags = CAN_MASTURBATE_WITH|MASTURBATE_LINKED_ORGAN|GENITAL_FUID_PRODUCTION
|
|
var/size_name = "average"
|
|
shape = "Single"
|
|
var/sack_size = BALLS_SACK_SIZE_DEF
|
|
fluid_id = "semen"
|
|
masturbation_verb = "massage"
|
|
layer_index = TESTICLES_LAYER_INDEX
|
|
|
|
/obj/item/organ/genital/testicles/generate_fluid()
|
|
if(!linked_organ && !update_link())
|
|
return FALSE
|
|
. = ..()
|
|
if(. && reagents.holder_full())
|
|
to_chat(owner, "Your balls finally feel full, again.")
|
|
|
|
/obj/item/organ/genital/testicles/upon_link()
|
|
size = linked_organ.size
|
|
update_size()
|
|
update_appearance()
|
|
|
|
/obj/item/organ/genital/testicles/update_size(modified = FALSE)
|
|
switch(size)
|
|
if(BALLS_SIZE_MIN)
|
|
size_name = "average"
|
|
if(BALLS_SIZE_DEF)
|
|
size_name = "enlarged"
|
|
if(BALLS_SIZE_MAX)
|
|
size_name = "engorged"
|
|
else
|
|
size_name = "nonexistant"
|
|
|
|
/obj/item/organ/genital/testicles/update_appearance()
|
|
. = ..()
|
|
desc = "You see an [size_name] pair of testicles."
|
|
if(owner)
|
|
var/string
|
|
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
|
|
if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow...
|
|
var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need.
|
|
color = "#[skintone2hex(H.skin_tone)]"
|
|
string = "testicles_[GLOB.balls_shapes_icons[shape]]_[size]-s"
|
|
else
|
|
color = "#[owner.dna.features["balls_color"]]"
|
|
string = "testicles_[GLOB.balls_shapes_icons[shape]]_[size]"
|
|
if(ishuman(owner))
|
|
var/mob/living/carbon/human/H = owner
|
|
icon_state = sanitize_text(string)
|
|
H.update_genitals()
|
|
|
|
/obj/item/organ/genital/testicles/get_features(mob/living/carbon/human/H)
|
|
var/datum/dna/D = H.dna
|
|
if(D.species.use_skintones && D.features["genitals_use_skintone"])
|
|
color = "#[skintone2hex(H.skin_tone)]"
|
|
else
|
|
color = "#[D.features["balls_color"]]"
|
|
sack_size = D.features["balls_sack_size"]
|
|
shape = D.features["balls_shape"]
|
|
if(D.features["balls_shape"] == "Hidden")
|
|
ENABLE_BITFIELD(genital_flags, GENITAL_INTERNAL)
|
|
fluid_id = D.features["balls_fluid"]
|
|
fluid_rate = D.features["balls_cum_rate"]
|
|
fluid_mult = D.features["balls_cum_mult"]
|
|
fluid_efficiency = D.features["balls_efficiency"]
|