@kitten-science/kitten-scientists 2.0.0-beta.10-20250317-13d12af → 2.0.0-beta.10-dev-1c648fc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/BonfireManager.d.ts +17 -5
- package/lib/BonfireManager.d.ts.map +1 -1
- package/lib/BonfireManager.js +14 -13
- package/lib/BonfireManager.js.map +1 -1
- package/lib/Engine.js +3 -3
- package/lib/Engine.js.map +1 -1
- package/lib/KittenScientists.d.ts +5 -4
- package/lib/KittenScientists.d.ts.map +1 -1
- package/lib/KittenScientists.js.map +1 -1
- package/lib/ReligionManager.d.ts +5 -4
- package/lib/ReligionManager.d.ts.map +1 -1
- package/lib/ReligionManager.js +15 -18
- package/lib/ReligionManager.js.map +1 -1
- package/lib/ScienceManager.d.ts +2 -2
- package/lib/ScienceManager.d.ts.map +1 -1
- package/lib/ScienceManager.js.map +1 -1
- package/lib/SpaceManager.d.ts +3 -2
- package/lib/SpaceManager.d.ts.map +1 -1
- package/lib/SpaceManager.js +6 -3
- package/lib/SpaceManager.js.map +1 -1
- package/lib/TabManager.d.ts +3 -2
- package/lib/TabManager.d.ts.map +1 -1
- package/lib/TabManager.js.map +1 -1
- package/lib/TimeControlManager.d.ts +3 -2
- package/lib/TimeControlManager.d.ts.map +1 -1
- package/lib/TimeControlManager.js +6 -5
- package/lib/TimeControlManager.js.map +1 -1
- package/lib/TimeManager.d.ts +5 -3
- package/lib/TimeManager.d.ts.map +1 -1
- package/lib/TimeManager.js +21 -23
- package/lib/TimeManager.js.map +1 -1
- package/lib/TradeManager.d.ts +8 -7
- package/lib/TradeManager.d.ts.map +1 -1
- package/lib/TradeManager.js +7 -7
- package/lib/TradeManager.js.map +1 -1
- package/lib/UpgradeManager.d.ts +7 -2
- package/lib/UpgradeManager.d.ts.map +1 -1
- package/lib/UpgradeManager.js +24 -16
- package/lib/UpgradeManager.js.map +1 -1
- package/lib/VillageManager.d.ts +2 -2
- package/lib/VillageManager.d.ts.map +1 -1
- package/lib/VillageManager.js +1 -1
- package/lib/VillageManager.js.map +1 -1
- package/lib/WorkshopManager.d.ts +7 -6
- package/lib/WorkshopManager.d.ts.map +1 -1
- package/lib/WorkshopManager.js +1 -1
- package/lib/WorkshopManager.js.map +1 -1
- package/lib/helper/BulkPurchaseHelper.d.ts +9 -4
- package/lib/helper/BulkPurchaseHelper.d.ts.map +1 -1
- package/lib/helper/BulkPurchaseHelper.js +9 -11
- package/lib/helper/BulkPurchaseHelper.js.map +1 -1
- package/lib/settings/ElectLeaderSettings.d.ts +1 -1
- package/lib/settings/MissionSettings.d.ts +3 -2
- package/lib/settings/MissionSettings.d.ts.map +1 -1
- package/lib/settings/MissionSettings.js.map +1 -1
- package/lib/settings/PolicySettings.d.ts +3 -2
- package/lib/settings/PolicySettings.d.ts.map +1 -1
- package/lib/settings/PolicySettings.js.map +1 -1
- package/lib/settings/ReligionSettings.d.ts +1 -8
- package/lib/settings/ReligionSettings.d.ts.map +1 -1
- package/lib/settings/ReligionSettings.js +0 -18
- package/lib/settings/ReligionSettings.js.map +1 -1
- package/lib/settings/ResetReligionSettings.d.ts +1 -2
- package/lib/settings/ResetReligionSettings.d.ts.map +1 -1
- package/lib/settings/ResetReligionSettings.js.map +1 -1
- package/lib/settings/ScienceSettings.d.ts +2 -2
- package/lib/settings/ScienceSettings.d.ts.map +1 -1
- package/lib/settings/ScienceSettings.js.map +1 -1
- package/lib/settings/Settings.d.ts +1 -2
- package/lib/settings/Settings.d.ts.map +1 -1
- package/lib/settings/Settings.js.map +1 -1
- package/lib/settings/SpaceSettings.d.ts +3 -2
- package/lib/settings/SpaceSettings.d.ts.map +1 -1
- package/lib/settings/SpaceSettings.js.map +1 -1
- package/lib/settings/TechSettings.d.ts +3 -2
- package/lib/settings/TechSettings.d.ts.map +1 -1
- package/lib/settings/TechSettings.js.map +1 -1
- package/lib/settings/UpgradeSettings.d.ts +3 -2
- package/lib/settings/UpgradeSettings.d.ts.map +1 -1
- package/lib/settings/UpgradeSettings.js.map +1 -1
- package/lib/settings/WorkshopSettings.d.ts +3 -2
- package/lib/settings/WorkshopSettings.d.ts.map +1 -1
- package/lib/settings/WorkshopSettings.js.map +1 -1
- package/lib/tools/SavegameLoader.d.ts +3 -2
- package/lib/tools/SavegameLoader.d.ts.map +1 -1
- package/lib/tools/SavegameLoader.js.map +1 -1
- package/lib/types/{releases.d.ts → _releases.d.ts} +1 -1
- package/lib/types/_releases.d.ts.map +1 -0
- package/lib/types/_releases.js +2 -0
- package/lib/types/_releases.js.map +1 -0
- package/lib/types/{save.d.ts → _save.d.ts} +1 -1
- package/lib/types/_save.d.ts.map +1 -0
- package/lib/types/{save.js → _save.js} +1 -1
- package/lib/types/_save.js.map +1 -0
- package/lib/types/achievements.d.ts +56 -0
- package/lib/types/achievements.d.ts.map +1 -0
- package/lib/types/achievements.js +2 -0
- package/lib/types/achievements.js.map +1 -0
- package/lib/types/buildings.d.ts +168 -202
- package/lib/types/buildings.d.ts.map +1 -1
- package/lib/types/buildings.js +1 -47
- package/lib/types/buildings.js.map +1 -1
- package/lib/types/calendar.d.ts +78 -0
- package/lib/types/calendar.d.ts.map +1 -0
- package/lib/types/calendar.js +2 -0
- package/lib/types/calendar.js.map +1 -0
- package/lib/types/challenges.d.ts +136 -0
- package/lib/types/challenges.d.ts.map +1 -0
- package/lib/types/challenges.js +2 -0
- package/lib/types/challenges.js.map +1 -0
- package/lib/types/core.d.ts +325 -0
- package/lib/types/core.d.ts.map +1 -0
- package/lib/types/core.js +2 -0
- package/lib/types/core.js.map +1 -0
- package/lib/types/diplomacy.d.ts +169 -0
- package/lib/types/diplomacy.d.ts.map +1 -0
- package/lib/types/diplomacy.js +2 -0
- package/lib/types/diplomacy.js.map +1 -0
- package/lib/types/game.d.ts +440 -444
- package/lib/types/game.d.ts.map +1 -1
- package/lib/types/index.d.ts +327 -207
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +713 -3
- package/lib/types/index.js.map +1 -1
- package/lib/types/math.d.ts +10 -0
- package/lib/types/math.d.ts.map +1 -0
- package/lib/types/math.js +2 -0
- package/lib/types/math.js.map +1 -0
- package/lib/types/prestige.d.ts +47 -0
- package/lib/types/prestige.d.ts.map +1 -0
- package/lib/types/prestige.js +2 -0
- package/lib/types/prestige.js.map +1 -0
- package/lib/types/religion.d.ts +351 -56
- package/lib/types/religion.d.ts.map +1 -1
- package/lib/types/religion.js +1 -43
- package/lib/types/religion.js.map +1 -1
- package/lib/types/resources.d.ts +86 -0
- package/lib/types/resources.d.ts.map +1 -0
- package/lib/types/resources.js +2 -0
- package/lib/types/resources.js.map +1 -0
- package/lib/types/science.d.ts +81 -32
- package/lib/types/science.d.ts.map +1 -1
- package/lib/types/science.js +1 -128
- package/lib/types/science.js.map +1 -1
- package/lib/types/space.d.ts +108 -22
- package/lib/types/space.d.ts.map +1 -1
- package/lib/types/space.js +1 -53
- package/lib/types/space.js.map +1 -1
- package/lib/types/stats.d.ts +35 -0
- package/lib/types/stats.d.ts.map +1 -0
- package/lib/types/stats.js +2 -0
- package/lib/types/stats.js.map +1 -0
- package/lib/types/time.d.ts +247 -30
- package/lib/types/time.d.ts.map +1 -1
- package/lib/types/time.js +1 -22
- package/lib/types/time.js.map +1 -1
- package/lib/types/toolbar.d.ts +37 -0
- package/lib/types/toolbar.d.ts.map +1 -0
- package/lib/types/toolbar.js +2 -0
- package/lib/types/toolbar.js.map +1 -0
- package/lib/types/ui.d.ts +115 -0
- package/lib/types/ui.d.ts.map +1 -0
- package/lib/types/ui.js +2 -0
- package/lib/types/ui.js.map +1 -0
- package/lib/types/village.d.ts +496 -9
- package/lib/types/village.d.ts.map +1 -1
- package/lib/types/void.d.ts +19 -0
- package/lib/types/void.d.ts.map +1 -0
- package/lib/types/void.js +2 -0
- package/lib/types/void.js.map +1 -0
- package/lib/types/workshop.d.ts +130 -10
- package/lib/types/workshop.d.ts.map +1 -1
- package/lib/types/workshop.js +1 -139
- package/lib/types/workshop.js.map +1 -1
- package/lib/ui/ReligionSettingsUi.d.ts.map +1 -1
- package/lib/ui/ReligionSettingsUi.js +2 -1
- package/lib/ui/ReligionSettingsUi.js.map +1 -1
- package/lib/ui/ResetReligionSettingsUi.d.ts.map +1 -1
- package/lib/ui/ResetReligionSettingsUi.js +1 -1
- package/lib/ui/ResetReligionSettingsUi.js.map +1 -1
- package/lib/ui/ResetTimeSettingsUi.d.ts.map +1 -1
- package/lib/ui/ResetTimeSettingsUi.js +1 -1
- package/lib/ui/ResetTimeSettingsUi.js.map +1 -1
- package/lib/ui/StateManagementUi.d.ts +1 -1
- package/lib/ui/TimeSettingsUi.d.ts.map +1 -1
- package/lib/ui/TimeSettingsUi.js +1 -1
- package/lib/ui/TimeSettingsUi.js.map +1 -1
- package/output/kitten-scientists.inject.js +258 -242
- package/package.json +5 -5
- package/lib/types/craft.d.ts +0 -26
- package/lib/types/craft.d.ts.map +0 -1
- package/lib/types/craft.js +0 -2
- package/lib/types/craft.js.map +0 -1
- package/lib/types/releases.d.ts.map +0 -1
- package/lib/types/releases.js +0 -2
- package/lib/types/releases.js.map +0 -1
- package/lib/types/save.d.ts.map +0 -1
- package/lib/types/save.js.map +0 -1
- package/lib/types/trade.d.ts +0 -36
- package/lib/types/trade.d.ts.map +0 -1
- package/lib/types/trade.js +0 -11
- package/lib/types/trade.js.map +0 -1
package/lib/types/game.d.ts
CHANGED
|
@@ -1,24 +1,81 @@
|
|
|
1
1
|
import type { AnyFunction } from "@oliversalzburg/js-utils/core.js";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
import type {
|
|
7
|
-
import type {
|
|
8
|
-
import type {
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
11
|
-
type
|
|
2
|
+
import type { KGSaveData } from "./_save.js";
|
|
3
|
+
import type { AchTab, Achievements } from "./achievements.js";
|
|
4
|
+
import type { BuildingsManager, BuildingsModern } from "./buildings.js";
|
|
5
|
+
import type { Calendar } from "./calendar.js";
|
|
6
|
+
import type { ChallengesManager, ChallengesTab } from "./challenges.js";
|
|
7
|
+
import type { Console, Tab } from "./core.js";
|
|
8
|
+
import type { Diplomacy, DiplomacyManager } from "./diplomacy.js";
|
|
9
|
+
import type { Resource, ResourceCraftable, TabId, Unlocks } from "./index.js";
|
|
10
|
+
import type { Math as KGMath } from "./math.js";
|
|
11
|
+
import type { PrestigeManager } from "./prestige.js";
|
|
12
|
+
import type { ReligionManager, ReligionTab } from "./religion.js";
|
|
13
|
+
import type { ResourceManager } from "./resources.js";
|
|
14
|
+
import type { Library, ScienceManager } from "./science.js";
|
|
15
|
+
import type { SpaceManager, SpaceTab } from "./space.js";
|
|
16
|
+
import type { StatsManager, StatsTab } from "./stats.js";
|
|
17
|
+
import type { QueueTab, TimeManager, TimeTab } from "./time.js";
|
|
18
|
+
import type { DesktopUI } from "./ui.js";
|
|
19
|
+
import type { Village, VillageManager } from "./village.js";
|
|
20
|
+
import type { VoidManager } from "./void.js";
|
|
21
|
+
import type { Workshop, WorkshopManager } from "./workshop.js";
|
|
22
|
+
export type Timer = {
|
|
23
|
+
handlers: Array<unknown>;
|
|
24
|
+
scheduledHandlers: Array<unknown>;
|
|
25
|
+
ticksTotal: number;
|
|
26
|
+
timestampStart: null;
|
|
27
|
+
totalUpdateTime: null;
|
|
28
|
+
addEvent: (handler: unknown, frequency: unknown) => void;
|
|
29
|
+
update: () => void;
|
|
30
|
+
scheduleEvent: (handler: unknown) => void;
|
|
31
|
+
updateScheduledEvents: () => void;
|
|
32
|
+
beforeUpdate: () => void;
|
|
33
|
+
afterUpdate: () => void;
|
|
34
|
+
};
|
|
35
|
+
export type IDataStorageAware = {
|
|
36
|
+
new (): IDataStorageAware;
|
|
37
|
+
};
|
|
38
|
+
export type Telemetry = IDataStorageAware & {
|
|
39
|
+
guid: string;
|
|
40
|
+
game: GamePage;
|
|
41
|
+
buildRevision: null;
|
|
42
|
+
version: null;
|
|
43
|
+
errorCount: number;
|
|
44
|
+
new (game: GamePage): Telemetry;
|
|
45
|
+
generateGuid: () => string;
|
|
46
|
+
save: (data: unknown) => void;
|
|
47
|
+
load: (data: unknown) => void;
|
|
48
|
+
logEvent: (eventType: unknown, payload: unknown) => void;
|
|
49
|
+
logRouteChange: (name: string) => void;
|
|
50
|
+
};
|
|
51
|
+
export type Server = {
|
|
12
52
|
showMotd: boolean;
|
|
13
53
|
motdTitle: string | null;
|
|
14
54
|
motdContent: string | null;
|
|
15
|
-
game:
|
|
55
|
+
game: GamePage | null;
|
|
16
56
|
motdContentPrevious: string | null;
|
|
17
|
-
motdFreshMessage:
|
|
18
|
-
|
|
57
|
+
motdFreshMessage: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* KGNet user profile
|
|
60
|
+
* Represents an active session, if not null, all XHR calls will be made
|
|
61
|
+
* using session cookies
|
|
62
|
+
*/
|
|
63
|
+
userProfile: null;
|
|
19
64
|
chiral: null;
|
|
65
|
+
/**
|
|
66
|
+
* When was the last time save was uploaded to the cloud. (Unix timestamp)
|
|
67
|
+
*/
|
|
20
68
|
lastBackup: null;
|
|
69
|
+
/**
|
|
70
|
+
* Current client snapshot of the save data
|
|
71
|
+
* All operations with the cloud saves should return the save snapshot?
|
|
72
|
+
*/
|
|
21
73
|
saveData: null;
|
|
74
|
+
/**
|
|
75
|
+
* If KS settings are detected in the save, this will be set to true.
|
|
76
|
+
*/
|
|
77
|
+
isKSDetected: false;
|
|
78
|
+
new (game: GamePage): Server;
|
|
22
79
|
setUserProfile: (userProfile: unknown) => void;
|
|
23
80
|
getServerUrl: () => string;
|
|
24
81
|
refresh: () => void;
|
|
@@ -32,163 +89,287 @@ type Server = {
|
|
|
32
89
|
sendCommand: (command: unknown) => void;
|
|
33
90
|
setChiral: (data: unknown) => void;
|
|
34
91
|
};
|
|
35
|
-
export type
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"cryostation-woodMax": number;
|
|
44
|
-
"entangler-gflopsConsumption": number;
|
|
45
|
-
"hrHarvester-energyProduction": number;
|
|
46
|
-
"hydrofracturer-oilPerTickAutoprodSpace": number;
|
|
47
|
-
"hydroponics-catnipRatio": number;
|
|
48
|
-
"moonOutpost-unobtainiumPerTickSpace": number;
|
|
49
|
-
"planetCracker-uraniumPerTickSpace": number;
|
|
50
|
-
"researchVessel-starchartPerTickBaseSpace": number;
|
|
51
|
-
"sattelite-observatoryRatio": number;
|
|
52
|
-
"sattelite-starchartPerTickBaseSpace": number;
|
|
53
|
-
"spaceBeacon-starchartPerTickBaseSpace": number;
|
|
54
|
-
"spaceElevator-prodTransferBonus": number;
|
|
55
|
-
"spaceStation-scienceRatio": number;
|
|
56
|
-
"sunlifter-energyProduction": number;
|
|
57
|
-
};
|
|
58
|
-
export type FestivalEffects = {
|
|
59
|
-
catnip: number;
|
|
60
|
-
coal: number;
|
|
61
|
-
culture: number;
|
|
62
|
-
faith: number;
|
|
63
|
-
gold: number;
|
|
64
|
-
iron: number;
|
|
65
|
-
manpower: number;
|
|
66
|
-
minerals: number;
|
|
67
|
-
oil: number;
|
|
68
|
-
science: number;
|
|
69
|
-
starchart: number;
|
|
70
|
-
titanium: number;
|
|
71
|
-
unicorns: number;
|
|
72
|
-
unobtainium: number;
|
|
73
|
-
uranium: number;
|
|
74
|
-
wood: number;
|
|
75
|
-
};
|
|
76
|
-
export type CycleMeta = {
|
|
77
|
-
name: Cycle;
|
|
78
|
-
effects: Partial<CycleEffects>;
|
|
79
|
-
festivalEffects: Partial<FestivalEffects>;
|
|
80
|
-
glyph: string;
|
|
81
|
-
uglyph: string;
|
|
82
|
-
title: string;
|
|
92
|
+
export type UndoChange = {
|
|
93
|
+
_static: {
|
|
94
|
+
DEFAULT_TTL: number;
|
|
95
|
+
};
|
|
96
|
+
ttl: number;
|
|
97
|
+
events: null;
|
|
98
|
+
new (): UndoChange;
|
|
99
|
+
addEvent: (managerId: unknown, data: unknown) => void;
|
|
83
100
|
};
|
|
84
|
-
export type
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
cathPollution: number;
|
|
91
|
-
/** @deprecated Use `getBuildingExt()` instead. */
|
|
92
|
-
get: (build: Building) => BuildingMeta;
|
|
93
|
-
getBuildingExt: (building: Building) => BuildingExt;
|
|
94
|
-
getPollutionLevel(): number;
|
|
95
|
-
meta: [{
|
|
96
|
-
meta: Array<BuildingMeta>;
|
|
97
|
-
}];
|
|
101
|
+
export type EffectsManager = {
|
|
102
|
+
game: GamePage;
|
|
103
|
+
new (game: GamePage): EffectsManager;
|
|
104
|
+
effectMeta: (effectName: unknown) => unknown;
|
|
105
|
+
statics: {
|
|
106
|
+
effectMeta: unknown;
|
|
98
107
|
};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
108
|
+
};
|
|
109
|
+
export type GamePage = {
|
|
110
|
+
id: string;
|
|
111
|
+
tabs: Array<Tab>;
|
|
112
|
+
resPool: ResourceManager;
|
|
113
|
+
calendar: Calendar;
|
|
114
|
+
village: VillageManager;
|
|
115
|
+
console: Console;
|
|
116
|
+
telemetry: Telemetry;
|
|
117
|
+
server: Server;
|
|
118
|
+
math: KGMath;
|
|
119
|
+
/**
|
|
120
|
+
* global cache
|
|
121
|
+
*/
|
|
122
|
+
globalEffectsCached: Record<string, unknown>;
|
|
123
|
+
/**
|
|
124
|
+
* how much ticks are performed per second (5 ticks per second, 200 ms per tick)
|
|
125
|
+
*/
|
|
126
|
+
ticksPerSecond: number;
|
|
127
|
+
/**
|
|
128
|
+
* I wonder why someone may need this
|
|
129
|
+
*/
|
|
130
|
+
isPaused: boolean;
|
|
131
|
+
isCMBREnabled: boolean;
|
|
132
|
+
ticksBeforeSave: number;
|
|
133
|
+
/**
|
|
134
|
+
* in ticks
|
|
135
|
+
*/
|
|
136
|
+
autosaveFrequency: number;
|
|
137
|
+
/**
|
|
138
|
+
* current building selected in the Building tab by a mouse cursor, should affect resource table rendering
|
|
139
|
+
* TODO: move me to UI
|
|
140
|
+
*/
|
|
141
|
+
selectedBuilding: null;
|
|
142
|
+
setSelectedObject: (object: unknown) => void;
|
|
143
|
+
clearSelectedObject: () => void;
|
|
144
|
+
forceShowLimits: boolean;
|
|
145
|
+
useWorkers: boolean;
|
|
146
|
+
colorScheme: string;
|
|
147
|
+
unlockedSchemes: null;
|
|
148
|
+
timer: Timer;
|
|
149
|
+
/**
|
|
150
|
+
* main timer loop
|
|
151
|
+
*/
|
|
152
|
+
_mainTimer: null;
|
|
153
|
+
/**
|
|
154
|
+
* counter for karmic reincarnation
|
|
155
|
+
*/
|
|
156
|
+
karmaKittens: number;
|
|
157
|
+
karmaZebras: number;
|
|
158
|
+
deadKittens: number;
|
|
159
|
+
/**
|
|
160
|
+
* true if player has no kittens or housing buildings
|
|
161
|
+
*/
|
|
162
|
+
ironWill: boolean;
|
|
163
|
+
saveVersion: number;
|
|
164
|
+
opts: {
|
|
165
|
+
disableCMBR: boolean;
|
|
120
166
|
/**
|
|
121
|
-
*
|
|
167
|
+
* Should `confirm()` calls be skipped in the game?
|
|
122
168
|
*/
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
active: boolean;
|
|
144
|
-
calculateEffects: (model: unknown, game: Game) => void;
|
|
145
|
-
researched: number;
|
|
146
|
-
};
|
|
147
|
-
isActive: (challenge: Challenge) => boolean;
|
|
148
|
-
};
|
|
149
|
-
compressLZData: (data: string) => string;
|
|
150
|
-
console: {
|
|
151
|
-
filters: Record<string, {
|
|
152
|
-
enabled: boolean;
|
|
153
|
-
title: string;
|
|
154
|
-
unlocked: boolean;
|
|
155
|
-
}>;
|
|
156
|
-
maxMessages: number;
|
|
169
|
+
noConfirm: boolean;
|
|
170
|
+
usePerSecondValues: boolean;
|
|
171
|
+
notation: "si";
|
|
172
|
+
forceHighPrecision: boolean;
|
|
173
|
+
usePercentageResourceValues: boolean;
|
|
174
|
+
showNonApplicableButtons: boolean;
|
|
175
|
+
usePercentageConsumptionValues: boolean;
|
|
176
|
+
highlightUnavailable: boolean;
|
|
177
|
+
hideSell: boolean;
|
|
178
|
+
hideDowngrade: boolean;
|
|
179
|
+
hideBGImage: boolean;
|
|
180
|
+
tooltipsInRightColumn: boolean;
|
|
181
|
+
IWSmelter: boolean;
|
|
182
|
+
enableRedshift: boolean;
|
|
183
|
+
enableRedshiftGflops: boolean;
|
|
184
|
+
batchSize: number;
|
|
185
|
+
useLegacyTwoInRowLayout: boolean;
|
|
186
|
+
forceLZ: boolean;
|
|
187
|
+
compressSaveFile: boolean;
|
|
188
|
+
ksEnabled: boolean;
|
|
157
189
|
};
|
|
158
|
-
|
|
159
|
-
|
|
190
|
+
/**
|
|
191
|
+
* timeout till resetting gather counter, see below
|
|
192
|
+
*/
|
|
193
|
+
gatherTimeoutHandler: null;
|
|
194
|
+
/**
|
|
195
|
+
* how many clicks in a row was performed on a gather button
|
|
196
|
+
*/
|
|
197
|
+
gatherClicks: number;
|
|
198
|
+
/**
|
|
199
|
+
* flag triggering Super Unethical Climax achievement
|
|
200
|
+
*/
|
|
201
|
+
cheatMode: boolean;
|
|
202
|
+
/**
|
|
203
|
+
* flag triggering System Shock achievement
|
|
204
|
+
*/
|
|
205
|
+
systemShockMode: boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Flag for achievements
|
|
208
|
+
*/
|
|
209
|
+
startedWithoutChronospheres: boolean;
|
|
210
|
+
/**
|
|
211
|
+
* how many ticks passed since the start of the game
|
|
212
|
+
*/
|
|
213
|
+
ticks: number;
|
|
214
|
+
/**
|
|
215
|
+
* total time spent on update cycle in milliseconds, useful for debug/fps counter. 1 ticks per second have more calculations
|
|
216
|
+
*/
|
|
217
|
+
totalUpdateTime: [number, number, number, number, number];
|
|
218
|
+
totalUpdateTimeTicks: number;
|
|
219
|
+
totalUpdateTimeCurrent: number;
|
|
220
|
+
/**
|
|
221
|
+
* fps breakdows of a render cycle
|
|
222
|
+
*/
|
|
223
|
+
fps: null;
|
|
224
|
+
/**
|
|
225
|
+
* time of last pause
|
|
226
|
+
*/
|
|
227
|
+
pauseTimestamp: number;
|
|
228
|
+
/**
|
|
229
|
+
* Stores the most recent date message to prevent header spam
|
|
230
|
+
*/
|
|
231
|
+
lastDateMessage: null;
|
|
232
|
+
effectsMgr: EffectsManager;
|
|
233
|
+
managers: [
|
|
234
|
+
WorkshopManager,
|
|
235
|
+
DiplomacyManager,
|
|
236
|
+
BuildingsManager,
|
|
237
|
+
ScienceManager,
|
|
238
|
+
Achievements,
|
|
239
|
+
ReligionManager,
|
|
240
|
+
SpaceManager,
|
|
241
|
+
TimeManager,
|
|
242
|
+
PrestigeManager,
|
|
243
|
+
ChallengesManager,
|
|
244
|
+
StatsManager,
|
|
245
|
+
VoidManager,
|
|
246
|
+
{
|
|
247
|
+
load: (saveData: Record<string, unknown>) => void;
|
|
248
|
+
save: (saveData: Record<string, unknown>) => void;
|
|
249
|
+
resetState: () => void;
|
|
250
|
+
}
|
|
251
|
+
];
|
|
252
|
+
workshop: WorkshopManager;
|
|
253
|
+
diplomacy: DiplomacyManager;
|
|
254
|
+
bld: BuildingsManager;
|
|
255
|
+
science: ScienceManager;
|
|
256
|
+
achievements: Achievements;
|
|
257
|
+
religion: ReligionManager;
|
|
258
|
+
space: SpaceManager;
|
|
259
|
+
time: TimeManager;
|
|
260
|
+
prestige: PrestigeManager;
|
|
261
|
+
challenges: ChallengesManager;
|
|
262
|
+
stats: StatsManager;
|
|
263
|
+
void: VoidManager;
|
|
264
|
+
bldTab: BuildingsModern;
|
|
265
|
+
villageTab: Village;
|
|
266
|
+
libraryTab: Library;
|
|
267
|
+
workshopTab: Workshop;
|
|
268
|
+
diplomacyTab: Diplomacy;
|
|
269
|
+
religionTab: ReligionTab;
|
|
270
|
+
spaceTab: SpaceTab;
|
|
271
|
+
timeTab: TimeTab;
|
|
272
|
+
challengesTab: ChallengesTab;
|
|
273
|
+
achievementTab: AchTab;
|
|
274
|
+
statsTab: StatsTab;
|
|
275
|
+
queueTab: QueueTab;
|
|
276
|
+
undoChange: UndoChange | null;
|
|
277
|
+
/**
|
|
278
|
+
* ui communication layer
|
|
279
|
+
* Is actually potentially `null`, if the game was never fully initialized.
|
|
280
|
+
* We don't include `null` in the type to avoid having to check it over and
|
|
281
|
+
* over again during runtime.
|
|
282
|
+
*/
|
|
283
|
+
ui: DesktopUI;
|
|
284
|
+
dropBoxClient: null;
|
|
285
|
+
/**
|
|
286
|
+
* Whether the game is in developer mode or no
|
|
287
|
+
*/
|
|
288
|
+
isLocalhost: boolean;
|
|
160
289
|
devMode: boolean;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
* @deprecated Use `sellBcoin` instead.
|
|
177
|
-
*/
|
|
178
|
-
sellEcoin: () => void;
|
|
179
|
-
tradeMultiple: (race: RaceInfo, amount: number) => void;
|
|
180
|
-
unlockRandomRace: () => {
|
|
181
|
-
title: string;
|
|
182
|
-
};
|
|
183
|
-
};
|
|
184
|
-
diplomacyTab: TradeTab;
|
|
185
|
-
getCMBRBonus: () => number;
|
|
186
|
-
getDisplayValueExt: (value: number, prefix?: boolean, usePerTickHack?: boolean, precision?: number, postifx?: string) => string;
|
|
187
|
-
getEffect: (effect: `${AllBuildings}CostReduction` | `${Resource}CostReduction` | `${AllBuildings}PriceRatio` | "catnipDemandWorkerRatioGlobal" | "catnipJobRatio" | "catnipPerTickBase" | "coldHarshness" | "corruptionBoostRatio" | "dataCenterAIRatio" | "heatMax" | "heatPerTick" | "hunterRatio" | "mapPriceReduction" | "oilReductionRatio" | "priceRatio" | "riftChance" | "shatterCostIncreaseChallenge" | "shatterVoidCost" | "solarRevolutionLimit" | "standingRatio" | "temporalFluxProduction" | "temporalParadoxDay" | "tradeCatpowerDiscount" | "tradeGoldDiscount" | "unicornsGlobalRatio" | "unicornsPerTickBase" | "unicornsRatioReligion" | "uplinkDCRatio") => number;
|
|
290
|
+
mobileSaveOnPause: boolean;
|
|
291
|
+
winterCatnipPerTick: number;
|
|
292
|
+
featureFlags: Record<"MAUSOLEUM_PACTS" | "QUEUE" | "QUEUE_REDSHIFT" | "SPACE_EXPL" | "UNICORN_TEARS_CHALLENGE" | "VILLAGE_MAP", UnsafeFeatureSelection>;
|
|
293
|
+
/**
|
|
294
|
+
* Should never be changed, override for KGM
|
|
295
|
+
*/
|
|
296
|
+
isMobile: () => false;
|
|
297
|
+
new (containerId: string): GamePage;
|
|
298
|
+
getFeatureFlag: (flagId: unknown) => boolean;
|
|
299
|
+
updateWinterCatnip: () => void;
|
|
300
|
+
setDropboxClient: (dropBoxClient: unknown) => void;
|
|
301
|
+
heartbeat: () => void;
|
|
302
|
+
getEffectMeta: (effectName: unknown) => unknown;
|
|
303
|
+
getEffect: (effectName: unknown) => number;
|
|
304
|
+
updateCaches: () => void;
|
|
188
305
|
/**
|
|
189
306
|
* Calculate limited diminishing returns.
|
|
190
307
|
*/
|
|
191
308
|
getLimitedDR: (effect: number, limit: number) => number;
|
|
309
|
+
/**
|
|
310
|
+
* Display a message in the console. Returns a <span> node of a text container
|
|
311
|
+
*/
|
|
312
|
+
msg: (message: string, type?: unknown, tag?: unknown, noBullet?: boolean) => {
|
|
313
|
+
span: HTMLElement;
|
|
314
|
+
};
|
|
315
|
+
clearLog: () => void;
|
|
316
|
+
saveUI: () => void;
|
|
317
|
+
resetState: () => void;
|
|
318
|
+
_publish: (topic: string, arg: unknown) => void;
|
|
319
|
+
reload: () => void;
|
|
320
|
+
/**
|
|
321
|
+
* Saves the game and returns the save game.
|
|
322
|
+
*/
|
|
323
|
+
save(): KGSaveData;
|
|
324
|
+
_prepareSaveData: <TSaveData>(saveData: TSaveData) => TSaveData;
|
|
325
|
+
_saveDataToString: (saveData: unknown) => string;
|
|
326
|
+
_wipe: () => void;
|
|
327
|
+
wipe: () => void;
|
|
328
|
+
closeOptions: () => void;
|
|
329
|
+
toggleScheme: (themId: unknown) => void;
|
|
330
|
+
togglePause: () => void;
|
|
331
|
+
updateOptionsUI: () => void;
|
|
332
|
+
/**
|
|
333
|
+
* Returns a save data JSON from a base64 or utf16 compressed lz blob
|
|
334
|
+
* Use this instead of LZString.decompressX
|
|
335
|
+
*/
|
|
336
|
+
decompressLZData: (lzData: string) => string;
|
|
337
|
+
compressLZData: (json: string, useUTF16?: boolean) => string;
|
|
338
|
+
_parseLSSaveData: () => unknown;
|
|
339
|
+
load: () => boolean | undefined;
|
|
340
|
+
saveExport: () => void;
|
|
341
|
+
saveImport: () => void;
|
|
342
|
+
saveToFile: (withFullName: boolean) => void;
|
|
343
|
+
saveExportDropbox: () => void;
|
|
344
|
+
getDropboxAuthUrl: () => string;
|
|
345
|
+
exportToDropbox: (lzdata: string, callback: AnyFunction) => void;
|
|
346
|
+
saveImportDropbox: () => void;
|
|
347
|
+
importFromDropbox: (callback: AnyFunction) => void;
|
|
348
|
+
saveImportDropboxFileRead: (callback: AnyFunction) => void;
|
|
349
|
+
saveImportDropboxText: (lzdata: string, callback: AnyFunction) => void;
|
|
350
|
+
_loadSaveJson: (lzdata: string, callback: AnyFunction) => void;
|
|
351
|
+
migrateSave: <TSave>(save: TSave) => TSave;
|
|
352
|
+
setUI: (ui: DesktopUI) => void;
|
|
353
|
+
render: () => void;
|
|
354
|
+
calcResourcePerTick: (redName: Resource, season: unknown) => number;
|
|
355
|
+
addGlobalModToStack: <TArray extends Array<unknown>>(array: TArray, resName: Resource) => TArray;
|
|
356
|
+
getResourcePerTickStack: (resName: Resource, calcAutomatedEffect: unknown, season: unknown) => Array<{
|
|
357
|
+
name: string;
|
|
358
|
+
type: string;
|
|
359
|
+
value: number;
|
|
360
|
+
}> | undefined;
|
|
361
|
+
getResourcePerDayStack: (resName: Resource) => Array<{
|
|
362
|
+
name: string;
|
|
363
|
+
type: string;
|
|
364
|
+
value: number;
|
|
365
|
+
}> | undefined;
|
|
366
|
+
getResourceOnYearStack: (resName: Resource) => Array<{
|
|
367
|
+
name: string;
|
|
368
|
+
type: string;
|
|
369
|
+
value: number;
|
|
370
|
+
}> | undefined;
|
|
371
|
+
getCMBRBonus: () => number;
|
|
372
|
+
getCraftRatio: (tag: unknown) => number;
|
|
192
373
|
/**
|
|
193
374
|
* The resource craft ratio indicates how many items you receive
|
|
194
375
|
* as the result of a single craft. This is subject to a variety
|
|
@@ -197,8 +378,20 @@ export type Game = {
|
|
|
197
378
|
* @param name The resource to check.
|
|
198
379
|
*/
|
|
199
380
|
getResCraftRatio: (name: ResourceCraftable) => number;
|
|
200
|
-
|
|
201
|
-
|
|
381
|
+
/**
|
|
382
|
+
* Update all tab managers, resources and UI controls
|
|
383
|
+
*/
|
|
384
|
+
update: () => void;
|
|
385
|
+
/**
|
|
386
|
+
* How many ticks pass per second.
|
|
387
|
+
* Subject to time acceleration.
|
|
388
|
+
*/
|
|
389
|
+
getTicksPerSecondUI: () => number;
|
|
390
|
+
timeAccelerationRatio: () => number;
|
|
391
|
+
updateModel: () => void;
|
|
392
|
+
huntAll: (event: Event) => void;
|
|
393
|
+
praise: (event: Event) => void;
|
|
394
|
+
updateResources: () => void;
|
|
202
395
|
/**
|
|
203
396
|
* Determine how much of the given resource is produced per tick.
|
|
204
397
|
*
|
|
@@ -206,6 +399,8 @@ export type Game = {
|
|
|
206
399
|
* @param withConversion Should resource convertions be taken into account?
|
|
207
400
|
*/
|
|
208
401
|
getResourcePerTick: (resName: Resource, withConversion: boolean) => number;
|
|
402
|
+
getResourcePerDay: (resName: Resource) => number;
|
|
403
|
+
getResourceOnYearProduction: (resName: Resource) => number;
|
|
209
404
|
/**
|
|
210
405
|
* Determine how much of the resource, per tick, is subject to be converted
|
|
211
406
|
* into another resource. For example, smelters convert wood and minerals.
|
|
@@ -213,298 +408,99 @@ export type Game = {
|
|
|
213
408
|
* @param resName The resource to check.
|
|
214
409
|
*/
|
|
215
410
|
getResourcePerTickConvertion: (resName: Resource) => number;
|
|
411
|
+
craft: (name: Resource, amount: number) => void;
|
|
412
|
+
craftAll: (name: Resource) => void;
|
|
413
|
+
getRequiredResources: (bld: unknown) => unknown;
|
|
414
|
+
attachResourceTooltip: (container: HTMLElement, resRef: unknown) => void;
|
|
415
|
+
getDetailedResMap: (res: unknown) => string;
|
|
416
|
+
processResourcePerTickStack: (resStack: unknown, res: unknown, depth: number, hasFixed: boolean) => string;
|
|
417
|
+
getStackElemString: (stackElem: unknown, res: unknown) => string;
|
|
216
418
|
/**
|
|
217
|
-
*
|
|
218
|
-
*
|
|
419
|
+
* Outputs a formatted representation of time. If the input is negative or NaN, treats it as zero instead.
|
|
420
|
+
* @param secondsRaw Either a number or a string representing a number.
|
|
421
|
+
* @return A string. For the sake of consistency, all whitespace is trimmed from beginning & end.
|
|
219
422
|
*/
|
|
220
|
-
|
|
423
|
+
toDisplaySeconds: (secondsRaw: number) => string;
|
|
221
424
|
/**
|
|
222
|
-
*
|
|
425
|
+
* The same as toDisplaySeconds, but converts ingame days into xYears xDays
|
|
426
|
+
* Just for aestetical pleasness
|
|
223
427
|
*/
|
|
224
|
-
|
|
428
|
+
toDisplayDays: (daysRaw: number) => string;
|
|
429
|
+
toDisplayPercentage: (percentage: number, precision: number, precisionFixed: boolean) => string;
|
|
430
|
+
postfixes: Array<{
|
|
431
|
+
limit: number;
|
|
432
|
+
divisor: number;
|
|
433
|
+
postfix: [string, string];
|
|
434
|
+
}>;
|
|
225
435
|
/**
|
|
226
|
-
*
|
|
436
|
+
* Determines the display name & display value (formatting it as per second, or as a percentage, etc.) of a given effect.
|
|
437
|
+
* @param effectName The internal name of the effect.
|
|
438
|
+
* @param effectValue The value of the effect.
|
|
439
|
+
* @param showIfZero Boolean. Determines whether we still show an effect with zero value, or if that effect remains hidden.
|
|
440
|
+
* I added it just in case someone wants to use it in the future.
|
|
441
|
+
* If the effect would be hidden for any other reason, then this flag doesn't do anything.
|
|
442
|
+
* @return null if the effect shouldn't be displayed (because it's hidden or because it's zero).
|
|
443
|
+
* Otherwise, returns a table with the following keys:
|
|
444
|
+
* displayEffectName = the localized title;
|
|
445
|
+
* displayEffectValue = the value of the effect, formatted & localized properly
|
|
227
446
|
*/
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}>;
|
|
233
|
-
msg: (...args: Array<number | string>) => {
|
|
234
|
-
span: HTMLElement;
|
|
235
|
-
};
|
|
236
|
-
opts: {
|
|
237
|
-
disableCMBR: boolean;
|
|
238
|
-
/**
|
|
239
|
-
* Should `confirm()` calls be skipped in the game?
|
|
240
|
-
*/
|
|
241
|
-
noConfirm: boolean;
|
|
242
|
-
usePerSecondValues: boolean;
|
|
243
|
-
};
|
|
244
|
-
prestige: {
|
|
245
|
-
/**
|
|
246
|
-
* The production modifier from burned paragon only.
|
|
247
|
-
*/
|
|
248
|
-
getBurnedParagonRatio: () => number;
|
|
249
|
-
/**
|
|
250
|
-
* The production modifier produced by paragon and burned paragon.
|
|
251
|
-
*/
|
|
252
|
-
getParagonProductionRatio: () => number;
|
|
253
|
-
getPerk: (name: "carnivals" | "numeromancy" | "unicornmancy") => {
|
|
254
|
-
researched: boolean;
|
|
255
|
-
};
|
|
256
|
-
meta: Array<{
|
|
257
|
-
meta: Array<{
|
|
258
|
-
researched: boolean;
|
|
259
|
-
}>;
|
|
260
|
-
}>;
|
|
261
|
-
};
|
|
262
|
-
religion: {
|
|
263
|
-
faith: number;
|
|
264
|
-
faithRatio: number;
|
|
265
|
-
/**
|
|
266
|
-
* The modifier applied to faith generation.
|
|
267
|
-
*/
|
|
268
|
-
getApocryphaBonus: () => number;
|
|
269
|
-
/**
|
|
270
|
-
* @deprecated No longer exists. Use `getApocryphaBonus()`
|
|
271
|
-
*/
|
|
272
|
-
getFaithBonus: () => number;
|
|
273
|
-
/**
|
|
274
|
-
* Get religion upgrades.
|
|
275
|
-
*/
|
|
276
|
-
getRU: (name: ReligionUpgrade) => ReligionUpgradeInfo | undefined;
|
|
277
|
-
/**
|
|
278
|
-
* The modifier produced from collected faith.
|
|
279
|
-
* Subject to challenges.
|
|
280
|
-
*/
|
|
281
|
-
getSolarRevolutionRatio: () => number;
|
|
282
|
-
/**
|
|
283
|
-
* Get transcendence upgrades.
|
|
284
|
-
*/
|
|
285
|
-
getTU: (name: TranscendenceUpgrade) => TranscendenceUpgradeInfo | undefined;
|
|
286
|
-
/**
|
|
287
|
-
* Get ziggurath upgrades.
|
|
288
|
-
*/
|
|
289
|
-
getZU: (name: ZiggurathUpgrade) => ZiggurathUpgradeInfo | undefined;
|
|
290
|
-
meta: Array<{
|
|
291
|
-
meta: Array<ReligionUpgradeInfo | ZiggurathUpgradeInfo | TranscendenceUpgradeInfo>;
|
|
292
|
-
provider: {
|
|
293
|
-
getEffect: (bld: unknown, effect: unknown) => unknown;
|
|
294
|
-
};
|
|
295
|
-
}>;
|
|
296
|
-
pactsManager: {
|
|
297
|
-
necrocornDeficit: number;
|
|
298
|
-
};
|
|
299
|
-
praise: () => void;
|
|
300
|
-
religionUpgrades: Array<ReligionUpgradeInfo>;
|
|
301
|
-
tcratio: number;
|
|
302
|
-
transcendenceTier: number;
|
|
303
|
-
transcendenceUpgrades: Array<TranscendenceUpgradeInfo>;
|
|
304
|
-
zigguratUpgrades: Array<ZiggurathUpgradeInfo>;
|
|
305
|
-
/**
|
|
306
|
-
* Determine the price (worship) to reach the given transcendence tier.
|
|
307
|
-
*/
|
|
308
|
-
_getTranscendTotalPrice: (tier: number) => number;
|
|
309
|
-
/**
|
|
310
|
-
* Reset faith and increase praise bonus according to transcendence tier.
|
|
311
|
-
*/
|
|
312
|
-
_resetFaithInternal: (bonusRatio: number) => void;
|
|
313
|
-
};
|
|
314
|
-
religionTab: ReligionTab;
|
|
315
|
-
resetAutomatic: () => void;
|
|
316
|
-
resPool: {
|
|
317
|
-
get: (name: Resource) => ResourceInfo;
|
|
318
|
-
energyCons: number;
|
|
319
|
-
energyProd: number;
|
|
320
|
-
resources: Array<ResourceInfo>;
|
|
321
|
-
hasRes: (resources: Array<Price>) => boolean;
|
|
322
|
-
};
|
|
447
|
+
getEffectDisplayParams: (effectName: unknown, effectValue: number, showIfZero: boolean) => {
|
|
448
|
+
displayEffectName: string;
|
|
449
|
+
displayEffectValue: string;
|
|
450
|
+
} | null;
|
|
323
451
|
/**
|
|
324
|
-
*
|
|
452
|
+
* Converts raw resource value (e.g. 12345.67890) to a formatted representation (i.e. 12.34K)
|
|
453
|
+
* If 'prefix' flag is true, positive value will be prefixed with '+', e.g. ("+12.34K")
|
|
325
454
|
*/
|
|
326
|
-
|
|
455
|
+
getDisplayValueExt: (value: number, prefix?: boolean, usePerTickHack?: boolean, precision?: number, postifx?: string) => string;
|
|
327
456
|
/**
|
|
328
|
-
*
|
|
457
|
+
* Formats float value to x.xx or x if value is integer
|
|
329
458
|
*/
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
*/
|
|
349
|
-
label: string;
|
|
350
|
-
name: SpaceBuilding;
|
|
351
|
-
priceRatio: number;
|
|
352
|
-
prices: Array<Price>;
|
|
353
|
-
requiredTech: Array<"sattelites">;
|
|
354
|
-
unlocked: boolean;
|
|
355
|
-
unlocks: {
|
|
356
|
-
policies: Array<"militarizeSpace" | "outerSpaceTreaty">;
|
|
357
|
-
};
|
|
358
|
-
unlockScheme: {
|
|
359
|
-
name: "space";
|
|
360
|
-
threshold: number;
|
|
361
|
-
};
|
|
362
|
-
upgrades: {
|
|
363
|
-
buildings: Array<"observatory">;
|
|
364
|
-
};
|
|
365
|
-
val: number;
|
|
366
|
-
};
|
|
367
|
-
meta: Array<{
|
|
368
|
-
meta: Array<{
|
|
369
|
-
effects?: Partial<BuildingEffects>;
|
|
370
|
-
label: string;
|
|
371
|
-
name: string;
|
|
372
|
-
on: number;
|
|
373
|
-
prices: Array<Price>;
|
|
374
|
-
unlocked: boolean;
|
|
375
|
-
val: number;
|
|
376
|
-
}>;
|
|
377
|
-
}>;
|
|
378
|
-
planets: Array<PlanetMeta>;
|
|
379
|
-
programs: Array<{
|
|
380
|
-
name: Mission;
|
|
381
|
-
label: string;
|
|
382
|
-
}>;
|
|
383
|
-
};
|
|
384
|
-
stats: {
|
|
385
|
-
statGroups: Array<{
|
|
386
|
-
title: string;
|
|
387
|
-
group: Array<{
|
|
388
|
-
name: "averageKittens" | "buildingsConstructed" | "eventsObserved" | "kittensDead" | "timePlayed" | "totalChallengesCompleted" | "totalClicks" | "totalCrafts" | "totalKittens" | "totalParagon" | "totalResets" | "totalTrades" | "totalYears" | "transcendenceTier" | "unicornsSacrificed";
|
|
389
|
-
title: string;
|
|
390
|
-
val: number;
|
|
391
|
-
unlocked: boolean;
|
|
392
|
-
defaultUnlocked: boolean;
|
|
393
|
-
}>;
|
|
394
|
-
}>;
|
|
395
|
-
};
|
|
396
|
-
tabs: [
|
|
397
|
-
GameTab,
|
|
398
|
-
VillageTab,
|
|
399
|
-
GameTab,
|
|
400
|
-
GameTab,
|
|
401
|
-
TradeTab,
|
|
402
|
-
ReligionTab,
|
|
403
|
-
SpaceTab,
|
|
404
|
-
TimeTab,
|
|
405
|
-
GameTab,
|
|
406
|
-
GameTab,
|
|
407
|
-
GameTab
|
|
408
|
-
];
|
|
409
|
-
telemetry: {
|
|
410
|
-
buildRevision: number;
|
|
411
|
-
guid: string;
|
|
412
|
-
version: string;
|
|
413
|
-
};
|
|
414
|
-
ticksPerSecond: number;
|
|
415
|
-
time: {
|
|
416
|
-
chronoforgeUpgrades: Array<ChronoForgeUpgradeInfo>;
|
|
417
|
-
/**
|
|
418
|
-
* Get ChronoForge upgrade.
|
|
419
|
-
*/
|
|
420
|
-
getCFU: (name: ChronoForgeUpgrade) => ChronoForgeUpgradeInfo;
|
|
421
|
-
/**
|
|
422
|
-
* Get Void Space upgrade.
|
|
423
|
-
*/
|
|
424
|
-
getVSU: (name: VoidSpaceUpgrade) => VoidSpaceUpgradeInfo;
|
|
425
|
-
heat: number;
|
|
426
|
-
isAccelerated: boolean;
|
|
427
|
-
meta: Array<{
|
|
428
|
-
meta: Array<ChronoForgeUpgradeInfo | VoidSpaceUpgradeInfo>;
|
|
429
|
-
provider: {
|
|
430
|
-
getEffect: (item: unknown, effect: unknown) => unknown;
|
|
431
|
-
};
|
|
432
|
-
}>;
|
|
433
|
-
voidspaceUpgrades: Array<{
|
|
434
|
-
name: Exclude<VoidSpaceUpgrade, "usedCryochambers">;
|
|
435
|
-
label: string;
|
|
436
|
-
}>;
|
|
437
|
-
};
|
|
438
|
-
timeAccelerationRatio: () => number;
|
|
439
|
-
timer: {
|
|
440
|
-
ticksTotal: number;
|
|
441
|
-
};
|
|
442
|
-
timeTab: TimeTab;
|
|
443
|
-
unlock: (value: unknown) => void;
|
|
444
|
-
upgrade: (value: unknown) => void;
|
|
445
|
-
ui: {
|
|
446
|
-
activeTabId: TabId;
|
|
447
|
-
confirm: (title: string, message: string, callbackOk: () => void, callbackCancel: () => void) => void;
|
|
448
|
-
render: () => void;
|
|
449
|
-
};
|
|
450
|
-
village: {
|
|
451
|
-
assignJob: (job: unknown, count: number) => void;
|
|
452
|
-
getEffectLeader: <TDefaultObject>(role: "manager" | "scientist", defaultObject: TDefaultObject) => TDefaultObject;
|
|
453
|
-
getFreeKittens: () => number;
|
|
454
|
-
getJob: (name: string) => unknown;
|
|
455
|
-
getJobLimit: (name: string) => number;
|
|
456
|
-
/**
|
|
457
|
-
* Get a list of resource consumptions per tick
|
|
458
|
-
*
|
|
459
|
-
* @see getResProduction
|
|
460
|
-
*/
|
|
461
|
-
getResConsumption: () => {
|
|
462
|
-
catnip: number;
|
|
463
|
-
};
|
|
464
|
-
/**
|
|
465
|
-
* Get a list of resource modifiers per tick
|
|
466
|
-
* This method returns positive villager production that can be multiplied by building bonuses
|
|
467
|
-
*/
|
|
468
|
-
getResProduction: () => {
|
|
469
|
-
catnip: number;
|
|
470
|
-
};
|
|
471
|
-
happiness: number;
|
|
472
|
-
huntAll: () => void;
|
|
473
|
-
jobs: Array<JobInfo>;
|
|
474
|
-
leader: Kitten | null;
|
|
475
|
-
makeLeader: (kitten: Kitten) => void;
|
|
476
|
-
removeLeader: () => void;
|
|
477
|
-
/**
|
|
478
|
-
* @deprecated
|
|
479
|
-
*/
|
|
480
|
-
map: {
|
|
481
|
-
expeditionNode: {
|
|
482
|
-
x: number;
|
|
483
|
-
y: number;
|
|
484
|
-
};
|
|
485
|
-
explore: (x: number, y: number) => void;
|
|
486
|
-
toLevel: (x: number, y: number) => number;
|
|
487
|
-
getExplorationPrice: (x: number, y: number) => number;
|
|
488
|
-
villageData: Record<string, unknown>;
|
|
489
|
-
};
|
|
490
|
-
promoteKittens(): void;
|
|
491
|
-
sim: {
|
|
492
|
-
goldToPromote: (rank: number, value0: number, value1: number) => Array<unknown>;
|
|
493
|
-
kittens: Array<Kitten>;
|
|
494
|
-
promote: (leader: unknown, rank: number) => number;
|
|
495
|
-
};
|
|
496
|
-
};
|
|
497
|
-
villageTab: VillageTab;
|
|
498
|
-
workshop: {
|
|
499
|
-
crafts: Array<CraftableInfo>;
|
|
500
|
-
get: (technology: "chronoforge" | "cryocomputing" | "goldOre" | "machineLearning" | "uplink") => {
|
|
501
|
-
researched: boolean;
|
|
502
|
-
};
|
|
503
|
-
getCraft: (name: ResourceCraftable) => CraftableInfo | undefined;
|
|
504
|
-
getCraftPrice: (craft: CraftableInfo) => Array<Price>;
|
|
505
|
-
upgrades: Array<UpgradeInfo>;
|
|
459
|
+
getDisplayValue: (floatVal: number, plusPrefix: boolean, precision: number) => string;
|
|
460
|
+
fixFloatPointNumber: (number: number) => number;
|
|
461
|
+
addTab: (tab: Tab) => void;
|
|
462
|
+
isWebWorkerSupported: () => boolean;
|
|
463
|
+
timestamp: () => number;
|
|
464
|
+
start: () => void;
|
|
465
|
+
frame: () => void;
|
|
466
|
+
tick: () => void;
|
|
467
|
+
restartFPSCounters: () => void;
|
|
468
|
+
reset: () => void;
|
|
469
|
+
resetAutomatic: () => void;
|
|
470
|
+
discardParagon: () => void;
|
|
471
|
+
doDiscardParagon: () => void;
|
|
472
|
+
_getKarmaKittens: (kittens: number) => number;
|
|
473
|
+
_getBonusZebras: () => number;
|
|
474
|
+
getResetPrestige: () => {
|
|
475
|
+
karmaKittens: number;
|
|
476
|
+
paragonPoints: number;
|
|
506
477
|
};
|
|
507
|
-
|
|
478
|
+
_resetInternal: () => void;
|
|
479
|
+
rand: (ratio: number) => number;
|
|
480
|
+
updateKarma: () => void;
|
|
481
|
+
/**
|
|
482
|
+
* Calculate unlimited diminishing returns.
|
|
483
|
+
*/
|
|
484
|
+
getUnlimitedDR: (value: number, stripe: number) => number;
|
|
485
|
+
getInverseUnlimitedDR: (value: number, stripe: number) => number;
|
|
486
|
+
getTab: (tabName: TabId) => Tab;
|
|
487
|
+
calculateAllEffects: () => void;
|
|
488
|
+
getUnlockByName: (unlockId: unknown, type: unknown) => unknown;
|
|
489
|
+
unlock: (list: Partial<Unlocks>) => void;
|
|
490
|
+
upgrade: (list: Partial<Unlocks>) => void;
|
|
491
|
+
toggleFilters: () => void;
|
|
492
|
+
registerUndoChange: () => UndoChange;
|
|
493
|
+
undo: () => void;
|
|
494
|
+
checkEldermass: () => void;
|
|
495
|
+
redeemGift: () => void;
|
|
496
|
+
unlockAll: () => void;
|
|
497
|
+
isEldermass: () => boolean;
|
|
498
|
+
createRandomName: (lenConst: number, charPool?: string) => string;
|
|
499
|
+
createRandomVarietyAndColor: (ch1: null | number, ch2: null | number) => [string, number];
|
|
500
|
+
};
|
|
501
|
+
export type UnsafeFeatureSelection = {
|
|
502
|
+
beta: boolean;
|
|
503
|
+
main: boolean;
|
|
504
|
+
mobile: boolean;
|
|
508
505
|
};
|
|
509
|
-
export {};
|
|
510
506
|
//# sourceMappingURL=game.d.ts.map
|