mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-08-23 04:36:16 +01:00
Merge branch 'master' into typoFixes
This commit is contained in:
@@ -170,12 +170,13 @@
|
||||
|
||||
L.transform = newtransform
|
||||
|
||||
animate(L, transform = matrix(), time = T, loop = -1, flags = ANIMATION_END_NOW)
|
||||
animate(L, transform = L.transform, time = 0, loop = -1, flags = ANIMATION_END_NOW)
|
||||
animate(transform = matrix(), time = T)
|
||||
|
||||
/datum/hud/proc/update_parallax()
|
||||
var/client/C = mymob.client
|
||||
var/turf/posobj = get_turf(C.eye)
|
||||
if(!posobj)
|
||||
if(!posobj)
|
||||
return
|
||||
var/area/areaobj = posobj.loc
|
||||
|
||||
@@ -341,7 +342,7 @@
|
||||
//Layenia parallaxes
|
||||
|
||||
/obj/screen/parallax_layer/layenia
|
||||
icon_state = null
|
||||
icon_state = null
|
||||
blend_mode = BLEND_OVERLAY
|
||||
absolute = TRUE
|
||||
speed = 0.6
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
gender = PLURAL
|
||||
desc = "Clouds as far as the eye can see... Watch your step."
|
||||
icon = 'icons/turf/space.dmi'
|
||||
icon_state = "clouds"
|
||||
icon_state = "cloud"
|
||||
plane = PLANE_SPACE
|
||||
tiled_dirt = FALSE
|
||||
baseturfs = /turf/open/chasm/cloud
|
||||
@@ -132,10 +132,8 @@
|
||||
|
||||
/turf/open/chasm/cloud/Initialize()
|
||||
. = ..()
|
||||
icon_state = SPACE_ICON_STATE
|
||||
|
||||
/turf/open/chasm/cloud/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
|
||||
underlay_appearance.icon = 'icons/turf/space.dmi'
|
||||
underlay_appearance.icon_state = SPACE_ICON_STATE
|
||||
underlay_appearance.plane = PLANE_SPACE
|
||||
return TRUE
|
||||
|
||||
@@ -130,11 +130,11 @@
|
||||
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())
|
||||
if(!dicc.limited)
|
||||
if(!dicc.equipment)
|
||||
. += "[dicc.desc]"
|
||||
else
|
||||
. += "[dicc.desc] <span class='love'>It's equipped with a [dicc.equipment.name].</span>"
|
||||
|
||||
if(!dicc.equipment)
|
||||
. += "[dicc.desc]"
|
||||
else
|
||||
. += "[dicc.desc] <span class='love'>It's equipped with a [dicc.equipment.name].</span>"
|
||||
|
||||
|
||||
if(user.client?.prefs.cit_toggles & VORE_EXAMINE)
|
||||
|
||||
@@ -182,10 +182,24 @@
|
||||
if(legcuffed)
|
||||
dat += "<tr><td><A href='?src=[REF(src)];item=[SLOT_LEGCUFFED]'>Legcuffed</A></td></tr>"
|
||||
|
||||
|
||||
var/mob/living/carbon/U = src //for carbon genitals
|
||||
if(U)
|
||||
for(var/obj/item/organ/genital/G in U.internal_organs)
|
||||
if(G.is_exposed())
|
||||
if(!G.equipment)
|
||||
dat += "<tr><td><B>[G.name]:</B></td><td><A href='?src=[REF(src)];item=[G.equipment]'>["<font color=grey>Empty</font>"]</A></td></tr>"
|
||||
else
|
||||
dat += "<tr><td><B>[G.name]:</B></td><td><A href='?src=[REF(src)];gitem=\ref[G.equipment]'>[G.equipment.name]</A></td></tr>"
|
||||
else
|
||||
dat += "<tr><td><font color=grey><B>[G.name]:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
|
||||
|
||||
dat += {"</table>
|
||||
<A href='?src=[REF(user)];mach_close=mob[REF(src)]'>Close</A>
|
||||
"}
|
||||
|
||||
|
||||
|
||||
var/datum/browser/popup = new(user, "mob[REF(src)]", "[src]", 440, 510)
|
||||
popup.set_content(dat.Join())
|
||||
popup.open()
|
||||
@@ -237,6 +251,23 @@
|
||||
to_chat(usr, "<span class='warning'>You can't reach that! Something is covering it.</span>")
|
||||
return
|
||||
|
||||
if(href_list["gitem"])//remove gential item
|
||||
var/obj/item/I = locate(href_list["gitem"])
|
||||
var/obj/item/organ/genital/G = I.loc
|
||||
if(G.is_exposed())
|
||||
to_chat(usr, "<span class='notice'>You try to remove [src]'s [I].</span>")
|
||||
to_chat(src, "<span class='warning'>[usr] is trying to remove your [I].</span>")
|
||||
if(!do_mob(usr, src, 3 SECONDS))
|
||||
return
|
||||
SEND_SIGNAL(I, "detach_genital_equipment",usr)
|
||||
usr.put_in_hands(I)
|
||||
G.equipment = null
|
||||
return
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>You can't reach that! Something is covering it.</span>")
|
||||
return
|
||||
|
||||
|
||||
if(href_list["pockets"])
|
||||
var/pocket_side = href_list["pockets"]
|
||||
var/pocket_id = (pocket_side == "right" ? SLOT_R_STORE : SLOT_L_STORE)
|
||||
|
||||
@@ -225,40 +225,40 @@
|
||||
if(href_list["removeequipmentpenis"])
|
||||
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)
|
||||
usr.put_in_hands(I)
|
||||
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)
|
||||
usr.put_in_hands(I)
|
||||
O.equipment = null
|
||||
|
||||
|
||||
if(href_list["removeequipmentvagina"])
|
||||
var/obj/item/organ/genital/vagina/O = usr.getorganslot("vagina")
|
||||
var/obj/item/I = O.equipment
|
||||
SEND_SIGNAL(I, "detach_genital_equipment",usr)
|
||||
usr.put_in_hands(I)
|
||||
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)
|
||||
usr.put_in_hands(I)
|
||||
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)
|
||||
usr.put_in_hands(I)
|
||||
O.equipment = null
|
||||
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
"<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
|
||||
SEND_SIGNAL(src, "attach_genital_equipment",T)
|
||||
P.equipment = src
|
||||
to_chat(user, "<span class='love'>You attach [src] to [T]'s [P.name].</span>")
|
||||
|
||||
@@ -45,7 +45,8 @@
|
||||
|
||||
|
||||
/obj/item/equipment/penis/ring/fancy
|
||||
name = "fancy cock ring"
|
||||
|
||||
name = "fancy ribboned cock ring"
|
||||
desc = "A cock ring with a white bowtie, how cute."
|
||||
icon_state = "cockring_fancy"
|
||||
|
||||
@@ -54,7 +55,7 @@
|
||||
|
||||
/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 shrink a penis to a more reasonable size."
|
||||
desc = "An expensive technological cock ring cast in SynTech purples with shimmering Kinaris golds. It will limit the wearers penis size to a third."
|
||||
icon_state = "cockring_limit"
|
||||
price = 12
|
||||
|
||||
@@ -63,16 +64,18 @@
|
||||
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)
|
||||
/obj/item/equipment/penis/ring/limiter/proc/attach(mob/living/carbon/human/U)
|
||||
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()
|
||||
var/obj/item/organ/genital/penis/P = loc
|
||||
if(P)
|
||||
P.limited = TRUE
|
||||
P.update_appearance()
|
||||
U.update_genitals()
|
||||
|
||||
/obj/item/equipment/penis/ring/limiter/proc/detach(mob/living/user)
|
||||
/obj/item/equipment/penis/ring/limiter/proc/detach(mob/living/carbon/human/U)
|
||||
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()
|
||||
var/obj/item/organ/genital/penis/P = loc
|
||||
if(P)
|
||||
P.limited = FALSE
|
||||
P.update_appearance()
|
||||
U.update_genitals()
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 125 KiB |
@@ -86,7 +86,10 @@
|
||||
if(owner)
|
||||
var/length_new = length*owner.size_multiplier
|
||||
var/girth_new = girth*owner.size_multiplier
|
||||
desc = "You see [aroused_state ? "an erect" : "a flaccid"] [lowershape] penis. You estimate it's about [round(length_new, 0.25)] inch[round(length_new, 0.25) != 1 ? "es" : ""] long and [round(girth_new, 0.25)] inch[round(girth_new, 0.25) != 1 ? "es" : ""] in girth."
|
||||
if(!limited)
|
||||
desc = "You see [aroused_state ? "an erect" : "a flaccid"] [lowershape] penis. You estimate it's about [round(length_new, 0.25)] inch[round(length_new, 0.25) != 1 ? "es" : ""] long and [round(girth_new, 0.25)] inch[round(girth_new, 0.25) != 1 ? "es" : ""] in girth."
|
||||
else
|
||||
desc = "You see [aroused_state ? "an erect" : "a flaccid"] [lowershape] penis. You estimate it's about [round(length_new/3, 0.25)] inch[round(length_new/3, 0.25) != 1 ? "es" : ""] long and [round(girth_new/3, 0.25)] inch[round(girth_new/3, 0.25) != 1 ? "es" : ""] in girth."
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user