diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
index 0990486ae3..b95c884dc2 100644
--- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm
+++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
@@ -442,3 +442,10 @@
animate(src, alpha = 0, transform = skew, time = duration)
else
return INITIALIZE_HINT_QDEL
+
+/obj/effect/temp_visual/slugboom
+ icon = 'icons/effects/96x96.dmi'
+ icon_state = "slugboom"
+ randomdir = FALSE
+ duration = 60
+ pixel_x = -24
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index e2f8fd1a83..173d9721a9 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -514,30 +514,25 @@
icon_state = "nuclear"
nodamage = TRUE
var/mob/living/victim = null
+ var/used = 0
/obj/item/projectile/magic/nuclear/on_hit(target)
- new/obj/effect/temp_visual/nuclear(get_turf(src))
+ if(used)
+ return
+ new/obj/effect/temp_visual/slugboom(get_turf(src))
if(ismob(target))
if(target == victim)
return
+ used = 1
visible_message("[victim] slams into [target] with explosive force!")
- explosion(src, 2, 3, 4, 0, 6, 0)
- qdel(src)
- return
+ explosion(src, 2, 3, 4, -1, TRUE, FALSE, 5)
else
+ used = 1
victim.take_overall_damage(30,30)
- explosion(src, -1, -1, -1, 0, 3, 0)
- qdel(src)
- return //Autistically making it return and qdel because for some reason it was blowing up three times?
+ victim.Knockdown(60)
+ explosion(src, -1, -1, -1, -1, FALSE, FALSE, 5)
/obj/item/projectile/magic/nuclear/Destroy()
for(var/atom/movable/AM in contents)
AM.forceMove(get_turf(src))
- . = ..()
-
-/obj/effect/temp_visual/nuclear //where's a good place to put this boi
- icon = 'icons/effects/96x96.dmi'
- icon_state = "slugboom"
- randomdir = FALSE
- duration = 60
- pixel_x = -48
\ No newline at end of file
+ . = ..()
\ No newline at end of file
diff --git a/code/modules/spells/spell_types/godhand.dm b/code/modules/spells/spell_types/godhand.dm
index ef55ec0f63..8108b121ae 100644
--- a/code/modules/spells/spell_types/godhand.dm
+++ b/code/modules/spells/spell_types/godhand.dm
@@ -187,9 +187,9 @@
name = "\improper PURE MANLINESS"
desc = "SHOW THEM RAW POWER"
catchphrase = "I CAST FIST!"
- on_use_sound = 'sound/weapons/mortar_long_whistle.ogg'
- icon = 'icons/mecha/mecha_equipment.dmi'
- icon_state = "mecha_honker"
+ on_use_sound = 'sound/weapons/nuclear_fist.ogg'
+ icon_state = "disintegrate"
+ item_state = "disintegrate"
/obj/item/melee/touch_attack/nuclearfist/afterattack(atom/movable/target, mob/living/carbon/user, proximity)
if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //exploding after touching yourself would be bad
@@ -198,10 +198,6 @@
to_chat(user, "You can't get the words out!")
return
var/mob/M = target
- do_sparks(4, FALSE, M.loc)
- for(var/mob/living/L in view(src, 7))
- if(L != user)
- L.flash_act(affect_silicon = FALSE)
var/atom/A = M.anti_magic_check()
if(A)
if(isitem(A))
diff --git a/code/modules/spells/spell_types/touch_attacks.dm b/code/modules/spells/spell_types/touch_attacks.dm
index 358b9e3ff0..0ca4982ea6 100644
--- a/code/modules/spells/spell_types/touch_attacks.dm
+++ b/code/modules/spells/spell_types/touch_attacks.dm
@@ -79,7 +79,8 @@
school = "evocation"
charge_max = 600
- clothes_req = 1
+ clothes_req = 0
cooldown_min = 200 //100 deciseconds reduction per rank
-
- action_icon_state = "gib"
\ No newline at end of file
+
+ action_icon = 'icons/obj/projectiles.dmi'
+ action_icon_state = "nuclear"
\ No newline at end of file
diff --git a/sound/weapons/nuclear_fist.ogg b/sound/weapons/nuclear_fist.ogg
new file mode 100644
index 0000000000..2b2682dc33
Binary files /dev/null and b/sound/weapons/nuclear_fist.ogg differ