Improved building tooltip #766

This commit is contained in:
Daniël van Noord
2021-04-11 22:04:58 +02:00
parent 62dea78e65
commit 1545d9782b
7 changed files with 43 additions and 8 deletions

View File

@@ -15,6 +15,7 @@ import {
CacheGoldenAndWrathCookiesMults,
CacheStatsCookies,
} from './Stats/Stats';
import AllAmountTillNextAchievement from './TillNextAchievement/AllAmountTillNextAchievement';
import {
CacheAverageCookiesFromClicks,
HeavenlyChipsDiff,
@@ -39,6 +40,7 @@ export default function InitCache() {
ClickTimes[ClickTimes.length - 1] * 20,
);
CacheHeavenlyChipsPS();
AllAmountTillNextAchievement();
CacheAvgCPS();
CacheIncome();
CacheBuildingsPrices();

View File

@@ -12,6 +12,7 @@ import {
CacheObjects1,
CacheObjects10,
CacheObjects100,
CacheObjectsNextAchievement,
CacheUpgrades,
} from '../VariablesAndData';
@@ -82,6 +83,13 @@ export function CacheBuildingsPrices() {
Game.Objects[i].free,
100,
);
CacheObjectsNextAchievement[i].price = BuildingGetPrice(
Game.Objects[i],
Game.Objects[i].basePrice,
Game.Objects[i].amount,
Game.Objects[i].free,
CacheObjectsNextAchievement[i].AmountNeeded,
);
});
}

View File

@@ -192,7 +192,7 @@ export function TooltipCreateCalculationSection(tooltip) {
}
if (TooltipType === 'b') {
tooltip.appendChild(
TooltipCreateHeader('Buildings left till next additional achievement'),
TooltipCreateHeader('Buildings (price / PP) left till next achievement'),
);
tooltip.lastChild.id = 'CMTooltipNextAchievementHeader'; // eslint-disable-line no-param-reassign
const production = document.createElement('div');

View File

@@ -1,3 +1,4 @@
import ColourOfPP from '../../../Cache/PP/ColourOfPP';
import {
CacheObjects1,
CacheObjects10,
@@ -5,6 +6,7 @@ import {
CacheObjectsNextAchievement,
} from '../../../Cache/VariablesAndData';
import { CMOptions } from '../../../Config/VariablesAndData';
import BuyBuildingsBonusIncome from '../../../Sim/SimulationEvents/BuyBuildingBonusIncome';
import { SimObjects } from '../../../Sim/VariablesAndData';
import {
Beautify,
@@ -101,13 +103,36 @@ export default function Building() {
}
}
if (CacheObjectsNextAchievement[TooltipName].AmountNeeded < 101) {
const ObjectsTillNext = CacheObjectsNextAchievement[TooltipName];
if (ObjectsTillNext.AmountNeeded < 101) {
l('CMTooltipProductionLeft').style.marginBottom = '4px';
l('CMTooltipNextAchievementHeader').style.display = '';
l('CMTooltipNextAchievement').textContent = Beautify(
CacheObjectsNextAchievement[TooltipName].AmountNeeded,
);
let PPOfAmount;
if (Game.cookiesPs) {
PPOfAmount =
Math.max(
ObjectsTillNext.price - (Game.cookies + GetWrinkConfigBank()),
0,
) /
Game.cookiesPs +
ObjectsTillNext.price /
BuyBuildingsBonusIncome(TooltipName, ObjectsTillNext.AmountNeeded);
} else
PPOfAmount =
ObjectsTillNext.price /
BuyBuildingsBonusIncome(TooltipName, ObjectsTillNext.AmountNeeded);
l('CMTooltipNextAchievement').textContent = `${Beautify(
ObjectsTillNext.AmountNeeded,
)} / ${Beautify(ObjectsTillNext.price)} / `;
l('CMTooltipNextAchievement').style.color = 'white';
const PPFrag = document.createElement('span');
if (CMOptions.PPDisplayTime) PPFrag.textContent = FormatTime(PPOfAmount);
else PPFrag.textContent = Beautify(PPOfAmount);
PPFrag.className =
ColourTextPre + ColourOfPP({ pp: PPOfAmount }, ObjectsTillNext.price);
l('CMTooltipNextAchievement').appendChild(PPFrag);
} else {
l('CMTooltipNextAchievementHeader').style.display = 'none';
l('CMTooltipProductionLeft').style.marginBottom = '0px';