/******************************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 = 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/weapon/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/weapon/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/weapon/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/weapon/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/weapon/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/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 = 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/weapon/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/weapon/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/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 = 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/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. 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/weapon/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/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("[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("[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("[user] 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("[user] plants [newlightpole] firmly in the ground.") src.use(1)