* map tweaks/shuttle engines * helpers and defines * global/onclick * controllers and datums * mapping * game folder * some other stuff * some modules * modules that aren't mobs * some mob stuff * new player stuff * mob living * silicon stuff * simple animal things * carbon/ayylmao * update_icons * carbon/human * sounds and tools * icons and stuff * hippie grinder changes + tgui * kitchen.dmi * compile issues fixed * mapfix * Mapfixes 2.0 * mapedit2.0 * mapmerger pls * Revert "mapedit2.0" This reverts commit 74139a3cacea10df7aafca06c0a10bd3daf3a481. * clean up vore folder + 2 hotfixes * admin ticket refinement * Blob tweaks and LAZYADD * LAZYADD IS LAZY * Magic strings purged * DEFINES NEED HIGHER PRIORITIES * Only a sleepless idiot deals in absolute TRUE|FALSE * u h g * progress bar fix * reverts ticket logs * there's always that one guy * fixes and stuff * 2/27 fixes * game folder stuff * stats * some modules again * clothing stuff gets vg clothing out of the main files * everything not mobs again * mob stuff * maps, tgui, sql stuff * icons * additional fixes and compile errors * don't need this anymore * Oh right this isn't needed anymore * maint bar re-added * that doesn't need to be here * stupid events * wtfeven * probably makes Travis happy * don't care to fix the grinder atm * fixes vending sprites, changes turret * lethal, not lethals * overylays are finicky creatures * lazy fix for bleeding edgy (#252) * map tweaks/shuttle engines * helpers and defines * global/onclick * controllers and datums * mapping * game folder * some other stuff * some modules * modules that aren't mobs * some mob stuff * new player stuff * mob living * silicon stuff * simple animal things * carbon/ayylmao * update_icons * carbon/human * sounds and tools * icons and stuff * hippie grinder changes + tgui * kitchen.dmi * compile issues fixed * mapfix * Mapfixes 2.0 * mapedit2.0 * mapmerger pls * Revert "mapedit2.0" This reverts commit 74139a3cacea10df7aafca06c0a10bd3daf3a481. * clean up vore folder + 2 hotfixes * admin ticket refinement * Blob tweaks and LAZYADD * LAZYADD IS LAZY * Magic strings purged * DEFINES NEED HIGHER PRIORITIES * Only a sleepless idiot deals in absolute TRUE|FALSE * u h g * progress bar fix * reverts ticket logs * there's always that one guy * fixes and stuff * 2/27 fixes * game folder stuff * stats * some modules again * clothing stuff gets vg clothing out of the main files * everything not mobs again * mob stuff * maps, tgui, sql stuff * icons * additional fixes and compile errors * don't need this anymore * Oh right this isn't needed anymore * maint bar re-added * that doesn't need to be here * stupid events * wtfeven * probably makes Travis happy * don't care to fix the grinder atm * fixes vending sprites, changes turret * lethal, not lethals * overylays are finicky creatures
83 lines
2.6 KiB
Plaintext
83 lines
2.6 KiB
Plaintext
/obj/item/weapon/book/manual/random/New()
|
|
var/static/banned_books = list(/obj/item/weapon/book/manual/random,/obj/item/weapon/book/manual/nuclear,/obj/item/weapon/book/manual/wiki)
|
|
var/newtype = pick(subtypesof(/obj/item/weapon/book/manual) - banned_books)
|
|
new newtype(loc)
|
|
qdel(src)
|
|
|
|
/obj/item/weapon/book/random
|
|
var/amount = 1
|
|
var/category = null
|
|
|
|
/obj/item/weapon/book/random/New()
|
|
create_random_books(amount, src.loc, TRUE, category)
|
|
qdel(src)
|
|
|
|
/obj/item/weapon/book/random/triple
|
|
amount = 3
|
|
|
|
/obj/structure/bookcase/random
|
|
var/category = null
|
|
var/book_count = 2
|
|
anchored = 1
|
|
state = 2
|
|
|
|
/obj/structure/bookcase/random/Initialize(mapload)
|
|
..()
|
|
if(!book_count || !isnum(book_count))
|
|
update_icon()
|
|
return
|
|
book_count += pick(-1,-1,0,1,1)
|
|
create_random_books(book_count, src, FALSE, category)
|
|
update_icon()
|
|
|
|
/proc/create_random_books(amount = 2, location, fail_loud = FALSE, category = null)
|
|
. = list()
|
|
if(!isnum(amount) || amount<1)
|
|
return
|
|
if (!dbcon.Connect())
|
|
if(fail_loud || prob(5))
|
|
var/obj/item/weapon/paper/P = new(location)
|
|
P.info = "There once was a book from Nantucket<br>But the database failed us, so f*$! it.<br>I tried to be good to you<br>Now this is an I.O.U<br>If you're feeling entitled, well, stuff it!<br><br><font color='gray'>~</font>"
|
|
P.update_icon()
|
|
return
|
|
if(prob(25))
|
|
category = null
|
|
var/c = category? " AND category='[sanitizeSQL(category)]'" :""
|
|
var/DBQuery/query = dbcon.NewQuery("SELECT * FROM [format_table_name("library")] WHERE isnull(deleted)[c] GROUP BY title ORDER BY rand() LIMIT [amount];") // isdeleted copyright (c) not me
|
|
if(query.Execute())
|
|
while(query.NextRow())
|
|
var/obj/item/weapon/book/B = new(location)
|
|
. += B
|
|
B.author = query.item[2]
|
|
B.title = query.item[3]
|
|
B.dat = query.item[4]
|
|
B.name = "Book: [B.title]"
|
|
B.icon_state= "book[rand(1,8)]"
|
|
else
|
|
log_game("SQL ERROR populating library bookshelf. Category: \[[category]\], Count: [amount], Error: \[[query.ErrorMsg()]\]\n")
|
|
|
|
|
|
/obj/structure/bookcase/random/fiction
|
|
name = "bookcase (Fiction)"
|
|
category = "Fiction"
|
|
/obj/structure/bookcase/random/nonfiction
|
|
name = "bookcase (Non-Fiction)"
|
|
category = "Non-fiction"
|
|
/obj/structure/bookcase/random/religion
|
|
name = "bookcase (Religion)"
|
|
category = "Religion"
|
|
/obj/structure/bookcase/random/adult
|
|
name = "bookcase (Adult)"
|
|
category = "Adult"
|
|
|
|
/obj/structure/bookcase/random/reference
|
|
name = "bookcase (Reference)"
|
|
category = "Reference"
|
|
var/ref_book_prob = 20
|
|
|
|
/obj/structure/bookcase/random/reference/Initialize(mapload)
|
|
..()
|
|
while(book_count > 0 && prob(ref_book_prob))
|
|
book_count--
|
|
new /obj/item/weapon/book/manual/random(src)
|