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