Skip to content

Commit

Permalink
Revolver Heavy Ammo Effect Change (#4706)
Browse files Browse the repository at this point in the history
# 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
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# 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 <[email protected]>
  • Loading branch information
Steelpoint and Steelpoint committed Oct 22, 2023
1 parent 3b00860 commit 1e890af
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
9 changes: 9 additions & 0 deletions code/datums/ammo/ammo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 3 additions & 2 deletions code/datums/ammo/bullet/revolver.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down

0 comments on commit 1e890af

Please sign in to comment.