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

Begin integrating new weakpoints info #52084

Closed
wants to merge 22 commits into from

Conversation

I-am-Erk
Copy link
Member

@I-am-Erk I-am-Erk commented Oct 3, 2021

Summary

Content "Now you can stab a zombie in the eye and it will go blind"

Purpose of change

With #51770, #51961, and #51979, @Joshua-Chin has been implementing a robust framework for detailed monster weakpoints and effects from hitting them, and I am way behind on actually using them in monsters!

Describe the solution

This will expand all this new weakpoint information to any zombies that already have weakpoints. I am not looking at non-humanoid monsters currently, because at least with zombies I can carry the same weakpoints forward to all the monsters.

  • Hitting the legs has a chance of knockodwn
  • HItting the arms has a chance to stagger your opponent
  • HItting the head has a chance of stun
  • Hitting the eyes has a chance of blinding, and if you do enough damage it can be permanent

In general, most weakpoints are harder to hit at range than in melee. If they are off the front-facing part of the zombie (eg an armpit) they are much harder. Small weakpoints are harder to hit with cut/bash weapons, and easier with stab/ranged attacks. Large ones like legs are easier to hit with wide sweeping cut/blunt attacks. Weakpoints on the extremities have decreased critical hit damage.

This covers all zombies that previously had weakpoints, plus feral humans, acid zombies, and fungals. It does not cover any animal zombies yet.

Describe alternatives you've considered

Posting this so people can review the numbers I've selected and offer feedback.

Testing

Still needs testing.

Additional context

This is so awesome.

We may wish to increase the base armour on some of these zombies, but I would suggest first to do some playtesting to see how much trickier I have made their weakpoints. The effective DPS tests have, for the time being, been set to ignore weakpoints altogether. We should develop new tests for weakpoints, and also buff armour as the weakpoints tests now find effective dps way higher against many zombies.

@I-am-Erk I-am-Erk added Game: Balance Balancing of (existing) in-game features. [JSON] Changes (can be) made in JSON Monsters Monsters both friendly and unfriendly. labels Oct 3, 2021
@I-am-Erk
Copy link
Member Author

I-am-Erk commented Oct 3, 2021

Also, @Joshua-Chin - it absolutely isn't necessary, but a ton of this is going to be repeated code. It might be nice to be able to create an independent weakpoints JSON object and just specify "weakpoints": "armoured_soldier" instead of copying it through.

I will have already done weakpoints for all of these before you can possibly get to that, so don't consider it a priority or anything.

@Joshua-Chin
Copy link
Contributor

With #51822, weak points should now support extend / remove based inheritance. That feature would cut down on the duplication. Have you run into any issues using it?

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Oct 3, 2021

No, that will work for monsters that copy-from each other. Just thinking of the work as a whole, where they don't copy. like I said though, it's not very important, it would just reduce line counts.

@I-am-Erk I-am-Erk marked this pull request as ready for review October 4, 2021 05:07
@PatrikLundell
Copy link
Contributor

I don't have any issue with humans/animals going blind from being hit in the eye, but zombies that regenerate from death surely should be able to regenerate eyes? The blob apparently doesn't bother with brains, and there are listener zombies, but still.

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Oct 4, 2021

I don't have any issue with humans/animals going blind from being hit in the eye, but zombies that regenerate from death surely should be able to regenerate eyes? The blob apparently doesn't bother with brains, and there are listener zombies, but still.

I've tried to leave regenerating creatures unable to be permanently blinded. For most other zombies it doesn't matter much, they're not generally long lived enough to put in mechanics for them to regrow in a few days to weeks

@kevingranade
Copy link
Member

Regarding long-term effects like blinding, we really aren't as concerned about the consistency of effects impacting zombies as we are the same thing for the player. Things impacting the player are very long lasting and continue to have an impact for potentially the rest of your game, effects on monsters are forgettable once you simply walk away.

There's a very simple version of this would be to simply refrain from carrying these effects forward if a zombie is downed and then raises unless it specifically changes the monster type.

@Joshua-Chin
Copy link
Contributor

Would it helpful for crit_mult, damage_required, and other similar fields to support shorthand, or is the current interface sufficient?

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Oct 5, 2021

Would it helpful for crit_mult, damage_required, and other similar fields to support shorthand, or is the current interface sufficient?

I don't think it's a big deal, I just had to play around with the format a bit. Now that there are examples for people to follow it shouldn't come up much.

@I-am-Erk I-am-Erk marked this pull request as draft October 5, 2021 22:09
@I-am-Erk I-am-Erk marked this pull request as ready for review October 6, 2021 01:19
@Venera3
Copy link
Member

Venera3 commented Oct 9, 2021

Going forward we really need to make effect information dynamic in the monster examination panel (at the moment all effects that are shown the player are hardcoded).
Also, when we have weakpoints implemented for a reasonable fraction of our monsters I'd advocate for removing skill-based damage scaling and extra effects from melee altogether - near as I can tell it's supposed to be a stand-in for "hitting the right spot" more or less. In more drastic measures, I'd also do away with critical hits as they stand, since we can now model them properly.

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Oct 9, 2021

I don't think we should eliminate critical hits, as there is still a difference between "hit the head" and "critically hit the head" for example. Weak points let us rationally divide the impact of criticals, so critically hitting the arm is far different from critically hitting the face.

I agree that once weak points are widespread we should be able to replace damage scaling with being able to hit weak points more easily

Co-authored-by: Kevin Granade <kevin.granade@gmail.com>
@I-am-Erk
Copy link
Member Author

I have decided to try doing this a slightly different way that should be more concise and also will enable some things I need for modding. Please bear with me while I redo most of the PR and create a robust inheritance system for zombies.

@I-am-Erk I-am-Erk marked this pull request as draft October 12, 2021 19:46
@Joshua-Chin
Copy link
Contributor

Sorry for the amount of duplication! I completely overestimated the use of copy-from inheritance. I assumed that most monsters would inherit from a parent, when in reality barely any do. Would moving weakpoints into their own object still be helpful, or does your current plan obviate the need?

@I-am-Erk
Copy link
Member Author

It turns out that for other reasons, I need monsters to share an inheritance structure, so I'll just add that instead of pussyfooting around it

@I-am-Erk
Copy link
Member Author

closing for now, will reopen in a new form very soon indeed.

@I-am-Erk I-am-Erk closed this Dec 15, 2021
@I-am-Erk I-am-Erk mentioned this pull request Dec 16, 2021
@I-am-Erk I-am-Erk deleted the weakpoints2 branch April 20, 2022 23:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Game: Balance Balancing of (existing) in-game features. [JSON] Changes (can be) made in JSON Monsters Monsters both friendly and unfriendly.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants