User:Caledor92/Sandbox3/doc

From Dragalia Lost Wiki
< User:Caledor92/Sandbox3
Revision as of 18:29, 29 October 2019 by >Caledor92
Jump to navigation Jump to search
50px Documentation

<script type="text/javascript"> // Constants const LB_COUNT = ; const MIN_LEVEL = 1; const MAX_LEVEL = 80; const LB_MAX_LEVEL = 100; const MIN_HP = [,,]; const MAX_HP = ; const MIN_STR = [,,]; const MAX_STR = ; const NAT_RARITY = ;;

// Load modules, init, etc. document.addEventListener("DOMContentLoaded", function(event) {

 init();
 calcStats();

});

// Initialize the empty divs with content function init() {

 if (NAT_RARITY == 3) {
   document.getElementById("adv-rarity-input-3").innerHTML = '<input type="radio" value=3 name="rarity" oninput="calcStats()"><label for="adv-rarity-input-3">3★</label>';
   document.getElementById("adv-rarity-input-4").innerHTML = '<input type="radio" value=4 name="rarity" oninput="calcStats()"><label for="adv-rarity-input-4">4★</label>';
 } else if (NAT_RARITY == 4) {
   document.getElementById("adv-rarity-input-4").innerHTML = '<input type="radio" value=4 name="rarity" oninput="calcStats()"><label for="adv-rarity-input-4">4★</label>';
 }
 document.getElementById("adv-rarity-input-5").innerHTML = '<input type="radio" value=5 name="rarity" oninput="calcStats()" checked=1><label for="adv-rarity-input-5">5★</label>';
 if (LB_COUNT > 4) {
   document.getElementById("adv-rarity-input-s").innerHTML = '<input type="radio" value=s name="rarity" oninput="calcStats()" checked=1><label for="adv-rarity-input-s">S★</label>';
   document.getElementById("adv-level-input").innerHTML = '<label for="adv-level-input-field" style="font-weight:bold;">Level</label><input type="number" id="adv-level-input-field" value=100 min=1 max=100 style="width:40px; text-align:center; margin-left:5px;" oninput="calcStats()">';
 } else {
   document.getElementById("adv-level-input").innerHTML = '<label for="adv-level-input-field" style="font-weight:bold;">Level</label><input type="number" id="adv-level-input-field" value=80 min=1 max=80 style="width:40px; text-align:center; margin-left:5px;" oninput="calcStats()">';
 }

}

// Calculate the HP and STR stats function calcStats() {

 // Get the level and rarity
 var levelInput = document.getElementById('adv-level-input-field');
 var level = levelInput.value;
 var rarity = document.querySelector('input[name = "rarity"]:checked').value;
 // Manually set the level cap if we're dealing with a lower rarity
 switch (rarity) {
   case "3":
     if (level > 60) {
       level = 60;
       levelInput.value = "60";
     }
     break;
   case "4":
     if (level > 70) {
       level = 70;
       levelInput.value = "70";
     }
     break;
   case "5":
     if (level > MAX_LEVEL) {
       level = MAX_LEVEL;
       levelInput.value = MAX_LEVEL;
     }
     break;
   case "s":
     if (level > LB_MAX_LEVEL) {
       level = LB_MAX_LEVEL;
       levelInput.value = LB_MAX_LEVEL;
     }
 }
 
 // Validate the level and rarity before calculating HP and Str
 if(validateLevel(level) && validateRarity(rarity)) {
   setHP(calculateHP(level, rarity), level)
   setStr(calculateStr(level, rarity), level)
 } else {
   setHP("-");
   setStr("-");
 }

}

// Check if level is a number we can calculate with function validateLevel(value) {

 if(isNaN(value) || value == "") {
   return false;
 }
 return true;

}

// Check if rarity is either 3, 4, or 5 function validateRarity(rarity) {

 if(rarity == 3 || rarity == 4 || rarity == 5 || rarity == "3" || rarity == "4" || rarity == "5" || rarity == "s" || rarity == "S") {
   return true;
 }
 return false;

}

// Set the HP value in the display function setHP(value, level) {

 if (value != "-") {
   document.getElementById("adv-hp-label").innerHTML = "Level " + level + " HP"
 } else {
   document.getElementById("adv-hp-label").innerHTML = "HP"
 }
 document.getElementById("adv-hp").innerHTML = value;

}

// Set the Str value in the display function setStr(value, level) {

 if (value != "-") {
   document.getElementById("adv-str-label").innerHTML = "Level " + level + " Str"
 } else {
   document.getElementById("adv-str-label").innerHTML = "Str"
 }
 document.getElementById("adv-str").innerHTML = value;

}

// Calculate the HP function calculateHP(level, rarity) {

 var levelDiff = MAX_LEVEL - MIN_LEVEL;
 var steps = (MAX_HP - MIN_HP[2]) / levelDiff;
 var statGain = (level-1) * steps;
 return Math.ceil(MIN_HP[rarity-3] + statGain);

}

// Calculate the Str function calculateStr(level, rarity) {

 var levelDiff = MAX_LEVEL - MIN_LEVEL;
 var steps = (MAX_STR - MIN_STR[2]) / levelDiff;
 var statGain = (level-1) * steps;
 return Math.ceil(MIN_STR[rarity-3] + statGain);

} </script>

 <form id="adv-rarity-select" style="display:inline;">
 </form>
Max 5★ HP:
Max 5★ Str:

Shapeshift Prep