report_skillup.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. <!DOCTYPE html>
  2. <html lang='en'>
  3. <head>
  4. <meta content='text/html; charset=utf-8' http-equiv='content-type'/>
  5. <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1'/>
  6. <title><?=$page->title?></title>
  7. <link rel='shortcut icon' href='<?=$page->favicon?>'/>
  8. <!-- CSS files -->
  9. <link rel='stylesheet' type='text/css' href='<?=$path["css"]?>ui.css'/>
  10. <link rel='stylesheet' type='text/css' href='<?=$path["css"]?>report.css'/>
  11. <!-- Script files -->
  12. <script src="<?=$path["js"]?>ui.js"></script>
  13. <!-- Meta tags -->
  14. <link rel='canonical' href='<?=$page->canonical?>'/>
  15. <link rel='author' href='<?=$page->author?>'/>
  16. <link rel='publisher' href='<?=$page->author?>'/>
  17. <meta name='description' content='<?=$page->description?>'/>
  18. <meta property='og:title' content='<?=$page->title?>'/>
  19. <meta property='og:url' content='<?=$page->canonical?>'/>
  20. <meta property='og:description' content='<?=$page->description?>'/>
  21. <meta property='og:image' content='<?=$page->icon?>'/>
  22. <meta property='og:site_name' content='<?=$page->name?>'/>
  23. <meta property='og:type' content='website'/>
  24. <meta property='og:locale' content='en'/>
  25. <meta name='twitter:card' content='summary'/>
  26. <meta name='twitter:title' content='<?=$page->title?>'/>
  27. <meta name='twitter:description' content='<?=$page->description?>'/>
  28. <meta name='twitter:image' content='<?=$page->icon?>'/>
  29. <meta name='twitter:url' content='<?=$page->canonical?>'/>
  30. <meta name='robots' content='index follow'/>
  31. </head>
  32. <body id='body_report_skillup'>
  33. <?php
  34. include __DIR__ . "/inc/header.php";
  35. ?>
  36. <section class='filters'>
  37. <h2>
  38. <span>
  39. Monster filters
  40. </span>
  41. </h2>
  42. <form action='/report/skillup/' method='get'>
  43. <table>
  44. <tr>
  45. <td class='filter' id='filter_stars'>
  46. <span>Stars:</span>
  47. <input type='number' name='min_stars' min='1' max='6' value='<?=$page->filters["min_stars"]?>'/>
  48. -
  49. <input type='number' name='max_stars' min='1' max='6' value='<?=$page->filters["max_stars"]?>'/>
  50. </td>
  51. <td class='filter' id='filter_stars'>
  52. <span>Natural stars:</span>
  53. <input type='number' name='min_natural_stars' min='1' max='6' value='<?=$page->filters["min_natural_stars"]?>'/>
  54. -
  55. <input type='number' name='max_natural_stars' min='1' max='6' value='<?=$page->filters["max_natural_stars"]?>'/>
  56. </td>
  57. </tr>
  58. <tr>
  59. <td class='filter' colspan='2'>
  60. <?php
  61. $checked = "";
  62. if ($page->filters["in_storage"]){
  63. $checked = "checked";
  64. }
  65. ?>
  66. <input type='checkbox' name='in_storage' <?=$checked?>/>
  67. Show monsters in storage
  68. </td>
  69. </tr>
  70. <tr>
  71. <td class='filter' colspan='2'>
  72. <?php
  73. $checked = "";
  74. if ($page->filters["without_runes"]){
  75. $checked = "checked";
  76. }
  77. ?>
  78. <input type='checkbox' name='without_runes' <?=$checked?>/>
  79. Show monsters without runes
  80. </td>
  81. </tr>
  82. </table>
  83. <div id='filter_apply'>
  84. <input type='submit' value='Apply'/>
  85. </div>
  86. </form>
  87. </section> <!-- #filters -->
  88. <?php
  89. $index = 1;
  90. foreach ($page->monsters as $mon){
  91. if ($mon->monster->awakens_from == "" && $mon->monster->awakens_to == ""){
  92. // No to, no from, silver monster.
  93. $star_src = $path["img"]["layout"] . "icon/star_silver.png";
  94. $mon_title = $mon->monster->element . " " . $mon->monster->name;
  95. }
  96. elseif ($mon->monster->awakens_from =! "" && $mon->monster->awakens_to == ""){
  97. // Already awakened.
  98. $star_src = $path["img"]["layout"] . "icon/star_aw.png";
  99. $mon_title = $mon->monster->name;
  100. }
  101. elseif ($mon->monster->awakens_to =! ""){
  102. // Awakeable.
  103. $star_src = $path["img"]["layout"] . "icon/star.png";
  104. $mon_title = $mon->monster->element . " " . $mon->monster->name;
  105. }
  106. if ($mon->monster->awakens_from == "" && $mon->monster->awakens_to == ""){
  107. // No to, no from, silver monster.
  108. $star_class ="star_silver";
  109. $mon_title = $mon->monster->element . " " . $mon->monster->name;
  110. }
  111. elseif ($mon->monster->awakens_from =! "" && $mon->monster->awakens_to == ""){
  112. // Already awakened
  113. if ($mon->monster->base_stars - $mon->monster->natural_stars == 1){
  114. // Normal awaken.
  115. $star_class = "star_purple";
  116. }
  117. else{
  118. // Second awaken.
  119. $star_class = "star_red";
  120. }
  121. $mon_title = $mon->monster->name;
  122. }
  123. elseif ($mon->monster->awakens_to =! ""){
  124. // Awakeable.
  125. $star_class = "star_gold";
  126. $mon_title = $mon->monster->element . " " . $mon->monster->name;
  127. }
  128. switch ($index % 10){
  129. case 1:
  130. $index_title = $index . "<span class='superindex'>st</span> - " . $mon_title;
  131. break;
  132. case 2:
  133. $index_title = $index . "<span class='superindex'>nd</span> - " . $mon_title;
  134. break;
  135. case 3:
  136. $index_title = $index . "<span class='superindex'>rd</span> - " . $mon_title;
  137. break;
  138. default:
  139. $index_title = $index . "<span class='superindex'>th</span> - " . $mon_title;
  140. break;
  141. }
  142. switch ($index % 100){
  143. case 11:
  144. case 12:
  145. case 13:
  146. $index_title = $index . "<span class='superindex'>th</span> - " . $mon_title;
  147. break;
  148. }
  149. ?>
  150. <section class='content'>
  151. <h2>
  152. <span>
  153. <?=$index_title?>
  154. </span>
  155. </h2>
  156. <article>
  157. <div class='monster'>
  158. <div class='profile'>
  159. <div class='monster_panel'>
  160. <span class='stars'>
  161. <?php
  162. for ($i = 0; $i < $mon->stars; $i ++){
  163. ?>
  164. <img class='star <?=$star_class?>' src='<?=$path["img"]["layout"] . "icon/star.png"?>'/>
  165. <?php
  166. }
  167. ?>
  168. </span>
  169. <img title='<?=$mon_title?>' class='monster border_<?=$mon->monster->element?>' src='<?=$mon->monster->get_image()?>'/>
  170. <span class='level'>
  171. <?=$mon->level?>
  172. </span>
  173. </div>
  174. </div> <!-- .profile -->
  175. <div class='skills'>
  176. <?php
  177. $skill_num = 1;
  178. $absolute_level = 0;
  179. $absolute_max_level = 0;
  180. $ponderated_level = 0;
  181. $ponderated_max_level = 0;
  182. foreach ($mon->monster->skill as $skill){
  183. if ($skill->max_level > 1){
  184. $absolute_max_level += $skill->max_level - 1;
  185. }
  186. switch ($skill_num){
  187. case 1:
  188. $cur_lvl = $mon->skill_1_level;
  189. if ($skill->max_level > 1){
  190. $absolute_level += $cur_lvl - 1;
  191. $ponderated_level += $cur_lvl - 1;
  192. $ponderated_max_level += $skill->max_level - 1;
  193. }
  194. break;
  195. case 2:
  196. $cur_lvl = $mon->skill_2_level;
  197. if ($skill->max_level > 1){
  198. $absolute_level += $cur_lvl - 1;
  199. $ponderated_level += ($cur_lvl - 1) * 1.5;
  200. $ponderated_max_level += ($skill->max_level - 1) * 1.5;
  201. }
  202. break;
  203. case 3:
  204. $cur_lvl = $mon->skill_3_level;
  205. if ($skill->max_level > 1){
  206. $absolute_level += $cur_lvl - 1;
  207. $ponderated_level += ($cur_lvl - 1) * 2.0;
  208. $ponderated_max_level += ($skill->max_level - 1) * 2.0;
  209. }
  210. break;
  211. case 4:
  212. $cur_lvl = $mon->skill_4_level;
  213. if ($skill->max_level > 1){
  214. $absolute_level += $cur_lvl - 1;
  215. $ponderated_level += ($cur_lvl - 1) * 2.5;
  216. $ponderated_max_level += ($skill->max_level - 1) * 2.5;
  217. }
  218. break;
  219. }
  220. $max_lvl = $skill->max_level;
  221. if ($max_lvl == $cur_lvl){
  222. $maxed = "maxed";
  223. }
  224. else{
  225. $maxed = "";
  226. }
  227. ?>
  228. <div class='skill'>
  229. <img title='<?=$skill->description?>' src='<?=$skill->get_image()?>'/>
  230. <span class='skill_level <?=$maxed?>'>
  231. <?=$cur_lvl?>/<?=$max_lvl?>
  232. </span>
  233. <span class='skill_name'>
  234. <?=$skill->name?>
  235. </span>
  236. </div>
  237. <?php
  238. $skill_num ++;
  239. }
  240. ?>
  241. </div> <!-- #skills -->
  242. <table id='skill_averages'>
  243. <tr>
  244. <td class='title'>
  245. Absolute skill-ups:
  246. </td>
  247. <td class='value'>
  248. <?=number_format($absolute_level * 100 / $absolute_max_level, 2)?>%
  249. </td>
  250. </tr>
  251. <tr>
  252. <td class='title'>
  253. Ponderated skill-ups:
  254. </td>
  255. <td class='value'>
  256. <?=number_format($ponderated_level * 100 / $ponderated_max_level, 2)?>%
  257. </td>
  258. </tr>
  259. <tr>
  260. <td class='title'>
  261. Remaining skill-ups:
  262. </td>
  263. <td class='value'>
  264. <?=$absolute_max_level - $absolute_level?>
  265. </td>
  266. </tr>
  267. </table>
  268. </div>
  269. </article>
  270. </section>
  271. <?php
  272. $index ++;
  273. }
  274. ?>
  275. <?php
  276. include __DIR__ . "/inc/footer.php";
  277. ?>
  278. </body>
  279. </html>