Merge branch 'master' into typoFixes

This commit is contained in:
TotallyNotADog
2022-07-13 23:49:18 -05:00
committed by GitHub
8 changed files with 66 additions and 30 deletions
+4 -3
View File
@@ -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
+1 -3
View File
@@ -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
+16 -13
View File
@@ -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.