فهرست منبع

SQLite database. Better parser. Monster skills and stats. Catalog section.

Iñigo Valentin 8 سال پیش
والد
کامیت
5f7e412dce
37فایلهای تغییر یافته به همراه2302 افزوده شده و 1248 حذف شده
  1. 23 0
      .gitignore
  2. 9 1
      application/Controller.php
  3. 3 3
      application/config.php
  4. 0 13
      application/config/auth.php
  5. 1 1
      application/entity/Entity.php
  6. 3 3
      application/entity/Fusion.php
  7. 37 9
      application/entity/Monster.php
  8. 5 5
      application/entity/Monster_Base.php
  9. 4 4
      application/entity/Monster_Collection.php
  10. 102 0
      application/entity/Monster_Skill.php
  11. 4 4
      application/handler/Monster_Collection_Handler.php
  12. 14 15
      application/helper/db.php
  13. 72 0
      application/page/Catalog_Page.php
  14. 3 3
      application/page/Collection_Page.php
  15. 5 5
      application/page/Fusion_Page.php
  16. 1 1
      application/page/Home_Page.php
  17. 1 1
      application/page/Page.php
  18. 165 0
      application/page/frame/Catalog_Catalog_Frame.php
  19. 4 4
      application/page/frame/Collection_Collection_Frame.php
  20. 4 4
      application/page/frame/Collection_New_Frame.php
  21. 124 4
      application/page/frame/Collection_Portrait_Frame.php
  22. 1 1
      application/page/frame/Frame.php
  23. 94 0
      application/view/catalog.php
  24. 273 0
      application/view/frame/catalog.php
  25. 78 3
      application/view/frame/portrait.php
  26. 3 0
      application/view/inc/header.php
  27. 766 0
      install
  28. 0 83
      parser/parse.py
  29. 237 0
      public/css/catalog.css
  30. 79 18
      public/css/collection.css
  31. 96 9
      public/css/ui.css
  32. 41 5
      public/error.php
  33. 0 1010
      public/img/content/get_monster_icons.sh
  34. 49 0
      public/script/catalog.js
  35. 1 0
      public/script/collection.js
  36. 0 37
      sql/01_structure.sql
  37. 0 2
      sql/02_security.sql

+ 23 - 0
.gitignore

@@ -0,0 +1,23 @@
+# Private files
+copy
+public/img/content/
+application/config/auth.php_*
+application/*.sqlite
+install-*
+install_*
+private.sql
+
+#IDE / OS files
+.kateproject.d/
+.kateproject
+.project
+.settings
+.directory
+.DS_Store
+.DS_Store?
+._*
+.Trashes
+ehthumbs.db
+Thumbs.db
+*.swp
+*.kate-swp

+ 9 - 1
application/Controller.php

@@ -1,6 +1,6 @@
 <?php
 
-    require_once(__DIR__ . "/config/config.php");
+    require_once(__DIR__ . "/config.php");
     require_once($path["helper"] . "db.php");
     require_once($path["helper"] . "text.php");
     require_once($path["helper"] . "net.php");
@@ -28,6 +28,8 @@
          *
          * Handles every request, creating the required models and selecting the
          * view.
+         *
+         * @param Array $params POST parameters of the request.
          */
         public function __construct($params){
 
@@ -57,6 +59,9 @@
                 elseif (strtoupper($pars[0]) == "COLLECTION"){
                     $page = new Collection_Page($db);
                 }
+                elseif (strtoupper($pars[0]) == "CATALOG"){
+                    $page = new Catalog_Page($db);
+                }
                 elseif (strtoupper($pars[0]) == "FRAME"){
                     if (strtoupper($pars[1]) == "PORTRAIT"){
                         $page = new Collection_Portrait_Frame($db, $_POST);
@@ -67,6 +72,9 @@
                     elseif (strtoupper($pars[1]) == "COLLECTION"){
                         $page = new Collection_Collection_Frame($db, $_POST);
                     }
+                    elseif (strtoupper($pars[1]) == "CATALOG"){
+                        $page = new Catalog_Catalog_Frame($db, $_POST);
+                    }
                 }
                 elseif (strtoupper($pars[0]) == "HANDLER"){
                     if (strtoupper($pars[1]) == "MONSTER_COLLECTION"){

+ 3 - 3
application/config/config.php → application/config.php

@@ -1,7 +1,6 @@
 <?php
 
-    include __DIR__ . "/auth.php";
-    require_once(__DIR__ . "/../helper/net.php");
+    require_once(__DIR__ . "/helper/net.php");
 
     $root = get_protocol() . $_SERVER["HTTP_HOST"] . "/";
 
@@ -12,7 +11,7 @@
             "content" => $root . "img/content/",
             "layout" => $root . "img/layout/",
             "monster" => $root . "img/content/monster/",
-            "awaken" => $root . "img/content/monster/awaken/"
+            "skill" => $root . "img/content/skill/",
         ],
         "fonts" => $root . "fonts/",
         "css" => $root . "css/",
@@ -25,6 +24,7 @@
         "handler" => "$base_dir../application/handler/",
         "view" => "$base_dir../application/view/",
         "helper" => "$base_dir../application/helper/",
+        "db" => "$base_dir../application/sw.sqlite",
     ];
 
 ?>

+ 0 - 13
application/config/auth.php

@@ -1,13 +0,0 @@
-<?php
-
-    /*
-     * Example file. Password must be defined
-     */
-
-    $auth = [
-        "host" => "localhost",
-        "name" => "sw",
-        "user" => "sw",
-        "pass" => "XXXXXXXXXX"
-    ];
-?>

+ 1 - 1
application/entity/Entity.php

@@ -18,7 +18,7 @@
          *
          * Sets the database conection and the language.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          */
         public function __construct($db){
             $this->db = $db;

+ 3 - 3
application/entity/Fusion.php

@@ -42,7 +42,7 @@
          * Searches the database and retrieves the information about the
          * project, populating it and it's items.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          * @param int $id Target monster id.
          */
         public function __construct($db, $id){
@@ -57,9 +57,9 @@
               "  source_level " .
               "FROM fusion " .
               "WHERE target = $id; ";
-            $q = mysqli_query($this->db, $s);
+            $q = $this->db->query($s);
             $set = false;
-            while ($r = mysqli_fetch_array($q)){
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
                 if ($set == false){
                     $this->target_stars = $r["target_stars"];
                     $this->source_stars = $r["source_stars"];

+ 37 - 9
application/entity/Monster.php

@@ -2,7 +2,8 @@
 
     require_once($path["entity"] . "Entity.php");
     require_once($path["entity"] . "Monster_Base.php");
-    
+    require_once($path["entity"] . "Monster_Skill.php");
+
 
     /**
      * Monster.
@@ -12,7 +13,7 @@
     class Monster extends Entity{
 
         /**
-         * Project identifier.
+         * Skill identifier.
          */
         public $id;
 
@@ -51,13 +52,23 @@
          */
         public $image_aw;
 
+        /**
+         * All {@see Monster_Skill}
+         */
+        public $skill = [];
+
+        /*
+         * Indicates if the monster can be awakened.
+         */
+        public $awakeable;
+
         /**
          * Constructor.
          *
          * Searches the database and retrieves the information about the
          * monster, populating it and it's items.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          * @param int $id Monster identifier.
          */
         public function __construct($db, $id){
@@ -70,20 +81,37 @@
               "  name_aw, " .
               "  element, " .
               "  stars, " .
-              "  base " .
+              "  base, " .
+              "  img, " .
+              "  img_aw, " .
+              "  awakeable " .
               "FROM monster " .
               "WHERE id = $id; ";
-            $q = mysqli_query($this->db, $s);
-            if (mysqli_num_rows($q) > 0){
-                $r = mysqli_fetch_array($q);
+            $q = $this->db->query($s);
+            $r = $q->fetchArray(SQLITE3_ASSOC);
+            if ($r){
                 $this->id = $r["id"];
                 $this->name = $r["name"];
                 $this->name_aw = $r["name_aw"];
                 $this->element = $r["element"];
                 $this->stars = $r["stars"];
+                $this->awakeable = $r["awakeable"];
                 $this->base = new Monster_Base($this->db, $r["base"]);
-                $this->image = $path["img"]["monster"] . str_pad($id, 4, '0', STR_PAD_LEFT) . ".png";
-                $this->image_aw = $path["img"]["awaken"] . str_pad($id, 4, '0', STR_PAD_LEFT) . ".png";
+                $this->image = $path["img"]["monster"] . $r["img"];
+                $this->image_aw = $path["img"]["monster"] . $r["img_aw"];
+            }
+            $s =
+              "SELECT " .
+              "  id " .
+              "FROM monster_skill " .
+              "WHERE " .
+              "  monster = $id AND" .
+              "  upgrade IS NULL " .
+              "ORDER BY idx; ";
+            error_log($s);
+            $q = $this->db->query($s);
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
+                array_push($this->skill, new Monster_Skill($this->db, $r["id"]));
             }
         }
     }

+ 5 - 5
application/entity/Monster_Base.php

@@ -19,14 +19,14 @@
          * Monster name.
          */
         public $name;
-        
+
         /**
          * Constructor.
          *
          * Searches the database and retrieves the information about the
          * base monster, populating it and it's items.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          * @param int $id Base monster identifier.
          */
         public function __construct($db, $id){
@@ -37,9 +37,9 @@
               "  name " .
               "FROM monster_base " .
               "WHERE id = $id; ";
-            $q = mysqli_query($this->db, $s);
-            if (mysqli_num_rows($q) > 0){
-                $r = mysqli_fetch_array($q);
+            $q = $this->db->query($s);
+            $r = $q->fetchArray(SQLITE3_ASSOC);
+            if ($r){
                 $this->id = $r["id"];
                 $this->name = $r["name"];
             }

+ 4 - 4
application/entity/Monster_Collection.php

@@ -42,7 +42,7 @@
          * Searches the database and retrieves the information about the
          * owned monster, populating it and it's items.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          * @param int $id Monster id in the collection.
          */
         public function __construct($db, $id){
@@ -57,10 +57,10 @@
               "  awaken " .
               "FROM monster_collection " .
               "WHERE id = $id; ";
-            $q = mysqli_query($this->db, $s);
+            $q = $this->db->query($s);
             $set = false;
-            if (mysqli_num_rows($q) > 0){
-                $r = mysqli_fetch_array($q);
+            $r = $q->fetchArray(SQLITE3_ASSOC);
+            if ($r){
                 $this->id = $r["id"];
                 $this->stars = $r["stars"];
                 $this->level = $r["level"];

+ 102 - 0
application/entity/Monster_Skill.php

@@ -0,0 +1,102 @@
+<?php
+
+    require_once($path["entity"] . "Entity.php");
+
+
+    /**
+     * Monster.
+     *
+     * Represents an object from the table 'monster'.
+     */
+    class Monster_Skill extends Entity{
+
+        /**
+         * Skill identifier.
+         */
+        public $id;
+
+        /**
+         * Skill order.
+         */
+        public $idx;
+
+        /**
+         * Skill name.
+         */
+        public $name;
+
+        /**
+         * Skill description.
+         */
+        public $desc;
+
+        /**
+         * Wether the skill is passive or not.
+         */
+        public $pasive;
+
+        /**
+         * Base monster. {@see Monster_Base}
+         */
+        public $awaken;
+
+        /**
+         * Wether the skill is a leader one.
+         */
+        public $leader;
+
+        /**
+         * Skill image.
+         */
+        public $img;
+
+        /**
+         * The {@see Monster_Skill} upgrading this one.
+         */
+        public $upgrade;
+
+        /**
+         * Constructor.
+         *
+         * Searches the database and retrieves the information about the
+         * skill, populating it and it's items.
+         *
+         * @param SQLite3 $db Connection to the database.
+         * @param int $id Monster identifier.
+         */
+        public function __construct($db, $id){
+            global $path;
+            parent::__construct($db);
+            $s =
+              "SELECT " .
+              "  id, " .
+              "  idx, " .
+              "  name, " .
+              "  desc, " .
+              "  passive, " .
+              "  upgrade, " .
+              "  awaken, " .
+              "  leader, " .
+              "  img, " .
+              "  cooldown " .
+              "FROM monster_skill " .
+              "WHERE id = $id; ";
+            $q = $this->db->query($s);
+            $r = $q->fetchArray(SQLITE3_ASSOC);
+            if ($r){
+                $this->id = $r["id"];
+                $this->idx = $r["idx"];
+                $this->name = $r["name"];
+                $this->desc = $r["desc"];
+                $this->passive = $r["passive"];
+                $this->awaken = $r["awaken"];
+                $this->leader = $r["leader"];
+                $this->img = $path["img"]["skill"] . $r["img"];
+                $this->cooldown = $r["cooldown"];
+                if ($r["upgrade"] != 0){
+                    $this->upgrade = new Monster_Skill($this->db, $r["upgrade"]);
+                }
+            }
+        }
+    }
+?>

+ 4 - 4
application/handler/Monster_Collection_Handler.php

@@ -14,7 +14,7 @@
          *
          * Handles the database operation.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          * @param int $id Monster identifier in the collection. Will be ignored
          *                when inserting.
          * @param string $mode 'insert', 'update' or 'delete'.
@@ -49,7 +49,7 @@
                  $params["level"] . ", " .
                  $params["awaken"] . " " .
               "); ";
-            if (mysqli_query($this->db, $s)){
+            if ($this->db->exec($s)){
                 $this->response = 200;
             }
             else{
@@ -65,7 +65,7 @@
               "  level = 0, " .
               "  awaken = 0 " .
               "WHERE id = " . $this->entity->id . "; ";
-            if (mysqli_query($this->db, $s)){
+            if ($this->db->exec($s)){
                 $this->response = 200;
             }
             else{
@@ -94,7 +94,7 @@
               "  level = " . $this->level . ", " .
               "  awaken = " . $this->awaken . " " .
               "WHERE id = " . $this->entity->id . "; ";
-            if (mysqli_query($this->db, $s)){
+            if ($this->db->exec($s)){
                 $this->response = 200;
             }
             else{

+ 14 - 15
application/helper/db.php

@@ -4,24 +4,23 @@
     /**
      * Creates a database connection using the data in the config files.
      * 
-     * @return MySQL_connection Connection to the database.
+     * @return SQLite3Result Connection to the database.
      */
     function start_db(){
-        global $auth;
-        $db = mysqli_connect($auth["host"], $auth["user"], $auth["pass"], $auth["name"]);
-
-        // Check connection
-        if (mysqli_connect_errno()){
-            error_log("Failed to connect to database: " . mysqli_connect_error());
-            return -1;
+        global $path;
+        //return new SQLiteDatabase($path["db"]);
+        class SQLite extends SQLite3 {
+            function __construct($file) {
+                $this->open($file);
+            }
+        }
+        $db = new SQLite3($path["db"]);
+        if(!$db) {
+            error_log($db->lastErrorMsg());
+        }
+        else {
+            return $db;
         }
-
-        //Set encoding options
-        mysqli_set_charset($db, "utf-8");
-        header("Content-Type: text/html; charset=utf8");
-        mysqli_query($db, "SET NAMES utf8;");
-
-        return $db;
     }
 
 ?>

+ 72 - 0
application/page/Catalog_Page.php

@@ -0,0 +1,72 @@
+<?php
+
+    require_once($path["page"] . "Page.php");
+
+
+    /**
+     * Catalog page model.
+     */
+    class Catalog_Page extends Page{
+
+
+        /**
+         * List of all the monsters in the database.
+         */
+        public $entry = [];
+
+
+        /**
+         * Constructor.
+         *
+         * Retrieves the data and initializes the variables.
+         *
+         * @param SQLite3 $db Connection to the database.
+         */
+        public function __construct($db){
+            global $path;
+            global $root;
+            parent::__construct($db);
+            $this->view = $path["view"] . "catalog.php";
+            $s =
+              "SELECT id, " .
+              "  element, " .
+              "  name, " .
+              "  img, " .
+              "  img_aw, " .
+              "  stars, " .
+              "  awakeable, " .
+              "  ( " .
+              "    SELECT count(id) > 0 " .
+              "    FROM monster_collection " .
+              "    WHERE monster = monster.id " .
+              "  ) AS owned " .
+              "FROM monster " .
+              "ORDER BY " .
+              "  element, " .
+              "  stars, " .
+              "  awakeable ";
+            $q = $this->db->query($s);
+            error_log($s);
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
+                $mon = [
+                    "id" => $r["id"],
+                    "element" => $r["element"],
+                    "name" => $r["name"],
+                    "image" => $path["img"]["monster"] . $r["img"],
+                    "image_aw" => $path["img"]["monster"] . $r["img_aw"],
+                    "stars" => $r["stars"],
+                    "awakeable" => $r["awakeable"],
+                    "owned" => $r["owned"],
+                ];
+                array_push($this->entry, $mon);
+            }
+            $this->title = "Catalog - SWDB";
+            $this->name = "SWDB";
+            $this->description = "Catalog of all monsters";
+            $this->favicon = "";
+            $this->icon = "";
+            $this->canonical = $root . "/catalog/";
+            $this->author = $root;
+        }
+    }
+?>

+ 3 - 3
application/page/Collection_Page.php

@@ -20,7 +20,7 @@
          *
          * Retrieves the data and initializes the variables.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          */
         public function __construct($db){
             global $path;
@@ -31,8 +31,8 @@
               "SELECT id " .
               "FROM monster_base " .
               "ORDER BY name; ";
-            $q = mysqli_query($this->db, $s);
-            while ($r = mysqli_fetch_array($q)){
+            $q = $this->db->query($s);
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
                 array_push($this->base_monster, new Monster_Base($this->db, $r["id"]));
             }
             $this->title = "";

+ 5 - 5
application/page/Fusion_Page.php

@@ -25,7 +25,7 @@
          *
          * Retrieves the data and initializes the variables.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          */
         public function __construct($db){
             global $path;
@@ -36,8 +36,8 @@
               "SELECT DISTINCT target " .
               "FROM fusion " .
               "ORDER BY target_stars DESC; ";
-            $q = mysqli_query($this->db, $s);
-            while ($r = mysqli_fetch_array($q)){
+            $q = $this->db->query($s);
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
                 array_push($this->fusion, new Fusion($this->db, $r["target"]));
             }
             $s = 
@@ -47,8 +47,8 @@
               "ORDER BY " .
               "  stars DESC, " .
               "  level DESC; ";
-            $q = mysqli_query($this->db, $s);
-            while ($r = mysqli_fetch_array($q)){
+            $q = $this->db->query($s);
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
                 array_push($this->collection, new Monster_Collection($this->db, $r["id"]));
             }
             $this->title = "";

+ 1 - 1
application/page/Home_Page.php

@@ -16,7 +16,7 @@
          *
          * Retrieves the data and initializes the variables.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          * @param string $lang Lowercase, two-letter language code.
          */
         public function __construct($db){

+ 1 - 1
application/page/Page.php

@@ -56,7 +56,7 @@
         /**
          * Constructor.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          */
         public function __construct($db){
             $this->db = $db;

+ 165 - 0
application/page/frame/Catalog_Catalog_Frame.php

@@ -0,0 +1,165 @@
+<?php
+
+    require_once($path["frame"] . "Frame.php");
+    require_once($path["entity"] . "Monster.php");
+
+
+    /**
+     * Monster catalog page.
+     */
+    class Catalog_Catalog_Frame extends Frame{
+
+        /**
+         * Selected {@see Monster}.
+         */
+        public $monster;
+
+        public $id;
+        public $name;
+        public $name_aw;
+        public $stars;
+        public $awakeable;
+        public $cur_img;
+        public $img;
+        public $img_aw;
+        public $img_star;
+        public $element;
+        public $owned;
+        public $skill;
+        public $stat = [];
+        public $stat_aw = [];
+        public $location = [];
+        public $essence = [];
+
+        /**
+         * Constructor.
+         *
+         * Retrieves the data and initializes the variables.
+         *
+         * @param SQLite3 $db Connection to the database.
+         * @param Array $params Parameters array, containig at least 'id'.
+         */
+        public function __construct($db, $params){
+            global $path;
+            parent::__construct($db);
+            $this->view = $path["view"] . "frame/catalog.php";
+            $id = $params["id"];
+            $s =
+              "SELECT id, " .
+              "  ( " .
+              "    SELECT count(id) > 0 " .
+              "    FROM monster_collection " .
+              "    WHERE monster = monster.id " .
+              "  ) AS owned " .
+              "FROM monster " .
+              "WHERE id = " . $id . "; ";
+            $q = $this->db->query($s);
+            $r = $q->fetchArray(SQLITE3_ASSOC);
+            if ($r){
+                $this->monster = new Monster($this->db, $r["id"]);
+                $this->id = $id;
+                $this->name = $this->monster->name;
+                $this->name_aw = $this->monster->name_aw;
+                $this->stars = $this->monster->stars;
+                $this->awakeable = $this->monster->awakeable;
+                $this->skill = $this->monster->skill;
+                $this->img = $this->monster->image;
+                $this->img_aw = $this->monster->image_aw;
+                $this->element = $this->monster->element;
+                $this->owned = $r["owned"];
+            }
+            $s = 
+              "SELECT DISTINCT stars " .
+              "FROM monster_stat " .
+              "WHERE monster = " . $id . " " .
+              "ORDER BY stars; ";
+            $q = $this->db->query($s);
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
+                //error_log("    LOOP 1");
+                $st = [
+                    "STARS" => $r["stars"],
+                    "HP" => [
+                        "MIN" => 0,
+                        "MAX" => 0,
+                    ],
+                    "ATK" => [
+                        "MIN" => 0,
+                        "MAX" => 0,
+                    ],
+                    "DEF" => [
+                        "MIN" => 0,
+                        "MAX" => 0,
+                    ],
+                    "SPD" => 0,
+                    "CRID" => 0,
+                    "CRIR" => 0,
+                    "RES" => 0,
+                    "ACC" => 0,
+                ];
+                $ss =
+                  "SELECT * " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = " . $id . " AND " .
+                  "  stars = " . $r["stars"] . " AND " .
+                  "  awake = 0; ";
+                $qq = $this->db->query($ss);
+                while ($rr = $qq->fetchArray(SQLITE3_ASSOC)){
+                    error_log("    LOOP 2");
+                    if ($rr["stat"] == "HP" || $rr["stat"] == "ATK" || $rr["stat"] == "DEF"){
+                        $st[$rr["stat"]]["MAX"] = $rr["max"];
+                        $st[$rr["stat"]]["MIN"] = $rr["min"];
+                    }
+                    else{
+                        $st[$rr["stat"]] = $rr["min"];
+                    }
+                }
+                array_push($this->stat, $st);
+                $ss =
+                  "SELECT * " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = " . $id . " AND " .
+                  "  stars = " . $r["stars"] . " AND " .
+                  "  awake = 1; ";
+                $qq = $this->db->query($ss);
+                $rr = $qq->fetchArray(SQLITE3_ASSOC);
+                while ($rr = $qq->fetchArray(SQLITE3_ASSOC)){
+                    if ($rr["stat"] == "HP" || $rr["stat"] == "ATK" || $rr["stat"] == "DEF"){
+                        $st[$rr["stat"]]["MAX"] = $rr["max"];
+                        $st[$rr["stat"]]["MIN"] = $rr["min"];
+                    }
+                    else{
+                        $st[$rr["stat"]] = $rr["min"];
+                    }
+                }
+                array_push($this->stat_aw, $st);
+            }
+            $s = 
+              "SELECT location " .
+              "FROM monster_location " .
+              "WHERE monster = " . $id . " ";
+            $q = $this->db->query($s);
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
+                array_push($this->location, $r["location"]);
+            }
+            $s = 
+              "SELECT " .
+              "  element, " .
+              "  grade, " .
+              "  num " .
+              "FROM monster_essence " .
+              "WHERE monster = " . $id . " ";
+            $q = $this->db->query($s);
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
+                $e = [
+                  "IMAGE" => $path["img"]["content"] . "essence/" . $r["element"] . "_" . $r["grade"] . ".png",
+                  "ELEMENT" => $r["element"],
+                  "GRADE" => $r["grade"],
+                  "NUM" => $r["num"],
+                ];
+                array_push($this->essence, $e);
+            }
+        }
+    }
+?>

+ 4 - 4
application/page/frame/Collection_Collection_Frame.php

@@ -24,7 +24,7 @@
          *
          * Retrieves the data and initializes the variables.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          * @param Array $params Parameters array. May contain the 'selected' parameter
          *                      to mark a monster as selected.
          */
@@ -35,15 +35,15 @@
             if (isset($params["selected"])){
                 $this->selected = $params["selected"];
             }
-            $s = 
+            $s =
               "SELECT id " .
               "FROM monster_collection " .
               "WHERE level <> 0 " .
               "ORDER BY " .
               "  stars DESC, " .
               "  level DESC; ";
-            $q = mysqli_query($this->db, $s);
-            while ($r = mysqli_fetch_array($q)){
+            $q = $this->db->query($s);
+            while ($r = $q->fetchArray(SQLITE3_ASSOC)){
                 array_push($this->collection, new Monster_Collection($this->db, $r["id"]));
             }
         }

+ 4 - 4
application/page/frame/Collection_New_Frame.php

@@ -24,7 +24,7 @@
          *
          * Retrieves the data and initializes the variables.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          * @param Array $params Parameters array, containig at least 'base'
          *                      and 'element'.
          */
@@ -41,9 +41,9 @@
               "  monster.base = monster_base.id AND " .
               "  upper(monster_base.name) = '" . strtoupper($params["base"]) . "' AND " .
               "  monster.element = '" . $params["element"] . "'; ";
-            $q = mysqli_query($this->db, $s);
-            if (mysqli_num_rows($q) > 0){
-                $r = mysqli_fetch_array($q);
+            $q = $this->db->query($s);
+            $r = $q->fetchArray(SQLITE3_ASSOC);
+            if ($r){
                 $this->monster = new Monster($this->db, $r["id"]);
                 $this->id = $r["id"];
                 $this->element = $params["element"];

+ 124 - 4
application/page/frame/Collection_Portrait_Frame.php

@@ -24,6 +24,15 @@
         public $img_star;
         public $element;
         public $owned;
+        public $skill;
+        public $hp = 0;
+        public $atk = 0;
+        public $def = 0;
+        public $spd = 0;
+        public $crir = 0;
+        public $crid = 0;
+        public $res = 0;
+        public $acc = 0;
 
         /**
          * Owned {@see Monster_Collection} of owned monsters.
@@ -35,7 +44,7 @@
          *
          * Retrieves the data and initializes the variables.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          * @param Array $params Parameters array, containig at least 'id'.
          */
         public function __construct($db, $params){
@@ -47,15 +56,16 @@
               "SELECT id " .
               "FROM monster_collection " .
               "WHERE id = " . $id . "; ";
-            $q = mysqli_query($this->db, $s);
-            if (mysqli_num_rows($q) > 0){
-                $r = mysqli_fetch_array($q);
+            $q = $this->db->query($s);
+            $r = $q->fetchArray(SQLITE3_ASSOC);
+            if ($r){
                 $this->collection = new Monster_Collection($this->db, $r["id"]);
                 $this->id = $id;
                 $this->name = $this->collection->monster->name;
                 $this->name_aw = $this->collection->monster->name_aw;
                 $this->stars = $this->collection->stars;
                 $this->default_stars = $this->collection->monster->stars;
+                $this->skill = $this->collection->monster->skill;
                 $this->level = $this->collection->level;
                 $this->max_level = 10 + (5 * $this->stars);
                 $this->awaken = $this->collection->awaken;
@@ -75,6 +85,116 @@
                     $this->cur_img = $this->img;
                     $this->img_star = $star_src = $path["img"]["layout"] . "icon/star.png";
                 }
+                // Get stats
+                $l = $this->level;
+                $t = $this->stars;
+                $i = $this->collection->monster->id;
+                $w = $this->awaken;
+                $s =
+                  "SELECT min + (((max - min) / ((stars + 2) * 5)) * ($l + $l / ((stars + 2) * 5))) AS stat " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = $i AND " .
+                  "  stars = $t AND " .
+                  "  awake = $w AND " .
+                  "  stat = 'HP'; ";
+                error_log($s);
+                $q = $this->db->query($s);
+                $r = $q->fetchArray(SQLITE3_ASSOC);
+                if ($r){
+                    $this->hp = $r["stat"];
+                }
+                $s =
+                  "SELECT min + (((max - min) / ((stars + 2) * 5)) * ($l + $l / ((stars + 2) * 5))) AS stat " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = $i AND " .
+                  "  stars = $t AND " .
+                  "  awake = $w AND " .
+                  "  stat = 'ATK'; ";
+                $q = $this->db->query($s);
+                $r = $q->fetchArray(SQLITE3_ASSOC);
+                if ($r){
+                    $this->atk = $r["stat"];
+                }
+                $s =
+                  "SELECT min + (((max - min) / ((stars + 2) * 5)) * ($l + $l / ((stars + 2) * 5))) AS stat " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = $i AND " .
+                  "  stars = $t AND " .
+                  "  awake = $w AND " .
+                  "  stat = 'DEF'; ";
+                $q = $this->db->query($s);
+                $r = $q->fetchArray(SQLITE3_ASSOC);
+                if ($r){
+                    $this->def = $r["stat"];
+                }
+                $s =
+                  "SELECT min AS stat " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = $i AND " .
+                  "  stars = $t AND " .
+                  "  awake = $w AND " .
+                  "  stat = 'SPD'; ";
+                $q = $this->db->query($s);
+                $r = $q->fetchArray(SQLITE3_ASSOC);
+                if ($r){
+                    $this->spd = $r["stat"];
+                }
+                $s =
+                  "SELECT min AS stat " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = $i AND " .
+                  "  stars = $t AND " .
+                  "  awake = $w AND " .
+                  "  stat = 'CRIR'; ";
+                $q = $this->db->query($s);
+                $r = $q->fetchArray(SQLITE3_ASSOC);
+                if ($r){
+                    $this->crir = $r["stat"];
+                }
+                $s =
+                  "SELECT min AS stat " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = $i AND " .
+                  "  stars = $t AND " .
+                  "  awake = $w AND " .
+                  "  stat = 'CRID'; ";
+                $q = $this->db->query($s);
+                $r = $q->fetchArray(SQLITE3_ASSOC);
+                if ($r){
+                    $this->crid = $r["stat"];
+                }
+                $s =
+                  "SELECT min AS stat " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = $i AND " .
+                  "  stars = $t AND " .
+                  "  awake = $w AND " .
+                  "  stat = 'RES'; ";
+                $q = $this->db->query($s);
+                $r = $q->fetchArray(SQLITE3_ASSOC);
+                if ($r){
+                    $this->res = $r["stat"];
+                }
+                $s =
+                  "SELECT min AS stat " .
+                  "FROM monster_stat " .
+                  "WHERE " .
+                  "  monster = $i AND " .
+                  "  stars = $t AND " .
+                  "  awake = $w AND " .
+                  "  stat = 'ACC'; ";
+                $q = $this->db->query($s);
+                $r = $q->fetchArray(SQLITE3_ASSOC);
+                if ($r){
+                    $this->acc = $r["stat"];
+                }
             }
         }
     }

+ 1 - 1
application/page/frame/Frame.php

@@ -22,7 +22,7 @@
         /**
          * Constructor.
          *
-         * @param MySQL_connection $db Connection to the database.
+         * @param SQLite3 $db Connection to the database.
          */
         public function __construct($db){
             $this->db = $db;

+ 94 - 0
application/view/catalog.php

@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang='en'>
+    <head>
+        <meta content='text/html; charset=utf-8' http-equiv='content-type'/>
+        <meta charset='utf-8'/>
+        <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1'/>
+        <title><?=$page->title?></title>
+        <link rel='shortcut icon' href='<?=$page->favicon?>'/>
+        <!-- CSS files -->
+        <link rel='stylesheet' type='text/css' href='<?=$path["css"]?>ui.css'/>
+        <link rel='stylesheet' type='text/css' href='<?=$path["css"]?>catalog.css'/>
+        <!-- Script files -->
+        <script type="text/javascript" src="<?=$path["js"]?>ui.js"></script>
+        <script type="text/javascript" src="<?=$path["js"]?>catalog.js"></script>
+        <!-- Meta tags -->
+        <link rel='canonical' href='<?=$page->canonical?>'/>
+        <link rel='author' href='<?=$page->author?>'/>
+        <link rel='publisher' href='<?=$page->author?>'/>
+        <meta name='description' content='<?=$page->description?>'/>
+        <meta property='og:title' content='<?=$page->title?>'/>
+        <meta property='og:url' content='<?=$page->canonical?>'/>
+        <meta property='og:description' content='<?=$page->description?>'/>
+        <meta property='og:image' content='<?=$page->icon?>'/>
+        <meta property='og:site_name' content='<?=$page->name?>'/>
+        <meta property='og:type' content='website'/>
+        <meta property='og:locale' content='en'/>
+        <meta name='twitter:card' content='summary'/>
+        <meta name='twitter:title' content='<?=$page->title?>'/>
+        <meta name='twitter:description' content='<?=$page->description?>'/>
+        <meta name='twitter:image' content='<?=$page->icon?>'/>
+        <meta name='twitter:url' content='<?=$page->canonical?>'/>
+        <meta name='robots' content='index follow'/>
+    </head>
+    <body>
+<?php
+        include __DIR__ . "/inc/header.php";
+?>
+        <div id='content'>
+            <div class='section'>
+                <h3 class='section_title'>
+                    Monster catalog
+                </h3>
+                <!-- TODO Filters -->
+                <div id='filters'>
+                    Element:
+                    <select>
+                        <option value=''></option>
+                </div>
+                <div id='catalog'>
+<?php
+                    foreach ($page->entry as $mon){
+                        $star_src = $path["img"]["layout"] . "icon/star.png";
+                        if ($mon["awakeable"] == 0){
+                            $monster_src = $collection->monster->image_aw;
+                            $star_src = $path["img"]["layout"] . "icon/star_silver.png";
+                        }
+                        $unowned = "";
+                        if ($mon["owned"] == 0){
+                            $unowned = "unowned";
+                        }
+?>
+                        <div class='monster <?=$unowned?>'>
+                            <a href='javascript:selectMonster(<?=$mon["id"]?>);'>
+                                <span class='stars'>
+<?php
+                                    for ($i = 0; $i < $mon["stars"]; $i ++){
+?>
+                                        <img class='star' src='<?=$star_src?>'/>
+<?php
+                                    }
+?>
+                                </span>
+                                <img class='monster border_<?=$mon["element"]?>' src='<?=$mon["image"]?>'/>
+                            </a>
+                        </div>
+<?php
+                    }
+?>
+                </div> <!-- #collection -->
+            </div> <!-- .section -->
+        </div> <!-- .content -->
+        <div id='cover'></div>
+        <div id='viewer' class='section'>
+            <div id='viewer_wait'>
+                Loading...
+            </div>
+            <div id='viewer_info'>
+            </div>
+        </div> <!-- #new -->
+<?php
+        include __DIR__ . "/inc/footer.php";
+?>
+    </body>
+</html>

+ 273 - 0
application/view/frame/catalog.php

@@ -0,0 +1,273 @@
+<div id='monster'>
+    <a class='control_close' href='javascript:selectMonster(null);'>
+        <img src='<?=$path["img"]["layout"]?>control/close.svg' />
+    </a>
+    <input type='hidden' id='selected_id' value='<?=$page->id?>'/>
+    <table id='monster_header'>
+        <tr>
+            <td>
+                <img id='monster_img' class='monster_img border_<?=$page->element?>' src='<?=$page->img?>'/>
+                <img id='monster_img_aw' class='monster_img border_<?=$page->element?>' src='<?=$page->img_aw?>'/>
+            <td/>
+            <td>
+                <h3 id='section-title'>
+                    <span id='name'><?=$page->element?> <?=$page->name?></span>&nbsp;&nbsp;&nbsp;<span class='color_<?=$page->element?>'><?=$page->name_aw?></span>
+                </h3>
+                <div id='monster_stars'>
+<?php
+                    for ($i = 1; $i <= $page->stars; $i++){
+?>
+                        <img class='monster_star' src='<?=($path["img"]["layout"] . "icon/star.png")?>'/>
+<?php
+                    }
+?>
+                </div> <!-- #monster_stars -->
+            </td>
+        </tr>
+    </table>
+    <table id='monster_skills'>
+        <tr>
+<?php
+            foreach ($page->skill as $skill){
+                $skill_awaken = "";
+                $skill_leader = "";
+                if ($skill->awaken == 1){
+                    $skill_awaken = "skill_awaken";
+                }
+                if ($skill->leader == 1){
+                    $skill_leader = 'skill_leader';
+                }
+?>
+                <td>
+                    <span class='skill_image'>
+                        <img class='skill_image <?=$skill_awaken?> <?=$skill_leader?>' src='<?=$skill->img?>' alt=''/>
+                        <span class='skill_tooltip'>
+                            <img class='skill_tooltip_image <?=$skill_awaken?> <?=$skill_leader?>' src='<?=$skill->img?>' alt=''/>
+                            <span class='skill_tooltip_title'><?=$skill->name?></span>
+                            <br/>
+                            <?=$skill->desc?>
+                        </span>
+                    </span>
+                    <span class='skill_name <?=$skill_awaken?> <?=$skill_leader?>'><?=$skill->name?></span>
+                </td>
+<?php
+            }
+?>
+        </tr>
+    </table>
+    <table id='monster_stats'>
+        <tr id='stats_header_names'>
+            <th>
+                Stars
+            </th>
+            <th colspan='2'>
+                Health
+            </th>
+            <th colspan='2'>
+                Attack
+            </th>
+            <th colspan='2'>
+                Defense
+            </th>
+            <th>
+                Critical damage
+            </th>
+            <th>
+                Critical rate
+            </th>
+            <th>
+                Resistance
+            </th>
+            <th>
+                Accuracy
+            </th>
+        </tr>
+        <tr id='stats_header_ranges'>
+            <th>
+            </th>
+            <th>
+                Lv. 1
+            </th>
+            <th>
+                Lv. MAX
+            </th>
+            <th>
+                Lv. 1
+            </th>
+            <th>
+                Lv. MAX
+            </th>
+            <th>
+                Lv. 1
+            </th>
+            <th>
+                Lv. MAX
+            </th>
+            <th>
+            </th>
+            <th>
+            </th>
+            <th>
+            </th>
+            <th>
+            </th>
+        </tr>
+<?php
+        $w = 0;
+        $even = 0;
+        foreach ($page->stat as $stat){
+?>
+            <tr>
+                <td class='even<?=(($even ++) % 2)?>'>
+<?php
+                    for ($i = 1; $i <= $stat["STARS"]; $i ++){
+?>
+                        <img class='star' src='<?=($path["img"]["layout"] . "icon/star.png")?>'/>
+<?php
+                    }
+?>
+                    <?=$sts?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["HP"]["MIN"]?></span>
+<?php
+                    if (isset($page->stat_aw[$w]["HP"]["MIN"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["HP"]["MIN"]?></span>
+<?php
+                    }
+?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["HP"]["MAX"]?></span>
+<?php
+                    if (isset($page->stat_aw[$w]["HP"]["MAX"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["HP"]["MAX"]?></span>
+<?php
+                    }
+?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["ATK"]["MIN"]?></span>
+<?php
+                    if (isset($page->stat_aw["ATK"]["MIN"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["ATK"]["MIN"]?></span>
+<?php
+                    }
+?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["ATK"]["MAX"]?></span>
+<?php
+                    if (isset($page->stat_aw["ATK"]["MAX"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["ATK"]["MAX"]?></span>
+<?php
+                    }
+?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["DEF"]["MIN"]?></span>
+<?php
+                    if (isset($page->stat_aw[$w]["DEF"]["MIN"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["DEF"]["MIN"]?></span>
+<?php
+                    }
+?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["DEF"]["MAX"]?></span>
+<?php
+                    if (isset($page->stat_aw[$w]["DEF"]["MAX"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["DEF"]["MAX"]?></span>
+<?php
+                    }
+?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["CRID"]?>%</span>
+<?php
+                    if (isset($page->stat_aw[$w]["CRID"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["CRID"]?>%</span>
+<?php
+                    }
+?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["CRIR"]?>%</span>
+<?php
+                    if (isset($page->stat_aw[$w]["CRIR"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["CRIR"]?>%</span>
+<?php
+                    }
+?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["RES"]?>%</span>
+<?php
+                    if (isset($page->stat_aw[$w]["RES"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["RES"]?>%</span>
+<?php
+                    }
+?>
+                </td>
+                <td class='even<?=(($even ++) % 2)?>'>
+                    <span class='stat'><?=$stat["ACC"]?>%</span>
+<?php
+                    if (isset($page->stat_aw[$w]["ACC"])){
+?>
+                        <span class='stat awake'><?=$page->stat_aw[$w]["ACC"]?>%</span>
+<?php
+                    }
+?>
+                </td>
+            </tr>
+<?php
+            $w ++;
+        }
+?>
+    </table> <!-- #monster_stats -->
+<?php
+    if (count($page->location) > 0){
+        $location = "Obtainable in ";
+        foreach ($page->location as $loc){
+            $location = $location . $loc . ", ";
+        }
+        $location = rtrim($location, ", ");
+?>
+        <div id='monster_location'>
+            <?=$location?>
+        </div>
+<?php
+    }
+?>
+<?php
+    if (count($page->essence) > 0){
+?>
+        <div id='monster_awake'>
+            <table>
+                <tr>
+<?php
+                    foreach ($page->essence as $e){
+?>
+                        <td class='essence'>
+                            <img src='<?=$e["IMAGE"]?>' class='border_<?=$e["ELEMENT"]?>'/>
+                            <span>x<?=$e["NUM"]?></span>
+                        </td>
+<?php
+                    }
+?>
+                </tr>
+            </table>
+        </div>
+<?php
+    }
+?>
+</div> <!-- #monster -->

+ 78 - 3
application/view/frame/portrait.php

@@ -4,7 +4,16 @@
     <h4 id='portrait_title' class='color_<?=$page->element?>'>
         <?=$page->cur_name?>
     </h4>
-    <h5 id='portrait_details'>
+    <div id='portrait_default_stars'>
+<?php
+        for ($i = 0; $i < $page->collection->monster->stars; $i++){
+?>
+            <img class='portrait_star' src='<?=($path["img"]["layout"] . "icon/star.png")?>'/>
+<?php
+        }
+?>
+    </div> <!-- #default_stars -->
+    <div id='portrait_current_stars'>
 <?php
         if ($page->awaken == 1){
             $star_src = $path["img"]["layout"] . "icon/star_aw.png";
@@ -18,11 +27,77 @@
                 $translucent = "portrait_star_translucent";
             }
 ?>
-            <img id='portratit_star_1' class='portrait_star <?=$translucent?>' src='<?=$star_src?>'/>
+            <img class='portrait_star <?=$translucent?>' src='<?=$star_src?>'/>
 <?php
         }
 ?>
-    </h5>
+    </div> <!-- #current_stars -->
+    <table id='portrait_stats'>
+        <tr>
+            <td class='name'>Health</td>
+            <td class='value'><?=$page->hp?></td>
+            <td class='name'>Speed</td>
+            <td class='value'><?=$page->spd?></td>
+        </tr>
+        <tr>
+            <td class='name'>Attack</td>
+            <td class='value'><?=$page->atk?></td>
+            <td class='name'>Defense</td>
+            <td class='value'><?=$page->def?></td>
+        </tr>
+        <tr>
+            <td class='name'>Critical damage</td>
+            <td class='value'><?=$page->crid?>%</td>
+            <td class='name'>Critical rate</td>
+            <td class='value'><?=$page->crir?>%</td>
+        </tr>
+        <tr>
+            <td class='name'>Resistance</td>
+            <td class='value'><?=$page->res?>%</td>
+            <td class='name'>Accuracy</td>
+            <td class='value'><?=$page->acc?>%</td>
+        </tr>
+    </table> <!-- #portrait_skills -->
+    <table id='portrait_skills'>
+        <tr>
+<?php
+            foreach ($page->skill as $s){
+                if (isset($s->upgrade) && $page->awaken == 1){
+                    $skill = $s->upgrade;
+                }
+                else{
+                    $skill = $s;
+                }
+                $skill_awaken = "";
+                $skill_leader = "";
+                if ($page->awaken == 1 && $skill->awaken == 1){
+                    $skill_awaken = "skill_awaken";
+                }
+                elseif ($page->awaken == 0 && $skill->awaken == 1){
+                    $skill_awaken = "skill_disabled";
+                }
+                if ($skill->leader == 1){
+                    $skill_leader = 'skill_leader';
+                }
+?>
+                <td>
+                    <span class='skill_image'>
+                        <img class='skill_image <?=$skill_awaken?> <?=$skill_leader?>' src='<?=$skill->img?>' alt=''/>
+                        <span class='skill_tooltip'>
+                            <img class='skill_tooltip_image <?=$skill_awaken?> <?=$skill_leader?>' src='<?=$skill->img?>' alt=''/>
+                            <span class='skill_tooltip_title'><?=$skill->name?></span>
+                            <br/>
+                            <?=$skill->desc?>
+                        </span>
+                    </span>
+                    <span class='skill_name <?=$skill_awaken?> <?=$skill_leader?>'><?=$skill->name?></span>
+                </td>
+<?php
+            }
+?>
+        </tr>
+    </table>
+    <hr id='portrait_separator'>
     <table id='portrait_table'>
         <tr>
             <td class='left'>

+ 3 - 0
application/view/inc/header.php

@@ -12,6 +12,9 @@
         <a href='<?=$root?>'>
             Home
         </a>
+        <a href='<?=$root?>catalog'/>
+            Catalog
+        </a>
         <a href='<?=$root?>collection'/>
             Collection
         </a>

+ 766 - 0
install

@@ -0,0 +1,766 @@
+#!/usr/bin/python3
+
+
+
+
+
+import urllib3
+import sys
+import os
+import requests
+import urllib.request
+import sqlite3
+import wget
+
+
+
+
+
+"""
+Toggles.
+"""
+OPT_CREATE_DB = True
+OPT_DOWNLOAD = True
+OPT_SKILLS = True
+OPT_ESSENCES = True
+OPT_BASE = True
+
+
+
+
+
+"""
+Initializes the database file and creates all the tables.
+
+:param name: The path to the sqlite database.
+:returns: Connection to the database.
+:raises IntegrityError: The queryes couldn't bre executed.
+:raises IOError: The sqlite file couldn't be created.
+"""
+def createDatabase(name):
+    global OPT_CREATE_DB
+    print('Configuring database...')
+    try:
+        db = sqlite3.connect(name)
+        if OPT_CREATE_DB == False:
+            return db
+        cursor = db.cursor()
+        cursor.execute('''
+            CREATE TABLE IF NOT EXISTS monster(
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            base INTEGER,
+            stars INT,
+            element TEXT,
+            name TEXT,
+            name_aw TEXT,
+            type TEXT,
+            awakeable INT,
+            img TEXT,
+            img_aw TEXT
+            );
+        ''')
+        cursor.execute('''
+            CREATE TABLE IF NOT EXISTS monster_base(
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            name TEXT
+            );
+        ''')
+        cursor.execute('''
+            CREATE TABLE IF NOT EXISTS monster_skill(
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            monster INT,
+            idx INT,
+            name TEXT,
+            desc TEXT,
+            passive INT,
+            awaken INT,
+            upgrade INT,
+            leader INT,
+            img TEXT,
+            cooldown INT
+            );
+        ''')
+        cursor.execute('''
+            CREATE TABLE IF NOT EXISTS monster_stat(
+            monster INTEGER,
+            stars INT,
+            awake INT,
+            stat TEXT,
+            min INT,
+            max INT
+            );
+        ''')
+        cursor.execute('''
+            CREATE TABLE IF NOT EXISTS monster_essence(
+            monster INT,
+            element TEXT,
+            grade TEXT,
+            num INT
+            );
+        ''')
+        cursor.execute('''
+            CREATE TABLE IF NOT EXISTS monster_location(
+            monster INT,
+            location TEXT
+            );
+        ''')
+        cursor.execute('''
+            CREATE TABLE IF NOT EXISTS monster_collection (
+            id INTEGER PRIMARY KEY AUTOINCREMENT,
+            monster INT,
+            stars   INT,
+            level   INT,
+            awaken  INT
+            );
+        ''')
+        db.commit()
+        cursor.close()
+        return db
+    except sqlite3.IntegrityError as e:
+        print("Error executing statement: " + str(e))
+        raise
+    except IOError as e:
+        print("I/O Error creating database " + name + ": " + str(e))
+        raise
+
+
+
+
+
+"""
+Inserts a row into the database.
+
+:param db: Connection to the database.
+:param table: Name of the table to insert into.
+:param values: List of values to insert.
+:raises IntegrityError: The insert query was unsuccesfull.
+"""
+def insert(db, table, values):
+    cursor = db.cursor()
+    placeholders = ''
+    for x in range(0, len(values)):
+        placeholders = placeholders + '?, '
+    placeholders = placeholders[:len(placeholders) - 2]
+    query = 'INSERT INTO ' + table + ' VALUES (' + placeholders + ')'
+    try:
+        cursor.execute(query, values)
+    except sqlite3.IntegrityError as e:
+        print('Error Inserting into ' + table + ' with values (' + str(values) + '): ' + str(e))
+        raise
+    cursor.close;
+
+
+
+
+
+def download(url, target):
+    if OPT_DOWNLOAD == False:
+        return True
+    try:
+        urllib.request.urlretrieve(url, target)
+        return True
+    except:
+        return False
+
+
+def getDetails(page):
+    details = []
+    name = ''
+    name_aw = ''
+    img = ''
+    img_aw = ''
+    awakeable = 0
+    mtype = ''
+    stars = 1
+    if ('alt="Purple Star"' in page):
+        if ('alt="Gold Star"' in page):
+            awakeable = 1 # Awakeable (Gold)
+        else:
+            awakeable = 2 # Only awaken (Purple)
+    else:
+        awakeable = 0 # No awakeable (Silver)
+
+    try:
+        stars = int(page[page.index('x', page.index('_Star.png"')) + 1:page.index(')', page.index('x', page.index('_Star.png"')))])
+    except:
+        stars = 1
+        pass
+
+    header = page[page.index('>') + 1:page.index('<', page.index('>'))]
+    if ') - ' in header:
+        name = header[:header.index(' (')]
+        name_aw = header[header.index(') - ') + 4:]
+    else:
+        if ' (' in header:
+            name = header[:header.index(' (')]
+        else:
+            name = header
+
+    imgs = page[page.index('<div id="images">'):page.index('</div>', page.index('<div id="images">'))]
+    if 'data-src="' in imgs:
+        im = imgs[imgs.index('data-src="') + 10:imgs.index('"', imgs.index('data-src="') + 11)]
+        imgs = imgs[imgs.index('"', imgs.index('data-src="') + 11):]
+    else:
+        im = imgs[imgs.index('<img src="') + 10:imgs.index('"', imgs.index('<img src="') + 11)]
+        imgs = imgs[imgs.index('"', imgs.index('<img src="') + 11):]
+
+    if 'data-src="' in imgs:
+        img = im
+        img_aw = imgs[imgs.index('data-src="') + 10:imgs.index('"', imgs.index('data-src="') + 11)]
+    elif '<img src="' in imgs:
+        img = im
+        img_aw = imgs[imgs.index('<img src="') + 10:imgs.index('"', imgs.index('<img src="') + 11)]
+    else:
+        img = im
+        img_aw = ''
+
+    if awakeable == 2 and name_aw == '':
+        name_aw = name
+        name = ''
+    if awakeable == 2 and img_aw == '':
+        img_aw = img
+        img = ''
+
+    mtype = page[page.index('<b>Type:</b>') + 13:page.index('\n', page.index('<b>Type:</b>'))]
+    details = [name, name_aw, img, img_aw, awakeable, mtype, stars]
+    return details
+
+
+
+
+
+def getObtainable(page):
+    obtainable = []
+    while 'title=' in page:
+        obtainable.append(page[page.index('title="') + 7:page.index('"', page.index('title="') + 7)])
+        page = page[page.index('"', page.index('title="') + 7):]
+    return obtainable
+
+
+
+
+
+def getEssences(page):
+    essences = []
+    while '\n' in page:
+        line = page[:page.index('\n')]
+        if '<span class="essence-number">' in line:
+            num = line[line.index('<span class="essence-number">') + 29:line.index('</span>', line.index('<span class="essence-number">'))]
+            desc = line[line.index('alt="') + 5:line.index('"', line.index('alt="') + 6)].split(" ")
+            elm = desc[2]
+            if elm == 'Darkness':
+                elm = 'Dark'
+            grade = desc[3]
+            grade = grade[1:len(grade) - 1]
+            essences.append([num, elm, grade])
+        page = page[page.index('\n') + 1:]
+    return essences
+
+
+
+
+
+def getSkills(page):
+    skills = []
+    while '<td style="text-align' in page:
+        passive = 0
+        awaken = 0
+        upgrade = 0
+        leader = 0
+        image = ''
+        name = ''
+        description = ''
+        cooldown = 0
+
+        name = page[page.index('alt="') + 5:page.index('"', page.index('alt="') + 6)]
+        if ' (Passive)' in name:
+            passive = 1
+            name = name[:name.index(' (Passive)')]
+        if 'Strengthened ' in name:
+            upgrade = 1
+            awaken = 1
+            name = name[13:]
+        if len(name) > 12 and name[:13] == 'Leader Skill ':
+            leader = 1
+            name = 'LEADER SKILL'
+        if leader == 1:
+            subawaken = page[:page.index(':</b> ')]
+        else:
+            subawaken = page[:page.index('</b>: ')]
+        if '(Awakened)' in subawaken:
+            awaken = 1
+        image = page[page.index('data-src="') + 10:page.index('"', page.index('data-src="') + 11)]
+        if leader == 1:
+            description = page[page.index(':</b> ') + 6:page.index('\n', page.index(':</b> '))]
+        else:
+            description = page[page.index('</b>: ') + 6:page.index('\n', page.index('</b>: '))]
+        if ' (Reusable in ' in description:
+            try:
+                cooldown = int(description[description.index(' (Reusable in ') + 14:description.index(' turns)', description.index(' (Reusable in '))])
+                description = description[:description.index(' (Reusable in ')]
+            except:
+                pass
+        if ' [Automatic Effect]' in description:
+            description = description[:description.index(' [Automatic Effect]')]
+
+        skills.append([name, description, passive, awaken, upgrade, leader, image, cooldown])
+        page = page[page.index('</tr>', page.index('<td style="text-align')) + 10:]
+    return skills
+
+
+
+
+
+def getStats(page, awakeable):
+    stats = []
+    ahp = []
+    aatk = []
+    adef = []
+    wahp = []
+    waatk = []
+    wadef = []
+    spd = 0
+    crir = 0
+    crid = 0
+    res = 0
+    acc = 0
+    wspd = 0
+    wcrir = 0
+    wcrid = 0
+    wres = 0
+    wacc = 0
+
+    thp = page[page.index('<b>HP</b>'):page.index('</tr>', page.index('<b>HP</b>'))]
+    while '<td class="monstercell">' in thp:
+        n = thp[thp.index('<td class="monstercell">') + 24:thp.index('\n', thp.index('<td class="monstercell">'))]
+        try:
+            ahp.append(int(thp[thp.index('<td class="monstercell">') + 24:thp.index('\n', thp.index('<td class="monstercell">'))]))
+        except Exception as e:
+            pass
+        thp = thp[thp.index('<td class="monstercell">') + 1:]
+    tatk = page[page.index('<b>ATK</b>'):page.index('</tr>', page.index('<b>ATK</b>'))]
+    while '<td class="monstercell">' in tatk:
+        n = tatk[tatk.index('<td class="monstercell">') + 24:tatk.index('\n', tatk.index('<td class="monstercell">'))]
+        try:
+            aatk.append(int(tatk[tatk.index('<td class="monstercell">') + 24:tatk.index('\n', tatk.index('<td class="monstercell">'))]))
+        except Exception as e:
+            pass
+        tatk = tatk[tatk.index('<td class="monstercell">') + 1:]
+    tdef = page[page.index('<b>ATK</b>'):page.index('</tr>', page.index('<b>ATK</b>'))]
+    while '<td class="monstercell">' in tdef:
+        n = tdef[tdef.index('<td class="monstercell">') + 24:tdef.index('\n', tdef.index('<td class="monstercell">'))]
+        try:
+            adef.append(int(tdef[tdef.index('<td class="monstercell">') + 24:tdef.index('\n', tdef.index('<td class="monstercell">'))]))
+        except Exception as e:
+            pass
+        tdef = tdef[tdef.index('<td class="monstercell">') + 1:]
+    # STATS (awakened)
+    if '#246BB2; width:10%;">Awakened' in page:
+        mpag = page[page.index('#246BB2; width:10%;">Awakened'):]
+        thp = page[page.index('<b>HP</b>'):page.index('</tr>', page.index('<b>HP</b>'))]
+        while '<td class="monstercell">' in thp:
+            n = thp[thp.index('<td class="monstercell">') + 24:thp.index('\n', thp.index('<td class="monstercell">'))]
+            try:
+                wahp.append(int(thp[thp.index('<td class="monstercell">') + 24:thp.index('\n', thp.index('<td class="monstercell">'))]))
+            except Exception as e:
+                pass
+            thp = thp[thp.index('<td class="monstercell">') + 1:]
+        tatk = page[page.index('<b>ATK</b>'):page.index('</tr>', page.index('<b>ATK</b>'))]
+        while '<td class="monstercell">' in tatk:
+            n = tatk[tatk.index('<td class="monstercell">') + 24:tatk.index('\n', tatk.index('<td class="monstercell">'))]
+            try:
+                waatk.append(int(tatk[tatk.index('<td class="monstercell">') + 24:tatk.index('\n', tatk.index('<td class="monstercell">'))]))
+            except Exception as e:
+                pass
+            tatk = tatk[tatk.index('<td class="monstercell">') + 1:]
+        tdef = page[page.index('<b>ATK</b>'):page.index('</tr>', page.index('<b>ATK</b>'))]
+        while '<td class="monstercell">' in tdef:
+            n = tdef[tdef.index('<td class="monstercell">') + 24:tdef.index('\n', tdef.index('<td class="monstercell">'))]
+            try:
+                wadef.append(int(tdef[tdef.index('<td class="monstercell">') + 24:tdef.index('\n', tdef.index('<td class="monstercell">'))]))
+            except Exception as e:
+                pass
+            tdef = tdef[tdef.index('<td class="monstercell">') + 1:]
+        mpag = page[page.index('Static Attributes'):]
+    # STATIC STATS
+    if awakeable == 1: # For awakeable monsters, skip one line
+        page = page[page.index('\n', page.index('style="width: 9%;">')):]
+    spd = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+    page = page[page.index('\n', page.index('style="width: 9%;">')):]
+    crir = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+    page = page[page.index('\n', page.index('style="width: 9%;">')):]
+    crid = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+    page = page[page.index('\n', page.index('style="width: 9%;">')):]
+    res = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+    page = page[page.index('\n', page.index('style="width: 9%;">')):]
+    acc = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+    page = page[page.index('\n', page.index('style="width: 9%;">')):]
+    # Remove percent symbols and cast
+    spd = int(spd.replace('<b>', '').replace('</b>', ''))
+    crir = int(crir[:len(crir) - 1].replace('<b>', '').replace('</b>', ''))
+    crid = int(crid[:len(crid) - 1].replace('<b>', '').replace('</b>', ''))
+    res = int(res[:len(res) - 1].replace('<b>', '').replace('</b>', ''))
+    acc = int(acc[:len(acc) - 1].replace('<b>', '').replace('</b>', ''))
+    # Static stats, awakened
+    if 'style="width: 9%;"><b>Awakened</b>' in page:
+        page = page[page.index('style="width: 9%;"><b>Awakened</b>') + 10:]
+        wspd = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+        page = page[page.index('\n', page.index('style="width: 9%;">')):]
+        wcrir = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+        page = page[page.index('\n', page.index('style="width: 9%;">')):]
+        wcrid = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+        page = page[page.index('\n', page.index('style="width: 9%;">')):]
+        wres = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+        page = page[page.index('\n', page.index('style="width: 9%;">')):]
+        wacc = page[page.index('style="width: 9%;">') + 19:page.index('\n', page.index('style="width: 9%;">'))]
+        page = page[page.index('\n', page.index('style="width: 9%;">')):]
+        # Remove percent symbols and cast
+        wspd = int(wspd.replace('<b>', '').replace('</b>', ''))
+        wcrir = int(wcrir[:len(wcrir) - 1].replace('<b>', '').replace('</b>', ''))
+        wcrid = int(wcrid[:len(wcrid) - 1].replace('<b>', '').replace('</b>', ''))
+        wres = int(wres[:len(wres) - 1].replace('<b>', '').replace('</b>', ''))
+        wacc = int(wacc[:len(wacc) - 1].replace('<b>', '').replace('</b>', ''))
+    else:
+        wspd = None
+        wcrir = None
+        wcrid = None
+        wres = None
+        wacc = None
+    stats = [ahp, aatk, adef, wahp, waatk, wadef, spd, crir, crid, res, acc, wspd, wcrir, wcrid, wres, wacc]
+    return stats
+
+
+
+
+
+"""
+Parses the url with info abount one monster, extracts the info and saves it to
+the database.
+
+:param db: Connection to the database.
+:param url: URL with the info to parse.
+:param url: Element of the monster.
+:raises Exception: The monster data couldn't be saved.
+"""
+def parseMonster(db, url, element):
+    http = urllib3.PoolManager()
+    try:
+        cursor = db.cursor()
+
+        name = '';
+        name_aw = '';
+        img = '';
+        img_aw = '';
+        awakeable = 0;
+        mtype = ''
+        stars = 0
+        obtainable = []
+        essences = []
+        skills = []
+        ahp = []
+        aatk = []
+        adef = []
+        wahp = []
+        waatk = []
+        wadef = []
+        spd = 0
+        crir = 0
+        crid = 0
+        res = 0
+        acc = 0
+        wspd = 0
+        wcrir = 0
+        wcrid = 0
+        wres = 0
+        wacc = 0
+
+        # DEBUG - GOLD
+        #url = 'http://summonerswar.wikia.com/wiki/Fairy_(Water)_-_Elucia'
+        # DEBUG - SILVER
+        #url = 'http://summonerswar.wikia.com/wiki/Forest_Keeper_(Water)'
+        # DEBUG - PURPLE
+        #url = 'http://summonerswar.wikia.com/wiki/Rainbowmon'
+        # DEBUG - Upgradeable skill
+        #url = 'http://summonerswar.wikia.com/wiki/Paladin_(Wind)_-_Louise'
+
+        mpage = http.request('GET', url).data.decode('utf-8');
+
+        # Basic details
+        detailsPage = mpage[mpage.index('<h1 class="page-header__title">'):mpage.index('</tr>', mpage.index('<b>Type:</b>', mpage.index('<h1 class="page-header__title">')))]
+        details = getDetails(detailsPage)
+        name = details[0]
+        name_aw = details[1]
+        img = details[2]
+        img_aw = details[3]
+        awakeable = details[4]
+        mtype = details[5]
+        stars = details[6]
+
+        # Regions where the monster can be obtained
+        obtainablePage = mpage[mpage.index('<b>Obtainable from:</b>'):mpage.index('</td>', mpage.index('<b>Obtainable from:</b>'))]
+        obtainable = getObtainable(obtainablePage)
+
+        # Essences required to awaken the monster
+        if awakeable == 1:
+            essencesPage = mpage[mpage.index('<div id="essences">'):mpage.index('</table>', mpage.index('<div id="essences">'))]
+            essences = getEssences(essencesPage)
+
+        # Skills
+        skillsPage = mpage[mpage.index('<table', mpage.index('<table', mpage.index('<div id="skills">') + 1) + 1):mpage.index('</table>', mpage.index('<table', mpage.index('<table', mpage.index('<div id="skills">') + 1) + 1))]
+        skills = getSkills(skillsPage)
+
+        # Stats
+        statsPage = mpage[mpage.index('Evolution Stats'):]
+        stats = getStats(statsPage, awakeable)
+        ahp = stats[0]
+        aatk = stats[1]
+        adef = stats[2]
+        wahp = stats[3]
+        waatk = stats[4]
+        wadef = stats[5]
+        spd = stats[6]
+        crir = stats[7]
+        crid = stats[8]
+        res = stats[9]
+        acc = stats[10]
+        wspd = stats[11]
+        wcrir = stats[12]
+        wcrid = stats[13]
+        wres = stats[14]
+        wacc = stats[15]
+
+        # Save monster
+        strname = element  + ' ' + name + " - " + name_aw
+        if awakeable == 0:
+            strname = element  + ' ' + name
+        elif awakeable == 2:
+            strname = name_aw
+        print ("    Saving monster: " + strname + "...")
+        if img != '':
+            if download(img, 'public/img/content/monster/' + str(id["monster"]).zfill(3) + '.png'):
+                img = str(id["monster"]).zfill(3) + '.png'
+            else:
+                print("Error downloading image for monster " + str(id["monster"]))
+        if img != '':
+            if download(img_aw, 'public/img/content/monster/' + str(id["monster"]).zfill(3) + '_aw.png'):
+                img_aw = str(id["monster"]).zfill(3) + '_aw.png'
+            else:
+                print("Error downloading image for awakened monster " + str(id["monster"]))
+        insert(db, 'monster', (id["monster"], None, stars, element, name, name_aw, mtype, awakeable, img, img_aw))
+
+        # Save locations
+        for o in obtainable:
+            insert(db, 'monster_location', (id["monster"], o))
+        for e in essences:
+            insert(db, 'monster_essence', (id["monster"], e[1], e[2], e[0]))
+
+        # Save skills
+        idx = 0
+        for s in skills:
+            #                0    1    2       3      4       5      6   7
+            # id monster idx name desc passive awaken upgrade leader img cooldown
+            if download(s[6], 'public/img/content/skill/' + str(id["monster_skill"]).zfill(4) + '.png'):
+                s[6] = str(id["monster_skill"]).zfill(4) + '.png'
+            else:
+                s[6] = ''
+            if s[4] == 1:
+                s[4] = id["monster_skill"] - 1
+            insert(db, 'monster_skill', (id["monster_skill"], id["monster"], idx, s[0], s[1], s[2], s[3], None, s[5], s[6], s[7]))
+            idx = idx + 1
+            id["monster_skill"] = id["monster_skill"] + 1
+
+        # Save stats
+        i = 0
+        s = stars
+        while i < len(ahp):
+            if i + 1 < len(ahp):
+                insert(db, 'monster_stat', (id["monster"], s, 0, 'HP', ahp[i], ahp[i + 1]))
+                insert(db, 'monster_stat', (id["monster"], s, 0, 'ATK', aatk[i], aatk[i + 1]))
+                insert(db, 'monster_stat', (id["monster"], s, 0, 'DEF', aatk[i], aatk[i + 1]))
+                insert(db, 'monster_stat', (id["monster"], s, 0, 'SPD', spd, spd))
+                insert(db, 'monster_stat', (id["monster"], s, 0, 'CRIR', crir, crir))
+                insert(db, 'monster_stat', (id["monster"], s, 0, 'CRID', crid, crid))
+                insert(db, 'monster_stat', (id["monster"], s, 0, 'RES', res, res))
+                insert(db, 'monster_stat', (id["monster"], s, 0, 'ACC', acc, acc))
+            if i + 1 < len(wahp):
+                insert(db, 'monster_stat', (id["monster"], s, 1, 'HP', wahp[i], wahp[i + 1]))
+                insert(db, 'monster_stat', (id["monster"], s, 1, 'ATK', waatk[i], waatk[i + 1]))
+                insert(db, 'monster_stat', (id["monster"], s, 1, 'DEF', waatk[i], waatk[i + 1]))
+                insert(db, 'monster_stat', (id["monster"], s, 1, 'SPD', wspd, wspd))
+                insert(db, 'monster_stat', (id["monster"], s, 1, 'CRIR', wcrir, wcrir))
+                insert(db, 'monster_stat', (id["monster"], s, 1, 'CRID', wcrid, wcrid))
+                insert(db, 'monster_stat', (id["monster"], s, 1, 'RES', wres, wres))
+                insert(db, 'monster_stat', (id["monster"], s, 1, 'ACC', wacc, wacc))
+            s = s + 1
+            i = i + 2
+
+        # Save and proceed
+        db.commit()
+        id["monster"] = id["monster"] + 1
+
+    except IOError as e:
+        db.rollback()
+        print('Error saving monster with id ' + str(id['monster']) + ': ' + str(e))
+        print('  Current data:')
+        print('    Name:          ' + name)
+        print('    Name (awaken): ' + name_aw)
+        print('    Element:       ' + element)
+        print('    Type:          ' + mtype)
+        print('    Awakeable:     ' + str(awakeable))
+        print('    Obtainable:')
+        for o in obtainable:
+            print('      ' + o)
+        print('    Essences:')
+        for e in essences:
+            print('      ' + e[0] + ' x ' + e[2] + ' ' + e[1] + ' essences')
+        print('    Skills:')
+        for s in skills:
+            print('      ' + s[1])
+        pass
+        #sys.exit("DEBUG EXIT")
+
+
+
+def makeDirs():
+    dirs = ['public/img/content/monster/', 'public/img/content/skill/', 'public/img/content/essence/']
+    for dir in dirs:
+        try:
+            if os.path.isdir(dir) == False:
+                os.makedirs(dir)
+        except IOError as e:
+            print('Unable to create directory: ' + dir);
+            raise
+
+
+
+"""
+Create the entries for the table monster_base, reading data from the table
+monster.
+
+:param db: Connection to the database.
+:raise IntegrityError: One or more bases could not be created.
+"""
+def createBases(db):
+    cursor = db.cursor()
+    cursor_base = db.cursor()
+    try:
+        cursor.execute('SELECT DISTINCT name FROM monster;')
+
+        for row in cursor:
+            try:
+                cursor_base.execute('INSERT INTO monster_base VALUES (?, ?);', (id["monster_base"], row[0]));
+                cursor.execute('UPDATE monster SET base = ? WHERE name = ?;', (id["monster_base"], row[0]));
+            except sqlite3.IntegrityError as e:
+                print("Error creating monster bases: " + str(e))
+                raise
+            id["monster_base"] = id["monster_base"] + 1;
+        db.commit()
+        cursor_base.close();
+    except sqlite3.IntegrityError as e:
+        print("Error creating monster bases: " + str(e))
+        raise
+
+
+
+
+
+"""
+Downloads the essence icons.
+
+"""
+def getEssenceIcons():
+    url = 'http://summonerswar.wikia.com/wiki/Essences'
+    http = urllib3.PoolManager()
+    page = http.request('GET', url).data.decode('utf-8')
+    page = page[page.index('id="List_of_Essences"'):page.index('id="Essence_fusion"')]
+    while 'data-src="' in page:
+        name = page[page.index('data-image-name="') + 7:page.index('"', page.index('data-image-name="') + 17)].split(" ")
+        element = name[2]
+        if element == 'Darkness':
+            element = 'Dark'
+        grade = name[3][1:len(name)]
+        file = page[page.index('data-src="') + 10:page.index('"', page.index('data-src="') + 11)]
+        if download(file, 'public/img/content/essence/' + element + '_' + grade + '.png') == False:
+            print("Unable to save image for essence: " + element + " (" + grade + ")");
+        page = page[page.index('data-src="') + 10:]
+
+
+
+
+
+def setBases(db):
+    cursor = db.cursor()
+    cursor_base = db.cursor()
+    cursor.execute('SELECT DISTINCT name FROM monster;')
+    for row in cursor:
+        cursor_base.execute('INSERT INTO monster_base VALUES (?, ?);', (id["monster_base"], row[0]));
+        cursor_base.execute('UPDATE monster SET base = ? WHERE name = ?;', (id["monster_base"], row[0]));
+        id["monster_base"] = id["monster_base"] + 1;
+    db.commit()
+    cursor_base.close();
+    cursor.close()
+
+
+
+
+
+"""
+Starts scrapping th page.
+
+:param db: Connection to the database.
+:param baseUrl: URL of the list of monsters of any element, where the element
+                name has been replaced by  '#'.
+:param elements: Array with all five elements.
+:raise IndexError: The page doesn't match the expected format.
+"""
+def parse(db, baseUrl, elements):
+    print('Fetching monster data...')
+    http = urllib3.PoolManager()
+    makeDirs()
+    for elm in elements:
+        url = baseUrl.replace('#', elm)
+        try:
+            mlist = http.request('GET', url).data.decode('utf-8')
+            mlist = mlist[mlist.index('</th></tr>'):]
+            element = url[url.rfind('/') + 1:url.rfind('_')]
+            while '</td></tr>' in mlist:
+                murl = 'http://summonerswar.wikia.com' + mlist[mlist.index('a href="') + 8:mlist.index('"', mlist.index('a href="') + 8)]
+                parseMonster(db, murl, elm)
+                mlist = mlist[mlist.index('</td></tr>') + 1:]
+        except IndexError as e:
+            print("Error processing " + elm + " monster list page: " + str(e))
+            print("Maybe the page has changed and this parser is no longer valid.")
+            raise
+        #print("ENDED FIRE")
+        #sys.exit("DEBUG EXIT")
+
+    # Detect upgrade skills
+    cursor = db.cursor()
+    cursor.execute('UPDATE monster_skill SET upgrade = id + 1 WHERE name = (SELECT name FROM monster_skill s WHERE s.id = monster_skill.id + 1)')
+    cursor.close;
+
+    # Get essence icons
+    getEssenceIcons();
+
+    # Create base monsters
+    setBases(db)
+
+
+
+"""
+Indexes to keep track of the number of insertions in each affected table.
+"""
+id = {}
+id["monster"] = 1;
+id["monster_base"] = 1;
+id["monster_skill"] = 1;
+id["monster_essence"] = 1;
+id["monster_location"] = 1;
+
+
+"""
+Begin script
+"""
+db = createDatabase('application/sw.sqlite')
+parse(db, 'http://summonerswar.wikia.com/wiki/#_Monsters', ['Fire', 'Water', 'Wind', 'Light', 'Dark'])
+db.close()

+ 0 - 83
parser/parse.py

@@ -1,83 +0,0 @@
-#!/usr/bin/python3
-
-import urllib3
-import sys
-import os
-import requests
-
-
-urls = [
-  'http://summonerswar.wikia.com/wiki/Fire_Monsters',
-  'http://summonerswar.wikia.com/wiki/Water_Monsters',
-  'http://summonerswar.wikia.com/wiki/Wind_Monsters',
-  'http://summonerswar.wikia.com/wiki/Light_Monsters',
-  'http://summonerswar.wikia.com/wiki/Dark_Monsters'
-]
-http = urllib3.PoolManager()
-fsql = open('data.sql', 'w')
-fget = open('img.sh', 'w')
-id = 1;
-
-for url in urls:
-    page = http.request('GET', url).data.decode('utf-8')
-    page = page[page.index('</th></tr>'):]
-    element = url[url.rfind('/') + 1:url.rfind('_')]
-
-    while '</td></tr>' in page:
-        
-        murl = 'http://summonerswar.wikia.com/' + page[page.index('a href="') + 8:page.index('"', page.index('a href="') + 8)]
-        print(murl)
-        page = page[page.index('</td></tr>') + 1:]
-
-        '''page = page[page.index('<td style="text-align:center;">') + 1:]
-        monster = page[:page.index('</tr>') + 5]
-        name = monster[monster.index('title="') + 7:monster.index(' (', monster.index('title="') + 8)]
-        monster = monster[monster.index('"', monster.index('title="') + 8):]
-        img = monster[monster.index('data-src="') + 10:monster.index('"', monster.index('data-src="') + 11)]
-        monster = monster[monster.index('<td style="text-align:center;">') + 1:]
-        monster = monster[monster.index('<td style="text-align:center;">') + 1:]
-        tpe = monster[monster.index('>') + 1:monster.index('\n')]
-        monster = monster[monster.index('<td style="text-align:center;">') + 1:]
-        monster = monster[monster.index('<td style="text-align:center;">') + 1:]
-        hp = monster[monster.index('>') + 1:monster.index('\n')]
-        monster = monster[monster.index('<td style="text-align:center;">') + 1:]
-        atk = monster[monster.index('>') + 1:monster.index('\n')]
-        monster = monster[monster.index('<td style="text-align:center;">') + 1:]
-        df = monster[monster.index('>') + 1:monster.index('\n')]
-        monster = monster[monster.index('<td style="text-align:center;">') + 1:]
-        spd = monster[monster.index('>') + 1:monster.index('\n')]
-        print("NAME:    " + name)
-        print("ELEMENT: " + element)
-        print("IMG:     " + img)
-        print("TYPE:    " + tpe)
-        print("HP:      " + hp)
-        print("ATK:     " + atk)
-        print("DEF:     " + df)
-        print("SPD:     " + spd)
-        sys.exit("DEBUG EXIT")
-
-        
-
-        element = monster[monster.index('"element">') + 10:monster.index('<', monster.index('"element">'))]
-        print("ELEMENT: " + element)
-        monster = monster[monster.index('<', monster.index('"element">')):]
-
-        name = monster[monster.index('<h3>') + 4:monster.index('</h3>')]
-        print("NAME: " + name)
-        monster = monster[monster.index('</h3>'):]
-
-        img_aw = monster[monster.index('data-src="', monster.index('icon')) + 10:monster.index('"', monster.index('data-src="', monster.index('icon')) + 11)]
-        print("IMAGE (AW): " + img_aw)
-        monster = monster[monster.index('"', monster.index('data-src="', monster.index('icon')) + 11):]
-
-        name_aw = monster[monster.index('>', monster.index('"name"')) + 1:monster.index('<', monster.index('"name"'))]
-        print("NAME (AW): " + name_aw)
-        monster = monster[monster.index('<', monster.index('"name"')):]
-
-        print("wget " + img + " -O monster/" + "{:04d}".format(id) + ".png", file=fget)
-        print("wget " + img_aw + " -O monster/awaken/" + "{:04d}".format(id) + ".png", file=fget)
-        print("INSERT INTO monster (id, name, name_aw, element, stars, base) VALUES (" + str(id) + ", '" + name + "', '" + name_aw + "', '" + element + "', " + str(star) + ", null);", file=fsql)
-
-        id = id + 1
-        #sys.exit("DEBUG EXIT")
-        '''

+ 237 - 0
public/css/catalog.css

@@ -0,0 +1,237 @@
+div#catalog{
+    display: block;
+    width: 80%;
+    margin: auto;
+    text-align: center;
+}
+@media screen and (max-width : 990px){
+    div#catalog{
+        width: 100%;
+    }
+}
+
+div#catalog div.monster{
+    display: inline-block;
+    width: 7em;
+    height: 7em;
+    border: 0.2em solid #000000;
+    margin: 0.5em;
+    position: relative;
+    border-radius: 15%;
+}
+
+div#catalog div.monster{
+    background-color: #000000;
+    filter: brightness(50%);
+}
+@media screen and (max-width : 990px){
+    div#catalog div.monster{
+        height: 6em;
+        width: 6em;
+        border: 0.1em solid #000000;
+        margin: 0.2em;
+        border-radius: 10%;
+    }
+}
+
+div#catalog div.monster span.stars{
+    position: absolute;
+    z-index: 1;
+    top: 0.4em;
+    right: 0.5em;
+}
+@media screen and (max-width : 990px){
+    div#catalog div.monster span.stars{
+        top: 0.3em;
+        right: 0.4em;
+    }
+}
+
+div#catalog div.monster span.stars img.star{
+    width: 1em;
+    height: 1em;
+    margin-left: -0.6em;
+    filter: drop-shadow(0 0 0.1em #000000) drop-shadow(0 0 0.1em #000000) drop-shadow(0 0 0.1em #000000);
+}
+@media screen and (max-width : 990px){
+    div#catalog div.monster span.stars img.star{
+        width: 0.9em;
+        height: 0.9em;
+        margin-left: -0.7em;
+    }
+}
+
+div#catalog div.monster img.monster{
+    width: 6.5em;
+    height: 6.5em;
+    border-style: solid;
+    border-width: 0.3em;
+    border-radius: 15%;
+}
+@media screen and (max-width : 990px){
+    div#catalog div.monster img.monster{
+        width: 5.6em;
+        height: 5.6em;
+        border-width: 0.2em;
+        border-radius: 10%;
+    }
+}
+
+div#viewer{
+    width: 60%;
+    height: 80%;
+    position: fixed;
+    left: 22%;
+    top: 10%;
+    z-index: 2;
+    display: none;
+    padding: 0;
+}
+@media screen and (max-width : 990px){
+    div#viewer{
+        width: 90%;
+        height: 90%;
+        left: 5%;
+        top: 5%;
+    }
+}
+
+div#viewer div#viewer_wait{
+    width: 100%;
+    margin: 4em 0 0 0;
+    text-align: center;
+}
+div#viewer div#viewer_info{
+    width: 100%;
+    height: 100%;
+    margin: 0;
+    padding: 0;
+    display: none;
+    text-align: center;
+}
+
+div#viewer div#viewer_info table#monster_header{
+    width: 90%;
+    margin: auto;
+    border-collapse: collapse;
+}
+
+div#viewer div#viewer_info table#monster_header img.monster_img{
+    width: 6.5em;
+    height: 6.5em;
+    border-style: solid;
+    border-width: 0.3em;
+    border-radius: 15%;
+    margin: 0.2em 0.8em;
+}
+@media screen and (max-width : 990px){
+    div#viewer div#viewer_info table#monster_header img.monster_img{
+        width: 5.6em;
+        height: 5.6em;
+        border-width: 0.2em;
+        border-radius: 10%;
+    }
+}
+
+div#viewer div#viewer_info table#monster_header div#monster_stars{
+    margin: 0.5em auto;
+    padding: 0.3em;
+}
+
+div#viewer div#viewer_info table#monster_header div#monster_stars img.monster_star{
+    width: 2em;
+    height: 2em;
+    filter: drop-shadow(0 0 0.1em #000000) drop-shadow(0 0 0.1em #000000) drop-shadow(0 0 0.1em #000000);
+}
+
+div#viewer div#viewer_info table#monster_skills{
+    width: 90%;
+    margin: auto;
+    border-collapse: collapse;
+}
+
+div#viewer div#viewer_info table#monster_skills td{
+    vertical-align: top;
+    padding: 0.1em 0.2em;
+    text-align: center;
+    width: 1%;
+}
+
+div#viewer a.control_close{
+    float: right;
+}
+
+div#viewer a.control_close img{
+    width: 1.5em;
+    height: 1.5em;
+    margin: 0.5em;
+}
+
+div#viewer div#viewer_info table#monster_stats{
+    width: 90%;
+    margin: auto;
+    border-collapse: collapse;
+    border: 0.1em solid #000000;
+}
+
+div#viewer div#viewer_info table#monster_stats td.even0{
+    background-color: #ffffff;
+}
+div#viewer div#viewer_info table#monster_stats td.even1{
+    background-color: #dddddd;
+}
+
+div#viewer div#viewer_info table#monster_stats td, th{
+    text-align: center;
+    width: 1%;
+}
+
+div#viewer div#viewer_info table#monster_stats tr#stats_header_names th{
+    background-color: #aaaaaa;
+    font-size: 90%;
+}
+
+div#viewer div#viewer_info table#monster_stats tr#stats_header_ranges th{
+    background-color: #aaaaaa;
+    color: #333333;
+    font-size: 70%;
+}
+
+div#viewer div#viewer_info table#monster_stats td img.star{
+    width: 0.5em;
+    height: 0.5em;
+    margin: -0.2em;
+    filter: drop-shadow(0 0 0.1em #000000) drop-shadow(0 0 0.1em #000000);
+}
+
+div#viewer div#viewer_info table#monster_stats td span.stat{
+    display: block;
+    margin: 0;
+    text-align: center;
+    font-size: 80%;
+}
+
+div#viewer div#viewer_info table#monster_stats td span.stat.awake{
+    color: #aa00ff;
+    font-style: italic;
+}
+
+div#viewer div#viewer_info div#monster_awake td.essence{
+    text-align: center;
+}
+
+div#viewer div#viewer_info div#monster_awake td.essence img{
+    display: block;
+    border-width: 0.2em;
+    border-radius: 10%;
+    width: 2.5em;
+    height: 2.5em;
+}
+
+div#viewer div#viewer_info div#monster_awake td.essence span{
+    display: block;
+    text-align: right;
+    margin: -2em 0.5em 0 0;
+    color: #ffffff;
+    text-shadow: 0 0 0.2em #000000;
+}

+ 79 - 18
public/css/collection.css

@@ -4,11 +4,11 @@ div#collection{
     margin-right: 2em;
     margin-top: 2em;
     vertical-align: top;
-    border: 0.1em solid #000000;
-    border-radius: 2em;
-    padding: 2em;
-    background-color: #555555;
-    box-shadow: 0 0 2em #000000;
+    border: 0.2em solid #f2c920;
+    border-radius: 1.5em;
+    padding: 1em;
+    background-color: #222222;
+    box-shadow: inset 0 0 2em #aaaaaa;
 }
 @media screen and (max-width : 990px){
     div#collection{
@@ -17,9 +17,16 @@ div#collection{
         margin: 0.5em auto 0.5em auto;
         overflow-x: scroll;
         white-space: nowrap;
-        border: 0.1em solid #000000;
-        border-radius: 5%;
-        background-color: #555555;
+        border: initial;
+        border-top: 0.1em solid #000000;
+        border-left: 0.1em solid #000000;
+        border-right: 0.1em solid #000000;
+        border-bottom: 0;
+        border-radius: initial;
+        border-top-left-radius: 1em;
+        border-top-right-radius: 1em;
+        border-bottom-left-radius: 0em;
+        border-bottom-right-radius: 0em;
     }
 }
 
@@ -106,15 +113,15 @@ div#collection div.monster span.level{
 
 div#portrait_container{
     display: inline-block;
-    width: 35%;
+    width: 30%;
     vertical-align: top;
     background-color: #f5e7c8;
-    border: 0.1em solid #000000;
+    border: 0.2em solid #f2c920;
     border-radius: 2em;
     padding: 1em;
-    height: 26em;
+    min-height: 36em;
     margin-top: 2em;
-    box-shadow: 0 0 2em #000000;
+    box-shadow: inset 0 0 2em #000000;
 }
 @media screen and (max-width : 990px){
     div#portrait_container{
@@ -129,8 +136,8 @@ div#portrait_container div#portrait{
 }
 
 div#portrait_container div#portrait img#portrait_img{
-    width: 8em;
-    height: 8em;
+    width: 7em;
+    height: 7em;
     border-style: solid;
     border-width: 0.3em;
     border-radius: 15%;
@@ -145,20 +152,74 @@ div#portrait_container div#portrait h4#portrait_title{
 }
 
 div#portrait_container div#portrait h5#portrait_details{
-    margin: 0 0.2em 0.5em 0.2em;
-    text-shadow: 0 0 0.1em #000000;
 }
 
-div#portrait_container div#portrait h5#portrait_details img.portrait_star{
+div#portrait_container div#portrait div#portrait_default_stars{
+    margin: 0.2em;
+    text-align: center;
+}
+
+div#portrait_container div#portrait div#portrait_default_stars img.portrait_star{
+    width: 1em;
+    height: 1em;
+    filter: drop-shadow(0 0 0.1em #000000);
+}
+
+div#portrait_container div#portrait div#portrait_current_stars{
+    margin: 0.5em;
+    text-align: center;
+}
+
+div#portrait_container div#portrait div#portrait_current_stars img.portrait_star{
     width: 2em;
     height: 2em;
     filter: drop-shadow(0 0 0.1em #000000) drop-shadow(0 0 0.1em #000000) drop-shadow(0 0 0.1em #000000);
 }
 
-div#portrait_container div#portrait h5#portrait_details img.portrait_star_translucent{
+div#portrait_container div#portrait div#portrait_current_stars img.portrait_star_translucent{
     opacity: 0.2;
 }
 
+div#portrait_container div#portrait table#portrait_stats{
+    width: 90%;
+    margin: auto;
+    border-collapse: collapse;
+}
+
+div#portrait_container div#portrait table#portrait_stats td.name{
+    text-align: right;
+    padding: 0 0.5em;
+    width: 30%;
+    font-style: italic;
+    font-size: 90%;
+}
+
+div#portrait_container div#portrait table#portrait_stats td.value{
+    text-align: left;
+    padding: 0 0.5em;
+    width: 20%;
+    font-style: italic;
+    font-weight: bold;
+}
+
+div#portrait_container div#portrait table#portrait_skills{
+    width: 80%;
+    margin: auto;
+    border-collapse: collapse;
+}
+
+div#portrait_container div#portrait table#portrait_skills td{
+    vertical-align: top;
+    padding: 0.1em 0.2em;
+    text-align: center;
+    width: 1%;
+}
+
+div#portrait_container div#portrait hr#portrait_separator{
+    width: 70%;
+    margin: 2em auto;
+}
+
 div#portrait_container div#portrait table#portrait_table{
     width: 80%;
     margin: auto;

+ 96 - 9
public/css/ui.css

@@ -47,6 +47,9 @@
 .color_Dark{
     color: #4a0282;
 }
+.color_Magic{
+    color: #e21af4;
+}
 .border_Fire{
     border-color: #f72302;
 }
@@ -62,6 +65,9 @@
 .border_Dark{
     border-color: #4a0282;
 }
+.border_Magic{
+    border-color: #e21af4;
+}
 .background_Fire{
     background-color: #f72302;
 }
@@ -77,6 +83,9 @@
 .background_Dark{
     background-color: #4a0282;
 }
+.background_Magic{
+    background-color: #e21af4;
+}
 html {
     height: 100%;
 }
@@ -157,7 +166,6 @@ div#header div#logo h1#logo_text span.small{
 div#header nav{
     display: inline-block;
     vertical-align: middle;
-    width: 30em;
 }
 div#header nav a{
     font-size: 2em;
@@ -196,6 +204,13 @@ div#footer table#footer_table td{
     width: 33%;
     padding: 0.5em;
 }
+@media screen and (max-width : 990px){
+    div#footer table#footer_table td{
+        width: auto;
+        padding: 0.2em;
+        font-size: 70%;
+    }
+}
 div#content{ /* Everything between the header and the footer. */
     width: 90%;
     margin: auto;
@@ -228,16 +243,88 @@ div.section div.entry{  /* Separated elements in a section. */
     margin: 0.5em;
     transition: all .4s ease-in-out;
 }
-input[type=submit]{
-    font-weight: bold;
-    color: #cccccc;
-    background-color: #555555;
-    border: 0.143em solid #bbbbbb;
-    border-radius: 0.429em;
-    padding: 0.5em;
-    text-shadow: 0 0 0.75em #000000;
+
+img.skill_image{
+    display: block;
+    margin: 0 auto;
+    width: 2.5em;
+    height: 2.5em;
+    border: 0.2em solid #000000;
+    border-radius: 15%;
+}
+img.skill_image.skill_awaken{
+    border: 0.2em solid #aa00ff;
+}
+img.skill_image.skill_disabled{
+    background-color: #ffffff;
+    opacity: 0.7;
+}
+img.skill_image.skill_leader{
+    filter: drop-shadow(0 0 0.1em #8888ff) drop-shadow(0 0 0.1em #8888ff) drop-shadow(0 0 0.1em #8888ff);
+}
+span.skill_name{
+    font-style: italic;
+}
+span.skill_name.skill_awaken{
+    color: #aa00ff;
+}
+span.skill_name.skill_disabled{
+    opacity: 0.7;
+}
+span.skill_name.skill_leader{
+    display: none;
+}
+span.skill_image{
+    position: relative;
+    margin-left: 10%;
+    margin-top: 15%;
+}
+span.skill_image span.skill_tooltip{
+    color: #ffffff;
+    padding: 0.7em;
+    background-color: #351e0b;
+    border: 0.2em solid #f2c920;;
+    border-radius: 0.5em;
+    text-shadow: 0 0 0.1em #000000;
     cursor: pointer;
+    box-shadow: 0 0 0.2em #000000;
+    width: 18em;
+    top: -7em;
+    left: -9em;
+    opacity: 0;
+    position: absolute;
+    text-align: center;
+    z-index: 2;
+    text-transform: none;
+    transition: all 0.3s ease-in-out;
+}
+span.skill_image:hover span.skill_tooltip{
+    opacity: 1;
+    z-index: 99;
+}
+span.skill_image span.skill_tooltip img.skill_tooltip_image{
+    width: 2em;
+    height: 2em;
+    float: left;
+    margin: 0.2em;
+    border: 0.2em solid #000000;
+    border-radius: 15%;
+}
+span.skill_image span.skill_tooltip img.skill_tooltip_image.skill_awaken{
+    border: 0.2em solid #aa00ff;
+}
+span.skill_image span.skill_tooltip img.skill_tooltip_image.skill_disabled{
+    background-color: #ffffff;
+    opacity: 0.7;
+}
+span.skill_image span.skill_tooltip img.skill_tooltip_image.skill_leader{
+    filter: drop-shadow(0 0 0.1em #8888ff) drop-shadow(0 0 0.1em #8888ff) drop-shadow(0 0 0.1em #8888ff);
+}
+span.skill_image span.skill_tooltip span.skill_tooltip_title{
+    font-weight: bold;
 }
+
+
 input[type=button], input[type=submit]{
     font-size: 115%;
     font-weight: bold;

+ 41 - 5
public/error.php

@@ -1,15 +1,51 @@
 <?php
-    error_log("ERROR " . http_response_code());
-    return;
+    require_once(__DIR__ . "/../application/config.php");
 ?>
 <!DOCTYPE html>
-<html>
+<html lang='en'>
     <head>
         <meta content='text/html; charset=windows-1252' http-equiv='content-type'/>
         <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1'>
-        <title>ERROR</title>
-        <meta name="robots" content="noindex bofollow"/>
+        <title>ERROR <?=http_response_code()?> - SWDB</title>
+        <link rel='shortcut icon' href='<?=$root?>img/layout/logo/favicon.ico'>
+        <link rel='stylesheet' type='text/css' href='<?=$path["css"]?>ui.css'/>
+        <link rel='stylesheet' type='text/css' href='<?=$path["css"]?>error.css'/>
+        <meta name="robots" content="noindex follow"/>
     </head>
     <body>
+<?php
+        include __DIR__ . "/../application/inc/header.php";
+?>
+        <div class='section'>
+            <h3 class='section_title'>ERROR</h3>
+            <table id='error_code' class='entry'>
+                <tr>
+                    <td id='error_number'>
+                        <?=http_response_code()?>
+                    </td>
+                    <td id='error_tag'>
+                        ERROR
+                        <br/>
+                        CODE
+                    </td>
+                <tr>
+            </table>
+            <div id='error_message' class='entry'>
+                <ul>
+                    <li>
+                        <a href='javascript:location.reload();'>Reload</a>
+                    </li>
+                    <li>
+                        <a href='javascript:history.go(-1);'>Back to previous page</a>
+                    </li>
+                    <li>
+                        <a href='<?=$root?>'>Home Page</a>
+                    </li>
+                </ul>
+            </div> <!-- #error_message -->
+        </div> <!-- .section -->
+<?php
+        include __DIR__ . "/../application/inc/footer.php";
+?>
     </body>
 </html>

+ 0 - 1010
public/img/content/get_monster_icons.sh

@@ -1,1010 +0,0 @@
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Druid_Fire_Icon.png -O monster/0001.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Bellenus_Icon.png -O monster/awaken/0001.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Druid_Water_Icon.png -O monster/0002.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Druid_Water_Icon.png -O monster/awaken/0002.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Druid_Wind_Icon.png -O monster/0003.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Taranys_Icon.png -O monster/awaken/0003.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Druid_Light_Icon.png -O monster/0004.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Valantis_Icon.png -O monster/awaken/0004.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Druid_Dark_Icon.png -O monster/0005.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Pater_Icon.png -O monster/awaken/0005.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Dryad_Fire_Icon.png -O monster/0006.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Nisha_Icon.png -O monster/awaken/0006.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Dryad_Water_Icon.png -O monster/0007.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Herne_Icon.png -O monster/awaken/0007.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Dryad_Wind_Icon.png -O monster/0008.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Mellia_Icon.png -O monster/awaken/0008.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Dryad_Light_Icon.png -O monster/0009.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Felleria_Icon.png -O monster/awaken/0009.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Dryad_Dark_Icon.png -O monster/0010.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/09/Hyanes_Icon.png -O monster/awaken/0010.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Boomerang_Warrior_Light_Icon-1.png -O monster/0011.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Bailey_Icon-1.png -O monster/awaken/0011.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Boomerang_Warrior_Fire_Icon-1.png -O monster/0012.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Maruna_Icon-1.png -O monster/awaken/0012.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Boomerang_Warrior_Dark_Icon-1.png -O monster/0013.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Martina_Icon-1.png -O monster/awaken/0013.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Boomerang_Warrior_Water_Icon-1.png -O monster/0014.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Sabrina_Icon-1.png -O monster/awaken/0014.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Boomerang_Warrior_Wind_Icon-1.png -O monster/0015.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Zenobia_Icon-1.png -O monster/awaken/0015.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Chakram_Dancer_Water_Icon.png -O monster/0016.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Talia_Icon.png -O monster/awaken/0016.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Chakram_Dancer_Fire_Icon.png -O monster/0017.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Shaina_Icon.png -O monster/awaken/0017.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Chakram_Dancer_Wind_Icon.png -O monster/0018.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Melissa_Icon.png -O monster/awaken/0018.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Chakram_Dancer_Light_Icon.png -O monster/0019.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Deva_Icon.png -O monster/awaken/0019.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Chakram_Dancer_Dark_Icon.png -O monster/0020.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/03/Belita_Icon.png -O monster/awaken/0020.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Paladin_Fire_Icon-100x100.png -O monster/0021.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Ophilia_Icon-100x100.png -O monster/awaken/0021.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Paladin_Water_Icon-100x100.png -O monster/0022.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Josephine_Icon-100x100.png -O monster/awaken/0022.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Paladin_Wind_Icon.png -O monster/0023.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Louise_Icon.png -O monster/awaken/0023.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Paladin_Light_Icon-100x100.png -O monster/0024.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Jeanne_Icon-100x100.png -O monster/awaken/0024.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Paladin_Dark_Icon-100x100.png -O monster/0025.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Leona_Icon-100x100.png -O monster/awaken/0025.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/04/Homunculus_Fire_Icon-100x100.png -O monster/0026.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/04/fire-homunculus-awakened-100x100.jpg -O monster/awaken/0026.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Homunculus_Dark_Icon-100x100.png -O monster/0027.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Awakened_Homunculus_Dark_Icon-100x100.png -O monster/awaken/0027.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/09/Homunculus_Light_Icon-100x100.png -O monster/0028.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/07/Awakened_Homunculus_Light_Icon-100x100.png -O monster/awaken/0028.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/04/Homunculus_Wind_Icon-100x100.png -O monster/0029.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/04/wind-homunculus-awakened-100x100.jpg -O monster/awaken/0029.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Homunculus_Water_Icon.png -O monster/0030.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Homunculus_Water_Icon_awakened.png -O monster/awaken/0030.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/11/Low_Elemental_Fire_Icon.png -O monster/0031.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/11/Lamor_Icon.png -O monster/awaken/0031.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/11/Low_Elemental_Water_Icon.png -O monster/0032.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/11/Tigresse_Icon.png -O monster/awaken/0032.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Low_Elemental_Wind_Icon.png -O monster/0033.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Samour_Icon.png -O monster/awaken/0033.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Fairy-Queen-Light.png -O monster/0034.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Fran-Light.png -O monster/awaken/0034.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Dice_Magician_Light_Icon.png -O monster/0035.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Tablo_Icon.png -O monster/awaken/0035.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Dice_Magician_Wind_Icon.png -O monster/0036.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Morris_Icon.png -O monster/awaken/0036.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Dice_Magician_Water_Icon.png -O monster/0037.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/11/Reno-water.png -O monster/awaken/0037.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Dice_Magician_Dark_Icon-100x100.png -O monster/0038.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Monte_Icon.png -O monster/awaken/0038.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Dice_Magician_Fire_Icon.png -O monster/0039.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Ludo_Icon.png -O monster/awaken/0039.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Harp_Magician_Wind_Icon.png -O monster/0040.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Triana_Icon.png -O monster/awaken/0040.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Harp_Magician_Light_Icon.png -O monster/0041.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Celia_Icon.png -O monster/awaken/0041.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Harp_Magician_Water_Icon.png -O monster/0042.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sonnet_Icon.png -O monster/awaken/0042.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Harp_Magician_Fire_Icon.png -O monster/0043.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Harmonia_Icon.png -O monster/awaken/0043.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Harp_Magician_Dark_Icon.png -O monster/0044.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Vivachel_Icon.png -O monster/awaken/0044.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Unicorn_Fire_Icon.png -O monster/0045.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Helena_Icon-100x100.png -O monster/awaken/0045.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Unicorn_Water_Icon.png -O monster/0046.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Amelia_Icon.png -O monster/awaken/0046.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Unicorn_Wind_Icon.png -O monster/0047.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Diana_Icon.png -O monster/awaken/0047.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Unicorn_Light_Icon.png -O monster/0048.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Eleanor_Icon.png -O monster/awaken/0048.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Unicorn_Dark_Icon.png -O monster/0049.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Alexandra_Icon.png -O monster/awaken/0049.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/05/Panda-Warrior-Water.png -O monster/0050.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/05/Mo-Long-Water.png -O monster/awaken/0050.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Panda_Warrior_Wind_Icon.png -O monster/0051.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Feng_Yan_Icon.png -O monster/awaken/0051.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/05/Panda-Warrior-Fire.png -O monster/0052.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/05/Xiong-Fei-Fire.png -O monster/awaken/0052.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/05/Panda-Warrior-Light.png -O monster/0053.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/05/Tian-Lang-Light.png -O monster/awaken/0053.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Panda_Warrior_Dark_Icon.png -O monster/0054.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/05/Mi-Ying-Dark.png -O monster/awaken/0054.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Fairy-King-Fire.png -O monster/0055.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Daphnis-Fire.png -O monster/awaken/0055.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Fairy-King-Light.png -O monster/0056.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Oberon-Light.png -O monster/awaken/0056.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Fairy-King-Water.png -O monster/0057.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Psamathe-Water.png -O monster/awaken/0057.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Fairy-King-Wind.png -O monster/0058.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Ganymede-Wind.png -O monster/awaken/0058.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Fairy-King-Dark-100x100.png -O monster/0059.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Nyx-Dark-100x100.png -O monster/awaken/0059.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Desert-Queen-Fire.png -O monster/0060.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Sekhmet-Fire.png -O monster/awaken/0060.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Desert-Queen-Light.png -O monster/0061.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Isis-Light.png -O monster/awaken/0061.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Desert-Queen-Water.png -O monster/0062.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Bastet-Water.png -O monster/awaken/0062.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Desert-Queen-Wind.png -O monster/0063.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Hathor-Wind.png -O monster/awaken/0063.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Desert-Queen-Dark.png -O monster/0064.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Nephthys-Dark.png -O monster/awaken/0064.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Sea-Emperor-Fire.png -O monster/0065.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Okeanos-Fire.png -O monster/awaken/0065.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Sea-Emperor-Light.png -O monster/0066.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Pontos-Light.png -O monster/awaken/0066.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Sea-Emperor-Water.png -O monster/0067.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Poseidon-Water.png -O monster/awaken/0067.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Sea-Emperor-Dark.png -O monster/0068.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Manannan-Dark.png -O monster/awaken/0068.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Sea-Emperor-Wind.png -O monster/0069.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Triton_Icon.png -O monster/awaken/0069.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Ifrit-Fire.png -O monster/0070.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Tesarion-Fire.png -O monster/awaken/0070.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Ifrit-Light.png -O monster/0071.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Elsharion-Light.png -O monster/awaken/0071.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Ifrit-Water.png -O monster/0072.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Theomars-Water.png -O monster/awaken/0072.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Ifrit-Dark.png -O monster/0073.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Veromos-Dark.png -O monster/awaken/0073.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Ifrit-Wind.png -O monster/0074.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Akhamamir-Wind.png -O monster/awaken/0074.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Polar-Queen-Light.png -O monster/0075.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Elenoa-Light.png -O monster/awaken/0075.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Polar-Queen-Water.png -O monster/0076.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Alicia-Water.png -O monster/awaken/0076.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Polar-Queen-Dark.png -O monster/0077.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Lydia-Dark.png -O monster/awaken/0077.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Polar-Queen-Wind.png -O monster/0078.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Tiana-Wind.png -O monster/awaken/0078.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Polar-Queen-Fire.png -O monster/0079.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Brandia-Fire.png -O monster/awaken/0079.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/pioneer-light.png -O monster/0080.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/nigong.png -O monster/awaken/0080.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/pioneer-water.png -O monster/0081.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/woosa.png -O monster/awaken/0081.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/pioneer-dark.png -O monster/0082.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/woonsa.png -O monster/awaken/0082.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/pioneer-wind.png -O monster/0083.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/pungbaek.png -O monster/awaken/0083.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/pioneer-fire.png -O monster/0084.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/chiwu.png -O monster/awaken/0084.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Hell-Lady-Light.png -O monster/0085.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Asima-Light.png -O monster/awaken/0085.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Hell-Lady-Water.png -O monster/0086.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Beth-Water.png -O monster/awaken/0086.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Hell-Lady-Dark.png -O monster/0087.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Craka-Dark.png -O monster/awaken/0087.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Hell-Lady-Wind.png -O monster/0088.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Ethna-Wind.png -O monster/awaken/0088.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Hell-Lady-Fire.png -O monster/0089.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Raki-Fire.png -O monster/awaken/0089.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Beast-Monk-Light.png -O monster/0090.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Shazam-Light.png -O monster/awaken/0090.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Beast-Monk-Water.png -O monster/0091.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Chandra-Water.png -O monster/awaken/0091.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Beast-Monk-Dark.png -O monster/0092.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Rahul-Dark.png -O monster/awaken/0092.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Beast-Monk-Wind.png -O monster/0093.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Ritesh-Wind.png -O monster/awaken/0093.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Beast_Monk_Fire_Icon.png -O monster/0094.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kumar-Fire.png -O monster/awaken/0094.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Archangel_Light_Icon.png -O monster/0095.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Artamiel_Icon.png -O monster/awaken/0095.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Archangel_Water_Icon.png -O monster/0096.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Ariel_Icon.png -O monster/awaken/0096.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Archangel_Dark_Icon.png -O monster/0097.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Fermion_Icon.png -O monster/awaken/0097.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Archangel_Wind_Icon.png -O monster/0098.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Eladriel_Icon.png -O monster/awaken/0098.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Archangel_Fire_Icon.png -O monster/0099.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Velajuel_Icon.png -O monster/awaken/0099.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Monkey-King-Light.png -O monster/0100.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Qitian-Dasheng-Light.png -O monster/awaken/0100.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Monkey-King-Water.png -O monster/0101.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Shi-Hou-Water.png -O monster/awaken/0101.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Monkey-King-Dark.png -O monster/0102.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Son_Zhang_Lao_Icon-100x100.png -O monster/awaken/0102.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Monkey-King-Wind.png -O monster/0103.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Xing-Zhe-Wind.png -O monster/awaken/0103.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/04/Monkey_King_Fire_Icon.png -O monster/0104.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/09/Mei_Hou_Wang_Icon.png -O monster/awaken/0104.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Dragon-Knight-Light.png -O monster/0105.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Jager-Light.png -O monster/awaken/0105.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Dragon-Knight-Water.png -O monster/0106.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Chow_Icon.png -O monster/awaken/0106.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Dragon-Knight-Dark.png -O monster/0107.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Ragdoll-Dark.png -O monster/awaken/0107.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Dragon-Knight-Wind.png -O monster/0108.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Leo-Wind.png -O monster/awaken/0108.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Dragon-Knight-Fire.png -O monster/0109.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Laika-Fire.png -O monster/awaken/0109.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Occult_Girl_Light_Icon.png -O monster/0110.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Lora_Icon.png -O monster/awaken/0110.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Occult_Girl_Water_Icon.png -O monster/0111.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Anavel_Icon.png -O monster/awaken/0111.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Occult_Girl_Dark_Icon.png -O monster/0112.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Nicki_Icon.png -O monster/awaken/0112.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Occult_Girl_Wind_Icon.png -O monster/0113.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Charlotte_Icon.png -O monster/awaken/0113.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Occult_Girl_Fire_Icon.png -O monster/0114.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Rica_Icon.png -O monster/awaken/0114.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Oracle_Light_Icon.png -O monster/0115.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Laima_Icon.png -O monster/awaken/0115.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/05/Oracle_Water_Icon-100x100.png -O monster/0116.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Praha_Icon.png -O monster/awaken/0116.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Oracle_Dark_Icon.png -O monster/0117.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Giana_Icon.png -O monster/awaken/0117.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Oracle_Wind_Icon.png -O monster/0118.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Seara_Icon.png -O monster/awaken/0118.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Oracle_Fire_Icon.png -O monster/0119.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Juno_Icon.png -O monster/awaken/0119.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Chimera_Water_Icon.png -O monster/0120.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Taor_Icon.png -O monster/awaken/0120.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Chimera_Dark_Icon.png -O monster/0121.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Zeratu_Icon.png -O monster/awaken/0121.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Chimera_Wind_Icon.png -O monster/0122.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Lagmaron_Icon.png -O monster/awaken/0122.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Chimera_Fire_Icon.png -O monster/0123.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Rakan_Icon.png -O monster/awaken/0123.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Chimera_Light_Icon.png -O monster/0124.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Shan_Icon.png -O monster/awaken/0124.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Phoenix_Water_Icon-1.png -O monster/0125.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Sigmarus_Icon.png -O monster/awaken/0125.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Phoenix_Dark_Icon.png -O monster/0126.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Jaara_Icon.png -O monster/awaken/0126.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Phoenix_Wind_Icon.png -O monster/0127.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Phoenix_Wind_Icon.png -O monster/awaken/0127.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Phoenix_Fire_Icon.png -O monster/0128.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Perna_Icon.png -O monster/awaken/0128.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Phoenix_Light_Icon.png -O monster/0129.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Eludia_Icon.png -O monster/awaken/0129.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Dragon_Water_Icon.png -O monster/0130.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Verad_Icon.png -O monster/awaken/0130.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Dragon_Dark_Icon.png -O monster/0131.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Grogen_Icon.png -O monster/awaken/0131.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/03/Dragon_Wind_Icon.png -O monster/0132.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Jamire_Icon.png -O monster/awaken/0132.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Dragon_Fire_Icon.png -O monster/0133.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Zaiross_Icon.png -O monster/awaken/0133.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Dragon_Light_Icon.png -O monster/0134.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Zerath_Icon.png -O monster/awaken/0134.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Valkyrja_Water_Icon.png -O monster/0135.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Valkyrja_Water_Icon-1.png -O monster/awaken/0135.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Valkyrja_Dark_Icon.png -O monster/0136.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Trinity_Icon.png -O monster/awaken/0136.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Valkyrja_Wind_Icon.png -O monster/0137.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Katarina_Icon.png -O monster/awaken/0137.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Valkyrja_Fire_Icon.png -O monster/0138.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Vanessa_Icon.png -O monster/awaken/0138.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Valkyrja-Light-icon.png -O monster/0139.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Akroma_Icon.png -O monster/awaken/0139.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Jack-o-lantern-Wind.png -O monster/0140.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Windy-Wind.png -O monster/awaken/0140.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Jack-o-lantern-Water.png -O monster/0141.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Chilling-Water.png -O monster/awaken/0141.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Jack-o-lantern_Dark_Icon.png -O monster/0142.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Dusky-Dark.png -O monster/awaken/0142.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Jack-o-lantern-Fire.png -O monster/0143.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Smokey-Fire.png -O monster/awaken/0143.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Jack-o-lantern-Light.png -O monster/0144.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Misty-Light.png -O monster/awaken/0144.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Horus-Wind.png -O monster/0145.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Imesety-Wind.png -O monster/awaken/0145.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Horus-Light.png -O monster/0146.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Wedjat-Light.png -O monster/awaken/0146.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Horus-Water.png -O monster/0147.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Qebehsenuef-Water.png -O monster/awaken/0147.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Horus-Dark.png -O monster/0148.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Amduat-Dark.png -O monster/awaken/0148.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Horus-Fire.png -O monster/0149.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Duamutef-Fire.png -O monster/awaken/0149.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Anubis-Wind.png -O monster/0150.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Iunu-Wind.png -O monster/awaken/0150.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Anubis-Water.png -O monster/0151.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Avaris-Water.png -O monster/awaken/0151.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Anubis-Fire.png -O monster/0152.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Khmun-Fire.png -O monster/awaken/0152.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Anubis-Dark.png -O monster/0153.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Thebae-Dark.png -O monster/awaken/0153.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Anubis-Light.png -O monster/0154.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Amarna-Light.png -O monster/awaken/0154.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Agent-Wind-N-100x100.png -O monster/0155.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Olivia-Wind-N-100x100.png -O monster/awaken/0155.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Agent-Water-N-100x100.png -O monster/0156.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Emma-Water-N-100x100.png -O monster/awaken/0156.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Agent-Fire-N-100x100.png -O monster/0157.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Lisa-Fire-New-100x100.png -O monster/awaken/0157.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Agent-Dark-N-100x100.png -O monster/0158.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Sylvia-Dark-N-100x100.png -O monster/awaken/0158.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Agent-Light-N.png -O monster/0159.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Illianna_Icon.png -O monster/awaken/0159.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Fighter-Wind.png -O monster/0160.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Logan-Wind.png -O monster/awaken/0160.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Fighter-Water.png -O monster/0161.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Ryan-Water.png -O monster/awaken/0161.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Fighter-Dark.png -O monster/0162.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Karl-Dark.png -O monster/awaken/0162.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Fighter-Fire.png -O monster/0163.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Trevor-Fire.png -O monster/awaken/0163.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Neostone-Fighter-Light.png -O monster/0164.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Lucas-Light.png -O monster/awaken/0164.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Assassin-Wind.png -O monster/0165.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Tanya-Wind.png -O monster/awaken/0165.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Assassin-Water.png -O monster/0166.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Stella-Water.png -O monster/awaken/0166.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Assassin-Dark.png -O monster/0167.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Isabelle-Dark.png -O monster/awaken/0167.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Assassin-Fire.png -O monster/0168.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Lexy-Fire.png -O monster/awaken/0168.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Assassin-Light.png -O monster/0169.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Natalie-Light.png -O monster/awaken/0169.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Magic-Knight-Wind.png -O monster/0170.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Lupinus-Wind.png -O monster/awaken/0170.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Magic_Knight_Water_Icon.png -O monster/0171.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Lapis-Water.png -O monster/awaken/0171.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Magic-Knight-Dark.png -O monster/0172.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Lanett-Dark.png -O monster/awaken/0172.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Magic-Knight-Fire.png -O monster/0173.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Astar-Fire.png -O monster/awaken/0173.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Magic-Knight-Light.png -O monster/0174.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/07/Iris-Light.png -O monster/awaken/0174.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Mermaid-Wind.png -O monster/0175.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Cichlid-Wind.png -O monster/awaken/0175.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Mermaid-Water.png -O monster/0176.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Tetra-Water.png -O monster/awaken/0176.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Mermaid-Dark.png -O monster/0177.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Betta-Dark.png -O monster/awaken/0177.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Mermaid-Fire.png -O monster/0178.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Platy-Fire.png -O monster/awaken/0178.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Mermaid-Light.png -O monster/0179.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Molly-Light.png -O monster/awaken/0179.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Pirate-Captain-Wind.png -O monster/0180.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Barque-Wind.png -O monster/awaken/0180.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Pirate-Captain-Water.png -O monster/0181.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Galleon-Water.png -O monster/awaken/0181.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Pirate-Captain-Dark.png -O monster/0182.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Frigate-Dark.png -O monster/awaken/0182.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Pirate-Captain-Fire.png -O monster/0183.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Carrack-Fire.png -O monster/awaken/0183.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Pirate-Captain-Light.png -O monster/0184.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Brig-Light.png -O monster/awaken/0184.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Barbaric-King-Wind.png -O monster/0185.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Hraesvelg-Wind.png -O monster/awaken/0185.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Barbaric-King-Water.png -O monster/0186.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Aegir-Water.png -O monster/awaken/0186.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Barbaric-King-Dark.png -O monster/0187.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Hrungnir-Dark.png -O monster/awaken/0187.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Barbaric-King-Fire.png -O monster/0188.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Surtr-Fire.png -O monster/awaken/0188.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Barbaric-King-Light.png -O monster/0189.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Mimirr-Light.png -O monster/awaken/0189.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/sky-dancer-wind.png -O monster/0190.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/chasun.png -O monster/awaken/0190.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/sky-dancer-light.png -O monster/0191.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/yeonhong.png -O monster/awaken/0191.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/sky-dancer-water.png -O monster/0192.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/mihyang.png -O monster/awaken/0192.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/sky-dancer-fire.png -O monster/0193.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/hwahee.png -O monster/awaken/0193.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/sky-dancer-dark.png -O monster/0194.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/wolyung.png -O monster/awaken/0194.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Kobold-Bomber-Wind.png -O monster/0195.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Taurus-Wind.png -O monster/awaken/0195.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Kobold-Bomber-Water.png -O monster/0196.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Malaka-Water.png -O monster/awaken/0196.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Kobold-Bomber-Dark.png -O monster/0197.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Bering-Dark.png -O monster/awaken/0197.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Kobold-Bomber-Fire.png -O monster/0198.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Zibrolta-Fire.png -O monster/awaken/0198.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Kobold-Bomber-Light.png -O monster/0199.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Dover-Light.png -O monster/awaken/0199.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Brownie-Magician-Wind.png -O monster/0200.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Aquila-Wind.png -O monster/awaken/0200.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Brownie-Magician-Water.png -O monster/0201.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Orion-Water.png -O monster/awaken/0201.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Brownie-Magician-Dark.png -O monster/0202.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Korona-Dark.png -O monster/awaken/0202.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Brownie-Magician-Fire.png -O monster/0203.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Draco-Fire.png -O monster/awaken/0203.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Brownie-Magician-Light.png -O monster/0204.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Gemini-Light.png -O monster/awaken/0204.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kung-Fu-Girl-Water.png -O monster/0205.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Xiao-Lin.png -O monster/awaken/0205.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kung-Fu-Girl-Dark.png -O monster/0206.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Fei-Dark.png -O monster/awaken/0206.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kung-Fu-Girl-Fire.png -O monster/0207.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Hong-Hua-Fire.png -O monster/awaken/0207.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kung-Fu-Girl-Light.png -O monster/0208.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Liu-Mei-Light.png -O monster/awaken/0208.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kung-Fu-Girl-Wind.png -O monster/0209.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Ling-Ling-Wind.png -O monster/awaken/0209.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Lich_Water_Icon.png -O monster/0210.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Rigel_Icon.png -O monster/awaken/0210.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Lich_Dark_Icon.png -O monster/0211.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Grego_Icon.png -O monster/awaken/0211.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Lich_Fire_Icon.png -O monster/0212.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Antares_Icon.png -O monster/awaken/0212.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Lich_Light_Icon.png -O monster/0213.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Halphas_Icon.png -O monster/awaken/0213.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Lich_Wind_Icon.png -O monster/0214.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Fuco_Icon.png -O monster/awaken/0214.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Death_Knight_Water_Icon.png -O monster/0215.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Fedora_Icon.png -O monster/awaken/0215.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Death_Knight_Dark_Icon.png -O monster/0216.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Dias_Icon.png -O monster/awaken/0216.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Death_Knight_Fire_Icon.png -O monster/0217.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Arnold_Icon.png -O monster/awaken/0217.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Death_Knight_Light_Icon.png -O monster/0218.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Conrad-Light.png -O monster/awaken/0218.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Death_Knight_Wind_Icon.png -O monster/0219.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Briand_Icon.png -O monster/awaken/0219.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Rakshasa_Water_Icon.png -O monster/0220.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Su_Icon.png -O monster/awaken/0220.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Rakshasa_Dark_Icon.png -O monster/0221.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Ran_Icon-100x100.png -O monster/awaken/0221.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Rakshasa_Fire_Icon.png -O monster/0222.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Hwa_Icon.png -O monster/awaken/0222.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Rakshasa_Light_Icon.png -O monster/0223.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Pang_Icon.png -O monster/awaken/0223.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Rakshasa_Wind_Icon.png -O monster/0224.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Yen_Icon.png -O monster/awaken/0224.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Epikion_Priest_Wind_Icon.png -O monster/0225.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Michelle_Icon.png -O monster/awaken/0225.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Epikion_Priest_Fire_Icon.png -O monster/0226.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Chloe_Icon.png -O monster/awaken/0226.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Epikion_Priest_Water_Icon.png -O monster/0227.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Rina_Icon.png -O monster/awaken/0227.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Epikion_Priest_Light_Icon.png -O monster/0228.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Iona_Icon.png -O monster/awaken/0228.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Epikion_Priest_Dark_Icon.png -O monster/0229.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Rasheed_Icon.png -O monster/awaken/0229.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Vampire_Light_Icon.png -O monster/0230.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Julianne_Icon.png -O monster/awaken/0230.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Vampire_Water_Icon.png -O monster/0231.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Liesel_Icon.png -O monster/awaken/0231.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Vampire_Fire_Icon-100x100.png -O monster/0232.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Verdehile_Icon.png -O monster/awaken/0232.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Vampire_Dark_Icon.png -O monster/0233.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Cadiz_Icon.png -O monster/awaken/0233.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Vampire_Wind_Icon.png -O monster/0234.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Argen_Icon.png -O monster/awaken/0234.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Phantom_Thief_Water_Icon.png -O monster/0235.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Luer_Icon.png -O monster/awaken/0235.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Phantom_Thief_Dark_Icon.png -O monster/0236.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Guillaume_Icon.png -O monster/awaken/0236.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Phantom_Thief_Fire_Icon.png -O monster/0237.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Jean_Icon.png -O monster/awaken/0237.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Phantom_Thief_Light_Icon.png -O monster/0238.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Louis_Icon.png -O monster/awaken/0238.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Phantom_Thief_Wind_Icon.png -O monster/0239.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Julien_Icon.png -O monster/awaken/0239.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Pierret_Water_Icon.png -O monster/0240.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Julie_Icon.png -O monster/awaken/0240.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Pierret_Dark_Icon.png -O monster/0241.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Luna_Icon.png -O monster/awaken/0241.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Pierret_Fire_Icon.png -O monster/0242.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Clara_Icon.png -O monster/awaken/0242.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Pierret_Light_Icon.png -O monster/0243.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Eva_Icon.png -O monster/awaken/0243.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Pierret_Wind_Icon.png -O monster/0244.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sophia_Icon.png -O monster/awaken/0244.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Ninja_Water_Icon.png -O monster/0245.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Susano_Icon.png -O monster/awaken/0245.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Ninja_Fire_Icon.png -O monster/0246.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Garo_Icon.png -O monster/awaken/0246.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Ninja_Dark_Icon.png -O monster/0247.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/02/Han_Icon.png -O monster/awaken/0247.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Ninja_Light_Icon.png -O monster/0248.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Gin_Icon.png -O monster/awaken/0248.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Ninja_Wind_Icon.png -O monster/0249.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Orochi_Icon.png -O monster/awaken/0249.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Joker_Water_Icon.png -O monster/0250.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sian_Icon.png -O monster/awaken/0250.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Joker_Dark_Icon.png -O monster/0251.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Liebli_Icon.png -O monster/awaken/0251.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/09/Joker-Fire.png -O monster/0252.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/09/Jojo-Fire.png -O monster/awaken/0252.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Joker_Light_Icon.png -O monster/0253.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Figaro_Icon.png -O monster/awaken/0253.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/09/Joker-Wind.png -O monster/0254.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/09/Lushen-Wind.png -O monster/awaken/0254.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Succubus_Water_Icon.png -O monster/0255.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Izaria_Icon.png -O monster/awaken/0255.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Succubus_Dark_Icon.png -O monster/0256.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Isael_Icon.png -O monster/awaken/0256.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Succubus_Fire_Icon.png -O monster/0257.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Akia_Icon.png -O monster/awaken/0257.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Succubus_Light_Icon.png -O monster/0258.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Aria_Icon.png -O monster/awaken/0258.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Succubus_Wind_Icon.png -O monster/0259.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Selena_Icon.png -O monster/awaken/0259.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylphid_Dark_Icon.png -O monster/0260.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Icares_Icon.png -O monster/awaken/0260.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylphid_Fire_Icon.png -O monster/0261.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Fria_Icon.png -O monster/awaken/0261.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylphid_Light_Icon.png -O monster/0262.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Mihael_Icon.png -O monster/awaken/0262.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylphid_Wind_Icon.png -O monster/0263.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Acasis_Icon.png -O monster/awaken/0263.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylphid_Water_Icon-1.png -O monster/0264.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Lumirecia_Icon.png -O monster/awaken/0264.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylph_Dark_Icon.png -O monster/0265.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Aschubel_Icon.png -O monster/awaken/0265.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylph_Fire_Icon.png -O monster/0266.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Baretta_Icon.png -O monster/awaken/0266.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylph_Light_Icon.png -O monster/0267.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Eredas_Icon.png -O monster/awaken/0267.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylph_Wind_Icon.png -O monster/0268.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Shimitae_Icon.png -O monster/awaken/0268.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Sylph_Water_Icon.png -O monster/0269.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Tyron_Icon.png -O monster/awaken/0269.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Undine_Dark_Icon.png -O monster/0270.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Tilasha_Icon.png -O monster/awaken/0270.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Undine_Fire_Icon.png -O monster/0271.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Atenai_Icon.png -O monster/awaken/0271.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Undine_Light_Icon.png -O monster/0272.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Icasha_Icon.png -O monster/awaken/0272.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Undine_Wind_Icon.png -O monster/0273.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Delphoi_Icon.png -O monster/awaken/0273.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Undine_Water_Icon.png -O monster/0274.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Mikene_Icon.png -O monster/awaken/0274.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Nine-tailed_Fox_Dark_Icon.png -O monster/0275.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Kamiya_Icon.png -O monster/awaken/0275.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Nine-tailed_Fox_Fire_Icon.png -O monster/0276.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Shihwa_Icon.png -O monster/awaken/0276.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Nine-tailed_Fox_Light_Icon.png -O monster/0277.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Chamie_Icon.png -O monster/awaken/0277.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Nine-tailed_Fox_Wind_Icon.png -O monster/0278.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Arang_Icon.png -O monster/awaken/0278.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Water-Nine-Tailed-Fox-.png -O monster/0279.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Soha-.png -O monster/awaken/0279.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Harg_Light_Icon.png -O monster/0280.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Dova-Light-100x100.png -O monster/awaken/0280.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Harg-Fire.png -O monster/0281.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Racuni-Fire.png -O monster/awaken/0281.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Harg-Dark-100x100.png -O monster/0282.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Kroa-Dark-100x100.png -O monster/awaken/0282.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Harg-Wind-100x100.png -O monster/0283.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Raviti-Wind-100x100.png -O monster/awaken/0283.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Harg-Water-100x100.png -O monster/0284.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/02/Remy-Water-100x100.png -O monster/awaken/0284.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Elven-Ranger-Fire-100x100.png -O monster/0285.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Adrian-Fire-100x100.png -O monster/awaken/0285.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Elven-Ranger-Light.png -O monster/0286.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Lucien-Light.png -O monster/awaken/0286.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Elven-Ranger-Wind-100x100.png -O monster/0287.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Erwin-Wind-100x100.png -O monster/awaken/0287.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Elven-Ranger-Dark.png -O monster/0288.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Isillen-Dark.png -O monster/awaken/0288.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Elven-Ranger-Water-100x100.png -O monster/0289.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/11/Eluin-Water-100x100.png -O monster/awaken/0289.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Frankenstein-Fire.png -O monster/0290.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Bulldozer-Fire.png -O monster/awaken/0290.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Frankenstein-Dark.png -O monster/0291.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Crawler-Dark.png -O monster/awaken/0291.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Frankenstein-Light.png -O monster/0292.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Driller-Light.png -O monster/awaken/0292.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Frankenstein-Wind.png -O monster/0293.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Crane-Wind.png -O monster/awaken/0293.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Frankenstein-Water.png -O monster/0294.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Tractor-Water.png -O monster/awaken/0294.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Mummy-Fire.png -O monster/0295.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Sonora-Fire.png -O monster/awaken/0295.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Mummy-Dark.png -O monster/0296.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Karakum-Dark.png -O monster/awaken/0296.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Mummy-Light.png -O monster/0297.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Sahara-Light.png -O monster/awaken/0297.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Mummy-Wind.png -O monster/0298.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Namib-Wind.png -O monster/awaken/0298.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Mummy-Water.png -O monster/0299.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/10/Nubia-Water.png -O monster/awaken/0299.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Martial-Artist-Fire.png -O monster/0300.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Sin-Fire.png -O monster/awaken/0300.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Martial-Artist-Dark.png -O monster/0301.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Jackie-Dark.png -O monster/awaken/0301.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Martial-Artist-Light.png -O monster/0302.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Hiro-Light.png -O monster/awaken/0302.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Martial-Artist-Wind.png -O monster/0303.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Lo-Wind.png -O monster/awaken/0303.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Martial-Artist-Water.png -O monster/0304.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/08/Luan-Water.png -O monster/awaken/0304.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Charger-Shark-Fire.png -O monster/0305.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Ignicus-Fire.png -O monster/awaken/0305.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Charger-Shark-Dark.png -O monster/0306.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Calicus-Dark.png -O monster/awaken/0306.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Charger-Shark-Light.png -O monster/0307.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Rumicus-Light.png -O monster/awaken/0307.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Charger-Shark-Wind.png -O monster/0308.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Zephicus-Wind.png -O monster/awaken/0308.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Charger-Shark-Water.png -O monster/0309.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/06/Aqcus-Water.png -O monster/awaken/0309.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Cow-Girl-Fire.png -O monster/0310.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Anne-Fire.png -O monster/awaken/0310.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Cow-Girl-Light.png -O monster/0311.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Loren-Light.png -O monster/awaken/0311.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Cow-Girl-Dark.png -O monster/0312.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Cassie-Dark.png -O monster/awaken/0312.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Cow-Girl-Wind.png -O monster/0313.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Hannah-Wind.png -O monster/awaken/0313.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Cow-Girl-Water.png -O monster/0314.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Sera-Water.png -O monster/awaken/0314.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Battle-Mammoth-Dark.png -O monster/0315.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Basalt-Dark.png -O monster/awaken/0315.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Battle-Mammoth-Light.png -O monster/0316.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Marble-Light.png -O monster/awaken/0316.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Battle-Mammoth-Wind.png -O monster/0317.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Olivine-Wind.png -O monster/awaken/0317.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Battle-Mammoth-Water.png -O monster/0318.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Talc-Water.png -O monster/awaken/0318.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Battle-Mammoth-Fire.png -O monster/0319.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Granite-Fire.png -O monster/awaken/0319.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Penguin-Knight-Dark.png -O monster/0320.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Kuna-Dark.png -O monster/awaken/0320.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Penguin_Knight_Light_Icon.png -O monster/0321.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Dona-Light.png -O monster/awaken/0321.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Penguin-Knight-Wind.png -O monster/0322.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Mav-Wind.png -O monster/awaken/0322.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Penguin-Knight-Water.png -O monster/0323.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Toma-Water.png -O monster/awaken/0323.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Penguin-Knight-Fire.png -O monster/0324.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/03/Naki-Fire.png -O monster/awaken/0324.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Beast_Hunter_Light_Icon.png -O monster/0325.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Baekdu_Icon.png -O monster/awaken/0325.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/beast-hunter-wind.png -O monster/0326.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/suri.png -O monster/awaken/0326.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/beast-hunter-water.png -O monster/0327.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/gangchun.png -O monster/awaken/0327.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/beast-hunter-fire.png -O monster/0328.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/nangrim.png -O monster/awaken/0328.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/beast-hunter-dark.png -O monster/0329.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/hannam.png -O monster/awaken/0329.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/taoist-dark.png -O monster/0330.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/woonhak.png -O monster/awaken/0330.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/taoist-wind.png -O monster/0331.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/woochi.png -O monster/awaken/0331.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/taoist-water.png -O monster/0332.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/gildong.png -O monster/awaken/0332.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/taoist-light.png -O monster/0333.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/hwadam.png -O monster/awaken/0333.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/taoist-fire.png -O monster/0334.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2015/01/gunpyeong.png -O monster/awaken/0334.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Lizardman-Light.png -O monster/0335.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Glinodon-Light.png -O monster/awaken/0335.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/11/Lizardman-Wind.png -O monster/0336.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/11/Velfinodon-Wind.png -O monster/awaken/0336.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Lizardman-Water.png -O monster/0337.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kernodon-Water.png -O monster/awaken/0337.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Lizardman-Fire.png -O monster/0338.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Igmanodon-Fire.png -O monster/awaken/0338.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Lizardman-Dark.png -O monster/0339.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Devinodon-Dark.png -O monster/awaken/0339.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Minotauros-Light.png -O monster/0340.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Grotau_Icon.png -O monster/awaken/0340.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Minotauros_Wind_Icon.png -O monster/0341.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Eintau_Icon.png -O monster/awaken/0341.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Minotauros-Water.png -O monster/0342.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Urtau-Water.png -O monster/awaken/0342.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Minotauros-Fire.png -O monster/0343.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Burentau-Fire.png -O monster/awaken/0343.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Minotauros-Dark.png -O monster/0344.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kamatau-Dark.png -O monster/awaken/0344.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Drunken_Master_Light_Icon.png -O monster/0345.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Tien_Qin_Icon.png -O monster/awaken/0345.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Drunken_Master_Wind_Icon.png -O monster/0346.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Huan_Icon-1.png -O monster/awaken/0346.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Drunken-Master-Water.png -O monster/0347.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Mao-Water.png -O monster/awaken/0347.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Drunken-Master-Fire.png -O monster/0348.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Xiao-Chun-Fire.png -O monster/awaken/0348.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Drunken-Master-Dark.png -O monster/0349.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Wei-Shin-Dark.png -O monster/awaken/0349.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Living_Armor_Light_Icon.png -O monster/0350.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Silver_Icon.png -O monster/awaken/0350.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Living_Armor_Wind_Icon.png -O monster/0351.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Copper_Icon.png -O monster/awaken/0351.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Living_Armor_Water_Icon.png -O monster/0352.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Nickel_Icon.png -O monster/awaken/0352.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Living_Armor_Fire_Icon.png -O monster/0353.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Iron_Icon.png -O monster/awaken/0353.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Living_Armor_Dark_Icon.png -O monster/0354.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Zinc_Icon.png -O monster/awaken/0354.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Grim_Reaper_Light_Icon.png -O monster/0355.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Prom_Icon.png -O monster/awaken/0355.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Grim_Reaper_Wind_Icon.png -O monster/0356.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Hiva_Icon.png -O monster/awaken/0356.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Grim_Reaper_Water_Icon.png -O monster/0357.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Hemos_Icon.png -O monster/awaken/0357.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Grim_Reaper_Fire_Icon.png -O monster/0358.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Sath_Icon.png -O monster/awaken/0358.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Grim_Reaper_Dark_Icon.png -O monster/0359.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Thrain_Icon.png -O monster/awaken/0359.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Mystic_Witch_Light_Icon.png -O monster/0360.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Linda_Icon.png -O monster/awaken/0360.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Mystic_Witch_Wind_Icon.png -O monster/0361.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Silia_Icon.png -O monster/awaken/0361.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Mystic_Witch_Water_Icon.png -O monster/0362.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Megan_Icon.png -O monster/awaken/0362.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Mystic_Witch_Fire_Icon.png -O monster/0363.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Rebecca_Icon.png -O monster/awaken/0363.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Mystic_Witch_Dark_Icon.png -O monster/0364.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Gina_Icon.png -O monster/awaken/0364.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Imp-Champion-Light.png -O monster/0365.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Imp-Champion-Light.png -O monster/awaken/0365.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Imp_Champion_Wind_Icon.png -O monster/0366.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Pigma_Icon.png -O monster/awaken/0366.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Imp-Champion-Water.png -O monster/0367.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Yaku_Icon.png -O monster/awaken/0367.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Imp-Champion-Fire.png -O monster/0368.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Fairo-Fire.png -O monster/awaken/0368.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Imp-Champion-Dark.png -O monster/0369.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/12/Loque-Dark.png -O monster/awaken/0369.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Bounty_Hunter_Wind_Icon.png -O monster/0370.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Roger_Icon.png -O monster/awaken/0370.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Bounty_Hunter_Water_Icon.png -O monster/0371.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Wayne_Icon.png -O monster/awaken/0371.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Bounty_Hunter_Fire_Icon.png -O monster/0372.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Randy_Icon.png -O monster/awaken/0372.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Bounty_Hunter_Dark_Icon.png -O monster/0373.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Jamie_Icon.png -O monster/awaken/0373.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Bounty_Hunter_Light_Icon.png -O monster/0374.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Walkers_Icon.png -O monster/awaken/0374.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Magical_Archer_Fami_Light_Icon-98x100.png -O monster/0375.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Fami_Icon.png -O monster/awaken/0375.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Magical_Archer_Wind_Icon.png -O monster/0376.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Ardella_Icon.png -O monster/awaken/0376.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Magical_Archer_Dark_Icon.png -O monster/0377.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Bethony_Icon.png -O monster/awaken/0377.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Magical_Archer_Water_Icon.png -O monster/0378.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Sharron_Icon.png -O monster/awaken/0378.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Magical_Archer_Light_Icon.png -O monster/0379.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Chris_Icon.png -O monster/awaken/0379.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Magical_Archer_Fire_Icon.png -O monster/0380.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Cassandra_Icon.png -O monster/awaken/0380.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Vagabond_Fire_Icon.png -O monster/0381.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Kaien_Icon.png -O monster/awaken/0381.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Vagabond_Water_Icon.png -O monster/0382.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Allen_Icon.png -O monster/awaken/0382.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Vagabond_Dark_Icon.png -O monster/0383.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Jubelle_Icon.png -O monster/awaken/0383.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Vagabond_Light_Icon.png -O monster/0384.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Darion_Icon.png -O monster/awaken/0384.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Vagabond_Wind_Icon.png -O monster/0385.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Roid_Icon.png -O monster/awaken/0385.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Martial_Cat_Wind_Icon.png -O monster/0386.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Naomi_Icon.png -O monster/awaken/0386.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Martial_Cat_Water_Icon.png -O monster/0387.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Mina_Icon.png -O monster/awaken/0387.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Martial_Cat_Fire_Icon.png -O monster/0388.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Mei_Icon.png -O monster/awaken/0388.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Martial_Cat_Dark_Icon.png -O monster/0389.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Miho_Icon.png -O monster/awaken/0389.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Martial_Cat_Light_Icon.png -O monster/0390.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Xiao_Ling_Icon.png -O monster/awaken/0390.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Amazon_Wind_Icon.png -O monster/0391.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Hina_Icon.png -O monster/awaken/0391.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Amazon_Water_Icon.png -O monster/0392.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Ellin_Icon.png -O monster/awaken/0392.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Amazon_Fire_Icon.png -O monster/0393.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Ceres_Icon.png -O monster/awaken/0393.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Amazon_Dark_Icon.png -O monster/0394.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Mara_Icon.png -O monster/awaken/0394.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Amazon_Light_Icon.png -O monster/0395.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Lyn_Icon.png -O monster/awaken/0395.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Bearman_Wind_Icon.png -O monster/0396.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Dagorr_Icon.png -O monster/awaken/0396.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Bearman_Water_Icon.png -O monster/0397.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Gruda_Icon.png -O monster/awaken/0397.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Bearman_Fire_Icon.png -O monster/0398.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Kungen_Icon.png -O monster/awaken/0398.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Bearman_Dark_Icon.png -O monster/0399.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Haken_Icon.png -O monster/awaken/0399.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Bearman_Light_Icon.png -O monster/0400.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Ahman_Icon.png -O monster/awaken/0400.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/High_Elemental_Wind_Icon.png -O monster/0401.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Moria_Icon.png -O monster/awaken/0401.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/High_Elemental_Water_Icon.png -O monster/0402.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Ellena_Icon.png -O monster/awaken/0402.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/High_Elemental_Fire_Icon.png -O monster/0403.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Kahli_Icon.png -O monster/awaken/0403.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/High_Elemental_Dark_Icon.png -O monster/0404.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Jumaline_Icon.png -O monster/awaken/0404.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/High_Elemental_Light_Icon.png -O monster/0405.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Shren_Icon.png -O monster/awaken/0405.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Inferno_Water_Icon.png -O monster/0406.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Purian_Icon.png -O monster/awaken/0406.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Inferno_Fire_Icon.png -O monster/0407.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Tagaros_Icon.png -O monster/awaken/0407.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Inferno_Dark_Icon.png -O monster/0408.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Drogan_Icon.png -O monster/awaken/0408.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Inferno_Light_Icon.png -O monster/0409.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Eludain_Icon.png -O monster/awaken/0409.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Inferno_Wind_Icon.png -O monster/0410.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Anduril_Icon.png -O monster/awaken/0410.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Griffon_Water_Icon.png -O monster/0411.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Kahn_Icon.png -O monster/awaken/0411.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Griffon_Fire_Icon.png -O monster/0412.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Spectra_Icon.png -O monster/awaken/0412.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Griffon_Dark_Icon.png -O monster/0413.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Varus_Icon.png -O monster/awaken/0413.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Griffon_Light_Icon.png -O monster/0414.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Shamann_Icon.png -O monster/awaken/0414.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Griffon_Wind_Icon.png -O monster/0415.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Bernard_Icon.png -O monster/awaken/0415.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Golem_Water_Icon.png -O monster/0416.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Kuhn_Icon.png -O monster/awaken/0416.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Golem_Fire_Icon.png -O monster/0417.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Kugo_Icon.png -O monster/awaken/0417.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Golem_Dark_Icon.png -O monster/0418.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Maggi_Icon.png -O monster/awaken/0418.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Golem_Light_Icon.png -O monster/0419.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Groggo_Icon.png -O monster/awaken/0419.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Golem_Wind_Icon.png -O monster/0420.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Ragion_Icon.png -O monster/awaken/0420.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Serpent_Water_Icon.png -O monster/0421.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Shailoq_Icon.png -O monster/awaken/0421.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Serpent_Fire_Icon.png -O monster/0422.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Fao_Icon.png -O monster/awaken/0422.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Serpent_Dark_Icon.png -O monster/0423.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Mantura_Icon.png -O monster/awaken/0423.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Serpent_Light_Icon.png -O monster/0424.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Elpuria_Icon.png -O monster/awaken/0424.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Serpent_Wind_Icon.png -O monster/0425.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Ermeda_Icon.png -O monster/awaken/0425.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Salamander_Light_Icon.png -O monster/0426.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Sharman_Icon.png -O monster/awaken/0426.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Salamander_Dark_Icon.png -O monster/0427.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Decamaron_Icon.png -O monster/awaken/0427.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Salamander_Fire_Icon.png -O monster/0428.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Krakdon_Icon.png -O monster/awaken/0428.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Salamander_Water_Icon.png -O monster/0429.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Kaimann_Icon.png -O monster/awaken/0429.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Salamander_Wind_Icon.png -O monster/0430.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Lukan_Icon.png -O monster/awaken/0430.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Inugami_Water_Icon.png -O monster/0431.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Icaru_Icon.png -O monster/awaken/0431.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Inugami_Fire_Icon.png -O monster/0432.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Raoq_Icon.png -O monster/awaken/0432.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Inugami_Dark_Icon.png -O monster/0433.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Kro_Icon.png -O monster/awaken/0433.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Inugami_Light_Icon.png -O monster/0434.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/08/belladeon-100x100.png -O monster/awaken/0434.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Inugami_Wind_Icon.png -O monster/0435.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Ramahan_Icon.png -O monster/awaken/0435.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Harpy-Water.png -O monster/0436.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Ramira-Water.png -O monster/awaken/0436.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Harpy-Fire.png -O monster/0437.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Lucasha-Fire.png -O monster/awaken/0437.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Harpy-Dark.png -O monster/0438.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Hellea-Dark.png -O monster/awaken/0438.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Harpy-Light.png -O monster/0439.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Kabilla-Light.png -O monster/awaken/0439.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Harpy-Wind.png -O monster/0440.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Prilea-Wind.png -O monster/awaken/0440.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Fairy_Water_Icon.png -O monster/0441.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Elucia_Icon.png -O monster/awaken/0441.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Fairy_Fire_Icon.png -O monster/0442.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Iselia_Icon.png -O monster/awaken/0442.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Fairy_Light_Icon.png -O monster/0443.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Neal_Icon.png -O monster/awaken/0443.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Fairy_Wind_Icon.png -O monster/0444.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Aeilene_Icon.png -O monster/awaken/0444.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Fairy_Dark_Icon.png -O monster/0445.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Sorin_Icon.png -O monster/awaken/0445.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Howl-Light.png -O monster/0446.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Shushu-Light.png -O monster/awaken/0446.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Howl-Dark.png -O monster/0447.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Chacha-Dark.png -O monster/awaken/0447.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Howl-Fire.png -O monster/0448.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Lala-Fire.png -O monster/awaken/0448.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Howl-Water.png -O monster/0449.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Lulu-Water.png -O monster/awaken/0449.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Howl-Wind.png -O monster/0450.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Chichi-Wind.png -O monster/awaken/0450.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Garuda_Dark_Icon.png -O monster/0451.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Rizak_Icon.png -O monster/awaken/0451.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Garuda_Fire_Icon.png -O monster/0452.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Cahule_Icon.png -O monster/awaken/0452.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Garuda_Water_Icon.png -O monster/0453.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Konamiya_Icon.png -O monster/awaken/0453.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Garuda_Light_Icon.png -O monster/0454.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Teon_Icon.png -O monster/awaken/0454.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Garuda_Wind_Icon.png -O monster/0455.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Lindermen_Icon.png -O monster/awaken/0455.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Hellhound_Light_Icon.png -O monster/0456.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Shamar_Icon.png -O monster/awaken/0456.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Hellhound_Fire_Icon.png -O monster/0457.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Sieq_Icon.png -O monster/awaken/0457.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Hellhound_Dark_Icon.png -O monster/0458.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Shumar_Icon.png -O monster/awaken/0458.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Hellhound_Water_Icon.png -O monster/0459.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Tarq_Icon.png -O monster/awaken/0459.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Hellhound_Wind_Icon.png -O monster/0460.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Gamir_Icon.png -O monster/awaken/0460.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Elemental_Fire_Icon.png -O monster/0461.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Bremis_Icon.png -O monster/awaken/0461.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Elemental_Dark_Icon.png -O monster/0462.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Camules_Icon.png -O monster/awaken/0462.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Elemental_Water_Icon.png -O monster/0463.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Daharenos_Icon.png -O monster/awaken/0463.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Elemental_Light_Icon.png -O monster/0464.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Priz_Icon.png -O monster/awaken/0464.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Elemental_Wind_Icon.png -O monster/0465.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Taharus_Icon.png -O monster/awaken/0465.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Imp-Light.png -O monster/0466.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Taru-Light.png -O monster/awaken/0466.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Imp-Dark.png -O monster/0467.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Garok-Dark.png -O monster/awaken/0467.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Imp-Fire.png -O monster/0468.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/08/Cogma-Fire.png -O monster/awaken/0468.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Imp-Water.png -O monster/0469.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Fynn-Water.png -O monster/awaken/0469.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Imp-Wind.png -O monster/0470.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Ralph-Wind.png -O monster/awaken/0470.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Pixie-Light.png -O monster/0471.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Cheryl-Light.png -O monster/awaken/0471.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Pixie-Dark.png -O monster/0472.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Camaryn-Dark.png -O monster/awaken/0472.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Pixie-Fire.png -O monster/0473.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Tatu-Fire.png -O monster/awaken/0473.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Pixie-Water.png -O monster/0474.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Kacey-Water.png -O monster/awaken/0474.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Pixie-Wind.png -O monster/0475.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/07/Shannon-Wind.png -O monster/awaken/0475.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Harpu_Fire_Icon.png -O monster/0476.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Colleen_Icon.png -O monster/awaken/0476.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Harpu_Dark_Icon.png -O monster/0477.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Seren_Icon.png -O monster/awaken/0477.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Harpu_Water_Icon.png -O monster/0478.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Sisroo_Icon.png -O monster/awaken/0478.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Harpu_Light_Icon.png -O monster/0479.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Sia_Icon.png -O monster/awaken/0479.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Harpu_Wind_Icon.png -O monster/0480.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Seal_Icon.png -O monster/awaken/0480.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Samurai_Water_Icon.png -O monster/0481.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kaz-Water.png -O monster/awaken/0481.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Samurai-Dark.png -O monster/0482.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Sige-Dark.png -O monster/awaken/0482.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Samurai-Fire.png -O monster/0483.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Jun-Fire.png -O monster/awaken/0483.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Samurai-Light.png -O monster/0484.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Tosi-Light.png -O monster/awaken/0484.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Samurai-Wind.png -O monster/0485.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2014/10/Kaito-Wind.png -O monster/awaken/0485.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Viking_Light_Icon.png -O monster/0486.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Jansson_Icon.png -O monster/awaken/0486.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Viking_Fire_Icon.png -O monster/0487.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Geoffrey_Icon.png -O monster/awaken/0487.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Viking_Dark_Icon.png -O monster/0488.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Janssen_Icon.png -O monster/awaken/0488.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/11/Viking_Water_Icon.png -O monster/0489.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/11/Huga_Icon.png -O monster/awaken/0489.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Viking_Wind_Icon.png -O monster/0490.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Walter_Icon.png -O monster/awaken/0490.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Warbear_Dark_Icon.png -O monster/0491.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Gorgo_Icon.png -O monster/awaken/0491.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Warbear_Water_Icon.png -O monster/0492.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Dagora_Icon.png -O monster/awaken/0492.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Warbear_Fire_Icon.png -O monster/0493.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Ursha_Icon.png -O monster/awaken/0493.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Warbear_Light_Icon.png -O monster/0494.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Lusha_Icon.png -O monster/awaken/0494.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Warbear_Wind_Icon.png -O monster/0495.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Ramagos_Icon.png -O monster/awaken/0495.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Werewolf_Wind_Icon.png -O monster/0496.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Shakan_Icon.png -O monster/awaken/0496.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Werewolf_Water_Icon.png -O monster/0497.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Vigor_Icon.png -O monster/awaken/0497.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Werewolf_Fire_Icon.png -O monster/0498.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2016/12/Garoche_Icon.png -O monster/awaken/0498.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Werewolf_Dark_Icon.png -O monster/0499.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Jultan_Icon.png -O monster/awaken/0499.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Werewolf_Light_Icon.png -O monster/0500.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2017/01/Eshir_Icon.png -O monster/awaken/0500.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Yeti_Light_Icon.png -O monster/0501.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Arkajan_Icon.png -O monster/awaken/0501.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Yeti_Fire_Icon.png -O monster/0502.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Tantra_Icon.png -O monster/awaken/0502.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Yeti_Dark_Icon.png -O monster/0503.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Kumae_Icon.png -O monster/awaken/0503.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Yeti_Water_Icon.png -O monster/0504.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Kunda_Icon.png -O monster/awaken/0504.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Yeti_Wind_Icon.png -O monster/0505.png
-wget https://summonerswarskyarena.info/wp-content/uploads/2018/06/Rakaja_Icon.png -O monster/awaken/0505.png

+ 49 - 0
public/script/catalog.js

@@ -0,0 +1,49 @@
+
+function showNew(show){
+    if (show === true){
+        document.getElementById('cover').style.display = 'block';
+        document.getElementById('cover').style.opacity = '0.8';
+        document.getElementById('new').style.display = 'block';
+    }
+    else{
+        document.getElementById('cover').style.display = 'none';
+        document.getElementById('cover').style.opacity = '0';
+        document.getElementById('new').style.display = 'none';
+    }
+}
+
+function selectMonster(id) {
+    if (id == null){
+        document.getElementById('cover').style.display = 'none';
+        document.getElementById('cover').style.opacity = '0';
+        document.getElementById('viewer').style.display = 'none';
+        document.getElementById('viewer_info').innerHTML = '';
+        document.getElementById('viewer_info').style_display = 'none';
+        document.getElementById('viewer_wait').style_display = 'block';
+    }
+    else{
+        document.getElementById('cover').style.display = 'block';
+        document.getElementById('cover').style.opacity = '0.8';
+        document.getElementById('viewer').style.display = 'block';
+        document.getElementById('viewer_info').innerHTML = '';
+        document.getElementById('viewer_info').style_display = 'none';
+        document.getElementById('viewer_wait').style_display = 'block';
+        var req = new XMLHttpRequest();
+        req.onreadystatechange = function() {
+            if (this.readyState == 4){
+                if (this.status == 200) {
+                    document.getElementById('viewer_info').innerHTML = this.responseText;
+                    document.getElementById('viewer_info').style.display = 'block';
+                    document.getElementById('viewer_wait').style.display = 'none';
+                }
+                else{
+                    alert("Error selecting monster (HTTP status " + this.status + ")");
+                    selectMonster(null);
+                }
+            }
+        };
+        req.open("POST", "/frame/catalog/", true);
+        req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+        req.send("id=" + id);
+    }
+}

+ 1 - 0
public/script/collection.js

@@ -113,6 +113,7 @@ function updateMonster(id, property, value){
         if (this.readyState == 4){
             if (this.status == 200){
                 loadCollection(id);
+                selectMonster(id);
             }
             else{
                 alert("Error updating monster (HTTP status " + this.status + ")");

+ 0 - 37
sql/01_structure.sql

@@ -1,37 +0,0 @@
-DROP DATABASE IF EXISTS sw;
-CREATE DATABASE sw CHARACTER SET utf8 COLLATE utf8_bin;
-
-SET NAMES utf8;
-
-CONNECT sw;
-
-CREATE TABLE monster_base (
-  id   INT          PRIMARY KEY AUTO_INCREMENT,
-  name VARCHAR(128) NOT NULL
-);
-
-CREATE TABLE monster (
-  id      INT          PRIMARY KEY AUTO_INCREMENT,
-  name    VARCHAR(128) NOT NULL,
-  name_aw VARCHAR(128) NOT NULL,
-  element VARCHAR(32)  NOT NULL,
-  stars   INT          NOT NULL DEFAULT 2,
-  base    INT          REFERENCES monster_base.id
-);
-
-CREATE TABLE fusion (
-  target       INT NOT NULL REFERENCES monster.id,
-  target_stars INT NOT NULL,
-  source       INT NOT NULL REFERENCES monster.id,
-  source_stars INT NOT NULL,
-  source_level INT NOT NULL,
-  PRIMARY KEY (target, source)
-);
-
-CREATE TABLE monster_collection (
-  id      INT     PRIMARY KEY AUTO_INCREMENT,
-  monster INT     NOT NULL REFERENCES monster.id,
-  stars   INT     NOT NULL DEFAULT 2,
-  level   INT     NOT NULL DEFAULT 1,
-  awaken  BOOLEAN NOT NULL DEFAULT 0
-);

+ 0 - 2
sql/02_security.sql

@@ -1,2 +0,0 @@
-GRANT SELECT, INSERT, DELETE, UPDATE, SHOW VIEW ON sw.* TO 'sw'@'localhost' IDENTIFIED BY 'sw';
-