New gential; Anus

Ass cheeks next. and works with fleshlights and vibrators.
This commit is contained in:
quotefox
2021-07-20 04:20:41 +01:00
parent f914df3bc4
commit ccad1678ea
14 changed files with 115 additions and 53 deletions
@@ -321,7 +321,7 @@
src.visible_message("<span class='love'>[src] orgasms with [p_their()] [G.name]!</span>", \
"<span class='userlove'>You climax with your [G.name].</span>", \
"<span class='userlove'>You climax using your [G.name].</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
if(G.can_climax)
setArousalLoss(min_arousal)
@@ -522,10 +522,9 @@
var/list/worn_stuff = get_equipped_items()
for(var/obj/item/organ/genital/G in T.internal_organs)
if(G.can_climax) //filter out what you can't masturbate with
if(G.is_exposed(worn_stuff)) //Nude or through_clothing
if(!G.dontlist)
genitals_list += G
if(G.is_exposed(worn_stuff)) //Nude or through_clothing
if(!G.dontlist)
genitals_list += G
if(genitals_list.len)
ret_organ = input(src, "", "Genitals", null) as null|obj in genitals_list
return ret_organ
@@ -0,0 +1,25 @@
/obj/item/organ/genital/anus
name = "anus"
desc = ""
zone = "groin"
slot = "anus"
w_class = 3
size = 0
var/statuscheck = FALSE
masturbation_verb = "massage"
can_climax = FALSE //no poo poo 4 u
nochange = TRUE
/obj/item/organ/genital/anus/Initialize()
. = ..()
/obj/item/organ/genital/anus/on_life()
if(QDELETED(src))
return
if(!owner)
return
@@ -25,6 +25,7 @@
var/mode = "clothes"
var/obj/item/equipment //for fun stuff that goes on the gentials/maybe rings down the line
var/dontlist = FALSE
var/nochange = FALSE //stops people changing visablity.
/obj/item/organ/genital/Initialize()
. = ..()
@@ -67,6 +68,8 @@
return owner.is_chest_exposed()
if("groin")
return owner.is_groin_exposed()
if("anus")
return owner.is_groin_exposed()
return FALSE
@@ -150,6 +153,8 @@
if (NOGENITALS in dna.species.species_traits)
return
//Order should be very important. FIRST vagina, THEN testicles, THEN penis, as this affects the order they are rendered in.
if(dna.features["has_anus"])
give_anus()
if(dna.features["has_vag"])
give_vagina()
if(dna.features["has_womb"])
@@ -239,6 +244,18 @@
if(dna.features["inflatable_belly"]) //autohide bellies if they have the option ticked.
B.inflatable = TRUE
/mob/living/carbon/human/proc/give_anus()
if(!dna)
return FALSE
if(NOGENITALS in dna.species.species_traits)
return FALSE
if(!getorganslot("anus"))
var/obj/item/organ/genital/anus/A = new
A.Insert(src)
if(A)
A.color = "#[skintone2hex(skin_tone)]"
A.update()
/mob/living/carbon/human/proc/give_breasts()
@@ -96,6 +96,8 @@
WRITE_FILE(S["feature_belly_color"], features["belly_color"])
WRITE_FILE(S["feature_hide_belly"], features["hide_belly"])
WRITE_FILE(S["feature_inflatable_belly"], features["inflatable_belly"])
//anus
WRITE_FILE(S["feature_has_anus"], features["has_anus"])
//gear loadout
if(islist(chosen_gear))