mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 07:33:34 +01:00
@@ -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 (500E)"
|
||||
set name = "Phase Jaunt (750E)"
|
||||
set desc = "Utilizes the internal VOID-shift device to rapidly transit in direction facing."
|
||||
set category = "Ninja Ability"
|
||||
set popup_menu = 0
|
||||
|
||||
var/C = 500
|
||||
var/C = 750
|
||||
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)
|
||||
@@ -108,12 +108,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 (750E)"
|
||||
set name = "Phase Shift (1500E)"
|
||||
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 = 750
|
||||
var/C = 1500
|
||||
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.
|
||||
@@ -145,29 +145,33 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
|
||||
//=======//EM PULSE//=======//
|
||||
//Disables nearby tech equipment.
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjapulse()
|
||||
set name = "EM Burst (1,000E)"
|
||||
set name = "EM Burst (1,500E)"
|
||||
set desc = "Disable any nearby technology with a electro-magnetic pulse."
|
||||
set category = "Ninja Ability"
|
||||
set popup_menu = 0
|
||||
|
||||
var/C = 1000
|
||||
var/C = 1500
|
||||
if(!ninjacost(C, 1))
|
||||
var/mob/living/carbon/human/U = affecting
|
||||
playsound(U.loc, 'sound/effects/EMPulse.ogg', 60, 2)
|
||||
emp_proof = 1 // This is a pretty crappy workaround, but the alternative was creating a special EMPulse proc just for Ninjas that doesn't trigger the act on their suits. - Dave
|
||||
empulse(U, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch.
|
||||
s_coold = 2
|
||||
cell.charge-=(C)
|
||||
|
||||
spawn(3)
|
||||
emp_proof = 0
|
||||
return
|
||||
|
||||
//=======//ENERGY BLADE//=======//
|
||||
//Summons a blade of energy in active hand.
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjablade()
|
||||
set name = "Energy Blade (200E)"
|
||||
set name = "Energy Blade (500E)"
|
||||
set desc = "Create a focused beam of energy in your active hand."
|
||||
set category = "Ninja Ability"
|
||||
set popup_menu = 0
|
||||
|
||||
var/C = 200
|
||||
var/C = 500
|
||||
if(!ninjacost(C, 1))
|
||||
var/mob/living/carbon/human/U = affecting
|
||||
if(!kamikaze)
|
||||
|
||||
@@ -931,10 +931,10 @@ ________________________________________________________________________________
|
||||
U:gloves.icon_state = "s-ninjas"
|
||||
U:gloves.item_state = "s-ninjas"
|
||||
U.regenerate_icons() //update their icons
|
||||
U << "\blue You are now invisible to normal detection."
|
||||
U << "\blue You are now partially invisible to normal detection."
|
||||
for(var/mob/O in oviewers(U))
|
||||
O.show_message("[U.name] vanishes into thin air!",1)
|
||||
U.invisibility = INVISIBILITY_OBSERVER
|
||||
U.alpha = 7
|
||||
else
|
||||
U << "\red <b>ERROR</b>: \black You cannot cloak with an active energy blade."
|
||||
return
|
||||
@@ -945,7 +945,7 @@ ________________________________________________________________________________
|
||||
anim(U.loc,U,'icons/mob/mob.dmi',,"uncloak",,U.dir)
|
||||
s_active=!s_active
|
||||
U << "\blue You are now visible."
|
||||
U.invisibility = 0
|
||||
U.alpha = 255
|
||||
for(var/mob/O in oviewers(U))
|
||||
O.show_message("[U.name] appears from thin air!",1)
|
||||
icon_state = U.gender==FEMALE ? "s-ninjanf" : "s-ninjan"
|
||||
@@ -991,6 +991,54 @@ ________________________________________________________________________________
|
||||
else
|
||||
U << "�rr�R �a��a�� No-�-� f��N� 3RR�r"
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/emp_act(severity, var/recursion_level = 0)
|
||||
if(s_initialized && emp_proof == 0) // If the suit is initialized and vulnerable to EMP, we're in business.
|
||||
if(s_active) // EMP will always reveal a stealthed Ninja
|
||||
cancel_stealth()
|
||||
|
||||
if(istype(src.loc, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/U = src.loc
|
||||
|
||||
var/emp_result = rand(1,100)
|
||||
switch(emp_result)
|
||||
if(1 to 30) // Blindness, Ninja is blidned for approximately ten seconds.
|
||||
U << "\red Your mask's visor overloads and blinds you!"
|
||||
U.eye_blind = 3
|
||||
U.eye_blurry = 5
|
||||
U.disabilities |= NEARSIGHTED
|
||||
spawn(100)
|
||||
U.disabilities &= ~NEARSIGHTED
|
||||
return
|
||||
|
||||
if(31 to 60) // Slowdown, Ninja moves at standard speeds for approximately thirty seconds.
|
||||
U << "\red <B>Error</B>: Malfunction detected in movement enhancement systems."
|
||||
n_shoes.slowdown = -1
|
||||
|
||||
spawn(300)
|
||||
if(s_initialized) // Don't want to reset the shoes to hyperspeed if the suit is off, eh?
|
||||
n_shoes.slowdown = -2
|
||||
return
|
||||
|
||||
if(61 to 80) // Energy Loss, Ninja loses 1/5 of his energy reserves, or goes to zero if he would have negative energy.
|
||||
U << "\red <B>Error</B>: Signifigant energy failure detected."
|
||||
|
||||
if (cell.charge - (cell.charge / 5) < 0) // Ensures the Ninja does not go into energy-debt.
|
||||
cell.charge = 0
|
||||
else
|
||||
cell.charge -= (cell.charge / 5)
|
||||
return
|
||||
|
||||
if(81 to 90) // System Shutdown, Ninja suit immediately begins shut down. Bad news.
|
||||
U << "<B>DANGER</B>: Core system reboot forced!"
|
||||
deinitialize()
|
||||
return
|
||||
|
||||
if(91 to 100) // Double Up, Two EMP acts are proc'd instead of one.
|
||||
if(recursion_level == 0) // The purpose of the recursion level is to stop a situation in which RNG hates the Ninja a lot, and starts calling absurd amounts of emp_act.
|
||||
emp_act(2, 1)
|
||||
emp_act(2, 1)
|
||||
return
|
||||
|
||||
/*
|
||||
===================================================================================
|
||||
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<SPACE NINJA GLOVES>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
@@ -1130,7 +1178,7 @@ ________________________________________________________________________________
|
||||
spawn(0)
|
||||
var/turf/location = get_turf(U)
|
||||
for(var/mob/living/silicon/ai/AI in player_list)
|
||||
AI << "\red <b>Network Alert: Hacking attempt detected[location?" in [location]":". Unable to pinpoint location"]</b>."
|
||||
AI << "\red <b>Network Alert: Hacking attempt detected[location?" in [location.loc.name]":". Unable to pinpoint location"]</b>."
|
||||
if(A:files&&A:files.known_tech.len)
|
||||
for(var/datum/tech/current_data in S.stored_research)
|
||||
U << "\blue Checking \the [current_data.name] database."
|
||||
@@ -1362,33 +1410,6 @@ ________________________________________________________________________________
|
||||
usr << "<B>[mode]</B> is active."//Leaving usr here since it may be on the floor or on a person.
|
||||
usr << "Voice mimicking algorithm is set <B>[!vchange?"inactive":"active"]</B>."
|
||||
|
||||
/*
|
||||
=======================================================================================
|
||||
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<SPACE NINJA HACKBUG>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
=======================================================================================
|
||||
*/
|
||||
|
||||
/*
|
||||
Currently WIP, once finished they will, in theory, allow the Ninja to plant bugs on Computers/APCs/SMES units.
|
||||
Possibly more later, but for now I want to get basic function working.
|
||||
*/
|
||||
|
||||
/obj/item/weapon/hackbug
|
||||
name = "hack-bug"
|
||||
desc = "A strange device. Where did this even come from?"
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/ninjaobjects.dmi'
|
||||
icon_state = "hackbug"
|
||||
flags = FPRINT | TABLEPASS | USEDELAY
|
||||
w_class = 1.0
|
||||
|
||||
/obj/item/weapon/hackbug/attack(atom/target as obj|turf, mob/user as mob, flag)
|
||||
if (!flag)
|
||||
return
|
||||
if (istype(target, /turf/unsimulated) || istype(target, /turf/simulated/shuttle) || istype(target, /obj/item/weapon/storage/) || istype(target, /obj/machinery/door/airlock/hatch/gamma))
|
||||
return
|
||||
user << "Planting bug..."
|
||||
target.overlays += image('icons/obj/ninjaobjects.dmi', "compoverlay")
|
||||
|
||||
/*
|
||||
===================================================================================
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
//Ability function variables.
|
||||
var/s_bombs = 10.0//Number of starting ninja smoke bombs.
|
||||
var/a_boost = 3.0//Number of adrenaline boosters.
|
||||
var/emp_proof = 0 // Will the suit react to EMPs? A kind of bad workaround to make Ninjas invulnerable to their own EMPs. - Dave
|
||||
|
||||
//Onboard AI related variables.
|
||||
var/mob/living/silicon/ai/AI//If there is an AI inside the suit.
|
||||
|
||||
Reference in New Issue
Block a user