mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 23:23:28 +01:00
Merge pull request #109 from SamCroswell/master
Various Fixes/Tweaks to Ninja
This commit is contained in:
@@ -23,6 +23,7 @@ ________________________________________________________________________________
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/init//suit initialize verb
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_instruction//for AIs
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_holo
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_overrideninja // Experemental
|
||||
//verbs += /obj/item/clothing/suit/space/space_ninja/proc/display_verb_procs//DEBUG. Doesn't work.
|
||||
spark_system = new()//spark initialize
|
||||
spark_system.set_up(5, 0, src)
|
||||
@@ -772,8 +773,8 @@ ________________________________________________________________________________
|
||||
return
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ai_hack_ninja()
|
||||
set name = "Hack SpiderOS"
|
||||
set desc = "Hack directly into the Black Widow(tm) neuro-interface."
|
||||
set name = "Display SpiderOS"
|
||||
set desc = "Hack into SpiderOS and display a modified interface."
|
||||
set category = "AI Ninja Equip"
|
||||
set src = usr.loc
|
||||
|
||||
@@ -790,9 +791,54 @@ ________________________________________________________________________________
|
||||
AI << "You have seized your hacking attempt. [affecting.real_name] has regained control."
|
||||
affecting << "<b>UPDATE</b>: [AI.real_name] has ceased hacking attempt. All systems clear."
|
||||
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_overrideninja
|
||||
remove_AI_verbs()
|
||||
return
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ai_overrideninja()// Experemental -- Dave
|
||||
set name = "Hack Ninja Systems"
|
||||
set desc = "Hack directly into the Black Widow(tm) neuro-interface."
|
||||
set category = "AI Ninja Equip"
|
||||
set src = usr.loc
|
||||
|
||||
var/mob/living/carbon/human/U = affecting
|
||||
var/mob/living/silicon/ai/A = AI
|
||||
|
||||
if(A.laws.zeroth || A.laws != /datum/ai_laws/ninja_override)//Gives a few seconds to re-upload the AI somewhere before it takes full control.
|
||||
s_busy = 1
|
||||
for(var/i,i<5,i++)
|
||||
if(AI==A)
|
||||
switch(i)
|
||||
if(0)
|
||||
A << "\red <b>NOTICE</b>:\n beginning hack attempt..."
|
||||
U << "\red <b>WARNING</b>: HACKING AT��TEMP� IN PR0GRESs!"
|
||||
spideros = 0
|
||||
k_unlock = 0
|
||||
U << browse(null, "window=spideros")
|
||||
if(1)
|
||||
A << "Disconnecting neural interface..."
|
||||
U << "\red <b>WAR�NING</b>: �R�O0�Gr�--S 2&3%"
|
||||
if(2)
|
||||
A << "Shutting down external protocol..."
|
||||
U << "\red <b>WARNING</b>: P����RֆGr�5S 677^%"
|
||||
cancel_stealth()
|
||||
if(3)
|
||||
A << "Connecting to kernel..."
|
||||
U << "\red <b>WARNING</b>: �R�r�R_404"
|
||||
A.control_disabled = 0
|
||||
if(4)
|
||||
A << "Connection established and secured. Menu updated."
|
||||
U << "\red <b>W�r#nING</b>: #%@!!WȆ|_4�54@ \nUn�B88l3 T� L�-�o-L�CaT2 ##$!�RN�0..%.."
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_overrideninja
|
||||
grant_AI_verbs()
|
||||
return
|
||||
sleep(s_delay)
|
||||
else break
|
||||
s_busy = 0
|
||||
else
|
||||
A << "/red Unable to hack target with current lawset!"
|
||||
|
||||
|
||||
//=======//GENERAL SUIT PROCS//=======//
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/attackby(obj/item/I, mob/U)
|
||||
@@ -858,6 +904,7 @@ ________________________________________________________________________________
|
||||
else
|
||||
U << "\red <b>ERROR</b>: \black Procedure interrupted. Process terminated."
|
||||
else
|
||||
U.drop_item()
|
||||
I.loc = src
|
||||
t_disk = I
|
||||
U << "\blue You slot \the [I] into \the [src]."
|
||||
|
||||
@@ -482,27 +482,22 @@ 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
|
||||
|
||||
if(alert("Would you like random or custom paramaters?",,"Random","Custom")=="Custom")
|
||||
var/mission
|
||||
var/mission
|
||||
if(alert("Would you the Ninja to have a random or preset mission?",,"Random","Preset")=="Preset")
|
||||
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", ""))
|
||||
var/input
|
||||
if(alert("Would you like the Ninja to be a random ghost or a preset ckey?",,"Random","Preset")=="Preset")
|
||||
input = ckey(input("Pick character to spawn as the Space Ninja", "Key", ""))
|
||||
if(!input)
|
||||
return
|
||||
|
||||
space_ninja_arrival(input, 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.")
|
||||
message_admins("\blue [key_name_admin(usr)] has spawned [(input) ? input : "a random ghost"] as a Space Ninja.\nTheir <b>mission</b> is [(mission) ? ":" + mission : "randomly generated"]")
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -362,7 +362,7 @@ ________________________________________________________________________________
|
||||
del(gloves)
|
||||
|
||||
var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src)
|
||||
equip_to_slot_or_del(R, slot_ears)
|
||||
equip_to_slot_or_del(R, slot_l_ear)
|
||||
if(gender==FEMALE)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/color/blackf(src), slot_w_uniform)
|
||||
else
|
||||
@@ -1593,7 +1593,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)
|
||||
@@ -1726,11 +1726,11 @@ ________________________________________________________________________________
|
||||
</ul>
|
||||
<b>Abilities</b>:
|
||||
<ul>
|
||||
<li>*<b>Phase Shift</b> (<i>2000E</i>) and <b>Phase Jaunt</b> (<i>1000E</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>500E</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>2500E</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>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>2000E</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>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>???</b>: unleash the <b>True Ultimate Power!</b></li>
|
||||
@@ -2193,6 +2193,7 @@ ________________________________________________________________________________
|
||||
else
|
||||
U << "\red <b>ERROR</b>: \black Procedure interrupted. Process terminated."
|
||||
else
|
||||
U.drop_item()
|
||||
I.loc = src
|
||||
t_disk = I
|
||||
U << "\blue You slot \the [I] into \the [src]."
|
||||
|
||||
Reference in New Issue
Block a user