doxygen comments
[aspt.git] / playerdetail.cc
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 *******************************************************************/
6
7 #include "playerdetail.h"
8
9 /**
10  * \brief Player Detail Widget constructor.
11  */
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>";
25         info += "<tr></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>";
56         }
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>";
63         }
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>";
70         }
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();
76                 QString temp;
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();
82                 QString temp;
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();
92                 QString temp;
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();
98                 QString temp, text;
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();
108                 QString temp;
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();
114                 QString temp, text;
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>";
122                 }
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>";
127         }
128         info += "</table>";
129         info += tr("<br>How much points of performance orders add,<br>or remove if result is negative.");
130         
131         player = new QLabel(info);
132         mainLayout->addWidget(player);
133         setLayout(mainLayout);
134 }
135
136 /**
137  * \brief Player Detail destructor.
138  */
139 PlayerDetail::~PlayerDetail() {
140         delete player;
141         delete mainLayout;
142 }
143