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

Skill based achievements #41657

Merged
merged 3 commits into from
Jun 30, 2020
Merged

Conversation

nexusmrsep
Copy link
Contributor

@nexusmrsep nexusmrsep commented Jun 28, 2020

Summary

SUMMARY: Content "Skill based achievements"

Purpose of change

Batch two of new achievements.
This time they are skill based, triggering on level 10 7 and 20 10 of each skill.
Achievements for skill 20 10 are hidden by achievements for skill 10 7.

Also fixed leveling up not triggering the event.

Describe the solution

  • Free Trader
  • Cut-Me-Own-Throat Dibbler
  • Eloquent
  • Silver Tongue
  • HackerMan
  • Still not quite like Kevin
  • MD
  • Dr House
  • Engineer
  • MacGyver
  • Trapper
  • Minesweeper
  • Ace Driver
  • The Stig
  • Swimmer
  • Michael Phelps
  • Do-It-Yourselfer
  • Jack of All Trades
  • Master Chef
  • Hell's Kitchen
  • Tailor
  • Fashion Designer
  • Survivalist
  • Bear Grylls
  • Ohm's Law
  • Nicola Tesla
  • Bull's Eye
  • Robin Hood
  • Eagle Eye
  • Deadshot
  • Gunner
  • Rocket Man
  • Small But Deadly
  • Dirty Harry
  • Rifleman
  • Soldier
  • Double Barrel, Double Fun
  • Elmer Fudd
  • Spray'n'Pray
  • SMG Goes BRRRT!
  • Yeet!
  • Kobe Bryant
  • Brawler
  • Street Fighter
  • Batter
  • Stone Age
  • Way of the Sword
  • Miyamoto Musashi
  • Elusive
  • Neo
  • Cold Steel
  • Jack the Ripper
  • Road to Shaolin
  • Mr. Miyagi
  • Burglar
  • Locksmith
  • Periodic Table
  • Heisenberg

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.

@nexusmrsep nexusmrsep added [JSON] Changes (can be) made in JSON Game: Achievements / Conducts / Scores Player goals and how they are tracked. <Bugfix> This is a fix for a bug (or closes open issue) [C++] Changes (can be) made in C++. Previously named `Code` labels Jun 28, 2020
@kevingranade
Copy link
Member

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

@anothersimulacrum
Copy link
Member

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 );
Copy link
Contributor

@Valares Valares Jun 28, 2020

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)...

Copy link
Contributor Author

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.

@nexusmrsep
Copy link
Contributor Author

nexusmrsep commented Jun 29, 2020

@anothersimulacrum
Perhaps the best course of action would be reducing level 20 to 15. Then either keep the lvl 10 achievements where they are, or add another set for lvl 5. Although low level achievements might be too easy to get and thus not much of an achievement at all. What would you recommend?

@anothersimulacrum
Copy link
Member

anothersimulacrum commented Jun 29, 2020

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.

@nexusmrsep
Copy link
Contributor Author

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.

@ZhilkinSerg ZhilkinSerg merged commit 537b773 into CleverRaven:master Jun 30, 2020
@nexusmrsep nexusmrsep deleted the skill_achievements branch June 30, 2020 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
<Bugfix> This is a fix for a bug (or closes open issue) [C++] Changes (can be) made in C++. Previously named `Code` Game: Achievements / Conducts / Scores Player goals and how they are tracked. [JSON] Changes (can be) made in JSON
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants