.loc = to forceMove() (#4937)

As requested, this PR is changed to only include all .loc = to forceMove() changes.
This commit is contained in:
BurgerLUA
2018-08-04 01:48:58 +03:00
committed by Erki
parent 187613428e
commit 8519dcc393
376 changed files with 968 additions and 1261 deletions
+2 -2
View File
@@ -21,11 +21,11 @@ var/list/obj/effect/bump_teleporter/BUMP_TELEPORTERS = list()
/obj/effect/bump_teleporter/CollidedWith(atom/user)
if(!ismob(user))
//user.loc = src.loc //Stop at teleporter location
//user.forceMove(src.loc) //Stop at teleporter location
return
if(!id_target)
//user.loc = src.loc //Stop at teleporter location, there is nowhere to teleport to.
//user.forceMove(src.loc) //Stop at teleporter location, there is nowhere to teleport to.
return
for(var/obj/effect/bump_teleporter/BT in BUMP_TELEPORTERS)
+1 -1
View File
@@ -167,7 +167,7 @@
/obj/structure/foamedmetal/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = I
G.affecting.loc = src.loc
G.affecting.forceMove(src.loc)
visible_message("<span class='warning'>[G.assailant] smashes [G.affecting] through the foamed metal wall.</span>")
qdel(I)
qdel(src)
@@ -155,8 +155,8 @@
/obj/structure/sign/poster/proc/roll_and_drop(turf/newloc)
var/obj/item/weapon/contraband/poster/P = new(src, serial_number)
P.loc = newloc
src.loc = P
P.forceMove(newloc)
src.forceMove(P)
qdel(src)
/datum/poster
+1 -1
View File
@@ -133,7 +133,7 @@
I.loc = null
I.loc = T
I.forceMove(T)
/obj/item/examine(mob/user, var/distance = -1)
var/size
+1 -2
View File
@@ -349,8 +349,7 @@
)
var/obj/item/weapon/tank/T = W
internal_tank = T
user.drop_from_inventory(T)
T.forceMove(src)
user.drop_from_inventory(T,src)
use_internal_tank = 1
START_PROCESSING(SSfast_process, src)
return
+1 -1
View File
@@ -136,7 +136,7 @@ move an amendment</a> to the drawing.</p>
/obj/item/blueprints/proc/move_turfs_to_area(var/list/turf/turfs, var/area/A)
A.contents.Add(turfs)
//oldarea.contents.Remove(usr.loc) // not needed
//T.loc = A //error: cannot change constant value
//T.forceMove(A) //error: cannot change constant value
/obj/item/blueprints/proc/edit_area()
+7 -10
View File
@@ -870,7 +870,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if("2") // Eject pAI device
var/turf/T = get_turf_or_move(src.loc)
if(T)
pai.loc = T
pai.forceMove(T)
pai = null
else
@@ -1197,14 +1197,14 @@ var/global/list/obj/item/device/pda/PDAs = list()
else
var/obj/item/I = user.get_active_hand()
if (istype(I, /obj/item/weapon/card/id) && user.unEquip(I))
I.loc = src
I.forceMove(src)
id = I
return 1
else
var/obj/item/weapon/card/I = user.get_active_hand()
if (istype(I, /obj/item/weapon/card/id) && I:registered_name && user.unEquip(I))
var/obj/old_id = id
I.loc = src
I.forceMove(src)
id = I
user.put_in_hands(old_id)
return 1
@@ -1215,8 +1215,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
..()
if(istype(C, /obj/item/weapon/cartridge) && !cartridge)
cartridge = C
user.drop_item()
cartridge.loc = src
user.drop_from_inventory(cartridge,src)
user << "<span class='notice'>You insert [cartridge] into [src].</span>"
SSnanoui.update_uis(src) // update all UIs attached to src
if(cartridge.radio)
@@ -1243,8 +1242,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
return //Return in case of failed check or when successful.
updateSelfDialog()//For the non-input related code.
else if(istype(C, /obj/item/device/paicard) && !src.pai)
user.drop_item()
C.loc = src
user.drop_from_inventory(C,src)
pai = C
pai.update_location()//This notifies the pAI that they've been slotted into a PDA
user << "<span class='notice'>You slot \the [C] into [src].</span>"
@@ -1253,8 +1251,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(pen)
user << "<span class='notice'>There is already a pen in \the [src].</span>"
else
user.drop_item()
C.forceMove(src)
user.drop_from_inventory(C,src)
pen = C
user << "<span class='notice'>You slide \the [C] into \the [src].</span>"
return
@@ -1402,7 +1399,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/Destroy()
PDAs -= src
if (src.id && prob(90)) //IDs are kept in 90% of the cases
src.id.loc = get_turf(src.loc)
src.id.forceMove(get_turf(src.loc))
QDEL_NULL(pen)
if (LAZYLEN(linked_consoles))
for(var/A in linked_consoles)
+1 -1
View File
@@ -108,7 +108,7 @@
admin_attack_log(user, ai, "Carded with [src.name]", "Was carded with [src.name]", "used the [src.name] to card")
src.name = "[initial(name)] - [ai.name]"
ai.loc = src
ai.forceMove(src)
ai.destroy_eyeobj(src)
ai.cancel_camera()
ai.control_disabled = 1
@@ -75,7 +75,7 @@
/obj/item/device/chameleon/proc/eject_all()
for(var/atom/movable/A in active_dummy)
A.loc = active_dummy.loc
A.forceMove(active_dummy.loc)
if(ismob(A))
var/mob/M = A
M.reset_view(null)
@@ -95,7 +95,7 @@
icon_state = new_iconstate
overlays = new_overlays
set_dir(O.dir)
M.loc = src
M.forceMove(src)
master = C
master.active_dummy = src
+1 -1
View File
@@ -17,7 +17,7 @@
/obj/item/device/flash/proc/clown_check(var/mob/user)
if(user && (CLUMSY in user.mutations) && prob(50))
user << "<span class='warning'>\The [src] slips out of your hand.</span>"
user.drop_item()
user.drop_from_inventory(src)
return 0
return 1
@@ -98,7 +98,7 @@
if(uses < max_uses)
AddUses(1)
to_chat(user, "You insert \the [L.name] into \the [src.name]. You have [uses] light\s remaining.")
user.drop_item()
user.drop_from_inventory(L,get_turf(src))
qdel(L)
return
else
@@ -183,8 +183,7 @@
if (istype(I, /obj/item/weapon/cell))
if (!powercell)
user << span("notice","You place the [I] inside \the [src].")
user.drop_item()
I.loc = src
user.drop_from_inventory(I,src)
powercell = I
setconstructionstate(1)
return
@@ -302,7 +301,7 @@
break
user.visible_message("<span class='notice'>[user] attached [src] onto [newtarget] and flicks it on. The magnetic lock now seals [newtarget].</span>", "<span class='notice'>You attached [src] onto [newtarget] and switched on the magnetic lock.</span>")
user.drop_item()
user.drop_item() //TODO: Look into this
forceMove(get_step(newtarget.loc, reverse_direction(direction)))
set_dir(reverse_direction(direction))
+2 -2
View File
@@ -23,7 +23,7 @@
if(!parts)
user << "<span class='warning'>This kit has no parts for this modification left.</span>"
user.drop_from_inventory(src)
user.drop_from_inventory(src,O)
qdel(src)
return
@@ -59,7 +59,7 @@
parts &= ~MODKIT_SUIT
if(!parts)
user.drop_from_inventory(src)
user.drop_from_inventory(src,O)
qdel(src)
/obj/item/device/modkit/examine(mob/user)
@@ -27,13 +27,11 @@
var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user )
A.icon = 'icons/obj/assemblies.dmi'
user.drop_from_inventory(W)
W.loc = A
user.drop_from_inventory(W,A)
W.master = A
A.part1 = W
user.drop_from_inventory(src)
loc = A
user.drop_from_inventory(src,A)
master = A
A.part2 = src
@@ -244,7 +244,7 @@
if(keyslot1)
var/turf/T = get_turf(user)
if(T)
keyslot1.loc = T
keyslot1.forceMove(T)
keyslot1 = null
@@ -252,7 +252,7 @@
if(keyslot2)
var/turf/T = get_turf(user)
if(T)
keyslot2.loc = T
keyslot2.forceMove(T)
keyslot2 = null
recalculateChannels()
@@ -267,13 +267,11 @@
return
if(!keyslot1)
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
keyslot1 = W
else
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
keyslot2 = W
@@ -614,7 +614,7 @@ var/global/list/default_medbay_channels = list(
if(keyslot)
var/turf/T = get_turf(user)
if(T)
keyslot.loc = T
keyslot.forceMove(T)
keyslot = null
recalculateChannels()
@@ -629,8 +629,7 @@ var/global/list/default_medbay_channels = list(
return
if(!keyslot)
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
keyslot = W
recalculateChannels()
@@ -127,7 +127,7 @@
if(ishuman(user))
user.put_in_hands(cell)
else
cell.loc = get_turf(loc)
cell.forceMove(get_turf(loc))
cell.add_fingerprint(user)
cell.update_icon()
@@ -161,8 +161,7 @@
if(cell)
user << "There is a [cell] already installed here."
else
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
cell = W
user << "You insert the [cell]."
update_icon()
@@ -25,13 +25,11 @@
if(!tank_one)
tank_one = item
user.drop_item()
item.loc = src
user.drop_from_inventory(item,src)
user << "<span class='notice'>You attach the tank to the transfer valve.</span>"
else if(!tank_two)
tank_two = item
user.drop_item()
item.loc = src
user.drop_from_inventory(item,src)
user << "<span class='notice'>You attach the tank to the transfer valve.</span>"
message_admins("[key_name_admin(user)] attached both tanks to a transfer valve. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
log_game("[key_name_admin(user)] attached both tanks to a transfer valve.",ckey=key_name(user))
@@ -49,7 +47,7 @@
return
user.remove_from_mob(item)
attached_device = A
A.loc = src
A.forceMove(src)
user << "<span class='notice'>You attach the [item] to the valve controls and secure it.</span>"
A.holder = src
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
@@ -107,7 +105,7 @@
toggle_valve()
else if(attached_device)
if(href_list["rem_device"])
attached_device.loc = get_turf(src)
attached_device.forceMove(get_turf(src))
attached_device:holder = null
attached_device = null
update_icon()
@@ -151,7 +149,7 @@
else
return
T.loc = get_turf(src)
T.forceMove(get_turf(src))
update_icon()
/obj/item/device/transfer_valve/proc/merge_gases()
+4 -5
View File
@@ -43,21 +43,21 @@
switch(contains)
if(1)
for(var/obj/O in src)
O.loc = user.loc
O.forceMove(user.loc)
user << "<span class='notice'>You take money out of \the [src].</span>"
contains = 0
update_icon()
return
if(2)
for(var/mob/M in src)
M.loc = user.loc
M.forceMove(user.loc)
user.visible_message("<span class='notice'>[user] releases [M] from \the [src].</span>", "<span class='notice'>You release [M] from \the [src].</span>")
contains = 0
update_icon()
return
if(3)
for(var/obj/effect/spider/spiderling/S in src)
S.loc = user.loc
S.forceMove(user.loc)
user.visible_message("<span class='notice'>[user] releases [S] from \the [src].</span>", "<span class='notice'>You release [S] from \the [src].</span>")
START_PROCESSING(SSprocessing, S) // They can grow after being let out though
contains = 0
@@ -72,8 +72,7 @@
return
var/obj/item/weapon/spacecash/S = W
user.visible_message("<span class='notice'>[user] puts [S.worth] [S.worth > 1 ? "credits" : "credit"] into \the [src].</span>")
user.drop_from_inventory(S)
S.forceMove(src)
user.drop_from_inventory(S,src)
update_icon()
/obj/item/glass_jar/update_icon() // Also updates name and desc
+1 -1
View File
@@ -15,7 +15,7 @@
uses -= amt
playsound(get_turf(user), 'sound/items/Screwdriver.ogg', 50, 1)
if(uses<1)
user.drop_item()
user.drop_from_inventory(src,get_turf(src))
qdel(src)
// Root voidsuit kit defines.
+17 -23
View File
@@ -118,7 +118,7 @@
var/obj/item/stack/material/M = W
if (M.use(1))
var/obj/item/weapon/secbot_assembly/ed209_assembly/B = new /obj/item/weapon/secbot_assembly/ed209_assembly
B.loc = get_turf(src)
B.forceMove(get_turf(src))
user << "<span class='notice'>You armed the robot frame.</span>"
if (user.get_inactive_hand()==src)
user.remove_from_mob(src)
@@ -128,37 +128,32 @@
user << "<span class='warning'>You need one sheet of metal to arm the robot frame.</span>"
if(istype(W, /obj/item/robot_parts/l_leg))
if(src.l_leg) return
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
src.l_leg = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/r_leg))
if(src.r_leg) return
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
src.r_leg = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/l_arm))
if(src.l_arm) return
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
src.l_arm = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/r_arm))
if(src.r_arm) return
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
src.r_arm = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/chest))
if(src.chest) return
if(W:wires && W:cell)
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
src.chest = W
src.updateicon()
else if(!W:wires)
@@ -169,8 +164,7 @@
if(istype(W, /obj/item/robot_parts/head))
if(src.head) return
if(W:flash2 && W:flash1)
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
src.head = W
src.updateicon()
else
@@ -229,7 +223,7 @@
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), TRUE)
if(!O) return
user.drop_item()
user.drop_item() //TODO: Look into this.
O.mmi = W
O.invisibility = 0
@@ -244,8 +238,8 @@
O.job = "Cyborg"
O.cell = chest.cell
O.cell.loc = O
W.loc = O//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame.
O.cell.forceMove(O)
W.forceMove(O)//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame.
// Since we "magically" installed a cell, we also have to update the correct component.
if(O.cell)
@@ -279,8 +273,7 @@
user << "<span class='warning'>You have already inserted a cell!</span>"
return
else
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
src.cell = W
user << "<span class='notice'>You insert the cell!</span>"
if(iscoil(W))
@@ -316,8 +309,11 @@
add_flashes(W,user)
else if(istype(W, /obj/item/weapon/stock_parts/manipulator))
user << "<span class='notice'>You install some manipulators and modify the head, creating a functional spider-bot!</span>"
new /mob/living/simple_animal/spiderbot(get_turf(loc))
user.drop_item()
user.drop_from_inventory(W,get_turf(loc))
qdel(W)
qdel(src)
return
@@ -328,13 +324,11 @@
user << "<span class='notice'>You have already inserted the eyes!</span>"
return
else if(src.flash1)
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
src.flash2 = W
user << "<span class='notice'>You insert the flash into the eye socket!</span>"
else
user.drop_item()
W.loc = src
user.drop_from_inventory(W,src)
src.flash1 = W
user << "<span class='notice'>You insert the flash into the eye socket!</span>"
+1 -1
View File
@@ -13,5 +13,5 @@
user << "You attahed the [src] to [S] making movement silent"
S.silent = 1
S.desc += " They appear to have some type of fabric soles"
user.drop_from_inventory(src)
user.drop_from_inventory(src,A)
qdel(src)
+2 -2
View File
@@ -23,7 +23,7 @@
// After target moves, check for nearby stakes. If associated, move to target
for(var/obj/structure/target_stake/M in view(3,src))
if(M.density == 0 && M.pinned_target == src)
M.loc = loc
M.forceMove(loc)
// This may seem a little counter-intuitive but I assure you that's for a purpose.
// Stakes are the ones that carry targets, yes, but in the stake code we set
@@ -61,7 +61,7 @@
user.put_in_hands(src)
user << "You take the target out of the stake."
else
src.loc = get_turf(user)
src.forceMove(get_turf(user))
user << "You take the target out of the stake."
stake.pinned_target = null
+1 -1
View File
@@ -156,7 +156,7 @@
attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/toy/ammo/crossbow))
if(bullets <= 4)
user.drop_item()
user.drop_from_inventory(I,src)
qdel(I)
bullets++
user << "<span class='notice'>You load the foam dart into the crossbow.</span>"
+2 -1
View File
@@ -49,7 +49,8 @@
if((stored_matter + 10) > 30)
user << "<span class='notice'>The RCD can't hold any more matter-units.</span>"
return
user.drop_from_inventory(W)
//TODO: Possible better animation
user.drop_from_inventory(W,src)
qdel(W)
stored_matter += 10
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
+1 -1
View File
@@ -95,7 +95,7 @@ RSF
used_energy = 200
user << "Dispensing [product ? product : "product"]..."
product.loc = get_turf(A)
product.forceMove(get_turf(A))
if(isrobot(user))
var/mob/living/silicon/robot/R = user
+1 -1
View File
@@ -32,7 +32,7 @@ var/malftransformermade = 0
if(do_after(user, 30 SECONDS, act_target = src))
var/obj/product = new /obj/machinery/transformer
malftransformermade = 1
product.loc = get_turf(A)
product.forceMove(get_turf(A))
if(isrobot(user))
var/mob/living/silicon/robot/R = user
+1 -1
View File
@@ -83,9 +83,9 @@ var/const/NO_EMAG_ACT = -50
if(uses<1)
user.visible_message("<span class='warning'>\The [src] fizzles and sparks - it seems it's been used once too often, and is now spent.</span>")
user.drop_item()
var/obj/item/weapon/card/emag_broken/junk = new(user.loc)
junk.add_fingerprint(user)
user.drop_from_inventory(src,get_turf(junk))
qdel(src)
return 1
@@ -125,8 +125,7 @@
/obj/item/weapon/cloaking_device/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/cell))
if(!cell)
user.drop_item()
W.forceMove(src)
user.drop_from_inventory(W,src)
cell = W
user << "<span class='notice'>You install a cell in [src].</span>"
update_icon()
@@ -49,7 +49,7 @@
user.do_attack_animation(target)
if(do_after(user, 50) && in_range(user, target))
user.drop_item()
user.drop_item() //TODO: Look into this
src.target = target
loc = null
@@ -74,13 +74,13 @@
if(iswrench(W) && !status)//Taking this apart
var/turf/T = get_turf(src)
if(weldtool)
weldtool.loc = T
weldtool.forceMove(T)
weldtool = null
if(igniter)
igniter.loc = T
igniter.forceMove(T)
igniter = null
if(ptank)
ptank.loc = T
ptank.forceMove(T)
ptank = null
new /obj/item/stack/rods(T)
qdel(src)
@@ -96,8 +96,7 @@
var/obj/item/device/assembly/igniter/I = W
if(I.secured) return
if(igniter) return
user.drop_item()
I.loc = src
user.drop_from_inventory(I,src)
igniter = I
update_icon()
return
@@ -106,9 +105,8 @@
if(ptank)
user << "<span class='notice'>There appears to already be a phoron tank loaded in [src]!</span>"
return
user.drop_item()
user.drop_from_inventory(W,src)
ptank = W
W.loc = src
update_icon()
return
@@ -54,7 +54,7 @@
user << "<span class='notice'>You cut open the present.</span>"
for(var/mob/M in src) //Should only be one but whatever.
M.loc = src.loc
M.forceMove(src.loc)
if (M.client)
M.client.eye = M.client.mob
M.client.perspective = MOB_PERSPECTIVE
@@ -146,7 +146,7 @@
G.w_class = G.size + 1
G.icon_state = text("gift[]", G.size)
G.gift = W
W.loc = G
W.forceMove(G)
G.add_fingerprint(user)
W.add_fingerprint(user)
src.add_fingerprint(user)
@@ -178,7 +178,7 @@
H.client.perspective = EYE_PERSPECTIVE
H.client.eye = present
H.loc = present
H.forceMove(present)
H.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been wrapped with [src.name] by [user.name] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to wrap [H.name] ([H.ckey])</font>")
@@ -61,7 +61,7 @@
user << "<span class='notice'>You add [W] to the metal casing.</span>"
playsound(src.loc, 'sound/items/Screwdriver2.ogg', 25, -3)
user.remove_from_mob(det)
det.loc = src
det.forceMove(src)
detonator = det
if(istimer(detonator.a_left))
var/obj/item/device/assembly/timer/T = detonator.a_left
@@ -104,8 +104,7 @@
else
if(W.reagents.total_volume)
user << "<span class='notice'>You add \the [W] to the assembly.</span>"
user.drop_item()
W.forceMove(src)
user.drop_from_inventory(W,src)
beakers += W
stage = 1
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
+2 -3
View File
@@ -71,10 +71,9 @@
// Apply cuffs.
var/obj/item/weapon/handcuffs/cuffs = src
if(dispenser)
cuffs = new(get_turf(user))
cuffs = new(target)
else
user.drop_from_inventory(cuffs)
cuffs.loc = target
user.drop_from_inventory(cuffs,target)
target.handcuffed = cuffs
target.update_inv_handcuffed()
return 1
@@ -93,14 +93,14 @@
item_quants[N] -= 1
for(var/obj/O in contents)
if(O.name == N)
O.loc = get_turf(src)
O.forceMove(get_turf(src))
usr.put_in_hands(O)
break
else if ( href_list["unload"] )
item_quants.Cut()
for(var/obj/O in contents )
O.loc = get_turf(src)
O.forceMove(get_turf(src))
src.updateUsrDialog()
return
@@ -532,7 +532,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
if (imp_in)
imp_in.put_in_hands(scanned)
else
scanned.loc = t
scanned.forceMove(t)
qdel(src)
/obj/item/weapon/implant/compressed/implanted(mob/source as mob)
@@ -45,7 +45,7 @@
if (M.imp)
if ((src.imp || M.imp.implanted))
return
M.imp.loc = src
M.imp.forceMove(src)
src.imp = M.imp
M.imp = null
src.update()
@@ -54,7 +54,7 @@
if (src.imp)
if (M.imp)
return
src.imp.loc = M
src.imp.forceMove(M)
M.imp = src.imp
src.imp = null
update()
@@ -97,7 +97,7 @@
if (src.occupant.client)
src.occupant.client.eye = src.occupant.client.mob
src.occupant.client.perspective = MOB_PERSPECTIVE
src.occupant.loc = src.loc
src.occupant.forceMove(src.loc)
if(injecting)
implant(src.occupant)
injecting = 0
@@ -117,7 +117,7 @@
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.stop_pulling()
M.loc = src
M.forceMove(src)
src.occupant = M
src.add_fingerprint(usr)
icon_state = "implantchair_on"
@@ -135,7 +135,7 @@
O.show_message("<span class='warning'>\The [M] has been implanted by \the [src].</span>", 1)
if(imp.implanted(M))
imp.loc = M
imp.forceMove(M)
imp.imp_in = M
imp.implanted = 1
implant_list -= imp
@@ -11,7 +11,7 @@
/obj/item/weapon/implanter/attack_self(var/mob/user)
if(!imp)
return ..()
imp.loc = get_turf(src)
imp.forceMove(get_turf(src))
user.put_in_hands(imp)
user << "<span class='notice'>You remove \the [imp] from \the [src].</span>"
name = "implanter"
@@ -43,7 +43,7 @@
admin_attack_log(user, M, "Implanted using \the [src.name] ([src.imp.name])", "Implanted with \the [src.name] ([src.imp.name])", "used an implanter, [src.name] ([src.imp.name]), on")
if(src.imp.implanted(M))
src.imp.loc = M
src.imp.forceMove(M)
src.imp.imp_in = M
src.imp.implanted = 1
if (ishuman(M))
@@ -197,6 +197,5 @@
return
ipc_tag = new_tag
user.drop_item()
new_tag.loc = src
user.drop_from_inventory(new_tag,src)
update()
@@ -29,7 +29,7 @@
if (source.client)
source.client.screen -= W
if (W)
W.loc = source.loc
W.forceMove(source.loc)
dropped(source)
if (W)
W.layer = initial(W.layer)
@@ -40,7 +40,7 @@
if (source.client)
source.client.screen -= W
if (W)
W.loc = source.loc
W.forceMove(source.loc)
dropped(source)
if (W)
W.layer = initial(W.layer)
@@ -42,8 +42,7 @@
..()
if(istype(C, /obj/item/weapon/implantcase))
if(!( src.case ))
user.drop_item()
C.loc = src
user.drop_from_inventory(C,src)
src.case = C
else
return
@@ -63,8 +63,9 @@
finished = new /obj/item/weapon/melee/baton/cattleprod(get_turf(user))
user << "<span class='notice'>You fasten the wirecutters to the top of the rod with the cable, prongs outward.</span>"
if(finished)
user.drop_from_inventory(src)
user.drop_from_inventory(I)
user.drop_from_inventory(src,finished)
user.drop_from_inventory(I,finished)
//TODO: Possible better animation here.
qdel(I)
qdel(src)
user.put_in_hands(finished)
@@ -91,10 +92,11 @@
finished = new /obj/item/weapon/material/twohanded/pike(get_turf(user), tip.material.name)
user << "<span class='notice'>You attach \the [I] to the top of \the [src].</span>"
if(finished)
user.drop_from_inventory(src)
user.drop_from_inventory(I)
user.drop_from_inventory(src,finished)
user.drop_from_inventory(I,finished)
qdel(I)
qdel(src)
//TODO: Possible better animation here.
user.put_in_hands(finished)
update_icon(user)
@@ -46,7 +46,7 @@
user << "\The [src] is full."
return
user.remove_from_mob(W)
W.loc = src
W.forceMove(src)
if (istype(W,/obj/item/clothing/mask/smokable/cigarette))
var/obj/item/clothing/mask/smokable/cigarette/cig = W
@@ -80,7 +80,7 @@
if (contents.len)
src.visible_message("<span class='danger'>\The [src] slams into [hit_atom], spilling its contents!</span>")
for (var/obj/item/clothing/mask/smokable/cigarette/O in contents)
O.loc = src.loc
O.forceMove(src.loc)
if (health < 1)
shatter()
return
@@ -73,9 +73,10 @@ Protectiveness | Armor %
if(second_plate.material != src.material)
to_chat(user, "<span class='warning'>Both plates need to be the same type of material.</span>")
return
user.drop_from_inventory(src)
user.drop_from_inventory(second_plate)
var/obj/item/clothing/suit/armor/material/makeshift/new_armor = new(null, src.material.name)
//TODO: Possible better animations
var/obj/item/clothing/suit/armor/material/makeshift/new_armor = new(src.loc, src.material.name)
user.drop_from_inventory(src,new_armor)
user.drop_from_inventory(second_plate,new_armor)
user.put_in_hands(new_armor)
qdel(second_plate)
qdel(src)
@@ -243,8 +243,7 @@
var/obj/structure/headspear/HS = new /obj/structure/headspear(user.loc)
var/matrix/M = matrix()
I.transform = M
usr.drop_item()
I.forceMove(HS)
usr.drop_from_inventory(I,HS)
var/mutable_appearance/MA = new(I)
MA.layer = FLOAT_LAYER
HS.add_overlay(MA)
@@ -310,7 +309,7 @@
user.visible_message("<span class='warning'>[user] kicks over \the [src]!</span>", "<span class='danger'>You kick down \the [src]!</span>")
new /obj/item/weapon/material/twohanded/spear(user.loc, material)
for(var/obj/item/organ/external/head/H in src)
H.loc = user.loc
H.forceMove(user.loc)
qdel(src)
// Chainsaws!
+1 -2
View File
@@ -1,8 +1,7 @@
/obj/item/weapon/pai_cable/proc/plugin(obj/machinery/M as obj, mob/user as mob)
if(istype(M, /obj/machinery/door) || istype(M, /obj/machinery/camera))
user.visible_message("[user] inserts [src] into a data port on [M].", "You insert [src] into a data port on [M].", "You hear the satisfying click of a wire jack fastening into place.")
user.drop_item()
src.loc = M
user.drop_from_inventory(src,M)
src.machine = M
else
user.visible_message("[user] dumbly fumbles to find a place on [M] to plug in [src].", "There aren't any ports on [M] that match the jack belonging to [src].")
@@ -115,7 +115,7 @@ var/list/tape_roll_applications = list()
if (istype(A, /obj/machinery/door/airlock))
var/turf/T = get_turf(A)
var/obj/item/tape/P = new tape_type(T.x,T.y,T.z)
P.loc = locate(T.x,T.y,T.z)
P.forceMove(locate(T.x,T.y,T.z))
P.icon_state = "[src.icon_base]_door"
P.layer = 3.2
user << span("notice", "You finish placing the [src].")
+1 -1
View File
@@ -103,7 +103,7 @@
break
if(!success)
user.loc = pick(L)
user.forceMove(pick(L))
smoke.start()
src.uses -= 1
@@ -205,7 +205,7 @@
if(!S.amount)
qdel(S)
else
S.loc = src
S.forceMove(src)
orient2hud(usr)
if(usr.s_active)
@@ -80,10 +80,10 @@
switch(over_object.name)
if("r_hand")
usr.u_equip(src)
usr.put_in_r_hand(src)
usr.put_in_r_hand(src,FALSE)
if("l_hand")
usr.u_equip(src)
usr.put_in_l_hand(src)
usr.put_in_l_hand(src,FALSE)
src.add_fingerprint(usr)
@@ -422,9 +422,9 @@
W.layer = 20
else
W.layer = initial(W.layer)
W.loc = new_location
W.forceMove(new_location)
else
W.loc = get_turf(src)
W.forceMove(get_turf(src))
if(usr)
src.orient2hud(usr)
+1 -2
View File
@@ -66,8 +66,7 @@
/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/weapon/cell))
if(!bcell)
user.drop_item()
W.forceMove(src)
user.drop_from_inventory(W,src)
bcell = W
user << "<span class='notice'>You install a cell in [src].</span>"
update_icon()
@@ -95,7 +95,7 @@
src.master = F
F.ptank = src
user.remove_from_mob(src)
src.loc = F
src.forceMove(F)
return
/*
@@ -18,7 +18,7 @@
noz = make_noz()
noz.tank = src
noz.reagents = reagents
noz.loc = src
noz.forceMove(src)
/obj/item/watertank/ui_action_click()
toggle_mister()
@@ -44,14 +44,14 @@
noz = make_noz()
noz.tank = src
noz.reagents = reagents
noz.loc = src
noz.forceMove(src)
//Detach the nozzle into the user's hands
if(!user.put_in_hands(noz))
on = FALSE
to_chat(user, "<span class='warning'>You need a free hand to hold the mister!</span>")
return
noz.loc = user
noz.forceMove(user)
else
//Remove from their hands and put back "into" the tank
remove_noz()
@@ -70,11 +70,10 @@
noz = make_noz()
noz.tank = src
noz.reagents = reagents
noz.loc = src
noz.forceMove(src)
if(ismob(noz.loc))
var/mob/M = noz.loc
M.drop_from_inventory(noz)
noz.loc = src
M.drop_from_inventory(noz,src)
return
/obj/item/watertank/Destroy()
+3 -3
View File
@@ -79,6 +79,7 @@
if(!istype(W, /obj/item/weapon/paper))
return
user.drop_from_inventory(W)
//TODO: Possible animation? No clue
var/obj/item/weapon/ducttape/tape = new(get_turf(src))
tape.attach(W)
user.put_in_hands(tape)
@@ -113,7 +114,7 @@
return
user << "You remove \the [initial(name)] from [stuck]."
//TODO: Find out what the fuck is going on here
user.drop_from_inventory(src)
stuck.forceMove(get_turf(src))
user.put_in_hands(stuck)
@@ -136,9 +137,8 @@
user << "You cannot reach that from here." // can only place stuck papers in cardinal directions, to
return // reduce papers around corners issue.
user.drop_from_inventory(src)
user.drop_from_inventory(src,source_turf)
playsound(src, 'sound/items/tape.ogg',25)
forceMove(source_turf)
if(params)
var/list/mouse_control = params2list(params)
+2 -2
View File
@@ -239,7 +239,7 @@
var/obj/item/stack/rods/R = W
R.use(1)
var/obj/item/weapon/flamethrower/F = new/obj/item/weapon/flamethrower(user.loc)
src.loc = F
src.forceMove(F)
F.weldtool = src
if (user.client)
user.client.screen -= src
@@ -252,7 +252,7 @@
user.remove_from_mob(src)
if (user.client)
user.client.screen -= src
src.loc = F
src.forceMove(F)
src.add_fingerprint(user)
return
+3 -3
View File
@@ -257,7 +257,7 @@
var/turf/dropspot = loc
for(var/obj/item/I in carrying)
I.loc = dropspot
I.forceMove(dropspot)
carrying -= I
cut_overlays()
@@ -273,7 +273,7 @@
dropspot = loc
for(var/obj/item/I in carrying)
I.loc = dropspot
I.forceMove(dropspot)
carrying -= I
cut_overlays()
@@ -297,7 +297,7 @@
for(var/obj/item/I in carrying)
I.loc = dropspot
I.forceMove(dropspot)
carrying.Remove(I)
spawn()
for(var/i = 1, i <= rand(1,2), i++)
+1 -1
View File
@@ -229,7 +229,7 @@
affecting.visible_message("[affecting] vanishes in a flare of light!")
if(holdingfacility.len)
affecting.loc = pick(holdingfacility)
affecting.forceMove(pick(holdingfacility))
affecting << "You appear in a strange place!"
+1 -1
View File
@@ -67,7 +67,7 @@
/obj/structure/alien/egg/proc/givefacehugger(var/kill = 1)
var/obj/item/clothing/mask/facehugger/child = GetFacehugger()
status = BURST
child.loc = get_turf(src)
child.forceMove(get_turf(src))
if(kill && istype(child))
child.Die()
+6 -8
View File
@@ -117,14 +117,12 @@ LINEN BINS
/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/bedsheet))
user.drop_item()
I.loc = src
user.drop_from_inventory(I,src)
sheets.Add(I)
amount++
user << "<span class='notice'>You put [I] in [src].</span>"
else if(amount && !hidden && I.w_class < 4) //make sure there's sheets to hide it among, make sure nothing else is hidden in there.
user.drop_item()
I.loc = src
user.drop_from_inventory(I,src)
hidden = I
user << "<span class='notice'>You hide [I] among the sheets.</span>"
@@ -140,12 +138,12 @@ LINEN BINS
else
B = new /obj/item/weapon/bedsheet(loc)
B.loc = user.loc
B.forceMove(user.loc)
user.put_in_hands(B)
user << "<span class='notice'>You take [B] out of [src].</span>"
if(hidden)
hidden.loc = user.loc
hidden.forceMove(user.loc)
user << "<span class='notice'>[hidden] falls out of [B]!</span>"
hidden = null
@@ -164,12 +162,12 @@ LINEN BINS
else
B = new /obj/item/weapon/bedsheet(loc)
B.loc = loc
B.forceMove(loc)
user << "<span class='notice'>You telekinetically remove [B] from [src].</span>"
update_icon()
if(hidden)
hidden.loc = loc
hidden.forceMove(loc)
hidden = null
+1 -1
View File
@@ -42,7 +42,7 @@
if (can_hang && !coat)
src.visible_message("[mover] lands on \the [src].")
coat = mover
coat.loc = src
coat.forceMove(src)
update_icon()
return 0
else
@@ -256,9 +256,10 @@
return
if(!dropsafety(W))
return
usr.drop_item()
if(W)
W.forceMove(loc)
user.drop_from_inventory(W,loc)
else
user.drop_item()
else if(istype(W, /obj/item/weapon/packageWrap))
return
else if(iswelder(W))
@@ -15,9 +15,10 @@
return 0
if(!dropsafety(W))
return
user.drop_item()
if(W)
W.forceMove(loc)
user.drop_from_inventory(W,loc)
else
user.drop_item()
else if(istype(W, /obj/item/weapon/packageWrap))
return
else
@@ -22,9 +22,10 @@
return 0
if(!dropsafety(W))
return
user.drop_item()
if(W)
W.forceMove(loc)
user.drop_from_inventory(W,loc)
else
user.drop_item()
else if(istype(W, /obj/item/weapon/packageWrap))
return
else
@@ -34,9 +34,10 @@
return
else if(W.loc != user) // This should stop mounted modules ending up outside the module.
return
user.drop_item()
if(W)
W.forceMove(loc)
user.drop_from_inventory(W,loc)
else
user.drop_item()
else if(!opened)
if(istype(W, /obj/item/weapon/melee/energy/blade))//Attempt to cut open locker if locked
if(emag_act(INFINITY, user, "<span class='danger'>The locker has been sliced open by [user] with \an [W]</span>!", "<span class='danger'>You hear metal being sliced and sparks flying.</span>"))
@@ -48,8 +48,10 @@
if (opened)
if (istype(W, /obj/item/weapon/grab))
MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
user.drop_item()
if (W) W.forceMove(loc)
if(W)
user.drop_from_inventory(W,loc)
else
user.drop_item()
else if(W.GetID())
var/obj/item/weapon/card/id/I = W.GetID()
@@ -104,9 +104,10 @@
return
else if(W.loc != user) // This should stop mounted modules ending up outside the module.
return
user.drop_item()
if(W)
W.forceMove(loc)
user.drop_from_inventory(W,loc)
else
user.drop_item()
else if(isscrewdriver(W) && canbemoved)
if(screwed)
user << "<span class='notice'>You start to unscrew the locker from the floor...</span>"
@@ -366,9 +366,7 @@
return
else if(W.loc != user) // This should stop mounted modules ending up outside the module.
return
user.drop_item()
if(W)
W.forceMove(loc)
user.drop_from_inventory(W,loc)
else if(!opened)
if(istype(W, /obj/item/weapon/melee/energy/blade))//Attempt to cut open locker if locked
if(emag_act(INFINITY, user, "<span class='danger'>The locker has been sliced open by [user] with \an [W]</span>!", "<span class='danger'>You hear metal being sliced and sparks flying.</span>"))
@@ -105,8 +105,7 @@
else if(istype(W, /obj/item/device/radio/electropack))
if(rigged)
user << "<span class='notice'>You attach [W] to [src].</span>"
user.drop_item()
W.forceMove(src)
user.drop_from_inventory(W,src)
return
else if(iswirecutter(W))
if(rigged)
@@ -232,8 +232,7 @@
if(do_after(user, 40))
EL.inuse = 0
if(!src) return
user.drop_item()
EL.forceMove(src)
user.drop_from_inventory(EL,src)
user << "<span class='notice'>You installed the airlock electronics!</span>"
src.state = 2
src.name = "Near finished Airlock Assembly"
@@ -256,7 +255,7 @@
user << "<span class='notice'>You removed the airlock electronics!</span>"
src.state = 1
src.name = "Wired Airlock Assembly"
electronics.loc = src.loc
electronics.forceMove(src.loc)
electronics = null
else if(istype(W, /obj/item/stack/material) && !glass)
+1 -1
View File
@@ -52,7 +52,7 @@
/obj/structure/extinguisher_cabinet/attack_tk(mob/user)
if(has_extinguisher)
has_extinguisher.loc = loc
has_extinguisher.forceMove(loc)
user << "<span class='notice'>You telekinetically remove [has_extinguisher] from [src].</span>"
has_extinguisher = null
opened = 1
+1 -2
View File
@@ -104,8 +104,7 @@
if(do_after(user, 20, act_target = src))
if(!stored_item)
if(W.w_class <= ITEMSIZE_NORMAL)
user.drop_from_inventory(W)
W.forceMove(src)
user.drop_from_inventory(W,src)
stored_item = W
to_chat(user,"<span class='notice'>You hide \the [W] in [src].</span>")
return
+6 -10
View File
@@ -50,7 +50,7 @@
/obj/structure/janitorialcart/MouseDrop_T(atom/movable/O as mob|obj, mob/living/user as mob)
if (istype(O, /obj/structure/mopbucket) && !mybucket)
O.loc = src
O.forceMove(src)
mybucket = O
user << "You mount the [O] on the janicart."
update_icon()
@@ -65,9 +65,8 @@
var/obj/I = usr.get_active_hand()
if(istype(I, /obj/item/weapon/mop))
if(!mymop)
usr.drop_item()
usr.drop_from_inventory(I,src)
mymop = I
I.forceMove(src)
update_icon()
updateUsrDialog()
usr << "<span class='notice'>You put [I] into [src].</span>"
@@ -100,25 +99,23 @@
return 1
else if(istype(I, /obj/item/weapon/reagent_containers/spray) && !myspray)
user.drop_item()
user.drop_from_inventory(I,src)
myspray = I
I.forceMove(src)
update_icon()
updateUsrDialog()
user << "<span class='notice'>You put [I] into [src].</span>"
return 1
else if(istype(I, /obj/item/device/lightreplacer) && !myreplacer)
user.drop_item()
user.drop_from_inventory(I,src)
myreplacer = I
I.forceMove(src)
update_icon()
updateUsrDialog()
user << "<span class='notice'>You put [I] into [src].</span>"
return 1
else if(istype(I, /obj/item/weapon/storage/bag/trash) && !mybag)
user.drop_item()
user.drop_from_inventory(I,src)
mybag = I
I.forceMove(src)
update_icon()
@@ -128,8 +125,7 @@
else if(istype(I, /obj/item/weapon/caution))
if(signs < 4)
user.drop_item()
I.forceMove(src)
user.drop_from_inventory(I,src)
signs++
update_icon()
updateUsrDialog()
+3 -4
View File
@@ -12,7 +12,7 @@
for(var/obj/item/I in loc)
if(notices > 4) break
if(istype(I, /obj/item/weapon/paper))
I.loc = src
I.forceMove(src)
notices++
icon_state = "nboard0[notices]"
@@ -22,8 +22,7 @@
if(notices < 5)
O.add_fingerprint(user)
add_fingerprint(user)
user.drop_from_inventory(O)
O.loc = src
user.drop_from_inventory(O,src)
notices++
icon_state = "nboard0[notices]" //update sprite
user << "<span class='notice'>You pin the paper to the noticeboard.</span>"
@@ -55,7 +54,7 @@
return
var/obj/item/P = locate(href_list["remove"])
if(P && P.loc == src)
P.loc = get_turf(src) //dump paper on the floor because you're a clumsy fuck
P.forceMove(get_turf(src)) //dump paper on the floor because you're a clumsy fuck
P.add_fingerprint(usr)
add_fingerprint(usr)
notices--
+2 -3
View File
@@ -37,7 +37,7 @@ FLOOR SAFES
return
if(I.w_class + space <= maxspace)
space += I.w_class
I.loc = src
I.forceMove(src)
/obj/structure/safe/proc/check_unlocked(mob/user as mob, canhear)
@@ -147,8 +147,7 @@ FLOOR SAFES
if(open)
if(I.w_class + space <= maxspace)
space += I.w_class
user.drop_item()
I.loc = src
user.drop_from_inventory(I,src)
user << "<span class='notice'>You put [I] in [src].</span>"
updateUsrDialog()
return
@@ -62,7 +62,7 @@
"<span class='warning'>[user.name] drenches you in a foul-smelling resin, trapping you in the [src]!</span>",\
"<span class='notice'>You hear squelching...</span>")
M.buckled = src
M.loc = src.loc
M.forceMove(src.loc)
M.set_dir(src.dir)
M.update_canmove()
M.pixel_y = 6
@@ -101,7 +101,6 @@
return
var/obj/item/stack/C = W
if(C.get_amount() < 1) // How??
user.drop_from_inventory(C)
qdel(C)
return
var/padding_type //This is awful but it needs to be like this until tiles are given a material var.
@@ -117,7 +116,7 @@
C.use(1)
if(!istype(src.loc, /turf))
user.drop_from_inventory(src)
src.loc = get_turf(src)
src.forceMove(get_turf(src))
user << "You add padding to \the [src]."
add_padding(padding_type)
return
@@ -135,7 +134,7 @@
var/mob/living/affecting = G.affecting
user.visible_message("<span class='notice'>[user] attempts to buckle [affecting] into \the [src]!</span>")
if(do_after(user, 20))
affecting.loc = loc
affecting.forceMove(loc)
spawn(0)
if(buckle_mob(affecting))
affecting.visible_message(\
@@ -224,7 +223,7 @@
var/obj/item/roller_holder/RH = W
if(!RH.held)
user << "<span class='notice'>You collect the roller bed.</span>"
src.loc = RH
src.forceMove(RH)
RH.held = src
return
@@ -258,7 +257,7 @@
..()
if(buckled_mob)
if(buckled_mob.buckled == src)
buckled_mob.loc = src.loc
buckled_mob.forceMove(src.loc)
else
buckled_mob = null
@@ -15,12 +15,11 @@
if(!SK.status)
user << "<span class='notice'>\The [SK] is not ready to be attached!</span>"
return
user.drop_item()
var/obj/structure/bed/chair/e_chair/E = new (src.loc, material.name)
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
E.set_dir(dir)
E.part = SK
SK.loc = E
user.drop_from_inventory(SK,E)
SK.master = E
qdel(src)
@@ -122,7 +122,6 @@
return
var/obj/item/stack/C = W
if(C.get_amount() < 1) // How??
user.drop_from_inventory(C)
qdel(C)
return
var/padding_type //This is awful but it needs to be like this until tiles are given a material var.
@@ -138,7 +137,7 @@
C.use(1)
if(!istype(src.loc, /turf))
user.drop_from_inventory(src)
src.loc = get_turf(src)
src.forceMove(get_turf(src))
user << "You add padding to \the [src]."
add_padding(padding_type)
return
@@ -24,14 +24,14 @@
/obj/structure/dispenser/update_icon()
cut_overlays()
switch(oxygentanks)
if(1 to 3)
if(1 to 3)
add_overlay("oxygen-[oxygentanks]")
if(4 to INFINITY)
if(4 to INFINITY)
add_overlay("oxygen-4")
switch(phorontanks)
if(1 to 4)
add_overlay("phoron-[phorontanks]")
if(5 to INFINITY)
if(5 to INFINITY)
add_overlay("phoron-5")
/obj/structure/dispenser/attack_ai(mob/user as mob)
@@ -52,8 +52,7 @@
/obj/structure/dispenser/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/tank/oxygen) || istype(I, /obj/item/weapon/tank/air) || istype(I, /obj/item/weapon/tank/anesthetic))
if(oxygentanks < 10)
user.drop_item()
I.loc = src
user.drop_from_inventory(I,src)
oxytanks.Add(I)
oxygentanks++
user << "<span class='notice'>You put [I] in [src].</span>"
@@ -65,8 +64,7 @@
return
if(istype(I, /obj/item/weapon/tank/phoron))
if(phorontanks < 10)
user.drop_item()
I.loc = src
user.drop_from_inventory(I,src)
platanks.Add(I)
phorontanks++
user << "<span class='notice'>You put [I] in [src].</span>"
@@ -98,7 +96,7 @@
oxytanks.Remove(O)
else
O = new /obj/item/weapon/tank/oxygen(loc)
O.loc = loc
O.forceMove(loc)
usr << "<span class='notice'>You take [O] out of [src].</span>"
oxygentanks--
update_icon()
@@ -110,7 +108,7 @@
platanks.Remove(P)
else
P = new /obj/item/weapon/tank/phoron(loc)
P.loc = loc
P.forceMove(loc)
usr << "<span class='notice'>You take [P] out of [src].</span>"
phorontanks--
update_icon()
+4 -4
View File
@@ -13,7 +13,7 @@
..()
// Move the pinned target along with the stake
if(pinned_target in view(3, src))
pinned_target.loc = loc
pinned_target.forceMove(loc)
else // Sanity check: if the pinned target can't be found in immediate view
pinned_target = null
@@ -28,7 +28,7 @@
density = 0
W.density = 1
user.remove_from_mob(W)
W.loc = loc
W.forceMove(loc)
W.layer = 3.1
pinned_target = W
user << "You slide the target into the stake."
@@ -41,13 +41,13 @@
pinned_target.density = 0
pinned_target.layer = OBJ_LAYER
pinned_target.loc = user.loc
pinned_target.forceMove(user.loc)
if(ishuman(user))
if(!user.get_active_hand())
user.put_in_hands(pinned_target)
user << "You take the target out of the stake."
else
pinned_target.loc = get_turf(user)
pinned_target.forceMove(get_turf(user))
user << "You take the target out of the stake."
pinned_target = null
@@ -49,7 +49,7 @@
/obj/structure/transit_tube_pod/Destroy()
for(var/atom/movable/AM in contents)
AM.loc = loc
AM.forceMove(loc)
return ..()
@@ -60,7 +60,7 @@ obj/structure/ex_act(severity)
switch(severity)
if(1.0)
for(var/atom/movable/AM in contents)
AM.loc = loc
AM.forceMove(loc)
AM.ex_act(severity++)
qdel(src)
@@ -68,7 +68,7 @@ obj/structure/ex_act(severity)
if(2.0)
if(prob(50))
for(var/atom/movable/AM in contents)
AM.loc = loc
AM.forceMove(loc)
AM.ex_act(severity++)
qdel(src)
@@ -104,7 +104,7 @@ obj/structure/ex_act(severity)
AM << "<span class='warning'>The tube's support pylons block your way.</span>"
return ..()
else
AM.loc = src.loc
AM.forceMove(src.loc)
AM << "<span class='info'>You slip under the tube.</span>"
@@ -120,7 +120,7 @@ obj/structure/ex_act(severity)
AM << "<span class='notice'>The pod is already occupied.</span>"
return
else if(!pod.moving && pod.dir in directions())
AM.loc = pod
AM.forceMove(pod)
return
@@ -380,7 +380,7 @@ obj/structure/ex_act(severity)
if(istype(mob, /mob) && mob.client)
// If the pod is not in a tube at all, you can get out at any time.
if(!(locate(/obj/structure/transit_tube) in loc))
mob.loc = loc
mob.forceMove(loc)
mob.client.Move(get_step(loc, direction), direction)
//if(moving && istype(loc, /turf/space))
@@ -393,7 +393,7 @@ obj/structure/ex_act(severity)
if(!station.pod_moving)
if(direction == station.dir)
if(station.icon_state == "open")
mob.loc = loc
mob.forceMove(loc)
mob.client.Move(get_step(loc, direction), direction)
else
+2 -3
View File
@@ -33,7 +33,7 @@
if(ishuman(user))
user.put_in_hands(I)
else
I.loc = get_turf(src)
I.forceMove(get_turf(src))
user << "<span class='notice'>You find \an [I] in the cistern.</span>"
w_items -= I.w_class
return
@@ -87,8 +87,7 @@
if(w_items + I.w_class > 5)
user << "<span class='notice'>The cistern is full.</span>"
return
user.drop_item()
I.loc = src
user.drop_from_inventory(I,src)
w_items += I.w_class
user << "You carefully place \the [I] into the cistern."
return
@@ -175,8 +175,7 @@ obj/structure/windoor_assembly/Destroy()
if(do_after(user, 40))
EL.inuse = 0
if(!src) return
user.drop_item()
EL.forceMove(src)
user.drop_from_inventory(EL,src)
user << "<span class='notice'>You've installed the airlock electronics!</span>"
src.name = "Near finished Windoor Assembly"
src.electronics = EL
@@ -197,7 +196,7 @@ obj/structure/windoor_assembly/Destroy()
src.name = "Wired Windoor Assembly"
var/obj/item/weapon/airlock_electronics/ae = electronics
electronics = null
ae.loc = src.loc
ae.forceMove(src.loc)
//Crowbar to complete the assembly, Step 7 complete.
else if(iscrowbar(W))
@@ -232,7 +231,7 @@ obj/structure/windoor_assembly/Destroy()
else
windoor.req_access = src.electronics.conf_access
windoor.electronics = src.electronics
src.electronics.loc = windoor
src.electronics.forceMove(windoor)
else
var/obj/machinery/door/window/windoor = new /obj/machinery/door/window(src.loc)
if(src.facing == "l")
@@ -250,7 +249,7 @@ obj/structure/windoor_assembly/Destroy()
else
windoor.req_access = src.electronics.conf_access
windoor.electronics = src.electronics
src.electronics.loc = windoor
src.electronics.forceMove(windoor)
qdel(src)