|
@@ -38,6 +38,22 @@
|
|
|
<meta name='twitter:url' content='<?=$page->canonical?>'/>
|
|
<meta name='twitter:url' content='<?=$page->canonical?>'/>
|
|
|
<meta name='robots' content='index follow'/>
|
|
<meta name='robots' content='index follow'/>
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Unit current stats.
|
|
|
|
|
+ */
|
|
|
|
|
+ var current_stats = {
|
|
|
|
|
+ "attack": <?=$page->unit->total_attack?>,
|
|
|
|
|
+ "defense": <?=$page->unit->total_defense?>,
|
|
|
|
|
+ "hp": <?=$page->unit->total_hp?>,
|
|
|
|
|
+ "speed": <?=$page->unit->total_speed?>,
|
|
|
|
|
+ "crit_rate": <?=$page->unit->total_crit_rate?>,
|
|
|
|
|
+ "crit_damage": <?=$page->unit->total_crit_damage?>,
|
|
|
|
|
+ "accuracy": <?=$page->unit->total_accuracy?>,
|
|
|
|
|
+ "resistance": <?=$page->unit->total_resistance?>,
|
|
|
|
|
+ "ehp": <?=$page->unit->effective_hp?>,
|
|
|
|
|
+ "dmg": <?=$page->unit->effective_dmg?>
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Updates the value next to the sliders when they change.
|
|
* Updates the value next to the sliders when they change.
|
|
@@ -45,8 +61,20 @@
|
|
|
* @param stat Name of the stat to set.
|
|
* @param stat Name of the stat to set.
|
|
|
* @param value Value of the slider.
|
|
* @param value Value of the slider.
|
|
|
*/
|
|
*/
|
|
|
- function updateMinValue(stat, value){
|
|
|
|
|
- document.getElementById('lbl_min_' + stat).innerHTML = value;
|
|
|
|
|
|
|
+ function updateMinValue(stat, element){
|
|
|
|
|
+ var value = Number(element.value);
|
|
|
|
|
+ var max = Number(element.max);
|
|
|
|
|
+ var min = Number(element.min);
|
|
|
|
|
+ if (value < min){
|
|
|
|
|
+ value = min;
|
|
|
|
|
+ console.log("Correcting for min: " + value + "/" + min);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (value > max){
|
|
|
|
|
+ console.log("Correcting for max: " + value + "/" + max);
|
|
|
|
|
+ value = max;
|
|
|
|
|
+ }
|
|
|
|
|
+ document.getElementById('lbl_min_' + stat).value = value;
|
|
|
|
|
+ document.getElementById('min_' + stat).value = value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -99,59 +127,472 @@
|
|
|
params += '&tuning=' + document.getElementById('tuning').options[document.getElementById('tuning').selectedIndex].value;
|
|
params += '&tuning=' + document.getElementById('tuning').options[document.getElementById('tuning').selectedIndex].value;
|
|
|
|
|
|
|
|
// Min HP - Optional
|
|
// Min HP - Optional
|
|
|
- if (document.getElementById('min_hp').value > document.getElementById('min_hp').min){
|
|
|
|
|
|
|
+ if (Number(document.getElementById('min_hp').value) > Number(document.getElementById('min_hp').min)){
|
|
|
params += '&min_hp=' + document.getElementById('min_hp').value;
|
|
params += '&min_hp=' + document.getElementById('min_hp').value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Min ATK - Optional
|
|
// Min ATK - Optional
|
|
|
- if (document.getElementById('min_attack').value > document.getElementById('min_attack').min){
|
|
|
|
|
|
|
+ if (Number(document.getElementById('min_attack').value) > Number(document.getElementById('min_attack').min)){
|
|
|
params += '&min_attack=' + document.getElementById('min_attack').value;
|
|
params += '&min_attack=' + document.getElementById('min_attack').value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Min DEF - Optional
|
|
// Min DEF - Optional
|
|
|
- if (document.getElementById('min_defense').value > document.getElementById('min_defense').min){
|
|
|
|
|
|
|
+ if (Number(document.getElementById('min_defense').value) > Number(document.getElementById('min_defense').min)){
|
|
|
params += '&min_defense=' + document.getElementById('min_defense').value;
|
|
params += '&min_defense=' + document.getElementById('min_defense').value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Min SPD - Optional
|
|
// Min SPD - Optional
|
|
|
- if (document.getElementById('min_speed').value > document.getElementById('min_speed').min){
|
|
|
|
|
|
|
+ if (Number(document.getElementById('min_speed').value) > Number(document.getElementById('min_speed').min)){
|
|
|
params += '&min_speed=' + document.getElementById('min_speed').value;
|
|
params += '&min_speed=' + document.getElementById('min_speed').value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Min CRR - Optional
|
|
// Min CRR - Optional
|
|
|
- if (document.getElementById('min_crit_rate').value > document.getElementById('min_crit_rate').min){
|
|
|
|
|
|
|
+ if (Number(document.getElementById('min_crit_rate').value) > Number(document.getElementById('min_crit_rate').min)){
|
|
|
params += '&min_crit_rate=' + document.getElementById('min_crit_rate').value;
|
|
params += '&min_crit_rate=' + document.getElementById('min_crit_rate').value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Min CRD - Optional
|
|
// Min CRD - Optional
|
|
|
- if (document.getElementById('min_crit_damage').value > document.getElementById('min_crit_damage').min){
|
|
|
|
|
|
|
+ if (Number(document.getElementById('min_crit_damage').value) > Number(document.getElementById('min_crit_damage').min)){
|
|
|
params += '&min_crit_damage=' + document.getElementById('min_crit_damage').value;
|
|
params += '&min_crit_damage=' + document.getElementById('min_crit_damage').value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Min ACC - Optional
|
|
// Min ACC - Optional
|
|
|
- if (document.getElementById('min_accuracy').value > document.getElementById('min_accuracy').min){
|
|
|
|
|
|
|
+ if (Number(document.getElementById('min_accuracy').value) > Number(document.getElementById('min_accuracy').min)){
|
|
|
params += '&min_accuracy=' + document.getElementById('min_accuracy').value;
|
|
params += '&min_accuracy=' + document.getElementById('min_accuracy').value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Min RES - Optional
|
|
// Min RES - Optional
|
|
|
- if (document.getElementById('min_resistance').value > document.getElementById('min_resistance').min){
|
|
|
|
|
|
|
+ if (Number(document.getElementById('min_resistance').value) > Number(document.getElementById('min_resistance').min)){
|
|
|
params += '&min_resistance=' + document.getElementById('min_resistance').value;
|
|
params += '&min_resistance=' + document.getElementById('min_resistance').value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // Min EHP - Optional
|
|
|
|
|
+ if (Number(document.getElementById('min_ehp').value) > 0){
|
|
|
|
|
+ params += '&min_ehp=' + document.getElementById('min_ehp').value;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Min DMG - Optional
|
|
|
|
|
+ if (Number(document.getElementById('min_dmg').value) > 0){
|
|
|
|
|
+ params += '&min_dmg=' + document.getElementById('min_dmg').value;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Send th request
|
|
// Send th request
|
|
|
var xhttp = new XMLHttpRequest();
|
|
var xhttp = new XMLHttpRequest();
|
|
|
xhttp.onreadystatechange = function() {
|
|
xhttp.onreadystatechange = function() {
|
|
|
- if (this.readyState == 4 && this.status == 200) {
|
|
|
|
|
- showOptimizations(this.response);
|
|
|
|
|
|
|
+ if (this.readyState == 4){
|
|
|
|
|
+ if(this.status == 200) {
|
|
|
|
|
+ showOptimizations(this.response, this.status);
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (this.status == 413) { // Payload too large
|
|
|
|
|
+ alert("Over 100 combination found. Plesase narow your criteria and retry.");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
|
|
+ // TODO DEBUG
|
|
|
|
|
+ params = "uid=8114048&unit=6441802832&set[]=1&set[]=1&set[]=4&stat[]=4&stat[]=4&stat[]=4&source=0&tuning=0&min_defense=700";
|
|
|
|
|
+
|
|
|
xhttp.open("POST", "/action/optimize/", true);
|
|
xhttp.open("POST", "/action/optimize/", true);
|
|
|
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
|
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
|
|
xhttp.send(params);
|
|
xhttp.send(params);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- function showOptimizations(content){
|
|
|
|
|
- console.log("RESPONSE: " + content);
|
|
|
|
|
|
|
+ function showOptimizations(content, status){
|
|
|
|
|
+ var container = document.getElementById("optimizations");
|
|
|
|
|
+ while (container.firstChild) {
|
|
|
|
|
+ container.removeChild(container.firstChild);
|
|
|
|
|
+ }
|
|
|
|
|
+ var data = JSON.parse(content);
|
|
|
|
|
+ if (Number(data.total) == 0){
|
|
|
|
|
+ alert("No results");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ var option;
|
|
|
|
|
+ var tr;
|
|
|
|
|
+ var td;
|
|
|
|
|
+ var stat_table;
|
|
|
|
|
+ var stat_tr;
|
|
|
|
|
+ var stat_td;
|
|
|
|
|
+ var span;
|
|
|
|
|
+ var text;
|
|
|
|
|
+ for (i = 0; i < data.options.length; i++){
|
|
|
|
|
+ option = data.options[i];
|
|
|
|
|
+ tr = document.createElement('tr');
|
|
|
|
|
+ td = document.createElement('td');
|
|
|
|
|
+ td.setAttribute('class', 'stats');
|
|
|
|
|
+ stat_table = document.createElement('table');
|
|
|
|
|
+ stat_table.setAttribute('class', 'stat_table');
|
|
|
|
|
+
|
|
|
|
|
+ // attack
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('ATK');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.attack + " ");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.attack) > Number(current_stats["attack"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.attack - current_stats["attack"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.attack) < Number(current_stats["attack"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["attack"] - option.stats.attack);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // defense
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('DEF');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.defense + " ");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.defense) > Number(current_stats["defense"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.defense - current_stats["defense"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.defense) < Number(current_stats["defense"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["defense"] - option.stats.defense);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // hp
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('HP ');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.hp + " ");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.hp) > Number(current_stats["hp"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.hp - current_stats["hp"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.hp) < Number(current_stats["hp"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["hp"] - option.stats.hp);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // speed
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('SPD');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.speed + " ");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.speed) > Number(current_stats["speed"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.speed - current_stats["speed"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.speed) < Number(current_stats["speed"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["speed"] - option.stats.speed);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // crit_rate
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('CRR');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.crit_rate + "%");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.crit_rate) > Number(current_stats["crit_rate"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.crit_rate - current_stats["crit_rate"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.crit_rate) < Number(current_stats["crit_rate"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["crit_rate"] - option.stats.crit_rate);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // crit_damage
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('CRD');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.crit_damage + "%");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.crit_damage) > Number(current_stats["crit_damage"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.crit_damage - current_stats["crit_damage"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.crit_damage) < Number(current_stats["crit_damage"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["crit_damage"] - option.stats.crit_damage);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // accuracy
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('ACC');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.accuracy + "%");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.accuracy) > Number(current_stats["accuracy"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.accuracy - current_stats["accuracy"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.accuracy) < Number(current_stats["accuracy"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["accuracy"] - option.stats.accuracy);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // resistance
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('RES');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.resistance + "%");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.resistance) > Number(current_stats["resistance"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.resistance - current_stats["resistance"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.resistance) < Number(current_stats["resistance"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["resistance"] - option.stats.resistance);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // ehp
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('EHP');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.ehp + " ");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.ehp) > Number(current_stats["ehp"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.ehp - current_stats["ehp"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.ehp) < Number(current_stats["ehp"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["ehp"] - option.stats.ehp);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // dmg
|
|
|
|
|
+ stat_tr = document.createElement('tr');
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'label');
|
|
|
|
|
+ text = document.createTextNode('DMG');
|
|
|
|
|
+ stat_td.appendChild(text);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_td = document.createElement('td');
|
|
|
|
|
+ stat_td.setAttribute('class', 'value');
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ span.setAttribute('class', 'stat');
|
|
|
|
|
+ text = document.createTextNode(option.stats.dmg + " ");
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ span = document.createElement('span');
|
|
|
|
|
+ if (Number(option.stats.dmg) > Number(current_stats["dmg"])){
|
|
|
|
|
+
|
|
|
|
|
+ span.setAttribute('class', 'variation increment');
|
|
|
|
|
+ text = document.createTextNode(option.stats.dmg - current_stats["dmg"]);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (Number(option.stats.dmg) < Number(current_stats["dmg"])){
|
|
|
|
|
+ span.setAttribute('class', 'variation decrement');
|
|
|
|
|
+ text = document.createTextNode(current_stats["dmg"] - option.stats.dmg);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ span.setAttribute('class', 'variation');
|
|
|
|
|
+ text = document.createTextNode(" ");
|
|
|
|
|
+ }
|
|
|
|
|
+ span.appendChild(text);
|
|
|
|
|
+ stat_td.appendChild(span);
|
|
|
|
|
+ stat_tr.appendChild(stat_td);
|
|
|
|
|
+ stat_table.appendChild(stat_tr);
|
|
|
|
|
+
|
|
|
|
|
+ // Add to the main table
|
|
|
|
|
+ td.appendChild(stat_table);
|
|
|
|
|
+ tr.appendChild(td);
|
|
|
|
|
+
|
|
|
|
|
+ // Runes td
|
|
|
|
|
+ td = document.createElement('td');
|
|
|
|
|
+ td.setAttribute('class', 'runes');
|
|
|
|
|
+ td.innerHTML += option.runes[6 - 1].html;
|
|
|
|
|
+ td.innerHTML += option.runes[1 - 1].html;
|
|
|
|
|
+ td.innerHTML += option.runes[2 - 1].html;
|
|
|
|
|
+ td.innerHTML += "<br/>";
|
|
|
|
|
+ td.innerHTML += option.runes[5 - 1].html;
|
|
|
|
|
+ td.innerHTML += option.runes[4 - 1].html;
|
|
|
|
|
+ td.innerHTML += option.runes[3 - 1].html;
|
|
|
|
|
+
|
|
|
|
|
+ // Add the table
|
|
|
|
|
+ tr.appendChild(td);
|
|
|
|
|
+ container.appendChild(tr);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
|
</head>
|
|
</head>
|
|
@@ -209,16 +650,6 @@
|
|
|
?>
|
|
?>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
-<?php
|
|
|
|
|
- $building_attack = floor(($page->unit->attack * $page->building_stats["atk"] / 100) + ($page->unit->attack * $page->building_stats["elm"][$page->unit->unit->element] / 100));
|
|
|
|
|
- $building_defense = floor($page->building_stats["def"] * $page->unit->defense / 100);
|
|
|
|
|
- $building_hp = floor($page->building_stats["hp"] * $page->unit->hp / 100);
|
|
|
|
|
- $building_speed = $page->building_stats["spd"];
|
|
|
|
|
- $building_crit_rate = 0;
|
|
|
|
|
- $building_crit_damage = $page->building_stats["crd"];
|
|
|
|
|
- $building_accuracy = 0;
|
|
|
|
|
- $building_resistance = 0;
|
|
|
|
|
-?>
|
|
|
|
|
<table id='stats'>
|
|
<table id='stats'>
|
|
|
<tr>
|
|
<tr>
|
|
|
<th>
|
|
<th>
|
|
@@ -246,18 +677,23 @@
|
|
|
</th>
|
|
</th>
|
|
|
<td class='base'>
|
|
<td class='base'>
|
|
|
<?=$page->unit->attack?>
|
|
<?=$page->unit->attack?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
+<?=$page->unit->rune_attack?>
|
|
+<?=$page->unit->rune_attack?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$page->artifact_stats["atk"]?>
|
|
|
|
|
|
|
+ +<?=$page->unit->artifact_attack?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$building_attack?>
|
|
|
|
|
|
|
+ +<?=$page->unit->building_attack?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='total'>
|
|
<td class='total'>
|
|
|
- <?=$page->unit->attack + $page->unit->rune_attack + $building_attack + $page->artifact_stats["atk"]?>
|
|
|
|
|
|
|
+ <?=$page->unit->total_attack?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -266,18 +702,23 @@
|
|
|
</th>
|
|
</th>
|
|
|
<td class='base'>
|
|
<td class='base'>
|
|
|
<?=$page->unit->defense?>
|
|
<?=$page->unit->defense?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
+<?=$page->unit->rune_defense?>
|
|
+<?=$page->unit->rune_defense?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$page->artifact_stats["def"]?>
|
|
|
|
|
|
|
+ +<?=$page->unit->artifact_defense?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$building_defense?>
|
|
|
|
|
|
|
+ +<?=$page->unit->building_defense?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='total'>
|
|
<td class='total'>
|
|
|
- <?=$page->unit->defense + $page->unit->rune_defense + $building_defense + $page->artifact_stats["def"]?>
|
|
|
|
|
|
|
+ <?=$page->unit->total_defense?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -286,18 +727,23 @@
|
|
|
</th>
|
|
</th>
|
|
|
<td class='base'>
|
|
<td class='base'>
|
|
|
<?=$page->unit->hp?>
|
|
<?=$page->unit->hp?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
+<?=$page->unit->rune_hp?>
|
|
+<?=$page->unit->rune_hp?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$page->artifact_stats["hp"]?>
|
|
|
|
|
|
|
+ +<?=$page->unit->artifact_hp?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$building_hp?>
|
|
|
|
|
|
|
+ +<?=$page->unit->building_hp?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='total'>
|
|
<td class='total'>
|
|
|
- <?=$page->unit->hp + $page->unit->rune_hp + $building_hp + $page->artifact_stats["hp"]?>
|
|
|
|
|
|
|
+ <?=$page->unit->total_hp?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -306,18 +752,23 @@
|
|
|
</th>
|
|
</th>
|
|
|
<td class='base'>
|
|
<td class='base'>
|
|
|
<?=$page->unit->speed?>
|
|
<?=$page->unit->speed?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
+<?=$page->unit->rune_speed?>
|
|
+<?=$page->unit->rune_speed?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +0
|
|
|
|
|
|
|
+ +<?=$page->unit->artifact_speed?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$building_speed?>
|
|
|
|
|
|
|
+ +<?=$page->unit->building_speed?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='total'>
|
|
<td class='total'>
|
|
|
- <?=$page->unit->speed + $page->unit->rune_speed + $building_speed?>
|
|
|
|
|
|
|
+ <?=$page->unit->total_speed?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -325,19 +776,24 @@
|
|
|
CRR
|
|
CRR
|
|
|
</th>
|
|
</th>
|
|
|
<td class='base'>
|
|
<td class='base'>
|
|
|
- <?=$page->unit->crit_rate?>%
|
|
|
|
|
|
|
+ <?=$page->unit->crit_rate?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$page->unit->rune_crit_rate?>%
|
|
|
|
|
|
|
+ +<?=$page->unit->rune_crit_rate?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +0%
|
|
|
|
|
|
|
+ +<?=$page->unit->artifact_crit_rate?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$building_crit_rate?>%
|
|
|
|
|
|
|
+ +<?=$page->unit->building_crit_rate?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='total'>
|
|
<td class='total'>
|
|
|
- <?=$page->unit->crit_rate + $page->unit->rune_crit_rate + $building_crit_rate?>%
|
|
|
|
|
|
|
+ <?=$page->unit->total_crit_rate?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -345,19 +801,24 @@
|
|
|
CRD
|
|
CRD
|
|
|
</th>
|
|
</th>
|
|
|
<td class='base'>
|
|
<td class='base'>
|
|
|
- <?=$page->unit->crit_damage?>%
|
|
|
|
|
|
|
+ <?=$page->unit->crit_damage?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$page->unit->rune_crit_damage?>%
|
|
|
|
|
|
|
+ +<?=$page->unit->rune_crit_damage?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +0%
|
|
|
|
|
|
|
+ +<?=$page->unit->artifact_crit_damage?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$building_crit_damage?>%
|
|
|
|
|
|
|
+ +<?=$page->unit->building_crit_damage?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='total'>
|
|
<td class='total'>
|
|
|
- <?=$page->unit->crit_damage + $page->unit->rune_crit_damage + $building_crit_damage?>%
|
|
|
|
|
|
|
+ <?=$page->unit->total_crit_damage?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -365,19 +826,24 @@
|
|
|
ACC
|
|
ACC
|
|
|
</th>
|
|
</th>
|
|
|
<td class='base'>
|
|
<td class='base'>
|
|
|
- <?=$page->unit->accuracy?>%
|
|
|
|
|
|
|
+ <?=$page->unit->accuracy?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$page->unit->rune_accuracy?>%
|
|
|
|
|
|
|
+ +<?=$page->unit->rune_accuracy?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +0%
|
|
|
|
|
|
|
+ +<?=$page->unit->artifact_accuracy?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$building_accuracy?>%
|
|
|
|
|
|
|
+ +<?=$page->unit->building_accuracy?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='total'>
|
|
<td class='total'>
|
|
|
- <?=$page->unit->accuracy + $page->unit->rune_accuracy + $building_accuracy?>%
|
|
|
|
|
|
|
+ <?=$page->unit->total_accuracy?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -385,19 +851,42 @@
|
|
|
RES
|
|
RES
|
|
|
</th>
|
|
</th>
|
|
|
<td class='base'>
|
|
<td class='base'>
|
|
|
- <?=$page->unit->resistance?>%
|
|
|
|
|
|
|
+ <?=$page->unit->resistance?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$page->unit->rune_resistance?>%
|
|
|
|
|
|
|
+ +<?=$page->unit->rune_resistance?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +0%
|
|
|
|
|
|
|
+ +<?=$page->unit->artifact_resistance?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='extra'>
|
|
<td class='extra'>
|
|
|
- +<?=$building_resistance?>%
|
|
|
|
|
|
|
+ +<?=$page->unit->building_resistance?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class='total'>
|
|
|
|
|
+ <?=$page->unit->total_resistance?>
|
|
|
|
|
+ <span class='percent'>%</span>
|
|
|
</td>
|
|
</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <th colspan='5'>
|
|
|
|
|
+ Effective HP
|
|
|
|
|
+ </th>
|
|
|
|
|
+ <td class='total'>
|
|
|
|
|
+ <?=$page->unit->effective_hp?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <th colspan='5'>
|
|
|
|
|
+ Effective DMG
|
|
|
|
|
+ </th>
|
|
|
<td class='total'>
|
|
<td class='total'>
|
|
|
- <?=$page->unit->resistance + $page->unit->rune_resistance + $building_resistance?>%
|
|
|
|
|
|
|
+ <?=$page->unit->effective_dmg?>
|
|
|
|
|
+ <span class='percent'> </span>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
</table>
|
|
</table>
|
|
@@ -415,7 +904,7 @@
|
|
|
$total_stars = 0;
|
|
$total_stars = 0;
|
|
|
$total_value = 0;
|
|
$total_value = 0;
|
|
|
$total_runes = 0;
|
|
$total_runes = 0;
|
|
|
- $show_list = [6, 1, 2, 3, 4, 5];
|
|
|
|
|
|
|
+ $show_list = [6, 1, 2, 5, 4, 3];
|
|
|
//foreach ($page->unit->rune as $rune){
|
|
//foreach ($page->unit->rune as $rune){
|
|
|
foreach ($show_list as $i){
|
|
foreach ($show_list as $i){
|
|
|
$rune = $page->unit->rune[$i - 1];
|
|
$rune = $page->unit->rune[$i - 1];
|
|
@@ -520,7 +1009,7 @@
|
|
|
$selected = "selected='selected'";
|
|
$selected = "selected='selected'";
|
|
|
}
|
|
}
|
|
|
?>
|
|
?>
|
|
|
- <option value='<?=$id?>' <?=$selected?>><?=$name?></option>
|
|
|
|
|
|
|
+ <option value='<?=$id?>' <?=$selected?>><?=substr($name, 0, 7)?></option>
|
|
|
<?php
|
|
<?php
|
|
|
}
|
|
}
|
|
|
?>
|
|
?>
|
|
@@ -533,7 +1022,7 @@
|
|
|
$selected = "selected='selected'";
|
|
$selected = "selected='selected'";
|
|
|
}
|
|
}
|
|
|
?>
|
|
?>
|
|
|
- <option value='<?=$id?>' <?=$selected?>><?=$name?></option>
|
|
|
|
|
|
|
+ <option value='<?=$id?>' <?=$selected?>><?=substr($name, 0, 7)?></option>
|
|
|
<?php
|
|
<?php
|
|
|
}
|
|
}
|
|
|
?>
|
|
?>
|
|
@@ -547,7 +1036,7 @@
|
|
|
$selected = "selected='selected'";
|
|
$selected = "selected='selected'";
|
|
|
}
|
|
}
|
|
|
?>
|
|
?>
|
|
|
- <option value='<?=$id?>' <?=$selected?>><?=$name?></option>
|
|
|
|
|
|
|
+ <option value='<?=$id?>' <?=$selected?>><?=substr($name, 0, 7)?></option>
|
|
|
<?php
|
|
<?php
|
|
|
}
|
|
}
|
|
|
?>
|
|
?>
|
|
@@ -559,8 +1048,8 @@
|
|
|
Min HP
|
|
Min HP
|
|
|
</td>
|
|
</td>
|
|
|
<td class='value'>
|
|
<td class='value'>
|
|
|
- <input id='min_hp' type='range' value='<?=$page->unit->hp?>' value='<?=$page->unit->hp?>' min='<?=$page->unit->hp?>' max='50000' oninput='updateMinValue("hp", this.value);'>
|
|
|
|
|
- <span id='lbl_min_hp'><?=$page->unit->hp?></span>
|
|
|
|
|
|
|
+ <input id='min_hp' type='range' value='<?=$page->unit->total_hp?>' min='<?=$page->unit->hp?>' max='50000' oninput='updateMinValue("hp", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_hp' value='<?=$page->unit->total_hp?>' min='<?=$page->unit->hp?>' max='50000' onChange='updateMinValue("hp", this);'></input>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -595,8 +1084,8 @@
|
|
|
Min ATK
|
|
Min ATK
|
|
|
</td>
|
|
</td>
|
|
|
<td class='value'>
|
|
<td class='value'>
|
|
|
- <input id='min_attack' type='range' value='<?=$page->unit->attack?>' value='<?=$page->unit->attack?>' min='<?=$page->unit->attack?>' max='10000' oninput='updateMinValue("attack", this.value);'>
|
|
|
|
|
- <span id='lbl_min_attack'><?=$page->unit->attack?></span>
|
|
|
|
|
|
|
+ <input id='min_attack' type='range' value='<?=$page->unit->total_attack?>' min='<?=$page->unit->attack?>' max='4000' oninput='updateMinValue("attack", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_attack' value='<?=$page->unit->total_attack?>' min='<?=$page->unit->attack?>' max='4000' onChange='updateMinValue("attack", this);'></input>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -618,8 +1107,8 @@
|
|
|
Min DEF
|
|
Min DEF
|
|
|
</td>
|
|
</td>
|
|
|
<td class='value'>
|
|
<td class='value'>
|
|
|
- <input id='min_defense' type='range' value='<?=$page->unit->defense?>' value='<?=$page->unit->defense?>' min='<?=$page->unit->defense?>' max='10000' oninput='updateMinValue("defense", this.value);'>
|
|
|
|
|
- <span id='lbl_min_defense'><?=$page->unit->defense?></span>
|
|
|
|
|
|
|
+ <input id='min_defense' type='range' value='<?=$page->unit->total_defense?>' min='<?=$page->unit->defense?>' max='4000' oninput='updateMinValue("defense", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_defense' value='<?=$page->unit->total_defense?>' min='<?=$page->unit->defense?>' max='4000' onChange='updateMinValue("defense", this);'></input>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -640,8 +1129,8 @@
|
|
|
Min SPD
|
|
Min SPD
|
|
|
</td>
|
|
</td>
|
|
|
<td class='value'>
|
|
<td class='value'>
|
|
|
- <input id='min_speed' type='range' value='<?=$page->unit->speed?>' value='<?=$page->unit->speed?>' min='<?=$page->unit->speed?>' max='400' oninput='updateMinValue("speed", this.value);'>
|
|
|
|
|
- <span id='lbl_min_speed'><?=$page->unit->speed?></span>
|
|
|
|
|
|
|
+ <input id='min_speed' type='range' value='<?=$page->unit->total_speed?>' min='<?=$page->unit->speed?>' max='400' oninput='updateMinValue("speed", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_speed' value='<?=$page->unit->total_speed?>' min='<?=$page->unit->speed?>' max='400' onChange='updateMinValue("speed", this);'></input>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -655,8 +1144,8 @@
|
|
|
Min CRR
|
|
Min CRR
|
|
|
</td>
|
|
</td>
|
|
|
<td class='value'>
|
|
<td class='value'>
|
|
|
- <input id='min_crit_rate' type='range' value='<?=$page->unit->crit_rate?>' value='<?=$page->unit->crit_rate?>' min='<?=$page->unit->crit_rate?>' max='100' oninput='updateMinValue("crit_rate", this.value);'>
|
|
|
|
|
- <span id='lbl_min_crit_rate'><?=$page->unit->crit_rate?></span>
|
|
|
|
|
|
|
+ <input id='min_crit_rate' type='range' value='<?=$page->unit->total_crit_rate?>' min='<?=$page->unit->crit_rate?>' max='100' oninput='updateMinValue("crit_rate", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_crit_rate' value='<?=$page->unit->total_crit_rate?>' min='<?=$page->unit->crit_rate?>' max='100' onChange='updateMinValue("crit_rate", this);'></input>%
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -670,8 +1159,8 @@
|
|
|
Min CRD
|
|
Min CRD
|
|
|
</td>
|
|
</td>
|
|
|
<td class='value'>
|
|
<td class='value'>
|
|
|
- <input id='min_crit_damage' type='range' value='<?=$page->unit->crit_damage?>' value='<?=$page->unit->crit_damage?>' min='<?=$page->unit->crit_damage?>' max='400' oninput='updateMinValue("crit_damage", this.value);'>
|
|
|
|
|
- <span id='lbl_min_crit_damage'><?=$page->unit->crit_damage?></span>
|
|
|
|
|
|
|
+ <input id='min_crit_damage' type='range' value='<?=$page->unit->total_crit_damage?>' min='<?=$page->unit->crit_damage?>' max='400' oninput='updateMinValue("crit_damage", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_crit_damage' value='<?=$page->unit->total_crit_damage?>' min='<?=$page->unit->crit_damage?>' max='400' onChange='updateMinValue("crit_damage", this);'></input>%
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -685,8 +1174,38 @@
|
|
|
Min ACC
|
|
Min ACC
|
|
|
</td>
|
|
</td>
|
|
|
<td class='value'>
|
|
<td class='value'>
|
|
|
- <input id='min_accuracy' type='range' value='<?=$page->unit->accuracy?>' value='<?=$page->unit->accuracy?>' min='<?=$page->unit->accuracy?>' max='85' oninput='updateMinValue("accuracy", this.value);'>
|
|
|
|
|
- <span id='lbl_min_accuracy'><?=$page->unit->accuracy?></span>
|
|
|
|
|
|
|
+ <input id='min_accuracy' type='range' value='<?=$page->unit->total_accuracy?>' min='<?=$page->unit->accuracy?>' max='85' oninput='updateMinValue("accuracy", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_accuracy' value='<?=$page->unit->total_accuracy?>' min='<?=$page->unit->accuracy?>' max='85' onChange='updateMinValue("accuracy", this);'></input>%
|
|
|
|
|
+ </td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td class='empty'>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class='empty'>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class='empty'>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class='name'>
|
|
|
|
|
+ Min RES
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class='value'>
|
|
|
|
|
+ <input id='min_resistance' type='range' value='<?=$page->unit->total_resistance?>' min='<?=$page->unit->resistance?>' max='85' oninput='updateMinValue("resistance", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_resistance' value='<?=$page->unit->total_resistance?>' min='<?=$page->unit->resistance?>' max='85' onChange='updateMinValue("resistance", this);'></input>%
|
|
|
|
|
+ </td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td class='empty'>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class='empty'>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class='empty'>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class='name'>
|
|
|
|
|
+ Min EHP
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class='value'>
|
|
|
|
|
+ <input id='min_ehp' type='range' value='<?=$page->unit->effective_hp?>' min='0' max='200000' oninput='updateMinValue("ehp", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_ehp' value='<?=$page->unit->effective_hp?>' min='0' max='200000' onChange='updateMinValue("ehp", this);'></input>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -698,13 +1217,28 @@
|
|
|
<td class='empty'>
|
|
<td class='empty'>
|
|
|
</td>
|
|
</td>
|
|
|
<td class='name'>
|
|
<td class='name'>
|
|
|
- Min RES
|
|
|
|
|
|
|
+ Min DMG
|
|
|
</td>
|
|
</td>
|
|
|
<td class='value'>
|
|
<td class='value'>
|
|
|
- <input id='min_resistance' type='range' value='<?=$page->unit->resistance?>' value='<?=$page->unit->resistance?>' min='<?=$page->unit->resistance?>' max='100' oninput='updateMinValue("resistance", this.value);'>
|
|
|
|
|
- <span id='lbl_min_resistance'><?=$page->unit->resistance?></span>
|
|
|
|
|
|
|
+ <input id='min_dmg' type='range' value='<?=$page->unit->effective_dmg?>' min='0' max='7000' oninput='updateMinValue("dmg", this);'>
|
|
|
|
|
+ <input type='number' id='lbl_min_dmg' value='<?=$page->unit->effective_dmg?>' min='0' max='7000' onChange='updateMinValue("dmg", this);'></input>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ </table>
|
|
|
|
|
+ </article>
|
|
|
|
|
+ </section>
|
|
|
|
|
+ <section id='results' class='content'>
|
|
|
|
|
+ <h2>
|
|
|
|
|
+ Optimization results
|
|
|
|
|
+ </h2>
|
|
|
|
|
+ <article>
|
|
|
|
|
+ <table>
|
|
|
|
|
+ <tbody id='optimizations'>
|
|
|
|
|
+ </tbody>
|
|
|
</table>
|
|
</table>
|
|
|
</article>
|
|
</article>
|
|
|
</section>
|
|
</section>
|