diff --git a/src/ru/nsu/ccfit/zuev/osu/game/GameScene.java b/src/ru/nsu/ccfit/zuev/osu/game/GameScene.java index 826ed9c54..f73cec7e8 100644 --- a/src/ru/nsu/ccfit/zuev/osu/game/GameScene.java +++ b/src/ru/nsu/ccfit/zuev/osu/game/GameScene.java @@ -419,8 +419,14 @@ private boolean loadGame(final TrackInfo track, final String rFile) { scale += 0.125f; drain *= 0.5f; overallDifficulty *= 0.5f; - approachRate = (float) ((ModMenu.getInstance().getMod().contains(GameMod.MOD_DOUBLETIME) || ModMenu.getInstance().getMod().contains(GameMod.MOD_NIGHTCORE))? - (GameHelper.ar2ms(rawApproachRate - 1f) / 1000f):(GameHelper.ar2ms(rawApproachRate - 0.5f) / 1000f)); + if(ModMenu.getInstance().getMod().contains(GameMod.MOD_HARDROCK)){ + approachRate = (float) ((ModMenu.getInstance().getMod().contains(GameMod.MOD_DOUBLETIME) || ModMenu.getInstance().getMod().contains(GameMod.MOD_NIGHTCORE))? + (GameHelper.ar2ms(Math.min(1.4f * rawApproachRate, 10f) - 1f) / 1000f):(GameHelper.ar2ms(Math.min(1.4f * rawApproachRate, 10f) - 0.5f) / 1000f)); + } + else{ + approachRate = (float) ((ModMenu.getInstance().getMod().contains(GameMod.MOD_DOUBLETIME) || ModMenu.getInstance().getMod().contains(GameMod.MOD_NIGHTCORE))? + (GameHelper.ar2ms(rawApproachRate - 1f) / 1000f):(GameHelper.ar2ms(rawApproachRate - 0.5f) / 1000f)); + } } if (ModMenu.getInstance().getMod().contains(GameMod.MOD_SMALLCIRCLE)) { diff --git a/src/ru/nsu/ccfit/zuev/osu/menu/SongMenu.java b/src/ru/nsu/ccfit/zuev/osu/menu/SongMenu.java index 54ac20193..cee87d961 100644 --- a/src/ru/nsu/ccfit/zuev/osu/menu/SongMenu.java +++ b/src/ru/nsu/ccfit/zuev/osu/menu/SongMenu.java @@ -889,6 +889,9 @@ public void changeDimensionInfo(TrackInfo track) { } //added by hao1637 if (mod.contains(GameMod.MOD_REALLYEASY)) { + if(mod.contains(GameMod.MOD_EASY)){ + ar *= 2f; + } ar -= 0.5f; if(mod.contains(GameMod.MOD_DOUBLETIME) | mod.contains(GameMod.MOD_NIGHTCORE)){ ar -= 0.5f; @@ -908,6 +911,13 @@ public void changeDimensionInfo(TrackInfo track) { String binfoStr = String.format(StringTable.get(R.string.binfoStr1), sdf.format(length), (bpm_min == bpm_max ? GameHelper.Round(bpm_min, 1) : GameHelper.Round(bpm_min, 1) + "-" + GameHelper.Round(bpm_max, 1)), track.getMaxCombo()); + if(length > 3600 * 1000){ + sdf = new SimpleDateFormat("HH:mm:ss"); + sdf.setTimeZone(TimeZone.getTimeZone("GMT+0")); + binfoStr = String.format(StringTable.get(R.string.binfoStr1), sdf.format(length), + (bpm_min == bpm_max ? GameHelper.Round(bpm_min, 1) : GameHelper.Round(bpm_min, 1) + "-" + GameHelper.Round(bpm_max, 1)), + track.getMaxCombo()); + } beatmapInfo.setText(binfoStr); final StringBuilder dimensionStringBuilder = new StringBuilder();