Skip to content

Instantly share code, notes, and snippets.

@Chuckame
Last active April 8, 2022 20:24
Show Gist options
  • Save Chuckame/3ed65e65ff70f48131078ce0e556aa63 to your computer and use it in GitHub Desktop.
Save Chuckame/3ed65e65ff70f48131078ce0e556aa63 to your computer and use it in GitHub Desktop.
Dofusbook real damage calculator including CC
// ==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