# Conflicts:
#	code/game/area/Away Mission areas.dm
#	code/game/objects/items/weapons/stunbaton.dm
#	code/game/objects/items/weapons/teleportation.dm
#	code/modules/clothing/glasses/glasses.dm
#	code/modules/events/event_container_vr.dm
#	code/modules/mining/ore_box.dm
#	code/modules/paperwork/paper.dm
#	code/modules/rogueminer_vr/zone_console.dm
#	config/custom_items.txt
#	icons/mob/items/lefthand_suits.dmi
#	icons/mob/items/righthand_suits.dmi
#	icons/mob/species/vulpkanin/helmet.dmi
#	icons/mob/species/vulpkanin/suit.dmi
#	icons/mob/suit.dmi
#	icons/obj/clothing/suits.dmi
#	maps/tether/tether_defines.dm
This commit is contained in:
Repede
2020-02-22 12:38:04 -05:00
905 changed files with 89234 additions and 7194 deletions
+6 -6
View File
@@ -17,13 +17,13 @@
..()
switch(icon_state)
if("Off")
user << "It appears to be switched off."
to_chat(user, "It appears to be switched off.")
if("narsiebistro")
user << "It shows a picture of a large black and red being. Spooky!"
to_chat(user, "It shows a picture of a large black and red being. Spooky!")
if("on", "empty")
user << "The lights are on, but there's no picture."
to_chat(user, "The lights are on, but there's no picture.")
else
user << "It says '[icon_state]'"
to_chat(user, "It says '[icon_state]'")
/obj/structure/sign/double/barsign/New()
..()
@@ -40,9 +40,9 @@
if(!sign_type)
return
icon_state = sign_type
user << "<span class='notice'>You change the barsign.</span>"
to_chat(user, "<span class='notice'>You change the barsign.</span>")
else
user << "<span class='warning'>Access denied.</span>"
to_chat(user, "<span class='warning'>Access denied.</span>")
return
return ..()
+9 -9
View File
@@ -30,7 +30,7 @@ LINEN BINS
if(is_sharp(I))
user.visible_message("<span class='notice'>\The [user] begins cutting up [src] with [I].</span>", "<span class='notice'>You begin cutting up [src] with [I].</span>")
if(do_after(user, 50))
user << "<span class='notice'>You cut [src] into pieces!</span>"
to_chat(user, "<span class='notice'>You cut [src] into pieces!</span>")
for(var/i in 1 to rand(2,5))
new /obj/item/weapon/reagent_containers/glass/rag(drop_location())
qdel(src)
@@ -172,12 +172,12 @@ LINEN BINS
..(user)
if(amount < 1)
user << "There are no bed sheets in the bin."
to_chat(user, "There are no bed sheets in the bin.")
return
if(amount == 1)
user << "There is one bed sheet in the bin."
to_chat(user, "There is one bed sheet in the bin.")
return
user << "There are [amount] bed sheets in the bin."
to_chat(user, "There are [amount] bed sheets in the bin.")
/obj/structure/bedsheetbin/update_icon()
@@ -193,12 +193,12 @@ LINEN BINS
I.loc = src
sheets.Add(I)
amount++
user << "<span class='notice'>You put [I] in [src].</span>"
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
else if(amount && !hidden && I.w_class < ITEMSIZE_LARGE) //make sure there's sheets to hide it among, make sure nothing else is hidden in there.
user.drop_item()
I.loc = src
hidden = I
user << "<span class='notice'>You hide [I] among the sheets.</span>"
to_chat(user, "<span class='notice'>You hide [I] among the sheets.</span>")
/obj/structure/bedsheetbin/attack_hand(mob/user as mob)
if(amount >= 1)
@@ -214,11 +214,11 @@ LINEN BINS
B.loc = user.loc
user.put_in_hands(B)
user << "<span class='notice'>You take [B] out of [src].</span>"
to_chat(user, "<span class='notice'>You take [B] out of [src].</span>")
if(hidden)
hidden.loc = user.loc
user << "<span class='notice'>[hidden] falls out of [B]!</span>"
to_chat(user, "<span class='notice'>[hidden] falls out of [B]!</span>")
hidden = null
@@ -237,7 +237,7 @@ LINEN BINS
B = new /obj/item/weapon/bedsheet(loc)
B.loc = loc
user << "<span class='notice'>You telekinetically remove [B] from [src].</span>"
to_chat(user, "<span class='notice'>You telekinetically remove [B] from [src].</span>")
update_icon()
if(hidden)
+1 -1
View File
@@ -24,7 +24,7 @@
user.drop_from_inventory(coat, src)
update_icon()
else
user << "<span class='notice'>You cannot hang [W] on [src]</span>"
to_chat(user, "<span class='notice'>You cannot hang [W] on [src]</span>")
return ..()
/obj/structure/coatrack/CanPass(atom/movable/mover, turf/target)
@@ -58,7 +58,7 @@
update_icon()
/obj/structure/closet/examine(mob/user)
if(..(user, 1) && !opened)
if(!src.opened && (..(user, 1) || isobserver(user)))
var/content_size = 0
for(var/obj/item/I in src.contents)
if(!I.anchored)
@@ -74,6 +74,9 @@
else
to_chat(user, "It is full.")
if(!src.opened && isobserver(user))
to_chat(user, "It contains: [counting_english_list(contents)]")
/obj/structure/closet/CanPass(atom/movable/mover, turf/target)
if(wall_mounted)
return TRUE
@@ -360,12 +363,6 @@
if(!src.toggle())
to_chat(usr, "<span class='notice'>It won't budge!</span>")
/obj/structure/closet/attack_ghost(mob/ghost)
if(ghost.client && ghost.client.inquisitive_ghost)
ghost.examinate(src)
if (!src.opened)
to_chat(ghost, "It contains: [english_list(contents)].")
/obj/structure/closet/verb/verb_toggleopen()
set src in oview(1)
set category = "Object"
@@ -474,4 +471,4 @@
return
dump_contents()
spawn(1) qdel(src)
return 1
return 1
@@ -63,7 +63,7 @@
var/obj/item/weapon/card/id/I = W.GetID()
if(src.broken)
user << "<span class='warning'>It appears to be broken.</span>"
to_chat(user, "<span class='warning'>It appears to be broken.</span>")
return
if(!I || !I.registered_name) return
if(src.allowed(user) || !src.registered_name || (istype(I) && (src.registered_name == I.registered_name)))
@@ -76,7 +76,7 @@
src.registered_name = I.registered_name
src.desc = "Owned by [I.registered_name]."
else
user << "<span class='warning'>Access Denied</span>"
to_chat(user, "<span class='warning'>Access Denied</span>")
else if(istype(W, /obj/item/weapon/melee/energy/blade))
if(emag_act(INFINITY, user, "The locker has been sliced open by [user] with \an [W]!", "You hear metal being sliced and sparks flying."))
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
@@ -85,7 +85,7 @@
playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
playsound(src.loc, "sparks", 50, 1)
else
user << "<span class='warning'>Access Denied</span>"
to_chat(user, "<span class='warning'>Access Denied</span>")
return
/obj/structure/closet/secure_closet/personal/emag_act(var/remaining_charges, var/mob/user, var/visual_feedback, var/audible_feedback)
@@ -107,9 +107,9 @@
if(ishuman(usr))
src.add_fingerprint(usr)
if (src.locked || !src.registered_name)
usr << "<span class='warning'>You need to unlock it first.</span>"
to_chat(usr, "<span class='warning'>You need to unlock it first.</span>")
else if (src.broken)
usr << "<span class='warning'>It appears to be broken.</span>"
to_chat(usr, "<span class='warning'>It appears to be broken.</span>")
else
if (src.opened)
if(!src.close())
@@ -31,10 +31,10 @@
if (istype(user, /mob/living/silicon/ai)) //Added by Strumpetplaya - AI shouldn't be able to
return //activate emergency lockers. This fixes that. (Does this make sense, the AI can't call attack_hand, can it? --Mloc)
if(!amount)
usr << "<spawn class='notice'>It's empty.."
to_chat(usr, "<spawn class='notice'>It's empty..")
return
if(amount)
usr << "<spawn class='notice'>You take out some items from \the [src]."
to_chat(usr, "<spawn class='notice'>You take out some items from \the [src].")
for(var/path in spawnitems)
new path(src.loc)
amount--
@@ -82,21 +82,21 @@
else if(istype(W, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = W
if(rigged)
user << "<span class='notice'>[src] is already rigged!</span>"
to_chat(user, "<span class='notice'>[src] is already rigged!</span>")
return
if (C.use(1))
user << "<span class='notice'>You rig [src].</span>"
to_chat(user , "<span class='notice'>You rig [src].</span>")
rigged = 1
return
else if(istype(W, /obj/item/device/radio/electropack))
if(rigged)
user << "<span class='notice'>You attach [W] to [src].</span>"
to_chat(user , "<span class='notice'>You attach [W] to [src].</span>")
user.drop_item()
W.forceMove(src)
return
else if(W.is_wirecutter())
if(rigged)
user << "<span class='notice'>You cut away the wiring.</span>"
to_chat(user , "<span class='notice'>You cut away the wiring.</span>")
playsound(src.loc, W.usesound, 100, 1)
rigged = 0
return
@@ -149,15 +149,15 @@
/obj/structure/closet/crate/secure/proc/togglelock(mob/user as mob)
if(src.opened)
user << "<span class='notice'>Close the crate first.</span>"
to_chat(user, "<span class='notice'>Close the crate first.</span>")
return
if(src.broken)
user << "<span class='warning'>The crate appears to be broken.</span>"
to_chat(user, "<span class='warning'>The crate appears to be broken.</span>")
return
if(src.allowed(user))
set_locked(!locked, user)
else
user << "<span class='notice'>Access Denied</span>"
to_chat(user, "<span class='notice'>Access Denied</span>")
/obj/structure/closet/crate/secure/proc/set_locked(var/newlocked, mob/user = null)
if(locked == newlocked) return
@@ -181,7 +181,7 @@
src.add_fingerprint(usr)
src.togglelock(usr)
else
usr << "<span class='warning'>This mob type can't use this verb.</span>"
to_chat(usr, "<span class='warning'>This mob type can't use this verb.</span>")
/obj/structure/closet/crate/secure/attack_hand(mob/user as mob)
src.add_fingerprint(user)
@@ -209,7 +209,7 @@
playsound(src.loc, "sparks", 60, 1)
src.locked = 0
src.broken = 1
user << "<span class='notice'>You unlock \the [src].</span>"
to_chat(user, "<span class='notice'>You unlock \the [src].</span>")
return 1
/obj/structure/closet/crate/secure/emp_act(severity)
+2 -2
View File
@@ -40,9 +40,9 @@
/obj/structure/curtain/attackby(obj/item/P, mob/user)
if(P.is_wirecutter())
playsound(src, P.usesound, 50, 1)
user << "<span class='notice'>You start to cut the shower curtains.</span>"
to_chat(user, "<span class='notice'>You start to cut the shower curtains.</span>")
if(do_after(user, 10))
user << "<span class='notice'>You cut the shower curtains.</span>"
to_chat(user, "<span class='notice'>You cut the shower curtains.</span>")
var/obj/item/stack/material/plastic/A = new /obj/item/stack/material/plastic( src.loc )
A.amount = 3
qdel(src)
+3 -3
View File
@@ -66,16 +66,16 @@
/obj/structure/displaycase/attack_hand(mob/user as mob)
if (src.destroyed && src.occupied)
new /obj/item/weapon/gun/energy/captain( src.loc )
user << "<span class='notice'>You deactivate the hover field built into the case.</span>"
to_chat(user, "<span class='notice'>You deactivate the hover field built into the case.</span>")
src.occupied = 0
src.add_fingerprint(user)
update_icon()
return
else
usr << text("<span class='warning'>You kick the display case.</span>")
to_chat(usr, "<span class='warning'>You kick the display case.</span>")
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
O << "<span class='warning'>[usr] kicks the display case.</span>"
to_chat(O, "<span class='warning'>[usr] kicks the display case.</span>")
src.health -= 2
healthcheck()
return
+6 -6
View File
@@ -32,15 +32,15 @@
user.remove_from_mob(O)
contents += O
has_extinguisher = O
user << "<span class='notice'>You place [O] in [src].</span>"
to_chat(user, "<span class='notice'>You place [O] in [src].</span>")
else
opened = !opened
if(O.is_wrench())
if(!has_extinguisher)
user << "<span class='notice'>You start to unwrench the extinguisher cabinet.</span>"
to_chat(user, "<span class='notice'>You start to unwrench the extinguisher cabinet.</span>")
playsound(src.loc, O.usesound, 50, 1)
if(do_after(user, 15 * O.toolspeed))
user << "<span class='notice'>You unwrench the extinguisher cabinet.</span>"
to_chat(user, "<span class='notice'>You unwrench the extinguisher cabinet.</span>")
new /obj/item/frame/extinguisher_cabinet( src.loc )
qdel(src)
return
@@ -58,11 +58,11 @@
if (user.hand)
temp = H.organs_by_name["l_hand"]
if(temp && !temp.is_usable())
user << "<span class='notice'>You try to move your [temp.name], but cannot!</span>"
to_chat(user, "<span class='notice'>You try to move your [temp.name], but cannot!</span>")
return
if(has_extinguisher)
user.put_in_hands(has_extinguisher)
user << "<span class='notice'>You take [has_extinguisher] from [src].</span>"
to_chat(user, "<span class='notice'>You take [has_extinguisher] from [src].</span>")
has_extinguisher = null
opened = 1
else
@@ -72,7 +72,7 @@
/obj/structure/extinguisher_cabinet/attack_tk(mob/user)
if(has_extinguisher)
has_extinguisher.loc = loc
user << "<span class='notice'>You telekinetically remove [has_extinguisher] from [src].</span>"
to_chat(user, "<span class='notice'>You telekinetically remove [has_extinguisher] from [src].</span>")
has_extinguisher = null
opened = 1
else
+5 -5
View File
@@ -129,23 +129,23 @@
else
dir_to_set = 4
else
user << "<span class='notice'>You can't reach.</span>"
to_chat(user, "<span class='notice'>You can't reach.</span>")
return //Only works for cardinal direcitons, diagonals aren't supposed to work like this.
for(var/obj/structure/window/WINDOW in loc)
if(WINDOW.dir == dir_to_set)
user << "<span class='notice'>There is already a window facing this way there.</span>"
to_chat(user, "<span class='notice'>There is already a window facing this way there.</span>")
return
user << "<span class='notice'>You start placing the window.</span>"
to_chat(user, "<span class='notice'>You start placing the window.</span>")
if(do_after(user,20))
for(var/obj/structure/window/WINDOW in loc)
if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting.
user << "<span class='notice'>There is already a window facing this way there.</span>"
to_chat(user, "<span class='notice'>There is already a window facing this way there.</span>")
return
var/wtype = ST.material.created_window
if (ST.use(1))
var/obj/structure/window/WD = new wtype(loc, dir_to_set, 1)
user << "<span class='notice'>You place the [WD] on [src].</span>"
to_chat(user, "<span class='notice'>You place the [WD] on [src].</span>")
WD.update_icon()
return
//window placing end
+5 -5
View File
@@ -14,7 +14,7 @@
if(!user)
return
if(!user.Adjacent(A))
to_chat(user,"You can't reach!")
to_chat(user, "You can't reach!")
return
if(istype(A, /turf))
inflate(user,A)
@@ -94,7 +94,7 @@
/obj/item/inflatable/proc/inflate(var/mob/user,var/location)
playsound(location, 'sound/items/zip.ogg', 75, 1)
to_chat(user,"<span class='notice'>You inflate [src].</span>")
to_chat(user, "<span class='notice'>You inflate [src].</span>")
var/obj/structure/inflatable/R = new deploy_path(location)
src.transfer_fingerprints_to(R)
R.add_fingerprint(user)
@@ -102,7 +102,7 @@
/obj/structure/inflatable/proc/deflate()
playsound(loc, 'sound/machines/hiss.ogg', 75, 1)
//user << "<span class='notice'>You slowly deflate the inflatable wall.</span>"
//to_chat(user, "<span class='notice'>You slowly deflate the inflatable wall.</span>")
visible_message("[src] slowly deflates.")
spawn(50)
var/obj/item/inflatable/R = new /obj/item/inflatable(loc)
@@ -247,7 +247,7 @@
icon_state = "folded_wall_torn"
attack_self(mob/user)
user << "<span class='notice'>The inflatable wall is too torn to be inflated!</span>"
to_chat(user, "<span class='notice'>The inflatable wall is too torn to be inflated!</span>")
add_fingerprint(user)
/obj/item/inflatable/door/torn
@@ -257,7 +257,7 @@
icon_state = "folded_door_torn"
attack_self(mob/user)
user << "<span class='notice'>The inflatable door is too torn to be inflated!</span>"
to_chat(user, "<span class='notice'>The inflatable door is too torn to be inflated!</span>")
add_fingerprint(user)
/obj/item/weapon/storage/briefcase/inflatable
+21 -21
View File
@@ -25,7 +25,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
/obj/structure/janitorialcart/examine(mob/user)
if(..(user, 1))
user << "[src] \icon[src] contains [reagents.total_volume] unit\s of liquid!"
to_chat(user, "[src] \icon[src] contains [reagents.total_volume] unit\s of liquid!")
//everything else is visible, so doesn't need to be mentioned
@@ -36,15 +36,15 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
I.loc = src
update_icon()
updateUsrDialog()
user << "<span class='notice'>You put [I] into [src].</span>"
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
else if(istype(I, /obj/item/weapon/mop))
if(I.reagents.total_volume < I.reagents.maximum_volume) //if it's not completely soaked we assume they want to wet it, otherwise store it
if(reagents.total_volume < 1)
user << "<span class='warning'>[src] is out of water!</span>"
to_chat(user, "<span class='warning'>[src] is out of water!</span>")
else
reagents.trans_to_obj(I, 5) //
user << "<span class='notice'>You wet [I] in [src].</span>"
to_chat(user, "<span class='notice'>You wet [I] in [src].</span>")
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
return
if(!mymop)
@@ -53,7 +53,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
I.loc = src
update_icon()
updateUsrDialog()
user << "<span class='notice'>You put [I] into [src].</span>"
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
else if(istype(I, /obj/item/weapon/reagent_containers/spray) && !myspray)
user.drop_item()
@@ -61,7 +61,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
I.loc = src
update_icon()
updateUsrDialog()
user << "<span class='notice'>You put [I] into [src].</span>"
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
else if(istype(I, /obj/item/device/lightreplacer) && !myreplacer)
user.drop_item()
@@ -69,7 +69,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
I.loc = src
update_icon()
updateUsrDialog()
user << "<span class='notice'>You put [I] into [src].</span>"
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
else if(istype(I, /obj/item/weapon/caution))
if(signs < 4)
@@ -78,9 +78,9 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
signs++
update_icon()
updateUsrDialog()
user << "<span class='notice'>You put [I] into [src].</span>"
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
else
user << "<span class='notice'>[src] can't hold any more signs.</span>"
to_chat(user, "<span class='notice'>[src] can't hold any more signs.</span>")
else if(istype(I, /obj/item/weapon/reagent_containers/glass))
return // So we do not put them in the trash bag as we mean to fill the mop bucket
@@ -120,29 +120,29 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
if("garbage")
if(mybag)
user.put_in_hands(mybag)
user << "<span class='notice'>You take [mybag] from [src].</span>"
to_chat(user, "<span class='notice'>You take [mybag] from [src].</span>")
mybag = null
if("mop")
if(mymop)
user.put_in_hands(mymop)
user << "<span class='notice'>You take [mymop] from [src].</span>"
to_chat(user, "<span class='notice'>You take [mymop] from [src].</span>")
mymop = null
if("spray")
if(myspray)
user.put_in_hands(myspray)
user << "<span class='notice'>You take [myspray] from [src].</span>"
to_chat(user, "<span class='notice'>You take [myspray] from [src].</span>")
myspray = null
if("replacer")
if(myreplacer)
user.put_in_hands(myreplacer)
user << "<span class='notice'>You take [myreplacer] from [src].</span>"
to_chat(user, "<span class='notice'>You take [myreplacer] from [src].</span>")
myreplacer = null
if("sign")
if(signs)
var/obj/item/weapon/caution/Sign = locate() in src
if(Sign)
user.put_in_hands(Sign)
user << "<span class='notice'>You take \a [Sign] from [src].</span>"
to_chat(user, "<span class='notice'>You take \a [Sign] from [src].</span>")
signs--
else
warning("[src] signs ([signs]) didn't match contents")
@@ -189,23 +189,23 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
if(!..(user, 1))
return
user << "\icon[src] This [callme] contains [reagents.total_volume] unit\s of water!"
to_chat(user, "\icon[src] This [callme] contains [reagents.total_volume] unit\s of water!")
if(mybag)
user << "\A [mybag] is hanging on the [callme]."
to_chat(user, "\A [mybag] is hanging on the [callme].")
/obj/structure/bed/chair/janicart/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/mop))
if(reagents.total_volume > 1)
reagents.trans_to_obj(I, 2)
user << "<span class='notice'>You wet [I] in the [callme].</span>"
to_chat(user, "<span class='notice'>You wet [I] in the [callme].</span>")
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
else
user << "<span class='notice'>This [callme] is out of water!</span>"
to_chat(user, "<span class='notice'>This [callme] is out of water!</span>")
else if(istype(I, /obj/item/key))
user << "Hold [I] in one of your hands while you drive this [callme]."
to_chat(user, "Hold [I] in one of your hands while you drive this [callme].")
else if(istype(I, /obj/item/weapon/storage/bag/trash))
user << "<span class='notice'>You hook the trashbag onto the [callme].</span>"
to_chat(user, "<span class='notice'>You hook the trashbag onto the [callme].</span>")
user.drop_item()
I.loc = src
mybag = I
@@ -227,7 +227,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
step(src, direction)
update_mob()
else
user << "<span class='notice'>You'll need the keys in one of your hands to drive this [callme].</span>"
to_chat(user, "<span class='notice'>You'll need the keys in one of your hands to drive this [callme].</span>")
/obj/structure/bed/chair/janicart/Move()
+2 -2
View File
@@ -63,14 +63,14 @@
var/obj/item/weapon/weldingtool/WT = C
if(WT.welding == 1)
if(WT.remove_fuel(0, user))
user << "<span class='notice'>Slicing lattice joints ...</span>"
to_chat(user, "<span class='notice'>Slicing lattice joints ...</span>")
new /obj/item/stack/rods(src.loc)
qdel(src)
return
if (istype(C, /obj/item/stack/rods))
var/obj/item/stack/rods/R = C
if(R.use(2))
user << "<span class='notice'>You start connecting \the [R.name] to \the [src.name] ...</span>"
to_chat(user, "<span class='notice'>You start connecting \the [R.name] to \the [src.name] ...</span>")
if(do_after(user, 5 SECONDS))
src.alpha = 0 // Note: I don't know why this is set, Eris did it, just trusting for now. ~Leshana
new /obj/structure/catwalk(src.loc)
+1 -1
View File
@@ -258,7 +258,7 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh
/obj/item/weapon/reagent_containers/syringe/steroid,
/obj/item/weapon/storage/pill_bottle/zoom,
/obj/item/weapon/storage/pill_bottle/happy,
/obj/item/weapon/storage/pill_bottle/tramadol
/obj/item/weapon/storage/pill_bottle/paracetamol //VOREStation Edit
)
// Contains loads of different types of boxes, which may have items inside!
+5 -5
View File
@@ -219,7 +219,7 @@ GLOBAL_LIST_BOILERPLATE(all_crematoriums, /obj/structure/morgue/crematorium)
/obj/structure/morgue/crematorium/attack_hand(mob/user as mob)
if (cremating)
usr << "<span class='warning'>It's locked.</span>"
to_chat(usr, "<span class='warning'>It's locked.</span>")
return
if ((src.connected) && (src.locked == 0))
for(var/atom/movable/A as mob|obj in src.connected.loc)
@@ -285,16 +285,16 @@ GLOBAL_LIST_BOILERPLATE(all_crematoriums, /obj/structure/morgue/crematorium)
if(contents.len <= 0)
for (var/mob/M in viewers(src))
to_chat(M,"<span class='warning'>You hear a hollow crackle.</span>")
to_chat(M, "<span class='warning'>You hear a hollow crackle.</span>")
return
else
if(!isemptylist(src.search_contents_for(/obj/item/weapon/disk/nuclear)))
to_chat(user,"You get the feeling that you shouldn't cremate one of the items in the cremator.")
to_chat(user, "You get the feeling that you shouldn't cremate one of the items in the cremator.")
return
for (var/mob/M in viewers(src))
to_chat(M,"<span class='warning'>You hear a roar as the crematorium activates.</span>")
to_chat(M, "<span class='warning'>You hear a roar as the crematorium activates.</span>")
cremating = 1
locked = 1
@@ -349,4 +349,4 @@ GLOBAL_LIST_BOILERPLATE(all_crematoriums, /obj/structure/morgue/crematorium)
if (!C.cremating)
C.cremate(user)
else
to_chat(user,"<span class='warning'>Access denied.</span>")
to_chat(user, "<span class='warning'>Access denied.</span>")
+1 -1
View File
@@ -15,7 +15,7 @@
return
else
if(!isemptylist(src.search_contents_for(/obj/item/weapon/disk/nuclear)))
usr << "You get the feeling that you shouldn't cremate one of the items in the cremator."
to_chat(usr, "You get the feeling that you shouldn't cremate one of the items in the cremator.")
return
for(var/I in contents)
+5 -5
View File
@@ -38,14 +38,14 @@
O.loc = src
notices++
icon_state = "nboard0[notices]" //update sprite
user << "<span class='notice'>You pin the paper to the noticeboard.</span>"
to_chat(user, "<span class='notice'>You pin the paper to the noticeboard.</span>")
else
user << "<span class='notice'>You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached.</span>"
to_chat(user, "<span class='notice'>You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached.</span>")
if(O.is_wrench())
user << "<span class='notice'>You start to unwrench the noticeboard.</span>"
to_chat(user, "<span class='notice'>You start to unwrench the noticeboard.</span>")
playsound(src.loc, O.usesound, 50, 1)
if(do_after(user, 15 * O.toolspeed))
user << "<span class='notice'>You unwrench the noticeboard.</span>"
to_chat(user, "<span class='notice'>You unwrench the noticeboard.</span>")
new /obj/item/frame/noticeboard( src.loc )
qdel(src)
return
@@ -92,7 +92,7 @@
add_fingerprint(M)
P.attackby(E, usr)
else
M << "<span class='notice'>You'll need something to write with!</span>"
to_chat(M, "<span class='notice'>You'll need something to write with!</span>")
if(href_list["read"])
var/obj/item/weapon/paper/P = locate(href_list["read"])
if((P && P.loc == src))
+1 -1
View File
@@ -7,7 +7,7 @@
/obj/structure/snowman/attack_hand(mob/user as mob)
if(user.a_intent == I_HURT)
user << "<span class='notice'>In one hit, [src] easily crumples into a pile of snow. You monster.</span>"
to_chat(user, "<span class='notice'>In one hit, [src] easily crumples into a pile of snow. You monster.</span>")
var/turf/simulated/floor/F = get_turf(src)
if (istype(F))
new /obj/item/stack/material/snow(F)
@@ -46,8 +46,7 @@
// Base icon.
var/cache_key = "[base_icon]-[material.name]"
if(isnull(stool_cache[cache_key]))
var/image/I = image(icon, base_icon) //VOREStation Edit
//var/image/I = image('icons/obj/furniture.dmi', base_icon) //From Polaris Sync. Not sure if this is a better way of doing it or not. Uncomment if so.
var/image/I = image(icon, base_icon)
if(applies_material_colour) //VOREStation Add - Goes with added var
I.color = material.icon_colour
stool_cache[cache_key] = I
@@ -347,4 +346,4 @@
return // Doesn't care about material or anything else.
/obj/structure/bed/alien/attackby(obj/item/weapon/W, mob/user)
return // No deconning.
return // No deconning.
@@ -43,16 +43,18 @@
/obj/structure/bed/chair/update_icon()
..()
if(has_buckled_mobs() && padding_material)
var/cache_key = "[base_icon]-armrest-[padding_material.name]"
if(has_buckled_mobs())
var/cache_key = "[base_icon]-armrest-[padding_material ? padding_material.name : "no_material"]"
if(isnull(stool_cache[cache_key]))
var/image/I = image(icon, "[base_icon]_armrest")
I.layer = MOB_LAYER + 0.1
I.plane = MOB_PLANE
I.color = padding_material.icon_colour
stool_cache[cache_key] = I
if(padding_material)
I.color = padding_material.icon_colour
stool_cache[cache_key] = I
overlays |= stool_cache[cache_key]
/obj/structure/bed/chair/proc/update_layer()
if(src.dir == NORTH)
plane = MOB_PLANE
@@ -85,15 +87,16 @@
/obj/structure/bed/chair/shuttle
name = "chair"
desc = "You sit in this. Either by will or force."
icon_state = "shuttle_chair"
icon_state = "shuttlechair"
color = null
base_icon = "shuttle_chair"
base_icon = "shuttlechair"
applies_material_colour = 0
// Leaving this in for the sake of compilation.
/obj/structure/bed/chair/comfy
desc = "It's a chair. It looks comfy."
icon_state = "comfychair_preview"
icon_state = "comfychair"
base_icon = "comfychair"
/obj/structure/bed/chair/comfy/brown/New(var/newloc,var/newmaterial)
..(newloc,"steel","leather")
@@ -203,3 +206,160 @@
/obj/structure/bed/chair/wood/wings
icon_state = "wooden_chair_wings"
//sofa
/obj/structure/bed/chair/sofa
name = "sofa"
desc = "It's a sofa. You sit on it. Possibly with someone else."
icon = 'icons/obj/sofas.dmi'
base_icon = "sofamiddle"
icon_state = "sofamiddle"
applies_material_colour = 1
var/sofa_material = "carpet"
/obj/structure/bed/chair/sofa/update_icon()
if(applies_material_colour && sofa_material)
material = get_material_by_name(sofa_material)
color = material.icon_colour
if(sofa_material == "carpet")
name = "red [initial(name)]"
else
name = "[sofa_material] [initial(name)]"
/obj/structure/bed/chair/sofa/left
icon_state = "sofaend_left"
base_icon = "sofaend_left"
/obj/structure/bed/chair/sofa/right
icon_state = "sofaend_right"
base_icon = "sofaend_right"
/obj/structure/bed/chair/sofa/corner
icon_state = "sofacorner"
base_icon = "sofacorner"
//color variations
/obj/structure/bed/chair/sofa
sofa_material = "carpet"
/obj/structure/bed/chair/sofa/brown
sofa_material = "leather"
/obj/structure/bed/chair/sofa/teal
sofa_material = "teal"
/obj/structure/bed/chair/sofa/black
sofa_material = "black"
/obj/structure/bed/chair/sofa/green
sofa_material = "green"
/obj/structure/bed/chair/sofa/purp
sofa_material = "purple"
/obj/structure/bed/chair/sofa/blue
sofa_material = "blue"
/obj/structure/bed/chair/sofa/beige
sofa_material = "beige"
/obj/structure/bed/chair/sofa/lime
sofa_material = "lime"
/obj/structure/bed/chair/sofa/yellow
sofa_material = "yellow"
//sofa directions
/obj/structure/bed/chair/sofa/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/corner
icon_state = "sofacorner"
/obj/structure/bed/chair/sofa/brown/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/brown/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/brown/corner
icon_state = "sofacorner"
/obj/structure/bed/chair/sofa/teal/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/teal/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/teal/corner
icon_state = "sofacorner"
/obj/structure/bed/chair/sofa/black/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/black/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/black/corner
icon_state = "sofacorner"
/obj/structure/bed/chair/sofa/green/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/green/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/green/corner
icon_state = "sofacorner"
/obj/structure/bed/chair/sofa/purp/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/purp/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/purp/corner
icon_state = "sofacorner"
/obj/structure/bed/chair/sofa/blue/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/blue/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/blue/corner
icon_state = "sofacorner"
/obj/structure/bed/chair/sofa/beige/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/beige/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/beige/corner
icon_state = "sofacorner"
/obj/structure/bed/chair/sofa/lime/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/lime/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/lime/corner
icon_state = "sofacorner"
/obj/structure/bed/chair/sofa/yellow/left
icon_state = "sofaend_left"
/obj/structure/bed/chair/sofa/yellow/right
icon_state = "sofaend_right"
/obj/structure/bed/chair/sofa/yellow/corner
icon_state = "sofacorner"
@@ -114,7 +114,7 @@ var/global/list/stool_cache = list() //haha stool
qdel(src)
else if(istype(W,/obj/item/stack))
if(padding_material)
user << "\The [src] is already padded."
to_chat(user, "\The [src] is already padded.")
return
var/obj/item/stack/C = W
if(C.get_amount() < 1) // How??
@@ -129,20 +129,20 @@ var/global/list/stool_cache = list() //haha stool
if(M.material && (M.material.flags & MATERIAL_PADDING))
padding_type = "[M.material.name]"
if(!padding_type)
user << "You cannot pad \the [src] with that."
to_chat(user, "You cannot pad \the [src] with that.")
return
C.use(1)
if(!istype(src.loc, /turf))
user.drop_from_inventory(src)
src.loc = get_turf(src)
user << "You add padding to \the [src]."
to_chat(user, "You add padding to \the [src].")
add_padding(padding_type)
return
else if (W.is_wirecutter())
if(!padding_material)
user << "\The [src] has no padding to remove."
to_chat(user, "\The [src] has no padding to remove.")
return
user << "You remove the padding from \the [src]."
to_chat(user, "You remove the padding from \the [src].")
playsound(src.loc, W.usesound, 50, 1)
remove_padding()
else
@@ -33,7 +33,7 @@
if(user==pulling)
pulling = null
user.pulledby = null
user << "<span class='warning'>You lost your grip!</span>"
to_chat(user, "<span class='warning'>You lost your grip!</span>")
return
if(has_buckled_mobs() && pulling && user in buckled_mobs)
if(pulling.stat || pulling.stunned || pulling.weakened || pulling.paralysis || pulling.lying || pulling.restrained())
@@ -51,10 +51,10 @@
if(user==pulling)
return
if(pulling && (get_dir(src.loc, pulling.loc) == direction))
user << "<span class='warning'>You cannot go there.</span>"
to_chat(user, "<span class='warning'>You cannot go there.</span>")
return
if(pulling && has_buckled_mobs() && (user in buckled_mobs))
user << "<span class='warning'>You cannot drive while being pushed.</span>"
to_chat(user, "<span class='warning'>You cannot drive while being pushed.</span>")
return
// Let's roll
@@ -109,7 +109,7 @@
unbuckle_mob()
if (pulling && (get_dist(src, pulling) > 1))
pulling.pulledby = null
pulling << "<span class='warning'>You lost your grip!</span>"
to_chat(pulling, "<span class='warning'>You lost your grip!</span>")
pulling = null
else
if (occupant && (src.loc != occupant.loc))
@@ -128,7 +128,7 @@
if(in_range(src, user))
if(!ishuman(user)) return
if(has_buckled_mobs() && user in buckled_mobs)
user << "<span class='warning'>You realize you are unable to push the wheelchair you sit in.</span>"
to_chat(user, "<span class='warning'>You realize you are unable to push the wheelchair you sit in.</span>")
return
if(!pulling)
pulling = user
@@ -136,9 +136,9 @@
if(user.pulling)
user.stop_pulling()
user.set_dir(get_dir(user, src))
user << "You grip \the [name]'s handles."
to_chat(user, "You grip \the [name]'s handles.")
else
usr << "You let go of \the [name]'s handles."
to_chat(usr, "You let go of \the [name]'s handles.")
pulling.pulledby = null
pulling = null
return
@@ -54,11 +54,11 @@
I.loc = src
oxytanks.Add(I)
oxygentanks++
user << "<span class='notice'>You put [I] in [src].</span>"
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
if(oxygentanks < 5)
update_icon()
else
user << "<span class='notice'>[src] is full.</span>"
to_chat(user, "<span class='notice'>[src] is full.</span>")
updateUsrDialog()
return
if(istype(I, /obj/item/weapon/tank/phoron))
@@ -67,19 +67,19 @@
I.loc = src
platanks.Add(I)
phorontanks++
user << "<span class='notice'>You put [I] in [src].</span>"
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
if(oxygentanks < 6)
update_icon()
else
user << "<span class='notice'>[src] is full.</span>"
to_chat(user, "<span class='notice'>[src] is full.</span>")
updateUsrDialog()
return
if(I.is_wrench())
if(anchored)
user << "<span class='notice'>You lean down and unwrench [src].</span>"
to_chat(user, "<span class='notice'>You lean down and unwrench [src].</span>")
anchored = 0
else
user << "<span class='notice'>You wrench [src] into place.</span>"
to_chat(user, "<span class='notice'>You wrench [src] into place.</span>")
anchored = 1
return
@@ -97,7 +97,7 @@
else
O = new /obj/item/weapon/tank/oxygen(loc)
O.loc = loc
usr << "<span class='notice'>You take [O] out of [src].</span>"
to_chat(usr, "<span class='notice'>You take [O] out of [src].</span>")
oxygentanks--
update_icon()
if(href_list["phoron"])
@@ -109,7 +109,7 @@
else
P = new /obj/item/weapon/tank/phoron(loc)
P.loc = loc
usr << "<span class='notice'>You take [P] out of [src].</span>"
to_chat(usr, "<span class='notice'>You take [P] out of [src].</span>")
phorontanks--
update_icon()
add_fingerprint(usr)
+3 -3
View File
@@ -30,7 +30,7 @@
W.loc = loc
W.layer = ABOVE_JUNK_LAYER
pinned_target = W
user << "You slide the target into the stake."
to_chat(user, "You slide the target into the stake.")
return
attack_hand(mob/user as mob)
@@ -44,9 +44,9 @@
if(ishuman(user))
if(!user.get_active_hand())
user.put_in_hands(pinned_target)
user << "You take the target out of the stake."
to_chat(user, "You take the target out of the stake.")
else
pinned_target.loc = get_turf(user)
user << "You take the target out of the stake."
to_chat(user, "You take the target out of the stake.")
pinned_target = null
@@ -101,11 +101,11 @@ obj/structure/ex_act(severity)
/obj/structure/transit_tube/Bumped(mob/AM as mob|obj)
var/obj/structure/transit_tube/T = locate() in AM.loc
if(T)
AM << "<span class='warning'>The tube's support pylons block your way.</span>"
to_chat(AM, "<span class='warning'>The tube's support pylons block your way.</span>")
return ..()
else
AM.loc = src.loc
AM << "<span class='info'>You slip under the tube.</span>"
to_chat(AM, "<span class='info'>You slip under the tube.</span>")
/obj/structure/transit_tube/station/New(loc)
@@ -117,7 +117,7 @@ obj/structure/ex_act(severity)
if(!pod_moving && icon_state == "open" && istype(AM, /mob))
for(var/obj/structure/transit_tube_pod/pod in loc)
if(pod.contents.len)
AM << "<span class='notice'>The pod is already occupied.</span>"
to_chat(AM, "<span class='notice'>The pod is already occupied.</span>")
return
else if(!pod.moving && pod.dir in directions())
AM.loc = pod
@@ -220,7 +220,7 @@
return I
/obj/structure/trash_pile/proc/produce_beta_item()
var/path = pick(prob(6);/obj/item/weapon/storage/pill_bottle/tramadol,
var/path = pick(prob(6);/obj/item/weapon/storage/pill_bottle/paracetamol,
prob(4);/obj/item/weapon/storage/pill_bottle/happy,
prob(4);/obj/item/weapon/storage/pill_bottle/zoom,
prob(4);/obj/item/seeds/ambrosiavulgarisseed,
@@ -7,7 +7,7 @@
/obj/structure/undies_wardrobe/attack_hand(var/mob/user)
if(!human_who_can_use_underwear(user))
user << "<span class='warning'>Sadly there's nothing in here for you to wear.</span>"
to_chat(user, "<span class='warning'>Sadly there's nothing in here for you to wear.</span>")
return
interact(user)