mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 05:57:24 +01:00
Now disassembling of bed/chair will release bucked person.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@671 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
+55
-66
@@ -57,49 +57,72 @@
|
||||
return
|
||||
|
||||
/obj/stool/bed/Del()
|
||||
for(var/mob/M in src.loc)
|
||||
for(var/mob/M in src.buckled_mobs)
|
||||
if (M.buckled == src)
|
||||
M.buckled = null
|
||||
M.lying = 0
|
||||
M.anchored = 0
|
||||
unbuckle_all()
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/stool/bed/MouseDrop_T(mob/M as mob, mob/user as mob)
|
||||
/obj/stool/proc/unbuckle_all()
|
||||
for(var/mob/M in src:buckled_mobs)
|
||||
if (M.buckled == src)
|
||||
M.buckled = null
|
||||
M.anchored = 0
|
||||
|
||||
/obj/stool/proc/manual_unbuckle_all(mob/user as mob)
|
||||
var/N = 0;
|
||||
for(var/mob/M in src:buckled_mobs)
|
||||
if (M.buckled == src)
|
||||
if (M != user)
|
||||
M.visible_message(\
|
||||
"\blue [M.name] was unbuckled by [user.name]!",\
|
||||
"You unbuckled from [src] by [user.name].",\
|
||||
"You hear metal clanking")
|
||||
else
|
||||
M.visible_message(\
|
||||
"\blue [M.name] was unbuckled himself!",\
|
||||
"You unbuckle yourself from [src].",\
|
||||
"You hear metal clanking")
|
||||
// world << "[M] is no longer buckled to [src]"
|
||||
M.anchored = 0
|
||||
M.buckled = null
|
||||
N++
|
||||
return N
|
||||
|
||||
/obj/stool/proc/buckle_mob(mob/M as mob, mob/user as mob)
|
||||
if (!ticker)
|
||||
user << "You can't buckle anyone in before the game starts."
|
||||
if ((!( istype(M, /mob) ) || get_dist(src, user) > 1 || M.loc != src.loc || user.restrained() || usr.stat))
|
||||
return
|
||||
if (M == usr)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] buckles in!", M)
|
||||
M.visible_message(\
|
||||
"\blue [M.name] buckles in!",\
|
||||
"You buckle yourself to [src].",\
|
||||
"You hear metal clanking")
|
||||
else
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] is buckled in by [].", M, user)
|
||||
M.lying = 1
|
||||
M.visible_message(\
|
||||
"\blue [M.name] is buckled in to [src] by [user.name]!",\
|
||||
"You buckled in to [src] by [user.name].",\
|
||||
"You hear metal clanking")
|
||||
M.anchored = 1
|
||||
M.buckled = src
|
||||
M.loc = src.loc
|
||||
src:buckled_mobs += M
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
|
||||
/obj/stool/bed/MouseDrop_T(mob/M as mob, mob/user as mob)
|
||||
buckle_mob(M, user)
|
||||
M.lying = 1
|
||||
return
|
||||
|
||||
/obj/stool/bed/attack_hand(mob/user as mob)
|
||||
for(var/mob/M in src.loc)
|
||||
if (M.buckled)
|
||||
if (M != user)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] is unbuckled by [].", M, user)
|
||||
else
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] unbuckles.", M)
|
||||
// world << "[M] is no longer buckled to [src]"
|
||||
M.anchored = 0
|
||||
M.buckled = null
|
||||
src.add_fingerprint(user)
|
||||
for(var/mob/M in src.buckled_mobs)
|
||||
if (M.buckled == src)
|
||||
M.lying = 0
|
||||
if (manual_unbuckle_all(user))
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/stool/chair/e_chair/New()
|
||||
@@ -176,9 +199,7 @@
|
||||
return
|
||||
|
||||
/obj/stool/chair/ex_act(severity)
|
||||
for(var/mob/M in src.loc)
|
||||
if(M.buckled == src)
|
||||
M.buckled = null
|
||||
unbuckle_all()
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
del(src)
|
||||
@@ -195,9 +216,7 @@
|
||||
|
||||
/obj/stool/chair/blob_act()
|
||||
if(prob(75))
|
||||
for(var/mob/M in src.loc)
|
||||
if(M.buckled == src)
|
||||
M.buckled = null
|
||||
unbuckle_all()
|
||||
del(src)
|
||||
|
||||
/obj/stool/chair/New()
|
||||
@@ -208,9 +227,7 @@
|
||||
return
|
||||
|
||||
/obj/stool/chair/Del()
|
||||
for(var/mob/M in src.loc)
|
||||
if (M.buckled == src)
|
||||
M.buckled = null
|
||||
unbuckle_all()
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -226,41 +243,13 @@
|
||||
return
|
||||
|
||||
/obj/stool/chair/MouseDrop_T(mob/M as mob, mob/user as mob)
|
||||
if (!ticker)
|
||||
user << "You can't buckle anyone in before the game starts."
|
||||
return
|
||||
if ((!( istype(M, /mob) ) || get_dist(src, user) > 1 || M.loc != src.loc || user.restrained() || usr.stat))
|
||||
return
|
||||
if (M == usr)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] buckles in!", user)
|
||||
else
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] is buckled in by []!", M, user)
|
||||
M.anchored = 1
|
||||
M.buckled = src
|
||||
M.loc = src.loc
|
||||
src.add_fingerprint(user)
|
||||
buckle_mob(M, user)
|
||||
return
|
||||
|
||||
/obj/stool/chair/attack_paw(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/stool/chair/attack_hand(mob/user as mob)
|
||||
for(var/mob/M in src.loc)
|
||||
if (M.buckled)
|
||||
if (M != user)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] is unbuckled by [].", M, user)
|
||||
else
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] unbuckles.", M)
|
||||
// world << "[M] is no longer buckled to [src]"
|
||||
M.anchored = 0
|
||||
M.buckled = null
|
||||
src.add_fingerprint(user)
|
||||
if (manual_unbuckle_all(user))
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user