From e0f44ef7174a17c8058a2f619210bf88a322119d Mon Sep 17 00:00:00 2001
From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com>
Date: Thu, 10 Sep 2020 03:49:47 +0100
Subject: [PATCH] new emps
---
code/__DEFINES/combat.dm | 3 ---
code/game/objects/empulse.dm | 8 ++++---
code/game/objects/items/granters.dm | 2 +-
code/game/objects/items/grenades/emgrenade.dm | 2 +-
.../objects/items/implants/implant_misc.dm | 2 +-
code/modules/admin/verbs/randomverbs.dm | 21 ++++++-------------
.../blob/blobstrains/electromagnetic_web.dm | 2 +-
.../antagonists/changeling/powers/shriek.dm | 2 +-
.../clock_structures/traps/power_null.dm | 2 +-
code/modules/antagonists/cult/blood_magic.dm | 2 +-
code/modules/antagonists/cult/runes.dm | 2 +-
.../ninja/suit/n_suit_verbs/ninja_empulse.dm | 2 +-
code/modules/power/singularity/singularity.dm | 2 +-
.../projectiles/projectile/special/ion.dm | 2 +-
.../chemistry/recipes/pyrotechnics.dm | 5 +----
.../chemistry/recipes/slime_extracts.dm | 2 +-
code/modules/research/experimentor.dm | 2 +-
.../nanites/nanite_programs/weapon.dm | 2 +-
code/modules/research/server.dm | 4 ++--
.../research/xenobiology/xenobiology.dm | 2 +-
code/modules/spells/spell_types/emplosion.dm | 6 ++----
code/modules/surgery/organs/augments_chest.dm | 7 +++----
.../surgery/organs/augments_internal.dm | 10 ++++-----
code/modules/surgery/organs/ears.dm | 2 +-
code/modules/surgery/organs/eyes.dm | 2 +-
code/modules/surgery/organs/heart.dm | 4 ++--
code/modules/surgery/organs/liver.dm | 6 +-----
code/modules/surgery/organs/lungs.dm | 1 -
.../modules/projectiles/guns/pumpenergy.dm | 2 +-
.../chemistry/reagents/fermi_reagents.dm | 6 +++---
.../reagents/chemistry/recipes/fermi.dm | 3 +--
31 files changed, 48 insertions(+), 72 deletions(-)
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index 14d62f7978..eff5d9eca9 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -230,9 +230,6 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
#define EXPLODE_LIGHT 3
#define EXPLODE_GIB_THRESHOLD 50
-#define EMP_HEAVY 1
-#define EMP_LIGHT 2
-
#define GRENADE_CLUMSY_FUMBLE 1
#define GRENADE_NONCLUMSY_FUMBLE 2
#define GRENADE_NO_FUMBLE 3
diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm
index d6cad22efd..43f0f293e1 100644
--- a/code/game/objects/empulse.dm
+++ b/code/game/objects/empulse.dm
@@ -1,11 +1,11 @@
-/proc/empulse(turf/epicenter, power, log=0)
+/proc/c(turf/epicenter, power, log=0)
if(!epicenter)
return
if(!isturf(epicenter))
epicenter = get_turf(epicenter.loc)
- var/max_distance = round((power/7)^0.7)
+ var/max_distance = max(round((power/7)^0.7), 1)
if(log)
message_admins("EMP with power [power], max distance [max_distance] in area [epicenter.loc.name] ")
@@ -17,6 +17,8 @@
for(var/A in spiral_range(light_range, epicenter))
var/atom/T = A
var/distance = get_dist(epicenter, T)
- var/severity = min(100 * (1 - log(max_distance, distance)), 1) //if it goes below 1 stuff gets bad
+ var/severity = 100
+ if(distance != 0) //please dont log 0 thank you
+ severity = min(100 * (1 - log(max_distance, distance)), 1) //if it goes below 1 stuff gets bad
T.emp_act(severity)
return 1
diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm
index 979fa7e958..2ac938a49c 100644
--- a/code/game/objects/items/granters.dm
+++ b/code/game/objects/items/granters.dm
@@ -351,7 +351,7 @@
/obj/item/book/granter/spell/charge/recoil(mob/user)
..()
to_chat(user,"[src] suddenly feels very warm!")
- empulse(src, 1, 1)
+ empulse(src, 7)
/obj/item/book/granter/spell/summonitem
spell = /obj/effect/proc_holder/spell/targeted/summonitem
diff --git a/code/game/objects/items/grenades/emgrenade.dm b/code/game/objects/items/grenades/emgrenade.dm
index 815a3b343c..db341c66c1 100644
--- a/code/game/objects/items/grenades/emgrenade.dm
+++ b/code/game/objects/items/grenades/emgrenade.dm
@@ -7,5 +7,5 @@
/obj/item/grenade/empgrenade/prime(mob/living/lanced_by)
. = ..()
update_mob()
- empulse(src, 4, 10)
+ empulse(src, 400)
qdel(src)
diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm
index 08d6a586c8..b6e468d56a 100644
--- a/code/game/objects/items/implants/implant_misc.dm
+++ b/code/game/objects/items/implants/implant_misc.dm
@@ -65,7 +65,7 @@
/obj/item/implant/emp/activate()
. = ..()
uses--
- empulse(imp_in, 3, 5)
+ empulse(imp_in, 200)
if(!uses)
qdel(src)
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 5997558c60..e3c4d614a7 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -646,23 +646,14 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!check_rights(R_ADMIN))
return
- var/heavy = input("Range of heavy pulse.", text("Input")) as num|null
- if(heavy == null)
- return
- var/light = input("Range of light pulse.", text("Input")) as num|null
- if(light == null)
+ var/power = input("Power.", text("Input")) as num|null
+ if(!power)
return
+ log_admin("[key_name(usr)] created an EM Pulse - log below")
+ message_admins("[key_name_admin(usr)] created an EM Pulse at [AREACOORD(O)] with power [power]")
+ empulse(O, power, TRUE) //its details get shown too
- if (heavy || light)
-
- empulse(O, heavy, light)
- log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at [AREACOORD(O)]")
- message_admins("[key_name_admin(usr)] created an EM Pulse ([heavy],[light]) at [AREACOORD(O)]")
- SSblackbox.record_feedback("tally", "admin_verb", 1, "EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
- return
- else
- return
+ SSblackbox.record_feedback("tally", "admin_verb", 1, "EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_gib(mob/M in GLOB.mob_list)
set category = "Special Verbs"
diff --git a/code/modules/antagonists/blob/blob/blobstrains/electromagnetic_web.dm b/code/modules/antagonists/blob/blob/blobstrains/electromagnetic_web.dm
index 45c289019a..bad4c5e9c2 100644
--- a/code/modules/antagonists/blob/blob/blobstrains/electromagnetic_web.dm
+++ b/code/modules/antagonists/blob/blob/blobstrains/electromagnetic_web.dm
@@ -18,7 +18,7 @@
/datum/blobstrain/reagent/electromagnetic_web/death_reaction(obj/structure/blob/B, damage_flag)
if(damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser")
- empulse(B.loc, 1, 3) //less than screen range, so you can stand out of range to avoid it
+ empulse(B.loc, 75) //less than screen range, so you can stand out of range to avoid it
/datum/reagent/blob/electromagnetic_web
name = "Electromagnetic Web"
diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm
index cfea9fcf1e..9cd35c5cee 100644
--- a/code/modules/antagonists/changeling/powers/shriek.dm
+++ b/code/modules/antagonists/changeling/powers/shriek.dm
@@ -48,6 +48,6 @@
for(var/obj/machinery/light/L in range(5, usr))
L.on = 1
L.break_light_tube()
- empulse(get_turf(user), 2, 5, 1)
+ empulse(get_turf(user), 140, TRUE)
playsound(get_turf(user), 'sound/effects/lingempscreech.ogg', 75, TRUE, 5, soundenvwet = 0)
return TRUE
diff --git a/code/modules/antagonists/clockcult/clock_structures/traps/power_null.dm b/code/modules/antagonists/clockcult/clock_structures/traps/power_null.dm
index 6c8477ab5b..988afd6867 100644
--- a/code/modules/antagonists/clockcult/clock_structures/traps/power_null.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/traps/power_null.dm
@@ -11,7 +11,7 @@
/obj/structure/destructible/clockwork/trap/power_nullifier/activate()
if(!activated)
activated = TRUE
- empulse(get_turf(src),1,1,TRUE)
+ empulse(get_turf(src),7,TRUE)
/obj/structure/destructible/clockwork/trap/power_nullifier/emp_act(var/strength=1)
activate()
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index c43fd424d8..fbf4b37c72 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -165,7 +165,7 @@
/datum/action/innate/cult/blood_spell/emp/Activate()
owner.visible_message("[owner]'s hand flashes a bright blue!", \
"You speak the cursed words, emitting an EMP blast from your hand.")
- empulse(owner, 2, 5)
+ empulse(owner, 140)
owner.whisper(invocation, language = /datum/language/common)
charges--
if(charges<=0)
diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm
index 3ea160c5cc..b61b773f82 100644
--- a/code/modules/antagonists/cult/runes.dm
+++ b/code/modules/antagonists/cult/runes.dm
@@ -982,7 +982,7 @@ structure_check() searches for nearby cultist structures required for the invoca
visible_message("A colossal shockwave of energy bursts from the rune, disintegrating it in the process!")
for(var/mob/living/L in range(src, 3))
L.DefaultCombatKnockdown(30)
- empulse(T, 0.42*(intensity), 1)
+ empulse(T, 16*(intensity))
var/list/images = list()
var/zmatch = T.z
var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm
index ea96c1cdf6..baebefcfb4 100644
--- a/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm
+++ b/code/modules/ninja/suit/n_suit_verbs/ninja_empulse.dm
@@ -6,5 +6,5 @@
if(!ninjacost(250,N_STEALTH_CANCEL))
var/mob/living/carbon/human/H = affecting
playsound(H.loc, 'sound/effects/empulse.ogg', 60, 2)
- empulse(H, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch.
+ empulse(H, 200) //Procs sure are nice. Slightly weaker than wizard's disable tch.
s_coold = 2
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index cc3a19cf55..03537d64e7 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -434,7 +434,7 @@
/obj/singularity/proc/emp_area()
- empulse(src, 8, 10)
+ empulse(src, 250)
return
/obj/singularity/singularity_act()
diff --git a/code/modules/projectiles/projectile/special/ion.dm b/code/modules/projectiles/projectile/special/ion.dm
index 9755269031..e5e8869354 100644
--- a/code/modules/projectiles/projectile/special/ion.dm
+++ b/code/modules/projectiles/projectile/special/ion.dm
@@ -10,7 +10,7 @@
/obj/item/projectile/ion/on_hit(atom/target, blocked = FALSE)
..()
- empulse(target, emp_radius, emp_radius)
+ empulse(target, emp_radius * 7)
return BULLET_ACT_HIT
/obj/item/projectile/ion/weak
diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
index efa92ef7d6..86464aceea 100644
--- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
+++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
@@ -114,12 +114,9 @@
/datum/chemical_reaction/emp_pulse/on_reaction(datum/reagents/holder, multiplier)
var/location = get_turf(holder.my_atom)
- // 100 multiplier = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes.
- // 200 multiplier = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades.
- empulse(location, round(multiplier / 12), round(multiplier / 7), 1)
+ empulse(location, multiplier)
holder.clear_reagents()
-
/datum/chemical_reaction/beesplosion
name = "Bee Explosion"
id = "beesplosion"
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index 2c3f25e73a..651de8e1dd 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -296,7 +296,7 @@
required_other = TRUE
/datum/chemical_reaction/slime/slimeoverload/on_reaction(datum/reagents/holder, multiplier)
- empulse(get_turf(holder.my_atom), 3, 7)
+ empulse(get_turf(holder.my_atom), 200)
..()
/datum/chemical_reaction/slime/slimecell
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 9667830dbc..c69d0cf5db 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -328,7 +328,7 @@
throwSmoke(loc)
else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
visible_message("[src] melts [exp_on], ionizing the air around it!")
- empulse(loc, 4, 6)
+ empulse(loc, 150)
investigate_log("Experimentor has generated an Electromagnetic Pulse.", INVESTIGATE_EXPERIMENTOR)
ejectItem(TRUE)
////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/code/modules/research/nanites/nanite_programs/weapon.dm b/code/modules/research/nanites/nanite_programs/weapon.dm
index ae0d8d35aa..7ec48d9052 100644
--- a/code/modules/research/nanites/nanite_programs/weapon.dm
+++ b/code/modules/research/nanites/nanite_programs/weapon.dm
@@ -123,7 +123,7 @@
rogue_types = list(/datum/nanite_program/toxic)
/datum/nanite_program/emp/on_trigger(comm_message)
- empulse(host_mob, 1, 2)
+ empulse(host_mob, 40)
/datum/nanite_program/pyro/active_effect()
host_mob.fire_stacks += 1
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index d3b4bb6bac..6f8ea50f05 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -40,12 +40,12 @@
else
working = TRUE
-/obj/machinery/rnd/server/emp_act()
+/obj/machinery/rnd/server/emp_act(severity)
. = ..()
if(. & EMP_PROTECT_SELF)
return
stat |= EMPED
- addtimer(CALLBACK(src, .proc/unemp), 600)
+ addtimer(CALLBACK(src, .proc/unemp), severity*9)
refresh_working()
/obj/machinery/rnd/server/proc/unemp()
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index bc78e3ab1a..953e16ce3a 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -258,7 +258,7 @@
if(SLIME_ACTIVATE_MAJOR)
user.visible_message("[user]'s skin starts flashing intermittently...", "Your skin starts flashing intermittently...")
if(do_after(user, 25, target = user))
- empulse(user, 1, 2)
+ empulse(user, 40)
user.visible_message("[user]'s skin flashes!", "Your skin flashes as you emit an electromagnetic pulse!")
return 600
diff --git a/code/modules/spells/spell_types/emplosion.dm b/code/modules/spells/spell_types/emplosion.dm
index 98723273ae..913bb702de 100644
--- a/code/modules/spells/spell_types/emplosion.dm
+++ b/code/modules/spells/spell_types/emplosion.dm
@@ -3,9 +3,7 @@
desc = "This spell emplodes an area."
charge_max = 250
cooldown_min = 50
-
- var/emp_heavy = 2
- var/emp_light = 3
+ var/power = 100 //same as a 50/50 reaction of uranium and iron
action_icon_state = "emp"
sound = 'sound/weapons/zapbang.ogg'
@@ -15,6 +13,6 @@
for(var/mob/living/target in targets)
if(target.anti_magic_check())
continue
- empulse(target.loc, emp_heavy, emp_light)
+ empulse(target.loc, power)
return
\ No newline at end of file
diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm
index fcc3f71b8b..ea8c188346 100644
--- a/code/modules/surgery/organs/augments_chest.dm
+++ b/code/modules/surgery/organs/augments_chest.dm
@@ -33,10 +33,9 @@
. = ..()
if(!owner || . & EMP_PROTECT_SELF)
return
- owner.reagents.add_reagent(/datum/reagent/toxin/bad_food, poison_amount / severity)
+ owner.reagents.add_reagent(/datum/reagent/toxin/bad_food, poison_amount * severity/100)
to_chat(owner, "You feel like your insides are burning.")
-
/obj/item/organ/cyberimp/chest/nutriment/plus
name = "Nutriment pump implant PLUS"
desc = "This implant will synthesize and pump into your bloodstream a small amount of nutriment when you are hungry."
@@ -115,10 +114,10 @@
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
- if(H.stat != DEAD && prob(50 / severity) && H.can_heartattack())
+ if(H.stat != DEAD && prob(severity/2) && H.can_heartattack())
H.set_heartattack(TRUE)
to_chat(H, "You feel a horrible agony in your chest!")
- addtimer(CALLBACK(src, .proc/undo_heart_attack), 60 SECONDS / severity)
+ addtimer(CALLBACK(src, .proc/undo_heart_attack), (60 * severity/100) SECONDS)
/obj/item/organ/cyberimp/chest/reviver/proc/undo_heart_attack()
var/mob/living/carbon/human/H = owner
diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm
index 6705b4c7b4..5861f0e48b 100644
--- a/code/modules/surgery/organs/augments_internal.dm
+++ b/code/modules/surgery/organs/augments_internal.dm
@@ -34,11 +34,10 @@
. = ..()
if(!owner || . & EMP_PROTECT_SELF)
return
- var/stun_amount = 200/severity
+ var/stun_amount = 2*severity
owner.Stun(stun_amount)
to_chat(owner, "Your body seizes up!")
-
/obj/item/organ/cyberimp/brain/anti_drop
name = "anti-drop implant"
desc = "This cybernetic brain implant will allow you to force your hand muscles to contract, preventing item dropping. Twitch ear to toggle."
@@ -68,12 +67,11 @@
release_items()
to_chat(owner, "Your hands relax...")
-
/obj/item/organ/cyberimp/brain/anti_drop/emp_act(severity)
. = ..()
if(!owner || . & EMP_PROTECT_SELF)
return
- var/range = severity ? 10 : 5
+ var/range = severity/10
var/atom/A
if(active)
release_items()
@@ -114,7 +112,7 @@
return
crit_fail = TRUE
organ_flags |= ORGAN_FAILING
- addtimer(CALLBACK(src, .proc/reboot), 90 / severity)
+ addtimer(CALLBACK(src, .proc/reboot), 0.9 * severity)
/obj/item/organ/cyberimp/brain/anti_stun/proc/reboot()
crit_fail = FALSE
@@ -136,6 +134,6 @@
. = ..()
if(!owner || . & EMP_PROTECT_SELF)
return
- if(prob(60/severity))
+ if(prob(0.6*severity))
to_chat(owner, "Your breathing tube suddenly closes!")
owner.losebreath += 2
diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm
index c1e33c7dac..7b55b842dc 100644
--- a/code/modules/surgery/organs/ears.dm
+++ b/code/modules/surgery/organs/ears.dm
@@ -131,4 +131,4 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
- damage += 40/severity
+ damage += 0.5 * severity
diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm
index 9172ce00bc..20be49bb64 100644
--- a/code/modules/surgery/organs/eyes.dm
+++ b/code/modules/surgery/organs/eyes.dm
@@ -155,7 +155,7 @@
return
to_chat(owner, "Static obfuscates your vision!")
owner.flash_act(visual = 1)
- if(severity == EMP_HEAVY)
+ if(severity >= 70)
owner.adjustOrganLoss(ORGAN_SLOT_EYES, 20)
diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm
index e251abfd35..25b7e8fa48 100644
--- a/code/modules/surgery/organs/heart.dm
+++ b/code/modules/surgery/organs/heart.dm
@@ -198,8 +198,8 @@ obj/item/organ/heart/slime
if(. & EMP_PROTECT_SELF)
return
Stop()
- addtimer(CALLBACK(src, .proc/Restart), 20/severity SECONDS)
- damage += 100/severity
+ addtimer(CALLBACK(src, .proc/Restart), 0.2*severity SECONDS)
+ damage += severity
/obj/item/organ/heart/cybernetic/upgraded
name = "upgraded cybernetic heart"
diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm
index f0f98a5fa5..69633c54df 100755
--- a/code/modules/surgery/organs/liver.dm
+++ b/code/modules/surgery/organs/liver.dm
@@ -112,8 +112,4 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
- switch(severity)
- if(1)
- damage+=100
- if(2)
- damage+=50
+ damage += severity
diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm
index e34fd8e8a9..adb092cc16 100644
--- a/code/modules/surgery/organs/lungs.dm
+++ b/code/modules/surgery/organs/lungs.dm
@@ -487,7 +487,6 @@
owner.losebreath = 20
owner.adjustOrganLoss(ORGAN_SLOT_LUNGS, 25)
-
/obj/item/organ/lungs/cybernetic/upgraded
name = "upgraded cybernetic lungs"
desc = "A more advanced version of the stock cybernetic lungs. They are capable of filtering out lower levels of toxins and carbon dioxide."
diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
index e81c7c18d3..d7212f61d2 100644
--- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
+++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
@@ -11,7 +11,7 @@
var/recentpump = 0 // to prevent spammage
/obj/item/gun/energy/pumpaction/emp_act(severity) //makes it not rack itself when emp'd
- cell.use(round(cell.charge / severity))
+ cell.use(round(cell.charge * severity/100))
chambered = null //we empty the chamber
update_icon()
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
index 56ad24c599..3ad24ba399 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
@@ -221,7 +221,7 @@
C.electrocute_act(10, (get_turf(C)), 1, SHOCK_ILLUSION)
if(prob(10))
var/atom/T = C
- T.emp_act(EMP_HEAVY)
+ T.emp_act(80)
to_chat(C, "You feel a strange tingling sensation come from your core.")
if(isnull(N))
return ..()
@@ -233,7 +233,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume)
if(O == active_obj)
return
react_objs += O
- O.emp_act(EMP_HEAVY)
+ O.emp_act(80)
/datum/reagent/fermi/nanite_b_goneTox
name = "Electromagnetic crystals"
@@ -248,7 +248,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume)
C.electrocute_act(10, (get_turf(C)), 1, SHOCK_ILLUSION)
if(prob(50))
var/atom/T = C
- T.emp_act(EMP_HEAVY)
+ T.emp_act(80)
to_chat(C, "You feel your hair stand on end as you glow brightly for a moment!")
..()
diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
index aea156a8f5..89a84d8457 100644
--- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
@@ -95,8 +95,7 @@
if(!ImpureTot == 0) //If impure, v.small emp (0.6 or less)
ImpureTot *= volume
- var/empVol = clamp(volume/10, 0, 15)
- empulse(T, empVol, ImpureTot/10, 1)
+ empulse(T, volume, 1)
my_atom.reagents.clear_reagents() //just in case
return