Commit Graph

151 Commits

Author SHA1 Message Date
LoveEevee
95eef4e8db Fix bgm_songsel playing on error 2020-03-16 19:00:32 +03:00
LoveEevee
8f736b5b23 Fix weird sound on error and long lines not wrapping 2020-03-16 18:34:18 +03:00
LoveEevee
4b37150ee0 Improve the song loading screen error message 2020-03-16 16:42:36 +03:00
LoveEevee
a25e108a4b SongSelect: Session sound effects play in appropriate sound channels 2020-03-16 15:22:16 +03:00
LoveEevee
33b9b206a7 Improve the loading screen error message
- Fix subtitle if the previously selected song had the same title
2020-03-16 12:54:21 +03:00
LoveEevee
0144367c6e Fix importing custom songs 2020-03-14 12:44:29 +03:00
LoveEevee
7f1bb9d357 Multiplayer improvements and reupload score on error
- In multiplayer you will play at the bottom if you joined second
- Add a dialog to song select that score has not been saved
- Uploads the score when logged in again
- Translate error messages from the server
2020-03-14 07:50:04 +03:00
LoveEevee
2af924a985 Add everything for accounts 2020-03-13 05:34:54 +03:00
LoveEevee
9248a52194 Lots of bug fixes
- Toggling autoplay checkbox in debug now disallows saving the score
- Fix crown of the song that was previously selected rendering above the genre
- Outline of empty crowns is slightly darker
- Fix rendering when there is a crown on oni and no crown on ura
- Fix crowns overlapping the netplay 2P icon
- Fix gauge in latency calibration
- Fix debug to work on mobile, can be toggled with ctrl+alt+`;` on hacker's keyboard with permanent notification
- Fix being unable to scroll the settings list without toggling something
- Handle KeyboardInterrupt in server.py
- Fix category jumping not working in session mode
- Fix mouse cursor being hidden at results screen in session mode
- Make "Issues" on the about screen and "An error occurred, please refresh" on loading screens translateable
- CanvasCache uses integer increments for comparison instead of Date.now()
- For imported songs, exclude song titles from genre comparisons if they appear in the name of the folder
- Fix tja files with spaces in the notation
- Fix second player's score on the results screen to have upside down appearance
- Add fixed chinese strings
2020-03-09 15:36:57 +03:00
LoveEevee
1759772831 ScoreStorage: Use hashes instead of song titles 2020-03-07 04:48:30 +03:00
LoveEevee
0221c977c8 SongSelect: Add crowns
- Improve the soul gauge to fill properly. The algorithm is different for each difficulty.
- Saves score to localStorage, the whole score is correct now.
- Adds crowns to song selection screen.

The scores would take a lot of space if stored as readable objects so they are stored compressed. If you need to edit your scores, you can do so by opening dev console and entering `scoreStorage.get()`. Expand to the song and double click on values that you need to edit. When you are done editing, do not forget to save your scores with `scoreStorage.save()`. Adding new scores can be done with `scoreStorage.add`, first get a template with `obj=scoreStorage.template(),obj` and after editing, add it with `scoreStorage.add("song name", "oni", obj)`. To remove a score use `scoreStorage.remove("song name"[, "oni"])`.
2020-03-06 20:57:01 +03:00
LoveEevee
21259abdda Scoresheet: Save results to localstorage 2020-03-06 19:02:40 +03:00
LoveEevee
c76931e7db Add category jump buttons to song select 2020-02-22 20:27:57 +03:00
Bui
28b837fbf1
Merge branch 'master' into cat-jump 2020-02-22 13:50:46 +00:00
Bui
750dc66245 improve category jump 2020-02-22 13:09:07 +00:00
LoveEevee
ff09cb83bd Add global offset
Adds new settings for controlling the note offset while playing. It can be either an actual offset (it is called "Audio Latency" in the settings) or just the visual offset ("Video Latency").
With higher audio latency it means you have to press the button sooner than what you hear, similarly with higher video latency it is sooner than what you see. By offsetting these events the game would play better, however, the sound effect of you hitting the drum would still play at the wrong time, the code cannot anticipate you to hit the drum in the future so to work around this issue a new option that disables drum sounds is also included.
These settings could be set through trial and error but it would be better to get the correct values through the automated latency calibration, where you can hit the drum as you hear sounds or see a blinking animation. I tried making one by measuring latency from user input, adding all the latency up, and dividing, but that gives unreliable results. I hope someone suggests to me what I should be doing during the calibration to get better results, as I cannot figure what to do on my own.
2019-11-28 09:04:40 +03:00
Bui
34d0bd01d4 SongSelect: category jumping 2019-11-27 01:45:28 +00:00
Bui
7a50dec558 fix maker detection for local tja 2019-11-26 13:40:42 +00:00
Bui
ea04771d00 always save selected song 2019-11-25 16:38:14 +00:00
Bui
30bc2b1002 handle invalid maker ids 2019-11-25 01:44:40 +00:00
Bui
42f22a4f09 allow anonymous makers 2019-11-25 00:58:07 +00:00
Bui
67e418bc4d SongSelect: Add maker identification
requires maker_id(int) column in songs table, and a new "makers" table with maker_id(int), name(text), url(text)
2019-11-24 23:51:58 +00:00
LoveEevee
1bb3359784 Use stars on song select for score level 2019-11-04 17:20:44 +03:00
LoveEevee
f05b2518f3 Split language and tutorial, add gamepad settings 2019-04-16 21:06:41 +03:00
LoveEevee
879186c313 Add keyboard and gamepad settings 2019-04-05 22:53:51 +03:00
LoveEevee
cb64777012 SongSelect: Add Settings
- Resolution can be adjusted, as well as touch drum animation on mobile
- A translation text file "songtitle.txt" can be imported
  - Titles and translated titles are each on their own line, if a line begins with a language code, it will translate the song title that is above
  - An example file can be found here: https://gist.github.com/LoveEevee/65fe66f0b54c0536f96fd2f4862984d4
- The page will fail to load if version on the page does not match /api/config
- Disabled Tab key while playing, before hitting it would focus the version link
- Fix forcing branches in debug not working
- Fixed not being able to click on songs that do not have oni but have ura
- Fix unexpected category being used as a fallback
- Fix verticalText and layeredText not accepting anything except strings
2019-04-04 23:40:11 +03:00
LoveEevee
911da048bb Fix code
- Fixes code
2019-03-20 17:00:30 +03:00
LoveEevee
61a5d6d496 SoundBuffer: Set song volume
- Requires a new column in the database after preview: `volume` REAL
- The value is a volume multiplier, if the value is set to null or 1 there will be no change
- The volume can be set in debugger
- Imported TJA files are now read from disk every time the song is played, freeing some memory and making it easier to create charts
- Correctly parse TJA files with alphabet notes, added "A" and "B" notes, which appear as DON (Big) and KA (Big) respectively
2019-03-16 00:34:48 +03:00
LoveEevee
7ee8773e61 View: Fix donbg scrolling
- All metadata fields in imported TJA files are now optional
- Added new metadata fields: `TITLEEN` and `SUBTITLEEN` (`EN` can be any language id from strings.js)
2019-03-06 00:48:30 +03:00
LoveEevee
1aecc7d52f SongSelect: Use seconds for previews 2019-02-21 01:42:18 +03:00
LoveEevee
76e56736f7 Do not restart animation with d-pad 2019-02-18 01:29:18 +03:00
LoveEevee
03b9326733 PraseTja: Add branches
- Needs the following changes to the database: change `easy`, `normal`, `hard`, and `oni` to `TEXT` type
- When adding songs to the database and if, for example, a song's 7-star difficulty has a branch, instead of `7` input `7 B`, this is to display song's branch support on the song selection
- Branch can be forced in debug
2019-02-17 19:26:46 +03:00
LoveEevee
e677f2f032 Change some events, fix p2 sending gameend twice
- Fixed gameend being sent twice in p2
- Add `ready`, `loader-error`, and `song-select-random` events
- Fixed `session-start` not firing when invited, added event detail
- Fixed `language-change` being fired at startup
- Fixed `version-link` and `about-link` firing twice
- "#song=" will fire `song-select-difficulty`
- Removed `key-events` and `scoresheet-player2`, merged with `scoresheet` and made it more detailed
2019-02-15 01:10:34 +03:00
LoveEevee
adc45cb652 Custom scripting, #song=, translations
- A song can be linked directly by adding "#song=<id>" to the url, replace `<id>` with the id in the database, after loading it jumps immediately jumps to the difficulty selection
- Added tutorial translations
- Fixed song preview not playing
- Use text fallback for the logo when there are no vectors
- Increased combo cache by 1 pixel
- A custom javascript file can be loaded from config.json by defining "custom_js" value
- Added lots of events to help writing custom js files: `version-link, title-screen, language-change, song-select, song-select-move, song-select-difficulty, song-select-back, about, about-link, tutorial, import-songs, import-songs-default, session, session-start, session-end, debug, load-song, load-song-player2, load-song-unfocused, load-song-cancel, load-song-error, game-start, key-events, p2-game-end, p2-disconnected, p2-abandoned, pause, unpause, pause-restart, pause-song-select, game-lag, scoresheet, scoresheet-player2`
- Event syntax example:
```js
addEventListener("game-start", event => {
	console.log("game-start", event.detail)
})
```
2019-02-14 12:32:45 +03:00
Bui
913c0787ef audio overhaul 2019-02-04 09:14:42 +00:00
LoveEevee
4fdd98789e CanvasDraw: Move vectors to assets 2019-01-29 19:10:56 +03:00
LoveEevee
08fb3498f6 Titlescreen: Change logo 2019-01-28 04:57:18 +03:00
LoveEevee
05720b27f9 SongSelect: Translatable song titles 2019-01-25 04:42:05 +03:00
LoveEevee
e8768cc35e Strings: Translate views 2019-01-22 21:47:09 +03:00
LoveEevee
4cb84c3426 Replace difficulty badges, translate good/ok/bad 2019-01-21 22:08:02 +03:00
LoveEevee
59baa9f06f Titlescreen: Add language selection menu 2019-01-21 18:47:22 +03:00
xdavidwu
65f8e9018a SongSelect: compare id before clearing currentSongCache
Add id check to currentSongCache clearing.
Fixes subtitle rendering if title matches but not the same song.
Titles are not guaranteed to be unique, but ids are.
Title check is still here for tiles that are not songs.
2019-01-21 20:10:22 +08:00
LoveEevee
68341a43af SongSelect: Fix P2 working after importing songs 2019-01-17 03:16:26 +03:00
LoveEevee
3398791afe Controller: Separate game and view loops 2019-01-16 15:33:42 +03:00
LoveEevee
8bc9aee594 ImportSongs: Add song genre 2019-01-05 10:44:28 +03:00
LoveEevee
5f4048315d Miscellaneous bug fixes 2018-12-13 12:18:52 +03:00
LoveEevee
f6660a8de0 Disable multiplayer for local song select 2018-12-06 00:23:00 +03:00
LoveEevee
a435ed1a6d SongSel: Add browse for local songs button 2018-12-05 23:33:34 +03:00
LoveEevee
6e61e24d56 SongSel: Fix title cache 2018-12-02 20:45:03 +03:00
LoveEevee
14d98254bb Add browser support tests 2018-11-27 02:05:02 +03:00
LoveEevee
593e93f137 SongBg: Fix songs without a skin 2018-11-26 02:14:16 +03:00
LoveEevee
e43821ba48 SongBg: Add song skins 2018-11-26 01:42:24 +03:00
LoveEevee
3a92a9c950 View: Fix layeredText offset 2018-11-21 13:50:48 +03:00
LoveEevee
b6552ea25f SongSelect: Add sub-titles 2018-11-10 22:12:29 +03:00
Bui
074ee68ce0 don't reset difficulty 2018-11-06 21:41:03 +00:00
Bui
ddc3e1a4dc save current song position before session menu 2018-11-06 21:28:28 +00:00
LoveEevee
b06d6d8412 View: Blue gauge for second player 2018-11-06 22:26:58 +03:00
AioiLight
0fbf5d67e3 Fix Japanese Translation 2018-11-06 22:52:01 +09:00
LoveEevee
82963f7912 Disable scoresheet skipping, change multiplayer string and bg 2018-11-02 13:26:46 +03:00
LoveEevee
426bc160c6 P2: Add multiplayer session 2018-11-02 01:13:48 +03:00
Bui
2598a5014d add game config 2018-10-27 22:42:28 +01:00
LoveEevee
73e7d384cd Remove measures before first one, fix debug mouse events 2018-10-27 23:42:02 +03:00
LoveEevee
d7900ca083 SongSelect: Selectable text, assets cleanup, and bug fixes 2018-10-27 21:35:04 +03:00
LoveEevee
f90f6fe6e1 View: Rewrite 2018-10-25 17:18:41 +03:00
Bui
ab2e3d2417 update more keybinds 2018-10-23 15:51:55 +01:00
Bui
117e32e578 update default keybinds 2018-10-23 15:46:26 +01:00
LoveEevee
0b757c0983 Allow preview to start when there is an error converting 2018-10-18 02:54:00 +03:00
Bui
cb8b8b4a61 generate previews for songs 2018-10-17 22:16:53 +01:00
LoveEevee
773684c2cb Fix ios landscape again, add html linebreak to mailto 2018-10-14 14:25:10 +03:00
LoveEevee
89f352bc60 Add an issue template translation 2018-10-14 14:02:50 +03:00
LoveEevee
68d69d4a0a SongSelect: Add About screen 2018-10-14 11:14:36 +03:00
LoveEevee
4845ec106b Add ura stars to preview, add ura badge 2018-10-13 01:09:42 +03:00
LoveEevee
fecf4d86b6 Add fallback font 2018-10-12 21:21:21 +03:00
LoveEevee
f80565f25b SongSelect: Add ura difficulty 2018-10-12 21:04:28 +03:00
LoveEevee
39655fc534 Add .tja file support 2018-10-11 01:13:24 +03:00
LoveEevee
190beb224d Songselect: Add cache for shadows 2018-10-09 16:23:21 +03:00
LoveEevee
fac283174f Gamepad: Add left stick and TaTaCon D-Pad 2018-10-09 02:20:34 +03:00
LoveEevee
32caec8fac Keyboard: Add TaTaCon buttons 2018-10-08 23:32:25 +03:00
LoveEevee
d36d013551 Hide keyboard tutorial from mobile users 2018-10-06 18:09:57 +03:00
LoveEevee
e1b8b45d88 Change drum to match Switch, add fullscreen to songsel, fix tutorial 2018-10-06 16:24:23 +03:00
LoveEevee
c8acfc3188 View: Add touch controls 2018-10-05 20:03:59 +03:00
LoveEevee
59bce4d6ed Add pointer events to songsel and results 2018-10-01 14:48:25 +03:00
LoveEevee
fceb70897e Scoresheet: Change results screen 2018-10-01 10:33:43 +03:00
LoveEevee
9cd4bca060 Parsesong: Fix drumroll timing again 2018-09-27 21:39:25 +03:00
LoveEevee
f4dbb30f11 Add default backgrounds 2018-09-27 04:08:43 +03:00
LoveEevee
8ffcdc16ac Do not play song sel when scrolling, fix pause menu 2018-09-27 01:20:41 +03:00
LoveEevee
b053dffec1 Added song select music, more keys 2018-09-27 00:12:50 +03:00
LoveEevee
f72c09f4a6 Scoresheet keys, songsel background, auto/p2 for gamepad 2018-09-26 23:06:14 +03:00
LoveEevee
71e180c7d7 Changed song selection screen 2018-09-26 21:30:57 +03:00
LoveEevee
a49cc6a3c4 Add renda sound, dai notes scoring, fix music timing 2018-09-18 20:33:18 +03:00
LoveEevee
e8809285e0 Clean up classes before exiting them 2018-09-18 01:37:59 +03:00
LoveEevee
8e99da6aa2 Add 2-player mode 2018-09-12 20:10:00 +03:00
LoveEevee
1c92f3b344 Fix song previews 2018-09-11 20:24:40 +03:00
LoveEevee
2a6a6d0524 Fix some sounds 2018-09-11 17:50:10 +03:00
LoveEevee
0feb31227a Buffer every sound asset 2018-09-11 01:25:44 +03:00
LoveEevee
c7a47a56c6 Add element function 2018-09-09 07:11:05 +03:00
LoveEevee
79c4cfcd9d Lots of gameplay improvements 2018-09-05 19:46:26 +03:00
Bui
2405345291 add tutorial screen 2018-09-02 17:11:09 +01:00
LoveEevee
5a82469da5 Fix getting stuck at the loading screen 2018-08-29 08:55:16 +03:00
LoveEevee
2f717614fb Add autoplay mode 2018-08-28 02:56:31 +03:00