@kitten-science/kitten-scientists
Version:
Add-on for the wonderful incremental browser game: https://kittensgame.com/web/
535 lines • 36.7 kB
TypeScript
import type { Maybe } from "@oliversalzburg/js-utils/data/nil.js";
import "dojo";
import type { KittenScientists } from "../KittenScientists.js";
import type { Achievements, AchievementsPanel, AchTab, BadgesPanel } from "./achievements.js";
import type { BuildingBtnModernController, BuildingMeta, BuildingsManager, BuildingsModern, GatherCatnipButtonController, Metadata, RefineCatnipButton, RefineCatnipButtonController, StagingBldBtn, StagingBldBtnController, UnsafeBuilding } from "./buildings.js";
import type { Calendar, Event } from "./calendar.js";
import type { ChallengeBtnController, ChallengeEffectsPanel, ChallengePanel, ChallengesManager, ChallengesTab, ReserveMan, ReservesPanel, UnsafeChallenge } from "./challenges.js";
import type { KGConfig } from "./config.js";
import type { AllBuildingBtnOptions, AllBuildingResearchBtnOptions, AllBuildingStackableBtnOptions, AllButtonModernOptions, AllButtonOptions, BuildingBtn, BuildingBtnController, BuildingNotStackableBtnController, BuildingResearchBtn, BuildingStackableBtn, BuildingStackableBtnController, Button, ButtonController, ButtonModern, ButtonModernController, Console, ContentRowRenderer, Control, IChildrenAware, IGameAware, Panel, Spacer, Tab, TabManager, UnsafeBuildingBtnModel, UnsafeBuildingStackableBtnModel } from "./core.js";
import type { AutoPinnedButton, AutoPinnedButtonController, CrashBcoinButtonController, Diplomacy, DiplomacyManager, EldersPanel, EmbassyButton, EmbassyButtonController, RacePanel, SendExplorersButton, SendExplorersButtonController, TradeButton, TradeButtonController } from "./diplomacy.js";
import type { EffectsManager, GamePage, IDataStorageAware, Server, Telemetry, Timer, UndoChange } from "./game.js";
import type { Math as KGMath } from "./math.js";
import type { BurnParagonBtnController, PrestigeBtnController, PrestigeManager, PrestigePanel, TurnHGOffButtonController, UnsafePerk } from "./prestige.js";
import type { AllMultiLinkBtnOptions, CryptotheologyPanel, CryptotheologyWGT, MultiLinkBtn, PactsBtnController, PactsManager, PactsPanel, PactsWGT, PraiseBtnController, RefineBtn, RefineTearsBtnController, ReligionBtnController, ReligionManager, ReligionTab, ResetFaithBtnController, TranscendBtnController, TranscendenceBtnController, TransformBtnController, UnsafePact, UnsafeReligionBtnModel, UnsafeReligionButtonOptions, UnsafeReligionUpgrade, UnsafeTranscendenceBtnModel, UnsafeTranscendenceButtonOptions, UnsafeTranscendenceUpgrade, UnsafeZigguratBtnModel, UnsafeZigguratButtonOptions, UnsafeZigguratUpgrade, ZigguratBtnController } from "./religion.js";
import type { ResourceManager } from "./resources.js";
import type { Library, PolicyBtnController, PolicyPanel, ScienceManager, TechButtonController, UnsafePolicy, UnsafeTech } from "./science.js";
import type { FurthestRingPanel, PlanetBuildingBtnController, PlanetPanel, SpaceManager, SpaceProgramBtnController, SpaceTab, UnsafePlanet, UnsafePlanetBuildingButtonOptions, UnsafeSpaceBuilding } from "./space.js";
import type { StatsManager, StatsTab } from "./stats.js";
import type { AccelerateTimeBtn, AccelerateTimeBtnController, ChronoforgeBtnController, ChronoforgeWgt, FixCryochamberBtnController, Manager, QueueTab, ResetWgt, ShatterTCBtn, ShatterTCBtnController, TimeControlWgt, TimeManager, TimeTab, UnsafeChronoForgeUpgrade, UnsafeChronoforgeUpgradeButtonOptions, UnsafeVoidSpaceUpgrade, UnsafeVoidSpaceUpgradeButtonOptions, VoidSpaceBtnController, VoidSpaceWgt } from "./time.js";
import type { Toolbar, ToolbarEnergy, ToolbarHappiness, ToolbarIcon, ToolbarMOTD } from "./toolbar.js";
import type { DesktopUI, IReactAware, UISystem } from "./ui.js";
import type { BiomeBtn, BiomeBtnController, Census, CensusPanel, FestivalButton, FestivalButtonController, JobButton, JobButtonController, Kitten, KittenSim, Loadout, LoadoutButton, LoadoutButtonController, LoadoutController, MapOverviewWgt, UnsafeBiome, UnsafeJob, UpgradeExplorersController, UpgradeHQController, Village, VillageButtonController, VillageManager } from "./village.js";
import type { RorshachWgt, VoidManager } from "./void.js";
import type { CraftButton, CraftButtonController, UnsafeCraft, UnsafeUpgrade, UpgradeButtonController, Workshop, WorkshopManager, ZebraUpgradeButtonController } from "./workshop.js";
export declare const BuyItemResultReasons: readonly ["already-bought", "cannot-afford", "dev-mode", "item-is-free", "not-enabled", "not-unlocked", "paid-for", "player-denied", "require-confirmation"];
export type BuyItemResultReason = (typeof BuyItemResultReasons)[number];
export type UnsafeBuyItemResult = {
itemBought: boolean;
reason: BuyItemResultReason;
};
export type UnsafeBuyItemResultDeferred = {
itemBought: boolean;
reason: "require-confirmation";
def: dojo.Deferred & {
then: (callable: (result: UnsafeBuyItemResult) => void) => void;
};
};
export declare const Buildings: readonly ["academy", "accelerator", "aiCore", "amphitheatre", "aqueduct", "barn", "biolab", "brewery", "calciner", "chapel", "chronosphere", "factory", "field", "harbor", "hut", "library", "logHouse", "lumberMill", "magneto", "mansion", "mine", "mint", "observatory", "oilWell", "pasture", "quarry", "reactor", "smelter", "steamworks", "temple", "tradepost", "unicornPasture", "warehouse", "workshop", "zebraForge", "zebraOutpost", "zebraWorkshop", "ziggurat"];
export type Building = (typeof Buildings)[number];
export declare const StagedBuildings: readonly ["broadcasttower", "dataCenter", "hydroplant", "solarfarm", "spaceport"];
export type StagedBuilding = (typeof StagedBuildings)[number];
export declare const StagedBaseBuildings: readonly ["amphitheatre", "library", "aqueduct", "pasture", "warehouse"];
export type StagedBaseBuilding = (typeof StagedBaseBuildings)[number];
export declare const BuildingEffects: readonly ["academyMeteorBonus", "aiLevel", "alicornPerTickCon", "bloodstoneRatio", "cathPollutionPerTickCon", "cathPollutionPerTickProd", "catnipDemandRatio", "catnipMax", "catnipPerTickBase", "catnipPerTickCon", "catnipRatio", "coalMax", "coalPerTickAutoprod", "coalPerTickBase", "coalPerTickCon", "coalRatioGlobal", "craftRatio", "cultureMax", "cultureMaxRatio", "culturePerTickBase", "energyConsumption", "energyProduction", "faithMax", "faithPerTickBase", "festivalArrivalRatio", "festivalRatio", "fursDemandRatio", "fursPerTickProd", "gflopsPerTickBase", "goldMax", "goldPerTickAutoprod", "goldPerTickCon", "happiness", "hunterRatio", "ironMax", "ironPerTickAutoprod", "ironPerTickCon", "ivoryDemandRatio", "ivoryPerTickCon", "ivoryPerTickProd", "magnetoBoostRatio", "magnetoRatio", "manpowerMax", "manpowerPerTickCon", "manuscriptPerTickProd", "maxKittens", "mineralsMax", "mineralsPerTickCon", "mineralsPerTickProd", "mineralsRatio", "oilMax", "oilPerTick", "oilPerTickBase", "oilPerTickCon", "oilPerTickProd", "productionRatio", "refineRatio", "resStasisRatio", "scienceMax", "scienceRatio", "skillXP", "spiceDemandRatio", "spicePerTickCon", "standingRatio", "starAutoSuccessChance", "starEventChance", "steelPerTickProd", "tMythrilCraftRatio", "tMythrilPerTick", "temporalFluxProduction", "thoriumPerTick", "titaniumMax", "titaniumPerTickAutoprod", "titaniumPerTickCon", "tradeRatio", "unhappinessRatio", "unicornsPerTickBase", "uraniumMax", "uraniumPerTick", "uraniumPerTickAutoprod", "uraniumPerTickBase", "woodMax", "woodPerTickCon", "woodRatio", "zebraPreparations", "activeHG", "alicornChance", "alicornPerTick", "blackLibraryBonus", "blsCorruptionRatio", "blsLimit", "compendiaTTBoostRatio", "corruptionBoostRatio", "corruptionRatio", "cultureMaxRatioBonus", "deficitRecoveryRatio", "energyProductionRatio", "faithRatioReligion", "globalResourceRatio", "goldMaxRatio", "ivoryMeteorChance", "ivoryMeteorRatio", "maxKittensRatio", "necrocornPerDay", "pactBlackLibraryBoost", "pactDeficitRecoveryRatio", "pactFaithRatio", "pactGlobalProductionRatio", "pactGlobalResourceRatio", "pactSpaceCompendiumRatio", "pactsAvailable", "pyramidFaithRatio", "pyramidGlobalProductionRatio", "pyramidGlobalResourceRatio", "pyramidRecoveryRatio", "pyramidSpaceCompendiumRatio", "relicRefineRatio", "riftChance", "rrRatio", "simScalingRatio", "solarRevolutionLimit", "solarRevolutionRatio", "tcRefineRatio", "timeRatio", "unicornsRatioReligion", "acceleratorRatio", "barnRatio", "beaconRelicsPerDay", "biofuelRatio", "broadcastTowerRatio", "cadBlueprintCraftRatio", "calcinerRatio", "calcinerSteelCraftRatio", "calcinerSteelRatio", "calcinerSteelReactorBonus", "catnipDemandWorkerRatioGlobal", "catnipJobRatio", "catnipMaxRatio", "coalRatioGlobalReduction", "coalSuperRatio", "crackerRatio", "dataCenterAIRatio", "eludiumAutomationBonus", "factoryRefineRatio", "harborCoalRatio", "harborRatio", "hutPriceRatio", "hydroPlantRatio", "libraryRatio", "lumberMillRatio", "lunarOutpostRatio", "manpowerJobRatio", "oilWellRatio", "queueCap", "reactorEnergyRatio", "reactorThoriumPerTick", "routeSpeed", "satnavRatio", "shipLimit", "skillMultiplier", "smelterRatio", "solarFarmRatio", "solarFarmSeasonRatio", "spaceScienceRatio", "starchartGlobalRatio", "t1CraftRatio", "t2CraftRatio", "t3CraftRatio", "t4CraftRatio", "t5CraftRatio", "temporalFluxProductionChronosphere", "temporalParadoxDayBonus", "unicornsGlobalRatio", "uplinkDCRatio", "uplinkLabRatio", "uraniumRatio", "warehouseRatio", "woodJobRatio", "goldPriceRatio", "happinessKittenProductionRatio", "heatMax", "heatPerTick", "observatoryRatio", "starchartPerTickBaseSpace", "temporalFluxMax", "unobtainiumPerTickSpace", "uraniumPerTickCon"];
export type BuildingEffect = (typeof BuildingEffects)[number];
export declare const Seasons: readonly ["autumn", "spring", "summer", "winter"];
export type Season = (typeof Seasons)[number];
export declare const Cycles: readonly ["charon", "umbra", "yarn", "helios", "cath", "redmoon", "dune", "piscine", "terminus", "kairo"];
export type Cycle = (typeof Cycles)[number];
export declare const ResourcesCraftable: readonly ["alloy", "beam", "bloodstone", "blueprint", "compedium", "concrate", "eludium", "gear", "kerosene", "manuscript", "megalith", "parchment", "plate", "scaffold", "ship", "slab", "steel", "tanker", "tMythril", "thorium", "wood"];
export type ResourceCraftable = (typeof ResourcesCraftable)[number];
export declare const Resources: readonly ["alloy", "beam", "bloodstone", "blueprint", "compedium", "concrate", "eludium", "gear", "kerosene", "manuscript", "megalith", "parchment", "plate", "scaffold", "ship", "slab", "steel", "tanker", "tMythril", "thorium", "wood", "alicorn", "antimatter", "blackcoin", "burnedParagon", "catnip", "coal", "culture", "elderBox", "faith", "furs", "gflops", "gold", "hashrates", "iron", "ivory", "karma", "kittens", "manpower", "minerals", "necrocorn", "oil", "paragon", "relic", "science", "sorrow", "spice", "starchart", "tears", "temporalFlux", "timeCrystal", "titanium", "unicorns", "unobtainium", "uranium", "void", "wrappingPaper", "zebras"];
export type Resource = (typeof Resources)[number];
export declare const TabIds: readonly ["Bonfire", "Religion", "Science", "Space", "Time", "Trade", "Village", "Workshop"];
export type TabId = (typeof TabIds)[number];
export declare const Jobs: readonly ["any", "engineer", "farmer", "geologist", "hunter", "miner", "priest", "scholar", "woodcutter"];
export type Job = (typeof Jobs)[number];
export declare const Traits: readonly ["chemist", "engineer", "manager", "metallurgist", "merchant", "none", "scientist", "wise"];
export type Trait = (typeof Traits)[number];
export declare const QueueElementTypes: readonly ["buildings", "chronoforge", "pacts", "policies", "religion", "spaceBuilding", "spaceMission", "tech", "transcendenceUpgrades", "upgrades", "voidSpace", "zebraUpgrades", "zigguratUpgrades"];
export type QueueElementTypeMap = {
buildings: {
controller: StagingBldBtnController | BuildingBtnModernController;
model: UnsafeBuildingStackableBtnModel<AllBuildingStackableBtnOptions>;
};
chronoforge: {
controller: ChronoforgeBtnController;
model: UnsafeBuildingStackableBtnModel<UnsafeChronoforgeUpgradeButtonOptions>;
};
pacts: {
controller: null;
model: null;
};
policies: {
controller: null;
model: null;
};
religion: {
controller: ReligionBtnController;
model: UnsafeReligionBtnModel<UnsafeReligionButtonOptions>;
};
spaceBuilding: {
controller: PlanetBuildingBtnController<UnsafeBuildingStackableBtnModel<UnsafePlanetBuildingButtonOptions>>;
model: UnsafeBuildingStackableBtnModel<UnsafePlanetBuildingButtonOptions>;
};
spaceMission: {
controller: SpaceProgramBtnController<UnsafeBuildingStackableBtnModel>;
model: UnsafeBuildingStackableBtnModel;
};
tech: {
controller: null;
model: null;
};
transcendenceUpgrades: {
controller: TranscendenceBtnController;
model: UnsafeTranscendenceBtnModel<UnsafeTranscendenceButtonOptions>;
};
upgrades: {
controller: null;
model: null;
};
voidSpace: {
controller: VoidSpaceBtnController;
model: UnsafeBuildingStackableBtnModel<UnsafeVoidSpaceUpgradeButtonOptions>;
};
zebraUpgrades: {
controller: null;
model: null;
};
zigguratUpgrades: {
controller: ZigguratBtnController;
model: UnsafeZigguratBtnModel<UnsafeZigguratButtonOptions>;
};
};
export type QueueElementType = (typeof QueueElementTypes)[number];
export declare enum UnicornItemVariant {
Cryptotheology = "c",
OrderOfTheSun = "s",
Ziggurat = "z",
UnicornPasture = "zp"
}
export declare const ReligionUpgrades: readonly ["apocripha", "basilica", "goldenSpire", "scholasticism", "solarRevolution", "solarchant", "stainedGlass", "sunAltar", "templars", "transcendence"];
export type ReligionUpgrade = (typeof ReligionUpgrades)[number];
export declare const TranscendenceUpgrades: readonly ["blackCore", "blackLibrary", "blackNexus", "blackObelisk", "blackRadiance", "blazar", "darkNova", "holyGenocide", "mausoleum", "singularity"];
export type TranscendenceUpgrade = (typeof TranscendenceUpgrades)[number];
export declare const ZigguratUpgrades: readonly ["blackPyramid", "ivoryCitadel", "ivoryTower", "marker", "skyPalace", "sunspire", "unicornGraveyard", "unicornNecropolis", "unicornTomb", "unicornUtopia"];
export type ZigguratUpgrade = (typeof ZigguratUpgrades)[number];
export declare const Pacts: readonly ["fractured", "pactOfCleansing", "pactOfDestruction", "pactOfExtermination", "pactOfPurity", "payDebt"];
export type Pact = (typeof Pacts)[number];
export type AllBuildings = Building | ChronoForgeUpgrade | ReligionUpgrade | SpaceBuilding | TranscendenceUpgrade | VoidSpaceUpgrade | ZigguratUpgrade;
export declare const Races: readonly ["dragons", "griffins", "nagas", "leviathans", "lizards", "sharks", "spiders", "zebras"];
export type Race = (typeof Races)[number];
export declare const Policies: readonly ["authocracy", "bigStickPolicy", "carnivale", "cityOnAHill", "clearCutting", "communism", "conservation", "cryochamberExtraction", "culturalExchange", "diplomacy", "dragonRelationsAstrologers", "dragonRelationsDynamicists", "dragonRelationsPhysicists", "environmentalism", "epicurianism", "expansionism", "extravagance", "fascism", "frugality", "fullIndustrialization", "griffinRelationsMachinists", "griffinRelationsMetallurgists", "griffinRelationsScouts", "isolationism", "knowledgeSharing", "liberalism", "liberty", "lizardRelationsDiplomats", "lizardRelationsEcologists", "lizardRelationsPriests", "militarizeSpace", "monarchy", "mysticism", "nagaRelationsArchitects", "nagaRelationsCultists", "nagaRelationsMasons", "necrocracy", "openWoodlands", "outerSpaceTreaty", "radicalXenophobia", "rationality", "rationing", "republic", "scientificCommunism", "sharkRelationsBotanists", "sharkRelationsMerchants", "sharkRelationsScribes", "siphoning", "socialism", "spiderRelationsChemists", "spiderRelationsGeologists", "spiderRelationsPaleontologists", "stoicism", "stripMining", "sustainability", "technocracy", "terraformingInsight", "theocracy", "tradition", "transkittenism", "zebraRelationsAppeasement", "zebraRelationsBellicosity"];
export type Policy = (typeof Policies)[number];
export declare const TechnologiesIgnored: readonly ["brewery"];
export type TechnologyIgnored = (typeof TechnologiesIgnored)[number];
export declare const Technologies: readonly ["acoustics", "advExogeology", "agriculture", "ai", "animal", "antimatter", "archeology", "archery", "architecture", "artificialGravity", "astronomy", "biochemistry", "biology", "blackchain", "calendar", "chemistry", "chronophysics", "civil", "combustion", "construction", "cryptotheology", "currency", "dimensionalPhysics", "drama", "ecology", "electricity", "electronics", "engineering", "exogeology", "exogeophysics", "genetics", "hydroponics", "industrialization", "machinery", "math", "mechanization", "metal", "metalurgy", "metaphysics", "mining", "nanotechnology", "navigation", "nuclearFission", "oilProcessing", "orbitalEngineering", "paradoxalKnowledge", "particlePhysics", "philosophy", "physics", "quantumCryptography", "robotics", "rocketry", "sattelites", "steel", "superconductors", "tachyonTheory", "terraformation", "theology", "thorium", "voidSpace", "writing"];
export type Technology = (typeof Technologies)[number];
export declare const Missions: readonly ["centaurusSystemMission", "charonMission", "duneMission", "furthestRingMission", "heliosMission", "kairoMission", "moonMission", "orbitalLaunch", "piscineMission", "rorschachMission", "terminusMission", "umbraMission", "yarnMission"];
export type Mission = (typeof Missions)[number];
export declare const Planets: readonly ["cath", "centaurusSystem", "charon", "dune", "furthestRing", "helios", "kairo", "moon", "piscine", "terminus", "umbra", "yarn"];
export type Planet = (typeof Planets)[number];
export declare const SpaceBuildings: readonly ["containmentChamber", "cryostation", "entangler", "heatsink", "hrHarvester", "hydrofracturer", "hydroponics", "moltenCore", "moonBase", "moonOutpost", "orbitalArray", "planetCracker", "researchVessel", "sattelite", "spaceBeacon", "spaceElevator", "spaceStation", "spiceRefinery", "sunforge", "sunlifter", "tectonic", "terraformingStation"];
export type SpaceBuilding = (typeof SpaceBuildings)[number];
export declare const Stats: readonly ["averageKittens", "buildingsConstructed", "eventsObserved", "kittensDead", "timePlayed", "totalChallengesCompleted", "totalClicks", "totalCrafts", "totalKittens", "totalParagon", "totalResets", "totalTrades", "totalYears", "transcendenceTier", "unicornsSacrificed"];
export type Stat = (typeof Stats)[number];
export declare const ChronoForgeUpgrades: readonly ["blastFurnace", "ressourceRetrieval", "temporalAccelerator", "temporalBattery", "temporalImpedance", "temporalPress", "timeBoiler"];
export type ChronoForgeUpgrade = (typeof ChronoForgeUpgrades)[number];
export declare const VoidSpaceUpgrades: readonly ["cryochambers", "usedCryochambers", "voidHoover", "voidRift", "chronocontrol", "voidResonator"];
export type VoidSpaceUpgrade = (typeof VoidSpaceUpgrades)[number];
export declare const Upgrades: readonly ["advancedAutomation", "advancedRefinement", "aiBases", "aiEngineers", "alloyArmor", "alloyAxe", "alloyBarns", "alloySaw", "alloyWarehouses", "amBases", "amDrive", "amFission", "amReactors", "amReactorsMK2", "assistance", "astrolabe", "astrophysicists", "augumentation", "automatedPlants", "barges", "biofuel", "bolas", "cadSystems", "caravanserai", "carbonSequestration", "cargoShips", "celestialMechanics", "chronoEngineers", "chronoforge", "coalFurnace", "coldFusion", "combustionEngine", "compositeBow", "concreteBarns", "concreteHuts", "concreteWarehouses", "crossbow", "cryocomputing", "darkEnergy", "deepMining", "distorsion", "electrolyticSmelting", "eludiumCracker", "eludiumHuts", "eludiumReflectors", "energyRifts", "enrichedThorium", "enrichedUranium", "factoryAutomation", "factoryLogistics", "factoryOptimization", "factoryProcessing", "factoryRobotics", "fluidizedReactors", "fluxCondensator", "fuelInjectors", "geodesy", "gmo", "goldOre", "hubbleTelescope", "huntingArmor", "hydroPlantTurbines", "internet", "invisibleBlackHand", "ironAxes", "ironHoes", "ironwood", "lhc", "logistics", "longRangeSpaceships", "machineLearning", "mineralAxes", "mineralHoes", "miningDrill", "mWReactor", "nanosuits", "neuralNetworks", "nuclearPlants", "nuclearSmelters", "offsetPress", "oilDistillation", "oilRefinery", "orbitalGeodesy", "oxidation", "photolithography", "photovoltaic", "pneumaticPress", "printingPress", "pumpjack", "pyrolysis", "qdot", "railgun", "reactorVessel", "refrigeration", "register", "reinforcedBarns", "reinforcedSaw", "reinforcedWarehouses", "relicStation", "rotaryKiln", "satelliteRadio", "satnav", "seti", "silos", "solarSatellites", "spaceEngineers", "spaceManufacturing", "spiceNavigation", "starlink", "stasisChambers", "steelArmor", "steelAxe", "steelPlants", "steelSaw", "stoneBarns", "storageBunkers", "strenghtenBuild", "tachyonAccelerators", "tachyonModerator", "thinFilm", "thoriumEngine", "thoriumReactors", "titaniumAxe", "titaniumBarns", "titaniumMirrors", "titaniumSaw", "titaniumWarehouses", "turnSmoothly", "unicornSelection", "unobtainiumAxe", "unobtainiumDrill", "unobtainiumHuts", "unobtainiumReflectors", "unobtainiumSaw", "uplink", "voidAspiration", "voidEnergy", "voidReactors"];
export type Upgrade = (typeof Upgrades)[number];
export declare const ZebraUpgrades: readonly ["bloodstoneInstitute", "darkBrew", "darkRevolution", "minerologyDepartment", "whispers"];
export type ZebraUpgrade = (typeof ZebraUpgrades)[number];
export declare enum TimeItemVariant {
Chronoforge = "chrono",
VoidSpace = "void"
}
export type FaithItem = Exclude<ReligionItem, UnicornItem>;
export declare const UnicornItems: readonly ["ivoryCitadel", "ivoryTower", "skyPalace", "sunspire", "unicornPasture", "unicornTomb", "unicornUtopia"];
export type UnicornItem = (typeof UnicornItems)[number];
export type ReligionItem = ReligionUpgrade | TranscendenceUpgrade | ZigguratUpgrade;
export type ReligionAdditionItem = "adore" | "autoPraise" | "bestUnicornBuilding" | "transcend";
export declare const ReligionOptions: readonly ["sacrificeUnicorns", "sacrificeAlicorns", "refineTears", "refineTimeCrystals", "transcend", "adore", "autoPraise"];
export type ReligionOption = (typeof ReligionOptions)[number];
export declare const Biomes: readonly ["bloodDesert", "boneForest", "desert", "forest", "hills", "mountain", "plains", "rainForest", "swamp", "village", "volcano"];
export type Biome = (typeof Biomes)[number];
export type Unlocks = {
buildings: Array<Building>;
challenges: Array<Challenge>;
chronoforge: Array<ChronoForgeUpgrade>;
crafts: Array<ResourceCraftable>;
jobs: Array<Job>;
policies: Array<Policy>;
stages: Array<StagedBuilding>;
tabs: Array<TabId>;
tech: Array<Technology>;
upgrades: Array<Upgrade>;
voidSpace: Array<VoidSpaceUpgrade>;
zebraUpgrades: Array<unknown>;
};
export declare const Perks: readonly ["adjustmentBureau", "anachronomancy", "ascoh", "astromancy", "binah", "blackCodex", "carnivals", "chesed", "chokhmah", "chronomancy", "codexAgrum", "codexLeviathanianus", "codexLogos", "codexVox", "diplomacy", "divineProportion", "engeneering", "gevurah", "goldenRatio", "hod", "keter", "malkuth", "megalomania", "navigationDiplomacy", "netzach", "numerology", "numeromancy", "pawgan", "renaissance", "tiferet", "unicornmancy", "vitruvianFeline", "voidOrder", "willenfluff", "yesod", "zebraCovenant", "zebraDiplomacy"];
export type Perk = (typeof Perks)[number];
export declare const ColorSchemes: readonly ["anthracite", "arctic", "black", "bluish", "catnip", "chocolate", "computer", "cyber", "dark", "default", "dune", "factory", "fluid", "gold", "grassy", "grayish", "greenish", "minimalist", "oil", "school", "sleek", "space", "spooky", "tombstone", "unicorn", "vessel", "vintage", "wood"];
export type ColorScheme = (typeof ColorSchemes)[number];
export declare const Locales: readonly ["be", "br", "cz", "de", "en", "es", "esl", "fr", "it", "ja", "ko", "pl", "ru", "uk", "zh", "zht"];
export type Locale = (typeof Locales)[number];
export declare const Notations: readonly ["si", "e", "sie"];
export type Notation = (typeof Notations)[number];
export type CycleEffects = {
"cryostation-coalMax": number;
"cryostation-ironMax": number;
"cryostation-mineralsMax": number;
"cryostation-oilMax": number;
"cryostation-titaniumMax": number;
"cryostation-unobtainiumMax": number;
"cryostation-uraniumMax": number;
"cryostation-woodMax": number;
"entangler-gflopsConsumption": number;
"hrHarvester-energyProduction": number;
"hydrofracturer-oilPerTickAutoprodSpace": number;
"hydroponics-catnipRatio": number;
"moonOutpost-unobtainiumPerTickSpace": number;
"planetCracker-uraniumPerTickSpace": number;
"researchVessel-starchartPerTickBaseSpace": number;
"sattelite-observatoryRatio": number;
"sattelite-starchartPerTickBaseSpace": number;
"spaceBeacon-starchartPerTickBaseSpace": number;
"spaceElevator-prodTransferBonus": number;
"spaceStation-scienceRatio": number;
"sunlifter-energyProduction": number;
};
export type FestivalEffects = {
catnip: number;
coal: number;
culture: number;
faith: number;
gold: number;
iron: number;
manpower: number;
minerals: number;
oil: number;
science: number;
starchart: number;
titanium: number;
unicorns: number;
unobtainium: number;
uranium: number;
wood: number;
};
export type UnlockTypeMap = {
biomes: UnsafeBiome;
buildings: UnsafeBuilding;
challenges: UnsafeChallenge;
chronoforge: UnsafeChronoForgeUpgrade;
crafts: UnsafeCraft;
jobs: UnsafeJob;
pacts: UnsafePact;
perks: UnsafePerk;
planet: UnsafePlanet;
policies: UnsafePolicy;
religion: UnsafeReligionUpgrade;
schemes: unknown;
spaceBuilding: UnsafeSpaceBuilding;
spaceMission: UnsafePlanet;
stages: UnsafeBuilding;
tabs: Tab;
tech: UnsafeTech;
transcendenceUpgrades: UnsafeTranscendenceUpgrade;
upgrades: UnsafeUpgrade;
voidSpace: UnsafeVoidSpaceUpgrade;
zebraUpgrades: UnsafeUpgrade;
zigguratUpgrades: UnsafeZigguratUpgrade;
};
export type Unlock = keyof UnlockTypeMap;
/**
* A combination of a resource and an amount.
*/
export type Price = {
name: Resource;
val: number;
};
export declare const Challenges: readonly ["1000Years", "anarchy", "atheism", "energy", "ironWill", "pacifism", "postApocalypse", "winterIsComing"];
export type Challenge = (typeof Challenges)[number];
export type Link = {
visible: boolean;
title: string;
tooltip: string;
getDisplayValueExt: () => string;
handler: (event: Event, callback: (success: boolean) => void) => void;
};
export type ClassList = {
BuildingMeta: BuildingMeta;
diplomacy: {
ui: {
autoPinnedButtonController: AutoPinnedButtonController;
autoPinnedButton: AutoPinnedButton;
EldersPanel: EldersPanel;
EmbassyButtonController: EmbassyButtonController;
EmbassyButton: EmbassyButton;
RacePanel: RacePanel;
};
};
game: {
Server: Server;
Telemetry: Telemetry;
Timer: Timer;
ui: {
GatherCatnipButtonController: GatherCatnipButtonController;
RefineCatnipButton: RefineCatnipButton;
RefineCatnipButtonController: RefineCatnipButtonController;
};
UndoChange: UndoChange;
};
KGConfig: KGConfig;
managers: {
Achievements: Achievements;
BuildingsManager: BuildingsManager;
ChallengesManager: ChallengesManager;
DiplomacyManager: DiplomacyManager;
PrestigeManager: PrestigeManager;
ReligionManager: ReligionManager;
ResourceManager: ResourceManager;
ScienceManager: ScienceManager;
SpaceManager: SpaceManager;
StatsManager: StatsManager;
TimeManager: TimeManager;
VillageManager: VillageManager;
VoidManager: VoidManager;
WorkshopManager: WorkshopManager;
};
Metadata: Metadata;
queue: {
manager: Manager;
};
religion: {
pactsManager: PactsManager;
};
reserveMan: ReserveMan;
tab: {
ChallengesTab: ChallengesTab;
QueueTab: QueueTab;
StatsTab: StatsTab;
TimeTab: TimeTab;
};
trade: {
ui: {
SendExplorersButtonController: SendExplorersButtonController;
SendExplorersButton: SendExplorersButton;
};
};
ui: {
AchievementsPanel: AchievementsPanel;
BadgesPanel: BadgesPanel;
btn: {
BuildingBtnModernController: BuildingBtnModernController;
StagingBldBtnController: StagingBldBtnController;
StagingBldBtn: StagingBldBtn;
};
BuildingBtnController: BuildingBtnController;
BurnParagonBtnController: BurnParagonBtnController;
ButtonController: ButtonController;
ButtonModernController: ButtonModernController;
BuildingStackableBtnController: BuildingStackableBtnController;
ChallengeBtnController: ChallengeBtnController;
ChallengeEffectsPanel: ChallengeEffectsPanel;
ChallengePanel: ChallengePanel;
ChronoforgeWgt: ChronoforgeWgt;
CryptotheologyPanel: CryptotheologyPanel;
CryptotheologyWGT: CryptotheologyWGT;
DesktopUI: DesktopUI;
PactsPanel: PactsPanel;
PactsWGT: PactsWGT;
PolicyBtnController: PolicyBtnController;
PolicyPanel: PolicyPanel;
PrestigeBtnController: PrestigeBtnController;
PrestigePanel: PrestigePanel;
RorshachWgt: RorshachWgt;
religion: {
MultiLinkBtn: MultiLinkBtn<AllMultiLinkBtnOptions>;
RefineBtn: RefineBtn;
RefineTearsBtnController: RefineTearsBtnController;
TransformBtnController: TransformBtnController;
};
ReservesPanel: ReservesPanel;
ResetWgt: ResetWgt;
space: {
FurthestRingPanel: FurthestRingPanel;
PlanetBuildingBtnController: PlanetBuildingBtnController;
PlanetPanel: PlanetPanel;
};
time: {
AccelerateTimeBtn: AccelerateTimeBtn;
AccelerateTimeBtnController: AccelerateTimeBtnController;
ChronoforgeBtnController: ChronoforgeBtnController;
FixCryochamberBtnController: FixCryochamberBtnController;
ShatterTCBtn: ShatterTCBtn;
ShatterTCBtnController: ShatterTCBtnController;
VoidSpaceBtnController: VoidSpaceBtnController;
};
TimeControlWgt: TimeControlWgt;
toolbar: {
ToolbarEnergy: ToolbarEnergy;
ToolbarHappiness: ToolbarHappiness;
ToolbarMOTD: ToolbarMOTD;
};
Toolbar: Toolbar;
ToolbarIcon: ToolbarIcon;
TranscendenceBtnController: TranscendenceBtnController;
turnHGOffButtonController: TurnHGOffButtonController;
UISystem: UISystem;
village: {
BiomeBtn: BiomeBtn;
BiomeBtnController: BiomeBtnController;
Census: Census;
};
VoidSpaceWgt: VoidSpaceWgt;
};
village: {
KittenSim: KittenSim;
LoadoutController: LoadoutController;
ui: {
FestivalButton: FestivalButton;
FestivalButtonController: FestivalButtonController;
map: {
UpgradeExplorersController: UpgradeExplorersController;
UpgradeHQController: UpgradeHQController;
};
MapOverviewWgt: MapOverviewWgt;
VillageButtonController: VillageButtonController;
};
};
};
export type ComInterface = {
nuclearunicorn: {
core: {
Control: Control;
TabManager: TabManager;
};
game: {
Calendar: Calendar;
calendar: {
Event: Event;
};
EffectsManager: EffectsManager;
log: {
Console: Console;
};
Math: KGMath;
ui: {
BuildingBtn: BuildingBtn<AllBuildingBtnOptions>;
BuildingBtnController: BuildingBtnController;
BuildingNotStackableBtnController: BuildingNotStackableBtnController;
BuildingResearchBtn: BuildingResearchBtn<AllBuildingResearchBtnOptions>;
BuildingStackableBtn: BuildingStackableBtn<AllBuildingStackableBtnOptions>;
BuildingStackableBtnController: BuildingStackableBtnController;
Button: Button<AllButtonOptions>;
ButtonController: ButtonController;
ButtonModern: ButtonModern<AllButtonModernOptions>;
ButtonModernController: ButtonModernController;
CensusPanel: CensusPanel;
ContentRowRenderer: ContentRowRenderer;
CraftButton: CraftButton;
CraftButtonController: CraftButtonController;
CrashBcoinButtonController: CrashBcoinButtonController;
GamePage: GamePage;
JobButton: JobButton;
JobButtonController: JobButtonController;
LoadoutButton: LoadoutButton;
LoadoutButtonController: LoadoutButtonController;
PactsBtnController: PactsBtnController;
Panel: Panel;
PraiseBtnController: PraiseBtnController;
ReligionBtnController: ReligionBtnController;
ResetFaithBtnController: ResetFaithBtnController;
SpaceProgramBtnController: SpaceProgramBtnController<UnsafeBuildingBtnModel>;
Spacer: Spacer;
tab: Tab & {
AchTab: AchTab;
BuildingsModern: BuildingsModern;
Diplomacy: Diplomacy;
Library: Library;
ReligionTab: ReligionTab;
SpaceTab: SpaceTab;
Village: Village;
Workshop: Workshop;
};
TechButtonController: TechButtonController;
TradeButton: TradeButton;
TradeButtonController: TradeButtonController;
TranscendBtnController: TranscendBtnController;
UpgradeButtonController: UpgradeButtonController;
ZebraUpgradeButtonController: ZebraUpgradeButtonController;
ZigguratBtnController: ZigguratBtnController;
};
village: {
Kitten: Kitten;
Loadout: Loadout;
};
};
};
};
export type MixinInterface = {
IChildrenAware: IChildrenAware;
IDataStorageAware: IDataStorageAware;
IGameAware: IGameAware;
IReactAware: IReactAware;
};
export type I18nEngine = (key: string, args?: Array<number | string>) => string;
declare global {
const classes: ClassList;
const com: ComInterface;
const game: GamePage;
let unsafeWindow: Window | undefined;
interface Window {
$: JQuery;
$I?: Maybe<I18nEngine>;
dojo: {
clone: <T>(subject: T) => T;
subscribe: <TEvent extends string>(event: TEvent, handler: (...args: Array<any>) => void) => [TEvent, number];
unsubscribe: (handle: [string, number]) => void;
};
game?: Maybe<GamePage>;
gamePage?: Maybe<GamePage>;
kittenScientists?: KittenScientists;
LZString: {
compressToBase64: (input: string) => string;
compressToUTF16: (input: string) => string;
decompressFromBase64: (input: string) => string;
decompressFromUTF16: (input: string) => string;
};
}
}
export * from "./_releases.js";
export * from "./_save.js";
export * from "./achievements.js";
export * from "./buildings.js";
export * from "./calendar.js";
export * from "./challenges.js";
export * from "./core.js";
export * from "./diplomacy.js";
export * from "./game.js";
export * from "./math.js";
export * from "./prestige.js";
export * from "./religion.js";
export * from "./resources.js";
export * from "./science.js";
export * from "./space.js";
export * from "./time.js";
export * from "./toolbar.js";
export * from "./ui.js";
export * from "./village.js";
export * from "./void.js";
export * from "./workshop.js";
//# sourceMappingURL=index.d.ts.map