mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
338 lines
9.3 KiB
Plaintext
338 lines
9.3 KiB
Plaintext
/******************************Lantern*******************************/
|
|
|
|
/obj/item/device/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/weapon/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 = 40 //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/weapon/pickaxe/silver
|
|
name = "silver pickaxe"
|
|
icon_state = "spickaxe"
|
|
item_state = "spickaxe"
|
|
digspeed = 30
|
|
origin_tech = list(TECH_MATERIAL = 3)
|
|
desc = "This makes no metallurgic sense."
|
|
|
|
/obj/item/weapon/pickaxe/gold
|
|
name = "golden pickaxe"
|
|
icon_state = "gpickaxe"
|
|
item_state = "gpickaxe"
|
|
digspeed = 20
|
|
origin_tech = list(TECH_MATERIAL = 4)
|
|
desc = "This makes no metallurgic sense."
|
|
drill_verb = "picking"
|
|
|
|
/obj/item/weapon/pickaxe/diamond
|
|
name = "diamond pickaxe"
|
|
icon_state = "dpickaxe"
|
|
item_state = "dpickaxe"
|
|
digspeed = 10
|
|
origin_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 4)
|
|
desc = "A pickaxe with a diamond pick head."
|
|
drill_verb = "picking"
|
|
|
|
/*****************************Drill********************************/
|
|
|
|
/obj/item/weapon/pickaxe/drill
|
|
name = "mining drill" // Can dig sand as well!
|
|
icon_state = "drill"
|
|
item_state = "jackhammer"
|
|
digspeed = 35 //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/weapon/pickaxe/advdrill
|
|
name = "advanced mining drill" // Can dig sand as well!
|
|
icon_state = "advdrill"
|
|
item_state = "jackhammer"
|
|
digspeed = 30
|
|
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/weapon/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 = 5 //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/weapon/pickaxe/jackhammer
|
|
name = "sonic jackhammer"
|
|
icon_state = "jackhammer"
|
|
item_state = "jackhammer"
|
|
digspeed = 20 //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"
|
|
|
|
/obj/item/weapon/pickaxe/borgdrill
|
|
name = "jackhammer"
|
|
icon_state = "borg_pick"
|
|
item_state = "jackhammer"
|
|
digspeed = 15
|
|
sand_dig = TRUE
|
|
desc = "Cracks rocks with a hardened pneumatic bit."
|
|
drill_verb = "hammering"
|
|
|
|
/obj/item/weapon/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 = 20 //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/weapon/pickaxe/plasmacutter/borg
|
|
name = "mounted plasma cutter"
|
|
icon_state = "pcutter_borg"
|
|
|
|
/*****************************Shovel********************************/
|
|
|
|
/obj/item/weapon/shovel
|
|
name = "shovel"
|
|
desc = "A large tool for digging and moving dirt."
|
|
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
|
|
|
|
/obj/item/weapon/shovel/wood
|
|
icon_state = "whiteshovel"
|
|
item_state = "whiteshovel"
|
|
var/datum/material/material
|
|
|
|
/obj/item/weapon/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/weapon/shovel/wood/update_icon()
|
|
. = ..()
|
|
color = material ? material.icon_colour : initial(color)
|
|
alpha = min(max(255 * material.opacity, 80), 255)
|
|
|
|
/obj/item/weapon/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/weapon/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("<b>[user]</b> 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("<b>[user]</b> 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)
|
|
|
|
|
|
|
|
|
|
|