everything but mob stuff
This commit is contained in:
@@ -11,13 +11,13 @@ Contents:
|
||||
var/mob/living/carbon/human/U = affecting
|
||||
if(!U)
|
||||
return
|
||||
if(s_active)
|
||||
if(stealth)
|
||||
cancel_stealth()
|
||||
else
|
||||
if(cell.charge <= 0)
|
||||
to_chat(U, "<span class='warning'>You don't have enough power to enable Stealth!</span>")
|
||||
return
|
||||
s_active=!s_active
|
||||
stealth = !stealth
|
||||
animate(U, alpha = 50,time = 15)
|
||||
U.visible_message("<span class='warning'>[U.name] vanishes into thin air!</span>", \
|
||||
"<span class='notice'>You are now mostly invisible to normal detection.</span>")
|
||||
@@ -27,8 +27,8 @@ Contents:
|
||||
var/mob/living/carbon/human/U = affecting
|
||||
if(!U)
|
||||
return 0
|
||||
if(s_active)
|
||||
s_active=!s_active
|
||||
if(stealth)
|
||||
stealth = !stealth
|
||||
animate(U, alpha = 255, time = 15)
|
||||
U.visible_message("<span class='warning'>[U.name] appears from thin air!</span>", \
|
||||
"<span class='notice'>You are now visible.</span>")
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Contents:
|
||||
- Proc for handling teleporting while grabbing someone
|
||||
- Telport Ability
|
||||
- Right-Click Teleport Ability
|
||||
|
||||
*/
|
||||
|
||||
|
||||
//Handles elporting while grabbing someone
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/handle_teleport_grab(turf/T, mob/living/H)
|
||||
if(H.pulling && (isliving(H.pulling)))
|
||||
var/mob/living/victim = H.pulling
|
||||
if(!victim.anchored)
|
||||
victim.forceMove(locate(T.x+rand(-1,1),T.y+rand(-1,1),T.z))
|
||||
|
||||
|
||||
//Jaunt
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt()
|
||||
if(!ninjacost(100,N_STEALTH_CANCEL))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
var/turf/destination = get_teleport_loc(H.loc,H,9,1,3,1,0,1)
|
||||
var/turf/mobloc = get_turf(H.loc)//Safety
|
||||
|
||||
if(destination && isturf(mobloc))//So we don't teleport out of containers
|
||||
playsound(H.loc, "sparks", 50, 1)
|
||||
new /obj/effect/temp_visual/dir_setting/ninja/phase/out(get_turf(H), H.dir)
|
||||
|
||||
handle_teleport_grab(destination, H)
|
||||
H.loc = destination
|
||||
|
||||
spark_system.start()
|
||||
playsound(H.loc, 'sound/effects/phasein.ogg', 25, 1)
|
||||
playsound(H.loc, "sparks", 50, 1)
|
||||
new /obj/effect/temp_visual/dir_setting/ninja/phase(get_turf(H), H.dir)
|
||||
|
||||
destination.phase_damage_creatures(20,H)//Paralyse and damage mobs and mechas on the turf
|
||||
s_coold = 1
|
||||
else
|
||||
to_chat(H, "<span class='danger'>The VOID-shift device is malfunctioning, <B>teleportation failed</B>.</span>")
|
||||
|
||||
|
||||
//Right-Click teleport: It's basically admin "jump to turf"
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjashift(turf/T in oview())
|
||||
set name = "Phase Shift (20E)"
|
||||
set desc = "Utilizes the internal VOID-shift device to rapidly transit to a destination in view."
|
||||
set category = null//So it does not show up on the panel but can still be right-clicked.
|
||||
set src = usr.contents//Fixes verbs not attaching properly for objects. Praise the DM reference guide!
|
||||
|
||||
if(!ninjacost(200,N_STEALTH_CANCEL))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
var/turf/mobloc = get_turf(H.loc)//To make sure that certain things work properly below.
|
||||
if(!T.density && isturf(mobloc))
|
||||
playsound(H.loc, "sparks", 50, 1)
|
||||
new /obj/effect/temp_visual/dir_setting/ninja/phase/out(get_turf(H), H.dir)
|
||||
|
||||
handle_teleport_grab(T, H)
|
||||
H.forceMove(T)
|
||||
|
||||
spark_system.start()
|
||||
playsound(H.loc, 'sound/effects/phasein.ogg', 25, 1)
|
||||
playsound(H.loc, "sparks", 50, 1)
|
||||
new /obj/effect/temp_visual/dir_setting/ninja/phase(get_turf(H), H.dir)
|
||||
|
||||
T.phase_damage_creatures(20,H)//Paralyse and damage mobs and mechas on the turf
|
||||
s_coold = 1
|
||||
else
|
||||
to_chat(H, "<span class='danger'>You cannot teleport into solid walls or from solid matter</span>")
|
||||
@@ -48,7 +48,7 @@ Contents:
|
||||
var/s_maxamount = 20//Maximum number of smoke bombs.
|
||||
|
||||
//Support function variables.
|
||||
var/s_active = 0//Stealth off.
|
||||
var/stealth = FALSE//Stealth off.
|
||||
var/s_busy = FALSE//Is the suit busy with a process? Like AI hacking. Used for safety functions.
|
||||
|
||||
//Ability function variables.
|
||||
@@ -152,7 +152,7 @@ Contents:
|
||||
if(s_initialized)
|
||||
if(user == affecting)
|
||||
to_chat(user, "All systems operational. Current energy capacity: <B>[DisplayEnergy(cell.charge)]</B>.")
|
||||
to_chat(user, "The CLOAK-tech device is <B>[s_active?"active":"inactive"]</B>.")
|
||||
to_chat(user, "The CLOAK-tech device is <B>[stealth?"active":"inactive"]</B>.")
|
||||
to_chat(user, "There are <B>[s_bombs]</B> smoke bomb\s remaining.")
|
||||
to_chat(user, "There are <B>[a_boost]</B> adrenaline booster\s remaining.")
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
s_coold--//Checks for ability s_cooldown first.
|
||||
|
||||
cell.charge -= s_cost//s_cost is the default energy cost each ntick, usually 5.
|
||||
if(s_active)//If stealth is active.
|
||||
if(stealth)//If stealth is active.
|
||||
cell.charge -= s_acost
|
||||
|
||||
else
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
|
||||
Contents:
|
||||
- Procs that add ninja verbs to ninjas
|
||||
- Procs that remove ninja verbs from ninjas
|
||||
- Procs that add ninjasuit verbs to ninjas
|
||||
- Procs that remove ninjasuit verbs from ninjas
|
||||
|
||||
*/
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/grant_equip_verbs()
|
||||
n_gloves.verbs += /obj/item/clothing/gloves/space_ninja/proc/toggledrain
|
||||
|
||||
s_initialized = 1
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/remove_equip_verbs()
|
||||
if(n_gloves)
|
||||
n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggledrain
|
||||
|
||||
s_initialized = 0
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/grant_ninja_verbs()
|
||||
s_initialized=1
|
||||
slowdown=0
|
||||
Reference in New Issue
Block a user