Merge pull request #109 from SamCroswell/master

Various Fixes/Tweaks to Ninja
This commit is contained in:
ZomgPonies
2014-01-07 22:34:16 -08:00
3 changed files with 63 additions and 20 deletions
+49 -2
View File
@@ -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 ATTEMP IN PR0GRESs!"
spideros = 0
k_unlock = 0
U << browse(null, "window=spideros")
if(1)
A << "Disconnecting neural interface..."
U << "\red <b>WARNING</b>: RO0Gr--S 2&3%"
if(2)
A << "Shutting down external protocol..."
U << "\red <b>WARNING</b>: PRֆGr5S 677^%"
cancel_stealth()
if(3)
A << "Connecting to kernel..."
U << "\red <b>WARNING</b>: RrR_404"
A.control_disabled = 0
if(4)
A << "Connection established and secured. Menu updated."
U << "\red <b>Wr#nING</b>: #%@!!WȆ|_454@ \nUnB88l3 T L-o-LCaT2 ##$!RN0..%.."
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]."
+7 -12
View File
@@ -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
+7 -6
View File
@@ -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]."