Many quick bug fixes.
- Fixed bug when having "Sudden Death" and Easy "mods" enabled at the same time. Additional "lives" are no longer granted. - Fixed bug where GameMod active states weren't being reset upon restart. - Fixed bug where GameMods were drawn as if inactive when viewing scores. Alpha levels are now only set when drawing the button (i.e. calling GameMod.draw()). - Moved large grade scaling into GameImage, and slightly padded the right side when drawing. Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
parent
1ddeb3461d
commit
0165abde56
|
@ -538,12 +538,8 @@ public class GameData {
|
|||
public void drawRankingElements(Graphics g, OsuFile osu) {
|
||||
// grade
|
||||
Grade grade = getGrade();
|
||||
if (grade != Grade.NULL) {
|
||||
Image gradeImage = grade.getLargeImage();
|
||||
float gradeScale = (height * 0.5f) / gradeImage.getHeight();
|
||||
gradeImage = gradeImage.getScaledCopy(gradeScale);
|
||||
gradeImage.draw(width - gradeImage.getWidth(), height * 0.09f);
|
||||
}
|
||||
if (grade != Grade.NULL)
|
||||
grade.getLargeImage().draw(width * 0.985f - grade.getLargeImage().getWidth(), height * 0.09f);
|
||||
|
||||
// header & "Ranking" text
|
||||
Image rankingTitle = GameImage.RANKING_TITLE.getImage();
|
||||
|
|
|
@ -190,21 +190,61 @@ public enum GameImage {
|
|||
HIT_300G ("hit300g", "png"),
|
||||
HIT_SLIDER10 ("sliderpoint10", "png"),
|
||||
HIT_SLIDER30 ("sliderpoint30", "png"),
|
||||
RANKING_SS ("ranking-X", "png"),
|
||||
RANKING_SS ("ranking-X", "png") {
|
||||
@Override
|
||||
protected Image process_sub(Image img, int w, int h) {
|
||||
return img.getScaledCopy((h / 2f) / img.getHeight());
|
||||
}
|
||||
},
|
||||
RANKING_SS_SMALL ("ranking-X-small", "png"),
|
||||
RANKING_SSH ("ranking-XH", "png"),
|
||||
RANKING_SSH ("ranking-XH", "png") {
|
||||
@Override
|
||||
protected Image process_sub(Image img, int w, int h) {
|
||||
return img.getScaledCopy((h / 2f) / img.getHeight());
|
||||
}
|
||||
},
|
||||
RANKING_SSH_SMALL ("ranking-XH-small", "png"),
|
||||
RANKING_S ("ranking-S", "png"),
|
||||
RANKING_S ("ranking-S", "png") {
|
||||
@Override
|
||||
protected Image process_sub(Image img, int w, int h) {
|
||||
return img.getScaledCopy((h / 2f) / img.getHeight());
|
||||
}
|
||||
},
|
||||
RANKING_S_SMALL ("ranking-S-small", "png"),
|
||||
RANKING_SH ("ranking-SH", "png"),
|
||||
RANKING_SH ("ranking-SH", "png") {
|
||||
@Override
|
||||
protected Image process_sub(Image img, int w, int h) {
|
||||
return img.getScaledCopy((h / 2f) / img.getHeight());
|
||||
}
|
||||
},
|
||||
RANKING_SH_SMALL ("ranking-SH-small", "png"),
|
||||
RANKING_A ("ranking-A", "png"),
|
||||
RANKING_A ("ranking-A", "png") {
|
||||
@Override
|
||||
protected Image process_sub(Image img, int w, int h) {
|
||||
return img.getScaledCopy((h / 2f) / img.getHeight());
|
||||
}
|
||||
},
|
||||
RANKING_A_SMALL ("ranking-A-small", "png"),
|
||||
RANKING_B ("ranking-B", "png"),
|
||||
RANKING_B ("ranking-B", "png") {
|
||||
@Override
|
||||
protected Image process_sub(Image img, int w, int h) {
|
||||
return img.getScaledCopy((h / 2f) / img.getHeight());
|
||||
}
|
||||
},
|
||||
RANKING_B_SMALL ("ranking-B-small", "png"),
|
||||
RANKING_C ("ranking-C", "png"),
|
||||
RANKING_C ("ranking-C", "png") {
|
||||
@Override
|
||||
protected Image process_sub(Image img, int w, int h) {
|
||||
return img.getScaledCopy((h / 2f) / img.getHeight());
|
||||
}
|
||||
},
|
||||
RANKING_C_SMALL ("ranking-C-small", "png"),
|
||||
RANKING_D ("ranking-D", "png"),
|
||||
RANKING_D ("ranking-D", "png") {
|
||||
@Override
|
||||
protected Image process_sub(Image img, int w, int h) {
|
||||
return img.getScaledCopy((h / 2f) / img.getHeight());
|
||||
}
|
||||
},
|
||||
RANKING_D_SMALL ("ranking-D-small", "png"),
|
||||
RANKING_PANEL ("ranking-panel", "png") {
|
||||
@Override
|
||||
|
|
|
@ -125,9 +125,11 @@ public enum GameMod {
|
|||
float y = (height * 0.8f) + (img.getHeight() / 2);
|
||||
|
||||
// create button
|
||||
img.setAlpha(0.5f);
|
||||
this.button = new MenuButton(img, x + (offsetX * id), y);
|
||||
this.button.setHoverScale(1.15f);
|
||||
|
||||
// reset state
|
||||
this.active = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -160,7 +162,6 @@ public enum GameMod {
|
|||
* @param checkInverse if true, perform checks for mutual exclusivity
|
||||
*/
|
||||
public void toggle(boolean checkInverse) {
|
||||
button.getImage().setAlpha(active ? 0.5f : 1.0f);
|
||||
active = !active;
|
||||
|
||||
if (checkInverse) {
|
||||
|
@ -205,7 +206,12 @@ public enum GameMod {
|
|||
/**
|
||||
* Draws the game mod.
|
||||
*/
|
||||
public void draw() { button.draw(); }
|
||||
public void draw() {
|
||||
if (!active)
|
||||
button.getImage().setAlpha(0.5f);
|
||||
button.draw();
|
||||
button.getImage().setAlpha(1.0f);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the coordinates are within the image bounds.
|
||||
|
|
|
@ -484,7 +484,7 @@ public class Game extends BasicGameState {
|
|||
data.changeHealth(delta * -1 * GameData.HP_DRAIN_MULTIPLIER);
|
||||
if (!data.isAlive()) {
|
||||
// "Easy" mod
|
||||
if (GameMod.EASY.isActive()) {
|
||||
if (GameMod.EASY.isActive() && !GameMod.SUDDEN_DEATH.isActive()) {
|
||||
deaths++;
|
||||
if (deaths < 3) {
|
||||
deathTime = trackPosition;
|
||||
|
|
Loading…
Reference in New Issue
Block a user