Files
CookieMonster/src/Main/ReplaceGameElements/Tooltips.js
Daniël van Noord 1c8bd79640 Fixed linting issues
2021-05-01 22:43:02 +02:00

104 lines
3.2 KiB
JavaScript

/** Functions related to replacing tooltips */
import { CreateTooltip } from '../../Disp/Tooltips/Tooltip';
import { LoadMinigames, TooltipBuildBackup, TooltipLumpBackup } from '../VariablesAndData';
import ReplaceNativeGrimoire from './NativeGrimoire';
import ReplaceTooltipGrimoire from './TooltipGrimoire';
/**
* This function replaces the original .onmouseover functions of buildings
*/
function ReplaceTooltipBuild() {
Object.keys(Game.Objects).forEach((i) => {
const me = Game.Objects[i];
if (l(`product${me.id}`).onmouseover !== null) {
TooltipBuildBackup[i] = l(`product${me.id}`).onmouseover;
l(`product${me.id}`).onmouseover = function () {
Game.tooltip.dynamic = 1;
Game.tooltip.draw(this, () => CreateTooltip('b', `${i}`), 'store');
Game.tooltip.wobble();
};
}
});
}
/**
* This function replaces the original .onmouseover functions of sugar lumps
*/
function ReplaceTooltipLump() {
if (Game.canLumps()) {
TooltipLumpBackup = l('lumps').onmouseover; // eslint-disable-line no-unused-vars
l('lumps').onmouseover = function () {
Game.tooltip.dynamic = 1;
Game.tooltip.draw(this, () => CreateTooltip('s', 'Lump'), 'this');
Game.tooltip.wobble();
};
}
}
/**
* This function replaces the original .onmouseover functions of all garden plants
*/
function ReplaceTooltipGarden() {
if (Game.Objects.Farm.minigameLoaded) {
l('gardenTool-1').onmouseover = function () {
Game.tooltip.dynamic = 1;
Game.tooltip.draw(this, () => CreateTooltip('ha', 'HarvestAllButton'), 'this');
Game.tooltip.wobble();
};
Array.from(l('gardenPlot').children).forEach((child) => {
const coords = child.id.slice(-3);
// eslint-disable-next-line no-param-reassign
child.onmouseover = function () {
Game.tooltip.dynamic = 1;
Game.tooltip.draw(this, () => CreateTooltip('p', [`${coords[0]}`, `${coords[2]}`]), 'this');
Game.tooltip.wobble();
};
});
}
}
function ReplaceTooltipPantheon() {
if (Game.Objects.Temple.minigameLoaded) {
for (let i = 0; i < 11; i += 1) {
l(`templeGod${i}`).onmouseover = function () {
Game.tooltip.dynamic = 1;
Game.tooltip.draw(this, () => CreateTooltip('pag', i), 'this');
Game.tooltip.wobble();
};
}
for (let i = 0; i < 3; i += 1) {
l(`templeSlot${i}`).onmouseover = function () {
Game.tooltip.dynamic = 1;
Game.tooltip.draw(
this,
() => CreateTooltip('pas', [i, Game.Objects.Temple.minigame.slot[i]]),
'this',
);
Game.tooltip.wobble();
};
}
}
}
/**
* This function call all functions that replace Game-tooltips with Cookie Monster enhanced tooltips
*/
export default function ReplaceTooltips() {
ReplaceTooltipBuild();
ReplaceTooltipLump();
// Replace Tooltips of Minigames. Nesting it in LoadMinigames makes sure to replace them even if
// they were not loaded initially
// eslint-disable-next-line prefer-destructuring
LoadMinigames = Game.LoadMinigames;
Game.LoadMinigames = function () {
LoadMinigames();
ReplaceTooltipGarden();
ReplaceTooltipGrimoire();
ReplaceTooltipPantheon();
ReplaceNativeGrimoire();
};
Game.LoadMinigames();
}