/
CastButtons.java
122 lines (100 loc) · 2.66 KB
/
CastButtons.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.lang.*;
public class CastButtons{
private int playerLevel;
private int cash;
private LinkedList<ButtonCreator> levels;
private ButtonCreator dollar, credit;
private String currency;
public CastButtons(){
levels = new LinkedList<ButtonCreator>();
cash = 0;
playerLevel = 2;
currency = "DOLLAR";//default
dollar = new ButtonCreator("Switch to Dollar");
dollar.changeSize(150, 50);
dollar.setCommand("DOLLAR");
credit = new ButtonCreator("Switch to Credit");
credit.changeSize(150, 50);
credit.setCommand("CREDIT");
toggleCurrencyType();
}
public boolean hasMoreLevels(){
if(levels.size() != 0){
return true;
}else{
return false;
}
}
public int calculatePrice(int levelID){//get the cost of the level
if(currency.equals("DOLLAR")){
return (int) Math.pow(2, levelID);
}else if(currency.equals("CREDIT")){
return 5 * (levelID - 1);
}else{//error
return -1;
}
}
private boolean canPay(int chosenLevel){
if(cash >= calculatePrice(chosenLevel)){
return true;
}else{
return false;
}
}
public void setLevel(int playerLevel){ this.playerLevel = playerLevel + 1; }
public void setCash(int cash){ this.cash = cash; }
public void setCurrency(String currency){
this.currency = currency;
toggleCurrencyType();
}
private void toggleCurrencyType(){
switch(currency){
case "DOLLAR":
dollar.setStatus(false);
credit.setStatus(true);
break;
case "CREDIT":
dollar.setStatus(true);
credit.setStatus(false);
break;
default:
}
}
public void removeButtons(){ levels.clear(); }
public LinkedList<JButton> getButtons(){
LinkedList<JButton> levelButtons = new LinkedList<JButton>();
for(int i = 0; i < levels.size(); i++){
levelButtons.add(levels.get(i).getJButton());
}
levelButtons.add(dollar.getJButton());
levelButtons.add(credit.getJButton());
return levelButtons;
}
public void getAvailableLevels(int playerLevel){ //get level above player
this.playerLevel = playerLevel + 1;
}
public void validateCanPay(){
for(int i = playerLevel; i <= 6 ; i++){
if(canPay(i)){
levels.get(i - playerLevel).setStatus(true);
}else{
levels.get(i - playerLevel).setStatus(false);
}
}
}
public void generateCastButtons(){
for(int i = playerLevel; i <= 6; i++){
ButtonCreator upgrade = new ButtonCreator("Level " + i);
//upgrade.createOneLineButton(Integer.toString(calculatePrice(i)), "DOWN");
upgrade.setVisibility(false);
upgrade.setCommand(Integer.toString(i));
upgrade.changeSize(135,50);
levels.add(upgrade);
}
validateCanPay();
}
}