From acfd61e9f424d5f1b541744dd658a00a774e3462 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Sun, 13 Dec 2020 13:42:36 -0600 Subject: [PATCH] hardsuit borg charger polaris 7785 earlyport --- code/game/machinery/rechargestation.dm | 53 +++++++++++++++++--------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index af7cdd5dfb4..259c907bde9 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -87,25 +87,44 @@ else if(ishuman(occupant)) var/mob/living/carbon/human/H = occupant - // In case they somehow end up with positive values for otherwise unobtainable damage... - if(H.getToxLoss() > 0) - H.adjustToxLoss(-(rand(1,3))) - if(H.getOxyLoss() > 0) - H.adjustOxyLoss(-(rand(1,3))) - if(H.getCloneLoss() > 0) - H.adjustCloneLoss(-(rand(1,3))) - if(H.getBrainLoss() > 0) - H.adjustBrainLoss(-(rand(1,3))) + if(H.isSynthetic()) + // In case they somehow end up with positive values for otherwise unobtainable damage... + if(H.getToxLoss() > 0) + H.adjustToxLoss(-(rand(1,3))) + if(H.getOxyLoss() > 0) + H.adjustOxyLoss(-(rand(1,3))) + if(H.getCloneLoss() > 0) + H.adjustCloneLoss(-(rand(1,3))) + if(H.getBrainLoss() > 0) + H.adjustBrainLoss(-(rand(1,3))) - // Also recharge their internal battery. - if(H.isSynthetic() && H.nutrition < 500) //VOREStation Edit - H.nutrition = min(H.nutrition+10, 500) //VOREStation Edit - cell.use(7000/450*10) + // Also recharge their internal battery. + if(H.isSynthetic() && H.nutrition < 500) //VOREStation Edit + H.nutrition = min(H.nutrition+10, 500) //VOREStation Edit + cell.use(7000/450*10) - // And clear up radiation - if(H.radiation > 0) - H.radiation = max(H.radiation - rand(5, 15), 0) + // And clear up radiation + if(H.radiation > 0) + H.radiation = max(H.radiation - rand(5, 15), 0) + if(H.wearing_rig) // stepping into a borg charger to charge your rig and fix your shit + var/obj/item/weapon/rig/wornrig = H.get_rig() + if(wornrig) // just to make sure + for(var/obj/item/rig_module/storedmod in wornrig.installed_modules) + if(weld_rate && storedmod.damage && cell.checked_use(weld_power_use * weld_rate * CELLRATE)) + to_chat(H, "[storedmod] is repaired!") + storedmod.damage = 0 + if(wornrig.chest) + var/obj/item/clothing/suit/space/rig/rigchest = wornrig.chest + if(weld_rate && rigchest.damage && cell.checked_use(weld_power_use * weld_rate * CELLRATE)) + rigchest.breaches = list() + rigchest.calc_breach_damage() + to_chat(H, "[rigchest] is repaired!") + if(wornrig.cell) + var/obj/item/weapon/cell/rigcell = wornrig.cell + var/diff = min(rigcell.maxcharge - rigcell.charge, charging_power * CELLRATE) // Capped by charging_power / tick + var/charge_used = cell.use(diff) + rigcell.give(charge_used) /obj/machinery/recharge_station/examine(mob/user) . = ..() @@ -237,7 +256,7 @@ else if(istype(L, /mob/living/carbon/human)) var/mob/living/carbon/human/H = L - if(H.isSynthetic()) + if(H.isSynthetic() || H.wearing_rig) add_fingerprint(H) H.reset_view(src) H.forceMove(src)