0, "def" => 0, "hp" => 0, "spd" => 0, "crd" => 0, "elm" => [ 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0 ] ]; /** * Constructor. * * Retrieves the data and initializes the variables. * * @param string $id Selected unit id * @global resource Database connection. */ public function __construct($id){ global $db; $this->view = PATH::VIEW . "monster.php"; $this->calculate_buildings(); $this->unit = new Unit($id); $this->title = $this->unit->unit->name ." - SWDB"; $this->description = "Owned " . $this->unit->unit->name; $this->canonical = URL::BASE . "monster/" . $id; } /** * Calculates the stats gained from bulding upgrades and populates the * $building_stats array. * * @gobal int User ID. * @global resource Database connection. */ private function calculate_buildings(){ global $UID; global $db; $s = " SELECT affected_stat, bonus, element FROM k_decoration, k_decoration_level, decoration WHERE decoration.uid = '$UID' AND k_decoration.id = decoration.decoration AND decoration.decoration = k_decoration_level.decoration AND decoration.level = k_decoration_level.level AND area = " . EFFECT_AREA_ID::GENERAL . " AND affected_stat IN (" . STAT_ID::ATK . ", " . STAT_ID::DEF . ", " . STAT_ID::HP . ", " . STAT_ID::SPD . ", " . STAT_ID::CRIT_DMG . "); "; $q = $db->query($s); while ($r = $q->fetchArray(SQLITE3_ASSOC)){ switch($r["affected_stat"]){ case STAT_ID::DEF: $this->building_stats["def"] += $r["bonus"]; break; case STAT_ID::HP: $this->building_stats["hp"] += $r["bonus"]; break; case STAT_ID::SPD: $this->building_stats["spd"] += $r["bonus"]; break; case STAT_ID::CRIT_DMG: $this->building_stats["crd"] += $r["bonus"]; break; case STAT_ID::ATK: if(strlen($r["element"]) > 0){ $this->building_stats["elm"][$r["element"]] += $r["bonus"]; } else{ $this->building_stats["atk"] += $r["bonus"]; } break; } } } } ?>