jp00p / AGIMUS

Discord bot for Friends of Desoto
MIT License
10 stars 9 forks source link

Use XP Level Requirement Progression Cap + Misc #449

Closed zmattingly closed 10 months ago

zmattingly commented 10 months ago

This PR adds in functionality that will set a static 420xp per level progression cap for levels past 176 in order to smooth out leveling progress now that the majority of badge users are high level.

The original system expanded the per level requirement endlessly which was fine initially, but it's become evident that this is having a negative effect on reliably generating new badges for people to trade with and the supply has dwindled.

Existing users that are already above 176 will finish out their current level using their old requirement and then once they've leveled will transition to using the new static requirement from that point forward. I've also added a new special badge that everyone over 176 will receive with the migration file to commemorate those old hard-earned levels.

Why 176 and 420?

I originally tried to find a target goal by looking at the XP totals for the top 25 users, finding the average, and then figuring out what Level and next-level-requirement that would map to. Even after removing the top 5 users as outliers, this brought me to Level 269 which was 606 XP to the next level. That still seemed pretty high if we're trying to inject some life into the system, so instead I just worked backwards from the goal XP of 420 (because it's funny and still reasonably large) which landed us at Level 176.

Other Stuff

Bunch of misc stuff in here too.

py-cord-dev 2.5.0rc5

So the main pycord project is still kinda stuck with some weird drama with the primary maintainer I haven't really looked into yet. I guess they can't release their official 2.5.0 version

It's been many many months now and instead they've just recommended people use this other fork for the time being to get the current functionality, so that's been bumped.

You'll need to do a make docker-build after merging and pulling this down

Migration

Once pulled down and with Aggy running you'll also need to run:

MIGRATION_FILE=./migrations/v1.28.0.sql make db-migrate

That's it

Should hopefully be some positive changes. 🤞