From e20b60fb5791933ebfbd926939312352ae7e357e Mon Sep 17 00:00:00 2001 From: Cow Date: Sun, 3 Jan 2021 14:59:00 +0100 Subject: Implemented more feedback from 0.12.0 pre-release - Added pet exp to tooltips - Dungeon party finder: Lookup info when party is full - Dungeon party finder: Mark 'carry' or 'hyperion' parties - Dungeon lookup: Added dungeon type (= Catacombs) levels to player lookup - Dungeons overlay: Fixed fluctuating crypt counter --- .../de/cowtipper/cowlection/data/DataHelper.java | 37 ++++++++++++++++++++++ .../cowtipper/cowlection/data/HySkyBlockStats.java | 17 ++++++++++ .../de/cowtipper/cowlection/data/XpTables.java | 12 +++++++ 3 files changed, 66 insertions(+) (limited to 'src/main/java/de/cowtipper/cowlection/data') diff --git a/src/main/java/de/cowtipper/cowlection/data/DataHelper.java b/src/main/java/de/cowtipper/cowlection/data/DataHelper.java index 028fe62..75c49b0 100644 --- a/src/main/java/de/cowtipper/cowlection/data/DataHelper.java +++ b/src/main/java/de/cowtipper/cowlection/data/DataHelper.java @@ -32,6 +32,19 @@ public final class DataHelper { return Arrays.stream(values(), 0, 5).toArray(SkyBlockRarity[]::new); } + public static SkyBlockRarity getPetRarityByColorCode(String colorCode) { + if (MYTHIC.rarityColor.toString().equals(colorCode)) { + // special case: Mystic Bat + return LEGENDARY; + } + for (SkyBlockRarity petRarity : getPetRarities()) { + if (petRarity.rarityColor.toString().equals(colorCode)) { + return petRarity; + } + } + return null; + } + public EnumChatFormatting getColor() { return rarityColor; } @@ -93,6 +106,30 @@ public final class DataHelper { } } + public enum PartyType { + SUITABLE(0xff22B14C, 240), + UNIDEAL(0xffCD8032, 240), + UNJOINABLE(0xffEB6E6E, 279), + CURRENT(0xff5FDE6C, 240), + NONE(0xffFF0000, 279); + + private final float zIndex; + private final int color; + + PartyType(int color, float zIndex) { + this.color = color; + this.zIndex = zIndex; + } + + public float getZIndex() { + return zIndex; + } + + public int getColor() { + return color; + } + } + public enum DungeonClass { @SerializedName("archer") ARCHER('A'), @SerializedName("berserk") BERSERK('B'), diff --git a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java index 242c0c3..b65e48c 100644 --- a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java +++ b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java @@ -338,6 +338,23 @@ public class HySkyBlockStats { return output; } + public String getDungeonTypesLevels() { + StringBuilder dungeonTypesLevels = new StringBuilder(); + if (dungeon_types != null && !dungeon_types.isEmpty()) { + for (Map.Entry dungeonType : dungeon_types.entrySet()) { + if (dungeonTypesLevels.length() == 0) { + dungeonTypesLevels.append(EnumChatFormatting.DARK_GRAY).append(" [").append(EnumChatFormatting.GRAY); + } else { + dungeonTypesLevels.append(EnumChatFormatting.DARK_GRAY).append(", ").append(EnumChatFormatting.GRAY); + } + int dungeonTypeLevel = dungeonType.getValue().getLevel(); + dungeonTypesLevels.append(Utils.fancyCase(dungeonType.getKey().substring(0, 4))).append(" ").append(MooConfig.useRomanNumerals() ? Utils.convertArabicToRoman(dungeonTypeLevel) : dungeonTypeLevel); + } + dungeonTypesLevels.append(EnumChatFormatting.DARK_GRAY).append("]"); + } + return dungeonTypesLevels.toString(); + } + public static class Type { private Map times_played; private Map tier_completions; diff --git a/src/main/java/de/cowtipper/cowlection/data/XpTables.java b/src/main/java/de/cowtipper/cowlection/data/XpTables.java index 391f90a..158fb66 100644 --- a/src/main/java/de/cowtipper/cowlection/data/XpTables.java +++ b/src/main/java/de/cowtipper/cowlection/data/XpTables.java @@ -249,6 +249,18 @@ public class XpTables { return -1; } } + + public static int getTotalExp(DataHelper.SkyBlockRarity rarity, int level, int exp) { + TreeSet xpToLevels = PET_XP.get(rarity); + if (xpToLevels != null) { + for (int xpToLevel : xpToLevels) { + if (level-- <= 1) { + return xpToLevel + exp; + } + } + } + return -1; + } } public enum Dungeoneering { -- cgit