Skip to content

Commit

Permalink
Bug Fixes
Browse files Browse the repository at this point in the history
Will have to...
Fix TA bugs reported by @HertzDevil - V
Fix issue where damage reductions multipliers aren't truncated when printing - V
Put in the characters
Update the blessing system to use a flag that avoids Mythic blessings to be counted towards arena score - V
Update the blessing system so you can only use either Legendary or Mythic blessings - V
  • Loading branch information
Lorenzooone committed Dec 23, 2018
1 parent 50715ee commit 2f1e823
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 50 deletions.
11 changes: 8 additions & 3 deletions public/scripts/combat-functions.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,18 @@ function checkAffinity(mod, attacker, defender) {

//Let's separate the checks for weaponData and passiveAData, so we can get the correct number to check for cancel affinity
function CheckTriAdvPerPossibility(agent, other, mod, tocheck) {
if (tocheck.hasOwnProperty("tri_advantage")) {
if (tocheck.hasOwnProperty("tri_advantage") && !checkCA(agent)) {
var adv = true;
if (mod < 1) {
adv = false;
}
return cancelAffinity(agent, other, adv, mod);
return cancelAffinity(agent, other, adv, tocheck);
}
return 0;
}

function CheckTriAdvPerStatus(agent, other, mod) {
if(agent.status.triangleAdept) {
if(agent.status.triangleAdept && !checkCA(agent)) {
var adv = true;
if (mod < 1) {
adv = false;
Expand All @@ -35,6 +35,11 @@ function CheckTriAdvPerStatus(agent, other, mod) {
return 0;
}

function checkCA(a)
{
return a.passiveBData.hasOwnProperty("cancel_skill_affinity");
}

//Adjusts damage
function cancelAffinity(a, b, adv, checking) {
if (a.passiveBData.hasOwnProperty("cancel_skill_affinity")) {
Expand Down
132 changes: 85 additions & 47 deletions public/scripts/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -1798,57 +1798,95 @@ function singleCombat(battleInfo, initiator, logIntro, brave) {

// check for any additional triangle advantage boost, then calculate if needed
if (atkMod > 1) {
if (attacker.weaponData.hasOwnProperty("tri_advantage")) {
atkMod += 0.2;
battleInfo.logMsg += "Weapon triangle affinity granted by skills boosts attack by another 20% [" + weaponInfo[attacker.weaponName].name + "]. ";
} else if (defender.weaponData.hasOwnProperty("tri_advantage")) {
atkMod += 0.2;
battleInfo.logMsg += "Opponent's weapon triangle affinity granted by skills boosts attack by another 20% [" + weaponInfo[defender.weaponName].name + "]. ";
} else if (attacker.status.triangleAdept) {
atkMod += 0.2;
battleInfo.logMsg += "Weapon triangle affinity granted by " + attacker.display + "'s status boosts attack by another 20%. ";
} else if (defender.status.triangleAdept) {
atkMod += 0.2;
battleInfo.logMsg += "Opponent's weapon triangle affinity granted by " + defender.display + "'s status boosts attack by another 20%. ";
} else if (attacker.passiveAData.hasOwnProperty("tri_advantage")) {
atkMod += attacker.passiveAData.tri_advantage;
battleInfo.logMsg += "Weapon triangle affinity granted by skills boosts attack by another " + (attacker.passiveAData.tri_advantage * 100).toString() + "% [" + skillInfo['a'][attacker.passiveA].name + "]. ";
} else if (defender.passiveAData.hasOwnProperty("tri_advantage")) {
atkMod += defender.passiveAData.tri_advantage;
battleInfo.logMsg += "Opponent's weapon triangle affinity granted by skills boosts attack by another " + (defender.passiveAData.tri_advantage * 100).toString() + "% [" + skillInfo['a'][defender.passiveA].name + "]. ";
}
var aff = checkAffinity(atkMod, attacker, defender);
atkMod += aff;
if (aff !== 0) {
battleInfo.logMsg += "[Cancel Affinity] takes effect! "
var maxBoost = 0;
var source = "";

if (attacker.weaponData.hasOwnProperty("tri_advantage") && !checkCA(attacker)) {
maxBoost = 0.2;
source = weaponInfo[attacker.weaponName].name;
}
if (defender.weaponData.hasOwnProperty("tri_advantage") && !checkCA(defender)) {
maxBoost = 0.2;
source = weaponInfo[defender.weaponName].name;
}
if (attacker.status.triangleAdept && !checkCA(attacker)) {
maxBoost = 0.2;
source = "Triangle Adept Status Effect";
}
if (defender.status.triangleAdept && !checkCA(defender)) {
maxBoost = 0.2;
source = "Triangle Adept Status Effect";
}
if (attacker.passiveAData.hasOwnProperty("tri_advantage") && !checkCA(attacker)) {
if(maxBoost < attacker.passiveAData.tri_advantage){
maxBoost = attacker.passiveAData.tri_advantage;
source = attacker.passiveAData.name;
}
}
if (defender.passiveAData.hasOwnProperty("tri_advantage") && !checkCA(defender)) {
if(maxBoost < defender.passiveAData.tri_advantage){
maxBoost = defender.passiveAData.tri_advantage;
source = defender.passiveAData.name;
}
}

atkMod += maxBoost;

if(maxBoost > 0){
battleInfo.logMsg += "Attack boosted by another " + roundNum(maxBoost * 100, false) + "% [" + source + "]. "

var aff = checkAffinity(atkMod, attacker, defender);
atkMod += aff;
if (aff !== 0) {
battleInfo.logMsg += "[Cancel Affinity] takes effect! "
}
}

atkPower = roundNum(atkPower * atkMod, false);
} else if (atkMod < 1) {
if (attacker.weaponData.hasOwnProperty("tri_advantage")) {
atkMod -= 0.2;
battleInfo.logMsg += "Weapon triangle affinity granted by skills reduces attack by another 20% [" + weaponInfo[attacker.weaponName].name + "]. ";
} else if (defender.weaponData.hasOwnProperty("tri_advantage")) {
atkMod -= 0.2;
battleInfo.logMsg += "Opponent's weapon triangle affinity granted by skills reduces attack by another 20% [" + weaponInfo[defender.weaponName].name + "]. ";
} else if (attacker.status.triangleAdept) {
atkMod -= 0.2;
battleInfo.logMsg += "Weapon triangle affinity granted by " + attacker.display + "'s status reduces attack by another 20%. ";
} else if (defender.status.triangleAdept) {
atkMod -= 0.2;
battleInfo.logMsg += "Opponent's weapon triangle affinity granted by " + defender.display + "'s status reduces attack by another 20%. ";
} else if (attacker.passiveAData.hasOwnProperty("tri_advantage")) {
atkMod -= attacker.passiveAData.tri_advantage;
battleInfo.logMsg += "Weapon triangle affinity granted by skills reduces attack by another " + (attacker.passiveAData.tri_advantage * 100).toString() + "% [" + skillInfo['a'][attacker.passiveA].name + "]. ";
} else if (defender.passiveAData.hasOwnProperty("tri_advantage")) {
atkMod -= defender.passiveAData.tri_advantage;
battleInfo.logMsg += "Opponent's weapon triangle affinity granted by skills reduces attack by another " + (defender.passiveAData.tri_advantage * 100).toString() + "% [" + skillInfo['a'][defender.passiveA].name + "]. ";
}
var aff = checkAffinity(atkMod, attacker, defender);
atkMod -= aff;
if (aff !== 0) {
battleInfo.logMsg += "[Cancel Affinity] takes effect! "
var maxBoost = 0;
var source = "";

if (attacker.weaponData.hasOwnProperty("tri_advantage") && !checkCA(attacker)) {
maxBoost = 0.2;
source = weaponInfo[attacker.weaponName].name;
}
if (defender.weaponData.hasOwnProperty("tri_advantage") && !checkCA(defender)) {
maxBoost = 0.2;
source = weaponInfo[defender.weaponName].name;
}
if (attacker.status.triangleAdept && !checkCA(attacker)) {
maxBoost = 0.2;
source = "Triangle Adept Status Effect";
}
if (defender.status.triangleAdept && !checkCA(defender)) {
maxBoost = 0.2;
source = "Triangle Adept Status Effect";
}
if (attacker.passiveAData.hasOwnProperty("tri_advantage") && !checkCA(attacker)) {
if(maxBoost < attacker.passiveAData.tri_advantage){
maxBoost = attacker.passiveAData.tri_advantage;
source = attacker.passiveAData.name;
}
}
if (defender.passiveAData.hasOwnProperty("tri_advantage") && !checkCA(defender)) {
if(maxBoost < defender.passiveAData.tri_advantage){
maxBoost = defender.passiveAData.tri_advantage;
source = defender.passiveAData.name;
}
}

atkMod -= maxBoost;

if(maxBoost > 0) {
battleInfo.logMsg += "Attack reduced by another " + roundNum(maxBoost * 100, false) + "% [" + source + "]. "

var aff = checkAffinity(atkMod, attacker, defender);
atkMod -= aff;
if (aff !== 0) {
battleInfo.logMsg += "[Cancel Affinity] takes effect! "
}
}

atkPower = roundNum(atkPower * atkMod, true);
}
Expand Down Expand Up @@ -2018,7 +2056,7 @@ function singleCombat(battleInfo, initiator, logIntro, brave) {
}

if(battleInfo.reduction !== 1) {
battleInfo.logMsg += "Opponent reduced damage by " + ((1 - battleInfo.reduction)*100).toString() + "% in total. ";
battleInfo.logMsg += "Opponent reduced damage by " + roundNum(((1 - battleInfo.reduction)*100), false).toString() + "% in total. ";
dmg = roundNum(dmg * battleInfo.reduction, true);
}
//Hacky bugfix for the Brave Ike mirror match issue
Expand Down

0 comments on commit 2f1e823

Please sign in to comment.