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

[1.0] Blessed rewrite #3

Merged
merged 50 commits into from
Jan 14, 2023
Merged

[1.0] Blessed rewrite #3

merged 50 commits into from
Jan 14, 2023

Conversation

HastagGuigui
Copy link
Member

@HastagGuigui HastagGuigui commented Nov 29, 2022

Guess what, we now have a brand new version of shellrhythm coming up!... I think you already knew about it.

This might be the biggest rewrite... so far.

So, what needs to be done in order to have this 1.0?

  • The bases of what we had with curses
    • Scoring
    • Accuracy/Judgements
    • Offset
    • Chart parsing
  • Compatibility with previous charts, as well as new chart format
  • Results screen
    • Actual screen
    • Results data dict ready to be used
    • Derivation graph
  • Linux compatibility
  • Calibration screen
  • Pause menu
  • Editor
    • Select different notes
    • Edit notes
    • Create notes
    • Fill out metadata
    • Save
    • Create end point
  • Layout creator
  • Options menu

if anyone wants to take a look, feel free to!

- New and updated logo
- Renamed index.py to old_index.py and game.py to old_game.py
- Updated requirements.txt
- First part of the rewrite: brand new index.py
- Updated README.md
- Languages! Hah!
- Pressing enter while selecting a chart will actually start something
- Chart internal conversion, just in case yk
- Debugging metronome by pressing T
- Random song at startup
- h
also the song starts properly upon going to gameplay
- Auto mode ready
- Judgements!
- For some reason offset didn't work: it does work now
- Generate a results file at the end (Results screen not implemented yet)
- Accuracy on top of judgements!
- Score! It caps at 1000000 and I just wrote a formula to calculate it, that's crazy am i right
- Misses count lmao
- way too much stuff am i right
- Calibration menu! Right now it's in a separate script: calibration.py
- Slight alteration of index.py to display the current beat in a cooler format (● ○ ○ ○)
- Fixed check_chart straight up not being called
- Conductor: added "startTimeNoOffset"
- globalOffset has been added to the options.json (which has been renamed to example_options.json!)
- currentLoadedSong tells the chart ID of the song being played back at the moment, which is then displayed on the title screen, on the top left corner!
- Title screen "bottom texts", which are like minecraft's splashes
- extended example_options.json with more stuff
- took into account these options
- ability to switch layouts through that options file
- idk i forgor
- 60 16 megabytes
- megaby
- by
- byyy^
- 6-6-6-6-600v
- eeee
- [] facilitate tasks, we have a world-beating architecture for mainframe systems
- Options now save data
- French language implemented
- The game ends a different way now, it just clears out the entire screen
- New default options file
- setOffset()
- Removed keys from results screen (this was for debugging purposes)
- Separated calibration.py into CalibrationGlobal and CalibrationSong (with CalibrationSelect to change between the two)
-Separated "renderNote", "calculatePosition" and "actualKeysRendering" out of "draw"
- Basic attempt at making online, absolutely doesn't work because there's no server to try everything out
- this probably sucks and is insecure af i am an absolute noob at networking
@HastagGuigui
Copy link
Member Author

HastagGuigui commented Dec 17, 2022

Now, before anyone panicks, online mode is NOT for 1.0, but for 1.1. this networking thing is mainly for testing.

HastagGuigui and others added 7 commits December 21, 2022 00:27
- Documentation folder! Moved CHARTING.md and CUSTOMLAYOUT.md files there
- some slight edit to the server thing
- editor command mode
- EDITOR.md to explain the Command mode and what i plan to do with the editing
- refactored a lot of internal code
- separated a lot of classes into their own files
- nothing broke
- added editor timeline and preview display
- :o works flawlessly
Danish localization & minor bug fixes
@HastagGuigui HastagGuigui changed the title [0.2] Blessed rewrite [1.0] Blessed rewrite Dec 24, 2022
- Bugfix: Fixed weird cursor on certain exits
- Bugfix: Fixed charts not playing after finishing one
- Bugfix: Fixed settings not automatically translating
- Titlescreen: Linked editor to titlescreen
- Editor: Added several controls to modify note position (both visually and beat-wise)
- Editor: You can now save (:w)
- Gameplay: Score now updates on auto-mode
- Gameplay: The beat preview is no longer off-centered
- Results: Results file is automatically created if the file doesn't exist
- Util: print_cropped now properly tiles the text in wraparound mode
HastagGuigui and others added 17 commits December 24, 2022 16:09
Thanks again to @ciulinuwu for reporting some of these issues (labelled with a "*")!
- Util: print_image returns False if the image doesn't exist
- ChartSelect: Added checks to prevent crashes if no image/icon is found
- ChartSelect: Switching selected songs now switches the background song
* Editor: Fixed inability to reopen the editor after closing it
- Editor: Informations about the currently selected note now show up
- Editor: fixed controls, previously you needed to hold shift to be able to move a note (that was unintentional)
- Editor: fixed "This chart doesn't exist" showing up even if the chart successfully loaded
- Editor: fixed artifacts showing up upon moving a note around
* Gameplay: Fixed empty charts after replaying a chart
- Main: Having an empty charts folder (or no charts folder at all) no longer crashes the game
- Editor: Timeline no longer graphically freaks out on beats that are not whole numbers
- Editor: Selecting the end level event will no longer crash the editor while trying to render the note info/processing the note position and will just display the beat position
- Editor: Command returned text no longer disappears after one frame
- Loading: Warning messages now display in yellow
- Editor: Key input panel coming up!
- Editor: ":p" (the place note command) partially working
- Editor: Added "create_note" to create a note lmao
- Docs: Added PYBASS3_LINUX.md, made to explain the workaround to make shellrhythm work on linux
- Editor: Added a default empty map on open
- Editor: Added a key change panel, to select a key for the note to be created
- Editor: Field preview height resized to not go through the timeline
- Editor: Added two new commands: :m and :mt. The first one moves the cursor by specified beats while the second modifies metadata.
- Editor: Added Z keybind, which allows to create a note at position.
- Editor/Docs: Added chained commands, that allows to run multiple commands at once with ;;
- Editor: Tweaked command input, by changing the cursor position, and fixing issues with typing.
- Locale: Created translate.py, which replaces the old way of translating and prevents crashes on missing strings
- Calibration: Refactored it into a class for easier access from other scripts
- Options menu/Calibration: Pressing C in the options turns on the calibration, and then asks you if you want to use the measured offset
- Options menu: Layout option, probably doesn't work at all.
- Editor: Added translation abilities to the editor
- Editor: added keybind to change the end position (Shift + Z)
- ChartSelect: Closed description box
- ChartSelect/Game: Added an auto toggle (A)
- ChartSelect/Locale: Translated control hints
- Editor: Added note settings menu, to modify some properties about a note (key, color) or to delete it (E)
- Editor: Auto note reordering on note creation
- Editor: :s or 1/2 to change cursor snap
- Options/LayoutEditor: Added layout editor, press L in options to use it.
- Options: Selecting layout option will show the currently used layout
- Calibration: Fully translated!... I think.
- Bottom texts: Added 6 new strings and updated 1 other
- Docs: Removed CHARTING.md as the editor is pretty much ready
- Docs/CUSTOMLAYOUT.md: updated it to mention the custom layout editor
- Docs/EDITOR.md: Removed Previous/Next bar as it doesn't actually exist
- Docs/PYBASS3_LINUX.md: Slight rephrasing, also added the official un4seen website
- Index: Added __version__
- Scoring: Added autosaving scores, which allows for local leaderboards
- Scoring/ChartSelect: Selecting a chart now shows local leaderboard
- Scoring/Loading: Added load_scores, which loads the scores for a specific map. It gets auto-called by load_charts.
- Gameplay : PERFs now reward a lil bit less than MARVs. (Now, they have an accuracy multiplier of 0.95)
- Gameplay/ChartSelect: Auto is now disabled by default
- Gameplay/ChartSelect: Auto no longer generates a ./logs/results.json
- Results: Moved ranks out of the class to be able to use them anywhere
- Conductor: there's this weird desync issue when using the pause menu that i need to fix
- Options: Renamed default player name from "Player" to "Unknown", to fit in with the unnamed player scores.

happy new year
- Index/Util: Added date formatting
- Options: You can now change the offset with left/right keys
- ChartSelect/Scores: Having way too many scores no longer makes rendering freak out
- ChartSelect/Scores: Relative dates are shown for scores made in the past 7 days
- ChartSelect/Scores/ResultScreen: You can now see the results screen of a specific score
- Titlescreen: Copyright updated
- Editor: Playtesting!
- Util/Results/Gameplay: Added the ability to generate boxes.
There's more but i need to gtg sleep lmao
- ChartSelect/Options: Added the ability to toggle between normal time format and shortened time format
- Editor: Moved textbox logic out of the editor class for later reuse
- Editor: Added metadata modification tab (ESCAPE)
@HastagGuigui HastagGuigui added this to the 1.0.0 milestone Jan 6, 2023
@HastagGuigui
Copy link
Member Author

HastagGuigui commented Jan 6, 2023

Final stretch issues

These are issues that need to be patched to consider #3 complete.

Thanks again @TheNachoBIT for breaking the game in ways I wasn't able to catch yet lol
There may be more, but it's 11.30PM here I need to sleep

- All: Removed lag on escape key
- Scoring: Fixed checksums not working properly. Scoring should now work perfectly fine.
- Util: Linux: Added support to the SIGWINCH signal, which clears the screen on terminal resize and prevents weird graphical issues
- Util: Windows: check_term_size() has been added to check if the window has been resized on platforms that do not support SIGWINCH (looking at you, Windows >:c)
^ Both points above fix #8

- Editor: Added playtest preview (SPACE)
- Editor: Added beatsounds
- Editor: Fixed text not rendering while typing
- Editor: Fixed #9, #10 and #12.
- Editor: Fixed saving straight up crashing
- Gameplay: Tried fixing offset issues
- Loading/Scores: Now checking for the chart's checksum and labels any scores who fail this check as "outdated"
- Util: Checking if we're not using Windows to make sure SIGWINCH isn't checked for when it's not defined
- Loading/Options: Added placeholder values if some are not defined
- Loading/Scores: Making sure that it doesn't crash if there's no scores folder
- README: Reverted last commit, I managed to fix #8
@HastagGuigui HastagGuigui self-assigned this Jan 7, 2023
- Index/i18n: Relative dates are now localisable
- Options: Added player name field
- Scores: Fixed several issues with score saving/loading, and implemented a new score system (Score v1.1)
- Editor: the :cp command
- Game/Results: moved Score Calculation from the Game Class to a standalone function in results.py
- Loading: Outdated scores are recalculated
- Results: Improved visibility of judgement count + Added debug info
- Util: Terminal now gets resized if too small (UNTESTED ON WINDOWS)
@HastagGuigui
Copy link
Member Author

You know what? I think it's good enough to be merged into main. Not fully ready for a proper release, more like a pre-release.

@HastagGuigui HastagGuigui merged commit 02e829f into main Jan 14, 2023
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.

1 participant