mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 11:07:12 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into BookClub
This commit is contained in:
@@ -583,7 +583,7 @@ steam.start() -- spawns the effect
|
||||
// if(M.wear_suit, /obj/item/clothing/suit/wizrobe && (M.hat, /obj/item/clothing/head/wizard) && (M.shoes, /obj/item/clothing/shoes/sandal)) // I'll work on it later
|
||||
else
|
||||
M.drop_item()
|
||||
M:sleeping += 5
|
||||
M.AdjustSleeping(5)
|
||||
if(M.coughedtime != 1)
|
||||
M.coughedtime = 1
|
||||
M.emote("cough")
|
||||
@@ -600,7 +600,7 @@ steam.start() -- spawns the effect
|
||||
return
|
||||
else
|
||||
M.drop_item()
|
||||
M:sleeping += 5
|
||||
M.AdjustSleeping(5)
|
||||
if(M.coughedtime != 1)
|
||||
M.coughedtime = 1
|
||||
M.emote("cough")
|
||||
|
||||
@@ -12,22 +12,6 @@
|
||||
invisibility = 101
|
||||
|
||||
switch(name) //some of these are probably obsolete
|
||||
if("shuttle")
|
||||
log_runtime(EXCEPTION("Obsolete landmark '[name]' at ([x],[y],[z])"), src)
|
||||
qdel(src)
|
||||
|
||||
if("airtunnel_stop")
|
||||
airtunnel_stop = x
|
||||
|
||||
if("airtunnel_start")
|
||||
airtunnel_start = x
|
||||
|
||||
if("airtunnel_bottom")
|
||||
airtunnel_bottom = y
|
||||
|
||||
if("monkey")
|
||||
monkeystart += loc
|
||||
qdel(src)
|
||||
if("start")
|
||||
newplayer_start += loc
|
||||
qdel(src)
|
||||
@@ -52,29 +36,28 @@
|
||||
latejoin_cyborg += loc
|
||||
qdel(src)
|
||||
|
||||
//prisoners
|
||||
if("prisonwarp")
|
||||
prisonwarp += loc
|
||||
qdel(src)
|
||||
// if("mazewarp")
|
||||
// mazewarp += loc
|
||||
if("Holding Facility")
|
||||
holdingfacility += loc
|
||||
if("tdome1")
|
||||
tdome1 += loc
|
||||
if("tdome2")
|
||||
tdome2 += loc
|
||||
if("tdomeadmin")
|
||||
tdomeadmin += loc
|
||||
if("tdomeobserve")
|
||||
tdomeobserve += loc
|
||||
if("aroomwarp")
|
||||
aroomwarp += loc
|
||||
|
||||
//not prisoners
|
||||
|
||||
if("prisonsecuritywarp")
|
||||
prisonsecuritywarp += loc
|
||||
qdel(src)
|
||||
|
||||
if("tdome1")
|
||||
tdome1 += loc
|
||||
|
||||
if("tdome2")
|
||||
tdome2 += loc
|
||||
|
||||
if("tdomeadmin")
|
||||
tdomeadmin += loc
|
||||
|
||||
if("tdomeobserve")
|
||||
tdomeobserve += loc
|
||||
|
||||
if("aroomwarp")
|
||||
aroomwarp += loc
|
||||
|
||||
if("blobstart")
|
||||
blobstart += loc
|
||||
@@ -96,6 +79,11 @@
|
||||
|
||||
if("ERT Director")
|
||||
ertdirector += loc
|
||||
qdel(src)
|
||||
|
||||
if("Response Team")
|
||||
emergencyresponseteamspawn += loc
|
||||
qdel(src)
|
||||
|
||||
landmarks_list += src
|
||||
return 1
|
||||
|
||||
@@ -215,6 +215,7 @@
|
||||
desc = "Green squishy mess."
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "greenshatter"
|
||||
anchored = 1
|
||||
|
||||
/obj/effect/spider/cocoon
|
||||
name = "cocoon"
|
||||
|
||||
@@ -57,10 +57,11 @@
|
||||
|
||||
var/close = range(world.view+round(devastation_range,1), epicenter)
|
||||
// to all distanced mobs play a different sound
|
||||
for(var/mob/M in world) if(M.z == epicenter.z) if(!(M in close))
|
||||
// check if the mob can hear
|
||||
if(M.ear_deaf <= 0 || !M.ear_deaf) if(!istype(M.loc,/turf/space))
|
||||
M << 'sound/effects/explosionfar.ogg'
|
||||
for(var/mob/M in world)
|
||||
if(M.z == epicenter.z && !(M in close))
|
||||
// check if the mob can hear
|
||||
if(M.can_hear() && !istype(M.loc,/turf/space))
|
||||
M << 'sound/effects/explosionfar.ogg'
|
||||
|
||||
if(heavy_impact_range > 1)
|
||||
var/datum/effect/system/explosion/E = new/datum/effect/system/explosion()
|
||||
|
||||
@@ -474,10 +474,10 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
if(!(eyes.status & ORGAN_ROBOT) || !(eyes.status & ORGAN_ASSISTED)) //robot eyes bleeding might be a bit silly
|
||||
to_chat(M, "<span class='danger'>Your eyes start to bleed profusely!</span>")
|
||||
if(prob(50))
|
||||
if(M.stat != 2)
|
||||
if(M.stat != DEAD)
|
||||
to_chat(M, "<span class='danger'>You drop what you're holding and clutch at your eyes!</span>")
|
||||
M.drop_item()
|
||||
M.eye_blurry += 10
|
||||
M.AdjustEyeBlurry(10)
|
||||
M.Paralyse(1)
|
||||
M.Weaken(2)
|
||||
if(eyes.damage >= eyes.min_broken_damage)
|
||||
@@ -488,7 +488,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
H.UpdateDamageIcon()
|
||||
else
|
||||
M.take_organ_damage(7)
|
||||
M.eye_blurry += rand(3,4)
|
||||
M.AdjustEyeBlurry(rand(3,4))
|
||||
return
|
||||
|
||||
/obj/item/clean_blood()
|
||||
|
||||
@@ -236,10 +236,10 @@
|
||||
var/mob/living/carbon/human/C = target
|
||||
user.visible_message("<span class='danger'> [user] sprays [src] into the face of [target]!</span>")
|
||||
if(C.client)
|
||||
C.eye_blurry = max(C.eye_blurry, 3)
|
||||
C.eye_blind = max(C.eye_blind, 1)
|
||||
C.EyeBlurry(3)
|
||||
C.EyeBlind(1)
|
||||
if(C.check_eye_prot() <= 0) // no eye protection? ARGH IT BURNS.
|
||||
C.confused = max(C.confused, 3)
|
||||
C.Confused(3)
|
||||
C.Weaken(3)
|
||||
C.lip_style = "spray_face"
|
||||
C.lip_color = colour
|
||||
@@ -251,4 +251,4 @@
|
||||
overlays.Cut()
|
||||
var/image/I = image('icons/obj/crayons.dmi',icon_state = "[capped ? "spraycan_cap_colors" : "spraycan_colors"]")
|
||||
I.color = colour
|
||||
overlays += I
|
||||
overlays += I
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
interact(user)
|
||||
|
||||
/obj/item/device/camera_bug/check_eye(var/mob/user as mob)
|
||||
if(user.stat || loc != user || !user.canmove || user.eye_blind || !current)
|
||||
if(user.stat || loc != user || !user.canmove || !user.can_see() || !current)
|
||||
user.reset_view(null)
|
||||
user.unset_machine()
|
||||
return null
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
if(M.weakeyes)
|
||||
M.Weaken(3) //quick weaken bypasses eye protection but has no eye flash
|
||||
if(M.flash_eyes(1, 1))
|
||||
M.confused += power
|
||||
M.AdjustConfused(power)
|
||||
terrible_conversion_proc(M, user)
|
||||
M.Stun(1)
|
||||
visible_message("<span class='disarm'>[user] blinds [M] with the flash!</span>")
|
||||
@@ -96,7 +96,7 @@
|
||||
to_chat(M, "<span class='danger'>[user] fails to blind you with the flash!</span>")
|
||||
else
|
||||
if(M.flash_eyes())
|
||||
M.confused += power
|
||||
M.AdjustConfused(power)
|
||||
|
||||
/obj/item/device/flash/attack(mob/living/M, mob/user)
|
||||
if(!try_use_flash(user))
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
G.state = GRAB_NECK
|
||||
G.hud.icon_state = "kill"
|
||||
G.hud.name = "kill"
|
||||
M.silent += 1
|
||||
M.AdjustSilence(1)
|
||||
|
||||
garrote_time = world.time + 10
|
||||
processing_objects.Add(src)
|
||||
@@ -152,11 +152,11 @@
|
||||
return
|
||||
|
||||
|
||||
strangling.silent = max(strangling.silent, 3) // Non-improvised effects
|
||||
strangling.Silence(3) // Non-improvised effects
|
||||
strangling.apply_damage(4, OXY, "head")
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/garrote/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is wrapping the [src] around \his neck and pulling the handles! It looks like \he's trying to commit suicide.</span>")
|
||||
playsound(src.loc, 'sound/weapons/cablecuff.ogg', 15, 1, -1)
|
||||
return (OXYLOSS)
|
||||
return (OXYLOSS)
|
||||
|
||||
@@ -51,12 +51,13 @@
|
||||
if(!ear_safety)
|
||||
M.Stun(max(10/distance, 3))
|
||||
M.Weaken(max(10/distance, 3))
|
||||
M.setEarDamage(M.ear_damage + rand(0, 5), max(M.ear_deaf,15))
|
||||
M.EarDeaf(15)
|
||||
M.AdjustEarDamage(rand(0, 5))
|
||||
if(M.ear_damage >= 15)
|
||||
to_chat(M, "<span class='warning'>Your ears start to ring badly!</span>")
|
||||
if(prob(M.ear_damage - 10 + 5))
|
||||
if(prob(M.ear_damage - 5))
|
||||
to_chat(M, "<span class='warning'>You can't hear anything!</span>")
|
||||
M.disabilities |= DEAF
|
||||
M.BecomeDeaf()
|
||||
else
|
||||
if(M.ear_damage >= 5)
|
||||
to_chat(M, "<span class='warning'>Your ears start to ring!</span>")
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
if(do_after(user, 50, target = H))
|
||||
playsound(loc, "sound/weapons/bladeslice.ogg", 50, 1, -1)
|
||||
user.visible_message("<span class='danger'>[user] abruptly stops cutting [M]'s hair and slices their throat!</span>", "<span class='danger'>You stop cutting [M]'s hair and slice their throat!</span>") //Just a little off the top.
|
||||
H.losebreath += 10 //30 Oxy damage over time
|
||||
H.AdjustLoseBreath(10) //30 Oxy damage over time
|
||||
H.apply_damage(18, BRUTE, "head", sharp =1, edge =1, used_weapon = "scissors")
|
||||
var/turf/location = get_turf(H)
|
||||
if(istype(location, /turf/simulated))
|
||||
|
||||
@@ -138,8 +138,8 @@
|
||||
affected_mob.setStaminaLoss(0)
|
||||
var/status = CANSTUN | CANWEAKEN | CANPARALYSE
|
||||
affected_mob.status_flags &= ~status
|
||||
affected_mob.dizziness = max(0, affected_mob.dizziness-10)
|
||||
affected_mob.drowsyness = max(0, affected_mob.drowsyness-10)
|
||||
affected_mob.AdjustDizzy(-10)
|
||||
affected_mob.AdjustDrowsy(-10)
|
||||
affected_mob.SetSleeping(0)
|
||||
stage = 1
|
||||
switch(progenitor.hunger)
|
||||
@@ -181,4 +181,4 @@
|
||||
affected_mob.adjustBruteLoss(5)
|
||||
|
||||
if(ismob(progenitor.loc))
|
||||
progenitor.hunger++
|
||||
progenitor.hunger++
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
if(H.get_item_by_slot(slot_head) == src)
|
||||
if(H.internal)
|
||||
return
|
||||
H.losebreath += 1
|
||||
H.AdjustLoseBreath(1)
|
||||
else
|
||||
storage_slots = 7
|
||||
processing_objects.Remove(src)
|
||||
|
||||
@@ -27,131 +27,132 @@
|
||||
max_w_class = 2
|
||||
max_combined_w_class = 14
|
||||
|
||||
examine(mob/user)
|
||||
if(..(user, 1))
|
||||
to_chat(user, text("The service panel is [src.open ? "open" : "closed"]."))
|
||||
/obj/item/weapon/storage/secure/examine(mob/user)
|
||||
if(..(user, 1))
|
||||
to_chat(user, text("The service panel is [open ? "open" : "closed"]."))
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(locked)
|
||||
if((istype(W, /obj/item/weapon/melee/energy/blade)) && (!src.emagged))
|
||||
emag_act(user, W)
|
||||
/obj/item/weapon/storage/secure/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(locked)
|
||||
if((istype(W, /obj/item/weapon/melee/energy/blade)) && (!emagged))
|
||||
emag_act(user, W)
|
||||
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
if(do_after(user, 20, target = src))
|
||||
src.open =! src.open
|
||||
user.show_message(text("\blue You [] the service panel.", (src.open ? "open" : "close")))
|
||||
return
|
||||
if((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking))
|
||||
user.show_message(text("\red Now attempting to reset internal memory, please hold."), 1)
|
||||
src.l_hacking = 1
|
||||
if(do_after(usr, 100, target = src))
|
||||
if(prob(40))
|
||||
src.l_setshort = 1
|
||||
src.l_set = 0
|
||||
user.show_message(text("\red Internal memory reset. Please give it a few seconds to reinitialize."), 1)
|
||||
sleep(80)
|
||||
src.l_setshort = 0
|
||||
src.l_hacking = 0
|
||||
else
|
||||
user.show_message(text("\red Unable to reset internal memory."), 1)
|
||||
src.l_hacking = 0
|
||||
else src.l_hacking = 0
|
||||
return
|
||||
//At this point you have exhausted all the special things to do when locked
|
||||
// ... but it's still locked.
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
if(do_after(user, 20, target = src))
|
||||
open = !open
|
||||
user.show_message("<span class='notice'>You [open ? "open" : "close"] the service panel.</span>", 1)
|
||||
return
|
||||
|
||||
// -> storage/attackby() what with handle insertion, etc
|
||||
..()
|
||||
|
||||
emag_act(user as mob, weapon as obj)
|
||||
if(!emagged)
|
||||
emagged = 1
|
||||
src.overlays += image('icons/obj/storage.dmi', icon_sparking)
|
||||
sleep(6)
|
||||
src.overlays = null
|
||||
overlays += image('icons/obj/storage.dmi', icon_locking)
|
||||
locked = 0
|
||||
if(istype(weapon, /obj/item/weapon/melee/energy/blade))
|
||||
var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src.loc)
|
||||
spark_system.start()
|
||||
playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
|
||||
playsound(src.loc, "sparks", 50, 1)
|
||||
to_chat(user, "You slice through the lock on [src].")
|
||||
else
|
||||
to_chat(user, "You short out the lock on [src].")
|
||||
return
|
||||
|
||||
|
||||
MouseDrop(over_object, src_location, over_location)
|
||||
if(locked)
|
||||
src.add_fingerprint(usr)
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
user.set_machine(src)
|
||||
var/dat = text("<TT><B>[]</B><BR>\n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED"))
|
||||
var/message = "Code"
|
||||
if((src.l_set == 0) && (!src.emagged) && (!src.l_setshort))
|
||||
dat += text("<p>\n<b>5-DIGIT PASSCODE NOT SET.<br>ENTER NEW PASSCODE.</b>")
|
||||
if(src.emagged)
|
||||
dat += text("<p>\n<font color=red><b>LOCKING SYSTEM ERROR - 1701</b></font>")
|
||||
if(src.l_setshort)
|
||||
dat += text("<p>\n<font color=red><b>ALERT: MEMORY SYSTEM ERROR - 6040 201</b></font>")
|
||||
message = text("[]", src.code)
|
||||
if(!src.locked)
|
||||
message = "*****"
|
||||
dat += {"<HR>\n>[message]<BR>\n
|
||||
<A href='?src=[UID()];type=1'>1</A>-
|
||||
<A href='?src=[UID()];type=2'>2</A>-
|
||||
<A href='?src=[UID()];type=3'>3</A><BR>\n
|
||||
<A href='?src=[UID()];type=4'>4</A>-
|
||||
<A href='?src=[UID()];type=5'>5</A>-
|
||||
<A href='?src=[UID()];type=6'>6</A><BR>\n
|
||||
<A href='?src=[UID()];type=7'>7</A>-
|
||||
<A href='?src=[UID()];type=8'>8</A>-
|
||||
<A href='?src=[UID()];type=9'>9</A><BR>\n
|
||||
<A href='?src=[UID()];type=R'>R</A>-
|
||||
<A href='?src=[UID()];type=0'>0</A>-
|
||||
<A href='?src=[UID()];type=E'>E</A><BR>\n</TT>"}
|
||||
user << browse(dat, "window=caselock;size=300x280")
|
||||
|
||||
Topic(href, href_list)
|
||||
..()
|
||||
if((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1))
|
||||
return
|
||||
if(href_list["type"])
|
||||
if(href_list["type"] == "E")
|
||||
if((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR"))
|
||||
src.l_code = src.code
|
||||
src.l_set = 1
|
||||
else if((src.code == src.l_code) && (src.emagged == 0) && (src.l_set == 1))
|
||||
src.locked = 0
|
||||
src.overlays = null
|
||||
overlays += image('icons/obj/storage.dmi', icon_opened)
|
||||
src.code = null
|
||||
if((istype(W, /obj/item/device/multitool)) && (open == 1) && (!l_hacking))
|
||||
user.show_message("<span class='danger'>Now attempting to reset internal memory, please hold.</span>", 1)
|
||||
l_hacking = 1
|
||||
if(do_after(usr, 100, target = src))
|
||||
if(prob(40))
|
||||
l_setshort = 1
|
||||
l_set = 0
|
||||
user.show_message("<span class='danger'>Internal memory reset. Please give it a few seconds to reinitialize.</span>", 1)
|
||||
sleep(80)
|
||||
l_setshort = 0
|
||||
l_hacking = 0
|
||||
else
|
||||
src.code = "ERROR"
|
||||
else
|
||||
if((href_list["type"] == "R") && (src.emagged == 0) && (!src.l_setshort))
|
||||
src.locked = 1
|
||||
src.overlays = null
|
||||
src.code = null
|
||||
src.close(usr)
|
||||
else
|
||||
src.code += text("[]", href_list["type"])
|
||||
if(length(src.code) > 5)
|
||||
src.code = "ERROR"
|
||||
src.add_fingerprint(usr)
|
||||
for(var/mob/M in viewers(1, src.loc))
|
||||
if((M.client && M.machine == src))
|
||||
src.attack_self(M)
|
||||
return
|
||||
user.show_message("<span class='danger'>Unable to reset internal memory.</span>", 1)
|
||||
l_hacking = 0
|
||||
else
|
||||
l_hacking = 0
|
||||
return
|
||||
//At this point you have exhausted all the special things to do when locked
|
||||
// ... but it's still locked.
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/secure/emag_act(user as mob, weapon as obj)
|
||||
if(!emagged)
|
||||
emagged = 1
|
||||
overlays += image('icons/obj/storage.dmi', icon_sparking)
|
||||
sleep(6)
|
||||
overlays = null
|
||||
overlays += image('icons/obj/storage.dmi', icon_locking)
|
||||
locked = 0
|
||||
if(istype(weapon, /obj/item/weapon/melee/energy/blade))
|
||||
var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src.loc)
|
||||
spark_system.start()
|
||||
playsound(loc, 'sound/weapons/blade1.ogg', 50, 1)
|
||||
playsound(loc, "sparks", 50, 1)
|
||||
to_chat(user, "You slice through the lock on [src].")
|
||||
else
|
||||
to_chat(user, "You short out the lock on [src].")
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/storage/secure/MouseDrop(over_object, src_location, over_location)
|
||||
if(locked)
|
||||
add_fingerprint(usr)
|
||||
to_chat(usr, "<span class='warning'>It's locked!</span>")
|
||||
return 0
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/secure/attack_self(mob/user as mob)
|
||||
user.set_machine(src)
|
||||
var/dat = text("<TT><B>[]</B><BR>\n\nLock Status: []", src, (locked ? "LOCKED" : "UNLOCKED"))
|
||||
var/message = "Code"
|
||||
if((l_set == 0) && (!emagged) && (!l_setshort))
|
||||
dat += text("<p>\n<b>5-DIGIT PASSCODE NOT SET.<br>ENTER NEW PASSCODE.</b>")
|
||||
if(emagged)
|
||||
dat += text("<p>\n<font color=red><b>LOCKING SYSTEM ERROR - 1701</b></font>")
|
||||
if(l_setshort)
|
||||
dat += text("<p>\n<font color=red><b>ALERT: MEMORY SYSTEM ERROR - 6040 201</b></font>")
|
||||
message = text("[]", code)
|
||||
if(!locked)
|
||||
message = "*****"
|
||||
dat += {"<HR>\n>[message]<BR>\n
|
||||
<A href='?src=[UID()];type=1'>1</A>-
|
||||
<A href='?src=[UID()];type=2'>2</A>-
|
||||
<A href='?src=[UID()];type=3'>3</A><BR>\n
|
||||
<A href='?src=[UID()];type=4'>4</A>-
|
||||
<A href='?src=[UID()];type=5'>5</A>-
|
||||
<A href='?src=[UID()];type=6'>6</A><BR>\n
|
||||
<A href='?src=[UID()];type=7'>7</A>-
|
||||
<A href='?src=[UID()];type=8'>8</A>-
|
||||
<A href='?src=[UID()];type=9'>9</A><BR>\n
|
||||
<A href='?src=[UID()];type=R'>R</A>-
|
||||
<A href='?src=[UID()];type=0'>0</A>-
|
||||
<A href='?src=[UID()];type=E'>E</A><BR>\n</TT>"}
|
||||
user << browse(dat, "window=caselock;size=300x280")
|
||||
|
||||
/obj/item/weapon/storage/secure/Topic(href, href_list)
|
||||
..()
|
||||
if(usr.incapacitated() || (get_dist(src, usr) > 1))
|
||||
return
|
||||
if(href_list["type"])
|
||||
if(href_list["type"] == "E")
|
||||
if((l_set == 0) && (length(code) == 5) && (!l_setshort) && (code != "ERROR"))
|
||||
l_code = code
|
||||
l_set = 1
|
||||
else if((code == l_code) && (emagged == 0) && (l_set == 1))
|
||||
locked = 0
|
||||
overlays = null
|
||||
overlays += image('icons/obj/storage.dmi', icon_opened)
|
||||
code = null
|
||||
else
|
||||
code = "ERROR"
|
||||
else
|
||||
if((href_list["type"] == "R") && (emagged == 0) && (!l_setshort))
|
||||
locked = 1
|
||||
overlays = null
|
||||
code = null
|
||||
close(usr)
|
||||
else
|
||||
code += text("[]", href_list["type"])
|
||||
if(length(code) > 5)
|
||||
code = "ERROR"
|
||||
add_fingerprint(usr)
|
||||
for(var/mob/M in viewers(1, loc))
|
||||
if((M.client && M.machine == src))
|
||||
attack_self(M)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/secure/can_be_inserted(obj/item/W as obj, stop_messages = 0)
|
||||
if(!locked)
|
||||
return ..()
|
||||
@@ -160,8 +161,10 @@
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/storage/secure/hear_talk(mob/living/M as mob, msg)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/secure/hear_message(mob/living/M as mob, msg)
|
||||
return
|
||||
|
||||
// -----------------------------
|
||||
// Secure Briefcase
|
||||
@@ -174,7 +177,7 @@
|
||||
item_state = "sec-case"
|
||||
flags = CONDUCT
|
||||
hitsound = "swing_hit"
|
||||
force = 8.0
|
||||
force = 8
|
||||
throw_speed = 2
|
||||
throw_range = 4
|
||||
w_class = 4
|
||||
@@ -182,36 +185,36 @@
|
||||
max_combined_w_class = 21
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/paper(src)
|
||||
new /obj/item/weapon/pen(src)
|
||||
/obj/item/weapon/storage/secure/briefcase/New()
|
||||
..()
|
||||
handle_item_insertion(new /obj/item/weapon/paper, 1)
|
||||
handle_item_insertion(new /obj/item/weapon/pen, 1)
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
if((src.loc == user) && (src.locked == 1))
|
||||
to_chat(usr, "\red [src] is locked and cannot be opened!")
|
||||
else if((src.loc == user) && (!src.locked))
|
||||
playsound(src.loc, "rustle", 50, 1, -5)
|
||||
if(user.s_active)
|
||||
user.s_active.close(user) //Close and re-open
|
||||
src.show_to(user)
|
||||
else
|
||||
..()
|
||||
for(var/mob/M in range(1))
|
||||
if(M.s_active == src)
|
||||
src.close(M)
|
||||
src.orient2hud(user)
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
/obj/item/weapon/storage/secure/briefcase/attack_hand(mob/user as mob)
|
||||
if((loc == user) && (locked == 1))
|
||||
to_chat(usr, "<span class='warning'>[src] is locked and cannot be opened!</span>")
|
||||
else if((loc == user) && !locked)
|
||||
playsound(loc, "rustle", 50, 1, -5)
|
||||
if(user.s_active)
|
||||
user.s_active.close(user) //Close and re-open
|
||||
show_to(user)
|
||||
else
|
||||
..()
|
||||
for(var/mob/M in range(1))
|
||||
if(M.s_active == src)
|
||||
close(M)
|
||||
orient2hud(user)
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
//Syndie variant of Secure Briefcase. Contains space cash, slightly more robust.
|
||||
/obj/item/weapon/storage/secure/briefcase/syndie
|
||||
force = 15.0
|
||||
force = 15
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/syndie/New()
|
||||
..()
|
||||
for(var/i = 0, i < storage_slots - 2, i++)
|
||||
new /obj/item/weapon/spacecash/c1000(src)
|
||||
return ..()
|
||||
handle_item_insertion(new /obj/item/weapon/spacecash/c1000, 1)
|
||||
|
||||
// -----------------------------
|
||||
// Secure Safe
|
||||
@@ -224,30 +227,17 @@
|
||||
icon_opened = "safe0"
|
||||
icon_locking = "safeb"
|
||||
icon_sparking = "safespark"
|
||||
force = 8.0
|
||||
force = 8
|
||||
w_class = 5
|
||||
max_w_class = 8
|
||||
anchored = 1.0
|
||||
anchored = 1
|
||||
density = 0
|
||||
cant_hold = list("/obj/item/weapon/storage/secure/briefcase")
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/paper(src)
|
||||
new /obj/item/weapon/pen(src)
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
return attack_self(user)
|
||||
|
||||
// Clown planet WMD storage
|
||||
/obj/item/weapon/storage/secure/safe/clown
|
||||
name="WMD Storage"
|
||||
|
||||
/obj/item/weapon/storage/secure/safe/clown/New()
|
||||
for(var/i=0;i<10;i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/pie(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/secure/safe/HoS/New()
|
||||
/obj/item/weapon/storage/secure/safe/New()
|
||||
..()
|
||||
//new /obj/item/weapon/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool)
|
||||
handle_item_insertion(new /obj/item/weapon/paper, 1)
|
||||
handle_item_insertion(new /obj/item/weapon/pen, 1)
|
||||
|
||||
/obj/item/weapon/storage/secure/safe/attack_hand(mob/user as mob)
|
||||
return attack_self(user)
|
||||
|
||||
@@ -420,8 +420,7 @@
|
||||
H.lip_style = null //Washes off lipstick
|
||||
H.lip_color = initial(H.lip_color)
|
||||
H.regenerate_icons()
|
||||
user.drowsyness -= rand(2,3) //Washing your face wakes you up if you're falling asleep
|
||||
user.drowsyness = Clamp(user.drowsyness, 0, INFINITY)
|
||||
user.AdjustDrowsy(-rand(2,3)) //Washing your face wakes you up if you're falling asleep
|
||||
else
|
||||
user.clean_blood()
|
||||
|
||||
@@ -459,4 +458,3 @@
|
||||
icon_state = "puddle-splash"
|
||||
..()
|
||||
icon_state = "puddle"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user