mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Merge pull request #3143 from CHOMPStationBot/upstream-merge-11708
[MIRROR] wacky haphazardly barely thought through standing drill buffs
This commit is contained in:
@@ -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
|
||||||
|
)
|
||||||
|
|||||||
@@ -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,8 +285,12 @@
|
|||||||
else
|
else
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
|
||||||
if(supports && supports.len >= braces_needed)
|
if(supports)
|
||||||
supported = 1
|
if(supports.len >= braces_needed)
|
||||||
|
supported = 1
|
||||||
|
else for(var/obj/machinery/mining/brace/check in supports)
|
||||||
|
if(check.brace_tier > 3)
|
||||||
|
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())
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user