summaryrefslogtreecommitdiff
path: root/src/main/java/net/uomc/mineshaft/blacksmith/Blacksmith.java
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2025-11-04 17:35:30 +0000
committerdavidovski <david@davidovski.xyz>2025-11-04 17:35:30 +0000
commit2e47a68b69fac942e4efd7b90f248e15f02f6a82 (patch)
tree1753ffc8604689a97f02409efc17f297596bbc4f /src/main/java/net/uomc/mineshaft/blacksmith/Blacksmith.java
parent5a008748459e230de0e875afff59e3b92c7aca0c (diff)
update v0.6 pre
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/blacksmith/Blacksmith.java')
-rw-r--r--src/main/java/net/uomc/mineshaft/blacksmith/Blacksmith.java72
1 files changed, 53 insertions, 19 deletions
diff --git a/src/main/java/net/uomc/mineshaft/blacksmith/Blacksmith.java b/src/main/java/net/uomc/mineshaft/blacksmith/Blacksmith.java
index be3ad3c..98baf7f 100644
--- a/src/main/java/net/uomc/mineshaft/blacksmith/Blacksmith.java
+++ b/src/main/java/net/uomc/mineshaft/blacksmith/Blacksmith.java
@@ -16,8 +16,10 @@ import net.uomc.mineshaft.farm.Farm;
class Blacksmith extends Farm {
- public static long UPDATES_PER_LEVEL = 10;
- public static long MS_PER_UPDATE = 1000l * 60l * 10l;
+ public static long UPDATES_PER_LEVEL = 240;
+ // TODO fix this
+ public static long MS_PER_UPDATE = 1000l * 60l;
+ //public static long MS_PER_UPDATE = 1000l * 10l;
private SavedStat questionsStat;
public Blacksmith(Mineshaft bot) {
@@ -25,10 +27,36 @@ class Blacksmith extends Farm {
questionsStat = getBot().getPlayerStats().getStat("blacksmith_questions");
}
- public boolean upgradeArmour(Member member) {
+ public int collect(Member member) {
+ if (!isReady(member))
+ return 0;
+
+ if (isSword(member)) return collectSword(member);
+ return collectArmour(member);
+ }
+
+ public int collectSword(Member member) {
+ int levelRaw = (int) getPlanted(member);
+ getBot().getSword(member).setLevel(getWorkingLevel(member));
+
+ setPlanted(member, 0);
+ setQuantity(member, 0);
+ return levelRaw;
+ }
+
+ public int collectArmour(Member member) {
+ int levelRaw = (int) getPlanted(member);
+ getBot().getArmour(member).setLevel(getWorkingLevel(member));
+
+ setPlanted(member, 0);
+ setQuantity(member, 0);
+ return levelRaw;
+ }
+
+ public int upgradeArmour(Member member) {
int armourLevel = getBot().getArmour(member).getLevel();
if (armourLevel >= Armour.MAX_ARMOUR_LEVEL) {
- return false;
+ return 0;
}
armourLevel += 1;
@@ -37,22 +65,24 @@ class Blacksmith extends Farm {
getBot().getArmour(member).setLevel(0);
setQuantity(member, armourLevel * UPDATES_PER_LEVEL);
- return true;
+ setNextUpdate(member, System.currentTimeMillis() + MS_PER_UPDATE);
+ return armourLevel;
}
- public boolean upgradeSword(Member member) {
+ public int upgradeSword(Member member) {
int swordLevel = getBot().getSword(member).getLevel();
if (swordLevel >= Sword.MAX_SWORD_LEVEL) {
- return false;
+ return 0;
}
swordLevel += 1;
- setPlanted(member, -swordLevel);
+ setPlanted(member, swordLevel);
getBot().getSword(member).setLevel(0);
setQuantity(member, swordLevel * UPDATES_PER_LEVEL);
- return true;
+ setNextUpdate(member, System.currentTimeMillis() + MS_PER_UPDATE);
+ return swordLevel;
}
@@ -117,7 +147,9 @@ class Blacksmith extends Farm {
}
BinomialDistribution bd = new BinomialDistribution((int) updates, getProgressChance(member));
- setQuantity(member, getQuantity(member) - bd.sample());
+ int change = bd.sample();
+ setQuantity(member, getQuantity(member) - change);
+ System.out.println("Doing update on " + member.getEffectiveName() + ", updates = " + updates + ", changed by -" + change);
setNextUpdate(member, getNextUpdate(member) + MS_PER_UPDATE*updates);
}
@@ -144,11 +176,11 @@ class Blacksmith extends Farm {
long max = getWorkingLevel(member) * UPDATES_PER_LEVEL;
long current = getQuantity(member);
- return (max - Math.min(current, 0)) / max;
+ return (double) (max - Math.max(current, 0)) / (double) max;
}
public long getTimeEstimate(Member member, long updates) {
- return (long) (MS_PER_UPDATE * (1 - getProgressChance(member)) * updates);
+ return (long) (MS_PER_UPDATE * (1 / getProgressChance(member)) * updates);
}
public long getTimeEstimateRemaining(Member member) {
@@ -207,7 +239,7 @@ class Blacksmith extends Farm {
if (!isWorking(member))
return false;
- return getQuantity(member) < 0;
+ return getQuantity(member) <= 0;
}
public void incrementQuestions(Member member) {
@@ -228,12 +260,12 @@ class Blacksmith extends Farm {
long forges = getValidForgeCount(member);
if (forges > 1)
- b.append("We are busy working on your ");
+ b.append("We are busy working on your **");
else
- b.append("I am busy working on your ");
+ b.append("I am busy working on your **");
b.append(getWorkingName(member));
- b.append(".\n");
+ b.append("**.\n");
if (questions < 1)
return b.toString();
@@ -255,7 +287,7 @@ class Blacksmith extends Farm {
if (questions >= 5) {
double progress = getProgress(member);
- b.append("I am about " + + Math.round(100*progress) + "** of the way to finishing.\n");
+ b.append("I am about **" + + Math.round(100*progress) + "%** of the way to finishing.\n");
}
if (questions == 6)
@@ -309,12 +341,14 @@ class Blacksmith extends Farm {
if (questions == 100)
b.append("This is the 100th time you've asked... I'm sure you are proud of yourself");
- if (questions >= 500)
+ if (questions >= 500 && questions <= 510)
return "You have asked me too many times. No more updates sorry.";
+ if (questions == 511)
+ return "Ok fine. Come back later and I will tell you";
+
return b.toString();
}
-
}