mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-15 11:39:18 +00:00
Beds (and chairs) now have buildstacktype and buildstackamount vars to handle how many sheets of what they should drop on deconstruction. They also have a foldabletype var to handle folding into item (currently only used by roller beds) so that people can add foldable chairs in the future. Fixes swivel chairs not dropping the correct amount of metal sheets.
258 lines
8.4 KiB
Plaintext
258 lines
8.4 KiB
Plaintext
/**********************Light************************/
|
|
|
|
//this item is intended to give the effect of entering the mine, so that light gradually fades
|
|
/obj/effect/light_emitter
|
|
name = "Light-emtter"
|
|
anchored = 1
|
|
unacidable = 1
|
|
luminosity = 8
|
|
|
|
/**********************Miner Lockers**************************/
|
|
|
|
/obj/structure/closet/wardrobe/miner
|
|
name = "mining wardrobe"
|
|
icon_door = "mixed"
|
|
|
|
/obj/structure/closet/wardrobe/miner/New()
|
|
..()
|
|
contents = list()
|
|
new /obj/item/weapon/storage/backpack/dufflebag/engineering(src)
|
|
new /obj/item/weapon/storage/backpack/industrial(src)
|
|
new /obj/item/weapon/storage/backpack/satchel_eng(src)
|
|
new /obj/item/clothing/under/rank/miner(src)
|
|
new /obj/item/clothing/under/rank/miner(src)
|
|
new /obj/item/clothing/under/rank/miner(src)
|
|
new /obj/item/clothing/shoes/sneakers/black(src)
|
|
new /obj/item/clothing/shoes/sneakers/black(src)
|
|
new /obj/item/clothing/shoes/sneakers/black(src)
|
|
new /obj/item/clothing/gloves/fingerless(src)
|
|
new /obj/item/clothing/gloves/fingerless(src)
|
|
new /obj/item/clothing/gloves/fingerless(src)
|
|
|
|
/obj/structure/closet/secure_closet/miner
|
|
name = "miner's equipment"
|
|
icon_state = "mining"
|
|
req_access = list(access_mining)
|
|
|
|
/obj/structure/closet/secure_closet/miner/New()
|
|
..()
|
|
new /obj/item/device/radio/headset/headset_cargo(src)
|
|
new /obj/item/device/mining_scanner(src)
|
|
new /obj/item/weapon/storage/bag/ore(src)
|
|
new /obj/item/weapon/shovel(src)
|
|
new /obj/item/weapon/pickaxe(src)
|
|
new /obj/item/clothing/glasses/meson(src)
|
|
|
|
|
|
/**********************Shuttle Computer**************************/
|
|
|
|
/obj/machinery/computer/shuttle/mining
|
|
name = "Mining Shuttle Console"
|
|
desc = "Used to call and send the mining shuttle."
|
|
circuit = /obj/item/weapon/circuitboard/mining_shuttle
|
|
shuttleId = "mining"
|
|
possible_destinations = "mining_home;mining_away"
|
|
|
|
/*********************Pickaxe & Drills**************************/
|
|
|
|
/obj/item/weapon/pickaxe
|
|
name = "pickaxe"
|
|
icon = 'icons/obj/mining.dmi'
|
|
icon_state = "pickaxe"
|
|
flags = CONDUCT
|
|
slot_flags = SLOT_BELT
|
|
force = 15
|
|
throwforce = 10
|
|
item_state = "pickaxe"
|
|
w_class = 4
|
|
materials = list(MAT_METAL=2000) //one sheet, but where can you make them?
|
|
var/digspeed = 40
|
|
var/list/digsound = list('sound/effects/picaxe1.ogg','sound/effects/picaxe2.ogg','sound/effects/picaxe3.ogg')
|
|
origin_tech = "materials=1;engineering=1"
|
|
attack_verb = list("hit", "pierced", "sliced", "attacked")
|
|
|
|
/obj/item/weapon/pickaxe/proc/playDigSound()
|
|
playsound(src, pick(digsound),50,1)
|
|
|
|
/obj/item/weapon/pickaxe/diamond
|
|
name = "diamond-tipped pickaxe"
|
|
icon_state = "dpickaxe"
|
|
item_state = "dpickaxe"
|
|
digspeed = 20 //mines twice as fast as a normal pickaxe, bought from mining vendor
|
|
origin_tech = "materials=4;engineering=3"
|
|
desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt."
|
|
|
|
/obj/item/weapon/pickaxe/drill
|
|
name = "mining drill"
|
|
icon_state = "handdrill"
|
|
item_state = "jackhammer"
|
|
digspeed = 25 //available from roundstart, faster than a pickaxe.
|
|
digsound = list('sound/weapons/drill.ogg')
|
|
hitsound = 'sound/weapons/drill.ogg'
|
|
origin_tech = "materials=2;powerstorage=3;engineering=2"
|
|
desc = "An electric mining drill for the especially scrawny."
|
|
|
|
/obj/item/weapon/pickaxe/drill/cyborg
|
|
name = "cyborg mining drill"
|
|
desc = "An integrated electric mining drill."
|
|
flags = NODROP
|
|
|
|
/obj/item/weapon/pickaxe/drill/diamonddrill
|
|
name = "diamond-tipped mining drill"
|
|
icon_state = "diamonddrill"
|
|
digspeed = 10
|
|
origin_tech = "materials=6;powerstorage=4;engineering=5"
|
|
desc = "Yours is the drill that will pierce the heavens!"
|
|
|
|
/obj/item/weapon/pickaxe/drill/cyborg/diamond //This is the BORG version!
|
|
name = "diamond-tipped cyborg mining drill" //To inherit the NODROP flag, and easier to change borg specific drill mechanics.
|
|
icon_state = "diamonddrill"
|
|
digspeed = 10
|
|
|
|
/obj/item/weapon/pickaxe/drill/jackhammer
|
|
name = "sonic jackhammer"
|
|
icon_state = "jackhammer"
|
|
item_state = "jackhammer"
|
|
digspeed = 5 //the epitome of powertools. extremely fast mining, laughs at puny walls
|
|
origin_tech = "materials=3;powerstorage=2;engineering=2"
|
|
digsound = list('sound/weapons/sonic_jackhammer.ogg')
|
|
hitsound = 'sound/weapons/sonic_jackhammer.ogg'
|
|
desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls."
|
|
|
|
/*****************************Shovel********************************/
|
|
|
|
/obj/item/weapon/shovel
|
|
name = "shovel"
|
|
desc = "A large tool for digging and moving dirt."
|
|
icon = 'icons/obj/mining.dmi'
|
|
icon_state = "shovel"
|
|
flags = CONDUCT
|
|
slot_flags = SLOT_BELT
|
|
force = 8
|
|
var/digspeed = 20
|
|
throwforce = 4
|
|
item_state = "shovel"
|
|
w_class = 3
|
|
materials = list(MAT_METAL=50)
|
|
origin_tech = "materials=1;engineering=1"
|
|
attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked")
|
|
sharpness = IS_SHARP
|
|
|
|
/obj/item/weapon/shovel/spade
|
|
name = "spade"
|
|
desc = "A small tool for digging and moving dirt."
|
|
icon_state = "spade"
|
|
item_state = "spade"
|
|
force = 5
|
|
throwforce = 7
|
|
w_class = 2
|
|
|
|
|
|
/**********************Mining car (Crate like thing, not the rail car)**************************/
|
|
|
|
/obj/structure/closet/crate/miningcar
|
|
desc = "A mining car. This one doesn't work on rails, but has to be dragged."
|
|
name = "Mining car (not for rails)"
|
|
icon_crate = "miningcar"
|
|
icon_state = "miningcar"
|
|
/*****************************Survival Pod********************************/
|
|
|
|
|
|
/area/survivalpod
|
|
name = "\improper Emergency Shelter"
|
|
icon_state = "away"
|
|
requires_power = 0
|
|
has_gravity = 1
|
|
|
|
/obj/item/weapon/survivalcapsule
|
|
name = "bluespace shelter capsule"
|
|
desc = "An emergency shelter stored within a pocket of bluespace."
|
|
icon_state = "pill3"
|
|
icon = 'icons/obj/chemical.dmi'
|
|
w_class = 1
|
|
var/used = FALSE
|
|
|
|
/obj/item/weapon/survivalcapsule/attack_self()
|
|
if(used == FALSE)
|
|
src.loc.visible_message("The [src] begins to shake. Stand back!")
|
|
used = TRUE
|
|
sleep(50)
|
|
playsound(get_turf(src), 'sound/effects/phasein.ogg', 100, 1)
|
|
PoolOrNew(/obj/effect/effect/smoke, src.loc)
|
|
load()
|
|
qdel(src)
|
|
|
|
/obj/item/weapon/survivalcapsule/proc/load()
|
|
var/turf/start_turf = get_turf(src.loc)
|
|
var/turf/cur_turf
|
|
var/x_size = 5
|
|
var/y_size = 5
|
|
var/list/walltypes = list(/turf/simulated/wall)
|
|
var/floor_type = /turf/simulated/floor/wood
|
|
var/room
|
|
|
|
//Center the room/spawn it
|
|
start_turf = locate(start_turf.x -2, start_turf.y - 2, start_turf.z)
|
|
|
|
room = spawn_room(start_turf, x_size, y_size, walltypes, floor_type, "Emergency Shelter")
|
|
|
|
start_turf = get_turf(src.loc)
|
|
|
|
//Fill it
|
|
cur_turf = locate(start_turf.x, start_turf.y-2, start_turf.z)
|
|
new /obj/machinery/door/airlock/glass(cur_turf)
|
|
|
|
cur_turf = locate(start_turf.x+1, start_turf.y, start_turf.z)
|
|
new /obj/structure/table/wood(cur_turf)
|
|
new /obj/item/weapon/storage/pill_bottle/dice(cur_turf)
|
|
|
|
cur_turf = locate(start_turf.x+1, start_turf.y-1, start_turf.z)
|
|
var/obj/structure/bed/chair/comfy/C = new /obj/structure/bed/chair/comfy(cur_turf)
|
|
C.dir = 1
|
|
|
|
cur_turf = locate(start_turf.x+1, start_turf.y+1, start_turf.z)
|
|
new /obj/structure/bed/chair/comfy(cur_turf)
|
|
|
|
cur_turf = locate(start_turf.x-1, start_turf.y-1, start_turf.z)
|
|
var/obj/machinery/sleeper/S = new /obj/machinery/sleeper(cur_turf)
|
|
S.dir = 4
|
|
|
|
cur_turf = locate(start_turf.x-1, start_turf.y, start_turf.z)
|
|
new /obj/structure/table/wood(cur_turf)
|
|
new /obj/item/weapon/storage/box/donkpockets(cur_turf)
|
|
|
|
cur_turf = locate(start_turf.x-1, start_turf.y+1, start_turf.z)
|
|
new /obj/structure/table/wood(cur_turf)
|
|
new /obj/machinery/microwave(cur_turf)
|
|
|
|
var/area/survivalpod/L = new /area/survivalpod
|
|
|
|
var/turf/threshhold = locate(start_turf.x, start_turf.y-2, start_turf.z)
|
|
threshhold.ChangeTurf(/turf/simulated/floor/wood)
|
|
threshhold.blocks_air = 1 //So the air doesn't leak out
|
|
threshhold.oxygen = 21
|
|
threshhold.temperature = 293.15
|
|
threshhold.nitrogen = 82
|
|
threshhold.carbon_dioxide = 0
|
|
threshhold.toxins = 0
|
|
L.contents += threshhold
|
|
threshhold.overlays.Cut()
|
|
|
|
var/list/turfs = room["floors"]
|
|
for(var/turf/simulated/floor/A in turfs)
|
|
SSair.remove_from_active(A)
|
|
A.oxygen = 21
|
|
A.temperature = 293.15
|
|
A.nitrogen = 82
|
|
A.carbon_dioxide = 0
|
|
A.toxins = 0
|
|
A.air.oxygen = 21
|
|
A.air.carbon_dioxide = 0
|
|
A.air.nitrogen = 82
|
|
A.air.toxins = 0
|
|
A.air.temperature = 293.15
|
|
SSair.add_to_active(A)
|
|
A.overlays.Cut()
|
|
|
|
L.contents += A
|