From 1e890af39d7c4b6233439fbaa8693a3918e35f5c Mon Sep 17 00:00:00 2001 From: Steelpoint <6595389+Steelpoint@users.noreply.github.com> Date: Mon, 23 Oct 2023 02:03:20 +0800 Subject: [PATCH] Revolver Heavy Ammo Effect Change (#4706) # About the pull request This PR changes heavy ammo for the Revolver to knockback a mob and slow them down instead of stunning it. # Explain why it's good for the game Combat balance is a precarious and often difficult conversation to hold, ergo I'll lay my biases out on the table at first. I'm a marine main at heart, but I have played a lot of xeno recently to gain a better understanding of their side of the story, enough that I feel confident to make these assertions. My belief is that the heavy ammo of the revolver is a negative concept for the game, and it needs to be removed, due to its stun factor. The issue here is readability and prediction. When you see a RPG, you know that it can fire a devastating warhead that can stun and kill T3s. When you see a Warrior, you know it can leap to 4 tiles to stun and drag a Human, when you hear a CAS strike you know exactly what is about to drop. When you see a Queen you know she can stun screech and neuro stun you. But the issue with the Revolver is it has no obvious tell. It is a small item, that can be fit inside backpacks, holsters, pouches, belts, armour slots. It has no obvious advance warning when you are going to fire it. There is no special uniform requirement making a revolver user standout amongst the crowd. There is no tell. The problem with the stun revolver is simply that is is a hard counter to all T1s and most T2s. Its ability to stun allows it to perform an attack that is uncounterable to a xeno as a xeno has no way to predict who may be carrying one. A xeno can tell who a Specialist is, a xeno can tell who has a shotgun or flamer or sniper or RPG, you can tell when a mortar is being prepared, or a CAS strike or even an OB. You can see the smartgunner. Even the Scout, a literal cloaked Marine, has to uncloak to fire. You can not tell who has a revolver until they pull it out and stun you. Once you are stunned you die. A xeno equilivant would be if any Xeno could be carrying a special tool that lets them grab a marine from 7 tiles away and pull them in plus stun them for 2 seconds. But any xenomorph could be using it, including a Lesser Drone. Perhaps the heavy revolver could be reworked to do something else, but ultimately the only reason anyone takes this ammo is for the stun. Anything else is beating around the bush. Those are my reasoning's, I'll leave the rest to the powers' that be. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: balance: Revolver Heavy ammo no longer stuns targets it strikes, it will instead knock them back and slow them down for a short time. /:cl: --------- Co-authored-by: Steelpoint --- code/datums/ammo/ammo.dm | 9 +++++++++ code/datums/ammo/bullet/revolver.dm | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/code/datums/ammo/ammo.dm b/code/datums/ammo/ammo.dm index c536ac83484c..a858c6b1f5a7 100644 --- a/code/datums/ammo/ammo.dm +++ b/code/datums/ammo/ammo.dm @@ -171,6 +171,15 @@ else living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) +/datum/ammo/proc/slowdown(mob/living/living_mob, obj/projectile/fired_projectile) + if(iscarbonsizexeno(living_mob)) + var/mob/living/carbon/xenomorph/target = living_mob + target.apply_effect(1, SUPERSLOW) + target.apply_effect(2, SLOW) + to_chat(target, SPAN_XENODANGER("You are slowed by the sudden impact!")) + else + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) + /datum/ammo/proc/pushback(mob/target_mob, obj/projectile/fired_projectile, max_range = 2) if(!target_mob || target_mob == fired_projectile.firer || fired_projectile.distance_travelled > max_range || target_mob.lying) return diff --git a/code/datums/ammo/bullet/revolver.dm b/code/datums/ammo/bullet/revolver.dm index 339609f57be7..633bf3e2f7ff 100644 --- a/code/datums/ammo/bullet/revolver.dm +++ b/code/datums/ammo/bullet/revolver.dm @@ -27,8 +27,9 @@ penetration = ARMOR_PENETRATION_TIER_4 accuracy = HIT_ACCURACY_TIER_3 -/datum/ammo/bullet/revolver/heavy/on_hit_mob(mob/M, obj/projectile/P) - knockback(M, P, 4) +/datum/ammo/bullet/revolver/heavy/on_hit_mob(mob/entity, obj/projectile/bullet) + slowdown(entity, bullet) + pushback(entity, bullet, 4) /datum/ammo/bullet/revolver/incendiary name = "incendiary revolver bullet"