mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Refactor /mob/unEquip. (#27720)
* Refactor /mob/unEquip. * fix things found in testing * more fixes from testing * fix removal of hooded suits * fix flayers inability to deploy swarmprod * fix changeling blade activation * unnecessary parens * pass default unequip args to proc overrides * fix belts being able to forceMove into full hands
This commit is contained in:
@@ -52,8 +52,7 @@
|
||||
if(!is_pen(P))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You slide [P] into [src].</span>")
|
||||
user.unEquip(P)
|
||||
P.forceMove(src)
|
||||
user.transfer_item_to(P, src)
|
||||
containedpen = P
|
||||
else
|
||||
if(!containedpen)
|
||||
@@ -96,7 +95,7 @@
|
||||
|
||||
/obj/item/clipboard/attackby__legacy__attackchain(obj/item/W, mob/user)
|
||||
if(isPaperwork(W)) //If it's a photo, paper bundle, or piece of paper, place it on the clipboard.
|
||||
user.unEquip(W)
|
||||
user.unequip(W)
|
||||
W.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You clip [W] onto [src].</span>")
|
||||
playsound(loc, "pageturn", 50, 1)
|
||||
|
||||
@@ -44,8 +44,7 @@
|
||||
to_chat(user, "<span class='notice'>There's already a signaller attached!</span>")
|
||||
return
|
||||
var/obj/item/assembly/signaler/signal = I
|
||||
user.unEquip(signal)
|
||||
signal.forceMove(src)
|
||||
user.transfer_item_to(signal, src)
|
||||
attached_signaler = signal
|
||||
if(signal.receiving)
|
||||
RegisterSignal(attached_signaler, COMSIG_ASSEMBLY_PULSED, PROC_REF(on_signal))
|
||||
@@ -83,7 +82,7 @@
|
||||
|
||||
if(over_object == M)
|
||||
if(!remove_item_from_storage(M))
|
||||
M.unEquip(src)
|
||||
M.unequip(src)
|
||||
M.put_in_hands(src)
|
||||
anchored = FALSE
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
/obj/structure/filingcabinet/proc/insert(obj/item/O, mob/user)
|
||||
if(!is_type_in_list(O, accepted_items))
|
||||
return
|
||||
if(!user.unEquip(O))
|
||||
if(!user.unequip(O))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You put [O.name] in [src].</span>")
|
||||
O.loc = src
|
||||
|
||||
@@ -415,38 +415,38 @@
|
||||
B.name = name
|
||||
else if(P.name != "paper" && P.name != "photo")
|
||||
B.name = P.name
|
||||
user.unEquip(P)
|
||||
user.drop_item_to_ground(P)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/h_user = user
|
||||
if(h_user.r_hand == src)
|
||||
h_user.unEquip(src)
|
||||
h_user.unequip(src)
|
||||
h_user.put_in_r_hand(B)
|
||||
else if(h_user.l_hand == src)
|
||||
h_user.unEquip(src)
|
||||
h_user.unequip(src)
|
||||
h_user.put_in_l_hand(B)
|
||||
else if(h_user.l_store == src)
|
||||
h_user.unEquip(src)
|
||||
h_user.unequip(src)
|
||||
B.loc = h_user
|
||||
B.layer = ABOVE_HUD_LAYER
|
||||
B.plane = ABOVE_HUD_PLANE
|
||||
h_user.l_store = B
|
||||
h_user.update_inv_pockets()
|
||||
else if(h_user.r_store == src)
|
||||
h_user.unEquip(src)
|
||||
h_user.unequip(src)
|
||||
B.loc = h_user
|
||||
B.layer = ABOVE_HUD_LAYER
|
||||
B.plane = ABOVE_HUD_PLANE
|
||||
h_user.r_store = B
|
||||
h_user.update_inv_pockets()
|
||||
else if(h_user.head == src)
|
||||
h_user.unEquip(src)
|
||||
h_user.unequip(src)
|
||||
h_user.put_in_hands(B)
|
||||
else if(!isturf(src.loc))
|
||||
src.loc = get_turf(h_user)
|
||||
if(h_user.client) h_user.client.screen -= src
|
||||
h_user.put_in_hands(B)
|
||||
to_chat(user, "<span class='notice'>You clip [P] to [(src.name == "paper") ? "the paper" : src.name].</span>")
|
||||
src.loc = B
|
||||
forceMove(B)
|
||||
P.loc = B
|
||||
B.amount++
|
||||
B.update_icon()
|
||||
@@ -481,7 +481,7 @@
|
||||
if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10))
|
||||
user.visible_message("<span class='warning'>[user] accidentally ignites [user.p_themselves()]!</span>", \
|
||||
"<span class='userdanger'>You miss the paper and accidentally light yourself on fire!</span>")
|
||||
user.unEquip(P)
|
||||
user.drop_item_to_ground(P)
|
||||
user.adjust_fire_stacks(1)
|
||||
user.IgniteMob()
|
||||
return
|
||||
@@ -489,7 +489,7 @@
|
||||
if(!Adjacent(user)) //to prevent issues as a result of telepathically lighting a paper
|
||||
return
|
||||
|
||||
user.unEquip(src)
|
||||
user.drop_item_to_ground(src)
|
||||
user.visible_message("<span class='danger'>[user] lights [src] ablaze with [P]!</span>", "<span class='danger'>You light [src] on fire!</span>")
|
||||
fire_act()
|
||||
|
||||
|
||||
@@ -40,8 +40,7 @@
|
||||
if(screen == 2)
|
||||
screen = 1
|
||||
to_chat(user, "<span class='notice'>You add [(P.name == "paper") ? "the paper" : P.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>")
|
||||
user.unEquip(P)
|
||||
P.loc = src
|
||||
user.transfer_item_to(P, src)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.update_inv_l_hand()
|
||||
@@ -53,14 +52,12 @@
|
||||
if(screen == 2)
|
||||
screen = 1
|
||||
to_chat(user, "<span class='notice'>You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>")
|
||||
user.unEquip(W)
|
||||
W.loc = src
|
||||
user.transfer_item_to(W, src)
|
||||
|
||||
else if(W.get_heat())
|
||||
burnpaper(W, user)
|
||||
|
||||
else if(istype(W, /obj/item/paper_bundle))
|
||||
user.unEquip(W)
|
||||
for(var/obj/O in W)
|
||||
O.loc = src
|
||||
O.add_fingerprint(usr)
|
||||
@@ -91,8 +88,6 @@
|
||||
user.visible_message("<span class='[class]'>[user] burns right through [src], turning it to ash. It flutters through the air before settling on the floor in a heap.</span>", \
|
||||
"<span class='[class]'>You burn right through [src], turning it to ash. It flutters through the air before settling on the floor in a heap.</span>")
|
||||
|
||||
user.unEquip(src)
|
||||
|
||||
new /obj/effect/decal/cleanable/ash(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
@@ -168,7 +163,7 @@
|
||||
to_chat(usr, "<span class='notice'>You remove [W] from the bundle.</span>")
|
||||
if(amount == 1)
|
||||
var/obj/item/paper/P = get_page(1)
|
||||
usr.unEquip(src)
|
||||
usr.unequip(src)
|
||||
usr.put_in_hands(P)
|
||||
usr.unset_machine() // Ensure the bundle GCs
|
||||
for(var/obj/O in src) // just in case we somehow lose something (it's happened, especially with photos)
|
||||
@@ -219,7 +214,6 @@
|
||||
O.plane = initial(O.plane)
|
||||
O.add_fingerprint(user)
|
||||
|
||||
user.unEquip(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/paper_bundle/update_desc()
|
||||
|
||||
@@ -37,18 +37,18 @@
|
||||
|
||||
if(over_object == M)
|
||||
if(!remove_item_from_storage(M))
|
||||
M.unEquip(src)
|
||||
M.drop_item_to_ground(src)
|
||||
M.put_in_hands(src)
|
||||
|
||||
else if(is_screen_atom(over_object))
|
||||
switch(over_object.name)
|
||||
if("r_hand")
|
||||
if(!remove_item_from_storage(M))
|
||||
M.unEquip(src)
|
||||
M.drop_item_to_ground(src)
|
||||
M.put_in_r_hand(src)
|
||||
if("l_hand")
|
||||
if(!remove_item_from_storage(M))
|
||||
M.unEquip(src)
|
||||
M.drop_item_to_ground(src)
|
||||
M.put_in_l_hand(src)
|
||||
|
||||
add_fingerprint(M)
|
||||
|
||||
@@ -74,14 +74,14 @@
|
||||
if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10))
|
||||
user.visible_message("<span class='warning'>[user] accidentally ignites [user.p_themselves()]!</span>", \
|
||||
"<span class='userdanger'>You miss [src] and accidentally light yourself on fire!</span>")
|
||||
user.unEquip(P)
|
||||
user.drop_item_to_ground(P)
|
||||
user.adjust_fire_stacks(1)
|
||||
user.IgniteMob()
|
||||
return
|
||||
|
||||
if(!in_range(user, src)) //to prevent issues as a result of telepathically lighting a paper
|
||||
return
|
||||
user.unEquip(src)
|
||||
user.drop_item_to_ground(src)
|
||||
user.visible_message("<span class='danger'>[user] lights [src] on fire with [P]!</span>", "<span class='danger'>You lights [src] on fire!</span>")
|
||||
fire_act()
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
if((!in_range(src, user)) || user.stat || user.restrained())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You fold [src] into the shape of a plane!</span>")
|
||||
user.unEquip(src)
|
||||
user.unequip(src) // forceMove happens in paperplane/Initialize
|
||||
I = new /obj/item/paperplane(user, src)
|
||||
user.put_in_hands(I)
|
||||
else
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
"<span class='[class]'>You burn right through [src], turning it to ash. It flutters through the air before settling on the floor in a heap.</span>")
|
||||
|
||||
if(user.is_in_inactive_hand(src))
|
||||
user.unEquip(src)
|
||||
user.unequip(src)
|
||||
|
||||
new /obj/effect/decal/cleanable/ash(get_turf(src))
|
||||
qdel(src)
|
||||
@@ -149,10 +149,10 @@
|
||||
if((!M.restrained() && !M.stat && M.back == src))
|
||||
switch(over_object.name)
|
||||
if("r_hand")
|
||||
M.unEquip(src)
|
||||
M.unequip(src)
|
||||
M.put_in_r_hand(src)
|
||||
if("l_hand")
|
||||
M.unEquip(src)
|
||||
M.unequip(src)
|
||||
M.put_in_l_hand(src)
|
||||
add_fingerprint(usr)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user