mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-07-22 05:34:49 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -6,14 +6,18 @@
|
||||
item_state = "electronic"
|
||||
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 150)
|
||||
var/scan_time = 5 SECONDS
|
||||
|
||||
/obj/item/weapon/mining_scanner/attack_self(mob/user as mob)
|
||||
user << "You begin sweeping \the [src] about, scanning for metal deposits."
|
||||
playsound(loc, 'sound/items/goggles_charge.ogg', 50, 1, -6)
|
||||
|
||||
if(!do_after(user, 50))
|
||||
if(!do_after(user, scan_time))
|
||||
return
|
||||
|
||||
ScanTurf(user, get_turf(user))
|
||||
|
||||
/obj/item/weapon/mining_scanner/proc/ScanTurf(var/atom/target, var/mob/user, var/exact = FALSE)
|
||||
var/list/metals = list(
|
||||
"surface minerals" = 0,
|
||||
"precious metals" = 0,
|
||||
@@ -22,7 +26,9 @@
|
||||
"anomalous matter" = 0
|
||||
)
|
||||
|
||||
for(var/turf/simulated/T in range(2, get_turf(user)))
|
||||
var/turf/Turf = get_turf(target)
|
||||
|
||||
for(var/turf/simulated/T in range(2, Turf))
|
||||
|
||||
if(!T.has_resources)
|
||||
continue
|
||||
@@ -39,14 +45,18 @@
|
||||
|
||||
if(ore_type) metals[ore_type] += T.resources[metal]
|
||||
|
||||
user << "\icon[src] <span class='notice'>The scanner beeps and displays a readout.</span>"
|
||||
to_chat(user, "\icon[src] <span class='notice'>The scanner beeps and displays a readout.</span>")
|
||||
|
||||
for(var/ore_type in metals)
|
||||
var/result = "no sign"
|
||||
|
||||
switch(metals[ore_type])
|
||||
if(1 to 25) result = "trace amounts"
|
||||
if(26 to 75) result = "significant amounts"
|
||||
if(76 to INFINITY) result = "huge quantities"
|
||||
if(!exact)
|
||||
switch(metals[ore_type])
|
||||
if(1 to 25) result = "trace amounts"
|
||||
if(26 to 75) result = "significant amounts"
|
||||
if(76 to INFINITY) result = "huge quantities"
|
||||
|
||||
user << "- [result] of [ore_type]."
|
||||
else
|
||||
result = metals[ore_type]
|
||||
|
||||
to_chat(user, "- [result] of [ore_type].")
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
/obj/structure/outcrop
|
||||
name = "outcrop"
|
||||
desc = "A boring rocky outcrop."
|
||||
icon = 'icons/obj/outcrop.dmi'
|
||||
density = 1
|
||||
throwpass = 1
|
||||
climbable = 1
|
||||
anchored = 1
|
||||
icon_state = "outcrop"
|
||||
var/mindrop = 5
|
||||
var/upperdrop = 10
|
||||
var/outcropdrop = /obj/item/weapon/ore/glass
|
||||
|
||||
/obj/structure/outcrop/Initialize()
|
||||
. = ..()
|
||||
if(prob(1))
|
||||
overlays += image(icon, "[initial(icon_state)]-egg")
|
||||
|
||||
/obj/structure/outcrop/diamond
|
||||
name = "shiny outcrop"
|
||||
desc = "A shiny rocky outcrop."
|
||||
icon_state = "outcrop-diamond"
|
||||
mindrop = 2
|
||||
upperdrop = 4
|
||||
outcropdrop = /obj/item/weapon/ore/diamond
|
||||
|
||||
/obj/structure/outcrop/phoron
|
||||
name = "shiny outcrop"
|
||||
desc = "A shiny rocky outcrop."
|
||||
icon_state = "outcrop-phoron"
|
||||
mindrop = 4
|
||||
upperdrop = 8
|
||||
outcropdrop = /obj/item/weapon/ore/phoron
|
||||
|
||||
/obj/structure/outcrop/iron
|
||||
name = "rugged outcrop"
|
||||
desc = "A rugged rocky outcrop."
|
||||
icon_state = "outcrop-iron"
|
||||
mindrop = 10
|
||||
upperdrop = 20
|
||||
outcropdrop = /obj/item/weapon/ore/iron
|
||||
|
||||
/obj/structure/outcrop/coal
|
||||
name = "rugged outcrop"
|
||||
desc = "A rugged rocky outcrop."
|
||||
icon_state = "outcrop-coal"
|
||||
mindrop = 10
|
||||
upperdrop = 20
|
||||
outcropdrop = /obj/item/weapon/ore/coal
|
||||
|
||||
/obj/structure/outcrop/lead
|
||||
name = "rugged outcrop"
|
||||
desc = "A rugged rocky outcrop."
|
||||
icon_state = "outcrop-lead"
|
||||
mindrop = 2
|
||||
upperdrop = 5
|
||||
outcropdrop = /obj/item/weapon/ore/lead
|
||||
|
||||
/obj/structure/outcrop/gold
|
||||
name = "hollow outcrop"
|
||||
desc = "A hollow rocky outcrop."
|
||||
icon_state = "outcrop-gold"
|
||||
mindrop = 4
|
||||
upperdrop = 6
|
||||
outcropdrop = /obj/item/weapon/ore/gold
|
||||
|
||||
/obj/structure/outcrop/silver
|
||||
name = "hollow outcrop"
|
||||
desc = "A hollow rocky outcrop."
|
||||
icon_state = "outcrop-silver"
|
||||
mindrop = 6
|
||||
upperdrop = 8
|
||||
outcropdrop = /obj/item/weapon/ore/silver
|
||||
|
||||
/obj/structure/outcrop/platinum
|
||||
name = "hollow outcrop"
|
||||
desc = "A hollow rocky outcrop."
|
||||
icon_state = "outcrop-platinum"
|
||||
mindrop = 2
|
||||
upperdrop = 5
|
||||
outcropdrop = /obj/item/weapon/ore/osmium
|
||||
|
||||
/obj/structure/outcrop/uranium
|
||||
name = "spiky outcrop"
|
||||
desc = "A spiky rocky outcrop, it glows faintly."
|
||||
icon_state = "outcrop-uranium"
|
||||
mindrop = 4
|
||||
upperdrop = 8
|
||||
outcropdrop = /obj/item/weapon/ore/uranium
|
||||
|
||||
/obj/structure/outcrop/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/pickaxe))
|
||||
to_chat(user, "<span class='notice'>[user] begins to hack away at \the [src].</span>")
|
||||
if(do_after(user,40))
|
||||
to_chat(user, "<span class='notice'>You have finished digging!</span>")
|
||||
for(var/i=0;i<(rand(mindrop,upperdrop));i++)
|
||||
new outcropdrop(get_turf(src))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/random/outcrop //In case you want an outcrop without pre-determining the type of ore.
|
||||
name = "random rock outcrop"
|
||||
desc = "This is a random rock outcrop."
|
||||
icon = 'icons/obj/outcrop.dmi'
|
||||
icon_state = "outcrop-random"
|
||||
|
||||
/obj/random/outcrop/item_to_spawn()
|
||||
return pick(prob(100);/obj/structure/outcrop,
|
||||
prob(100);/obj/structure/outcrop/iron,
|
||||
prob(100);/obj/structure/outcrop/coal,
|
||||
prob(65);/obj/structure/outcrop/silver,
|
||||
prob(50);/obj/structure/outcrop/gold,
|
||||
prob(30);/obj/structure/outcrop/uranium,
|
||||
prob(30);/obj/structure/outcrop/phoron,
|
||||
prob(7);/obj/structure/outcrop/diamond,
|
||||
prob(15);/obj/structure/outcrop/platinum,
|
||||
prob(15);/obj/structure/outcrop/lead)
|
||||
@@ -19,6 +19,10 @@ var/list/mining_overlay_cache = list()
|
||||
name = "rock"
|
||||
icon = 'icons/turf/walls.dmi'
|
||||
icon_state = "rock"
|
||||
var/rock_side_icon_state = "rock_side"
|
||||
var/sand_icon_state = "asteroid"
|
||||
var/rock_icon_state = "rock"
|
||||
var/random_icon = 0
|
||||
oxygen = 0
|
||||
nitrogen = 0
|
||||
opacity = 1
|
||||
@@ -62,6 +66,14 @@ var/list/mining_overlay_cache = list()
|
||||
|
||||
has_resources = 1
|
||||
|
||||
// Alternative rock wall sprites.
|
||||
/turf/simulated/mineral/light
|
||||
icon_state = "rock-light"
|
||||
rock_side_icon_state = "rock_side-light"
|
||||
sand_icon_state = "sand-light"
|
||||
rock_icon_state = "rock-light"
|
||||
random_icon = 1
|
||||
|
||||
/turf/simulated/mineral/ignore_mapgen
|
||||
ignore_mapgen = 1
|
||||
|
||||
@@ -74,6 +86,23 @@ var/list/mining_overlay_cache = list()
|
||||
blocks_air = 0
|
||||
can_build_into_floor = TRUE
|
||||
|
||||
//Alternative sand floor sprite.
|
||||
turf/simulated/mineral/floor/light
|
||||
icon_state = "sand-light"
|
||||
sand_icon_state = "sand-light"
|
||||
|
||||
turf/simulated/mineral/floor/light_border
|
||||
icon_state = "sand-light-border"
|
||||
sand_icon_state = "sand-light-border"
|
||||
|
||||
turf/simulated/mineral/floor/light_nub
|
||||
icon_state = "sand-light-nub"
|
||||
sand_icon_state = "sand-light-nub"
|
||||
|
||||
turf/simulated/mineral/floor/light_corner
|
||||
icon_state = "sand-light-corner"
|
||||
sand_icon_state = "sand-light-corner"
|
||||
|
||||
/turf/simulated/mineral/floor/ignore_mapgen
|
||||
ignore_mapgen = 1
|
||||
|
||||
@@ -138,6 +167,9 @@ var/list/mining_overlay_cache = list()
|
||||
update_icon(1)
|
||||
if(density && mineral)
|
||||
. = INITIALIZE_HINT_LATELOAD
|
||||
if(random_icon)
|
||||
dir = pick(alldirs)
|
||||
. = INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/turf/simulated/mineral/LateInitialize()
|
||||
if(density && mineral)
|
||||
@@ -155,13 +187,13 @@ var/list/mining_overlay_cache = list()
|
||||
name = "rock"
|
||||
|
||||
icon = 'icons/turf/walls.dmi'
|
||||
icon_state = "rock"
|
||||
icon_state = rock_icon_state
|
||||
|
||||
//Apply overlays if we should have borders
|
||||
for(var/direction in cardinal)
|
||||
var/turf/T = get_step(src,direction)
|
||||
if(istype(T) && !T.density)
|
||||
add_overlay(get_cached_border("rock_side",direction,icon,"rock_side"))
|
||||
add_overlay(get_cached_border(rock_side_icon_state,direction,icon,rock_side_icon_state))
|
||||
|
||||
if(archaeo_overlay)
|
||||
add_overlay(archaeo_overlay)
|
||||
@@ -173,7 +205,7 @@ var/list/mining_overlay_cache = list()
|
||||
else
|
||||
name = "sand"
|
||||
icon = 'icons/turf/flooring/asteroid.dmi'
|
||||
icon_state = "asteroid"
|
||||
icon_state = sand_icon_state
|
||||
|
||||
if(sand_dug)
|
||||
add_overlay("dug_overlay")
|
||||
@@ -187,7 +219,7 @@ var/list/mining_overlay_cache = list()
|
||||
else
|
||||
var/turf/T = get_step(src, direction)
|
||||
if(istype(T) && T.density)
|
||||
add_overlay(get_cached_border("rock_side",direction,'icons/turf/walls.dmi',"rock_side"))
|
||||
add_overlay(get_cached_border(rock_side_icon_state,direction,'icons/turf/walls.dmi',rock_side_icon_state))
|
||||
|
||||
if(overlay_detail)
|
||||
add_overlay('icons/turf/flooring/decals.dmi',overlay_detail)
|
||||
|
||||
@@ -20,12 +20,14 @@
|
||||
new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 150),
|
||||
new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 200),
|
||||
new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 900),
|
||||
new /datum/data/mining_equipment("Geiger Counter", /obj/item/device/geiger, 750),
|
||||
new /datum/data/mining_equipment("Plush Toy", /obj/random/plushie, 300),
|
||||
new /datum/data/mining_equipment("GPS Device", /obj/item/device/gps/mining, 100),
|
||||
// TODO new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 800),
|
||||
new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 500),
|
||||
new /datum/data/mining_equipment("Shelter Capsule", /obj/item/device/survivalcapsule, 500),
|
||||
// TODO new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500),
|
||||
new /datum/data/mining_equipment("Umbrella", /obj/item/weapon/melee/umbrella/random, 200),
|
||||
new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500),
|
||||
new /datum/data/mining_equipment("Survival Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/miner, 500),
|
||||
new /datum/data/mining_equipment("Mini-Translocator", /obj/item/device/perfect_tele/one_beacon, 1200),
|
||||
@@ -42,6 +44,12 @@
|
||||
new /datum/data/mining_equipment("Industrial Hardsuit - Ore Scanner", /obj/item/rig_module/device/orescanner, 1000),
|
||||
new /datum/data/mining_equipment("Industrial Hardsuit - Material Scanner", /obj/item/rig_module/vision/material, 500),
|
||||
new /datum/data/mining_equipment("Industrial Hardsuit - Maneuvering Jets", /obj/item/rig_module/maneuvering_jets, 1250),
|
||||
new /datum/data/mining_equipment("Hardsuit - Intelligence Storage", /obj/item/rig_module/ai_container, 2500),
|
||||
new /datum/data/mining_equipment("Hardsuit - Smoke Bomb Deployer", /obj/item/rig_module/grenade_launcher/smoke, 2000),
|
||||
new /datum/data/mining_equipment("Industrial Equipment - Sheet-Snatcher", /obj/item/weapon/gun/magnetic/matfed, 3000),
|
||||
new /datum/data/mining_equipment("Industrial Equipment - Phoron Bore",/obj/item/weapon/storage/bag/sheetsnatcher, 500),
|
||||
new /datum/data/mining_equipment("Digital Tablet - Standard", /obj/item/modular_computer/tablet/preset/custom_loadout/standard, 500),
|
||||
new /datum/data/mining_equipment("Digital Tablet - Advanced", /obj/item/modular_computer/tablet/preset/custom_loadout/advanced, 1000),
|
||||
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000),
|
||||
new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500),
|
||||
new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500),
|
||||
@@ -55,6 +63,20 @@
|
||||
new /datum/data/mining_equipment("KA Efficiency Increase", /obj/item/borg/upgrade/modkit/efficiency, 1200),
|
||||
new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000),
|
||||
new /datum/data/mining_equipment("KA Holster", /obj/item/clothing/accessory/holster/waist/kinetic_accelerator, 350),
|
||||
new /datum/data/mining_equipment("Fine Excavation Kit - Chisels",/obj/item/weapon/storage/excavation, 500),
|
||||
new /datum/data/mining_equipment("Fine Excavation Kit - Measuring Tape",/obj/item/device/measuring_tape, 125),
|
||||
new /datum/data/mining_equipment("Fine Excavation Kit - Hand Pick",/obj/item/weapon/pickaxe/hand, 375),
|
||||
new /datum/data/mining_equipment("Explosive Excavation Kit - Plastic Charge",/obj/item/weapon/plastique/seismic, 750),
|
||||
new /datum/data/mining_equipment("Injector (L) - Glucose",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose, 500),
|
||||
new /datum/data/mining_equipment("Injector (L) - Panacea",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity, 500),
|
||||
new /datum/data/mining_equipment("Injector (L) - Trauma",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute, 500),
|
||||
new /datum/data/mining_equipment("Nanopaste Tube", /obj/item/stack/nanopaste, 1000),
|
||||
new /datum/data/mining_equipment("Misc: Graviton Visor", /obj/item/clothing/glasses/graviton, 1500),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Phase Pistol",/obj/item/weapon/gun/energy/phasegun/pistol, 400),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Smoke Bomb",/obj/item/weapon/grenade/smokebomb, 100),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Razor Drone Deployer",/obj/item/weapon/grenade/spawnergrenade/manhacks/station, 1000),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Sentry Drone Deployer",/obj/item/weapon/grenade/spawnergrenade/ward, 1500),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Steel Machete", /obj/item/weapon/material/knife/machete, 500),
|
||||
new /datum/data/mining_equipment("Fishing Net", /obj/item/weapon/material/fishing_net, 500),
|
||||
new /datum/data/mining_equipment("Titanium Fishing Rod", /obj/item/weapon/material/fishing_rod/modern, 1000),
|
||||
new /datum/data/mining_equipment("Durasteel Fishing Rod", /obj/item/weapon/material/fishing_rod/modern/strong, 7500)
|
||||
|
||||
Reference in New Issue
Block a user