@nice2dev/game-engine 1.3.13 → 1.3.15
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,137 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
export type EquipmentId = string;
|
|
3
|
-
export type SlotId = string;
|
|
4
|
-
export type StatId = string;
|
|
5
|
-
export type EnchantmentId = string;
|
|
6
|
-
export type SetId = string;
|
|
7
|
-
export type GemId = string;
|
|
8
|
-
export type CharacterId = string;
|
|
9
|
-
export interface SlotDefinition {
|
|
10
|
-
id: SlotId;
|
|
11
|
-
name: string;
|
|
12
|
-
allowedTypes: string[];
|
|
13
|
-
required?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export interface EquipmentItem {
|
|
16
|
-
id: EquipmentId;
|
|
17
|
-
name: string;
|
|
18
|
-
type: string;
|
|
19
|
-
rarity: EquipmentRarity;
|
|
20
|
-
level: number;
|
|
21
|
-
stats: Record<StatId, number>;
|
|
22
|
-
requirements?: EquipmentRequirements;
|
|
23
|
-
setId?: SetId;
|
|
24
|
-
sockets?: Socket[];
|
|
25
|
-
enchantments?: Enchantment[];
|
|
26
|
-
durability?: number;
|
|
27
|
-
maxDurability?: number;
|
|
28
|
-
description?: string;
|
|
29
|
-
icon?: string;
|
|
30
|
-
}
|
|
31
|
-
export type EquipmentRarity = 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary' | 'mythic';
|
|
32
|
-
export interface EquipmentRequirements {
|
|
33
|
-
level?: number;
|
|
34
|
-
stats?: Record<StatId, number>;
|
|
35
|
-
class?: string[];
|
|
36
|
-
quest?: string;
|
|
37
|
-
}
|
|
38
|
-
export interface Socket {
|
|
39
|
-
type: string;
|
|
40
|
-
gemId?: GemId;
|
|
41
|
-
}
|
|
42
|
-
export interface Enchantment {
|
|
43
|
-
id: EnchantmentId;
|
|
44
|
-
name: string;
|
|
45
|
-
level: number;
|
|
46
|
-
stats: Record<StatId, number>;
|
|
47
|
-
}
|
|
48
|
-
export interface EquipmentSet {
|
|
49
|
-
id: SetId;
|
|
50
|
-
name: string;
|
|
51
|
-
pieces: EquipmentId[];
|
|
52
|
-
bonuses: SetBonus[];
|
|
53
|
-
}
|
|
54
|
-
export interface SetBonus {
|
|
55
|
-
piecesRequired: number;
|
|
56
|
-
stats: Record<StatId, number>;
|
|
57
|
-
ability?: string;
|
|
58
|
-
description: string;
|
|
59
|
-
}
|
|
60
|
-
export interface Gem {
|
|
61
|
-
id: GemId;
|
|
62
|
-
name: string;
|
|
63
|
-
type: string;
|
|
64
|
-
stats: Record<StatId, number>;
|
|
65
|
-
rarity: EquipmentRarity;
|
|
66
|
-
}
|
|
67
|
-
export interface CharacterEquipment {
|
|
68
|
-
characterId: CharacterId;
|
|
69
|
-
slots: Map<SlotId, EquipmentId | null>;
|
|
70
|
-
activeSetBonuses: Map<SetId, number[]>;
|
|
71
|
-
}
|
|
72
|
-
export interface StatSummary {
|
|
73
|
-
base: Record<StatId, number>;
|
|
74
|
-
fromEquipment: Record<StatId, number>;
|
|
75
|
-
fromEnchantments: Record<StatId, number>;
|
|
76
|
-
fromGems: Record<StatId, number>;
|
|
77
|
-
fromSetBonuses: Record<StatId, number>;
|
|
78
|
-
total: Record<StatId, number>;
|
|
79
|
-
}
|
|
80
|
-
export type EquipmentEventType = 'item-equipped' | 'item-unequipped' | 'item-swapped' | 'gem-socketed' | 'gem-removed' | 'enchantment-added' | 'enchantment-removed' | 'set-bonus-activated' | 'set-bonus-deactivated' | 'durability-changed';
|
|
81
|
-
export interface EquipmentEvent {
|
|
82
|
-
type: EquipmentEventType;
|
|
83
|
-
characterId: CharacterId;
|
|
84
|
-
slotId?: SlotId;
|
|
85
|
-
itemId?: EquipmentId;
|
|
86
|
-
setId?: SetId;
|
|
87
|
-
bonusLevel?: number;
|
|
88
|
-
}
|
|
89
|
-
export interface EquipmentConfig {
|
|
90
|
-
defaultSlots?: SlotDefinition[];
|
|
91
|
-
enableDurability?: boolean;
|
|
92
|
-
enableEnchantments?: boolean;
|
|
93
|
-
enableSockets?: boolean;
|
|
94
|
-
}
|
|
95
|
-
export declare const DEFAULT_EQUIPMENT_CONFIG: EquipmentConfig;
|
|
96
|
-
export declare class NiceEquipment extends EventEmitter {
|
|
97
|
-
private slots;
|
|
98
|
-
private items;
|
|
99
|
-
private sets;
|
|
100
|
-
private gems;
|
|
101
|
-
private characters;
|
|
102
|
-
private config;
|
|
103
|
-
constructor(config?: Partial<EquipmentConfig>);
|
|
104
|
-
registerSlot(slot: SlotDefinition): void;
|
|
105
|
-
unregisterSlot(slotId: SlotId): boolean;
|
|
106
|
-
getSlot(slotId: SlotId): SlotDefinition | undefined;
|
|
107
|
-
getAllSlots(): SlotDefinition[];
|
|
108
|
-
registerItem(item: EquipmentItem): void;
|
|
109
|
-
unregisterItem(itemId: EquipmentId): boolean;
|
|
110
|
-
getItem(itemId: EquipmentId): EquipmentItem | undefined;
|
|
111
|
-
registerSet(set: EquipmentSet): void;
|
|
112
|
-
unregisterSet(setId: SetId): boolean;
|
|
113
|
-
getSet(setId: SetId): EquipmentSet | undefined;
|
|
114
|
-
registerGem(gem: Gem): void;
|
|
115
|
-
unregisterGem(gemId: GemId): boolean;
|
|
116
|
-
getGem(gemId: GemId): Gem | undefined;
|
|
117
|
-
registerCharacter(characterId: CharacterId): void;
|
|
118
|
-
unregisterCharacter(characterId: CharacterId): boolean;
|
|
119
|
-
equip(characterId: CharacterId, slotId: SlotId, itemId: EquipmentId): boolean;
|
|
120
|
-
unequip(characterId: CharacterId, slotId: SlotId): EquipmentId | null;
|
|
121
|
-
swap(characterId: CharacterId, slotId1: SlotId, slotId2: SlotId): boolean;
|
|
122
|
-
socketGem(itemId: EquipmentId, socketIndex: number, gemId: GemId): boolean;
|
|
123
|
-
removeGem(itemId: EquipmentId, socketIndex: number): GemId | null;
|
|
124
|
-
addEnchantment(itemId: EquipmentId, enchantment: Enchantment): boolean;
|
|
125
|
-
removeEnchantment(itemId: EquipmentId, enchantmentId: EnchantmentId): boolean;
|
|
126
|
-
private updateSetBonuses;
|
|
127
|
-
getSetBonuses(characterId: CharacterId): Map<SetId, SetBonus[]>;
|
|
128
|
-
calculateStats(characterId: CharacterId, baseStats?: Record<StatId, number>): StatSummary;
|
|
129
|
-
compare(characterId: CharacterId, slotId: SlotId, newItemId: EquipmentId): Record<StatId, number>;
|
|
130
|
-
getEquipped(characterId: CharacterId, slotId: SlotId): EquipmentItem | null;
|
|
131
|
-
getAllEquipped(characterId: CharacterId): Map<SlotId, EquipmentItem>;
|
|
132
|
-
isSlotEmpty(characterId: CharacterId, slotId: SlotId): boolean;
|
|
133
|
-
}
|
|
134
|
-
export declare function createEquipmentSystem(config?: Partial<EquipmentConfig>): NiceEquipment;
|
|
135
|
-
export declare function defineEquipmentItem(id: EquipmentId, name: string, type: string, stats: Record<StatId, number>, options?: Partial<Omit<EquipmentItem, 'id' | 'name' | 'type' | 'stats'>>): EquipmentItem;
|
|
136
|
-
export declare function defineEquipmentSet(id: SetId, name: string, pieces: EquipmentId[], bonuses: SetBonus[]): EquipmentSet;
|
|
137
|
-
export default NiceEquipment;
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
export type EventId = string;
|
|
2
|
-
export type ObjectiveId = string;
|
|
3
|
-
export type EventRewardId = string;
|
|
4
|
-
export type EventType = 'limited-time' | 'seasonal' | 'collaboration' | 'anniversary' | 'boss-rush' | 'ranking' | 'login-campaign' | 'raid' | 'pvp-season' | 'festival' | 'custom';
|
|
5
|
-
export type EventStatus = 'upcoming' | 'active' | 'ending-soon' | 'ended' | 'archived';
|
|
6
|
-
export type ObjectiveStatus = 'locked' | 'available' | 'in-progress' | 'completed' | 'claimed';
|
|
7
|
-
export interface EventDefinition {
|
|
8
|
-
id: EventId;
|
|
9
|
-
name: string;
|
|
10
|
-
description: string;
|
|
11
|
-
type: EventType;
|
|
12
|
-
startDate: number;
|
|
13
|
-
endDate: number;
|
|
14
|
-
gracePeriod?: number;
|
|
15
|
-
recurring?: boolean;
|
|
16
|
-
recurringPattern?: 'daily' | 'weekly' | 'monthly' | 'yearly';
|
|
17
|
-
objectives: EventObjective[];
|
|
18
|
-
milestones: EventMilestone[];
|
|
19
|
-
shop?: EventShop;
|
|
20
|
-
stages?: EventStage[];
|
|
21
|
-
eventCurrency?: {
|
|
22
|
-
id: string;
|
|
23
|
-
name: string;
|
|
24
|
-
icon: string;
|
|
25
|
-
maxAmount?: number;
|
|
26
|
-
};
|
|
27
|
-
levelRequired?: number;
|
|
28
|
-
prerequisiteEventId?: EventId;
|
|
29
|
-
bannerUrl?: string;
|
|
30
|
-
bgColor?: string;
|
|
31
|
-
theme?: string;
|
|
32
|
-
hasLeaderboard: boolean;
|
|
33
|
-
hasGlobalProgress: boolean;
|
|
34
|
-
rewardsAfterEnd: boolean;
|
|
35
|
-
}
|
|
36
|
-
export interface EventObjective {
|
|
37
|
-
id: ObjectiveId;
|
|
38
|
-
name: string;
|
|
39
|
-
description: string;
|
|
40
|
-
targetType: 'count' | 'collect' | 'defeat' | 'score' | 'reach' | 'custom';
|
|
41
|
-
targetId?: string;
|
|
42
|
-
targetAmount: number;
|
|
43
|
-
prerequisiteObjectiveId?: ObjectiveId;
|
|
44
|
-
availableFrom?: number;
|
|
45
|
-
availableUntil?: number;
|
|
46
|
-
rewards: EventReward[];
|
|
47
|
-
pointsAwarded?: number;
|
|
48
|
-
countMethod?: 'cumulative' | 'single-session' | 'daily';
|
|
49
|
-
isRepeatable?: boolean;
|
|
50
|
-
maxCompletions?: number;
|
|
51
|
-
}
|
|
52
|
-
export interface EventReward {
|
|
53
|
-
id: EventRewardId;
|
|
54
|
-
type: 'item' | 'currency' | 'event_currency' | 'title' | 'cosmetic' | 'buff';
|
|
55
|
-
itemId?: string;
|
|
56
|
-
currency?: string;
|
|
57
|
-
amount: number;
|
|
58
|
-
rarity?: 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary';
|
|
59
|
-
}
|
|
60
|
-
export interface EventMilestone {
|
|
61
|
-
id: string;
|
|
62
|
-
name: string;
|
|
63
|
-
pointsRequired: number;
|
|
64
|
-
rewards: EventReward[];
|
|
65
|
-
isGlobal?: boolean;
|
|
66
|
-
}
|
|
67
|
-
export interface EventStage {
|
|
68
|
-
id: string;
|
|
69
|
-
name: string;
|
|
70
|
-
description: string;
|
|
71
|
-
order: number;
|
|
72
|
-
unlockCondition: 'date' | 'previous-stage' | 'points' | 'objective';
|
|
73
|
-
unlockValue?: number | string;
|
|
74
|
-
unlockDate?: number;
|
|
75
|
-
content: {
|
|
76
|
-
type: 'boss' | 'dungeon' | 'quest-chain' | 'challenge' | 'custom';
|
|
77
|
-
contentId: string;
|
|
78
|
-
difficulty?: number;
|
|
79
|
-
};
|
|
80
|
-
firstClearRewards?: EventReward[];
|
|
81
|
-
repeatRewards?: EventReward[];
|
|
82
|
-
}
|
|
83
|
-
export interface EventShopItem {
|
|
84
|
-
id: string;
|
|
85
|
-
itemId: string;
|
|
86
|
-
name: string;
|
|
87
|
-
description: string;
|
|
88
|
-
currencyType: 'event' | 'premium' | 'standard';
|
|
89
|
-
currencyId: string;
|
|
90
|
-
cost: number;
|
|
91
|
-
stock: number;
|
|
92
|
-
maxPurchasePerPlayer?: number;
|
|
93
|
-
availableFrom?: number;
|
|
94
|
-
availableUntil?: number;
|
|
95
|
-
featured?: boolean;
|
|
96
|
-
sortOrder: number;
|
|
97
|
-
}
|
|
98
|
-
export interface EventShop {
|
|
99
|
-
items: EventShopItem[];
|
|
100
|
-
refreshTime?: number;
|
|
101
|
-
exchangeRates?: Array<{
|
|
102
|
-
fromCurrency: string;
|
|
103
|
-
toCurrency: string;
|
|
104
|
-
rate: number;
|
|
105
|
-
}>;
|
|
106
|
-
}
|
|
107
|
-
export interface EventPlayerProgress {
|
|
108
|
-
playerId: string;
|
|
109
|
-
eventId: EventId;
|
|
110
|
-
totalPoints: number;
|
|
111
|
-
objectiveProgress: Map<ObjectiveId, ObjectiveProgress>;
|
|
112
|
-
claimedMilestones: string[];
|
|
113
|
-
completedStages: string[];
|
|
114
|
-
stageAttempts: Map<string, number>;
|
|
115
|
-
purchases: Map<string, number>;
|
|
116
|
-
eventCurrency: number;
|
|
117
|
-
firstParticipation: number;
|
|
118
|
-
lastParticipation: number;
|
|
119
|
-
score?: number;
|
|
120
|
-
rank?: number;
|
|
121
|
-
}
|
|
122
|
-
export interface ObjectiveProgress {
|
|
123
|
-
objectiveId: ObjectiveId;
|
|
124
|
-
status: ObjectiveStatus;
|
|
125
|
-
currentAmount: number;
|
|
126
|
-
completions: number;
|
|
127
|
-
completedAt?: number;
|
|
128
|
-
claimedAt?: number;
|
|
129
|
-
}
|
|
130
|
-
export interface LeaderboardEntry {
|
|
131
|
-
playerId: string;
|
|
132
|
-
playerName: string;
|
|
133
|
-
score: number;
|
|
134
|
-
rank: number;
|
|
135
|
-
change?: number;
|
|
136
|
-
rewards?: EventReward[];
|
|
137
|
-
}
|
|
138
|
-
export type EventEventType = 'event-started' | 'event-ending-soon' | 'event-ended' | 'objective-progress' | 'objective-completed' | 'reward-claimed' | 'milestone-reached' | 'stage-completed' | 'shop-purchase' | 'currency-earned' | 'rank-updated' | 'global-progress-updated';
|
|
139
|
-
export interface EventSystemEvent {
|
|
140
|
-
type: EventEventType;
|
|
141
|
-
timestamp: number;
|
|
142
|
-
eventId: EventId;
|
|
143
|
-
playerId?: string;
|
|
144
|
-
data?: unknown;
|
|
145
|
-
}
|
|
146
|
-
export type EventSystemCallback = (event: EventSystemEvent) => void;
|
|
147
|
-
export interface EventConfig {
|
|
148
|
-
endingSoonThreshold: number;
|
|
149
|
-
maxActiveEvents: number;
|
|
150
|
-
archiveAfterDays: number;
|
|
151
|
-
storageKey: string;
|
|
152
|
-
}
|
|
153
|
-
export declare const DEFAULT_EVENT_CONFIG: EventConfig;
|
|
154
|
-
export declare class NiceEvent {
|
|
155
|
-
private config;
|
|
156
|
-
private events;
|
|
157
|
-
private playerProgress;
|
|
158
|
-
private globalProgress;
|
|
159
|
-
private leaderboards;
|
|
160
|
-
private eventListeners;
|
|
161
|
-
private updateInterval?;
|
|
162
|
-
constructor(config?: Partial<EventConfig>);
|
|
163
|
-
on(event: EventEventType, callback: EventSystemCallback): () => void;
|
|
164
|
-
private emit;
|
|
165
|
-
private startUpdateLoop;
|
|
166
|
-
private checkEventStatuses;
|
|
167
|
-
registerEvent(event: EventDefinition): void;
|
|
168
|
-
getEventStatus(eventId: EventId): EventStatus;
|
|
169
|
-
getActiveEvents(): EventDefinition[];
|
|
170
|
-
getUpcomingEvents(): EventDefinition[];
|
|
171
|
-
private getOrCreateProgress;
|
|
172
|
-
getPlayerProgress(playerId: string, eventId: EventId): EventPlayerProgress | undefined;
|
|
173
|
-
updateObjectiveProgress(playerId: string, eventId: EventId, objectiveId: ObjectiveId, amount: number): ObjectiveProgress | null;
|
|
174
|
-
private completeObjective;
|
|
175
|
-
private unlockDependentObjectives;
|
|
176
|
-
claimObjectiveRewards(playerId: string, eventId: EventId, objectiveId: ObjectiveId): EventReward[] | null;
|
|
177
|
-
private checkMilestones;
|
|
178
|
-
claimMilestone(playerId: string, eventId: EventId, milestoneId: string): EventReward[] | null;
|
|
179
|
-
canAttemptStage(playerId: string, eventId: EventId, stageId: string): boolean;
|
|
180
|
-
completeStage(playerId: string, eventId: EventId, stageId: string, score?: number): EventReward[];
|
|
181
|
-
canPurchase(playerId: string, eventId: EventId, itemId: string): {
|
|
182
|
-
can: boolean;
|
|
183
|
-
reason?: string;
|
|
184
|
-
};
|
|
185
|
-
purchaseItem(playerId: string, eventId: EventId, itemId: string): boolean;
|
|
186
|
-
private updateGlobalProgress;
|
|
187
|
-
private updateLeaderboard;
|
|
188
|
-
getLeaderboard(eventId: EventId, limit?: number): LeaderboardEntry[];
|
|
189
|
-
getPlayerRank(playerId: string, eventId: EventId): LeaderboardEntry | undefined;
|
|
190
|
-
getEvent(eventId: EventId): EventDefinition | undefined;
|
|
191
|
-
getAllEvents(): EventDefinition[];
|
|
192
|
-
getGlobalProgress(eventId: EventId): {
|
|
193
|
-
totalPoints: number;
|
|
194
|
-
participants: number;
|
|
195
|
-
} | undefined;
|
|
196
|
-
getAvailableObjectives(playerId: string, eventId: EventId): EventObjective[];
|
|
197
|
-
private save;
|
|
198
|
-
private load;
|
|
199
|
-
reset(): void;
|
|
200
|
-
destroy(): void;
|
|
201
|
-
}
|
|
202
|
-
export declare function createEventSystem(config?: Partial<EventConfig>): NiceEvent;
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
export type EventName = string;
|
|
2
|
-
export type EventCallback<T = unknown> = (data: T, event: GameEvent<T>) => void;
|
|
3
|
-
export interface GameEvent<T = unknown> {
|
|
4
|
-
name: EventName;
|
|
5
|
-
data: T;
|
|
6
|
-
timestamp: number;
|
|
7
|
-
source?: string;
|
|
8
|
-
cancelled: boolean;
|
|
9
|
-
propagationStopped: boolean;
|
|
10
|
-
}
|
|
11
|
-
export interface EventListener<T = unknown> {
|
|
12
|
-
id: string;
|
|
13
|
-
eventName: EventName;
|
|
14
|
-
callback: EventCallback<T>;
|
|
15
|
-
priority: number;
|
|
16
|
-
once: boolean;
|
|
17
|
-
context?: unknown;
|
|
18
|
-
filter?: (data: T) => boolean;
|
|
19
|
-
}
|
|
20
|
-
export interface QueuedEvent<T = unknown> {
|
|
21
|
-
name: EventName;
|
|
22
|
-
data: T;
|
|
23
|
-
source?: string;
|
|
24
|
-
delay: number;
|
|
25
|
-
timestamp: number;
|
|
26
|
-
}
|
|
27
|
-
export interface EventStats {
|
|
28
|
-
eventName: EventName;
|
|
29
|
-
emitCount: number;
|
|
30
|
-
listenerCount: number;
|
|
31
|
-
lastEmit: number;
|
|
32
|
-
avgProcessTime: number;
|
|
33
|
-
totalProcessTime: number;
|
|
34
|
-
}
|
|
35
|
-
export interface EventBusConfig {
|
|
36
|
-
/** Enable event history */
|
|
37
|
-
trackHistory: boolean;
|
|
38
|
-
/** Max history entries */
|
|
39
|
-
maxHistory: number;
|
|
40
|
-
/** Enable statistics */
|
|
41
|
-
trackStats: boolean;
|
|
42
|
-
/** Allow wildcards */
|
|
43
|
-
allowWildcards: boolean;
|
|
44
|
-
/** Log events */
|
|
45
|
-
debug: boolean;
|
|
46
|
-
/** Max listeners per event (0 = unlimited) */
|
|
47
|
-
maxListeners: number;
|
|
48
|
-
}
|
|
49
|
-
export declare const DEFAULT_EVENT_CONFIG: EventBusConfig;
|
|
50
|
-
export declare class NiceEvent {
|
|
51
|
-
private config;
|
|
52
|
-
private listeners;
|
|
53
|
-
private wildcardListeners;
|
|
54
|
-
private queue;
|
|
55
|
-
private history;
|
|
56
|
-
private stats;
|
|
57
|
-
private listenerIdCounter;
|
|
58
|
-
private processing;
|
|
59
|
-
constructor(config?: Partial<EventBusConfig>);
|
|
60
|
-
on<T = unknown>(eventName: EventName, callback: EventCallback<T>, options?: {
|
|
61
|
-
priority?: number;
|
|
62
|
-
once?: boolean;
|
|
63
|
-
context?: unknown;
|
|
64
|
-
filter?: (data: T) => boolean;
|
|
65
|
-
}): () => void;
|
|
66
|
-
once<T = unknown>(eventName: EventName, callback: EventCallback<T>, options?: {
|
|
67
|
-
priority?: number;
|
|
68
|
-
context?: unknown;
|
|
69
|
-
}): () => void;
|
|
70
|
-
off(listenerId: string): boolean;
|
|
71
|
-
off(eventName: EventName, callback?: EventCallback): boolean;
|
|
72
|
-
private removeListenerById;
|
|
73
|
-
private sortByPriority;
|
|
74
|
-
emit<T = unknown>(eventName: EventName, data: T, source?: string): GameEvent<T>;
|
|
75
|
-
private getMatchingWildcards;
|
|
76
|
-
/**Queue event for delayed emission */
|
|
77
|
-
queueEvent<T = unknown>(eventName: EventName, data: T, delay: number, source?: string): void;
|
|
78
|
-
/** Process queued events */
|
|
79
|
-
processQueue(): void;
|
|
80
|
-
clearQueue(): void;
|
|
81
|
-
getQueueLength(): number;
|
|
82
|
-
has(eventName: EventName): boolean;
|
|
83
|
-
listenerCount(eventName?: EventName): number;
|
|
84
|
-
eventNames(): EventName[];
|
|
85
|
-
getHistory(filter?: {
|
|
86
|
-
eventName?: EventName;
|
|
87
|
-
since?: number;
|
|
88
|
-
}): GameEvent[];
|
|
89
|
-
clearHistory(): void;
|
|
90
|
-
private updateStats;
|
|
91
|
-
getStats(eventName?: EventName): EventStats | EventStats[] | undefined;
|
|
92
|
-
clearStats(): void;
|
|
93
|
-
removeAllListeners(eventName?: EventName): void;
|
|
94
|
-
destroy(): void;
|
|
95
|
-
}
|
|
96
|
-
export declare function createEventBus(config?: Partial<EventBusConfig>): NiceEvent;
|
|
97
|
-
export interface TypedEventMap {
|
|
98
|
-
[key: string]: any;
|
|
99
|
-
}
|
|
100
|
-
export declare class TypedEventBus<T extends TypedEventMap> extends NiceEvent {
|
|
101
|
-
emit<K extends keyof T & string>(eventName: K, data: T[K], source?: string): GameEvent<T[K]>;
|
|
102
|
-
on<K extends keyof T & string>(eventName: K, callback: EventCallback<T[K]>, options?: {
|
|
103
|
-
priority?: number;
|
|
104
|
-
once?: boolean;
|
|
105
|
-
context?: unknown;
|
|
106
|
-
}): () => void;
|
|
107
|
-
once<K extends keyof T & string>(eventName: K, callback: EventCallback<T[K]>, options?: {
|
|
108
|
-
priority?: number;
|
|
109
|
-
context?: unknown;
|
|
110
|
-
}): () => void;
|
|
111
|
-
}
|
|
112
|
-
export interface CommonGameEvents {
|
|
113
|
-
'game:start': void;
|
|
114
|
-
'game:pause': void;
|
|
115
|
-
'game:resume': void;
|
|
116
|
-
'game:stop': void;
|
|
117
|
-
'game:save': {
|
|
118
|
-
slotId: string;
|
|
119
|
-
};
|
|
120
|
-
'game:load': {
|
|
121
|
-
slotId: string;
|
|
122
|
-
};
|
|
123
|
-
'scene:load': {
|
|
124
|
-
sceneId: string;
|
|
125
|
-
};
|
|
126
|
-
'scene:unload': {
|
|
127
|
-
sceneId: string;
|
|
128
|
-
};
|
|
129
|
-
'scene:ready': {
|
|
130
|
-
sceneId: string;
|
|
131
|
-
};
|
|
132
|
-
'entity:spawn': {
|
|
133
|
-
entityId: string;
|
|
134
|
-
type: string;
|
|
135
|
-
};
|
|
136
|
-
'entity:destroy': {
|
|
137
|
-
entityId: string;
|
|
138
|
-
};
|
|
139
|
-
'player:spawn': {
|
|
140
|
-
playerId: string;
|
|
141
|
-
};
|
|
142
|
-
'player:death': {
|
|
143
|
-
playerId: string;
|
|
144
|
-
killer?: string;
|
|
145
|
-
};
|
|
146
|
-
'player:respawn': {
|
|
147
|
-
playerId: string;
|
|
148
|
-
};
|
|
149
|
-
'input:action': {
|
|
150
|
-
action: string;
|
|
151
|
-
pressed: boolean;
|
|
152
|
-
};
|
|
153
|
-
'network:connect': void;
|
|
154
|
-
'network:disconnect': {
|
|
155
|
-
reason: string;
|
|
156
|
-
};
|
|
157
|
-
'ui:open': {
|
|
158
|
-
panelId: string;
|
|
159
|
-
};
|
|
160
|
-
'ui:close': {
|
|
161
|
-
panelId: string;
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
export declare function createGameEventBus(): TypedEventBus<CommonGameEvents>;
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
export type FactionId = string;
|
|
2
|
-
export type ReputationTier = 'hostile' | 'unfriendly' | 'neutral' | 'friendly' | 'honored' | 'revered' | 'exalted';
|
|
3
|
-
export interface FactionDefinition {
|
|
4
|
-
id: FactionId;
|
|
5
|
-
name: string;
|
|
6
|
-
description: string;
|
|
7
|
-
icon: string;
|
|
8
|
-
color: string;
|
|
9
|
-
/** Starting reputation with player */
|
|
10
|
-
baseReputation: number;
|
|
11
|
-
/** Can reputation go negative */
|
|
12
|
-
allowNegative: boolean;
|
|
13
|
-
/** Is this a major/primary faction */
|
|
14
|
-
isMajor: boolean;
|
|
15
|
-
/** Parent faction (for sub-factions) */
|
|
16
|
-
parentFaction?: FactionId;
|
|
17
|
-
/** Reputation decay per day (if any) */
|
|
18
|
-
reputationDecay?: number;
|
|
19
|
-
/** Max reputation */
|
|
20
|
-
maxReputation: number;
|
|
21
|
-
/** Min reputation */
|
|
22
|
-
minReputation: number;
|
|
23
|
-
/** Custom data */
|
|
24
|
-
customData?: Record<string, unknown>;
|
|
25
|
-
}
|
|
26
|
-
export interface FactionRelationship {
|
|
27
|
-
factionA: FactionId;
|
|
28
|
-
factionB: FactionId;
|
|
29
|
-
/** Relationship value (-1 to 1) */
|
|
30
|
-
relationship: number;
|
|
31
|
-
/** Does A/B actions affect reputation with other */
|
|
32
|
-
propagateReputation: boolean;
|
|
33
|
-
/** Propagation factor (0-1) */
|
|
34
|
-
propagationFactor: number;
|
|
35
|
-
}
|
|
36
|
-
export interface ReputationTierDefinition {
|
|
37
|
-
tier: ReputationTier;
|
|
38
|
-
name: string;
|
|
39
|
-
minReputation: number;
|
|
40
|
-
maxReputation: number;
|
|
41
|
-
color: string;
|
|
42
|
-
benefits: string[];
|
|
43
|
-
restrictions: string[];
|
|
44
|
-
}
|
|
45
|
-
export interface FactionState {
|
|
46
|
-
factionId: FactionId;
|
|
47
|
-
reputation: number;
|
|
48
|
-
tier: ReputationTier;
|
|
49
|
-
totalGained: number;
|
|
50
|
-
totalLost: number;
|
|
51
|
-
lastInteraction: number;
|
|
52
|
-
isKnown: boolean;
|
|
53
|
-
flags: Set<string>;
|
|
54
|
-
}
|
|
55
|
-
export interface ReputationModifier {
|
|
56
|
-
id: string;
|
|
57
|
-
factionId: FactionId;
|
|
58
|
-
amount: number;
|
|
59
|
-
/** Multiplicative modifier */
|
|
60
|
-
multiplier?: number;
|
|
61
|
-
/** Duration in ms (0 = permanent) */
|
|
62
|
-
duration: number;
|
|
63
|
-
/** When applied */
|
|
64
|
-
appliedAt: number;
|
|
65
|
-
/** Reason/source */
|
|
66
|
-
source: string;
|
|
67
|
-
}
|
|
68
|
-
export interface ReputationGain {
|
|
69
|
-
factionId: FactionId;
|
|
70
|
-
amount: number;
|
|
71
|
-
source: string;
|
|
72
|
-
/** Affected by modifiers */
|
|
73
|
-
applyModifiers: boolean;
|
|
74
|
-
}
|
|
75
|
-
export interface FactionReward {
|
|
76
|
-
id: string;
|
|
77
|
-
factionId: FactionId;
|
|
78
|
-
requiredTier: ReputationTier;
|
|
79
|
-
requiredReputation?: number;
|
|
80
|
-
name: string;
|
|
81
|
-
description: string;
|
|
82
|
-
type: 'item' | 'ability' | 'discount' | 'access' | 'title' | 'custom';
|
|
83
|
-
data: unknown;
|
|
84
|
-
oneTime: boolean;
|
|
85
|
-
claimed: boolean;
|
|
86
|
-
}
|
|
87
|
-
export type DiplomaticStatus = 'war' | 'hostile' | 'cold' | 'neutral' | 'friendly' | 'allied';
|
|
88
|
-
export interface DiplomaticState {
|
|
89
|
-
factionA: FactionId;
|
|
90
|
-
factionB: FactionId;
|
|
91
|
-
status: DiplomaticStatus;
|
|
92
|
-
since: number;
|
|
93
|
-
treatyEndDate?: number;
|
|
94
|
-
}
|
|
95
|
-
export type FactionEventType = 'reputation-changed' | 'tier-changed' | 'faction-discovered' | 'reward-unlocked' | 'reward-claimed' | 'modifier-applied' | 'modifier-expired' | 'diplomacy-changed' | 'war-declared' | 'peace-declared';
|
|
96
|
-
export interface FactionEvent {
|
|
97
|
-
type: FactionEventType;
|
|
98
|
-
timestamp: number;
|
|
99
|
-
data: unknown;
|
|
100
|
-
}
|
|
101
|
-
export type FactionEventCallback = (event: FactionEvent) => void;
|
|
102
|
-
export interface FactionSystemConfig {
|
|
103
|
-
/** Default reputation tiers */
|
|
104
|
-
tiers: ReputationTierDefinition[];
|
|
105
|
-
/** Update interval for decay/modifiers (ms) */
|
|
106
|
-
updateInterval: number;
|
|
107
|
-
/** Enable reputation decay */
|
|
108
|
-
enableDecay: boolean;
|
|
109
|
-
/** Auto-save */
|
|
110
|
-
autoSave: boolean;
|
|
111
|
-
/** Storage key */
|
|
112
|
-
storageKey: string;
|
|
113
|
-
}
|
|
114
|
-
export declare const DEFAULT_REPUTATION_TIERS: ReputationTierDefinition[];
|
|
115
|
-
export declare const DEFAULT_FACTION_CONFIG: FactionSystemConfig;
|
|
116
|
-
export declare class NiceFaction {
|
|
117
|
-
private config;
|
|
118
|
-
private factions;
|
|
119
|
-
private factionStates;
|
|
120
|
-
private relationships;
|
|
121
|
-
private diplomacy;
|
|
122
|
-
private modifiers;
|
|
123
|
-
private rewards;
|
|
124
|
-
private eventListeners;
|
|
125
|
-
private updateTimer;
|
|
126
|
-
constructor(config?: Partial<FactionSystemConfig>);
|
|
127
|
-
on(event: FactionEventType, callback: FactionEventCallback): () => void;
|
|
128
|
-
private emit;
|
|
129
|
-
registerFaction(faction: FactionDefinition): void;
|
|
130
|
-
registerFactions(factions: FactionDefinition[]): void;
|
|
131
|
-
getFaction(id: FactionId): FactionDefinition | undefined;
|
|
132
|
-
getFactionState(id: FactionId): FactionState | undefined;
|
|
133
|
-
getAllFactions(): FactionDefinition[];
|
|
134
|
-
getKnownFactions(): FactionDefinition[];
|
|
135
|
-
setRelationship(factionA: FactionId, factionB: FactionId, relationship: number, propagate?: boolean, propagationFactor?: number): void;
|
|
136
|
-
getRelationship(factionA: FactionId, factionB: FactionId): FactionRelationship | undefined;
|
|
137
|
-
private getRelationshipKey;
|
|
138
|
-
getReputation(factionId: FactionId): number;
|
|
139
|
-
getTier(factionId: FactionId): ReputationTier;
|
|
140
|
-
getTierForReputation(reputation: number): ReputationTier;
|
|
141
|
-
getTierDefinition(tier: ReputationTier): ReputationTierDefinition | undefined;
|
|
142
|
-
addReputation(gain: ReputationGain): number;
|
|
143
|
-
private propagateReputation;
|
|
144
|
-
setReputation(factionId: FactionId, reputation: number): void;
|
|
145
|
-
addModifier(modifier: Omit<ReputationModifier, 'appliedAt'>): string;
|
|
146
|
-
removeModifier(id: string): boolean;
|
|
147
|
-
getActiveModifiers(factionId?: FactionId): ReputationModifier[];
|
|
148
|
-
registerReward(reward: FactionReward): void;
|
|
149
|
-
registerRewards(rewards: FactionReward[]): void;
|
|
150
|
-
private checkRewardUnlocks;
|
|
151
|
-
getAvailableRewards(factionId: FactionId): FactionReward[];
|
|
152
|
-
claimReward(rewardId: string): boolean;
|
|
153
|
-
setDiplomaticStatus(factionA: FactionId, factionB: FactionId, status: DiplomaticStatus, treatyDuration?: number): void;
|
|
154
|
-
getDiplomaticStatus(factionA: FactionId, factionB: FactionId): DiplomaticStatus;
|
|
155
|
-
areAtWar(factionA: FactionId, factionB: FactionId): boolean;
|
|
156
|
-
areAllied(factionA: FactionId, factionB: FactionId): boolean;
|
|
157
|
-
setFlag(factionId: FactionId, flag: string): void;
|
|
158
|
-
removeFlag(factionId: FactionId, flag: string): void;
|
|
159
|
-
hasFlag(factionId: FactionId, flag: string): boolean;
|
|
160
|
-
private startUpdateTimer;
|
|
161
|
-
private update;
|
|
162
|
-
getProgressToNextTier(factionId: FactionId): {
|
|
163
|
-
current: number;
|
|
164
|
-
required: number;
|
|
165
|
-
percentage: number;
|
|
166
|
-
};
|
|
167
|
-
save(): string;
|
|
168
|
-
load(data: string): void;
|
|
169
|
-
saveToStorage(): void;
|
|
170
|
-
loadFromStorage(): boolean;
|
|
171
|
-
destroy(): void;
|
|
172
|
-
}
|
|
173
|
-
export declare function createFactionSystem(config?: Partial<FactionSystemConfig>): NiceFaction;
|