Skip to content

Commit

Permalink
Twitch can no longer lower your next move beneath 1, no more obscene …
Browse files Browse the repository at this point in the history
…embeds on reagent spears (Bubberstation#2536)

## About The Pull Request
This fixes two bugs. Quoting the player reported bug:

Exploit #1 - Twitch Next Move modificier

This one needs a bit of VV to test mostly to speed up the conditions,
but its doable by a miner with a bit of skill.

You need the berserker armor of the chosen one, or alternatively, the
Dexterous mutation and a way to remove it (I think you can do so with
mutadone, but never tried, regardless!) and Twitch.
The short of it is that the next move variable is always edited with
multiplicatives, but Twitch was coded with an aditive, so alternating
one and another and then removing one effect and letting the other run
out would net you with a lower than 1 next move variable.

Exploit #2  - God Slaying Spear

This one is easy to test, basically you all got a spear with better
embeed stats than ninja stars, which embeeds most of the time thanks to
its high embeed chance, plus its armor penetration, with no chance for
it to fall out naturally so it has to be manually removed. Since it has
a Bulky weight class, its damage multiplier is 4 plus the pain
multiplier being 6, doing 24 damage per tick and on extraction, being
able to kill a person that gets it in 10 seconds, even if armored.

We had a whole clique abusing this as icecats on nova, and even
combining it with morphine.


https://github.com/Bubberstation/Bubberstation/blob/master/modular_skyrat/modules/reagent_forging/code/forge_weapons.dm#L136

## Why It's Good For The Game
Fixes some seriously game breaking bugs no one's abused yet, discovered
on Nova,

## Proof Of Testing

<details>
<summary>Screenshots/Videos</summary>

</details>

## Changelog

:cl: OrbisAnima (code for 1), ReturnToZender (code for 2)
fix: Fixes an exploit with Twitch, and the reagent forged spear's
embedding.
/:cl:

---------

Co-authored-by: Arturlang <[email protected]>
  • Loading branch information
ReturnToZender and Arturlang authored Nov 24, 2024
1 parent 4b8160a commit 2437db6
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
. = ..()

our_guy.add_movespeed_modifier(/datum/movespeed_modifier/reagent/twitch)
our_guy.next_move_modifier -= 0.3 // For the duration of this you move and attack faster
our_guy.next_move_modifier *= 0.7 // For the duration of this you move and attack faster

our_guy.sound_environment_override = SOUND_ENVIRONMENT_DIZZY

Expand Down Expand Up @@ -72,7 +72,7 @@
. = ..()

our_guy.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/twitch)
our_guy.next_move_modifier += (overdosed ? 0.5 : 0.3)
our_guy.next_move_modifier /= (overdosed ? 0.49 : 0.7)

our_guy.sound_environment_override = NONE

Expand Down Expand Up @@ -146,7 +146,7 @@

RegisterSignal(our_guy, COMSIG_ATOM_PRE_BULLET_ACT, PROC_REF(dodge_bullets))

our_guy.next_move_modifier -= 0.2 // Overdosing makes you a liiitle faster but you know has some really bad consequences
our_guy.next_move_modifier *= 0.7 // Overdosing makes you a liiitle faster but you know has some really bad consequences

if(!our_guy.hud_used)
return
Expand Down
7 changes: 1 addition & 6 deletions modular_skyrat/modules/reagent_forging/code/forge_weapons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@
inhand_icon_state = "spear"
worn_icon_state = "spear_back"
throwforce = 15 //not a javelin, throwing specialty is for the axe.
embed_data = /datum/embed_data/forged_spear
embed_data = /datum/embed_data/spear
slot_flags = ITEM_SLOT_BACK
w_class = WEIGHT_CLASS_BULKY
resistance_flags = FIRE_PROOF
Expand All @@ -133,11 +133,6 @@
bare_wound_bonus = 15
sharpness = SHARP_POINTY

/datum/embed_data/forged_spear
embed_chance = 75
fall_chance = 0
pain_mult = 6

/obj/item/forging/reagent_weapon/spear/Initialize(mapload)
. = ..()
AddComponent(/datum/component/jousting, max_tile_charge = 9, min_tile_charge = 6)
Expand Down

0 comments on commit 2437db6

Please sign in to comment.