idrojpd17

Cookie Clicker

Nov 29th, 2021 (edited)
857
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //with help from RyiSnow - YouTube
  2. //edited by uhm, me.
  3. //also i know i misspelled "description". And yes, i had to look up the word to know how to type it for this.
  4.  
  5. import javax.swing.*;
  6. import java.awt.*;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.awt.event.MouseEvent;
  10. import java.awt.event.MouseListener;
  11. import java.io.IOException;
  12. import java.net.CookieHandler;
  13. import java.net.URI;
  14. import java.util.List;
  15. import java.util.Map;
  16.  
  17. public class Main{
  18.     JLabel counterLabel, perSecLabel;
  19.     int cookieCounter, timerSpeed;
  20.     double perSecond;
  21.     boolean timerOn;
  22.     Font font1, font2;
  23.     cookieHandler cHandler = new cookieHandler();
  24.  
  25.     Timer timer;
  26.  
  27.     //buildings
  28.     JButton cursor, grandma, farm, mine;
  29.     JTextArea discriptionText;
  30.     MouseHandler mHandler = new MouseHandler();
  31.  
  32.     boolean grandmaUnlocked = false;
  33.     boolean farmUnlocked = false;
  34.     boolean mineUnlocked = false;
  35.  
  36.     long cursorNumber, cursorPrice;
  37.     long grandmaNumber, grandmaPrice;
  38.     long farmNumber, farmPrice;
  39.     long mineNumber, minePrice;
  40.  
  41.  
  42.     public static void main(String[] args) {
  43.         new Main();
  44.     }
  45.  
  46.     public Main(){
  47.         timerOn = false;
  48.         perSecond = 0;
  49.         cookieCounter = 0;
  50.  
  51.  
  52.         cursorNumber = 0;
  53.         cursorPrice = 15;
  54.  
  55.         grandmaNumber = 0;
  56.         grandmaPrice = 100;
  57.  
  58.         farmNumber = 0;
  59.         farmPrice = 1000;
  60.  
  61.         mineNumber = 0;
  62.         minePrice = 5000;
  63.  
  64.         createFond();
  65.         createUI();
  66.     }
  67.  
  68.     public void createFond(){
  69.         font1 = new Font("Comic Sans MS", Font.PLAIN, 32);
  70.         font2 = new Font("Comic Sans MS", Font.PLAIN, 15);
  71.     }
  72.  
  73.     public void createUI(){
  74.         JFrame window = new JFrame();
  75.         window.setSize(800,600);
  76.         window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  77.         window.getContentPane().setBackground(Color.black);
  78.         window.setLayout(null);
  79.  
  80.         JPanel cookiePanel = new JPanel();
  81.         cookiePanel.setBounds(100,220,250,250);
  82.         cookiePanel.setBackground(Color.black);
  83.         window.add(cookiePanel);
  84.  
  85.         ImageIcon cookie = new ImageIcon("cookie.png");
  86.  
  87.         JButton cookieButton = new JButton();
  88.         cookieButton.setBackground(Color.black);
  89.         cookieButton.setFocusPainted(false);
  90.         cookieButton.setBorder(null);
  91.         cookieButton.setIcon(cookie);
  92.         cookieButton.addActionListener(cHandler);
  93.         cookieButton.setBorderPainted(false);
  94.         cookieButton.setContentAreaFilled(false);
  95.         cookieButton.setOpaque(false);
  96.         cookieButton.setActionCommand("Cookie");
  97.         cookiePanel.add(cookieButton);
  98.  
  99.         JPanel counterPanel = new JPanel();
  100.         counterPanel.setBounds(100,100,200,100);
  101.         counterPanel.setBackground(Color.black);
  102.         counterPanel.setLayout(new GridLayout(2,1));
  103.         window.add(counterPanel);
  104.  
  105.         counterLabel = new JLabel(cookieCounter + " cookies");
  106.         counterLabel.setForeground(Color.white);
  107.         counterLabel.setFont(font1);
  108.         counterPanel.add(counterLabel);
  109.  
  110.         perSecLabel = new JLabel();
  111.         perSecLabel.setForeground(Color.white);
  112.         perSecLabel.setFont(font2);
  113.         counterPanel.add(perSecLabel);
  114.  
  115.         JPanel itemPanel = new JPanel();
  116.         itemPanel.setBounds(500,170,250,250);
  117.         itemPanel.setBackground(Color.black);
  118.         itemPanel.setLayout(new GridLayout(4,1)); // more rows = more buildings
  119.         window.add(itemPanel);
  120.  
  121.         cursor = new JButton("Cursor");
  122.         cursor.setFont(font1);
  123.         cursor.setFocusPainted(false);
  124.         cursor.addActionListener(cHandler);
  125.         cursor.setActionCommand("Cursor");
  126.         cursor.addMouseListener(mHandler);
  127.         itemPanel.add(cursor);
  128.  
  129.         grandma = new JButton("?");
  130.         grandma.setFont(font1);
  131.         grandma.setFocusPainted(false);
  132.         grandma.addActionListener(cHandler);
  133.         grandma.setActionCommand("Grandma");
  134.         grandma.addMouseListener(mHandler);
  135.         itemPanel.add(grandma);
  136.  
  137.         farm = new JButton("?");
  138.         farm.setFont(font1);
  139.         farm.setFocusPainted(false);
  140.         farm.addActionListener(cHandler);
  141.         farm.setActionCommand("Farm");
  142.         farm.addMouseListener(mHandler);
  143.         itemPanel.add(farm);
  144.  
  145.         mine = new JButton("?");
  146.         mine.setFont(font1);
  147.         mine.setFocusPainted(false);
  148.         mine.addActionListener(cHandler);
  149.         mine.setActionCommand("Mine");
  150.         mine.addMouseListener(mHandler);
  151.         itemPanel.add(mine);
  152.  
  153.         JPanel discriptionPanel = new JPanel();
  154.         discriptionPanel.setBounds(500,70,250,150);
  155.         discriptionPanel.setBackground(Color.black);
  156.         window.add(discriptionPanel);
  157.  
  158.         discriptionText = new JTextArea();
  159.         discriptionText.setBounds(500,70,250,150);
  160.         discriptionText.setForeground(Color.white);
  161.         discriptionText.setBackground(Color.black);
  162.         discriptionText.setFont(font2);
  163.         discriptionText.setLineWrap(true);
  164.         discriptionText.setWrapStyleWord(true);
  165.         discriptionText.setEditable(false);
  166.         discriptionPanel.add(discriptionText);
  167.  
  168.         window.setVisible(true);
  169.     }
  170.  
  171.     public void checkForBuilding(){
  172.         if(grandmaUnlocked == false){
  173.             if(cookieCounter>=100){
  174.                 grandmaUnlocked = true;
  175.                 grandma.setText("Grandma " + "(" + grandmaNumber + ")");
  176.             }
  177.         }
  178.         if(farmUnlocked == false){
  179.             if(cookieCounter >= 1000){
  180.                 farmUnlocked = true;
  181.                 farm.setText("Farm " + "(" + farmNumber + ")");
  182.             }
  183.         }
  184.         if(mineUnlocked == false){
  185.             if(cookieCounter >= 1000){
  186.                 mineUnlocked = true;
  187.                 mine.setText("Mine " + "(" + mineNumber + ")");
  188.             }
  189.         }
  190.     }
  191.  
  192.     public void setTimer(){
  193.         timer = new Timer(timerSpeed, e -> {
  194.             cookieCounter++;
  195.             counterLabel.setText(cookieCounter + " cookies");
  196.             checkForBuilding();
  197.         });
  198.     }
  199.  
  200.     public void timerUpdate(){
  201.         if(timerOn == false){
  202.             timerOn = true;
  203.         }
  204.         else if(timerOn == true){
  205.             timer.stop();
  206.         }
  207.         double speed = 1/perSecond*1000; // 1/0.1*1000 = 10*1000 = 10000ms or 10sec
  208.         timerSpeed = (int)Math.round(speed);
  209.  
  210.         String perSecondFormated = String.format("%.1f", perSecond);
  211.  
  212.         perSecLabel.setText("Per Seconds " + perSecondFormated);
  213.  
  214.  
  215.         setTimer();
  216.         timer.start();
  217.  
  218.         checkForBuilding();
  219.     }
  220.     public class cookieHandler implements ActionListener{
  221.         public void actionPerformed(ActionEvent event){
  222.  
  223.             String action = event.getActionCommand();
  224.                 switch (action){
  225.                     case "Cookie":
  226.                         cookieCounter++;
  227.                         counterLabel.setText(cookieCounter + " cookies");
  228.                         checkForBuilding();
  229.                         break;
  230.                     case "Cursor":
  231.                         if(cookieCounter >= cursorPrice){
  232.                             cookieCounter = (int) (cookieCounter - cursorPrice);
  233.  
  234.                             cursorPrice = (cursorPrice * 115^cursorNumber)/100;
  235.  
  236.                             counterLabel.setText(cookieCounter + " cookies");
  237.  
  238.                             cursorNumber++;
  239.                             cursor.setText("Cursor" + "(" + cursorNumber + ")");
  240.  
  241.                             discriptionText.setText("Cursor\n[price: " + cursorPrice + "]\nAutoClicks once every 10 seconds\nAdds 0.1 per second");
  242.  
  243.                             perSecond = perSecond + 0.1;
  244.                             timerUpdate();
  245.                         }
  246.                         else{
  247.                             discriptionText.setText("You need more cookies!");
  248.                         }
  249.                         break;
  250.                     case "Grandma":
  251.                         if(cookieCounter >= grandmaPrice){
  252.                             cookieCounter = (int) (cookieCounter - grandmaPrice);
  253.  
  254.                             grandmaPrice = (grandmaPrice * 115^grandmaNumber)/100;
  255.  
  256.                             counterLabel.setText(cookieCounter + " cookies");
  257.  
  258.                             grandmaNumber++;
  259.                             grandma.setText("Grandma" + "(" + grandmaNumber + ")");
  260.  
  261.                             discriptionText.setText("Grandma\n[price: " + grandmaPrice + "]\nAutoClicks once every 1 seconds\nAdds 1 per second\"");
  262.  
  263.                             perSecond = perSecond + 1;
  264.                             timerUpdate();
  265.                         }
  266.                         else{
  267.                             discriptionText.setText("You need more cookies!");
  268.                         }
  269.                         break;
  270.                     case "Farm":
  271.                         if(cookieCounter >= farmPrice){
  272.                             cookieCounter = (int) (cookieCounter - farmPrice);
  273.  
  274.                             farmPrice = (farmPrice * 115^farmNumber)/100;
  275.  
  276.                             counterLabel.setText(cookieCounter + " cookies");
  277.  
  278.                             farmNumber++;
  279.                             farm.setText("Farm" + "(" + farmNumber + ")");
  280.  
  281.                             discriptionText.setText("Farm\n[price: " + farmPrice + "]\nAutoClicks once every 1 seconds\nAdds 10 per second\"");
  282.  
  283.                             perSecond = perSecond + 10;
  284.                             timerUpdate();
  285.                         }
  286.                         else{
  287.                             discriptionText.setText("You need more cookies!");
  288.                         }
  289.                         break;
  290.                     case "Mine":
  291.                         if(cookieCounter >= minePrice){
  292.                             cookieCounter = (int) (cookieCounter - minePrice);
  293.  
  294.                             minePrice = (minePrice * 115^mineNumber)/100;
  295.  
  296.                             counterLabel.setText(cookieCounter + " cookies");
  297.  
  298.                             mineNumber++;
  299.                             mine.setText("Mine" + "(" + mineNumber + ")");
  300.  
  301.                             discriptionText.setText("Mine\n[price: " + minePrice + "]\nAutoClicks once every 1 seconds\nAdds 50 per second\"");
  302.  
  303.                             perSecond = perSecond + 50;
  304.                             timerUpdate();
  305.                         }
  306.                         else{
  307.                             discriptionText.setText("You need more cookies!");
  308.                         }
  309.  
  310.             }
  311.         }
  312.     }
  313.  
  314.     public class MouseHandler implements MouseListener {
  315.         @Override
  316.         public void mouseClicked(MouseEvent e) {
  317.  
  318.         }
  319.  
  320.         @Override
  321.         public void mousePressed(MouseEvent e) {
  322.  
  323.         }
  324.  
  325.         @Override
  326.         public void mouseReleased(MouseEvent e) {
  327.  
  328.         }
  329.  
  330.         @Override
  331.         public void mouseEntered(MouseEvent e) {
  332.             JButton button = (JButton)e.getSource();
  333.  
  334.             if(button == cursor){
  335.                 discriptionText.setText("Cursor\n[price: " + cursorPrice + "]\nAutoClicks once every 10 seconds\nAdds 0.1 per second");
  336.             }
  337.             else if(button == grandma){
  338.                 if(grandmaUnlocked == false){
  339.                     discriptionText.setText("This item is currently locked");
  340.                 }
  341.                 else{
  342.                     discriptionText.setText("Grandma\n[price: " + grandmaPrice + "]\nAutoClicks once every 1 seconds\nAdds 1 per second");
  343.                 }
  344.             }
  345.             else if(button == farm){
  346.                 if(farmUnlocked == false){
  347.                     discriptionText.setText("This item is currently locked");
  348.                 }
  349.                 else{
  350.                     discriptionText.setText("Farm\n[price: " + farmPrice + "]\nAutoClicks once every 1 seconds\nAdds 10 per second");
  351.                 }
  352.             }
  353.             else if(button == mine){
  354.                 if(mineUnlocked == false){
  355.                     discriptionText.setText("This item is currently locked");
  356.                 }
  357.                 else{
  358.                     discriptionText.setText("Mine\n[price: " + minePrice + "]\nAutoClicks once every 1 seconds\nAdds 50 per second");
  359.                 }
  360.             }
  361.         }
  362.  
  363.         @Override
  364.         public void mouseExited(MouseEvent e) {
  365.             JButton button = (JButton)e.getSource();
  366.  
  367.             if(button == cursor){
  368.                 discriptionText.setText(null);
  369.             }
  370.             else if(button == grandma){
  371.                 discriptionText.setText(null);
  372.             }
  373.             else if(button == farm){
  374.                 discriptionText.setText(null);
  375.             }
  376.             else if(button == mine){
  377.                 discriptionText.setText(null);
  378.             }
  379.         }
  380.     }
  381. }
RAW Paste Data