Files
CookieMonster/src/Main/ReplaceGameElements/NativeGrimoire.js
2021-05-02 11:44:27 +02:00

63 lines
2.1 KiB
JavaScript

import { CMOptions } from '../../Config/VariablesAndData';
import FormatTime from '../../Disp/BeautifyAndFormatting/FormatTime';
import CalculateGrimoireRefillTime from '../../Disp/HelperFunctions/CalculateGrimoireRefillTime';
import {
BackupGrimoireDraw,
BackupGrimoireLaunch, // eslint-disable-line no-unused-vars
BackupGrimoireLaunchMod,
HasReplaceNativeGrimoireDraw,
HasReplaceNativeGrimoireLaunch,
} from '../VariablesAndData';
import ReplaceTooltipGrimoire from './TooltipGrimoire';
/**
* This function fixes replaces the .draw function of the Grimoire
*/
function ReplaceNativeGrimoireDraw() {
if (!HasReplaceNativeGrimoireDraw && Game.Objects['Wizard tower'].minigameLoaded) {
const { minigame } = Game.Objects['Wizard tower'];
BackupGrimoireDraw = minigame.draw;
Game.Objects['Wizard tower'].minigame.draw = function () {
BackupGrimoireDraw();
if (CMOptions.GrimoireBar === 1 && minigame.magic < minigame.magicM) {
minigame.magicBarTextL.innerHTML += ` (${FormatTime(
CalculateGrimoireRefillTime(minigame.magic, minigame.magicM, minigame.magicM),
)})`;
}
};
HasReplaceNativeGrimoireDraw = true;
}
}
/**
* This function fixes replaces the .launch function of the Grimoire
*/
function ReplaceNativeGrimoireLaunch() {
if (!HasReplaceNativeGrimoireLaunch && Game.Objects['Wizard tower'].minigameLoaded) {
const { minigame } = Game.Objects['Wizard tower'];
BackupGrimoireLaunch = minigame.launch;
BackupGrimoireLaunchMod = new Function( // eslint-disable-line no-new-func
`return ${minigame.launch
.toString()
.split('=this')
.join("= Game.Objects['Wizard tower'].minigame")}`,
);
Game.Objects['Wizard tower'].minigame.launch = function () {
BackupGrimoireLaunchMod();
ReplaceTooltipGrimoire();
HasReplaceNativeGrimoireDraw = false;
ReplaceNativeGrimoireDraw();
HasReplaceNativeGrimoireLaunch = true;
};
}
}
/**
* This function fixes replaces the Launch and Draw functions of the Grimoire
*/
export default function ReplaceNativeGrimoire() {
ReplaceNativeGrimoireLaunch();
ReplaceNativeGrimoireDraw();
}