Merge pull request #10177 from BlackMajor/FIST

NUCLEAR FIST. A new wizard spell involving punching people so hard they explode.
This commit is contained in:
BlackMajor
2019-12-16 14:14:35 +13:00
committed by GitHub
11 changed files with 105 additions and 2 deletions
@@ -141,6 +141,10 @@
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
/datum/spellbook_entry/disabletech
name = "Disable Tech"
spell_type = /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech
+29 -1
View File
@@ -507,4 +507,32 @@
return
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)
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
var/used = 0
/obj/item/projectile/magic/nuclear/on_hit(target)
if(used)
return
new/obj/effect/temp_visual/slugboom(get_turf(src))
if(ismob(target))
if(target == victim)
return
used = 1
visible_message("<span class='danger'>[victim] slams into [target] with explosive force!</span>")
explosion(src, 2, 3, 4, -1, TRUE, FALSE, 5)
else
used = 1
victim.take_overall_damage(30,30)
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))
. = ..()
@@ -182,3 +182,38 @@
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/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
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
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 ..()
@@ -23,7 +23,7 @@
remove_hand(TRUE)
to_chat(user, "<span class='notice'>You draw the power out of your hand.</span>")
return
for(var/mob/living/carbon/C in targets)
if(!attached_hand)
if(ChargeHand(C))
@@ -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. Does not work while laying down."
hand_path = /obj/item/melee/touch_attack/nuclearfist
school = "evocation"
charge_max = 200
clothes_req = 0
cooldown_min = 40
action_icon_state = "nuclearfist"