|
@@ -16,14 +16,7 @@
|
|
|
*/
|
|
*/
|
|
|
CONST PATH = __DIR__ . "/../";
|
|
CONST PATH = __DIR__ . "/../";
|
|
|
|
|
|
|
|
- $args = array(
|
|
|
|
|
- "verbosity" => 3,
|
|
|
|
|
- "override_images" => false,
|
|
|
|
|
- "skip_downloads" => false,
|
|
|
|
|
- "only_downloads" => false,
|
|
|
|
|
- "only_new" => false
|
|
|
|
|
- );
|
|
|
|
|
- /**
|
|
|
|
|
|
|
+ /*
|
|
|
* Script verbosity
|
|
* Script verbosity
|
|
|
*
|
|
*
|
|
|
* 0: Critical
|
|
* 0: Critical
|
|
@@ -33,11 +26,13 @@
|
|
|
* 4: Debug
|
|
* 4: Debug
|
|
|
* 5: Trace
|
|
* 5: Trace
|
|
|
*/
|
|
*/
|
|
|
- $verbosity = 4;
|
|
|
|
|
-
|
|
|
|
|
- $override_images = false;
|
|
|
|
|
-
|
|
|
|
|
- $skip_downloads = false;
|
|
|
|
|
|
|
+ $args = array(
|
|
|
|
|
+ "verbosity" => 4,
|
|
|
|
|
+ "override_images" => false,
|
|
|
|
|
+ "skip_downloads" => false,
|
|
|
|
|
+ "only_downloads" => false,
|
|
|
|
|
+ "only_new" => false
|
|
|
|
|
+ );
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Echoes an output message to stdout, depending on the verbosity level.
|
|
* Echoes an output message to stdout, depending on the verbosity level.
|
|
@@ -321,6 +316,7 @@
|
|
|
$q = $statement->execute();
|
|
$q = $statement->execute();
|
|
|
$r = $q->fetchArray(SQLITE3_ASSOC);
|
|
$r = $q->fetchArray(SQLITE3_ASSOC);
|
|
|
if (!$r){
|
|
if (!$r){
|
|
|
|
|
+ // New skill, insert directly
|
|
|
$statement = $db->prepare("
|
|
$statement = $db->prepare("
|
|
|
INSERT INTO k_skill(
|
|
INSERT INTO k_skill(
|
|
|
id,
|
|
id,
|
|
@@ -355,7 +351,7 @@
|
|
|
$statement->bindValue(":passive", $skill->passive, SQLITE3_INTEGER);
|
|
$statement->bindValue(":passive", $skill->passive, SQLITE3_INTEGER);
|
|
|
$statement->bindValue(":aoe", $skill->aoe, SQLITE3_INTEGER);
|
|
$statement->bindValue(":aoe", $skill->aoe, SQLITE3_INTEGER);
|
|
|
$statement->bindValue(":max_level", $skill->max_level, SQLITE3_INTEGER);
|
|
$statement->bindValue(":max_level", $skill->max_level, SQLITE3_INTEGER);
|
|
|
- $statement->bindValue(":multiplier_formula", $skill->multiplier_formula, SQLITE3_INTEGER);
|
|
|
|
|
|
|
+ $statement->bindValue(":multiplier_formula", $skill->multiplier_formula, SQLITE3_TEXT);
|
|
|
output(4, "QUERY: " . $statement->getSQL(true));
|
|
output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
$statement->execute();
|
|
$statement->execute();
|
|
|
$url = 'https://swarfarm.com/static/herders/images/skills/' . $skill->icon_filename;
|
|
$url = 'https://swarfarm.com/static/herders/images/skills/' . $skill->icon_filename;
|
|
@@ -374,11 +370,16 @@
|
|
|
output(4, "QUERY: " . $statement->getSQL(true));
|
|
output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
$statement->execute();
|
|
$statement->execute();
|
|
|
}
|
|
}
|
|
|
- // TODO: Get data for other tables:
|
|
|
|
|
- // k_skill_effect
|
|
|
|
|
|
|
+ foreach ($skill->effects as $effect){
|
|
|
|
|
+ $statement = $db->prepare("INSERT INTO k_skill_effect (skill, effect) VALUES (:skill, :effect);");
|
|
|
|
|
+ $statement->bindValue(":skill", $skill->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $statement->bindValue(":effect", $effect->effect->id, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
else{
|
|
else{
|
|
|
- // Compare all values
|
|
|
|
|
|
|
+ // Existing skill, compare all values
|
|
|
if ($r["name"] != $skill->name){
|
|
if ($r["name"] != $skill->name){
|
|
|
$statement = $db->prepare("UPDATE k_skill SET name = :name WHERE id = :id;");
|
|
$statement = $db->prepare("UPDATE k_skill SET name = :name WHERE id = :id;");
|
|
|
$statement->bindValue(":name", $skill->name, SQLITE3_TEXT);
|
|
$statement->bindValue(":name", $skill->name, SQLITE3_TEXT);
|
|
@@ -445,6 +446,25 @@
|
|
|
$statement->execute();
|
|
$statement->execute();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // Compare existing effects
|
|
|
|
|
+ $statement = $db->prepare("SELECT count(effect) AS c FROM k_skill_effect WHERE skill = :skill;");
|
|
|
|
|
+ $statement->bindValue(":skill", $skill->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $q = $statement->execute();
|
|
|
|
|
+ $r = $q->fetchArray(SQLITE3_ASSOC);
|
|
|
|
|
+ if ($r["c"] != sizeof($skill->effects)){
|
|
|
|
|
+ $statement = $db->prepare("DELETE FROM k_skill_effect WHERE skill = :skill;");
|
|
|
|
|
+ $statement->bindValue(":skill", $skill->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ foreach ($skill->effects as $effect){
|
|
|
|
|
+ $statement = $db->prepare("INSERT INTO k_skill_effect (skill, effect) VALUES (:skill, :effect);");
|
|
|
|
|
+ $statement->bindValue(":skill", $skill->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $statement->bindValue(":effect", $effect->effect->id, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Image download
|
|
// Image download
|
|
|
$out = PATH . "public/img/skill/" . sprintf('%08d', $skill->com2us_id) . ".png";
|
|
$out = PATH . "public/img/skill/" . sprintf('%08d', $skill->com2us_id) . ".png";
|
|
|
$url = 'https://swarfarm.com/static/herders/images/skills/' . $skill->icon_filename;
|
|
$url = 'https://swarfarm.com/static/herders/images/skills/' . $skill->icon_filename;
|
|
@@ -550,7 +570,12 @@
|
|
|
$statement->bindValue(":can_awaken", $unit->can_awaken, SQLITE3_INTEGER);
|
|
$statement->bindValue(":can_awaken", $unit->can_awaken, SQLITE3_INTEGER);
|
|
|
$statement->bindValue(":awaken_bonus", $unit->awaken_bonus, SQLITE3_TEXT);
|
|
$statement->bindValue(":awaken_bonus", $unit->awaken_bonus, SQLITE3_TEXT);
|
|
|
$statement->bindValue(":skill_ups_to_max", $unit->skill_ups_to_max, SQLITE3_INTEGER);
|
|
$statement->bindValue(":skill_ups_to_max", $unit->skill_ups_to_max, SQLITE3_INTEGER);
|
|
|
- $statement->bindValue(":leader_skill", $unit->leader_skill, SQLITE3_INTEGER);
|
|
|
|
|
|
|
+ if (isset($unit->leader_skill->id)){
|
|
|
|
|
+ $statement->bindValue(":leader_skill", $unit->leader_skill, SQLITE3_INTEGER);
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ $statement->bindValue(":leader_skill", null, SQLITE3_INTEGER);
|
|
|
|
|
+ }
|
|
|
$statement->bindValue(":hp", $unit->base_hp, SQLITE3_INTEGER);
|
|
$statement->bindValue(":hp", $unit->base_hp, SQLITE3_INTEGER);
|
|
|
$statement->bindValue(":attack", $unit->base_attack, SQLITE3_INTEGER);
|
|
$statement->bindValue(":attack", $unit->base_attack, SQLITE3_INTEGER);
|
|
|
$statement->bindValue(":defense", $unit->base_defense, SQLITE3_INTEGER);
|
|
$statement->bindValue(":defense", $unit->base_defense, SQLITE3_INTEGER);
|
|
@@ -577,6 +602,7 @@
|
|
|
$out = PATH . "public/img/unit/" . sprintf('%08d', $unit->com2us_id) . ".png";
|
|
$out = PATH . "public/img/unit/" . sprintf('%08d', $unit->com2us_id) . ".png";
|
|
|
download($url, $out);
|
|
download($url, $out);
|
|
|
|
|
|
|
|
|
|
+ // Skills (not in database yet, but they will be once skills are parsed)
|
|
|
foreach ($unit->skills as $skill){
|
|
foreach ($unit->skills as $skill){
|
|
|
$statement = $db->prepare("INSERT INTO k_unit_skill (unit, skill) VALUES (:unit, :skill);");
|
|
$statement = $db->prepare("INSERT INTO k_unit_skill (unit, skill) VALUES (:unit, :skill);");
|
|
|
$statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
$statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
@@ -584,9 +610,25 @@
|
|
|
output(4, "QUERY: " . $statement->getSQL(true));
|
|
output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
$statement->execute();
|
|
$statement->execute();
|
|
|
}
|
|
}
|
|
|
- // TODO: Get data for other tables:
|
|
|
|
|
- // k_unit_essence
|
|
|
|
|
- // k_unit_source
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // Essences to awaken
|
|
|
|
|
+ foreach ($unit->awaken_cost as $essence){
|
|
|
|
|
+ $statement = $db->prepare("INSERT INTO k_unit_essence (unit, item, amount) VALUES (:unit, :item, :amount);");
|
|
|
|
|
+ $statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $statement->bindValue(":item", $essence->item->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $statement->bindValue(":amount", $essence->quantity, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Unit sources
|
|
|
|
|
+ foreach ($unit->source as $source){
|
|
|
|
|
+ $statement = $db->prepare("INSERT INTO k_unit_source (unit, source) VALUES (:unit, :source);");
|
|
|
|
|
+ $statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $statement->bindValue(":source", $source->id, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
else{
|
|
else{
|
|
|
// Compare all values
|
|
// Compare all values
|
|
@@ -662,6 +704,13 @@
|
|
|
output(4, "QUERY: " . $statement->getSQL(true));
|
|
output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
$statement->execute();
|
|
$statement->execute();
|
|
|
}
|
|
}
|
|
|
|
|
+ if (isset($unit->leader_skill->id) && $r["leader_skill"] != $unit->leader_skill->id){
|
|
|
|
|
+ $statement = $db->prepare("UPDATE k_unit SET leader_skill = :leader_skill WHERE id = :id;");
|
|
|
|
|
+ $statement->bindValue(":leader_skill", $unit->leader_skill->id, SQLITE3_TEXT);
|
|
|
|
|
+ $statement->bindValue(":id", $unit->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ }
|
|
|
if ($r["hp"] != $unit->base_hp){
|
|
if ($r["hp"] != $unit->base_hp){
|
|
|
$statement = $db->prepare("UPDATE k_unit SET hp = :hp WHERE id = :id;");
|
|
$statement = $db->prepare("UPDATE k_unit SET hp = :hp WHERE id = :id;");
|
|
|
$statement->bindValue(":hp", $unit->base_hp, SQLITE3_INTEGER);
|
|
$statement->bindValue(":hp", $unit->base_hp, SQLITE3_INTEGER);
|
|
@@ -810,6 +859,45 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // Essences to awaken
|
|
|
|
|
+ $statement = $db->prepare("SELECT count(item) AS c FROM k_unit_essence WHERE unit = :unit;");
|
|
|
|
|
+ $statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $q = $statement->execute();
|
|
|
|
|
+ $r = $q->fetchArray(SQLITE3_ASSOC);
|
|
|
|
|
+ if ($r["c"] != sizeof($unit->awaken_cost)){
|
|
|
|
|
+ $statement = $db->prepare("DELETE FROM k_unit_essence WHERE unit = :unit;");
|
|
|
|
|
+ $statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ foreach ($unit->awaken_cost as $essence){
|
|
|
|
|
+ $statement = $db->prepare("INSERT INTO k_unit_essence (unit, item, amount) VALUES (:unit, :item, :amount);");
|
|
|
|
|
+ $statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $statement->bindValue(":item", $essence->item->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $statement->bindValue(":amount", $essence->quantity, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Unit sources
|
|
|
|
|
+ $statement = $db->prepare("SELECT count(source) AS c FROM k_unit_source WHERE unit = :unit;");
|
|
|
|
|
+ $statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $q = $statement->execute();
|
|
|
|
|
+ $r = $q->fetchArray(SQLITE3_ASSOC);
|
|
|
|
|
+ if ($r["c"] != sizeof($unit->source)){
|
|
|
|
|
+ $statement = $db->prepare("DELETE FROM k_unit_source WHERE unit = :unit;");
|
|
|
|
|
+ $statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ foreach ($unit->source as $source){
|
|
|
|
|
+ $statement = $db->prepare("INSERT INTO k_unit_source (unit, source) VALUES (:unit, :source);");
|
|
|
|
|
+ $statement->bindValue(":unit", $unit->com2us_id, SQLITE3_INTEGER);
|
|
|
|
|
+ $statement->bindValue(":source", $source->id, SQLITE3_INTEGER);
|
|
|
|
|
+ output(4, "QUERY: " . $statement->getSQL(true));
|
|
|
|
|
+ $statement->execute();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Image download
|
|
// Image download
|
|
|
$out = PATH . "public/img/unit/" . sprintf('%08d', $unit->com2us_id) . ".png";
|
|
$out = PATH . "public/img/unit/" . sprintf('%08d', $unit->com2us_id) . ".png";
|
|
|
$url = 'https://swarfarm.com/static/herders/images/monsters/' . $unit->image_filename;
|
|
$url = 'https://swarfarm.com/static/herders/images/monsters/' . $unit->image_filename;
|