CleverRaven / Cataclysm-DDA

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

Melee proficiencies are mastered at comically fast rates #72988

Closed andrewhr closed 4 months ago

andrewhr commented 6 months ago

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

In https://github.com/CleverRaven/Cataclysm-DDA/pull/72693, melee proficiencies are remade as part of the engine instead of via EOCs, providing better integration with the engine features!

As part of that change, in an effort to port the proficiency XP gains, it was made so "800 swings is enough" - with the caveat focus will apply here, which didn't in the earlier EOC version. That's pretty reasonable, but the way to achieve that was a bit backwards IMO. Instead of gaining XP proportional to time, so let's say, "minutes worth of XP", it gains a fixed "1 second worth of XP" , and all proficiencies were made to be "X swings in seconds".

First issue is reported practice time is off other proficiency ballparks. The faster ones are often in the 2 to 4-ish hours, here we have in 20-ish minutes. The worse consequence, via practicing recipes we can pretty much master the proficiency before the first training session finish!

That's off with how proficiencies goes, and we're already skill gains are already faster than desirable in current iteration.

Solution you would like.

As mentioned, instead of toning down practice times and giving fixed XP, the implementation should account for proportional XP worth of minutes of practice.

This way, real world experience will be worth hours of practice drills against static wooden targets.

Describe alternatives you have considered.

Additional context

No response

anoobindisguise commented 6 months ago

That's interesting because I personally found that it was taking like 10x the time as before to train the proficiencies by actually fighting enemies - since it now adjusts for focus - funny that the practice recipes got super duper fast lol.

PatrikLundell commented 6 months ago

If practice recipes are meant to gain proficiency considerably slower than actual usage, those recipes should have it clearly stated (something along the lines of it being grinding, or considerably slower than actual usage, but with the benefit of not being in danger).

IdleSol commented 6 months ago

1. Intro I don't like the way things are going with all the melee and ranged skills and proficiencies. It looks weird. Perhaps we should not fix individual points, but think about a complete redesign?

2. Back on topic. I propose to focus on the number of strikes and the time it takes to deliver that strike.

Simplified example.

We need about 80 ticks (0.8 seconds) to hit with a knife. And to hit with a heavy weapon, we need about 170 ticks. Assuming that we need 800 (?) hits to learn the first level of proficiency. The time will be 640 and 1360 seconds.

Moreover, the time to strike depends on the skill and encumbrance of the character. The numbers are from memory, but for a knife the difference can be up to 20 ticks, between skill level 0 and high level. Let's add encumbrance (practicing with a backpack is a bad idea). And that difference can be x2.

It remains to be determined how many hits are needed to get a level. 800? 1k? 10k? We make a separate variable. And further adjustment takes seconds.

3. Let's go deeper Although this should be at the beginning. What is a proficiency level? Or what would it be responsible for if we were talking about reality? I don't know. I have no experience with any weapons.

So I'm going to fantasize. Let's assume that:

On a separate note, the names don't meet my definition.

Then, the familiarity level can be practiced in a peaceful environment. And you only need the weapon itself for training. Proficiency training time outside of combat should go faster than in combat. I'm not sure it should improve in combat at all. For implementation, it's coefficients on experience gained. K=1 and K=0 (or 0,1) for combat.

Pro level. You already need a target, like a dummy. And the situation is already reversed. In a calm environment, the character gets less experience than in combat. A floating coefficient, perhaps? The higher the % of proficiency learning, the lower the training coefficient and the higher the combat coefficient?

Master level. Only in combat.

Based on such definitions, appropriate bonuses could be given.

Familiar - cancel or reduce the chance of losing a weapon in combat. The chance that the weapon will fly out of your hands on impact. Pro - you could keep the stamina bonus. You strike correctly, so it costs less. Or add the speed of the strike. Or damage. Or all of them Master - I'd look at special techniques for weapons. But that would have to remake the existing martial arts system (or would it?). Otherwise it's the same as Pro but better.

4. Self-interested motives And since I'm biased. I'd like to propose we do a reverse pyramid.

graph TB

Familiar_melee --> Pro_cutting & Pro_bashing & Pro_piercing & Pro_unarmed

Pro_cutting --> master_sword
Pro_bashing --> master_maces

or

graph TB

Familiar_cutting  
Familiar_bashing  
Familiar_piercing  --> Pro_short_piercing & Pro_medium_piercing & Pro_long_piercing
Familiar_unarmed
Pro_short_piercing --> Master_knives & Master_shives
Pro_medium_piercing --> Master_fencing
Pro_long_piercing --> Master_spears & Master_polearms

So, the new character will be less dependent on weapons. More precisely, whatever he uses, he will gain and develop proficiency in skills. The main thing is to determine what you want to come to in the late stages. And the character from the late game, will train already with a certain type of weapon.

P.S. For translation, I used deepl translate. I apologize for any mistakes.

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.

l29ah commented 2 months ago

A Great Axe familiarity only gives one 3.125% less stamina consumption per swing in case of a fire axe, that is negligibly low anyway.