Files
CHOMPStation2/code/modules/mining/mine_items.dm
CHOMPStation2 7416cbea22 [MIRROR] next set of spans (#9247)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
Co-authored-by: Kashargul <KashL@t-online.de>
2024-10-18 01:33:07 +02:00

341 lines
9.5 KiB
Plaintext

/******************************Lantern*******************************/
/obj/item/flashlight/lantern
name = "lantern"
icon_state = "lantern"
desc = "A mining lantern."
light_range = 6 // luminosity when on
light_color = "FF9933" // A slight yellow/orange color.
/*****************************Pickaxe********************************/
/obj/item/pickaxe
name = "pickaxe"
desc = "A miner's best friend."
icon = 'icons/obj/items.dmi'
slot_flags = SLOT_BELT
force = 15.0
throwforce = 4.0
icon_state = "pickaxe"
item_state = "pickaxe"
w_class = ITEMSIZE_LARGE
matter = list(MAT_STEEL = 2500)
var/digspeed = 36 //moving the delay to an item var so R&D can make improved picks. --NEO
var/sand_dig = FALSE // does this thing dig sand?
origin_tech = list(TECH_MATERIAL = 1)
attack_verb = list("hit", "pierced", "sliced", "attacked")
var/drill_sound = "pickaxe"
var/drill_verb = "picking"
sharp = TRUE
var/excavation_amount = 200
var/destroy_artefacts = FALSE // some mining tools will destroy artefacts completely while avoiding side-effects.
/obj/item/pickaxe/silver
name = "silver pickaxe"
icon_state = "spickaxe"
item_state = "spickaxe"
digspeed = 27
origin_tech = list(TECH_MATERIAL = 3)
desc = "This makes no metallurgic sense."
/obj/item/pickaxe/gold
name = "golden pickaxe"
icon_state = "gpickaxe"
item_state = "gpickaxe"
digspeed = 18
origin_tech = list(TECH_MATERIAL = 4)
desc = "This makes no metallurgic sense."
drill_verb = "picking"
/obj/item/pickaxe/diamond
name = "diamond pickaxe"
icon_state = "dpickaxe"
item_state = "dpickaxe"
digspeed = 9
origin_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 4)
desc = "A pickaxe with a diamond pick head."
drill_verb = "picking"
/*****************************Drill********************************/
/obj/item/pickaxe/drill
name = "mining drill" // Can dig sand as well!
icon_state = "drill"
item_state = "jackhammer"
digspeed = 30 //Only slighty better than a pickaxe
sand_dig = TRUE
origin_tech = list(TECH_MATERIAL = 1, TECH_POWER = 2, TECH_ENGINEERING = 1)
matter = list(MAT_STEEL = 3750)
desc = "The most basic of mining drills, for short excavations and small mineral extractions."
drill_verb = "drilling"
/obj/item/pickaxe/advdrill
name = "advanced mining drill" // Can dig sand as well!
icon_state = "advdrill"
item_state = "jackhammer"
digspeed = 27
sand_dig = TRUE
origin_tech = list(TECH_MATERIAL = 2, TECH_POWER = 3, TECH_ENGINEERING = 2)
matter = list(MAT_STEEL = 4000, MAT_PLASTEEL = 2500)
desc = "Yours is the drill that will pierce through the rock walls."
drill_verb = "drilling"
/obj/item/pickaxe/diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME!
name = "diamond mining drill"
icon_state = "diamonddrill"
item_state = "jackhammer"
digspeed = 4 //Digs through walls, girders, and can dig up sand
sand_dig = TRUE
origin_tech = list(TECH_MATERIAL = 6, TECH_POWER = 4, TECH_ENGINEERING = 5)
matter = list(MAT_STEEL = 4500, MAT_PLASTEEL = 3000, MAT_DIAMONDS = 1000)
desc = "Yours is the drill that will pierce the heavens!"
drill_verb = "drilling"
/obj/item/pickaxe/jackhammer
name = "sonic jackhammer"
icon_state = "jackhammer"
item_state = "jackhammer"
digspeed = 18 //faster than drill, but cannot dig
origin_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_ENGINEERING = 2)
desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards."
drill_verb = "hammering"
destroy_artefacts = TRUE
/obj/item/pickaxe/borgdrill
name = "jackhammer"
icon_state = "borg_pick"
item_state = "jackhammer"
digspeed = 13
sand_dig = TRUE
desc = "Cracks rocks with a hardened pneumatic bit."
drill_verb = "hammering"
destroy_artefacts = TRUE
/obj/item/pickaxe/plasmacutter
name = "plasma cutter"
desc = "A rock cutter that uses bursts of hot plasma. You could use it to cut limbs off of xenos! Or, you know, mine stuff."
icon_state = "plasmacutter"
item_state = "plasmacutter"
w_class = ITEMSIZE_NORMAL //it is smaller than the pickaxe
damtype = "fire"
digspeed = 18 //Can slice though normal walls, all girders, or be used in reinforced wall deconstruction/light thermite on fire
origin_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 3)
matter = list(MAT_STEEL = 3000, MAT_PLASTEEL = 1500, MAT_DIAMONDS = 500, MAT_PHORON = 500)
drill_verb = "cutting"
drill_sound = 'sound/items/Welder.ogg'
sharp = TRUE
edge = TRUE
/obj/item/pickaxe/plasmacutter/borg
name = "mounted plasma cutter"
icon_state = "pcutter_borg"
/*****************************Shovel********************************/
/obj/item/shovel
name = "shovel"
desc = "A large tool for digging and moving dirt. Alt click to switch modes."
icon = 'icons/obj/items.dmi'
icon_state = "shovel"
item_state = "shovel"
slot_flags = SLOT_BELT
force = 8.0
throwforce = 4.0
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
matter = list(MAT_STEEL = 50)
attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked")
sharp = FALSE
edge = TRUE
var/digspeed = 40
var/grave_mode = FALSE
/obj/item/shovel/AltClick(mob/user)
grave_mode = !grave_mode
to_chat(user, span_notice("You'll now dig [grave_mode ? "out graves" : "for loot"]."))
. = ..()
/obj/item/shovel/wood
icon_state = "whiteshovel"
item_state = "whiteshovel"
var/datum/material/material
/obj/item/shovel/wood/Initialize(var/ml, var/_mat)
. = ..()
material = get_material_by_name(_mat)
if(!istype(material))
material = null
else
name = "[material.display_name] shovel"
matter = list("[material.name]" = 50)
update_icon()
/obj/item/shovel/wood/update_icon()
. = ..()
color = material ? material.icon_colour : initial(color)
alpha = min(max(255 * material.opacity, 80), 255)
/obj/item/shovel/spade
name = "spade"
desc = "A small tool for digging and moving dirt."
icon_state = "spade"
item_state = "spade"
force = 5.0
throwforce = 7.0
w_class = ITEMSIZE_SMALL
/obj/item/shovel/wood
name = "wooden shovel"
desc = "An improvised tool for digging and moving dirt."
icon = 'icons/obj/items.dmi'
icon_state = "woodshovel"
slot_flags = SLOT_BELT
item_state = "woodshovel"
w_class = ITEMSIZE_NORMAL
matter = list(MAT_WOOD = 50)
sharp = 0
edge = 1
// Flags.
/obj/item/stack/flag
name = "flags"
desc = "Some colourful flags."
singular_name = "flag"
amount = 10
max_amount = 10
icon = 'icons/obj/mining.dmi'
var/upright = 0
var/base_state
/obj/item/stack/flag/Initialize()
. = ..()
base_state = icon_state
update_icon()
/obj/item/stack/flag/blue
name = "blue flags"
singular_name = "blue flag"
icon_state = "blueflag"
/obj/item/stack/flag/red
name = "red flags"
singular_name = "red flag"
icon_state = "redflag"
/obj/item/stack/flag/yellow
name = "yellow flags"
singular_name = "yellow flag"
icon_state = "yellowflag"
/obj/item/stack/flag/green
name = "green flags"
singular_name = "green flag"
icon_state = "greenflag"
/obj/item/stack/flag/attackby(obj/item/W as obj, mob/user as mob)
if(upright && istype(W,src.type))
src.attack_hand(user)
else
..()
/obj/item/stack/flag/attack_hand(user as mob)
if(upright)
upright = 0
icon_state = base_state
anchored = FALSE
src.visible_message(span_infoplain(span_bold("[user]") + " knocks down [src]."))
else
..()
/obj/item/stack/flag/attack_self(mob/user as mob)
var/obj/item/stack/flag/F = locate() in get_turf(src)
var/turf/T = get_turf(src)
if(!T || !istype(T,/turf/simulated/mineral))
to_chat(user, "The flag won't stand up in this terrain.")
return
if(F && F.upright)
to_chat(user, "There is already a flag here.")
return
var/obj/item/stack/flag/newflag = new src.type(T)
newflag.amount = 1
newflag.upright = 1
newflag.anchored = TRUE
newflag.name = newflag.singular_name
newflag.icon_state = "[newflag.base_state]_open"
newflag.visible_message(span_infoplain(span_bold("[user]") + " plants [newflag] firmly in the ground."))
src.use(1)
// Lightpoles for lumber colony
/obj/item/stack/lightpole
name = "Trailblazers"
desc = "Some colourful trail lights."
singular_name = "flag"
amount = 10
max_amount = 10
icon = 'icons/obj/mining.dmi'
var/upright = 0
var/base_state
var/on = 0
var/brightness_on = 4 //luminosity when on
/obj/item/stack/lightpole/New()
..()
base_state = icon_state
/obj/item/stack/lightpole/blue
name = "blue trail blazers"
singular_name = "blue trail blazer"
icon_state = "bluetrail_light"
light_color = "#599DFF"
/obj/item/stack/lightpole/red
name = "red flags"
singular_name = "red trail blazer"
icon_state = "redtrail_light"
light_color = "#FC0F29"
/obj/item/stack/lightpole/attackby(obj/item/W as obj, mob/user as mob)
if(upright && istype(W,src.type))
src.attack_hand(user)
else
..()
/obj/item/stack/lightpole/attack_hand(user as mob)
if(upright)
upright = 0
icon_state = base_state
anchored = 0
src.visible_message("<b>[user]</b> knocks down [src].")
else
..()
/obj/item/stack/lightpole/attack_self(mob/user as mob)
var/obj/item/stack/lightpole/F = locate() in get_turf(src)
var/turf/T = get_turf(src)
if(!T || !istype(T,/turf/snow/snow2))
user << "The flag won't stand up in this terrain."
return
if(F && F.upright)
user << "There is already a flag here."
return
var/obj/item/stack/lightpole/newlightpole = new src.type(T)
newlightpole.amount = 1
newlightpole.upright = 1
brightness_on = 2
set_light(brightness_on)
anchored = 1
newlightpole.name = newlightpole.singular_name
newlightpole.icon_state = "[newlightpole.base_state]_on"
newlightpole.visible_message("<b>[user]</b> plants [newlightpole] firmly in the ground.")
src.use(1)