Skip to content

Commit

Permalink
[MIRROR] The Syndicate MODs are now resistant to batons knockdown. [M…
Browse files Browse the repository at this point in the history
…DB IGNORE] (#2957)

* The Syndicate MODs are now resistant to batons knockdown. (#83510)

## About The Pull Request

Adds a new Module preinstalled into the nukie suits, and purchasable in
the uplink, grants resistance to batons knockdown.

## Why It's Good For The Game

At the last coderbus meeting, i personally asked to Fikou and Mothblocks
for more baton counters to be introduced, they seemed to be ok with the
idea, so here we are.

Introduces an unremovable module which grants to the wearer resistance
to baton knockdown, it comes preinstalled in all syndicate modsuits.

With the fix of "rest to prevent disarm", stun batons have gotten even
more powerful than they once were, and while i do agree secret kinda
abusable tech is bad for the health of the game, the end result is that
the stun meta is even more prominent than ever, so it's a good time
introduce a small counter to it.

From a thematic perspective, Syndie suits should at least make people
feel afraid, which is hard to do when a single prod from a stun stick
will make you drop like a sack of potatoes, lose your desword and get
slashed to bits.

On the gameplay side, wearing one of these will make you a target for
the entire station, if a traitor is willing to expose themselves, or in
the case of nukies, forced to; they should probably have a small edge on
what's the most common tool used to stop them.

Keep in mind that this only prevents the knockdown, it does nothing for
the stamina damage, you'll still get stamcritted in a couple of hits,
nothing changes on that front.

This is merely to prevent a scenario where a single baton hit will
immediately lose you a fight.

## Changelog

:cl:
add: adds the MOD shock-absorption module, into the game.
add: The MOD shock-absorption module into the the uplinks, costs 4 TC.
balance: Nukie modsuits come with the shock_absorption module
preinstalled.
/:cl:

* The Syndicate MODs are now resistant to batons knockdown.

---------

Co-authored-by: EnterTheJake <[email protected]>
Co-authored-by: NovaBot13 <[email protected]>
  • Loading branch information
3 people authored and StealsThePRs committed Jun 10, 2024
1 parent 15675a3 commit 9aad8c4
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 0 deletions.
2 changes: 2 additions & 0 deletions code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm
Original file line number Diff line number Diff line change
Expand Up @@ -280,3 +280,5 @@
#define COMSIG_LIVING_THROW_MODE_TOGGLE "living_throw_mode_toggle"
///From /datum/component/happiness()
#define COMSIG_MOB_HAPPINESS_CHANGE "happiness_change"
/// From /obj/item/melee/baton/baton_effect(): (datum/source, mob/living/user, /obj/item/melee/baton)
#define COMSIG_MOB_BATONED "mob_batoned"
1 change: 1 addition & 0 deletions code/game/objects/items/melee/baton.dm
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,7 @@
if(!trait_check)
target.Knockdown((isnull(stun_override) ? knockdown_time : stun_override))
additional_effects_non_cyborg(target, user)
SEND_SIGNAL(target, COMSIG_MOB_BATONED, user, src)
return TRUE

/// Description for trying to stun when still on cooldown.
Expand Down
5 changes: 5 additions & 0 deletions code/modules/mod/mod_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@
applied_cell = /obj/item/stock_parts/cell/super
applied_modules = list(
/obj/item/mod/module/storage/syndicate,
/obj/item/mod/module/shock_absorber,
/obj/item/mod/module/emp_shield,
/obj/item/mod/module/magnetic_harness,
/obj/item/mod/module/jetpack,
Expand All @@ -241,6 +242,7 @@
applied_cell = /obj/item/stock_parts/cell/bluespace
applied_modules = list(
/obj/item/mod/module/storage/syndicate,
/obj/item/mod/module/shock_absorber,
/obj/item/mod/module/emp_shield,
/obj/item/mod/module/magnetic_harness,
/obj/item/mod/module/jetpack/advanced,
Expand All @@ -263,6 +265,7 @@
req_access = list(ACCESS_SYNDICATE)
applied_modules = list(
/obj/item/mod/module/storage/syndicate,
/obj/item/mod/module/shock_absorber,
/obj/item/mod/module/emp_shield,
/obj/item/mod/module/magnetic_harness,
/obj/item/mod/module/jetpack/advanced,
Expand Down Expand Up @@ -299,6 +302,7 @@
req_access = list(ACCESS_SYNDICATE)
applied_modules = list(
/obj/item/mod/module/storage/syndicate,
/obj/item/mod/module/shock_absorber,
/obj/item/mod/module/emp_shield,
/obj/item/mod/module/magnetic_harness,
/obj/item/mod/module/jetpack/advanced,
Expand All @@ -316,6 +320,7 @@
/obj/item/mod/control/pre_equipped/elite/flamethrower
applied_modules = list(
/obj/item/mod/module/storage/syndicate,
/obj/item/mod/module/shock_absorber,
/obj/item/mod/module/emp_shield,
/obj/item/mod/module/magnetic_harness,
/obj/item/mod/module/thermal_regulator,
Expand Down
26 changes: 26 additions & 0 deletions code/modules/mod/modules/modules_general.dm
Original file line number Diff line number Diff line change
Expand Up @@ -979,3 +979,29 @@
attempt_insert_storage(product)
balloon_alert(mod.wearer, "ammo box dispensed.")
playsound(src, 'sound/machines/microwave/microwave-end.ogg', 50, TRUE)

/obj/item/mod/module/shock_absorber
name = "MOD shock absorption module"
desc = "A module that makes the user resistant to the knockdown inflicted by Stun Batons."
icon_state = "no_baton"
complexity = 1
use_energy_cost = DEFAULT_CHARGE_DRAIN
incompatible_modules = list(/obj/item/mod/module/shock_absorber)
required_slots = list(ITEM_SLOT_BACK|ITEM_SLOT_BELT)

/obj/item/mod/module/shock_absorber/on_suit_activation()
. = ..()
ADD_TRAIT(mod.wearer, TRAIT_BATON_RESISTANCE, REF(src))
RegisterSignal(mod.wearer, COMSIG_MOB_BATONED, PROC_REF(mob_batoned))

/obj/item/mod/module/shock_absorber/on_suit_deactivation(deleting)
. = ..()
REMOVE_TRAIT(mod.wearer, TRAIT_BATON_RESISTANCE, REF(src))
UnregisterSignal(mod.wearer, COMSIG_MOB_BATONED)

/obj/item/mod/module/shock_absorber/proc/mob_batoned(datum/source)
SIGNAL_HANDLER
drain_power(use_energy_cost)
var/datum/effect_system/lightning_spread/sparks = new /datum/effect_system/lightning_spread
sparks.set_up(number = 5, cardinals_only = TRUE, location = mod.wearer.loc)
sparks.start()
6 changes: 6 additions & 0 deletions code/modules/uplink/uplink_items/suits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@
item = /obj/item/mod/module/noslip
cost = 2

/datum/uplink_item/suits/shock_absorber
name = "MODsuit Shock-Absorber Module"
desc = "A MODsuit module preventing the user from getting knocked down by batons."
item = /obj/item/mod/module/shock_absorber
cost = 2

/datum/uplink_item/suits/modsuit/elite_traitor
name = "Elite Syndicate MODsuit"
desc = "An upgraded, elite version of the Syndicate MODsuit. It features fireproofing, and also \
Expand Down
Binary file modified icons/obj/clothing/modsuit/mod_modules.dmi
Binary file not shown.

0 comments on commit 9aad8c4

Please sign in to comment.