diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..c7bb69e
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+TimosClickerGame
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..a19ce13
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_formdev_svgSalamander_1_1_2_3.xml b/.idea/libraries/Maven__com_formdev_svgSalamander_1_1_2_3.xml
new file mode 100644
index 0000000..e1f2d02
--- /dev/null
+++ b/.idea/libraries/Maven__com_formdev_svgSalamander_1_1_2_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_weisj_darklaf_core_2_5_3.xml b/.idea/libraries/Maven__com_github_weisj_darklaf_core_2_5_3.xml
new file mode 100644
index 0000000..b93498b
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_weisj_darklaf_core_2_5_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_weisj_darklaf_macos_2_5_3.xml b/.idea/libraries/Maven__com_github_weisj_darklaf_macos_2_5_3.xml
new file mode 100644
index 0000000..761f5f0
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_weisj_darklaf_macos_2_5_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_weisj_darklaf_native_utils_2_5_3.xml b/.idea/libraries/Maven__com_github_weisj_darklaf_native_utils_2_5_3.xml
new file mode 100644
index 0000000..b2a4890
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_weisj_darklaf_native_utils_2_5_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_weisj_darklaf_platform_base_2_5_3.xml b/.idea/libraries/Maven__com_github_weisj_darklaf_platform_base_2_5_3.xml
new file mode 100644
index 0000000..8f085db
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_weisj_darklaf_platform_base_2_5_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_weisj_darklaf_property_loader_2_5_3.xml b/.idea/libraries/Maven__com_github_weisj_darklaf_property_loader_2_5_3.xml
new file mode 100644
index 0000000..b21a9d7
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_weisj_darklaf_property_loader_2_5_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_weisj_darklaf_theme_2_5_3.xml b/.idea/libraries/Maven__com_github_weisj_darklaf_theme_2_5_3.xml
new file mode 100644
index 0000000..83b9e8c
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_weisj_darklaf_theme_2_5_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_weisj_darklaf_utils_2_5_3.xml b/.idea/libraries/Maven__com_github_weisj_darklaf_utils_2_5_3.xml
new file mode 100644
index 0000000..d795a4f
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_weisj_darklaf_utils_2_5_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_weisj_darklaf_windows_2_5_3.xml b/.idea/libraries/Maven__com_github_weisj_darklaf_windows_2_5_3.xml
new file mode 100644
index 0000000..cdfb171
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_weisj_darklaf_windows_2_5_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_java_dev_jna_jna_5_5_0.xml b/.idea/libraries/Maven__net_java_dev_jna_jna_5_5_0.xml
new file mode 100644
index 0000000..ef246f9
--- /dev/null
+++ b/.idea/libraries/Maven__net_java_dev_jna_jna_5_5_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml
new file mode 100644
index 0000000..f854ab0
--- /dev/null
+++ b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_7_0.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_7_0.xml
new file mode 100644
index 0000000..f7cf4fe
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_7_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_7_0.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_7_0.xml
new file mode 100644
index 0000000..cc01e3f
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_7_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_7_0.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_7_0.xml
new file mode 100644
index 0000000..f198e4b
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_7_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_7_0.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_7_0.xml
new file mode 100644
index 0000000..a53686b
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_7_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_7_0.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_7_0.xml
new file mode 100644
index 0000000..cde8a48
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_7_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_7_0.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_7_0.xml
new file mode 100644
index 0000000..3391deb
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_7_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
new file mode 100644
index 0000000..fbc1b16
--- /dev/null
+++ b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_swinglabs_jxlayer_3_0_4.xml b/.idea/libraries/Maven__org_swinglabs_jxlayer_3_0_4.xml
new file mode 100644
index 0000000..e836351
--- /dev/null
+++ b/.idea/libraries/Maven__org_swinglabs_jxlayer_3_0_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..4dcb8a2
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..8332291
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..e96534f
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TimosClickerGame.iml b/TimosClickerGame.iml
index aa5dd9d..06d0d3c 100644
--- a/TimosClickerGame.iml
+++ b/TimosClickerGame.iml
@@ -5,7 +5,6 @@
-
@@ -19,5 +18,16 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 89b0ef8..54f0f25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,11 +14,16 @@
RELEASE
test
+
+ com.github.weisj
+ darklaf-core
+ 2.5.3
+
14
14
-
+
\ No newline at end of file
diff --git a/src/main/java/ClickerPresenter.java b/src/main/java/ClickerPresenter.java
index 742ef6c..43b65b1 100644
--- a/src/main/java/ClickerPresenter.java
+++ b/src/main/java/ClickerPresenter.java
@@ -1,3 +1,8 @@
+import com.github.weisj.darklaf.LafManager;
+import com.github.weisj.darklaf.theme.HighContrastLightTheme;
+import com.github.weisj.darklaf.theme.OneDarkTheme;
+import com.github.weisj.darklaf.theme.SolarizedLightTheme;
+
import javax.swing.*;
import java.math.BigDecimal;
@@ -25,8 +30,12 @@ public class ClickerPresenter {
addPanel(new UpgradePanel("Massenfertigungsanstalt", 3000, 1.1, 150, this));
addPanel(new UpgradePanel("Herblingen", 100000, 1.1, 6969, this));
addPanel(new UpgradePanel("Sihlcity", 1000000, 1.1, 50000, this));
+ addPanel(new UpgradePanel("Nicolas' Mutter", 100000000, 1.1, 950000, this));
+ addPanel(new UpgradePanel("Nicolas Portal", new BigDecimal("1E+10"), 1.1, new BigDecimal("5E+7"), this));
+ addPanel(new UpgradePanel("Nicolas-Nicolas", new BigDecimal("69E+11"), 1.1, new BigDecimal("3E+8"), this));
+ addPanel(new UpgradePanel("Nicolas Singularität", new BigDecimal("1E+14"), 1.1, new BigDecimal("1E+69"), this));
- addPanel(new UpgradePanel("Debugger", 1, 1, 1000000000, this));
+ //addPanel(new UpgradePanel("Debugger", 1, 1, 1000000000, this));
clickerModel.getUpgradePanels().forEach(UpgradePanel::recalculateUpgradeButtonText);
Timer loop = new Timer(1000 / TARGET_FPS, e -> refresh());
@@ -79,6 +88,7 @@ public class ClickerPresenter {
}
public static void main(String[] args) {
+ LafManager.install(new OneDarkTheme());
new ClickerPresenter(new ClickerView());
}
}
diff --git a/src/main/java/ClickerView.form b/src/main/java/ClickerView.form
index 923ec99..9b54dc2 100644
--- a/src/main/java/ClickerView.form
+++ b/src/main/java/ClickerView.form
@@ -56,14 +56,6 @@
-
-
-
-
-
-
-
-
@@ -92,6 +84,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/LargeFormatter.java b/src/main/java/LargeFormatter.java
index d57f7f2..ba5fe44 100644
--- a/src/main/java/LargeFormatter.java
+++ b/src/main/java/LargeFormatter.java
@@ -6,9 +6,8 @@ public class LargeFormatter {
private static final String[] suffixes = {"", "k", "M", "B", "T", "q", "Q", "s", "S", "O", "N"};
//private static final String[] suffixes = {"", "k"}; //for large number testing
- private static final BigDecimal _999 = BigDecimal.valueOf(999);
- private static final BigDecimal THOUSAND = BigDecimal.valueOf(100);
- private static final BigDecimal TEN = BigDecimal.TEN;
+ private static final BigDecimal _1000 = BigDecimal.valueOf(1000);
+ private static final BigDecimal _10 = BigDecimal.TEN;
//input: 10 230 000 -> 10.23M
public String formatDouble(double number) {
@@ -43,37 +42,32 @@ public class LargeFormatter {
}
public String formatBigNumber(BigDecimal number) {
- if(number == null){
+ if (number == null) {
System.err.println("NUMBER IS NULL ");
return "";
}
int suffixSize = 0;
boolean scientific = false;
- while (number.compareTo(_999) > 0) {
-
+ while (number.compareTo(_1000) >= 0) {
if (suffixSize == suffixes.length - 1) {
scientific = true;
break;
}
suffixSize++;
- number = number.divide(THOUSAND, 0 , RoundingMode.HALF_UP);
+ number = number.divide(_1000, 0, RoundingMode.HALF_UP);
}
if (scientific) {
int exp = 3 * suffixSize;
- while (number.compareTo(TEN) >= 0) {
+ while (number.compareTo(_10) >= 0) {
exp++;
- number = number.divide(TEN, 0 , RoundingMode.HALF_UP);
+ number = number.divide(_10, 0, RoundingMode.HALF_UP);
}
return String.format("%.2fE%d", number, exp);
} else {
- if (false) { //TODO implement better solution
- return String.format("%.0f%s", number, suffixes[suffixSize]);
- } else {
- return String.format("%.2f%s", number, suffixes[suffixSize]);
- }
+ return String.format("%.2f%s", number, suffixes[suffixSize]);
}
}
}
diff --git a/src/main/java/UpgradePanel.java b/src/main/java/UpgradePanel.java
index a425da1..afe2acc 100644
--- a/src/main/java/UpgradePanel.java
+++ b/src/main/java/UpgradePanel.java
@@ -18,7 +18,7 @@ public class UpgradePanel extends JPanel {
private String name;
private final BigDecimal costMultiplier;
- private final double baseGain;
+ private final BigDecimal baseGain;
private BigDecimal cost;
private BigDecimal gain = BigDecimal.ZERO;
@@ -32,11 +32,15 @@ public class UpgradePanel extends JPanel {
private BigDecimal upgradeCost = BigDecimal.ZERO;
- public UpgradePanel(String name, double baseCost, double costMultiplier, double baseGain, ClickerPresenter presenter) {
+ public UpgradePanel(String name, long baseCost, double costMultiplier, double baseGain, ClickerPresenter presenter) {
+ this(name, BigDecimal.valueOf(baseCost), costMultiplier, BigDecimal.valueOf(baseGain), presenter);
+ }
+
+ public UpgradePanel(String name, BigDecimal baseCost, double costMultiplier, BigDecimal baseGain, ClickerPresenter presenter) {
add(mainPanel);
this.name = name;
- this.cost = new BigDecimal(baseCost);
+ this.cost = baseCost;
this.costMultiplier = BigDecimal.valueOf(costMultiplier);
this.baseGain = baseGain;
this.presenter = presenter;
@@ -49,7 +53,7 @@ public class UpgradePanel extends JPanel {
public void upgrade(int amount) {
presenter.removeNicolas(calculateExp(cost, costMultiplier, amount));
- gain = gain.add(new BigDecimal(baseGain * amount));
+ gain = gain.add(baseGain.multiply(new BigDecimal(amount)));
level += amount;
cost = cost.multiply(costMultiplier.pow(amount));