1 /*******************************************************************
2 Jan Cermak | johniez | aspt.johniez.com
3 Creative Commons 2.5 Attribution-NonCommercial-NoDerivs 2.5 license
4 http://creativecommons.org/licenses/by-nc-nd/2.5/legalcode
5 *******************************************************************/
7 #include "playerdetail.h"
10 * \brief Player Detail Widget constructor.
12 PlayerDetail::PlayerDetail(int idx, QWidget * parent): QWidget(parent), i(idx) {
13 mainLayout = new QVBoxLayout;
14 QString info = "<table>";
15 info += "<tr><td>" + pls[i].fname + " " + pls[i].lname + "</td><td>[" + pls[i].age + "]</td></td>";
16 info += "<tr><td>" + tr("Position") + "</td><td><span style=\"color:red;\">" + pls[i].position + "</span></td></td>";
17 info += "<td><td>" + tr("Rating") + "</td><td><span style=\"color:red;\">" + pls[i].rating + "%</span></td></tr>";
18 info += "<tr><td>" + tr("Moral") + "</td><td><span style=\"color:red;\">" + pls[i].morale + "%</span></td></td>";
19 info += "<td><td>" + tr("Aggresion") + "</td><td><span style=\"color:red;\">" + pls[i].aggresion + "%</span></td></tr>";
20 info += "<tr><td>" + tr("Fitness") + "</td><td><span style=\"color:red;\">" + pls[i].fitness + "%</span></td></td>";
21 info += "<td><td>" + tr("Experience") + "</td><td><span style=\"color:red;\">" + pls[i].experience + "%</span></td></tr>";
22 info += "<tr><td>" + tr("Stamina") + "</td><td><span style=\"color:red;\">" + pls[i].condition + "%</span></td></td>";
23 info += "<td><td>" + tr("Best rate") + "</td><td><span style=\"color:red;\">" + pls[i].bestRate + "</span></td></tr>";
24 info += "<tr><td>" + tr("Form") + "</td><td><span style=\"color:red;\">" + pls[i].form + "</span></td></tr>";
26 info += "<tr><td>" + tr("Speed") + "</td><td><span style=\"color:red;\">" + pls[i].speed + "%</span></td></td>";
27 info += "<td><td>" + tr("Ball controll") + "</td><td><span style=\"color:red;\">" + pls[i].ballCntrl + "%</span></td></tr>";
28 if(pls[i].position=="GK") {
29 info += "<tr><td>" + tr("Courage") + "</td><td><span style=\"color:red;\">" + pls[i].skill[0] + "%</span></td></td>";
30 info += "<td><td>" + tr("Flexibility") + "</td><td><span style=\"color:red;\">" + pls[i].skill[1] + "%</span></td></tr>";
31 info += "<tr><td>" + tr("Jumping") + "</td><td><span style=\"color:red;\">" + pls[i].skill[2] + "%</span></td></td>";
32 info += "<td><td>" + tr("Goalkicks") + "</td><td><span style=\"color:red;\">" + pls[i].skill[3] + "%</span></td></tr>";
33 info += "<tr><td>" + tr("Play along") + "</td><td><span style=\"color:red;\">" + pls[i].specSkill[0] + "%</span></td></td>";
34 info += "<td><td>" + tr("Reflex") + "</td><td><span style=\"color:red;\">" + pls[i].specSkill[1] + "%</span></td></tr>";
35 } else if(pls[i].position == "LB" || pls[i].position == "CB" || pls[i].position == "RB" || pls[i].position == "SW") {
36 info += "<tr><td>" + tr("Passing") + "</td><td><span style=\"color:red;\">" + pls[i].skill[0] + "%</span></td></td>";
37 info += "<td><td>" + tr("Shooting") + "</td><td><span style=\"color:red;\">" + pls[i].skill[1] + "%</span></td></tr>";
38 info += "<tr><td>" + tr("Play it out") + "</td><td><span style=\"color:red;\">" + pls[i].skill[2] + "%</span></td></td>";
39 info += "<td><td>" + tr("Strength") + "</td><td><span style=\"color:red;\">" + pls[i].skill[3] + "%</span></td></tr>";
40 info += "<tr><td>" + tr("Heading") + "</td><td><span style=\"color:red;\">" + pls[i].specSkill[0] + "%</span></td></td>";
41 info += "<td><td>" + tr("Tackling") + "</td><td><span style=\"color:red;\">" + pls[i].specSkill[1] + "%</span></td></tr>";
42 } else if(pls[i].position == "LM" || pls[i].position == "CM" || pls[i].position == "RM") {
43 info += "<tr><td>" + tr("Heading") + "</td><td><span style=\"color:red;\">" + pls[i].skill[0] + "%</span></td></td>";
44 info += "<td><td>" + tr("Shooting") + "</td><td><span style=\"color:red;\">" + pls[i].skill[1] + "%</span></td></tr>";
45 info += "<tr><td>" + tr("Tackling") + "</td><td><span style=\"color:red;\">" + pls[i].skill[2] + "%</span></td></td>";
46 info += "<td><td>" + tr("Strength") + "</td><td><span style=\"color:red;\">" + pls[i].skill[3] + "%</span></td></tr>";
47 info += "<tr><td>" + tr("Passing") + "</td><td><span style=\"color:red;\">" + pls[i].specSkill[0] + "%</span></td></td>";
48 info += "<td><td>" + tr("Playmaking") + "</td><td><span style=\"color:red;\">" + pls[i].specSkill[1] + "%</span></td></tr>";
49 } else if(pls[i].position == "LF" || pls[i].position == "CF" || pls[i].position == "RF") {
50 info += "<tr><td>" + tr("Passing") + "</td><td><span style=\"color:red;\">" + pls[i].skill[0] + "%</span></td></td>";
51 info += "<td><td>" + tr("Tackling") + "</td><td><span style=\"color:red;\">" + pls[i].skill[1] + "%</span></td></tr>";
52 info += "<tr><td>" + tr("Insight") + "</td><td><span style=\"color:red;\">" + pls[i].skill[2] + "%</span></td></td>";
53 info += "<td><td>" + tr("Strength") + "</td><td><span style=\"color:red;\">" + pls[i].skill[3] + "%</span></td></tr>";
54 info += "<tr><td>" + tr("Heading") + "</td><td><span style=\"color:red;\">" + pls[i].specSkill[0] + "%</span></td></td>";
55 info += "<td><td>" + tr("Shooting") + "</td><td><span style=\"color:red;\">" + pls[i].specSkill[1] + "%</span></td></tr>";
57 info += "</table><hr><table>";
58 int hidden = ((pls[i].rating.toInt() * 15) - pls[i].morale.toInt() - pls[i].experience.toInt() - pls[i].condition.toInt() - pls[i].speed.toInt() - pls[i].ballCntrl.toInt() - pls[i].skill[0].toInt() - pls[i].skill[1].toInt() - pls[i].skill[2].toInt() - pls[i].skill[3].toInt() - 2*pls[i].specSkill[0].toInt() - 2*pls[i].specSkill[1].toInt())/2;
59 info += "<tr><td>" + tr("Estimated Hidden") + "</td><td><span style=\"color:red;\">" + QString().setNum(hidden) + "%</span></td></tr>";
60 if(pls[i].morale.toInt()<100) {
61 int rating_mor = ((pls[i].rating.toInt() * 15) + (100 - pls[i].morale.toInt())) / 15;
62 info += "<tr><td>" + tr("Rating with 100% morale") + "</td><td><span style=\"color:red;\">" + QString().setNum(rating_mor) + "%</span></td></tr>";
64 if(pls[i].experience.toInt()<100 && pls[i].morale.toInt()<100) {
65 int rating_all = ((pls[i].rating.toInt() * 15) + (100 - pls[i].experience.toInt()) + (100 - pls[i].morale.toInt())) / 15;
66 info += "<tr><td>" + tr("Rating with 100% experience and morale") + "</td><td><span style=\"color:red;\">" + QString().setNum(rating_all) + "%</span></td></tr>";
67 } else if(pls[i].experience.toInt()<100) {
68 int rating_exp = ((pls[i].rating.toInt() * 15) + (100 - pls[i].experience.toInt())) / 15;
69 info += "<tr><td>" + tr("Rating with 100% experience") + "</td><td><span style=\"color:red;\">" + QString().setNum(rating_exp) + "%</span></td></tr>";
71 info += "<tr><td></td><td></td></tr>";
72 info += "<tr><td>" + tr("Order") + " - " + tr("Normal") + "</td><td>0.00%</td></tr>";
73 if(pls[i].position=="GK") {
74 int plus = pls[i].specSkill[0].toInt() + pls[i].speed.toInt();
75 int minus = pls[i].specSkill[1].toInt() + pls[i].skill[0].toInt();
77 temp.setNum((float)(plus-minus)/20, 'f', 2);
78 info += "<tr><td>" + tr("Order") + " - " + tr("Play along") + "</td><td>" + temp + "%</td></tr>";
79 } else if(pls[i].position == "LB" || pls[i].position == "RB") {
80 int plus = pls[i].skill[0].toInt() + pls[i].speed.toInt();
81 int minus = pls[i].specSkill[0].toInt() + pls[i].skill[3].toInt();
83 temp.setNum((float)(plus-minus)/20, 'f', 2);
84 QString text = "<tr><td>" + tr("Order") + " - " + tr("Play along wing") + "</td><td>" + temp + "%</td></tr>";
85 plus = pls[i].skill[0].toInt();
86 minus = pls[i].specSkill[1].toInt();
87 temp.setNum((float)(plus-minus)/20, 'f', 2);
88 info += text + "<tr><td>" + tr("Order") + " - " + tr("Play it out") + "</td><td>" + temp + "%</td></tr>";
89 } else if(pls[i].position == "CB") {
90 int plus = pls[i].skill[0].toInt();
91 int minus = pls[i].specSkill[1].toInt();
93 temp.setNum((float)(plus-minus)/20, 'f', 2);
94 info += "<tr><td>" + tr("Order") + " - " + tr("Play it out") + "</td><td>" + temp + "%</td></tr>";
95 } else if(pls[i].position == "LM" || pls[i].position == "RM") {
96 int plus = pls[i].specSkill[0].toInt() + pls[i].speed.toInt();
97 int minus = pls[i].skill[3].toInt() + pls[i].skill[0].toInt();
99 temp.setNum((float)(plus-minus)/20, 'f', 2);
100 text = "<tr><td>" + tr("Order") + " - " + tr("Play along wing") + "</td><td>" + temp + "%</td></tr>";
101 plus = pls[i].specSkill[0].toInt() + pls[i].specSkill[1].toInt();
102 minus = pls[i].skill[0].toInt() + pls[i].skill[1].toInt();
103 temp.setNum((float)(plus-minus)/20, 'f', 2);
104 info += text + "<tr><td>" + tr("Order") + " - " + tr("Passing") + "</td><td>" + temp + "%</td></tr>";
105 } else if(pls[i].position == "CM") {
106 int plus = pls[i].specSkill[0].toInt() + pls[i].specSkill[1].toInt();
107 int minus = pls[i].skill[0].toInt() + pls[i].skill[1].toInt();
109 temp.setNum((float)(plus-minus)/20, 'f', 2);
110 info += "<tr><td>" + tr("Order") + " - " + tr("Passing") + "</td><td>" + temp + "%</td></tr>";
111 } else if(pls[i].position == "LF" || pls[i].position == "CF" || pls[i].position == "RF") {
112 int plus = pls[i].specSkill[1].toInt() + pls[i].skill[1].toInt();
113 int minus = pls[i].specSkill[0].toInt() + pls[i].skill[0].toInt();
115 temp.setNum((float)(plus-minus)/20, 'f', 2);
116 text = "<tr><td>" + tr("Order") + " - " + tr("Own chance") + "</td><td>" + temp + "%</td></tr>";
117 if(pls[i].position == "CF") {
118 plus = pls[i].specSkill[0].toInt() + pls[i].skill[3].toInt();
119 minus = pls[i].specSkill[1].toInt() + pls[i].skill[1].toInt();
120 temp.setNum((float)(plus-minus)/20, 'f', 2);
121 text += "<tr><td>" + tr("Order") + " - " + tr("Targetman") + "</td><td>" + temp + "%</td></tr>";
123 plus = pls[i].skill[2].toInt();
124 minus = pls[i].skill[1].toInt();
125 temp.setNum((float)(plus-minus)/20, 'f', 2);
126 info += text + "<tr><td>" + tr("Order") + " - " + tr("Free role") + "</td><td>" + temp + "%</td></tr>";
129 info += tr("<br>How much points of performance orders add,<br>or remove if result is negative.");
131 player = new QLabel(info);
132 mainLayout->addWidget(player);
133 setLayout(mainLayout);
137 * \brief Player Detail destructor.
139 PlayerDetail::~PlayerDetail() {