-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Skill based achievements #41657
Skill based achievements #41657
Conversation
This pull request has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there: https://discourse.cataclysmdda.org/t/your-ideas-for-new-achievements-and-conducts/24008/29 |
Why achievements for level 20? That isn't achievable in normal play. |
@@ -3712,6 +3712,9 @@ void player::practice( const skill_id &id, int amount, int cap, bool suppress_wa | |||
get_skill_level_object( id ).train( amount ); | |||
int newLevel = get_skill_level( id ); | |||
std::string skill_name = skill.name(); | |||
if( newLevel > oldLevel ) { | |||
g->events().send<event_type::gains_skill_level>( getID(), id, newLevel ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why this extra if clause? Why not adding this in to the one with "Your skill in ... has increased"?
Achievements can only be done by the players character, as far as I'm aware, so that would make sense (in my opinion)...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Achievements do check for player being player, but that's being done on json level and technically can be omitted, so I'm not taking any chances. That might sound like an overkill but I'd rather have it this way, then having someone in the future scratching their head why some non-player event didn't trigger.
@anothersimulacrum |
I'm not sure - anything above 10 really isn't something normal to get, and in many cases it is not intended to be able to get a skill that high (see mechanics). The issue here is that many skills have quite different paths and levels of use. Fabrication, for example, is common to get to 10 because it has recipes using it all along the way, and generally those recipes get you nice things (melee weapons/armor). Computers, however, generally maxes out at around 8 because no books teach you more than that and it's much harder to get it higher through other methods. Similarly, mechanics will generally max out at around 8 or 9, simply because there's nothing that's attainable that requires you to go higher (but you can get it higher, if you really want). 10 is basically the skill level cap, and getting much more than a level past it is generally quite hard or impossible (without some insane amount of effort) - going past it is outside of normal play. It's also variant in difficulty to get there, from things like fabrication (easy) to computers (incredibly hard). Basically, I don't think all skills should have the same metric for what's a high level of accomplishment in it. Additionally, I don't think having achievements for getting it past 10 are really good to have, because they say that something that is intentionally not something you're supposed to do, or even be able to do, is possible. But I also don't want to waste the work you've done to write these achievements. |
After a small discussion it was agreed that if we perceive and balance the game for skill level 10 to be the limit in most cases, then the most appropriate levels for the tiers would be lvl 7 for first tier (expert in field) and 10 for second tier (god among men). I've adjusted proposed achievements accordingly. |
Summary
SUMMARY: Content "Skill based achievements"
Purpose of change
Batch two of new achievements.
This time they are skill based, triggering on level
107 and2010 of each skill.Achievements for skill
2010 are hidden by achievements for skill107.Also fixed leveling up not triggering the event.
Describe the solution
Describe alternatives you've considered
N/A
Testing
In game, on a temporary achievement set for 1-level skill. This led to a discovery that normal way of gaining skills didn't trigger the event designed for it. Fixed.
Additional context
As you can clearly see they are loaded with memes, pop culture references, inside jokes, etc. like they should be.