db->query($s); $r = $q->fetchArray(SQLITE3_ASSOC); if ($r){ $this->id = $r["id"]; $this->com2us_id = $r["com2us_id"]; $this->family_id = $r["family_id"]; $this->name = $r["name"]; $this->element = $r["element"]; $this->archetype = $r["archetype"]; $this->base_stars = $r["base_stars"]; $this->natural_stars = $r["natural_stars"]; $this->obtainable = $r["obtainable"]; $this->can_awaken = $r["can_awaken"]; $this->awaken_bonus = $r["awaken_bonus"]; $this->skill_ups_to_max = $r["skill_ups_to_max"]; if ($r["leader_skill"]){ $this->leader_skill = new K_Leader_Skill($this->db, $r["leader_skill"]); } $this->base_hp = $r["base_hp"]; $this->base_attack = $r["base_attack"]; $this->base_defense = $r["base_defense"]; $this->speed = $r["speed"]; $this->crit_rate = $r["crit_rate"]; $this->crit_damage = $r["crit_damage"]; $this->resistance = $r["resistance"]; $this->accuracy = $r["accuracy"]; $this->raw_hp = $r["raw_hp"]; $this->raw_attack = $r["raw_attack"]; $this->raw_defense = $r["raw_defense"]; $this->max_lvl_hp = $r["max_lvl_hp"]; $this->max_lvl_attack = $r["max_lvl_attack"]; $this->max_lvl_defense = $r["max_lvl_defense"]; /*if ($r["awakens_from"]){ $this->awakens_from = new K_Monster($this->db, $r["awakens_from"]); } if ($r["awakens_to"]){ $this->awakens_to = new K_Monster($this->db, $r["awakens_to"]); }*/ $this->awakens_from = $r["awakens_from"]; $this->awakens_to = $r["awakens_to"]; $this->fusion_food = $r["fusion_food"]; $this->homunculus = $r["homunculus"]; $this->craft_cost = $r["craft_cost"]; } $s = "SELECT " . " skill " . "FROM " . " k_skill, " . " k_monster_skill " . "WHERE " . " id = skill AND " . " monster = $id " . "ORDER BY slot; "; $q = $this->db->query($s); while ($r = $q->fetchArray(SQLITE3_ASSOC)){ array_push($this->skill, new K_Skill($this->db, $r["skill"])); } } public function get_image(){ global $base_dir; global $path; if (file_exists($base_dir . "img/content/monster/" . str_pad($this->id, 4, '0', STR_PAD_LEFT) . ".png")){ return $path["img"]["content"] . "monster/" . str_pad($this->id, 4, '0', STR_PAD_LEFT) . ".png"; } else{ return $path["img"]["layout"] . "unknown.png"; } } /** * TODO: UNUSED * * @param $stat Stat name ("ATK", "DEF", "HP", "SPD", "CRR", "CRD", "RES", "ACC"). * @return Value of the base stat (floored integer), -1 if wrong stat. */ public function get_base_stat($stat){ if ($stat == "ATK" || $stat == "DEF" || $stat == "HP" || $stat == "SPD" || $stat == "CRR" || $stat == "CRD" || $stat == "RES" || $stat == "ACC"){ $s = "SELECT " . " min, " . " max " . "FROM k_monster_stat " . "WHERE " . " monster = " . $this->k_monster->id . " AND " . " stat = '" . $stat . "' AND " . " stars = " . $this->stars . " AND " . " awake = " . $this->awakened . ";"; $q = $this->db->query($s); if ($q){ $r = $q->fetchArray(SQLITE3_ASSOC); if ($r){ $min = $r["min"]; $max = $r["max"]; $min_level = 1; $max_level = 40; switch ($this->stars){ case 1: $max_level = 15; break; case 2: $max_level = 20; break; case 3: $max_level = 25; break; case 4: $max_level = 30; break; case 5: $max_level = 35; break; } $base = $min + (($max - $min) * $this->level / $max_level); return floor($base); } else{ return -1; } } else{ return -1; } } else{ return -1; } } } ?>