Files

57 lines
1.7 KiB
JavaScript

Hooks.on("renderActorSheet", (app, html, data) => {
replaceSilverWithCredits(html);
});
Hooks.on("updateActor", (actor, data) => {
const sheets = actor.apps;
sheets.forEach((sheet) => {
if (sheet.element) {
replaceSilverWithCredits(sheet.element);
}
});
});
function replaceSilverWithCredits(html) {
// Update tooltip for silver currency
const silverContainers = html.find('[data-unit="sp"]');
silverContainers.each(function () {
$(this).attr("data-tooltip", "Credits");
$(this).find(".currency-image").attr("data-tooltip", "Credits");
});
updateTooltips();
}
function updateTooltips() {
const tooltipObserver = new MutationObserver(() => {
const allTooltips = document.querySelectorAll(".tooltip, [role='tooltip']");
allTooltips.forEach((tooltip) => {
if (tooltip.textContent.trim() === "Silver") {
tooltip.textContent = "Credits";
}
});
});
tooltipObserver.observe(document.body, {
childList: true,
subtree: true,
});
}
// Inject CSS rules with high specificity to override the PF2e system CSS
const styleSheet = document.createElement("style");
styleSheet.id = "sf2e-silver-to-credits-override";
styleSheet.textContent = `
/* Override silver currency background image globally */
[data-unit="sp"] .currency-image {
background-image: url('modules/sf2e-silver-to-credits/icons/equipment/treasure/currency/credits.webp') !important;
}
/* Catch it in any context */
.currency-image[data-tooltip*="Silver"],
[style*="silver-pieces.webp"] {
background-image: url('modules/sf2e-silver-to-credits/icons/equipment/treasure/currency/credits.webp') !important;
}
`;
document.head.appendChild(styleSheet);