Files
GS13NG/code/citadel/organs/breasts.dm
ktccd 5731ea7cad Climaxing/masturbation changes, exposing through clothing, breastmilk and masturbation (#2357)
* Genital refactoring and masturbation rework

Refactors a lot of genitalia code.
Reworks masturbation code.
Adds the ability to expose onself through clothing (Still bugfixing it).

* Fixes it so everything works

Toggling exposing your genitals now works properly. You can now expose
genitals through clothing.
Genitalia is rendered a bit more modularly and less hardcoded.
Genitalia no longer has linked_penis and such, but instead linked_organ.
More variables made general for genitals.
Breasts can now be used to masturbate and climax, also letting you fill
beakers and others with milk.
Both being pulled and pulling someone can let you count them as a
partner for climaxing verbs.
Mob_climax split up into more sub-procs.
Hexacrocin made less verbose, and not as spam-happy with forced orgasms.
Hexacamphor also made less verbose.

* Removes outcommented code

Forgot to remove the old masturbation code that I commented out.

* Changes one tab further on line 248

As pointed out to me ^^.

* Climaxing with partner tabulation

Also copied the command for the spillage version.

* capitalisation and timers

Removed timers from forced climaxes and made it a default value
parameter instead, so it's adjustable.
Changed capitalisation of genitals and the mentions of them now use the
.name to avoid including a "The" in the mention.

* I accidentally runtimestation

Accidentally committed changing the map to runtimestation when I
debugged my code.
Changed it back to basemap now.
2017-08-19 19:01:02 -07:00

67 lines
2.0 KiB
Plaintext

/obj/item/organ/genital/breasts
name = "breasts"
desc = "Female milk producing organs."
icon_state = "breasts"
icon = 'code/citadel/icons/breasts.dmi'
zone = "chest"
slot = "breasts"
w_class = 3
size = BREASTS_SIZE_DEF
fluid_id = "milk"
var/amount = 2
producing = TRUE
shape = "pair"
can_masturbate_with = TRUE
masturbation_verb = "massage"
can_climax = TRUE
fluid_transfer_factor =0.5
/obj/item/organ/genital/breasts/Initialize()
. = ..()
reagents.add_reagent(fluid_id, fluid_max_volume)
/obj/item/organ/genital/breasts/on_life()
if(QDELETED(src))
return
if(!reagents || !owner)
return
reagents.maximum_volume = fluid_max_volume
if(fluid_id && producing)
generate_milk()
/obj/item/organ/genital/breasts/proc/generate_milk()
if(owner.stat == DEAD)
return FALSE
reagents.isolate_reagent(fluid_id)
reagents.add_reagent(fluid_id, (fluid_mult * fluid_rate))
/obj/item/organ/genital/breasts/update_appearance()
var/string = "breasts_[lowertext(shape)]_[size]"
icon_state = sanitize_text(string)
var/lowershape = lowertext(shape)
switch(lowershape)
if("pair")
desc = "That's a pair of breasts."
else
desc = "That's breasts, they seem to be quite exotic."
if (size)
desc += " You estimate they're about [size]-cup size."
else
desc += " You wouldn't measure them in cup sizes."
if(producing)
desc += "\nThey're leaking [fluid_id]."
else
desc += "\nThey do not seem to be producing liquids."
if(owner)
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)]"
else
color = "#[owner.dna.features["breasts_color"]]"
/obj/item/organ/genital/breasts/is_exposed()
. = ..()
if(.)
return TRUE
return owner.is_chest_exposed()