mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Finishes the forceMove port (#33519)
* a thing * thingy 2: electric boogaloo * Obligatory webeditor commit
This commit is contained in:
committed by
oranges
parent
25a585d037
commit
5233ec1f6a
@@ -403,7 +403,7 @@
|
||||
for(var/m in buckled_mobs)
|
||||
var/mob/living/buckled_mob = m
|
||||
if(!buckled_mob.Move(newloc, direct))
|
||||
loc = buckled_mob.loc
|
||||
forceMove(buckled_mob.loc)
|
||||
last_move = buckled_mob.last_move
|
||||
inertia_dir = last_move
|
||||
buckled_mob.inertia_dir = last_move
|
||||
|
||||
@@ -232,14 +232,14 @@ GLOBAL_LIST_EMPTY(blob_nodes)
|
||||
if(placed)
|
||||
var/obj/structure/blob/B = locate() in range("3x3", NewLoc)
|
||||
if(B)
|
||||
loc = NewLoc
|
||||
forceMove(NewLoc)
|
||||
else
|
||||
return 0
|
||||
else
|
||||
var/area/A = get_area(NewLoc)
|
||||
if(isspaceturf(NewLoc) || istype(A, /area/shuttle)) //if unplaced, can't go on shuttles or space tiles
|
||||
return 0
|
||||
loc = NewLoc
|
||||
forceMove(NewLoc)
|
||||
return 1
|
||||
|
||||
/mob/camera/blob/mind_initialize()
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
return 0
|
||||
else if(placement_override == 1)
|
||||
var/turf/T = pick(GLOB.blobstart)
|
||||
loc = T //got overrided? you're somewhere random, motherfucker
|
||||
forceMove(T) //got overrided? you're somewhere random, motherfucker
|
||||
if(placed && blob_core)
|
||||
blob_core.forceMove(loc)
|
||||
else
|
||||
@@ -75,7 +75,7 @@
|
||||
var/node_name = input(src, "Choose a node to jump to.", "Node Jump") in nodes
|
||||
var/obj/structure/blob/node/chosen_node = nodes[node_name]
|
||||
if(chosen_node)
|
||||
loc = chosen_node.loc
|
||||
forceMove(chosen_node.loc)
|
||||
|
||||
/mob/camera/blob/proc/createSpecial(price, blobType, nearEquals, needsNode, turf/T)
|
||||
if(!T)
|
||||
|
||||
@@ -375,7 +375,7 @@
|
||||
return
|
||||
var/key_of_revenant
|
||||
message_admins("Revenant ectoplasm was left undestroyed for 1 minute and is reforming into a new revenant.")
|
||||
loc = get_turf(src) //In case it's in a backpack or someone's hand
|
||||
forceMove(drop_location()) //In case it's in a backpack or someone's hand
|
||||
revenant.forceMove(loc)
|
||||
if(client_to_revive)
|
||||
for(var/mob/M in GLOB.dead_mob_list)
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
|
||||
var/mob/living/carbon/human/target = null
|
||||
var/list/mob/living/carbon/human/possible = list()
|
||||
var/obj/item/link = null
|
||||
var/obj/item/linked_item = null
|
||||
var/cooldown_time = 30 //3s
|
||||
var/cooldown = 0
|
||||
max_integrity = 10
|
||||
@@ -237,10 +237,10 @@
|
||||
cooldown = world.time +cooldown_time
|
||||
return
|
||||
|
||||
if(!link)
|
||||
if(!linked_item)
|
||||
if(I.loc == user && istype(I) && I.w_class <= WEIGHT_CLASS_SMALL)
|
||||
if (user.transferItemToLoc(I,src))
|
||||
link = I
|
||||
linked_item = I
|
||||
to_chat(user, "You attach [I] to the doll.")
|
||||
update_targets()
|
||||
|
||||
@@ -255,11 +255,11 @@
|
||||
return
|
||||
|
||||
if(user.zone_selected == "chest")
|
||||
if(link)
|
||||
if(linked_item)
|
||||
target = null
|
||||
link.loc = get_turf(src)
|
||||
to_chat(user, "<span class='notice'>You remove the [link] from the doll.</span>")
|
||||
link = null
|
||||
linked_item.forceMove(drop_location())
|
||||
to_chat(user, "<span class='notice'>You remove the [linked_item] from the doll.</span>")
|
||||
linked_item = null
|
||||
update_targets()
|
||||
return
|
||||
|
||||
@@ -291,10 +291,10 @@
|
||||
|
||||
/obj/item/voodoo/proc/update_targets()
|
||||
possible = list()
|
||||
if(!link)
|
||||
if(!linked_item)
|
||||
return
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
if(md5(H.dna.uni_identity) in link.fingerprints)
|
||||
if(md5(H.dna.uni_identity) in linked_item.fingerprints)
|
||||
possible |= H
|
||||
|
||||
/obj/item/voodoo/proc/GiveHint(mob/victim,force=0)
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
return
|
||||
|
||||
if(storedpda)
|
||||
storedpda.loc = get_turf(src.loc)
|
||||
storedpda.forceMove(drop_location())
|
||||
storedpda = null
|
||||
update_icon()
|
||||
else
|
||||
|
||||
@@ -51,7 +51,7 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/proc/ejectuplink()
|
||||
if(uplinkholder)
|
||||
uplinkholder.loc = get_turf(src.loc)
|
||||
uplinkholder.forceMove(drop_location())
|
||||
uplinkholder = null
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -157,15 +157,15 @@
|
||||
if(istype(P, /obj/item/crowbar))
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
state = 2
|
||||
circuit.loc = src.loc
|
||||
circuit.forceMove(drop_location())
|
||||
components.Remove(circuit)
|
||||
circuit = null
|
||||
if(components.len == 0)
|
||||
to_chat(user, "<span class='notice'>You remove the circuit board.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You remove the circuit board and other components.</span>")
|
||||
for(var/atom/movable/A in components)
|
||||
A.loc = src.loc
|
||||
for(var/atom/movable/AM in components)
|
||||
AM.forceMove(drop_location())
|
||||
desc = initial(desc)
|
||||
req_components = null
|
||||
components = null
|
||||
@@ -186,9 +186,9 @@
|
||||
qdel(O)
|
||||
new_machine.component_parts = list()
|
||||
for(var/obj/O in src)
|
||||
O.loc = null
|
||||
O.moveToNullspace()
|
||||
new_machine.component_parts += O
|
||||
circuit.loc = null
|
||||
circuit.moveToNullspace()
|
||||
new_machine.RefreshParts()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -1040,7 +1040,7 @@
|
||||
panel_open = TRUE
|
||||
update_icon(AIRLOCK_OPENING)
|
||||
visible_message("<span class='warning'>[src]'s panel is blown off in a spray of deadly shrapnel!</span>")
|
||||
charge.loc = get_turf(src)
|
||||
charge.forceMove(drop_location())
|
||||
charge.ex_act(EXPLODE_DEVASTATE)
|
||||
detonated = 1
|
||||
charge = null
|
||||
@@ -1344,7 +1344,7 @@
|
||||
else
|
||||
ae = electronics
|
||||
electronics = null
|
||||
ae.loc = src.loc
|
||||
ae.forceMove(drop_location())
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/door/airlock/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
|
||||
@@ -276,7 +276,7 @@
|
||||
else
|
||||
ae = electronics
|
||||
electronics = null
|
||||
ae.loc = src.loc
|
||||
ae.forceMove(drop_location())
|
||||
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -424,7 +424,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
if(masters[user])
|
||||
var/obj/effect/overlay/holo_pad_hologram/H = masters[user]
|
||||
step_to(H, new_turf)
|
||||
H.loc = new_turf
|
||||
H.forceMove(new_turf)
|
||||
var/area/holo_area = get_area(src)
|
||||
var/area/eye_area = new_turf.loc
|
||||
|
||||
|
||||
@@ -789,7 +789,7 @@ GLOBAL_LIST_EMPTY(allCasters)
|
||||
/obj/machinery/newscaster/proc/AttachPhoto(mob/user)
|
||||
if(photo)
|
||||
if(!photo.sillynewscastervar)
|
||||
photo.loc = loc
|
||||
photo.forceMove(drop_location())
|
||||
if(!issilicon(user))
|
||||
user.put_in_inactive_hand(photo)
|
||||
else
|
||||
@@ -865,7 +865,7 @@ GLOBAL_LIST_EMPTY(allCasters)
|
||||
NEWSPAPER.wantedBody = GLOB.news_network.wanted_issue.body
|
||||
if(GLOB.news_network.wanted_issue.img)
|
||||
NEWSPAPER.wantedPhoto = GLOB.news_network.wanted_issue.img
|
||||
NEWSPAPER.loc = get_turf(src)
|
||||
NEWSPAPER.forceMove(drop_location())
|
||||
NEWSPAPER.creationTime = GLOB.news_network.lastAction
|
||||
paper_remaining--
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ Please wait until completion...</TT><BR>
|
||||
|
||||
spawn (build_time)
|
||||
if (!isnull(src.being_built))
|
||||
src.being_built.loc = get_turf(src)
|
||||
src.being_built.forceMove(drop_location())
|
||||
src.being_built = null
|
||||
src.use_power = IDLE_POWER_USE
|
||||
operating = FALSE
|
||||
|
||||
@@ -228,7 +228,7 @@
|
||||
settableTemperatureMedian + settableTemperatureRange)
|
||||
if("eject")
|
||||
if(panel_open && cell)
|
||||
cell.loc = get_turf(src)
|
||||
cell.forceMove(drop_location())
|
||||
cell = null
|
||||
. = TRUE
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
var/move_dir = get_dir(loc, AM.loc)
|
||||
var/mob/living/carbon/human/H = AM
|
||||
if((transform_standing || H.lying) && move_dir == EAST)// || move_dir == WEST)
|
||||
AM.loc = src.loc
|
||||
AM.forceMove(drop_location())
|
||||
do_transform(AM)
|
||||
|
||||
/obj/machinery/transformer/CanPass(atom/movable/mover, turf/target)
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
/obj/item/mecha_parts/mecha_equipment/proc/attach(obj/mecha/M)
|
||||
M.equipment += src
|
||||
chassis = M
|
||||
src.loc = M
|
||||
forceMove(M)
|
||||
M.log_message("[src] initialized.")
|
||||
if(!M.selected && selectable)
|
||||
M.selected = src
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
O.anchored = TRUE
|
||||
if(do_after_cooldown(target))
|
||||
cargo_holder.cargo += O
|
||||
O.loc = chassis
|
||||
O.forceMove(chassis)
|
||||
O.anchored = FALSE
|
||||
occupant_message("<span class='notice'>[target] successfully loaded.</span>")
|
||||
log_message("Loaded [O]. Cargo compartment capacity: [cargo_holder.cargo_capacity - cargo_holder.cargo.len]")
|
||||
@@ -91,7 +91,7 @@
|
||||
O.anchored = TRUE
|
||||
if(do_after_cooldown(target))
|
||||
cargo_holder.cargo += O
|
||||
O.loc = chassis
|
||||
O.forceMove(chassis)
|
||||
O.anchored = FALSE
|
||||
occupant_message("<span class='notice'>[target] successfully loaded.</span>")
|
||||
log_message("Loaded [O]. Cargo compartment capacity: [cargo_holder.cargo_capacity - cargo_holder.cargo.len]")
|
||||
|
||||
@@ -542,7 +542,7 @@
|
||||
else
|
||||
user.visible_message("[user] removes the capacitor from the [holder].", "<span class='notice'>You remove the capacitor from the [holder].</span>")
|
||||
var/obj/item/I = locate(/obj/item/stock_parts/capacitor) in holder
|
||||
I.loc = get_turf(holder)
|
||||
I.forceMove(holder.drop_location())
|
||||
holder.icon_state = "gygax12"
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
@@ -1155,7 +1155,7 @@
|
||||
else
|
||||
user.visible_message("[user] removes the scanner module from the [holder].", "<span class='notice'>You remove the scanner module from the [holder].</span>")
|
||||
var/obj/item/I = locate(/obj/item/stock_parts/scanning_module) in holder
|
||||
I.loc = get_turf(holder)
|
||||
I.forceMove(holder.drop_location())
|
||||
holder.icon_state = "durand10"
|
||||
if(11)
|
||||
if(diff==FORWARD)
|
||||
@@ -1173,7 +1173,7 @@
|
||||
else
|
||||
user.visible_message("[user] removes the super capacitor from the [holder].", "<span class='notice'>You remove the capacitor from the [holder].</span>")
|
||||
var/obj/item/I = locate(/obj/item/stock_parts/capacitor) in holder
|
||||
I.loc = get_turf(holder)
|
||||
I.forceMove(holder.drop_location())
|
||||
holder.icon_state = "durand12"
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
@@ -1480,7 +1480,7 @@
|
||||
else
|
||||
user.visible_message("[user] removes the phasic scanner module from the [holder].", "<span class='notice'>You remove the scanner module from the [holder].</span>")
|
||||
var/obj/item/I = locate(/obj/item/stock_parts/scanning_module) in holder
|
||||
I.loc = get_turf(holder)
|
||||
I.forceMove(holder.drop_location())
|
||||
holder.icon_state = "phazon10"
|
||||
if(15)
|
||||
if(diff==FORWARD)
|
||||
@@ -1498,7 +1498,7 @@
|
||||
else
|
||||
user.visible_message("[user] removes the super capacitor from the [holder].", "<span class='notice'>You remove the capacitor from the [holder].</span>")
|
||||
var/obj/item/I = locate(/obj/item/stock_parts/capacitor) in holder
|
||||
I.loc = get_turf(holder)
|
||||
I.forceMove(holder.drop_location())
|
||||
holder.icon_state = "phazon12"
|
||||
if(13)
|
||||
if(diff==FORWARD)
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
if(crowbar_salvage && crowbar_salvage.len)
|
||||
var/obj/S = pick(crowbar_salvage)
|
||||
if(S)
|
||||
S.loc = get_turf(user)
|
||||
S.forceMove(user.drop_location())
|
||||
crowbar_salvage -= S
|
||||
user.visible_message("[user] pries [S] from [src].", "<span class='notice'>You pry [S] from [src].</span>")
|
||||
return
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
spawn(travel_time)
|
||||
|
||||
if(!exit_vent || exit_vent.welded)
|
||||
loc = entry_vent
|
||||
forceMove(entry_vent)
|
||||
entry_vent = null
|
||||
return
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
forceMove(entry_vent)
|
||||
entry_vent = null
|
||||
return
|
||||
loc = exit_vent.loc
|
||||
forceMove(exit_vent.loc)
|
||||
entry_vent = null
|
||||
var/area/new_area = get_area(loc)
|
||||
if(new_area)
|
||||
|
||||
@@ -719,4 +719,3 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
/obj/item/MouseExited()
|
||||
deltimer(tip_timer)//delete any in-progress timer if the mouse is moved off the item before it finishes
|
||||
closeToolTip(usr)
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
|
||||
/obj/effect/chrono_field/New(loc, var/mob/living/target, var/obj/item/gun/energy/chrono_gun/G)
|
||||
if(target && isliving(target) && G)
|
||||
target.loc = src
|
||||
target.forceMove(src)
|
||||
src.captured = target
|
||||
var/icon/mob_snapshot = getFlatIcon(target)
|
||||
var/icon/cached_icon = new()
|
||||
@@ -198,7 +198,7 @@
|
||||
if(captured)
|
||||
if(tickstokill > initial(tickstokill))
|
||||
for(var/atom/movable/AM in contents)
|
||||
AM.loc = loc
|
||||
AM.forceMove(drop_location())
|
||||
qdel(src)
|
||||
else if(tickstokill <= 0)
|
||||
to_chat(captured, "<span class='boldnotice'>As the last essence of your being is erased from time, you begin to re-experience your most enjoyable memory. You feel happy...</span>")
|
||||
@@ -213,7 +213,7 @@
|
||||
else
|
||||
captured.Unconscious(80)
|
||||
if(captured.loc != src)
|
||||
captured.loc = src
|
||||
captured.forceMove(src)
|
||||
update_icon()
|
||||
if(gun)
|
||||
if(gun.field_check(src))
|
||||
|
||||
@@ -328,7 +328,7 @@
|
||||
O.unwield()
|
||||
to_chat(user, "<span class='notice'>The paddles snap back into the main unit.</span>")
|
||||
defib.on = 0
|
||||
loc = defib
|
||||
forceMove(defib)
|
||||
defib.update_icon()
|
||||
return unwield(user)
|
||||
|
||||
|
||||
@@ -543,7 +543,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
if("2") // Eject pAI device
|
||||
var/turf/T = get_turf(src.loc)
|
||||
if(T)
|
||||
pai.loc = T
|
||||
pai.forceMove(T)
|
||||
|
||||
//LINK FUNCTIONS===================================
|
||||
|
||||
@@ -578,7 +578,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
M.put_in_hands(id)
|
||||
to_chat(usr, "<span class='notice'>You remove the ID from the [name].</span>")
|
||||
else
|
||||
id.loc = get_turf(src)
|
||||
id.forceMove(drop_location())
|
||||
id = null
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -85,7 +85,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_perspective(null)
|
||||
@@ -106,7 +106,7 @@
|
||||
VRD.force_dismount(M)
|
||||
else
|
||||
V.unbuckle_mob(M, force = TRUE)
|
||||
M.loc = src
|
||||
M.forceMove(src)
|
||||
master = C
|
||||
master.active_dummy = src
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
else if(istype(W, /obj/item/screwdriver))
|
||||
if(diode)
|
||||
to_chat(user, "<span class='notice'>You remove the [diode.name] from \the [src].</span>")
|
||||
diode.loc = get_turf(src.loc)
|
||||
diode.forceMove(drop_location())
|
||||
diode = null
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
if(keyslot)
|
||||
var/turf/T = get_turf(user)
|
||||
if(T)
|
||||
keyslot.loc = T
|
||||
keyslot.forceMove(T)
|
||||
keyslot = null
|
||||
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
if(keyslot2)
|
||||
var/turf/T = get_turf(user)
|
||||
if(T)
|
||||
keyslot2.loc = T
|
||||
keyslot2.forceMove(T)
|
||||
keyslot2 = null
|
||||
|
||||
recalculateChannels()
|
||||
|
||||
@@ -568,7 +568,7 @@
|
||||
if(keyslot)
|
||||
var/turf/T = get_turf(user)
|
||||
if(T)
|
||||
keyslot.loc = T
|
||||
keyslot.forceMove(T)
|
||||
keyslot = null
|
||||
|
||||
recalculateChannels()
|
||||
|
||||
@@ -110,12 +110,12 @@
|
||||
else if(stage == WIRED && istype(I, /obj/item/wrench))
|
||||
if(beakers.len)
|
||||
for(var/obj/O in beakers)
|
||||
O.loc = get_turf(src)
|
||||
O.forceMove(drop_location())
|
||||
beakers = list()
|
||||
to_chat(user, "<span class='notice'>You open the [initial(name)] assembly and remove the payload.</span>")
|
||||
return // First use of the wrench remove beakers, then use the wrench to remove the activation mechanism.
|
||||
if(nadeassembly)
|
||||
nadeassembly.loc = get_turf(src)
|
||||
nadeassembly.forceMove(drop_location())
|
||||
nadeassembly.master = null
|
||||
nadeassembly = null
|
||||
else // If "nadeassembly = null && stage == WIRED", then it most have been cable_coil that was used.
|
||||
@@ -167,7 +167,7 @@
|
||||
playsound(loc, 'sound/items/screwdriver2.ogg', 50, 1)
|
||||
if(beakers.len)
|
||||
for(var/obj/O in beakers)
|
||||
O.loc = get_turf(src)
|
||||
O.forceMove(drop_location())
|
||||
beakers = list()
|
||||
stage_change(EMPTY)
|
||||
return
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
if(I.imp)
|
||||
if(imp || I.imp.imp_in)
|
||||
return
|
||||
I.imp.loc = src
|
||||
I.imp.forceMove(src)
|
||||
imp = I.imp
|
||||
I.imp = null
|
||||
update_icon()
|
||||
@@ -48,7 +48,7 @@
|
||||
if(imp)
|
||||
if(I.imp)
|
||||
return
|
||||
imp.loc = I
|
||||
imp.forceMove(I)
|
||||
I.imp = imp
|
||||
imp = null
|
||||
update_icon()
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
if(!l_arm && !r_arm && !l_leg && !r_leg && !chest && !head)
|
||||
if (M.use(1))
|
||||
var/obj/item/ed209_assembly/B = new /obj/item/ed209_assembly
|
||||
B.loc = get_turf(src)
|
||||
B.forceMove(drop_location())
|
||||
to_chat(user, "<span class='notice'>You arm the robot frame.</span>")
|
||||
var/holding_this = user.get_inactive_held_item()==src
|
||||
qdel(src)
|
||||
@@ -227,7 +227,7 @@
|
||||
O.job = "Cyborg"
|
||||
|
||||
O.cell = chest.cell
|
||||
chest.cell.loc = O
|
||||
chest.cell.forceMove(O)
|
||||
chest.cell = null
|
||||
W.forceMove(O)//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame.
|
||||
if(O.mmi) //we delete the mmi created by robot/New()
|
||||
@@ -271,7 +271,7 @@
|
||||
|
||||
|
||||
O.cell = chest.cell
|
||||
chest.cell.loc = O
|
||||
chest.cell.forceMove(O)
|
||||
chest.cell = null
|
||||
O.locked = panel_locked
|
||||
O.job = "Cyborg"
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>The mister snaps back onto the watertank.</span>")
|
||||
tank.on = 0
|
||||
loc = tank
|
||||
forceMove(tank)
|
||||
|
||||
/obj/item/reagent_containers/spray/mister/attack_self()
|
||||
return
|
||||
@@ -236,13 +236,13 @@
|
||||
tank = parent_tank
|
||||
reagents = tank.reagents
|
||||
max_water = tank.volume
|
||||
loc = tank
|
||||
forceMove(tank)
|
||||
|
||||
|
||||
/obj/item/extinguisher/mini/nozzle/Move()
|
||||
..()
|
||||
if(loc != tank.loc)
|
||||
loc = tank
|
||||
forceMove(tank)
|
||||
return
|
||||
|
||||
/obj/item/extinguisher/mini/nozzle/attack_self(mob/user)
|
||||
@@ -268,7 +268,7 @@
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>The nozzle snaps back onto the tank!</span>")
|
||||
tank.on = 0
|
||||
loc = tank
|
||||
forceMove(tank)
|
||||
|
||||
/obj/item/extinguisher/mini/nozzle/afterattack(atom/target, mob/user)
|
||||
if(nozzle_mode == EXTINGUISHER)
|
||||
|
||||
@@ -447,7 +447,7 @@
|
||||
return
|
||||
if(explosive && wielded)
|
||||
user.say("[war_cry]")
|
||||
explosive.loc = AM
|
||||
explosive.forceMove(AM)
|
||||
explosive.prime()
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
var/obj/item/canvas/C = I
|
||||
user.dropItemToGround(C)
|
||||
painting = C
|
||||
C.loc = get_turf(src)
|
||||
C.forceMove(get_turf(src))
|
||||
C.layer = layer+0.1
|
||||
user.visible_message("<span class='notice'>[user] puts \the [C] on \the [src].</span>","<span class='notice'>You place \the [C] on \the [src].</span>")
|
||||
else
|
||||
@@ -32,7 +32,7 @@
|
||||
var/turf/T = get_turf(src)
|
||||
. = ..()
|
||||
if(painting && painting.loc == T) //Only move if it's near us.
|
||||
painting.loc = get_turf(src)
|
||||
painting.forceMove(get_turf(src))
|
||||
else
|
||||
painting = null
|
||||
|
||||
|
||||
@@ -224,7 +224,7 @@
|
||||
G.use(10)
|
||||
var/obj/structure/displaycase/display = new(src.loc)
|
||||
if(electronics)
|
||||
electronics.loc = display
|
||||
electronics.forceMove(display)
|
||||
display.electronics = electronics
|
||||
if(electronics.one_access)
|
||||
display.req_one_access = electronics.accesses
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
var/obj/structure/chair/C = new /obj/structure/chair(loc)
|
||||
playsound(loc, W.usesound, 50, 1)
|
||||
C.setDir(dir)
|
||||
part.loc = loc
|
||||
part.forceMove(loc)
|
||||
part.master = null
|
||||
part = null
|
||||
qdel(src)
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
return
|
||||
playsound(src.loc, 'sound/effects/splat.ogg', 25, 1)
|
||||
L.visible_message("<span class='danger'>[user] slams [L] onto the meat spike!</span>", "<span class='userdanger'>[user] slams you onto the meat spike!</span>", "<span class='italics'>You hear a squishy wet noise.</span>")
|
||||
L.loc = src.loc
|
||||
L.forceMove(drop_location())
|
||||
L.emote("scream")
|
||||
L.add_splatter_floor()
|
||||
L.adjustBruteLoss(30)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
if(notices > 4)
|
||||
break
|
||||
if(istype(I, /obj/item/paper))
|
||||
I.loc = src
|
||||
I.forceMove(src)
|
||||
notices++
|
||||
icon_state = "nboard0[notices]"
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
return
|
||||
var/obj/item/I = locate(href_list["remove"]) in contents
|
||||
if(istype(I) && I.loc == src)
|
||||
I.loc = usr.loc
|
||||
I.forceMove(usr.loc)
|
||||
usr.put_in_hands(I)
|
||||
notices--
|
||||
icon_state = "nboard0[notices]"
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
T.quick_empty()
|
||||
|
||||
for(var/obj/item/C in oldContents)
|
||||
C.loc = src.loc
|
||||
C.forceMove(drop_location())
|
||||
|
||||
user.visible_message("[user] empties [I] on [src].")
|
||||
return
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
/obj/structure/target_stake/Move()
|
||||
. = ..()
|
||||
if(pinned_target)
|
||||
pinned_target.loc = loc
|
||||
pinned_target.forceMove(loc)
|
||||
|
||||
/obj/structure/target_stake/attackby(obj/item/target/T, mob/user)
|
||||
if(pinned_target)
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/obj/structure/target_stake/proc/removeTarget(mob/user)
|
||||
pinned_target.layer = OBJ_LAYER
|
||||
pinned_target.loc = user.loc
|
||||
pinned_target.forceMove(user.loc)
|
||||
pinned_target.nullPinnedLoc()
|
||||
nullPinnedTarget()
|
||||
if(ishuman(user))
|
||||
@@ -44,7 +44,7 @@
|
||||
user.put_in_hands(pinned_target)
|
||||
to_chat(user, "<span class='notice'>You take the target out of the stake.</span>")
|
||||
else
|
||||
pinned_target.loc = get_turf(user)
|
||||
pinned_target.forceMove(user.drop_location())
|
||||
to_chat(user, "<span class='notice'>You take the target out of the stake.</span>")
|
||||
|
||||
/obj/structure/target_stake/bullet_act(obj/item/projectile/P)
|
||||
|
||||
@@ -216,13 +216,13 @@
|
||||
|
||||
if(do_after(user, 40, target = src))
|
||||
if(!src || electronics)
|
||||
W.loc = src.loc
|
||||
W.forceMove(drop_location())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You install the airlock electronics.</span>")
|
||||
name = "near finished windoor assembly"
|
||||
electronics = W
|
||||
else
|
||||
W.loc = loc
|
||||
W.forceMove(drop_location())
|
||||
|
||||
//Screwdriver to remove airlock electronics. Step 6 undone.
|
||||
else if(istype(W, /obj/item/screwdriver))
|
||||
@@ -240,7 +240,7 @@
|
||||
var/obj/item/electronics/airlock/ae
|
||||
ae = electronics
|
||||
electronics = null
|
||||
ae.loc = loc
|
||||
ae.forceMove(drop_location())
|
||||
|
||||
else if(istype(W, /obj/item/pen))
|
||||
var/t = stripped_input(user, "Enter the name for the door.", name, created_name,MAX_NAME_LEN)
|
||||
@@ -285,7 +285,7 @@
|
||||
else
|
||||
windoor.req_access = electronics.accesses
|
||||
windoor.electronics = electronics
|
||||
electronics.loc = windoor
|
||||
electronics.forceMove(windoor)
|
||||
if(created_name)
|
||||
windoor.name = created_name
|
||||
qdel(src)
|
||||
|
||||
@@ -283,11 +283,10 @@
|
||||
return
|
||||
if(!disassembled)
|
||||
playsound(src, breaksound, 70, 1)
|
||||
var/turf/T = loc
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
for(var/i in debris)
|
||||
var/obj/item/I = i
|
||||
I.loc = T
|
||||
I.forceMove(drop_location())
|
||||
transfer_fingerprints_to(I)
|
||||
qdel(src)
|
||||
update_nearby_icons()
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
var/mob/living/L = A
|
||||
if(L.pulling)
|
||||
var/turf/T = get_step(L.loc,turn(A.dir, 180))
|
||||
L.pulling.loc = T
|
||||
L.pulling.forceMove(T)
|
||||
|
||||
//now we're on the new z_level, proceed the space drifting
|
||||
stoplag()//Let a diagonal move finish, if necessary
|
||||
@@ -199,4 +199,3 @@
|
||||
destination_x = dest_x
|
||||
destination_y = dest_y
|
||||
destination_z = dest_z
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
var/obj/docking_port/stationary/SM = S
|
||||
if(SM.id == "emergency_home")
|
||||
var/new_dir = turn(SM.dir, 180)
|
||||
SM.loc = get_ranged_target_turf(SM, new_dir, rand(3,15))
|
||||
SM.forceMove(get_ranged_target_turf(SM, new_dir, rand(3,15)))
|
||||
break
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -1301,7 +1301,7 @@
|
||||
if(alert(usr, "Send [key_name(M)] to Prison?", "Message", "Yes", "No") != "Yes")
|
||||
return
|
||||
|
||||
M.loc = pick(GLOB.prisonwarp)
|
||||
M.forceMove(pick(GLOB.prisonwarp))
|
||||
to_chat(M, "<span class='adminnotice'>You have been sent to Prison!</span>")
|
||||
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to Prison!")
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
log_admin("[key_name(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]")
|
||||
message_admins("[key_name_admin(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]")
|
||||
usr.loc = T
|
||||
usr.forceMove(T)
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Turf") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
admin_ticket_log(M, msg)
|
||||
if(M)
|
||||
M.forceMove(get_turf(usr))
|
||||
usr.loc = M.loc
|
||||
usr.forceMove(M.loc)
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/sendmob(mob/M in sortmobs())
|
||||
|
||||
@@ -737,7 +737,7 @@ GLOBAL_PROTECT(LastAdminCalledProc)
|
||||
Plasma.air_contents.gases[/datum/gas/plasma][MOLES] = 70
|
||||
Rad.drainratio = 0
|
||||
Rad.loaded_tank = Plasma
|
||||
Plasma.loc = Rad
|
||||
Plasma.forceMove(Rad)
|
||||
|
||||
if(!Rad.active)
|
||||
Rad.toggle_power()
|
||||
@@ -936,4 +936,3 @@ GLOBAL_PROTECT(LastAdminCalledProc)
|
||||
return
|
||||
sort = sortlist[sort]
|
||||
profile_show(src, sort)
|
||||
|
||||
|
||||
@@ -87,10 +87,10 @@
|
||||
return 0
|
||||
if(a_left)
|
||||
a_left.holder = null
|
||||
a_left.loc = T
|
||||
a_left.forceMove(T)
|
||||
if(a_right)
|
||||
a_right.holder = null
|
||||
a_right.loc = T
|
||||
a_right.forceMove(T)
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -15,11 +15,8 @@
|
||||
|
||||
/obj/item/assembly/shock_kit/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/wrench))
|
||||
var/turf/T = loc
|
||||
if(ismob(T))
|
||||
T = T.loc
|
||||
part1.loc = T
|
||||
part2.loc = T
|
||||
part1.forceMove(drop_location())
|
||||
part2.forceMove(drop_location())
|
||||
part1.master = null
|
||||
part2.master = null
|
||||
part1 = null
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
investigate_log("was set to [pump.target_pressure] kPa by [key_name(usr)].", INVESTIGATE_ATMOS)
|
||||
if("eject")
|
||||
if(holding)
|
||||
holding.loc = get_turf(src)
|
||||
holding.forceMove(drop_location())
|
||||
holding = null
|
||||
. = TRUE
|
||||
update_icon()
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
. = TRUE
|
||||
if("eject")
|
||||
if(holding)
|
||||
holding.loc = get_turf(src)
|
||||
holding.forceMove(drop_location())
|
||||
holding = null
|
||||
. = TRUE
|
||||
if("toggle_filter")
|
||||
|
||||
@@ -283,7 +283,7 @@
|
||||
for(var/obj/item/device/flashlight/seclite/S in src)
|
||||
to_chat(user, "<span class='notice'>You unscrew the seclite from [src].</span>")
|
||||
F = null
|
||||
S.loc = get_turf(user)
|
||||
S.forceMove(user.drop_location())
|
||||
update_helmlight(user)
|
||||
S.update_brightness(user)
|
||||
update_icon()
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
I.flags_1 &= ~NODROP_1
|
||||
if(camera)
|
||||
camera.remove_target_ui()
|
||||
camera.loc = user
|
||||
camera.forceMove(user)
|
||||
teleport_now.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/chronowalk(atom/location)
|
||||
@@ -278,19 +278,19 @@
|
||||
if(loc == user)
|
||||
forceMove(get_turf(user))
|
||||
if(user.client && user.client.eye != src)
|
||||
src.loc = get_turf(user)
|
||||
src.forceMove(user.drop_location())
|
||||
user.reset_perspective(src)
|
||||
user.set_machine(src)
|
||||
var/atom/step = get_step(src, direction)
|
||||
if(step)
|
||||
if((step.x <= TRANSITIONEDGE) || (step.x >= (world.maxx - TRANSITIONEDGE - 1)) || (step.y <= TRANSITIONEDGE) || (step.y >= (world.maxy - TRANSITIONEDGE - 1)))
|
||||
if(!src.Move(step))
|
||||
src.loc = step
|
||||
src.forceMove(step)
|
||||
else
|
||||
src.loc = step
|
||||
src.forceMove(step)
|
||||
if((x == holder.x) && (y == holder.y) && (z == holder.z))
|
||||
remove_target_ui()
|
||||
loc = user
|
||||
forceMove(user)
|
||||
else if(!target_ui)
|
||||
create_target_ui()
|
||||
phase_time = world.time + phase_time_length
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
return
|
||||
|
||||
jetpack.turn_off()
|
||||
jetpack.loc = get_turf(src)
|
||||
jetpack.forceMove(drop_location())
|
||||
jetpack = null
|
||||
to_chat(user, "<span class='notice'>You successfully remove the jetpack from [src].</span>")
|
||||
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
if(U.pockets) // storage items conflict
|
||||
return FALSE
|
||||
|
||||
pockets.loc = U
|
||||
pockets.forceMove(U)
|
||||
U.pockets = pockets
|
||||
|
||||
U.attached_accessory = src
|
||||
loc = U
|
||||
forceMove(U)
|
||||
layer = FLOAT_LAYER
|
||||
plane = FLOAT_PLANE
|
||||
if(minimize_when_attached)
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
/obj/item/clothing/accessory/proc/detach(obj/item/clothing/under/U, user)
|
||||
if(pockets && pockets == U.pockets)
|
||||
pockets.loc = src
|
||||
pockets.forceMove(src)
|
||||
U.pockets = null
|
||||
|
||||
for(var/armor_type in armor)
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
ASSERT(H)
|
||||
|
||||
usr.visible_message("\The [usr] plays \the [card.name].")
|
||||
H.loc = get_step(usr,usr.dir)
|
||||
H.forceMove(get_step(usr,usr.dir))
|
||||
|
||||
src.update_icon()
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
timer = rand(1,15)
|
||||
|
||||
/mob/living/simple_animal/shade/howling_ghost/proc/EtherealMove(direction)
|
||||
loc = get_step(src, direction)
|
||||
forceMove(get_step(src, direction))
|
||||
setDir(direction)
|
||||
|
||||
/mob/living/simple_animal/shade/howling_ghost/proc/roam()
|
||||
@@ -220,7 +220,7 @@
|
||||
timer = rand(5,15)
|
||||
playsound(M.loc, pick('sound/spookoween/scary_horn.ogg','sound/spookoween/scary_horn2.ogg', 'sound/spookoween/scary_horn3.ogg'), 300, 1)
|
||||
spawn(12)
|
||||
loc = M.loc
|
||||
forceMove(M.loc)
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/clown/insane/MoveToTarget()
|
||||
stalk(target)
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
if(user.grab_state < GRAB_AGGRESSIVE)
|
||||
to_chat(user, "<span class='warning'>You need a better grip to do that!</span>")
|
||||
return
|
||||
L.loc = src.loc
|
||||
L.forceMove(loc)
|
||||
L.Knockdown(100)
|
||||
visible_message("<span class='danger'>[user] dunks [L] into \the [src]!</span>")
|
||||
user.stop_pulling()
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
bees -= B
|
||||
B.beehome = null
|
||||
if(B.loc == src)
|
||||
B.loc = get_turf(src)
|
||||
B.forceMove(drop_location())
|
||||
relocated++
|
||||
if(relocated)
|
||||
to_chat(user, "<span class='warning'>This queen has a different reagent to some of the bees who live here, those bees will not return to this apiary!</span>")
|
||||
@@ -202,7 +202,7 @@
|
||||
if(B.isqueen)
|
||||
continue
|
||||
if(B.loc == src)
|
||||
B.loc = get_turf(src)
|
||||
B.forceMove(drop_location())
|
||||
B.target = user
|
||||
bees = TRUE
|
||||
if(bees)
|
||||
@@ -222,7 +222,7 @@
|
||||
var/obj/item/honey_frame/HF = pick_n_take(honey_frames)
|
||||
if(HF)
|
||||
if(!user.put_in_active_hand(HF))
|
||||
HF.loc = get_turf(src)
|
||||
HF.forceMove(drop_location())
|
||||
visible_message("<span class='notice'>[user] removes a frame from the apiary.</span>")
|
||||
|
||||
var/amtH = HF.honeycomb_capacity
|
||||
@@ -230,7 +230,7 @@
|
||||
while(honeycombs.len && amtH) //let's pretend you always grab the frame with the most honeycomb on it
|
||||
var/obj/item/reagent_containers/honeycomb/HC = pick_n_take(honeycombs)
|
||||
if(HC)
|
||||
HC.loc = get_turf(user)
|
||||
HC.forceMove(drop_location())
|
||||
amtH--
|
||||
fallen++
|
||||
if(fallen)
|
||||
@@ -242,12 +242,12 @@
|
||||
to_chat(user, "<span class='warning'>There is no queen bee to remove!</span>")
|
||||
return
|
||||
var/obj/item/queen_bee/QB = new()
|
||||
queen_bee.loc = QB
|
||||
queen_bee.forceMove(QB)
|
||||
bees -= queen_bee
|
||||
QB.queen = queen_bee
|
||||
QB.name = queen_bee.name
|
||||
if(!user.put_in_active_hand(QB))
|
||||
QB.loc = get_turf(src)
|
||||
QB.forceMove(drop_location())
|
||||
visible_message("<span class='notice'>[user] removes the queen from the apiary.</span>")
|
||||
queen_bee = null
|
||||
|
||||
@@ -255,8 +255,8 @@
|
||||
new /obj/item/stack/sheet/mineral/wood (loc, 20)
|
||||
for(var/mob/living/simple_animal/hostile/poison/bees/B in bees)
|
||||
if(B.loc == src)
|
||||
B.loc = get_turf(src)
|
||||
B.forceMove(drop_location())
|
||||
for(var/obj/item/honey_frame/HF in honey_frames)
|
||||
if(HF.loc == src)
|
||||
HF.loc = get_turf(src)
|
||||
HF.forceMove(drop_location())
|
||||
qdel(src)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
if(default_deconstruction_screwdriver(user, "biogen-empty-o", "biogen-empty", O))
|
||||
if(beaker)
|
||||
var/obj/item/reagent_containers/glass/B = beaker
|
||||
B.loc = loc
|
||||
B.forceMove(drop_location())
|
||||
beaker = null
|
||||
update_icon()
|
||||
return
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
|
||||
if(href_list["eject_seed"] && !operation)
|
||||
if (seed)
|
||||
seed.loc = src.loc
|
||||
seed.forceMove(drop_location())
|
||||
seed.verb_pickup()
|
||||
seed = null
|
||||
update_genes()
|
||||
@@ -275,7 +275,7 @@
|
||||
update_icon()
|
||||
else if(href_list["eject_disk"] && !operation)
|
||||
if (disk)
|
||||
disk.loc = src.loc
|
||||
disk.forceMove(drop_location())
|
||||
disk.verb_pickup()
|
||||
disk = null
|
||||
update_genes()
|
||||
@@ -368,7 +368,7 @@
|
||||
/obj/machinery/plantgenes/proc/insert_seed(obj/item/seeds/S)
|
||||
if(!istype(S) || seed)
|
||||
return
|
||||
S.loc = src
|
||||
S.forceMove(src)
|
||||
seed = S
|
||||
update_genes()
|
||||
update_icon()
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
var/needs_update = 0 // Checks if the icon needs updating so we don't redraw empty trays every time
|
||||
|
||||
if(myseed && (myseed.loc != src))
|
||||
myseed.loc = src
|
||||
myseed.forceMove(src)
|
||||
|
||||
if(self_sustaining)
|
||||
adjustNutri(1)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
return
|
||||
while(t_amount < t_max)
|
||||
var/obj/item/seeds/t_prod = F.seed.Copy()
|
||||
t_prod.loc = seedloc
|
||||
t_prod.forceMove(seedloc)
|
||||
t_amount++
|
||||
qdel(O)
|
||||
return 1
|
||||
@@ -29,7 +29,7 @@
|
||||
return
|
||||
while(t_amount < t_max)
|
||||
var/obj/item/seeds/t_prod = F.seed.Copy()
|
||||
t_prod.loc = seedloc
|
||||
t_prod.forceMove(seedloc)
|
||||
t_amount++
|
||||
qdel(O)
|
||||
return 1
|
||||
@@ -168,7 +168,7 @@
|
||||
for (var/obj/T in contents)//Now we find the seed we need to vend
|
||||
var/obj/item/seeds/O = T
|
||||
if (O.plantname == href_list["name"] && O.lifespan == href_list["li"] && O.endurance == href_list["en"] && O.maturation == href_list["ma"] && O.production == href_list["pr"] && O.yield == href_list["yi"] && O.potency == href_list["pot"])
|
||||
O.loc = src.loc
|
||||
O.forceMove(drop_location())
|
||||
break
|
||||
|
||||
src.updateUsrDialog()
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
anchored = TRUE
|
||||
for(var/obj/item/I in loc)
|
||||
if(istype(I, /obj/item/book))
|
||||
I.loc = src
|
||||
I.forceMove(src)
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
if(!user.get_active_held_item())
|
||||
user.put_in_hands(choice)
|
||||
else
|
||||
choice.loc = get_turf(src)
|
||||
choice.forceMove(drop_location())
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -289,7 +289,7 @@
|
||||
user.put_in_hands(B)
|
||||
return
|
||||
else
|
||||
B.loc = src.loc
|
||||
B.forceMove(drop_location())
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -541,7 +541,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
|
||||
cache = null
|
||||
if(href_list["eject"])
|
||||
for(var/obj/item/book/B in contents)
|
||||
B.loc = src.loc
|
||||
B.forceMove(drop_location())
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
@@ -589,4 +589,4 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
|
||||
B.icon_state = "book[rand(1,7)]"
|
||||
qdel(P)
|
||||
else
|
||||
P.loc = loc
|
||||
P.forceMove(drop_location())
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
to_chat(M, "<span class='notice'>Your vision returns to normal.</span>")
|
||||
|
||||
wisp.stop_orbit()
|
||||
wisp.loc = src
|
||||
wisp.forceMove(src)
|
||||
icon_state = "lantern-blue"
|
||||
SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Returned")
|
||||
|
||||
@@ -413,7 +413,7 @@
|
||||
|
||||
/obj/item/device/shared_storage/attackby(obj/item/W, mob/user, params)
|
||||
if(bag)
|
||||
bag.loc = user
|
||||
bag.forceMove(user)
|
||||
bag.attackby(W, user, params)
|
||||
|
||||
|
||||
@@ -422,7 +422,7 @@
|
||||
return
|
||||
if(loc == user && user.back && user.back == src)
|
||||
if(bag)
|
||||
bag.loc = user
|
||||
bag.forceMove(user)
|
||||
bag.attack_hand(user)
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
icon_state = "fitnesslifter2"
|
||||
user.setDir(SOUTH)
|
||||
user.Stun(80)
|
||||
user.loc = src.loc
|
||||
user.forceMove(src.loc)
|
||||
var/bragmessage = pick("pushing it to the limit","going into overdrive","burning with determination","rising up to the challenge", "getting strong now","getting ripped")
|
||||
user.visible_message("<B>[user] is [bragmessage]!</B>")
|
||||
var/lifts = 0
|
||||
@@ -67,7 +67,7 @@
|
||||
icon_state = "fitnessweight-c"
|
||||
user.setDir(SOUTH)
|
||||
user.Stun(80)
|
||||
user.loc = src.loc
|
||||
user.forceMove(src.loc)
|
||||
var/mutable_appearance/swole_overlay = mutable_appearance(icon, "fitnessweight-w", WALL_OBJ_LAYER)
|
||||
add_overlay(swole_overlay)
|
||||
var/bragmessage = pick("pushing it to the limit","going into overdrive","burning with determination","rising up to the challenge", "getting strong now","getting ripped")
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
stack_list[inp.type] = s
|
||||
var/obj/item/stack/sheet/storage = stack_list[inp.type]
|
||||
storage.amount += inp.amount //Stack the sheets
|
||||
inp.loc = null //Let the old sheet garbage collect
|
||||
qdel(inp) //Let the old sheet garbage collect
|
||||
while(storage.amount > stack_amt) //Get rid of excessive stackage
|
||||
var/obj/item/stack/sheet/out = new inp.type()
|
||||
out.amount = stack_amt
|
||||
|
||||
@@ -13,3 +13,6 @@
|
||||
|
||||
/mob/camera/experience_pressure_difference()
|
||||
return
|
||||
|
||||
/mob/camera/forceMove(atom/destination)
|
||||
loc = destination
|
||||
|
||||
@@ -28,6 +28,9 @@ INITIALIZE_IMMEDIATE(/mob/dead)
|
||||
/mob/dead/ConveyorMove() //lol
|
||||
return
|
||||
|
||||
/mob/dead/forceMove(atom/destination)
|
||||
loc = destination
|
||||
|
||||
/mob/dead/Stat()
|
||||
..()
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
S.Fade(TRUE)
|
||||
|
||||
if(length(GLOB.newplayer_start))
|
||||
loc = pick(GLOB.newplayer_start)
|
||||
forceMove(pick(GLOB.newplayer_start))
|
||||
else
|
||||
loc = locate(1,1,1)
|
||||
forceMove(locate(1,1,1))
|
||||
|
||||
ComponentInitialize()
|
||||
|
||||
@@ -262,7 +262,7 @@
|
||||
var/obj/effect/landmark/observer_start/O = locate(/obj/effect/landmark/observer_start) in GLOB.landmarks_list
|
||||
to_chat(src, "<span class='notice'>Now teleporting.</span>")
|
||||
if (O)
|
||||
observer.loc = O.loc
|
||||
observer.forceMove(O.loc)
|
||||
else
|
||||
to_chat(src, "<span class='notice'>Teleporting failed. Ahelp an admin please</span>")
|
||||
stack_trace("There's no freaking observer landmark available on this map or you're making observers before the map is initialised")
|
||||
|
||||
@@ -108,7 +108,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
|
||||
else
|
||||
T = locate(round(world.maxx/2), round(world.maxy/2), ZLEVEL_STATION_PRIMARY) //middle of the station
|
||||
|
||||
loc = T
|
||||
forceMove(T)
|
||||
|
||||
if(!name) //To prevent nameless ghosts
|
||||
name = random_unique_name(gender)
|
||||
@@ -287,10 +287,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
var/oldloc = loc
|
||||
|
||||
if(NewLoc)
|
||||
loc = NewLoc
|
||||
forceMove(NewLoc)
|
||||
update_parallax_contents()
|
||||
else
|
||||
loc = get_turf(src) //Get out of closets and such as a ghost
|
||||
forceMove(get_turf(src)) //Get out of closets and such as a ghost
|
||||
if((direct & NORTH) && y < world.maxy)
|
||||
y++
|
||||
else if((direct & SOUTH) && y > 1)
|
||||
@@ -370,7 +370,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
if(!L || !L.len)
|
||||
to_chat(usr, "No area available.")
|
||||
|
||||
usr.loc = pick(L)
|
||||
usr.forceMove(pick(L))
|
||||
update_parallax_contents()
|
||||
|
||||
/mob/dead/observer/verb/follow()
|
||||
@@ -444,7 +444,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
var/turf/T = get_turf(M) //Turf of the destination mob
|
||||
|
||||
if(T && isturf(T)) //Make sure the turf exists, then move the source to that destination.
|
||||
A.loc = T
|
||||
A.forceMove(T)
|
||||
A.update_parallax_contents()
|
||||
else
|
||||
to_chat(A, "This mob is not located in the game world.")
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
brainmob = newbrain.brainmob
|
||||
newbrain.brainmob = null
|
||||
brainmob.loc = src
|
||||
brainmob.forceMove(src)
|
||||
brainmob.container = src
|
||||
if(!newbrain.damaged_brain) // the brain organ hasn't been beaten to death.
|
||||
brainmob.stat = CONSCIOUS //we manually revive the brain mob
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
/obj/item/device/mmi/proc/eject_brain(mob/user)
|
||||
brainmob.container = null //Reset brainmob mmi var.
|
||||
brainmob.loc = brain //Throw mob into brain.
|
||||
brainmob.forceMove(brain) //Throw mob into brain.
|
||||
brainmob.stat = DEAD
|
||||
brainmob.emp_damage = 0
|
||||
brainmob.reset_perspective() //so the brainmob follows the brain organ instead of the mmi. And to update our vision
|
||||
@@ -120,7 +120,7 @@
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
var/obj/item/organ/brain/newbrain = H.getorgan(/obj/item/organ/brain)
|
||||
newbrain.loc = src
|
||||
newbrain.forceMove(src)
|
||||
brain = newbrain
|
||||
else if(!brain)
|
||||
brain = new(src)
|
||||
|
||||
@@ -157,7 +157,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
|
||||
new_name = pick(possible_names)
|
||||
brainmob.name = "[new_name]-[rand(100, 999)]"
|
||||
brainmob.real_name = brainmob.name
|
||||
brainmob.loc = src
|
||||
brainmob.forceMove(src)
|
||||
brainmob.container = src
|
||||
if(autoping)
|
||||
ping_ghosts("created", TRUE)
|
||||
|
||||
@@ -277,7 +277,7 @@ Doesn't work on other aliens/AI.*/
|
||||
if(user.stomach_contents.len)
|
||||
for(var/atom/movable/A in user.stomach_contents)
|
||||
user.stomach_contents.Remove(A)
|
||||
A.loc = user.loc
|
||||
A.forceMove(user.drop_location())
|
||||
if(isliving(A))
|
||||
var/mob/M = A
|
||||
M.reset_perspective()
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
for(var/atom/movable/A in stomach_contents)
|
||||
stomach_contents.Remove(A)
|
||||
new_xeno.stomach_contents.Add(A)
|
||||
A.loc = new_xeno
|
||||
A.forceMove(new_xeno)
|
||||
..()
|
||||
|
||||
//For alien evolution/promotion/queen finder procs. Checks for an active alien of that type
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
if(prob(src.getBruteLoss() - 50))
|
||||
for(var/atom/movable/A in stomach_contents)
|
||||
A.loc = loc
|
||||
A.forceMove(drop_location())
|
||||
stomach_contents.Remove(A)
|
||||
src.gib()
|
||||
|
||||
@@ -332,7 +332,7 @@
|
||||
if (client)
|
||||
client.screen -= W
|
||||
if (W)
|
||||
W.loc = loc
|
||||
W.forceMove(drop_location())
|
||||
W.dropped(src)
|
||||
if (W)
|
||||
W.layer = initial(W.layer)
|
||||
@@ -345,7 +345,7 @@
|
||||
if (client)
|
||||
client.screen -= W
|
||||
if (W)
|
||||
W.loc = loc
|
||||
W.forceMove(drop_location())
|
||||
W.dropped(src)
|
||||
if (W)
|
||||
W.layer = initial(W.layer)
|
||||
@@ -372,7 +372,7 @@
|
||||
|
||||
else
|
||||
if(I == handcuffed)
|
||||
handcuffed.loc = loc
|
||||
handcuffed.forceMove(drop_location())
|
||||
handcuffed.dropped(src)
|
||||
handcuffed = null
|
||||
if(buckled && buckled.buckle_requires_restraints)
|
||||
@@ -380,7 +380,7 @@
|
||||
update_handcuffed()
|
||||
return
|
||||
if(I == legcuffed)
|
||||
legcuffed.loc = loc
|
||||
legcuffed.forceMove(drop_location())
|
||||
legcuffed.dropped()
|
||||
legcuffed = null
|
||||
update_inv_legcuffed()
|
||||
@@ -786,7 +786,7 @@
|
||||
if(prob(50))
|
||||
organs_amt++
|
||||
O.Remove(src)
|
||||
O.loc = get_turf(src)
|
||||
O.forceMove(drop_location())
|
||||
if(organs_amt)
|
||||
to_chat(user, "<span class='notice'>You retrieve some of [src]\'s internal organs!</span>")
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
var/obj/item/bodypart/L = pick(bodyparts)
|
||||
L.embedded_objects |= I
|
||||
I.add_mob_blood(src)//it embedded itself in you, of course it's bloody!
|
||||
I.loc = src
|
||||
I.forceMove(src)
|
||||
L.receive_damage(I.w_class*I.embedded_impact_pain_multiplier)
|
||||
visible_message("<span class='danger'>[I] embeds itself in [src]'s [L.name]!</span>","<span class='userdanger'>[I] embeds itself in your [L.name]!</span>")
|
||||
hitpush = FALSE
|
||||
|
||||
@@ -219,7 +219,7 @@
|
||||
if(prob(25))
|
||||
var/cType = pick(list(SNPC_BRUTE,SNPC_STEALTH,SNPC_MARTYR,SNPC_PSYCHO))
|
||||
T.makeTraitor(cType)
|
||||
T.loc = pick(get_area_turfs(T.job2area(T.myjob)))
|
||||
T.forceMove(pick(get_area_turfs(T.job2area(T.myjob))))
|
||||
if(choice == "Custom")
|
||||
var/cjob = input("Choose Job") as null|anything in SSjob.occupations
|
||||
if(cjob)
|
||||
@@ -256,7 +256,7 @@
|
||||
var/doTele = input("Place the SNPC in their department?") as null|anything in list("Yes","No")
|
||||
if(doTele)
|
||||
if(doTele == "Yes")
|
||||
T.loc = pick(get_area_turfs(T.job2area(T.myjob)))
|
||||
T.forceMove(pick(get_area_turfs(T.job2area(T.myjob))))
|
||||
|
||||
/mob/living/carbon/human/interactive/proc/doSetup()
|
||||
Path_ID = new /obj/item/card/id(src)
|
||||
@@ -506,7 +506,7 @@
|
||||
var/list/slots = list ("left pocket" = slot_l_store,"right pocket" = slot_r_store,"left hand" = slot_hands,"right hand" = slot_hands)
|
||||
if(hands)
|
||||
slots = list ("left hand" = slot_hands,"right hand" = slot_hands)
|
||||
G.loc = src
|
||||
G.forceMove(src)
|
||||
if(G.force && G.force > best_force)
|
||||
best_force = G.force
|
||||
equip_in_one_of_slots(G, slots)
|
||||
@@ -931,7 +931,7 @@
|
||||
/mob/living/carbon/human/interactive/proc/npcDrop(var/obj/item/A,var/blacklist = 0)
|
||||
if(blacklist)
|
||||
blacklistItems += A
|
||||
A.loc = get_turf(src) // drop item works inconsistently
|
||||
A.forceMove(drop_location()) // drop item works inconsistently
|
||||
enforce_hands()
|
||||
update_icons()
|
||||
|
||||
@@ -956,7 +956,7 @@
|
||||
retal_target = traitorTarget
|
||||
else
|
||||
var/obj/item/I = traitorTarget
|
||||
I.loc = get_turf(traitorTarget) // pull it outta them
|
||||
I.forceMove(get_turf(I)) // pull it outta them
|
||||
else
|
||||
take_to_slot(traitorTarget)
|
||||
if(SNPC_MARTYR)
|
||||
@@ -1315,7 +1315,7 @@
|
||||
customEmote("[src] [pick("gibbers","drools","slobbers","claps wildly","spits")], grabbing various foodstuffs from [SF] and sticking them in it's mouth!")
|
||||
for(var/obj/item/A in SF.contents)
|
||||
if(prob(smartness/2))
|
||||
A.loc = src
|
||||
A.forceMove(src)
|
||||
|
||||
|
||||
if(foundCustom)
|
||||
@@ -1398,7 +1398,7 @@
|
||||
if(!Adjacent(toGrab))
|
||||
tryWalk(toGrab)
|
||||
else
|
||||
toGrab.loc = src
|
||||
toGrab.forceMove(src)
|
||||
|
||||
if(finishedList.len > 0)
|
||||
var/obj/structure/table/reinforced/RT
|
||||
@@ -1563,7 +1563,7 @@
|
||||
var/obj/item/W = main_hand
|
||||
W.attack(TARGET,src)
|
||||
else
|
||||
G.loc = get_turf(src) // drop item works inconsistently
|
||||
G.forceMove(drop_location()) // drop item works inconsistently
|
||||
enforce_hands()
|
||||
update_icons()
|
||||
else
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
if(prob(I.embedded_fall_chance))
|
||||
BP.receive_damage(I.w_class*I.embedded_fall_pain_multiplier)
|
||||
BP.embedded_objects -= I
|
||||
I.loc = get_turf(src)
|
||||
I.forceMove(drop_location())
|
||||
visible_message("<span class='danger'>[I] falls out of [name]'s [BP.name]!</span>","<span class='userdanger'>[I] falls out of your [BP.name]!</span>")
|
||||
if(!has_embedded_objects())
|
||||
clear_alert("embeddedobject")
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
job = "AI"
|
||||
|
||||
eyeobj.ai = src
|
||||
eyeobj.loc = src.loc
|
||||
eyeobj.forceMove(src.loc)
|
||||
rename_self("ai")
|
||||
|
||||
holo_icon = getHologramIcon(icon('icons/mob/ai.dmi',"default"))
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
switch(remove_from)
|
||||
if("head")
|
||||
if(inventory_head)
|
||||
inventory_head.loc = src.loc
|
||||
inventory_head.forceMove(drop_location())
|
||||
inventory_head = null
|
||||
update_corgi_fluff()
|
||||
regenerate_icons()
|
||||
@@ -142,7 +142,7 @@
|
||||
return
|
||||
if("back")
|
||||
if(inventory_back)
|
||||
inventory_back.loc = src.loc
|
||||
inventory_back.forceMove(drop_location())
|
||||
inventory_back = null
|
||||
update_corgi_fluff()
|
||||
regenerate_icons()
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
L.dropItemToGround(src)
|
||||
|
||||
contents -= drone
|
||||
drone.loc = get_turf(src)
|
||||
drone.forceMove(drop_location())
|
||||
drone.reset_perspective()
|
||||
drone.setDir(SOUTH )//Looks better
|
||||
drone.visible_message("<span class='warning'>[drone] uncurls!</span>")
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
|
||||
/mob/living/simple_animal/parrot/death(gibbed)
|
||||
if(held_item)
|
||||
held_item.loc = src.loc
|
||||
held_item.forceMove(drop_location())
|
||||
held_item = null
|
||||
walk(src,0)
|
||||
|
||||
@@ -700,7 +700,7 @@
|
||||
continue
|
||||
|
||||
held_item = I
|
||||
I.loc = src
|
||||
I.forceMove(src)
|
||||
visible_message("[src] grabs [held_item]!", "<span class='notice'>You grab [held_item]!</span>", "<span class='italics'>You hear the sounds of wings flapping furiously.</span>")
|
||||
return held_item
|
||||
|
||||
@@ -775,7 +775,7 @@
|
||||
if(!drop_gently)
|
||||
if(istype(held_item, /obj/item/grenade))
|
||||
var/obj/item/grenade/G = held_item
|
||||
G.loc = src.loc
|
||||
G.forceMove(drop_location())
|
||||
G.prime()
|
||||
to_chat(src, "You let go of [held_item]!")
|
||||
held_item = null
|
||||
@@ -783,7 +783,7 @@
|
||||
|
||||
to_chat(src, "You drop [held_item].")
|
||||
|
||||
held_item.loc = src.loc
|
||||
held_item.forceMove(drop_location())
|
||||
held_item = null
|
||||
return 1
|
||||
|
||||
@@ -799,7 +799,7 @@
|
||||
for(var/atom/movable/AM in view(src,1))
|
||||
for(var/perch_path in desired_perches)
|
||||
if(istype(AM, perch_path))
|
||||
src.loc = AM.loc
|
||||
src.forceMove(AM.loc)
|
||||
icon_state = icon_sit
|
||||
return
|
||||
to_chat(src, "<span class='warning'>There is no perch nearby to sit on!</span>")
|
||||
@@ -836,7 +836,7 @@
|
||||
/mob/living/simple_animal/parrot/proc/perch_on_human(mob/living/carbon/human/H)
|
||||
if(!H)
|
||||
return
|
||||
loc = get_turf(H)
|
||||
forceMove(get_turf(H))
|
||||
H.buckle_mob(src, force=1)
|
||||
pixel_y = 9
|
||||
pixel_x = pick(-8,8) //pick left or right shoulder
|
||||
@@ -994,7 +994,7 @@
|
||||
return
|
||||
var/datum/disease/parrot_possession/P = new
|
||||
P.parrot = src
|
||||
loc = H
|
||||
forceMove(H)
|
||||
H.ForceContractDisease(P)
|
||||
parrot_interest = null
|
||||
H.visible_message("<span class='danger'>[src] dive bombs into [H]'s chest and vanishes!</span>", "<span class='userdanger'>[src] dive bombs into your chest, vanishing! This can't be good!</span>")
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
return
|
||||
mob.control_object.setDir(direct)
|
||||
else
|
||||
mob.control_object.loc = get_step(mob.control_object,direct)
|
||||
mob.control_object.forceMove(get_step(mob.control_object,direct))
|
||||
return
|
||||
|
||||
#define MOVEMENT_DELAY_BUFFER 0.75
|
||||
|
||||
@@ -58,7 +58,6 @@
|
||||
O.suiciding = suiciding
|
||||
if(hellbound)
|
||||
O.hellbound = hellbound
|
||||
O.loc = loc
|
||||
O.a_intent = INTENT_HARM
|
||||
|
||||
//keep viruses?
|
||||
@@ -113,7 +112,7 @@
|
||||
var/obj/item/bodypart/chest/torso = O.get_bodypart("chest")
|
||||
if(cavity_object)
|
||||
torso.cavity_item = cavity_object //cavity item is given to the new chest
|
||||
cavity_object.loc = O
|
||||
cavity_object.forceMove(O)
|
||||
|
||||
for(var/missing_zone in missing_bodyparts_zones)
|
||||
var/obj/item/bodypart/BP = O.get_bodypart(missing_zone)
|
||||
@@ -220,8 +219,6 @@
|
||||
if(hellbound)
|
||||
O.hellbound = hellbound
|
||||
|
||||
O.loc = loc
|
||||
|
||||
//keep viruses?
|
||||
if (tr_flags & TR_KEEPVIRUS)
|
||||
O.viruses = viruses
|
||||
@@ -276,7 +273,7 @@
|
||||
var/obj/item/bodypart/chest/torso = get_bodypart("chest")
|
||||
if(cavity_object)
|
||||
torso.cavity_item = cavity_object //cavity item is given to the new chest
|
||||
cavity_object.loc = O
|
||||
cavity_object.forceMove(O)
|
||||
|
||||
for(var/missing_zone in missing_bodyparts_zones)
|
||||
var/obj/item/bodypart/BP = O.get_bodypart(missing_zone)
|
||||
@@ -401,7 +398,6 @@
|
||||
R.mmi.brainmob.real_name = real_name //the name of the brain inside the cyborg is the robotized human's name.
|
||||
R.mmi.brainmob.name = real_name
|
||||
|
||||
R.loc = loc
|
||||
R.job = "Cyborg"
|
||||
R.notify_ai(NEW_BORG)
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
if(href_list["pen"])
|
||||
if(haspen)
|
||||
haspen.loc = usr.loc
|
||||
haspen.forceMove(usr.loc)
|
||||
usr.put_in_hands(haspen)
|
||||
haspen = null
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
if(href_list["remove"])
|
||||
var/obj/item/P = locate(href_list["remove"])
|
||||
if(istype(P) && P.loc == src)
|
||||
P.loc = usr.loc
|
||||
P.forceMove(usr.loc)
|
||||
usr.put_in_hands(P)
|
||||
if(P == toppaper)
|
||||
toppaper = null
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
if(href_list["remove"])
|
||||
var/obj/item/I = locate(href_list["remove"])
|
||||
if(istype(I) && I.loc == src)
|
||||
I.loc = usr.loc
|
||||
I.forceMove(usr.loc)
|
||||
usr.put_in_hands(I)
|
||||
|
||||
if(href_list["read"])
|
||||
|
||||
@@ -247,10 +247,10 @@
|
||||
|
||||
/obj/machinery/photocopier/proc/remove_photocopy(obj/item/O, mob/user)
|
||||
if(!issilicon(user)) //surprised this check didn't exist before, putting stuff in AI's hand is bad
|
||||
O.loc = user.loc
|
||||
O.forceMove(user.loc)
|
||||
user.put_in_hands(O)
|
||||
else
|
||||
O.loc = src.loc
|
||||
O.forceMove(drop_location())
|
||||
to_chat(user, "<span class='notice'>You take [O] out of [src].</span>")
|
||||
|
||||
/obj/machinery/photocopier/attackby(obj/item/O, mob/user, params)
|
||||
@@ -338,16 +338,16 @@
|
||||
else
|
||||
user.visible_message("<span class='warning'>[user] puts [target] onto the photocopier!</span>", "<span class='notice'>You put [target] onto the photocopier.</span>")
|
||||
|
||||
target.loc = get_turf(src)
|
||||
target.forceMove(drop_location())
|
||||
ass = target
|
||||
|
||||
if(photocopy)
|
||||
photocopy.loc = src.loc
|
||||
photocopy.forceMove(drop_location())
|
||||
visible_message("<span class='warning'>[photocopy] is shoved out of the way by [ass]!</span>")
|
||||
photocopy = null
|
||||
|
||||
else if(copy)
|
||||
copy.loc = src.loc
|
||||
copy.forceMove(drop_location())
|
||||
visible_message("<span class='warning'>[copy] is shoved out of the way by [ass]!</span>")
|
||||
copy = null
|
||||
updateUsrDialog()
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
|
||||
if(href_list["ejectjar"])
|
||||
if(fueljar)
|
||||
fueljar.loc = src.loc
|
||||
fueljar.forceMove(drop_location())
|
||||
fueljar = null
|
||||
//fueljar.control_unit = null currently it does not care where it is
|
||||
//update_icon() when we have the icon for it
|
||||
|
||||
@@ -972,7 +972,7 @@
|
||||
else
|
||||
to_chat(occupier, "<span class='danger'>Primary core damaged, unable to return core processes.</span>")
|
||||
if(forced)
|
||||
occupier.loc = src.loc
|
||||
occupier.forceMove(drop_location())
|
||||
occupier.death()
|
||||
occupier.gib()
|
||||
for(var/obj/item/pinpointer/nuke/P in GLOB.pinpointer_list)
|
||||
|
||||
@@ -427,7 +427,7 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
var/obj/O = P_list[1]
|
||||
// remove the cut cable from its turf and powernet, so that it doesn't get count in propagate_network worklist
|
||||
if(remove)
|
||||
loc = null
|
||||
moveToNullspace()
|
||||
powernet.remove_cable(src) //remove the cut cable from its powernet
|
||||
|
||||
addtimer(CALLBACK(O, .proc/auto_propogate_cut_cable, O), 0) //so we don't rebuild the network X times when singulo/explosion destroys a line of X cables
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
var/obj/item/tank/internals/plasma/Z = src.loaded_tank
|
||||
if (!Z)
|
||||
return
|
||||
Z.loc = get_turf(src)
|
||||
Z.forceMove(drop_location())
|
||||
Z.layer = initial(Z.layer)
|
||||
Z.plane = initial(Z.plane)
|
||||
src.loaded_tank = null
|
||||
|
||||
@@ -285,9 +285,8 @@ field_generator power level display
|
||||
var/field_dir = get_dir(T,get_step(G.loc, NSEW))
|
||||
T = get_step(T, NSEW)
|
||||
if(!locate(/obj/machinery/field/containment) in T)
|
||||
var/obj/machinery/field/containment/CF = new/obj/machinery/field/containment()
|
||||
var/obj/machinery/field/containment/CF = new(T)
|
||||
CF.set_master(src,G)
|
||||
CF.loc = T
|
||||
CF.setDir(field_dir)
|
||||
fields += CF
|
||||
G.fields += CF
|
||||
|
||||
@@ -419,7 +419,7 @@
|
||||
new /obj/item/shard( src.loc )
|
||||
var/obj/item/circuitboard/computer/solar_control/M = new /obj/item/circuitboard/computer/solar_control( A )
|
||||
for (var/obj/C in src)
|
||||
C.loc = src.loc
|
||||
C.forceMove(drop_location())
|
||||
A.circuit = M
|
||||
A.state = 3
|
||||
A.icon_state = "3"
|
||||
@@ -430,7 +430,7 @@
|
||||
var/obj/structure/frame/computer/A = new /obj/structure/frame/computer( src.loc )
|
||||
var/obj/item/circuitboard/computer/solar_control/M = new /obj/item/circuitboard/computer/solar_control( A )
|
||||
for (var/obj/C in src)
|
||||
C.loc = src.loc
|
||||
C.forceMove(drop_location())
|
||||
A.circuit = M
|
||||
A.state = 4
|
||||
A.icon_state = "4"
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
S.glass_type = /obj/item/stack/sheet/glass
|
||||
S.tracker = 1
|
||||
S.anchored = TRUE
|
||||
S.loc = src
|
||||
S.forceMove(src)
|
||||
update_icon()
|
||||
|
||||
//updates the tracker icon and the facing angle for the control computer
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
/obj/item/ammo_casing/caseless/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread)
|
||||
if (..()) //successfully firing
|
||||
loc = null
|
||||
moveToNullspace()
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
@@ -51,10 +51,10 @@
|
||||
var/obj/item/ammo_casing/bullet = stored_ammo[i]
|
||||
if(!bullet || !bullet.BB) // found a spent ammo
|
||||
stored_ammo[i] = R
|
||||
R.loc = src
|
||||
R.forceMove(src)
|
||||
|
||||
if(bullet)
|
||||
bullet.loc = get_turf(src.loc)
|
||||
bullet.forceMove(drop_location())
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
@@ -77,9 +77,8 @@
|
||||
..()
|
||||
var/obj/item/gun/G = locate(/obj/item/gun) in contents
|
||||
if(G)
|
||||
G.loc = loc
|
||||
qdel(G.pin)
|
||||
G.pin = null
|
||||
G.forceMove(loc)
|
||||
QDEL_NULL(G.pin)
|
||||
visible_message("[G] can now fit a new pin, but the old one was destroyed in the process.", null, null, 3)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -107,13 +107,13 @@
|
||||
/obj/item/gun/ballistic/attack_self(mob/living/user)
|
||||
var/obj/item/ammo_casing/AC = chambered //Find chambered round
|
||||
if(magazine)
|
||||
magazine.loc = get_turf(src.loc)
|
||||
magazine.forceMove(drop_location())
|
||||
user.put_in_hands(magazine)
|
||||
magazine.update_icon()
|
||||
magazine = null
|
||||
to_chat(user, "<span class='notice'>You pull the magazine out of \the [src].</span>")
|
||||
else if(chambered)
|
||||
AC.loc = get_turf(src)
|
||||
AC.forceMove(drop_location())
|
||||
AC.SpinAnimation(10, 1)
|
||||
chambered = null
|
||||
to_chat(user, "<span class='notice'>You unload the round from \the [src]'s chamber.</span>")
|
||||
@@ -218,4 +218,3 @@
|
||||
desc = "A foreign knock-off suppressor, it feels flimsy, cheap, and brittle. Still fits all weapons."
|
||||
icon = 'icons/obj/guns/projectile.dmi'
|
||||
icon_state = "suppressor"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user