Files
2016-03-06 20:52:14 +01:00

276 lines
8.5 KiB
Plaintext

// 4 arfur
// xoxo procitizen
/obj/item/clothing/suit/armor/batman/equipped(var/mob/user)
user.verbs += /client/proc/batsmoke
user.verbs += /client/proc/batarang
user.verbs += /mob/proc/batkick
user.verbs += /mob/proc/batrevive
user.verbs += /mob/proc/batattack
user.verbs += /mob/proc/batspinkick
user.verbs += /mob/proc/batspin
user.verbs += /mob/proc/batdropkick
/obj/item/clothing/suit/armor/batman/unequipped(var/mob/user)
user.verbs -= /client/proc/batsmoke
user.verbs -= /client/proc/batarang
user.verbs -= /mob/proc/batkick
user.verbs -= /mob/proc/batrevive
user.verbs -= /mob/proc/batattack
user.verbs -= /mob/proc/batspinkick
user.verbs -= /mob/proc/batspin
user.verbs -= /mob/proc/batdropkick
/client/proc/batsmoke()
set category = "Batman"
set name = "Batsmoke \[Support]"
var/datum/effects/system/bad_smoke_spread/smoke = new /datum/effects/system/bad_smoke_spread()
smoke.set_up(10, 0, usr.loc)
smoke.start()
/client/proc/batarang(mob/T as mob in oview())
set category = "Batman"
set name = "Batarang \[Combat]"
for(var/mob/O in viewers(usr, null))
O.show_message(text("<span style=\"color:red\">[] tosses a batarang at []!</span>", usr, T), 1)
var/obj/overlay/A = new /obj/overlay( usr.loc )
A.icon_state = "batarang"
A.icon = 'icons/effects/effects.dmi'
A.name = "a batarang"
A.anchored = 0
A.density = 0
var/i
for(i=0, i<100, i++)
step_to(A,T,0)
if (get_dist(A,T) <= 1)
T.weakened += 5
T.stunned += 5
for(var/mob/O in viewers(T, null))
O.show_message(text("<span style=\"color:red\">[] was struck by the batarang!</span>", T), 1)
qdel(A)
sleep(2)
qdel(A)
return
/mob/proc/batkick(mob/T as mob in oview(1))
set category = "Batman"
set name = "Bat Kick \[Combat]"
set desc = "A powerful stunning kick, sending people flying across the room"
spawn(0)
if(T)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] powerfully kicks []!</B></span>", usr, T), 1)
T.weakened += 6
step_away(T,usr,15)
sleep(1)
step_away(T,usr,15)
sleep(1)
step_away(T,usr,15)
playsound(T.loc, "swing_hit", 25, 1, -1)
/mob/proc/batrevive()
set category = "Batman"
set name = "Recover \[Support]"
set desc = "Unstuns you"
if(!usr.weakened)
usr.stunned = 0
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] suddenly recovers!</B></span>", usr), 1)
else
usr.weakened = 0
usr.stunned = 0
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] suddenly jumps up!</B></span>", usr), 1)
/mob/proc/batattack(mob/T as mob in oview(1))
set category = "Batman"
set name = "Bat Punch \[Combat]"
set desc = "Attack, but Batman-like ok"
if(usr.stat)
boutput(usr, "<span style=\"color:red\">Not when you're incapped!</span>")
return
spawn(0)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] punches []!</B></span>", usr, T), 1)
var/zone = "chest"
if(usr.zone_sel)
zone = usr.zone_sel.selecting
if ((zone in list( "eyes", "mouth" )))
zone = "head"
T.TakeDamage(zone, 4, 0)
T.stunned += 1
var/icon/I = icon('icons/effects/effects.dmi',prob(50) ? "batpow" : "batwham")
T.overlays += I
spawn(50) T.overlays -= I
T.updatehealth()
/mob/proc/batspinkick(mob/T as mob in oview(1))
set category = "Batman"
set name = "Batkick \[Finisher]"
set desc = "A spinning kick that drops motherfuckers to the CURB"
var/icon/I = icon('icons/effects/effects.dmi',"batpow")
var/icon/R = icon('icons/effects/effects.dmi', "batwham")
if(usr.stat)
boutput(usr, "<span style=\"color:red\">Not when you're incapped!</span>")
return
spawn(0)
T.transforming = 1
src.transforming = 1
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] leaps in the air, shocking []!</B></span>", usr, T), 1)
for(var/i = 0, i < 5, i++)
usr.pixel_y += 4
sleep(2)
sleep(10)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] begins kicking [] in the face rapidly!</B></span>", usr, T), 1)
for(var/i = 0, i < 5, i++)
usr.dir = NORTH
T.TakeDamage("head", 4, 0)
T.updatehealth()
T.overlays -= R
T.overlays += I
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] kicks [] in the face!</B></span>", usr, T), 1)
playsound(T.loc, "swing_hit", 25, 1, -1)
sleep(1)
usr.dir = EAST
T.TakeDamage("head", 4, 0)
T.updatehealth()
T.overlays -= I
T.overlays += R
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] kicks [] in the face!</B></span>", usr, T), 1)
playsound(T.loc, "swing_hit", 25, 1, -1)
sleep(1)
usr.dir = SOUTH
T.TakeDamage("head", 4, 0)
T.updatehealth()
T.overlays -= R
T.overlays += I
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] kicks [] in the face!</B></span>", usr, T), 1)
playsound(T.loc, "swing_hit", 25, 1, -1)
sleep(1)
usr.dir = WEST
T.TakeDamage("head", 4, 0)
T.updatehealth()
T.overlays -= I
T.overlays += R
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] kicks [] in the face!</B></span>", usr, T), 1)
playsound(T.loc, "swing_hit", 25, 1, -1)
usr.dir = get_dir(usr, T)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] stares deeply at []!</B></span>", usr, T), 1)
sleep(50)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] unleashes a tremendous kick to the jaw towards []!</B></span>", usr, T), 1)
playsound(T.loc, "swing_hit", 25, 1, -1)
flick("e_flash", T.flash)
T.transforming = 0
T.weakened += 6
step_away(T,usr,15)
sleep(1)
step_away(T,usr,15)
sleep(1)
step_away(T,usr,15)
sleep(1)
step_away(T,usr,15)
sleep(1)
step_away(T,usr,15)
T.TakeDamage("head", 70, 0)
T.updatehealth()
for(var/i = 0, i < 5, i++)
usr.pixel_y += 10
sleep(1)
usr.set_loc(T.loc)
usr.weakened = 10
usr.transforming = 0
for(var/i = 0, i < 5, i++)
usr.pixel_y -= 8
sleep(1)
usr.pixel_y = 0
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] elbow drops [] into oblivion!</B></span>", usr, T), 1)
T.gib()
/mob/proc/batspin(mob/T as mob in oview(1))
set category = "Batman"
set name = "Bat Spin \[Finisher]"
set desc = "Grab someone and spin them around until they explode"
spawn(0)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] grabs [] tightly!</B></span>", usr, T), 1)
usr.transforming = 1
T.transforming = 1
T.u_equip(l_hand)
T.u_equip(r_hand)
sleep(30)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] starts spinning [] around!</B></span>", usr, T), 1)
for(var/i = 0, i < 2, i++)
T.dir = NORTH
sleep(5)
T.dir = EAST
sleep(5)
T.dir = SOUTH
sleep(5)
T.dir = WEST
sleep(5)
for(var/i = 0, i < 1, i++)
T.dir = NORTH
sleep(2)
T.dir = EAST
sleep(2)
T.dir = SOUTH
sleep(2)
T.dir = WEST
sleep(2)
boutput(T, "<span style=\"color:red\">YOU'RE GOING TOO FAST!!!</span>")
for(var/i = 0, i < 10, i++)
T.dir = NORTH
sleep(1)
T.dir = EAST
sleep(1)
T.dir = SOUTH
sleep(1)
T.dir = WEST
sleep(1)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] suddenly explodes</B>!</span>", T), 1)
T.gib()
/mob/proc/batdropkick(mob/T as mob in oview())
set category = "Batman"
set name = "Drop Kick \[Disabler]"
set desc = "Fall to the ground, leap up and knock a dude out"
spawn(0)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] falls to the ground</B>!</span>", usr), 1)
usr.weakened += 760 // lol whatever
sleep(20)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] launches towards []</B>!</span>", usr, T), 1)
for(var/i=0, i<100, i++)
step_to(usr,T,0)
if (get_dist(usr,T) <= 1)
T.weakened += 10
T.stunned += 10
for(var/mob/O in viewers(src, null))
O.show_message(text("<span style=\"color:red\"><B>[] flies at [], slamming \him in the head</B>!</span>", usr, T), 1)
usr.weakened = 0
i=100
sleep(1)