Add poison damage, merge changes, improve powder display
This commit is contained in:
commit
615ec62570
5 changed files with 164 additions and 85 deletions
10
build.js
10
build.js
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
const baseDamageMultiplier = [ 0.51, 0.83, 1.5, 2.05, 2.5, 3.1, 4.3 ];
|
const baseDamageMultiplier = [ 0.51, 0.83, 1.5, 2.05, 2.5, 3.1, 4.3 ];
|
||||||
const attackSpeeds = ["SUPER_SLOW", "VERY_SLOW", "SLOW", "NORMAL", "FAST", "VERY_FAST", "SUPER_FAST"];
|
const attackSpeeds = ["SUPER_SLOW", "VERY_SLOW", "SLOW", "NORMAL", "FAST", "VERY_FAST", "SUPER_FAST"];
|
||||||
const classDefenseMultipliers = new Map([ ["relik",0.60], ["bow",0.60], ["wand", 0.80], ["assassin", 1.0], ["spear",1.20] ]);
|
const classDefenseMultipliers = new Map([ ["relik",0.60], ["bow",0.60], ["wand", 0.80], ["dagger", 1.0], ["spear",1.20] ]);
|
||||||
|
|
||||||
/*Turns the input amount of skill points into a float precision percentage.
|
/*Turns the input amount of skill points into a float precision percentage.
|
||||||
* @param skp - the integer skillpoint count to be converted
|
* @param skp - the integer skillpoint count to be converted
|
||||||
|
@ -175,19 +175,21 @@ class Build{
|
||||||
// 0 for melee damage.
|
// 0 for melee damage.
|
||||||
let results = calculateSpellDamage(stats, [100, 0, 0, 0, 0, 0], stats.get("mdRaw"), stats.get("mdPct"), 0, this.weapon, this.total_skillpoints);
|
let results = calculateSpellDamage(stats, [100, 0, 0, 0, 0, 0], stats.get("mdRaw"), stats.get("mdPct"), 0, this.weapon, this.total_skillpoints);
|
||||||
|
|
||||||
//TODO: Account for strength (this.damageMultiplier).
|
let dex = this.total_skillpoints[1];
|
||||||
|
|
||||||
let totalDamNorm = results[0];
|
let totalDamNorm = results[0];
|
||||||
let totalDamCrit = results[1];
|
let totalDamCrit = results[1];
|
||||||
|
totalDamNorm.push(1-skillPointsToPercentage(dex));
|
||||||
|
totalDamCrit.push(skillPointsToPercentage(dex));
|
||||||
let damages_results = results[2];
|
let damages_results = results[2];
|
||||||
|
|
||||||
let dex = this.total_skillpoints[1];
|
|
||||||
|
|
||||||
//Now do math
|
//Now do math
|
||||||
let normDPS = (totalDamNorm[0]+totalDamNorm[1])/2 * baseDamageMultiplier[adjAtkSpd];
|
let normDPS = (totalDamNorm[0]+totalDamNorm[1])/2 * baseDamageMultiplier[adjAtkSpd];
|
||||||
let critDPS = (totalDamCrit[0]+totalDamCrit[1])/2 * baseDamageMultiplier[adjAtkSpd];
|
let critDPS = (totalDamCrit[0]+totalDamCrit[1])/2 * baseDamageMultiplier[adjAtkSpd];
|
||||||
let avgDPS = (normDPS * (1 - skillPointsToPercentage(dex))) + (critDPS * (skillPointsToPercentage(dex)));
|
let avgDPS = (normDPS * (1 - skillPointsToPercentage(dex))) + (critDPS * (skillPointsToPercentage(dex)));
|
||||||
//console.log([nDamAdj,eDamAdj,tDamAdj,wDamAdj,fDamAdj,aDamAdj,totalDamNorm,totalDamCrit,normDPS,critDPS,avgDPS]);
|
//[[n n n n] [e e e e] [t t t t] [w w w w] [f f f f] [a a a a] [lowtotal hightotal normalChance] [critlowtotal crithightotal critChance] normalDPS critCPS averageDPS adjAttackSpeed]
|
||||||
|
//console.log(damages_results.concat([totalDamNorm,totalDamCrit,normDPS,critDPS,avgDPS,adjAtkSpd]));
|
||||||
return damages_results.concat([totalDamNorm,totalDamCrit,normDPS,critDPS,avgDPS,adjAtkSpd]);
|
return damages_results.concat([totalDamNorm,totalDamCrit,normDPS,critDPS,avgDPS,adjAtkSpd]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,9 +40,11 @@ function calculateSpellDamage(stats, spellConversions, rawModifier, pctModifier,
|
||||||
}
|
}
|
||||||
|
|
||||||
let damageMult = 1;
|
let damageMult = 1;
|
||||||
|
let melee = false;
|
||||||
// If we are doing melee calculations:
|
// If we are doing melee calculations:
|
||||||
if (spellMultiplier == 0) {
|
if (spellMultiplier == 0) {
|
||||||
spellMultiplier = 1;
|
spellMultiplier = 1;
|
||||||
|
melee = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
damageMult *= spellMultiplier * baseDamageMultiplier[attackSpeeds.indexOf(stats.get("atkSpd"))];
|
damageMult *= spellMultiplier * baseDamageMultiplier[attackSpeeds.indexOf(stats.get("atkSpd"))];
|
||||||
|
@ -51,9 +53,12 @@ function calculateSpellDamage(stats, spellConversions, rawModifier, pctModifier,
|
||||||
//console.log(damageMult);
|
//console.log(damageMult);
|
||||||
|
|
||||||
rawModifier *= spellMultiplier;
|
rawModifier *= spellMultiplier;
|
||||||
|
let totalDamNorm = [0, 0];
|
||||||
let totalDamNorm = [rawModifier, rawModifier];
|
let totalDamCrit = [0, 0];
|
||||||
let totalDamCrit = [rawModifier, rawModifier];
|
if(!melee){
|
||||||
|
totalDamNorm = [rawModifier, rawModifier];
|
||||||
|
totalDamCrit = [rawModifier, rawModifier];
|
||||||
|
}
|
||||||
let damages_results = [];
|
let damages_results = [];
|
||||||
// 0th skillpoint is strength, 1st is dex.
|
// 0th skillpoint is strength, 1st is dex.
|
||||||
let str = total_skillpoints[0];
|
let str = total_skillpoints[0];
|
||||||
|
|
104
display.js
104
display.js
|
@ -44,6 +44,17 @@ function expandItem(item, powders){
|
||||||
expandedItem.set("minRolls",minRolls);
|
expandedItem.set("minRolls",minRolls);
|
||||||
expandedItem.set("maxRolls",maxRolls);
|
expandedItem.set("maxRolls",maxRolls);
|
||||||
expandedItem.set("powders", powders);
|
expandedItem.set("powders", powders);
|
||||||
|
|
||||||
|
if(expandedItem.has("eDef")){ //item is armor
|
||||||
|
for(const id of powders){
|
||||||
|
//console.log(powderStats[id]);
|
||||||
|
let powder = powderStats[id];
|
||||||
|
let name = powderNames.get(id);
|
||||||
|
expandedItem.set(name.charAt(0) + "Def", expandedItem.get(name.charAt(0)+"Def") + powder["defPlus"]);
|
||||||
|
expandedItem.set(skp_elements[(skp_elements.indexOf(name.charAt(0)) + 6 )% 5] + "Def", expandedItem.get(skp_elements[(skp_elements.indexOf(name.charAt(0)) + 6 )% 5]+"Def") - powder["defMinus"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return expandedItem;
|
return expandedItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,43 +351,33 @@ function displayExpandedItem(item, parent_id){
|
||||||
let id = command;
|
let id = command;
|
||||||
if(nonRolledIDs.includes(id) && item.get(id)){//nonRolledID & non-0/non-null/non-und ID
|
if(nonRolledIDs.includes(id) && item.get(id)){//nonRolledID & non-0/non-null/non-und ID
|
||||||
if (id === "slots") {
|
if (id === "slots") {
|
||||||
continue;
|
let p_elem = document.createElement("p");
|
||||||
// PROPER POWDER DISPLAYING EZ CLAP
|
// PROPER POWDER DISPLAYING EZ CLAP
|
||||||
p_elem.textContent = "";
|
let numerals = new Map([[1, "I"], [2, "II"], [3, "III"], [4, "IV"], [5, "V"], [6, "VI"]]);
|
||||||
let numerals = new Map([["1", "I"], ["2", "II"], ["3", "III"], ["4", "IV"], ["5", "V"], ["6", "VI"]]);
|
|
||||||
/*p_elem.textContent = idPrefixes[id].concat(item.get(id), idSuffixes[id]) +
|
/*p_elem.textContent = idPrefixes[id].concat(item.get(id), idSuffixes[id]) +
|
||||||
" [ " + item.get("powders").map(x => powderNames.get(x)) + " ]";*/
|
" [ " + item.get("powders").map(x => powderNames.get(x)) + " ]";*/
|
||||||
let wrapper = document.createElement("p");
|
|
||||||
|
|
||||||
let powderPrefix = document.createElement("b");
|
let powderPrefix = document.createElement("b");
|
||||||
powderPrefix.classList.add("itemp");
|
powderPrefix.classList.add("itemp");
|
||||||
powderPrefix.classList.add("left");
|
powderPrefix.classList.add("left");
|
||||||
powderPrefix.textContent = "[";
|
powderPrefix.textContent = "Powder Slots: " + item.get(id) + " [";
|
||||||
row.appendChild(powderPrefix);
|
p_elem.appendChild(powderPrefix);
|
||||||
|
|
||||||
let spaceElem = document.createElement("td");
|
let powders = item.get("powders");
|
||||||
//spaceElem.textContent = " ";
|
console.log(powders);
|
||||||
spaceElem.classList.add("itemp");
|
for (let i = 0; i < powders.length; i++) {
|
||||||
spaceElem.classList.add("left");
|
let powder = document.createElement("b");
|
||||||
|
powder.textContent = numerals.get((powders[i]%6)+1)+" ";
|
||||||
let powderList = item.get("powders").map(x => powderNames.get(x))
|
powder.classList.add(damageClasses[Math.floor(powders[i]/6)+1]+"_powder");
|
||||||
for (let i = 0; i < powderList.length; i++) {
|
p_elem.appendChild(powder);
|
||||||
let powder = document.createElement("td");
|
|
||||||
let powderStr = powderList[i];
|
|
||||||
console.log(powderStr);
|
|
||||||
powder.textContent = numerals.get(powderStr.charAt(1), 10);
|
|
||||||
powder.classList.add(powderMap.get(powderStr.charAt(0)));
|
|
||||||
row.appendChild(powder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let powderSuffix = document.createElement("td");
|
let powderSuffix = document.createElement("b");
|
||||||
powderSuffix.classList.add("itemp");
|
powderSuffix.classList.add("itemp");
|
||||||
powderSuffix.classList.add("left");
|
powderSuffix.classList.add("left");
|
||||||
powderSuffix.textContent = " ]";
|
powderSuffix.textContent = "]";
|
||||||
row.appendChild(powderSuffix);
|
p_elem.appendChild(powderSuffix);
|
||||||
|
active_elem.appendChild(p_elem);
|
||||||
wrapper.appendChild(row);
|
|
||||||
p_elem.appendChild(wrapper);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let p_elem = displayFixedID(active_elem, id, item.get(id), elemental_format);
|
let p_elem = displayFixedID(active_elem, id, item.get(id), elemental_format);
|
||||||
|
@ -449,6 +450,39 @@ function displayExpandedItem(item, parent_id){
|
||||||
}//Just don't do anything if else
|
}//Just don't do anything if else
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Show powder specials ;-;
|
||||||
|
let powder_special = document.createElement("p");
|
||||||
|
powder_special.classList.add("left");
|
||||||
|
powder_special.classList.add("itemp");
|
||||||
|
let powders = item.get("powders");
|
||||||
|
let element = "";
|
||||||
|
let power = 0;
|
||||||
|
for (let i = 0; i < powders.length; i++) {
|
||||||
|
let firstPowderType = skp_elements[Math.floor(powders[i]/6)];
|
||||||
|
if (element !== "") break;
|
||||||
|
else if (powders[i]%6 > 2) { //t4+
|
||||||
|
for (let j = i+1; j < powders.length; j++) {
|
||||||
|
let currentPowderType = skp_elements[Math.floor(powders[j]/6)]
|
||||||
|
if (powders[j] % 6 > 2 && firstPowderType === currentPowderType) {
|
||||||
|
element = currentPowderType;
|
||||||
|
power = Math.round(((powders[i] % 6 + powders[j] % 6 + 2) / 2 - 4) * 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (element !== "") {//powder special is "[e,t,w,f,a]+[0,1,2,3,4]"
|
||||||
|
console.log(skp_elements.indexOf(element));
|
||||||
|
let powderSpecial = powderSpecialStats[ skp_elements.indexOf(element)];
|
||||||
|
let attackSpecialTitle = document.createElement("p");
|
||||||
|
attackSpecialTitle.classList.add("left");
|
||||||
|
attackSpecialTitle.textContent = powderSpecial["weaponSpecialName"];
|
||||||
|
powder_special.appendChild(attackSpecialTitle);
|
||||||
|
|
||||||
|
parent_div.append(powder_special);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Show item tier
|
||||||
if (item.get("tier") & item.get("tier") !== " ") {
|
if (item.get("tier") & item.get("tier") !== " ") {
|
||||||
let item_desc_elem = document.createElement('p');
|
let item_desc_elem = document.createElement('p');
|
||||||
item_desc_elem.classList.add('itemp');
|
item_desc_elem.classList.add('itemp');
|
||||||
|
@ -550,7 +584,7 @@ function displayMeleeDamage(parent_elem, overallparent_elem, meleeStats){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (let i = 6; i < 8; ++i) {
|
for (let i = 6; i < 8; ++i) {
|
||||||
for (let j in stats[i]) {
|
for (let j = 0; j < 2; j++) {
|
||||||
stats[i][j] = stats[i][j].toFixed(2);
|
stats[i][j] = stats[i][j].toFixed(2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -626,11 +660,16 @@ function displayMeleeDamage(parent_elem, overallparent_elem, meleeStats){
|
||||||
|
|
||||||
let normalDPS = document.createElement("p");
|
let normalDPS = document.createElement("p");
|
||||||
normalDPS.textContent = "Normal DPS: " + stats[8];
|
normalDPS.textContent = "Normal DPS: " + stats[8];
|
||||||
normalDPS.append(document.createElement("br"));
|
|
||||||
normalDPS.append(document.createElement("br"));
|
|
||||||
normalDPS.classList.add("itemp");
|
normalDPS.classList.add("itemp");
|
||||||
nonCritStats.append(normalDPS);
|
nonCritStats.append(normalDPS);
|
||||||
|
|
||||||
|
let normalChance = document.createElement("p");
|
||||||
|
normalChance.textContent = "Non-Crit Chance: " + (stats[6][2]*100).toFixed(2) + "%";
|
||||||
|
normalChance.classList.add("itemp");
|
||||||
|
normalChance.append(document.createElement("br"));
|
||||||
|
normalChance.append(document.createElement("br"));
|
||||||
|
nonCritStats.append(normalChance);
|
||||||
|
|
||||||
parent_elem.append(nonCritStats);
|
parent_elem.append(nonCritStats);
|
||||||
parent_elem.append(document.createElement("br"));
|
parent_elem.append(document.createElement("br"));
|
||||||
|
|
||||||
|
@ -657,10 +696,15 @@ function displayMeleeDamage(parent_elem, overallparent_elem, meleeStats){
|
||||||
let critDPS = document.createElement("p");
|
let critDPS = document.createElement("p");
|
||||||
critDPS.textContent = "Crit DPS: " + stats[9];
|
critDPS.textContent = "Crit DPS: " + stats[9];
|
||||||
critDPS.classList.add("itemp");
|
critDPS.classList.add("itemp");
|
||||||
critDPS.append(document.createElement("br"));
|
|
||||||
critDPS.append(document.createElement("br"));
|
|
||||||
critStats.append(critDPS);
|
critStats.append(critDPS);
|
||||||
|
|
||||||
|
let critChance = document.createElement("p");
|
||||||
|
critChance.textContent = "Crit Chance: " + (stats[7][2]*100).toFixed(2) + "%";
|
||||||
|
critChance.classList.add("itemp");
|
||||||
|
critChance.append(document.createElement("br"));
|
||||||
|
critChance.append(document.createElement("br"));
|
||||||
|
critStats.append(critChance);
|
||||||
|
|
||||||
parent_elem.append(critStats);
|
parent_elem.append(critStats);
|
||||||
}
|
}
|
||||||
function displayDefenseStats(parent_elem,defenseStats){
|
function displayDefenseStats(parent_elem,defenseStats){
|
||||||
|
|
66
styles.css
66
styles.css
|
@ -138,53 +138,33 @@ a.link{
|
||||||
/*text-shadow: 2px 2px 0 #1f1515;*/
|
/*text-shadow: 2px 2px 0 #1f1515;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.Earth {
|
.Earth { color: #0a0; }
|
||||||
color: #0a0;
|
.Earth:before { content: "\2724" ' '; }
|
||||||
/*text-shadow: 2px 2px 0 #002a00;*/
|
.Earth_powder { color: #0a0; }
|
||||||
}
|
.Earth_powder:before { content: "\2724"; }
|
||||||
.Earth:before {
|
|
||||||
content: "\2724" ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
.Thunder {
|
.Thunder { color: #ff5; }
|
||||||
color: #ff5;
|
.Thunder:before { content: "\2726" ' '; }
|
||||||
/*text-shadow: 2px 2px 0 #3f3f15;*/
|
.Thunder_powder { color: #ff5; }
|
||||||
}
|
.Thunder_powder:before { content: "\2726"; }
|
||||||
.Thunder:before {
|
|
||||||
content: "\2726" ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
.Water {
|
.Water { color: #5ff; }
|
||||||
color: #5ff;
|
.Water:before { content: "\2749" ' '; }
|
||||||
/*text-shadow: 2px 2px 0 #153f3f;*/
|
.Water_powder { color: #5ff; }
|
||||||
}
|
.Water_powder:before { content: "\2749"; }
|
||||||
.Water:before {
|
|
||||||
content: "\2749" ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
.Fire {
|
.Fire { color: #f55; }
|
||||||
color: #f55;
|
.Fire:before { content: "\2739" ' '; }
|
||||||
/*text-shadow: 2px 2px 0 #1f1515;*/
|
.Fire_powder { color: #f55; }
|
||||||
}
|
.Fire_powder:before { content: "\2739"; }
|
||||||
.Fire:before {
|
|
||||||
content: "\2739" ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
.Air {
|
.Air { color: #fff; }
|
||||||
color: #fff;
|
.Air:before { content: "\274b" ' '; }
|
||||||
/*text-shadow: 2px 2px 0 #3f3f3f;*/
|
.Air_powder { color: #fff; }
|
||||||
}
|
.Air_powder:before { content: "\274b"; }
|
||||||
.Air:before {
|
|
||||||
content: "\274b" ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
.Neutral {
|
.Neutral { color: #fa0; }
|
||||||
color: #fa0;
|
.Neutral:before { content: "\2724" ' '; }
|
||||||
/*text-shadow: 2px 2px 0 #2a2a00;*/
|
|
||||||
}
|
|
||||||
.Neutral:before {
|
|
||||||
content: "\2724" ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
.Health {
|
.Health {
|
||||||
color: #a00;
|
color: #a00;
|
||||||
|
@ -270,6 +250,6 @@ input {
|
||||||
.Set{
|
.Set{
|
||||||
color:#5f5;
|
color:#5f5;
|
||||||
}
|
}
|
||||||
.restrict{
|
.restrict {
|
||||||
color: #ff006a;
|
color: #ff006a;
|
||||||
}
|
}
|
||||||
|
|
54
test.js
54
test.js
|
@ -91,6 +91,26 @@ let powderStats = [
|
||||||
_p(2,6,11,3,1), _p(4,9,14,6,2), _p(7,10,17,10,3), _p(9,13,22,16,5), _p(13,18,28,24,9), _p(16,18,35,34,13)
|
_p(2,6,11,3,1), _p(4,9,14,6,2), _p(7,10,17,10,3), _p(9,13,22,16,5), _p(13,18,28,24,9), _p(16,18,35,34,13)
|
||||||
];
|
];
|
||||||
|
|
||||||
|
//Ordering: [weapon special name, weapon special effects, armor special name, armor special effects]
|
||||||
|
class PowderSpecial{
|
||||||
|
constructor(wSpName, wSpEff, aSpName, aSpEff, cap){
|
||||||
|
this.weaponSpecialName = wSpName;
|
||||||
|
this.weaponSpecialEffects = wSpEff;
|
||||||
|
this.armorSpecialName = aSpName;
|
||||||
|
this.armorSpecialEffects = aSpEff;
|
||||||
|
this.cap = cap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function _ps(a,b,c,d,e) { return new PowderSpecial(a,b,c,d,e); } //bruh moment
|
||||||
|
|
||||||
|
let powderSpecialStats = [
|
||||||
|
_ps("Quake",new Map([["Radius",[5,5.5,6,6.5,7]], ["Damage",[155,220,285,350,415]] ]),"Rage",new Map([ ["Damage", [0.3,0.4,0.5,0.7,1.0]],["Description", "% \2764 Missing"] ]),400), //e
|
||||||
|
_ps("Chain Lightning",new Map([ ["Chains", [5,6,7,8,9]], ["Damage", [80,120,160,200,240]] ]),"Kill Streak",new Map([ ["Damage", [3,4.5,6,7.5,9]],["Duration", [5,5,5,5,5]],["Description", "Mob Killed"] ]),200), //t
|
||||||
|
_ps("Curse",new Map([ ["Duration", [7,7.5,8,8.5,9]],["Damage", [90,120,150,180,210]] ]),"Concentration",new Map([ ["Damage", [1,2,3,4,5]],["Duration",[1,1,1,1,1]],["Description", "Mana Used"] ]),150), //w
|
||||||
|
_ps("Courage",new Map([ ["Duration", [6,6.5,7,7.5,8]],["Damage", [75,87.5,100,112.5,125]],["Damage Boost", [70,90,110,130,150]] ]),"Endurance",new Map([ ["Damage", [2,3,4,5,6]],["Duration", [8,8,8,8,8]],["Description", "Hit Taken"] ]),200), //f
|
||||||
|
_ps("Air Prison",new Map([ ["Duration", [3,3.5,4,4.5,5]],["Damage Boost", [400,450,500,550,600]],["Knockback", [8,12,16,20,24]] ]),"Dodge",new Map([ ["Damage",[2,3,4,5,6]],["Duration",[2,3,4,5,6]],["Description","Near Mobs"] ]),150) //a
|
||||||
|
];
|
||||||
|
|
||||||
let itemTypes = armorTypes.concat(accessoryTypes).concat(weaponTypes);
|
let itemTypes = armorTypes.concat(accessoryTypes).concat(weaponTypes);
|
||||||
let itemLists = new Map();
|
let itemLists = new Map();
|
||||||
for (const it of itemTypes) {
|
for (const it of itemTypes) {
|
||||||
|
@ -454,10 +474,38 @@ function calculateBuildStats() {
|
||||||
|
|
||||||
let summarybox = document.getElementById("summary-box");
|
let summarybox = document.getElementById("summary-box");
|
||||||
summarybox.textContent = "";
|
summarybox.textContent = "";
|
||||||
let skpSummary = document.createElement("p");
|
let skpRow = document.createElement("tr");
|
||||||
skpSummary.textContent = "Summary: Assigned "+player_build.assigned_skillpoints+" skillpoints. Total: ( " + player_build.total_skillpoints.join(" | ") + " )";
|
//let skpSummary = document.createElement("p");
|
||||||
|
//skpSummary.textContent = "Summary: Assigned "+player_build.assigned_skillpoints+" skillpoints. Total: ( " + player_build.total_skillpoints.join(" | ") + " )";
|
||||||
|
let skpSummary = document.createElement("td");
|
||||||
|
skpSummary.textContent = "Summary: Assigned "+player_build.assigned_skillpoints+" skillpoints. Total: (";
|
||||||
skpSummary.classList.add("itemp");
|
skpSummary.classList.add("itemp");
|
||||||
summarybox.append(skpSummary);
|
skpRow.appendChild(skpSummary);
|
||||||
|
for (let i = 0; i < skp_order.length; i++){
|
||||||
|
let skp = document.createElement("td");
|
||||||
|
let boost = document.createElement("td");
|
||||||
|
let separator = document.createElement("td");
|
||||||
|
skp.classList.add("itemp");
|
||||||
|
skp.classList.add("nopadding");
|
||||||
|
skp.classList.add(damageClasses[i+1]);
|
||||||
|
boost.classList.add("itemp");
|
||||||
|
boost.classList.add("nopadding");
|
||||||
|
boost.textContent = player_build.total_skillpoints[i];
|
||||||
|
skpRow.appendChild(skp);
|
||||||
|
skpRow.appendChild(document.createElement("br"));
|
||||||
|
skpRow.appendChild(boost);
|
||||||
|
if(i < 4){
|
||||||
|
skpRow.appendChild(separator);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//summarybox.append(skpSummary);
|
||||||
|
|
||||||
|
let skpEnd = document.createElement("td");
|
||||||
|
skpEnd.textContent = ")";
|
||||||
|
skpEnd.classList.add("itemp");
|
||||||
|
skpRow.append(skpEnd);
|
||||||
|
|
||||||
|
summarybox.append(skpRow);
|
||||||
if(player_build.assigned_skillpoints > levelToSkillPoints(player_build.level)){
|
if(player_build.assigned_skillpoints > levelToSkillPoints(player_build.level)){
|
||||||
let skpWarning = document.createElement("p");
|
let skpWarning = document.createElement("p");
|
||||||
skpWarning.classList.add("itemp");
|
skpWarning.classList.add("itemp");
|
||||||
|
|
Loading…
Add table
Reference in a new issue