@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.
Files changed (253) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/package.json +2 -2
  3. package/dist/types/accessibility/index.d.ts +0 -1
  4. package/dist/types/ai/index.d.ts +0 -1
  5. package/dist/types/animation/index.d.ts +0 -1
  6. package/dist/types/audio/HRTFAudio.d.ts +0 -180
  7. package/dist/types/audio/index.d.ts +0 -2
  8. package/dist/types/community/Community.d.ts +0 -112
  9. package/dist/types/community/index.d.ts +0 -1
  10. package/dist/types/core/TypeSafety.d.ts +0 -190
  11. package/dist/types/core/index.d.ts +0 -7
  12. package/dist/types/devtools/AssetStore.d.ts +0 -133
  13. package/dist/types/devtools/index.d.ts +0 -3
  14. package/dist/types/dialogue/index.d.ts +0 -2
  15. package/dist/types/docs/APIPlayground.d.ts +0 -26
  16. package/dist/types/docs/Cookbook.d.ts +0 -18
  17. package/dist/types/docs/Guides.d.ts +0 -18
  18. package/dist/types/docs/index.d.ts +0 -4
  19. package/dist/types/ecs/ECSOptimized.d.ts +0 -131
  20. package/dist/types/ecs/index.d.ts +0 -2
  21. package/dist/types/editor/NiceAnimationTimeline.d.ts +0 -114
  22. package/dist/types/editor/NiceLevelEditor.d.ts +0 -232
  23. package/dist/types/editor/NiceMaterialEditor.d.ts +0 -105
  24. package/dist/types/editor/NiceNodeGraph.d.ts +0 -87
  25. package/dist/types/editor/NiceParticleEditor.d.ts +0 -127
  26. package/dist/types/editor/behavior-tree/BTDebugPanel.d.ts +0 -102
  27. package/dist/types/editor/behavior-tree/BTEditorCanvas.d.ts +0 -79
  28. package/dist/types/editor/behavior-tree/BTEditorNode.d.ts +0 -58
  29. package/dist/types/editor/behavior-tree/BTEditorToolbar.d.ts +0 -75
  30. package/dist/types/editor/behavior-tree/BTNodePalette.d.ts +0 -72
  31. package/dist/types/editor/behavior-tree/BTPropertyPanel.d.ts +0 -66
  32. package/dist/types/editor/behavior-tree/BehaviorTreeEditor.d.ts +0 -186
  33. package/dist/types/editor/behavior-tree/index.d.ts +0 -14
  34. package/dist/types/editor/behavior-tree/serialization.d.ts +0 -30
  35. package/dist/types/editor/behavior-tree/types.d.ts +0 -299
  36. package/dist/types/editor/index.d.ts +0 -20
  37. package/dist/types/editor/state-machine/SMEditorCanvas.d.ts +0 -61
  38. package/dist/types/editor/state-machine/StateMachineEditor.d.ts +0 -139
  39. package/dist/types/editor/state-machine/index.d.ts +0 -11
  40. package/dist/types/editor/state-machine/serialization.d.ts +0 -23
  41. package/dist/types/editor/state-machine/types.d.ts +0 -241
  42. package/dist/types/engine/index.d.ts +0 -2
  43. package/dist/types/enterprise/index.d.ts +0 -1
  44. package/dist/types/epic/index.d.ts +0 -10
  45. package/dist/types/i18n/index.d.ts +0 -2
  46. package/dist/types/input/index.d.ts +0 -3
  47. package/dist/types/kids/index.d.ts +0 -2
  48. package/dist/types/legendary/index.d.ts +0 -57
  49. package/dist/types/monetization/index.d.ts +0 -1
  50. package/dist/types/multiplayer/NiceNetcode.d.ts +0 -434
  51. package/dist/types/multiplayer/index.d.ts +0 -5
  52. package/dist/types/network/index.d.ts +0 -2
  53. package/dist/types/pathfinding/index.d.ts +0 -1
  54. package/dist/types/performance/AssetCompression.d.ts +0 -137
  55. package/dist/types/performance/WASMModules.d.ts +0 -65
  56. package/dist/types/performance/WebGPUCompute.d.ts +0 -71
  57. package/dist/types/performance/index.d.ts +0 -1
  58. package/dist/types/physics/RapierIntegration.d.ts +0 -404
  59. package/dist/types/physics/index.d.ts +0 -2
  60. package/dist/types/plugins/index.d.ts +0 -2
  61. package/dist/types/procedural/index.d.ts +0 -2
  62. package/dist/types/release/index.d.ts +0 -1
  63. package/dist/types/rendering/WebGPUv2.d.ts +0 -173
  64. package/dist/types/rendering/index.d.ts +0 -3
  65. package/dist/types/runtime3d/index.d.ts +0 -2
  66. package/dist/types/scene/index.d.ts +0 -2
  67. package/dist/types/scripting/WasmCompiler.d.ts +0 -182
  68. package/dist/types/scripting/index.d.ts +0 -19
  69. package/dist/types/social/index.d.ts +0 -1
  70. package/dist/types/systems/NiceAI.d.ts +0 -637
  71. package/dist/types/systems/NiceAbility.d.ts +0 -225
  72. package/dist/types/systems/NiceAccessibility.d.ts +0 -230
  73. package/dist/types/systems/NiceAchievement.d.ts +0 -153
  74. package/dist/types/systems/NiceAchievementUI.d.ts +0 -196
  75. package/dist/types/systems/NiceAchievements.d.ts +0 -230
  76. package/dist/types/systems/NiceAction.d.ts +0 -81
  77. package/dist/types/systems/NiceAlchemy.d.ts +0 -195
  78. package/dist/types/systems/NiceAnalytics.d.ts +0 -493
  79. package/dist/types/systems/NiceAnimation.d.ts +0 -350
  80. package/dist/types/systems/NiceArena.d.ts +0 -215
  81. package/dist/types/systems/NiceAssetLoader.d.ts +0 -136
  82. package/dist/types/systems/NiceAuction.d.ts +0 -157
  83. package/dist/types/systems/NiceAudio.d.ts +0 -224
  84. package/dist/types/systems/NiceAugment.d.ts +0 -187
  85. package/dist/types/systems/NiceAura.d.ts +0 -193
  86. package/dist/types/systems/NiceBank.d.ts +0 -158
  87. package/dist/types/systems/NiceBattlePass.d.ts +0 -150
  88. package/dist/types/systems/NiceBehavior.d.ts +0 -160
  89. package/dist/types/systems/NiceBinding.d.ts +0 -96
  90. package/dist/types/systems/NiceBlacksmith.d.ts +0 -221
  91. package/dist/types/systems/NiceBuff.d.ts +0 -177
  92. package/dist/types/systems/NiceBuilding.d.ts +0 -207
  93. package/dist/types/systems/NiceBullet.d.ts +0 -167
  94. package/dist/types/systems/NiceCamera.d.ts +0 -252
  95. package/dist/types/systems/NiceCard.d.ts +0 -171
  96. package/dist/types/systems/NiceChat.d.ts +0 -148
  97. package/dist/types/systems/NiceCheat.d.ts +0 -375
  98. package/dist/types/systems/NiceClimbing.d.ts +0 -186
  99. package/dist/types/systems/NiceCloud.d.ts +0 -422
  100. package/dist/types/systems/NiceCollision.d.ts +0 -238
  101. package/dist/types/systems/NiceCombo.d.ts +0 -131
  102. package/dist/types/systems/NiceCommand.d.ts +0 -112
  103. package/dist/types/systems/NiceCompanion.d.ts +0 -182
  104. package/dist/types/systems/NiceController.d.ts +0 -144
  105. package/dist/types/systems/NiceCooking.d.ts +0 -193
  106. package/dist/types/systems/NiceCoroutine.d.ts +0 -101
  107. package/dist/types/systems/NiceCrafting.d.ts +0 -228
  108. package/dist/types/systems/NiceCutscene.d.ts +0 -437
  109. package/dist/types/systems/NiceDaily.d.ts +0 -133
  110. package/dist/types/systems/NiceDamage.d.ts +0 -271
  111. package/dist/types/systems/NiceDayNight.d.ts +0 -126
  112. package/dist/types/systems/NiceDebug.d.ts +0 -255
  113. package/dist/types/systems/NiceDestructible.d.ts +0 -150
  114. package/dist/types/systems/NiceDialogue.d.ts +0 -629
  115. package/dist/types/systems/NiceDungeon.d.ts +0 -202
  116. package/dist/types/systems/NiceECS.d.ts +0 -151
  117. package/dist/types/systems/NiceEnchant.d.ts +0 -148
  118. package/dist/types/systems/NiceEntityPool.d.ts +0 -127
  119. package/dist/types/systems/NiceEquipment.d.ts +0 -137
  120. package/dist/types/systems/NiceEvent.d.ts +0 -202
  121. package/dist/types/systems/NiceEventBus.d.ts +0 -164
  122. package/dist/types/systems/NiceFaction.d.ts +0 -173
  123. package/dist/types/systems/NiceFarming.d.ts +0 -163
  124. package/dist/types/systems/NiceFishing.d.ts +0 -196
  125. package/dist/types/systems/NiceFlocking.d.ts +0 -156
  126. package/dist/types/systems/NiceFog.d.ts +0 -137
  127. package/dist/types/systems/NiceFormation.d.ts +0 -140
  128. package/dist/types/systems/NiceGacha.d.ts +0 -134
  129. package/dist/types/systems/NiceGambling.d.ts +0 -175
  130. package/dist/types/systems/NiceGem.d.ts +0 -165
  131. package/dist/types/systems/NiceGesture.d.ts +0 -502
  132. package/dist/types/systems/NiceGrappling.d.ts +0 -154
  133. package/dist/types/systems/NiceGrid.d.ts +0 -142
  134. package/dist/types/systems/NiceGuild.d.ts +0 -162
  135. package/dist/types/systems/NiceHaptics.d.ts +0 -112
  136. package/dist/types/systems/NiceHousing.d.ts +0 -197
  137. package/dist/types/systems/NiceInput.d.ts +0 -280
  138. package/dist/types/systems/NiceInventory.d.ts +0 -534
  139. package/dist/types/systems/NiceLOD.d.ts +0 -144
  140. package/dist/types/systems/NiceLeaderboard.d.ts +0 -191
  141. package/dist/types/systems/NiceLevel.d.ts +0 -304
  142. package/dist/types/systems/NiceLighting.d.ts +0 -214
  143. package/dist/types/systems/NiceLocalization.d.ts +0 -148
  144. package/dist/types/systems/NiceLocomotion.d.ts +0 -398
  145. package/dist/types/systems/NiceLogger.d.ts +0 -117
  146. package/dist/types/systems/NiceLoot.d.ts +0 -176
  147. package/dist/types/systems/NiceMail.d.ts +0 -164
  148. package/dist/types/systems/NiceMap.d.ts +0 -234
  149. package/dist/types/systems/NiceMarriage.d.ts +0 -150
  150. package/dist/types/systems/NiceMastery.d.ts +0 -171
  151. package/dist/types/systems/NiceMatch.d.ts +0 -196
  152. package/dist/types/systems/NiceMatch3.d.ts +0 -118
  153. package/dist/types/systems/NiceMessageBus.d.ts +0 -115
  154. package/dist/types/systems/NiceMinimap.d.ts +0 -258
  155. package/dist/types/systems/NiceMining.d.ts +0 -175
  156. package/dist/types/systems/NiceModding.d.ts +0 -452
  157. package/dist/types/systems/NiceMount.d.ts +0 -152
  158. package/dist/types/systems/NiceNavigation.d.ts +0 -307
  159. package/dist/types/systems/NiceNetwork.d.ts +0 -568
  160. package/dist/types/systems/NiceNotification.d.ts +0 -438
  161. package/dist/types/systems/NiceObjective.d.ts +0 -395
  162. package/dist/types/systems/NiceParticle.d.ts +0 -639
  163. package/dist/types/systems/NiceParty.d.ts +0 -168
  164. package/dist/types/systems/NicePerformance.d.ts +0 -144
  165. package/dist/types/systems/NicePet.d.ts +0 -167
  166. package/dist/types/systems/NicePhotoMode.d.ts +0 -270
  167. package/dist/types/systems/NicePhysics.d.ts +0 -326
  168. package/dist/types/systems/NicePlatformer.d.ts +0 -158
  169. package/dist/types/systems/NicePool.d.ts +0 -128
  170. package/dist/types/systems/NicePortal.d.ts +0 -178
  171. package/dist/types/systems/NicePostProcess.d.ts +0 -254
  172. package/dist/types/systems/NiceProcedural.d.ts +0 -202
  173. package/dist/types/systems/NiceProfile.d.ts +0 -223
  174. package/dist/types/systems/NiceProjectile.d.ts +0 -157
  175. package/dist/types/systems/NicePvP.d.ts +0 -199
  176. package/dist/types/systems/NiceQTE.d.ts +0 -160
  177. package/dist/types/systems/NiceQuest.d.ts +0 -620
  178. package/dist/types/systems/NiceRaid.d.ts +0 -215
  179. package/dist/types/systems/NiceRanking.d.ts +0 -399
  180. package/dist/types/systems/NiceReplay.d.ts +0 -180
  181. package/dist/types/systems/NiceReputation.d.ts +0 -151
  182. package/dist/types/systems/NiceResource.d.ts +0 -200
  183. package/dist/types/systems/NiceRhythm.d.ts +0 -148
  184. package/dist/types/systems/NiceRoguelike.d.ts +0 -276
  185. package/dist/types/systems/NiceRune.d.ts +0 -202
  186. package/dist/types/systems/NiceSaveSystem.d.ts +0 -194
  187. package/dist/types/systems/NiceSceneManager.d.ts +0 -112
  188. package/dist/types/systems/NiceScore.d.ts +0 -186
  189. package/dist/types/systems/NiceScreenFX.d.ts +0 -235
  190. package/dist/types/systems/NiceScreenshot.d.ts +0 -443
  191. package/dist/types/systems/NiceScribe.d.ts +0 -239
  192. package/dist/types/systems/NiceSeason.d.ts +0 -176
  193. package/dist/types/systems/NiceSerialization.d.ts +0 -89
  194. package/dist/types/systems/NiceServiceLocator.d.ts +0 -94
  195. package/dist/types/systems/NiceShop.d.ts +0 -528
  196. package/dist/types/systems/NiceSignal.d.ts +0 -112
  197. package/dist/types/systems/NiceSkillTree.d.ts +0 -237
  198. package/dist/types/systems/NiceSocial.d.ts +0 -580
  199. package/dist/types/systems/NiceSpawner.d.ts +0 -237
  200. package/dist/types/systems/NiceSpell.d.ts +0 -216
  201. package/dist/types/systems/NiceState.d.ts +0 -224
  202. package/dist/types/systems/NiceStateMachine.d.ts +0 -108
  203. package/dist/types/systems/NiceStatus.d.ts +0 -116
  204. package/dist/types/systems/NiceStealth.d.ts +0 -204
  205. package/dist/types/systems/NiceSteam.d.ts +0 -255
  206. package/dist/types/systems/NiceStreaming.d.ts +0 -173
  207. package/dist/types/systems/NiceSwimming.d.ts +0 -166
  208. package/dist/types/systems/NiceTalent.d.ts +0 -154
  209. package/dist/types/systems/NiceTarget.d.ts +0 -121
  210. package/dist/types/systems/NiceTerrain.d.ts +0 -143
  211. package/dist/types/systems/NiceTilemap.d.ts +0 -218
  212. package/dist/types/systems/NiceTimer.d.ts +0 -153
  213. package/dist/types/systems/NiceTournament.d.ts +0 -190
  214. package/dist/types/systems/NiceTrading.d.ts +0 -238
  215. package/dist/types/systems/NiceTransmog.d.ts +0 -142
  216. package/dist/types/systems/NiceTutorial.d.ts +0 -248
  217. package/dist/types/systems/NiceTween.d.ts +0 -164
  218. package/dist/types/systems/NiceUI.d.ts +0 -364
  219. package/dist/types/systems/NiceVFX.d.ts +0 -333
  220. package/dist/types/systems/NiceVehicle.d.ts +0 -176
  221. package/dist/types/systems/NiceVoice.d.ts +0 -502
  222. package/dist/types/systems/NiceWater.d.ts +0 -162
  223. package/dist/types/systems/NiceWave.d.ts +0 -174
  224. package/dist/types/systems/NiceWaypoint.d.ts +0 -165
  225. package/dist/types/systems/NiceWeather.d.ts +0 -225
  226. package/dist/types/systems/NiceXR.d.ts +0 -187
  227. package/dist/types/systems/index.d.ts +0 -182
  228. package/dist/types/templates/index.d.ts +0 -2
  229. package/dist/types/tilemap/index.d.ts +0 -1
  230. package/dist/types/tutorials/TutorialEditor.d.ts +0 -43
  231. package/dist/types/tutorials/VoiceNarration.d.ts +0 -75
  232. package/dist/types/tutorials/content/Tutorials_T04.d.ts +0 -3
  233. package/dist/types/tutorials/content/UITutorials.d.ts +0 -14
  234. package/dist/types/tutorials/content/index.d.ts +0 -5
  235. package/dist/types/tutorials/index.d.ts +0 -6
  236. package/dist/types/ui/index.d.ts +0 -2
  237. package/dist/types/visual-scripting/VisualScriptDebugger.d.ts +0 -145
  238. package/dist/types/visual-scripting/VisualScriptExecutor.d.ts +0 -100
  239. package/dist/types/visual-scripting/VisualScriptGraph.d.ts +0 -173
  240. package/dist/types/visual-scripting/VisualScriptNode.d.ts +0 -157
  241. package/dist/types/visual-scripting/index.d.ts +0 -6
  242. package/dist/types/visual-scripting/nodes/ActionNodes.d.ts +0 -152
  243. package/dist/types/visual-scripting/nodes/EventNodes.d.ts +0 -95
  244. package/dist/types/visual-scripting/nodes/FlowControlNodes.d.ts +0 -134
  245. package/dist/types/visual-scripting/nodes/LogicNodes.d.ts +0 -122
  246. package/dist/types/visual-scripting/nodes/MathNodes.d.ts +0 -170
  247. package/dist/types/visual-scripting/nodes/UtilityNodes.d.ts +0 -131
  248. package/dist/types/visual-scripting/nodes/VariableNodes.d.ts +0 -107
  249. package/dist/types/visual-scripting/nodes/index.d.ts +0 -21
  250. package/dist/types/visual-scripting/nodes/registerNodes.d.ts +0 -29
  251. package/dist/types/visual-scripting/types.d.ts +0 -402
  252. package/dist/types/xr/WebXRLayers.d.ts +0 -319
  253. package/dist/types/xr/index.d.ts +0 -2
@@ -1,620 +0,0 @@
1
- /**
2
- * NiceQuest - Comprehensive Quest/Mission System
3
- *
4
- * Professional quest system for RPGs and adventure games.
5
- * Supports complex objectives, branching, tracking, rewards, and discovery.
6
- *
7
- * Features:
8
- * - Multi-objective quests with dependencies
9
- * - Branching quest lines
10
- * - Quest chains and prerequisites
11
- * - Auto-tracking and discovery
12
- * - Dynamic objectives
13
- * - Rewards system (items, XP, reputation)
14
- * - Quest journal with categories
15
- * - Time-limited quests
16
- * - Repeatable/daily quests
17
- * - Hidden/secret quests
18
- * - Quest markers/waypoints
19
- *
20
- * @packageDocumentation
21
- */
22
- import { EventEmitter } from 'eventemitter3';
23
- /** Unique identifier for quests */
24
- export type QuestId = string;
25
- /** Unique identifier for objectives */
26
- export type ObjectiveId = string;
27
- /** Unique identifier for quest chains */
28
- export type ChainId = string;
29
- /** Unique identifier for NPCs */
30
- export type NpcId = string;
31
- /** Unique identifier for quest markers */
32
- export type MarkerId = string;
33
- /** Quest states */
34
- export type QuestState = 'unknown' | 'available' | 'active' | 'completed' | 'failed' | 'abandoned' | 'locked';
35
- /** Objective states */
36
- export type ObjectiveState = 'hidden' | 'active' | 'completed' | 'failed' | 'optional';
37
- /** Objective types */
38
- export type ObjectiveType = 'collect' | 'kill' | 'talk' | 'explore' | 'escort' | 'defend' | 'deliver' | 'interact' | 'craft' | 'use' | 'survive' | 'win' | 'custom';
39
- /** Quest difficulty */
40
- export type QuestDifficulty = 'trivial' | 'easy' | 'normal' | 'hard' | 'legendary';
41
- /** Quest category */
42
- export type QuestCategory = 'main' | 'side' | 'daily' | 'weekly' | 'world' | 'guild' | 'dungeon' | 'pvp' | 'achievement';
43
- /** 2D position */
44
- export interface Vec2 {
45
- x: number;
46
- y: number;
47
- }
48
- /** 3D position */
49
- export interface Vec3 {
50
- x: number;
51
- y: number;
52
- z: number;
53
- }
54
- /** Reward types */
55
- export interface Reward {
56
- type: 'item' | 'currency' | 'experience' | 'reputation' | 'unlock' | 'custom';
57
- id?: string;
58
- amount?: number;
59
- data?: Record<string, unknown>;
60
- }
61
- /** Condition for quest availability */
62
- export interface QuestCondition {
63
- type: 'level' | 'quest' | 'item' | 'reputation' | 'time' | 'flag' | 'custom';
64
- operator?: '==' | '!=' | '>' | '<' | '>=' | '<=';
65
- target?: string;
66
- value?: number | string | boolean;
67
- customCheck?: () => boolean;
68
- }
69
- /** Quest marker for map/compass */
70
- export interface QuestMarker {
71
- id: MarkerId;
72
- questId: QuestId;
73
- objectiveId?: ObjectiveId;
74
- position: Vec3;
75
- type: 'quest' | 'objective' | 'turn-in' | 'poi';
76
- icon?: string;
77
- label?: string;
78
- visible: boolean;
79
- tracked: boolean;
80
- }
81
- /** Objective definition */
82
- export interface ObjectiveDefinition {
83
- id: ObjectiveId;
84
- type: ObjectiveType;
85
- description: string;
86
- shortDescription?: string;
87
- target?: string;
88
- targetId?: string;
89
- requiredCount: number;
90
- currentCount?: number;
91
- isOptional?: boolean;
92
- isHidden?: boolean;
93
- revealConditions?: QuestCondition[];
94
- failConditions?: QuestCondition[];
95
- location?: Vec3;
96
- radius?: number;
97
- timeLimit?: number;
98
- markers?: QuestMarker[];
99
- dependencies?: ObjectiveId[];
100
- onComplete?: () => void;
101
- onFail?: () => void;
102
- metadata?: Record<string, unknown>;
103
- }
104
- /** Objective instance */
105
- export interface ObjectiveInstance {
106
- definition: ObjectiveDefinition;
107
- state: ObjectiveState;
108
- currentCount: number;
109
- startTime?: number;
110
- completionTime?: number;
111
- failTime?: number;
112
- }
113
- /** Quest stage (for branching) */
114
- export interface QuestStage {
115
- id: string;
116
- name: string;
117
- description?: string;
118
- objectives: ObjectiveId[];
119
- nextStages?: Array<{
120
- stageId: string;
121
- conditions?: QuestCondition[];
122
- }>;
123
- onEnter?: () => void;
124
- onExit?: () => void;
125
- }
126
- /** Quest definition */
127
- export interface QuestDefinition {
128
- id: QuestId;
129
- name: string;
130
- description: string;
131
- shortDescription?: string;
132
- category: QuestCategory;
133
- difficulty?: QuestDifficulty;
134
- levelRequirement?: number;
135
- levelRecommended?: number;
136
- prerequisites?: QuestCondition[];
137
- objectives: ObjectiveDefinition[];
138
- stages?: QuestStage[];
139
- startStage?: string;
140
- rewards: Reward[];
141
- bonusRewards?: Array<{
142
- conditions: QuestCondition[];
143
- rewards: Reward[];
144
- }>;
145
- questGiver?: NpcId;
146
- turnInNpc?: NpcId;
147
- isRepeatable?: boolean;
148
- repeatCooldown?: number;
149
- isHidden?: boolean;
150
- autoAccept?: boolean;
151
- autoComplete?: boolean;
152
- timeLimit?: number;
153
- failOnAbandon?: boolean;
154
- canAbandon?: boolean;
155
- chainId?: ChainId;
156
- chainOrder?: number;
157
- tags?: string[];
158
- icon?: string;
159
- markers?: QuestMarker[];
160
- onStart?: () => void;
161
- onComplete?: () => void;
162
- onFail?: () => void;
163
- onAbandon?: () => void;
164
- metadata?: Record<string, unknown>;
165
- }
166
- /** Quest instance (active/completed quest) */
167
- export interface QuestInstance {
168
- definition: QuestDefinition;
169
- state: QuestState;
170
- objectives: Map<ObjectiveId, ObjectiveInstance>;
171
- currentStage?: string;
172
- startTime?: number;
173
- completionTime?: number;
174
- failTime?: number;
175
- abandonTime?: number;
176
- completionCount: number;
177
- lastCompletionTime?: number;
178
- isTracked: boolean;
179
- metadata: Map<string, unknown>;
180
- }
181
- /** Quest chain definition */
182
- export interface QuestChain {
183
- id: ChainId;
184
- name: string;
185
- description?: string;
186
- quests: QuestId[];
187
- isLinear: boolean;
188
- rewards?: Reward[];
189
- onComplete?: () => void;
190
- metadata?: Record<string, unknown>;
191
- }
192
- /** Quest chain progress */
193
- export interface ChainProgress {
194
- chain: QuestChain;
195
- currentQuestIndex: number;
196
- completedQuests: QuestId[];
197
- isComplete: boolean;
198
- }
199
- /** Quest journal entry */
200
- export interface JournalEntry {
201
- timestamp: number;
202
- questId: QuestId;
203
- type: 'started' | 'objective' | 'stage' | 'completed' | 'failed' | 'abandoned';
204
- objectiveId?: ObjectiveId;
205
- stageId?: string;
206
- message?: string;
207
- }
208
- /** Quest event types */
209
- export type QuestEventType = 'quest:discovered' | 'quest:available' | 'quest:started' | 'quest:completed' | 'quest:failed' | 'quest:abandoned' | 'quest:tracked' | 'quest:untracked' | 'objective:started' | 'objective:progress' | 'objective:completed' | 'objective:failed' | 'objective:revealed' | 'stage:entered' | 'stage:exited' | 'chain:started' | 'chain:progress' | 'chain:completed' | 'reward:granted' | 'marker:added' | 'marker:removed' | 'marker:updated' | 'error';
210
- /** Quest event */
211
- export interface QuestEvent {
212
- type: QuestEventType;
213
- questId?: QuestId;
214
- objectiveId?: ObjectiveId;
215
- chainId?: ChainId;
216
- stageId?: string;
217
- markerId?: MarkerId;
218
- quest?: QuestInstance;
219
- objective?: ObjectiveInstance;
220
- chain?: ChainProgress;
221
- marker?: QuestMarker;
222
- reward?: Reward;
223
- progress?: {
224
- current: number;
225
- required: number;
226
- };
227
- error?: Error;
228
- timestamp: number;
229
- }
230
- /** Event callback */
231
- export type QuestEventCallback = (event: QuestEvent) => void;
232
- /** Quest system configuration */
233
- export interface QuestConfig {
234
- /** Maximum active quests */
235
- maxActiveQuests: number;
236
- /** Maximum tracked quests */
237
- maxTrackedQuests: number;
238
- /** Enable quest journal */
239
- enableJournal: boolean;
240
- /** Maximum journal entries */
241
- maxJournalEntries: number;
242
- /** Auto-track new quests */
243
- autoTrackNewQuests: boolean;
244
- /** Show objective notifications */
245
- showObjectiveNotifications: boolean;
246
- /** Check conditions interval (ms) */
247
- conditionCheckInterval: number;
248
- /** Debug mode */
249
- debug: boolean;
250
- }
251
- export declare const DEFAULT_QUEST_CONFIG: QuestConfig;
252
- export declare class NiceQuest extends EventEmitter<Record<QuestEventType, [QuestEvent]>> {
253
- private config;
254
- private questDefinitions;
255
- private questInstances;
256
- private questChains;
257
- private chainProgress;
258
- private markers;
259
- private journal;
260
- private playerLevel;
261
- private playerFlags;
262
- private playerReputation;
263
- private conditionCheckTimer?;
264
- private markerCounter;
265
- constructor(config?: Partial<QuestConfig>);
266
- /**
267
- * Register a quest definition
268
- */
269
- registerQuest(quest: QuestDefinition): void;
270
- /**
271
- * Register multiple quests
272
- */
273
- registerQuests(quests: QuestDefinition[]): void;
274
- /**
275
- * Register a quest chain
276
- */
277
- registerChain(chain: QuestChain): void;
278
- /**
279
- * Get quest definition
280
- */
281
- getQuestDefinition(id: QuestId): QuestDefinition | undefined;
282
- /**
283
- * Get quest instance
284
- */
285
- getQuest(id: QuestId): QuestInstance | undefined;
286
- /**
287
- * Get quest chain
288
- */
289
- getChain(id: ChainId): QuestChain | undefined;
290
- /**
291
- * Get chain progress
292
- */
293
- getChainProgress(id: ChainId): ChainProgress | undefined;
294
- /**
295
- * Start a quest
296
- */
297
- startQuest(questId: QuestId): boolean;
298
- /**
299
- * Complete a quest
300
- */
301
- completeQuest(questId: QuestId, grantRewards?: boolean): boolean;
302
- /**
303
- * Fail a quest
304
- */
305
- failQuest(questId: QuestId): boolean;
306
- /**
307
- * Abandon a quest
308
- */
309
- abandonQuest(questId: QuestId): boolean;
310
- /**
311
- * Reset a quest (for repeatable)
312
- */
313
- private resetQuest;
314
- /**
315
- * Update objective progress
316
- */
317
- updateObjective(questId: QuestId, objectiveId: ObjectiveId, progress: number, absolute?: boolean): boolean;
318
- /**
319
- * Update objective by type
320
- */
321
- updateObjectiveByType(objectiveType: ObjectiveType, targetId: string, progress?: number): void;
322
- /**
323
- * Complete an objective
324
- */
325
- completeObjective(questId: QuestId, objectiveId: ObjectiveId): boolean;
326
- /**
327
- * Fail an objective
328
- */
329
- failObjective(questId: QuestId, objectiveId: ObjectiveId): boolean;
330
- /**
331
- * Reveal a hidden objective
332
- */
333
- revealObjective(questId: QuestId, objectiveId: ObjectiveId): boolean;
334
- /**
335
- * Check and advance stages
336
- */
337
- private checkStageProgress;
338
- /**
339
- * Enter a new stage
340
- */
341
- private enterStage;
342
- /**
343
- * Track a quest
344
- */
345
- trackQuest(questId: QuestId): boolean;
346
- /**
347
- * Untrack a quest
348
- */
349
- untrackQuest(questId: QuestId): boolean;
350
- /**
351
- * Add quest markers
352
- */
353
- private addQuestMarkers;
354
- /**
355
- * Add a marker
356
- */
357
- addMarker(marker: QuestMarker): void;
358
- /**
359
- * Remove quest markers
360
- */
361
- private removeQuestMarkers;
362
- /**
363
- * Remove objective markers
364
- */
365
- private removeObjectiveMarkers;
366
- /**
367
- * Get all markers
368
- */
369
- getMarkers(): QuestMarker[];
370
- /**
371
- * Get visible markers
372
- */
373
- getVisibleMarkers(): QuestMarker[];
374
- /**
375
- * Update chain progress
376
- */
377
- private updateChainProgress;
378
- /**
379
- * Grant rewards
380
- */
381
- private grantRewards;
382
- /**
383
- * Get active quests
384
- */
385
- getActiveQuests(): QuestInstance[];
386
- /**
387
- * Get available quests
388
- */
389
- getAvailableQuests(): QuestInstance[];
390
- /**
391
- * Get completed quests
392
- */
393
- getCompletedQuests(): QuestInstance[];
394
- /**
395
- * Get failed quests
396
- */
397
- getFailedQuests(): QuestInstance[];
398
- /**
399
- * Get tracked quests
400
- */
401
- getTrackedQuests(): QuestInstance[];
402
- /**
403
- * Get quests by category
404
- */
405
- getQuestsByCategory(category: QuestCategory): QuestInstance[];
406
- /**
407
- * Get quests by NPC
408
- */
409
- getQuestsByNpc(npcId: NpcId): QuestInstance[];
410
- /**
411
- * Get quests available from NPC
412
- */
413
- getAvailableQuestsFromNpc(npcId: NpcId): QuestInstance[];
414
- /**
415
- * Get quests ready to turn in to NPC
416
- */
417
- getCompletableQuestsForNpc(npcId: NpcId): QuestInstance[];
418
- /**
419
- * Check a condition
420
- */
421
- checkCondition(condition: QuestCondition): boolean;
422
- /**
423
- * Compare values
424
- */
425
- private compareValue;
426
- /**
427
- * Check quest availability
428
- */
429
- private checkQuestAvailability;
430
- /**
431
- * Start condition checking loop
432
- */
433
- private startConditionChecking;
434
- /**
435
- * Check all conditions
436
- */
437
- private checkAllConditions;
438
- /**
439
- * Set player level
440
- */
441
- setPlayerLevel(level: number): void;
442
- /**
443
- * Set player flag
444
- */
445
- setFlag(name: string, value: boolean): void;
446
- /**
447
- * Set player reputation
448
- */
449
- setReputation(faction: string, value: number): void;
450
- /**
451
- * Add reputation
452
- */
453
- addReputation(faction: string, amount: number): void;
454
- /**
455
- * Add journal entry
456
- */
457
- private addJournalEntry;
458
- /**
459
- * Get journal entries
460
- */
461
- getJournal(): JournalEntry[];
462
- /**
463
- * Get journal for quest
464
- */
465
- getQuestJournal(questId: QuestId): JournalEntry[];
466
- /**
467
- * Clear journal
468
- */
469
- clearJournal(): void;
470
- /**
471
- * Create quest instance
472
- */
473
- private createQuestInstance;
474
- /**
475
- * Emit error event
476
- */
477
- private emitError;
478
- /**
479
- * Get statistics
480
- */
481
- getStats(): {
482
- totalQuests: number;
483
- activeQuests: number;
484
- completedQuests: number;
485
- failedQuests: number;
486
- availableQuests: number;
487
- trackedQuests: number;
488
- totalChains: number;
489
- completedChains: number;
490
- journalEntries: number;
491
- markerCount: number;
492
- };
493
- /**
494
- * Export state for saving
495
- */
496
- exportState(): {
497
- quests: Array<{
498
- id: QuestId;
499
- state: QuestState;
500
- objectives: Array<{
501
- id: ObjectiveId;
502
- state: ObjectiveState;
503
- currentCount: number;
504
- }>;
505
- currentStage?: string;
506
- startTime?: number;
507
- completionTime?: number;
508
- completionCount: number;
509
- isTracked: boolean;
510
- }>;
511
- chains: Array<{
512
- id: ChainId;
513
- currentQuestIndex: number;
514
- completedQuests: QuestId[];
515
- isComplete: boolean;
516
- }>;
517
- playerLevel: number;
518
- flags: Record<string, boolean>;
519
- reputation: Record<string, number>;
520
- journal: JournalEntry[];
521
- };
522
- /**
523
- * Import state
524
- */
525
- importState(data: ReturnType<typeof this.exportState>): void;
526
- /**
527
- * Destroy the quest system
528
- */
529
- destroy(): void;
530
- }
531
- /**
532
- * Create a quest system
533
- */
534
- export declare function createQuestSystem(config?: Partial<QuestConfig>): NiceQuest;
535
- /**
536
- * Fluent builder for creating quests
537
- */
538
- export declare class QuestBuilder {
539
- private quest;
540
- constructor(id: QuestId, name: string, category?: QuestCategory);
541
- description(desc: string): this;
542
- shortDescription(desc: string): this;
543
- difficulty(d: QuestDifficulty): this;
544
- levelRequirement(level: number): this;
545
- levelRecommended(level: number): this;
546
- prerequisite(condition: QuestCondition): this;
547
- requiresQuest(questId: QuestId, state?: QuestState): this;
548
- requiresLevel(level: number): this;
549
- questGiver(npcId: NpcId): this;
550
- turnIn(npcId: NpcId): this;
551
- objective(id: ObjectiveId, type: ObjectiveType, description: string, requiredCount?: number): ObjectiveBuilder;
552
- collectObjective(id: ObjectiveId, itemId: string, description: string, count?: number): this;
553
- killObjective(id: ObjectiveId, enemyId: string, description: string, count?: number): this;
554
- talkObjective(id: ObjectiveId, npcId: NpcId, description: string): this;
555
- exploreObjective(id: ObjectiveId, description: string, location: Vec3, radius?: number): this;
556
- reward(type: Reward['type'], id?: string, amount?: number): this;
557
- rewardItem(itemId: string, amount?: number): this;
558
- rewardCurrency(currencyId: string, amount: number): this;
559
- rewardExperience(amount: number): this;
560
- rewardReputation(factionId: string, amount: number): this;
561
- repeatable(cooldown?: number): this;
562
- timeLimit(ms: number): this;
563
- hidden(): this;
564
- autoAccept(): this;
565
- autoComplete(): this;
566
- cannotAbandon(): this;
567
- failOnAbandon(): this;
568
- chain(chainId: ChainId, order: number): this;
569
- tags(...tags: string[]): this;
570
- icon(icon: string): this;
571
- onStart(callback: () => void): this;
572
- onComplete(callback: () => void): this;
573
- onFail(callback: () => void): this;
574
- onAbandon(callback: () => void): this;
575
- build(): QuestDefinition;
576
- }
577
- /**
578
- * Objective builder
579
- */
580
- export declare class ObjectiveBuilder {
581
- private parent;
582
- private objective;
583
- constructor(parent: QuestBuilder, objective: ObjectiveDefinition);
584
- target(targetId: string): this;
585
- location(loc: Vec3, radius?: number): this;
586
- optional(): this;
587
- hidden(): this;
588
- timeLimit(ms: number): this;
589
- dependsOn(...objectiveIds: ObjectiveId[]): this;
590
- revealWhen(condition: QuestCondition): this;
591
- failWhen(condition: QuestCondition): this;
592
- onComplete(callback: () => void): this;
593
- onFail(callback: () => void): this;
594
- marker(position: Vec3, type?: QuestMarker['type'], label?: string): this;
595
- done(): QuestBuilder;
596
- }
597
- /**
598
- * Create a quest builder
599
- */
600
- export declare function quest(id: QuestId, name: string, category?: QuestCategory): QuestBuilder;
601
- /**
602
- * Create a quest chain
603
- */
604
- export declare function questChain(id: ChainId, name: string, quests: QuestId[], isLinear?: boolean): QuestChain;
605
- /**
606
- * Create a level condition
607
- */
608
- export declare function levelCondition(level: number, operator?: QuestCondition['operator']): QuestCondition;
609
- /**
610
- * Create a quest condition
611
- */
612
- export declare function questCondition(questId: QuestId, state?: QuestState): QuestCondition;
613
- /**
614
- * Create a flag condition
615
- */
616
- export declare function flagCondition(flagName: string, value?: boolean): QuestCondition;
617
- /**
618
- * Create a reputation condition
619
- */
620
- export declare function reputationCondition(faction: string, value: number, operator?: QuestCondition['operator']): QuestCondition;