Last active
April 8, 2022 20:24
-
-
Save Chuckame/3ed65e65ff70f48131078ce0e556aa63 to your computer and use it in GitHub Desktop.
Dofusbook real damage calculator including CC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Dofusbook real dmg calculator | |
// @version 0.1 | |
// @description try to take over the world! | |
// @author You | |
// @match https://www.dofusbook.net/fr/* | |
// @icon https://www.google.com/s2/favicons?sz=64&domain=dofusbook.net | |
// @grant none | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
function computeRealDmgAvg() { | |
document.querySelectorAll(".is-spell").forEach(card => { | |
card.querySelectorAll(".c-boostcard__wrapper.cc_0").forEach(dmgElement => { | |
var container = dmgElement.closest(".l-flex") | |
var dmg = getDmgAvg(false) | |
var dmgCC = getDmgAvg(true) ? getDmgAvg(true) : dmg | |
function getDmgAvg(isCrit) { | |
var element = container.querySelector(".c-boostcard__wrapper.cc_" + (isCrit ? 1 : 0) + " .c-boostcard__carac") | |
if (!element) return undefined | |
var txt = element.lastChild.textContent.split(" ") | |
var min = parseInt(txt[1]) | |
var max = parseInt(txt[4]) | |
var avg = (max - min) / 2 + min | |
return avg | |
} | |
function getCC() { | |
return parseInt(card.querySelectorAll(".CmpWidget-tag span")[3].textContent.split(" ")[0].split("%")[0]) | |
} | |
var cc = getCC() ? getCC() / 100.0 : 0 | |
var realDmgAvg = dmg * (1 - cc) + dmgCC * cc | |
var el = document.createElement("div") | |
el.style.cssText = "flex:2;" | |
el.classList.add('real-dmg-avg') | |
var currentEl = container.querySelector('.real-dmg-avg') | |
if (currentEl) el = currentEl | |
el.textContent = Math.round(realDmgAvg) | |
//console.log("CC",cc*100,"%","//","avg dmg",dmg,"//","avg dmg CC",dmgCC,"//","real avg dmg",realDmgAvg) | |
if (container.querySelector(".c-boostcard__wrapper.cc_1")) { | |
container.insertBefore(el, container.querySelector(".c-boostcard__wrapper.cc_1")) | |
} else { | |
container.querySelector(".c-boostcard__wrapper.cc_0").after(el) | |
} | |
}) | |
}) | |
} | |
window.addEventListener('click', computeRealDmgAvg) | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment