Skip to content

Commit c2fd797

Browse files
committed
添加最终结果显示对话框(点击结果图标弹出)并修复基岩版计算错误的BUG
1 parent 2a28470 commit c2fd797

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

calculator.cpp

+7-2
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,13 @@ void Calculator::Alg_Hamming()
218218
{
219219
while(item_triangle.at(i).count() > 1)
220220
{
221-
Item tm = item_triangle[i].takeFirst();
222-
flow[flow_step++] = ItemPool::preForge(tm, item_triangle[i].takeFirst(), additional_mode);
221+
Item a = item_triangle[i].takeFirst();
222+
Item b = item_triangle[i].takeFirst();
223+
flow[flow_step++] = ItemPool::preForge(a, b, additional_mode);
224+
}
225+
if (item_triangle.at(i).count() == 1 && i + 1 < item_triangle.count())
226+
{
227+
item_triangle[i + 1].append(item_triangle[i].takeFirst());
223228
}
224229
}
225230
Step s = flow[flow_step - 1];

itempool.cpp

+2-6
Original file line numberDiff line numberDiff line change
@@ -338,9 +338,9 @@ Step ItemPool::preForge(Item A, Item B, ForgeMode mode)
338338
cost += Basic::ench_table[Basic::searchTable(B.ench[i].name)].multiplier[0] * combine(B.ench[i].name, A.ench[q].lvl, B.ench[i].lvl);
339339
} else {
340340
if (B.name == ID_ECB)
341-
cost += Basic::ench_table[Basic::searchTable(B.ench[i].name)].multiplier[1] * (combine(B.ench[i].name, A.ench[q].lvl, B.ench[i].lvl - A.ench[i].lvl));
341+
cost += Basic::ench_table[Basic::searchTable(B.ench[i].name)].multiplier[1] * (combine(B.ench[i].name, A.ench[q].lvl, B.ench[i].lvl) - A.ench[i].lvl);
342342
else
343-
cost += Basic::ench_table[Basic::searchTable(B.ench[i].name)].multiplier[0] * (combine(B.ench[i].name, A.ench[q].lvl, B.ench[i].lvl - A.ench[i].lvl));
343+
cost += Basic::ench_table[Basic::searchTable(B.ench[i].name)].multiplier[0] * (combine(B.ench[i].name, A.ench[q].lvl, B.ench[i].lvl) - A.ench[i].lvl);
344344
}
345345
} else {
346346
if (B.name == ID_ECB)
@@ -406,10 +406,6 @@ Item ItemPool::forge(Item A, Item B)
406406
int q = Basic::searchEnch(A.ench, A_el, B.ench[i].name);
407407
if (q != -1) {
408408
A.ench[q].lvl = combine(B.ench[i].name, A.ench[q].lvl, B.ench[q].lvl);
409-
// if(A.ench[q].lvl == B.ench[i].lvl && A.ench[q].lvl != Basic::ench_table[Basic::searchTable(A.ench[q].name)].mlvl)
410-
// A.ench[q].lvl++;
411-
// else if(A.ench[q].lvl < B.ench[i].lvl)
412-
// A.ench[q].lvl = B.ench[i].lvl;
413409
} else {
414410
int k = 0;
415411
while (k < INIT_LENGTH && A.ench[k].name != "")

mainwindow.cpp

+28
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
#include <QUrl>
1313
#include <QDesktopServices>
14+
#include <QTextEdit>
15+
#include <QLayout>
1416

1517
using namespace std;
1618

@@ -204,7 +206,33 @@ MainWindow::MainWindow(QWidget *parent)
204206
FileOperate fo;
205207
fo.saveExport();
206208
});
209+
connect(ui->OutputItem, &QPushButton::clicked, this, [=](){
210+
QString info;
211+
info += "- Name: " + Basic::OutputItem.name.replace('\n', ' ') + "\n";
212+
info += "- Durability: " + QString::number(Basic::OutputItem.duration) + "\n";
213+
info += "- Penalty: " + QString::number(Basic::OutputItem.penalty) + "\n";
214+
info += "- Enchs: \n";
215+
for (int i = 0; i < INIT_LENGTH; i++)
216+
{
217+
if (Basic::OutputItem.ench[i].name.isEmpty())
218+
break;
219+
info += "\t- " + Basic::OutputItem.ench[i].name + " " + Basic::IntToRoman(Basic::OutputItem.ench[i].lvl) + "\n";
220+
}
207221

222+
QDialog dialog(this);
223+
dialog.setWindowTitle("Details");
224+
QPoint p = this->geometry().center();
225+
dialog.setGeometry(p.x() - 256, p.y() - 256, 512, 512);
226+
QVBoxLayout layout(&dialog);
227+
layout.setContentsMargins(8, 8, 8, 8);
228+
QTextEdit text(&dialog);
229+
layout.addWidget(&text);
230+
text.setMarkdown(info);
231+
text.setReadOnly(true);
232+
dialog.setModal(true);
233+
dialog.show();
234+
dialog.exec();
235+
});
208236

209237
//Initialze & Load Files
210238
initialize();

0 commit comments

Comments
 (0)