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

Moar achievements #545

Merged
merged 15 commits into from
Nov 29, 2023
Merged

Moar achievements #545

merged 15 commits into from
Nov 29, 2023

Conversation

Gboster-0
Copy link
Contributor

@Gboster-0 Gboster-0 commented Nov 12, 2023

About The Pull Request

Brings our achievements (mostly) up-to-date with TG (two were left behind due to us simply not having the features that are needed for them)

Full list of ports:

Why It's Good For The Game

Moar cool stuff

Changelog

🆑 Ghommie, Jacquerel, Melbert, Rhials, Distributivgesetz, Hypernoblium, Gboster
fix: Hypernoblium - Fixes a selection window in the game rock-paper-scissors with death.
add: Distributivgesetz - Add an achievement for saving a cascading engine from the final countdown.
code: Distributivgesetz - Moved some job-related achievements from the misc category to the jobs category.
add: Rhials - The roundend report will now read out any achievements ("cheevos" as you may know them) earned by players over the course of the round.
balance: Melbert - The "Long Shift" achievement is now feasibly obtainable, and admins can no longer trigger it unknowingly
add: Jacquerel - You can now earn an achievement for completing the Grand Ritual.
fix: Jacquerel - Summon Magic and Summon Guns work again
add: Ghommie - Added a score award that counts how many achievements you've unlocked so far.
add: Ghommie - Added an Indebted negative quirk to the game, which gives the holder's bank account a debt averaging at 15000 credits (with a variation of 1250 cr) and forces 75% of all earnings towards solving it. A little prize awaits those who actually extinguish it.
qol: Ghommie - The Achievements UI now shows how many people have unlocked a given achievement.
fix: Ghommie - The "Skills" Category for achievements should no longer be hidden.
fix: Ghommie - The "Unlocked Achievements" score will now be properly saved at the end of the round the first time it's loaded.
sound: Ghommie - Unlocking an achievement now plays a sound by default. You can change it in the Sound category of the game preferences.
/:cl:

Ghommie and others added 12 commits November 12, 2023 20:26
… (#77096)

Title. Basically, each time you unlock an achievement, the score goes up
by one. This PR is basically just an overglorified reference to a funny
game from a bygone era after all. It even comes with its own icon unlike
other scores. 💪 🐘

We've about 80 achievements in the game so far. It would be nice indeed
to see how many achievements players have unlocked and how high the
ladder goes.

:cl:
add: Added a score award that counts how many achievements you've
unlocked so far.
/:cl:
Adds an achievement for completing the Grand Ritual
Also, adds blackbox logging for the Grand Ritual feature so we can see
how much people are actually doing it

Also, while testing I noticed that Summon Guns/Magic were fucked, so I
fixed them.

Nice to have some stats.
Nice to get a juice reward for doing your wizard chores.
This Pull Request brings a new negative quirk to the list of negative
quirks: Indebted. As the title suggests, you start the round with a
pretty high debt of roughly 15.000 credits (give or take up to 1.250
credits), and everytime the account balance would increment, 75% of
what's earned will be pushed toward solving it instead.

Unlike other quirks, it is hidding from medical HUDs and the health
analyzers, because I frankly believe it's quite a stretch putting it on
the same plane as other quirks which are of a more "psycho-physical"
nature. However, examining the medical records will return a remark on
how the quirk holder has had some difficulties paying the checkup bill,
hinting it greatly. Examining their ID accurately will also report the
entity of the debt.

Ok, the PR is now ready. It fancies an achievement and a pin too, for
those who actually extinguish the debt.

I think it's cool to have a quirk that affects players from an angle
different than most of the others. It doesn't affect the mob directly,
brings no positive or negative moodlet, gives items, but it does cripple
what they can do with their own bank account. Sure, it can be
circumverted by "borrowing" another player mob's ID card, but frankly it
has a mild negative value on par with "Family Heirloom" so it's not a
big deal.

:cl:
add: Added an Indebted negative quirk to the game, which gives the
holder's bank account a debt averaging at 15000 credits (with a
variation of 1250 cr) and forces 75% of all earnings towards solving it.
A little prize awaits those who actually extinguish it.
/:cl:
…ot grant on admin restarts (#77195)

- "Long shift" can now be earned from sub 10 minute rounds rather than
sub 5 minute rounds

- Admin restarts no longer give out "Long shift"

I do not think this achievement can *possibly* be earned right now. Like
at all.

Nuke Ops and cult are the only antags that can possibly do it and it's
incredibly infeasible (requiring that they nuke the station or summon
Nar'sie in just 3 minutes!)

So I bumped up the timer to 10 minutes. This means that ops can get it
if they nuke the station in 8 minutes, cult can get it if they REALLY
speedrun, and revs can get it if they beeline the heads.

I checked the DB for stats on this achievement and it's only been earned
in 3 rounds across the last year - `208780` (admin restart due to a bug)
`192892` (admin restart due to a bug?) `186192` (admin restart).

So I also prevented admin forcing the round to end. (I don't know if it
catches admin reboots directly I'll have to check that.)

:cl: Melbert
balance: The "Long Shift" achievement is now feasibly obtainable, and
admins can no longer trigger it unknowingly
/:cl:
…e DB (#77621)

## About The Pull Request
Previously, it was only saved if the player unlocked at least one
achievement during the round, which explains why the high scores table
took several rounds to fill up.
Also, removed an unused proc.

## Why It's Good For The Game
Fixing a peeve.

## Changelog

:cl:
fix: The "Unlocked Achievements" score will now be properly saved at the
end of the round the first time it's loaded.
/:cl:
…he round (#77861)

The roundend report now has a section dedicated to achievements earned.
It will report the ckey/identity of the player, the earned achievement,
and where it was earned.

![image](https://github.com/tgstation/tgstation/assets/28870487/aa522eea-0334-4986-8177-557708e5d610)

Adds some more fun stuff to the roundend report, and contributes to the
recent uptick in achievement-related PRs.
:cl: Rhials
add: The roundend report will now read out any achievements ("cheevos"
as you may know them) earned by players over the course of the round.
/:cl:
…n. (#77900)

## About The Pull Request

Adds the "All Within Theoretical Limits" achievement. You get the
achievement for standing inside the engine room at the time where the SM
crystal heals from 0% health (when the crystal says "Crystalline
hyperstructure returning to safe operating parameters. Harmonic
frequency restored within emergency bounds. Anti-resonance filter
initiated"), and waiting until the SM heals to at least 25% health.

## Why It's Good For The Game

This rewards engineers who stay behind and try to save the engine even
in the most dire circumstances.

## Changelog
:cl: distributivgesetz
add: Add an achievement for saving a cascading engine from the final
countdown.
/:cl:
…(#78092)

Read title, this only affects the UI and not the database as far as I am
aware

The jobs category is painfully empty, only being home to four
achievements total. Meanwhile we have a ton of achievements inside the
miscellaneous category, a lot of which are not miscellaneous
achievements at all. Right now I just wanna focus on moving around
achievements from existing category to existing category though. This
improves achievement category spread overall by a small but necessary
amount.
:cl: distributivgesetz
code: Moved some job-related achievements from the misc category to the
jobs category.
/:cl:
## About The Pull Request

The rock-paper-scissors selection window was causing a TypeError in
tgui_alert


![image](https://github.com/tgstation/tgstation/assets/103851341/f6e1bb5b-3fc0-4d5f-83d5-a43082edc543)

## Why It's Good For The Game

One more achievement available

## Changelog
:cl:
fix: Fixes a selection window in the game rock-paper-scissors with
death.
/:cl:

---------

Co-authored-by: BuildTools <[email protected]>
## About The Pull Request
Checking the achievements UI now shows a line below the Unlocked/Locked
status for normal achievements, informing the user of how many players
have unlocked said achievement. It also contains a tooltip; within it is
a percentile comparison with the most unlocked achievement.

Beside that, I've added a check in the achievement unit test to
ascertain that all award categories are actually present in the UI, and
as well moved all `ui_data` to `static_ui_date` considering it is not
the sort of interface that has to be constantly updated like an air
alarm or an APC.

Here's a screenshot of the UI, with the tooltip where my cursor would be
(the hot damn! achievement was var-edited of course):
![Hot damn
th](https://github.com/tgstation/tgstation/assets/42542238/d80bfe3a-e755-4036-a360-276d5d3395dc)


## Why It's Good For The Game
This should provide some fundamental statistics for achievements, from
which contributors and players can deduct the rarity and bragging
rights.

## Changelog

:cl:
qol: The Achievements UI now shows how many people have unlocked a given
achievement.
fix: The "Skills" Category for achievements should no longer be hidden.
/:cl:

---------

Co-authored-by: san7890 <[email protected]>
Co-authored-by: Jordie0608 <[email protected]>
Unlocking an achievement now plays a sound. Which sound is played
depends on the associated preference of the player, found in the Sound
category of the game preferences UI.
The current options are a [glockenspiel
ping](https://freesound.org/people/FunWithSound/sounds/456965/), a
[beeps jingle](https://freesound.org/people/Eponn/sounds/619838/) and a
["tada!"
fanfare](https://freesound.org/people/plasterbrain/sounds/397355/), with
the obvious fourth option to not play a sound at all.

All sounds are from Freesound and are public domain. As such,
attributions are not required. The sounds have been also converted to
.OGG mono 44.1 Khz in accordance to the standards.

Enhancing the player feedback for unlocking an achievement with
choosable sounds.

:cl:
sound: Unlocking an achievement now plays a sound by default. You can
change it in the Sound category of the game preferences.
/:cl:
@Gboster-0
Copy link
Contributor Author

Gboster-0 commented Nov 12, 2023

WAIT I ADDED 77069 AT THE BEGINNING? WHAT THE ACTUAL HELL IS WITH THE PR. I SWEAR TO GOD ITS ELDRITCH
Well reverting it now would probably cause the PR to get deleted for no reason, so im leaving it in

@Gboster-0 Gboster-0 marked this pull request as ready for review November 12, 2023 21:19
Gboster-0 and others added 2 commits November 24, 2023 00:53
Instead of `/datum/award/score/achievements_score` counting achievement
datums in-game and trying to keep up with what the database has we now
just query the database for its current count of unlocked achievements
by overriding the procs the achievements panel builds data from. This
avoids cases like #79555.

Count is still loaded to achievement data datum so it can be saved at
round end.

@Time-Green
@dwasint dwasint merged commit 2aae3bb into Monkestation:master Nov 29, 2023
16 of 22 checks passed
github-actions bot added a commit that referenced this pull request Nov 29, 2023
@Gboster-0 Gboster-0 deleted the achievements branch November 29, 2023 05:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants