diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 1be10296d..2175906a7 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -25,7 +25,7 @@ var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - + if(skipface || get_visible_name() == "Unknown") . += "You can't make out what species they are." else @@ -127,10 +127,15 @@ . += "[t_He] [t_is] currently in heat." //CIT CHANGES START HERE - adds genital details to examine text - if(LAZYLEN(internal_organs) && user.client?.prefs.cit_toggles & GENITAL_EXAMINE) + if(LAZYLEN(internal_organs) && user.client?.prefs.cit_toggles) for(var/obj/item/organ/genital/dicc in internal_organs) if(istype(dicc) && dicc.is_exposed()) - . += "[dicc.desc]" + if(!dicc.limited) + if(!dicc.equipment) + . += "[dicc.desc]" + else + . += "[dicc.desc] Equipt with a [dicc.equipment.name]" + if(user.client?.prefs.cit_toggles & VORE_EXAMINE) var/cursed_stuff = attempt_vr(src,"examine_bellies",args) //vore Code diff --git a/hyperstation/code/modules/arousal/arousalhud.dm b/hyperstation/code/modules/arousal/arousalhud.dm index 318edefd0..0c68c3cfe 100644 --- a/hyperstation/code/modules/arousal/arousalhud.dm +++ b/hyperstation/code/modules/arousal/arousalhud.dm @@ -53,7 +53,7 @@ if(Belly.inflatable) dat += "Deflate belly" dat += "(Shrink your belly down a size)
" - + if(user.pulling && !isnoncarbon(user.pulling)) // do not fuck animals dat += "Climax over [user.pulling]" //you can cum on objects if you really want... dat += "(Orgasm over a person or object.)
" @@ -226,12 +226,14 @@ var/obj/item/organ/genital/penis/O = usr.getorganslot("penis") var/obj/item/I = O.equipment usr.put_in_hands(I) + SEND_SIGNAL(I, "detach_genital_equipment",usr) O.equipment = null if(href_list["removeequipmentbreasts"]) var/obj/item/organ/genital/breasts/O = usr.getorganslot("breasts") var/obj/item/I = O.equipment usr.put_in_hands(I) + SEND_SIGNAL(I, "detach_genital_equipment",usr) O.equipment = null @@ -242,18 +244,21 @@ if(istype(I, /obj/item/portalpanties)) var/obj/item/portalpanties/P = I P.remove() + SEND_SIGNAL(I, "detach_genital_equipment",usr) O.equipment = null if(href_list["removeequipmentbelly"]) var/obj/item/organ/genital/belly/O = usr.getorganslot("belly") var/obj/item/I = O.equipment usr.put_in_hands(I) + SEND_SIGNAL(I, "detach_genital_equipment",usr) O.equipment = null if(href_list["removeequipmentanus"]) var/obj/item/organ/genital/anus/O = usr.getorganslot("anus") var/obj/item/I = O.equipment usr.put_in_hands(I) + SEND_SIGNAL(I, "detach_genital_equipment",usr) O.equipment = null diff --git a/hyperstation/code/obj/cockrings.dm b/hyperstation/code/obj/cockrings.dm new file mode 100644 index 000000000..245da9a8b --- /dev/null +++ b/hyperstation/code/obj/cockrings.dm @@ -0,0 +1,78 @@ +//Made for HypeStation 13 +//by QuoteFox + +/obj/item/equipment/penis/ + name = "penis equipment" + desc = "you shouldn't see this, contact coders immediately." + icon = 'hyperstation/icons/obj/clothing/genitals.dmi' + price = 3 + +/obj/item/equipment/penis/attack(mob/living/carbon/C, mob/living/user) + var/mob/living/carbon/human/S = user + var/mob/living/carbon/human/T = C + var/obj/item/organ/genital/penis/P = C.getorganslot("penis") + + if(P&&P.is_exposed()) + if(P.equipment) + to_chat(user, "There is already a [P.equipment.name] attached.") + else + if(S!=T)//if your not targeting yourself + C.visible_message("[user] is trying to attach [src] to [T]!",\ + "[user] is trying to put [src] on you!") + if(!do_mob(user, C, 4 SECONDS))//warn them and have a delay of 5 seconds to apply. + return + SEND_SIGNAL(src, "attach_genital_equipment",S) + if(!user.transferItemToLoc(src, P)) //check if you can put it on + return + P.equipment = src + to_chat(user, "You attach [src] to [T]'s [P.name].") + + + else + to_chat(user, "You don't see anywhere to attach this.") + return + +//Cockrings + +/obj/item/equipment/penis/ring + name = "cock ring" + desc = "why dont you marry it already?" + icon_state = "cockring" + +/obj/item/equipment/penis/ring/metal + name = "metal cock ring" + icon_state = "cockring_metal" + + +/obj/item/equipment/penis/ring/fancy + name = "fancy cock ring" + desc = "a cock ring with a white bowtie, how cute." + icon_state = "cockring_fancy" + + +//Cock ring limiter for fancy hide and grow + +/obj/item/equipment/penis/ring/limiter + name = "normalizer cock ring" + desc = "An expensive technological cock ring cast in SynTech purples with shimmering Kinaris golds. It will peoples penis size to 5 inches." + icon_state = "cockring_limit" + price = 12 + +/obj/item/equipment/penis/ring/limiter/Initialize() + .=..() + RegisterSignal(src, "attach_genital_equipment", .proc/attach) + RegisterSignal(src, "detach_genital_equipment", .proc/detach) + +/obj/item/equipment/penis/ring/limiter/proc/attach(mob/living/user) + playsound(usr, 'sound/effects/magic.ogg', 100, 1) + var/mob/living/carbon/human/H = usr + var/obj/item/organ/genital/penis/P = H.getorganslot("penis") + P.limited = TRUE + H.update_genitals() + +/obj/item/equipment/penis/ring/limiter/proc/detach(mob/living/user) + playsound(usr, 'sound/effects/magic.ogg', 100, 1) + var/mob/living/carbon/human/H = usr + var/obj/item/organ/genital/penis/P = H.getorganslot("penis") + P.limited = FALSE + H.update_genitals() diff --git a/hyperstation/icons/obj/clothing/genitals.dmi b/hyperstation/icons/obj/clothing/genitals.dmi new file mode 100644 index 000000000..e957aeab4 Binary files /dev/null and b/hyperstation/icons/obj/clothing/genitals.dmi differ diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm index 9f1157c99..3b95f2819 100644 --- a/modular_citadel/code/game/machinery/vending.dm +++ b/modular_citadel/code/game/machinery/vending.dm @@ -56,6 +56,10 @@ /obj/item/clothing/shoes/highheels = 3, /obj/item/clothing/neck/stole = 2, /obj/item/clothing/neck/stole/black = 2, + /obj/item/equipment/penis/ring = 5, + /obj/item/equipment/penis/ring/metal = 3, + /obj/item/equipment/penis/ring/fancy = 2, + /obj/item/equipment/penis/ring/limiter = 3, /obj/item/clothing/under/polychromic/stripper = 3, /obj/item/clothing/under/polychromic/bikini = 3, /obj/item/clothing/under/polychromic/onepeice = 3, diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 9edea910a..06f20ad51 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -26,6 +26,7 @@ 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. + var/limited = FALSE /obj/item/organ/genital/Initialize() . = ..() @@ -463,11 +464,20 @@ //creates another icon with mutable appearance, allows different layering depending on direction var/mutable_appearance/genital_overlay_directional = mutable_appearance(S.icon, layer = -layer) + if(G.limited) //limiter + if(G.size > 3) + size = 3 + if(G.size == 3) + size = 2 + if(G.size == 2) + size = 1 + //genitals bigger than 11 inches / g-cup will appear over clothing, if accepted //otherwise, appear under clothing if(G.slot == "penis" || G.slot == "testicles") if(G.size < 3) //is actually "less than 11 inches" genital_overlay.layer = -GENITALS_UNDER_LAYER + if(G.slot == "breasts") var/obj/item/organ/genital/breasts/B = G if(B.cached_size < 8) //anything smaller than a g-cup @@ -500,7 +510,7 @@ genital_overlay_directional.layer = -NECK_LAYER colourcode = "butt_color" - if(use_skintones && H.dna.features["genitals_use_skintone"]) + if(use_skintones && H.dna.features["genitals_use_skintone"]) //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)]" diff --git a/tgstation.dme b/tgstation.dme index bd40b91ac..be5e45a22 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3216,6 +3216,7 @@ #include "hyperstation\code\modules\uplink\uplink_items.dm" #include "hyperstation\code\obj\ashtray.dm" #include "hyperstation\code\obj\bluespace sewing kit.dm" +#include "hyperstation\code\obj\cockrings.dm" #include "hyperstation\code\obj\condom.dm" #include "hyperstation\code\obj\decal.dm" #include "hyperstation\code\obj\economy.dm"