Can now remove genital equipment from other people.

Can now remove genital equipment from other people. + bug fix with limiter
This commit is contained in:
quotefox
2022-07-13 23:41:02 +01:00
parent 026987b081
commit 166f7a29b1
3 changed files with 52 additions and 19 deletions
@@ -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 -14
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,7 @@
/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"
@@ -63,18 +63,20 @@
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
P.update_appearance()
H.update_genitals()
to_chat(usr, "<span class='notice'>[U]</span>")
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
P.update_appearance()
H.update_genitals()
to_chat(usr, "<span class='notice'>[U]</span>")
var/obj/item/organ/genital/penis/P = loc
if(P)
P.limited = FALSE
P.update_appearance()
U.update_genitals()