Commit Graph

250 Commits

Author SHA1 Message Date
yugecin
49e03add75 Make mirror collage toggleable ingame by pressing M 2016-10-01 13:58:10 +02:00
yugecin
70d006b645 make reversearrows scale to the bpm 2016-10-01 13:12:02 +02:00
yugecin
652bb4f2d0 add cursor color overrides 2016-10-01 11:53:33 +02:00
yugecin
eee65a589e fix first object movement 2016-10-01 11:34:32 +02:00
yugecin
5b264a5277 Option to hide all objects 2016-09-30 23:11:43 +02:00
yugecin
2b91288adb PIPPI! 2016-09-30 22:57:57 +02:00
yugecin
daa7bec0da Add mover direction 2016-09-30 21:40:33 +02:00
yugecin
2f5f2a610d add opposite combo color as override option 2016-09-30 21:32:24 +02:00
yugecin
8891976d48 Flash warningarrows after breaks 4 times instead of 2 2016-09-30 20:08:50 +02:00
yugecin
be547cfa1f Don't draw UI on breaks 2016-09-30 20:05:33 +02:00
yugecin
8c7531e550 prevent arrayindexoutofbounds 2016-09-30 19:56:47 +02:00
yugecin
b12ed6fa0e Also draw skipbutton when using auto 2016-09-30 19:41:42 +02:00
yugecin
f6b791cf25 Option to apply last object color to cursor 2016-09-30 19:38:02 +02:00
yugecin
add5e96af1 Options to use object color overrides 2016-09-30 19:05:53 +02:00
yugecin
05c29f1106 Fix warningarrows being rotated 180° instead of flipped horizontally 2016-09-30 16:17:51 +02:00
yugecin
3a1f510e31 option to hide all UI 2016-09-30 12:06:36 +02:00
yugecin
52f9ac9a7f only do dancer options (mirror etc) if auto is active 2016-09-30 09:36:21 +02:00
yugecin
73754e9c7d option to never draw background 2016-09-30 09:35:21 +02:00
yugecin
7f908db6e7 add option for mirrorcollage 2016-09-29 23:29:20 +02:00
yugecin
9a73ab23e9 render mirrored 2016-09-29 21:40:42 +02:00
yugecin
759187b4cd fix #3 (doesn't move to last object) 2016-09-28 13:49:33 +02:00
yugecin
eb696077a2 we want to dance 2016-09-27 21:29:03 +02:00
yugecin
e7e33cd406 put more information in gameobject 2016-09-27 18:17:53 +02:00
yugecin
db36ec390d Fix #177 2016-06-06 11:43:00 +02:00
Matteo Signer
d7c980e0a4 Misc. bugfixes 2016-04-04 10:59:50 +02:00
MatteoS
4b76d2c3cf Scoreboard improvements 2015-12-01 09:32:03 +01:00
Andrew Zhao
5b42f9a588 centered follow points 2015-11-29 18:58:00 -08:00
MatteoS
6f685cf5c7 Ingame scoreboard initial implementation 2015-11-29 09:56:10 +01:00
Jeffrey Han
ba240797d8 Replaced all linear fade-out transitions with eased transitions.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-11-19 17:47:46 -05:00
Jeffrey Han
fb789c8fc5 Follow-up to #150: delayed fade-out, minor style changes.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-11-19 16:56:28 -05:00
MatteoS
3e285e05fc Add falling game objects on fail 2015-11-18 22:29:18 +01:00
MatteoS
d0069c20e5 Fix pitch changes (hopefully) 2015-11-16 21:21:28 +01:00
Jeffrey Han
01fb9c50c9 Replace xy float[] arrays with Vec2f (mostly in game objects).
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-05 12:53:42 -05:00
Jeffrey Han
3214916d60 Load beatmap background images in a new thread.
This eliminates the game-wide lag (100-200ms on my computer) when switching song nodes. Attempted to mask the loading time with a fade-in effect.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-03 19:24:07 -05:00
Jeffrey Han
e767800702 Fixed broken "Easy" mod.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-09-03 00:14:25 -05:00
Jeffrey Han
8892973d98 Now using official formulas for circle diameter and timing offsets.
The previous formulas were extremely close, so you shouldn't notice any gameplay differences at all.

Circle diameter:
- Previously: 104 - (CS * 8)
- Now: 108.848 - (CS * 8.9646)

Timing offsets: added 1.5ms to 300, 100, and 50 hit result offsets.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-30 19:01:40 -05:00
Jeffrey Han
6d284cdd80 Organize imports.
Some of these got re-ordered when I updated Eclipse -- resetting to the original sort order.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-28 21:29:21 -05:00
Jeffrey Han
34c7942f4b Fixed "Hidden" mod timing issues. (fixes #121)
This introduces more accurate timing formulas associated with the "Hidden" mod (previously, in #115, these values were hardcoded).  The values seem somewhat close to the values in osu!, but were not extensively tested.

Also set an upper bound on the fade in time for hit objects proportional to the approach time, or else the timing values in the "Hidden" mod would be too inconsistent.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-28 21:12:47 -05:00
Jeffrey Han
c4f54ecc05 Hitting the "f" key during a replay changes the playback speed.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-28 19:41:02 -05:00
Jeffrey Han
b83d6be5fd Clarified GameImage "skinnable" field as "beatmap-skinnable".
Renamed some methods and modified comments to avoid this confusion, as game skins were implemented much later than beatmap skins.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-23 20:41:09 -05:00
Jeffrey Han
130f9bf445 Game ranking screen fixes.
- Show retry button only when appropriate (e.g. not when viewing replays or when playing with "Auto" enabled).
- Watching a (fake) "replay" with "Auto" enabled will actually just call the "retry" code now.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 22:06:27 -05:00
Jeffrey Han
441bb95a09 Added lots of 'final' modifiers to class fields where applicable.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 21:11:55 -05:00
Jeffrey Han
0a7aef7347 Moved all Utils.FONT_* into new class opsu.ui.Fonts.*.
- Moved Utils.loadGlyphs() into this class, and rewrote it to take a single generic string (instead of beatmap title/artist strings, specifically).
- Also moved font initialization into this class.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 20:40:07 -05:00
Jeffrey Han
91f07855a7 Moved all Utils.COLOR_* into new class opsu.ui.Colors.*.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-20 20:02:23 -05:00
Jeffrey Han
a4898d01a7 Fix hard rock coordinate modifier in replays. (fixes #118)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-10 17:14:02 -05:00
Jeffrey Han
0909377d14 Follow-up to #115: some fixes and whitespace changes.
- Hide the spinner approach circle instead of the spinner circle.
- Show the slider ball.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-08 19:15:49 -05:00
MatteoS
a13ea9308d Corrections for 'hidden' mod 2015-08-09 01:20:45 +02:00
mad-s
d82b8188e8 Hit indicators *do* show up in hidden mode.
I failed...
2015-08-08 23:17:25 +02:00
MatteoS
34356d9c08 Implement 'hidden' game mod 2015-08-08 21:12:02 +02:00
Jeffrey Han
c91146b024 Added easing functions for all-around better animations.
These are Robert Penner's easing functions (http://robertpenner.com/easing/), refactored by CharlotteGore to only take a t parameter (https://github.com/CharlotteGore/functional-easing). Licensed under BSD (the former) and MIT (the latter).

Related changes:
- Added "AnimatedValue" utility class for updating values used in animations.
- MenuButton now uses AnimatedValue to handle its animations (still linear by default).
- Added in-out-back easings on logo, mods, and various other elements; added out-bounce easings on button menu.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-08-05 22:28:14 -05:00
Jeffrey Han
2167698740 Follow-up to #99: replay seeking improvements.
- Added on/off option for replay seeking in the "custom" menu.
- Mute sounds while seeking.
- Draw a bar on the left of the screen during replays for seeking (instead of just clicking near the top of the screen).

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-07-02 22:16:14 -05:00
Jeffrey Han
d860a30aed Follow-up to #99.
- Many code style changes.
- Don't increment combo if missing the last slider circle.
- Added player name in ranking screen.
- Don't show null/default player names.
- Only import replays with .osr extension.
- Display loading status for importing replays.
- Moved MD5InputStreamWrapper to package "opsu.io".

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-06-29 19:22:38 -05:00
fd
55628038fe Restores drainRate
Single file read md5

pitch change synctime
2015-06-22 01:14:36 -04:00
fd
df07c62609 Merge remote-tracking branch 'org/master' into ReplayTest
Conflicts:
	src/itdelatrisu/opsu/GameData.java
	src/itdelatrisu/opsu/states/Game.java
2015-06-21 21:36:44 -04:00
fd
3675a25c44 Spinner Test 3
Clean up
2015-06-21 19:45:38 -04:00
Jeffrey Han
81d9421d74 Score formula update - still very wrong, but slightly closer. (see #43)
Added the "difficulty multiplier" as given by the osu! wiki.  Please note that this will invalidate all of your saved scores.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-06-14 11:59:12 -05:00
fd
038a5d5779 WIPTest Merge Fixes 2015-06-14 12:29:15 -04:00
fd
fd3f7fdabe Merge remote-tracking branch 'org/master' into ReplayTest
Conflicts:
	src/itdelatrisu/opsu/GameData.java
	src/itdelatrisu/opsu/Options.java
	src/itdelatrisu/opsu/OsuFile.java
	src/itdelatrisu/opsu/OsuGroupList.java
	src/itdelatrisu/opsu/OsuHitObject.java
	src/itdelatrisu/opsu/OsuParser.java
	src/itdelatrisu/opsu/UI.java
	src/itdelatrisu/opsu/db/OsuDB.java
	src/itdelatrisu/opsu/objects/Circle.java
	src/itdelatrisu/opsu/objects/HitObject.java
	src/itdelatrisu/opsu/objects/Slider.java
	src/itdelatrisu/opsu/objects/Spinner.java
	src/itdelatrisu/opsu/states/Game.java
	src/itdelatrisu/opsu/states/Splash.java
2015-06-13 20:28:30 -04:00
fd
40e67cedc9 Spinner Test2
Improves Score accuracy
(still mostly wrong)

inital replay seek
2015-06-13 18:35:30 -04:00
Jeffrey Han
74f7ac18b9 Fixed an infinite loop on beatmaps starting at time 0. (blame: 18e57fd)
There's probably a better fix, though...

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-06-08 18:13:49 -04:00
Jeffrey Han
e712d57a2c Cleaned up implementation of beatmap combo colors.
Added getComboColors() method to Beatmap class, and the 'combo' field is now null if no combo is provided.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-06-08 17:23:45 -04:00
Jeffrey Han
b1b1664e11 Follow-up to #91.
Pass the border color into CurveRenderState instead of determining it there; store the color as a static field in Curve (since it shouldn't change per-beatmap).

Also removed the leftover FrameBufferCache warning from #64.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-06-08 16:42:54 -04:00
Jeffrey Han
b6f208a47d Follow-up to #64.
- Removed NEW_SLIDER option, and use the skin "SliderStyle" instead.  Uses the new style by default, unless STYLE_PEPPYSLIDER is specified.
- Check if OpenGL 3.0 is supported before trying to draw new style sliders.
- Fixed compilation warnings; removed unneeded fields and imports.
- Filled in some missing Javadocs.
- Style changes.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-06-08 15:02:28 -04:00
Peter Tissen
2970972456 pass screen size in instead of polling it later
and add some comments
2015-06-08 15:52:37 +02:00
Peter Tissen
41c7825728 New optional slider style
New slider rendering works by rendering the slider to an
offscreen buffer

Add CurveRenderState.java and FrameBufferCache.java that were forgotten in the last commit
2015-06-08 15:52:06 +02:00
Jeffrey Han
f3825eba5e Added many missing Javadocs; other minor cleanup.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-05-29 06:06:37 -04:00
Jeffrey Han
0c42f1ed01 Cursor refactoring.
Moved cursor-related code out of UI and into a new non-static "Cursor" class.

Also, the cursor is no longer reset after gameplay if it wasn't skinned.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-05-29 04:48:03 -04:00
Jeffrey Han
00a08f1327 Renamed "OsuParser" to "BeatmapParser"; moved into "opsu.beatmaps".
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-05-29 03:07:58 -04:00
Jeffrey Han
2c47e9a1b9 Moved "UI" and "MenuButton" classes to new package "opsu.ui".
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-05-29 01:55:57 -04:00
Jeffrey Han
250f7acc93 Continuation of 53c79c5 - HitObject name changes.
Attempts to eliminate any confusion between OsuHitObject (raw, parsed hit objects) and HitObject (interface for game object types).
- Renamed "HitObject" interface to "GameObject", since these objects are specific to gameplay.
- Renamed "OsuHitObject" to "HitObject", since these objects are primarily containers for parsed data.

Sorry if the name-swapping is confusing; these should be better names in the long run.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-05-16 21:42:03 -04:00
Jeffrey Han
53c79c5d85 Major refactoring - now using far more logical class names.
- Renamed "OsuFile" to "Beatmap".  All related variables and methods with "osu" have also been renamed to "beatmap" (or variants of each).
- Renamed "OsuGroupNode" to "BeatmapSetNode".  Avoids confusion since groups are identified by a "set ID", not a "group ID".
- Renamed "OsuGroupList" to "BeatmapSetList", for the same reason as above.
- Renamed "OsuDB" to "BeatmapDB", for the same reason as above.
- Moved classes directly related to parsed beatmaps (Beatmap, BeatmapSetList, BeatmapSetNode, OsuHitObject, and TimingPoint) into a new "beatmap" package.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-05-16 21:25:19 -04:00
Jeffrey Han
0a80590505 Renamed "OsuTimingPoint" class to "TimingPoint".
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-05-16 17:58:32 -04:00
Jeffrey Han
5fcff76690 Very minor formatting changes to #76.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-04-12 22:33:20 -04:00
fd
e792c3cae6 Clean 2015-04-12 13:55:52 -04:00
fd
12e70002d6 More curve types
Catmull curves
Line Curves(half assed)
Curve refactor
#73 near 0 length sliders
2015-04-12 10:55:39 -04:00
Jeffrey Han
13d383463f Improved error message in #72; fixed timing point issue from #61.
- Actually provide relevant information when an audio file can't be found.
- When loading timing points, don't reset the start index every time.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-04-10 12:34:18 -04:00
Jeffrey Han
07075c094b Mod difficulty multipliers are now reflected in displayed song info.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-04-04 12:30:23 -04:00
Jeffrey Han
2efb18e225 Follow-up to #68.
Fixes:
- Set the modified speed again after unpausing and loading from checkpoints.
- Changed countdown delays based on current speed.
- Changed color of highlighted song info text to that in osu!.
- Made playback images unskinnable.

Code changes:
- Changed playback field in Game class to the PlaybackSpeed object instead of just the button.
- Changed PlaybackSpeed.next() to a non-static method.
- Added/edited Javadocs.
- Changed image names.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-04-03 18:08:35 -04:00
Pavel Kolchev
f810965921 DT/HF/Playback changes.
Can watch HalfTime on half speed.
Reset pitch on leaving the game state.
Load songInfo when entering select song menu.
Playback button fades in on hover instead of expands.
Reverted spinner changes. It should be fixed separately.
2015-04-03 15:01:18 +03:00
Pavel Kolchev
d8425197a7 Implement playback speed in replays. 2015-04-02 19:38:45 +03:00
Pavel Kolchev
5f3ce74c64 Implemented half/double time mod.
Dynamic bpm, map length in song select menu.
Fixed replay and spinner with these mods.
2015-03-31 18:14:52 +03:00
Jeffrey Han
e83e0da70f Fixed Slider.getPointAt() returning an incorrect end point.
Also some additional tweaks to #61.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-03-30 23:58:11 -04:00
Jeffrey Han
4b91018b70 Very minor follow-up to #61.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-03-30 23:06:52 -04:00
Jeffrey Han
f63be81490 Merge pull request #61 from DarkTigrus/hitobject-stacking
Hit object stacking algorithm
2015-03-30 22:38:42 -04:00
Pavel Kolchev
e441d3e4e1 Update stacking algorythm.
Revert previous commit. Curve should be re-created or updated.
No more extra updatePosition() calls.
2015-03-30 13:02:38 +03:00
Pavel Kolchev
2e5226ecd5 Refactor and cleanup 2015-03-28 21:49:25 +03:00
Pavel Kolchev
2aaf5e73be Remove unnecessary methods. 2015-03-28 21:48:29 +03:00
Pavel Kolchev
fbe87559c9 Implement hit object stacking algorithm. 2015-03-28 15:11:43 +03:00
Jeffrey Han
18e57fdb96 Minor changes: fading game bg dim, initial flashlight radius fix.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-03-24 01:03:58 -04:00
Jeffrey Han
cb8c7c399c Game state bug fixes and better error handling.
Error handling (related to #53):
- Catch all exceptions caused by creating HitObjects and throw a more informative error with the hit object information. This also allows multiple errors to be reported, instead of crashing at the first error.
- Added a fallback "DummyObject" HitObject to replace hit objects causing errors, which should allow the game to function despite any errors.
- Added a toString() method to OsuHitObject (resembling the raw format).

Bug fixes (caused by #52):
- Game is no longer paused when focus is lost during lead-in time or during breaks.
- Replay frames are no longer recorded when the game is paused.
- Pulsing cursor animation now works even during lead-in time.
- skipIntro() during replays now works properly.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-03-19 19:03:07 -04:00
Jeffrey Han
ec042159a8 Added track previews to the downloads menu.
Currently uses the osu! server to load MP3 previews.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-03-19 15:58:50 -04:00
Jeffrey Han
b46c589b97 Follow-up to #52.
- Animate skip button during lead in.
- Update flashlight radius during lead in.
- Check if keys are set before calling gameKeyPressed().
- Deleted mouse moved/dragged events (no longer used).
- Renamed updateGameKeyPress().
- Added "auto"/"relax" mod checks to gameKeyPressed().

Also fixed a bug where the MenuButton class wasn't properly resetting image alpha/rotation in certain cases.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-03-19 03:04:35 -04:00
Jeffrey Han
ba20953634 Merge pull request #52 from fluddokt/ReplayTest
Replay Changes:
- Saves replay frames as if its repaying, then plays the replay at exact track position. This should give out exact results as the score screen.
- Calculates MD5 for beatmap files. (doesn't currently help anything)
- Reverse Slider ball (fixes #50)
2015-03-19 02:05:20 -04:00
fd
2356d8df69 Hopefully fixes most of the bugs of the replay change.
append
2015-03-19 00:52:05 -04:00
fd
f67ca79ea7 Hopefully fixes most of the bugs of the replay change. 2015-03-19 00:33:19 -04:00
Jeffrey Han
5061b45f84 Added an option to disable follow points.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-03-18 23:23:34 -04:00
Jeffrey Han
ad5379b8f0 Fade in follow points.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-03-18 22:57:44 -04:00
Jeffrey Han
40933cfa86 Implemented follow points.
Added new followpoint image from "Vocaloid Project Skin" by noClue.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
2015-03-18 22:20:37 -04:00
fd
2877d9bc3d Merge remote-tracking branch 'org/master' into ReplayTest
Conflicts:
	src/itdelatrisu/opsu/objects/HitObject.java
	src/itdelatrisu/opsu/states/Game.java
2015-03-18 00:20:34 -04:00
fd
93b336fdf6 Fixes Flickering during replay
Calculates Md5 for beatmap files.

Reverse Slider ball #50
2015-03-17 23:39:18 -04:00