|
@@ -55,6 +55,17 @@
|
|
|
"dmg": <?=$page->unit->effective_dmg?>
|
|
"dmg": <?=$page->unit->effective_dmg?>
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ var set_stats = {
|
|
|
|
|
+ "attack": 0,
|
|
|
|
|
+ "defense": 0,
|
|
|
|
|
+ "hp": 0,
|
|
|
|
|
+ "speed": 0,
|
|
|
|
|
+ "crit_rate": 0,
|
|
|
|
|
+ "crit_damage": 0,
|
|
|
|
|
+ "accuracy": 0,
|
|
|
|
|
+ "resistance": 0
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
var base_stats = {
|
|
var base_stats = {
|
|
|
"attack": <?=$page->unit->attack?>,
|
|
"attack": <?=$page->unit->attack?>,
|
|
|
"defense": <?=$page->unit->defense?>,
|
|
"defense": <?=$page->unit->defense?>,
|
|
@@ -68,6 +79,30 @@
|
|
|
"dmg": <?=$page->unit->effective_dmg?>
|
|
"dmg": <?=$page->unit->effective_dmg?>
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ var requested_sets = {
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::ENERGY?>': 0, // ENERGY
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::GUARD?>': 0, // GUARD
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::SWIFT?>': 0, // SWIFT
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::BLADE?>': 0, // BLADE
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::RAGE?>': 0, // RAGE
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::FOCUS?>': 0, // FOCUS
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::ENDURE?>': 0, // ENDURE
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::FATAL?>': 0, // FATAL
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::DESPAIR?>': 0, // DESPAIR
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::VAMPIRE?>': 0, // VAMPIRE
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::VIOLENT?>': 0, // VIOLENT
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::NEMESIS?>': 0, // NEMESIS
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::WILL?>': 0, // WILL
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::SHIELD?>': 0, // SHIELD
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::REVENGE?>': 0, // REVENGE
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::DESTROY?>': 0, // DESTROY
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::FIGHT?>': 0, // FIGHT
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::DETERMINATION?>': 0, // DETERMINATION
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::ENHANCE?>': 0, // ENHANCE
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::ACCURACY?>': 0, // ACCURACY
|
|
|
|
|
+ 'RUNE_SET_<?=RUNE_SET_ID::TOLERANCE?>': 0 // TOLERANCE
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
<?php
|
|
<?php
|
|
|
// Get current rune sets
|
|
// Get current rune sets
|
|
|
$sets = [];
|
|
$sets = [];
|
|
@@ -272,6 +307,125 @@
|
|
|
if (Number(document.getElementById('min_dmg').value) > 0){
|
|
if (Number(document.getElementById('min_dmg').value) > 0){
|
|
|
params += '&min_dmg=' + document.getElementById('min_dmg').value;
|
|
params += '&min_dmg=' + document.getElementById('min_dmg').value;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // Clear and calculate new requested sets
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::ENERGY?>'] = 0; // ENERGY
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::GUARD?>'] = 0; // GUARD
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::SWIFT?>'] = 0; // SWIFT
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::BLADE?>'] = 0; // BLADE
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::RAGE?>'] = 0; // RAGE
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::FOCUS?>'] = 0; // FOCUS
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::ENDURE?>'] = 0; // ENDURE
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::FATAL?>'] = 0; // FATAL
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::DESPAIR?>'] = 0; // DESPAIR
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::VAMPIRE?>'] = 0; // VAMPIRE
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::VIOLENT?>'] = 0; // VIOLENT
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::NEMESIS?>'] = 0; // NEMESIS
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::WILL?>'] = 0; // WILL
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::SHIELD?>'] = 0; // SHIELD
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::REVENGE?>'] = 0; // REVENGE
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::DESTROY?>'] = 0; // DESTROY
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::FIGHT?>'] = 0; // FIGHT
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::DETERMINATION?>'] = 0; // DETERMINATION
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::ENHANCE?>'] = 0; // ENHANCE
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::ACCURACY?>'] = 0; // ACCURACY
|
|
|
|
|
+ requested_sets['RUNE_SET_<?=RUNE_SET_ID::TOLERANCE?>'] = 0; // TOLERANCE
|
|
|
|
|
+ var selected_1 = document.getElementById('set_1').options[document.getElementById('set_1').selectedIndex].value;
|
|
|
|
|
+ var selected_2 = document.getElementById('set_2').options[document.getElementById('set_2').selectedIndex].value;
|
|
|
|
|
+ var selected_3 = document.getElementById('set_3').options[document.getElementById('set_3').selectedIndex].value;
|
|
|
|
|
+ var requested_values = [
|
|
|
|
|
+ document.getElementById('set_1').options[document.getElementById('set_1').selectedIndex].value,
|
|
|
|
|
+ document.getElementById('set_2').options[document.getElementById('set_2').selectedIndex].value,
|
|
|
|
|
+ document.getElementById('set_3').options[document.getElementById('set_3').selectedIndex].value
|
|
|
|
|
+ ];
|
|
|
|
|
+ for (var i = 0; i < 3; i ++){
|
|
|
|
|
+ switch (requested_values[i]){
|
|
|
|
|
+ case '<?=RUNE_SET_ID::ENERGY?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::GUARD?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::NEMESIS?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::BLADE?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::FOCUS?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::ENDURE?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::WILL?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::SHIELD?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::REVENGE?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::DESTROY?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::FIGHT?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::DETERMINATION?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::ENHANCE?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::ACCURACY?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::TOLERANCE?>':
|
|
|
|
|
+ requested_sets['RUNE_SET_' + requested_values[i]] += 2;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case '<?=RUNE_SET_ID::DESPAIR?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::SWIFT?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::RAGE?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::FATAL?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::VAMPIRE?>':
|
|
|
|
|
+ case '<?=RUNE_SET_ID::VIOLENT?>':
|
|
|
|
|
+ requested_sets['RUNE_SET_' + requested_values[i]] += 4;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Clear and calculate the new rune set stats
|
|
|
|
|
+ set_stats['hp'] = 0;
|
|
|
|
|
+ set_stats['attack'] = 0;
|
|
|
|
|
+ set_stats['defense'] = 0;
|
|
|
|
|
+ set_stats['speed'] = 0;
|
|
|
|
|
+ set_stats['crit_rate'] = 0;
|
|
|
|
|
+ set_stats['crit_damage'] = 0;
|
|
|
|
|
+ set_stats['accuracy'] = 0;
|
|
|
|
|
+ set_stats['resistance'] = 0;
|
|
|
|
|
+ var rune_sets = [
|
|
|
|
|
+ Number(document.getElementById('set_1').options[document.getElementById('set_1').selectedIndex].value),
|
|
|
|
|
+ Number(document.getElementById('set_2').options[document.getElementById('set_2').selectedIndex].value),
|
|
|
|
|
+ Number(document.getElementById('set_3').options[document.getElementById('set_3').selectedIndex].value)
|
|
|
|
|
+ ];
|
|
|
|
|
+
|
|
|
|
|
+ for (var i = 0; i < rune_sets.length; i ++){
|
|
|
|
|
+ switch (rune_sets[i]){
|
|
|
|
|
+ case <?=RUNE_SET_ID::ENERGY?>:
|
|
|
|
|
+ set_stats['hp'] += (base_stats['hp'] * 0.15);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::GUARD?>:
|
|
|
|
|
+ set_stats['defense'] += (base_stats['defense'] * 0.15);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::BLADE?>:
|
|
|
|
|
+ set_stats['crit_rate'] += 12;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::FOCUS?>:
|
|
|
|
|
+ set_stats['accuracy'] += 20;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::ENDURE?>:
|
|
|
|
|
+ set_stats['resistance'] += 20;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::FIGHT?>:
|
|
|
|
|
+ set_stats['attack'] += (base_stats['attack'] * 0.08);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::DETERMINATION?>:
|
|
|
|
|
+ set_stats['defense'] += (base_stats['defense'] * 0.2);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::ENHANCE?>:
|
|
|
|
|
+ set_stats['hp'] += (base_stats['hp'] * 0.2);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::ACCURACY?>:
|
|
|
|
|
+ set_stats['accuracy'] += 10;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::TOLERANCE?>:
|
|
|
|
|
+ set_stats['resistance'] += 10;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::SWIFT?>:
|
|
|
|
|
+ set_stats['speed'] += (base_stats['speed'] * 0.24);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::RAGE?>:
|
|
|
|
|
+ set_stats['crit_damage'] += 40;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case <?=RUNE_SET_ID::FATAL?>:
|
|
|
|
|
+ set_stats['attack'] += (base_stats['attack'] * 0.35);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// Send the request
|
|
// Send the request
|
|
|
var xhttp = new XMLHttpRequest();
|
|
var xhttp = new XMLHttpRequest();
|
|
@@ -389,81 +543,20 @@
|
|
|
}*/
|
|
}*/
|
|
|
|
|
|
|
|
// Its a valid set, but does it match the requested sets?
|
|
// Its a valid set, but does it match the requested sets?
|
|
|
- var requested_sets = {
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::ENERGY?>': 0, // ENERGY
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::GUARD?>': 0, // GUARD
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::SWIFT?>': 0, // SWIFT
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::BLADE?>': 0, // BLADE
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::RAGE?>': 0, // RAGE
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::FOCUS?>': 0, // FOCUS
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::ENDURE?>': 0, // ENDURE
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::FATAL?>': 0, // FATAL
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::DESPAIR?>': 0, // DESPAIR
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::VAMPIRE?>': 0, // VAMPIRE
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::VIOLENT?>': 0, // VIOLENT
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::NEMESIS?>': 0, // NEMESIS
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::WILL?>': 0, // WILL
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::SHIELD?>': 0, // SHIELD
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::REVENGE?>': 0, // REVENGE
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::DESTROY?>': 0, // DESTROY
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::FIGHT?>': 0, // FIGHT
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::DETERMINATION?>': 0, // DETERMINATION
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::ENHANCE?>': 0, // ENHANCE
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::ACCURACY?>': 0, // ACCURACY
|
|
|
|
|
- 'RUNE_SET_<?=RUNE_SET_ID::TOLERANCE?>': 0 // TOLERANCE
|
|
|
|
|
- };
|
|
|
|
|
- var selected_1 = document.getElementById('set_1').options[document.getElementById('set_1').selectedIndex].value;
|
|
|
|
|
- var selected_2 = document.getElementById('set_2').options[document.getElementById('set_2').selectedIndex].value;
|
|
|
|
|
- var selected_3 = document.getElementById('set_3').options[document.getElementById('set_3').selectedIndex].value;
|
|
|
|
|
- var requested_values = [
|
|
|
|
|
- document.getElementById('set_1').options[document.getElementById('set_1').selectedIndex].value,
|
|
|
|
|
- document.getElementById('set_2').options[document.getElementById('set_2').selectedIndex].value,
|
|
|
|
|
- document.getElementById('set_3').options[document.getElementById('set_3').selectedIndex].value
|
|
|
|
|
- ];
|
|
|
|
|
- for (var i = 0; i < 3; i ++){
|
|
|
|
|
- switch (requested_values[i]){
|
|
|
|
|
- case '<?=RUNE_SET_ID::ENERGY?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::GUARD?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::NEMESIS?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::BLADE?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::FOCUS?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::ENDURE?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::WILL?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::SHIELD?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::REVENGE?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::DESTROY?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::FIGHT?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::DETERMINATION?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::ENHANCE?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::ACCURACY?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::TOLERANCE?>':
|
|
|
|
|
- requested_sets['RUNE_SET_' + requested_values[i]] += 2;
|
|
|
|
|
- break;
|
|
|
|
|
- case '<?=RUNE_SET_ID::DESPAIR?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::SWIFT?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::RAGE?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::FATAL?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::VAMPIRE?>':
|
|
|
|
|
- case '<?=RUNE_SET_ID::VIOLENT?>':
|
|
|
|
|
- requested_sets['RUNE_SET_' + i] += 4;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
if (JSON.stringify(sets) !== JSON.stringify(requested_sets)){
|
|
if (JSON.stringify(sets) !== JSON.stringify(requested_sets)){
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Compare with filters
|
|
// Compare with filters
|
|
|
var new_stats = {
|
|
var new_stats = {
|
|
|
- "ATK": base_stats["attack"],
|
|
|
|
|
- "DEF": base_stats["defense"],
|
|
|
|
|
- "HP": base_stats["hp"],
|
|
|
|
|
- "SPD": base_stats["speed"],
|
|
|
|
|
- "CRR": base_stats["crit_rate"],
|
|
|
|
|
- "CRD": base_stats["crit_damage"],
|
|
|
|
|
- "ACC": base_stats["accuracy"],
|
|
|
|
|
- "RES": base_stats["resistance"],
|
|
|
|
|
|
|
+ "ATK": base_stats["attack"] + set_stats["attack"],
|
|
|
|
|
+ "DEF": base_stats["defense"] + set_stats["defense"],
|
|
|
|
|
+ "HP": base_stats["hp"] + set_stats["hp"],
|
|
|
|
|
+ "SPD": base_stats["speed"] + set_stats["speed"],
|
|
|
|
|
+ "CRR": base_stats["crit_rate"] + set_stats["crit_rate"],
|
|
|
|
|
+ "CRD": base_stats["crit_damage"] + set_stats["crit_damage"],
|
|
|
|
|
+ "ACC": base_stats["accuracy"] + set_stats["accuracy"],
|
|
|
|
|
+ "RES": base_stats["resistance"] + set_stats["resistance"],
|
|
|
"EHP": 0,
|
|
"EHP": 0,
|
|
|
"DMG": 0
|
|
"DMG": 0
|
|
|
}
|
|
}
|
|
@@ -675,6 +768,17 @@
|
|
|
var text;
|
|
var text;
|
|
|
for (i = 0; i < data.length; i++){
|
|
for (i = 0; i < data.length; i++){
|
|
|
option = data[i];
|
|
option = data[i];
|
|
|
|
|
+
|
|
|
|
|
+ // Add the rune set stats
|
|
|
|
|
+ option.stats.attack += set_stats['attack'];
|
|
|
|
|
+ option.stats.defense += set_stats['defense'];
|
|
|
|
|
+ option.stats.hp += set_stats['hp'];
|
|
|
|
|
+ option.stats.speed += set_stats['speed'];
|
|
|
|
|
+ option.stats.crit_rate += set_stats['crit_rate'];
|
|
|
|
|
+ option.stats.crit_damage += set_stats['crit_damage'];
|
|
|
|
|
+ option.stats.accuracy += set_stats['accuracy'];
|
|
|
|
|
+ option.stats.resistance += set_stats['resistance'];
|
|
|
|
|
+
|
|
|
tr = document.createElement('tr');
|
|
tr = document.createElement('tr');
|
|
|
td = document.createElement('td');
|
|
td = document.createElement('td');
|
|
|
td.setAttribute('class', 'option_stats');
|
|
td.setAttribute('class', 'option_stats');
|