@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,150 +0,0 @@
|
|
|
1
|
-
export type MarriageId = string;
|
|
2
|
-
export type PartnerId = string;
|
|
3
|
-
export type CeremonyId = string;
|
|
4
|
-
export type MarriageStatus = 'pending' | 'engaged' | 'married' | 'separated' | 'divorced';
|
|
5
|
-
export type ProposalStatus = 'pending' | 'accepted' | 'declined' | 'expired';
|
|
6
|
-
export interface Proposal {
|
|
7
|
-
id: string;
|
|
8
|
-
proposerId: PartnerId;
|
|
9
|
-
targetId: PartnerId;
|
|
10
|
-
status: ProposalStatus;
|
|
11
|
-
message?: string;
|
|
12
|
-
ringId?: string;
|
|
13
|
-
createdAt: number;
|
|
14
|
-
respondedAt?: number;
|
|
15
|
-
expiresAt: number;
|
|
16
|
-
}
|
|
17
|
-
export interface Marriage {
|
|
18
|
-
id: MarriageId;
|
|
19
|
-
partner1Id: PartnerId;
|
|
20
|
-
partner2Id: PartnerId;
|
|
21
|
-
status: MarriageStatus;
|
|
22
|
-
engagedAt?: number;
|
|
23
|
-
marriedAt?: number;
|
|
24
|
-
separatedAt?: number;
|
|
25
|
-
divorcedAt?: number;
|
|
26
|
-
sharedInventoryEnabled: boolean;
|
|
27
|
-
sharedCurrencyEnabled: boolean;
|
|
28
|
-
sharedCurrency: Record<string, number>;
|
|
29
|
-
experienceShared: number;
|
|
30
|
-
questsCompletedTogether: number;
|
|
31
|
-
anniversariesCelebrated: number;
|
|
32
|
-
teleportsUsed: number;
|
|
33
|
-
activeBenefits: string[];
|
|
34
|
-
benefitLevel: number;
|
|
35
|
-
title?: string;
|
|
36
|
-
ringStyles?: [string, string];
|
|
37
|
-
homeId?: string;
|
|
38
|
-
}
|
|
39
|
-
export interface CeremonyVenue {
|
|
40
|
-
id: string;
|
|
41
|
-
name: string;
|
|
42
|
-
description: string;
|
|
43
|
-
capacity: number;
|
|
44
|
-
cost: number;
|
|
45
|
-
currency: string;
|
|
46
|
-
imageUrl?: string;
|
|
47
|
-
features: string[];
|
|
48
|
-
}
|
|
49
|
-
export interface Ceremony {
|
|
50
|
-
id: CeremonyId;
|
|
51
|
-
marriageId: MarriageId;
|
|
52
|
-
venueId: string;
|
|
53
|
-
scheduledAt: number;
|
|
54
|
-
duration: number;
|
|
55
|
-
status: 'scheduled' | 'in-progress' | 'completed' | 'cancelled';
|
|
56
|
-
invitedGuests: PartnerId[];
|
|
57
|
-
attendedGuests: PartnerId[];
|
|
58
|
-
gifts: Array<{
|
|
59
|
-
fromId: PartnerId;
|
|
60
|
-
itemId: string;
|
|
61
|
-
quantity: number;
|
|
62
|
-
}>;
|
|
63
|
-
startedAt?: number;
|
|
64
|
-
completedAt?: number;
|
|
65
|
-
}
|
|
66
|
-
export interface MarriageBenefit {
|
|
67
|
-
id: string;
|
|
68
|
-
name: string;
|
|
69
|
-
description: string;
|
|
70
|
-
requiredLevel: number;
|
|
71
|
-
effects: Array<{
|
|
72
|
-
type: 'stat_bonus' | 'xp_share' | 'teleport' | 'buff' | 'discount' | 'custom';
|
|
73
|
-
statId?: string;
|
|
74
|
-
value: number;
|
|
75
|
-
percentage?: boolean;
|
|
76
|
-
}>;
|
|
77
|
-
}
|
|
78
|
-
export type MarriageEventType = 'proposal-sent' | 'proposal-accepted' | 'proposal-declined' | 'proposal-expired' | 'engaged' | 'ceremony-scheduled' | 'ceremony-started' | 'ceremony-completed' | 'married' | 'anniversary' | 'benefit-unlocked' | 'teleport-used' | 'currency-deposited' | 'currency-withdrawn' | 'separation-requested' | 'separated' | 'divorce-finalized';
|
|
79
|
-
export interface MarriageEvent {
|
|
80
|
-
type: MarriageEventType;
|
|
81
|
-
timestamp: number;
|
|
82
|
-
marriageId?: MarriageId;
|
|
83
|
-
partnerId?: PartnerId;
|
|
84
|
-
data?: unknown;
|
|
85
|
-
}
|
|
86
|
-
export type MarriageEventCallback = (event: MarriageEvent) => void;
|
|
87
|
-
export interface MarriageConfig {
|
|
88
|
-
proposalDuration: number;
|
|
89
|
-
engagementDuration: number;
|
|
90
|
-
separationCooldown: number;
|
|
91
|
-
divorceWaitPeriod: number;
|
|
92
|
-
maxTeleportsPerDay: number;
|
|
93
|
-
xpSharePercentage: number;
|
|
94
|
-
anniversaryInterval: number;
|
|
95
|
-
benefitLevelXpRequired: number[];
|
|
96
|
-
storageKey: string;
|
|
97
|
-
}
|
|
98
|
-
export declare const DEFAULT_MARRIAGE_CONFIG: MarriageConfig;
|
|
99
|
-
export declare class NiceMarriage {
|
|
100
|
-
private config;
|
|
101
|
-
private marriages;
|
|
102
|
-
private proposals;
|
|
103
|
-
private ceremonies;
|
|
104
|
-
private venues;
|
|
105
|
-
private benefits;
|
|
106
|
-
private playerMarriage;
|
|
107
|
-
private playerProposals;
|
|
108
|
-
private dailyTeleports;
|
|
109
|
-
private eventListeners;
|
|
110
|
-
private idCounter;
|
|
111
|
-
constructor(config?: Partial<MarriageConfig>);
|
|
112
|
-
on(event: MarriageEventType, callback: MarriageEventCallback): () => void;
|
|
113
|
-
private emit;
|
|
114
|
-
registerVenue(venue: CeremonyVenue): void;
|
|
115
|
-
registerBenefit(benefit: MarriageBenefit): void;
|
|
116
|
-
propose(proposerId: PartnerId, targetId: PartnerId, message?: string, ringId?: string): Proposal | null;
|
|
117
|
-
acceptProposal(proposalId: string): Marriage | null;
|
|
118
|
-
declineProposal(proposalId: string): boolean;
|
|
119
|
-
getProposalsFor(playerId: PartnerId): Proposal[];
|
|
120
|
-
private createMarriage;
|
|
121
|
-
scheduleCeremony(marriageId: MarriageId, venueId: string, scheduledAt: number, invitedGuests?: PartnerId[]): Ceremony | null;
|
|
122
|
-
startCeremony(ceremonyId: CeremonyId): boolean;
|
|
123
|
-
attendCeremony(ceremonyId: CeremonyId, guestId: PartnerId): boolean;
|
|
124
|
-
giveWeddingGift(ceremonyId: CeremonyId, fromId: PartnerId, itemId: string, quantity: number): boolean;
|
|
125
|
-
completeCeremony(ceremonyId: CeremonyId): boolean;
|
|
126
|
-
private updateBenefits;
|
|
127
|
-
addMarriageXp(marriageId: MarriageId, xp: number): void;
|
|
128
|
-
getActiveBenefits(marriageId: MarriageId): MarriageBenefit[];
|
|
129
|
-
teleportToPartner(playerId: PartnerId): boolean;
|
|
130
|
-
enableSharedCurrency(marriageId: MarriageId): boolean;
|
|
131
|
-
depositCurrency(marriageId: MarriageId, currency: string, amount: number): boolean;
|
|
132
|
-
withdrawCurrency(marriageId: MarriageId, currency: string, amount: number): boolean;
|
|
133
|
-
getSharedCurrency(marriageId: MarriageId): Record<string, number>;
|
|
134
|
-
checkAnniversary(marriageId: MarriageId): boolean;
|
|
135
|
-
requestSeparation(marriageId: MarriageId, requesterId: PartnerId): boolean;
|
|
136
|
-
separate(marriageId: MarriageId): boolean;
|
|
137
|
-
divorce(marriageId: MarriageId): boolean;
|
|
138
|
-
getMarriage(marriageId: MarriageId): Marriage | undefined;
|
|
139
|
-
getMarriageForPlayer(playerId: PartnerId): Marriage | undefined;
|
|
140
|
-
getPartner(playerId: PartnerId): PartnerId | undefined;
|
|
141
|
-
isMarried(playerId: PartnerId): boolean;
|
|
142
|
-
getVenue(venueId: string): CeremonyVenue | undefined;
|
|
143
|
-
getAllVenues(): CeremonyVenue[];
|
|
144
|
-
getCeremony(ceremonyId: CeremonyId): Ceremony | undefined;
|
|
145
|
-
private save;
|
|
146
|
-
private load;
|
|
147
|
-
reset(): void;
|
|
148
|
-
destroy(): void;
|
|
149
|
-
}
|
|
150
|
-
export declare function createMarriageSystem(config?: Partial<MarriageConfig>): NiceMarriage;
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
export type MasteryId = string;
|
|
2
|
-
export type SpecializationId = string;
|
|
3
|
-
export type MasteryTierId = string;
|
|
4
|
-
export type MasteryCategory = 'weapon' | 'skill' | 'magic' | 'crafting' | 'combat' | 'survival' | 'class';
|
|
5
|
-
export interface MasteryDefinition {
|
|
6
|
-
id: MasteryId;
|
|
7
|
-
name: string;
|
|
8
|
-
description: string;
|
|
9
|
-
category: MasteryCategory;
|
|
10
|
-
maxLevel: number;
|
|
11
|
-
xpPerLevel: number[];
|
|
12
|
-
xpScaling: number;
|
|
13
|
-
tiers: MasteryTier[];
|
|
14
|
-
requiredLevel?: number;
|
|
15
|
-
requiredMasteries?: Record<MasteryId, number>;
|
|
16
|
-
icon: string;
|
|
17
|
-
color?: string;
|
|
18
|
-
tags?: string[];
|
|
19
|
-
}
|
|
20
|
-
export interface MasteryTier {
|
|
21
|
-
id: MasteryTierId;
|
|
22
|
-
name: string;
|
|
23
|
-
level: number;
|
|
24
|
-
bonuses: MasteryBonus[];
|
|
25
|
-
unlocksAbility?: string;
|
|
26
|
-
unlocksPassive?: string;
|
|
27
|
-
badge?: string;
|
|
28
|
-
title?: string;
|
|
29
|
-
}
|
|
30
|
-
export interface MasteryBonus {
|
|
31
|
-
type: 'stat' | 'damage' | 'crit' | 'speed' | 'resource' | 'cooldown' | 'proc' | 'custom';
|
|
32
|
-
value: number;
|
|
33
|
-
isPercentage: boolean;
|
|
34
|
-
perLevel?: boolean;
|
|
35
|
-
stat?: string;
|
|
36
|
-
damageType?: string;
|
|
37
|
-
abilityId?: string;
|
|
38
|
-
description: string;
|
|
39
|
-
}
|
|
40
|
-
export interface SpecializationDefinition {
|
|
41
|
-
id: SpecializationId;
|
|
42
|
-
name: string;
|
|
43
|
-
description: string;
|
|
44
|
-
lore?: string;
|
|
45
|
-
requiredMastery: MasteryId;
|
|
46
|
-
requiredMasteryLevel: number;
|
|
47
|
-
bonuses: MasteryBonus[];
|
|
48
|
-
passiveEffects: PassiveEffect[];
|
|
49
|
-
grantedAbilities: string[];
|
|
50
|
-
modifiedAbilities: AbilityModification[];
|
|
51
|
-
exclusiveWith?: SpecializationId[];
|
|
52
|
-
icon: string;
|
|
53
|
-
color?: string;
|
|
54
|
-
particleEffect?: string;
|
|
55
|
-
}
|
|
56
|
-
export interface PassiveEffect {
|
|
57
|
-
id: string;
|
|
58
|
-
name: string;
|
|
59
|
-
description: string;
|
|
60
|
-
trigger: 'always' | 'on_hit' | 'on_crit' | 'on_kill' | 'on_damage_taken' | 'low_health' | 'full_health';
|
|
61
|
-
chance?: number;
|
|
62
|
-
cooldown?: number;
|
|
63
|
-
effect: MasteryBonus;
|
|
64
|
-
}
|
|
65
|
-
export interface AbilityModification {
|
|
66
|
-
abilityId: string;
|
|
67
|
-
modifications: {
|
|
68
|
-
type: 'damage' | 'cost' | 'cooldown' | 'range' | 'effect';
|
|
69
|
-
value: number;
|
|
70
|
-
isPercentage: boolean;
|
|
71
|
-
}[];
|
|
72
|
-
}
|
|
73
|
-
export interface PlayerMasteryData {
|
|
74
|
-
playerId: string;
|
|
75
|
-
masteries: Map<MasteryId, MasteryProgress>;
|
|
76
|
-
activeSpecializations: Set<SpecializationId>;
|
|
77
|
-
maxSpecializations: number;
|
|
78
|
-
totalBonuses: Map<string, number>;
|
|
79
|
-
totalMasteryLevels: number;
|
|
80
|
-
maxMasteryReached: Map<MasteryId, number>;
|
|
81
|
-
timeInMasteries: Map<MasteryId, number>;
|
|
82
|
-
}
|
|
83
|
-
export interface MasteryProgress {
|
|
84
|
-
masteryId: MasteryId;
|
|
85
|
-
level: number;
|
|
86
|
-
currentXP: number;
|
|
87
|
-
totalXP: number;
|
|
88
|
-
highestTierReached: MasteryTierId;
|
|
89
|
-
timesUsed: number;
|
|
90
|
-
lastUsed: number;
|
|
91
|
-
}
|
|
92
|
-
export interface MasteryEffect {
|
|
93
|
-
stat: string;
|
|
94
|
-
flatBonus: number;
|
|
95
|
-
percentBonus: number;
|
|
96
|
-
}
|
|
97
|
-
export type MasteryEventType = 'mastery-xp-gained' | 'mastery-level-up' | 'mastery-tier-unlocked' | 'mastery-maxed' | 'specialization-chosen' | 'specialization-removed' | 'ability-unlocked' | 'passive-triggered';
|
|
98
|
-
export interface MasteryEvent {
|
|
99
|
-
type: MasteryEventType;
|
|
100
|
-
timestamp: number;
|
|
101
|
-
data?: unknown;
|
|
102
|
-
}
|
|
103
|
-
export type MasteryEventCallback = (event: MasteryEvent) => void;
|
|
104
|
-
export interface MasteryConfig {
|
|
105
|
-
maxSpecializations: number;
|
|
106
|
-
baseXPPerLevel: number;
|
|
107
|
-
xpScalingDefault: number;
|
|
108
|
-
xpBonusPerPlayerLevel: number;
|
|
109
|
-
storageKey: string;
|
|
110
|
-
}
|
|
111
|
-
export declare const DEFAULT_MASTERY_CONFIG: MasteryConfig;
|
|
112
|
-
export declare class NiceMastery {
|
|
113
|
-
private config;
|
|
114
|
-
private masteries;
|
|
115
|
-
private specializations;
|
|
116
|
-
private players;
|
|
117
|
-
private eventListeners;
|
|
118
|
-
constructor(config?: Partial<MasteryConfig>);
|
|
119
|
-
on(event: MasteryEventType, callback: MasteryEventCallback): () => void;
|
|
120
|
-
private emit;
|
|
121
|
-
registerMastery(mastery: MasteryDefinition): void;
|
|
122
|
-
registerSpecialization(spec: SpecializationDefinition): void;
|
|
123
|
-
getPlayer(playerId: string): PlayerMasteryData;
|
|
124
|
-
private createPlayerData;
|
|
125
|
-
addMasteryXP(playerId: string, masteryId: MasteryId, xp: number, playerLevel?: number): {
|
|
126
|
-
levelsGained: number;
|
|
127
|
-
tiersUnlocked: MasteryTier[];
|
|
128
|
-
};
|
|
129
|
-
private getXPForLevel;
|
|
130
|
-
canChooseSpecialization(playerId: string, specId: SpecializationId): boolean;
|
|
131
|
-
chooseSpecialization(playerId: string, specId: SpecializationId): boolean;
|
|
132
|
-
removeSpecialization(playerId: string, specId: SpecializationId): boolean;
|
|
133
|
-
private recalculateBonuses;
|
|
134
|
-
private applyBonus;
|
|
135
|
-
getMastery(id: MasteryId): MasteryDefinition | undefined;
|
|
136
|
-
getAllMasteries(): MasteryDefinition[];
|
|
137
|
-
getMasteriesByCategory(category: MasteryCategory): MasteryDefinition[];
|
|
138
|
-
getSpecialization(id: SpecializationId): SpecializationDefinition | undefined;
|
|
139
|
-
getAllSpecializations(): SpecializationDefinition[];
|
|
140
|
-
getAvailableSpecializations(playerId: string): SpecializationDefinition[];
|
|
141
|
-
getMasteryProgress(playerId: string, masteryId: MasteryId): MasteryProgress | undefined;
|
|
142
|
-
getMasteryLevel(playerId: string, masteryId: MasteryId): number;
|
|
143
|
-
getMasteryXPProgress(playerId: string, masteryId: MasteryId): {
|
|
144
|
-
level: number;
|
|
145
|
-
currentXP: number;
|
|
146
|
-
xpNeeded: number;
|
|
147
|
-
percentage: number;
|
|
148
|
-
};
|
|
149
|
-
getActiveSpecializations(playerId: string): SpecializationDefinition[];
|
|
150
|
-
getUnlockedAbilities(playerId: string): string[];
|
|
151
|
-
getUnlockedPassives(playerId: string): string[];
|
|
152
|
-
getEffectiveBonuses(playerId: string): Map<string, number>;
|
|
153
|
-
getStatBonus(playerId: string, stat: string): number;
|
|
154
|
-
getDamageBonus(playerId: string, damageType?: string): number;
|
|
155
|
-
getCooldownReduction(playerId: string, abilityId?: string): number;
|
|
156
|
-
getStats(playerId: string): {
|
|
157
|
-
totalMasteryLevels: number;
|
|
158
|
-
highestMastery: {
|
|
159
|
-
id: MasteryId;
|
|
160
|
-
level: number;
|
|
161
|
-
} | null;
|
|
162
|
-
activeSpecCount: number;
|
|
163
|
-
unlockedAbilitiesCount: number;
|
|
164
|
-
maxedMasteries: number;
|
|
165
|
-
};
|
|
166
|
-
save(): void;
|
|
167
|
-
load(): void;
|
|
168
|
-
reset(): void;
|
|
169
|
-
destroy(): void;
|
|
170
|
-
}
|
|
171
|
-
export declare function createMasterySystem(config?: Partial<MasteryConfig>): NiceMastery;
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
export type PlayerId = string;
|
|
2
|
-
export type LobbyId = string;
|
|
3
|
-
export type MatchId = string;
|
|
4
|
-
export type PartyId = string;
|
|
5
|
-
export interface MatchPlayer {
|
|
6
|
-
id: PlayerId;
|
|
7
|
-
displayName: string;
|
|
8
|
-
skillRating: number;
|
|
9
|
-
level?: number;
|
|
10
|
-
connectionQuality?: number;
|
|
11
|
-
region?: string;
|
|
12
|
-
partyId?: PartyId;
|
|
13
|
-
isReady: boolean;
|
|
14
|
-
team?: number;
|
|
15
|
-
slot?: number;
|
|
16
|
-
joinedAt: number;
|
|
17
|
-
customData?: Record<string, unknown>;
|
|
18
|
-
}
|
|
19
|
-
export interface QueueEntry {
|
|
20
|
-
playerId: PlayerId;
|
|
21
|
-
partyId?: PartyId;
|
|
22
|
-
partyMembers?: PlayerId[];
|
|
23
|
-
skillRating: number;
|
|
24
|
-
joinedAt: number;
|
|
25
|
-
searchParams: SearchParams;
|
|
26
|
-
expandedSkillRange: number;
|
|
27
|
-
priority: number;
|
|
28
|
-
}
|
|
29
|
-
export interface SearchParams {
|
|
30
|
-
gameMode: string;
|
|
31
|
-
region?: string;
|
|
32
|
-
mapPreferences?: string[];
|
|
33
|
-
teamSize?: number;
|
|
34
|
-
allowBackfill?: boolean;
|
|
35
|
-
customFilters?: Record<string, unknown>;
|
|
36
|
-
}
|
|
37
|
-
export interface Party {
|
|
38
|
-
id: PartyId;
|
|
39
|
-
leaderId: PlayerId;
|
|
40
|
-
members: PlayerId[];
|
|
41
|
-
maxSize: number;
|
|
42
|
-
createdAt: number;
|
|
43
|
-
isPublic: boolean;
|
|
44
|
-
invitedPlayers: Set<PlayerId>;
|
|
45
|
-
averageSkill: number;
|
|
46
|
-
}
|
|
47
|
-
export interface Lobby {
|
|
48
|
-
id: LobbyId;
|
|
49
|
-
hostId: PlayerId;
|
|
50
|
-
players: Map<PlayerId, MatchPlayer>;
|
|
51
|
-
maxPlayers: number;
|
|
52
|
-
minPlayers: number;
|
|
53
|
-
gameMode: string;
|
|
54
|
-
mapId?: string;
|
|
55
|
-
settings: LobbySettings;
|
|
56
|
-
state: LobbyState;
|
|
57
|
-
teams: LobbyTeam[];
|
|
58
|
-
createdAt: number;
|
|
59
|
-
readyCheckStartedAt?: number;
|
|
60
|
-
readyCheckTimeout: number;
|
|
61
|
-
isPublic: boolean;
|
|
62
|
-
password?: string;
|
|
63
|
-
region: string;
|
|
64
|
-
averageSkill: number;
|
|
65
|
-
}
|
|
66
|
-
export type LobbyState = 'waiting' | 'ready-check' | 'starting' | 'in-game' | 'post-game' | 'closed';
|
|
67
|
-
export interface LobbySettings {
|
|
68
|
-
allowSpectators: boolean;
|
|
69
|
-
autoTeamBalance: boolean;
|
|
70
|
-
friendlyFire: boolean;
|
|
71
|
-
maxRounds?: number;
|
|
72
|
-
timeLimit?: number;
|
|
73
|
-
scoreLimit?: number;
|
|
74
|
-
customSettings: Record<string, unknown>;
|
|
75
|
-
}
|
|
76
|
-
export interface LobbyTeam {
|
|
77
|
-
id: number;
|
|
78
|
-
name: string;
|
|
79
|
-
maxPlayers: number;
|
|
80
|
-
players: PlayerId[];
|
|
81
|
-
color?: string;
|
|
82
|
-
}
|
|
83
|
-
export interface Match {
|
|
84
|
-
id: MatchId;
|
|
85
|
-
lobbyId: LobbyId;
|
|
86
|
-
players: MatchPlayer[];
|
|
87
|
-
gameMode: string;
|
|
88
|
-
mapId: string;
|
|
89
|
-
region: string;
|
|
90
|
-
teams: LobbyTeam[];
|
|
91
|
-
startedAt: number;
|
|
92
|
-
endedAt?: number;
|
|
93
|
-
state: MatchState;
|
|
94
|
-
serverInfo?: ServerInfo;
|
|
95
|
-
}
|
|
96
|
-
export type MatchState = 'initializing' | 'loading' | 'running' | 'paused' | 'ending' | 'completed' | 'cancelled';
|
|
97
|
-
export interface ServerInfo {
|
|
98
|
-
address: string;
|
|
99
|
-
port: number;
|
|
100
|
-
token?: string;
|
|
101
|
-
region: string;
|
|
102
|
-
}
|
|
103
|
-
export type MatchEventType = 'queue-joined' | 'queue-left' | 'queue-updated' | 'match-found' | 'lobby-created' | 'lobby-joined' | 'lobby-left' | 'lobby-closed' | 'player-joined' | 'player-left' | 'player-ready' | 'player-unready' | 'team-changed' | 'host-changed' | 'settings-changed' | 'ready-check-started' | 'ready-check-passed' | 'ready-check-failed' | 'match-starting' | 'match-started' | 'match-ended' | 'party-created' | 'party-joined' | 'party-left' | 'party-disbanded';
|
|
104
|
-
export interface MatchEvent {
|
|
105
|
-
type: MatchEventType;
|
|
106
|
-
timestamp: number;
|
|
107
|
-
data?: unknown;
|
|
108
|
-
}
|
|
109
|
-
export type MatchEventCallback = (event: MatchEvent) => void;
|
|
110
|
-
export interface MatchConfig {
|
|
111
|
-
/** Default skill range for matching */
|
|
112
|
-
initialSkillRange: number;
|
|
113
|
-
/** Skill range expansion per second */
|
|
114
|
-
skillRangeExpansion: number;
|
|
115
|
-
/** Max skill range */
|
|
116
|
-
maxSkillRange: number;
|
|
117
|
-
/** Ready check timeout (seconds) */
|
|
118
|
-
readyCheckTimeout: number;
|
|
119
|
-
/** Max queue time before priority boost (seconds) */
|
|
120
|
-
maxQueueTime: number;
|
|
121
|
-
/** Min players to start */
|
|
122
|
-
minPlayersToStart: number;
|
|
123
|
-
/** Enable backfill */
|
|
124
|
-
enableBackfill: boolean;
|
|
125
|
-
/** Max party size */
|
|
126
|
-
maxPartySize: number;
|
|
127
|
-
/** Auto-balance teams */
|
|
128
|
-
autoBalanceTeams: boolean;
|
|
129
|
-
/** Match tick interval (ms) */
|
|
130
|
-
tickInterval: number;
|
|
131
|
-
}
|
|
132
|
-
export declare const DEFAULT_MATCH_CONFIG: MatchConfig;
|
|
133
|
-
export declare class NiceMatch {
|
|
134
|
-
private config;
|
|
135
|
-
private players;
|
|
136
|
-
private queue;
|
|
137
|
-
private parties;
|
|
138
|
-
private playerToParty;
|
|
139
|
-
private lobbies;
|
|
140
|
-
private matches;
|
|
141
|
-
private playerToLobby;
|
|
142
|
-
private idCounter;
|
|
143
|
-
private tickTimer?;
|
|
144
|
-
private eventListeners;
|
|
145
|
-
constructor(config?: Partial<MatchConfig>);
|
|
146
|
-
on(event: MatchEventType, callback: MatchEventCallback): () => void;
|
|
147
|
-
private emit;
|
|
148
|
-
registerPlayer(player: MatchPlayer): void;
|
|
149
|
-
unregisterPlayer(playerId: PlayerId): void;
|
|
150
|
-
getPlayer(playerId: PlayerId): MatchPlayer | undefined;
|
|
151
|
-
joinQueue(playerId: PlayerId, searchParams: SearchParams): boolean;
|
|
152
|
-
leaveQueue(playerId: PlayerId): void;
|
|
153
|
-
isInQueue(playerId: PlayerId): boolean;
|
|
154
|
-
getQueuePosition(playerId: PlayerId): number;
|
|
155
|
-
getQueueStats(): {
|
|
156
|
-
total: number;
|
|
157
|
-
byMode: Record<string, number>;
|
|
158
|
-
};
|
|
159
|
-
startMatchmaking(): void;
|
|
160
|
-
stopMatchmaking(): void;
|
|
161
|
-
private processQueue;
|
|
162
|
-
private attemptMatch;
|
|
163
|
-
private createMatchFromQueue;
|
|
164
|
-
createParty(leaderId: PlayerId): PartyId | null;
|
|
165
|
-
inviteToParty(partyId: PartyId, inviterId: PlayerId, inviteeId: PlayerId): boolean;
|
|
166
|
-
joinParty(playerId: PlayerId, partyId: PartyId): boolean;
|
|
167
|
-
leaveParty(playerId: PlayerId): void;
|
|
168
|
-
private recalculatePartySkill;
|
|
169
|
-
getParty(partyId: PartyId): Party | undefined;
|
|
170
|
-
getPlayerParty(playerId: PlayerId): Party | undefined;
|
|
171
|
-
createLobby(hostId: PlayerId, options: {
|
|
172
|
-
gameMode: string;
|
|
173
|
-
maxPlayers?: number;
|
|
174
|
-
minPlayers?: number;
|
|
175
|
-
isPublic?: boolean;
|
|
176
|
-
password?: string;
|
|
177
|
-
settings?: Partial<LobbySettings>;
|
|
178
|
-
teamCount?: number;
|
|
179
|
-
}): LobbyId | null;
|
|
180
|
-
joinLobby(playerId: PlayerId, lobbyId: LobbyId, password?: string): boolean;
|
|
181
|
-
leaveLobby(playerId: PlayerId): void;
|
|
182
|
-
closeLobby(lobbyId: LobbyId): void;
|
|
183
|
-
private recalculateLobbySkill;
|
|
184
|
-
setReady(playerId: PlayerId, ready: boolean): void;
|
|
185
|
-
startReadyCheck(lobbyId: LobbyId): boolean;
|
|
186
|
-
private checkReadyStatus;
|
|
187
|
-
changeTeam(playerId: PlayerId, newTeam: number): boolean;
|
|
188
|
-
startMatch(lobbyId: LobbyId): MatchId | null;
|
|
189
|
-
endMatch(matchId: MatchId): void;
|
|
190
|
-
getMatch(matchId: MatchId): Match | undefined;
|
|
191
|
-
getLobby(lobbyId: LobbyId): Lobby | undefined;
|
|
192
|
-
getPlayerLobby(playerId: PlayerId): Lobby | undefined;
|
|
193
|
-
getPublicLobbies(): Lobby[];
|
|
194
|
-
destroy(): void;
|
|
195
|
-
}
|
|
196
|
-
export declare function createMatchSystem(config?: Partial<MatchConfig>): NiceMatch;
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
export type GemType = 'red' | 'blue' | 'green' | 'yellow' | 'purple' | 'orange' | 'wild';
|
|
2
|
-
export type SpecialType = 'normal' | 'horizontal' | 'vertical' | 'bomb' | 'color' | 'lightning';
|
|
3
|
-
export interface Position {
|
|
4
|
-
row: number;
|
|
5
|
-
col: number;
|
|
6
|
-
}
|
|
7
|
-
export interface Gem {
|
|
8
|
-
id: string;
|
|
9
|
-
type: GemType;
|
|
10
|
-
special: SpecialType;
|
|
11
|
-
position: Position;
|
|
12
|
-
isMatched: boolean;
|
|
13
|
-
isMoving: boolean;
|
|
14
|
-
isFalling: boolean;
|
|
15
|
-
targetPosition?: Position;
|
|
16
|
-
metadata?: Record<string, unknown>;
|
|
17
|
-
}
|
|
18
|
-
export interface Match {
|
|
19
|
-
id: string;
|
|
20
|
-
gems: Gem[];
|
|
21
|
-
type: GemType;
|
|
22
|
-
length: number;
|
|
23
|
-
isHorizontal: boolean;
|
|
24
|
-
isVertical: boolean;
|
|
25
|
-
spawnsSpecial?: SpecialType;
|
|
26
|
-
score: number;
|
|
27
|
-
}
|
|
28
|
-
export interface Board {
|
|
29
|
-
width: number;
|
|
30
|
-
height: number;
|
|
31
|
-
grid: (Gem | null)[][];
|
|
32
|
-
moveCount: number;
|
|
33
|
-
score: number;
|
|
34
|
-
combo: number;
|
|
35
|
-
maxCombo: number;
|
|
36
|
-
}
|
|
37
|
-
export type ObjectiveType = 'score' | 'collect' | 'clear' | 'moves';
|
|
38
|
-
export interface Objective {
|
|
39
|
-
id: string;
|
|
40
|
-
type: ObjectiveType;
|
|
41
|
-
target: number;
|
|
42
|
-
current: number;
|
|
43
|
-
gemType?: GemType;
|
|
44
|
-
specialType?: SpecialType;
|
|
45
|
-
isComplete: boolean;
|
|
46
|
-
}
|
|
47
|
-
export type Match3EventType = 'swap' | 'swap-fail' | 'match' | 'cascade' | 'gem-destroy' | 'gem-spawn' | 'gem-fall' | 'special-create' | 'special-activate' | 'combo' | 'objective-progress' | 'objective-complete' | 'level-complete' | 'game-over';
|
|
48
|
-
export interface Match3Event {
|
|
49
|
-
type: Match3EventType;
|
|
50
|
-
timestamp: number;
|
|
51
|
-
data: unknown;
|
|
52
|
-
}
|
|
53
|
-
export type Match3EventCallback = (event: Match3Event) => void;
|
|
54
|
-
export interface Match3Config {
|
|
55
|
-
/** Board width */
|
|
56
|
-
width: number;
|
|
57
|
-
/** Board height */
|
|
58
|
-
height: number;
|
|
59
|
-
/** Minimum match length */
|
|
60
|
-
minMatchLength: number;
|
|
61
|
-
/** Available gem types */
|
|
62
|
-
gemTypes: GemType[];
|
|
63
|
-
/** Score per gem */
|
|
64
|
-
scorePerGem: number;
|
|
65
|
-
/** Cascade multiplier */
|
|
66
|
-
cascadeMultiplier: number;
|
|
67
|
-
/** Match 4 creates special */
|
|
68
|
-
match4Special: SpecialType;
|
|
69
|
-
/** Match 5 creates special */
|
|
70
|
-
match5Special: SpecialType;
|
|
71
|
-
/** L/T match creates special */
|
|
72
|
-
lMatchSpecial: SpecialType;
|
|
73
|
-
/** Animation time for swapping (ms) */
|
|
74
|
-
swapTime: number;
|
|
75
|
-
/** Animation time for falling (ms) */
|
|
76
|
-
fallTime: number;
|
|
77
|
-
}
|
|
78
|
-
export declare const DEFAULT_MATCH3_CONFIG: Match3Config;
|
|
79
|
-
export declare class NiceMatch3 {
|
|
80
|
-
private config;
|
|
81
|
-
private board;
|
|
82
|
-
private objectives;
|
|
83
|
-
private isProcessing;
|
|
84
|
-
private eventListeners;
|
|
85
|
-
private nextId;
|
|
86
|
-
constructor(config?: Partial<Match3Config>);
|
|
87
|
-
on(event: Match3EventType, callback: Match3EventCallback): () => void;
|
|
88
|
-
private emit;
|
|
89
|
-
createBoard(): Board;
|
|
90
|
-
private createGem;
|
|
91
|
-
private resolveInitialMatches;
|
|
92
|
-
getBoard(): Board | null;
|
|
93
|
-
getGem(row: number, col: number): Gem | null;
|
|
94
|
-
canSwap(pos1: Position, pos2: Position): boolean;
|
|
95
|
-
swap(pos1: Position, pos2: Position): Promise<boolean>;
|
|
96
|
-
private findAllMatches;
|
|
97
|
-
private createMatch;
|
|
98
|
-
private processMatches;
|
|
99
|
-
private removeMatchedGems;
|
|
100
|
-
private applyGravity;
|
|
101
|
-
private fillEmptySpaces;
|
|
102
|
-
activateSpecial(position: Position): Gem[];
|
|
103
|
-
setObjectives(objectives: Omit<Objective, 'current' | 'isComplete'>[]): void;
|
|
104
|
-
private updateObjectives;
|
|
105
|
-
private checkObjectives;
|
|
106
|
-
getObjectives(): Objective[];
|
|
107
|
-
findHint(): [Position, Position] | null;
|
|
108
|
-
private wouldCreateMatch;
|
|
109
|
-
private hasMatchAt;
|
|
110
|
-
shuffle(): void;
|
|
111
|
-
getScore(): number;
|
|
112
|
-
getCombo(): number;
|
|
113
|
-
getMaxCombo(): number;
|
|
114
|
-
getMoveCount(): number;
|
|
115
|
-
hasPossibleMoves(): boolean;
|
|
116
|
-
destroy(): void;
|
|
117
|
-
}
|
|
118
|
-
export declare function createMatch3System(config?: Partial<Match3Config>): NiceMatch3;
|