From 07265eff6de9e6ce25474a91c265ea3abecf2904 Mon Sep 17 00:00:00 2001 From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Date: Tue, 2 Aug 2022 08:46:54 -0400 Subject: [PATCH] Reworks mech mounted ion weapon (#18644) * Reworks mech mounted ion weapon * Update code/game/mecha/equipment/weapons/weapons.dm Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com> Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com> --- code/game/mecha/equipment/weapons/weapons.dm | 18 +++++++++++++----- code/game/mecha/mecha.dm | 3 +++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 84fdb89e064..6ab36e84598 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -96,13 +96,21 @@ fire_sound = 'sound/weapons/lasercannonfire.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion - equip_cooldown = 40 - name = "mkIV Ion Heavy Cannon" + equip_cooldown = 4 SECONDS + name = "mkIV Ion Heavy Scatter Cannon" + desc = "An ion shotgun, that when fired gives the mecha a second of EMP shielding with the excess energy from the discharge." icon_state = "mecha_ion" origin_tech = "materials=4;combat=5;magnets=4" - energy_drain = 120 - projectile = /obj/item/projectile/ion - fire_sound = 'sound/weapons/laser.ogg' + energy_drain = 300 // This is per shot + 1x cost, so 1500 per shotgun shot + projectile = /obj/item/projectile/ion/weak + projectiles_per_shot = 4 + variance = 35 + fire_sound = 'sound/weapons/ionrifle.ogg' + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion/action() + chassis.emp_proof = TRUE + addtimer(VARSET_CALLBACK(chassis, emp_proof, FALSE), 1 SECONDS) + return ..() /obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla equip_cooldown = 35 diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index edc2b6f854f..0df1151e2b0 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -39,6 +39,7 @@ var/lights_power = 6 var/frozen = FALSE var/repairing = FALSE + var/emp_proof = FALSE //If it is immune to emps //inner atmos var/use_internal_tank = 0 @@ -645,6 +646,8 @@ //TODO /obj/mecha/emp_act(severity) + if(emp_proof) + return if(get_charge()) use_power((cell.charge/3)/(severity*2)) take_damage(30 / severity, BURN, ENERGY, 1)