@nice2dev/game-engine 1.3.12 → 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 +8 -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,196 +0,0 @@
|
|
|
1
|
-
export type AchievementId = string;
|
|
2
|
-
export type CategoryId = string;
|
|
3
|
-
export interface Achievement {
|
|
4
|
-
id: AchievementId;
|
|
5
|
-
name: string;
|
|
6
|
-
description: string;
|
|
7
|
-
icon: string;
|
|
8
|
-
category: CategoryId;
|
|
9
|
-
rarity: AchievementRarity;
|
|
10
|
-
points: number;
|
|
11
|
-
isHidden: boolean;
|
|
12
|
-
isSecret: boolean;
|
|
13
|
-
prerequisites?: AchievementId[];
|
|
14
|
-
rewards?: AchievementReward[];
|
|
15
|
-
progress?: AchievementProgress;
|
|
16
|
-
}
|
|
17
|
-
export type AchievementRarity = 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary';
|
|
18
|
-
export interface AchievementProgress {
|
|
19
|
-
current: number;
|
|
20
|
-
target: number;
|
|
21
|
-
unit?: string;
|
|
22
|
-
milestones?: number[];
|
|
23
|
-
}
|
|
24
|
-
export interface AchievementReward {
|
|
25
|
-
type: 'currency' | 'item' | 'title' | 'badge' | 'unlock';
|
|
26
|
-
id: string;
|
|
27
|
-
amount?: number;
|
|
28
|
-
name?: string;
|
|
29
|
-
}
|
|
30
|
-
export interface AchievementCategory {
|
|
31
|
-
id: CategoryId;
|
|
32
|
-
name: string;
|
|
33
|
-
description?: string;
|
|
34
|
-
icon?: string;
|
|
35
|
-
order: number;
|
|
36
|
-
}
|
|
37
|
-
export interface AchievementUnlock {
|
|
38
|
-
achievementId: AchievementId;
|
|
39
|
-
unlockedAt: number;
|
|
40
|
-
progress?: number;
|
|
41
|
-
isNew: boolean;
|
|
42
|
-
}
|
|
43
|
-
export interface AchievementNotification {
|
|
44
|
-
id: string;
|
|
45
|
-
achievement: Achievement;
|
|
46
|
-
type: 'unlock' | 'progress' | 'milestone';
|
|
47
|
-
timestamp: number;
|
|
48
|
-
duration: number;
|
|
49
|
-
position: NotificationPosition;
|
|
50
|
-
state: NotificationState;
|
|
51
|
-
progress?: {
|
|
52
|
-
current: number;
|
|
53
|
-
target: number;
|
|
54
|
-
milestone?: number;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
export type NotificationPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
58
|
-
export type NotificationState = 'entering' | 'visible' | 'exiting' | 'removed';
|
|
59
|
-
export interface PanelState {
|
|
60
|
-
isOpen: boolean;
|
|
61
|
-
selectedCategory?: CategoryId;
|
|
62
|
-
selectedAchievement?: AchievementId;
|
|
63
|
-
filter: AchievementFilter;
|
|
64
|
-
sortBy: AchievementSort;
|
|
65
|
-
searchQuery: string;
|
|
66
|
-
}
|
|
67
|
-
export type AchievementFilter = 'all' | 'unlocked' | 'locked' | 'in-progress' | 'new';
|
|
68
|
-
export type AchievementSort = 'name' | 'rarity' | 'points' | 'unlock-date' | 'progress';
|
|
69
|
-
export interface AchievementStats {
|
|
70
|
-
totalAchievements: number;
|
|
71
|
-
unlockedCount: number;
|
|
72
|
-
totalPoints: number;
|
|
73
|
-
earnedPoints: number;
|
|
74
|
-
completionPercentage: number;
|
|
75
|
-
byRarity: Record<AchievementRarity, {
|
|
76
|
-
total: number;
|
|
77
|
-
unlocked: number;
|
|
78
|
-
}>;
|
|
79
|
-
byCategory: Record<CategoryId, {
|
|
80
|
-
total: number;
|
|
81
|
-
unlocked: number;
|
|
82
|
-
}>;
|
|
83
|
-
recentUnlocks: AchievementUnlock[];
|
|
84
|
-
rarest?: Achievement;
|
|
85
|
-
}
|
|
86
|
-
export interface AchievementRenderData {
|
|
87
|
-
achievement: Achievement;
|
|
88
|
-
isUnlocked: boolean;
|
|
89
|
-
unlockDate?: number;
|
|
90
|
-
isNew: boolean;
|
|
91
|
-
canUnlock: boolean;
|
|
92
|
-
progressPercent?: number;
|
|
93
|
-
rarityColor: string;
|
|
94
|
-
rarityLabel: string;
|
|
95
|
-
}
|
|
96
|
-
export type AchievementUIEventType = 'notification-shown' | 'notification-hidden' | 'notification-clicked' | 'panel-opened' | 'panel-closed' | 'category-selected' | 'achievement-selected' | 'achievement-hovered' | 'filter-changed' | 'sort-changed' | 'search-changed';
|
|
97
|
-
export interface AchievementUIEvent {
|
|
98
|
-
type: AchievementUIEventType;
|
|
99
|
-
timestamp: number;
|
|
100
|
-
data?: unknown;
|
|
101
|
-
}
|
|
102
|
-
export type AchievementUIEventCallback = (event: AchievementUIEvent) => void;
|
|
103
|
-
export interface AchievementUIConfig {
|
|
104
|
-
/** Default notification duration (seconds) */
|
|
105
|
-
notificationDuration: number;
|
|
106
|
-
/** Default notification position */
|
|
107
|
-
notificationPosition: NotificationPosition;
|
|
108
|
-
/** Max concurrent notifications */
|
|
109
|
-
maxNotifications: number;
|
|
110
|
-
/** Show progress notifications */
|
|
111
|
-
showProgressNotifications: boolean;
|
|
112
|
-
/** Progress notification threshold (%) */
|
|
113
|
-
progressThreshold: number;
|
|
114
|
-
/** Show milestone notifications */
|
|
115
|
-
showMilestones: boolean;
|
|
116
|
-
/** Enable sound effects */
|
|
117
|
-
enableSounds: boolean;
|
|
118
|
-
/** Animation durations (ms) */
|
|
119
|
-
animationEnter: number;
|
|
120
|
-
animationExit: number;
|
|
121
|
-
/** Rarity colors */
|
|
122
|
-
rarityColors: Record<AchievementRarity, string>;
|
|
123
|
-
/** Show points in notifications */
|
|
124
|
-
showPoints: boolean;
|
|
125
|
-
/** Group notifications */
|
|
126
|
-
groupNotifications: boolean;
|
|
127
|
-
/** Recent unlocks count */
|
|
128
|
-
recentUnlocksCount: number;
|
|
129
|
-
}
|
|
130
|
-
export declare const DEFAULT_ACHIEVEMENT_UI_CONFIG: AchievementUIConfig;
|
|
131
|
-
export type SoundCallback = (soundId: string) => void;
|
|
132
|
-
export declare class NiceAchievementUI {
|
|
133
|
-
private config;
|
|
134
|
-
private achievements;
|
|
135
|
-
private categories;
|
|
136
|
-
private unlocks;
|
|
137
|
-
private notifications;
|
|
138
|
-
private notificationQueue;
|
|
139
|
-
private panelState;
|
|
140
|
-
private soundCallback?;
|
|
141
|
-
private idCounter;
|
|
142
|
-
private eventListeners;
|
|
143
|
-
constructor(config?: Partial<AchievementUIConfig>);
|
|
144
|
-
on(event: AchievementUIEventType, callback: AchievementUIEventCallback): () => void;
|
|
145
|
-
private emit;
|
|
146
|
-
setSoundCallback(callback: SoundCallback): void;
|
|
147
|
-
private playSound;
|
|
148
|
-
registerAchievement(achievement: Achievement): void;
|
|
149
|
-
registerAchievements(achievements: Achievement[]): void;
|
|
150
|
-
registerCategory(category: AchievementCategory): void;
|
|
151
|
-
registerCategories(categories: AchievementCategory[]): void;
|
|
152
|
-
getAchievement(id: AchievementId): Achievement | undefined;
|
|
153
|
-
getAllAchievements(): Achievement[];
|
|
154
|
-
getAchievementsByCategory(categoryId: CategoryId): Achievement[];
|
|
155
|
-
getCategories(): AchievementCategory[];
|
|
156
|
-
setUnlocked(achievementId: AchievementId, options?: {
|
|
157
|
-
timestamp?: number;
|
|
158
|
-
showNotification?: boolean;
|
|
159
|
-
}): void;
|
|
160
|
-
setProgress(achievementId: AchievementId, current: number, options?: {
|
|
161
|
-
showNotification?: boolean;
|
|
162
|
-
}): void;
|
|
163
|
-
isUnlocked(achievementId: AchievementId): boolean;
|
|
164
|
-
getUnlock(achievementId: AchievementId): AchievementUnlock | undefined;
|
|
165
|
-
markAsSeen(achievementId: AchievementId): void;
|
|
166
|
-
markAllAsSeen(): void;
|
|
167
|
-
getNewUnlocks(): AchievementUnlock[];
|
|
168
|
-
private queueNotification;
|
|
169
|
-
private processNotificationQueue;
|
|
170
|
-
private showNotification;
|
|
171
|
-
private hideNotification;
|
|
172
|
-
dismissNotification(notificationId: string): void;
|
|
173
|
-
dismissAllNotifications(): void;
|
|
174
|
-
getActiveNotifications(): AchievementNotification[];
|
|
175
|
-
openPanel(): void;
|
|
176
|
-
closePanel(): void;
|
|
177
|
-
togglePanel(): void;
|
|
178
|
-
isPanelOpen(): boolean;
|
|
179
|
-
selectCategory(categoryId: CategoryId | undefined): void;
|
|
180
|
-
selectAchievement(achievementId: AchievementId | undefined): void;
|
|
181
|
-
hoverAchievement(achievementId: AchievementId | undefined): void;
|
|
182
|
-
setFilter(filter: AchievementFilter): void;
|
|
183
|
-
setSort(sortBy: AchievementSort): void;
|
|
184
|
-
setSearchQuery(query: string): void;
|
|
185
|
-
getPanelState(): PanelState;
|
|
186
|
-
getFilteredAchievements(): AchievementRenderData[];
|
|
187
|
-
private sortAchievements;
|
|
188
|
-
getAchievementRenderData(achievement: Achievement): AchievementRenderData;
|
|
189
|
-
getStatistics(): AchievementStats;
|
|
190
|
-
exportUnlocks(): AchievementUnlock[];
|
|
191
|
-
importUnlocks(unlocks: AchievementUnlock[]): void;
|
|
192
|
-
save(storageKey?: string): void;
|
|
193
|
-
load(storageKey?: string): void;
|
|
194
|
-
destroy(): void;
|
|
195
|
-
}
|
|
196
|
-
export declare function createAchievementUISystem(config?: Partial<AchievementUIConfig>): NiceAchievementUI;
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
export type AchievementId = string;
|
|
2
|
-
export type StatId = string;
|
|
3
|
-
export type LeaderboardId = string;
|
|
4
|
-
export type AchievementRarity = 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary';
|
|
5
|
-
export type AchievementCategory = string;
|
|
6
|
-
export interface AchievementDefinition {
|
|
7
|
-
id: AchievementId;
|
|
8
|
-
name: string;
|
|
9
|
-
description: string;
|
|
10
|
-
icon: string;
|
|
11
|
-
iconLocked?: string;
|
|
12
|
-
category: AchievementCategory;
|
|
13
|
-
rarity: AchievementRarity;
|
|
14
|
-
points: number;
|
|
15
|
-
secret: boolean;
|
|
16
|
-
/** Conditions to unlock */
|
|
17
|
-
conditions: AchievementCondition[];
|
|
18
|
-
/** Conditions must all be met, or any */
|
|
19
|
-
conditionMode: 'all' | 'any';
|
|
20
|
-
/** Rewards given when unlocked */
|
|
21
|
-
rewards?: AchievementReward[];
|
|
22
|
-
/** Platform-specific IDs */
|
|
23
|
-
platformIds?: {
|
|
24
|
-
steam?: string;
|
|
25
|
-
xbox?: string;
|
|
26
|
-
playstation?: string;
|
|
27
|
-
gog?: string;
|
|
28
|
-
};
|
|
29
|
-
/** Order for display */
|
|
30
|
-
sortOrder?: number;
|
|
31
|
-
/** Tags for filtering */
|
|
32
|
-
tags?: string[];
|
|
33
|
-
/** Dependent achievements (must be unlocked first) */
|
|
34
|
-
prerequisites?: AchievementId[];
|
|
35
|
-
}
|
|
36
|
-
export interface AchievementCondition {
|
|
37
|
-
type: 'stat' | 'event' | 'custom';
|
|
38
|
-
/** For stat conditions */
|
|
39
|
-
statId?: StatId;
|
|
40
|
-
comparator?: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'between';
|
|
41
|
-
value?: number;
|
|
42
|
-
valueMax?: number;
|
|
43
|
-
/** For event conditions */
|
|
44
|
-
eventName?: string;
|
|
45
|
-
eventCount?: number;
|
|
46
|
-
/** For custom conditions */
|
|
47
|
-
customCheck?: () => boolean;
|
|
48
|
-
}
|
|
49
|
-
export interface AchievementReward {
|
|
50
|
-
type: 'currency' | 'item' | 'title' | 'badge' | 'unlock' | 'custom';
|
|
51
|
-
id: string;
|
|
52
|
-
amount?: number;
|
|
53
|
-
data?: Record<string, unknown>;
|
|
54
|
-
}
|
|
55
|
-
export interface AchievementState {
|
|
56
|
-
id: AchievementId;
|
|
57
|
-
unlocked: boolean;
|
|
58
|
-
unlockedAt?: number;
|
|
59
|
-
progress: number;
|
|
60
|
-
notified: boolean;
|
|
61
|
-
syncedToPlatform: boolean;
|
|
62
|
-
}
|
|
63
|
-
export interface UnlockNotification {
|
|
64
|
-
achievement: AchievementDefinition;
|
|
65
|
-
state: AchievementState;
|
|
66
|
-
timestamp: number;
|
|
67
|
-
}
|
|
68
|
-
export interface StatDefinition {
|
|
69
|
-
id: StatId;
|
|
70
|
-
name: string;
|
|
71
|
-
description?: string;
|
|
72
|
-
type: 'int' | 'float' | 'max' | 'min' | 'set';
|
|
73
|
-
defaultValue: number;
|
|
74
|
-
min?: number;
|
|
75
|
-
max?: number;
|
|
76
|
-
increment?: number;
|
|
77
|
-
aggregation?: 'sum' | 'max' | 'min' | 'last' | 'count';
|
|
78
|
-
displayFormat?: string;
|
|
79
|
-
hidden?: boolean;
|
|
80
|
-
platformIds?: {
|
|
81
|
-
steam?: string;
|
|
82
|
-
xbox?: string;
|
|
83
|
-
playstation?: string;
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
export interface StatState {
|
|
87
|
-
id: StatId;
|
|
88
|
-
value: number;
|
|
89
|
-
lastUpdated: number;
|
|
90
|
-
history?: {
|
|
91
|
-
value: number;
|
|
92
|
-
timestamp: number;
|
|
93
|
-
}[];
|
|
94
|
-
}
|
|
95
|
-
export interface LeaderboardDefinition {
|
|
96
|
-
id: LeaderboardId;
|
|
97
|
-
name: string;
|
|
98
|
-
description?: string;
|
|
99
|
-
sortOrder: 'ascending' | 'descending';
|
|
100
|
-
displayType: 'numeric' | 'time' | 'money';
|
|
101
|
-
updateType: 'keep-best' | 'force-update';
|
|
102
|
-
platformIds?: {
|
|
103
|
-
steam?: string;
|
|
104
|
-
xbox?: string;
|
|
105
|
-
playstation?: string;
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
export interface LeaderboardEntry {
|
|
109
|
-
rank: number;
|
|
110
|
-
playerId: string;
|
|
111
|
-
playerName: string;
|
|
112
|
-
score: number;
|
|
113
|
-
timestamp: number;
|
|
114
|
-
details?: Record<string, unknown>;
|
|
115
|
-
}
|
|
116
|
-
export interface LeaderboardState {
|
|
117
|
-
id: LeaderboardId;
|
|
118
|
-
playerRank?: number;
|
|
119
|
-
playerScore?: number;
|
|
120
|
-
entries: LeaderboardEntry[];
|
|
121
|
-
lastFetched: number;
|
|
122
|
-
}
|
|
123
|
-
export type AchievementEventType = 'achievement-unlocked' | 'achievement-progress' | 'stat-updated' | 'leaderboard-updated' | 'reward-granted';
|
|
124
|
-
export interface AchievementEvent {
|
|
125
|
-
type: AchievementEventType;
|
|
126
|
-
timestamp: number;
|
|
127
|
-
data: unknown;
|
|
128
|
-
}
|
|
129
|
-
export type AchievementEventCallback = (event: AchievementEvent) => void;
|
|
130
|
-
export interface PlatformAchievementAdapter {
|
|
131
|
-
isAvailable(): Promise<boolean>;
|
|
132
|
-
unlockAchievement(platformId: string): Promise<boolean>;
|
|
133
|
-
setAchievementProgress(platformId: string, progress: number): Promise<boolean>;
|
|
134
|
-
setStat(platformId: string, value: number): Promise<boolean>;
|
|
135
|
-
getStat(platformId: string): Promise<number | null>;
|
|
136
|
-
submitLeaderboardScore(platformId: string, score: number, details?: Record<string, unknown>): Promise<boolean>;
|
|
137
|
-
getLeaderboard(platformId: string, start: number, count: number): Promise<LeaderboardEntry[]>;
|
|
138
|
-
getPlayerRank(platformId: string): Promise<number | null>;
|
|
139
|
-
}
|
|
140
|
-
export interface AchievementSystemConfig {
|
|
141
|
-
/** Auto-save achievement state */
|
|
142
|
-
autoSave: boolean;
|
|
143
|
-
/** Auto-save interval in seconds */
|
|
144
|
-
autoSaveInterval: number;
|
|
145
|
-
/** Show unlock notifications */
|
|
146
|
-
showNotifications: boolean;
|
|
147
|
-
/** Notification duration in ms */
|
|
148
|
-
notificationDuration: number;
|
|
149
|
-
/** Sync with platform services */
|
|
150
|
-
syncWithPlatform: boolean;
|
|
151
|
-
/** Platform adapter */
|
|
152
|
-
platformAdapter?: PlatformAchievementAdapter;
|
|
153
|
-
/** Storage key for persistence */
|
|
154
|
-
storageKey: string;
|
|
155
|
-
/** Keep stat history */
|
|
156
|
-
trackStatHistory: boolean;
|
|
157
|
-
/** Max history entries per stat */
|
|
158
|
-
maxStatHistory: number;
|
|
159
|
-
}
|
|
160
|
-
export declare const DEFAULT_ACHIEVEMENT_CONFIG: AchievementSystemConfig;
|
|
161
|
-
export declare class NiceAchievements {
|
|
162
|
-
private config;
|
|
163
|
-
private achievements;
|
|
164
|
-
private achievementStates;
|
|
165
|
-
private stats;
|
|
166
|
-
private statStates;
|
|
167
|
-
private leaderboards;
|
|
168
|
-
private leaderboardStates;
|
|
169
|
-
private eventListeners;
|
|
170
|
-
private pendingNotifications;
|
|
171
|
-
private autoSaveTimer;
|
|
172
|
-
constructor(config?: Partial<AchievementSystemConfig>);
|
|
173
|
-
on(event: AchievementEventType, callback: AchievementEventCallback): () => void;
|
|
174
|
-
private emit;
|
|
175
|
-
registerAchievement(definition: AchievementDefinition): void;
|
|
176
|
-
registerAchievements(definitions: AchievementDefinition[]): void;
|
|
177
|
-
getAchievement(id: AchievementId): AchievementDefinition | undefined;
|
|
178
|
-
getAllAchievements(): AchievementDefinition[];
|
|
179
|
-
getAchievementsByCategory(category: AchievementCategory): AchievementDefinition[];
|
|
180
|
-
getCategories(): AchievementCategory[];
|
|
181
|
-
getAchievementState(id: AchievementId): AchievementState | undefined;
|
|
182
|
-
isUnlocked(id: AchievementId): boolean;
|
|
183
|
-
getProgress(id: AchievementId): number;
|
|
184
|
-
getUnlockedCount(): number;
|
|
185
|
-
getTotalPoints(): number;
|
|
186
|
-
getCompletionPercentage(): number;
|
|
187
|
-
unlock(id: AchievementId, options?: {
|
|
188
|
-
silent?: boolean;
|
|
189
|
-
}): boolean;
|
|
190
|
-
setProgress(id: AchievementId, progress: number): void;
|
|
191
|
-
incrementProgress(id: AchievementId, amount: number): void;
|
|
192
|
-
checkConditions(id: AchievementId): boolean;
|
|
193
|
-
private checkStatCondition;
|
|
194
|
-
private syncAchievementToPlatform;
|
|
195
|
-
registerStat(definition: StatDefinition): void;
|
|
196
|
-
registerStats(definitions: StatDefinition[]): void;
|
|
197
|
-
getStat(id: StatId): number;
|
|
198
|
-
getStatState(id: StatId): StatState | undefined;
|
|
199
|
-
setStat(id: StatId, value: number): void;
|
|
200
|
-
incrementStat(id: StatId, amount?: number): void;
|
|
201
|
-
decrementStat(id: StatId, amount?: number): void;
|
|
202
|
-
private checkAchievementsForStat;
|
|
203
|
-
getAllStats(): StatState[];
|
|
204
|
-
registerLeaderboard(definition: LeaderboardDefinition): void;
|
|
205
|
-
submitScore(id: LeaderboardId, score: number, details?: Record<string, unknown>): Promise<boolean>;
|
|
206
|
-
fetchLeaderboard(id: LeaderboardId, start?: number, count?: number): Promise<LeaderboardEntry[]>;
|
|
207
|
-
getLeaderboardState(id: LeaderboardId): LeaderboardState | undefined;
|
|
208
|
-
getPendingNotifications(): UnlockNotification[];
|
|
209
|
-
clearNotification(timestamp: number): void;
|
|
210
|
-
clearAllNotifications(): void;
|
|
211
|
-
save(): string;
|
|
212
|
-
load(data: string): void;
|
|
213
|
-
saveToStorage(): void;
|
|
214
|
-
loadFromStorage(): boolean;
|
|
215
|
-
private startAutoSave;
|
|
216
|
-
resetAchievement(id: AchievementId): void;
|
|
217
|
-
resetAllAchievements(): void;
|
|
218
|
-
resetStat(id: StatId): void;
|
|
219
|
-
resetAllStats(): void;
|
|
220
|
-
resetAll(): void;
|
|
221
|
-
destroy(): void;
|
|
222
|
-
}
|
|
223
|
-
export declare function createAchievementSystem(config?: Partial<AchievementSystemConfig>): NiceAchievements;
|
|
224
|
-
export declare function createProgressAchievement(id: AchievementId, name: string, description: string, statId: StatId, targetValue: number, options?: Partial<AchievementDefinition>): AchievementDefinition;
|
|
225
|
-
export declare function createTieredAchievements(baseId: string, baseName: string, description: string, statId: StatId, tiers: {
|
|
226
|
-
name: string;
|
|
227
|
-
value: number;
|
|
228
|
-
points: number;
|
|
229
|
-
rarity: AchievementRarity;
|
|
230
|
-
}[], options?: Partial<AchievementDefinition>): AchievementDefinition[];
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
export type ActionId = string;
|
|
3
|
-
export type ActionType = string;
|
|
4
|
-
export type ActorId = string;
|
|
5
|
-
export interface ActionDefinition<TParams extends Record<string, unknown> = Record<string, unknown>> {
|
|
6
|
-
type: ActionType;
|
|
7
|
-
name: string;
|
|
8
|
-
duration?: number;
|
|
9
|
-
cooldown?: number;
|
|
10
|
-
priority?: number;
|
|
11
|
-
interruptible?: boolean;
|
|
12
|
-
tags?: string[];
|
|
13
|
-
condition?: (actor: ActorId, params: TParams) => boolean;
|
|
14
|
-
execute: (actor: ActorId, params: TParams, progress: number) => void;
|
|
15
|
-
onStart?: (actor: ActorId, params: TParams) => void;
|
|
16
|
-
onComplete?: (actor: ActorId, params: TParams) => void;
|
|
17
|
-
onCancel?: (actor: ActorId, params: TParams) => void;
|
|
18
|
-
}
|
|
19
|
-
export interface ActionInstance<TParams extends Record<string, unknown> = Record<string, unknown>> {
|
|
20
|
-
id: ActionId;
|
|
21
|
-
type: ActionType;
|
|
22
|
-
actorId: ActorId;
|
|
23
|
-
params: TParams;
|
|
24
|
-
state: ActionState;
|
|
25
|
-
priority: number;
|
|
26
|
-
startTime: number;
|
|
27
|
-
progress: number;
|
|
28
|
-
queuedAt: number;
|
|
29
|
-
}
|
|
30
|
-
export type ActionState = 'queued' | 'running' | 'completed' | 'cancelled' | 'failed';
|
|
31
|
-
export interface ActorActionState {
|
|
32
|
-
currentAction?: ActionInstance;
|
|
33
|
-
queue: ActionInstance[];
|
|
34
|
-
cooldowns: Map<ActionType, number>;
|
|
35
|
-
blocked: boolean;
|
|
36
|
-
}
|
|
37
|
-
export type ActionEventType = 'action-queued' | 'action-started' | 'action-progress' | 'action-completed' | 'action-cancelled' | 'action-failed' | 'cooldown-started' | 'cooldown-ended';
|
|
38
|
-
export interface ActionEvent {
|
|
39
|
-
type: ActionEventType;
|
|
40
|
-
actionId?: ActionId;
|
|
41
|
-
actorId?: ActorId;
|
|
42
|
-
actionType?: ActionType;
|
|
43
|
-
progress?: number;
|
|
44
|
-
cooldown?: number;
|
|
45
|
-
}
|
|
46
|
-
export interface ActionSystemConfig {
|
|
47
|
-
maxQueueSize?: number;
|
|
48
|
-
defaultPriority?: number;
|
|
49
|
-
allowInterrupts?: boolean;
|
|
50
|
-
}
|
|
51
|
-
export declare const DEFAULT_ACTION_CONFIG: ActionSystemConfig;
|
|
52
|
-
export declare class NiceAction extends EventEmitter {
|
|
53
|
-
private definitions;
|
|
54
|
-
private actors;
|
|
55
|
-
private nextId;
|
|
56
|
-
private config;
|
|
57
|
-
constructor(config?: Partial<ActionSystemConfig>);
|
|
58
|
-
register<TParams extends Record<string, unknown> = Record<string, unknown>>(definition: ActionDefinition<TParams>): void;
|
|
59
|
-
unregister(type: ActionType): boolean;
|
|
60
|
-
hasAction(type: ActionType): boolean;
|
|
61
|
-
registerActor(actorId: ActorId): void;
|
|
62
|
-
unregisterActor(actorId: ActorId): void;
|
|
63
|
-
private getOrCreateActor;
|
|
64
|
-
queue<TParams extends Record<string, unknown> = Record<string, unknown>>(actorId: ActorId, actionType: ActionType, params?: TParams): ActionId | null;
|
|
65
|
-
execute<TParams extends Record<string, unknown> = Record<string, unknown>>(actorId: ActorId, actionType: ActionType, params?: TParams): ActionId | null;
|
|
66
|
-
cancel(actionId: ActionId): boolean;
|
|
67
|
-
cancelAll(actorId: ActorId): void;
|
|
68
|
-
update(_deltaTime: number): void;
|
|
69
|
-
private completeAction;
|
|
70
|
-
getCurrentAction(actorId: ActorId): ActionInstance | undefined;
|
|
71
|
-
getQueue(actorId: ActorId): ActionInstance[];
|
|
72
|
-
getCooldown(actorId: ActorId, actionType: ActionType): number;
|
|
73
|
-
isOnCooldown(actorId: ActorId, actionType: ActionType): boolean;
|
|
74
|
-
canExecute(actorId: ActorId, actionType: ActionType): boolean;
|
|
75
|
-
block(actorId: ActorId): void;
|
|
76
|
-
unblock(actorId: ActorId): void;
|
|
77
|
-
isBlocked(actorId: ActorId): boolean;
|
|
78
|
-
}
|
|
79
|
-
export declare function createActionSystem(config?: Partial<ActionSystemConfig>): NiceAction;
|
|
80
|
-
export declare function defineAction<TParams extends Record<string, unknown> = Record<string, unknown>>(type: ActionType, name: string, options: Omit<ActionDefinition<TParams>, 'type' | 'name'>): ActionDefinition<TParams>;
|
|
81
|
-
export default NiceAction;
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
export type ReagentId = string;
|
|
2
|
-
export type PotionId = string;
|
|
3
|
-
export type RecipeId = string;
|
|
4
|
-
export type PotionType = 'health' | 'mana' | 'stamina' | 'buff' | 'resist' | 'elixir' | 'oil' | 'poison' | 'transmute';
|
|
5
|
-
export interface ReagentDefinition {
|
|
6
|
-
id: ReagentId;
|
|
7
|
-
name: string;
|
|
8
|
-
description?: string;
|
|
9
|
-
rarity: 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary';
|
|
10
|
-
tier: number;
|
|
11
|
-
properties: ReagentProperty[];
|
|
12
|
-
sources: string[];
|
|
13
|
-
gatherTime?: number;
|
|
14
|
-
icon: string;
|
|
15
|
-
color?: string;
|
|
16
|
-
sellValue: number;
|
|
17
|
-
stackSize: number;
|
|
18
|
-
}
|
|
19
|
-
export interface ReagentProperty {
|
|
20
|
-
id: string;
|
|
21
|
-
name: string;
|
|
22
|
-
type: 'positive' | 'negative' | 'neutral';
|
|
23
|
-
hidden: boolean;
|
|
24
|
-
discoveryDifficulty: number;
|
|
25
|
-
effect: PotionEffect;
|
|
26
|
-
}
|
|
27
|
-
export interface PotionDefinition {
|
|
28
|
-
id: PotionId;
|
|
29
|
-
name: string;
|
|
30
|
-
description: string;
|
|
31
|
-
type: PotionType;
|
|
32
|
-
quality: 'crude' | 'common' | 'good' | 'excellent' | 'masterwork';
|
|
33
|
-
tier: number;
|
|
34
|
-
effects: PotionEffect[];
|
|
35
|
-
duration: number;
|
|
36
|
-
cooldown: number;
|
|
37
|
-
charges: number;
|
|
38
|
-
consumable: boolean;
|
|
39
|
-
icon: string;
|
|
40
|
-
color: string;
|
|
41
|
-
vfx?: string;
|
|
42
|
-
sellValue: number;
|
|
43
|
-
}
|
|
44
|
-
export interface PotionEffect {
|
|
45
|
-
type: 'heal' | 'restore_mana' | 'restore_stamina' | 'buff' | 'debuff' | 'resist' | 'damage' | 'transform' | 'custom';
|
|
46
|
-
value: number;
|
|
47
|
-
isPercentage: boolean;
|
|
48
|
-
stat?: string;
|
|
49
|
-
buffId?: string;
|
|
50
|
-
duration?: number;
|
|
51
|
-
damageType?: string;
|
|
52
|
-
effectData?: Record<string, unknown>;
|
|
53
|
-
}
|
|
54
|
-
export interface AlchemyRecipe {
|
|
55
|
-
id: RecipeId;
|
|
56
|
-
name: string;
|
|
57
|
-
description?: string;
|
|
58
|
-
resultPotion: PotionId;
|
|
59
|
-
resultCount: number;
|
|
60
|
-
reagents: Record<ReagentId, number>;
|
|
61
|
-
catalyst?: ReagentId;
|
|
62
|
-
alchemyLevelRequired: number;
|
|
63
|
-
discoverable: boolean;
|
|
64
|
-
craftTime: number;
|
|
65
|
-
successRate: number;
|
|
66
|
-
failureResult?: PotionId;
|
|
67
|
-
xpGain: number;
|
|
68
|
-
}
|
|
69
|
-
export interface TransmuteRecipe {
|
|
70
|
-
id: RecipeId;
|
|
71
|
-
name: string;
|
|
72
|
-
inputItems: Record<string, number>;
|
|
73
|
-
outputItem: string;
|
|
74
|
-
outputCount: number;
|
|
75
|
-
alchemyLevelRequired: number;
|
|
76
|
-
xpGain: number;
|
|
77
|
-
}
|
|
78
|
-
export interface PlayerAlchemyData {
|
|
79
|
-
playerId: string;
|
|
80
|
-
reagents: Map<ReagentId, number>;
|
|
81
|
-
potions: Map<PotionId, number>;
|
|
82
|
-
knownRecipes: Set<RecipeId>;
|
|
83
|
-
discoveredProperties: Map<ReagentId, Set<string>>;
|
|
84
|
-
alchemyLevel: number;
|
|
85
|
-
alchemyXP: number;
|
|
86
|
-
activePotionEffects: ActivePotionEffect[];
|
|
87
|
-
potionCooldowns: Map<PotionId, number>;
|
|
88
|
-
potionsCrafted: number;
|
|
89
|
-
potionsUsed: number;
|
|
90
|
-
reagentsGathered: number;
|
|
91
|
-
transmutationsPerformed: number;
|
|
92
|
-
failedCrafts: number;
|
|
93
|
-
}
|
|
94
|
-
export interface ActivePotionEffect {
|
|
95
|
-
potionId: PotionId;
|
|
96
|
-
effects: PotionEffect[];
|
|
97
|
-
appliedAt: number;
|
|
98
|
-
expiresAt: number;
|
|
99
|
-
stacks: number;
|
|
100
|
-
}
|
|
101
|
-
export interface CraftResult {
|
|
102
|
-
success: boolean;
|
|
103
|
-
potionId?: PotionId;
|
|
104
|
-
count: number;
|
|
105
|
-
quality?: string;
|
|
106
|
-
xpGained: number;
|
|
107
|
-
bonusPotion?: PotionId;
|
|
108
|
-
}
|
|
109
|
-
export type AlchemyEventType = 'reagent-gathered' | 'property-discovered' | 'recipe-learned' | 'potion-crafted' | 'craft-failed' | 'potion-used' | 'effect-applied' | 'effect-expired' | 'transmute-success' | 'alchemy-level-up';
|
|
110
|
-
export interface AlchemyEvent {
|
|
111
|
-
type: AlchemyEventType;
|
|
112
|
-
timestamp: number;
|
|
113
|
-
data?: unknown;
|
|
114
|
-
}
|
|
115
|
-
export type AlchemyEventCallback = (event: AlchemyEvent) => void;
|
|
116
|
-
export interface AlchemyConfig {
|
|
117
|
-
maxReagentStacks: number;
|
|
118
|
-
maxPotionStacks: number;
|
|
119
|
-
maxActiveEffects: number;
|
|
120
|
-
xpPerLevel: number;
|
|
121
|
-
maxLevel: number;
|
|
122
|
-
qualitySuccessBonus: number;
|
|
123
|
-
storageKey: string;
|
|
124
|
-
}
|
|
125
|
-
export declare const DEFAULT_ALCHEMY_CONFIG: AlchemyConfig;
|
|
126
|
-
export declare class NiceAlchemy {
|
|
127
|
-
private config;
|
|
128
|
-
private reagents;
|
|
129
|
-
private potions;
|
|
130
|
-
private recipes;
|
|
131
|
-
private transmuteRecipes;
|
|
132
|
-
private players;
|
|
133
|
-
private eventListeners;
|
|
134
|
-
private updateInterval?;
|
|
135
|
-
constructor(config?: Partial<AlchemyConfig>);
|
|
136
|
-
on(event: AlchemyEventType, callback: AlchemyEventCallback): () => void;
|
|
137
|
-
private emit;
|
|
138
|
-
private startUpdateLoop;
|
|
139
|
-
private update;
|
|
140
|
-
registerReagent(reagent: ReagentDefinition): void;
|
|
141
|
-
registerPotion(potion: PotionDefinition): void;
|
|
142
|
-
registerRecipe(recipe: AlchemyRecipe): void;
|
|
143
|
-
registerTransmuteRecipe(recipe: TransmuteRecipe): void;
|
|
144
|
-
getPlayer(playerId: string): PlayerAlchemyData;
|
|
145
|
-
private createPlayerData;
|
|
146
|
-
addReagent(playerId: string, reagentId: ReagentId, count?: number): boolean;
|
|
147
|
-
removeReagent(playerId: string, reagentId: ReagentId, count?: number): boolean;
|
|
148
|
-
getReagentCount(playerId: string, reagentId: ReagentId): number;
|
|
149
|
-
discoverProperty(playerId: string, reagentId: ReagentId, propertyId: string): boolean;
|
|
150
|
-
isPropertyDiscovered(playerId: string, reagentId: ReagentId, propertyId: string): boolean;
|
|
151
|
-
getDiscoveredProperties(playerId: string, reagentId: ReagentId): ReagentProperty[];
|
|
152
|
-
learnRecipe(playerId: string, recipeId: RecipeId): boolean;
|
|
153
|
-
knowsRecipe(playerId: string, recipeId: RecipeId): boolean;
|
|
154
|
-
getKnownRecipes(playerId: string): AlchemyRecipe[];
|
|
155
|
-
canCraft(playerId: string, recipeId: RecipeId): boolean;
|
|
156
|
-
craft(playerId: string, recipeId: RecipeId): CraftResult;
|
|
157
|
-
canUsePotion(playerId: string, potionId: PotionId): boolean;
|
|
158
|
-
usePotion(playerId: string, potionId: PotionId): ActivePotionEffect | null;
|
|
159
|
-
getActiveEffects(playerId: string): ActivePotionEffect[];
|
|
160
|
-
hasActiveEffect(playerId: string, potionId: PotionId): boolean;
|
|
161
|
-
removeEffect(playerId: string, potionId: PotionId): boolean;
|
|
162
|
-
canTransmute(playerId: string, recipeId: RecipeId): boolean;
|
|
163
|
-
transmute(playerId: string, recipeId: RecipeId): {
|
|
164
|
-
success: boolean;
|
|
165
|
-
outputItem?: string;
|
|
166
|
-
outputCount: number;
|
|
167
|
-
xpGained: number;
|
|
168
|
-
};
|
|
169
|
-
addAlchemyXP(playerId: string, xp: number): void;
|
|
170
|
-
getXPForLevel(level: number): number;
|
|
171
|
-
getReagent(id: ReagentId): ReagentDefinition | undefined;
|
|
172
|
-
getAllReagents(): ReagentDefinition[];
|
|
173
|
-
getPotion(id: PotionId): PotionDefinition | undefined;
|
|
174
|
-
getAllPotions(): PotionDefinition[];
|
|
175
|
-
getRecipe(id: RecipeId): AlchemyRecipe | undefined;
|
|
176
|
-
getAllRecipes(): AlchemyRecipe[];
|
|
177
|
-
getPotionCount(playerId: string, potionId: PotionId): number;
|
|
178
|
-
getCooldownRemaining(playerId: string, potionId: PotionId): number;
|
|
179
|
-
getStats(playerId: string): {
|
|
180
|
-
level: number;
|
|
181
|
-
xp: number;
|
|
182
|
-
xpNeeded: number;
|
|
183
|
-
potionsCrafted: number;
|
|
184
|
-
potionsUsed: number;
|
|
185
|
-
reagentsGathered: number;
|
|
186
|
-
recipesKnown: number;
|
|
187
|
-
propertiesDiscovered: number;
|
|
188
|
-
successRate: number;
|
|
189
|
-
};
|
|
190
|
-
save(): void;
|
|
191
|
-
load(): void;
|
|
192
|
-
reset(): void;
|
|
193
|
-
destroy(): void;
|
|
194
|
-
}
|
|
195
|
-
export declare function createAlchemySystem(config?: Partial<AlchemyConfig>): NiceAlchemy;
|