Catalog_Catalog_Frame.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. require_once($path["frame"] . "Frame.php");
  3. require_once($path["entity"] . "Monster.php");
  4. /**
  5. * Monster catalog page.
  6. */
  7. class Catalog_Catalog_Frame extends Frame{
  8. /**
  9. * Selected {@see Monster}.
  10. */
  11. public $monster;
  12. public $id;
  13. public $name;
  14. public $name_aw;
  15. public $stars;
  16. public $awakeable;
  17. public $cur_img;
  18. public $img;
  19. public $img_aw;
  20. public $img_star;
  21. public $element;
  22. public $owned;
  23. public $skill;
  24. public $stat = [];
  25. public $stat_aw = [];
  26. public $location = [];
  27. public $essence = [];
  28. /**
  29. * Constructor.
  30. *
  31. * Retrieves the data and initializes the variables.
  32. *
  33. * @param SQLite3 $db Connection to the database.
  34. * @param Array $params Parameters array, containig at least 'id'.
  35. */
  36. public function __construct($db, $params){
  37. global $path;
  38. parent::__construct($db);
  39. $this->view = $path["view"] . "frame/catalog.php";
  40. $id = $params["id"];
  41. $s =
  42. "SELECT id, " .
  43. " ( " .
  44. " SELECT count(id) > 0 " .
  45. " FROM monster_collection " .
  46. " WHERE monster = monster.id " .
  47. " ) AS owned " .
  48. "FROM monster " .
  49. "WHERE id = " . $id . "; ";
  50. $q = $this->db->query($s);
  51. $r = $q->fetchArray(SQLITE3_ASSOC);
  52. if ($r){
  53. $this->monster = new Monster($this->db, $r["id"]);
  54. $this->id = $id;
  55. $this->name = $this->monster->name;
  56. $this->name_aw = $this->monster->name_aw;
  57. $this->stars = $this->monster->stars;
  58. $this->awakeable = $this->monster->awakeable;
  59. $this->skill = $this->monster->skill;
  60. $this->img = $this->monster->image;
  61. $this->img_aw = $this->monster->image_aw;
  62. $this->element = $this->monster->element;
  63. $this->owned = $r["owned"];
  64. }
  65. $s =
  66. "SELECT DISTINCT stars " .
  67. "FROM monster_stat " .
  68. "WHERE monster = " . $id . " " .
  69. "ORDER BY stars; ";
  70. $q = $this->db->query($s);
  71. while ($r = $q->fetchArray(SQLITE3_ASSOC)){
  72. //error_log(" LOOP 1");
  73. $st = [
  74. "STARS" => $r["stars"],
  75. "HP" => [
  76. "MIN" => 0,
  77. "MAX" => 0,
  78. ],
  79. "ATK" => [
  80. "MIN" => 0,
  81. "MAX" => 0,
  82. ],
  83. "DEF" => [
  84. "MIN" => 0,
  85. "MAX" => 0,
  86. ],
  87. "SPD" => 0,
  88. "CRID" => 0,
  89. "CRIR" => 0,
  90. "RES" => 0,
  91. "ACC" => 0,
  92. ];
  93. $ss =
  94. "SELECT * " .
  95. "FROM monster_stat " .
  96. "WHERE " .
  97. " monster = " . $id . " AND " .
  98. " stars = " . $r["stars"] . " AND " .
  99. " awake = 0; ";
  100. $qq = $this->db->query($ss);
  101. while ($rr = $qq->fetchArray(SQLITE3_ASSOC)){
  102. error_log(" LOOP 2");
  103. if ($rr["stat"] == "HP" || $rr["stat"] == "ATK" || $rr["stat"] == "DEF"){
  104. $st[$rr["stat"]]["MAX"] = $rr["max"];
  105. $st[$rr["stat"]]["MIN"] = $rr["min"];
  106. }
  107. else{
  108. $st[$rr["stat"]] = $rr["min"];
  109. }
  110. }
  111. array_push($this->stat, $st);
  112. $ss =
  113. "SELECT * " .
  114. "FROM monster_stat " .
  115. "WHERE " .
  116. " monster = " . $id . " AND " .
  117. " stars = " . $r["stars"] . " AND " .
  118. " awake = 1; ";
  119. $qq = $this->db->query($ss);
  120. $rr = $qq->fetchArray(SQLITE3_ASSOC);
  121. while ($rr = $qq->fetchArray(SQLITE3_ASSOC)){
  122. if ($rr["stat"] == "HP" || $rr["stat"] == "ATK" || $rr["stat"] == "DEF"){
  123. $st[$rr["stat"]]["MAX"] = $rr["max"];
  124. $st[$rr["stat"]]["MIN"] = $rr["min"];
  125. }
  126. else{
  127. $st[$rr["stat"]] = $rr["min"];
  128. }
  129. }
  130. array_push($this->stat_aw, $st);
  131. }
  132. $s =
  133. "SELECT location " .
  134. "FROM monster_location " .
  135. "WHERE monster = " . $id . " ";
  136. $q = $this->db->query($s);
  137. while ($r = $q->fetchArray(SQLITE3_ASSOC)){
  138. array_push($this->location, $r["location"]);
  139. }
  140. $s =
  141. "SELECT " .
  142. " element, " .
  143. " grade, " .
  144. " num " .
  145. "FROM monster_essence " .
  146. "WHERE monster = " . $id . " ";
  147. $q = $this->db->query($s);
  148. while ($r = $q->fetchArray(SQLITE3_ASSOC)){
  149. $e = [
  150. "IMAGE" => $path["img"]["content"] . "essence/" . $r["element"] . "_" . $r["grade"] . ".png",
  151. "ELEMENT" => $r["element"],
  152. "GRADE" => $r["grade"],
  153. "NUM" => $r["num"],
  154. ];
  155. array_push($this->essence, $e);
  156. }
  157. }
  158. }
  159. ?>