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

Krav Maga's Bone Breaker now targets all humanoids #34110

Merged
merged 5 commits into from
Oct 2, 2019

Conversation

jeremyshannon
Copy link
Contributor

Summary

SUMMARY: Features "Allow martial arts techniques to target humanoids"

Purpose of change

Add a JSON flag for human_target techniques, and add it to Krav Maga's Bone Breaker to replace the previous hack.

Describe the solution

Krav Maga's Bone Breaker technique (from #33602) previously used an opponent's armed status as a hack to check whether it was humanoid, and unarmed humanoid opponents were just not targeted at all.
This implements "human_target" as a new json flag, and techniques with this flag will not work unless the opponent has its species set to "HUMAN". This appears to be a reasonable approximation of "is it human-shaped?", or at least way better than just looking for a weapon.

Describe alternatives you've considered

Additional context

I haven't audited the monster jsons so there might be something lurking in there that has species: human set and yet is not a reasonable target for a limb break, but I doubt it. I don't think zombie children have their species set to human, but going over the JSONs is more than I want to deal with today.
Tested in-game, the Tough Zombie got Bone Breakered hard, while the Triffid just ate minor hits over and over.

@Night-Pryanik
Copy link
Contributor

Night-Pryanik commented Sep 20, 2019

We have a bodytype: human field in monsters definitions, maybe use that instead?

@jeremyshannon
Copy link
Contributor Author

Doable, but species seems like a better fit than just shape. We have human-shaped robots already, and I'd expect more of them in the future.

src/melee.cpp Outdated Show resolved Hide resolved
@ZhilkinSerg ZhilkinSerg added Accessibility Issues regarding accessibility <Enhancement / Feature> New features, or enhancements on existing [C++] Changes (can be) made in C++. Previously named `Code` [JSON] Changes (can be) made in JSON Melee Melee weapons, tactics, techniques, reach attack and removed Accessibility Issues regarding accessibility labels Sep 20, 2019
@Hymore246
Copy link
Contributor

To clear up a bit of confusion, I didn't call Bone Breaker a "hack" because it is a technique that is using the "disarms" attribute to check if the opponent has an arm to break. I did it because, it's a high powered disarming technique that is a "hack" because "disarms" attribute implies that the opponent has an arm to break.

The technique was originally designed to be an extremely strong disarm attack and as I mentioned before, I am completely fine with changing Bone Breaker's name and description if it was causing confusion on why it was only usable on an armed opponent. I will need to update Bone Breaker to prevent game balance problems once this merged due to the removal of the "disarms" attribute.

Lastly, please update MARTIALART_JSON.md with the new "human_target" attribute.

@Nacarbac
Copy link
Contributor

Doable, but species seems like a better fit than just shape. We have human-shaped robots already, and I'd expect more of them in the future.

Panzer Kunst aside, a lot of martial technique should still apply to humanoid robots - the joints will be weaker than the limbs, their ranges of motion and centre of gravity will be similar (probably more due to design choices than necessity). Of course they're still made of metal, so I'm not sure that actual locks and wrenching moves would be very effective with merely human strength. And the latest ATLAS videos from Boston Dynamics show that they're getting a lot better at not falling over when attacked by some crazy survivor with a broom...
So using "bodytype:human" might be appropriate in some cases where it's mainly body shape that counts - trips, say - at a lesser efficiency if human_target=false?

Co-Authored-By: Kevin Granade <[email protected]>
@jeremyshannon
Copy link
Contributor Author

I'll update the JSON doc as soon as I can get to it. Hymore, what's your feelings on Nacarbac's suggestion. Should there be both a human_target and a humanoid_target flag? Do you think any of the martial arts need that level of granularity?

@Hymore246
Copy link
Contributor

In truth, there should probably be attribute tags for all creatures that identify what body parts they have. For example, you could say all zombies have heads but then a Headless Zombie comes along. Not that this stops "Headshots" from firearms from working on them.

In this case, you might have to consider if it's even possible to break a robot limb the same way you can a normal human's limb. For things like androids, probably. For less human looking but still humanoid robots, I don't know.

src/melee.cpp Outdated Show resolved Hide resolved
Co-Authored-By: Kevin Granade <[email protected]>
@jeremyshannon
Copy link
Contributor Author

I did a little testing last night, and after killing a bunch of stuff it feels like this change makes it a little too strong. It's not good against anything inhuman, but it's very strong against the mostly-human monsters. The problem is the bone breaker seems to happen too often IMO, if it were scaled back in frequency the martial art would be just about right. I was getting one breaker after another, after another, for crazy damage.

Incidentally, it works against regular skeletons, but not juggernauts or other freakishly large zombies, so it looks like species:human does work pretty well for "is this reasonably human-like?"

@Hymore246
Copy link
Contributor

I did a little testing last night, and after killing a bunch of stuff it feels like this change makes it a little too strong. It's not good against anything inhuman, but it's very strong against the mostly-human monsters. The problem is the bone breaker seems to happen too often IMO, if it were scaled back in frequency the martial art would be just about right. I was getting one breaker after another, after another, for crazy damage.

It's the strongest unarmed attack in the game. It was balanced with the idea that an opponent would have to be stunned, downed, and carrying a weapon. You could also only use it once per opponent because it would remove the target's weapon and a technique with "disarms" cannot trigger against a target without a weapon. If you remove "disarms" not only does it make it easier to use Bone Breaker, but it also allows it to be used repeatedly to stunlock and do heavy damage. That is not something I accounted for when making the technique. As I mentioned above, I need to nerf the technique if "disarms" gets removed.

@jeremyshannon
Copy link
Contributor Author

If you remove "disarms" not only does it make it easier to use Bone Breaker, but it also allows it to be used repeatedly to stunlock and do heavy damage. That is not something I accounted for when making the technique. As I mentioned above, I need to nerf the technique if "disarms" gets removed.

Okay, would you like me to remove this from Bone Breaker and just leave the flag there for possible future use? I'm just trying to help you out here.

@Hymore246
Copy link
Contributor

If you remove "disarms" not only does it make it easier to use Bone Breaker, but it also allows it to be used repeatedly to stunlock and do heavy damage. That is not something I accounted for when making the technique. As I mentioned above, I need to nerf the technique if "disarms" gets removed.

Okay, would you like me to remove this from Bone Breaker and just leave the flag there for possible future use? I'm just trying to help you out here.

My apologies for being across rude in my previous replies, it's been a rough month for me and that was affecting my mood. I think this PR will work as long as I get a chance to go back and adjust Bone Breaker once it merges. So if you can the "humanoid_target" attribute to detect the right kinds of enemies, it should make unarmed Krav Maga better for everyone.

@jeremyshannon
Copy link
Contributor Author

It's cool, it didn't come across rude to me, more that I was unclear on exactly what you wanted me to do. I hope your troubles clear up for you soon.

As it stands, I think this PR is good to go. I'm not going to go over the monster JSONs with a fine toothed comb, but testing here and there it seems the work's already been done, and species: human is only set on things that are reasonably human-like. If any corner cases turn up they can be fixed as they are found.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[C++] Changes (can be) made in C++. Previously named `Code` <Enhancement / Feature> New features, or enhancements on existing [JSON] Changes (can be) made in JSON Melee Melee weapons, tactics, techniques, reach attack
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants