Merge pull request #3060 from Citadel-Station-13/upstream-merge-31086

[MIRROR] Adds desc to things lacking them.
This commit is contained in:
LetterJay
2017-10-01 23:37:35 -04:00
committed by GitHub
35 changed files with 903 additions and 842 deletions
+1
View File
@@ -95,6 +95,7 @@ Class Procs:
/obj/machinery /obj/machinery
name = "machinery" name = "machinery"
icon = 'icons/obj/stationobjs.dmi' icon = 'icons/obj/stationobjs.dmi'
desc = "Some kind of machine."
verb_say = "beeps" verb_say = "beeps"
verb_yell = "blares" verb_yell = "blares"
pressure_resistance = 15 pressure_resistance = 15
@@ -42,6 +42,7 @@
icon = 'icons/obj/airlock_machines.dmi' icon = 'icons/obj/airlock_machines.dmi'
icon_state = "access_button_standby" icon_state = "access_button_standby"
name = "access button" name = "access button"
desc = "A button used for the explicit purpose of opening an airlock."
var/idDoor var/idDoor
var/obj/machinery/door/airlock/door var/obj/machinery/door/airlock/door
var/obj/machinery/doorButtons/airlock_controller/controller var/obj/machinery/doorButtons/airlock_controller/controller
@@ -107,6 +108,7 @@
icon = 'icons/obj/airlock_machines.dmi' icon = 'icons/obj/airlock_machines.dmi'
icon_state = "access_control_standby" icon_state = "access_control_standby"
name = "access console" name = "access console"
desc = "A small console that can cycle opening between two airlocks."
var/obj/machinery/door/airlock/interiorAirlock var/obj/machinery/door/airlock/interiorAirlock
var/obj/machinery/door/airlock/exteriorAirlock var/obj/machinery/door/airlock/exteriorAirlock
var/idInterior var/idInterior
+1
View File
@@ -6,6 +6,7 @@
icon = 'icons/obj/power.dmi' icon = 'icons/obj/power.dmi'
icon_state = "light1" icon_state = "light1"
anchored = TRUE anchored = TRUE
desc = "Make dark."
var/on = TRUE var/on = TRUE
var/area/area = null var/area/area = null
var/otherarea = null var/otherarea = null
@@ -2,6 +2,7 @@
name = "pipe dispenser" name = "pipe dispenser"
icon = 'icons/obj/stationobjs.dmi' icon = 'icons/obj/stationobjs.dmi'
icon_state = "pipe_d" icon_state = "pipe_d"
desc = "Dispenses countless types of pipes. Very useful if you need pipes."
density = TRUE density = TRUE
anchored = TRUE anchored = TRUE
var/wait = 0 var/wait = 0
@@ -108,6 +109,7 @@
name = "disposal pipe dispenser" name = "disposal pipe dispenser"
icon = 'icons/obj/stationobjs.dmi' icon = 'icons/obj/stationobjs.dmi'
icon_state = "pipe_d" icon_state = "pipe_d"
desc = "Dispenses pipes that will ultimately be used to move trash around."
density = TRUE density = TRUE
anchored = TRUE anchored = TRUE
@@ -183,6 +185,7 @@ Nah
icon = 'icons/obj/stationobjs.dmi' icon = 'icons/obj/stationobjs.dmi'
icon_state = "pipe_d" icon_state = "pipe_d"
density = TRUE density = TRUE
desc = "Dispenses pipes that will move beings around."
anchored = TRUE anchored = TRUE
/obj/machinery/pipedispenser/disposal/transit_tube/attack_hand(mob/user) /obj/machinery/pipedispenser/disposal/transit_tube/attack_hand(mob/user)
@@ -12,6 +12,7 @@
layer = OBJ_LAYER layer = OBJ_LAYER
invisibility = INVISIBILITY_OBSERVER //the turret is invisible if it's inside its cover invisibility = INVISIBILITY_OBSERVER //the turret is invisible if it's inside its cover
density = TRUE density = TRUE
desc = "A covered turret that shoots at its enemies."
use_power = IDLE_POWER_USE //this turret uses and requires power use_power = IDLE_POWER_USE //this turret uses and requires power
idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power
active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power
@@ -552,6 +553,7 @@
base_icon_state = "syndie" base_icon_state = "syndie"
faction = "syndicate" faction = "syndicate"
emp_vunerable = 0 emp_vunerable = 0
desc = "A ballistic machine gun auto-turret."
/obj/machinery/porta_turret/syndicate/energy /obj/machinery/porta_turret/syndicate/energy
icon_state = "standard_stun" icon_state = "standard_stun"
@@ -560,6 +562,7 @@
stun_projectile_sound = 'sound/weapons/taser.ogg' stun_projectile_sound = 'sound/weapons/taser.ogg'
lethal_projectile = /obj/item/projectile/beam/laser/heavylaser lethal_projectile = /obj/item/projectile/beam/laser/heavylaser
lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
desc = "An energy blaster auto-turret."
/obj/machinery/porta_turret/syndicate/setup() /obj/machinery/porta_turret/syndicate/setup()
return return
@@ -12,6 +12,7 @@
name = "turret frame" name = "turret frame"
icon = 'icons/obj/turrets.dmi' icon = 'icons/obj/turrets.dmi'
icon_state = "turret_frame" icon_state = "turret_frame"
desc = "An unfinished covered turret frame."
density = TRUE density = TRUE
var/build_step = PTURRET_UNSECURED //the current step in the building process var/build_step = PTURRET_UNSECURED //the current step in the building process
var/finish_name = "turret" //the name applied to the product turret var/finish_name = "turret" //the name applied to the product turret
@@ -3,6 +3,7 @@
/obj/machinery/computer/telecomms/server /obj/machinery/computer/telecomms/server
name = "telecommunications server monitoring console" name = "telecommunications server monitoring console"
icon_screen = "comm_logs" icon_screen = "comm_logs"
desc = "Has full access to all details and record of the telecommunications network it's monitoring."
var/screen = 0 // the screen number: var/screen = 0 // the screen number:
var/list/servers = list() // the servers located by the computer var/list/servers = list() // the servers located by the computer
@@ -8,6 +8,7 @@
/obj/machinery/computer/telecomms/monitor /obj/machinery/computer/telecomms/monitor
name = "telecommunications monitoring console" name = "telecommunications monitoring console"
icon_screen = "comm_monitor" icon_screen = "comm_monitor"
desc = "Monitors the details of the telecommunications network it's synced with."
var/screen = 0 // the screen number: var/screen = 0 // the screen number:
var/list/machinelist = list() // the machines located by the computer var/list/machinelist = list() // the machines located by the computer
@@ -4,6 +4,7 @@
suffix = "\[3\]" suffix = "\[3\]"
icon_state = "walkietalkie" icon_state = "walkietalkie"
item_state = "walkietalkie" item_state = "walkietalkie"
desc = "A basic handheld radio that communicates with local telecommunication networks."
dog_fashion = /datum/dog_fashion/back dog_fashion = /datum/dog_fashion/back
var/on = TRUE // 0 for off var/on = TRUE // 0 for off
var/last_transmission var/last_transmission
+1 -1
View File
@@ -41,7 +41,7 @@
/obj/item/target/syndicate /obj/item/target/syndicate
icon_state = "target_s" icon_state = "target_s"
desc = "A shooting target that looks like a syndicate scum." desc = "A shooting target that looks like syndicate scum."
hp = 2600 hp = 2600
/obj/item/target/alien /obj/item/target/alien
+1 -1
View File
@@ -1,7 +1,7 @@
/obj/item/picket_sign /obj/item/picket_sign
icon_state = "picket" icon_state = "picket"
name = "blank picket sign" name = "blank picket sign"
desc = "It's blank" desc = "It's blank."
force = 5 force = 5
w_class = WEIGHT_CLASS_BULKY w_class = WEIGHT_CLASS_BULKY
attack_verb = list("bashed","smacked") attack_verb = list("bashed","smacked")
+1
View File
@@ -17,6 +17,7 @@
icon = 'icons/obj/food/containers.dmi' icon = 'icons/obj/food/containers.dmi'
icon_state = "donutbox6" icon_state = "donutbox6"
name = "donut box" name = "donut box"
desc = "Mmm. Donuts."
resistance_flags = FLAMMABLE resistance_flags = FLAMMABLE
var/icon_type = "donut" var/icon_type = "donut"
var/spawn_type = null var/spawn_type = null
@@ -25,6 +25,7 @@
w_class = WEIGHT_CLASS_NORMAL w_class = WEIGHT_CLASS_NORMAL
max_w_class = WEIGHT_CLASS_SMALL max_w_class = WEIGHT_CLASS_SMALL
max_combined_w_class = 14 max_combined_w_class = 14
desc = "This shouldn't exist. If it does, create an issue report."
/obj/item/storage/secure/examine(mob/user) /obj/item/storage/secure/examine(mob/user)
..() ..()
@@ -177,6 +178,7 @@
icon_opened = "safe0" icon_opened = "safe0"
icon_locking = "safeb" icon_locking = "safeb"
icon_sparking = "safespark" icon_sparking = "safespark"
desc = "Excellent for securing things away from grubby hands."
force = 8 force = 8
w_class = WEIGHT_CLASS_GIGANTIC w_class = WEIGHT_CLASS_GIGANTIC
max_w_class = 8 max_w_class = 8
+1
View File
@@ -5,6 +5,7 @@
icon = 'icons/obj/vending_restock.dmi' icon = 'icons/obj/vending_restock.dmi'
icon_state = "refill_snack" icon_state = "refill_snack"
item_state = "restock_unit" item_state = "restock_unit"
desc = "A vending machine restock cart."
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
flags_1 = CONDUCT_1 flags_1 = CONDUCT_1
+1
View File
@@ -4,6 +4,7 @@
name = "\improper AI core" name = "\improper AI core"
icon = 'icons/mob/ai.dmi' icon = 'icons/mob/ai.dmi'
icon_state = "0" icon_state = "0"
desc = "The framework for an artificial intelligence core."
max_integrity = 500 max_integrity = 500
var/state = 0 var/state = 0
var/datum/ai_laws/laws = new() var/datum/ai_laws/laws = new()
@@ -6,6 +6,7 @@
anchored = FALSE anchored = FALSE
density = TRUE density = TRUE
max_integrity = 200 max_integrity = 200
desc = "The mechanical framework for an airlock."
var/state = 0 var/state = 0
var/mineral = null var/mineral = null
var/typetext = "" var/typetext = ""
+10
View File
@@ -6,6 +6,7 @@
//trees //trees
/obj/structure/flora/tree /obj/structure/flora/tree
name = "tree" name = "tree"
desc = "A large tree."
density = TRUE density = TRUE
pixel_x = -16 pixel_x = -16
layer = FLY_LAYER layer = FLY_LAYER
@@ -40,6 +41,7 @@
/obj/structure/flora/tree/pine /obj/structure/flora/tree/pine
name = "pine tree" name = "pine tree"
desc = "A coniferous pine tree."
icon = 'icons/obj/flora/pinetrees.dmi' icon = 'icons/obj/flora/pinetrees.dmi'
icon_state = "pine_1" icon_state = "pine_1"
@@ -49,6 +51,7 @@
/obj/structure/flora/tree/pine/xmas /obj/structure/flora/tree/pine/xmas
name = "xmas tree" name = "xmas tree"
desc = "A wondrous decorated Christmas tree."
icon_state = "pine_c" icon_state = "pine_c"
/obj/structure/flora/tree/pine/xmas/Initialize() /obj/structure/flora/tree/pine/xmas/Initialize()
@@ -57,10 +60,12 @@
/obj/structure/flora/tree/dead /obj/structure/flora/tree/dead
icon = 'icons/obj/flora/deadtrees.dmi' icon = 'icons/obj/flora/deadtrees.dmi'
desc = "A dead tree. How it died, you know not."
icon_state = "tree_1" icon_state = "tree_1"
/obj/structure/flora/tree/palm /obj/structure/flora/tree/palm
icon = 'icons/misc/beach2.dmi' icon = 'icons/misc/beach2.dmi'
desc = "A tree straight from the tropics."
icon_state = "palm1" icon_state = "palm1"
/obj/structure/flora/tree/palm/Initialize() /obj/structure/flora/tree/palm/Initialize()
@@ -98,6 +103,7 @@
//grass //grass
/obj/structure/flora/grass /obj/structure/flora/grass
name = "grass" name = "grass"
desc = "A patch of overgrown grass."
icon = 'icons/obj/flora/snowflora.dmi' icon = 'icons/obj/flora/snowflora.dmi'
gender = PLURAL //"this is grass" not "this is a grass" gender = PLURAL //"this is grass" not "this is a grass"
@@ -127,6 +133,7 @@
//bushes //bushes
/obj/structure/flora/bush /obj/structure/flora/bush
name = "bush" name = "bush"
desc = "Some type of shrub."
icon = 'icons/obj/flora/snowflora.dmi' icon = 'icons/obj/flora/snowflora.dmi'
icon_state = "snowbush1" icon_state = "snowbush1"
anchored = TRUE anchored = TRUE
@@ -139,6 +146,7 @@
/obj/structure/flora/ausbushes /obj/structure/flora/ausbushes
name = "bush" name = "bush"
desc = "Some kind of plant."
icon = 'icons/obj/flora/ausflora.dmi' icon = 'icons/obj/flora/ausflora.dmi'
icon_state = "firstbush_1" icon_state = "firstbush_1"
@@ -256,6 +264,7 @@
name = "potted plant" name = "potted plant"
icon = 'icons/obj/flora/plants.dmi' icon = 'icons/obj/flora/plants.dmi'
icon_state = "plant-01" icon_state = "plant-01"
desc = "A little bit of nature contained in a pot."
layer = ABOVE_MOB_LAYER layer = ABOVE_MOB_LAYER
w_class = WEIGHT_CLASS_HUGE w_class = WEIGHT_CLASS_HUGE
force = 10 force = 10
@@ -365,6 +374,7 @@
/obj/structure/flora/junglebush /obj/structure/flora/junglebush
name = "bush" name = "bush"
desc = "A wild plant that is found in jungles."
icon = 'icons/obj/flora/jungleflora.dmi' icon = 'icons/obj/flora/jungleflora.dmi'
icon_state = "busha" icon_state = "busha"
+1
View File
@@ -1,6 +1,7 @@
/obj/structure/girder /obj/structure/girder
name = "girder" name = "girder"
icon_state = "girder" icon_state = "girder"
desc = "A large structural assembly made out of metal; It requires a layer of metal before it can be considered a wall."
anchored = TRUE anchored = TRUE
density = TRUE density = TRUE
layer = BELOW_OBJ_LAYER layer = BELOW_OBJ_LAYER
@@ -7,6 +7,7 @@
/obj/structure/transit_tube/station /obj/structure/transit_tube/station
name = "station tube station" name = "station tube station"
icon_state = "closed_station0" icon_state = "closed_station0"
desc = "The lynchpin of the transit system."
exit_delay = 1 exit_delay = 1
enter_delay = 2 enter_delay = 2
tube_construction = /obj/structure/c_transit_tube/station tube_construction = /obj/structure/c_transit_tube/station
@@ -3,6 +3,7 @@
name = "transit tube" name = "transit tube"
icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi'
icon_state = "straight" icon_state = "straight"
desc = "A transit tube for moving things around."
density = TRUE density = TRUE
layer = LOW_ITEM_LAYER layer = LOW_ITEM_LAYER
anchored = TRUE anchored = TRUE
@@ -1,158 +1,159 @@
// transit tube construction // transit tube construction
// normal transit tubes // normal transit tubes
/obj/structure/c_transit_tube /obj/structure/c_transit_tube
name = "unattached transit tube" name = "unattached transit tube"
icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi'
icon_state = "straight" icon_state = "straight"
desc = "An unattached segment of transit tube."
density = FALSE density = FALSE
layer = LOW_ITEM_LAYER //same as the built tube layer = LOW_ITEM_LAYER //same as the built tube
anchored = FALSE anchored = FALSE
var/flipped = 0 var/flipped = 0
var/build_type = /obj/structure/transit_tube var/build_type = /obj/structure/transit_tube
var/flipped_build_type var/flipped_build_type
var/base_icon var/base_icon
/obj/structure/c_transit_tube/examine(mob/user) /obj/structure/c_transit_tube/examine(mob/user)
..() ..()
to_chat(user, "<span class='notice'>Alt-click to rotate it clockwise.</span>") to_chat(user, "<span class='notice'>Alt-click to rotate it clockwise.</span>")
/obj/structure/c_transit_tube/proc/tube_rotate() /obj/structure/c_transit_tube/proc/tube_rotate()
setDir(turn(dir, -90)) setDir(turn(dir, -90))
/obj/structure/c_transit_tube/proc/tube_flip() /obj/structure/c_transit_tube/proc/tube_flip()
if(flipped_build_type) if(flipped_build_type)
flipped = !flipped flipped = !flipped
var/cur_flip = initial(flipped) ? !flipped : flipped var/cur_flip = initial(flipped) ? !flipped : flipped
if(cur_flip) if(cur_flip)
build_type = flipped_build_type build_type = flipped_build_type
else else
build_type = initial(build_type) build_type = initial(build_type)
icon_state = "[base_icon][flipped]" icon_state = "[base_icon][flipped]"
else else
setDir(turn(dir, 180)) setDir(turn(dir, 180))
// disposals-style flip and rotate verbs // disposals-style flip and rotate verbs
/obj/structure/c_transit_tube/verb/rotate() /obj/structure/c_transit_tube/verb/rotate()
set name = "Rotate Tube" set name = "Rotate Tube"
set category = "Object" set category = "Object"
set src in view(1) set src in view(1)
if(usr.incapacitated()) if(usr.incapacitated())
return return
tube_rotate() tube_rotate()
/obj/structure/c_transit_tube/AltClick(mob/user) /obj/structure/c_transit_tube/AltClick(mob/user)
..() ..()
if(user.incapacitated()) if(user.incapacitated())
to_chat(user, "<span class='warning'>You can't do that right now!</span>") to_chat(user, "<span class='warning'>You can't do that right now!</span>")
return return
if(!in_range(src, user)) if(!in_range(src, user))
return return
tube_rotate() tube_rotate()
/obj/structure/c_transit_tube/verb/flip() /obj/structure/c_transit_tube/verb/flip()
set name = "Flip" set name = "Flip"
set category = "Object" set category = "Object"
set src in view(1) set src in view(1)
if(usr.incapacitated()) if(usr.incapacitated())
return return
tube_flip() tube_flip()
/obj/structure/c_transit_tube/attackby(obj/item/I, mob/user, params) /obj/structure/c_transit_tube/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/wrench)) if(istype(I, /obj/item/wrench))
to_chat(user, "<span class='notice'>You start attaching the [name]...</span>") to_chat(user, "<span class='notice'>You start attaching the [name]...</span>")
add_fingerprint(user) add_fingerprint(user)
playsound(src.loc, I.usesound, 50, 1) playsound(src.loc, I.usesound, 50, 1)
if(do_after(user, 40*I.toolspeed, target = src)) if(do_after(user, 40*I.toolspeed, target = src))
if(QDELETED(src)) if(QDELETED(src))
return return
to_chat(user, "<span class='notice'>You attach the [name].</span>") to_chat(user, "<span class='notice'>You attach the [name].</span>")
var/obj/structure/transit_tube/R = new build_type(loc, dir) var/obj/structure/transit_tube/R = new build_type(loc, dir)
transfer_fingerprints_to(R) transfer_fingerprints_to(R)
qdel(src) qdel(src)
else else
return ..() return ..()
// transit tube station // transit tube station
/obj/structure/c_transit_tube/station /obj/structure/c_transit_tube/station
name = "unattached through station" name = "unattached through station"
icon_state = "closed_station0" icon_state = "closed_station0"
build_type = /obj/structure/transit_tube/station build_type = /obj/structure/transit_tube/station
flipped_build_type = /obj/structure/transit_tube/station/flipped flipped_build_type = /obj/structure/transit_tube/station/flipped
base_icon = "closed_station" base_icon = "closed_station"
/obj/structure/c_transit_tube/station/flipped /obj/structure/c_transit_tube/station/flipped
icon_state = "closed_station1" icon_state = "closed_station1"
flipped = 1 flipped = 1
build_type = /obj/structure/transit_tube/station/flipped build_type = /obj/structure/transit_tube/station/flipped
flipped_build_type = /obj/structure/transit_tube/station flipped_build_type = /obj/structure/transit_tube/station
// reverser station, used for the terminus // reverser station, used for the terminus
/obj/structure/c_transit_tube/station/reverse /obj/structure/c_transit_tube/station/reverse
name = "unattached terminus station" name = "unattached terminus station"
icon_state = "closed_terminus0" icon_state = "closed_terminus0"
build_type = /obj/structure/transit_tube/station/reverse build_type = /obj/structure/transit_tube/station/reverse
flipped_build_type = /obj/structure/transit_tube/station/reverse/flipped flipped_build_type = /obj/structure/transit_tube/station/reverse/flipped
base_icon = "closed_terminus" base_icon = "closed_terminus"
/obj/structure/c_transit_tube/station/reverse/flipped /obj/structure/c_transit_tube/station/reverse/flipped
icon_state = "closed_terminus1" icon_state = "closed_terminus1"
flipped = 1 flipped = 1
build_type = /obj/structure/transit_tube/station/reverse/flipped build_type = /obj/structure/transit_tube/station/reverse/flipped
flipped_build_type = /obj/structure/transit_tube/station/reverse flipped_build_type = /obj/structure/transit_tube/station/reverse
/obj/structure/c_transit_tube/crossing /obj/structure/c_transit_tube/crossing
icon_state = "crossing" icon_state = "crossing"
build_type = /obj/structure/transit_tube/crossing build_type = /obj/structure/transit_tube/crossing
/obj/structure/c_transit_tube/diagonal /obj/structure/c_transit_tube/diagonal
icon_state = "diagonal" icon_state = "diagonal"
build_type = /obj/structure/transit_tube/diagonal build_type = /obj/structure/transit_tube/diagonal
/obj/structure/c_transit_tube/diagonal/crossing /obj/structure/c_transit_tube/diagonal/crossing
icon_state = "diagonal_crossing" icon_state = "diagonal_crossing"
build_type = /obj/structure/transit_tube/diagonal/crossing build_type = /obj/structure/transit_tube/diagonal/crossing
/obj/structure/c_transit_tube/curved /obj/structure/c_transit_tube/curved
icon_state = "curved0" icon_state = "curved0"
build_type = /obj/structure/transit_tube/curved build_type = /obj/structure/transit_tube/curved
flipped_build_type = /obj/structure/transit_tube/curved/flipped flipped_build_type = /obj/structure/transit_tube/curved/flipped
base_icon = "curved" base_icon = "curved"
/obj/structure/c_transit_tube/curved/flipped /obj/structure/c_transit_tube/curved/flipped
icon_state = "curved1" icon_state = "curved1"
build_type = /obj/structure/transit_tube/curved/flipped build_type = /obj/structure/transit_tube/curved/flipped
flipped_build_type = /obj/structure/transit_tube/curved flipped_build_type = /obj/structure/transit_tube/curved
flipped = 1 flipped = 1
/obj/structure/c_transit_tube/junction /obj/structure/c_transit_tube/junction
icon_state = "junction0" icon_state = "junction0"
build_type = /obj/structure/transit_tube/junction build_type = /obj/structure/transit_tube/junction
flipped_build_type = /obj/structure/transit_tube/junction/flipped flipped_build_type = /obj/structure/transit_tube/junction/flipped
base_icon = "junction" base_icon = "junction"
/obj/structure/c_transit_tube/junction/flipped /obj/structure/c_transit_tube/junction/flipped
icon_state = "junction1" icon_state = "junction1"
flipped = 1 flipped = 1
build_type = /obj/structure/transit_tube/junction/flipped build_type = /obj/structure/transit_tube/junction/flipped
flipped_build_type = /obj/structure/transit_tube/junction flipped_build_type = /obj/structure/transit_tube/junction
//transit tube pod //transit tube pod
//see station.dm for the logic //see station.dm for the logic
/obj/structure/c_transit_tube_pod /obj/structure/c_transit_tube_pod
name = "unattached transit tube pod" name = "unattached transit tube pod"
icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi'
icon_state = "pod" icon_state = "pod"
anchored = FALSE anchored = FALSE
density = FALSE density = FALSE
+360 -359
View File
@@ -1,370 +1,371 @@
/* Windoor (window door) assembly -Nodrak /* Windoor (window door) assembly -Nodrak
* Step 1: Create a windoor out of rglass * Step 1: Create a windoor out of rglass
* Step 2: Add r-glass to the assembly to make a secure windoor (Optional) * Step 2: Add r-glass to the assembly to make a secure windoor (Optional)
* Step 3: Rotate or Flip the assembly to face and open the way you want * Step 3: Rotate or Flip the assembly to face and open the way you want
* Step 4: Wrench the assembly in place * Step 4: Wrench the assembly in place
* Step 5: Add cables to the assembly * Step 5: Add cables to the assembly
* Step 6: Set access for the door. * Step 6: Set access for the door.
* Step 7: Screwdriver the door to complete * Step 7: Screwdriver the door to complete
*/ */
/obj/structure/windoor_assembly /obj/structure/windoor_assembly
icon = 'icons/obj/doors/windoor.dmi' icon = 'icons/obj/doors/windoor.dmi'
name = "windoor Assembly" name = "windoor Assembly"
icon_state = "l_windoor_assembly01" icon_state = "l_windoor_assembly01"
desc = "A small glass and wire assembly for windoors."
anchored = FALSE anchored = FALSE
density = FALSE density = FALSE
dir = NORTH dir = NORTH
var/ini_dir var/ini_dir
var/obj/item/electronics/airlock/electronics = null var/obj/item/electronics/airlock/electronics = null
var/created_name = null var/created_name = null
//Vars to help with the icon's name //Vars to help with the icon's name
var/facing = "l" //Does the windoor open to the left or right? var/facing = "l" //Does the windoor open to the left or right?
var/secure = FALSE //Whether or not this creates a secure windoor var/secure = FALSE //Whether or not this creates a secure windoor
var/state = "01" //How far the door assembly has progressed var/state = "01" //How far the door assembly has progressed
CanAtmosPass = ATMOS_PASS_PROC CanAtmosPass = ATMOS_PASS_PROC
/obj/structure/windoor_assembly/examine(mob/user) /obj/structure/windoor_assembly/examine(mob/user)
..() ..()
to_chat(user, "<span class='notice'>Alt-click to rotate it clockwise.</span>") to_chat(user, "<span class='notice'>Alt-click to rotate it clockwise.</span>")
/obj/structure/windoor_assembly/New(loc, set_dir) /obj/structure/windoor_assembly/New(loc, set_dir)
..() ..()
if(set_dir) if(set_dir)
dir = set_dir dir = set_dir
ini_dir = dir ini_dir = dir
air_update_turf(1) air_update_turf(1)
/obj/structure/windoor_assembly/Destroy() /obj/structure/windoor_assembly/Destroy()
density = FALSE density = FALSE
air_update_turf(1) air_update_turf(1)
return ..() return ..()
/obj/structure/windoor_assembly/Move() /obj/structure/windoor_assembly/Move()
var/turf/T = loc var/turf/T = loc
..() ..()
setDir(ini_dir) setDir(ini_dir)
move_update_air(T) move_update_air(T)
/obj/structure/windoor_assembly/update_icon() /obj/structure/windoor_assembly/update_icon()
icon_state = "[facing]_[secure ? "secure_" : ""]windoor_assembly[state]" icon_state = "[facing]_[secure ? "secure_" : ""]windoor_assembly[state]"
/obj/structure/windoor_assembly/CanPass(atom/movable/mover, turf/target) /obj/structure/windoor_assembly/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && mover.checkpass(PASSGLASS)) if(istype(mover) && mover.checkpass(PASSGLASS))
return 1 return 1
if(get_dir(loc, target) == dir) //Make sure looking at appropriate border if(get_dir(loc, target) == dir) //Make sure looking at appropriate border
return !density return !density
if(istype(mover, /obj/structure/window)) if(istype(mover, /obj/structure/window))
var/obj/structure/window/W = mover var/obj/structure/window/W = mover
if(!valid_window_location(loc, W.ini_dir)) if(!valid_window_location(loc, W.ini_dir))
return FALSE return FALSE
else if(istype(mover, /obj/structure/windoor_assembly)) else if(istype(mover, /obj/structure/windoor_assembly))
var/obj/structure/windoor_assembly/W = mover var/obj/structure/windoor_assembly/W = mover
if(!valid_window_location(loc, W.ini_dir)) if(!valid_window_location(loc, W.ini_dir))
return FALSE return FALSE
else if(istype(mover, /obj/machinery/door/window) && !valid_window_location(loc, mover.dir)) else if(istype(mover, /obj/machinery/door/window) && !valid_window_location(loc, mover.dir))
return FALSE return FALSE
return 1 return 1
/obj/structure/windoor_assembly/CanAtmosPass(turf/T) /obj/structure/windoor_assembly/CanAtmosPass(turf/T)
if(get_dir(loc, T) == dir) if(get_dir(loc, T) == dir)
return !density return !density
else else
return 1 return 1
/obj/structure/windoor_assembly/CheckExit(atom/movable/mover as mob|obj, turf/target) /obj/structure/windoor_assembly/CheckExit(atom/movable/mover as mob|obj, turf/target)
if(istype(mover) && mover.checkpass(PASSGLASS)) if(istype(mover) && mover.checkpass(PASSGLASS))
return 1 return 1
if(get_dir(loc, target) == dir) if(get_dir(loc, target) == dir)
return !density return !density
else else
return 1 return 1
/obj/structure/windoor_assembly/attackby(obj/item/W, mob/user, params) /obj/structure/windoor_assembly/attackby(obj/item/W, mob/user, params)
//I really should have spread this out across more states but thin little windoors are hard to sprite. //I really should have spread this out across more states but thin little windoors are hard to sprite.
add_fingerprint(user) add_fingerprint(user)
switch(state) switch(state)
if("01") if("01")
if(istype(W, /obj/item/weldingtool) && !anchored ) if(istype(W, /obj/item/weldingtool) && !anchored )
var/obj/item/weldingtool/WT = W var/obj/item/weldingtool/WT = W
if (WT.remove_fuel(0,user)) if (WT.remove_fuel(0,user))
user.visible_message("[user] disassembles the windoor assembly.", "<span class='notice'>You start to disassemble the windoor assembly...</span>") user.visible_message("[user] disassembles the windoor assembly.", "<span class='notice'>You start to disassemble the windoor assembly...</span>")
playsound(loc, 'sound/items/welder2.ogg', 50, 1) playsound(loc, 'sound/items/welder2.ogg', 50, 1)
if(do_after(user, 40*W.toolspeed, target = src)) if(do_after(user, 40*W.toolspeed, target = src))
if(!src || !WT.isOn()) return if(!src || !WT.isOn()) return
to_chat(user, "<span class='notice'>You disassemble the windoor assembly.</span>") to_chat(user, "<span class='notice'>You disassemble the windoor assembly.</span>")
var/obj/item/stack/sheet/rglass/RG = new (get_turf(src), 5) var/obj/item/stack/sheet/rglass/RG = new (get_turf(src), 5)
RG.add_fingerprint(user) RG.add_fingerprint(user)
if(secure) if(secure)
var/obj/item/stack/rods/R = new (get_turf(src), 4) var/obj/item/stack/rods/R = new (get_turf(src), 4)
R.add_fingerprint(user) R.add_fingerprint(user)
qdel(src) qdel(src)
else else
return return
//Wrenching an unsecure assembly anchors it in place. Step 4 complete //Wrenching an unsecure assembly anchors it in place. Step 4 complete
if(istype(W, /obj/item/wrench) && !anchored) if(istype(W, /obj/item/wrench) && !anchored)
for(var/obj/machinery/door/window/WD in loc) for(var/obj/machinery/door/window/WD in loc)
if(WD.dir == dir) if(WD.dir == dir)
to_chat(user, "<span class='warning'>There is already a windoor in that location!</span>") to_chat(user, "<span class='warning'>There is already a windoor in that location!</span>")
return return
playsound(loc, W.usesound, 100, 1) playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] secures the windoor assembly to the floor.", "<span class='notice'>You start to secure the windoor assembly to the floor...</span>") user.visible_message("[user] secures the windoor assembly to the floor.", "<span class='notice'>You start to secure the windoor assembly to the floor...</span>")
if(do_after(user, 40*W.toolspeed, target = src)) if(do_after(user, 40*W.toolspeed, target = src))
if(!src || anchored) if(!src || anchored)
return return
for(var/obj/machinery/door/window/WD in loc) for(var/obj/machinery/door/window/WD in loc)
if(WD.dir == dir) if(WD.dir == dir)
to_chat(user, "<span class='warning'>There is already a windoor in that location!</span>") to_chat(user, "<span class='warning'>There is already a windoor in that location!</span>")
return return
to_chat(user, "<span class='notice'>You secure the windoor assembly.</span>") to_chat(user, "<span class='notice'>You secure the windoor assembly.</span>")
anchored = TRUE anchored = TRUE
if(secure) if(secure)
name = "secure anchored windoor assembly" name = "secure anchored windoor assembly"
else else
name = "anchored windoor assembly" name = "anchored windoor assembly"
//Unwrenching an unsecure assembly un-anchors it. Step 4 undone //Unwrenching an unsecure assembly un-anchors it. Step 4 undone
else if(istype(W, /obj/item/wrench) && anchored) else if(istype(W, /obj/item/wrench) && anchored)
playsound(loc, W.usesound, 100, 1) playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] unsecures the windoor assembly to the floor.", "<span class='notice'>You start to unsecure the windoor assembly to the floor...</span>") user.visible_message("[user] unsecures the windoor assembly to the floor.", "<span class='notice'>You start to unsecure the windoor assembly to the floor...</span>")
if(do_after(user, 40*W.toolspeed, target = src)) if(do_after(user, 40*W.toolspeed, target = src))
if(!src || !anchored) if(!src || !anchored)
return return
to_chat(user, "<span class='notice'>You unsecure the windoor assembly.</span>") to_chat(user, "<span class='notice'>You unsecure the windoor assembly.</span>")
anchored = FALSE anchored = FALSE
if(secure) if(secure)
name = "secure windoor assembly" name = "secure windoor assembly"
else else
name = "windoor assembly" name = "windoor assembly"
//Adding plasteel makes the assembly a secure windoor assembly. Step 2 (optional) complete. //Adding plasteel makes the assembly a secure windoor assembly. Step 2 (optional) complete.
else if(istype(W, /obj/item/stack/sheet/plasteel) && !secure) else if(istype(W, /obj/item/stack/sheet/plasteel) && !secure)
var/obj/item/stack/sheet/plasteel/P = W var/obj/item/stack/sheet/plasteel/P = W
if(P.get_amount() < 2) if(P.get_amount() < 2)
to_chat(user, "<span class='warning'>You need more plasteel to do this!</span>") to_chat(user, "<span class='warning'>You need more plasteel to do this!</span>")
return return
to_chat(user, "<span class='notice'>You start to reinforce the windoor with plasteel...</span>") to_chat(user, "<span class='notice'>You start to reinforce the windoor with plasteel...</span>")
if(do_after(user,40, target = src)) if(do_after(user,40, target = src))
if(!src || secure || P.get_amount() < 2) if(!src || secure || P.get_amount() < 2)
return return
P.use(2) P.use(2)
to_chat(user, "<span class='notice'>You reinforce the windoor.</span>") to_chat(user, "<span class='notice'>You reinforce the windoor.</span>")
secure = TRUE secure = TRUE
if(anchored) if(anchored)
name = "secure anchored windoor assembly" name = "secure anchored windoor assembly"
else else
name = "secure windoor assembly" name = "secure windoor assembly"
//Adding cable to the assembly. Step 5 complete. //Adding cable to the assembly. Step 5 complete.
else if(istype(W, /obj/item/stack/cable_coil) && anchored) else if(istype(W, /obj/item/stack/cable_coil) && anchored)
user.visible_message("[user] wires the windoor assembly.", "<span class='notice'>You start to wire the windoor assembly...</span>") user.visible_message("[user] wires the windoor assembly.", "<span class='notice'>You start to wire the windoor assembly...</span>")
if(do_after(user, 40, target = src)) if(do_after(user, 40, target = src))
if(!src || !anchored || src.state != "01") if(!src || !anchored || src.state != "01")
return return
var/obj/item/stack/cable_coil/CC = W var/obj/item/stack/cable_coil/CC = W
if(!CC.use(1)) if(!CC.use(1))
to_chat(user, "<span class='warning'>You need more cable to do this!</span>") to_chat(user, "<span class='warning'>You need more cable to do this!</span>")
return return
to_chat(user, "<span class='notice'>You wire the windoor.</span>") to_chat(user, "<span class='notice'>You wire the windoor.</span>")
state = "02" state = "02"
if(secure) if(secure)
name = "secure wired windoor assembly" name = "secure wired windoor assembly"
else else
name = "wired windoor assembly" name = "wired windoor assembly"
else else
return ..() return ..()
if("02") if("02")
//Removing wire from the assembly. Step 5 undone. //Removing wire from the assembly. Step 5 undone.
if(istype(W, /obj/item/wirecutters)) if(istype(W, /obj/item/wirecutters))
playsound(loc, W.usesound, 100, 1) playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] cuts the wires from the airlock assembly.", "<span class='notice'>You start to cut the wires from airlock assembly...</span>") user.visible_message("[user] cuts the wires from the airlock assembly.", "<span class='notice'>You start to cut the wires from airlock assembly...</span>")
if(do_after(user, 40*W.toolspeed, target = src)) if(do_after(user, 40*W.toolspeed, target = src))
if(!src || state != "02") if(!src || state != "02")
return return
to_chat(user, "<span class='notice'>You cut the windoor wires.</span>") to_chat(user, "<span class='notice'>You cut the windoor wires.</span>")
new/obj/item/stack/cable_coil(get_turf(user), 1) new/obj/item/stack/cable_coil(get_turf(user), 1)
state = "01" state = "01"
if(secure) if(secure)
name = "secure anchored windoor assembly" name = "secure anchored windoor assembly"
else else
name = "anchored windoor assembly" name = "anchored windoor assembly"
//Adding airlock electronics for access. Step 6 complete. //Adding airlock electronics for access. Step 6 complete.
else if(istype(W, /obj/item/electronics/airlock)) else if(istype(W, /obj/item/electronics/airlock))
if(!user.drop_item()) if(!user.drop_item())
return return
playsound(loc, W.usesound, 100, 1) playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "<span class='notice'>You start to install electronics into the airlock assembly...</span>") user.visible_message("[user] installs the electronics into the airlock assembly.", "<span class='notice'>You start to install electronics into the airlock assembly...</span>")
W.loc = src W.loc = src
if(do_after(user, 40, target = src)) if(do_after(user, 40, target = src))
if(!src || electronics) if(!src || electronics)
W.loc = src.loc W.loc = src.loc
return return
to_chat(user, "<span class='notice'>You install the airlock electronics.</span>") to_chat(user, "<span class='notice'>You install the airlock electronics.</span>")
name = "near finished windoor assembly" name = "near finished windoor assembly"
electronics = W electronics = W
else else
W.loc = loc W.loc = loc
//Screwdriver to remove airlock electronics. Step 6 undone. //Screwdriver to remove airlock electronics. Step 6 undone.
else if(istype(W, /obj/item/screwdriver)) else if(istype(W, /obj/item/screwdriver))
if(!electronics) if(!electronics)
return return
playsound(loc, W.usesound, 100, 1) playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] removes the electronics from the airlock assembly.", "<span class='notice'>You start to uninstall electronics from the airlock assembly...</span>") user.visible_message("[user] removes the electronics from the airlock assembly.", "<span class='notice'>You start to uninstall electronics from the airlock assembly...</span>")
if(do_after(user, 40*W.toolspeed, target = src)) if(do_after(user, 40*W.toolspeed, target = src))
if(!src || !electronics) if(!src || !electronics)
return return
to_chat(user, "<span class='notice'>You remove the airlock electronics.</span>") to_chat(user, "<span class='notice'>You remove the airlock electronics.</span>")
name = "wired windoor assembly" name = "wired windoor assembly"
var/obj/item/electronics/airlock/ae var/obj/item/electronics/airlock/ae
ae = electronics ae = electronics
electronics = null electronics = null
ae.loc = loc ae.loc = loc
else if(istype(W, /obj/item/pen)) else if(istype(W, /obj/item/pen))
var/t = stripped_input(user, "Enter the name for the door.", name, created_name,MAX_NAME_LEN) var/t = stripped_input(user, "Enter the name for the door.", name, created_name,MAX_NAME_LEN)
if(!t) if(!t)
return return
if(!in_range(src, usr) && loc != usr) if(!in_range(src, usr) && loc != usr)
return return
created_name = t created_name = t
return return
//Crowbar to complete the assembly, Step 7 complete. //Crowbar to complete the assembly, Step 7 complete.
else if(istype(W, /obj/item/crowbar)) else if(istype(W, /obj/item/crowbar))
if(!electronics) if(!electronics)
to_chat(usr, "<span class='warning'>The assembly is missing electronics!</span>") to_chat(usr, "<span class='warning'>The assembly is missing electronics!</span>")
return return
usr << browse(null, "window=windoor_access") usr << browse(null, "window=windoor_access")
playsound(loc, W.usesound, 100, 1) playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] pries the windoor into the frame.", "<span class='notice'>You start prying the windoor into the frame...</span>") user.visible_message("[user] pries the windoor into the frame.", "<span class='notice'>You start prying the windoor into the frame...</span>")
if(do_after(user, 40*W.toolspeed, target = src)) if(do_after(user, 40*W.toolspeed, target = src))
if(loc && electronics) if(loc && electronics)
density = TRUE //Shouldn't matter but just incase density = TRUE //Shouldn't matter but just incase
to_chat(user, "<span class='notice'>You finish the windoor.</span>") to_chat(user, "<span class='notice'>You finish the windoor.</span>")
if(secure) if(secure)
var/obj/machinery/door/window/brigdoor/windoor = new /obj/machinery/door/window/brigdoor(loc) var/obj/machinery/door/window/brigdoor/windoor = new /obj/machinery/door/window/brigdoor(loc)
if(facing == "l") if(facing == "l")
windoor.icon_state = "leftsecureopen" windoor.icon_state = "leftsecureopen"
windoor.base_state = "leftsecure" windoor.base_state = "leftsecure"
else else
windoor.icon_state = "rightsecureopen" windoor.icon_state = "rightsecureopen"
windoor.base_state = "rightsecure" windoor.base_state = "rightsecure"
windoor.setDir(dir) windoor.setDir(dir)
windoor.density = FALSE windoor.density = FALSE
if(electronics.one_access) if(electronics.one_access)
windoor.req_one_access = electronics.accesses windoor.req_one_access = electronics.accesses
else else
windoor.req_access = electronics.accesses windoor.req_access = electronics.accesses
windoor.electronics = electronics windoor.electronics = electronics
electronics.loc = windoor electronics.loc = windoor
if(created_name) if(created_name)
windoor.name = created_name windoor.name = created_name
qdel(src) qdel(src)
windoor.close() windoor.close()
else else
var/obj/machinery/door/window/windoor = new /obj/machinery/door/window(loc) var/obj/machinery/door/window/windoor = new /obj/machinery/door/window(loc)
if(facing == "l") if(facing == "l")
windoor.icon_state = "leftopen" windoor.icon_state = "leftopen"
windoor.base_state = "left" windoor.base_state = "left"
else else
windoor.icon_state = "rightopen" windoor.icon_state = "rightopen"
windoor.base_state = "right" windoor.base_state = "right"
windoor.setDir(dir) windoor.setDir(dir)
windoor.density = FALSE windoor.density = FALSE
windoor.req_access = electronics.accesses windoor.req_access = electronics.accesses
windoor.electronics = electronics windoor.electronics = electronics
electronics.loc = windoor electronics.loc = windoor
if(created_name) if(created_name)
windoor.name = created_name windoor.name = created_name
qdel(src) qdel(src)
windoor.close() windoor.close()
else else
return ..() return ..()
//Update to reflect changes(if applicable) //Update to reflect changes(if applicable)
update_icon() update_icon()
//Rotates the windoor assembly clockwise //Rotates the windoor assembly clockwise
/obj/structure/windoor_assembly/verb/revrotate() /obj/structure/windoor_assembly/verb/revrotate()
set name = "Rotate Windoor Assembly" set name = "Rotate Windoor Assembly"
set category = "Object" set category = "Object"
set src in oview(1) set src in oview(1)
if(usr.stat || !usr.canmove || usr.restrained()) if(usr.stat || !usr.canmove || usr.restrained())
return return
if(anchored) if(anchored)
to_chat(usr, "<span class='warning'>[src] cannot be rotated while it is fastened to the floor!</span>") to_chat(usr, "<span class='warning'>[src] cannot be rotated while it is fastened to the floor!</span>")
return FALSE return FALSE
var/target_dir = turn(dir, 270) var/target_dir = turn(dir, 270)
if(!valid_window_location(loc, target_dir)) if(!valid_window_location(loc, target_dir))
to_chat(usr, "<span class='warning'>[src] cannot be rotated in that direction!</span>") to_chat(usr, "<span class='warning'>[src] cannot be rotated in that direction!</span>")
return FALSE return FALSE
setDir(target_dir) setDir(target_dir)
ini_dir = dir ini_dir = dir
update_icon() update_icon()
return TRUE return TRUE
/obj/structure/windoor_assembly/AltClick(mob/user) /obj/structure/windoor_assembly/AltClick(mob/user)
..() ..()
if(user.incapacitated()) if(user.incapacitated())
to_chat(user, "<span class='warning'>You can't do that right now!</span>") to_chat(user, "<span class='warning'>You can't do that right now!</span>")
return return
if(!in_range(src, user)) if(!in_range(src, user))
return return
else else
revrotate() revrotate()
//Flips the windoor assembly, determines whather the door opens to the left or the right //Flips the windoor assembly, determines whather the door opens to the left or the right
/obj/structure/windoor_assembly/verb/flip() /obj/structure/windoor_assembly/verb/flip()
set name = "Flip Windoor Assembly" set name = "Flip Windoor Assembly"
set category = "Object" set category = "Object"
set src in oview(1) set src in oview(1)
if(usr.stat || !usr.canmove || usr.restrained()) if(usr.stat || !usr.canmove || usr.restrained())
return return
if(facing == "l") if(facing == "l")
to_chat(usr, "<span class='notice'>The windoor will now slide to the right.</span>") to_chat(usr, "<span class='notice'>The windoor will now slide to the right.</span>")
facing = "r" facing = "r"
else else
facing = "l" facing = "l"
to_chat(usr, "<span class='notice'>The windoor will now slide to the left.</span>") to_chat(usr, "<span class='notice'>The windoor will now slide to the left.</span>")
update_icon() update_icon()
return return
+12 -4
View File
@@ -12,6 +12,7 @@
/obj/structure/shuttle/engine /obj/structure/shuttle/engine
name = "engine" name = "engine"
desc = "A bluespace engine used to make shuttles move."
density = TRUE density = TRUE
anchored = TRUE anchored = TRUE
var/engine_power = 1 var/engine_power = 1
@@ -81,18 +82,21 @@
M.alter_engines(mod) M.alter_engines(mod)
/obj/structure/shuttle/engine/heater /obj/structure/shuttle/engine/heater
name = "heater" name = "engine heater"
icon_state = "heater" icon_state = "heater"
desc = "Directs energy into compressed particles in order to power engines."
engine_power = 0 // todo make these into 2x1 parts engine_power = 0 // todo make these into 2x1 parts
/obj/structure/shuttle/engine/platform /obj/structure/shuttle/engine/platform
name = "platform" name = "engine platform"
icon_state = "platform" icon_state = "platform"
desc = "A platform for engine components."
engine_power = 0 engine_power = 0
/obj/structure/shuttle/engine/propulsion /obj/structure/shuttle/engine/propulsion
name = "propulsion engine" name = "propulsion engine"
icon_state = "propulsion" icon_state = "propulsion"
desc = "A standard reliable bluespace engine used by many forms of shuttles."
opacity = 1 opacity = 1
/obj/structure/shuttle/engine/propulsion/left /obj/structure/shuttle/engine/propulsion/left
@@ -105,6 +109,7 @@
/obj/structure/shuttle/engine/propulsion/burst /obj/structure/shuttle/engine/propulsion/burst
name = "burst engine" name = "burst engine"
desc = "An engine that releases a large bluespace burst to propel it."
/obj/structure/shuttle/engine/propulsion/burst/cargo /obj/structure/shuttle/engine/propulsion/burst/cargo
state = ENGINE_UNWRENCHED state = ENGINE_UNWRENCHED
@@ -119,14 +124,16 @@
icon_state = "burst_r" icon_state = "burst_r"
/obj/structure/shuttle/engine/router /obj/structure/shuttle/engine/router
name = "router" name = "engine router"
icon_state = "router" icon_state = "router"
desc = "Redirects around energized particles in engine structures."
/obj/structure/shuttle/engine/large /obj/structure/shuttle/engine/large
name = "engine" name = "engine"
opacity = 1 opacity = 1
icon = 'icons/obj/2x2.dmi' icon = 'icons/obj/2x2.dmi'
icon_state = "large_engine" icon_state = "large_engine"
desc = "A very large bluespace engine used to propel very large ships."
bound_width = 64 bound_width = 64
bound_height = 64 bound_height = 64
appearance_flags = 0 appearance_flags = 0
@@ -136,6 +143,7 @@
opacity = 1 opacity = 1
icon = 'icons/obj/3x3.dmi' icon = 'icons/obj/3x3.dmi'
icon_state = "huge_engine" icon_state = "huge_engine"
desc = "An extremely large bluespace engine used to propel extremely large ships."
bound_width = 96 bound_width = 96
bound_height = 96 bound_height = 96
appearance_flags = 0 appearance_flags = 0
@@ -5,7 +5,7 @@ It's like a regular ol' straight pipe, but you can turn it on and off.
/obj/machinery/atmospherics/components/binary/valve /obj/machinery/atmospherics/components/binary/valve
icon_state = "mvalve_map" icon_state = "mvalve_map"
name = "manual valve" name = "manual valve"
desc = "A pipe valve" desc = "A pipe with a valve that can be used to disable flow of gas through it."
can_unwrench = TRUE can_unwrench = TRUE
@@ -1,6 +1,7 @@
/obj/machinery/atmospherics/components/trinary/filter /obj/machinery/atmospherics/components/trinary/filter
name = "gas filter" name = "gas filter"
icon_state = "filter_off" icon_state = "filter_off"
desc = "Very useful for filtering gasses."
density = FALSE density = FALSE
can_unwrench = TRUE can_unwrench = TRUE
var/on = FALSE var/on = FALSE
@@ -4,6 +4,7 @@
name = "gas mixer" name = "gas mixer"
can_unwrench = TRUE can_unwrench = TRUE
desc = "Very useful for mixing gasses."
var/on = FALSE var/on = FALSE
@@ -5,6 +5,7 @@
icon_state = "vent_map" icon_state = "vent_map"
density = FALSE density = FALSE
anchored=1 anchored=1
desc = "This may be needed some day."
var/on = FALSE var/on = FALSE
var/volume_rate = 800 var/volume_rate = 800
+1 -1
View File
@@ -283,7 +283,7 @@
/obj/item/clothing/head/crown/fancy /obj/item/clothing/head/crown/fancy
name = "magnificent crown" name = "magnificent crown"
desc = "A crown worn by only the highest emperors of the land." desc = "A crown worn by only the highest emperors of the <s>land</s> space."
icon_state = "fancycrown" icon_state = "fancycrown"
/obj/item/clothing/head/scarecrow_hat /obj/item/clothing/head/scarecrow_hat
+323 -320
View File
@@ -1,320 +1,323 @@
/* Library Items /* Library Items
* *
* Contains: * Contains:
* Bookcase * Bookcase
* Book * Book
* Barcode Scanner * Barcode Scanner
*/ */
/* /*
* Bookcase * Bookcase
*/ */
/obj/structure/bookcase /obj/structure/bookcase
name = "bookcase" name = "bookcase"
icon = 'icons/obj/library.dmi' icon = 'icons/obj/library.dmi'
icon_state = "bookempty" icon_state = "bookempty"
anchored = FALSE desc = "A great place for storing knowledge."
density = TRUE anchored = FALSE
opacity = 0 density = TRUE
resistance_flags = FLAMMABLE opacity = 0
max_integrity = 200 resistance_flags = FLAMMABLE
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0) max_integrity = 200
var/state = 0 armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0)
var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book) //Things allowed in the bookcase var/state = 0
var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book) //Things allowed in the bookcase
/obj/structure/bookcase/Initialize(mapload)
. = ..() /obj/structure/bookcase/Initialize(mapload)
if(!mapload) . = ..()
return if(!mapload)
state = 2 return
icon_state = "book-0" state = 2
anchored = TRUE icon_state = "book-0"
for(var/obj/item/I in loc) anchored = TRUE
if(istype(I, /obj/item/book)) for(var/obj/item/I in loc)
I.loc = src if(istype(I, /obj/item/book))
update_icon() I.loc = src
update_icon()
/obj/structure/bookcase/attackby(obj/item/I, mob/user, params)
switch(state) /obj/structure/bookcase/attackby(obj/item/I, mob/user, params)
if(0) switch(state)
if(istype(I, /obj/item/wrench)) if(0)
playsound(loc, I.usesound, 100, 1) if(istype(I, /obj/item/wrench))
if(do_after(user, 20*I.toolspeed, target = src)) playsound(loc, I.usesound, 100, 1)
to_chat(user, "<span class='notice'>You wrench the frame into place.</span>") if(do_after(user, 20*I.toolspeed, target = src))
anchored = TRUE to_chat(user, "<span class='notice'>You wrench the frame into place.</span>")
state = 1 anchored = TRUE
if(istype(I, /obj/item/crowbar)) state = 1
playsound(loc, I.usesound, 100, 1) if(istype(I, /obj/item/crowbar))
if(do_after(user, 20*I.toolspeed, target = src)) playsound(loc, I.usesound, 100, 1)
to_chat(user, "<span class='notice'>You pry the frame apart.</span>") if(do_after(user, 20*I.toolspeed, target = src))
deconstruct(TRUE) to_chat(user, "<span class='notice'>You pry the frame apart.</span>")
deconstruct(TRUE)
if(1)
if(istype(I, /obj/item/stack/sheet/mineral/wood)) if(1)
var/obj/item/stack/sheet/mineral/wood/W = I if(istype(I, /obj/item/stack/sheet/mineral/wood))
if(W.get_amount() >= 2) var/obj/item/stack/sheet/mineral/wood/W = I
W.use(2) if(W.get_amount() >= 2)
to_chat(user, "<span class='notice'>You add a shelf.</span>") W.use(2)
state = 2 to_chat(user, "<span class='notice'>You add a shelf.</span>")
icon_state = "book-0" state = 2
if(istype(I, /obj/item/wrench)) icon_state = "book-0"
playsound(loc, I.usesound, 100, 1) if(istype(I, /obj/item/wrench))
to_chat(user, "<span class='notice'>You unwrench the frame.</span>") playsound(loc, I.usesound, 100, 1)
anchored = FALSE to_chat(user, "<span class='notice'>You unwrench the frame.</span>")
state = 0 anchored = FALSE
state = 0
if(2)
if(is_type_in_list(I, allowed_books)) if(2)
if(!user.drop_item()) if(is_type_in_list(I, allowed_books))
return if(!user.drop_item())
I.loc = src return
update_icon() I.loc = src
else if(istype(I, /obj/item/storage/bag/books)) update_icon()
var/obj/item/storage/bag/books/B = I else if(istype(I, /obj/item/storage/bag/books))
for(var/obj/item/T in B.contents) var/obj/item/storage/bag/books/B = I
if(istype(T, /obj/item/book) || istype(T, /obj/item/spellbook)) for(var/obj/item/T in B.contents)
B.remove_from_storage(T, src) if(istype(T, /obj/item/book) || istype(T, /obj/item/spellbook))
to_chat(user, "<span class='notice'>You empty \the [I] into \the [src].</span>") B.remove_from_storage(T, src)
update_icon() to_chat(user, "<span class='notice'>You empty \the [I] into \the [src].</span>")
else if(istype(I, /obj/item/pen)) update_icon()
var/newname = stripped_input(user, "What would you like to title this bookshelf?") else if(istype(I, /obj/item/pen))
if(!newname) var/newname = stripped_input(user, "What would you like to title this bookshelf?")
return if(!newname)
else return
name = ("bookcase ([sanitize(newname)])") else
else if(istype(I, /obj/item/crowbar)) name = ("bookcase ([sanitize(newname)])")
if(contents.len) else if(istype(I, /obj/item/crowbar))
to_chat(user, "<span class='warning'>You need to remove the books first!</span>") if(contents.len)
else to_chat(user, "<span class='warning'>You need to remove the books first!</span>")
playsound(loc, I.usesound, 100, 1) else
to_chat(user, "<span class='notice'>You pry the shelf out.</span>") playsound(loc, I.usesound, 100, 1)
new /obj/item/stack/sheet/mineral/wood(loc, 2) to_chat(user, "<span class='notice'>You pry the shelf out.</span>")
state = 1 new /obj/item/stack/sheet/mineral/wood(loc, 2)
icon_state = "bookempty" state = 1
else icon_state = "bookempty"
return ..() else
return ..()
/obj/structure/bookcase/attack_hand(mob/user)
if(contents.len) /obj/structure/bookcase/attack_hand(mob/user)
var/obj/item/book/choice = input("Which book would you like to remove from the shelf?") as null|obj in contents if(contents.len)
if(choice) var/obj/item/book/choice = input("Which book would you like to remove from the shelf?") as null|obj in contents
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) if(choice)
return if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
if(ishuman(user)) return
if(!user.get_active_held_item()) if(ishuman(user))
user.put_in_hands(choice) if(!user.get_active_held_item())
else user.put_in_hands(choice)
choice.loc = get_turf(src) else
update_icon() choice.loc = get_turf(src)
update_icon()
/obj/structure/bookcase/deconstruct(disassembled = TRUE)
new /obj/item/stack/sheet/mineral/wood(loc, 4) /obj/structure/bookcase/deconstruct(disassembled = TRUE)
for(var/obj/item/book/B in contents) new /obj/item/stack/sheet/mineral/wood(loc, 4)
B.forceMove(get_turf(src)) for(var/obj/item/book/B in contents)
qdel(src) B.forceMove(get_turf(src))
qdel(src)
/obj/structure/bookcase/update_icon()
if(contents.len < 5) /obj/structure/bookcase/update_icon()
icon_state = "book-[contents.len]" if(contents.len < 5)
else icon_state = "book-[contents.len]"
icon_state = "book-5" else
icon_state = "book-5"
/obj/structure/bookcase/manuals/medical
name = "medical manuals bookcase" /obj/structure/bookcase/manuals/medical
name = "medical manuals bookcase"
/obj/structure/bookcase/manuals/medical/New()
..() /obj/structure/bookcase/manuals/medical/New()
new /obj/item/book/manual/medical_cloning(src) ..()
update_icon() new /obj/item/book/manual/medical_cloning(src)
update_icon()
/obj/structure/bookcase/manuals/engineering
name = "engineering manuals bookcase" /obj/structure/bookcase/manuals/engineering
name = "engineering manuals bookcase"
/obj/structure/bookcase/manuals/engineering/New()
..() /obj/structure/bookcase/manuals/engineering/New()
new /obj/item/book/manual/wiki/engineering_construction(src) ..()
new /obj/item/book/manual/engineering_particle_accelerator(src) new /obj/item/book/manual/wiki/engineering_construction(src)
new /obj/item/book/manual/wiki/engineering_hacking(src) new /obj/item/book/manual/engineering_particle_accelerator(src)
new /obj/item/book/manual/wiki/engineering_guide(src) new /obj/item/book/manual/wiki/engineering_hacking(src)
new /obj/item/book/manual/engineering_singularity_safety(src) new /obj/item/book/manual/wiki/engineering_guide(src)
new /obj/item/book/manual/robotics_cyborgs(src) new /obj/item/book/manual/engineering_singularity_safety(src)
update_icon() new /obj/item/book/manual/robotics_cyborgs(src)
update_icon()
/obj/structure/bookcase/manuals/research_and_development
name = "\improper R&D manuals bookcase" /obj/structure/bookcase/manuals/research_and_development
name = "\improper R&D manuals bookcase"
/obj/structure/bookcase/manuals/research_and_development/New()
..() /obj/structure/bookcase/manuals/research_and_development/New()
new /obj/item/book/manual/research_and_development(src) ..()
update_icon() new /obj/item/book/manual/research_and_development(src)
update_icon()
/*
* Book /*
*/ * Book
/obj/item/book */
name = "book" /obj/item/book
icon = 'icons/obj/library.dmi' name = "book"
icon_state ="book" icon = 'icons/obj/library.dmi'
throw_speed = 1 icon_state ="book"
throw_range = 5 desc = "Crack it open, inhale the musk of its pages, and learn something new."
w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) throw_speed = 1
attack_verb = list("bashed", "whacked", "educated") throw_range = 5
resistance_flags = FLAMMABLE w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
var/dat //Actual page content attack_verb = list("bashed", "whacked", "educated")
var/due_date = 0 //Game time in 1/10th seconds resistance_flags = FLAMMABLE
var/author //Who wrote the thing, can be changed by pen or PC. It is not automatically assigned var/dat //Actual page content
var/unique = 0 //0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified var/due_date = 0 //Game time in 1/10th seconds
var/title //The real name of the book. var/author //Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
var/window_size = null // Specific window size for the book, i.e: "1920x1080", Size x Width var/unique = 0 //0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified
var/title //The real name of the book.
/obj/item/book/attack_self(mob/user) var/window_size = null // Specific window size for the book, i.e: "1920x1080", Size x Width
if(is_blind(user))
to_chat(user, "<span class='warning'>As you are trying to read, you suddenly feel very stupid!</span>") /obj/item/book/attack_self(mob/user)
return if(is_blind(user))
if(ismonkey(user)) to_chat(user, "<span class='warning'>As you are trying to read, you suddenly feel very stupid!</span>")
to_chat(user, "<span class='notice'>You skim through the book but can't comprehend any of it.</span>") return
return if(ismonkey(user))
if(dat) to_chat(user, "<span class='notice'>You skim through the book but can't comprehend any of it.</span>")
user << browse("<TT><I>Penned by [author].</I></TT> <BR>" + "[dat]", "window=book[window_size != null ? ";size=[window_size]" : ""]") return
user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.") if(dat)
onclose(user, "book") user << browse("<TT><I>Penned by [author].</I></TT> <BR>" + "[dat]", "window=book[window_size != null ? ";size=[window_size]" : ""]")
else user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.")
to_chat(user, "<span class='notice'>This book is completely blank!</span>") onclose(user, "book")
else
to_chat(user, "<span class='notice'>This book is completely blank!</span>")
/obj/item/book/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/pen))
if(is_blind(user)) /obj/item/book/attackby(obj/item/I, mob/user, params)
to_chat(user, "<span class='warning'> As you are trying to write on the book, you suddenly feel very stupid!</span>") if(istype(I, /obj/item/pen))
return if(is_blind(user))
if(unique) to_chat(user, "<span class='warning'> As you are trying to write on the book, you suddenly feel very stupid!</span>")
to_chat(user, "<span class='warning'>These pages don't seem to take the ink well! Looks like you can't modify it.</span>") return
return if(unique)
var/choice = input("What would you like to change?") in list("Title", "Contents", "Author", "Cancel") to_chat(user, "<span class='warning'>These pages don't seem to take the ink well! Looks like you can't modify it.</span>")
switch(choice) return
if("Title") var/choice = input("What would you like to change?") in list("Title", "Contents", "Author", "Cancel")
var/newtitle = reject_bad_text(stripped_input(usr, "Write a new title:")) switch(choice)
if (length(newtitle) > 20) if("Title")
to_chat(usr, "That title won't fit on the cover!") var/newtitle = reject_bad_text(stripped_input(usr, "Write a new title:"))
return if (length(newtitle) > 20)
if(!newtitle) to_chat(usr, "That title won't fit on the cover!")
to_chat(usr, "That title is invalid.") return
return if(!newtitle)
else to_chat(usr, "That title is invalid.")
name = newtitle return
title = newtitle else
if("Contents") name = newtitle
var/content = stripped_input(usr, "Write your book's contents (HTML NOT allowed):","","",8192) title = newtitle
if(!content) if("Contents")
to_chat(usr, "The content is invalid.") var/content = stripped_input(usr, "Write your book's contents (HTML NOT allowed):","","",8192)
return if(!content)
else to_chat(usr, "The content is invalid.")
dat += content return
if("Author") else
var/newauthor = stripped_input(usr, "Write the author's name:") dat += content
if(!newauthor) if("Author")
to_chat(usr, "The name is invalid.") var/newauthor = stripped_input(usr, "Write the author's name:")
return if(!newauthor)
else to_chat(usr, "The name is invalid.")
author = newauthor return
else else
return author = newauthor
else
else if(istype(I, /obj/item/barcodescanner)) return
var/obj/item/barcodescanner/scanner = I
if(!scanner.computer) else if(istype(I, /obj/item/barcodescanner))
to_chat(user, "[I]'s screen flashes: 'No associated computer found!'") var/obj/item/barcodescanner/scanner = I
else if(!scanner.computer)
switch(scanner.mode) to_chat(user, "[I]'s screen flashes: 'No associated computer found!'")
if(0) else
scanner.book = src switch(scanner.mode)
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer.'") if(0)
if(1) scanner.book = src
scanner.book = src to_chat(user, "[I]'s screen flashes: 'Book stored in buffer.'")
scanner.computer.buffer_book = name if(1)
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Book title stored in associated computer buffer.'") scanner.book = src
if(2) scanner.computer.buffer_book = name
scanner.book = src to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Book title stored in associated computer buffer.'")
for(var/datum/borrowbook/b in scanner.computer.checkouts) if(2)
if(b.bookname == name) scanner.book = src
scanner.computer.checkouts.Remove(b) for(var/datum/borrowbook/b in scanner.computer.checkouts)
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Book has been checked in.'") if(b.bookname == name)
return scanner.computer.checkouts.Remove(b)
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. No active check-out record found for current title.'") to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Book has been checked in.'")
if(3) return
scanner.book = src to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. No active check-out record found for current title.'")
for(var/obj/item/book in scanner.computer.inventory) if(3)
if(book == src) scanner.book = src
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Title already present in inventory, aborting to avoid duplicate entry.'") for(var/obj/item/book in scanner.computer.inventory)
return if(book == src)
scanner.computer.inventory.Add(src) to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Title already present in inventory, aborting to avoid duplicate entry.'")
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Title added to general inventory.'") return
scanner.computer.inventory.Add(src)
else if(istype(I, /obj/item/kitchen/knife) || istype(I, /obj/item/wirecutters)) to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Title added to general inventory.'")
to_chat(user, "<span class='notice'>You begin to carve out [title]...</span>")
if(do_after(user, 30, target = src)) else if(istype(I, /obj/item/kitchen/knife) || istype(I, /obj/item/wirecutters))
to_chat(user, "<span class='notice'>You carve out the pages from [title]! You didn't want to read it anyway.</span>") to_chat(user, "<span class='notice'>You begin to carve out [title]...</span>")
var/obj/item/storage/book/B = new if(do_after(user, 30, target = src))
B.name = src.name to_chat(user, "<span class='notice'>You carve out the pages from [title]! You didn't want to read it anyway.</span>")
B.title = src.title var/obj/item/storage/book/B = new
B.icon_state = src.icon_state B.name = src.name
if(user.is_holding(src)) B.title = src.title
qdel(src) B.icon_state = src.icon_state
user.put_in_hands(B) if(user.is_holding(src))
return qdel(src)
else user.put_in_hands(B)
B.loc = src.loc return
qdel(src) else
return B.loc = src.loc
return qdel(src)
else return
..() return
else
..()
/*
* Barcode Scanner
*/ /*
/obj/item/barcodescanner * Barcode Scanner
name = "barcode scanner" */
icon = 'icons/obj/library.dmi' /obj/item/barcodescanner
icon_state ="scanner" name = "barcode scanner"
throw_speed = 3 icon = 'icons/obj/library.dmi'
throw_range = 5 icon_state ="scanner"
w_class = WEIGHT_CLASS_TINY desc = "A fabulous tool if you need to scan a barcode."
var/obj/machinery/computer/libraryconsole/bookmanagement/computer //Associated computer - Modes 1 to 3 use this throw_speed = 3
var/obj/item/book/book //Currently scanned book throw_range = 5
var/mode = 0 //0 - Scan only, 1 - Scan and Set Buffer, 2 - Scan and Attempt to Check In, 3 - Scan and Attempt to Add to Inventory w_class = WEIGHT_CLASS_TINY
var/obj/machinery/computer/libraryconsole/bookmanagement/computer //Associated computer - Modes 1 to 3 use this
/obj/item/barcodescanner/attack_self(mob/user) var/obj/item/book/book //Currently scanned book
mode += 1 var/mode = 0 //0 - Scan only, 1 - Scan and Set Buffer, 2 - Scan and Attempt to Check In, 3 - Scan and Attempt to Add to Inventory
if(mode > 3)
mode = 0 /obj/item/barcodescanner/attack_self(mob/user)
to_chat(user, "[src] Status Display:") mode += 1
var/modedesc if(mode > 3)
switch(mode) mode = 0
if(0) to_chat(user, "[src] Status Display:")
modedesc = "Scan book to local buffer." var/modedesc
if(1) switch(mode)
modedesc = "Scan book to local buffer and set associated computer buffer to match." if(0)
if(2) modedesc = "Scan book to local buffer."
modedesc = "Scan book to local buffer, attempt to check in scanned book." if(1)
if(3) modedesc = "Scan book to local buffer and set associated computer buffer to match."
modedesc = "Scan book to local buffer, attempt to add book to general inventory." if(2)
else modedesc = "Scan book to local buffer, attempt to check in scanned book."
modedesc = "ERROR" if(3)
to_chat(user, " - Mode [mode] : [modedesc]") modedesc = "Scan book to local buffer, attempt to add book to general inventory."
if(computer) else
to_chat(user, "<font color=green>Computer has been associated with this unit.</font>") modedesc = "ERROR"
else to_chat(user, " - Mode [mode] : [modedesc]")
to_chat(user, "<font color=red>No associated computer found. Only local scans will function properly.</font>") if(computer)
to_chat(user, "\n") to_chat(user, "<font color=green>Computer has been associated with this unit.</font>")
else
to_chat(user, "<font color=red>No associated computer found. Only local scans will function properly.</font>")
to_chat(user, "\n")
+4
View File
@@ -20,6 +20,7 @@
icon_screen = "library" icon_screen = "library"
icon_keyboard = null icon_keyboard = null
circuit = /obj/item/circuitboard/computer/libraryconsole circuit = /obj/item/circuitboard/computer/libraryconsole
desc = "Checked out books MUST be returned on time."
var/screenstate = 0 var/screenstate = 0
var/title var/title
var/category = "Any" var/category = "Any"
@@ -161,6 +162,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
// It's December 25th, 2014, and this is STILL here, and it's STILL relevant. Kill me // It's December 25th, 2014, and this is STILL here, and it's STILL relevant. Kill me
/obj/machinery/computer/libraryconsole/bookmanagement /obj/machinery/computer/libraryconsole/bookmanagement
name = "book inventory management console" name = "book inventory management console"
desc = "Librarian's command station."
var/arcanecheckout = 0 var/arcanecheckout = 0
screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book
verb_say = "beeps" verb_say = "beeps"
@@ -498,6 +500,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
name = "scanner control interface" name = "scanner control interface"
icon = 'icons/obj/library.dmi' icon = 'icons/obj/library.dmi'
icon_state = "bigscanner" icon_state = "bigscanner"
desc = "It servers the purpose of scanning stuff."
anchored = TRUE anchored = TRUE
density = TRUE density = TRUE
var/obj/item/book/cache // Last scanned book var/obj/item/book/cache // Last scanned book
@@ -554,6 +557,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
name = "book binder" name = "book binder"
icon = 'icons/obj/library.dmi' icon = 'icons/obj/library.dmi'
icon_state = "binder" icon_state = "binder"
desc = "Only intended for binding paper products."
anchored = TRUE anchored = TRUE
density = TRUE density = TRUE
var/busy = FALSE var/busy = FALSE
+3 -1
View File
@@ -4,6 +4,7 @@
name = "stacking machine console" name = "stacking machine console"
icon = 'icons/obj/machines/mining_machines.dmi' icon = 'icons/obj/machines/mining_machines.dmi'
icon_state = "console" icon_state = "console"
desc = "Controls a stacking machine... in theory."
density = FALSE density = FALSE
anchored = TRUE anchored = TRUE
var/obj/machinery/mineral/stacking_machine/machine = null var/obj/machinery/mineral/stacking_machine/machine = null
@@ -60,6 +61,7 @@
name = "stacking machine" name = "stacking machine"
icon = 'icons/obj/machines/mining_machines.dmi' icon = 'icons/obj/machines/mining_machines.dmi'
icon_state = "stacker" icon_state = "stacker"
desc = "A machine that automatically stacks acquired materials. Controlled by a nearby console."
density = TRUE density = TRUE
anchored = TRUE anchored = TRUE
var/obj/machinery/mineral/stacking_unit_console/CONSOLE var/obj/machinery/mineral/stacking_unit_console/CONSOLE
@@ -90,4 +92,4 @@
var/obj/item/stack/sheet/out = new inp.type() var/obj/item/stack/sheet/out = new inp.type()
out.amount = stack_amt out.amount = stack_amt
unload_mineral(out) unload_mineral(out)
storage.amount -= stack_amt storage.amount -= stack_amt
+1
View File
@@ -67,6 +67,7 @@ GLOBAL_LIST_INIT(message_servers, list())
icon = 'icons/obj/machines/research.dmi' icon = 'icons/obj/machines/research.dmi'
icon_state = "server" icon_state = "server"
name = "Messaging Server" name = "Messaging Server"
desc = "A machine that attempts to gather the secret knowledge of the universe."
density = TRUE density = TRUE
anchored = TRUE anchored = TRUE
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
+1
View File
@@ -1,5 +1,6 @@
/obj/machinery/computer/shuttle /obj/machinery/computer/shuttle
name = "shuttle console" name = "shuttle console"
desc = "A shuttle control computer."
icon_screen = "shuttle" icon_screen = "shuttle"
icon_keyboard = "tech_key" icon_keyboard = "tech_key"
light_color = LIGHT_COLOR_CYAN light_color = LIGHT_COLOR_CYAN
+1
View File
@@ -1,5 +1,6 @@
/obj/machinery/computer/shuttle/ferry /obj/machinery/computer/shuttle/ferry
name = "transport ferry console" name = "transport ferry console"
desc = "A console that controls the transport ferry."
circuit = /obj/item/circuitboard/computer/ferry circuit = /obj/item/circuitboard/computer/ferry
shuttleId = "ferry" shuttleId = "ferry"
possible_destinations = "ferry_home;ferry_away" possible_destinations = "ferry_home;ferry_away"
+3
View File
@@ -2,6 +2,7 @@
/obj/machinery/computer/shuttle/syndicate /obj/machinery/computer/shuttle/syndicate
name = "syndicate shuttle terminal" name = "syndicate shuttle terminal"
desc = "The terminal used to control the syndicate transport shuttle."
circuit = /obj/item/circuitboard/computer/syndicate_shuttle circuit = /obj/item/circuitboard/computer/syndicate_shuttle
icon_screen = "syndishuttle" icon_screen = "syndishuttle"
icon_keyboard = "syndie_key" icon_keyboard = "syndie_key"
@@ -13,6 +14,7 @@
/obj/machinery/computer/shuttle/syndicate/recall /obj/machinery/computer/shuttle/syndicate/recall
name = "syndicate shuttle recall terminal" name = "syndicate shuttle recall terminal"
desc = "Use this if your friends left you behind."
possible_destinations = "syndicate_away" possible_destinations = "syndicate_away"
@@ -27,6 +29,7 @@
/obj/machinery/computer/shuttle/syndicate/drop_pod /obj/machinery/computer/shuttle/syndicate/drop_pod
name = "syndicate assault pod control" name = "syndicate assault pod control"
desc = "Controls the drop pod's launch system."
icon = 'icons/obj/terminals.dmi' icon = 'icons/obj/terminals.dmi'
icon_state = "dorm_available" icon_state = "dorm_available"
light_color = LIGHT_COLOR_BLUE light_color = LIGHT_COLOR_BLUE