@@ -20,26 +20,33 @@ public partial class Add_TechStats : Form
20
20
21
21
// Used to transfer across variables
22
22
private int rank ;
23
+ private int power ;
23
24
private string statOpt ;
24
25
25
- public Add_TechStats ( string opt_ , int rank_ ) {
26
+ private const string SINGLE = "Single" ;
27
+
28
+ public Add_TechStats ( string opt_ , int rank_ , int pow_ , string range_ ) {
26
29
button_clicked = false ;
27
30
InitializeComponent ( ) ;
28
31
// Set Variables
29
32
statOpt = opt_ ;
30
33
rank = rank_ ;
34
+ power = pow_ ;
31
35
// Add to Combobox
32
36
comboBox_AoE . Items . AddRange ( new string [ ] {
33
- "No AoE" ,
37
+ SINGLE ,
34
38
Database . EFF_SHAOE ,
35
39
Database . EFF_MDAOE ,
36
40
Database . EFF_LOAOE
37
41
} ) ;
38
- comboBox_AoE . SelectedIndex = 0 ;
42
+ if ( range_ == Database . EFF_SHAOE ) { comboBox_AoE . Text = range_ ; }
43
+ else if ( range_ == Database . EFF_MDAOE ) { comboBox_AoE . Text = range_ ; }
44
+ else if ( range_ == Database . EFF_LOAOE ) { comboBox_AoE . Text = range_ ; }
39
45
}
40
46
41
47
public string LoadDialog ( ref Stats techStats , string textbox ) {
42
- if ( statOpt == Database . BUF_CRITHI ) { label_Rank . Text = rank + " Power" ; }
48
+ if ( statOpt == Database . BUF_CRITHI || statOpt == Database . BUF_ANASTR ||
49
+ statOpt == Database . BUF_QUICKS ) { label_Rank . Text = power + " Power" ; }
43
50
else { label_Rank . Text = "Rank " + rank ; }
44
51
label_Rank . Text += " Tech for " + statOpt ;
45
52
StatAlter alterSetting = Database . getStatAlter ( statOpt ) ;
@@ -69,7 +76,9 @@ public string LoadDialog(ref Stats techStats, string textbox) {
69
76
// Set calculations and total Buff/Debuff
70
77
setCalcAndLabels ( alterSetting ) ;
71
78
// Food is Long AoE, so disable
72
- if ( statOpt == Database . BUF_FOOD ) { comboBox_AoE . Enabled = false ; }
79
+ if ( statOpt == Database . BUF_DRUG ) { comboBox_AoE . Text = SINGLE ; }
80
+ else if ( statOpt == Database . BUF_FOOD ) { comboBox_AoE . Text = Database . EFF_LOAOE ; }
81
+ if ( statOpt == Database . BUF_FOOD || statOpt == Database . BUF_DRUG ) { comboBox_AoE . Enabled = false ; }
73
82
// Load Template
74
83
this . ShowDialog ( ) ;
75
84
if ( button_clicked ) {
@@ -91,30 +100,33 @@ public string LoadDialog(ref Stats techStats, string textbox) {
91
100
#region Helper Functions
92
101
93
102
// Calculates based on Standard Table
94
- private double calcStdTable ( int rank , string statOpt ) {
95
- double decRank = rank ;
103
+ // HELPER function for calcBuffNum()
104
+ private double calcStdTable ( int rankBuff , string statOpt ) {
105
+ double decRank = rankBuff ;
96
106
// Willpower Buff Table (one Tier lower)
97
107
if ( statOpt == Database . BUF_WILLPO ) {
98
- if ( rank >= 44 ) { return decRank * 0.85 ; }
99
- else if ( rank >= 28 ) { return decRank * 0.70 ; }
100
- else if ( rank >= 14 ) { return decRank * 0.60 ; }
108
+ if ( rankBuff >= 44 ) { return decRank * 0.85 ; }
109
+ else if ( rankBuff >= 28 ) { return decRank * 0.70 ; }
110
+ else if ( rankBuff >= 14 ) { return decRank * 0.60 ; }
101
111
// Should never get here
102
112
}
103
113
// Obs Haki Buff Table (one Tier higher)
104
114
else if ( statOpt == Database . BUF_OBHAKI ) {
105
- if ( rank >= 28 ) { return decRank ; }
106
- else if ( rank >= 14 ) { return decRank * 0.85 ; }
115
+ if ( rankBuff >= 28 ) { return decRank ; }
116
+ else if ( rankBuff >= 14 ) { return decRank * 0.85 ; }
107
117
else { return decRank * 0.70 ; }
108
118
}
109
119
// Standard Table
110
- if ( rank >= 44 || statOpt == Database . BUF_ZOAN ) { return decRank ; }
111
- else if ( rank >= 28 ) { return decRank * 0.85 ; }
112
- else if ( rank >= 14 ) { return decRank * 0.70 ; }
120
+ if ( rankBuff >= 44 || statOpt == Database . BUF_ZOAN ) { return decRank ; }
121
+ else if ( rankBuff >= 28 ) { return decRank * 0.85 ; }
122
+ else if ( rankBuff >= 14 ) { return decRank * 0.70 ; }
113
123
else { return decRank * 0.60 ; }
114
124
}
115
125
116
- private int calcBuffNum ( int rank , string statOpt , bool buff , string AoE ) {
117
- double tblNum = calcStdTable ( rank , statOpt ) ;
126
+ private int calcBuffNum ( int rankBuff , bool buff , string AoE ) {
127
+ double tblNum = ( statOpt == Database . BUF_CRITHI ||
128
+ statOpt == Database . BUF_ANASTR ||
129
+ statOpt == Database . BUF_QUICKS ) ? calcStdTable ( power , statOpt ) : calcStdTable ( rankBuff , statOpt ) ;
118
130
// Is this a Life Return Debuff?
119
131
if ( statOpt == Database . BUF_LIFRET && ! buff ) {
120
132
return ( int ) ( tblNum * 0.50 ) ;
@@ -133,26 +145,29 @@ private int calcBuffNum(int rank, string statOpt, bool buff, string AoE) {
133
145
return ( int ) tblNum ;
134
146
}
135
147
136
- private string calcBuffString ( int rank , string statOpt , bool buff , string AoE , int final ) {
137
- string calc = rank . ToString ( ) + " * " ;
148
+ private string calcBuffString ( int rankBuff , bool buff , string AoE , int final ) {
149
+ string calc = ( statOpt == Database . BUF_CRITHI ||
150
+ statOpt == Database . BUF_ANASTR ||
151
+ statOpt == Database . BUF_QUICKS ) ? power . ToString ( ) : rankBuff . ToString ( ) ;
152
+ calc += " * " ;
138
153
// ----- First Multiplier
139
154
// Willpower Buff Table (one Tier lower)
140
155
if ( statOpt == Database . BUF_WILLPO ) {
141
- if ( rank >= 44 ) { calc += "85%" ; }
142
- else if ( rank >= 28 ) { calc += "70%" ; }
143
- else if ( rank >= 14 ) { calc += "60%" ; }
156
+ if ( rankBuff >= 44 ) { calc += "85%" ; }
157
+ else if ( rankBuff >= 28 ) { calc += "70%" ; }
158
+ else if ( rankBuff >= 14 ) { calc += "60%" ; }
144
159
// Should never get here
145
160
}
146
161
// Obs Haki Buff Table (one Tier higher)
147
162
else if ( statOpt == Database . BUF_OBHAKI ) {
148
- if ( rank >= 28 ) { calc += "100%" ; }
149
- else if ( rank >= 14 ) { calc += "85%" ; }
163
+ if ( rankBuff >= 28 ) { calc += "100%" ; }
164
+ else if ( rankBuff >= 14 ) { calc += "85%" ; }
150
165
else { calc += "70%" ; }
151
166
}
152
167
// Standard Table
153
- else if ( statOpt == Database . BUF_ZOAN || rank >= 44 ) { calc += "100%" ; }
154
- else if ( rank >= 28 ) { calc += "85%" ; }
155
- else if ( rank >= 14 ) { calc += "70%" ; }
168
+ else if ( statOpt == Database . BUF_ZOAN || rankBuff >= 44 ) { calc += "100%" ; }
169
+ else if ( rankBuff >= 28 ) { calc += "85%" ; }
170
+ else if ( rankBuff >= 14 ) { calc += "70%" ; }
156
171
else { calc += "60%" ; }
157
172
// ----- Second Multiplier
158
173
// Is this a Life Return debuff?
@@ -210,19 +225,19 @@ private bool checkValid() {
210
225
private void setCalcAndLabels ( StatAlter alterSetting ) {
211
226
// Set calculations and total Buff/Debuff
212
227
if ( alterSetting . type == StatAlter . BUFF || alterSetting . type == StatAlter . STANCE ) {
213
- totBuff = calcBuffNum ( rank , statOpt , true , comboBox_AoE . Text ) ;
228
+ totBuff = calcBuffNum ( rank , true , comboBox_AoE . Text ) ;
214
229
label_TotBuff . Text = "Total Buff: " + totBuff ;
215
- textBox_BuffCalc . Text = calcBuffString ( rank , statOpt , true , comboBox_AoE . Text , totBuff ) ;
230
+ textBox_BuffCalc . Text = calcBuffString ( rank , true , comboBox_AoE . Text , totBuff ) ;
216
231
}
217
232
else {
218
233
totBuff = 0 ;
219
234
label_TotBuff . Text = "Total Buff: " + totBuff ;
220
235
textBox_BuffCalc . Text = "0 = 0" ;
221
236
}
222
237
if ( alterSetting . type == StatAlter . DEBUFF || alterSetting . type == StatAlter . STANCE ) {
223
- totDebuff = calcBuffNum ( rank , statOpt , false , comboBox_AoE . Text ) ;
238
+ totDebuff = calcBuffNum ( rank , false , comboBox_AoE . Text ) ;
224
239
label_TotDebuff . Text = "Total Debuff: " + totDebuff ;
225
- textBox_DebuffCalc . Text = calcBuffString ( rank , statOpt , false , comboBox_AoE . Text , totDebuff ) ;
240
+ textBox_DebuffCalc . Text = calcBuffString ( rank , false , comboBox_AoE . Text , totDebuff ) ;
226
241
}
227
242
else {
228
243
totDebuff = 0 ;
0 commit comments