Adds desc to things lacking them.
This commit is contained in:
committed by
CitadelStationBot
parent
b2a01d688d
commit
82981339ed
@@ -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
|
||||
icon_state = "mvalve_map"
|
||||
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
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/obj/machinery/atmospherics/components/trinary/filter
|
||||
name = "gas filter"
|
||||
icon_state = "filter_off"
|
||||
desc = "Very useful for filtering gasses."
|
||||
density = FALSE
|
||||
can_unwrench = TRUE
|
||||
var/on = FALSE
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
name = "gas mixer"
|
||||
can_unwrench = TRUE
|
||||
desc = "Very useful for mixing gasses."
|
||||
|
||||
var/on = FALSE
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon_state = "vent_map"
|
||||
density = FALSE
|
||||
anchored=1
|
||||
desc = "This may be needed some day."
|
||||
|
||||
var/on = FALSE
|
||||
var/volume_rate = 800
|
||||
|
||||
@@ -283,7 +283,7 @@
|
||||
|
||||
/obj/item/clothing/head/crown/fancy
|
||||
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"
|
||||
|
||||
/obj/item/clothing/head/scarecrow_hat
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
<<<<<<< HEAD
|
||||
/* Library Items
|
||||
*
|
||||
* Contains:
|
||||
@@ -317,4 +318,329 @@
|
||||
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")
|
||||
to_chat(user, "\n")
|
||||
=======
|
||||
/* Library Items
|
||||
*
|
||||
* Contains:
|
||||
* Bookcase
|
||||
* Book
|
||||
* Barcode Scanner
|
||||
*/
|
||||
|
||||
/*
|
||||
* Bookcase
|
||||
*/
|
||||
|
||||
/obj/structure/bookcase
|
||||
name = "bookcase"
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "bookempty"
|
||||
desc = "A great place for storing knowledge."
|
||||
anchored = FALSE
|
||||
density = TRUE
|
||||
opacity = 0
|
||||
resistance_flags = FLAMMABLE
|
||||
max_integrity = 200
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0)
|
||||
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)
|
||||
. = ..()
|
||||
if(!mapload)
|
||||
return
|
||||
state = 2
|
||||
icon_state = "book-0"
|
||||
anchored = TRUE
|
||||
for(var/obj/item/I in loc)
|
||||
if(istype(I, /obj/item/book))
|
||||
I.loc = src
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/structure/bookcase/attackby(obj/item/I, mob/user, params)
|
||||
switch(state)
|
||||
if(0)
|
||||
if(istype(I, /obj/item/wrench))
|
||||
playsound(loc, I.usesound, 100, 1)
|
||||
if(do_after(user, 20*I.toolspeed, target = src))
|
||||
to_chat(user, "<span class='notice'>You wrench the frame into place.</span>")
|
||||
anchored = TRUE
|
||||
state = 1
|
||||
if(istype(I, /obj/item/crowbar))
|
||||
playsound(loc, I.usesound, 100, 1)
|
||||
if(do_after(user, 20*I.toolspeed, target = src))
|
||||
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))
|
||||
var/obj/item/stack/sheet/mineral/wood/W = I
|
||||
if(W.get_amount() >= 2)
|
||||
W.use(2)
|
||||
to_chat(user, "<span class='notice'>You add a shelf.</span>")
|
||||
state = 2
|
||||
icon_state = "book-0"
|
||||
if(istype(I, /obj/item/wrench))
|
||||
playsound(loc, I.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>You unwrench the frame.</span>")
|
||||
anchored = FALSE
|
||||
state = 0
|
||||
|
||||
if(2)
|
||||
if(is_type_in_list(I, allowed_books))
|
||||
if(!user.drop_item())
|
||||
return
|
||||
I.loc = src
|
||||
update_icon()
|
||||
else if(istype(I, /obj/item/storage/bag/books))
|
||||
var/obj/item/storage/bag/books/B = I
|
||||
for(var/obj/item/T in B.contents)
|
||||
if(istype(T, /obj/item/book) || istype(T, /obj/item/spellbook))
|
||||
B.remove_from_storage(T, src)
|
||||
to_chat(user, "<span class='notice'>You empty \the [I] into \the [src].</span>")
|
||||
update_icon()
|
||||
else if(istype(I, /obj/item/pen))
|
||||
var/newname = stripped_input(user, "What would you like to title this bookshelf?")
|
||||
if(!newname)
|
||||
return
|
||||
else
|
||||
name = ("bookcase ([sanitize(newname)])")
|
||||
else if(istype(I, /obj/item/crowbar))
|
||||
if(contents.len)
|
||||
to_chat(user, "<span class='warning'>You need to remove the books first!</span>")
|
||||
else
|
||||
playsound(loc, I.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>You pry the shelf out.</span>")
|
||||
new /obj/item/stack/sheet/mineral/wood(loc, 2)
|
||||
state = 1
|
||||
icon_state = "bookempty"
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/structure/bookcase/attack_hand(mob/user)
|
||||
if(contents.len)
|
||||
var/obj/item/book/choice = input("Which book would you like to remove from the shelf?") as null|obj in contents
|
||||
if(choice)
|
||||
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
|
||||
return
|
||||
if(ishuman(user))
|
||||
if(!user.get_active_held_item())
|
||||
user.put_in_hands(choice)
|
||||
else
|
||||
choice.loc = get_turf(src)
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/structure/bookcase/deconstruct(disassembled = TRUE)
|
||||
new /obj/item/stack/sheet/mineral/wood(loc, 4)
|
||||
for(var/obj/item/book/B in contents)
|
||||
B.forceMove(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/structure/bookcase/update_icon()
|
||||
if(contents.len < 5)
|
||||
icon_state = "book-[contents.len]"
|
||||
else
|
||||
icon_state = "book-5"
|
||||
|
||||
|
||||
/obj/structure/bookcase/manuals/medical
|
||||
name = "medical manuals bookcase"
|
||||
|
||||
/obj/structure/bookcase/manuals/medical/New()
|
||||
..()
|
||||
new /obj/item/book/manual/medical_cloning(src)
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/structure/bookcase/manuals/engineering
|
||||
name = "engineering manuals bookcase"
|
||||
|
||||
/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_hacking(src)
|
||||
new /obj/item/book/manual/wiki/engineering_guide(src)
|
||||
new /obj/item/book/manual/engineering_singularity_safety(src)
|
||||
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/New()
|
||||
..()
|
||||
new /obj/item/book/manual/research_and_development(src)
|
||||
update_icon()
|
||||
|
||||
|
||||
/*
|
||||
* Book
|
||||
*/
|
||||
/obj/item/book
|
||||
name = "book"
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state ="book"
|
||||
desc = "Crack it open, inhale the musk of its pages, and learn something new."
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
||||
attack_verb = list("bashed", "whacked", "educated")
|
||||
resistance_flags = FLAMMABLE
|
||||
var/dat //Actual page content
|
||||
var/due_date = 0 //Game time in 1/10th seconds
|
||||
var/author //Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
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.
|
||||
var/window_size = null // Specific window size for the book, i.e: "1920x1080", Size x Width
|
||||
|
||||
/obj/item/book/attack_self(mob/user)
|
||||
if(is_blind(user))
|
||||
to_chat(user, "<span class='warning'>As you are trying to read, you suddenly feel very stupid!</span>")
|
||||
return
|
||||
if(ismonkey(user))
|
||||
to_chat(user, "<span class='notice'>You skim through the book but can't comprehend any of it.</span>")
|
||||
return
|
||||
if(dat)
|
||||
user << browse("<TT><I>Penned by [author].</I></TT> <BR>" + "[dat]", "window=book[window_size != null ? ";size=[window_size]" : ""]")
|
||||
user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.")
|
||||
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))
|
||||
to_chat(user, "<span class='warning'> As you are trying to write on the book, you suddenly feel very stupid!</span>")
|
||||
return
|
||||
if(unique)
|
||||
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
|
||||
var/choice = input("What would you like to change?") in list("Title", "Contents", "Author", "Cancel")
|
||||
switch(choice)
|
||||
if("Title")
|
||||
var/newtitle = reject_bad_text(stripped_input(usr, "Write a new title:"))
|
||||
if (length(newtitle) > 20)
|
||||
to_chat(usr, "That title won't fit on the cover!")
|
||||
return
|
||||
if(!newtitle)
|
||||
to_chat(usr, "That title is invalid.")
|
||||
return
|
||||
else
|
||||
name = newtitle
|
||||
title = newtitle
|
||||
if("Contents")
|
||||
var/content = stripped_input(usr, "Write your book's contents (HTML NOT allowed):","","",8192)
|
||||
if(!content)
|
||||
to_chat(usr, "The content is invalid.")
|
||||
return
|
||||
else
|
||||
dat += content
|
||||
if("Author")
|
||||
var/newauthor = stripped_input(usr, "Write the author's name:")
|
||||
if(!newauthor)
|
||||
to_chat(usr, "The name is invalid.")
|
||||
return
|
||||
else
|
||||
author = newauthor
|
||||
else
|
||||
return
|
||||
|
||||
else if(istype(I, /obj/item/barcodescanner))
|
||||
var/obj/item/barcodescanner/scanner = I
|
||||
if(!scanner.computer)
|
||||
to_chat(user, "[I]'s screen flashes: 'No associated computer found!'")
|
||||
else
|
||||
switch(scanner.mode)
|
||||
if(0)
|
||||
scanner.book = src
|
||||
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer.'")
|
||||
if(1)
|
||||
scanner.book = src
|
||||
scanner.computer.buffer_book = name
|
||||
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Book title stored in associated computer buffer.'")
|
||||
if(2)
|
||||
scanner.book = src
|
||||
for(var/datum/borrowbook/b in scanner.computer.checkouts)
|
||||
if(b.bookname == name)
|
||||
scanner.computer.checkouts.Remove(b)
|
||||
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Book has been checked in.'")
|
||||
return
|
||||
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. No active check-out record found for current title.'")
|
||||
if(3)
|
||||
scanner.book = src
|
||||
for(var/obj/item/book in scanner.computer.inventory)
|
||||
if(book == src)
|
||||
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Title already present in inventory, aborting to avoid duplicate entry.'")
|
||||
return
|
||||
scanner.computer.inventory.Add(src)
|
||||
to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Title added to general inventory.'")
|
||||
|
||||
else if(istype(I, /obj/item/kitchen/knife) || istype(I, /obj/item/wirecutters))
|
||||
to_chat(user, "<span class='notice'>You begin to carve out [title]...</span>")
|
||||
if(do_after(user, 30, target = src))
|
||||
to_chat(user, "<span class='notice'>You carve out the pages from [title]! You didn't want to read it anyway.</span>")
|
||||
var/obj/item/storage/book/B = new
|
||||
B.name = src.name
|
||||
B.title = src.title
|
||||
B.icon_state = src.icon_state
|
||||
if(user.is_holding(src))
|
||||
qdel(src)
|
||||
user.put_in_hands(B)
|
||||
return
|
||||
else
|
||||
B.loc = src.loc
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
/*
|
||||
* Barcode Scanner
|
||||
*/
|
||||
/obj/item/barcodescanner
|
||||
name = "barcode scanner"
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state ="scanner"
|
||||
desc = "A fabulous tool if you need to scan a barcode."
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
var/obj/machinery/computer/libraryconsole/bookmanagement/computer //Associated computer - Modes 1 to 3 use this
|
||||
var/obj/item/book/book //Currently scanned book
|
||||
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
|
||||
|
||||
/obj/item/barcodescanner/attack_self(mob/user)
|
||||
mode += 1
|
||||
if(mode > 3)
|
||||
mode = 0
|
||||
to_chat(user, "[src] Status Display:")
|
||||
var/modedesc
|
||||
switch(mode)
|
||||
if(0)
|
||||
modedesc = "Scan book to local buffer."
|
||||
if(1)
|
||||
modedesc = "Scan book to local buffer and set associated computer buffer to match."
|
||||
if(2)
|
||||
modedesc = "Scan book to local buffer, attempt to check in scanned book."
|
||||
if(3)
|
||||
modedesc = "Scan book to local buffer, attempt to add book to general inventory."
|
||||
else
|
||||
modedesc = "ERROR"
|
||||
to_chat(user, " - Mode [mode] : [modedesc]")
|
||||
if(computer)
|
||||
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")
|
||||
>>>>>>> 3e4d747... Adds desc to things lacking them. (#31086)
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
icon_screen = "library"
|
||||
icon_keyboard = null
|
||||
circuit = /obj/item/circuitboard/computer/libraryconsole
|
||||
desc = "Checked out books MUST be returned on time."
|
||||
var/screenstate = 0
|
||||
var/title
|
||||
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
|
||||
/obj/machinery/computer/libraryconsole/bookmanagement
|
||||
name = "book inventory management console"
|
||||
desc = "Librarian's command station."
|
||||
var/arcanecheckout = 0
|
||||
screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book
|
||||
verb_say = "beeps"
|
||||
@@ -498,6 +500,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
|
||||
name = "scanner control interface"
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "bigscanner"
|
||||
desc = "It servers the purpose of scanning stuff."
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
var/obj/item/book/cache // Last scanned book
|
||||
@@ -554,6 +557,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
|
||||
name = "book binder"
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "binder"
|
||||
desc = "Only intended for binding paper products."
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
var/busy = FALSE
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
name = "stacking machine console"
|
||||
icon = 'icons/obj/machines/mining_machines.dmi'
|
||||
icon_state = "console"
|
||||
desc = "Controls a stacking machine... in theory."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
var/obj/machinery/mineral/stacking_machine/machine = null
|
||||
@@ -60,6 +61,7 @@
|
||||
name = "stacking machine"
|
||||
icon = 'icons/obj/machines/mining_machines.dmi'
|
||||
icon_state = "stacker"
|
||||
desc = "A machine that automatically stacks acquired materials. Controlled by a nearby console."
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
var/obj/machinery/mineral/stacking_unit_console/CONSOLE
|
||||
@@ -90,4 +92,4 @@
|
||||
var/obj/item/stack/sheet/out = new inp.type()
|
||||
out.amount = stack_amt
|
||||
unload_mineral(out)
|
||||
storage.amount -= stack_amt
|
||||
storage.amount -= stack_amt
|
||||
|
||||
@@ -67,6 +67,7 @@ GLOBAL_LIST_INIT(message_servers, list())
|
||||
icon = 'icons/obj/machines/research.dmi'
|
||||
icon_state = "server"
|
||||
name = "Messaging Server"
|
||||
desc = "A machine that attempts to gather the secret knowledge of the universe."
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/obj/machinery/computer/shuttle
|
||||
name = "shuttle console"
|
||||
desc = "A shuttle control computer."
|
||||
icon_screen = "shuttle"
|
||||
icon_keyboard = "tech_key"
|
||||
light_color = LIGHT_COLOR_CYAN
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/obj/machinery/computer/shuttle/ferry
|
||||
name = "transport ferry console"
|
||||
desc = "A console that controls the transport ferry."
|
||||
circuit = /obj/item/circuitboard/computer/ferry
|
||||
shuttleId = "ferry"
|
||||
possible_destinations = "ferry_home;ferry_away"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
/obj/machinery/computer/shuttle/syndicate
|
||||
name = "syndicate shuttle terminal"
|
||||
desc = "The terminal used to control the syndicate transport shuttle."
|
||||
circuit = /obj/item/circuitboard/computer/syndicate_shuttle
|
||||
icon_screen = "syndishuttle"
|
||||
icon_keyboard = "syndie_key"
|
||||
@@ -13,6 +14,7 @@
|
||||
|
||||
/obj/machinery/computer/shuttle/syndicate/recall
|
||||
name = "syndicate shuttle recall terminal"
|
||||
desc = "Use this if your friends left you behind."
|
||||
possible_destinations = "syndicate_away"
|
||||
|
||||
|
||||
@@ -27,6 +29,7 @@
|
||||
|
||||
/obj/machinery/computer/shuttle/syndicate/drop_pod
|
||||
name = "syndicate assault pod control"
|
||||
desc = "Controls the drop pod's launch system."
|
||||
icon = 'icons/obj/terminals.dmi'
|
||||
icon_state = "dorm_available"
|
||||
light_color = LIGHT_COLOR_BLUE
|
||||
|
||||
Reference in New Issue
Block a user