aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/cowtipper/cowlection/data
diff options
context:
space:
mode:
authorCow <cow@volloeko.de>2021-02-01 15:05:49 +0100
committerCow <cow@volloeko.de>2021-02-01 15:05:49 +0100
commit50113a57f593d0aec94d8627826d95024085345c (patch)
treeecf4f711fe48fa7f6c71d5f3e6e6302e0301d38b /src/main/java/de/cowtipper/cowlection/data
parent4dd979c42bd48d71edd3dd4a81b934c1784fc60f (diff)
downloadCowlection-50113a57f593d0aec94d8627826d95024085345c.tar.gz
Cowlection-50113a57f593d0aec94d8627826d95024085345c.tar.bz2
Cowlection-50113a57f593d0aec94d8627826d95024085345c.zip
Changelection
- `/moo stalkskyblock` additions: last profile save; Enchanting/Farming/Mining 51-60; Runecrafting 25 - Refined the comma representation of abbreviated numbers - Fixed issue with 'no dung class selected'
Diffstat (limited to 'src/main/java/de/cowtipper/cowlection/data')
-rw-r--r--src/main/java/de/cowtipper/cowlection/data/HyPlayerData.java1
-rw-r--r--src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java23
-rw-r--r--src/main/java/de/cowtipper/cowlection/data/XpTables.java24
3 files changed, 42 insertions, 6 deletions
diff --git a/src/main/java/de/cowtipper/cowlection/data/HyPlayerData.java b/src/main/java/de/cowtipper/cowlection/data/HyPlayerData.java
index 5a7c168..feca6ba 100644
--- a/src/main/java/de/cowtipper/cowlection/data/HyPlayerData.java
+++ b/src/main/java/de/cowtipper/cowlection/data/HyPlayerData.java
@@ -16,6 +16,7 @@ public class HyPlayerData {
private long lastLogin;
private long lastLogout;
private String mostRecentGameType;
+ @SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
private Map<String, Integer> achievements;
/**
diff --git a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java
index b65e48c..fb9fcff 100644
--- a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java
+++ b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java
@@ -126,6 +126,7 @@ public class HySkyBlockStats {
private double experience_skill_taming = -1;
private Map<String, SlayerBossDetails> slayer_bosses;
private List<Pet> pets;
+ private JacobData jacob2;
private Dungeons dungeons;
/**
@@ -138,6 +139,10 @@ public class HySkyBlockStats {
return Utils.getDurationAsWords(first_join);
}
+ public Pair<String, String> getFancyLastSave() {
+ return Utils.getDurationAsWords(last_save);
+ }
+
public double getCoinPurse() {
return coin_purse;
}
@@ -149,10 +154,10 @@ public class HySkyBlockStats {
public Map<XpTables.Skill, Integer> getSkills() {
Map<XpTables.Skill, Integer> skills = new TreeMap<>();
if (experience_skill_farming >= 0) {
- skills.put(XpTables.Skill.FARMING, XpTables.Skill.FARMING.getLevel(experience_skill_farming));
+ skills.put(XpTables.Skill.FARMING, XpTables.Skill.FARMING.getLevel(experience_skill_farming, getMaxFarmingLevel()));
}
if (experience_skill_mining >= 0) {
- skills.put(XpTables.Skill.MINING, XpTables.Skill.MINING.getLevel(experience_skill_mining));
+ skills.put(XpTables.Skill.MINING, XpTables.Skill.MINING.getLevel(experience_skill_mining, 60));
}
if (experience_skill_combat >= 0) {
skills.put(XpTables.Skill.COMBAT, XpTables.Skill.COMBAT.getLevel(experience_skill_combat));
@@ -164,7 +169,7 @@ public class HySkyBlockStats {
skills.put(XpTables.Skill.FISHING, XpTables.Skill.FISHING.getLevel(experience_skill_fishing));
}
if (experience_skill_enchanting >= 0) {
- skills.put(XpTables.Skill.ENCHANTING, XpTables.Skill.ENCHANTING.getLevel(experience_skill_enchanting));
+ skills.put(XpTables.Skill.ENCHANTING, XpTables.Skill.ENCHANTING.getLevel(experience_skill_enchanting, 60));
}
if (experience_skill_alchemy >= 0) {
skills.put(XpTables.Skill.ALCHEMY, XpTables.Skill.ALCHEMY.getLevel(experience_skill_alchemy));
@@ -209,6 +214,14 @@ public class HySkyBlockStats {
return null;
}
+ public int getMaxFarmingLevel() {
+ int farmingLevelCap = 50;
+ if (jacob2 != null && jacob2.perks != null) {
+ farmingLevelCap += jacob2.perks.getOrDefault("farming_level_cap", 0);
+ }
+ return farmingLevelCap;
+ }
+
public List<String> getArmor() {
NBTTagCompound nbt = inv_armor.getDecodedData();
List<String> armorList = new ArrayList<>();
@@ -270,6 +283,10 @@ public class HySkyBlockStats {
}
}
+ private static class JacobData {
+ private Map<String, Integer> perks;
+ }
+
public static class Dungeons {
private Map<String, Type> dungeon_types;
private Map<DataHelper.DungeonClass, ClassDetails> player_classes;
diff --git a/src/main/java/de/cowtipper/cowlection/data/XpTables.java b/src/main/java/de/cowtipper/cowlection/data/XpTables.java
index 158fb66..efa576a 100644
--- a/src/main/java/de/cowtipper/cowlection/data/XpTables.java
+++ b/src/main/java/de/cowtipper/cowlection/data/XpTables.java
@@ -62,6 +62,16 @@ public class XpTables {
XP_TO_LEVEL.put(47472425, 48);
XP_TO_LEVEL.put(51172425, 49);
XP_TO_LEVEL.put(55172425, 50);
+ XP_TO_LEVEL.put(59472425, 51);
+ XP_TO_LEVEL.put(64072425, 52);
+ XP_TO_LEVEL.put(68972425, 53);
+ XP_TO_LEVEL.put(74172425, 54);
+ XP_TO_LEVEL.put(79672425, 55);
+ XP_TO_LEVEL.put(85472425, 56);
+ XP_TO_LEVEL.put(91572425, 57);
+ XP_TO_LEVEL.put(97972425, 58);
+ XP_TO_LEVEL.put(104672425, 59);
+ XP_TO_LEVEL.put(111672425, 60);
XP_TO_LEVEL_ALTERNATIVE.put(0, 0);
XP_TO_LEVEL_ALTERNATIVE.put(50, 1);
@@ -88,7 +98,7 @@ public class XpTables {
XP_TO_LEVEL_ALTERNATIVE.put(47850, 22);
XP_TO_LEVEL_ALTERNATIVE.put(60100, 23);
XP_TO_LEVEL_ALTERNATIVE.put(75400, 24);
-
+ XP_TO_LEVEL_ALTERNATIVE.put(94450, 25);
}
Skill() {
@@ -101,9 +111,17 @@ public class XpTables {
public int getLevel(double exp) {
if (alternativeXpFormula) {
- return XP_TO_LEVEL_ALTERNATIVE.floorEntry((int) exp).getValue();
+ return getLevel(exp, 25);
} else {
- return XP_TO_LEVEL.floorEntry((int) exp).getValue();
+ return getLevel(exp, 50);
+ }
+ }
+
+ public int getLevel(double exp, int maxLevel) {
+ if (alternativeXpFormula) {
+ return Math.min(XP_TO_LEVEL_ALTERNATIVE.floorEntry((int) exp).getValue(), maxLevel);
+ } else {
+ return Math.min(XP_TO_LEVEL.floorEntry((int) exp).getValue(), maxLevel);
}
}