mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-10 00:43:14 +00:00
Adds deconstruct structure helper Moves chair sprites from objects.dmi to chairs.dmi Fixes check shields passing proper flags on unarmed attacks Makes stools and chairs able to be picked up
267 lines
8.8 KiB
Plaintext
267 lines
8.8 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"
|
|
no_destination_swap = 1
|
|
|
|
/*********************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/silver
|
|
name = "silver-plated pickaxe"
|
|
icon_state = "spickaxe"
|
|
item_state = "spickaxe"
|
|
digspeed = 30 //mines faster than a normal pickaxe, bought from mining vendor
|
|
origin_tech = "materials=3;engineering=2"
|
|
desc = "A silver-plated pickaxe that mines slightly faster than standard-issue."
|
|
|
|
/obj/item/weapon/pickaxe/diamond
|
|
name = "diamond-tipped pickaxe"
|
|
icon_state = "dpickaxe"
|
|
item_state = "dpickaxe"
|
|
digspeed = 20
|
|
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_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 = "capsule"
|
|
icon = 'icons/obj/mining.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/particle_effect/smoke, src.loc)
|
|
load()
|
|
qdel(src)
|
|
|
|
/obj/item/weapon/survivalcapsule/proc/load()
|
|
var/list/blacklist = list(/area/shuttle) //Shuttles move based on area, and we'd like not to break them
|
|
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/chair/comfy/C = new /obj/structure/chair/comfy(cur_turf)
|
|
C.dir = 1
|
|
|
|
cur_turf = locate(start_turf.x+1, start_turf.y+1, start_turf.z)
|
|
new /obj/structure/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
|
|
var/area/ZZ = get_area(threshhold)
|
|
if(!is_type_in_list(ZZ, blacklist))
|
|
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.copy_from_turf(A)
|
|
SSair.add_to_active(A)
|
|
A.overlays.Cut()
|
|
var/area/Z = get_area(A)
|
|
if(!is_type_in_list(Z, blacklist))
|
|
L.contents += A
|