From 3b7e95ba5f90eb2e5ecf868a54c70fe429e92ea2 Mon Sep 17 00:00:00 2001 From: SamCroswell Date: Sat, 10 Jan 2015 13:50:44 -0500 Subject: [PATCH] Ninja Nerfs --- code/game/gamemodes/events/ninja_abilities.dm | 20 +++-- code/game/gamemodes/events/ninja_equipment.dm | 83 ++++++++++++------- code/modules/clothing/spacesuits/ninja.dm | 1 + nano/debug.html | 2 +- 4 files changed, 66 insertions(+), 40 deletions(-) diff --git a/code/game/gamemodes/events/ninja_abilities.dm b/code/game/gamemodes/events/ninja_abilities.dm index 691f2d84114..82aa8601505 100644 --- a/code/game/gamemodes/events/ninja_abilities.dm +++ b/code/game/gamemodes/events/ninja_abilities.dm @@ -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) diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index 5de2a202071..d3dc3ff0936 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -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 ERROR: \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 Error: 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 Error: 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 << "DANGER: 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 + /* =================================================================================== <<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -1130,7 +1178,7 @@ ________________________________________________________________________________ spawn(0) var/turf/location = get_turf(U) for(var/mob/living/silicon/ai/AI in player_list) - AI << "\red Network Alert: Hacking attempt detected[location?" in [location]":". Unable to pinpoint location"]." + AI << "\red Network Alert: Hacking attempt detected[location?" in [location.loc.name]":". Unable to pinpoint location"]." 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 << "[mode] is active."//Leaving usr here since it may be on the floor or on a person. usr << "Voice mimicking algorithm is set [!vchange?"inactive":"active"]." -/* -======================================================================================= -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -======================================================================================= -*/ - -/* -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") /* =================================================================================== diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm index 1949d9d5d8f..3f162fbf09e 100644 --- a/code/modules/clothing/spacesuits/ninja.dm +++ b/code/modules/clothing/spacesuits/ninja.dm @@ -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. diff --git a/nano/debug.html b/nano/debug.html index 15637f035fc..969956bacb2 100644 --- a/nano/debug.html +++ b/nano/debug.html @@ -16,7 +16,7 @@ - +