1e59819f3a
Dim theme song volume when window is not focused.
Jeffrey Han
2015-01-10 20:14:39 -05:00
b525ab4533
Updated README.md with a link to the "releases" page.
Jeffrey Han
2015-01-08 20:10:30 -05:00
ab0d3d1528
Added mouse hover effects for song buttons in song menu.
Jeffrey Han
2015-01-08 16:28:49 -05:00
db4ca5f1d5
Minor optimizations. - Only retrieve song information String[] when needed. - Don't try to load glyphs if Unicode metadata is disabled.
Jeffrey Han
2015-01-08 12:03:39 -05:00
f6eac71643
Moved most Image creation into GameImage enum.
Jeffrey Han
2015-01-07 23:45:21 -05:00
8671718ce3
Moved most GameImage scaling/processing to a single file. - To scale an image, override process_sub() in its enum definition. All GameImages call the process() method when loaded. - Skin GameImage overrides will now call process() immediately, so there's no more need for the hackish scaling status.
Jeffrey Han
2015-01-07 22:36:39 -05:00
1e806bc9c6
SoundController refactoring. - Added enum classes SoundEffect and HitSound. - Added a SoundComponent interface for sound effects and hit sounds, and extended playSound() and playHitSound() methods to play any SoundComponent. - Moved features related to sample sets to the HitSound class, and rewrote sample sets as an internal enum class.
Jeffrey Han
2015-01-07 19:29:51 -05:00
3127571886
Smoother health bar changes. Also merged GameScore update calls into a single method.
Jeffrey Han
2014-12-30 01:17:05 -05:00
b0649541eb
Better emulation of main menu behavior. - Pressing 'Esc' will now always enter the MainMenuExit state. - Returning from MainMenuExit state does not reset button states: these must be manually reset by calling the reset() method.
Jeffrey Han
2014-12-30 00:41:32 -05:00
2592faec44
Renamed GUIMenuButton class to MenuButton. The class was originally named with the intent of adding many other GUI classes, but this never happened.
Jeffrey Han
2014-12-30 00:00:58 -05:00
9e69afac91
Added retry counter. Display number of retries (after retrying at least twice).
Jeffrey Han
2014-12-29 23:35:31 -05:00
cc84d4a3e4
Subtle fade in effect for circles and sliders. (#9) Also resize the "skip" button on hover. (follow-up 33f5df0)
Jeffrey Han
2014-12-24 02:45:43 -05:00
068a844e1f
Fixed music player issues with handling repeat tracks. When pressing the "next" button, songs will only be pushed when a new track plays. Fixes a potential null pointer crash.
Jeffrey Han
2014-12-24 00:25:26 -05:00
33f5df030c
Expand menu buttons when hovering. Added hovering capabilities to GUIMenuButton. The max scale and direction to expand the image can be modified per object.
Jeffrey Han
2014-12-23 23:41:37 -05:00
ce8ae40f79
Quick follow-up to #10. Don't play a sound upon exiting.
Jeffrey Han
2014-12-21 23:20:17 -05:00
31d8b77217
Merge pull request #10 from iceblade112/master
Jeffrey Han
2014-12-21 23:02:30 -05:00
bc7d19295b
Make default offset 0ms
Raymonf
2014-12-21 16:46:11 -05:00
5083229572
Fixed theme song loading in JAR files. (follow-up ce0eccd) Removed theme.osu, replaced with a comma-deliminated line in the configuration file.
Jeffrey Han
2014-12-20 21:35:18 -05:00
ce0eccd32b
Implemented skinnable theme songs. Plays a theme song when opsu! starts (can be disabled in options). The default song is "welcome to osu!" by nekodex, uploaded by CyberKitsune.
Jeffrey Han
2014-12-20 18:17:04 -05:00
9d3a12ad9c
Display checkpoint time on game screen after loading. Also fixed some indentation issues.
Jeffrey Han
2014-12-20 15:30:20 -05:00
47cf4f4af3
Fix hidden mouse cursor. Cursor is now properly hidden, instead of being a single black pixel. Credits to davedes.
Jeffrey Han
2014-12-20 15:10:46 -05:00
169e9c192a
Updated readme with Maven build information. (follow-up 54b5469, #7)
Jeffrey Han
2014-09-11 17:36:43 -04:00
54b5469b02
Merge pull request #7 from Tillerino/modularMaven
Jeffrey Han
2014-09-11 17:03:17 -04:00
40e08fd498
eclipse/ant -> maven
Till
2014-09-11 09:21:06 +02:00
51b50843e5
Added "Kochi Gothic" font. - Provides cross-platform CJK support. (follow-up to 904a54d)
Jeffrey Han
2014-08-25 12:47:10 -04:00
904a54df26
Added support for Unicode (non-English) metadata. - Setting is off by default, and can be switched on in the options menu. - Changed default font to "Arial Unicode MS" (CJK), with fallback to "Lucida Sans Console" (non-CJK). Cross-platform support may be added later.
Jeffrey Han
2014-08-24 23:48:52 -04:00
9a94c03b4e
Use UnicodeFont instead of TrueTypeFont. - Fixes issue #4.
Jeffrey Han
2014-08-24 14:48:27 -04:00
83e486054f
Catch (nearly) all exceptions thrown by OsuParser. - Properly handle bad input and log a warning. The game may run with some gameplay errors (ex. if no base TimingPoint is parsed), but it should not crash.
Jeffrey Han
2014-07-24 13:38:59 -04:00
39dcdf6dee
Reorganized libs. - All libraries are now packed as JARs, with sources and docs also packed and separated. - Added .classpath and .project to version control. - Updated ant build script.
Jeffrey Han
2014-07-20 13:21:13 -04:00
fe293827e6
More small bug fixes. - Always use '.' as decimal separator in options file, regardless of locale. - Properly handle bad input when initially parsing hit objects.
Jeffrey Han
2014-07-19 03:31:54 -04:00
834682a6ca
Minor bug fixes. - Fixed null pointer in "Main Menu" state if no tracks loaded. (since b0c0b44) - Fixed "keyOsuLeft" and "keyOsuRight" writing KEY_NONE to configuration file on first run (instead of default values).
Jeffrey Han
2014-07-18 21:33:07 -04:00
c0870afb77
Fixed issue where slider end distance calculations ignored repeats.
Jeffrey Han
2014-07-18 21:13:17 -04:00
64788b2832
Song sort refactoring. - Created "SongSort" enum to handle everything related to sorting OsuGroupNode objects.
Jeffrey Han
2014-07-18 20:33:41 -04:00
717605564d
Hit object refactoring. - Moved the bulk of hit object parsing into the OsuHitObject constructor, and made all fields private. Only combo-related data is still set by OsuParser. - Added 'isCircle()', 'isSlider()', 'isSpinner()', and 'isNewCombo()' methods for convenience.
Jeffrey Han
2014-07-18 15:11:57 -04:00
2380b11f48
Screenshot directory is now configurable. (requested in #4) - Directory must already exist if a non-default location is used.
Jeffrey Han
2014-07-18 00:56:37 -04:00
edf40e11fd
Added configurable game key bindings. - Game keys (default Z/X) can be changed to any letter or digit in the options screen.
Jeffrey Han
2014-07-17 23:58:37 -04:00
b0c0b44ef1
Major track length-related updates. - Parse and store the end time for every beatmap (i.e. end time of last hit object). - Added a 'length' sorting tab. - Added 'length' search condition. - Removed 'getTrackLength()' and 'getTrackLengthString()' methods, as they are no longer needed. - Added a loader spritesheet animation to render during MP3 conversions (in place of track length rendering upon completion).
Jeffrey Han
2014-07-17 21:16:15 -04:00
4ecd50f488
Added support for conditional search expressions. - Pattern: {type}{operator}{value} -- Types: ar, cs, od, hp, bpm (length not yet implemented) -- Operators: =/==, >, >=, <, <=
Jeffrey Han
2014-07-17 12:49:12 -04:00
0a5e7f66ec
Improved search feature. - Search is now more like osu!, where subsequent search terms limit the existing result list (as opposed to further expanding it). - Replaced global tag HashMap with String instance variables, since the previous implementation is incompatible with the above change (resulting in slightly higher memory usage and search times).
Jeffrey Han
2014-07-17 01:00:28 -04:00
cb396e0d20
Added "Easy" mod. - Halves all difficulty values and grants 3 "lives" instead of 1, with a score multiplier of 0.5x.
Jeffrey Han
2014-07-16 16:56:23 -04:00
7a187c4e4f
Game mod refactoring. - Created "GameMod" enum to handle all mod-related actions and store all related data.
Jeffrey Han
2014-07-16 16:01:36 -04:00
d5b7ff3516
Small visual tweaks. - Modified "LoadVerbose" option so that 'false' will display a progress bar (instead of nothing at all), and made this the default. - Slowed down a few shifting animations.
Jeffrey Han
2014-07-15 13:21:37 -04:00
943c2af178
Resolved some reported issues. - Threaded OGG loading (in addition to MP3) to eliminate delays in song select menu. (reported by xasuma) - Changed default OSZ unpacking location to a "SongPacks" directory to prevent unintended unpacking. (reported by Lanturn) - Fixed a null pointer for a corner case in 'getRandomNode()'. (reported by @iceblade112)
Jeffrey Han
2014-07-15 00:20:36 -04:00
f0f8160fa1
Merge pull request #2 from iceblade112/master
Jeffrey Han
2014-07-14 22:13:56 -04:00
f70f993999
Logo click changes on Main Menu
Raymonf
2014-07-13 17:53:56 +02:00
5aa9620834
Added option to disable sound effects from loading. (partially resolves issue #1) - By default, sound effects will be disabled on Linux due to driver issues.
Jeffrey Han
2014-07-10 22:01:39 -04:00
842563c6a5
Resolution improvements. - Players can no longer set a container size larger than the screen dimensions. - If the game resolution is equal to the screen size, the created window will be borderless. - Added some additional resolutions.
Jeffrey Han
2014-07-10 20:35:07 -04:00
95f969f62f
Major song menu improvements and fixes. - Song group nodes are now hidden when the group is expanded. - Setting a new focus will always move the focus into view. - Left and right arrow keys now shift focus by exactly 1 node. - Render the version string for unexpanded song group nodes containing only 1 beatmap.
Jeffrey Han
2014-07-10 19:13:53 -04:00
5a1972a2bd
Some code cleanup. - Overhauled OsuTimingPoint class: parsing is done in the constructor, and fields are no longer public. - Improved consistency of static/non-static fields in a couple of classes.
Jeffrey Han
2014-07-09 13:36:42 -04:00
50fb71e353
Implemented saving/loading from checkpoints. - A checkpoint (track position) can be set in the options screen, and also while playing by pressing "CTRL+S". - A checkpoint can be loaded by pressing "CTRL+L" while playing. This will reset all game data and begin from the checkpoint time; the ranking screen will be skipped upon song completion.
Jeffrey Han
2014-07-08 22:17:48 -04:00
2ed8e66bbf
Minor search feature fixes. - Search textfield now properly retains focus in song selection menu. - Clearing an invalid search no longer changes the current song.
Jeffrey Han
2014-07-08 19:03:43 -04:00
e7f74d8dd6
Added loading progress for sound files in splash screen.
Jeffrey Han
2014-07-08 14:08:06 -04:00
331f374a5b
Better positioning of mod icons and song menu header text.
Jeffrey Han
2014-07-08 13:38:16 -04:00
83c475cdc1
Java Sound crash fixes for Linux. (issue #1) - Explicitly supply the AudioFormat when creating a Clip. - Disable Master Gain if unsupported (e.g. in PulseAudio). - Do not try to play uninitialized sounds (e.g. LineUnavailableException during creation, seems to happen regularly with PulseAudio).
Jeffrey Han
2014-07-08 00:42:50 -04:00
a9cc7a3deb
Scale and rotate the cursor. - Cursor is now scaled based on window size. - Cursor now rotates slowly (new style only). - Cursor now expands upon mouse press.
Jeffrey Han
2014-07-06 23:13:33 -04:00
6d3c333a3f
Minor follow-up to d9c251e. - Added 'zip4j' library to ant build script.
Jeffrey Han
2014-07-06 02:27:53 -04:00
d9c251ef82
Added a module for unpacking OSZ archives. - Included 'zip4j' library to extract the ZIP archives. (Homepage: http://www.lingala.net/zip4j/) - OSZ files are unpacked from the root directory by default, and the path can be changed in the configuration file.
Jeffrey Han
2014-07-06 01:58:44 -04:00
dea7e942a3
Created a splash screen state for loading resources. - Game now boots to splash screen, which displays parser progress. - Added option "LoadVerbose" to disable rendering the progress text. - Main Menu backgrounds now fade in regardless of DynamicBackground setting (as a transition from the splash screen).
Jeffrey Han
2014-07-05 21:00:52 -04:00
0dbfd18c5f
Added a few missing keyboard shortcuts. - Main Menu: "P" (play), "Q" (quit) - Game: Ctrl + "R" (restart)
Jeffrey Han
2014-07-05 14:29:48 -04:00
83f13a8879
Added options for global fixed difficulty settings (CS, HP, AR, OD). - Added a new tab in Game Options screen containing the values.
Jeffrey Han
2014-07-05 01:24:01 -04:00
06f8dae037
Reduced unnecessary reloading of default images. (follow-up 16afcaf) - GameImage now stores both a default image and skin image, returning the skin image whenever available. - Default images are loaded once on startup, instead of before every game.
Jeffrey Han
2014-07-04 19:59:57 -04:00
16afcaf3e6
Added initial support for loading beatmap skins. - Added a GameImage enum for more organized loading of image resources. - Game image loading now takes place directly before each beatmap is loaded. - Added option 'IGNORE_BEATMAP_SKINS' to disable this feature.
Jeffrey Han
2014-07-04 16:41:52 -04:00
c72b9b955a
Quick fix for parsing invalid *.osu files.
Jeffrey Han
2014-07-03 18:50:44 -04:00
0b471fa1cc
Animated the score display.
Jeffrey Han
2014-07-03 02:03:56 -04:00
f195ffb861
Added support for default playfield image and an override option. - Credits: https://osu.ppy.sh/forum/t/198483 (image by Xiaounlimited)
Jeffrey Han
2014-07-03 01:05:23 -04:00
03be29307f
Misc. bug fixes and improvements. - Fixed Game not loading OsuFile for maps in a song group. (blame: 5612336) - Implemented rotations for reverse arrows, and added a new one by Alic1a. - "Auto" mod: pausing no longer requires click to unpause, and mod images are permanently drawn. - Program now loads from Main Menu instead of Options (unnecessary complications for the sake of a transition).
Jeffrey Han
2014-07-02 23:38:30 -04:00
2c2f28b441
Game options overhaul & new options. - Separated options into "Display", "Music", and "Gameplay" tabs. - New options: VolumeHitSound, DimLevel, PerfectHit - Added options that were previously missing from Game Options screen. - Added sounds to Game Options screen.
Jeffrey Han
2014-07-02 18:24:19 -04:00
812b83af45
Added extra checks in the parser for invalid line. Credits to xasuma for the report.
Jeffrey Han
2014-07-02 10:14:15 -04:00
56123363b3
Implemented dynamic main menu backgrounds. - This can be switched off in the configuration file. - Credits: https://osu.ppy.sh/forum/t/98954
Jeffrey Han
2014-07-02 03:02:11 -04:00
bcd0c23961
Added initial support for loading user skins. - "Skins" directory is created in the root folder, and reads files directly from there (for now). NOT ALL FILES ARE SUPPORTED. - To change the path (e.g. to an installed skin), edit the path in the configuration file.
Jeffrey Han
2014-07-02 01:53:42 -04:00
ab487c5e80
Replaced native cursors with skinnable ones. - Added support for both the new (2013+) and old cursor styles. These can be toggled on/off in the configuration file. - Added cursor images by XinCrin (old style) and teinecthel (new style).
Jeffrey Han
2014-07-01 19:32:03 -04:00
0604a25822
Added initial sound effect support. - Added SoundController module, which uses Java Sound since OpenAL has a slight delay on playing sounds. - Uploaded all effect WAVs. (credits: WWWskin, AL's IA, Fantasy's Skin, Minimalist Miku) - Added a missing entry in credits.
Jeffrey Han
2014-07-01 01:14:03 -04:00
60eaa42997
Only allow a single program instance to be run. Creates a ServerSocket instance on a port (default: 49250). Credits to marcostudios for the suggestion.
Jeffrey Han
2014-06-30 12:37:37 -04:00
6bdb026447
Added support for floating-point difficulty values (v13). Thanks to Marcin for the info and FieryLight for the report.
Jeffrey Han
2014-06-30 04:03:39 -04:00
9da166f60f
Initial commit.
Jeffrey Han
2014-06-29 22:17:04 -04:00