Files
Bubberstation/code/modules/mining/mine_items.dm
AnturK 56d2a34201 Splits beds and chairs
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
2016-02-18 17:55:38 +01:00

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