aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-01-17 19:01:05 +0900
committersyeyoung <cyong06@naver.com>2021-01-17 19:01:05 +0900
commitfdad2b277f72cb777501901d326200f82c30f21f (patch)
tree6448461eb63bee7cbad6884c99e6f979a0acc553
parenta976ac4cfb25514d4e56310e044e64adf2f285de (diff)
downloadSkyblock-Dungeons-Guide-fdad2b277f72cb777501901d326200f82c30f21f.tar.gz
Skyblock-Dungeons-Guide-fdad2b277f72cb777501901d326200f82c30f21f.tar.bz2
Skyblock-Dungeons-Guide-fdad2b277f72cb777501901d326200f82c30f21f.zip
a bit better score calculation
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/doorfinder/CatacombDataProvider.java44
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/FeatureDungeonScore.java29
3 files changed, 65 insertions, 10 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/doorfinder/CatacombDataProvider.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/doorfinder/CatacombDataProvider.java
index b198841a..6532fdf7 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/doorfinder/CatacombDataProvider.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/doorfinder/CatacombDataProvider.java
@@ -69,13 +69,6 @@ public class CatacombDataProvider implements DungeonSpecificDataProvider {
return null;
}
/*
- * §r§c[BOSS] The Professor§r§f: I was burdened with terrible news recently...§r
- * §r§c[BOSS] The Professor§r§f: I'll show you real power!§r
- * §r§c[BOSS] The Professor§r§f: Oh? You found my Guardians one weakness?§r
- * §r§c[BOSS] The Professor§r§f: This time I'll be your opponent!§r
- * §r§c[BOSS] The Professor§r§f: I see. You have forced me to use my ultimate technique.§r
- * §r§c[BOSS] The Professor§r§f: The process is irreversible, but I'll be stronger than a Wither now!§r
- * §r§c[BOSS] The Professor§r§f: What?! My Guardian power is unbeatable!§r
*
* */
@@ -137,6 +130,43 @@ public class CatacombDataProvider implements DungeonSpecificDataProvider {
.signatureMsg("§r§c[BOSS] Bonzo§r§f: Alright, maybe I'm just weak after all..§r").build()
);
return bossfightProcessor;
+ } else if (floor.equals("F3")) {
+ GeneralBossfightProcessor bossfightProcessor = new GeneralBossfightProcessor();
+ bossfightProcessor.addPhase(GeneralBossfightProcessor.PhaseData.builder()
+ .phase("start")
+ .signatureMsg("§r§c[BOSS] The Professor§r§f: I was burdened with terrible news recently...§r")
+ .nextPhase("fight-1").build()
+ );
+ bossfightProcessor.addPhase(GeneralBossfightProcessor.PhaseData.builder()
+ .phase("fight-1")
+ .signatureMsg("§r§c[BOSS] The Professor§r§f: I'll show you real power!§r")
+ .nextPhase("first-defeat").build()
+ );
+ bossfightProcessor.addPhase(GeneralBossfightProcessor.PhaseData.builder()
+ .phase("first-defeat")
+ .signatureMsg("§r§c[BOSS] The Professor§r§f: Oh? You found my Guardians one weakness?§r")
+ .nextPhase("fight-2").build()
+ );
+ bossfightProcessor.addPhase(GeneralBossfightProcessor.PhaseData.builder()
+ .phase("fight-2")
+ .signatureMsg("§r§c[BOSS] The Professor§r§f: This time I'll be your opponent!§r")
+ .nextPhase("second-defeat").build()
+ );
+ bossfightProcessor.addPhase(GeneralBossfightProcessor.PhaseData.builder()
+ .phase("second-defeat")
+ .signatureMsg("§r§c[BOSS] The Professor§r§f: I see. You have forced me to use my ultimate technique.§r")
+ .nextPhase("fight-3").build()
+ );
+ bossfightProcessor.addPhase(GeneralBossfightProcessor.PhaseData.builder()
+ .phase("fight-3")
+ .signatureMsg("§r§c[BOSS] The Professor§r§f: The process is irreversible, but I'll be stronger than a Wither now!§r")
+ .nextPhase("final-defeat").build()
+ );
+ bossfightProcessor.addPhase(GeneralBossfightProcessor.PhaseData.builder()
+ .phase("final-defeat")
+ .signatureMsg("§r§c[BOSS] The Professor§r§f: What?! My Guardian power is unbeatable!§r").build()
+ );
+ return bossfightProcessor;
}
return null;
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java
index 75a204d8..6b0322ee 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java
@@ -46,7 +46,7 @@ public class DungeonRoom {
@AllArgsConstructor
@Getter
public static enum RoomState {
- DISCOVERED(0), COMPLETE_WITHOUT_SECRETS(0), FINISHED(0), FAILED(-10);
+ DISCOVERED(0), COMPLETE_WITHOUT_SECRETS(0), FINISHED(0), FAILED(-14);
private int scoreModifier;
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/FeatureDungeonScore.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/FeatureDungeonScore.java
index 2dde882f..a382d27a 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/FeatureDungeonScore.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/FeatureDungeonScore.java
@@ -84,12 +84,25 @@ public class FeatureDungeonScore extends GuiFeature {
for (NetworkPlayerInfo networkPlayerInfoIn : Minecraft.getMinecraft().thePlayer.sendQueue.getPlayerInfoMap()) {
String name = networkPlayerInfoIn.getDisplayName() != null ? networkPlayerInfoIn.getDisplayName().getFormattedText() : ScorePlayerTeam.formatPlayerName(networkPlayerInfoIn.getPlayerTeam(), networkPlayerInfoIn.getGameProfile().getName());
if (name.startsWith("§r Completed Rooms: §r")) {
- String milestone = TextUtils.stripColor(name).substring(21);
+ String milestone = TextUtils.stripColor(name).substring(18);
return Integer.parseInt(milestone);
}
}
return 0;
}
+ public int getTotalRooms() {
+ return (int) (100 * (getCompleteRooms() / (double)getPercentage()));
+ }
+ public int getUndiscoveredPuzzles() {
+ int cnt = 0;
+ for (NetworkPlayerInfo networkPlayerInfoIn : Minecraft.getMinecraft().thePlayer.sendQueue.getPlayerInfoMap()) {
+ String name = networkPlayerInfoIn.getDisplayName() != null ? networkPlayerInfoIn.getDisplayName().getFormattedText() : ScorePlayerTeam.formatPlayerName(networkPlayerInfoIn.getPlayerTeam(), networkPlayerInfoIn.getGameProfile().getName());
+ if (name.startsWith("§r ???: ")) {
+ cnt ++;
+ }
+ }
+ return cnt;
+ }
public ScoreCalculation calculateScore() {
if (!skyblockStatus.isOnDungeon()) return null;
@@ -97,14 +110,26 @@ public class FeatureDungeonScore extends GuiFeature {
if (context == null) return null;
if (!context.getMapProcessor().isInitialized()) return null;
- int skill = getPercentage();
+ int skill = 100;
int deaths = 0;
{
deaths = FeatureRegistry.DUNGEON_DEATHS.getTotalDeaths();
skill -= FeatureRegistry.DUNGEON_DEATHS.getTotalDeaths() * 2;
+ int totalCompRooms= 0;
+ boolean bossroomFound = false;
for (DungeonRoom dungeonRoom : context.getDungeonRoomList()) {
+ if (dungeonRoom.getColor() == 74) bossroomFound = true;
+ if (dungeonRoom.getCurrentState() != DungeonRoom.RoomState.DISCOVERED)
+ totalCompRooms += dungeonRoom.getUnitPoints().size();
+ if (dungeonRoom.getColor() == 66 && dungeonRoom.getCurrentState() == DungeonRoom.RoomState.DISCOVERED)
+ skill -= 10;
+ if (dungeonRoom.getColor() == 74 && dungeonRoom.getCurrentState() == DungeonRoom.RoomState.DISCOVERED)
+ skill += 1;
skill += dungeonRoom.getCurrentState().getScoreModifier();
}
+ if (!bossroomFound) skill += 1;
+ skill -= getUndiscoveredPuzzles() * 10;
+ skill -= (getTotalRooms() - totalCompRooms) * 4;
}
int explorer = 0;
boolean fullyCleared = false;