diff --git a/src/zeroxfc/nullpo/custom/libs/FieldManipulation.java b/src/zeroxfc/nullpo/custom/libs/FieldManipulation.java index 7aec0cf..e75ceb0 100644 --- a/src/zeroxfc/nullpo/custom/libs/FieldManipulation.java +++ b/src/zeroxfc/nullpo/custom/libs/FieldManipulation.java @@ -45,46 +45,54 @@ public class FieldManipulation { private static final Logger log = Logger.getLogger(FieldManipulation.class); /** - * Check for split line clears. To be executed in gamemode's onLineClear. + * Check for split line clears. To be executed in gamemode's onLineClear.
+ * Credit goes to MandL27 * @param field Field to check * @return true if line clear is split. false otherwise. */ public static boolean checkLineForSplit(Field field) { - if (field.lastLinesCleared == null){ - field.lastLinesCleared = new ArrayList(); - } - field.lastLinesCleared.clear(); - - boolean previousFlag = false; - boolean atLeastOne = false; - - Block[] row = new Block[field.getWidth()]; - - for(int i = (field.getHiddenHeight() * -1); i < field.getHeightWithoutHurryupFloor(); i++) { - boolean flag = true; - - for(int j = 0; j < field.getWidth(); j++) { - row[j] = new Block(field.getBlock(j, i)); - if((field.getBlockEmpty(j, i)) || (field.getBlock(j, i).getAttribute(Block.BLOCK_ATTRIBUTE_WALL))) { - flag = false; - break; - } - } +/* if (field.lastLinesCleared == null){ + * field.lastLinesCleared = new ArrayList(); + * } + * field.lastLinesCleared.clear(); + * + * boolean previousFlag = false; + * boolean atLeastOne = false; + * + * Block[] row = new Block[field.getWidth()]; + * + * for(int i = (field.getHiddenHeight() * -1); i < field.getHeightWithoutHurryupFloor(); i++) { + * boolean flag = true; + * + * for(int j = 0; j < field.getWidth(); j++) { + * row[j] = new Block(field.getBlock(j, i)); + * if((field.getBlockEmpty(j, i)) || (field.getBlock(j, i).getAttribute(Block.BLOCK_ATTRIBUTE_WALL))) { + * flag = false; + * break; + * } + * } + * + * field.setLineFlag(i, flag); + * + * if (flag != previousFlag && atLeastOne && flag) { + * return true; + * } + * + * if(flag) { + * atLeastOne = true; + * } + * + * previousFlag = flag; + } */ + int regions = 0; + int lines = 0; - field.setLineFlag(i, flag); - - if (flag != previousFlag && atLeastOne && flag) { - return true; - } - - if(flag) { - atLeastOne = true; - } - - previousFlag = flag; + for (int i = field.getHiddenHeight() * -1; i < field.getHeight(); i++) { + if (field.getLineFlag(i)) lines++; + if (lines > 0) regions++; } - return false; + return regions > lines; } /** @@ -397,7 +405,7 @@ public static double fieldCompare(Field a, Field b, boolean exact, boolean colou if (a.getWidth() != b.getWidth()) return 0d; if ((a.getHiddenHeight() + a.getHiddenHeight()) != (b.getHiddenHeight() + b.getHiddenHeight())) return 0d; - final int total = 2 * a.getWidth() * (a.getHeight() + a.getHiddenHeight()); + final int total = 2 * getNumberOfBlocks(b); int current = 0; for (int y = (-1 * a.getHiddenHeight()); y < a.getHeight(); y++) { @@ -407,9 +415,7 @@ public static double fieldCompare(Field a, Field b, boolean exact, boolean colou if (blkA != null && blkB != null) { if (colourMatch) { - if (blkA.isEmpty() && blkB.isEmpty()) { - current += 2; - } else { + if (!blkA.isEmpty() || !blkB.isEmpty()) { if (!blkA.isEmpty() && blkB.isEmpty()) { current -= 6; } else if (!blkA.isEmpty() && !blkB.isEmpty()) { @@ -421,9 +427,7 @@ public static double fieldCompare(Field a, Field b, boolean exact, boolean colou } } } else { - if (blkA.isEmpty() && blkB.isEmpty()) { - current += 2; - } else { + if (!blkA.isEmpty() || !blkB.isEmpty()) { if (!blkA.isEmpty() && blkB.isEmpty()) { current -= 6; } else if (!blkA.isEmpty() && !blkB.isEmpty()) { diff --git a/src/zeroxfc/nullpo/custom/libs/ProfileProperties.java b/src/zeroxfc/nullpo/custom/libs/ProfileProperties.java index d218ff8..8188d40 100644 --- a/src/zeroxfc/nullpo/custom/libs/ProfileProperties.java +++ b/src/zeroxfc/nullpo/custom/libs/ProfileProperties.java @@ -576,7 +576,7 @@ public static class LoginScreen { private boolean signup; private boolean success; private ProfileProperties playerProperties; - private int colourHeading; + private final int colourHeading; /** * Creates a new login screen for a ProfileProperties instance. @@ -681,13 +681,13 @@ private boolean onNameInput(GameEngine engine, int playerID) { */ if (nameEntry.length() == 3) currentChar = ProfileProperties.ENTRY_CHARS.length() - 1; - if (engine.ctrl.isPress(Controller.BUTTON_DOWN)) { + if (engine.ctrl.isPress(Controller.BUTTON_RIGHT)) { if (engine.statc[1] % 6 == 0) { engine.playSE("change"); currentChar++; } engine.statc[1]++; - } else if (engine.ctrl.isPress(Controller.BUTTON_UP)) { + } else if (engine.ctrl.isPress(Controller.BUTTON_LEFT)) { if (engine.statc[1] % 6 == 0) { engine.playSE("change"); currentChar--; @@ -700,7 +700,7 @@ private boolean onNameInput(GameEngine engine, int playerID) { engine.playSE("change"); currentChar = 0; } else if (s.equals("q")) { - if (nameEntry.length() < 3) nameEntry = String.format("%3s", nameEntry); + if (nameEntry.length() < 3) nameEntry = String.format("%-3s", nameEntry); engine.playSE("decide"); currentChar = 0; @@ -724,7 +724,7 @@ private boolean onNameInput(GameEngine engine, int playerID) { engine.statc[1] = 0; } - return false; + return true; } private boolean onPasswordInput(GameEngine engine, int playerID) { @@ -822,7 +822,10 @@ public void renderScreen(EventReceiver receiver, GameEngine engine, int playerID GameTextUtilities.ALIGN_TOP_MIDDLE, "ENTRY", colourHeading, 2f); - receiver.drawMenuFont(engine, playerID, 2, 8,nameEntry + ProfileProperties.getCharAt(currentChar), 2f); + receiver.drawMenuFont(engine, playerID, 2, 8, nameEntry, 2f); + int c = 0; + if ((engine.statc[0] / 6) % 2 == 0) c = EventReceiver.COLOR_YELLOW; + receiver.drawMenuFont(engine, playerID, 2 + (nameEntry.length() * 2), 8, ProfileProperties.getCharAt(currentChar), c, 2f); receiver.drawMenuFont(engine, playerID, 0, 18, "ENTER ACCOUNT\nNAME."); // endregion diff --git a/src/zeroxfc/nullpo/custom/modes/Accelerator.java b/src/zeroxfc/nullpo/custom/modes/Accelerator.java index 8178f9c..09a7c6c 100644 --- a/src/zeroxfc/nullpo/custom/modes/Accelerator.java +++ b/src/zeroxfc/nullpo/custom/modes/Accelerator.java @@ -373,7 +373,7 @@ public void renderLast(GameEngine engine, int playerID) { for(int i = 0; i < RANKING_MAX; i++) { receiver.drawScoreFont(engine, playerID, 0, topY+i, String.format("%2d", i + 1), EventReceiver.COLOR_YELLOW, scale); String s = String.valueOf(rankingScore[goaltype][i]); - receiver.drawScoreFont(engine, playerID, (s.length() > 6) ? 6 : 3, (s.length() > 6) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6) ? scale * 0.5f : scale); + receiver.drawScoreFont(engine, playerID, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? 6 : 3, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6 && receiver.getNextDisplayType() != 2) ? scale * 0.5f : scale); receiver.drawScoreFont(engine, playerID, 10, topY+i, String.format("%.1f", rankingLines[goaltype][i]), (i == rankingRank), scale); receiver.drawScoreFont(engine, playerID, 16, topY+i, GeneralUtil.getTime(rankingTime[goaltype][i]), (i == rankingRank), scale); } diff --git a/src/zeroxfc/nullpo/custom/modes/ColourPower.java b/src/zeroxfc/nullpo/custom/modes/ColourPower.java index b92002a..30e7bc3 100644 --- a/src/zeroxfc/nullpo/custom/modes/ColourPower.java +++ b/src/zeroxfc/nullpo/custom/modes/ColourPower.java @@ -510,7 +510,7 @@ public void renderLast(GameEngine engine, int playerID) { for(int i = 0; i < RANKING_MAX; i++) { receiver.drawScoreFont(engine, playerID, 0, topY+i, String.format("%2d", i + 1), EventReceiver.COLOR_YELLOW, scale); String s = String.valueOf(rankingScore[ruleboundMode ? 1 : 0][goaltype][i]); - receiver.drawScoreFont(engine, playerID, (s.length() > 6) ? 6 : 3, (s.length() > 6) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6) ? scale * 0.5f : scale); + receiver.drawScoreFont(engine, playerID, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? 6 : 3, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6 && receiver.getNextDisplayType() != 2) ? scale * 0.5f : scale); receiver.drawScoreFont(engine, playerID, 10, topY+i, String.valueOf(rankingLines[ruleboundMode ? 1 : 0][goaltype][i]), (i == rankingRank), scale); receiver.drawScoreFont(engine, playerID, 15, topY+i, GeneralUtil.getTime(rankingTime[ruleboundMode ? 1 : 0][goaltype][i]), (i == rankingRank), scale); } @@ -539,16 +539,20 @@ public void renderLast(GameEngine engine, int playerID) { // Power-up progess float scale = 1f; - if (receiver.getNextDisplayType() >= 1) scale = 0.5f; - receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(12 / scale), "POWER-UPS", EventReceiver.COLOR_PINK, scale); - receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(13 / scale), " GREY:" + String.format("%d/%d", meterValues[0], POWER_METER_MAX), POWERUP_TEXT_COLOURS[0], scale); - receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(14 / scale), " RED:" + String.format("%d/%d", meterValues[1], POWER_METER_MAX), POWERUP_TEXT_COLOURS[1], scale); - receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(15 / scale), "ORANGE:" + String.format("%d/%d", meterValues[2], POWER_METER_MAX), POWERUP_TEXT_COLOURS[2], scale); - receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(16 / scale), "YELLOW:" + String.format("%d/%d", meterValues[3], POWER_METER_MAX), POWERUP_TEXT_COLOURS[3], scale); - receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(17 / scale), " GREEN:" + String.format("%d/%d", meterValues[4], POWER_METER_MAX), POWERUP_TEXT_COLOURS[4], scale); - receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(18 / scale), " CYAN:" + String.format("%d/%d", meterValues[5], POWER_METER_MAX), POWERUP_TEXT_COLOURS[5], scale); - receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(19 / scale), " BLUE:" + String.format("%d/%d", meterValues[6], POWER_METER_MAX), POWERUP_TEXT_COLOURS[6], scale); - receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(20 / scale), "PURPLE:" + String.format("%d/%d", meterValues[7], POWER_METER_MAX), POWERUP_TEXT_COLOURS[7], scale); + int base = 12; + if (receiver.getNextDisplayType() >= 1) { + scale = 0.5f; + base = 24; + } + receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(base / scale), "POWER-UPS", EventReceiver.COLOR_PINK, scale); + receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(base + 1 / scale), " GREY:" + String.format("%d/%d", meterValues[0], POWER_METER_MAX), POWERUP_TEXT_COLOURS[0], scale); + receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(base + 2 / scale), " RED:" + String.format("%d/%d", meterValues[1], POWER_METER_MAX), POWERUP_TEXT_COLOURS[1], scale); + receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(base + 3 / scale), "ORANGE:" + String.format("%d/%d", meterValues[2], POWER_METER_MAX), POWERUP_TEXT_COLOURS[2], scale); + receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(base + 4 / scale), "YELLOW:" + String.format("%d/%d", meterValues[3], POWER_METER_MAX), POWERUP_TEXT_COLOURS[3], scale); + receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(base + 5 / scale), " GREEN:" + String.format("%d/%d", meterValues[4], POWER_METER_MAX), POWERUP_TEXT_COLOURS[4], scale); + receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(base + 6 / scale), " CYAN:" + String.format("%d/%d", meterValues[5], POWER_METER_MAX), POWERUP_TEXT_COLOURS[5], scale); + receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(base + 7 / scale), " BLUE:" + String.format("%d/%d", meterValues[6], POWER_METER_MAX), POWERUP_TEXT_COLOURS[6], scale); + receiver.drawScoreFont(engine, playerID, (int)(10 / scale), (int)(base + 8 / scale), "PURPLE:" + String.format("%d/%d", meterValues[7], POWER_METER_MAX), POWERUP_TEXT_COLOURS[7], scale); receiver.drawScoreFont(engine, playerID, 0, 15, "MULTI.", EventReceiver.COLOR_BLUE); receiver.drawScoreFont(engine, playerID, 0, 16, String.valueOf(scoreMultiplier) + "X"); diff --git a/src/zeroxfc/nullpo/custom/modes/DrawMode.java b/src/zeroxfc/nullpo/custom/modes/DrawMode.java index 8981749..cefed40 100644 --- a/src/zeroxfc/nullpo/custom/modes/DrawMode.java +++ b/src/zeroxfc/nullpo/custom/modes/DrawMode.java @@ -1,5 +1,10 @@ package zeroxfc.nullpo.custom.modes; +import mu.nu.nullpo.game.component.Block; +import mu.nu.nullpo.game.component.Field; + +import java.util.ArrayList; + public class DrawMode extends MarathonModeBase { /** This mode always has 0G gravity */ private static final int GRAVITY_CONSTANT = 0; @@ -119,8 +124,37 @@ public class DrawMode extends MarathonModeBase { //endregion }; + private static final ArrayList SHAPE_FIELDS = new ArrayList<>(); + + private static final int[] SHAPE_TO_PIECE_ID = { + 0, 0, 1, 1, 1, 1, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6 + }; + + private static final int[] SHAPE_TO_PIECE_DIRECTION = { + 0, 1, 0, 1, 2, 3, 0, 2, 1, 0, 1, 2, 3, 0, 1, 2, 3, 2, 3 + }; + + static { + for (int i = 0; i < SHAPES.length; i++) { + int[][] shape = SHAPES[i]; + int dimX = shape[0].length; + int dimY = shape.length; + + SHAPE_FIELDS.add(new Field(dimX, dimY, 0)); + + for (int y = 0; y < dimY; y++) { + for (int x = 0; x < dimX; x++) { + SHAPE_FIELDS.get(i).getBlock(x, y).copy(new Block(shape[y][x], 0)); + } + } + } + } + // endregion SHAPES + /** The match confidence of the field to each piece. */ + private ArrayList matchConfidences; + /** Mode Name */ @Override public String getName() { diff --git a/src/zeroxfc/nullpo/custom/modes/FireworkChallenge.java b/src/zeroxfc/nullpo/custom/modes/FireworkChallenge.java index 7186d26..c5a25a2 100644 --- a/src/zeroxfc/nullpo/custom/modes/FireworkChallenge.java +++ b/src/zeroxfc/nullpo/custom/modes/FireworkChallenge.java @@ -4,6 +4,7 @@ */ package zeroxfc.nullpo.custom.modes; +import org.apache.log4j.Logger; import zeroxfc.nullpo.custom.libs.*; import java.util.ArrayList; @@ -22,6 +23,8 @@ import mu.nu.nullpo.game.component.Piece; public class FireworkChallenge extends DummyMode { + private static final Logger log = Logger.getLogger(FireworkChallenge.class); + // Base Line clear values private static final double[] BASE_LINE_VALUES = { 1.0, 2.9, 3.8, 4.7 }; @@ -192,9 +195,6 @@ public class FireworkChallenge extends DummyMode { // show best STs? private boolean showBests; - // full ghost? - private boolean tlsMode; - // 20g mode? private boolean maxGravMode; @@ -309,7 +309,6 @@ public void playerInit(GameEngine engine, int playerID) { lvAtLastSplit = 0; showBests = false; - tlsMode = false; maxGravMode = false; big = false; showST = false; @@ -722,7 +721,6 @@ public boolean onMove(GameEngine engine, int playerID) { if((engine.ending == 2) && (rollStarted == false)) { rollStarted = true; owner.bgmStatus.fadesw = false; - creditsFreeFireworkDelay = MAX_ROLL_TIME / fireworksFired; owner.bgmStatus.bgm = BGMStatus.BGM_ENDING2; } @@ -775,6 +773,8 @@ public boolean onARE(GameEngine engine, int playerID) { @Override public void calcScore(GameEngine engine, int playerID, int lines) { if((lines >= 1) && (engine.ending == 0)) { + if (lines >= 2) isSplit = FieldManipulation.checkLineForSplit(engine.field); + if(engine.field.isEmpty()) { engine.playSE("bravo"); bravoFireworkQueue += 6; @@ -804,8 +804,8 @@ public void calcScore(GameEngine engine, int playerID, int lines) { if (engine.lastmove == 5 || engine.lastmove == 6) { lastPiece = engine.nowPieceObject.id; - if (Piece.getPieceName(lastPiece) != "O") { - if (Piece.getPieceName(lastPiece) == "T") { + if (!Piece.getPieceName(lastPiece).equals("O")) { + if (Piece.getPieceName(lastPiece).equals("T")) { if (lines >= 3) { fireworkTotal *= 4; } else { @@ -828,10 +828,14 @@ public void calcScore(GameEngine engine, int playerID, int lines) { if(engine.statistics.level >= 200) { // Ending - comboDuringCredits = engine.combo; - if (comboDuringCredits > 9) comboDuringCredits = 9; - comboDuringCredits = CREDIT_COMBO_CONVERSION[comboDuringCredits]; - + if (engine.ending == 0) { + comboDuringCredits = engine.combo; + if (comboDuringCredits > 9) comboDuringCredits = 9; + comboDuringCredits = CREDIT_COMBO_CONVERSION[comboDuringCredits]; + + creditsFreeFireworkDelay = MAX_ROLL_TIME / fireworksFired; + } + engine.statistics.level = 200; engine.timerActive = false; engine.ending = 1; @@ -861,6 +865,8 @@ public void calcScore(GameEngine engine, int playerID, int lines) { engine.playSE("levelstop"); } } else if (lines >= 1) { + if (lines >= 2) isSplit = FieldManipulation.checkLineForSplit(engine.field); + // firework calculation calculateVarispeedCombo(engine, engine.statistics.level); calculateVarispeedFinesse(engine, engine.statistics.level); @@ -873,7 +879,7 @@ public void calcScore(GameEngine engine, int playerID, int lines) { fireworkTotal *= varispeedComboBonus; fireworkTotal *= varispeedFinesseBonus; if (lines > 1) fireworkTotal *= CREDIT_COMBO_MULTIPLIERS[comboDuringCredits]; - if (Arrays.stream(LUCKY_LEVELS).anyMatch(i -> i == engine.statistics.level)) fireworkTotal *= LUCKY_LEVEL_BONUS; + if (engine.statistics.level < 200) if (Arrays.stream(LUCKY_LEVELS).anyMatch(i -> i == engine.statistics.level)) fireworkTotal *= LUCKY_LEVEL_BONUS; if (give30sBonus) { fireworkTotal *= THIRTY_BONUS; give30sBonus = false; @@ -882,7 +888,7 @@ public void calcScore(GameEngine engine, int playerID, int lines) { if (engine.lastmove == 5 || engine.lastmove == 6) { lastPiece = engine.nowPieceObject.id; - if (Piece.getPieceName(lastPiece) != "O") { + if (!Piece.getPieceName(lastPiece).equals("O")) { if (Piece.getPieceName(lastPiece) == "T") { if (lines >= 3) { fireworkTotal *= 4; @@ -903,9 +909,6 @@ public void calcScore(GameEngine engine, int playerID, int lines) { @Override public boolean onLineClear(GameEngine engine, int playerID) { - int lines = engine.field.checkLineNoFlag(); - if (lines >= 2) isSplit = FieldManipulation.checkLineForSplit(engine.field); - // event 発生 owner.receiver.onLineClear(engine, playerID); @@ -1167,23 +1170,27 @@ public void onLast(GameEngine engine, int playerID) { sectionTime[section]++; } - if (engine.statistics.time % 1800 == 0 && engine.ending == 0) { + if (engine.statistics.time % 1800 == 0) { if (engine.statistics.level - lvAtLastSplit >= 30) { give30sBonus = true; } else { give30sBonus = false; } - - if (lastFireworkTimer > 0) lastFireworkTimer--; + lvAtLastSplit = engine.statistics.level; } + + if (lastFireworkTimer > 0) lastFireworkTimer--; } if (engine.gameActive) { - if (totalFireworkQueue >= 0) { + totalFireworkQueue = bravoFireworkQueue + comboFireworkQueue + genericFireworkQueue; + if (totalFireworkQueue > 0 || engine.ending == 2) { updateFireworkTimers(engine, playerID); } + + lastLineClearTime++; } // Ending @@ -1548,7 +1555,7 @@ private void updateFireworkTimers(GameEngine engine, int playerID) { comboFireworkTimer = 0; launchFirework(engine, playerID); comboFireworkQueue--; - + if(!sp) { engine.playSE("fireworklaunch"); engine.playSE("fireworkexplode"); @@ -1559,7 +1566,7 @@ private void updateFireworkTimers(GameEngine engine, int playerID) { completionFireworkTimer = 0; launchFirework(engine, playerID); genericFireworkQueue--; - + if(!sp) { engine.playSE("fireworklaunch"); engine.playSE("fireworkexplode"); @@ -1576,8 +1583,10 @@ private void updateFireworkTimers(GameEngine engine, int playerID) { sp = true; } } - + totalFireworkQueue = bravoFireworkQueue + comboFireworkQueue + genericFireworkQueue; + + // log.debug(String.format("T: %d, BR: %d, CB: %d, CL: %d, CFD: %d, CFT: %d", totalFireworkQueue, bravoFireworkQueue, comboFireworkQueue, genericFireworkQueue, creditsFreeFireworkDelay, creditsFreeFireworkTimer)); } private void calculateVarispeedCombo(GameEngine engine, int level) { @@ -1591,6 +1600,6 @@ private void calculateVarispeedFinesse(GameEngine engine, int level) { int frame = level - engine.statc[0]; if (frame < 120) frame = 120; - varispeedFinesseBonus = (frame * (1.0 / 120.0)); + varispeedFinesseBonus = (frame / 120.0); } } diff --git a/src/zeroxfc/nullpo/custom/modes/Joker.java b/src/zeroxfc/nullpo/custom/modes/Joker.java index 0827f6b..f15b82c 100644 --- a/src/zeroxfc/nullpo/custom/modes/Joker.java +++ b/src/zeroxfc/nullpo/custom/modes/Joker.java @@ -409,7 +409,7 @@ public void renderLast(GameEngine engine, int playerID) { for(int i = 0; i < RANKING_MAX; i++) { receiver.drawScoreFont(engine, playerID, 0, topY+i, String.format("%2d", i + 1), EventReceiver.COLOR_YELLOW, scale); String s = String.valueOf(rankingLevel[i]); - receiver.drawScoreFont(engine, playerID, (s.length() > 6) ? 6 : 3, (s.length() > 6) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6) ? scale * 0.5f : scale); + receiver.drawScoreFont(engine, playerID, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? 6 : 3, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6 && receiver.getNextDisplayType() != 2) ? scale * 0.5f : scale); receiver.drawScoreFont(engine, playerID, 10, topY+i, String.valueOf(rankingLines[i]), (i == rankingRank), scale); receiver.drawScoreFont(engine, playerID, 15, topY+i, GeneralUtil.getTime(rankingTime[i]), (i == rankingRank), scale); } diff --git a/src/zeroxfc/nullpo/custom/modes/Scanline.java b/src/zeroxfc/nullpo/custom/modes/Scanline.java index 7a2fb70..2eb1d53 100644 --- a/src/zeroxfc/nullpo/custom/modes/Scanline.java +++ b/src/zeroxfc/nullpo/custom/modes/Scanline.java @@ -256,7 +256,7 @@ public void renderLast(GameEngine engine, int playerID) { for(int i = 0; i < RANKING_MAX; i++) { receiver.drawScoreFont(engine, playerID, 0, topY+i, String.format("%2d", i + 1), EventReceiver.COLOR_YELLOW, scale); String s = String.valueOf(rankingScore[scanSpeed][goaltype][i]); - receiver.drawScoreFont(engine, playerID, (s.length() > 6) ? 6 : 3, (s.length() > 6) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6) ? scale * 0.5f : scale); + receiver.drawScoreFont(engine, playerID, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? 6 : 3, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6 && receiver.getNextDisplayType() != 2) ? scale * 0.5f : scale); receiver.drawScoreFont(engine, playerID, 10, topY+i, String.valueOf(rankingLines[scanSpeed][goaltype][i]), (i == rankingRank), scale); receiver.drawScoreFont(engine, playerID, 15, topY+i, GeneralUtil.getTime(rankingTime[scanSpeed][goaltype][i]), (i == rankingRank), scale); } diff --git a/src/zeroxfc/nullpo/custom/modes/ScoreTrial.java b/src/zeroxfc/nullpo/custom/modes/ScoreTrial.java index 9b76bd6..78f1d65 100644 --- a/src/zeroxfc/nullpo/custom/modes/ScoreTrial.java +++ b/src/zeroxfc/nullpo/custom/modes/ScoreTrial.java @@ -450,7 +450,7 @@ public void renderLast(GameEngine engine, int playerID) { for(int i = 0; i < RANKING_MAX; i++) { receiver.drawScoreFont(engine, playerID, 0, topY+i, String.format("%2d", i + 1), EventReceiver.COLOR_YELLOW, scale); String s = String.valueOf(rankingScore[difficultySelected][i]); - receiver.drawScoreFont(engine, playerID, (s.length() > 6) ? 6 : 3, (s.length() > 6) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6) ? scale * 0.5f : scale); + receiver.drawScoreFont(engine, playerID, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? 6 : 3, (s.length() > 6 && receiver.getNextDisplayType() != 2) ? (topY+i) * 2 : (topY+i), s, (i == rankingRank), (s.length() > 6 && receiver.getNextDisplayType() != 2) ? scale * 0.5f : scale); receiver.drawScoreFont(engine, playerID, 10, topY+i, String.valueOf(rankingLines[difficultySelected][i]), (i == rankingRank), scale); receiver.drawScoreFont(engine, playerID, 15, topY+i, GeneralUtil.getTime(rankingTime[difficultySelected][i]), (i == rankingRank), scale); }