mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 20:20:33 +01:00
Updates box2550away (again) (again) (again)
Uses the map tools, but edits a lot of paths.
Makes box2550away unsimulated to combat lag
Adds three new unsimulated floors, which are just copies of simulated
ones
Adds four new unsimluated walls, which are just copies of simulated ones
Breaks telescreens as they don't work off the station
Adds the escape shuttle to the map as it has the penultimate HONK clue
paper on it and replaces the shuttle console with a fake
Adds a needed stat check to security camera computers
Gets rid of disposal overlays on box2550away toilets
Replaces box2550away status displays with fakes
Fixes a bug with entertainment monitors where they had no broken icon
due to being in status_display.dmi instead of stationobjs.dmi
Adds a carpet icon ("carpet2") that was present in 2010 and is used in
box2550away back to floors.dmi
Changes disposal related user messages so they refer to the name var of
the disposal object. This makes the messages refer to my disposal
toilets as toilets instead of diposals.
Removes the non-slip flag of SWAT shoes in the armoury.
God I hope I committed all the files I changed.
This commit is contained in:
+1992
-1977
File diff suppressed because it is too large
Load Diff
@@ -20,67 +20,68 @@
|
||||
|
||||
|
||||
attack_hand(var/mob/user as mob)
|
||||
if (src.z > 6)
|
||||
user << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
|
||||
return
|
||||
if(!stat)
|
||||
if (src.z > 6)
|
||||
user << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
|
||||
return
|
||||
|
||||
if (!network)
|
||||
world.log << "A computer lacks a network at [x],[y],[z]."
|
||||
return
|
||||
if (!(istype(network,/list)))
|
||||
world.log << "The computer at [x],[y],[z] has a network that is not a list!"
|
||||
return
|
||||
if (!network)
|
||||
world.log << "A computer lacks a network at [x],[y],[z]."
|
||||
return
|
||||
if (!(istype(network,/list)))
|
||||
world.log << "The computer at [x],[y],[z] has a network that is not a list!"
|
||||
return
|
||||
|
||||
if(..())
|
||||
return
|
||||
if(..())
|
||||
return
|
||||
|
||||
var/list/L = list()
|
||||
for (var/obj/machinery/camera/C in cameranet.cameras)
|
||||
L.Add(C)
|
||||
var/list/L = list()
|
||||
for (var/obj/machinery/camera/C in cameranet.cameras)
|
||||
L.Add(C)
|
||||
|
||||
camera_sort(L)
|
||||
camera_sort(L)
|
||||
|
||||
var/list/D = list()
|
||||
D["Cancel"] = "Cancel"
|
||||
for(var/obj/machinery/camera/C in L)
|
||||
if(!C.network)
|
||||
world.log << "[C.c_tag] has no camera network."
|
||||
continue
|
||||
if(!(istype(C.network,/list)))
|
||||
world.log << "[C.c_tag]'s camera network is not a list!"
|
||||
continue
|
||||
var/list/tempnetwork = C.network&network
|
||||
if(tempnetwork.len)
|
||||
D[text("[][]", C.c_tag, (C.status ? null : " (Deactivated)"))] = C
|
||||
var/list/D = list()
|
||||
D["Cancel"] = "Cancel"
|
||||
for(var/obj/machinery/camera/C in L)
|
||||
if(!C.network)
|
||||
world.log << "[C.c_tag] has no camera network."
|
||||
continue
|
||||
if(!(istype(C.network,/list)))
|
||||
world.log << "[C.c_tag]'s camera network is not a list!"
|
||||
continue
|
||||
var/list/tempnetwork = C.network&network
|
||||
if(tempnetwork.len)
|
||||
D[text("[][]", C.c_tag, (C.status ? null : " (Deactivated)"))] = C
|
||||
|
||||
var/t = input(user, "Which camera should you change to?") as null|anything in D
|
||||
if(!t)
|
||||
user.unset_machine()
|
||||
return 0
|
||||
|
||||
var/obj/machinery/camera/C = D[t]
|
||||
|
||||
if(t == "Cancel")
|
||||
user.unset_machine()
|
||||
return 0
|
||||
|
||||
if(C)
|
||||
if ((get_dist(user, src) > 1 || user.machine != src || user.blinded || !( C.can_use() )) && (!istype(user, /mob/living/silicon/ai)))
|
||||
if(!C.can_use() && !isAI(user))
|
||||
src.current = null
|
||||
var/t = input(user, "Which camera should you change to?") as null|anything in D
|
||||
if(!t)
|
||||
user.unset_machine()
|
||||
return 0
|
||||
else
|
||||
if(isAI(user))
|
||||
var/mob/living/silicon/ai/A = user
|
||||
A.eyeobj.setLoc(get_turf(C))
|
||||
A.client.eye = A.eyeobj
|
||||
else
|
||||
src.current = C
|
||||
use_power(50)
|
||||
|
||||
spawn(5)
|
||||
attack_hand(user)
|
||||
return
|
||||
var/obj/machinery/camera/C = D[t]
|
||||
|
||||
if(t == "Cancel")
|
||||
user.unset_machine()
|
||||
return 0
|
||||
|
||||
if(C)
|
||||
if ((get_dist(user, src) > 1 || user.machine != src || user.blinded || !( C.can_use() )) && (!istype(user, /mob/living/silicon/ai)))
|
||||
if(!C.can_use() && !isAI(user))
|
||||
src.current = null
|
||||
return 0
|
||||
else
|
||||
if(isAI(user))
|
||||
var/mob/living/silicon/ai/A = user
|
||||
A.eyeobj.setLoc(get_turf(C))
|
||||
A.client.eye = A.eyeobj
|
||||
else
|
||||
src.current = C
|
||||
use_power(50)
|
||||
|
||||
spawn(5)
|
||||
attack_hand(user)
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -101,8 +102,8 @@
|
||||
|
||||
/obj/machinery/computer/security/telescreen/entertainment
|
||||
name = "entertainment monitor"
|
||||
desc = "Damn, they better have /tg/thechannel on these things."
|
||||
icon = 'icons/obj/status_display.dmi'
|
||||
desc = "Damn, they better have the /tg/ channel on these things."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "entertainment"
|
||||
network = list("thunder")
|
||||
density = 0
|
||||
|
||||
@@ -1,7 +1,19 @@
|
||||
/turf/unsimulated/floor
|
||||
name = "floor"
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "Floor3"
|
||||
icon_state = "floor"
|
||||
|
||||
/turf/unsimulated/floor/plating
|
||||
name = "plating"
|
||||
icon_state = "plating"
|
||||
intact = 0
|
||||
|
||||
/turf/unsimulated/floor/bluegrid
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "bcircuit"
|
||||
|
||||
/turf/unsimulated/floor/engine
|
||||
icon_state = "engine"
|
||||
|
||||
/turf/unsimulated/floor/attack_paw(user as mob)
|
||||
return src.attack_hand(user)
|
||||
@@ -6,6 +6,9 @@
|
||||
density = 1
|
||||
blocks_air = 1
|
||||
|
||||
/turf/unsimulated/wall/normal
|
||||
icon_state = "wall"
|
||||
|
||||
/turf/unsimulated/wall/fakeglass
|
||||
name = "window"
|
||||
icon_state = "fakewindows"
|
||||
@@ -23,4 +26,23 @@ turf/unsimulated/wall/splashscreen
|
||||
layer = FLY_LAYER
|
||||
|
||||
/turf/unsimulated/wall/other
|
||||
icon_state = "r_wall"
|
||||
icon_state = "r_wall"
|
||||
name = "reinforced wall"
|
||||
|
||||
/turf/unsimulated/shuttle
|
||||
name = "shuttle"
|
||||
icon = 'icons/turf/shuttle.dmi'
|
||||
thermal_conductivity = 0.05
|
||||
heat_capacity = 0
|
||||
layer = 2
|
||||
|
||||
/turf/unsimulated/shuttle/wall
|
||||
name = "wall"
|
||||
icon_state = "wall1"
|
||||
opacity = 1
|
||||
density = 1
|
||||
blocks_air = 1
|
||||
|
||||
/turf/unsimulated/shuttle/floor
|
||||
name = "floor"
|
||||
icon_state = "floor"
|
||||
@@ -870,4 +870,49 @@ obj/effect/landmark/corpse/away/box2550/det
|
||||
new /obj/item/clothing/shoes/brown/box2550away(src)
|
||||
new /obj/item/clothing/shoes/brown/box2550away(src)
|
||||
new /obj/item/clothing/shoes/brown/box2550away(src)
|
||||
new /obj/item/clothing/shoes/brown/box2550away(src)
|
||||
new /obj/item/clothing/shoes/brown/box2550away(src)
|
||||
|
||||
/obj/machinery/disposal/box2550away/toilet
|
||||
name = "toilet"
|
||||
desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean."
|
||||
icon = 'icons/obj/watercloset.dmi'
|
||||
icon_state = "toilet10" //lid up
|
||||
density = 0
|
||||
|
||||
/obj/machinery/box2550away/fake_status_display
|
||||
name = "status display"
|
||||
icon = 'icons/obj/status_display.dmi'
|
||||
icon_state = "frame"
|
||||
anchored = 1
|
||||
density = 0
|
||||
desc = "The display says: \n\n"
|
||||
|
||||
/obj/machinery/box2550away/fake_status_display/ai
|
||||
name = "\improper AI display"
|
||||
desc = null
|
||||
overlays = list("ai_bsod")
|
||||
|
||||
/obj/machinery/disposal/box2550away/toilet/update()
|
||||
overlays.Cut()
|
||||
if(stat & BROKEN)
|
||||
mode = 0
|
||||
flush = 0
|
||||
return
|
||||
|
||||
// flush handle
|
||||
if(flush)
|
||||
return
|
||||
|
||||
// only handle is shown if no power
|
||||
if(stat & NOPOWER || mode == -1)
|
||||
return
|
||||
|
||||
// check for items in disposal - occupied light
|
||||
if(contents.len > 0)
|
||||
return
|
||||
|
||||
// charging and ready light
|
||||
if(mode == 1)
|
||||
return
|
||||
else if(mode == 2)
|
||||
return
|
||||
@@ -88,11 +88,11 @@
|
||||
var/obj/item/weapon/weldingtool/W = I
|
||||
if(W.remove_fuel(0,user))
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
|
||||
user << "You start slicing the floorweld off the disposal unit."
|
||||
user << "You start slicing the floorweld off \the [src]."
|
||||
|
||||
if(do_after(user,20))
|
||||
if(!src || !W.isOn()) return
|
||||
user << "You sliced the floorweld off the disposal unit."
|
||||
user << "You slice the floorweld off \the [src]."
|
||||
var/obj/structure/disposalconstruct/C = new (src.loc)
|
||||
src.transfer_fingerprints_to(C)
|
||||
C.ptype = 6 // 6 = disposal unit
|
||||
@@ -106,7 +106,7 @@
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/weapon/melee/energy/blade))
|
||||
user << "You can't place that item inside the disposal unit."
|
||||
user << "You can't place \the [I] into \the [src]."
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/weapon/storage/bag/trash))
|
||||
@@ -123,14 +123,14 @@
|
||||
if(ismob(G.affecting))
|
||||
var/mob/GM = G.affecting
|
||||
for (var/mob/V in viewers(usr))
|
||||
V.show_message("[usr] starts putting [GM.name] into the disposal.", 3)
|
||||
V.show_message("[usr] starts putting [GM.name] into \the [src].", 3)
|
||||
if(do_after(usr, 20))
|
||||
if (GM.client)
|
||||
GM.client.perspective = EYE_PERSPECTIVE
|
||||
GM.client.eye = src
|
||||
GM.loc = src
|
||||
for (var/mob/C in viewers(src))
|
||||
C.show_message("\red [GM.name] has been placed in the [src] by [user].", 3)
|
||||
C.show_message("\red [GM.name] has been placed in \the [src] by [user].", 3)
|
||||
del(G)
|
||||
return
|
||||
|
||||
@@ -140,11 +140,11 @@
|
||||
if(I)
|
||||
I.loc = src
|
||||
|
||||
user << "You place \the [I] into the [src]."
|
||||
user << "You place \the [I] into \the [src]."
|
||||
for(var/mob/M in viewers(src))
|
||||
if(M == user)
|
||||
continue
|
||||
M.show_message("[user.name] places \the [I] into the [src].", 3)
|
||||
M.show_message("[user.name] places \the [I] into \the [src].", 3)
|
||||
|
||||
update()
|
||||
|
||||
@@ -158,22 +158,22 @@
|
||||
var/msg
|
||||
for (var/mob/V in viewers(usr))
|
||||
if(target == user && !user.stat && !user.weakened && !user.stunned && !user.paralysis)
|
||||
V.show_message("[usr] starts climbing into the disposal.", 3)
|
||||
V.show_message("[usr] starts climbing into \the [src].", 3)
|
||||
if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis)
|
||||
if(target.anchored) return
|
||||
if(!ishuman(user) && !ismonkey(user)) return
|
||||
V.show_message("[usr] starts stuffing [target.name] into the disposal.", 3)
|
||||
V.show_message("[usr] starts stuffing [target.name] into \the [src].", 3)
|
||||
if(!do_after(usr, 20))
|
||||
return
|
||||
if(target_loc != target.loc)
|
||||
return
|
||||
if(target == user && !user.stat && !user.weakened && !user.stunned && !user.paralysis) // if drop self, then climbed in
|
||||
// must be awake, not stunned or whatever
|
||||
msg = "[user.name] climbs into the [src]."
|
||||
user << "You climb into the [src]."
|
||||
msg = "[user.name] climbs into \the [src]."
|
||||
user << "You climb into \the [src]."
|
||||
else if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis)
|
||||
msg = "[user.name] stuffs [target.name] into the [src]!"
|
||||
user << "You stuff [target.name] into the [src]!"
|
||||
msg = "[user.name] stuffs [target.name] into \the [src]!"
|
||||
user << "You stuff [target.name] into \the [src]!"
|
||||
else
|
||||
return
|
||||
if (target.client)
|
||||
@@ -245,7 +245,7 @@
|
||||
// hostile mob escape from disposals
|
||||
/obj/machinery/disposal/attack_animal(var/mob/living/simple_animal/M)
|
||||
if(M.environment_smash)
|
||||
visible_message("<span class='danger'>[M.name] smashes [src] apart!</span>")
|
||||
visible_message("<span class='danger'>[M.name] smashes \the [src] apart!</span>")
|
||||
del(src)
|
||||
return
|
||||
|
||||
@@ -293,7 +293,7 @@
|
||||
return
|
||||
|
||||
if(mode==-1 && !href_list["eject"]) // only allow ejecting if mode is -1
|
||||
usr << "\red The disposal units power is disabled."
|
||||
usr << "\red \The [src]'s power is disabled."
|
||||
return
|
||||
..()
|
||||
usr.set_machine(src)
|
||||
@@ -1290,10 +1290,10 @@
|
||||
var/obj/item/weapon/weldingtool/W = I
|
||||
if(W.remove_fuel(0,user))
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
|
||||
user << "You start slicing the floorweld off the disposal outlet."
|
||||
user << "You start slicing the floorweld off \the [src]."
|
||||
if(do_after(user,20))
|
||||
if(!src || !W.isOn()) return
|
||||
user << "You sliced the floorweld off the disposal outlet."
|
||||
user << "You slice the floorweld off \the [src]."
|
||||
var/obj/structure/disposalconstruct/C = new (src.loc)
|
||||
src.transfer_fingerprints_to(C)
|
||||
C.ptype = 7 // 7 = outlet
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 89 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 278 KiB |
Reference in New Issue
Block a user