mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-13 17:08:53 +01:00
Merge branch 'master' into departmentalclothes
This commit is contained in:
@@ -78,6 +78,9 @@
|
||||
amt_nude++
|
||||
if(getorganslot("vagina"))
|
||||
amt_nude++
|
||||
if(is_butt_exposed())
|
||||
if(getorganslot("anus"))
|
||||
amt_nude++
|
||||
if(amt_nude)
|
||||
var/watchers = 0
|
||||
for(var/mob/_M in view(world.view, src))
|
||||
@@ -321,7 +324,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 +525,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,36 @@
|
||||
/obj/item/organ/genital/anus
|
||||
name = "anus"
|
||||
desc = "You see a butt."
|
||||
icon_state = "butt"
|
||||
icon = 'modular_citadel/icons/obj/genitals/breasts.dmi'
|
||||
zone = "anus"
|
||||
slot = "anus"
|
||||
w_class = 3
|
||||
size = 0
|
||||
var/statuscheck = FALSE
|
||||
shape = "Pair"
|
||||
masturbation_verb = "massage"
|
||||
can_climax = FALSE
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/item/organ/genital/anus/on_life()
|
||||
if(QDELETED(src))
|
||||
return
|
||||
if(!owner)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/organ/genital/anus/update_appearance()
|
||||
var/string
|
||||
if(owner)
|
||||
var/mob/living/carbon/human/H = owner
|
||||
color = "#[skintone2hex(H.skin_tone)]"
|
||||
|
||||
if(ishuman(owner))
|
||||
icon_state = sanitize_text(string)
|
||||
H.update_genitals()
|
||||
|
||||
icon_state = sanitize_text(string)
|
||||
|
||||
@@ -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_butt_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,20 @@
|
||||
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
|
||||
if(dna.features["butt_size"])
|
||||
A.size = dna.features["butt_size"]
|
||||
A.Insert(src)
|
||||
if(A)
|
||||
A.color = "#[skintone2hex(skin_tone)]"
|
||||
A.update()
|
||||
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/give_breasts()
|
||||
@@ -426,6 +445,8 @@
|
||||
S = GLOB.breasts_shapes_list[G.shape]
|
||||
if(/obj/item/organ/genital/belly)
|
||||
S = GLOB.breasts_shapes_list[G.shape]
|
||||
if(/obj/item/organ/genital/anus)
|
||||
S = GLOB.breasts_shapes_list[G.shape]
|
||||
|
||||
if(!S || S.icon_state == "none")
|
||||
continue
|
||||
@@ -444,11 +465,24 @@
|
||||
//Get the icon
|
||||
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]"
|
||||
colourcode = S.color_src
|
||||
|
||||
if(G.slot == "belly") //we have a different size system
|
||||
genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly.dmi'
|
||||
genital_overlay.icon_state = "belly_[size]"
|
||||
colourcode = "belly_color"
|
||||
|
||||
if(G.slot == "anus") //we have a different size system
|
||||
genital_overlay.icon = 'hyperstation/icons/obj/genitals/butt.dmi'
|
||||
genital_overlay.icon_state = "butt_[size]"
|
||||
genital_overlay.layer = -FRONT_MUTATIONS_LAYER
|
||||
colourcode = "butt_color"
|
||||
if(use_skintones) //butts are forced a colour, either skin tones, or main colour. how ever, mutants use a darker version, because of their body tone.
|
||||
genital_overlay.color = "#[skintone2hex(H.skin_tone)]"
|
||||
genital_overlay.icon_state = "butt_[size]"
|
||||
else
|
||||
genital_overlay.color = "#[H.dna.features["mcolor"]]"
|
||||
genital_overlay.icon_state = "butt_[size]_m"
|
||||
|
||||
if(S.center)
|
||||
genital_overlay = center_image(genital_overlay, S.dimension_x, S.dimension_y)
|
||||
|
||||
@@ -471,6 +505,7 @@
|
||||
if("belly_color")
|
||||
genital_overlay.color = "#[H.dna.features["belly_color"]]"
|
||||
|
||||
|
||||
standing += genital_overlay
|
||||
|
||||
if(LAZYLEN(standing))
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
icon_state = "gaping"
|
||||
name = "Gaping"
|
||||
|
||||
//BREASTS BE HERE
|
||||
//BELLY BE HERE
|
||||
/datum/sprite_accessory/belly
|
||||
icon = 'hyperstation/icons/obj/genitals/belly.dmi'
|
||||
icon_state = "belly"
|
||||
@@ -145,6 +145,15 @@
|
||||
color_src = "belly_color"
|
||||
locked = 0
|
||||
|
||||
//BUTT BE HERE
|
||||
/datum/sprite_accessory/anus
|
||||
icon = 'hyperstation/icons/obj/genitals/butt.dmi'
|
||||
icon_state = "butt"
|
||||
name = "butt"
|
||||
gender_specific = 0
|
||||
color_src = "butt_color"
|
||||
locked = 0
|
||||
|
||||
//BREASTS BE HERE
|
||||
/datum/sprite_accessory/breasts
|
||||
icon = 'modular_citadel/icons/obj/genitals/breasts_onmob.dmi'
|
||||
|
||||
@@ -63,6 +63,8 @@
|
||||
WRITE_FILE(S["feature_has_sheath"], features["sheath_color"])
|
||||
//belly feature
|
||||
WRITE_FILE(S["feature_belly_size"], features["belly_size"])
|
||||
//butt feature
|
||||
WRITE_FILE(S["feature_butt_size"], features["butt_size"])
|
||||
//balls features
|
||||
WRITE_FILE(S["feature_has_balls"], features["has_balls"])
|
||||
WRITE_FILE(S["feature_balls_color"], features["balls_color"])
|
||||
@@ -96,6 +98,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))
|
||||
|
||||
@@ -144,6 +144,7 @@
|
||||
primary_color = "#FFFFFF" //RGB in hexcode
|
||||
secondary_color = "#8CC6FF"
|
||||
body_parts_covered = GROIN
|
||||
do_not_cover_butt = TRUE
|
||||
|
||||
/obj/item/clothing/under/polychromic/bottomless
|
||||
name = "polychromic bottomless shirt"
|
||||
@@ -177,6 +178,7 @@
|
||||
primary_color = "#808080" //RGB in hexcode
|
||||
secondary_color = "#FFFFFF"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
do_not_cover_butt = TRUE
|
||||
|
||||
/obj/item/clothing/under/polychromic/stripper
|
||||
name = "polychromic stripper outfit"
|
||||
@@ -188,6 +190,7 @@
|
||||
primary_color = "#808080" //RGB in hexcode
|
||||
secondary_color = "#FFFFFF"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
do_not_cover_butt = TRUE
|
||||
|
||||
/obj/item/clothing/under/polychromic/bulge
|
||||
name = "polychromic voluminous thong"
|
||||
@@ -199,6 +202,7 @@
|
||||
primary_color = "#808080" //RGB in hexcode
|
||||
secondary_color = "#FF3535"
|
||||
body_parts_covered = GROIN
|
||||
do_not_cover_butt = TRUE
|
||||
|
||||
/obj/item/clothing/under/polychromic/shortsbra
|
||||
name = "Kromatic Shorts and Top"
|
||||
@@ -231,4 +235,5 @@
|
||||
primary_color = "#010052" //RGB in hexcode
|
||||
secondary_color = "#eb7a7a"
|
||||
tertiary_color = "#ffffff"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
body_parts_covered = CHEST|GROIN
|
||||
do_not_cover_butt = TRUE
|
||||
Reference in New Issue
Block a user