@holoscript/engine 6.0.3 → 6.0.4
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/dist/AutoMesher-CK47F6AV.js +17 -0
- package/dist/GPUBuffers-2LHBCD7X.js +9 -0
- package/dist/WebGPUContext-TNEUYU2Y.js +11 -0
- package/dist/animation/index.cjs +38 -38
- package/dist/animation/index.d.cts +1 -1
- package/dist/animation/index.d.ts +1 -1
- package/dist/animation/index.js +1 -1
- package/dist/audio/index.cjs +16 -6
- package/dist/audio/index.d.cts +1 -1
- package/dist/audio/index.d.ts +1 -1
- package/dist/audio/index.js +1 -1
- package/dist/camera/index.cjs +23 -23
- package/dist/camera/index.d.cts +1 -1
- package/dist/camera/index.d.ts +1 -1
- package/dist/camera/index.js +1 -1
- package/dist/character/index.cjs +6 -4
- package/dist/character/index.js +1 -1
- package/dist/choreography/index.cjs +1194 -0
- package/dist/choreography/index.d.cts +687 -0
- package/dist/choreography/index.d.ts +687 -0
- package/dist/choreography/index.js +1156 -0
- package/dist/chunk-2CSNRI2N.js +217 -0
- package/dist/chunk-33T2WINR.js +266 -0
- package/dist/chunk-35R73OFM.js +1257 -0
- package/dist/chunk-4MMDSUNP.js +1256 -0
- package/dist/chunk-5V6HOU72.js +319 -0
- package/dist/chunk-6QOP6PYF.js +1038 -0
- package/dist/chunk-7KMJVHIL.js +8944 -0
- package/dist/chunk-7VPUC62U.js +1106 -0
- package/dist/chunk-A2Y6RCAT.js +1878 -0
- package/dist/chunk-AHM42MK6.js +8944 -0
- package/dist/chunk-BL7IDTHE.js +218 -0
- package/dist/chunk-CITOMSWL.js +10462 -0
- package/dist/chunk-CXDPKW2K.js +8944 -0
- package/dist/chunk-CXZPLD4S.js +223 -0
- package/dist/chunk-CZYJE7IH.js +5169 -0
- package/dist/chunk-D2OP7YC7.js +6325 -0
- package/dist/chunk-EDRVQHUU.js +1544 -0
- package/dist/chunk-EJSLOOW2.js +3589 -0
- package/dist/chunk-F53SFGW5.js +1878 -0
- package/dist/chunk-HCFPELPY.js +919 -0
- package/dist/chunk-HNEE36PY.js +93 -0
- package/dist/chunk-HYXNV36F.js +1256 -0
- package/dist/chunk-IB7KHVFY.js +821 -0
- package/dist/chunk-IBBO7YYG.js +690 -0
- package/dist/chunk-ILIBGINU.js +5470 -0
- package/dist/chunk-IS4MHLKN.js +5479 -0
- package/dist/chunk-JT2PFKWD.js +5479 -0
- package/dist/chunk-K4CUB4NY.js +1038 -0
- package/dist/chunk-KATDQXRJ.js +10462 -0
- package/dist/chunk-KBQE6ZFJ.js +8944 -0
- package/dist/chunk-KBVD5K7E.js +560 -0
- package/dist/chunk-KCDPVQRY.js +4088 -0
- package/dist/chunk-KN4QJPKN.js +8944 -0
- package/dist/chunk-KWJ3ROSI.js +8944 -0
- package/dist/chunk-L45VF6DD.js +919 -0
- package/dist/chunk-LY4T37YK.js +307 -0
- package/dist/chunk-MDN5WZXA.js +1544 -0
- package/dist/chunk-MGCDP6VU.js +928 -0
- package/dist/chunk-NCX7X6G2.js +8681 -0
- package/dist/chunk-OF54BPVD.js +913 -0
- package/dist/chunk-OWSN2Q3Q.js +690 -0
- package/dist/chunk-PRRB5TTA.js +406 -0
- package/dist/chunk-PXWVQF76.js +4086 -0
- package/dist/chunk-PYCOIDT2.js +812 -0
- package/dist/chunk-PZCSADOV.js +928 -0
- package/dist/chunk-Q2XBVS2K.js +1038 -0
- package/dist/chunk-QDZRXWN5.js +1776 -0
- package/dist/chunk-RNWOZ6WQ.js +913 -0
- package/dist/chunk-ROLFT4CJ.js +1693 -0
- package/dist/chunk-SLTJRZ2N.js +266 -0
- package/dist/chunk-SRUS5XSU.js +4088 -0
- package/dist/chunk-TKCA3WZ5.js +5409 -0
- package/dist/chunk-TNRMXYI2.js +1650 -0
- package/dist/chunk-TQB3GJGM.js +9763 -0
- package/dist/chunk-TUFGXG6K.js +510 -0
- package/dist/chunk-U6KMTGQJ.js +632 -0
- package/dist/chunk-VMGJQST6.js +8681 -0
- package/dist/chunk-X4F4TCG4.js +5470 -0
- package/dist/chunk-ZIFROE75.js +1544 -0
- package/dist/chunk-ZIJQYHSQ.js +1204 -0
- package/dist/combat/index.cjs +4 -4
- package/dist/combat/index.d.cts +1 -1
- package/dist/combat/index.d.ts +1 -1
- package/dist/combat/index.js +1 -1
- package/dist/ecs/index.cjs +1 -1
- package/dist/ecs/index.js +1 -1
- package/dist/environment/index.cjs +14 -14
- package/dist/environment/index.d.cts +1 -1
- package/dist/environment/index.d.ts +1 -1
- package/dist/environment/index.js +1 -1
- package/dist/gpu/index.cjs +4810 -0
- package/dist/gpu/index.js +3714 -0
- package/dist/hologram/index.cjs +27 -1
- package/dist/hologram/index.js +1 -1
- package/dist/index-B2PIsAmR.d.cts +2180 -0
- package/dist/index-B2PIsAmR.d.ts +2180 -0
- package/dist/index-BHySEPX7.d.cts +2921 -0
- package/dist/index-BJV21zuy.d.cts +341 -0
- package/dist/index-BJV21zuy.d.ts +341 -0
- package/dist/index-BQutTphC.d.cts +790 -0
- package/dist/index-ByIq2XrS.d.cts +3910 -0
- package/dist/index-BysHjDSO.d.cts +224 -0
- package/dist/index-BysHjDSO.d.ts +224 -0
- package/dist/index-CKwAJGck.d.ts +455 -0
- package/dist/index-CUl3QstQ.d.cts +3006 -0
- package/dist/index-CUl3QstQ.d.ts +3006 -0
- package/dist/index-CmYtNiI-.d.cts +953 -0
- package/dist/index-CmYtNiI-.d.ts +953 -0
- package/dist/index-CnRzWxi_.d.cts +522 -0
- package/dist/index-CnRzWxi_.d.ts +522 -0
- package/dist/index-CwRWbSC7.d.ts +2921 -0
- package/dist/index-CxKIBstO.d.ts +790 -0
- package/dist/index-DJ6-R8vh.d.cts +455 -0
- package/dist/index-DQKisbcI.d.cts +4968 -0
- package/dist/index-DQKisbcI.d.ts +4968 -0
- package/dist/index-DRT2zJez.d.ts +3910 -0
- package/dist/index-DfNLiAka.d.cts +192 -0
- package/dist/index-DfNLiAka.d.ts +192 -0
- package/dist/index-nMvkoRm8.d.cts +405 -0
- package/dist/index-nMvkoRm8.d.ts +405 -0
- package/dist/index-s9yOFU37.d.cts +604 -0
- package/dist/index-s9yOFU37.d.ts +604 -0
- package/dist/index.cjs +22966 -6960
- package/dist/index.d.cts +864 -20
- package/dist/index.d.ts +864 -20
- package/dist/index.js +3062 -48
- package/dist/input/index.cjs +1 -1
- package/dist/input/index.js +1 -1
- package/dist/orbital/index.cjs +3 -3
- package/dist/orbital/index.d.cts +1 -1
- package/dist/orbital/index.d.ts +1 -1
- package/dist/orbital/index.js +1 -1
- package/dist/particles/index.cjs +16 -16
- package/dist/particles/index.d.cts +1 -1
- package/dist/particles/index.d.ts +1 -1
- package/dist/particles/index.js +1 -1
- package/dist/physics/index.cjs +2377 -21
- package/dist/physics/index.d.cts +1 -1
- package/dist/physics/index.d.ts +1 -1
- package/dist/physics/index.js +35 -1
- package/dist/postfx/index.cjs +3491 -0
- package/dist/postfx/index.js +93 -0
- package/dist/procedural/index.cjs +1 -1
- package/dist/procedural/index.js +1 -1
- package/dist/puppeteer-5VF6KDVO.js +52197 -0
- package/dist/puppeteer-IZVZ3SG4.js +52197 -0
- package/dist/rendering/index.cjs +33 -32
- package/dist/rendering/index.d.cts +1 -1
- package/dist/rendering/index.d.ts +1 -1
- package/dist/rendering/index.js +8 -6
- package/dist/runtime/index.cjs +23 -13
- package/dist/runtime/index.d.cts +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +8 -6
- package/dist/runtime/protocols/index.cjs +349 -0
- package/dist/runtime/protocols/index.js +15 -0
- package/dist/scene/index.cjs +8 -8
- package/dist/scene/index.d.cts +1 -1
- package/dist/scene/index.d.ts +1 -1
- package/dist/scene/index.js +1 -1
- package/dist/shader/index.cjs +3087 -0
- package/dist/shader/index.js +3044 -0
- package/dist/simulation/index.cjs +10680 -0
- package/dist/simulation/index.d.cts +3 -0
- package/dist/simulation/index.d.ts +3 -0
- package/dist/simulation/index.js +307 -0
- package/dist/spatial/index.cjs +2443 -0
- package/dist/spatial/index.d.cts +1545 -0
- package/dist/spatial/index.d.ts +1545 -0
- package/dist/spatial/index.js +2400 -0
- package/dist/terrain/index.cjs +1 -1
- package/dist/terrain/index.d.cts +1 -1
- package/dist/terrain/index.d.ts +1 -1
- package/dist/terrain/index.js +1 -1
- package/dist/transformers.node-4NKAPD5U.js +45620 -0
- package/dist/vm/index.cjs +7 -8
- package/dist/vm/index.d.cts +1 -1
- package/dist/vm/index.d.ts +1 -1
- package/dist/vm/index.js +1 -1
- package/dist/vm-bridge/index.cjs +2 -2
- package/dist/vm-bridge/index.d.cts +2 -2
- package/dist/vm-bridge/index.d.ts +2 -2
- package/dist/vm-bridge/index.js +1 -1
- package/dist/vr/index.cjs +6 -6
- package/dist/vr/index.js +1 -1
- package/dist/world/index.cjs +3 -3
- package/dist/world/index.d.cts +1 -1
- package/dist/world/index.d.ts +1 -1
- package/dist/world/index.js +1 -1
- package/package.json +53 -21
- package/LICENSE +0 -21
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CombatManager.ts
|
|
3
|
+
*
|
|
4
|
+
* Combat orchestration: hitbox/hurtbox, combo system,
|
|
5
|
+
* cooldowns, targeting, and combat state.
|
|
6
|
+
*
|
|
7
|
+
* @module combat
|
|
8
|
+
*/
|
|
9
|
+
interface HitBox {
|
|
10
|
+
id: string;
|
|
11
|
+
ownerId: string;
|
|
12
|
+
position: [number, number, number];
|
|
13
|
+
size: {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
z: number;
|
|
17
|
+
};
|
|
18
|
+
active: boolean;
|
|
19
|
+
damage: number;
|
|
20
|
+
damageType: string;
|
|
21
|
+
knockback: number;
|
|
22
|
+
}
|
|
23
|
+
interface HurtBox {
|
|
24
|
+
id: string;
|
|
25
|
+
ownerId: string;
|
|
26
|
+
position: [number, number, number];
|
|
27
|
+
size: {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
z: number;
|
|
31
|
+
};
|
|
32
|
+
active: boolean;
|
|
33
|
+
}
|
|
34
|
+
interface ComboStep$1 {
|
|
35
|
+
name: string;
|
|
36
|
+
input: string;
|
|
37
|
+
damage: number;
|
|
38
|
+
window: number;
|
|
39
|
+
hitboxId?: string;
|
|
40
|
+
}
|
|
41
|
+
interface ComboChain {
|
|
42
|
+
id: string;
|
|
43
|
+
steps: ComboStep$1[];
|
|
44
|
+
currentStep: number;
|
|
45
|
+
timer: number;
|
|
46
|
+
completed: boolean;
|
|
47
|
+
}
|
|
48
|
+
interface Cooldown {
|
|
49
|
+
abilityId: string;
|
|
50
|
+
duration: number;
|
|
51
|
+
remaining: number;
|
|
52
|
+
}
|
|
53
|
+
interface CombatTarget {
|
|
54
|
+
entityId: string;
|
|
55
|
+
position: [number, number, number];
|
|
56
|
+
priority: number;
|
|
57
|
+
distance: number;
|
|
58
|
+
}
|
|
59
|
+
declare class CombatManager {
|
|
60
|
+
private hitboxes;
|
|
61
|
+
private hurtboxes;
|
|
62
|
+
private combos;
|
|
63
|
+
private cooldowns;
|
|
64
|
+
private hitLog;
|
|
65
|
+
addHitBox(hitbox: HitBox): void;
|
|
66
|
+
addHurtBox(hurtbox: HurtBox): void;
|
|
67
|
+
removeHitBox(id: string): void;
|
|
68
|
+
removeHurtBox(id: string): void;
|
|
69
|
+
setHitBoxActive(id: string, active: boolean): void;
|
|
70
|
+
checkCollisions(): Array<{
|
|
71
|
+
hitbox: HitBox;
|
|
72
|
+
hurtbox: HurtBox;
|
|
73
|
+
}>;
|
|
74
|
+
private aabbOverlap;
|
|
75
|
+
registerCombo(id: string, steps: ComboStep$1[]): ComboChain;
|
|
76
|
+
advanceCombo(comboId: string, input: string): {
|
|
77
|
+
hit: boolean;
|
|
78
|
+
completed: boolean;
|
|
79
|
+
step: number;
|
|
80
|
+
};
|
|
81
|
+
updateCombos(dt: number): void;
|
|
82
|
+
resetCombo(comboId: string): void;
|
|
83
|
+
startCooldown(abilityId: string, duration: number): void;
|
|
84
|
+
isOnCooldown(abilityId: string): boolean;
|
|
85
|
+
getCooldownRemaining(abilityId: string): number;
|
|
86
|
+
updateCooldowns(dt: number): void;
|
|
87
|
+
findTargets(position: [number, number, number], candidates: Array<{
|
|
88
|
+
entityId: string;
|
|
89
|
+
position: [number, number, number];
|
|
90
|
+
priority?: number;
|
|
91
|
+
}>, maxRange: number): CombatTarget[];
|
|
92
|
+
getHitLog(): typeof this.hitLog;
|
|
93
|
+
getHitBoxCount(): number;
|
|
94
|
+
getHurtBoxCount(): number;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* ComboTracker.ts
|
|
99
|
+
*
|
|
100
|
+
* Input combo tracking: sequence matching, timing windows,
|
|
101
|
+
* chain progression, and reset/timeout handling.
|
|
102
|
+
*
|
|
103
|
+
* @module combat
|
|
104
|
+
*/
|
|
105
|
+
interface ComboStep {
|
|
106
|
+
input: string;
|
|
107
|
+
maxDelay: number;
|
|
108
|
+
}
|
|
109
|
+
interface ComboDefinition {
|
|
110
|
+
id: string;
|
|
111
|
+
name: string;
|
|
112
|
+
steps: ComboStep[];
|
|
113
|
+
reward: string;
|
|
114
|
+
}
|
|
115
|
+
interface ComboState {
|
|
116
|
+
comboId: string;
|
|
117
|
+
currentStep: number;
|
|
118
|
+
lastInputTime: number;
|
|
119
|
+
completed: boolean;
|
|
120
|
+
}
|
|
121
|
+
declare class ComboTracker {
|
|
122
|
+
private combos;
|
|
123
|
+
private activeStates;
|
|
124
|
+
private completedCombos;
|
|
125
|
+
private currentTime;
|
|
126
|
+
registerCombo(combo: ComboDefinition): void;
|
|
127
|
+
pushInput(input: string, timestamp: number): string | null;
|
|
128
|
+
tick(timestamp: number): void;
|
|
129
|
+
getActiveComboCount(): number;
|
|
130
|
+
getCompletedCombos(): string[];
|
|
131
|
+
reset(): void;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* DamageSystem.ts
|
|
136
|
+
*
|
|
137
|
+
* Damage calculation: damage types, resistances, critical hits,
|
|
138
|
+
* damage-over-time, armor penetration, and damage events.
|
|
139
|
+
*
|
|
140
|
+
* @module combat
|
|
141
|
+
*/
|
|
142
|
+
type DamageType = 'physical' | 'fire' | 'ice' | 'lightning' | 'poison' | 'holy' | 'dark' | 'true';
|
|
143
|
+
interface DamageInstance {
|
|
144
|
+
id: string;
|
|
145
|
+
sourceId: string;
|
|
146
|
+
targetId: string;
|
|
147
|
+
baseDamage: number;
|
|
148
|
+
type: DamageType;
|
|
149
|
+
isCritical: boolean;
|
|
150
|
+
finalDamage: number;
|
|
151
|
+
timestamp: number;
|
|
152
|
+
}
|
|
153
|
+
interface Resistances {
|
|
154
|
+
physical: number;
|
|
155
|
+
fire: number;
|
|
156
|
+
ice: number;
|
|
157
|
+
lightning: number;
|
|
158
|
+
poison: number;
|
|
159
|
+
holy: number;
|
|
160
|
+
dark: number;
|
|
161
|
+
}
|
|
162
|
+
interface DotEffect {
|
|
163
|
+
id: string;
|
|
164
|
+
sourceId: string;
|
|
165
|
+
targetId: string;
|
|
166
|
+
type: DamageType;
|
|
167
|
+
damagePerTick: number;
|
|
168
|
+
tickInterval: number;
|
|
169
|
+
duration: number;
|
|
170
|
+
elapsed: number;
|
|
171
|
+
lastTick: number;
|
|
172
|
+
stacks: number;
|
|
173
|
+
}
|
|
174
|
+
interface DamageConfig {
|
|
175
|
+
critChance: number;
|
|
176
|
+
critMultiplier: number;
|
|
177
|
+
armorPenetration: number;
|
|
178
|
+
globalMultiplier: number;
|
|
179
|
+
}
|
|
180
|
+
declare class DamageSystem {
|
|
181
|
+
private config;
|
|
182
|
+
private damageLog;
|
|
183
|
+
private dots;
|
|
184
|
+
private resistances;
|
|
185
|
+
private callbacks;
|
|
186
|
+
setConfig(config: Partial<DamageConfig>): void;
|
|
187
|
+
getConfig(): DamageConfig;
|
|
188
|
+
setResistances(entityId: string, res: Partial<Resistances>): void;
|
|
189
|
+
getResistances(entityId: string): Resistances;
|
|
190
|
+
calculateDamage(sourceId: string, targetId: string, baseDamage: number, type: DamageType, forceCrit?: boolean): DamageInstance;
|
|
191
|
+
applyDoT(sourceId: string, targetId: string, type: DamageType, damagePerTick: number, tickInterval: number, duration: number, stacks?: number): DotEffect;
|
|
192
|
+
updateDoTs(dt: number): DamageInstance[];
|
|
193
|
+
getActiveDoTs(targetId?: string): DotEffect[];
|
|
194
|
+
onDamage(callback: (dmg: DamageInstance) => void): void;
|
|
195
|
+
getDamageLog(limit?: number): DamageInstance[];
|
|
196
|
+
getTotalDamageDealt(sourceId: string): number;
|
|
197
|
+
clearLog(): void;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* HitboxSystem.ts
|
|
202
|
+
*
|
|
203
|
+
* Hitbox/hurtbox management: active frame windows,
|
|
204
|
+
* hit registration with deduplication, and knockback vectors.
|
|
205
|
+
*
|
|
206
|
+
* @module combat
|
|
207
|
+
*/
|
|
208
|
+
interface Hitbox {
|
|
209
|
+
id: string;
|
|
210
|
+
ownerId: string;
|
|
211
|
+
x: number;
|
|
212
|
+
y: number;
|
|
213
|
+
z: number;
|
|
214
|
+
width: number;
|
|
215
|
+
height: number;
|
|
216
|
+
depth: number;
|
|
217
|
+
damage: number;
|
|
218
|
+
knockbackX: number;
|
|
219
|
+
knockbackY: number;
|
|
220
|
+
activeStart: number;
|
|
221
|
+
activeEnd: number;
|
|
222
|
+
group: string;
|
|
223
|
+
}
|
|
224
|
+
interface Hurtbox {
|
|
225
|
+
id: string;
|
|
226
|
+
entityId: string;
|
|
227
|
+
x: number;
|
|
228
|
+
y: number;
|
|
229
|
+
z: number;
|
|
230
|
+
width: number;
|
|
231
|
+
height: number;
|
|
232
|
+
depth: number;
|
|
233
|
+
}
|
|
234
|
+
interface HitEvent {
|
|
235
|
+
hitboxId: string;
|
|
236
|
+
hurtboxId: string;
|
|
237
|
+
attackerId: string;
|
|
238
|
+
defenderId: string;
|
|
239
|
+
damage: number;
|
|
240
|
+
knockbackX: number;
|
|
241
|
+
knockbackY: number;
|
|
242
|
+
}
|
|
243
|
+
declare class HitboxSystem {
|
|
244
|
+
private hitboxes;
|
|
245
|
+
private hurtboxes;
|
|
246
|
+
private currentFrame;
|
|
247
|
+
private hitLog;
|
|
248
|
+
private events;
|
|
249
|
+
addHitbox(hb: Hitbox): void;
|
|
250
|
+
addHurtbox(hb: Hurtbox): void;
|
|
251
|
+
removeHitbox(id: string): void;
|
|
252
|
+
removeHurtbox(id: string): void;
|
|
253
|
+
update(frame: number): HitEvent[];
|
|
254
|
+
private overlaps;
|
|
255
|
+
clearHitLog(): void;
|
|
256
|
+
getHitCount(): number;
|
|
257
|
+
getLastEvents(): HitEvent[];
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* ProjectileSystem.ts
|
|
262
|
+
*
|
|
263
|
+
* Projectile management: spawning, travel, lifetime,
|
|
264
|
+
* homing behavior, piercing, and impact callbacks.
|
|
265
|
+
*
|
|
266
|
+
* @module combat
|
|
267
|
+
*/
|
|
268
|
+
interface ProjectileConfig {
|
|
269
|
+
speed: number;
|
|
270
|
+
lifetime: number;
|
|
271
|
+
damage: number;
|
|
272
|
+
homing: boolean;
|
|
273
|
+
homingStrength: number;
|
|
274
|
+
piercing: number;
|
|
275
|
+
gravity: number;
|
|
276
|
+
}
|
|
277
|
+
interface Projectile {
|
|
278
|
+
id: string;
|
|
279
|
+
x: number;
|
|
280
|
+
y: number;
|
|
281
|
+
z: number;
|
|
282
|
+
vx: number;
|
|
283
|
+
vy: number;
|
|
284
|
+
vz: number;
|
|
285
|
+
config: ProjectileConfig;
|
|
286
|
+
age: number;
|
|
287
|
+
hitCount: number;
|
|
288
|
+
alive: boolean;
|
|
289
|
+
ownerId: string;
|
|
290
|
+
}
|
|
291
|
+
type ImpactCallback = (projectile: Projectile, targetId: string) => void;
|
|
292
|
+
declare class ProjectileSystem {
|
|
293
|
+
private projectiles;
|
|
294
|
+
private nextId;
|
|
295
|
+
private onImpact;
|
|
296
|
+
spawn(ownerId: string, x: number, y: number, z: number, dx: number, dy: number, dz: number, config: ProjectileConfig): string;
|
|
297
|
+
setImpactCallback(cb: ImpactCallback): void;
|
|
298
|
+
update(dt: number, targets?: Array<{
|
|
299
|
+
id: string;
|
|
300
|
+
x: number;
|
|
301
|
+
y: number;
|
|
302
|
+
z: number;
|
|
303
|
+
radius: number;
|
|
304
|
+
}>): void;
|
|
305
|
+
private findNearest;
|
|
306
|
+
getProjectile(id: string): Projectile | undefined;
|
|
307
|
+
getAliveCount(): number;
|
|
308
|
+
cleanup(): void;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* StatusEffects.ts
|
|
313
|
+
*
|
|
314
|
+
* Buff/debuff system: stacking, duration, ticking effects,
|
|
315
|
+
* stat modifiers, immunity, and cleansing.
|
|
316
|
+
*
|
|
317
|
+
* @module combat
|
|
318
|
+
*/
|
|
319
|
+
type EffectType = 'buff' | 'debuff';
|
|
320
|
+
type StackBehavior = 'stack' | 'refresh' | 'replace' | 'ignore';
|
|
321
|
+
interface StatModifier {
|
|
322
|
+
stat: string;
|
|
323
|
+
flat: number;
|
|
324
|
+
percent: number;
|
|
325
|
+
}
|
|
326
|
+
interface StatusEffect {
|
|
327
|
+
id: string;
|
|
328
|
+
name: string;
|
|
329
|
+
type: EffectType;
|
|
330
|
+
duration: number;
|
|
331
|
+
elapsed: number;
|
|
332
|
+
stacks: number;
|
|
333
|
+
maxStacks: number;
|
|
334
|
+
stackBehavior: StackBehavior;
|
|
335
|
+
modifiers: StatModifier[];
|
|
336
|
+
tickInterval: number;
|
|
337
|
+
lastTick: number;
|
|
338
|
+
tickDamage: number;
|
|
339
|
+
onApply?: string;
|
|
340
|
+
onRemove?: string;
|
|
341
|
+
onTick?: string;
|
|
342
|
+
}
|
|
343
|
+
declare class StatusEffectSystem {
|
|
344
|
+
private effects;
|
|
345
|
+
private immunities;
|
|
346
|
+
private tickResults;
|
|
347
|
+
apply(entityId: string, effectDef: Omit<StatusEffect, 'id' | 'elapsed' | 'lastTick' | 'stacks'> & {
|
|
348
|
+
stacks?: number;
|
|
349
|
+
}): StatusEffect | null;
|
|
350
|
+
remove(entityId: string, effectName: string): boolean;
|
|
351
|
+
removeAllOfType(entityId: string, type: EffectType): number;
|
|
352
|
+
cleanse(entityId: string, _count?: number): number;
|
|
353
|
+
update(dt: number): void;
|
|
354
|
+
getTickResults(): typeof this.tickResults;
|
|
355
|
+
addImmunity(entityId: string, effectName: string): void;
|
|
356
|
+
removeImmunity(entityId: string, effectName: string): void;
|
|
357
|
+
getStatModifiers(entityId: string, stat: string): {
|
|
358
|
+
flat: number;
|
|
359
|
+
percent: number;
|
|
360
|
+
};
|
|
361
|
+
applyStatModifiers(entityId: string, stat: string, baseValue: number): number;
|
|
362
|
+
getEffects(entityId: string): StatusEffect[];
|
|
363
|
+
hasEffect(entityId: string, effectName: string): boolean;
|
|
364
|
+
getEffectCount(entityId: string): number;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
type index_CombatManager = CombatManager;
|
|
368
|
+
declare const index_CombatManager: typeof CombatManager;
|
|
369
|
+
type index_CombatTarget = CombatTarget;
|
|
370
|
+
type index_ComboChain = ComboChain;
|
|
371
|
+
type index_ComboDefinition = ComboDefinition;
|
|
372
|
+
type index_ComboState = ComboState;
|
|
373
|
+
type index_ComboTracker = ComboTracker;
|
|
374
|
+
declare const index_ComboTracker: typeof ComboTracker;
|
|
375
|
+
type index_Cooldown = Cooldown;
|
|
376
|
+
type index_DamageConfig = DamageConfig;
|
|
377
|
+
type index_DamageInstance = DamageInstance;
|
|
378
|
+
type index_DamageSystem = DamageSystem;
|
|
379
|
+
declare const index_DamageSystem: typeof DamageSystem;
|
|
380
|
+
type index_DamageType = DamageType;
|
|
381
|
+
type index_DotEffect = DotEffect;
|
|
382
|
+
type index_EffectType = EffectType;
|
|
383
|
+
type index_HitBox = HitBox;
|
|
384
|
+
type index_HitEvent = HitEvent;
|
|
385
|
+
type index_Hitbox = Hitbox;
|
|
386
|
+
type index_HitboxSystem = HitboxSystem;
|
|
387
|
+
declare const index_HitboxSystem: typeof HitboxSystem;
|
|
388
|
+
type index_HurtBox = HurtBox;
|
|
389
|
+
type index_Hurtbox = Hurtbox;
|
|
390
|
+
type index_ImpactCallback = ImpactCallback;
|
|
391
|
+
type index_Projectile = Projectile;
|
|
392
|
+
type index_ProjectileConfig = ProjectileConfig;
|
|
393
|
+
type index_ProjectileSystem = ProjectileSystem;
|
|
394
|
+
declare const index_ProjectileSystem: typeof ProjectileSystem;
|
|
395
|
+
type index_Resistances = Resistances;
|
|
396
|
+
type index_StackBehavior = StackBehavior;
|
|
397
|
+
type index_StatModifier = StatModifier;
|
|
398
|
+
type index_StatusEffect = StatusEffect;
|
|
399
|
+
type index_StatusEffectSystem = StatusEffectSystem;
|
|
400
|
+
declare const index_StatusEffectSystem: typeof StatusEffectSystem;
|
|
401
|
+
declare namespace index {
|
|
402
|
+
export { index_CombatManager as CombatManager, type index_CombatTarget as CombatTarget, type index_ComboChain as ComboChain, type index_ComboDefinition as ComboDefinition, type index_ComboState as ComboState, type ComboStep$1 as ComboStep, index_ComboTracker as ComboTracker, type index_Cooldown as Cooldown, type index_DamageConfig as DamageConfig, type index_DamageInstance as DamageInstance, index_DamageSystem as DamageSystem, type index_DamageType as DamageType, type index_DotEffect as DotEffect, type index_EffectType as EffectType, type index_HitBox as HitBox, type index_HitEvent as HitEvent, type index_Hitbox as Hitbox, index_HitboxSystem as HitboxSystem, type index_HurtBox as HurtBox, type index_Hurtbox as Hurtbox, type index_ImpactCallback as ImpactCallback, type index_Projectile as Projectile, type index_ProjectileConfig as ProjectileConfig, index_ProjectileSystem as ProjectileSystem, type index_Resistances as Resistances, type index_StackBehavior as StackBehavior, type index_StatModifier as StatModifier, type index_StatusEffect as StatusEffect, index_StatusEffectSystem as StatusEffectSystem, type ComboStep as TrackerComboStep };
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
export { CombatManager as C, type DamageConfig as D, type EffectType as E, type HitBox as H, type ImpactCallback as I, type Projectile as P, type Resistances as R, type StackBehavior as S, type CombatTarget as a, type ComboChain as b, type ComboDefinition as c, type ComboState as d, type ComboStep$1 as e, ComboTracker as f, type Cooldown as g, type DamageInstance as h, index as i, DamageSystem as j, type DamageType as k, type DotEffect as l, type HitEvent as m, type Hitbox as n, HitboxSystem as o, type HurtBox as p, type Hurtbox as q, type ProjectileConfig as r, ProjectileSystem as s, type StatModifier as t, type StatusEffect as u, StatusEffectSystem as v, type ComboStep as w };
|