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));