From 2437db67b52aaeac251116f4d5fb8227eed71132 Mon Sep 17 00:00:00 2001 From: Return Date: Sun, 24 Nov 2024 17:42:43 -0600 Subject: [PATCH] Twitch can no longer lower your next move beneath 1, no more obscene embeds on reagent spears (#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
Screenshots/Videos
## 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 <24881678+Arturlang@users.noreply.github.com> --- .../deforest_medical_items/code/chemicals/twitch.dm | 6 +++--- .../modules/reagent_forging/code/forge_weapons.dm | 7 +------ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.dm b/modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.dm index 17213bba3e77b..5af1f16cf8cb0 100644 --- a/modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.dm +++ b/modular_skyrat/modules/deforest_medical_items/code/chemicals/twitch.dm @@ -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 @@ -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 @@ -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 diff --git a/modular_skyrat/modules/reagent_forging/code/forge_weapons.dm b/modular_skyrat/modules/reagent_forging/code/forge_weapons.dm index 4d9b1faf25282..a242088ae2ca8 100644 --- a/modular_skyrat/modules/reagent_forging/code/forge_weapons.dm +++ b/modular_skyrat/modules/reagent_forging/code/forge_weapons.dm @@ -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 @@ -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)