Files
Bubberstation/code/game/objects/structures/bedsheet_bin.dm
coiax 5b5d956943 Alternate escape shuttles and ferries (#16761)
* Added a simple bar-theme escape shuttle

Features include a very tough Bardrone, with laws to be a good
bartender, bathroom, a quality lounge for the heads, and a small
gambling table.

* Changed drone's health to 3000

Bardrone is now strong, to cope from stray gunfire.

* Replaces banned variables with alternates

Step_[xy] is bad, mkay?

* Added STV5, the cramped transport shuttle

Well, looks like Centcom only had this ship ready for evacuation. I hope
you're friendly with your coworkers!

* Removed shuttle area from empty space on STV5

* Added cult shuttle

Looks like this automated shuttle may have wandered into the darkness
between the stars on route to the station. Let's not think too hard
about where all the bodies came from.

* Include the Narnar Shuttle

* Meat ferry added

Very basic, could probably use some love from a map wizard.

* Moved shuttle files to shuttles/ directory

* MAPS MOVED AND RENAMED

* Hyperfractal Gigashuttle

"I dunno, this seems kinda needlessly complicated."
"This shuttle has very a very high safety record, according to Centcom
Officer Cadet Yins."
"Are you sure?"
"Yes, it has a safety record of N-A-N, which is apparently larger than
100%."

* I REGRET ADDING THESE

* Into templates you go

* Changed floors

* Hugbox supermatter, for map making

* Shuttles KINDA delete themselves

* Hats in hats in hats in hats in hats

* Use the hugbox supermatter in the shuttle

* Include the new verbs

* Include our new verbs

* Fixed runtime when deleting emergency shuttle

* Added to verb list

* Fixes more runtimes with deleting the shuttle

* Shuttle Destroy verb now functions

* Moved them out of the shuttles/ folder

* We'll need these docks later

* shuttle_import landmark datum made

* Changes z2 to TGM format and adds shuttle_import landmark

* SHUTTLE IMPORT VERB

Is this it? Are we there?

* Some compile fixes

* Emergency bar map updated

* Updated cramped shuttle

* Updated narnar shuttle

* Supermatter shuttle updated

* Meat ferry updated

* Debugging information included

* Debug code, QDEL hints

* Minor updates to collection of maps

* May as well use the snowflake drone code

PICK YOUR OWN BARKEEPING HAT.

* The Lighthouse

*static*... part of a much larger vessel, possibly military in origin.
The weapon markings aren't anything we've seen ... *static* ... by
almost never the same person twice, possible use of unknown storage ...
*static* ... seeing ERT officers onboard, but no missions are on file
for ... *static* ... *static* ... *annoying jingle* ... only at The
LIGHTHOUSE! Fulfilling needs you didn't even know you had. We've got
EVERYTHING, and something else!

* Made supermatter hallucination too powerful

* Added force argument for docking testing

* Added emergency backup shuttle

Hopefully it will never be seen or used. But means that provided it's
there and untouched, even with the accidental deletion of a shuttle,
round will still be able to end as normal.

* Added templates for existing shuttles

* Backup shuttle used if emergency shuttle deleted

* Added backup shuttle transit space

Don't know why transit spaces aren't dynamically generated, to be
honest.

* Hyperfractal Gigashuttle improved

More radiation lockers, chairs which makes it "safer".

* Added Shuttle Under Construction

The documentation hasn't been finished yet for this shuttle. Break glass
in case of emergency.

* Added warnings for shuttle interaction

ARE YOU SURE YOU WANT TO DELETE THE EMERGENCY SHUTTLE?

I mean, I really don't know what will happen, and it's probably
nothing good.

* Snappop(tm)!

Hey kids and grownups! Are you bored of DULL and TEDIOUS shuttle
journeys after you're evacuating for probably BORING reasons. Well then
order the Snappop today! We've got fun activities for everyone, an all
access cockpit, and no boring security brig! Boo! Play dress up with
your friends! Collect all the bedsheets before your neighbour does so!
Check if the AI is watching you with our patent pending "Peeping Tom AI
Multitool Detector" or PEEEEEETUR for short. Have a fun ride!

* Fixed horrific experiment icon, added gambling spawner

* Candle changes

Infinite candles start fires but don't run out.
Infinite candles don't make messages when created.

* Shuttle can dock if already docked

* Fixing bugs with shuttle import

Also, some minor bugs with hugbox supermatter still consuming
gas moles and slowly depressurising the area.

* Admin notice, unload bad template

* Fixes problems with some shuttles

* Warning message if roundstart dock failed

* Compiles.

* Inform admins of shuttle problems

* Names for shuttles, minor tweaks

* Moved shuttle templates to shuttles/

* Version numbers are lame

* Shuttle datums

* Shuttle manipulator barebones

It doesn't do anything at the moment.

* Added shuttle manipulator to Z2

It still doesn't do anything yet, but it looks pretty.

* Use GetAllContents(), don't delete ghosts

* Fixes bug where nothing would actually load

* Cancel button on Destroy Shuttle

* Fixed birdboat shuttle overwriting bar shuttle
2016-05-07 23:35:57 +02:00

307 lines
8.6 KiB
Plaintext

/*
CONTAINS:
BEDSHEETS
LINEN BINS
*/
/obj/item/weapon/bedsheet
name = "bedsheet"
desc = "A surprisingly soft linen bedsheet."
icon = 'icons/obj/bedsheets.dmi'
icon_state = "sheetwhite"
item_state = "bedsheet"
slot_flags = SLOT_BACK
layer = 4
throwforce = 0
throw_speed = 1
throw_range = 2
w_class = 1
item_color = "white"
burn_state = FLAMMABLE
dog_fashion = /datum/dog_fashion/head/ghost
/obj/item/weapon/bedsheet/attack(mob/living/M, mob/user)
if(!attempt_initiate_surgery(src, M, user))
..()
/obj/item/weapon/bedsheet/attack_self(mob/user)
user.drop_item()
if(layer == initial(layer))
layer = 5
else
layer = initial(layer)
add_fingerprint(user)
return
/obj/item/weapon/bedsheet/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/wirecutters) || I.is_sharp())
var/obj/item/stack/sheet/cloth/C = new (loc, 3)
transfer_fingerprints_to(C)
C.add_fingerprint(user)
qdel(src)
user << "<span class='notice'>You tear [src] up.</span>"
else
return ..()
/obj/item/weapon/bedsheet/blue
icon_state = "sheetblue"
item_color = "blue"
/obj/item/weapon/bedsheet/green
icon_state = "sheetgreen"
item_color = "green"
/obj/item/weapon/bedsheet/orange
icon_state = "sheetorange"
item_color = "orange"
/obj/item/weapon/bedsheet/purple
icon_state = "sheetpurple"
item_color = "purple"
/obj/item/weapon/bedsheet/patriot
name = "patriotic bedsheet"
desc = "You've never felt more free than when sleeping on this."
icon_state = "sheetUSA"
item_color = "sheetUSA"
/obj/item/weapon/bedsheet/rainbow
name = "rainbow bedsheet"
desc = "A multicolored blanket. It's actually several different sheets cut up and sewn together."
icon_state = "sheetrainbow"
item_color = "rainbow"
/obj/item/weapon/bedsheet/red
icon_state = "sheetred"
item_color = "red"
/obj/item/weapon/bedsheet/yellow
icon_state = "sheetyellow"
item_color = "yellow"
/obj/item/weapon/bedsheet/mime
name = "mime's blanket"
desc = "A very soothing striped blanket. All the noise just seems to fade out when you're under the covers in this."
icon_state = "sheetmime"
item_color = "mime"
/obj/item/weapon/bedsheet/clown
name = "clown's blanket"
desc = "A rainbow blanket with a clown mask woven in. It smells faintly of bananas."
icon_state = "sheetclown"
item_color = "clown"
/obj/item/weapon/bedsheet/captain
name = "captain's bedsheet"
desc = "It has a Nanotrasen symbol on it, and was woven with a revolutionary new kind of thread guaranteed to have 0.01% permeability for most non-chemical substances, popular among most modern captains."
icon_state = "sheetcaptain"
item_color = "captain"
/obj/item/weapon/bedsheet/rd
name = "research director's bedsheet"
desc = "It appears to have a beaker emblem, and is made out of fire-resistant material, although it probably won't protect you in the event of fires you're familiar with every day."
icon_state = "sheetrd"
item_color = "director"
/obj/item/weapon/bedsheet/medical
name = "medical blanket"
desc = "It's a sterilized* blanket commonly used in the Medbay. *Sterilization is voided if a virologist is present onboard the station."
icon_state = "sheetmedical"
item_color = "medical"
/obj/item/weapon/bedsheet/cmo
name = "chief medical officer's bedsheet"
desc = "It's a sterilized blanket that has a cross emblem. There's some cat fur on it, likely from Runtime."
icon_state = "sheetcmo"
item_color = "cmo"
/obj/item/weapon/bedsheet/hos
name = "head of security's bedsheet"
desc = "It is decorated with a shield emblem. While crime doesn't sleep, you do, but you are still THE LAW!"
icon_state = "sheethos"
item_color = "hosred"
/obj/item/weapon/bedsheet/hop
name = "head of personnel's bedsheet"
desc = "It is decorated with a key emblem. For those rare moments when you can rest and cuddle with Ian without someone screaming for you over the radio."
icon_state = "sheethop"
item_color = "hop"
/obj/item/weapon/bedsheet/ce
name = "chief engineer's bedsheet"
desc = "It is decorated with a wrench emblem. It's highly reflective and stain resistant, so you don't need to worry about ruining it with oil."
icon_state = "sheetce"
item_color = "chief"
/obj/item/weapon/bedsheet/qm
name = "quartermaster's bedsheet"
desc = "It is decorated with a crate emblem in silver lining. It's rather tough, and just the thing to lie on after a hard day of pushing paper."
icon_state = "sheetqm"
item_color = "qm"
/obj/item/weapon/bedsheet/brown
icon_state = "sheetbrown"
item_color = "cargo"
/obj/item/weapon/bedsheet/black
icon_state = "sheetblack"
item_color = "black"
/obj/item/weapon/bedsheet/centcom
name = "\improper Centcom bedsheet"
desc = "Woven with advanced nanothread for warmth as well as being very decorated, essential for all officials."
icon_state = "sheetcentcom"
item_color = "centcom"
/obj/item/weapon/bedsheet/syndie
name = "syndicate bedsheet"
desc = "It has a syndicate emblem and it has an aura of evil."
icon_state = "sheetsyndie"
item_color = "syndie"
/obj/item/weapon/bedsheet/cult
name = "cultist's bedsheet"
desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence."
icon_state = "sheetcult"
item_color = "cult"
/obj/item/weapon/bedsheet/wiz
name = "wizard's bedsheet"
desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!"
icon_state = "sheetwiz"
item_color = "wiz"
/obj/item/weapon/bedsheet/ian
icon_state = "sheetian"
item_color = "ian"
/obj/item/weapon/bedsheet/random
icon_state = "sheetrainbow"
item_color = "rainbow"
name = "random bedsheet"
desc = "If you're reading this description ingame, something has gone wrong! Honk!"
/obj/item/weapon/bedsheet/random/New()
var/obj/item/weapon/bedsheet/B = pick(subtypesof(/obj/item/weapon/bedsheet) - /obj/item/weapon/bedsheet/random)
name = initial(B.name)
desc = initial(B.desc)
icon_state = initial(B.icon_state)
item_state = initial(B.item_state)
item_color = initial(B.item_color)
/obj/structure/bedsheetbin
name = "linen bin"
desc = "It looks rather cosy."
icon = 'icons/obj/structures.dmi'
icon_state = "linenbin-full"
anchored = 1
burn_state = FLAMMABLE
burntime = 20
var/amount = 10
var/list/sheets = list()
var/obj/item/hidden = null
/obj/structure/bedsheetbin/examine(mob/user)
..()
if(amount < 1)
user << "There are no bed sheets in the bin."
else if(amount == 1)
user << "There is one bed sheet in the bin."
else
user << "There are [amount] bed sheets in the bin."
/obj/structure/bedsheetbin/update_icon()
switch(amount)
if(0)
icon_state = "linenbin-empty"
if(1 to 5)
icon_state = "linenbin-half"
else
icon_state = "linenbin-full"
/obj/structure/bedsheetbin/fire_act()
if(!amount)
return
..()
/obj/structure/bedsheetbin/burn()
amount = 0
extinguish()
update_icon()
return
/obj/structure/bedsheetbin/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/bedsheet))
if(!user.drop_item())
return
I.loc = src
sheets.Add(I)
amount++
user << "<span class='notice'>You put [I] in [src].</span>"
update_icon()
else if(amount && !hidden && I.w_class < 4) //make sure there's sheets to hide it among, make sure nothing else is hidden in there.
if(!user.drop_item())
user << "<span class='warning'>\The [I] is stuck to your hand, you cannot hide it among the sheets!</span>"
return
I.loc = src
hidden = I
user << "<span class='notice'>You hide [I] among the sheets.</span>"
/obj/structure/bedsheetbin/attack_paw(mob/user)
return attack_hand(user)
/obj/structure/bedsheetbin/attack_hand(mob/user)
if(user.lying)
return
if(amount >= 1)
amount--
var/obj/item/weapon/bedsheet/B
if(sheets.len > 0)
B = sheets[sheets.len]
sheets.Remove(B)
else
B = new /obj/item/weapon/bedsheet(loc)
B.loc = user.loc
user.put_in_hands(B)
user << "<span class='notice'>You take [B] out of [src].</span>"
update_icon()
if(hidden)
hidden.loc = user.loc
user << "<span class='notice'>[hidden] falls out of [B]!</span>"
hidden = null
add_fingerprint(user)
/obj/structure/bedsheetbin/attack_tk(mob/user)
if(amount >= 1)
amount--
var/obj/item/weapon/bedsheet/B
if(sheets.len > 0)
B = sheets[sheets.len]
sheets.Remove(B)
else
B = new /obj/item/weapon/bedsheet(loc)
B.loc = loc
user << "<span class='notice'>You telekinetically remove [B] from [src].</span>"
update_icon()
if(hidden)
hidden.loc = loc
hidden = null
add_fingerprint(user)