mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-07-17 02:32:27 +01:00
Cock rings + Limiter
Includes base code to allow penis equipment
This commit is contained in:
@@ -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 @@
|
||||
. += "<span class='love'>[t_He] [t_is] currently in heat.</span>"
|
||||
|
||||
//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] <span class='love'>Equipt with a [dicc.equipment.name]</span>"
|
||||
|
||||
|
||||
if(user.client?.prefs.cit_toggles & VORE_EXAMINE)
|
||||
var/cursed_stuff = attempt_vr(src,"examine_bellies",args) //vore Code
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
if(Belly.inflatable)
|
||||
dat += "<a href='byond://?src=[REF(src)];shrink_belly=1'>Deflate belly</A>"
|
||||
dat += "(Shrink your belly down a size)<BR>"
|
||||
|
||||
|
||||
if(user.pulling && !isnoncarbon(user.pulling)) // do not fuck animals
|
||||
dat += "<a href='byond://?src=[REF(src)];climaxover=1'>Climax over [user.pulling]</A>" //you can cum on objects if you really want...
|
||||
dat += "(Orgasm over a person or object.)<BR>"
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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, "<span class='notice'>There is already a [P.equipment.name] attached.</span>")
|
||||
else
|
||||
if(S!=T)//if your not targeting yourself
|
||||
C.visible_message("<span class='warning'>[user] is trying to attach [src] to [T]!</span>",\
|
||||
"<span class='warning'>[user] is trying to put [src] on you!</span>")
|
||||
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, "<span class='love'>You attach [src] to [T]'s [P.name].</span>")
|
||||
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You don't see anywhere to attach this.</span>")
|
||||
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()
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 557 B |
@@ -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,
|
||||
|
||||
@@ -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)]"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user