Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The state of counterattacks in the game #45158

Closed
Kelenius opened this issue Oct 30, 2020 · 14 comments
Closed

The state of counterattacks in the game #45158

Kelenius opened this issue Oct 30, 2020 · 14 comments
Labels
Melee Melee weapons, tactics, techniques, reach attack stale Closed for lack of activity, but still valid.

Comments

@Kelenius
Copy link
Contributor

Is your feature request related to a problem? Please describe.

Right now, most counterattacks are completely regular attacks that are performed automatically. A few of them have additional effects, but when the counters cost the same amount of moves as regular attacks, there's no point making them counters, because then they could be just regular attacks, with an added bonus that the player is able to control who he's attacking. Uncontrollable attacks that consume moves can be undesirable for many reasons: the player might want to prioritize a different target; the player might not want to fight at all; the player might not want to attack a specific zombie (boomers, zombies that strike back with acid, zombies that shock attackers); the player might be standing in the acid or being zapped; etc etc etc. Automatic consumption of moves is bad.

Describe the solution you'd like / Describe alternatives you've considered

Counters need something that makes them more interesting than a regular attack you can't control. There are a few ideas for this:

  • Make counters free move-wise again, but limit the survivor to one counter per turn. That way it's a useful addition that doesn't slow down the player without allowing simultaneously responding to attacks from 5 different enemies.
  • Make counters faster; e.g. 50% move cost. This lessens but doesn't solve the problems, and makes the counters somewhat useful compared to regular attacks.
  • Give new effects to the counters; higher accuracy was proposed. Requires an overhaul of martial arts.
  • Instead of making an automatic attacks, an enemy that attacks the player and triggers a counter would be marked for 1 turn; attacking that enemy would perform the counter. This also requires new effects for the counters, and an overhaul of martial arts; it also steps on the toes of onhit/ondodge/etc buffs.

I personally find ideas 1 and 4 most interesting, because 2 and 3 both involve the player automatically using moves and don't fix the fundamental problems, but for now I'd like to get the bug fixed, because melee is unplayable. 4 is also what has been suggested in

A clear and concise description of any alternative solutions or features you've considered.

Additional context

As I tested in #45138, right now the counters do make you skip a turn when you perform them.

@Kelenius Kelenius changed the title The state of counters in the game The state of counterattacks in the game Oct 30, 2020
@Xpyder
Copy link
Contributor

Xpyder commented Oct 30, 2020

I like the idea of counterattacks having effects. Since counters are always innately a part of the style you're using I think it makes sense for each counter to be adjusted to match the style.

I think #4 is the most interesting

  • Instead of making an automatic attacks, an enemy that attacks the player and triggers a counter would be marked for 1 turn; attacking that enemy would perform the counter. This also requires new effects for the counters, and an overhaul of martial arts; it also steps on the toes of onhit/ondodge/etc buffs.

Martial arts already has techniques the game pulls from, I suspect it might not be too difficult to add counter "techniques", though I'm not sure about marking. Also the mark itself should probably have a visual indicator (not sure what the procedure for letting tileset authors know is) and we should decide how we want the auto-attack to prioritize if there's multiple counters in a single turn.
As a result I think the marking would end up being a longer term goal

My instinct would be for the initial adjustments to generally be as follows:
(with exceptions being made in a couple cases)

  • a check to see if you're on dangerous terrain or may otherwise wish to abort the counter, and a prompt
  • a significantly reduced move cost
  • reduced damage
  • and some small effect such as
    • a minor stun on that mob costing it some move points that round [like a solar plexus strike or stumble]
    • reduced accuracy [like if you hit their arm]
    • a slow (speed penalty for moving squares) [like if you hit their leg]
    • a disarm
    • a knockback (probably without damage for balancing)
    • a knockdown (probably without damage for balancing)
    • a full stun (probably without damage for balancing)

@Xpyder
Copy link
Contributor

Xpyder commented Oct 30, 2020

This also raises the question of whether Block and Dodge should have a small move speed cost or if they should be free since the counter can be assumed to be a part of that action

@wapcaplet wapcaplet added the Melee Melee weapons, tactics, techniques, reach attack label Oct 31, 2020
@Venera3
Copy link
Member

Venera3 commented Nov 1, 2020

Rolling counterattacks in with ondodge/onblock buffs honestly makes sense, since they are already kind of shorthand for "better positioning in preparation of a counterattack".
Playerside communication could be handled with a combat log string ( you dodge/block the X and leave it exposed ) + a status on the mob itself visible in the V menu.
Since some techniques already require a certain status on the target that could be reused for the mark status, possibly with MA-specific marks to disallow minmaxing (changing from a low damage-high counter chance MA into a low counter chance-devastating finisher one on the fly).

@kevingranade
Copy link
Member

Uncontrollable attacks that consume moves can be undesirable for many reasons

Undesirable does not mean "is bad for the game". "Taking damage" is likewise "undesirable".

Automatic consumption of moves is bad.

This needs justification, it's a drawback, but that doesn't mean it's bad for the game.

  1. Is a non-starter, instead I want to give blocks and dodges a move cost, them being "free" or "instantaneous" is a source of bugs and makes no sense narratively.
  2. Is supported, but should be evaluated on a per style basis along with other stats of the counter.
  3. Also supported already, also requires evaluation of each style as a whole along with the stats of each counter.
  4. Is my favored solution, but I don't want something so intrusive right before release, whereas the free counters were a constant source of bugs.

At the end of the day, neither blocks, dodges, or counters should be "free". Blocks, dodges, and counter-setups should have a low but meaningful cost (essentially the reciprocal of the dodges/turn and blocks/turn stat of the style), and counter-attacks should be treatied like any other technique for balancing purposes.

@GGgatherer
Copy link
Contributor

Undesirable does not mean "is bad for the game". "Taking damage" is likewise "undesirable".

Taking damage is quite a direct and easily-understandable mechanic: you let zombies chew on you, and in time you die.
Counterattcks in current builds are a noobtrap: one would think they are good but they actually lock your character into an action you have no control of (it's even worse when you are weary, I think you saw related issues). Try as I might, I can't see this as a mechanic that is good for the game.

@Kelenius
Copy link
Contributor Author

Kelenius commented Nov 2, 2020

Uncontrollable attacks that consume moves can be undesirable for many reasons

Undesirable does not mean "is bad for the game". "Taking damage" is likewise "undesirable".

These aren't comparable. It's an acquired ability, and an action that your character consciously performs. If it can be disadvantageous to use it, you should have control over when to use it. Improving your skills shouldn't come with such a weird downside.

@Xpyder
Copy link
Contributor

Xpyder commented Nov 2, 2020

Uncontrollable attacks that consume moves can be undesirable for many reasons

Undesirable does not mean "is bad for the game". "Taking damage" is likewise "undesirable".

While the latter is true, I think there is a problem here it just needs a higher degree of specificity

Block and Dodge counters are acquired as boons. Having them suddenly and unexpectedly stunlock you (for styles that get several blocks and dodges in a single turn like aikido) preventing escape from a group and potentially forcing a death is an extreme malus and antithetical to the idea of them as a combat boon. I suspect they're not balanced as though they're a negative trait (making other parts of the style more powerful in compensation).

In addition they are active actions the character performs, not things that happen to them. This indicates they should (in theory) have the potential to choose not to do them (like jumping off a ledge vs falling in a pit). If a character already has diminished moves, the extra cost of 2 counter attacks (one dodge and one block) may consume a large number of moves for undesirable effect.

I agree that they should have a move cost, and for the moment they should activate automatically. But I think there should be a way to temporarily disable them. The simplest I can think of would be to have the "Run" move speed disable counterattacks (and indicate such in the message). Then we can test and see if we still need to add the prompt if you're on a dangerous tile like Fire or Acid

@Xpyder
Copy link
Contributor

Xpyder commented Nov 2, 2020

We'd also need some way to allow you to interrupt a stunlock, maybe if a counter would drop you to 0 or fewer net movement points for the following turn it gets skipped with a message indicating something like "You try to perform a counter but aren't fast enough"

I'm thinking something like (queued movements) > (speed) maybe?
Or I thought I saw a function that lets you a peek ahead in time though I'd expect that to be expensive

@kevingranade
Copy link
Member

maybe if a counter would drop you to 0 or fewer net movement points for the following turn it gets skipped

It already does that.

@Xpyder
Copy link
Contributor

Xpyder commented Nov 3, 2020

maybe if a counter would drop you to 0 or fewer net movement points for the following turn it gets skipped

It already does that.

sorry for the ambiguity, did you mean
A. The counter attack gets skipped leaving you with a bit of time on your next turn (so you could activate the Run stance if we implemented it that way)?

Or B. the next turn gets skipped, effectively stunlocking you?

If it's A then I think adding a check for Run stance might be a good solution for now.
(or if we want to keep Run as it is, adding a 4th called Flee that blocks pretty much anything other than moving but I'm not sure how I feel about adding more move stances atm [except for prone maybe])

@kevingranade
Copy link
Member

If a counterattack would cause you to have no move points at the start of the next turn, it is not triggered.

@Xpyder
Copy link
Contributor

Xpyder commented Nov 6, 2020

Interesting, I'll see if I can gather the time to look at the Counterattack code and see if I can PR a skip if you're in run stance (I'm still learning how we have stuff laid out so I don't know how much work it will take me to figure out how to make the check or where to put it)

Also if someone who experiences the "stunlock" could tell me how they experience it (does it skip your turn automatically or does it pause each turn just not give you enough moves to do anything) I'd appreciate it. If it does still stunlock you without pause it's possible it might have something to do with movement queuing or something else.

@stale
Copy link

stale bot commented Dec 7, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not 'bump' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

@stale stale bot added the stale Closed for lack of activity, but still valid. label Dec 7, 2020
@Hymore246
Copy link
Contributor

This issue can be closed thanks to the completion of #51949. Block and Dodge counters as they were no longer exist in the game.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Melee Melee weapons, tactics, techniques, reach attack stale Closed for lack of activity, but still valid.
Projects
None yet
Development

No branches or pull requests

8 participants