Nuclear fist

This commit is contained in:
BlackMajor
2019-12-14 02:15:09 +13:00
parent fdbe2c4061
commit 2bf35ec81c
6 changed files with 91 additions and 2 deletions

View File

@@ -141,6 +141,11 @@
name = "Disintegrate"
spell_type = /obj/effect/proc_holder/spell/targeted/touch/disintegrate
/datum/spellbook_entry/nuclearfist
name = "Nuclear Fist"
spell_type = /obj/effect/proc_holder/spell/targeted/touch/nuclear_fist
cost = 3
/datum/spellbook_entry/disabletech
name = "Disable Tech"
spell_type = /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech

View File

@@ -508,3 +508,36 @@
var/turf/T = get_turf(target)
for(var/i=0, i<50, i+=10)
addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, T, -1, exp_heavy, exp_light, exp_flash, FALSE, FALSE, exp_fire), i)
/obj/item/projectile/magic/nuclear
name = "\proper blazing manliness"
icon_state = "nuclear"
nodamage = TRUE
var/mob/living/victim = null
/obj/item/projectile/magic/nuclear/on_hit(target)
new/obj/effect/temp_visual/nuclear(get_turf(src))
if(ismob(target))
if(target == victim)
return
visible_message("<span class='danger'>[victim] slams into [target] with explosive force!</span>")
explosion(src, 2, 3, 4, 0, 6, 0)
qdel(src)
return
else
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?
/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

View File

@@ -182,3 +182,42 @@
if(charges <= 0)
qdel(src)
/obj/item/melee/touch_attack/nuclearfist
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"
/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
return
if(!user.can_speak_vocal())
to_chat(user, "<span class='notice'>You can't get the words out!</span>")
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))
target.visible_message("<span class='warning'>[target]'s [A] glows brightly as it wards off the spell!</span>")
user.visible_message("<span class='warning'>The feedback blows [user]'s arm off!</span>","<span class='userdanger'>The spell bounces from [M]'s skin back into your arm!</span>")
user.flash_act()
var/obj/item/bodypart/part = user.get_holding_bodypart_of_item(src)
if(part)
part.dismember()
return ..()
var/angle = dir2angle(get_dir(src, get_step_away(target, src)))
var/obj/item/projectile/magic/nuclear/P = new(get_turf(src))
P.victim = target
target.forceMove(P)
P.setAngle(angle)
P.original = user
P.firer = user
P.fire()
return ..()

View File

@@ -71,3 +71,15 @@
action_icon_state = "statue"
sound = 'sound/magic/fleshtostone.ogg'
/obj/effect/proc_holder/spell/targeted/touch/nuclear_fist
name = "Nuclear Fist"
desc = "This spell channels raw manliness, allowing you punch your enemies across the galaxy, causing them to detonate violently if hitting any other living being midflight."
hand_path = /obj/item/melee/touch_attack/nuclearfist
school = "evocation"
charge_max = 600
clothes_req = 1
cooldown_min = 200 //100 deciseconds reduction per rank
action_icon_state = "gib"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 122 KiB