mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
Merge branch 'master' of https://github.com/ZomgPonies/Paradise
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user