This commit is contained in:
ZomgPonies
2013-12-29 12:32:55 -05:00
6 changed files with 11731 additions and 11714 deletions
@@ -68,12 +68,12 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
//=======//9-8 TILE TELEPORT//=======//
//Click to to teleport 9-10 tiles in direction facing.
/obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt()
set name = "Phase Jaunt (125E)"
set name = "Phase Jaunt (250E)"
set desc = "Utilizes the internal VOID-shift device to rapidly transit in direction facing."
set category = "Ninja Ability"
set popup_menu = 0
var/C = 125
var/C = 200
if(!ninjacost(C,1))
var/mob/living/carbon/human/U = affecting
var/turf/destination = get_teleport_loc(U.loc,U,9,1,3,1,0,1)
@@ -92,8 +92,8 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
playsound(U.loc, "sparks", 50, 1)
anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir)
spawn(0)
destination.kill_creatures(U)//Any living mobs in teleport area are gibbed. Check turf procs for how it does it.
//spawn(0)
//destination.kill_creatures(U)//Any living mobs in teleport area are gibbed. Check turf procs for how it does it.
s_coold = 1
cell.charge-=(C)
else
@@ -105,12 +105,12 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
//=======//RIGHT CLICK TELEPORT//=======//
//Right click to teleport somewhere, almost exactly like admin jump to turf.
/obj/item/clothing/suit/space/space_ninja/proc/ninjashift(turf/T in oview())
set name = "Phase Shift (250E)"
set name = "Phase Shift (500E)"
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!
var/C = 250
var/C = 400
if(!ninjacost(C,1))
var/mob/living/carbon/human/U = affecting
var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below.
@@ -131,7 +131,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
//spawn(0) // Commented out for now, possible implementation in a later upgrade tree.
//T.kill_creatures(U)
s_coold = 1
cell.charge-=(C*10)
cell.charge-=(C)
else
U << "\red You cannot teleport into solid walls or from solid matter"
return
@@ -148,7 +148,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
if(!ninjacost(C, 1))
var/mob/living/carbon/human/U = affecting
playsound(U.loc, 'sound/effects/EMPulse.ogg', 60, 2)
empulse(U, 2, 3) //Procs sure are nice. Slightly weaker than wizard's disable tch.
empulse(U, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch.
s_coold = 2
cell.charge-=(1000)
return
@@ -230,7 +230,7 @@ Must right click on a mob to activate.*/
set src = usr.contents
var/C = 5000
if(!ninjacost(C,80)&&iscarbon(M)) // Nets now cost 8,000
if(!ninjacost(C,1)&&iscarbon(M)) // Nets now cost 8,000
var/mob/living/carbon/human/U = affecting
//if(M.client)//Monkeys without a client can still step_to() and bypass the net. Also, netting inactive people is lame.
//if(M)//DEBUG
+11 -9
View File
@@ -256,7 +256,7 @@ ________________________________________________________________________________
dat += "<h2 ALIGN=CENTER>SpiderOS v.<b>ERR-RR00123</b></h2>"
dat += "<br>"
dat += "<img src=sos_10.png> Current Time: [worldtime2text()]<br>"
dat += "<img src=sos_9.png> Battery Life: [round(cell.charge/100)]%<br>"
dat += "<img src=sos_9.png> Battery Life: [round(cell.charge)] ([round(cell.charge/100)]%)<br>"
dat += "<img src=sos_11.png> Smoke Bombs: \Roman [s_bombs]<br>"
dat += "<img src=sos_14.png> pai Device: "
if(pai)
@@ -391,7 +391,7 @@ ________________________________________________________________________________
</ul>
<b>Abilities</b>:
<ul>
<li>*<b>Phase Shift</b> (<i>250E</i>)is a unique power in that they can be used for defense and offense.Phase Shift can only be used on turf in view but is precise (cannot be used on walls). Any living mob in the area teleported to is instantly gibbed (mechs are damaged, huggers and other similar critters are killed). It is possible to teleport with a target, provided you grab them before teleporting.</li>
<li>*<b>Phase Shift</b> (<i>500E</i>) and <b>Phase Jaunt</b> (<i>250E</i>) are unique powers in that they can both be used for defense and offense. Jaunt launches the ninja forward facing up to 9 squares, somewhat randomly selecting the final destination. Shift can only be used on turf in view but is precise (cannot be used on walls). Any living mob in the area teleported to is instantly gibbed (mechs are damaged, huggers and other similar critters are killed). It is possible to teleport with a target, provided you grab them before teleporting. </li>
<li>*<b>Energy Blade</b> (<i>200E</i>) is a highly effective weapon. It is summoned directly to the ninja's hand and can also function as an EMAG for certain objects (doors/lockers/etc). You may also use it to cut through walls and disabled doors. Experiment! The blade will crit humans in two hits. This item cannot be placed in containers and when dropped or thrown disappears. Having an energy blade drains more power from the battery each tick.</li>
<li>*<b>EM Pulse</b> (<i>1000E</i>) is a highly useful ability that will create an electromagnetic shockwave around the ninja, disabling technology whenever possible. If used properly it can render a security force effectively useless. Of course, getting beat up with a toolbox is not accounted for.</li>
<li>*<b>Energy Star</b> (<i>500E</i>) is a ninja star made of green energy AND coated in poison. It works by picking a random living target within range and can be spammed to great effect in incapacitating foes. Just remember that the poison used is also used by the Xeno Hivemind (and will have no effect on them).</li>
@@ -492,12 +492,12 @@ ________________________________________________________________________________
U << browse(null, "window=spideros")//Closes the window.
return
if(k_unlock!=7&&href_list["choice"]!="Return")
var/u1=text2num(href_list["choice"]) // Get the number of the choice
var/u2=(u1?abs(abs(k_unlock-u1)-2):1) //If u1 is not 0, get the absoloute value of(absoloute value of K_unlock-u1)-2, otherwise return 1
k_unlock=(!u2? k_unlock+1:0)
if(k_unlock==7)
U << "Anonymous Messenger blinks."
if(k_unlock!=7&&href_list["choice"]!="Return")
var/u1=text2num(href_list["choice"])
var/u2=(u1?abs(abs(k_unlock-u1)-2):1)
k_unlock=(!u2? k_unlock+1:0)
if(k_unlock==7)
U << "Anonymous Messenger blinks."
else
if(!affecting||A.stat||!s_initialized||A.loc!=src)
A << "\red This function is not available at this time."
@@ -868,7 +868,7 @@ ________________________________________________________________________________
var/mob/living/carbon/human/U = affecting
if(s_active)
cancel_stealth()
else
else if(!blade_check(U))
anim(U.loc,U,'icons/mob/mob.dmi',,"cloak",,U.dir)
s_active=!s_active
icon_state = U.gender==FEMALE ? "s-ninjasf" : "s-ninjas"
@@ -879,6 +879,8 @@ ________________________________________________________________________________
for(var/mob/O in oviewers(U))
O.show_message("[U.name] vanishes into thin air!",1)
U.invisibility = INVISIBILITY_OBSERVER
else
U << "\red <b>ERROR</b>: \black You cannot cloak with an active energy blade."
return
/obj/item/clothing/suit/space/space_ninja/proc/cancel_stealth()
+28 -13
View File
@@ -67,7 +67,7 @@ ________________________________________________________________________________
Phase Shift
Extra Ability
Advanced Sensors?
Instead of being unlocked at the start, Phase Shieft would become available once requirements are met.
Instead of being unlocked at the start, Phase Shift would become available once requirements are met.
Uranium-based Recharger:
Suit Upgrade
Unsure
@@ -482,20 +482,26 @@ As such, it's hard-coded for now. No reason for it not to be, really.
if(alert("Are you sure you want to send in a space ninja?",,"Yes","No")=="No")
return
var/mission
while(!mission)
mission = copytext(sanitize(input(src, "Please specify which mission the space ninja shall undertake.", "Specify Mission", "")),1,MAX_MESSAGE_LEN)
if(!mission)
if(alert("Error, no mission set. Do you want to exit the setup process?",,"Yes","No")=="Yes")
return
if(alert("Would you like random or custom paramaters?",,"Random","Custom")=="Custom")
var/mission
while(!mission)
mission = copytext(sanitize(input(src, "Please specify which mission the space ninja shall undertake.", "Specify Mission", "")),1,MAX_MESSAGE_LEN)
if(!mission)
if(alert("Error, no mission set. Do you want to exit the setup process?",,"Yes","No")=="Yes")
return
var/input = ckey(input("Pick character to spawn as the Space Ninja", "Key", ""))
if(!input)
return
space_ninja_arrival(input, mission)
var/input = ckey(input("Pick character to spawn as the Space Ninja", "Key", ""))
if(!input)
return
message_admins("\blue [key_name_admin(key)] has spawned [input] as a Space Ninja.\nTheir <b>mission</b> is: [mission]")
space_ninja_arrival(input, mission)
message_admins("\blue [key_name_admin(key)] has spawned [input] as a Space Ninja.\nTheir <b>mission</b> is: [mission]")
else
space_ninja_arrival()
message_admins("\blue [key_name_admin(key)] has spawned a random player as a Space Ninja.")
log_admin("[key] used Spawn Space Ninja.")
return
@@ -575,6 +581,9 @@ As such, it's hard-coded for now. No reason for it not to be, really.
U << "\red <B>fÄTaL ÈÈRRoR</B>: 382200-*#00CÖDE <B>RED</B>\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..."
U.gib()
return 0
if(!istype(U:wear_suit, /obj/item/clothing/suit/space/space_ninja)) // Because previously players could activate the suit successfully while holding the suit
U << "\red <B>ERROR</B>: 100113 \black UNABLE TO LOCATE USER\nABORTING..."
return 0
if(!istype(U:head, /obj/item/clothing/head/helmet/space/space_ninja))
U << "\red <B>ERROR</B>: 100113 \black UNABLE TO LOCATE HEAD GEAR\nABORTING..."
return 0
@@ -584,7 +593,9 @@ As such, it's hard-coded for now. No reason for it not to be, really.
if(!istype(U:gloves, /obj/item/clothing/gloves/space_ninja))
U << "\red <B>ERROR</B>: 110223 \black UNABLE TO LOCATE HAND GEAR\nABORTING..."
return 0
if(!istype(U:wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja))
U << "\red <B>ERROR</B>: 110223 \black UNABLE TO LOCATE MASK\nABORTING..."
return 0
affecting = U
canremove = 0
slowdown = 0
@@ -595,6 +606,8 @@ As such, it's hard-coded for now. No reason for it not to be, really.
n_shoes.slowdown--
n_gloves = U:gloves
n_gloves.canremove=0
n_mask = U:wear_mask
n_mask.canremove=0
return 1
@@ -615,6 +628,8 @@ As such, it's hard-coded for now. No reason for it not to be, really.
n_gloves.canremove=1
n_gloves.candrain=0
n_gloves.draining=0
if(n_mask)
n_mask.canremove=1
//Allows the mob to grab a stealth icon.
/mob/proc/NinjaStealthActive(atom/A)//A is the atom which we are using as the overlay.
@@ -30,6 +30,7 @@
var/obj/item/clothing/head/helmet/space/space_ninja/n_hood
var/obj/item/clothing/shoes/space_ninja/n_shoes
var/obj/item/clothing/gloves/space_ninja/n_gloves
var/obj/item/clothing/mask/gas/voice/space_ninja/n_mask
//Main function variables.
var/s_initialized = 0//Suit starts off.
+3 -3
View File
@@ -1589,7 +1589,7 @@ ________________________________________________________________________________
dat += "<h2 ALIGN=CENTER>SpiderOS v.<b>ERR-RR00123</b></h2>"
dat += "<br>"
dat += "<img src=sos_10.png> Current Time: [worldtime2text()]<br>"
dat += "<img src=sos_9.png> Battery Life: [round(cell.charge/100)]%<br>"
dat += "<img src=sos_9.png> Battery Life: [round(cell.charge)] ([round(cell.charge/100)]%)<br>"
dat += "<img src=sos_11.png> Smoke Bombs: \Roman [s_bombs]<br>"
dat += "<img src=sos_14.png> pai Device: "
if(pai)
@@ -1722,14 +1722,14 @@ ________________________________________________________________________________
</ul>
<b>Abilities</b>:
<ul>
<li>*<b>Phase Shift</b> (<i>250E</i>)is a unique power in that they can be used for defense and offense.Phase Shift can only be used on turf in view but is precise (cannot be used on walls). Any living mob in the area teleported to is instantly gibbed (mechs are damaged, huggers and other similar critters are killed). It is possible to teleport with a target, provided you grab them before teleporting.</li>
<li>*<b>Phase Shift</b> (<i>500E</i>) and <b>Phase Jaunt</b> (<i>250E</i>) are unique powers in that they can both be used for defense and offense. Jaunt launches the ninja forward facing up to 9 squares, somewhat randomly selecting the final destination. Shift can only be used on turf in view but is precise (cannot be used on walls). Any living mob in the area teleported to is instantly gibbed (mechs are damaged, huggers and other similar critters are killed). It is possible to teleport with a target, provided you grab them before teleporting. </li>
<li>*<b>Energy Blade</b> (<i>200E</i>) is a highly effective weapon. It is summoned directly to the ninja's hand and can also function as an EMAG for certain objects (doors/lockers/etc). You may also use it to cut through walls and disabled doors. Experiment! The blade will crit humans in two hits. This item cannot be placed in containers and when dropped or thrown disappears. Having an energy blade drains more power from the battery each tick.</li>
<li>*<b>EM Pulse</b> (<i>1000E</i>) is a highly useful ability that will create an electromagnetic shockwave around the ninja, disabling technology whenever possible. If used properly it can render a security force effectively useless. Of course, getting beat up with a toolbox is not accounted for.</li>
<li>*<b>Energy Star</b> (<i>500E</i>) is a ninja star made of green energy AND coated in poison. It works by picking a random living target within range and can be spammed to great effect in incapacitating foes. Just remember that the poison used is also used by the Xeno Hivemind (and will have no effect on them).</li>
<li>*<b>Energy Net</b> (<i>5000E</i>) is a non-lethal solution to incapacitating humanoids. The net is made of non-harmful phase energy and will halt movement as long as it remains in effect--it can be destroyed. If the net is not destroyed, after a certain time it will teleport the target to a holding facility for the Spider Clan and then vanish. You will be notified if the net fails or succeeds in capturing a target in this manner. Combine with energy stars or stripping to ensure success. Abduction never looked this leet.</li>
<li>*<b>Adrenaline Boost</b> (<i>1 E. Boost/3</i>) recovers the user from stun, weakness, and paralysis. Also injects 20 units of radium into the bloodstream.</li>
<li>*<b>Smoke Bomb</b> (<i>1 Sm.Bomb/10</i>) is a weak but potentially useful ability. It creates harmful smoke and can be used in tandem with other powers to confuse enemies.</li>
<li>*<b><a href='byond://?src=\ref[src];choice=32'>???</a></b>: unleash the <b>True Ultimate Power!</b></li>
<li>*<b>???</b>: unleash the <b>True Ultimate Power!</b></li>
<h4>IMPORTANT:</h4>
<ul>
<li>*Make sure to toggle Special Interaction from the Ninja Equipment menu to interact differently with certain objects.</li>