mirror of
https://github.com/goonstation/goonstation-2020.git
synced 2026-08-26 13:36:14 +01:00
65 lines
1.7 KiB
Plaintext
65 lines
1.7 KiB
Plaintext
/datum/targetable/spell/bullcharge
|
|
name = "Bull's Charge"
|
|
desc = "Records the casters movement for 4 seconds after which the spell will fire and throw & heavily damage everyone in it's recorded Path."
|
|
icon_state = "bullc" // Vaguely matching placeholder.
|
|
targeted = 0
|
|
cooldown = 150
|
|
requires_robes = 1
|
|
offensive = 1
|
|
voice_grim = "sound/voice/wizard/BullChargeGrim.ogg"
|
|
voice_fem = "sound/voice/wizard/BullChargeFem.ogg"
|
|
voice_other = "sound/voice/wizard/BullChargeLoud.ogg"
|
|
|
|
cast()
|
|
if(!holder)
|
|
return
|
|
holder.owner.say("RAMI TIN")
|
|
..()
|
|
|
|
var/list/path = list()
|
|
var/turf/first = holder.owner.loc
|
|
var/turf/prev = first
|
|
for(var/i = 0, i < 40, i++)
|
|
var/turf/curr = holder.owner.loc
|
|
animate_bullspellground(curr, "#aaddff")
|
|
if(prev != curr)
|
|
path += curr
|
|
prev = curr
|
|
sleep(1)
|
|
|
|
playsound(holder.owner.loc, "sound/voice/animal/bull.ogg", 25, 1, -1)
|
|
|
|
var/list/affected = list()
|
|
var/obj/effects/bullshead/B = new/obj/effects/bullshead(first)
|
|
for(var/turf/T in path)
|
|
B.dir = get_dir(B, T)
|
|
B.loc = T
|
|
animate_bullspellground(T, "#5599ff")
|
|
for (var/atom/movable/M in T)
|
|
if (M.anchored || affected.Find(M) || M == holder.owner)
|
|
continue
|
|
affected += M
|
|
SPAWN_DBG(0) M.throw_at(get_edge_cheap(T, B.dir), 30, 1)
|
|
if (ismob(M))
|
|
var/mob/some_idiot = M
|
|
some_idiot.changeStatus("weakened", 3 SECONDS)
|
|
some_idiot.TakeDamage("chest", 33, 0, 0, DAMAGE_BLUNT)
|
|
sleep(1)
|
|
|
|
qdel(B)
|
|
|
|
/obj/effects/bullshead
|
|
name = "magic"
|
|
desc = "i aint gotta explain shit"
|
|
density = 0
|
|
opacity = 0
|
|
anchored = 1
|
|
pixel_x = -32
|
|
pixel_y = -32
|
|
icon = 'icons/effects/96x96.dmi'
|
|
icon_state = "bull"
|
|
|
|
New()
|
|
src.alpha = 245
|
|
animate(src, alpha = 1, time = 30)
|