@nice2dev/game-engine 1.3.13 → 1.3.14
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/CHANGELOG.md +4 -0
- package/package.json +2 -2
- package/dist/types/accessibility/index.d.ts +0 -1
- package/dist/types/ai/index.d.ts +0 -1
- package/dist/types/animation/index.d.ts +0 -1
- package/dist/types/audio/HRTFAudio.d.ts +0 -180
- package/dist/types/audio/index.d.ts +0 -2
- package/dist/types/community/Community.d.ts +0 -112
- package/dist/types/community/index.d.ts +0 -1
- package/dist/types/core/TypeSafety.d.ts +0 -190
- package/dist/types/core/index.d.ts +0 -7
- package/dist/types/devtools/AssetStore.d.ts +0 -133
- package/dist/types/devtools/index.d.ts +0 -3
- package/dist/types/dialogue/index.d.ts +0 -2
- package/dist/types/docs/APIPlayground.d.ts +0 -26
- package/dist/types/docs/Cookbook.d.ts +0 -18
- package/dist/types/docs/Guides.d.ts +0 -18
- package/dist/types/docs/index.d.ts +0 -4
- package/dist/types/ecs/ECSOptimized.d.ts +0 -131
- package/dist/types/ecs/index.d.ts +0 -2
- package/dist/types/editor/NiceAnimationTimeline.d.ts +0 -114
- package/dist/types/editor/NiceLevelEditor.d.ts +0 -232
- package/dist/types/editor/NiceMaterialEditor.d.ts +0 -105
- package/dist/types/editor/NiceNodeGraph.d.ts +0 -87
- package/dist/types/editor/NiceParticleEditor.d.ts +0 -127
- package/dist/types/editor/behavior-tree/BTDebugPanel.d.ts +0 -102
- package/dist/types/editor/behavior-tree/BTEditorCanvas.d.ts +0 -79
- package/dist/types/editor/behavior-tree/BTEditorNode.d.ts +0 -58
- package/dist/types/editor/behavior-tree/BTEditorToolbar.d.ts +0 -75
- package/dist/types/editor/behavior-tree/BTNodePalette.d.ts +0 -72
- package/dist/types/editor/behavior-tree/BTPropertyPanel.d.ts +0 -66
- package/dist/types/editor/behavior-tree/BehaviorTreeEditor.d.ts +0 -186
- package/dist/types/editor/behavior-tree/index.d.ts +0 -14
- package/dist/types/editor/behavior-tree/serialization.d.ts +0 -30
- package/dist/types/editor/behavior-tree/types.d.ts +0 -299
- package/dist/types/editor/index.d.ts +0 -20
- package/dist/types/editor/state-machine/SMEditorCanvas.d.ts +0 -61
- package/dist/types/editor/state-machine/StateMachineEditor.d.ts +0 -139
- package/dist/types/editor/state-machine/index.d.ts +0 -11
- package/dist/types/editor/state-machine/serialization.d.ts +0 -23
- package/dist/types/editor/state-machine/types.d.ts +0 -241
- package/dist/types/engine/index.d.ts +0 -2
- package/dist/types/enterprise/index.d.ts +0 -1
- package/dist/types/epic/index.d.ts +0 -10
- package/dist/types/i18n/index.d.ts +0 -2
- package/dist/types/input/index.d.ts +0 -3
- package/dist/types/kids/index.d.ts +0 -2
- package/dist/types/legendary/index.d.ts +0 -57
- package/dist/types/monetization/index.d.ts +0 -1
- package/dist/types/multiplayer/NiceNetcode.d.ts +0 -434
- package/dist/types/multiplayer/index.d.ts +0 -5
- package/dist/types/network/index.d.ts +0 -2
- package/dist/types/pathfinding/index.d.ts +0 -1
- package/dist/types/performance/AssetCompression.d.ts +0 -137
- package/dist/types/performance/WASMModules.d.ts +0 -65
- package/dist/types/performance/WebGPUCompute.d.ts +0 -71
- package/dist/types/performance/index.d.ts +0 -1
- package/dist/types/physics/RapierIntegration.d.ts +0 -404
- package/dist/types/physics/index.d.ts +0 -2
- package/dist/types/plugins/index.d.ts +0 -2
- package/dist/types/procedural/index.d.ts +0 -2
- package/dist/types/release/index.d.ts +0 -1
- package/dist/types/rendering/WebGPUv2.d.ts +0 -173
- package/dist/types/rendering/index.d.ts +0 -3
- package/dist/types/runtime3d/index.d.ts +0 -2
- package/dist/types/scene/index.d.ts +0 -2
- package/dist/types/scripting/WasmCompiler.d.ts +0 -182
- package/dist/types/scripting/index.d.ts +0 -19
- package/dist/types/social/index.d.ts +0 -1
- package/dist/types/systems/NiceAI.d.ts +0 -637
- package/dist/types/systems/NiceAbility.d.ts +0 -225
- package/dist/types/systems/NiceAccessibility.d.ts +0 -230
- package/dist/types/systems/NiceAchievement.d.ts +0 -153
- package/dist/types/systems/NiceAchievementUI.d.ts +0 -196
- package/dist/types/systems/NiceAchievements.d.ts +0 -230
- package/dist/types/systems/NiceAction.d.ts +0 -81
- package/dist/types/systems/NiceAlchemy.d.ts +0 -195
- package/dist/types/systems/NiceAnalytics.d.ts +0 -493
- package/dist/types/systems/NiceAnimation.d.ts +0 -350
- package/dist/types/systems/NiceArena.d.ts +0 -215
- package/dist/types/systems/NiceAssetLoader.d.ts +0 -136
- package/dist/types/systems/NiceAuction.d.ts +0 -157
- package/dist/types/systems/NiceAudio.d.ts +0 -224
- package/dist/types/systems/NiceAugment.d.ts +0 -187
- package/dist/types/systems/NiceAura.d.ts +0 -193
- package/dist/types/systems/NiceBank.d.ts +0 -158
- package/dist/types/systems/NiceBattlePass.d.ts +0 -150
- package/dist/types/systems/NiceBehavior.d.ts +0 -160
- package/dist/types/systems/NiceBinding.d.ts +0 -96
- package/dist/types/systems/NiceBlacksmith.d.ts +0 -221
- package/dist/types/systems/NiceBuff.d.ts +0 -177
- package/dist/types/systems/NiceBuilding.d.ts +0 -207
- package/dist/types/systems/NiceBullet.d.ts +0 -167
- package/dist/types/systems/NiceCamera.d.ts +0 -252
- package/dist/types/systems/NiceCard.d.ts +0 -171
- package/dist/types/systems/NiceChat.d.ts +0 -148
- package/dist/types/systems/NiceCheat.d.ts +0 -375
- package/dist/types/systems/NiceClimbing.d.ts +0 -186
- package/dist/types/systems/NiceCloud.d.ts +0 -422
- package/dist/types/systems/NiceCollision.d.ts +0 -238
- package/dist/types/systems/NiceCombo.d.ts +0 -131
- package/dist/types/systems/NiceCommand.d.ts +0 -112
- package/dist/types/systems/NiceCompanion.d.ts +0 -182
- package/dist/types/systems/NiceController.d.ts +0 -144
- package/dist/types/systems/NiceCooking.d.ts +0 -193
- package/dist/types/systems/NiceCoroutine.d.ts +0 -101
- package/dist/types/systems/NiceCrafting.d.ts +0 -228
- package/dist/types/systems/NiceCutscene.d.ts +0 -437
- package/dist/types/systems/NiceDaily.d.ts +0 -133
- package/dist/types/systems/NiceDamage.d.ts +0 -271
- package/dist/types/systems/NiceDayNight.d.ts +0 -126
- package/dist/types/systems/NiceDebug.d.ts +0 -255
- package/dist/types/systems/NiceDestructible.d.ts +0 -150
- package/dist/types/systems/NiceDialogue.d.ts +0 -629
- package/dist/types/systems/NiceDungeon.d.ts +0 -202
- package/dist/types/systems/NiceECS.d.ts +0 -151
- package/dist/types/systems/NiceEnchant.d.ts +0 -148
- package/dist/types/systems/NiceEntityPool.d.ts +0 -127
- package/dist/types/systems/NiceEquipment.d.ts +0 -137
- package/dist/types/systems/NiceEvent.d.ts +0 -202
- package/dist/types/systems/NiceEventBus.d.ts +0 -164
- package/dist/types/systems/NiceFaction.d.ts +0 -173
- package/dist/types/systems/NiceFarming.d.ts +0 -163
- package/dist/types/systems/NiceFishing.d.ts +0 -196
- package/dist/types/systems/NiceFlocking.d.ts +0 -156
- package/dist/types/systems/NiceFog.d.ts +0 -137
- package/dist/types/systems/NiceFormation.d.ts +0 -140
- package/dist/types/systems/NiceGacha.d.ts +0 -134
- package/dist/types/systems/NiceGambling.d.ts +0 -175
- package/dist/types/systems/NiceGem.d.ts +0 -165
- package/dist/types/systems/NiceGesture.d.ts +0 -502
- package/dist/types/systems/NiceGrappling.d.ts +0 -154
- package/dist/types/systems/NiceGrid.d.ts +0 -142
- package/dist/types/systems/NiceGuild.d.ts +0 -162
- package/dist/types/systems/NiceHaptics.d.ts +0 -112
- package/dist/types/systems/NiceHousing.d.ts +0 -197
- package/dist/types/systems/NiceInput.d.ts +0 -280
- package/dist/types/systems/NiceInventory.d.ts +0 -534
- package/dist/types/systems/NiceLOD.d.ts +0 -144
- package/dist/types/systems/NiceLeaderboard.d.ts +0 -191
- package/dist/types/systems/NiceLevel.d.ts +0 -304
- package/dist/types/systems/NiceLighting.d.ts +0 -214
- package/dist/types/systems/NiceLocalization.d.ts +0 -148
- package/dist/types/systems/NiceLocomotion.d.ts +0 -398
- package/dist/types/systems/NiceLogger.d.ts +0 -117
- package/dist/types/systems/NiceLoot.d.ts +0 -176
- package/dist/types/systems/NiceMail.d.ts +0 -164
- package/dist/types/systems/NiceMap.d.ts +0 -234
- package/dist/types/systems/NiceMarriage.d.ts +0 -150
- package/dist/types/systems/NiceMastery.d.ts +0 -171
- package/dist/types/systems/NiceMatch.d.ts +0 -196
- package/dist/types/systems/NiceMatch3.d.ts +0 -118
- package/dist/types/systems/NiceMessageBus.d.ts +0 -115
- package/dist/types/systems/NiceMinimap.d.ts +0 -258
- package/dist/types/systems/NiceMining.d.ts +0 -175
- package/dist/types/systems/NiceModding.d.ts +0 -452
- package/dist/types/systems/NiceMount.d.ts +0 -152
- package/dist/types/systems/NiceNavigation.d.ts +0 -307
- package/dist/types/systems/NiceNetwork.d.ts +0 -568
- package/dist/types/systems/NiceNotification.d.ts +0 -438
- package/dist/types/systems/NiceObjective.d.ts +0 -395
- package/dist/types/systems/NiceParticle.d.ts +0 -639
- package/dist/types/systems/NiceParty.d.ts +0 -168
- package/dist/types/systems/NicePerformance.d.ts +0 -144
- package/dist/types/systems/NicePet.d.ts +0 -167
- package/dist/types/systems/NicePhotoMode.d.ts +0 -270
- package/dist/types/systems/NicePhysics.d.ts +0 -326
- package/dist/types/systems/NicePlatformer.d.ts +0 -158
- package/dist/types/systems/NicePool.d.ts +0 -128
- package/dist/types/systems/NicePortal.d.ts +0 -178
- package/dist/types/systems/NicePostProcess.d.ts +0 -254
- package/dist/types/systems/NiceProcedural.d.ts +0 -202
- package/dist/types/systems/NiceProfile.d.ts +0 -223
- package/dist/types/systems/NiceProjectile.d.ts +0 -157
- package/dist/types/systems/NicePvP.d.ts +0 -199
- package/dist/types/systems/NiceQTE.d.ts +0 -160
- package/dist/types/systems/NiceQuest.d.ts +0 -620
- package/dist/types/systems/NiceRaid.d.ts +0 -215
- package/dist/types/systems/NiceRanking.d.ts +0 -399
- package/dist/types/systems/NiceReplay.d.ts +0 -180
- package/dist/types/systems/NiceReputation.d.ts +0 -151
- package/dist/types/systems/NiceResource.d.ts +0 -200
- package/dist/types/systems/NiceRhythm.d.ts +0 -148
- package/dist/types/systems/NiceRoguelike.d.ts +0 -276
- package/dist/types/systems/NiceRune.d.ts +0 -202
- package/dist/types/systems/NiceSaveSystem.d.ts +0 -194
- package/dist/types/systems/NiceSceneManager.d.ts +0 -112
- package/dist/types/systems/NiceScore.d.ts +0 -186
- package/dist/types/systems/NiceScreenFX.d.ts +0 -235
- package/dist/types/systems/NiceScreenshot.d.ts +0 -443
- package/dist/types/systems/NiceScribe.d.ts +0 -239
- package/dist/types/systems/NiceSeason.d.ts +0 -176
- package/dist/types/systems/NiceSerialization.d.ts +0 -89
- package/dist/types/systems/NiceServiceLocator.d.ts +0 -94
- package/dist/types/systems/NiceShop.d.ts +0 -528
- package/dist/types/systems/NiceSignal.d.ts +0 -112
- package/dist/types/systems/NiceSkillTree.d.ts +0 -237
- package/dist/types/systems/NiceSocial.d.ts +0 -580
- package/dist/types/systems/NiceSpawner.d.ts +0 -237
- package/dist/types/systems/NiceSpell.d.ts +0 -216
- package/dist/types/systems/NiceState.d.ts +0 -224
- package/dist/types/systems/NiceStateMachine.d.ts +0 -108
- package/dist/types/systems/NiceStatus.d.ts +0 -116
- package/dist/types/systems/NiceStealth.d.ts +0 -204
- package/dist/types/systems/NiceSteam.d.ts +0 -255
- package/dist/types/systems/NiceStreaming.d.ts +0 -173
- package/dist/types/systems/NiceSwimming.d.ts +0 -166
- package/dist/types/systems/NiceTalent.d.ts +0 -154
- package/dist/types/systems/NiceTarget.d.ts +0 -121
- package/dist/types/systems/NiceTerrain.d.ts +0 -143
- package/dist/types/systems/NiceTilemap.d.ts +0 -218
- package/dist/types/systems/NiceTimer.d.ts +0 -153
- package/dist/types/systems/NiceTournament.d.ts +0 -190
- package/dist/types/systems/NiceTrading.d.ts +0 -238
- package/dist/types/systems/NiceTransmog.d.ts +0 -142
- package/dist/types/systems/NiceTutorial.d.ts +0 -248
- package/dist/types/systems/NiceTween.d.ts +0 -164
- package/dist/types/systems/NiceUI.d.ts +0 -364
- package/dist/types/systems/NiceVFX.d.ts +0 -333
- package/dist/types/systems/NiceVehicle.d.ts +0 -176
- package/dist/types/systems/NiceVoice.d.ts +0 -502
- package/dist/types/systems/NiceWater.d.ts +0 -162
- package/dist/types/systems/NiceWave.d.ts +0 -174
- package/dist/types/systems/NiceWaypoint.d.ts +0 -165
- package/dist/types/systems/NiceWeather.d.ts +0 -225
- package/dist/types/systems/NiceXR.d.ts +0 -187
- package/dist/types/systems/index.d.ts +0 -182
- package/dist/types/templates/index.d.ts +0 -2
- package/dist/types/tilemap/index.d.ts +0 -1
- package/dist/types/tutorials/TutorialEditor.d.ts +0 -43
- package/dist/types/tutorials/VoiceNarration.d.ts +0 -75
- package/dist/types/tutorials/content/Tutorials_T04.d.ts +0 -3
- package/dist/types/tutorials/content/UITutorials.d.ts +0 -14
- package/dist/types/tutorials/content/index.d.ts +0 -5
- package/dist/types/tutorials/index.d.ts +0 -6
- package/dist/types/ui/index.d.ts +0 -2
- package/dist/types/visual-scripting/VisualScriptDebugger.d.ts +0 -145
- package/dist/types/visual-scripting/VisualScriptExecutor.d.ts +0 -100
- package/dist/types/visual-scripting/VisualScriptGraph.d.ts +0 -173
- package/dist/types/visual-scripting/VisualScriptNode.d.ts +0 -157
- package/dist/types/visual-scripting/index.d.ts +0 -6
- package/dist/types/visual-scripting/nodes/ActionNodes.d.ts +0 -152
- package/dist/types/visual-scripting/nodes/EventNodes.d.ts +0 -95
- package/dist/types/visual-scripting/nodes/FlowControlNodes.d.ts +0 -134
- package/dist/types/visual-scripting/nodes/LogicNodes.d.ts +0 -122
- package/dist/types/visual-scripting/nodes/MathNodes.d.ts +0 -170
- package/dist/types/visual-scripting/nodes/UtilityNodes.d.ts +0 -131
- package/dist/types/visual-scripting/nodes/VariableNodes.d.ts +0 -107
- package/dist/types/visual-scripting/nodes/index.d.ts +0 -21
- package/dist/types/visual-scripting/nodes/registerNodes.d.ts +0 -29
- package/dist/types/visual-scripting/types.d.ts +0 -402
- package/dist/types/xr/WebXRLayers.d.ts +0 -319
- package/dist/types/xr/index.d.ts +0 -2
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
export type RoomType = 'start' | 'combat' | 'elite' | 'boss' | 'treasure' | 'shop' | 'rest' | 'event' | 'secret' | 'exit';
|
|
2
|
-
export type RunState = 'preparing' | 'active' | 'victory' | 'defeat' | 'abandoned';
|
|
3
|
-
export type UnlockType = 'character' | 'relic' | 'card' | 'item' | 'enemy' | 'room' | 'challenge';
|
|
4
|
-
export interface Room {
|
|
5
|
-
id: string;
|
|
6
|
-
type: RoomType;
|
|
7
|
-
floor: number;
|
|
8
|
-
position: {
|
|
9
|
-
x: number;
|
|
10
|
-
y: number;
|
|
11
|
-
};
|
|
12
|
-
connections: string[];
|
|
13
|
-
isVisited: boolean;
|
|
14
|
-
isCleared: boolean;
|
|
15
|
-
isRevealed: boolean;
|
|
16
|
-
content?: RoomContent;
|
|
17
|
-
rewards?: Reward[];
|
|
18
|
-
metadata?: Record<string, unknown>;
|
|
19
|
-
}
|
|
20
|
-
export interface RoomContent {
|
|
21
|
-
enemies?: Enemy[];
|
|
22
|
-
items?: Item[];
|
|
23
|
-
event?: RogueEvent;
|
|
24
|
-
shop?: ShopData;
|
|
25
|
-
}
|
|
26
|
-
export interface Floor {
|
|
27
|
-
id: string;
|
|
28
|
-
number: number;
|
|
29
|
-
rooms: Map<string, Room>;
|
|
30
|
-
startRoom: string;
|
|
31
|
-
bossRoom: string;
|
|
32
|
-
isComplete: boolean;
|
|
33
|
-
}
|
|
34
|
-
export interface Enemy {
|
|
35
|
-
id: string;
|
|
36
|
-
name: string;
|
|
37
|
-
type: 'normal' | 'elite' | 'boss';
|
|
38
|
-
health: number;
|
|
39
|
-
maxHealth: number;
|
|
40
|
-
attack: number;
|
|
41
|
-
defense: number;
|
|
42
|
-
abilities: string[];
|
|
43
|
-
loot: LootTable;
|
|
44
|
-
}
|
|
45
|
-
export interface Item {
|
|
46
|
-
id: string;
|
|
47
|
-
name: string;
|
|
48
|
-
description: string;
|
|
49
|
-
type: 'consumable' | 'equipment' | 'passive' | 'curse';
|
|
50
|
-
rarity: 'common' | 'uncommon' | 'rare' | 'legendary' | 'cursed';
|
|
51
|
-
effects: ItemEffect[];
|
|
52
|
-
price?: number;
|
|
53
|
-
}
|
|
54
|
-
export interface ItemEffect {
|
|
55
|
-
stat: string;
|
|
56
|
-
value: number;
|
|
57
|
-
duration?: number;
|
|
58
|
-
}
|
|
59
|
-
export interface Relic {
|
|
60
|
-
id: string;
|
|
61
|
-
name: string;
|
|
62
|
-
description: string;
|
|
63
|
-
rarity: 'common' | 'uncommon' | 'rare' | 'boss';
|
|
64
|
-
trigger: 'passive' | 'onCombatStart' | 'onCombatEnd' | 'onDamage' | 'onHeal' | 'onRoomEnter';
|
|
65
|
-
effect: string;
|
|
66
|
-
value?: number;
|
|
67
|
-
}
|
|
68
|
-
export interface LootTable {
|
|
69
|
-
gold: {
|
|
70
|
-
min: number;
|
|
71
|
-
max: number;
|
|
72
|
-
};
|
|
73
|
-
items: Array<{
|
|
74
|
-
itemId: string;
|
|
75
|
-
chance: number;
|
|
76
|
-
}>;
|
|
77
|
-
relics: Array<{
|
|
78
|
-
relicId: string;
|
|
79
|
-
chance: number;
|
|
80
|
-
}>;
|
|
81
|
-
}
|
|
82
|
-
export interface RogueEvent {
|
|
83
|
-
id: string;
|
|
84
|
-
name: string;
|
|
85
|
-
description: string;
|
|
86
|
-
choices: EventChoice[];
|
|
87
|
-
}
|
|
88
|
-
export interface EventChoice {
|
|
89
|
-
text: string;
|
|
90
|
-
requirements?: EventRequirement[];
|
|
91
|
-
outcomes: EventOutcome[];
|
|
92
|
-
}
|
|
93
|
-
export interface EventRequirement {
|
|
94
|
-
type: 'gold' | 'health' | 'item' | 'stat';
|
|
95
|
-
value: number | string;
|
|
96
|
-
}
|
|
97
|
-
export interface EventOutcome {
|
|
98
|
-
type: 'gold' | 'health' | 'item' | 'relic' | 'stat' | 'text' | 'damage';
|
|
99
|
-
value: number | string;
|
|
100
|
-
chance?: number;
|
|
101
|
-
}
|
|
102
|
-
export interface ShopData {
|
|
103
|
-
items: ShopItem[];
|
|
104
|
-
relics: ShopItem[];
|
|
105
|
-
removals: number;
|
|
106
|
-
removalPrice: number;
|
|
107
|
-
}
|
|
108
|
-
export interface ShopItem {
|
|
109
|
-
item: Item | Relic;
|
|
110
|
-
price: number;
|
|
111
|
-
isSold: boolean;
|
|
112
|
-
}
|
|
113
|
-
export interface Reward {
|
|
114
|
-
type: 'gold' | 'item' | 'relic' | 'heal' | 'cardRemove' | 'upgrade';
|
|
115
|
-
value: number | string;
|
|
116
|
-
claimed: boolean;
|
|
117
|
-
}
|
|
118
|
-
export interface RogueCharacter {
|
|
119
|
-
id: string;
|
|
120
|
-
name: string;
|
|
121
|
-
class: string;
|
|
122
|
-
health: number;
|
|
123
|
-
maxHealth: number;
|
|
124
|
-
gold: number;
|
|
125
|
-
relics: Relic[];
|
|
126
|
-
items: Item[];
|
|
127
|
-
deck?: string[];
|
|
128
|
-
level: number;
|
|
129
|
-
experience: number;
|
|
130
|
-
abilities: string[];
|
|
131
|
-
modifiers: CharacterModifier[];
|
|
132
|
-
}
|
|
133
|
-
export interface CharacterModifier {
|
|
134
|
-
id: string;
|
|
135
|
-
stat: string;
|
|
136
|
-
value: number;
|
|
137
|
-
duration: number;
|
|
138
|
-
source: string;
|
|
139
|
-
}
|
|
140
|
-
export interface Run {
|
|
141
|
-
id: string;
|
|
142
|
-
seed: string;
|
|
143
|
-
state: RunState;
|
|
144
|
-
character: RogueCharacter;
|
|
145
|
-
currentFloor: number;
|
|
146
|
-
currentRoom: string | null;
|
|
147
|
-
floors: Floor[];
|
|
148
|
-
startTime: number;
|
|
149
|
-
endTime?: number;
|
|
150
|
-
roomsVisited: number;
|
|
151
|
-
enemiesKilled: number;
|
|
152
|
-
bossesKilled: number;
|
|
153
|
-
goldEarned: number;
|
|
154
|
-
goldSpent: number;
|
|
155
|
-
damageDealt: number;
|
|
156
|
-
damageTaken: number;
|
|
157
|
-
history: RunHistoryEntry[];
|
|
158
|
-
}
|
|
159
|
-
export interface RunHistoryEntry {
|
|
160
|
-
timestamp: number;
|
|
161
|
-
type: string;
|
|
162
|
-
data: unknown;
|
|
163
|
-
}
|
|
164
|
-
export interface MetaProgress {
|
|
165
|
-
totalRuns: number;
|
|
166
|
-
totalVictories: number;
|
|
167
|
-
totalDeaths: number;
|
|
168
|
-
metaCurrency: number;
|
|
169
|
-
unlocks: Unlock[];
|
|
170
|
-
highestFloor: number;
|
|
171
|
-
fastestVictory: number;
|
|
172
|
-
mostGoldInRun: number;
|
|
173
|
-
characterProgress: Map<string, CharacterProgress>;
|
|
174
|
-
}
|
|
175
|
-
export interface Unlock {
|
|
176
|
-
id: string;
|
|
177
|
-
type: UnlockType;
|
|
178
|
-
targetId: string;
|
|
179
|
-
isUnlocked: boolean;
|
|
180
|
-
requirement: UnlockRequirement;
|
|
181
|
-
}
|
|
182
|
-
export interface UnlockRequirement {
|
|
183
|
-
type: 'runs' | 'victories' | 'currency' | 'achievement' | 'boss';
|
|
184
|
-
value: number | string;
|
|
185
|
-
}
|
|
186
|
-
export interface CharacterProgress {
|
|
187
|
-
characterId: string;
|
|
188
|
-
runsPlayed: number;
|
|
189
|
-
victories: number;
|
|
190
|
-
highestFloor: number;
|
|
191
|
-
totalKills: number;
|
|
192
|
-
}
|
|
193
|
-
export type RoguelikeEventType = 'run-start' | 'run-end' | 'room-enter' | 'room-clear' | 'floor-change' | 'combat-start' | 'combat-end' | 'enemy-kill' | 'boss-kill' | 'item-pickup' | 'relic-pickup' | 'shop-purchase' | 'event-choice' | 'level-up' | 'death' | 'unlock';
|
|
194
|
-
export interface RoguelikeEvent {
|
|
195
|
-
type: RoguelikeEventType;
|
|
196
|
-
timestamp: number;
|
|
197
|
-
runId: string;
|
|
198
|
-
data: unknown;
|
|
199
|
-
}
|
|
200
|
-
export type RoguelikeEventCallback = (event: RoguelikeEvent) => void;
|
|
201
|
-
export interface RoguelikeConfig {
|
|
202
|
-
/** Floors per run */
|
|
203
|
-
floorsPerRun: number;
|
|
204
|
-
/** Rooms per floor (average) */
|
|
205
|
-
roomsPerFloor: number;
|
|
206
|
-
/** Starting health */
|
|
207
|
-
startingHealth: number;
|
|
208
|
-
/** Starting gold */
|
|
209
|
-
startingGold: number;
|
|
210
|
-
/** Room type weights */
|
|
211
|
-
roomWeights: Record<RoomType, number>;
|
|
212
|
-
/** Shop price modifier */
|
|
213
|
-
shopPriceModifier: number;
|
|
214
|
-
/** Elite spawn chance */
|
|
215
|
-
eliteChance: number;
|
|
216
|
-
/** Event spawn chance */
|
|
217
|
-
eventChance: number;
|
|
218
|
-
/** Treasure spawn chance */
|
|
219
|
-
treasureChance: number;
|
|
220
|
-
/** Rest heal percent */
|
|
221
|
-
restHealPercent: number;
|
|
222
|
-
/** Meta currency per floor */
|
|
223
|
-
metaCurrencyPerFloor: number;
|
|
224
|
-
}
|
|
225
|
-
export declare const DEFAULT_ROGUELIKE_CONFIG: RoguelikeConfig;
|
|
226
|
-
export declare class NiceRoguelike {
|
|
227
|
-
private config;
|
|
228
|
-
private activeRun;
|
|
229
|
-
private metaProgress;
|
|
230
|
-
private items;
|
|
231
|
-
private relics;
|
|
232
|
-
private events;
|
|
233
|
-
private eventListeners;
|
|
234
|
-
private nextId;
|
|
235
|
-
private rng;
|
|
236
|
-
constructor(config?: Partial<RoguelikeConfig>);
|
|
237
|
-
on(event: RoguelikeEventType, callback: RoguelikeEventCallback): () => void;
|
|
238
|
-
private emit;
|
|
239
|
-
setSeed(seed: string): void;
|
|
240
|
-
private generateSeed;
|
|
241
|
-
startRun(characterId: string, seed?: string): Run;
|
|
242
|
-
abandonRun(): void;
|
|
243
|
-
getRun(): Run | null;
|
|
244
|
-
private generateFloor;
|
|
245
|
-
private selectRoomType;
|
|
246
|
-
private createRoom;
|
|
247
|
-
private generateRoomContent;
|
|
248
|
-
private generateEnemies;
|
|
249
|
-
private generateShop;
|
|
250
|
-
private generateEvent;
|
|
251
|
-
private generateTreasure;
|
|
252
|
-
enterRoom(roomId: string): boolean;
|
|
253
|
-
private handleRoomEntry;
|
|
254
|
-
clearCurrentRoom(): void;
|
|
255
|
-
private generateRewards;
|
|
256
|
-
private completeFloor;
|
|
257
|
-
heal(amount: number): void;
|
|
258
|
-
damage(amount: number): void;
|
|
259
|
-
addGold(amount: number): void;
|
|
260
|
-
spendGold(amount: number): boolean;
|
|
261
|
-
addRelic(relic: Relic): void;
|
|
262
|
-
addItem(item: Item): void;
|
|
263
|
-
killEnemy(enemy: Enemy): void;
|
|
264
|
-
private victory;
|
|
265
|
-
private death;
|
|
266
|
-
getMetaProgress(): MetaProgress;
|
|
267
|
-
private saveMetaProgress;
|
|
268
|
-
unlock(unlockId: string): boolean;
|
|
269
|
-
purchaseUnlock(unlockId: string, cost: number): boolean;
|
|
270
|
-
getCurrentRoom(): Room | null;
|
|
271
|
-
getConnectedRooms(): Room[];
|
|
272
|
-
getFloorMap(): Room[];
|
|
273
|
-
isRunActive(): boolean;
|
|
274
|
-
destroy(): void;
|
|
275
|
-
}
|
|
276
|
-
export declare function createRoguelikeSystem(config?: Partial<RoguelikeConfig>): NiceRoguelike;
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
export type RuneId = string;
|
|
2
|
-
export type RunewordId = string;
|
|
3
|
-
export type InscriptionId = string;
|
|
4
|
-
export type RuneTier = 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
|
5
|
-
export type RuneElement = 'fire' | 'ice' | 'lightning' | 'nature' | 'shadow' | 'holy' | 'arcane' | 'physical' | 'universal';
|
|
6
|
-
export interface RuneDefinition {
|
|
7
|
-
id: RuneId;
|
|
8
|
-
name: string;
|
|
9
|
-
description: string;
|
|
10
|
-
symbol: string;
|
|
11
|
-
tier: RuneTier;
|
|
12
|
-
element: RuneElement;
|
|
13
|
-
rarity: 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary';
|
|
14
|
-
stats: RuneStat[];
|
|
15
|
-
effects?: RuneEffect[];
|
|
16
|
-
levelRequired: number;
|
|
17
|
-
equipmentTypes?: string[];
|
|
18
|
-
upgradeInto?: RuneId;
|
|
19
|
-
upgradeCount?: number;
|
|
20
|
-
icon: string;
|
|
21
|
-
color: string;
|
|
22
|
-
glowEffect?: string;
|
|
23
|
-
tags?: string[];
|
|
24
|
-
}
|
|
25
|
-
export interface RuneStat {
|
|
26
|
-
stat: string;
|
|
27
|
-
value: number;
|
|
28
|
-
isPercentage: boolean;
|
|
29
|
-
}
|
|
30
|
-
export interface RuneEffect {
|
|
31
|
-
type: 'on_hit' | 'on_kill' | 'on_damage_taken' | 'passive' | 'aura' | 'proc';
|
|
32
|
-
effectId?: string;
|
|
33
|
-
chance?: number;
|
|
34
|
-
value?: number;
|
|
35
|
-
duration?: number;
|
|
36
|
-
cooldown?: number;
|
|
37
|
-
description: string;
|
|
38
|
-
}
|
|
39
|
-
export interface RunewordDefinition {
|
|
40
|
-
id: RunewordId;
|
|
41
|
-
name: string;
|
|
42
|
-
description: string;
|
|
43
|
-
lore?: string;
|
|
44
|
-
runes: RuneId[];
|
|
45
|
-
equipmentTypes: string[];
|
|
46
|
-
socketCount: number;
|
|
47
|
-
bonusStats: RuneStat[];
|
|
48
|
-
bonusEffects: RuneEffect[];
|
|
49
|
-
levelRequired: number;
|
|
50
|
-
icon: string;
|
|
51
|
-
vfx?: string;
|
|
52
|
-
nameColor?: string;
|
|
53
|
-
hidden: boolean;
|
|
54
|
-
}
|
|
55
|
-
export interface InscriptionDefinition {
|
|
56
|
-
id: InscriptionId;
|
|
57
|
-
name: string;
|
|
58
|
-
description: string;
|
|
59
|
-
tier: RuneTier;
|
|
60
|
-
type: 'major' | 'minor' | 'utility';
|
|
61
|
-
stats: RuneStat[];
|
|
62
|
-
effects?: RuneEffect[];
|
|
63
|
-
slot: string;
|
|
64
|
-
exclusive: boolean;
|
|
65
|
-
cost: InscriptionCost;
|
|
66
|
-
levelRequired: number;
|
|
67
|
-
professionRequired?: {
|
|
68
|
-
profession: string;
|
|
69
|
-
level: number;
|
|
70
|
-
};
|
|
71
|
-
icon: string;
|
|
72
|
-
}
|
|
73
|
-
export interface InscriptionCost {
|
|
74
|
-
currency?: Record<string, number>;
|
|
75
|
-
materials?: Record<string, number>;
|
|
76
|
-
runes?: Record<RuneId, number>;
|
|
77
|
-
}
|
|
78
|
-
export interface SocketedItem {
|
|
79
|
-
itemId: string;
|
|
80
|
-
equipmentType: string;
|
|
81
|
-
totalSockets: number;
|
|
82
|
-
sockets: Socket[];
|
|
83
|
-
inscription?: AppliedInscription;
|
|
84
|
-
activeRuneword?: RunewordId;
|
|
85
|
-
computedStats: Map<string, number>;
|
|
86
|
-
computedEffects: RuneEffect[];
|
|
87
|
-
}
|
|
88
|
-
export interface Socket {
|
|
89
|
-
index: number;
|
|
90
|
-
rune?: RuneId;
|
|
91
|
-
locked: boolean;
|
|
92
|
-
color?: RuneElement;
|
|
93
|
-
}
|
|
94
|
-
export interface AppliedInscription {
|
|
95
|
-
inscriptionId: InscriptionId;
|
|
96
|
-
appliedAt: number;
|
|
97
|
-
appliedBy: string;
|
|
98
|
-
}
|
|
99
|
-
export interface PlayerRuneData {
|
|
100
|
-
playerId: string;
|
|
101
|
-
runeInventory: Map<RuneId, number>;
|
|
102
|
-
maxRuneSlots: number;
|
|
103
|
-
discoveredRunewords: Set<RunewordId>;
|
|
104
|
-
inscriptionLevel: number;
|
|
105
|
-
inscriptionXP: number;
|
|
106
|
-
unlockedInscriptions: Set<InscriptionId>;
|
|
107
|
-
totalRunesCollected: number;
|
|
108
|
-
totalRunewordsCreated: number;
|
|
109
|
-
totalInscriptionsApplied: number;
|
|
110
|
-
runesUpgraded: number;
|
|
111
|
-
}
|
|
112
|
-
export interface RuneUpgradeRecipe {
|
|
113
|
-
fromRune: RuneId;
|
|
114
|
-
toRune: RuneId;
|
|
115
|
-
count: number;
|
|
116
|
-
additionalCost?: Record<string, number>;
|
|
117
|
-
}
|
|
118
|
-
export type RuneEventType = 'rune-obtained' | 'rune-socketed' | 'rune-removed' | 'rune-upgraded' | 'runeword-created' | 'runeword-destroyed' | 'runeword-discovered' | 'inscription-applied' | 'inscription-removed' | 'inscription-unlocked' | 'inscription-level-up';
|
|
119
|
-
export interface RuneEvent {
|
|
120
|
-
type: RuneEventType;
|
|
121
|
-
timestamp: number;
|
|
122
|
-
data?: unknown;
|
|
123
|
-
}
|
|
124
|
-
export type RuneEventCallback = (event: RuneEvent) => void;
|
|
125
|
-
export interface RuneConfig {
|
|
126
|
-
maxRuneSlots: number;
|
|
127
|
-
maxSocketsPerItem: number;
|
|
128
|
-
runeUpgradeCount: number;
|
|
129
|
-
inscriptionXPPerLevel: number;
|
|
130
|
-
inscriptionMaxLevel: number;
|
|
131
|
-
storageKey: string;
|
|
132
|
-
}
|
|
133
|
-
export declare const DEFAULT_RUNE_CONFIG: RuneConfig;
|
|
134
|
-
export declare class NiceRune {
|
|
135
|
-
private config;
|
|
136
|
-
private runes;
|
|
137
|
-
private runewords;
|
|
138
|
-
private inscriptions;
|
|
139
|
-
private upgradeRecipes;
|
|
140
|
-
private items;
|
|
141
|
-
private players;
|
|
142
|
-
private eventListeners;
|
|
143
|
-
constructor(config?: Partial<RuneConfig>);
|
|
144
|
-
on(event: RuneEventType, callback: RuneEventCallback): () => void;
|
|
145
|
-
private emit;
|
|
146
|
-
registerRune(rune: RuneDefinition): void;
|
|
147
|
-
registerRuneword(runeword: RunewordDefinition): void;
|
|
148
|
-
registerInscription(inscription: InscriptionDefinition): void;
|
|
149
|
-
getPlayer(playerId: string): PlayerRuneData;
|
|
150
|
-
private createPlayerData;
|
|
151
|
-
addRune(playerId: string, runeId: RuneId, count?: number): boolean;
|
|
152
|
-
removeRune(playerId: string, runeId: RuneId, count?: number): boolean;
|
|
153
|
-
getRuneCount(playerId: string, runeId: RuneId): number;
|
|
154
|
-
getRuneInventory(playerId: string): Map<RuneId, number>;
|
|
155
|
-
registerItem(itemId: string, equipmentType: string, socketCount: number, socketColors?: RuneElement[]): SocketedItem;
|
|
156
|
-
getItem(itemId: string): SocketedItem | undefined;
|
|
157
|
-
socketRune(playerId: string, itemId: string, socketIndex: number, runeId: RuneId): boolean;
|
|
158
|
-
unsocketRune(playerId: string, itemId: string, socketIndex: number): RuneId | null;
|
|
159
|
-
unsocketAllRunes(playerId: string, itemId: string): RuneId[];
|
|
160
|
-
private checkRuneword;
|
|
161
|
-
getActiveRuneword(itemId: string): RunewordDefinition | undefined;
|
|
162
|
-
private recalculateItem;
|
|
163
|
-
canUpgradeRune(playerId: string, runeId: RuneId): boolean;
|
|
164
|
-
upgradeRune(playerId: string, runeId: RuneId): RuneId | null;
|
|
165
|
-
getUpgradeRecipe(runeId: RuneId): RuneUpgradeRecipe | undefined;
|
|
166
|
-
unlockInscription(playerId: string, inscriptionId: InscriptionId): boolean;
|
|
167
|
-
canApplyInscription(playerId: string, itemId: string, inscriptionId: InscriptionId): boolean;
|
|
168
|
-
applyInscription(playerId: string, itemId: string, inscriptionId: InscriptionId): boolean;
|
|
169
|
-
removeInscription(itemId: string): InscriptionId | null;
|
|
170
|
-
addInscriptionXP(playerId: string, xp: number): void;
|
|
171
|
-
getInscriptionXPForLevel(level: number): number;
|
|
172
|
-
getInscriptionProgress(playerId: string): {
|
|
173
|
-
level: number;
|
|
174
|
-
xp: number;
|
|
175
|
-
xpNeeded: number;
|
|
176
|
-
};
|
|
177
|
-
getRune(id: RuneId): RuneDefinition | undefined;
|
|
178
|
-
getAllRunes(): RuneDefinition[];
|
|
179
|
-
getRunesByTier(tier: RuneTier): RuneDefinition[];
|
|
180
|
-
getRunesByElement(element: RuneElement): RuneDefinition[];
|
|
181
|
-
getRuneword(id: RunewordId): RunewordDefinition | undefined;
|
|
182
|
-
getAllRunewords(): RunewordDefinition[];
|
|
183
|
-
getDiscoveredRunewords(playerId: string): RunewordDefinition[];
|
|
184
|
-
getInscription(id: InscriptionId): InscriptionDefinition | undefined;
|
|
185
|
-
getAllInscriptions(): InscriptionDefinition[];
|
|
186
|
-
getUnlockedInscriptions(playerId: string): InscriptionDefinition[];
|
|
187
|
-
getItemStats(itemId: string): Map<string, number>;
|
|
188
|
-
getItemEffects(itemId: string): RuneEffect[];
|
|
189
|
-
getStats(playerId: string): {
|
|
190
|
-
totalRunes: number;
|
|
191
|
-
uniqueRunes: number;
|
|
192
|
-
runewordsDiscovered: number;
|
|
193
|
-
runewordsCreated: number;
|
|
194
|
-
inscriptionsUnlocked: number;
|
|
195
|
-
inscriptionLevel: number;
|
|
196
|
-
};
|
|
197
|
-
save(): void;
|
|
198
|
-
load(): void;
|
|
199
|
-
reset(): void;
|
|
200
|
-
destroy(): void;
|
|
201
|
-
}
|
|
202
|
-
export declare function createRuneSystem(config?: Partial<RuneConfig>): NiceRune;
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
export type SaveSlotId = string | number;
|
|
2
|
-
export interface SaveMetadata {
|
|
3
|
-
id: SaveSlotId;
|
|
4
|
-
name: string;
|
|
5
|
-
description?: string;
|
|
6
|
-
createdAt: number;
|
|
7
|
-
modifiedAt: number;
|
|
8
|
-
playTime: number;
|
|
9
|
-
version: string;
|
|
10
|
-
chapterOrLevel?: string;
|
|
11
|
-
difficulty?: string;
|
|
12
|
-
thumbnail?: string;
|
|
13
|
-
checksum: string;
|
|
14
|
-
compressed: boolean;
|
|
15
|
-
encrypted: boolean;
|
|
16
|
-
cloudSynced: boolean;
|
|
17
|
-
tags: string[];
|
|
18
|
-
customData: Record<string, unknown>;
|
|
19
|
-
}
|
|
20
|
-
export interface SaveData<T = Record<string, unknown>> {
|
|
21
|
-
metadata: SaveMetadata;
|
|
22
|
-
gameState: T;
|
|
23
|
-
timestamp: number;
|
|
24
|
-
}
|
|
25
|
-
export interface SaveSystemConfig {
|
|
26
|
-
/** Maximum number of save slots */
|
|
27
|
-
maxSlots: number;
|
|
28
|
-
/** Auto-save interval in seconds (0 = disabled) */
|
|
29
|
-
autoSaveInterval: number;
|
|
30
|
-
/** Number of auto-save slots to rotate */
|
|
31
|
-
autoSaveSlots: number;
|
|
32
|
-
/** Quick save slot IDs */
|
|
33
|
-
quickSaveSlots: number;
|
|
34
|
-
/** Enable data compression */
|
|
35
|
-
compression: boolean;
|
|
36
|
-
/** Compression level (1-9) */
|
|
37
|
-
compressionLevel: number;
|
|
38
|
-
/** Enable encryption */
|
|
39
|
-
encryption: boolean;
|
|
40
|
-
/** Encryption key (if encryption enabled) */
|
|
41
|
-
encryptionKey?: string;
|
|
42
|
-
/** Game version for save compatibility */
|
|
43
|
-
gameVersion: string;
|
|
44
|
-
/** Minimum compatible version */
|
|
45
|
-
minCompatibleVersion: string;
|
|
46
|
-
/** Storage adapter to use */
|
|
47
|
-
storageAdapter: 'localStorage' | 'indexedDB' | 'fileSystem' | 'memory' | 'custom';
|
|
48
|
-
/** Custom storage adapter implementation */
|
|
49
|
-
customStorage?: StorageAdapter;
|
|
50
|
-
/** Cloud save provider */
|
|
51
|
-
cloudProvider?: 'steam' | 'gog' | 'epic' | 'custom' | null;
|
|
52
|
-
/** Cloud save adapter */
|
|
53
|
-
cloudAdapter?: CloudSaveAdapter;
|
|
54
|
-
/** Enable save validation */
|
|
55
|
-
validateOnLoad: boolean;
|
|
56
|
-
/** Enable checksum verification */
|
|
57
|
-
checksumVerification: boolean;
|
|
58
|
-
/** Prefix for storage keys */
|
|
59
|
-
storagePrefix: string;
|
|
60
|
-
}
|
|
61
|
-
export declare const DEFAULT_SAVE_CONFIG: SaveSystemConfig;
|
|
62
|
-
export type SaveEventType = 'save-start' | 'save-complete' | 'save-error' | 'load-start' | 'load-complete' | 'load-error' | 'auto-save' | 'delete' | 'cloud-sync-start' | 'cloud-sync-complete' | 'cloud-sync-error' | 'migration-start' | 'migration-complete' | 'checkpoint-created';
|
|
63
|
-
export interface SaveEvent {
|
|
64
|
-
type: SaveEventType;
|
|
65
|
-
slotId?: SaveSlotId;
|
|
66
|
-
timestamp: number;
|
|
67
|
-
data?: unknown;
|
|
68
|
-
error?: Error;
|
|
69
|
-
}
|
|
70
|
-
export type SaveEventCallback = (event: SaveEvent) => void;
|
|
71
|
-
export interface StorageAdapter {
|
|
72
|
-
save(key: string, data: string): Promise<void>;
|
|
73
|
-
load(key: string): Promise<string | null>;
|
|
74
|
-
delete(key: string): Promise<void>;
|
|
75
|
-
list(): Promise<string[]>;
|
|
76
|
-
exists(key: string): Promise<boolean>;
|
|
77
|
-
clear(): Promise<void>;
|
|
78
|
-
}
|
|
79
|
-
export declare class LocalStorageAdapter implements StorageAdapter {
|
|
80
|
-
save(key: string, data: string): Promise<void>;
|
|
81
|
-
load(key: string): Promise<string | null>;
|
|
82
|
-
delete(key: string): Promise<void>;
|
|
83
|
-
list(): Promise<string[]>;
|
|
84
|
-
exists(key: string): Promise<boolean>;
|
|
85
|
-
clear(): Promise<void>;
|
|
86
|
-
}
|
|
87
|
-
export declare class MemoryStorageAdapter implements StorageAdapter {
|
|
88
|
-
private storage;
|
|
89
|
-
save(key: string, data: string): Promise<void>;
|
|
90
|
-
load(key: string): Promise<string | null>;
|
|
91
|
-
delete(key: string): Promise<void>;
|
|
92
|
-
list(): Promise<string[]>;
|
|
93
|
-
exists(key: string): Promise<boolean>;
|
|
94
|
-
clear(): Promise<void>;
|
|
95
|
-
}
|
|
96
|
-
export declare class IndexedDBAdapter implements StorageAdapter {
|
|
97
|
-
private dbName;
|
|
98
|
-
private storeName;
|
|
99
|
-
private db;
|
|
100
|
-
constructor(dbName?: string);
|
|
101
|
-
private getDB;
|
|
102
|
-
save(key: string, data: string): Promise<void>;
|
|
103
|
-
load(key: string): Promise<string | null>;
|
|
104
|
-
delete(key: string): Promise<void>;
|
|
105
|
-
list(): Promise<string[]>;
|
|
106
|
-
exists(key: string): Promise<boolean>;
|
|
107
|
-
clear(): Promise<void>;
|
|
108
|
-
}
|
|
109
|
-
export interface CloudSaveAdapter {
|
|
110
|
-
isAvailable(): Promise<boolean>;
|
|
111
|
-
upload(key: string, data: string): Promise<void>;
|
|
112
|
-
download(key: string): Promise<string | null>;
|
|
113
|
-
delete(key: string): Promise<void>;
|
|
114
|
-
list(): Promise<string[]>;
|
|
115
|
-
getLastSyncTime(): Promise<number | null>;
|
|
116
|
-
resolveConflict(localData: SaveData, cloudData: SaveData): Promise<'local' | 'cloud'>;
|
|
117
|
-
}
|
|
118
|
-
export interface SaveMigration {
|
|
119
|
-
fromVersion: string;
|
|
120
|
-
toVersion: string;
|
|
121
|
-
migrate: (data: Record<string, unknown>) => Record<string, unknown>;
|
|
122
|
-
}
|
|
123
|
-
export interface Checkpoint {
|
|
124
|
-
id: string;
|
|
125
|
-
name: string;
|
|
126
|
-
state: Record<string, unknown>;
|
|
127
|
-
timestamp: number;
|
|
128
|
-
level?: string;
|
|
129
|
-
position?: {
|
|
130
|
-
x: number;
|
|
131
|
-
y: number;
|
|
132
|
-
z?: number;
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
export declare class NiceSaveSystem<TGameState extends Record<string, unknown> = Record<string, unknown>> {
|
|
136
|
-
private config;
|
|
137
|
-
private storage;
|
|
138
|
-
private cloud?;
|
|
139
|
-
private eventListeners;
|
|
140
|
-
private autoSaveTimer;
|
|
141
|
-
private migrations;
|
|
142
|
-
private checkpoints;
|
|
143
|
-
private maxCheckpoints;
|
|
144
|
-
private currentPlayTime;
|
|
145
|
-
private playTimeStart;
|
|
146
|
-
constructor(config?: Partial<SaveSystemConfig>);
|
|
147
|
-
on(event: SaveEventType, callback: SaveEventCallback): () => void;
|
|
148
|
-
private emit;
|
|
149
|
-
startPlayTimeTracking(): void;
|
|
150
|
-
stopPlayTimeTracking(): void;
|
|
151
|
-
getPlayTime(): number;
|
|
152
|
-
setPlayTime(seconds: number): void;
|
|
153
|
-
private getKey;
|
|
154
|
-
private getMetadataKey;
|
|
155
|
-
save(slotId: SaveSlotId, gameState: TGameState, options?: {
|
|
156
|
-
name?: string;
|
|
157
|
-
description?: string;
|
|
158
|
-
thumbnail?: string;
|
|
159
|
-
tags?: string[];
|
|
160
|
-
customData?: Record<string, unknown>;
|
|
161
|
-
}): Promise<SaveMetadata>;
|
|
162
|
-
load(slotId: SaveSlotId): Promise<SaveData<TGameState> | null>;
|
|
163
|
-
delete(slotId: SaveSlotId): Promise<void>;
|
|
164
|
-
exists(slotId: SaveSlotId): Promise<boolean>;
|
|
165
|
-
getMetadata(slotId: SaveSlotId): Promise<SaveMetadata | null>;
|
|
166
|
-
listSaves(): Promise<SaveMetadata[]>;
|
|
167
|
-
getSlotCount(): Promise<number>;
|
|
168
|
-
quickSave(gameState: TGameState, slot?: number): Promise<SaveMetadata>;
|
|
169
|
-
quickLoad(slot?: number): Promise<SaveData<TGameState> | null>;
|
|
170
|
-
startAutoSave(getGameState?: () => TGameState): void;
|
|
171
|
-
stopAutoSave(): void;
|
|
172
|
-
getLatestAutoSave(): Promise<SaveData<TGameState> | null>;
|
|
173
|
-
createCheckpoint(name: string, state: Record<string, unknown>, options?: {
|
|
174
|
-
level?: string;
|
|
175
|
-
position?: {
|
|
176
|
-
x: number;
|
|
177
|
-
y: number;
|
|
178
|
-
z?: number;
|
|
179
|
-
};
|
|
180
|
-
}): Checkpoint;
|
|
181
|
-
getCheckpoints(): Checkpoint[];
|
|
182
|
-
getLatestCheckpoint(): Checkpoint | null;
|
|
183
|
-
loadCheckpoint(id: string): Checkpoint | null;
|
|
184
|
-
clearCheckpoints(): void;
|
|
185
|
-
registerMigration(migration: SaveMigration): void;
|
|
186
|
-
private applyMigrations;
|
|
187
|
-
syncToCloud(slotId: SaveSlotId): Promise<void>;
|
|
188
|
-
syncFromCloud(slotId: SaveSlotId): Promise<void>;
|
|
189
|
-
exportSave(slotId: SaveSlotId): Promise<string>;
|
|
190
|
-
importSave(slotId: SaveSlotId, data: string): Promise<SaveMetadata>;
|
|
191
|
-
clearAllSaves(): Promise<void>;
|
|
192
|
-
destroy(): void;
|
|
193
|
-
}
|
|
194
|
-
export declare function createSaveSystem<T extends Record<string, unknown>>(config?: Partial<SaveSystemConfig>): NiceSaveSystem<T>;
|