Skip to content

Commit

Permalink
ninja stungloves nerf + quirks (tgstation#77810)
Browse files Browse the repository at this point in the history
## About The Pull Request
the ninja stungloves are no longer a knockdown + shove in one click (not
a stun). clicking on people now first does the shove and THEN knocks
someone down for 3 seconds after a 0.3 second delay. this means you need
to click on them twice
ninja's stealth module now gives you the silent footsteps trait when
active
all ninjas now have the light step and freerunning quirks

## Why It's Good For The Game
ninjas really cool but he doesn't really need 1 click stuns in addition
to all his other tools, he can escape pretty much anything and has a
sword for melee encounters, and knocking someone down instantly is still
really powerful
ninjas getting quirks that fit them is cute i think, makes sense and is
useful

## Changelog
:cl:
balance: ninja's stealth module gives silent footsteps when active
balance: all ninjas now have the light step and freerunning quirks
balance: ninja's hacker module shove no longer stuns in 1 hit. first
shove knocks down and pushes away, second one stuns
fix: fixes ninja shoves not causing sparks
qol: the person in an energy net is now reasonable to hit, the dark part
of the sprite is now an underlay, so you can click the person inside the
net pretty easily and if you wanna hit the net you click the green part
or the darker sides that the human sprite doesnt cover
/:cl:
  • Loading branch information
Fikou authored Aug 24, 2023
1 parent 2021f8d commit e7ab583
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 12 deletions.
15 changes: 10 additions & 5 deletions code/modules/antagonists/ninja/energy_net_nets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,22 @@
desc = "It's a net made of green energy."
icon = 'icons/effects/effects.dmi'
icon_state = "energynet"
density = TRUE//Can't pass through.
opacity = FALSE //Can see through.
mouse_opacity = MOUSE_OPACITY_ICON//So you can hit it with stuff.
anchored = TRUE//Can't drag/grab the net.
density = TRUE //Can't pass through.
anchored = TRUE //Can't drag/grab the net.
layer = ABOVE_ALL_MOB_LAYER
plane = ABOVE_GAME_PLANE
max_integrity = 60 //How much health it has.
can_buckle = 1
can_buckle = TRUE
buckle_lying = 0
buckle_prevents_pull = TRUE

/obj/structure/energy_net/Initialize(mapload)
. = ..()
var/image/underlay = image(icon, "energynet_underlay")
underlay.layer = BELOW_MOB_LAYER
SET_PLANE_EXPLICIT(underlay, GAME_PLANE, src)
add_overlay(underlay)

/obj/structure/energy_net/play_attack_sound(damage, damage_type = BRUTE, damage_flag = 0)
if(damage_type == BRUTE || damage_type == BURN)
playsound(src, 'sound/weapons/slash.ogg', 80, TRUE)
Expand Down
8 changes: 6 additions & 2 deletions code/modules/antagonists/ninja/ninjaDrainAct.dm
Original file line number Diff line number Diff line change
Expand Up @@ -318,11 +318,15 @@
//Got that electric touch
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
spark_system.set_up(5, 0, loc)
playsound(src, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
spark_system.start()
visible_message(span_danger("[ninja] electrocutes [src] with [ninja.p_their()] touch!"), span_userdanger("[ninja] electrocutes you with [ninja.p_their()] touch!"))
Knockdown(3 SECONDS)
addtimer(CALLBACK(src, PROC_REF(ninja_knockdown)), 0.3 SECONDS)
return NONE

/mob/living/carbon/proc/ninja_knockdown()
Knockdown(3 SECONDS)
set_jitter_if_lower(3 SECONDS)

//CAMERAS//
/obj/machinery/camera/ninjadrain_act(mob/living/carbon/human/ninja, obj/item/mod/module/hacker/hacking_module)
if(isEmpProof(TRUE))
Expand Down
8 changes: 3 additions & 5 deletions code/modules/antagonists/space_ninja/space_ninja.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
preview_outfit = /datum/outfit/ninja_preview
///Whether or not this ninja will obtain objectives
var/give_objectives = TRUE
///Whether or not this ninja receives the standard equipment
var/give_equipment = TRUE

/**
* Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum.
Expand Down Expand Up @@ -110,9 +108,9 @@
if(give_objectives)
addObjectives()
addMemories()
if(give_equipment)
equip_space_ninja(owner.current)

equip_space_ninja(owner.current)
owner.current.add_quirk(/datum/quirk/freerunning)
owner.current.add_quirk(/datum/quirk/light_step)
owner.current.mind.set_assigned_role(SSjob.GetJobType(/datum/job/space_ninja))
owner.current.mind.special_role = ROLE_NINJA
return ..()
Expand Down
12 changes: 12 additions & 0 deletions code/modules/mod/modules/modules_ninja.dm
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,18 @@
use_power_cost = DEFAULT_CHARGE_DRAIN * 5
cooldown_time = 3 SECONDS

/obj/item/mod/module/stealth/ninja/on_activation()
. = ..()
if(!.)
return
ADD_TRAIT(mod.wearer, TRAIT_SILENT_FOOTSTEPS, MOD_TRAIT)

/obj/item/mod/module/stealth/ninja/on_deactivation(display_message = TRUE, deleting = FALSE)
. = ..()
if(!.)
return
REMOVE_TRAIT(mod.wearer, TRAIT_SILENT_FOOTSTEPS, MOD_TRAIT)

///Camera Vision - Prevents flashes, blocks tracking.
/obj/item/mod/module/welding/camera_vision
name = "MOD camera vision module"
Expand Down
Binary file modified icons/effects/effects.dmi
Binary file not shown.

0 comments on commit e7ab583

Please sign in to comment.