Game mod refactoring.

- Created "GameMod" enum to handle all mod-related actions and store all related data.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
Jeffrey Han
2014-07-16 16:01:36 -04:00
parent d5b7ff3516
commit 7a187c4e4f
10 changed files with 223 additions and 134 deletions

View File

@@ -19,13 +19,13 @@
package itdelatrisu.opsu.objects;
import itdelatrisu.opsu.GameImage;
import itdelatrisu.opsu.GameMod;
import itdelatrisu.opsu.GameScore;
import itdelatrisu.opsu.MusicController;
import itdelatrisu.opsu.OsuHitObject;
import itdelatrisu.opsu.SoundController;
import itdelatrisu.opsu.Utils;
import itdelatrisu.opsu.states.Game;
import itdelatrisu.opsu.states.Options;
import org.newdawn.slick.Color;
import org.newdawn.slick.GameContainer;
@@ -154,8 +154,7 @@ public class Spinner {
int result;
float ratio = rotations / rotationsNeeded;
if (ratio >= 1.0f ||
Options.isModActive(Options.MOD_AUTO) ||
Options.isModActive(Options.MOD_SPUN_OUT)) {
GameMod.AUTO.isActive() || GameMod.SPUN_OUT.isActive()) {
result = GameScore.HIT_300;
SoundController.playSound(SoundController.SOUND_SPINNEROSU);
} else if (ratio >= 0.8f)
@@ -190,12 +189,12 @@ public class Spinner {
}
// spin automatically (TODO: correct rotation angles)
if (Options.isModActive(Options.MOD_AUTO)) {
if (GameMod.AUTO.isActive()) {
// "auto" mod (fast)
score.changeHealth(delta / 200f); // maintain health (TODO)
rotate(delta / 20f);
return false;
} else if (Options.isModActive(Options.MOD_SPUN_OUT)) {
} else if (GameMod.SPUN_OUT.isActive()) {
// "spun out" mod (slow)
score.changeHealth(delta / 200f); // maintain health (TODO)
rotate(delta / 32f);