diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm
index 9221d528bbe..d3a4f3fa6d2 100644
--- a/code/game/gamemodes/events/ninja_equipment.dm
+++ b/code/game/gamemodes/events/ninja_equipment.dm
@@ -131,15 +131,16 @@ ________________________________________________________________________________
//Now let's do the normal processing.
if(s_coold) s_coold--//Checks for ability s_cooldown first.
var/A = s_cost//s_cost is the default energy cost each ntick, usually 5.
+ if(U.stat == 2)
+ U << browse(null, "window=spideros")
+ explosion(U.loc, 0, 1, 3, 4)
+ del(n_gloves)
+ del(n_shoes)
+ del(n_mask)
+ del(n_hood)
+ U.gib()
+ return
if(!kamikaze)
- if(U.stat == 2)
- U << browse(null, "window=spideros")
- explosion(U.loc, 0, 1, 3, 4)
- del(n_gloves)
- del(n_shoes)
- del(n_mask)
- del(n_hood)
- U.gib()
if(blade_check(U))//If there is a blade held in hand.
A += s_acost
if(s_active)//If stealth is active.
@@ -696,6 +697,7 @@ ________________________________________________________________________________
if(4)
A << "Connection established and secured. Menu updated."
U << "\red W�r#nING: #%@!!WȆ|_4�54@ \nUn�B88l3 T� L�-�o-L�CaT2 ##$!�RN�0..%.."
+ verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_overrideninja // To stop AIs from overriding an overridden Ninja. -- Dave
grant_AI_verbs()
return
sleep(s_delay)
@@ -818,7 +820,7 @@ ________________________________________________________________________________
var/mob/living/carbon/human/U = affecting
var/mob/living/silicon/ai/A = AI
- if(A.laws != /datum/ai_laws/ninja_override)
+ if(A.laws != new /datum/ai_laws/ninja_override && s_busy == 0)
s_busy = 1
for(var/i,i<6,i++)
if(AI==A)
@@ -1016,7 +1018,7 @@ ________________________________________________________________________________
G.draining = 1
- if(target_type!="RESEARCH")//I lumped research downloading here for ease of use.
+ if(target_type!="RESEARCH" && target_type!="HUMAN")//I lumped research downloading here for ease of use.
U << "\blue Now charging battery..."
switch(target_type)
@@ -1199,6 +1201,31 @@ ________________________________________________________________________________
else
U << "\red The exosuit's battery has run dry. You must find another source of power."
+
+
+ /*
+
+ Experimenting with a wrist-mounted hypospray for delivering hallucigenics. Todo: Possibly make it only work on harm intent.
+
+ -- Dave
+
+ */
+
+ if("HUMAN")
+ var/mob/living/carbon/human/A = target
+ if(S.h_stings > 0)
+ if(A != U) // Because it's bound to happen.
+ S.h_stings -= 1
+ A <<"\red You feel a tiny prick, something doesn't feel right..."
+ U <<"\blue Hallucigen administered to [A], you have [S.h_stings] doses left."
+ A.hallucination += 300
+ else
+ U <<"\red You think for a moment, and decide may not be wise to inject yourself."
+ else
+ U<<"\red You are out of stings!"
+
+
+
if("CYBORG")
var/mob/living/silicon/robot/A = target
A << "\red Warning: Unauthorized access through sub-route 12, block C, detected."
diff --git a/code/modules/clothing/gloves/ninja.dm b/code/modules/clothing/gloves/ninja.dm
index e0ff003213e..9cf9b24817f 100644
--- a/code/modules/clothing/gloves/ninja.dm
+++ b/code/modules/clothing/gloves/ninja.dm
@@ -117,3 +117,7 @@
drain("RESEARCH",A,suit)
return 1
+ if(istype(A,/mob/living/carbon/human))
+ drain("HUMAN",A,suit)
+ return 1
+
diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm
index fbe33dc81ea..c7450cdffcf 100644
--- a/code/modules/clothing/spacesuits/ninja.dm
+++ b/code/modules/clothing/spacesuits/ninja.dm
@@ -53,6 +53,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/h_stings = 5.0// Experementing with a wrist-mounted hypospray for delivering various drugs. Right now I'm thinking hallucigenics.
//Onboard AI related variables.
var/mob/living/silicon/ai/AI//If there is an AI inside the suit.
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index f7b2de629b1..cdb622b9588 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -184,7 +184,7 @@
stat("Chemical Storage", mind.changeling.chem_charges)
stat("Genetic Damage Time", mind.changeling.geneticdamage)
if (istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)&&wear_suit:s_initialized)
- stat("Energy Charge", round(wear_suit:cell:charge/100))
+ stat("Energy Charge", (wear_suit:cell:charge))
/mob/living/carbon/human/ex_act(severity)
diff --git a/code/unused/spells.dm b/code/unused/spells.dm
index ea514932cc7..84414c114f2 100644
--- a/code/unused/spells.dm
+++ b/code/unused/spells.dm
@@ -520,7 +520,7 @@
return
if(M.client && M.mind)
- if(M.mind.special_role != "Wizard" || "Fake Wizard" || "Changeling" || "Cultist" || "Space Ninja")//Wizards, changelings, ninjas, and cultists are protected.
+ if(M.mind.special_role != "Wizard" || "Fake Wizard" || "Changeling" || "Cultist" || "Ninja")//Wizards, changelings, ninjas, and cultists are protected.
if( (istype(M, /mob/living/carbon/human)) || (istype(M, /mob/living/carbon/monkey)) && M.stat != 2)
var/mob/living/carbon/human/H = M //so it does not freak out when looking at the variables.
var/mob/living/carbon/human/U = src