waves/public/assets/g/cookieclicker/mods/BlackHoleInverter.js
2025-04-09 17:11:14 -05:00

198 lines
10 KiB
JavaScript

Game.Win('Third-party');
if(BlackholeInverter === undefined) var BlackholeInverter = {};
if(typeof CCSE == 'undefined') Game.LoadMod('mods/CCSE.js');
BlackholeInverter.name = 'Black Hole Inverter';
BlackholeInverter.version = '1.14';
BlackholeInverter.GameVersion = '2.052';
BlackholeInverter.launch = function(){
BlackholeInverter.init = function(){
var iconsURL = 'https://klattmose.github.io/CookieClicker/img/customIcons.png';
CCSE.NewBuilding('Black hole inverter',
'black hole inverter|black hole inverters|extracted|[X]% larger event horizon|[X]% larger event horizon',
'Inverts the flow of gravity to get the infinitely delicious cookies from an infinitely dense singularity.',
1,
2,
{
base:'https://klattmose.github.io/CookieClicker/img/blackholeinverter',
xV:8,
yV:32,
w:128,
rows:1,
x:0,
y:0,
customBuildingPic:'mods/img/blackholebuilding.png',
customIconsPic:iconsURL
},
"doesn't matter what you put here",
function(me){
var mult = 1;
mult *= Game.GetTieredCpsMult(me);
mult *= Game.magicCpS(me.name);
return me.baseCps * mult;
},
function(){
Game.UnlockTiered(this);
if(this.amount >= Game.SpecialGrandmaUnlock && Game.Objects['Grandma'].amount > 0) Game.Unlock(this.grandma.name);
},
{
name:'Hypnodrone',
desc:'Autonomous aerial brand ambassadors to "encourage" more sales!',
icon:1
},
['Kugelblitz', 'Spaghettification']
);
Game.Objects['Black hole inverter'].displayName='<span style="font-size:80%;position:relative;bottom:4px;">Black hole inverter</span>'; // Shrink the name since it's so large
// Upgrades
var last; var i = 0; var order = BlackholeInverter.getTieredUpgradeOrder();
Game.TieredUpgrade('Blacker holes', '<q>Blacker than black!</q>', 'Black hole inverter', 1); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('More Mass', '<q>Big holes.</q>', 'Black hole inverter', 2); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Stronger Pull', '<q>No escape.</q>', 'Black hole inverter', 3); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Dead Space', '<q>You stare into the abyss and the abyss stares back at you.</q>', 'Black hole inverter', 4); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Cookiefication', '<q>Yum!</q>', 'Black hole inverter', 5); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('White Hole Inverters', '<q>How does this one even make sense?</q>', 'Black hole inverter', 6); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Merging', '<q>Combine!</q>', 'Black hole inverter', 7); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Worm holes', '<q>You go in one end, you come out the other. Easy as that.</q>', 'Black hole inverter', 8); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Micro black holes', '<q>Tiny, but deadly.</q>', 'Black hole inverter', 9); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Radio-Rings', '<q>Insanely radioactive, and extremely deadly!</q>', 'Black hole inverter', 10); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Reality-Bending Holes', '<q>Now you can see how close you are to certain doom! Two of them put together!</q>', 'Black hole inverter', 11); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Moving Black Holes', "<q>They can move now.</q>", 'Black hole inverter', 12); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('Permanent Holes', "<q>They'll never disappear!</q>", 'Black hole inverter', 13); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
Game.TieredUpgrade('It has pockets!', "<q>Also known as a pants hole</q>", 'Black hole inverter', 14); last = Game.last; last.icon[2] = iconsURL; last.order = order + i / 100; i++;
order = BlackholeInverter.getGrandmaUpgradeOrder();
last = Game.GrandmaSynergy('Heavy grandmas', 'A dense grandma to accrete more cookies.', 'Black hole inverter'); last.order = order;
order = BlackholeInverter.getSynergyUpgradeOrder();
last = Game.SynergyUpgrade('Daring pilots', "<q>You've never heard of the Millennium Falcon? It's the ship that made the Kessel Run in less than twelve parsecs.</q>", 'Black hole inverter', 'Shipment', 'synergy1'); last.icon[2] = iconsURL; last.order = order;
last = Game.SynergyUpgrade('General relativity', '<q>Space is time. Time is space</q>', 'Black hole inverter', 'Time machine', 'synergy2'); last.icon[2] = iconsURL; last.order = order + 0.01;
// Achievements
order = BlackholeInverter.getAchievementOrder(); i = 0;
last = Game.TieredAchievement('Single singularity', '', 'Black hole inverter', 1); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Penrose diagram', '', 'Black hole inverter', 2); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Schwarzschild', '', 'Black hole inverter', 3); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Holes in holes', '', 'Black hole inverter', 4); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('No-hair theorem', '', 'Black hole inverter', 5); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Photon sphere', '', 'Black hole inverter', 6); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Information paradox', '', 'Black hole inverter', 7); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Gravitaional lensing', '', 'Black hole inverter', 8); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Galactic nuclei', '', 'Black hole inverter', 9); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Sagittarius A*', '', 'Black hole inverter', 10); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Hey now, you\'re a dead star', '', 'Black hole inverter', 11); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Incredibly dense', '', 'Black hole inverter', 12); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Infinitely dense', '', 'Black hole inverter', 13); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.TieredAchievement('Quasi-stellar radio source', '', 'Black hole inverter', 14); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.ProductionAchievement('Relativistic jets', 'Black hole inverter', 1); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.ProductionAchievement('Primordial black holes', 'Black hole inverter', 2); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = Game.ProductionAchievement('Naked singularity', 'Black hole inverter', 3); last.icon[2] = iconsURL; last.order = order + i / 100; i++;
last = CCSE.NewAchievement('M87', 'Reach level <b>10</b> black hole inverters.', [1, 26, iconsURL]);
Game.Objects['Black hole inverter'].levelAchiev10 = last; last.order = order + i / 100; i++;
Game.customStatsMenu.push(function(){
CCSE.AppendStatsVersionNumber(BlackholeInverter.name, BlackholeInverter.version);
});
// Finish up
BlackholeInverter.isLoaded = 1;
if(BlackholeInverter.postloadHooks){
for(var i = 0; i < BlackholeInverter.postloadHooks.length; ++i) BlackholeInverter.postloadHooks[i]();
}
if (Game.prefs.popups) Game.Popup(BlackholeInverter.name + ' loaded!');
else Game.Notify(BlackholeInverter.name + ' loaded!', '', '', 1, 1);
}
BlackholeInverter.getTieredUpgradeOrder = function(){
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
var res = 0;
for(var i = 0; i < Game.ObjectsN; i++){
var me = Game.ObjectsById[i];
for(var ii in me.tieredUpgrades){
if(isNumber(ii)) res = Math.max(me.tieredUpgrades[ii].order, res);
}
}
return res + 0.01;
}
BlackholeInverter.getGrandmaUpgradeOrder = function(){
var res = 0;
for(var i in Game.GrandmaSynergies){
res = Math.max(Game.Upgrades[Game.GrandmaSynergies[i]].order, res);
}
return res + 0.01;
}
BlackholeInverter.getSynergyUpgradeOrder = function(){
var res = 0;
for(var i = 0; i < Game.ObjectsN; i++){
var me = Game.ObjectsById[i];
for(var ii in me.synergies){
res = Math.max(me.synergies[ii].order, res);
}
}
return res + 0.01;
}
BlackholeInverter.getAchievementOrder = function(){
var res = 0;
for(var i = 0; i < Game.ObjectsN-1; i++){
var me = Game.ObjectsById[i];
for(var ii in me.tieredAchievs){
res = Math.max(me.tieredAchievs[ii].order, res);
}
for(var ii in me.productionAchievs){
res = Math.max(me.productionAchievs[ii].achiev.order, res);
}
if(me.levelAchiev10) res = Math.max(me.levelAchiev10.order, res);
}
return res + 0.01;
}
ModLanguage('*',{
"%1 black hole inverter": [
"%1 black hole inverter",
"%1 black hole inverters"
],
"[Black hole inverter quote]Inverts the flow of gravity to get the infinitely delicious cookies from an infinitely dense singularity.": "Inverts the flow of gravity to get the infinitely delicious cookies from an infinitely dense singularity.",
"[Black hole inverter business name]Hypnodrone": "Hypnodrone",
'[Black hole inverter business quote]Autonomous aerial brand ambassadors to "encourage" more sales!': 'Autonomous aerial brand ambassadors to "encourage" more sales!',
});
if(CCSE.ConfirmGameVersion(BlackholeInverter.name, BlackholeInverter.version, BlackholeInverter.GameVersion)) BlackholeInverter.init();
}
if(!BlackholeInverter.isLoaded){
if(CCSE && CCSE.isLoaded){
BlackholeInverter.launch();
}
else{
if(!CCSE) var CCSE = {};
if(!CCSE.postLoadHooks) CCSE.postLoadHooks = [];
CCSE.postLoadHooks.push(BlackholeInverter.launch);
}
}