Show buildings left till achievement in tooltip #4
This commit is contained in:
File diff suppressed because one or more lines are too long
2
dist/CookieMonster.js
vendored
2
dist/CookieMonster.js
vendored
File diff suppressed because one or more lines are too long
2
dist/CookieMonster.js.map
vendored
2
dist/CookieMonster.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -0,0 +1,26 @@
|
|||||||
|
import { CacheObjectsNextAchievement } from '../VariablesAndData';
|
||||||
|
import IndividualAmountTillNextAchievement from './IndividualAmountTillNextAchievement';
|
||||||
|
|
||||||
|
export default function AllAmountTillNextAchievement() {
|
||||||
|
const result = {};
|
||||||
|
|
||||||
|
Object.keys(Game.Objects).forEach((i) => {
|
||||||
|
if (
|
||||||
|
Object.keys(CacheObjectsNextAchievement).length !== 0 &&
|
||||||
|
CacheObjectsNextAchievement[i].TotalNeeded > Game.Objects[i].amount
|
||||||
|
) {
|
||||||
|
result[i] = {
|
||||||
|
AmountNeeded:
|
||||||
|
CacheObjectsNextAchievement[i].TotalNeeded - Game.Objects[i].amount,
|
||||||
|
TotalNeeded: CacheObjectsNextAchievement[i].TotalNeeded,
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
const tillNext = IndividualAmountTillNextAchievement(i);
|
||||||
|
result[i] = {
|
||||||
|
AmountNeeded: tillNext,
|
||||||
|
TotalNeeded: Game.Objects[i].amount + tillNext,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
CacheObjectsNextAchievement = result; // eslint-disable-line no-unused-vars
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import BuyBuildingsBonusIncome from '../../Sim/SimulationEvents/BuyBuildingBonusIncome';
|
||||||
|
import { SimAchievementsOwned } from '../../Sim/VariablesAndData';
|
||||||
|
|
||||||
|
export default function IndividualAmountTillNextAchievement(building) {
|
||||||
|
const AchievementsAtStart = Game.AchievementsOwned;
|
||||||
|
for (let index = 0; index < 101; index++) {
|
||||||
|
BuyBuildingsBonusIncome(building, index);
|
||||||
|
if (SimAchievementsOwned > AchievementsAtStart) {
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 101;
|
||||||
|
}
|
||||||
@@ -28,6 +28,7 @@ export let CacheLastChoEgg = 0;
|
|||||||
export let CacheObjects1 = {};
|
export let CacheObjects1 = {};
|
||||||
export let CacheObjects10 = {};
|
export let CacheObjects10 = {};
|
||||||
export let CacheObjects100 = {};
|
export let CacheObjects100 = {};
|
||||||
|
export let CacheObjectsNextAchievement = {};
|
||||||
|
|
||||||
export let CacheWrinklersTotal = 0;
|
export let CacheWrinklersTotal = 0;
|
||||||
export let CacheWrinklersNormal = 0;
|
export let CacheWrinklersNormal = 0;
|
||||||
|
|||||||
@@ -185,10 +185,18 @@ export function TooltipCreateCalculationSection(tooltip) {
|
|||||||
tooltip.appendChild(
|
tooltip.appendChild(
|
||||||
TooltipCreateHeader('Production left till next achievement'),
|
TooltipCreateHeader('Production left till next achievement'),
|
||||||
);
|
);
|
||||||
// Assign a id in order to hide when no achiev's are left
|
tooltip.lastChild.id = 'CMTooltipProductionLeftHeader'; // eslint-disable-line no-param-reassign
|
||||||
tooltip.lastChild.id = 'CMTooltipProductionHeader'; // eslint-disable-line no-param-reassign
|
|
||||||
const production = document.createElement('div');
|
const production = document.createElement('div');
|
||||||
production.id = 'CMTooltipProduction';
|
production.id = 'CMTooltipProductionLeft';
|
||||||
|
tooltip.appendChild(production);
|
||||||
|
}
|
||||||
|
if (TooltipType === 'b') {
|
||||||
|
tooltip.appendChild(
|
||||||
|
TooltipCreateHeader('Buildings left till next additional achievement'),
|
||||||
|
);
|
||||||
|
tooltip.lastChild.id = 'CMTooltipNextAchievementHeader'; // eslint-disable-line no-param-reassign
|
||||||
|
const production = document.createElement('div');
|
||||||
|
production.id = 'CMTooltipNextAchievement';
|
||||||
tooltip.appendChild(production);
|
tooltip.appendChild(production);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import {
|
|||||||
CacheObjects1,
|
CacheObjects1,
|
||||||
CacheObjects10,
|
CacheObjects10,
|
||||||
CacheObjects100,
|
CacheObjects100,
|
||||||
|
CacheObjectsNextAchievement,
|
||||||
} from '../../../Cache/VariablesAndData';
|
} from '../../../Cache/VariablesAndData';
|
||||||
import { CMOptions } from '../../../Config/VariablesAndData';
|
import { CMOptions } from '../../../Config/VariablesAndData';
|
||||||
import { SimObjects } from '../../../Sim/VariablesAndData';
|
import { SimObjects } from '../../../Sim/VariablesAndData';
|
||||||
@@ -74,10 +75,9 @@ export default function Building() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add "production left till next achievement"-bar
|
// Add "production left till next achievement"-bar
|
||||||
l('CMTooltipProductionHeader').style.display = 'none';
|
l('CMTooltipProductionLeftHeader').style.display = 'none';
|
||||||
l('CMTooltipTime').style.marginBottom = '0px';
|
l('CMTooltipTime').style.marginBottom = '0px';
|
||||||
|
|
||||||
// Can this ESLint error be solved while retaining the functionality of break?
|
|
||||||
// eslint-disable-next-line no-restricted-syntax
|
// eslint-disable-next-line no-restricted-syntax
|
||||||
for (const i of Object.keys(Game.Objects[TooltipName].productionAchievs)) {
|
for (const i of Object.keys(Game.Objects[TooltipName].productionAchievs)) {
|
||||||
if (
|
if (
|
||||||
@@ -88,15 +88,29 @@ export default function Building() {
|
|||||||
const nextProductionAchiev =
|
const nextProductionAchiev =
|
||||||
Game.Objects[TooltipName].productionAchievs[i];
|
Game.Objects[TooltipName].productionAchievs[i];
|
||||||
l('CMTooltipTime').style.marginBottom = '4px';
|
l('CMTooltipTime').style.marginBottom = '4px';
|
||||||
l('CMTooltipProductionHeader').style.display = '';
|
l('CMTooltipProductionLeftHeader').style.display = '';
|
||||||
l('CMTooltipProduction').className = `ProdAchievement${TooltipName}`;
|
l(
|
||||||
l('CMTooltipProduction').textContent = Beautify(
|
'CMTooltipProductionLeft',
|
||||||
|
).className = `ProdAchievement${TooltipName}`;
|
||||||
|
l('CMTooltipProductionLeft').textContent = Beautify(
|
||||||
nextProductionAchiev.pow - SimObjects[TooltipName].totalCookies,
|
nextProductionAchiev.pow - SimObjects[TooltipName].totalCookies,
|
||||||
15,
|
15,
|
||||||
);
|
);
|
||||||
l('CMTooltipProduction').style.color = 'white';
|
l('CMTooltipProductionLeft').style.color = 'white';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CacheObjectsNextAchievement[TooltipName].AmountNeeded < 101) {
|
||||||
|
l('CMTooltipProductionLeft').style.marginBottom = '4px';
|
||||||
|
l('CMTooltipNextAchievementHeader').style.display = '';
|
||||||
|
l('CMTooltipNextAchievement').textContent = Beautify(
|
||||||
|
CacheObjectsNextAchievement[TooltipName].AmountNeeded,
|
||||||
|
);
|
||||||
|
l('CMTooltipNextAchievement').style.color = 'white';
|
||||||
|
} else {
|
||||||
|
l('CMTooltipNextAchievementHeader').style.display = 'none';
|
||||||
|
l('CMTooltipProductionLeft').style.marginBottom = '0px';
|
||||||
|
}
|
||||||
} else l('CMTooltipArea').style.display = 'none';
|
} else l('CMTooltipArea').style.display = 'none';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import {
|
|||||||
CacheGoldenAndWrathCookiesMults,
|
CacheGoldenAndWrathCookiesMults,
|
||||||
CacheStatsCookies,
|
CacheStatsCookies,
|
||||||
} from '../Cache/Stats/Stats';
|
} from '../Cache/Stats/Stats';
|
||||||
|
import AllAmountTillNextAchievement from '../Cache/TillNextAchievement/AllAmountTillNextAchievement';
|
||||||
import {
|
import {
|
||||||
CacheDoRemakeBuildPrices,
|
CacheDoRemakeBuildPrices,
|
||||||
CacheHadBuildAura,
|
CacheHadBuildAura,
|
||||||
@@ -50,6 +51,8 @@ export default function CMLoopHook() {
|
|||||||
|
|
||||||
// CM.Sim.DoSims is set whenever CPS has changed
|
// CM.Sim.DoSims is set whenever CPS has changed
|
||||||
if (SimDoSims) {
|
if (SimDoSims) {
|
||||||
|
AllAmountTillNextAchievement();
|
||||||
|
|
||||||
CacheIncome();
|
CacheIncome();
|
||||||
|
|
||||||
CacheNoGoldSwitchCPS(); // Needed first
|
CacheNoGoldSwitchCPS(); // Needed first
|
||||||
|
|||||||
Reference in New Issue
Block a user