Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package threat;
- import java.awt.event.*;
- import javax.swing.*;
- import java.util.*;
- import java.awt.*;
- /* <p>Title: Threat!</p>
- * <p>Description: A video game based on the classic board game RISK</p>
- * <p>Copyright: Copyright (c) 2008</p>
- * <p>Company: BCE Inc.</p>
- * @author Will Delcambre and Cody Haines
- * @version 1.0*/
- public class AttackDialog extends JDialog {
- private Country attacker, defender;
- ArrayList<JLabel> aFieldUnits = new ArrayList<JLabel>();
- ArrayList<JLabel> dFieldUnits = new ArrayList<JLabel>();
- JPanel panel1 = new JPanel();
- boolean a1Used = false, a2Used = false, a3Used = false, d1Used = false,
- d2Used = false;
- private boolean autoAttack;
- JButton aDie1 = new JButton();
- JButton aDie2 = new JButton();
- JButton aDie3 = new JButton();
- JButton dDie1 = new JButton();
- JButton dDie2 = new JButton();
- JButton attackButton = new JButton();
- JButton autoAttackButton = new JButton();
- JButton retreatButton = new JButton();
- JLabel background = new JLabel();
- JLabel aInfo = new JLabel();
- JLabel dInfo = new JLabel();
- ImageIcon bgImage = new ImageIcon("images/battlefield.png");
- ImageIcon infantry = new ImageIcon("images/infantry.png");
- ImageIcon cavalry = new ImageIcon("images/cavalry.png");
- ImageIcon artillery = new ImageIcon("images/artillery.png");
- ImageIcon dInfantry = new ImageIcon("images/dInfantry.png");
- ImageIcon dCavalry = new ImageIcon("images/dCavalry.png");
- ImageIcon dArtillery = new ImageIcon("images/dArtillery.png");
- ImageIcon d1 = new ImageIcon("images/dieOne.png");
- ImageIcon d2 = new ImageIcon("images/dieTwo.png");
- ImageIcon d3 = new ImageIcon("images/dieThree.png");
- ImageIcon d4 = new ImageIcon("images/dieFour.png");
- ImageIcon d5 = new ImageIcon("images/dieFive.png");
- ImageIcon d6 = new ImageIcon("images/dieSix.png");
- ArrayList<ImageIcon> dieFace = new ArrayList<ImageIcon>();
- public AttackDialog(Country attacking, Country defending) {
- super(new JFrame(), "Attack!", true);
- attacker = attacking;
- defender = defending;
- try {
- setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
- jbInit();
- pack();
- } catch (Exception exception) {
- exception.printStackTrace();
- }
- }
- private void jbInit() throws Exception {
- panel1.setLayout(new BorderLayout());
- panel1.setBounds(new Rectangle(0, 0, 800, 400));
- this.setResizable(false);
- bgImage = new ImageIcon(bgImage.getImage().getScaledInstance(
- panel1.getWidth(), panel1.getHeight(), Image.SCALE_SMOOTH));
- infantry = new ImageIcon(infantry.getImage().getScaledInstance(
- 20, 30, Image.SCALE_SMOOTH));
- cavalry = new ImageIcon(cavalry.getImage().getScaledInstance(
- 30, 30, Image.SCALE_SMOOTH));
- artillery = new ImageIcon(artillery.getImage().getScaledInstance(
- 40, 30, Image.SCALE_SMOOTH));
- dInfantry = new ImageIcon(dInfantry.getImage().getScaledInstance(
- 20, 30, Image.SCALE_SMOOTH));
- dCavalry = new ImageIcon(dCavalry.getImage().getScaledInstance(
- 30, 30, Image.SCALE_SMOOTH));
- dArtillery = new ImageIcon(dArtillery.getImage().getScaledInstance(
- 40, 30, Image.SCALE_SMOOTH));
- d1 = new ImageIcon(d1.getImage().getScaledInstance(60, 60,
- Image.SCALE_SMOOTH));
- d2 = new ImageIcon(d2.getImage().getScaledInstance(60, 60,
- Image.SCALE_SMOOTH));
- d3 = new ImageIcon(d3.getImage().getScaledInstance(60, 60,
- Image.SCALE_SMOOTH));
- d4 = new ImageIcon(d4.getImage().getScaledInstance(60, 60,
- Image.SCALE_SMOOTH));
- d5 = new ImageIcon(d5.getImage().getScaledInstance(60, 60,
- Image.SCALE_SMOOTH));
- d6 = new ImageIcon(d6.getImage().getScaledInstance(60, 60,
- Image.SCALE_SMOOTH));
- dieFace.add(d1);
- dieFace.add(d2);
- dieFace.add(d3);
- dieFace.add(d4);
- dieFace.add(d5);
- dieFace.add(d6);
- background.setBounds(panel1.getBounds());
- background.setHorizontalAlignment(SwingConstants.CENTER);
- background.setIcon(bgImage);
- aInfo.setBounds(new Rectangle(180, 3, 218, 10));
- aInfo.setHorizontalAlignment(SwingConstants.CENTER);
- aInfo.setText(attacker.getName() + ": " + attacker.getArmySize() +
- " armies");
- dInfo.setBounds(new Rectangle(402, 3, 218, 10));
- dInfo.setHorizontalAlignment(SwingConstants.CENTER);
- if (defender.getArmySize() > 1) {
- dInfo.setText(defender.getName() + ": " + defender.getArmySize() +
- " armies");
- } else {
- dInfo.setText(defender.getName() + ": " + defender.getArmySize() +
- " army");
- }
- setUpField();
- aDie1.setBounds(60, 45, 60, 60);
- aDie1.setIcon(dieFace.get((int) (6 * Math.random())));
- aDie1.addActionListener(new
- AttackDialog_aDie1Button_actionAdapter(this));
- aDie2.setBounds(60, 160, 60, 60);
- aDie2.setIcon(dieFace.get((int) (6 * Math.random())));
- aDie1.setIcon(dieFace.get((int) (6 * Math.random())));
- aDie2.addActionListener(new
- AttackDialog_aDie2Button_actionAdapter(this));
- aDie3.setBounds(60, 285, 60, 60);
- aDie3.setIcon(dieFace.get((int) (6 * Math.random())));
- aDie3.addActionListener(new
- AttackDialog_aDie3Button_actionAdapter(this));
- dDie1.setBounds(680, 93, 60, 60);
- dDie1.setIcon(dieFace.get((int) (6 * Math.random())));
- dDie1.addActionListener(new
- AttackDialog_dDie1Button_actionAdapter(this));
- dDie2.setBounds(680, 227, 60, 60);
- dDie2.setIcon(dieFace.get((int) (6 * Math.random())));
- dDie2.addActionListener(new
- AttackDialog_dDie2Button_actionAdapter(this));
- setUpDice();
- attackButton.setBounds(210, 350, 120, 20);
- attackButton.setText("Fight");
- attackButton.setBackground(new Color(156, 60, 90));
- attackButton.addActionListener(new
- AttackDialog_attackButton_actionAdapter(this));
- autoAttackButton.setBounds(340, 350, 120, 20);
- autoAttackButton.setText("Auto-Attack");
- autoAttackButton.setBackground(new Color(156, 60, 90));
- autoAttackButton.addActionListener(new
- AttackDialog_autoAttackButton_actionAdapter(this));
- retreatButton.setBounds(470, 350, 120, 20);
- retreatButton.setText("End Battle");
- retreatButton.setBackground(new Color(156, 60, 90));
- retreatButton.addActionListener(new
- AttackDialog_retreatButton_actionAdapter(this));
- this.add(aInfo);
- this.add(dInfo);
- this.add(aDie1);
- this.add(aDie2);
- this.add(aDie3);
- this.add(dDie1);
- this.add(dDie2);
- this.add(attackButton);
- this.add(autoAttackButton);
- this.add(retreatButton);
- this.add(background);
- this.add(panel1);
- }
- public void setUpDice() {
- if (attacker.getArmySize() > 3) {
- a1Used = true;
- a2Used = true;
- a3Used = true;
- aDie1.setBorder(BorderFactory.createLineBorder(Color.black));
- aDie2.setBorder(BorderFactory.createLineBorder(Color.black));
- aDie3.setBorder(BorderFactory.createLineBorder(Color.black));
- } else if (attacker.getArmySize() == 3) {
- a1Used = true;
- a2Used = true;
- a3Used = false;
- aDie3.setEnabled(false);
- aDie1.setBorder(BorderFactory.createLineBorder(Color.black));
- aDie2.setBorder(BorderFactory.createLineBorder(Color.black));
- aDie3.setBorder(null);
- } else if (attacker.getArmySize() == 2) {
- a1Used = true;
- a2Used = false;
- a3Used = false;
- aDie2.setEnabled(false);
- aDie3.setEnabled(false);
- aDie1.setBorder(BorderFactory.createLineBorder(Color.black));
- aDie2.setBorder(null);
- aDie3.setBorder(null);
- } else {
- this.dispose();
- }
- if (defender.getArmySize() > 1) {
- d1Used = true;
- d2Used = true;
- dDie1.setBorder(BorderFactory.createLineBorder(Color.black));
- dDie2.setBorder(BorderFactory.createLineBorder(Color.black));
- } else if (defender.getArmySize() == 1) {
- d1Used = true;
- d2Used = false;
- dDie2.setEnabled(false);
- dDie1.setBorder(BorderFactory.createLineBorder(Color.black));
- dDie2.setBorder(null);
- } else {
- defender.setOwner(attacker.getOwner());
- new transferDialog(attacker, defender);
- this.dispose();
- }
- if (attacker.getOwner().isAI()) {
- aDie1.setEnabled(false);
- aDie2.setEnabled(false);
- aDie3.setEnabled(false);
- }
- if (defender.getOwner().isAI()) {
- dDie1.setEnabled(false);
- dDie2.setEnabled(false);
- }
- }
- public void setUpField() {
- int aArmy = attacker.getArmySize();
- int dArmy = defender.getArmySize();
- aFieldUnits = new ArrayList<JLabel>();
- dFieldUnits = new ArrayList<JLabel>();
- for (int i = 0; i < aArmy / 10; i++) { //Artillery
- aFieldUnits.add(new JLabel());
- aFieldUnits.get(i).setBounds((int) (180 + (Math.random() * 178)),
- (int) (85 + (Math.random() * 230)), 40,
- 30);
- aFieldUnits.get(i).setIcon(artillery);
- }
- for (int i = 0; i < (aArmy % 10) / 5; i++) { //Cavalry
- aFieldUnits.add(new JLabel());
- aFieldUnits.get(aFieldUnits.size() -
- 1).setBounds((int) (180 + (Math.random() * 178)),
- (int) (85 + (Math.random() * 230)), 40,
- 30);
- aFieldUnits.get(aFieldUnits.size() - 1).setIcon(cavalry);
- }
- for (int i = 0; i < aArmy % 5; i++) { //Infantry
- aFieldUnits.add(new JLabel());
- aFieldUnits.get(aFieldUnits.size() -
- 1).setBounds((int) (180 + (Math.random() * 178)),
- (int) (85 + (Math.random() * 230)), 40,
- 30);
- aFieldUnits.get(aFieldUnits.size() - 1).setIcon(infantry);
- }
- for (int i = 0; i < dArmy / 10; i++) { //Artillery
- dFieldUnits.add(new JLabel());
- dFieldUnits.get(dFieldUnits.size() -
- 1).setBounds((int) (402 + (Math.random() * 178)),
- (int) (85 + (Math.random() * 260)), 40,
- 30);
- dFieldUnits.get(dFieldUnits.size() - 1).setIcon(dArtillery);
- }
- for (int i = 0; i < (dArmy % 10) / 5; i++) { //Cavalry
- dFieldUnits.add(new JLabel());
- dFieldUnits.get(dFieldUnits.size() -
- 1).setBounds((int) (402 + (Math.random() * 178)),
- (int) (85 + (Math.random() * 260)), 40,
- 30);
- dFieldUnits.get(dFieldUnits.size() - 1).setIcon(dCavalry);
- }
- for (int i = 0; i < dArmy % 5; i++) { //Infantry
- dFieldUnits.add(new JLabel());
- dFieldUnits.get(dFieldUnits.size() -
- 1).setBounds((int) (402 + (Math.random() * 178)),
- (int) (85 + (Math.random() * 260)), 40,
- 30);
- dFieldUnits.get(dFieldUnits.size() - 1).setIcon(dInfantry);
- }
- this.remove(panel1);
- this.remove(background);
- for (int i = 0; i < aFieldUnits.size(); i++) { //Add attacking armies
- this.add(aFieldUnits.get(i));
- }
- for (int i = 0; i < dFieldUnits.size(); i++) { //Add defending armies
- this.add(dFieldUnits.get(i));
- }
- this.add(background);
- this.add(panel1);
- }
- public void attackButton_actionPerformed(ActionEvent e) {
- ArrayList<Integer> attackDice = new ArrayList<Integer>();
- ArrayList<Integer> defendDice = new ArrayList<Integer>();
- int attackingNum = 0;
- int defendingNum = 0;
- if (attacker.getArmySize() < 2) {
- this.dispose();
- } else if (defender.getArmySize() < 1) {
- defender.setOwner(attacker.getOwner());
- new transferDialog(attacker, defender);
- this.dispose();
- }
- if (a1Used) {
- attackingNum++;
- }
- if (a2Used) {
- attackingNum++;
- }
- if (a3Used) {
- attackingNum++;
- }
- if (d1Used) {
- defendingNum++;
- }
- if (d2Used) {
- defendingNum++;
- }
- attackDice = rollDice(attackingNum);
- defendDice = rollDice(defendingNum);
- System.out.println(attackDice);
- System.out.println(defendDice);
- System.out.println();
- ArrayList<Boolean> aDice = new ArrayList<Boolean>();
- aDice.add(a1Used);
- aDice.add(a2Used);
- aDice.add(a3Used);
- ArrayList<Boolean> dDice = new ArrayList<Boolean>();
- dDice.add(d1Used);
- dDice.add(d2Used);
- ArrayList<JButton> atDice = new ArrayList<JButton>();
- atDice.add(aDie1);
- atDice.add(aDie2);
- atDice.add(aDie3);
- ArrayList<JButton> deDice = new ArrayList<JButton>();
- deDice.add(dDie1);
- deDice.add(dDie2);
- int tempNum1 = 0;
- for (int i = 0; i < aDice.size(); i++) {
- if (aDice.get(i)) {
- atDice.get(i).setIcon(translateDieNum(attackDice.get(tempNum1)));
- tempNum1++;
- }
- }
- tempNum1 = 0;
- for (int i = 0; i < dDice.size(); i++) {
- if (dDice.get(i)) {
- deDice.get(i).setIcon(translateDieNum(defendDice.get(tempNum1)));
- tempNum1++;
- }
- }
- tempNum1 = 0;
- Collections.sort(attackDice);
- Collections.reverse(attackDice);
- Collections.sort(defendDice);
- Collections.reverse(defendDice);
- if (attackDice.get(0) > defendDice.get(0)) {
- defender.setArmySize(defender.getArmySize() - 1);
- } else {
- attacker.setArmySize(attacker.getArmySize() - 1);
- }
- if (attackDice.size() > 1 && defendDice.size() > 1 &&
- defender.getArmySize() > 0 && attacker.getArmySize() > 1) {
- if (attackDice.get(1) > defendDice.get(1)) {
- defender.setArmySize(defender.getArmySize() - 1);
- } else {
- attacker.setArmySize(attacker.getArmySize() - 1);
- }
- }
- if (attacker.getArmySize() < 2) {
- autoAttack = false;
- this.dispose();
- } else if (defender.getArmySize() < 1) {
- defender.setOwner(attacker.getOwner());
- new transferDialog(attacker, defender);
- autoAttack = false;
- this.dispose();
- }
- if (attacker.getArmySize() > 1) {
- aInfo.setText(attacker.getName() + ": " + attacker.getArmySize() +
- " armies");
- } else {
- aInfo.setText(attacker.getName() + ": " + attacker.getArmySize() +
- " army");
- }
- if (defender.getArmySize() > 1) {
- dInfo.setText(defender.getName() + ": " + defender.getArmySize() +
- " armies");
- } else {
- dInfo.setText(defender.getName() + ": " + defender.getArmySize() +
- " army");
- }
- for (int i = 0; i < aFieldUnits.size(); i++) { //Remove attacking armies
- //this.remove(aFieldUnits.get(i));
- aFieldUnits.get(i).setVisible(false);
- }
- for (int i = 0; i < dFieldUnits.size(); i++) { //Remove defending armies /*RIGHT HERE*/
- //this.remove(dFieldUnits.get(i));
- dFieldUnits.get(i).setVisible(false);
- }
- setUpField();
- checkDice();
- }
- public ArrayList<Integer> rollDice(int howMany) {
- ArrayList<Integer> rolls = new ArrayList<Integer>();
- for (int i = 0; i < howMany; i++) {
- rolls.add((int) ((Math.random() * 6) + 1));
- }
- return rolls;
- }
- public void checkDice() {
- if (attacker.getArmySize() == 3) {
- a2Used = true;
- a3Used = false;
- aDie3.setEnabled(false);
- aDie2.setBorder(BorderFactory.createLineBorder(Color.black));
- aDie3.setBorder(null);
- } else if (attacker.getArmySize() == 2) {
- a1Used = true;
- a2Used = false;
- a3Used = false;
- aDie2.setEnabled(false);
- aDie3.setEnabled(false);
- aDie1.setBorder(BorderFactory.createLineBorder(Color.black));
- aDie2.setBorder(null);
- aDie3.setBorder(null);
- } else if(attacker.getArmySize() == 1){
- this.dispose();
- }
- if (defender.getArmySize() == 1) {
- d1Used=true;
- d2Used = false;
- dDie2.setEnabled(false);
- dDie1.setBorder(BorderFactory.createLineBorder(Color.black));
- dDie2.setBorder(null);
- } else if(defender.getArmySize() < 1){
- defender.setOwner(attacker.getOwner());
- new transferDialog(attacker, defender);
- this.dispose();
- }
- }
- public ImageIcon translateDieNum(int rollNum) {
- if (rollNum == 1) {
- return d1;
- } else if (rollNum == 2) {
- return d2;
- } else if (rollNum == 3) {
- return d3;
- } else if (rollNum == 4) {
- return d4;
- } else if (rollNum == 5) {
- return d5;
- }
- return d6;
- }
- public void autoAttackButton_actionPerformed(ActionEvent e) {
- autoAttack = !autoAttack;
- attackButton.setEnabled(!attackButton.isEnabled());
- if (autoAttack) {
- autoAttackButton.setText("Stop Auto");
- } else {
- autoAttackButton.setText("Auto Attack");
- } while (autoAttack) {
- attackButton_actionPerformed(e);
- }
- }
- public void retreatButton_actionPerformed(ActionEvent e) {
- this.dispose();
- }
- public void aDie1Button_actionPerformed(ActionEvent e) {
- a1Used = !a1Used;
- if (a1Used) {
- aDie1.setBorder(BorderFactory.createLineBorder(Color.black));
- } else if (a2Used || a3Used) {
- aDie1.setBorder(null);
- } else {
- a1Used = !a1Used;
- }
- }
- public void aDie2Button_actionPerformed(ActionEvent e) {
- a2Used = !a2Used;
- if (a2Used) {
- aDie2.setBorder(BorderFactory.createLineBorder(Color.black));
- } else if (a1Used || a3Used) {
- aDie2.setBorder(null);
- } else {
- a2Used = !a2Used;
- }
- }
- public void aDie3Button_actionPerformed(ActionEvent e) {
- a3Used = !a3Used;
- if (a3Used) {
- aDie3.setBorder(BorderFactory.createLineBorder(Color.black));
- } else if (a1Used || a2Used) {
- aDie3.setBorder(null);
- } else {
- a3Used = !a3Used;
- }
- }
- public void dDie1Button_actionPerformed(ActionEvent e) {
- d1Used = !d1Used;
- if (d1Used) {
- dDie1.setBorder(BorderFactory.createLineBorder(Color.black));
- } else if (d2Used) {
- dDie1.setBorder(null);
- } else {
- d1Used = !d1Used;
- }
- }
- public void dDie2Button_actionPerformed(ActionEvent e) {
- d2Used = !d2Used;
- if (d2Used) {
- dDie2.setBorder(BorderFactory.createLineBorder(Color.black));
- } else if (d1Used) {
- dDie2.setBorder(null);
- } else {
- d2Used = !d2Used;
- }
- }
- }
- class AttackDialog_attackButton_actionAdapter implements ActionListener {
- private AttackDialog adaptee;
- AttackDialog_attackButton_actionAdapter(AttackDialog adaptee) {
- this.adaptee = adaptee;
- }
- public void actionPerformed(ActionEvent e) {
- adaptee.attackButton_actionPerformed(e);
- }
- }
- class AttackDialog_autoAttackButton_actionAdapter implements ActionListener {
- private AttackDialog adaptee;
- AttackDialog_autoAttackButton_actionAdapter(AttackDialog adaptee) {
- this.adaptee = adaptee;
- }
- public void actionPerformed(ActionEvent e) {
- adaptee.autoAttackButton_actionPerformed(e);
- }
- }
- class AttackDialog_retreatButton_actionAdapter implements ActionListener {
- private AttackDialog adaptee;
- AttackDialog_retreatButton_actionAdapter(AttackDialog adaptee) {
- this.adaptee = adaptee;
- }
- public void actionPerformed(ActionEvent e) {
- adaptee.retreatButton_actionPerformed(e);
- }
- }
- class AttackDialog_aDie1Button_actionAdapter implements ActionListener {
- private AttackDialog adaptee;
- AttackDialog_aDie1Button_actionAdapter(AttackDialog adaptee) {
- this.adaptee = adaptee;
- }
- public void actionPerformed(ActionEvent e) {
- adaptee.aDie1Button_actionPerformed(e);
- }
- }
- class AttackDialog_aDie2Button_actionAdapter implements ActionListener {
- private AttackDialog adaptee;
- AttackDialog_aDie2Button_actionAdapter(AttackDialog adaptee) {
- this.adaptee = adaptee;
- }
- public void actionPerformed(ActionEvent e) {
- adaptee.aDie2Button_actionPerformed(e);
- }
- }
- class AttackDialog_aDie3Button_actionAdapter implements ActionListener {
- private AttackDialog adaptee;
- AttackDialog_aDie3Button_actionAdapter(AttackDialog adaptee) {
- this.adaptee = adaptee;
- }
- public void actionPerformed(ActionEvent e) {
- adaptee.aDie3Button_actionPerformed(e);
- }
- }
- class AttackDialog_dDie1Button_actionAdapter implements ActionListener {
- private AttackDialog adaptee;
- AttackDialog_dDie1Button_actionAdapter(AttackDialog adaptee) {
- this.adaptee = adaptee;
- }
- public void actionPerformed(ActionEvent e) {
- adaptee.dDie1Button_actionPerformed(e);
- }
- }
- class AttackDialog_dDie2Button_actionAdapter implements ActionListener {
- private AttackDialog adaptee;
- AttackDialog_dDie2Button_actionAdapter(AttackDialog adaptee) {
- this.adaptee = adaptee;
- }
- public void actionPerformed(ActionEvent e) {
- adaptee.dDie2Button_actionPerformed(e);
- }
- }
Add Comment
Please, Sign In to add comment