Ninja changes (#3851)

This changes the ninja suit to start off with only essential modules. The Ninja now gets telecrystals and access to a restricted uplink category filled with hardsuit modules. Also adds the EMAG hand module, EMP dissipation module, and emergency power generation module. Other changes include a buff across the board for ninja including an increase in their armor values, a buff towards their ninja modules (which they now have to buy), and changing their suit to say "stealth" instead of ominous. This should make the Ninja have a better chance against security while also ensuring it maintains its stealth antag title.

 👍 5
This commit is contained in:
Ron
2017-12-17 04:36:18 -05:00
committed by Erki
parent 57e898d8e8
commit 81e8d371de
9 changed files with 248 additions and 44 deletions

View File

@@ -481,31 +481,3 @@
drain_loc = null
interfaced_with = null
total_power_drained = 0
/*
//Maybe make this use power when active or something
/obj/item/rig_module/emp_shielding
name = "\improper EMP dissipation module"
desc = "A bewilderingly complex bundle of fiber optics and chips."
toggleable = 1
usable = 0
activate_string = "Enable active EMP shielding"
deactivate_string = "Disable active EMP shielding"
interface_name = "active EMP shielding system"
interface_desc = "A highly experimental system that augments the hardsuit's existing EM shielding."
var/protection_amount = 20
/obj/item/rig_module/emp_shielding/activate()
if(!..())
return
holder.emp_protection += protection_amount
/obj/item/rig_module/emp_shielding/deactivate()
if(!..())
return
holder.emp_protection = max(0,(holder.emp_protection - protection_amount))
*/

View File

@@ -4,6 +4,9 @@
* /obj/item/rig_module/teleporter
* /obj/item/rig_module/fabricator/energy_net
* /obj/item/rig_module/self_destruct
* /obj/item/rig_module/emp_shielding
* /obj/item/rig_module/emergency_powergenerator
* /obj/item/rig_module/emag_hand
*/
/obj/item/rig_module/stealth_field
@@ -152,7 +155,7 @@
engage_string = "Fabricate Net"
fabrication_type = /obj/item/weapon/energy_net
use_power_cost = 70
use_power_cost = 60
/obj/item/rig_module/fabricator/energy_net/engage(atom/target)
@@ -175,10 +178,10 @@
interface_name = "dead man's switch"
interface_desc = "An integrated self-destruct module. When the wearer dies, so does the surrounding area. Do not press this button."
var/list/explosion_values = list(1,2,4,5)
var/list/explosion_values = list(3,4,5,6)
/obj/item/rig_module/self_destruct/small
explosion_values = list(0,0,3,4)
explosion_values = list(1,2,3,4)
/obj/item/rig_module/self_destruct/activate()
return
@@ -205,3 +208,111 @@
holder.wearer.drop_from_inventory(src)
qdel(holder)
qdel(src)
/obj/item/rig_module/emp_shielding
name = "EMP dissipation module"
desc = "A bewilderingly complex bundle of fiber optics and chips. Seems like it uses a good deal of power."
active_power_cost = 10
toggleable = 1
usable = 0
use_power_cost = 70
module_cooldown = 30
activate_string = "Enable Active EMP Shielding"
deactivate_string = "Disable Active EMP Shielding"
interface_name = "active EMP shielding system"
interface_desc = "A highly experimental system that augments the hardsuit's existing EM shielding."
var/protection_amount = 30
/obj/item/rig_module/emp_shielding/activate()
if(!..())
return
holder.emp_protection += protection_amount
/obj/item/rig_module/emp_shielding/deactivate()
if(!..())
return
holder.emp_protection = max(0,(holder.emp_protection - protection_amount))
/obj/item/rig_module/emergency_powergenerator
name = "emergency power generator"
desc = "A high yield power generating device that takes a long time to recharge."
active_power_cost = 0
toggleable = 0
usable = 1
confined_use = 1
var/cooldown = 0
engage_string = "Use Emergency Power"
interface_name = "emergency power generator"
interface_desc = "A high yield power generating device that takes a long time to recharge."
var/generation_ammount = 1500
/obj/item/rig_module/emergency_powergenerator/engage()
if(!..())
return
var/mob/living/carbon/human/H = holder.wearer
if(cooldown)
H << "<span class='danger'>There isn't enough power stored up yet!</span>"
return 0
else
H << "<span class='danger'>Your suit emits a loud sound as power is rapidly injected into your suits battery!</span>"
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)
/obj/item/rig_module/emergency_powergenerator/proc/reset_cooldown()
cooldown = 0
/obj/item/rig_module/emag_hand
name = "EMAG integrated hand"
desc = "A complex uprade that allows the user to touch things with their hand and apply an EMAG effect. High power cost."
use_power_cost = 100
usable = 0
toggleable = 1
activates_on_touch = 1
disruptive = 0
activate_string = "Enable EMAG"
deactivate_string = "Disable EMAG"
interface_name = "enable EMAG"
interface_desc = "A complex uprade that allows the user to touch things with their hand and apply an EMAG effect. High power cost."
var/atom/interfaced_with
module_cooldown = 4800
/obj/item/rig_module/emag_hand/activate()
if(!..())
return
/obj/item/rig_module/emag_hand/deactivate()
if(!..())
return
/obj/item/rig_module/emag_hand/engage(atom/target)
if(!..())
return 0
if(interfaced_with)
return 0
if(!target)
return 1
if(!target.Adjacent(holder.wearer))
return 0
holder.wearer << "<span class = 'danger'>You stick your hand on [target] shorting out some of its circuits!</span>"
interfaced_with = target
target.emag_act(user, src)
addtimer(CALLBACK(src, /obj/item/rig_module/emag_hand/proc/reset_interface, 2))
return 1
/obj/item/rig_module/emag_hand/proc/reset_interface()
interfaced_with = null

View File

@@ -72,20 +72,30 @@
siemens_coefficient = 0
/obj/item/weapon/rig/light/ninja
name = "ominous suit control module"
suit_type = "ominous"
desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins."
name = "stealth suit control module"
suit_type = "stealth suit"
desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for stealth operations."
icon_state = "ninja_rig"
armor = list(melee = 50, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 30)
emp_protection = 40 //change this to 30 if too high.
armor = list(melee = 50, bullet = 35, laser = 35, energy = 30, bomb = 25, bio = 100, rad = 30)
emp_protection = 40
slowdown = 0
chest_type = /obj/item/clothing/suit/space/rig/light/ninja
glove_type = /obj/item/clothing/gloves/rig/light/ninja
helm_type = /obj/item/clothing/head/helmet/space/rig/light/ninja
boot_type = /obj/item/clothing/shoes/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/ai_container,
/obj/item/rig_module/datajack,
/obj/item/rig_module/self_destruct
)
/obj/item/weapon/rig/light/ninja/equipped
initial_modules = list(
/obj/item/rig_module/teleporter,
/obj/item/rig_module/stealth_field,
@@ -102,12 +112,13 @@
/obj/item/rig_module/actuators/combat
)
..()
/obj/item/clothing/gloves/rig/light/ninja
name = "insulated gloves"
siemens_coefficient = 0
/obj/item/clothing/shoes/rig/light/ninja
silent = 1
/obj/item/clothing/suit/space/rig/light/ninja
species_restricted = list("exclude","Diona","Xenomorph", "Golem")
breach_threshold = 38 //comparable to regular hardsuits