Merge pull request #3143 from CHOMPStationBot/upstream-merge-11708

[MIRROR] wacky haphazardly barely thought through standing drill buffs
This commit is contained in:
Nadyr
2021-10-27 19:26:22 -04:00
committed by GitHub
2 changed files with 44 additions and 11 deletions

View File

@@ -17,4 +17,6 @@
build_path = /obj/machinery/mining/brace build_path = /obj/machinery/mining/brace
board_type = new /datum/frame/frame_types/machine board_type = new /datum/frame/frame_types/machine
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1) origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
req_components = list() req_components = list(
/obj/item/weapon/stock_parts/manipulator = 1
)

View File

@@ -11,11 +11,13 @@
icon_state = "mining_drill" icon_state = "mining_drill"
circuit = /obj/item/weapon/circuitboard/miningdrill circuit = /obj/item/weapon/circuitboard/miningdrill
var/braces_needed = 2 var/braces_needed = 2
var/list/supports = list() var/list/obj/machinery/mining/brace/supports = list()
var/supported = 0 var/supported = 0
var/active = 0 var/active = 0
var/list/resource_field = list() var/list/resource_field = list()
var/obj/item/device/radio/intercom/faultreporter var/obj/item/device/radio/intercom/faultreporter
var/drill_range = 5
var/offset = 2
var/list/ore_types = list( var/list/ore_types = list(
"hematite" = /obj/item/weapon/ore/iron, "hematite" = /obj/item/weapon/ore/iron,
@@ -242,10 +244,14 @@
harvest_speed = 0 harvest_speed = 0
capacity = 0 capacity = 0
charge_use = 50 charge_use = 50
drill_range = 5
offset = 2
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(istype(P, /obj/item/weapon/stock_parts/micro_laser)) if(istype(P, /obj/item/weapon/stock_parts/micro_laser))
harvest_speed = P.rating harvest_speed = P.rating
if(P.rating >= 5)
harvest_speed *= 2
exotic_drilling = P.rating - 1 exotic_drilling = P.rating - 1
if(exotic_drilling >= 1) if(exotic_drilling >= 1)
ore_types |= ore_types_uncommon ore_types |= ore_types_uncommon
@@ -254,6 +260,14 @@
else else
ore_types -= ore_types_uncommon ore_types -= ore_types_uncommon
ore_types -= ore_types_rare ore_types -= ore_types_rare
if(P.rating > 3) // are we t4+?
// default drill range 5, offset 2
if(P.rating >= 5) // t5
drill_range = 9
offset = 4
else if(P.rating >= 4) // t4
drill_range = 7
offset = 3
if(istype(P, /obj/item/weapon/stock_parts/matter_bin)) if(istype(P, /obj/item/weapon/stock_parts/matter_bin))
capacity = 200 * P.rating capacity = 200 * P.rating
if(istype(P, /obj/item/weapon/stock_parts/capacitor)) if(istype(P, /obj/item/weapon/stock_parts/capacitor))
@@ -271,7 +285,11 @@
else else
anchored = TRUE anchored = TRUE
if(supports && supports.len >= braces_needed) if(supports)
if(supports.len >= braces_needed)
supported = 1
else for(var/obj/machinery/mining/brace/check in supports)
if(check.brace_tier > 3)
supported = 1 supported = 1
update_icon() update_icon()
@@ -293,11 +311,11 @@
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
if(!istype(T)) return if(!istype(T)) return
var/tx = T.x - 2 var/tx = T.x - offset
var/ty = T.y - 2 var/ty = T.y - offset
var/turf/simulated/mine_turf var/turf/simulated/mine_turf
for(var/iy = 0,iy < 5, iy++) for(var/iy = 0,iy < drill_range, iy++)
for(var/ix = 0, ix < 5, ix++) for(var/ix = 0, ix < drill_range, ix++)
mine_turf = locate(tx + ix, ty + iy, T.z) mine_turf = locate(tx + ix, ty + iy, T.z)
if(!istype(mine_turf, /turf/space/)) if(!istype(mine_turf, /turf/space/))
if(mine_turf && mine_turf.has_resources) if(mine_turf && mine_turf.has_resources)
@@ -334,12 +352,23 @@
desc = "A machinery brace for an industrial drill. It looks easily two feet thick." desc = "A machinery brace for an industrial drill. It looks easily two feet thick."
icon_state = "mining_brace" icon_state = "mining_brace"
circuit = /obj/item/weapon/circuitboard/miningdrillbrace circuit = /obj/item/weapon/circuitboard/miningdrillbrace
var/brace_tier = 1
var/obj/machinery/mining/drill/connected var/obj/machinery/mining/drill/connected
/obj/machinery/mining/brace/New() /obj/machinery/mining/brace/examine(mob/user)
..() . = ..()
if(brace_tier > 3)
. += SPAN_NOTICE("The internals of the brace look resilient enough to support a drill by itself.")
component_parts = list() /obj/machinery/mining/brace/Initialize()
. = ..()
default_apply_parts()
/obj/machinery/mining/brace/RefreshParts()
..()
brace_tier = 0
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
brace_tier += M.rating
/obj/machinery/mining/brace/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/machinery/mining/brace/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(connected && connected.active) if(connected && connected.active)
@@ -350,6 +379,8 @@
return return
if(default_deconstruction_crowbar(user, W)) if(default_deconstruction_crowbar(user, W))
return return
if(default_part_replacement(user,W))
return
if(W.is_wrench()) if(W.is_wrench())