Display case update, some forceMove updates

This commit is contained in:
Markolie
2015-09-14 20:21:56 +02:00
parent 14e35d52bf
commit 59b78376e9
14 changed files with 148 additions and 78 deletions
+2
View File
@@ -0,0 +1,2 @@
/datum/alarm_handler/burglar
category = "Burglar Alarms"
+6 -6
View File
@@ -27,7 +27,7 @@
if(!istype(W))
return 0
if(!l_hand)
W.loc = src //TODO: move to equipped?
W.forceMove(src) //TODO: move to equipped?
l_hand = W
W.layer = 20 //TODO: move to equipped?
// l_hand.screen_loc = ui_lhand
@@ -45,7 +45,7 @@
if(!istype(W))
return 0
if(!r_hand)
W.loc = src
W.forceMove(src)
r_hand = W
W.layer = 20
// r_hand.screen_loc = ui_rhand
@@ -71,7 +71,7 @@
//This is probably the main one you need to know :)
//Just puts stuff on the floor for most mobs, since all mobs have hands but putting stuff in the AI/corgi/ghost hand is VERY BAD.
/mob/proc/put_in_hands(obj/item/W)
W.loc = get_turf(src)
W.forceMove(get_turf(src))
W.layer = initial(W.layer)
W.dropped()
@@ -114,7 +114,7 @@
if(I)
if(client)
client.screen -= I
I.loc = loc
I.forceMove(loc)
I.dropped(src)
if(I)
I.layer = initial(I.layer)
@@ -249,13 +249,13 @@
if (src.back && istype(src.back, /obj/item/weapon/storage/backpack))
var/obj/item/weapon/storage/backpack/B = src.back
if(B.contents.len < B.storage_slots && W.w_class <= B.max_w_class)
W.loc = B
W.forceMove(B)
equipped = 1
if(equipped)
W.layer = 20
if(src.back && W.loc != src.back)
W.loc = src
W.forceMove(src)
else
if (del_on_fail)
qdel(W)
@@ -1779,4 +1779,9 @@
if(I.body_parts_covered & HEAD)
prot["head"] = max(1 - I.permeability_coefficient, prot["head"])
var/protection = (prot["head"] + prot["arms"] + prot["feet"] + prot["legs"] + prot["groin"] + prot["chest"] + prot["hands"])/7
return protection
return protection
/mob/living/carbon/human/proc/get_print()
if(!dna)
return 0
return md5(dna.uni_identity)
@@ -41,7 +41,7 @@
if(!register_alarms)
return
var/list/register_to = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
var/list/register_to = list(atmosphere_alarm, burglar_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
for(var/datum/alarm_handler/AH in register_to)
AH.register(src, /mob/living/silicon/proc/receive_alarm)
queued_alarms[AH] = list() // Makes sure alarms remain listed in consistent order
+1 -1
View File
@@ -1235,7 +1235,7 @@ mob/proc/yank_out_object()
var/mob/living/carbon/human/human_user = U
human_user.bloody_hands(H)
selection.loc = get_turf(src)
selection.forceMove(get_turf(src))
if(!(U.l_hand && U.r_hand))
U.put_in_hands(selection)
+5 -5
View File
@@ -170,7 +170,7 @@
if(!mob.control_object) return
mob.control_object.dir = direct
else
mob.control_object.loc = get_step(mob.control_object,direct)
mob.control_object.forceMove(get_step(mob.control_object,direct))
return
@@ -391,7 +391,7 @@
var/mob/living/L = mob
switch(L.incorporeal_move)
if(1)
L.loc = get_step(L, direct)
L.forceMove(get_step(L, direct))
L.dir = direct
if(2)
if(prob(50))
@@ -420,7 +420,7 @@
return
else
return
L.loc = locate(locx,locy,mobloc.z)
L.forceMove(locate(locx,locy,mobloc.z))
spawn(0)
var/limit = 2//For only two trailing shadows.
for(var/turf/T in getline(mobloc, L.loc))
@@ -431,7 +431,7 @@
else
spawn(0)
anim(mobloc,mob,'icons/mob/mob.dmi',,"shadow",,L.dir)
L.loc = get_step(L, direct)
L.forceMove(get_step(L, direct))
L.dir = direct
if(3) //Incorporeal move, but blocked by holy-watered tiles
var/turf/simulated/floor/stepTurf = get_step(L, direct)
@@ -441,7 +441,7 @@
spawn(2)
L.notransform = 0
else
L.loc = get_step(L, direct)
L.forceMove(get_step(L, direct))
L.dir = direct
return 1
+2 -2
View File
@@ -5,7 +5,7 @@
/datum/nano_module/alarm_monitor/all/New()
..()
alarm_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
alarm_handlers = list(atmosphere_alarm, burglar_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
/datum/nano_module/alarm_monitor/engineering/New()
..()
@@ -13,7 +13,7 @@
/datum/nano_module/alarm_monitor/security/New()
..()
alarm_handlers = list(camera_alarm, motion_alarm)
alarm_handlers = list(burglar_alarm, camera_alarm, motion_alarm)
/datum/nano_module/alarm_monitor/proc/register(var/object, var/procName)
for(var/datum/alarm_handler/AH in alarm_handlers)