29 lines
1.0 KiB
Plaintext
29 lines
1.0 KiB
Plaintext
/obj/vehicle/sealed/mecha/working
|
|
internal_damage_threshold = 60
|
|
|
|
/obj/vehicle/sealed/mecha/working/Move()
|
|
. = ..()
|
|
if(.)
|
|
collect_ore()
|
|
|
|
/**
|
|
* Handles collecting ore.
|
|
*
|
|
* Checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box.
|
|
*/
|
|
/obj/vehicle/sealed/mecha/working/proc/collect_ore()
|
|
if((locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment))
|
|
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in contents
|
|
if(ore_box)
|
|
for(var/obj/item/stack/ore/ore in range(1, src))
|
|
if(ore.Adjacent(src) && ((get_dir(src, ore) & dir) || ore.loc == loc)) //we can reach it and it's in front of us? grab it!
|
|
ore.forceMove(ore_box)
|
|
|
|
/obj/vehicle/sealed/mecha/working/Bump(atom/obstacle)
|
|
if(istype(selected, /obj/item/mecha_parts/mecha_equipment/drill) && istype(obstacle, /turf/closed/mineral))
|
|
var/obj/item/mecha_parts/mecha_equipment/drill/thedrill = selected
|
|
for(var/mob/M in occupants)
|
|
thedrill.action(M, obstacle)
|
|
break
|
|
..()
|