diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm index bf49a8399b..235fbf6a9f 100644 --- a/code/game/objects/empulse.dm +++ b/code/game/objects/empulse.dm @@ -23,5 +23,6 @@ T.emp_act(severity) return 1 -/proc/empulse_power_from_range(range) //work out the power required for an emp of a given wanted range - return (7*(range^(1/0.7))) +/proc/empulse_using_range(turf/epicenter, range, log=0) //make an emp using range instead of power + var/power_from_range = (7*(range^(1/0.7))) + empulse(epicenter, power_from_range, log) diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 2ac938a49c..6ab12b7e39 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, 7) + empulse_using_range(src, 1) /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 db341c66c1..56b00bd2d6 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, 400) + empulse_using_range(src, 14) qdel(src) diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm index b6e468d56a..36f82b599c 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, 200) + empulse_using_range(imp_in, 7) if(!uses) qdel(src) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index e3c4d614a7..13f91ff79f 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -646,12 +646,12 @@ Traitors and the like can also be revived with the previous role mostly intact. if(!check_rights(R_ADMIN)) return - var/power = input("Power.", text("Input")) as num|null - if(!power) + var/range = input("Range.", text("Input")) as num|null + if(!range) 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 + log_admin("[key_name(usr)] created an EM Pulse - log below") //because we'll just log the empulse itself + message_admins("[key_name_admin(usr)] created an EM Pulse at [AREACOORD(O)] with range [range]") + empulse_using_range(O, range, TRUE) //its details get shown too 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! diff --git a/code/modules/antagonists/blob/blob/blobstrains/electromagnetic_web.dm b/code/modules/antagonists/blob/blob/blobstrains/electromagnetic_web.dm index bad4c5e9c2..7a1715cb4a 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, 75) //less than screen range, so you can stand out of range to avoid it + empulse_using_range(B.loc, 5) //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 9cd35c5cee..0e2515fdae 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), 140, TRUE) + empulse_using_range(get_turf(user), 8, 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 988afd6867..92a3cc8065 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),7,TRUE) + empulse_using_range(get_turf(src),1,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 fbf4b37c72..e6ec3a08b6 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, 140) + empulse_using_range(owner, 8) 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 b61b773f82..6cc2fb94b8 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, 16*(intensity)) + empulse_using_range(T, 0.65*(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/antagonists/eldritch_cult/eldritch_magic.dm b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm index 44171ca758..fbaa6cd26e 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm @@ -424,7 +424,7 @@ range = -1 include_user = TRUE charge_max = 300 - power = 400 + range = 14 sound = 'sound/effects/lingscreech.ogg' /obj/effect/proc_holder/spell/aoe_turf/fire_cascade 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 baebefcfb4..29dc78e5f3 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, 200) //Procs sure are nice. Slightly weaker than wizard's disable tch. + empulse_using_range(H, 9) //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 03537d64e7..ee4b9ce6ba 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, 250) + empulse_using_range(src, 10) return /obj/singularity/singularity_act() diff --git a/code/modules/projectiles/projectile/special/ion.dm b/code/modules/projectiles/projectile/special/ion.dm index e5e8869354..757f87a4d9 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 * 7) + empulse_using_range(target, emp_radius) return BULLET_ACT_HIT /obj/item/projectile/ion/weak diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 651de8e1dd..1e78d81f24 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), 200) + empulse_using_range(get_turf(holder.my_atom), 10) ..() /datum/chemical_reaction/slime/slimecell diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index c69d0cf5db..67af26e468 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, 150) + empulse_using_range(loc, 9) 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 7ec48d9052..b9fa0db22f 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, 40) + empulse_using_range(host_mob, 3) /datum/nanite_program/pyro/active_effect() host_mob.fire_stacks += 1 diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 953e16ce3a..a8cefd9bed 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, 40) + empulse_using_range(user, 3) 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 913bb702de..9958aeabe4 100644 --- a/code/modules/spells/spell_types/emplosion.dm +++ b/code/modules/spells/spell_types/emplosion.dm @@ -3,7 +3,7 @@ desc = "This spell emplodes an area." charge_max = 250 cooldown_min = 50 - var/power = 100 //same as a 50/50 reaction of uranium and iron + var/range = 4 //same as a 50/50 reaction of uranium and iron action_icon_state = "emp" sound = 'sound/weapons/zapbang.ogg' @@ -13,6 +13,6 @@ for(var/mob/living/target in targets) if(target.anti_magic_check()) continue - empulse(target.loc, power) + empulse_using_range(target.loc, range) - return \ No newline at end of file + return diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index c95a801f0c..0be8cb9196 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -96,7 +96,7 @@ include_user = 1 cooldown_min = 200 //50 deciseconds reduction per rank - power = 400 + range = 14 sound = 'sound/magic/disable_tech.ogg' /obj/effect/proc_holder/spell/targeted/turf_teleport/blink