mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-28 15:39:57 +01:00
Shinobi: Geeves Destroys Game Balance: Electric Boogaloo (#6989)
Added a ninja frequency to radios which ninjas spawn with to collaborate.
Two ninjas now spawn instead of just one.
Gave the ninja better spawning gear, a syndicate uniform, a belt with some tools and a pAI card.
The ninja suit now has new lights, and its shoes are now magboots.
Added a doorhack RIG module. Functions the same as the normal doorhack, but the user can move around after initiating the hack, as well as hack multiple airlocks at once.
Added new advanced combat belt, can hold various gear that a ninja would usually come across.
Gave the ninja teleporter a 5 second cooldown between uses.
Buffed the ninja's RIG armour values slightly. Still requires feedback, if ninjas die too quickly, it will be buffed more.
Added an additional toolbox, chair, suitcooling unit and ninja spawn point to the ninja shuttle on the centcomm level.
Gave the ninja a new uniform + gloves.
Tweaked Emergency Power Generator to give 2500 energy, but take 5 minutes to recharge. In the past, they took 24 seconds to recharge and gave 1500 energy, which made all other sources of energy regeneration useless.
This commit is contained in:
@@ -41,6 +41,19 @@
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
|
||||
/obj/item/clothing/ring/ninja
|
||||
desc = "A pair of plain black infiltration gloves. Too thin to protect anything, but can fit underneath a hardsuit gauntlet."
|
||||
name = "black slipgloves"
|
||||
icon = 'icons/obj/clothing/gloves.dmi'
|
||||
icon_state = "s-ninja"
|
||||
item_state = "s-ninja"
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
undergloves = 1
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
|
||||
/obj/item/clothing/gloves/latex
|
||||
name = "latex gloves"
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
redundant = 1
|
||||
usable = 1
|
||||
selectable = 1
|
||||
var/lastteleport
|
||||
|
||||
engage_string = "Emergency Leap"
|
||||
|
||||
@@ -106,13 +107,17 @@
|
||||
|
||||
/obj/item/rig_module/teleporter/engage(var/atom/target, var/notify_ai)
|
||||
|
||||
if(!..()) return 0
|
||||
if(!..()) return FALSE
|
||||
|
||||
var/mob/living/carbon/human/H = holder.wearer
|
||||
|
||||
if(lastteleport + (5 SECONDS) > world.time)
|
||||
to_chat(H, span("warning", "The teleporter needs time to cool down!"))
|
||||
return FALSE
|
||||
|
||||
if(!istype(H.loc, /turf))
|
||||
to_chat(H, "<span class='warning'>You cannot teleport out of your current location.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/turf/T
|
||||
if(target)
|
||||
@@ -122,19 +127,19 @@
|
||||
|
||||
if(!T || T.density)
|
||||
to_chat(H, "<span class='warning'>You cannot teleport into solid walls.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(T.z in current_map.admin_levels)
|
||||
to_chat(H, "<span class='warning'>You cannot use your teleporter on this Z-level.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(T.contains_dense_objects())
|
||||
to_chat(H, "<span class='warning'>You cannot teleport to a location with solid objects.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if((T.z != H.z || get_dist(T, get_turf(H)) > world.view) && target)
|
||||
to_chat(H, "<span class='warning'>You cannot teleport to such a distant object.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
phase_out(H,get_turf(H))
|
||||
do_teleport(H,T)
|
||||
@@ -149,7 +154,8 @@
|
||||
do_teleport(G.affecting,locate(T.x+rand(-1,1),T.y+rand(-1,1),T.z))
|
||||
phase_in(G.affecting,get_turf(G.affecting))
|
||||
|
||||
return 1
|
||||
lastteleport = world.time
|
||||
return TRUE
|
||||
|
||||
/obj/item/rig_module/fabricator/energy_net
|
||||
|
||||
@@ -264,7 +270,7 @@
|
||||
|
||||
interface_name = "emergency power generator"
|
||||
interface_desc = "A high yield power generating device that takes a long time to recharge."
|
||||
var/generation_ammount = 1500
|
||||
var/generation_ammount = 2500
|
||||
|
||||
category = MODULE_SPECIAL
|
||||
|
||||
@@ -280,7 +286,7 @@
|
||||
playsound(H.loc, 'sound/effects/sparks2.ogg', 50, 1)
|
||||
holder.cell.give(generation_ammount)
|
||||
cooldown = 1
|
||||
addtimer(CALLBACK(src, /obj/item/rig_module/emergency_powergenerator/proc/reset_cooldown), 240)
|
||||
addtimer(CALLBACK(src, /obj/item/rig_module/emergency_powergenerator/proc/reset_cooldown), 5 MINUTES)
|
||||
|
||||
/obj/item/rig_module/emergency_powergenerator/proc/reset_cooldown()
|
||||
cooldown = 0
|
||||
@@ -297,3 +303,64 @@
|
||||
device_type = /obj/item/weapon/robot_emag
|
||||
|
||||
category = MODULE_SPECIAL
|
||||
|
||||
/obj/item/rig_module/stealth_field/advanced //credits to Burger BB
|
||||
name = "advanced active camouflage module"
|
||||
desc = "A robust hardsuit-integrated stealth module. This model sports a significantly lower cooldown between uses as well as a reduced charge cost."
|
||||
use_power_cost = 10
|
||||
active_power_cost = 2
|
||||
passive_power_cost = 0
|
||||
module_cooldown = 10
|
||||
|
||||
category = MODULE_SPECIAL
|
||||
|
||||
/obj/item/rig_module/device/door_hack //credits to BurgerBB
|
||||
name = "advanced door hacking tool"
|
||||
desc = "An advanced door hacking tool that sports a low power cost and incredibly quick door hacking time. The device also supports hacking several signals at once remotely, and the last 10 doors hacked can be instantly accessed."
|
||||
use_power_cost = 10
|
||||
module_cooldown = 5
|
||||
|
||||
usable = 0
|
||||
selectable = 0
|
||||
toggleable = 1
|
||||
|
||||
interface_name = "advanced door hacking tool"
|
||||
interface_desc = "An advanced door hacking tool that sports a low power cost and incredibly quick door hacking time. The device also supports hacking several signals at once remotely, and the last 10 doors hacked can be instantly accessed."
|
||||
|
||||
category = MODULE_SPECIAL
|
||||
|
||||
/obj/item/rig_module/device/door_hack/process()
|
||||
|
||||
if(holder && holder.wearer)
|
||||
if(!(locate(/obj/item/device/multitool/hacktool/rig) in holder.wearer))
|
||||
deactivate()
|
||||
return 0
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/rig_module/device/door_hack/activate()
|
||||
|
||||
..()
|
||||
|
||||
var/mob/living/M = holder.wearer
|
||||
|
||||
if(M.l_hand && M.r_hand)
|
||||
to_chat(M, "<span class='danger'>Your hands are full.</span>")
|
||||
deactivate()
|
||||
return
|
||||
|
||||
var/obj/item/device/multitool/hacktool/rig/hacktool = new(M)
|
||||
hacktool.creator = M
|
||||
M.put_in_hands(hacktool)
|
||||
|
||||
/obj/item/rig_module/device/door_hack/deactivate()
|
||||
|
||||
..()
|
||||
|
||||
var/mob/living/M = holder.wearer
|
||||
|
||||
if(!M)
|
||||
return
|
||||
|
||||
for(var/obj/item/device/multitool/hacktool/rig/hacktool in M.contents)
|
||||
qdel(hacktool)
|
||||
@@ -76,31 +76,40 @@
|
||||
/obj/item/weapon/rig/light/ninja
|
||||
name = "stealth suit control module"
|
||||
suit_type = "stealth suit"
|
||||
desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for stealth operations."
|
||||
desc = "A unique, vacuum-proof suit of nano-enhanced armor designed specifically for stealth operations."
|
||||
icon_state = "ninja_rig"
|
||||
armor = list(melee = 50, bullet = 35, laser = 35, energy = 30, bomb = 25, bio = 100, rad = 30)
|
||||
armor = list(melee = 50, bullet = 45, laser = 45, energy = 30, bomb = 35, bio = 100, rad = 100)
|
||||
emp_protection = 40
|
||||
slowdown = 0
|
||||
|
||||
species_restricted = list("Human","Tajara","Unathi", "Skrell", "Machine", "Vaurca")
|
||||
|
||||
helm_type = /obj/item/clothing/head/helmet/space/rig/light/ninja
|
||||
chest_type = /obj/item/clothing/suit/space/rig/light/ninja
|
||||
glove_type = /obj/item/clothing/gloves/rig/light/ninja
|
||||
boot_type = /obj/item/clothing/shoes/rig/light/ninja
|
||||
boot_type = /obj/item/clothing/shoes/magboots/rig/light/ninja
|
||||
|
||||
req_access = list(access_syndicate)
|
||||
initial_modules = list(
|
||||
/obj/item/rig_module/teleporter,
|
||||
/obj/item/rig_module/vision,
|
||||
/obj/item/rig_module/voice,
|
||||
/obj/item/rig_module/teleporter,
|
||||
/obj/item/rig_module/stealth_field,
|
||||
/obj/item/rig_module/electrowarfare_suite,
|
||||
/obj/item/rig_module/ai_container,
|
||||
/obj/item/rig_module/device/door_hack,
|
||||
/obj/item/rig_module/datajack,
|
||||
/obj/item/rig_module/chem_dispenser/ninja,
|
||||
/obj/item/rig_module/self_destruct,
|
||||
/obj/item/rig_module/actuators
|
||||
/obj/item/rig_module/actuators/combat
|
||||
)
|
||||
|
||||
allowed_module_types = MODULE_GENERAL | MODULE_LIGHT_COMBAT | MODULE_HEAVY_COMBAT | MODULE_SPECIAL | MODULE_MEDICAL | MODULE_UTILITY | MODULE_VAURCA
|
||||
|
||||
/obj/item/clothing/head/helmet/space/rig/light/ninja
|
||||
light_overlay = "helmet_light_dual_green"
|
||||
light_color = "#3e7c3e"
|
||||
|
||||
/obj/item/weapon/rig/light/ninja/equipped
|
||||
initial_modules = list(
|
||||
/obj/item/rig_module/teleporter,
|
||||
@@ -122,7 +131,7 @@
|
||||
name = "insulated gloves"
|
||||
siemens_coefficient = 0
|
||||
|
||||
/obj/item/clothing/shoes/rig/light/ninja
|
||||
/obj/item/clothing/shoes/magboots/rig/light/ninja
|
||||
silent = 1
|
||||
|
||||
/obj/item/clothing/suit/space/rig/light/ninja
|
||||
@@ -223,4 +232,4 @@
|
||||
/obj/item/rig_module/fabricator/energy_net,
|
||||
/obj/item/rig_module/chem_dispenser/combat,
|
||||
/obj/item/rig_module/mounted/xray
|
||||
)
|
||||
)
|
||||
|
||||
@@ -28,3 +28,10 @@
|
||||
icon_state = "fulltracksuit"
|
||||
item_state = "fulltracksuit"
|
||||
contained_sprite = 1
|
||||
|
||||
/obj/item/clothing/under/syndicate/ninja
|
||||
name = "slipsuit"
|
||||
desc = "A sleek, form-fitting undersuit designed to retain the wearer's mobility. It almost feels like you're wearing nothing at all."
|
||||
icon_state = "ninja"
|
||||
item_state = "ninja"
|
||||
worn_state = "ninja"
|
||||
Reference in New Issue
Block a user