From 31a219b3e285170718954317f212f2967552ce80 Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Sun, 10 Jan 2021 20:39:30 +0100 Subject: [PATCH] bigger --- src/main/java/ClickerModel.java | 21 +++++++++ src/main/java/ClickerPresenter.java | 68 ++++++++++++++--------------- src/main/java/ClickerView.form | 48 +++++++++++++++++--- src/main/java/ClickerView.java | 11 ++++- src/main/java/UpgradePanel.form | 22 ++-------- src/main/java/UpgradePanel.java | 35 +++++---------- 6 files changed, 120 insertions(+), 85 deletions(-) diff --git a/src/main/java/ClickerModel.java b/src/main/java/ClickerModel.java index dd6bc72..185b2a0 100644 --- a/src/main/java/ClickerModel.java +++ b/src/main/java/ClickerModel.java @@ -1,8 +1,13 @@ +import java.util.ArrayList; + public class ClickerModel { private double nicolas; + private final ArrayList upgradePanels; + public ClickerModel() { + upgradePanels = new ArrayList<>(); } public double getNicolas() { @@ -12,4 +17,20 @@ public class ClickerModel { public void setNicolas(double nicolas) { this.nicolas = nicolas; } + + public void addUpgrade(UpgradePanel panel) { + upgradePanels.add(panel); + } + + public void refresh() { + upgradePanels.forEach(UpgradePanel::refresh); + } + + public double getNPS() { + double nps = 0; + for(UpgradePanel p : upgradePanels){ + nps += p.getNPS(); + } + return nps; + } } diff --git a/src/main/java/ClickerPresenter.java b/src/main/java/ClickerPresenter.java index 4cbcf2d..7f4c46e 100644 --- a/src/main/java/ClickerPresenter.java +++ b/src/main/java/ClickerPresenter.java @@ -1,5 +1,4 @@ import javax.swing.*; -import java.util.ArrayList; public class ClickerPresenter { @@ -7,59 +6,44 @@ public class ClickerPresenter { private final ClickerView clickerView; private final ClickerModel clickerModel; - private final ArrayList upgradePanels; + + private double upgradeFactor = 1; LargeFormatter formatter = new LargeFormatter(); - private final Timer loop; - public ClickerPresenter(ClickerView clickerView) { + this.clickerModel = new ClickerModel(); this.clickerView = clickerView; this.clickerView.setClickerPresenter(this); - UpgradePanel illusion = new UpgradePanel("Illision", 10, 1.05, 0.1, this); - UpgradePanel cloneMachine = new UpgradePanel("Klonmaschine", 100, 1.1, 1, this); - UpgradePanel mysteriousCave = new UpgradePanel("Mysteriöse Höhle", 500, 1.1, 10, this); - UpgradePanel factory = new UpgradePanel("Massenfertigungsanstalt", 3000, 1.1, 150, this); - UpgradePanel herblingen = new UpgradePanel("Herblingen", 100000, 1.1, 6969, this); - UpgradePanel sihlcity = new UpgradePanel("Sihlcity", 1000000, 1.1, 50000, this); + addPanel(new UpgradePanel("Illision", 10, 1.05, 0.1, this)); + addPanel(new UpgradePanel("Klonmaschine", 100, 1.1, 1, this)); + addPanel(new UpgradePanel("Mysteriöse Höhle", 500, 1.1, 10, this)); + 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("Debugger", 1, 1, 1000000000, this)); - UpgradePanel debugger = new UpgradePanel("Debugger", 1, 1, 1000000000, this); - clickerView.addUpgrade(illusion); - clickerView.addUpgrade(cloneMachine); - clickerView.addUpgrade(mysteriousCave); - clickerView.addUpgrade(factory); - clickerView.addUpgrade(herblingen); - clickerView.addUpgrade(sihlcity); - clickerView.addUpgrade(debugger); - - upgradePanels = new ArrayList<>(); - upgradePanels.add(illusion); - upgradePanels.add(cloneMachine); - upgradePanels.add(mysteriousCave); - upgradePanels.add(factory); - upgradePanels.add(herblingen); - upgradePanels.add(sihlcity); - upgradePanels.add(debugger); - - clickerModel = new ClickerModel(); - - loop = new Timer(1000 / TARGET_FPS, e -> refresh()); + Timer loop = new Timer(1000 / TARGET_FPS, e -> refresh()); loop.start(); } - public static void main(String[] args) { - new ClickerPresenter(new ClickerView()); + private void addPanel(UpgradePanel panel) { + clickerModel.addUpgrade(panel); + clickerView.addUpgrade(panel); } + public void nicolasButtonClick() { clickerModel.setNicolas(clickerModel.getNicolas() + 1); } private void refresh() { clickerView.setNicolasAmount(formatter.formatBigNumber(clickerModel.getNicolas()) + " Nicolas"); - upgradePanels.forEach(UpgradePanel::refresh); + clickerView.setNPSAmount(formatter.formatBigNumber(clickerModel.getNPS()) + " Nicolas per Second"); + clickerModel.refresh(); } public void removeNicolas(double amount) { @@ -73,4 +57,20 @@ public class ClickerPresenter { public void addNicolas(double gain) { clickerModel.setNicolas(clickerModel.getNicolas() + gain); } + + public String changeFactor() { + upgradeFactor *= 10; + if (upgradeFactor > 1000) { + upgradeFactor = 1; + } + return String.format("%,.0fx", upgradeFactor); + } + + public double getUpgradeFactor() { + return upgradeFactor; + } + + public static void main(String[] args) { + new ClickerPresenter(new ClickerView()); + } } diff --git a/src/main/java/ClickerView.form b/src/main/java/ClickerView.form index 845f21d..923ec99 100644 --- a/src/main/java/ClickerView.form +++ b/src/main/java/ClickerView.form @@ -1,6 +1,6 @@
- + @@ -22,17 +22,17 @@ - + - + - + @@ -43,19 +43,55 @@ - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/ClickerView.java b/src/main/java/ClickerView.java index ee04f90..e15a20c 100644 --- a/src/main/java/ClickerView.java +++ b/src/main/java/ClickerView.java @@ -1,22 +1,28 @@ import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; public class ClickerView extends JFrame { private JButton nicolasButton; private JPanel mainPanel; private JPanel thingsPanel; private JLabel nicolasLabels; + private JButton factorUpgradeButton; + private JLabel npsLabel; private ClickerPresenter clickerPresenter; public ClickerView() { setDefaultCloseOperation(EXIT_ON_CLOSE); - setSize(700, 500); + setSize(800, 600); setContentPane(mainPanel); setLocationRelativeTo(null); setVisible(true); thingsPanel.setLayout(new BoxLayout(thingsPanel, BoxLayout.Y_AXIS)); nicolasButton.addActionListener(e -> clickerPresenter.nicolasButtonClick()); + + factorUpgradeButton.addActionListener(e -> factorUpgradeButton.setText(clickerPresenter.changeFactor())); } public void setClickerPresenter(ClickerPresenter clickerPresenter) { @@ -30,4 +36,7 @@ public class ClickerView extends JFrame { public void setNicolasAmount(String amount) { nicolasLabels.setText(amount); } + public void setNPSAmount(String amount) { + npsLabel.setText(amount); + } } diff --git a/src/main/java/UpgradePanel.form b/src/main/java/UpgradePanel.form index 4dfe7ee..0a04110 100644 --- a/src/main/java/UpgradePanel.form +++ b/src/main/java/UpgradePanel.form @@ -1,9 +1,9 @@
- + - + @@ -11,7 +11,7 @@ - + @@ -50,22 +50,6 @@ - - - - - - - - - - - - - - - - diff --git a/src/main/java/UpgradePanel.java b/src/main/java/UpgradePanel.java index c0b7aba..b8d7468 100644 --- a/src/main/java/UpgradePanel.java +++ b/src/main/java/UpgradePanel.java @@ -8,8 +8,6 @@ public class UpgradePanel extends JPanel { private JLabel nameLabel; private JLabel levelLabel; private JLabel gainLabel; - private JButton x10Button; - private JButton x100Button; private String name; @@ -37,34 +35,20 @@ public class UpgradePanel extends JPanel { this.nameLabel.setText(name); - upgradeButton.addActionListener(e -> upgrade(1)); - x10Button.addActionListener(e -> upgrade(10)); - x100Button.addActionListener(e -> upgrade(100)); + upgradeButton.addActionListener(e -> upgrade(presenter.getUpgradeFactor())); } - public void upgrade(int amount) { + public void upgrade(double amount) { presenter.removeNicolas(calculateExp(cost, costMultiplier, amount)); gain += baseGain * amount; level += amount; cost *= Math.pow(costMultiplier, amount); - - System.err.println(calculateExp(cost, costMultiplier, amount)); -/* - for (int i = 0; i < amount; i++) { - presenter.removeNicolas(cost); - gain += baseGain; - - cost = cost * costMultiplier; - level++; - }*/ } public void refresh() { - upgradeButton.setEnabled(presenter.getNicolas() >= cost); - x10Button.setEnabled(presenter.getNicolas() >= calculateExp(cost, costMultiplier, 10)); - x100Button.setEnabled(presenter.getNicolas() >= calculateExp(cost, costMultiplier, 100)); + upgradeButton.setEnabled(presenter.getNicolas() >= calculateExp(cost, costMultiplier, presenter.getUpgradeFactor())); //should nicolas be added? long currentTime = System.currentTimeMillis(); @@ -80,9 +64,8 @@ public class UpgradePanel extends JPanel { if (timePerNicolas < frameDeltaTime) { - System.out.printf(" FN"); double missedNicolas = frameDeltaTime / timePerNicolas; - System.out.printf(" mn=%.2f gain=%.2f add=%.2f", missedNicolas, gain, missedNicolas); + System.out.printf(" FN mn=%.2f gain=%.2f add=%.2f", missedNicolas, gain, missedNicolas); presenter.addNicolas(missedNicolas); } else { presenter.addNicolas(1); @@ -95,10 +78,8 @@ public class UpgradePanel extends JPanel { levelLabel.setText("Level: " + level); gainLabel.setText(lf.formatBigNumber(gain) + " Nicolas"); - upgradeButton.setText("Upgrade: " + lf.formatBigNumber(cost) + " Nicolas"); - x10Button.setText("x10: " + lf.formatBigNumber(calculateExp(cost, costMultiplier, 10)) + " Nicolas"); - x100Button.setText("x100: " + lf.formatBigNumber(calculateExp(cost, costMultiplier, 100)) + " Nicolas"); - + upgradeButton.setText(String.format("%,.0fx Upgrade: %s Nicolas", + presenter.getUpgradeFactor(), lf.formatBigNumber(calculateExp(cost, costMultiplier, presenter.getUpgradeFactor())))); } private double calculateExp(double c, double fac, double amount) { @@ -111,4 +92,8 @@ public class UpgradePanel extends JPanel { } return result * c; } + + public double getNPS() { + return gain; + } }