From ef36b9df75adc8364958c80449ef9a6e9e21ab3c Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Tue, 31 Dec 2019 21:44:03 -0600 Subject: [PATCH] i love democracy --- code/game/objects/items/powerfist.dm | 53 ++++++++++++++++++---------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/code/game/objects/items/powerfist.dm b/code/game/objects/items/powerfist.dm index 27ed0f82e3..648f465a22 100644 --- a/code/game/objects/items/powerfist.dm +++ b/code/game/objects/items/powerfist.dm @@ -50,7 +50,6 @@ if(tank) updateTank(tank, 1, user) - /obj/item/melee/powerfist/proc/updateTank(obj/item/tank/internals/thetank, removing = 0, mob/living/carbon/human/user) if(removing) if(!tank) @@ -71,26 +70,42 @@ /obj/item/melee/powerfist/attack(mob/living/target, mob/living/user) - if(!tank) - to_chat(user, "\The [src] can't operate without a source of gas!") - return - if(tank && !tank.air_contents.remove(gasperfist * fisto_setting)) - to_chat(user, "\The [src]'s piston-ram lets out a weak hiss, it needs more gas!") - playsound(loc, 'sound/effects/refill.ogg', 50, 1) - return - target.apply_damage(force * fisto_setting, BRUTE) - target.visible_message("[user]'s powerfist lets out a loud hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ - "You cry out in pain as [user]'s punch flings you backwards!") - new /obj/effect/temp_visual/kinetic_blast(target.loc) - playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1) - playsound(loc, 'sound/weapons/genhit2.ogg', 50, 1) + if(!tank) + to_chat(user, "\The [src] can't operate without a source of gas!") + return + var/datum/gas_mixture/gasused = tank.air_contents.remove(gasperfist * fisto_setting) + var/turf/T = get_turf(src) + if(!T) + return + T.assume_air(gasused) + T.air_update_turf() + if(!gasused) + to_chat(user, "\The [src]'s tank is empty!") + target.apply_damage((force / 5), BRUTE) + playsound(loc, 'sound/weapons/punch1.ogg', 50, 1) + target.visible_message("[user]'s powerfist lets out a dull thunk as [user.p_they()] punch[user.p_es()] [target.name]!", \ + "[user]'s punches you!") + return + if(gasused.total_moles() < gasperfist * fisto_setting) + to_chat(user, "\The [src]'s piston-ram lets out a weak hiss, it needs more gas!") + playsound(loc, 'sound/weapons/punch4.ogg', 50, 1) + target.apply_damage((force / 2), BRUTE) + target.visible_message("[user]'s powerfist lets out a weak hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ + "[user]'s punch strikes with force!") + return + target.apply_damage(force * fisto_setting, BRUTE) + target.visible_message("[user]'s powerfist lets out a loud hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ + "You cry out in pain as [user]'s punch flings you backwards!") + new /obj/effect/temp_visual/kinetic_blast(target.loc) + playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1) + playsound(loc, 'sound/weapons/genhit2.ogg', 50, 1) - var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) + var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) - target.throw_at(throw_target, 5 * fisto_setting, 0.2) + target.throw_at(throw_target, 5 * fisto_setting, 0.5 + (fisto_setting / 2)) - log_combat(user, target, "power fisted", src) + log_combat(user, target, "power fisted", src) - user.changeNext_move(CLICK_CD_MELEE * click_delay) + user.changeNext_move(CLICK_CD_MELEE * click_delay) - return + return