report_skillup.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  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. <div class='filter' id='filter_stars'>
  44. <span>Min. stars:</span>
  45. <input type='number' name='min_stars' id='filter_stars_min' min='1' max='6' value='<?=$page->filters["min_stars"]?>'/>
  46. <br/>
  47. <span>Max. stars:</span>
  48. <input type='number' name='max_stars' id='filter_stars_max' min='1' max='6' value='<?=$page->filters["max_stars"]?>'/>
  49. </div>
  50. <div class='filter' id='filter_stars'>
  51. <span>Min. natural stars:</span>
  52. <input type='number' name='min_natural_stars' id='filter_stars_min' min='1' max='5' value='<?=$page->filters["min_natural_stars"]?>'/>
  53. <br/>
  54. <span>Max. natural stars:</span>
  55. <input type='number' name='max_natural_stars' id='filter_stars_max' min='1' max='5' value='<?=$page->filters["max_natural_stars"]?>'/>
  56. </div>
  57. <div class='filter'>
  58. <?php
  59. $checked = "";
  60. if ($page->filters["in_storage"]){
  61. $checked = "checked";
  62. }
  63. ?>
  64. <input type='checkbox' name='in_storage' <?=$checked?>/>
  65. Show monsters in storage
  66. <br/>
  67. <?php
  68. $checked = "";
  69. if ($page->filters["without_runes"]){
  70. $checked = "checked";
  71. }
  72. ?>
  73. <input type='checkbox' name='without_runes' <?=$checked?>/>
  74. Show monsters without runes
  75. </div>
  76. <div id='filter_apply'>
  77. <input type='submit' value='Apply'/>
  78. </div>
  79. </form>
  80. </section> <!-- #filters -->
  81. <?php
  82. $index = 1;
  83. foreach ($page->monsters as $mon){
  84. if ($mon->monster->awakens_from == "" && $mon->monster->awakens_to == ""){
  85. // No to, no from, silver monster.
  86. $star_src = $path["img"]["layout"] . "icon/star_silver.png";
  87. $mon_title = $mon->monster->element . " " . $mon->monster->name;
  88. }
  89. elseif ($mon->monster->awakens_from =! "" && $mon->monster->awakens_to == ""){
  90. // Already awakened.
  91. $star_src = $path["img"]["layout"] . "icon/star_aw.png";
  92. $mon_title = $mon->monster->name;
  93. }
  94. elseif ($mon->monster->awakens_to =! ""){
  95. // Awakeable.
  96. $star_src = $path["img"]["layout"] . "icon/star.png";
  97. $mon_title = $mon->monster->element . " " . $mon->monster->name;
  98. }
  99. if ($mon->monster->awakens_from == "" && $mon->monster->awakens_to == ""){
  100. // No to, no from, silver monster.
  101. $star_class ="star_silver";
  102. $mon_title = $mon->monster->element . " " . $mon->monster->name;
  103. }
  104. elseif ($mon->monster->awakens_from =! "" && $mon->monster->awakens_to == ""){
  105. // Already awakened
  106. if ($mon->monster->base_stars - $mon->monster->natural_stars == 1){
  107. // Normal awaken.
  108. $star_class = "star_purple";
  109. }
  110. else{
  111. // Second awaken.
  112. $star_class = "star_red";
  113. }
  114. $mon_title = $mon->monster->name;
  115. }
  116. elseif ($mon->monster->awakens_to =! ""){
  117. // Awakeable.
  118. $star_class = "star_gold";
  119. $mon_title = $mon->monster->element . " " . $mon->monster->name;
  120. }
  121. switch ($index % 10){
  122. case 1:
  123. $index_title = $index . "<span class='superindex'>st</span> - " . $mon_title;
  124. break;
  125. case 2:
  126. $index_title = $index . "<span class='superindex'>nd</span> - " . $mon_title;
  127. break;
  128. case 3:
  129. $index_title = $index . "<span class='superindex'>rd</span> - " . $mon_title;
  130. break;
  131. default:
  132. $index_title = $index . "<span class='superindex'>th</span> - " . $mon_title;
  133. break;
  134. }
  135. switch ($index % 100){
  136. case 11:
  137. case 12:
  138. case 13:
  139. $index_title = $index . "<span class='superindex'>th</span> - " . $mon_title;
  140. break;
  141. }
  142. ?>
  143. <section class='content'>
  144. <h2>
  145. <span>
  146. <?=$index_title?>
  147. </span>
  148. </h2>
  149. <article>
  150. <div class='monster'>
  151. <div class='profile'>
  152. <div class='monster_panel'>
  153. <span class='stars'>
  154. <?php
  155. for ($i = 0; $i < $mon->stars; $i ++){
  156. ?>
  157. <img class='star <?=$star_class?>' src='<?=$path["img"]["layout"] . "icon/star.png"?>'/>
  158. <?php
  159. }
  160. ?>
  161. </span>
  162. <img title='<?=$mon_title?>' class='monster border_<?=$mon->monster->element?>' src='<?=$mon->monster->get_image()?>'/>
  163. <span class='level'>
  164. <?=$mon->level?>
  165. </span>
  166. </div>
  167. </div> <!-- .profile -->
  168. <div class='skills'>
  169. <?php
  170. $skill_num = 1;
  171. $absolute_level = 0;
  172. $absolute_max_level = 0;
  173. $ponderated_level = 0;
  174. $ponderated_max_level = 0;
  175. foreach ($mon->monster->skill as $skill){
  176. if ($skill->max_level > 1){
  177. $absolute_max_level += $skill->max_level - 1;
  178. }
  179. switch ($skill_num){
  180. case 1:
  181. $cur_lvl = $mon->skill_1_level;
  182. if ($skill->max_level > 1){
  183. $absolute_level += $cur_lvl - 1;
  184. $ponderated_level += $cur_lvl - 1;
  185. $ponderated_max_level += $skill->max_level - 1;
  186. }
  187. break;
  188. case 2:
  189. $cur_lvl = $mon->skill_2_level;
  190. if ($skill->max_level > 1){
  191. $absolute_level += $cur_lvl - 1;
  192. $ponderated_level += ($cur_lvl - 1) * 1.5;
  193. $ponderated_max_level += ($skill->max_level - 1) * 1.5;
  194. }
  195. break;
  196. case 3:
  197. $cur_lvl = $mon->skill_3_level;
  198. if ($skill->max_level > 1){
  199. $absolute_level += $cur_lvl - 1;
  200. $ponderated_level += ($cur_lvl - 1) * 2.0;
  201. $ponderated_max_level += ($skill->max_level - 1) * 2.0;
  202. }
  203. break;
  204. case 4:
  205. $cur_lvl = $mon->skill_4_level;
  206. if ($skill->max_level > 1){
  207. $absolute_level += $cur_lvl - 1;
  208. $ponderated_level += ($cur_lvl - 1) * 2.5;
  209. $ponderated_max_level += ($skill->max_level - 1) * 2.5;
  210. }
  211. break;
  212. }
  213. $max_lvl = $skill->max_level;
  214. if ($max_lvl == $cur_lvl){
  215. $maxed = "maxed";
  216. }
  217. else{
  218. $maxed = "";
  219. }
  220. ?>
  221. <div class='skill'>
  222. <img title='<?=$skill->description?>' src='<?=$skill->get_image()?>'/>
  223. <span class='skill_level <?=$maxed?>'>
  224. <?=$cur_lvl?>/<?=$max_lvl?>
  225. </span>
  226. <span class='skill_name'>
  227. <?=$skill->name?>
  228. </span>
  229. </div>
  230. <?php
  231. $skill_num ++;
  232. }
  233. ?>
  234. </div> <!-- #skills -->
  235. <table id='skill_averages'>
  236. <tr>
  237. <td class='title'>
  238. Absolute skill-ups:
  239. </td>
  240. <td class='value'>
  241. <?=number_format($absolute_level * 100 / $absolute_max_level, 2)?>%
  242. </td>
  243. </tr>
  244. <tr>
  245. <td class='title'>
  246. Ponderated skill-ups:
  247. </td>
  248. <td class='value'>
  249. <?=number_format($ponderated_level * 100 / $ponderated_max_level, 2)?>%
  250. </td>
  251. </tr>
  252. <tr>
  253. <td class='title'>
  254. Remaining skill-ups:
  255. </td>
  256. <td class='value'>
  257. <?=$absolute_max_level - $absolute_level?>
  258. </td>
  259. </tr>
  260. </table>
  261. </div>
  262. </article>
  263. </section>
  264. <?php
  265. $index ++;
  266. }
  267. ?>
  268. <?php
  269. include __DIR__ . "/inc/footer.php";
  270. ?>
  271. </body>
  272. </html>