mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-09 22:25:46 +01:00
WIP on detective work overhaul
Give command ported, with more sanity checks (It works, now!) Added BS12 c4 in addition to TG c4 Fixed server air alarm Book length increased 3 fold. Blood and gibs now maintains DNA Fixed evidence bags Ported the awesome BS12 handcuff stuff, with flavor text.
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
var/list/replacechars = list("'","\"",">","<","(",")")
|
||||
for(var/rep in replacechars)
|
||||
msg = dd_list2text((dd_text2list(msg, rep)))
|
||||
world << msg
|
||||
send2adminirc("#bs12admin","HELP: [src.key]: [msg]")
|
||||
if(tension_master)
|
||||
tension_master.new_adminhelp()
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
mob/living/carbon/verb/give()
|
||||
set name = "Give"
|
||||
set src in view(1)
|
||||
if(src.stat == 2 || usr.stat == 2|| src.client == null)
|
||||
return
|
||||
if(src == usr)
|
||||
usr << "I feel stupider, suddenly."
|
||||
return
|
||||
var/obj/item/I
|
||||
if(!usr.hand && usr.r_hand == null)
|
||||
usr << "You don't have anything in your right hand to give to [src.name]"
|
||||
return
|
||||
if(usr.hand && usr.l_hand == null)
|
||||
usr << "You don't have anything in your left hand to give to [src.name]"
|
||||
return
|
||||
if(usr.hand)
|
||||
I = usr.l_hand
|
||||
else if(!usr.hand)
|
||||
I = usr.r_hand
|
||||
if(!I)
|
||||
return
|
||||
var/obj/item/weapon/T = new(usr.loc)
|
||||
if(!src.loc.Enter(T))
|
||||
usr << "Can't reach him"
|
||||
del(T)
|
||||
return
|
||||
del(T)
|
||||
if(src.r_hand == null)
|
||||
switch(alert(src,"[usr.name] wants to give you \a [I.name]?",,"Yes","No"))
|
||||
if("Yes")
|
||||
if(!check_can_reach(usr,src))
|
||||
usr << "You need to keep in reaching distance."
|
||||
src << "[usr.name] moved too far away."
|
||||
return
|
||||
if((usr.hand && usr.l_hand != I) || (!usr.hand && usr.r_hand != I))
|
||||
usr << "You need to keep the item in your active hand."
|
||||
src << "[usr.name] seem to have given up on giving \the [I.name] to you."
|
||||
return
|
||||
if(src.r_hand != null)
|
||||
if(src.l_hand == null)
|
||||
usr.drop_item(I)
|
||||
src.l_hand = I
|
||||
else
|
||||
usr << "Their hands are full."
|
||||
else
|
||||
usr.drop_item(I)
|
||||
src.r_hand = I
|
||||
I.loc = src
|
||||
I.layer = 20
|
||||
I.add_fingerprint(src)
|
||||
src.update_clothing()
|
||||
usr.update_clothing()
|
||||
action_message(src,"[usr.name] handed \the [I.name] to [src.name].")
|
||||
if("No")
|
||||
action_message(src,"[usr.name] tried to hand [I.name] to [src.name] but [src.name] didn't want it.")
|
||||
else if(src.l_hand == null)
|
||||
switch(alert(src,"[src.name] wants to give you \a [I.name]?",,"Yes","No"))
|
||||
if("Yes")
|
||||
if(!check_can_reach(usr,src))
|
||||
usr << "You need to keep in reaching distance."
|
||||
src << "[usr.name] moved too far away."
|
||||
return
|
||||
if((usr.hand && usr.l_hand != I) || (!usr.hand && usr.r_hand != I))
|
||||
usr << "You need to keep the item in your active hand."
|
||||
src << "[usr.name] seem to have given up on giving \the [I.name] to you."
|
||||
return
|
||||
if(src.l_hand != null)
|
||||
if(src.r_hand == null)
|
||||
usr.drop_item(I)
|
||||
src.r_hand = I
|
||||
else
|
||||
usr << "Their hands are full."
|
||||
else
|
||||
usr.drop_item(I)
|
||||
src.l_hand = I
|
||||
I.loc = src
|
||||
I.layer = 20
|
||||
I.add_fingerprint(src)
|
||||
src.update_clothing()
|
||||
usr.update_clothing()
|
||||
action_message(src,"[usr.name] handed \the [I.name] to [src.name].")
|
||||
if("No")
|
||||
action_message(src,"[usr.name] tried to hand [I.name] to [src.name] but [src.name] didn't want it.")
|
||||
else
|
||||
usr << "[src.name]\s hands are full."
|
||||
|
||||
proc/action_message(var/mob/living/carbon/A,var/message)
|
||||
if (message != "")
|
||||
if (1 & 1)
|
||||
for (var/mob/O in viewers(A.loc, null))
|
||||
O.show_message(message, 1)
|
||||
else if (1 & 2)
|
||||
for (var/mob/O in hearers(A.loc, null))
|
||||
O.show_message(message, 1)
|
||||
else if (message != "")
|
||||
if (1 & 1)
|
||||
for (var/mob/O in viewers(A, null))
|
||||
O.show_message(message, 1)
|
||||
else if (1 & 2)
|
||||
for (var/mob/O in hearers(A, null))
|
||||
O.show_message(message, 1)
|
||||
@@ -793,19 +793,19 @@
|
||||
spawn()
|
||||
if(key)
|
||||
if(istype(src, /mob/living/silicon))
|
||||
robogibs(loc, viruses, name)
|
||||
robogibs(loc, viruses)
|
||||
else if (istype(src, /mob/living/carbon/alien))
|
||||
xgibs(loc, viruses, name)
|
||||
xgibs(loc, viruses)
|
||||
else
|
||||
gibs(loc, viruses, name, dna)
|
||||
gibs(loc, viruses, dna)
|
||||
|
||||
else
|
||||
if(istype(src, /mob/living/silicon))
|
||||
robogibs(loc, viruses)
|
||||
else if(istype(src, /mob/living/carbon/alien))
|
||||
xgibs(loc, viruses, name)
|
||||
xgibs(loc, viruses)
|
||||
else
|
||||
gibs(loc, viruses, name, dna)
|
||||
gibs(loc, viruses, dna)
|
||||
sleep(15)
|
||||
for(var/obj/item/I in src.contents)
|
||||
I.loc = get_turf(src)
|
||||
|
||||
@@ -429,6 +429,11 @@
|
||||
O.show_message(text("\red <B>[] resists!</B>", usr), 1)
|
||||
|
||||
if(usr:handcuffed && usr:canmove && (usr.last_special <= world.time))
|
||||
var/breakouttime = 1200
|
||||
var/displaytime = 2
|
||||
if(!usr:canmove)
|
||||
breakouttime = 2400
|
||||
displaytime = 4
|
||||
usr.next_move = world.time + 100
|
||||
usr.last_special = world.time + 100
|
||||
if(isalienadult(usr) || usr.mutations & HULK)//Don't want to do a lot of logic gating here.
|
||||
@@ -444,17 +449,31 @@
|
||||
del(usr:handcuffed)
|
||||
usr:handcuffed = null
|
||||
else
|
||||
usr << "\red You attempt to remove your handcuffs. (This will take around 2 minutes and you need to stand still)"
|
||||
usr << "\red You attempt to remove your handcuffs. (This will take around [displaytime] minutes and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] attempts to remove the handcuffs!</B>", usr), 1)
|
||||
spawn(0)
|
||||
if(do_after(usr, 1200))
|
||||
if(!usr:handcuffed) return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to remove the handcuffs!</B>", usr), 1)
|
||||
usr << "\blue You successfully remove your handcuffs."
|
||||
usr:handcuffed:loc = usr:loc
|
||||
usr:handcuffed = null
|
||||
var/increment = 150
|
||||
for(var/i = 0, i < breakouttime, i += increment)
|
||||
if(!do_after(usr, increment))
|
||||
return
|
||||
|
||||
else
|
||||
usr << pick("You hear something click, but it doesn't open yet.", // - Uristqwerty
|
||||
"The latch resists!", // - IRC: BowlSoldier
|
||||
"The chain is starting to give!", // - IRC: BowlSoldier
|
||||
"The chain bends a little.", // - IRC: STALKER
|
||||
"Your wrist hurts.", // - IRC: STALKER
|
||||
"Unnng", // - IRC: Doug_H_Nuts
|
||||
"The chain jangles a bit.", // - SkyMarshal
|
||||
"\red Hurry up, dammit!", // - SkyMarshal
|
||||
"This is exhausting!") // - SkyMarshal
|
||||
if(!usr:handcuffed) return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to remove the handcuffs!</B>", usr), 1)
|
||||
usr << "\blue You successfully remove your handcuffs."
|
||||
usr:handcuffed:loc = usr:loc
|
||||
usr:handcuffed = null
|
||||
|
||||
if(istype(usr, /mob/living/carbon/human) && istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket) && usr:canmove && (usr.last_special <= world.time))
|
||||
usr.next_move = world.time + 200
|
||||
|
||||
Reference in New Issue
Block a user