CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.68k stars 4.19k forks source link

How strong is my punch and kick? #74009

Closed IdleSol closed 4 months ago

IdleSol commented 6 months ago

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

I started playing as a new character. He had no weapons and had to fight in unarmed combat. He was punching with his hands and kicking his target with his legs. A standard situation in the game.

But where in the game can you see the characteristics of these kicks? For weapons, it is indicated on the weapon. For techniques, in the corresponding menu.

But how much damage does a fist and leg kick do? And how many action points does it require? Is this damage always bash damage?

In general, how do you compare a punch with a regular fist to a punch with another weapon? How do you compare a fist punching technique and a more advanced fist punching technique, from some martial arts style?

In trying to answer these questions, I had to meddle with the game files. That's too bad, from a player's point of view.

I found the techniques:

And that they are referenced by the corresponding body parts from body_parts.json:

Similarly for the right arm and leg.

But there is no damage, no move cost, no damage type. In general, none of the things that are specified for weapons. Search in the files of fake weapons (fake.json) and weapons for unarmed combat (unarmed_weapons.json). Also gave nothing.

Question. Are these parameters defined somewhere? Or are they hard-coded in some function? And do not assume any changes? Are they affected by changes in skills, characteristics and proficiency?

Solution you would like.

Suggestions are as follows:

  1. Add fake_fist and fake_leg? Specify appropriate parameters for them as for similar weapons.
  2. For kicking and punching techniques, add modifiers for strength (dexterity?) and skill level (/and proficiency).
  3. Techniques should be included in the styles in which they are used (at least "No style", "Force unarmed" and "Brawling"). 3a. Bind techniques to fake body parts, as now some techniques are bound to weapons. Minus, does not show the parameters of techniques.
  4. Parameters from fake body parts, show in the "Wield items" menu. Separated by a line from the rest of the items.

pict1

  1. Add a new window to the martial arts menu. Called by F2. Shows the relevant part of the description of the weapon taken in hand. Or damage for empty hands, if there is nothing in the hands.

pict2

Describe alternatives you have considered.

The alternative is to do nothing. Or do only part of it. For example, include techniques in the appropriate styles.

Additional context

And while I've never seen a character hit his head. The techniques have a corresponding technique. https://github.com/CleverRaven/Cataclysm-DDA/blob/5b4b49b71e8a5fdc6b655bfec81be6cca39af9f9/data/json/techniques.json#L11

The problems are the same as the arms and legs. How much damage, how much it costs, and so on.

Venera3 commented 6 months ago

They are the vehicle for the base unarmed damage, which you can't get ingame either. That said, an UI including your currently available techniques with some info on them is a valid feature req, and I have some work to do in tech-land in the midterm.

IdleSol commented 6 months ago

They are the vehicle for the base unarmed damage, which you can't get ingame either.

If I've translated it correctly. I can't get the base damage value? Why?

PatrikLundell commented 6 months ago

If I understand it correctly, you can't get the value because there's no UI presenting it, i.e. it's not a design decision, but rather a case of nobody having made the info available.

Venera3 commented 6 months ago

Because there is no UI to show it, yes. Just like you don't get current vector bonuses because the UI isn't set up with that in mind.

The way I could see it work is a simple list of "currently available techniques" with some example damage values against an enemy +- showing the disqualified techs with a reason for that, but I'm not 100% sure all that will happen in one go.

IdleSol commented 6 months ago

Got it. I thought that their values were written in functions as constants, and that's why they are not available. And not that there is simply no interface for displaying them.

UPD. Am I understanding correctly that you are in the process of making changes to the combat system? You might be interested in adding this: #70969

github-actions[bot] commented 5 months ago

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.