From 879659a3d1a5e53d32cdce80247cee03dd5ffe34 Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Tue, 31 Mar 2015 21:24:48 +1100 Subject: [PATCH] cyborg drills use internal battery first + charging fix --- code/game/machinery/rechargestation.dm | 9 ++++++++- code/modules/mining/mine_items.dm | 16 ++++++++++++++++ code/modules/mining/mine_turfs.dm | 7 +++---- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 79eb6283a86..1d1e828514d 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -157,7 +157,14 @@ F.broken = 0 F.times_used = 0 F.icon_state = "flash" - // Engineering + // Mining + if(istype(O, /obj/item/weapon/pickaxe/drill/cyborg)) + var/obj/item/weapon/pickaxe/drill/cyborg/D = O + if(D.bcell.charge < D.bcell.maxcharge) + D.bcell.charge = min(D.bcell.charge + recharge_speed, D.bcell.maxcharge) + D.update_icon() + if(D.warned) + D.warned = 0 // Security if(istype(O,/obj/item/weapon/gun/energy/gun/advtaser/cyborg)) var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = O diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index ea456b180fb..aeb9193b511 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -130,6 +130,22 @@ /obj/item/weapon/pickaxe/drill/cyborg name = "cyborg mining drill" + desc = "An integrated electric mining drill." + var/warned = 0 + +/obj/item/weapon/pickaxe/drill/cyborg/update_icon() + ..() //piggybacking this since it's always called once a turf is dug and doesn't need it's own proc + if(bcell.charge < drillcost && !warned) + usr << "Drill internal battery depleted, power will be drawn from user's power supply." + playsound(src, 'sound/weapons/smg_empty_alarm.ogg',50,1) + warned = 1 + +/obj/item/weapon/pickaxe/drill/cyborg/proc/use_robot_power(var/mob/living/silicon/robot/R) + if(!bcell.use(drillcost)) + if(!R.cell.use(drillcost)) + R << "You don't have enough charge to drill." + return 0 + return 1 /obj/item/weapon/pickaxe/drill/diamonddrill name = "diamond-tipped mining drill" diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 4cb58dc6994..cdde315c9c5 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -417,11 +417,10 @@ if(istype(P, /obj/item/weapon/pickaxe/drill)) var/obj/item/weapon/pickaxe/drill/D = P if(isrobot(user)) - var/mob/living/silicon/robot/R = user - if(!R.cell.use(D.drillcost)) - R << "Your [D.name] doesn't have enough charge." + var/obj/item/weapon/pickaxe/drill/cyborg/RD = D + if(!RD.use_robot_power(user)) return - if(!D.bcell.use(D.drillcost)) + else if(!D.bcell.use(D.drillcost)) user << "Your [D.name] doesn't have enough charge." return