@malib/gear 1.0.0-next.8 → 1.0.0

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.
@@ -0,0 +1,1863 @@
1
+ //#region src/lib/data/AddOptionData.d.ts
2
+ /**
3
+ * 추가 옵션 종류
4
+ */
5
+ declare enum AddOptionType {
6
+ /** STR */
7
+ str = "str",
8
+ /** DEX */
9
+ dex = "dex",
10
+ /** INT */
11
+ int = "int",
12
+ /** LUK */
13
+ luk = "luk",
14
+ /** STR, DEX */
15
+ str_dex = "str,dex",
16
+ /** STR, INT */
17
+ str_int = "str,int",
18
+ /** STR, LUK */
19
+ str_luk = "str,luk",
20
+ /** DEX, INT */
21
+ dex_int = "dex,int",
22
+ /** DEX, LUK */
23
+ dex_luk = "dex,luk",
24
+ /** INT, LUK */
25
+ int_luk = "int,luk",
26
+ /** 최대 HP */
27
+ maxHp = "maxHp",
28
+ /** 최대 MP */
29
+ maxMp = "maxMp",
30
+ /** 공격력 */
31
+ attackPower = "attackPower",
32
+ /** 마력 */
33
+ magicPower = "magicPower",
34
+ /** 방어력 */
35
+ armor = "armor",
36
+ /** 이동속도 */
37
+ speed = "speed",
38
+ /** 점프력 */
39
+ jump = "jump",
40
+ /** 보스 공격 시 데미지 증가(%) */
41
+ bossDamage = "bossDamage",
42
+ /** 데미지(%) */
43
+ damage = "damage",
44
+ /** 올스탯(%) */
45
+ allStat = "allStat",
46
+ /** 착용 레벨 감소 */
47
+ reqLevelDecrease = "reqLevelDecrease"
48
+ }
49
+ /**
50
+ * 추가 옵션 단계
51
+ */
52
+ type AddOptionGrade = 1 | 2 | 3 | 4 | 5 | 6 | 7;
53
+ /**
54
+ * 추가 옵션 정보
55
+ */
56
+ interface AddOptionData {
57
+ /** 추가 옵션 종류 */
58
+ type: AddOptionType;
59
+ /** 추가 옵션 단계 */
60
+ grade: AddOptionGrade;
61
+ /** 추가 옵션 수치 */
62
+ value: number;
63
+ }
64
+ //#endregion
65
+ //#region src/lib/data/GearAttributeData.d.ts
66
+ /**
67
+ * 장비 속성 정보
68
+ */
69
+ interface GearAttributeData {
70
+ /** 고유 아이템 */
71
+ only?: boolean;
72
+ /** 교환 가능 여부 */
73
+ trade?: GearTrade;
74
+ /** 고유장착 아이템 */
75
+ onlyEquip?: boolean;
76
+ /** 월드 내 나의 캐릭터 간 이동 가능 여부 */
77
+ share?: GearShare;
78
+ /** 슈페리얼 */
79
+ superior?: boolean;
80
+ /** 공격 속도 */
81
+ attackSpeed?: number;
82
+ /** 주문서 강화 가능 여부 */
83
+ canScroll?: GearCapability;
84
+ /** 스타포스 강화 가능 여부 */
85
+ canStarforce?: GearCapability;
86
+ /** 추가 옵션 설정 가능 여부 */
87
+ canAddOption?: GearCapability;
88
+ /** 잠재능력 설정 가능 여부 */
89
+ canPotential?: GearCapability;
90
+ /** 에디셔널 잠재능력 설정 가능 여부 */
91
+ canAdditionalPotential?: GearCapability;
92
+ /** 스페셜 아이템 여부 */
93
+ specialGrade?: boolean;
94
+ /** 최대 스타포스 강화 단계 */
95
+ fixedMaxStar?: number;
96
+ /** 카르마의 가위 사용 가능 여부 */
97
+ cuttable?: GearCuttable;
98
+ /** 가위 사용 가능 횟수 */
99
+ cuttableCount?: number;
100
+ /** 최대 가위 사용 가능 횟수 */
101
+ totalCuttableCount?: number;
102
+ /** 쉐어 네임 텍을 사용 가능 여부 */
103
+ accountShareTag?: boolean;
104
+ /** 훈장 신비의 모루 사용 불가 여부 */
105
+ noShapeChange?: boolean;
106
+ /** 세트 효과 ID */
107
+ setItemId?: number;
108
+ /** 럭키 아이템 */
109
+ lucky?: boolean;
110
+ /** 장착 시 획득 경험치 */
111
+ incline?: Partial<GearIncline>;
112
+ /** 보스 드롭 여부 */
113
+ bossReward?: boolean;
114
+ /** 사용 가능 스킬 */
115
+ skills?: string[];
116
+ /** 성장 경험치 */
117
+ growthExp?: number;
118
+ /** 성장 레벨 */
119
+ growthLevel?: number;
120
+ /** 장비 유효 기간(KST) */
121
+ dateExpire?: string;
122
+ }
123
+ declare enum GearTrade {
124
+ /** 교환 가능 */
125
+ Tradeable = 0,
126
+ /** 교환 불가 */
127
+ TradeBlock = 1,
128
+ /** 장착 시 교환 불가 */
129
+ EquipTradeBlock = 2,
130
+ /** 1회 교환 가능 */
131
+ TradeOnce = 3
132
+ }
133
+ declare enum GearShare {
134
+ /** 없음 */
135
+ None = 0,
136
+ /** 월드 내 나의 캐릭터 간 이동 가능 */
137
+ AccountSharable = 1,
138
+ /** 월드 내 나의 캐릭터 간 1회 이동 가능 (이동 후 교환불가) */
139
+ AccountSharableOnce = 2
140
+ }
141
+ declare enum GearCapability {
142
+ /** 설정 불가 */
143
+ Cannot = 0,
144
+ /** 설정 가능 */
145
+ Can = 1,
146
+ /** 재설정 불가 */
147
+ Fixed = 2
148
+ }
149
+ declare enum GearCuttable {
150
+ /** 없음 */
151
+ None = 0,
152
+ /** 카르마의 가위 또는 실버 카르마의 가위를 사용하면 1회 교환이 가능하게 할 수 있습니다. */
153
+ Silver = 1,
154
+ /** 플래티넘 카르마의 가위를 사용하면 1회 교환이 가능하게 할 수 있습니다. */
155
+ Platinum = 2
156
+ }
157
+ interface GearIncline {
158
+ /** 카리스마 */
159
+ charisma: number;
160
+ /** 통찰력 */
161
+ insight: number;
162
+ /** 의지 */
163
+ will: number;
164
+ /** 손재주 */
165
+ craft: number;
166
+ /** 감성 */
167
+ sense: number;
168
+ /** 매력 */
169
+ charm: number;
170
+ }
171
+ //#endregion
172
+ //#region src/lib/data/GearOption.d.ts
173
+ /**
174
+ * 장비 옵션
175
+ */
176
+ interface GearOption {
177
+ /** STR */
178
+ str: number;
179
+ /** DEX */
180
+ dex: number;
181
+ /** INT */
182
+ int: number;
183
+ /** LUK */
184
+ luk: number;
185
+ /** STR(%) */
186
+ strRate: number;
187
+ /** DEX(%) */
188
+ dexRate: number;
189
+ /** INT(%) */
190
+ intRate: number;
191
+ /** LUK(%) */
192
+ lukRate: number;
193
+ /** 최대 HP */
194
+ maxHp: number;
195
+ /** 최대 MP */
196
+ maxMp: number;
197
+ /** 최대 HP(%) */
198
+ maxHpRate: number;
199
+ /** 최대 MP(%) */
200
+ maxMpRate: number;
201
+ /** MaxDF */
202
+ maxDemonForce: number;
203
+ /** 공격력 */
204
+ attackPower: number;
205
+ /** 마력 */
206
+ magicPower: number;
207
+ /** 공격력(%) */
208
+ attackPowerRate: number;
209
+ /** 마력(%) */
210
+ magicPowerRate: number;
211
+ /** 방어력 */
212
+ armor: number;
213
+ /** 방어력(%) */
214
+ armorRate: number;
215
+ /** 이동속도 */
216
+ speed: number;
217
+ /** 점프력 */
218
+ jump: number;
219
+ /** 보스 공격 시 데미지 증가(%) */
220
+ bossDamage: number;
221
+ /** 일반 몬스터 데미지(%) */
222
+ normalDamage: number;
223
+ /** 몬스터 방어율 무시(%) */
224
+ ignoreMonsterArmor: number;
225
+ /** 올스탯(%) */
226
+ allStat: number;
227
+ /** 데미지(%) */
228
+ damage: number;
229
+ /** 착용 레벨 감소 */
230
+ reqLevelDecrease: number;
231
+ /** 크리티컬 확률(%) */
232
+ criticalRate: number;
233
+ /** 크리티컬 데미지(%) */
234
+ criticalDamage: number;
235
+ /** 재사용 대기시간 감소 (초) */
236
+ cooltimeReduce: number;
237
+ /** 캐릭터 기준 9레벨 당 STR */
238
+ strLv: number;
239
+ /** 캐릭터 기준 9레벨 당 DEX */
240
+ dexLv: number;
241
+ /** 캐릭터 기준 9레벨 당 INT */
242
+ intLv: number;
243
+ /** 캐릭터 기준 9레벨 당 LUK */
244
+ lukLv: number;
245
+ }
246
+ //#endregion
247
+ //#region src/lib/data/GearType.d.ts
248
+ declare enum GearType {
249
+ /** 모자 */
250
+ cap = 100,
251
+ /** 얼굴장식 */
252
+ faceAccessory = 101,
253
+ /** 눈장식 */
254
+ eyeAccessory = 102,
255
+ /** 귀고리 */
256
+ earrings = 103,
257
+ /** 상의 */
258
+ coat = 104,
259
+ /** 한벌옷 */
260
+ longcoat = 105,
261
+ /** 하의 */
262
+ pants = 106,
263
+ /** 신발 */
264
+ shoes = 107,
265
+ /** 장갑 */
266
+ glove = 108,
267
+ /** 망토 */
268
+ cape = 110,
269
+ /** 반지 */
270
+ ring = 111,
271
+ /** 펜던트 */
272
+ pendant = 112,
273
+ /** 벨트 */
274
+ belt = 113,
275
+ /** 훈장 */
276
+ medal = 114,
277
+ /** 어깨장식 */
278
+ shoulder = 115,
279
+ /** 포켓 아이템 */
280
+ pocket = 116,
281
+ /** 뱃지 */
282
+ badge = 118,
283
+ /** 안드로이드 */
284
+ android = 166,
285
+ /** 기계 심장 */
286
+ machineHeart = 167,
287
+ /** 방패 */
288
+ shield = 109,
289
+ /** 엠블렘 */
290
+ emblem = 119,
291
+ /** 파워소스 */
292
+ powerSource = 119020,
293
+ /** 샤이닝 로드 */
294
+ shiningRod = 1212,
295
+ /** 튜너 */
296
+ tuner = 1213,
297
+ /** 브레스 슈터 */
298
+ breathShooter = 1214,
299
+ /** 장검 */
300
+ longSword2 = 1215,
301
+ /** 소울 슈터 */
302
+ soulShooter = 122,
303
+ /** 데스페라도 */
304
+ desperado = 123,
305
+ /** 에너지소드 */
306
+ energySword = 124,
307
+ /** ESP 리미터 */
308
+ espLimiter = 126,
309
+ /** 체인 (카데나) */
310
+ chain = 127,
311
+ /** 매직 건틀렛 */
312
+ magicGauntlet = 128,
313
+ /** 부채 (호영) */
314
+ ritualFan = 129,
315
+ /** 한손검 */
316
+ ohSword = 130,
317
+ /** 한손도끼 */
318
+ ohAxe = 131,
319
+ /** 한손둔기 */
320
+ ohBlunt = 132,
321
+ /** 단검 */
322
+ dagger = 133,
323
+ /** 블레이드 */
324
+ katara = 134,
325
+ /** 케인 */
326
+ cane = 136,
327
+ /** 완드 */
328
+ wand = 137,
329
+ /** 스태프 */
330
+ staff = 138,
331
+ /** 두손검 */
332
+ thSword = 140,
333
+ /** 차크람 */
334
+ chakram = 1404,
335
+ /** 두손도끼 */
336
+ thAxe = 141,
337
+ /** 두손둔기 */
338
+ thBlunt = 142,
339
+ /** 창 */
340
+ spear = 143,
341
+ /** 폴암 */
342
+ polearm = 144,
343
+ /** 활 */
344
+ bow = 145,
345
+ /** 석궁 */
346
+ crossbow = 146,
347
+ /** 아대 */
348
+ claw = 147,
349
+ /** 너클 */
350
+ knuckle = 148,
351
+ /** 건 */
352
+ gun = 149,
353
+ /** 삽 */
354
+ shovel = 150,
355
+ /** 곡괭이 */
356
+ pickaxe = 151,
357
+ /** 듀얼 보우건 */
358
+ dualBowguns = 152,
359
+ /** 핸드캐논 */
360
+ handCannon = 153,
361
+ /** 대검 */
362
+ heavySword = 156,
363
+ /** 태도 */
364
+ longSword = 157,
365
+ /** 건틀렛 리볼버 */
366
+ gauntletRevolver = 158,
367
+ /** 에인션트 보우 */
368
+ ancientBow = 159,
369
+ /** 소울실드 */
370
+ soulShield = 1098,
371
+ /** 포스실드 */
372
+ demonShield = 1099,
373
+ /** 마법화살 */
374
+ magicArrow = 135200,
375
+ /** 카드 */
376
+ card = 135210,
377
+ /** 메달 */
378
+ medallion = 135220,
379
+ /** 로자리오 */
380
+ rosary = 135221,
381
+ /** 쇠사슬 */
382
+ ironChain = 135222,
383
+ /** 마도서 (불,독) */
384
+ magicBook1 = 135223,
385
+ /** 마도서 (얼음,번개) */
386
+ magicBook2 = 135224,
387
+ /** 마도서 (비숍) */
388
+ magicBook3 = 135225,
389
+ /** 화살깃 */
390
+ arrowFletching = 135226,
391
+ /** 활골무 */
392
+ bowThimble = 135227,
393
+ /** 단검용 검집 */
394
+ daggerScabbard = 135228,
395
+ /** 부적 */
396
+ charm = 135229,
397
+ /** 오브 */
398
+ orb = 135240,
399
+ /** 용의 정수 */
400
+ dragonEssence = 135250,
401
+ /** 소울링 */
402
+ soulRing = 135260,
403
+ /** 매그넘 */
404
+ magnum = 135270,
405
+ /** 리스트밴드 */
406
+ wristBand = 135290,
407
+ /** 조준기 */
408
+ farSight = 135291,
409
+ /** 화약통 */
410
+ powderKeg = 135292,
411
+ /** 무게추 */
412
+ mass = 135293,
413
+ /** 문서 */
414
+ document = 135294,
415
+ /** 마법구슬 */
416
+ magicMarble = 135295,
417
+ /** 화살촉 */
418
+ arrowhead = 135296,
419
+ /** 보석 (시그너스) */
420
+ jewel = 135297,
421
+ /** 화약통 2 */
422
+ powderKeg2 = 135298,
423
+ /** 컨트롤러 */
424
+ controller = 135300,
425
+ /** 여우구슬 */
426
+ foxMarble = 135310,
427
+ /** 체스피스 */
428
+ chessPiece = 135320,
429
+ /** 무기 전송장치 */
430
+ transmitter = 135330,
431
+ /** 장약 */
432
+ charge = 135340,
433
+ /** 매직윙 */
434
+ magicWing = 135350,
435
+ /** 패스 오브 어비스 */
436
+ pathOfAbyss = 135360,
437
+ /** 렐릭 */
438
+ relic = 135370,
439
+ /** 선추 */
440
+ fanTassel = 135380,
441
+ /** 브레이슬릿 */
442
+ bracelet = 135400,
443
+ /** 웨폰 벨트 */
444
+ weaponBelt = 135401,
445
+ /** 노리개 */
446
+ ornament = 135402,
447
+ /** 헥스시커 */
448
+ hexSeeker = 135403,
449
+ /** 여의보주 */
450
+ sacredJewel = 135404,
451
+ /** 펫장비 */
452
+ petEquip = 180,
453
+ /** 메카닉 엔진 */
454
+ machineEngine = 161,
455
+ /** 메카닉 암 */
456
+ machineArms = 162,
457
+ /** 메카닉 레그 */
458
+ machineLegs = 163,
459
+ /** 메카닉 프레임 */
460
+ machineBody = 164,
461
+ /** 메카닉 트렌지스터 */
462
+ machineTransistors = 165,
463
+ /** 모래시계 */
464
+ hourGlass = 17237,
465
+ /** 드래곤 모자 */
466
+ dragonMask = 194,
467
+ /** 드래곤 펜던트 */
468
+ dragonPendant = 195,
469
+ /** 드래곤 날개장식 */
470
+ dragonWings = 196,
471
+ /** 드래곤 꼬리장식 */
472
+ dragonTail = 197
473
+ }
474
+ //#endregion
475
+ //#region src/lib/data/PotentialGrade.d.ts
476
+ declare enum PotentialGrade {
477
+ Normal = 0,
478
+ Rare = 1,
479
+ Epic = 2,
480
+ Unique = 3,
481
+ Legendary = 4
482
+ }
483
+ //#endregion
484
+ //#region src/lib/data/PotentialData.d.ts
485
+ /**
486
+ * 잠재옵션 정보
487
+ */
488
+ interface PotentialData {
489
+ /** 잠재능력 ID */
490
+ id?: number;
491
+ /** 잠재능력 등급 */
492
+ grade: PotentialGrade;
493
+ /** 장비에 표시되는 이름 */
494
+ summary: string;
495
+ /** 잠재능력 옵션 */
496
+ option: Partial<PotentialOption>;
497
+ }
498
+ type PotentialOption = Pick<GearOption, 'str' | 'dex' | 'int' | 'luk' | 'strRate' | 'dexRate' | 'intRate' | 'lukRate' | 'maxHp' | 'maxMp' | 'maxHpRate' | 'maxMpRate' | 'attackPower' | 'magicPower' | 'attackPowerRate' | 'magicPowerRate' | 'armor' | 'armorRate' | 'speed' | 'jump' | 'bossDamage' | 'normalDamage' | 'ignoreMonsterArmor' | 'damage' | 'criticalRate' | 'criticalDamage' | 'cooltimeReduce' | 'strLv' | 'dexLv' | 'intLv' | 'lukLv'>;
499
+ //#endregion
500
+ //#region src/lib/data/SoulSlotData.d.ts
501
+ /**
502
+ * 소울 웨폰 정보
503
+ */
504
+ interface SoulSlotData {
505
+ /** 소울 아이템 */
506
+ soul?: SoulData;
507
+ /** 소울 충전량 */
508
+ charge?: number;
509
+ /** 소울 충전 옵션 */
510
+ chargeOption?: Partial<SoulChargeOption>;
511
+ }
512
+ /**
513
+ * 소울 정보
514
+ */
515
+ interface SoulData {
516
+ /** 소울 명 */
517
+ name: string;
518
+ /** 소울 스킬 명 */
519
+ skill: string;
520
+ /** 소울 옵션 */
521
+ option: Partial<SoulOption>;
522
+ /** 소울 충전 옵션 배율 */
523
+ chargeFactor?: 1 | 2;
524
+ }
525
+ /**
526
+ * 소울 정보 (읽기 전용)
527
+ */
528
+ type ReadonlySoulData = Readonly<Omit<SoulData, 'option'> & {
529
+ option: Readonly<SoulOption>;
530
+ }>;
531
+ /**
532
+ * 소울 충전 옵션
533
+ */
534
+ type SoulChargeOption = Pick<GearOption, 'attackPower' | 'magicPower'>;
535
+ /**
536
+ * 소울 옵션
537
+ */
538
+ type SoulOption = Pick<GearOption, 'str' | 'dex' | 'int' | 'luk' | 'strRate' | 'dexRate' | 'intRate' | 'lukRate' | 'attackPower' | 'magicPower' | 'attackPowerRate' | 'magicPowerRate' | 'maxHp' | 'maxMp' | 'criticalRate' | 'ignoreMonsterArmor' | 'bossDamage'>;
539
+ //#endregion
540
+ //#region src/lib/data/GearData.d.ts
541
+ declare const VERSION = 3;
542
+ /**
543
+ * 장비 정보
544
+ */
545
+ interface GearData {
546
+ /** 장비 정보 버전 */
547
+ version: typeof VERSION;
548
+ /** 아이템 ID */
549
+ id: number;
550
+ /** 장비명 */
551
+ name: string;
552
+ /** 장비 설명 */
553
+ desc?: string;
554
+ /** 장비 아이콘 */
555
+ icon: string;
556
+ /** 장비 외형 */
557
+ shape?: GearShapeData;
558
+ /** 이름 새기기 */
559
+ itemTag?: string;
560
+ /** 장비 분류 */
561
+ type: GearType;
562
+ /** 장비 착용 제한 */
563
+ req: GearReqData;
564
+ /** 장비 속성 */
565
+ attributes: GearAttributeData;
566
+ /** 장비 기본 옵션 */
567
+ baseOption?: Partial<GearBaseOption>;
568
+ /** 장비 추가 옵션 */
569
+ addOption?: Partial<GearAddOption>;
570
+ /** 장비 주문서 강화 옵션 */
571
+ upgradeOption?: Partial<GearUpgradeOption>;
572
+ /** 장비 스타포스 옵션 */
573
+ starforceOption?: Partial<GearStarforceOption>;
574
+ /** 추가 옵션 목록 */
575
+ addOptions?: AddOptionData[];
576
+ /** 업그레이드 횟수 */
577
+ scrollUpgradeCount?: number;
578
+ /** 복구 가능 횟수 */
579
+ scrollResilienceCount?: number;
580
+ /** 업그레이드 가능 횟수 */
581
+ scrollUpgradeableCount?: number;
582
+ /** 강화 단계 */
583
+ star?: number;
584
+ /** 놀라운 장비 강화 주문서 사용 여부 */
585
+ starScroll?: boolean;
586
+ /** 소울 웨폰 정보 */
587
+ soulSlot?: SoulSlotData;
588
+ /** 잠재능력 등급 */
589
+ potentialGrade?: PotentialGrade;
590
+ /** 잠재능력 목록 */
591
+ potentials?: PotentialData[];
592
+ /** 에디셔널 잠재능력 등급 */
593
+ additionalPotentialGrade?: PotentialGrade;
594
+ /** 에디셔널 잠재능력 목록 */
595
+ additionalPotentials?: PotentialData[];
596
+ /** 장비 익셉셔널 옵션 */
597
+ exceptionalOption?: Partial<GearExceptionalOption>;
598
+ /** 익셉셔널 강화 횟수 */
599
+ exceptionalUpgradeCount?: number;
600
+ /** 익셉셔널 강화 가능 횟수 */
601
+ exceptionalUpgradeableCount?: number;
602
+ }
603
+ /**
604
+ * 장비 외형 정보
605
+ */
606
+ interface GearShapeData {
607
+ /** 장비 외형 이름 */
608
+ name: string;
609
+ /** 장비 외형 아이콘 */
610
+ icon: string;
611
+ }
612
+ /**
613
+ * 장비 착용 제한 정보
614
+ */
615
+ interface GearReqData {
616
+ /** 착용 가능 레벨 */
617
+ level?: number;
618
+ /** 착용 가능 레벨 증가 */
619
+ levelIncrease?: number;
620
+ /** 착용 가능 직업 분류 */
621
+ job?: number;
622
+ /** 착용 가능 직업 */
623
+ class?: number[];
624
+ /** 착용 가능 성별 */
625
+ gender?: GearGender;
626
+ }
627
+ /**
628
+ * 착용 가능 성별
629
+ */
630
+ declare enum GearGender {
631
+ /** 남 */
632
+ Male = 0,
633
+ /** 여 */
634
+ Female = 1
635
+ }
636
+ /**
637
+ * 장비 기본 옵션
638
+ */
639
+ type GearBaseOption = Pick<GearOption, 'str' | 'dex' | 'int' | 'luk' | 'maxHp' | 'maxMp' | 'maxHpRate' | 'maxMpRate' | 'maxDemonForce' | 'attackPower' | 'magicPower' | 'armor' | 'speed' | 'jump' | 'bossDamage' | 'ignoreMonsterArmor' | 'allStat' | 'damage' | 'reqLevelDecrease'>;
640
+ /**
641
+ * 장비 추가 옵션
642
+ */
643
+ type GearAddOption = Pick<GearBaseOption, 'str' | 'dex' | 'int' | 'luk' | 'maxHp' | 'maxMp' | 'attackPower' | 'magicPower' | 'armor' | 'speed' | 'jump' | 'bossDamage' | 'allStat' | 'damage' | 'reqLevelDecrease'>;
644
+ /**
645
+ * 장비 주문서 옵션
646
+ */
647
+ type GearUpgradeOption = Pick<GearBaseOption, 'str' | 'dex' | 'int' | 'luk' | 'maxHp' | 'maxMp' | 'attackPower' | 'magicPower' | 'armor' | 'speed' | 'jump'>;
648
+ /**
649
+ * 장비 스타포스 옵션
650
+ */
651
+ type GearStarforceOption = Pick<GearBaseOption, 'str' | 'dex' | 'int' | 'luk' | 'maxHp' | 'maxMp' | 'attackPower' | 'magicPower' | 'armor' | 'speed' | 'jump'>;
652
+ /**
653
+ * 장비 익셉셔널 옵션
654
+ */
655
+ type GearExceptionalOption = Pick<GearBaseOption, 'str' | 'dex' | 'int' | 'luk' | 'maxHp' | 'maxMp' | 'attackPower' | 'magicPower'>;
656
+ //#endregion
657
+ //#region src/lib/enhance/potential.d.ts
658
+ /**
659
+ * 잠재옵션 (읽기 전용)
660
+ */
661
+ interface ReadonlyPotential extends Readonly<PotentialData> {
662
+ /** 잠재능력 옵션 */
663
+ option: Readonly<PotentialOption>;
664
+ }
665
+ /**
666
+ * 장비가 잠재능력을 지원하는지 여부를 확인합니다.
667
+ * @param gear 확인할 장비.
668
+ * @returns 지원할 경우 `true`; 아닐 경우 `false`.
669
+ */
670
+ declare function supportsPotential(gear: ReadonlyGear): boolean;
671
+ /**
672
+ * 장비의 잠재능력을 설정할 수 있는지 여부를 확인합니다.
673
+ * @param gear 확인할 장비.
674
+ * @returns 설정할 수 있을 경우 `true`; 아닐 경우 `false`.
675
+ */
676
+ declare function canSetPotential(gear: ReadonlyGear): boolean;
677
+ /**
678
+ * 장비의 잠재능력을 설정합니다.
679
+ * @param gear 설정할 장비.
680
+ * @param grade 잠재능력 등급.
681
+ * @param options 잠재옵션 목록.
682
+ *
683
+ * @throws {@link GearError}
684
+ * 잠재능력을 설정할 수 없는 장비일 경우.
685
+ *
686
+ * @throws {@link RangeError}
687
+ * 설정하려는 잠재능력 등급이 Normal일 경우.
688
+ *
689
+ * @throws {@link TypeError}
690
+ * 잘못된 잠재옵션 목록을 지정했을 경우.
691
+ */
692
+ declare function setPotential(gear: Gear, grade: PotentialGrade, options: PotentialData[]): void;
693
+ /**
694
+ * 장비의 잠재능력을 초기화합니다.
695
+ *
696
+ * 에디셔널 잠재능력은 변경되지 않습니다.
697
+ * @param gear 초기화할 장비.
698
+ *
699
+ * @throws {@link GearError}
700
+ * 잠재능력을 초기화할 수 없는 장비일 경우.
701
+ */
702
+ declare function resetPotential(gear: Gear): void;
703
+ /**
704
+ * 장비가 에디셔널 잠재능력을 지원하는지 여부를 확인합니다.
705
+ * @param gear 확인할 장비.
706
+ * @returns 지원할 경우 `true`; 아닐 경우 `false`.
707
+ */
708
+ declare function supportsAdditionalPotential(gear: ReadonlyGear): boolean;
709
+ /**
710
+ * 장비의 에디셔널 잠재능력을 설정할 수 있는지 여부를 확인합니다.
711
+ * @param gear 확인할 장비.
712
+ * @returns 설정할 수 있을 경우 `true`; 아닐 경우 `false`.
713
+ */
714
+ declare function canSetAdditionalPotential(gear: ReadonlyGear): boolean;
715
+ /**
716
+ * 장비의 에디셔널 잠재능력을 설정합니다.
717
+ * @param gear 설정할 장비.
718
+ * @param grade 에디셔널 잠재능력 등급.
719
+ * @param options 에디셔널 잠재옵션 목록.
720
+ *
721
+ * @throws {@link GearError}
722
+ * 에디셔널 잠재능력을 설정할 수 없는 장비일 경우.
723
+ *
724
+ * @throws {@link RangeError}
725
+ * 설정하려는 에디셔널 잠재능력 등급이 Normal일 경우.
726
+ *
727
+ * @throws {@link GearError}
728
+ * 잘못된 에디셔널 잠재옵션 목록을 지정했을 경우.
729
+ */
730
+ declare function setAdditionalPotential(gear: Gear, grade: PotentialGrade, options: PotentialData[]): void;
731
+ /**
732
+ * 장비의 에디셔널 잠재능력을 초기화합니다.
733
+ * @param gear 초기화할 장비.
734
+ *
735
+ * @throws {@link GearError}
736
+ * 에디셔널 잠재능력을 초기화할 수 없는 장비일 경우.
737
+ */
738
+ declare function resetAdditionalPotential(gear: Gear): void;
739
+ //#endregion
740
+ //#region src/lib/GearAttribute.d.ts
741
+ type OptionalProperty = 'attackSpeed' | 'cuttableCount' | 'totalCuttableCount' | 'setItemId' | 'growthExp' | 'growthLevel' | 'dateExpire' | 'fixedMaxStar';
742
+ type _GearAttribute = Omit<Omit<Required<GearAttributeData>, OptionalProperty> & Pick<GearAttributeData, OptionalProperty>, 'skills'> & {
743
+ skills: readonly string[];
744
+ };
745
+ declare class GearAttribute implements _GearAttribute {
746
+ /** 장비 속성 정보 */
747
+ data: GearAttributeData;
748
+ constructor(data: GearAttributeData);
749
+ /** 고유 아이템 */
750
+ get only(): boolean;
751
+ /** 교환 가능 여부 */
752
+ get trade(): GearTrade;
753
+ set trade(value: GearTrade);
754
+ /** 고유장착 아이템 */
755
+ get onlyEquip(): boolean;
756
+ /** 월드 내 나의 캐릭터 간 이동 가능 여부 */
757
+ get share(): GearShare;
758
+ /** 슈페리얼 */
759
+ get superior(): boolean;
760
+ /** 공격 속도 */
761
+ get attackSpeed(): number | undefined;
762
+ /** 주문서 강화 가능 여부 */
763
+ get canScroll(): GearCapability;
764
+ /** 스타포스 강화 가능 여부 */
765
+ get canStarforce(): GearCapability;
766
+ /** 추가옵션 설정 가능 여부 */
767
+ get canAddOption(): GearCapability;
768
+ /** 잠재능력 설정 가능 여부 */
769
+ get canPotential(): GearCapability;
770
+ /** 에디셔널 잠재능력 설정 가능 여부 */
771
+ get canAdditionalPotential(): GearCapability;
772
+ /** 스페셜 아이템 여부 */
773
+ get specialGrade(): boolean;
774
+ /** 최대 스타포스 강화 단계 */
775
+ get fixedMaxStar(): number | undefined;
776
+ /** 카르마의 가위 사용 가능 여부 */
777
+ get cuttable(): GearCuttable;
778
+ /** 가위 사용 가능 횟수 */
779
+ get cuttableCount(): number | undefined;
780
+ set cuttableCount(value: number | undefined);
781
+ /** 최대 가위 사용 가능 횟수 */
782
+ get totalCuttableCount(): number | undefined;
783
+ /** 쉐어 네임 텍을 사용 가능 여부 */
784
+ get accountShareTag(): boolean;
785
+ /** 훈장 신비의 모루 사용 불가 여부 */
786
+ get noShapeChange(): boolean;
787
+ /** 세트 효과 ID */
788
+ get setItemId(): number | undefined;
789
+ /** 럭키 아이템 */
790
+ get lucky(): boolean;
791
+ /** 장착 시 획득 경험치 */
792
+ get incline(): Readonly<GearIncline>;
793
+ set incline(value: Partial<GearIncline>);
794
+ /** 보스 드롭 여부 */
795
+ get bossReward(): boolean;
796
+ /** 사용 가능 스킬 */
797
+ get skills(): readonly string[];
798
+ /** 성장 경험치 */
799
+ get growthExp(): number | undefined;
800
+ set growthExp(value: number | undefined);
801
+ /** 성장 레벨 */
802
+ get growthLevel(): number | undefined;
803
+ set growthLevel(value: number | undefined);
804
+ /** 장비 유효 기간(KST) */
805
+ get dateExpire(): string | undefined;
806
+ set dateExpire(value: string | undefined);
807
+ }
808
+ //#endregion
809
+ //#region src/lib/GearReq.d.ts
810
+ /**
811
+ * 장비 착용 제한
812
+ */
813
+ declare class GearReq implements GearReqData {
814
+ /**
815
+ * 장비 착용 제한 정보
816
+ */
817
+ data: GearReqData;
818
+ /**
819
+ * 장비 착용 제한 정보를 참조하는 장비 착용 제한 인스턴스를 생성합니다.
820
+ */
821
+ constructor(data: GearReqData);
822
+ /**
823
+ * 기본 착용 가능 레벨
824
+ */
825
+ get level(): number;
826
+ /**
827
+ * 착용 가능 레벨 증가
828
+ */
829
+ get levelIncrease(): number;
830
+ /**
831
+ * 착용 가능 직업 분류
832
+ * */
833
+ get job(): number;
834
+ /**
835
+ * 착용 가능 직업
836
+ */
837
+ get class(): number[];
838
+ /**
839
+ * 착용 가능 성별
840
+ */
841
+ get gender(): GearGender | undefined;
842
+ /**
843
+ * 초보자 및 전 직업 착용 가능 여부를 계산합니다.
844
+ * @returns 착용할 수 있을 경우 `true`; 아닐 경우 `false`.
845
+ */
846
+ beginner(): boolean;
847
+ /**
848
+ * 전사 착용 가능 여부를 계산합니다.
849
+ * @returns 착용할 수 있을 경우 `true`; 아닐 경우 `false`.
850
+ */
851
+ warrior(): boolean;
852
+ /**
853
+ * 마법사 착용 가능 여부를 계산합니다.
854
+ * @returns 착용할 수 있을 경우 `true`; 아닐 경우 `false`.
855
+ */
856
+ magician(): boolean;
857
+ /**
858
+ * 궁수 착용 가능 여부를 계산합니다.
859
+ * @returns 착용할 수 있을 경우 `true`; 아닐 경우 `false`.
860
+ */
861
+ bowman(): boolean;
862
+ /**
863
+ * 도적 착용 가능 여부를 계산합니다.
864
+ * @returns 착용할 수 있을 경우 `true`; 아닐 경우 `false`.
865
+ */
866
+ thief(): boolean;
867
+ /**
868
+ * 해적 착용 가능 여부를 계산합니다.
869
+ * @returns 착용할 수 있을 경우 `true`; 아닐 경우 `false`.
870
+ */
871
+ pirate(): boolean;
872
+ }
873
+ //#endregion
874
+ //#region src/lib/ReadonlyGear.d.ts
875
+ type _Gear = Omit<GearData, 'attributes' | 'potentials' | 'additionalPotentials' | 'addOptions'> & {
876
+ attributes: GearAttribute;
877
+ addOptions: readonly Readonly<AddOptionData>[];
878
+ potentials: readonly ReadonlyPotential[];
879
+ additionalPotentials: readonly ReadonlyPotential[];
880
+ };
881
+ /**
882
+ * 장비 (읽기 전용)
883
+ *
884
+ * 생성자에 전달된 장비 정보와 `data` 속성 간에 엄격한 동등(`===`)을 보장합니다.
885
+ *
886
+ * 장비 정보의 모든 속성에 대해 읽기 전용 속성을 제공합니다.
887
+ */
888
+ declare class ReadonlyGear implements _Gear {
889
+ /** 장비 정보 */
890
+ protected readonly _data: Readonly<GearData>;
891
+ /**
892
+ * 장비 정보를 참조하는 장비 인스턴스를 생성합니다.
893
+ * @param data 장비 정보.
894
+ *
895
+ * @throws {@link GearError}
896
+ * 지원하지 않는 장비 정보 버전일 경우.
897
+ */
898
+ constructor(data: GearData);
899
+ /**
900
+ * 장비 정보
901
+ */
902
+ get data(): Readonly<GearData>;
903
+ /**
904
+ * 장비 정보 버전
905
+ */
906
+ get version(): typeof VERSION;
907
+ /**
908
+ * 장비 ID
909
+ */
910
+ get id(): number;
911
+ /**
912
+ * 장비명
913
+ */
914
+ get name(): string;
915
+ /**
916
+ * 장비 아이콘
917
+ */
918
+ get icon(): string;
919
+ /**
920
+ * 장비 설명
921
+ */
922
+ get desc(): string | undefined;
923
+ /**
924
+ * 장비 외형
925
+ */
926
+ get shape(): Readonly<GearShapeData> | undefined;
927
+ /**
928
+ * 장비 외형 아이콘
929
+ *
930
+ * 장비 외형이 설정되었을 경우 장비 외형 아이콘, 그렇지 않을 경우 장비 아이콘.
931
+ */
932
+ get shapeIcon(): string;
933
+ /**
934
+ * 이름 새기기
935
+ */
936
+ get itemTag(): string | undefined;
937
+ /**
938
+ * 장비 분류
939
+ */
940
+ get type(): GearType;
941
+ /**
942
+ * 장비 착용 제한
943
+ */
944
+ get req(): GearReq;
945
+ /**
946
+ * 장비 속성
947
+ */
948
+ get attributes(): GearAttribute;
949
+ /**
950
+ * 장비 최종 옵션
951
+ *
952
+ * 기본 옵션, 추가 옵션, 주문서 옵션, 스타포스 옵션의 합.
953
+ *
954
+ * 익셉셔널 옵션은 미포함.
955
+ */
956
+ get totalOption(): Readonly<GearBaseOption & GearAddOption & GearUpgradeOption & GearStarforceOption>;
957
+ /**
958
+ * 장비 순수 옵션
959
+ */
960
+ get baseOption(): Readonly<GearBaseOption>;
961
+ /**
962
+ * 장비 추가 옵션
963
+ */
964
+ get addOption(): Readonly<GearAddOption>;
965
+ /**
966
+ * 장비 주문서 강화 옵션
967
+ */
968
+ get upgradeOption(): Readonly<GearUpgradeOption>;
969
+ /**
970
+ * 장비 스타포스 옵션
971
+ */
972
+ get starforceOption(): Readonly<GearStarforceOption>;
973
+ /**
974
+ * 추가 옵션 목록
975
+ */
976
+ get addOptions(): readonly Readonly<AddOptionData>[];
977
+ /**
978
+ * 업그레이드 횟수
979
+ */
980
+ get scrollUpgradeCount(): number;
981
+ /**
982
+ * 복구 가능 횟수
983
+ */
984
+ get scrollResilienceCount(): number;
985
+ /**
986
+ * 업그레이드 가능 횟수
987
+ */
988
+ get scrollUpgradeableCount(): number;
989
+ /**
990
+ * 전체 업그레이드 가능 횟수
991
+ *
992
+ * 성공, 실패, 황금 망치 적용 여부를 무시한 장비의 기본 업그레이드 가능 횟수입니다.
993
+ */
994
+ get scrollTotalUpgradeableCount(): number;
995
+ /**
996
+ * 스타포스 강화 단계
997
+ */
998
+ get star(): number;
999
+ /**
1000
+ * 최대 스타포스 강화 단계
1001
+ *
1002
+ * 놀라운 장비 강화 주문서가 사용되었을 경우 최대 `15`입니다.
1003
+ */
1004
+ get maxStar(): number;
1005
+ /**
1006
+ * 놀라운 장비 강화 주문서 사용 여부
1007
+ */
1008
+ get starScroll(): boolean;
1009
+ /**
1010
+ * 소울 인챈트 여부
1011
+ */
1012
+ get soulEnchanted(): boolean;
1013
+ /**
1014
+ * 소울
1015
+ */
1016
+ get soul(): ReadonlySoulData | undefined;
1017
+ /**
1018
+ * 소울 충전량
1019
+ */
1020
+ get soulCharge(): number;
1021
+ /**
1022
+ * 소울 충전 옵션
1023
+ */
1024
+ get soulChargeOption(): Readonly<SoulChargeOption>;
1025
+ /**
1026
+ * 잠재능력 등급
1027
+ */
1028
+ get potentialGrade(): PotentialGrade;
1029
+ /**
1030
+ * 잠재능력 목록
1031
+ */
1032
+ get potentials(): readonly ReadonlyPotential[];
1033
+ /**
1034
+ * 에디셔널 잠재능력 등급
1035
+ */
1036
+ get additionalPotentialGrade(): PotentialGrade;
1037
+ /**
1038
+ * 에디셔널 잠재능력 목록
1039
+ */
1040
+ get additionalPotentials(): readonly Readonly<ReadonlyPotential>[];
1041
+ /**
1042
+ * 장비 익셉셔널 옵션
1043
+ */
1044
+ get exceptionalOption(): Readonly<GearExceptionalOption>;
1045
+ /**
1046
+ * 익셉셔널 강화 횟수
1047
+ */
1048
+ get exceptionalUpgradeCount(): number;
1049
+ /**
1050
+ * 익셉셔널 강화 가능 횟수
1051
+ */
1052
+ get exceptionalUpgradeableCount(): number;
1053
+ /**
1054
+ * 전체 익셉셔널 강화 가능 횟수
1055
+ */
1056
+ get exceptionalTotalUpgradeableCount(): number;
1057
+ }
1058
+ //#endregion
1059
+ //#region src/lib/enhance/exceptional.d.ts
1060
+ /**
1061
+ * 익셉셔널 해머
1062
+ */
1063
+ interface ExceptionalHammer {
1064
+ /** 익셉셔널 해머 이름 */
1065
+ name: string;
1066
+ /** 익셉셔널 해머 아이콘 */
1067
+ icon?: string;
1068
+ /** 익셉셔널 해머 옵션 */
1069
+ option: Partial<GearUpgradeOption>;
1070
+ }
1071
+ /**
1072
+ * 장비가 익셉셔널 강화를 지원하는지 여부를 확인합니다.
1073
+ * @param gear 확인할 장비.
1074
+ * @returns 지원할 경우 `true`; 아닐 경우 `false`.
1075
+ */
1076
+ declare function supportsExceptional(gear: ReadonlyGear): boolean;
1077
+ /**
1078
+ * 장비에 익셉셔널 강화를 적용할 수 있는 상태인지 여부를 확인합니다.
1079
+ * @param gear 확인할 장비.
1080
+ * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
1081
+ */
1082
+ declare function canApplyExceptional(gear: ReadonlyGear): boolean;
1083
+ /**
1084
+ * 장비에 익셉셔널 강화를 적용합니다.
1085
+ * @param gear 적용할 장비.
1086
+ * @param exceptionalHammer 적용할 익셉셔널 해머.
1087
+ *
1088
+ * @throws {@link GearError}
1089
+ * 익셉셔널 강화를 적용할 수 없는 상태의 장비일 경우.
1090
+ */
1091
+ declare function applyExceptional(gear: Gear, exceptionalHammer: ExceptionalHammer): void;
1092
+ /**
1093
+ * 장비의 익셉셔널 강화를 초기화할 수 있는지 여부를 확인합니다.
1094
+ * @param gear 확인할 장비.
1095
+ * @returns 초기화할 수 있을 경우 `true`; 아닐 경우 `false`.
1096
+ */
1097
+ declare function canResetExceptional(gear: ReadonlyGear): boolean;
1098
+ /**
1099
+ * 장비의 익셉셔널 강화를 초기화합니다.
1100
+ * @param gear 초기화할 장비.
1101
+ *
1102
+ * @throws {@link GearError}
1103
+ * 익셉셔널 강화를 초기화할 수 없는 장비일 경우.
1104
+ */
1105
+ declare function resetExceptional(gear: Gear): void;
1106
+ //#endregion
1107
+ //#region src/lib/enhance/upgrade.d.ts
1108
+ /**
1109
+ * 주문서
1110
+ */
1111
+ interface Scroll {
1112
+ /** 주문서 이름 */
1113
+ name: string;
1114
+ /** 주문서 아이콘 */
1115
+ icon?: string;
1116
+ /** 주문서 옵션 */
1117
+ option: Partial<GearUpgradeOption>;
1118
+ }
1119
+ /**
1120
+ * 장비가 주문서 강화를 지원하는지 여부를 확인합니다.
1121
+ * @param gear 확인할 장비.
1122
+ * @returns 지원할 경우 `true`; 아닐 경우 `false`.
1123
+ */
1124
+ declare function supportsUpgrade(gear: ReadonlyGear): boolean;
1125
+ /**
1126
+ * 장비에 주문서 실패를 적용할 수 있는 상태인지 여부를 확인합니다.
1127
+ * @param gear 확인할 장비.
1128
+ * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
1129
+ */
1130
+ declare function canFailScroll(gear: ReadonlyGear): boolean;
1131
+ /**
1132
+ * 장비에 주문서 실패를 적용합니다.
1133
+ * @param gear 적용할 장비.
1134
+ *
1135
+ * @throws {@link GearError}
1136
+ * 주문서 실패를 적용할 수 없는 상태의 장비일 경우.
1137
+ */
1138
+ declare function failScroll(gear: Gear): void;
1139
+ /**
1140
+ * 장비가 주문서 실패로 차감된 업그레이드 가능 횟수를 복구할 수 있는 상태인지 여부를 확인합니다.
1141
+ * @param gear 확인할 장비.
1142
+ * @returns 복구할 수 있을 경우 `true`; 아닐 경우 `false`.
1143
+ */
1144
+ declare function canResileScroll(gear: ReadonlyGear): boolean;
1145
+ /**
1146
+ * 장비의 주문서 실패로 차감된 업그레이드 가능 횟수를 1회 복구합니다.
1147
+ * @param gear 복구할 장비.
1148
+ *
1149
+ * @throws {@link GearError}
1150
+ * 업그레이드 가능 횟수를 복구할 수 없는 상태의 장비일 경우.
1151
+ */
1152
+ declare function resileScroll(gear: Gear): void;
1153
+ /**
1154
+ * 장비의 주문서 강화를 초기화할 수 있는지 여부를 확인합니다.
1155
+ * @param gear 확인할 장비.
1156
+ * @returns 초기화할 수 있을 경우 `true`; 아닐 경우 `false`.
1157
+ */
1158
+ declare function canResetUpgrade(gear: ReadonlyGear): boolean;
1159
+ /**
1160
+ * 장비의 주문서 강화를 초기화합니다.
1161
+ * @param gear 초기화할 장비.
1162
+ *
1163
+ * @throws {@link GearError}
1164
+ * 주문서 강화를 초기화할 수 없는 장비일 경우.
1165
+ */
1166
+ declare function resetUpgrade(gear: Gear): void;
1167
+ /**
1168
+ * 장비에 주문서를 적용할 수 있는 상태인지 여부를 확인합니다.
1169
+ * @param gear 확인할 장비.
1170
+ * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
1171
+ */
1172
+ declare function canApplyScroll(gear: ReadonlyGear): boolean;
1173
+ /**
1174
+ * 장비에 주문서를 적용합니다.
1175
+ * @param gear 적용할 장비.
1176
+ * @param scroll 적용할 주문서.
1177
+ *
1178
+ * @throws {@link GearError}
1179
+ * 주문서를 적용할 수 없는 상태의 장비일 경우.
1180
+ */
1181
+ declare function applyScroll(gear: Gear, scroll: Scroll): void;
1182
+ //#endregion
1183
+ //#region src/lib/enhance/spellTrace.d.ts
1184
+ /**
1185
+ * 주문의 흔적 종류
1186
+ */
1187
+ declare enum SpellTraceType {
1188
+ /** STR */
1189
+ str = "str",
1190
+ /** DEX */
1191
+ dex = "dex",
1192
+ /** INT */
1193
+ int = "int",
1194
+ /** LUK */
1195
+ luk = "luk",
1196
+ /** 최대 HP */
1197
+ maxHp = "maxHp",
1198
+ /** 올스탯 */
1199
+ allStat = "allStat"
1200
+ }
1201
+ /**
1202
+ * 주문의 흔적 성공 확률
1203
+ */
1204
+ type SpellTraceRate = 100 | 70 | 30 | 15;
1205
+ /**
1206
+ * 주문의 흔적
1207
+ */
1208
+ type SpellTrace = Scroll & {
1209
+ type: SpellTraceType;
1210
+ rate: SpellTraceRate;
1211
+ };
1212
+ /**
1213
+ * 장비에 주문의 흔적 강화를 적용합니다.
1214
+ * @param gear 적용할 장비.
1215
+ * @param type 주문의 흔적 종류.
1216
+ * @param rate 주문의 흔적 성공 확률.
1217
+ *
1218
+ * @throws {@link GearError}
1219
+ * 주문서를 적용할 수 없는 상태의 장비일 경우.
1220
+ *
1221
+ * @throws {@link GearError}
1222
+ * 장비에 적용할 수 없는 주문의 흔적을 지정했을 경우.
1223
+ */
1224
+ declare function applySpellTrace(gear: Gear, type: SpellTraceType, rate: SpellTraceRate): void;
1225
+ /**
1226
+ * 주문의 흔적 주문서를 생성합니다.
1227
+ * @param gear 대상 장비.
1228
+ * @param type 주문의 흔적 종류.
1229
+ * @param rate 주문의 흔적 성공 확률.
1230
+ * @returns 주문의 흔적 주문서.
1231
+ *
1232
+ * @throws {@link GearError}
1233
+ * 주문의 흔적을 장비에 적용할 수 없는 경우.
1234
+ */
1235
+ declare function getSpellTraceScroll(gear: ReadonlyGear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
1236
+ //#endregion
1237
+ //#region src/lib/Gear.d.ts
1238
+ /**
1239
+ * 장비
1240
+ *
1241
+ * 장비 정보를 KMS과 동일한 방식으로 변경하는 기능을 제공합니다.
1242
+ * - `supports...`: 장비가 특정 강화 방식을 지원하는지 여부입니다.
1243
+ * - `can...`: 장비에 특정 강화를 적용할 수 있는 상태인지 여부입니다.
1244
+ * - `apply...()`: 장비에 특정 강화를 적용합니다.
1245
+ * - `set...()`: 장비의 특정 속성을 설정합니다.
1246
+ * - `reset...()`: 장비의 특정 강화에 관련된 속성을 초기화합니다.
1247
+ *
1248
+ * 생성자에 전달된 장비 정보와 `data` 속성 간에 엄격한 동등(`===`)을 보장합니다.
1249
+ *
1250
+ * 장비 정보의 모든 속성에 대해 읽기 전용 속성을 제공합니다.
1251
+ * 일부 속성은 장비 객체 자체에 또는 반환 객체의 속성에 쓰기가 가능합니다.
1252
+ */
1253
+ declare class Gear extends ReadonlyGear {
1254
+ /**
1255
+ * 장비 정보
1256
+ */
1257
+ get data(): GearData;
1258
+ /**
1259
+ * 장비 외형
1260
+ */
1261
+ get shape(): Readonly<GearShapeData> | undefined;
1262
+ /**
1263
+ * 장비 외형 변경
1264
+ *
1265
+ * @param shape 변경할 장비 외형.
1266
+ *
1267
+ * @throws {@link GearError}
1268
+ * 외형을 변경할 수 없는 장비일 경우.
1269
+ */
1270
+ set shape(shape: GearShapeData | undefined);
1271
+ /**
1272
+ * 이름 새기기
1273
+ */
1274
+ get itemTag(): string | undefined;
1275
+ /**
1276
+ * 이름 새기기 변경
1277
+ *
1278
+ * @param itemTag 적용할 이름.
1279
+ */
1280
+ set itemTag(itemTag: string | undefined);
1281
+ /**
1282
+ * 장비가 추가 옵션을 지원하는지 여부
1283
+ */
1284
+ get supportsAddOption(): boolean;
1285
+ /**
1286
+ * 장비에 추가 옵션을 적용할 수 있는 상태인지 여부
1287
+ */
1288
+ get canApplyAddOption(): boolean;
1289
+ /**
1290
+ * 장비에 추가 옵션을 적용합니다.
1291
+ * @param type 추가 옵션 종류.
1292
+ * @param grade 추가 옵션 단계.
1293
+ *
1294
+ * @throws {@link GearError}
1295
+ * 추가 옵션을 적용할 수 없는 상태일 경우.
1296
+ *
1297
+ * @throws {@link GearError}
1298
+ * 부여할 수 없는 추가 옵션을 지정했을 경우.
1299
+ */
1300
+ applyAddOption(type: AddOptionType, grade: AddOptionGrade): void;
1301
+ /**
1302
+ * 장비의 추가 옵션을 초기화할 수 있는 상태인지 여부
1303
+ */
1304
+ get canResetAddOption(): boolean;
1305
+ /**
1306
+ * 장비의 추가 옵션을 초기화합니다.
1307
+ *
1308
+ * @throws {@link GearError}
1309
+ * 추가 옵션을 초기화할 수 없는 상태의 장비일 경우.
1310
+ */
1311
+ resetAddOption(): void;
1312
+ /**
1313
+ * 장비가 주문서 강화를 지원하는지 여부
1314
+ */
1315
+ get supportsUpgrade(): boolean;
1316
+ /**
1317
+ * 장비에 주문서 실패를 적용할 수 있는 상태인지 여부
1318
+ */
1319
+ get canApplyScrollFail(): boolean;
1320
+ /**
1321
+ * 장비에 주문서 실패를 1회 적용합니다.
1322
+ *
1323
+ * @throws {@link GearError}
1324
+ * 주문서 실패를 적용할 수 없는 상태일 경우.
1325
+ */
1326
+ applyScrollFail(): void;
1327
+ /**
1328
+ * 장비의 주문서 실패로 차감된 업그레이드 가능 횟수를 복구할 수 있는 상태인지 여부
1329
+ */
1330
+ get canApplyResileScroll(): boolean;
1331
+ /**
1332
+ * 장비의 주문서 실패로 차감된 업그레이드 가능 횟수를 1회 복구합니다.
1333
+ *
1334
+ * @throws {@link GearError}
1335
+ * 업그레이드 가능 횟수를 복구할 수 없는 상태일 경우.
1336
+ */
1337
+ applyResileScroll(): void;
1338
+ /**
1339
+ * 장비의 주문서 강화를 초기화할 수 있는 상태인지 여부
1340
+ */
1341
+ get canResetUpgrade(): boolean;
1342
+ /**
1343
+ * 장비의 주문서 강화를 초기화합니다.
1344
+ *
1345
+ * @throws {@link GearError}
1346
+ * 주문서 강화를 초기화할 수 없는 장비일 경우.
1347
+ */
1348
+ resetUpgrade(): void;
1349
+ /**
1350
+ * 장비에 주문서를 적용할 수 있는 상태인지 여부
1351
+ */
1352
+ get canApplyScroll(): boolean;
1353
+ /**
1354
+ * 장비에 주문서를 1회 적용합니다.
1355
+ * @param scroll 적용할 주문서.
1356
+ *
1357
+ * @throws {@link GearError}
1358
+ * 주문서를 적용할 수 없는 상태일 경우.
1359
+ */
1360
+ applyScroll(scroll: Scroll): void;
1361
+ /**
1362
+ * 장비에 주문의 흔적 강화를 1회 적용합니다.
1363
+ * @param type 주문의 흔적 종류.
1364
+ * @param rate 주문의 흔적 성공 확률.
1365
+ *
1366
+ * @throws {@link GearError}
1367
+ * 주문서를 적용할 수 없는 상태일 경우.
1368
+ *
1369
+ * @throws {@link GearError}
1370
+ * 적용할 수 없는 주문의 흔적을 지정했을 경우.
1371
+ */
1372
+ applySpellTrace(type: SpellTraceType, rate: SpellTraceRate): void;
1373
+ /**
1374
+ * 장비가 스타포스 강화를 지원하는지 여부
1375
+ */
1376
+ get supportsStarforce(): boolean;
1377
+ /**
1378
+ * 장비에 스타포스 강화를 적용할 수 있는 상태인지 여부
1379
+ */
1380
+ get canApplyStarforce(): boolean;
1381
+ /**
1382
+ * 장비에 스타포스 강화를 1회 적용합니다.
1383
+ *
1384
+ * @throws {@link GearError}
1385
+ * 스타포스 강화를 적용할 수 없는 경우.
1386
+ */
1387
+ applyStarforce(): void;
1388
+ /**
1389
+ * 장비에 최대 강화 단계를 무시하고 스타포스 강화를 적용할 수 있는 상태인지 여부
1390
+ */
1391
+ get canApplyStarforceIgnoringMaxStar(): boolean;
1392
+ /**
1393
+ * 장비에 최대 강화 단계를 무시하고 스타포스 강화를 1회 적용합니다.
1394
+ *
1395
+ * @throws {@link GearError}
1396
+ * 스타포스 강화를 적용할 수 없는 경우.
1397
+ */
1398
+ applyStarforceIgnoringMaxStar(): void;
1399
+ /**
1400
+ * 장비에 놀라운 장비 강화 주문서를 적용할 수 있는 상태인지 여부
1401
+ */
1402
+ get canApplyStarScroll(): boolean;
1403
+ /**
1404
+ * 장비에 놀라운 장비 강화 주문서를 1회 적용합니다.
1405
+ * @param bonus 보너스 스탯 적용 여부.
1406
+ *
1407
+ * @throws {@link GearError}
1408
+ * 놀라운 장비 강화 주문서를 적용할 수 없는 경우.
1409
+ */
1410
+ applyStarScroll(bonus?: boolean): void;
1411
+ /**
1412
+ * 장비에 놀라운 장비 강화 주문서를 적용할 수 있는 상태인지 여부
1413
+ */
1414
+ get canApplyStarScrollIgnoringMaxStar(): boolean;
1415
+ /**
1416
+ * 장비에 놀라운 장비 강화 주문서를 1회 적용합니다.
1417
+ * @param bonus 보너스 스탯 적용 여부.
1418
+ *
1419
+ * @throws {@link GearError}
1420
+ * 놀라운 장비 강화 주문서를 적용할 수 없는 경우.
1421
+ */
1422
+ applyStarScrollIgnoringMaxStar(bonus?: boolean): void;
1423
+ /**
1424
+ * 장비의 스타포스 강화를 초기화할 수 있는지 여부
1425
+ */
1426
+ get canResetStarforce(): boolean;
1427
+ /**
1428
+ * 장비의 스타포스 강화를 초기화합니다.
1429
+ */
1430
+ resetStarforce(): void;
1431
+ /**
1432
+ * 장비가 잠재능력을 지원하는지 여부
1433
+ */
1434
+ get supportsPotential(): boolean;
1435
+ /**
1436
+ * 장비의 잠재능력을 설정할 수 있는지 여부
1437
+ */
1438
+ get canSetPotential(): boolean;
1439
+ /**
1440
+ * 장비의 잠재능력을 설정합니다.
1441
+ *
1442
+ * `grade`는 `PotentialGrade.Normal`일 수 없습니다.
1443
+ *
1444
+ * `options`에 포함된 잠재옵션은 1개 이상 3개 이하여야 합니다.
1445
+ * @param grade 잠재능력 등급.
1446
+ * @param options 잠재옵션 목록.
1447
+ *
1448
+ * @throws {@link GearError}
1449
+ * 잠재능력을 설정할 수 없는 경우.
1450
+ *
1451
+ * @throws {@link RangeError}
1452
+ * 설정하려는 잠재능력 등급이 Normal일 경우.
1453
+ *
1454
+ * @throws {@link TypeError}
1455
+ * 잘못된 잠재옵션 목록을 지정했을 경우.
1456
+ */
1457
+ setPotential(grade: PotentialGrade, options: PotentialData[]): void;
1458
+ /**
1459
+ * 장비의 잠재능력을 초기화합니다.
1460
+ *
1461
+ * 에디셔널 잠재능력은 변경되지 않습니다.
1462
+ *
1463
+ * @throws {@link GearError}
1464
+ * 잠재능력을 초기화할 수 없는 경우.
1465
+ */
1466
+ resetPotential(): void;
1467
+ /**
1468
+ * 장비가 에디셔널 잠재능력을 지원하는지 여부
1469
+ */
1470
+ get supportsAdditionalPotential(): boolean;
1471
+ /**
1472
+ * 장비의 에디셔널 잠재능력을 설정할 수 있는지 여부
1473
+ */
1474
+ get canSetAdditionalPotential(): boolean;
1475
+ /**
1476
+ * 장비의 에디셔널 잠재능력을 설정합니다.
1477
+ *
1478
+ * `grade`는 `PotentialGrade.Normal`일 수 없습니다.
1479
+ *
1480
+ * `options`에 포함된 에디셔널 잠재옵션은 1개 이상 3개 이하여야 합니다.
1481
+ * @param grade 에디셔널 잠재능력 등급.
1482
+ * @param options 에디셔널 잠재옵션 목록.
1483
+ *
1484
+ * @throws {@link GearError}
1485
+ * 에디셔널 잠재능력을 설정할 수 없는 경우.
1486
+ *
1487
+ * @throws {@link RangeError}
1488
+ * 설정하려는 에디셔널 잠재능력 등급이 Normal일 경우.
1489
+ *
1490
+ * @throws {@link TypeError}
1491
+ * 잘못된 에디셔널 잠재옵션 목록을 지정했을 경우.
1492
+ */
1493
+ setAdditionalPotential(grade: PotentialGrade, options: PotentialData[]): void;
1494
+ /**
1495
+ * 장비의 에디셔널 잠재능력을 초기화합니다.
1496
+ *
1497
+ * @throws {@link GearError}
1498
+ * 에디셔널 잠재능력을 초기화할 수 없는 경우.
1499
+ */
1500
+ resetAdditionalPotential(): void;
1501
+ /**
1502
+ * 장비가 소울웨폰을 지원하는지 여부
1503
+ */
1504
+ get supportsSoul(): boolean;
1505
+ /**
1506
+ * 장비에 소울 인챈터를 적용할 수 있는 상태인지 여부
1507
+ */
1508
+ get canApplySoulEnchant(): boolean;
1509
+ /**
1510
+ * 장비에 소울 인챈터를 적용합니다.
1511
+ */
1512
+ applySoulEnchant(): void;
1513
+ /**
1514
+ * 장비에 소울을 장착할 수 있는지 여부
1515
+ */
1516
+ get canSetSoul(): boolean;
1517
+ /**
1518
+ * 장비에 소울을 장착합니다.
1519
+ * @param soul 장착할 소울 아이템.
1520
+ *
1521
+ * @throws {@link GearError}
1522
+ * 소울을 장착할 수 없는 경우.
1523
+ */
1524
+ setSoul(soul: SoulData): void;
1525
+ /**
1526
+ * 장비의 소울 충전량을 설정할 수 있는지 여부
1527
+ */
1528
+ get canSetSoulCharge(): boolean;
1529
+ /**
1530
+ * 장비의 소울 충전량을 설정합니다.
1531
+ * @param charge 소울 충전량.
1532
+ *
1533
+ * @throws {@link GearError}
1534
+ * 소울 충전량을 설정할 수 없는 경우.
1535
+ */
1536
+ setSoulCharge(charge: number): void;
1537
+ /**
1538
+ * 장비의 소울웨폰을 초기화합니다.
1539
+ */
1540
+ resetSoulEnchant(): void;
1541
+ /**
1542
+ * 장비가 익셉셔널 강화를 지원하는지 여부
1543
+ */
1544
+ get supportsExceptional(): boolean;
1545
+ /**
1546
+ * 장비에 익셉셔널 강화를 적용할 수 있는지 여부
1547
+ */
1548
+ get canApplyExceptional(): boolean;
1549
+ /**
1550
+ * 장비에 익셉셔널 강화를 적용합니다.
1551
+ * @param exceptionalHammer 적용할 익셉셔널 해머.
1552
+ *
1553
+ * @throws {@link GearError}
1554
+ * 익셉셔널 강화를 적용할 수 없는 상태일 경우.
1555
+ */
1556
+ applyExceptional(exceptionalHammer: ExceptionalHammer): void;
1557
+ /**
1558
+ * 장비의 익셉셔널 강화를 초기화할 수 있는지 여부
1559
+ */
1560
+ get canResetExceptional(): boolean;
1561
+ /**
1562
+ * 장비의 익셉셔널 강화를 초기화합니다.
1563
+ *
1564
+ * @throws {@link GearError}
1565
+ * 익셉셔널 강화를 초기화할 수 없는 경우.
1566
+ */
1567
+ resetExceptional(): void;
1568
+ }
1569
+ //#endregion
1570
+ //#region src/lib/enhance/addOption.d.ts
1571
+ /**
1572
+ * 장비가 추가 옵션을 지원하는지 확인합니다.
1573
+ * @param gear 확인할 장비.
1574
+ * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
1575
+ */
1576
+ declare function supportsAddOption(gear: ReadonlyGear): boolean;
1577
+ /**
1578
+ * 장비에 추가 옵션을 적용할 수 있는 상태인지 여부를 확인합니다.
1579
+ * @param gear 확인할 장비.
1580
+ * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
1581
+ */
1582
+ declare function canApplyAddOption(gear: ReadonlyGear): boolean;
1583
+ /**
1584
+ * 장비에 추가 옵션을 적용합니다.
1585
+ * @param gear 적용할 장비.
1586
+ * @param type 추가 옵션 종류.
1587
+ * @param grade 추가 옵션 단계.
1588
+ *
1589
+ * @throws {@link GearError}
1590
+ * 추가 옵션을 적용할 수 없는 상태의 장비일 경우.
1591
+ *
1592
+ * @throws {@link GearError}
1593
+ * 장비에 부여할 수 없는 추가 옵션을 지정했을 경우.
1594
+ */
1595
+ declare function applyAddOption(gear: Gear, type: AddOptionType, grade: AddOptionGrade): void;
1596
+ /**
1597
+ * 추가 옵션을 초기화할 수 있는지 여부를 확인합니다.
1598
+ * @param gear 확인할 장비.
1599
+ * @returns 초기화할 수 있을 경우 `true`; 아닐 경우 `false`.
1600
+ */
1601
+ declare function canResetAddOption(gear: ReadonlyGear): boolean;
1602
+ /**
1603
+ * 장비의 추가 옵션을 초기화합니다.
1604
+ * @param gear 초기화할 장비.
1605
+ *
1606
+ * @throws {@link GearError}
1607
+ * 추가 옵션을 초기화할 수 없는 상태의 장비일 경우.
1608
+ */
1609
+ declare function resetAddOption(gear: Gear): void;
1610
+ /**
1611
+ * 장비에 적용되는 추가 옵션을 계산합니다.
1612
+ * @param gear 추가옵션을 계산할 장비.
1613
+ * @param type 추가 옵션 종류.
1614
+ * @param grade 추가 옵션 단계.
1615
+ * @returns 추가 옵션 종류 및 단계에 해당하는 옵션.
1616
+ *
1617
+ * @throws {@link GearError}
1618
+ * 장비에 부여할 수 없는 추가 옵션을 지정했을 경우.
1619
+ */
1620
+ declare function getAddOption(gear: ReadonlyGear, type: AddOptionType, grade: AddOptionGrade): Partial<GearAddOption>;
1621
+ /**
1622
+ * 장비에 적용되는 추가 옵션 종류에 따른 값을 계산합니다.
1623
+ * @param gear 추가옵션을 계산할 장비.
1624
+ * @param type 추가 옵션 종류.
1625
+ * @param grade 추가 옵션 단계.
1626
+ * @returns 추가 옵션 값.
1627
+ *
1628
+ * @throws {@link GearError}
1629
+ * 장비에 부여할 수 없는 추가 옵션을 지정했을 경우.
1630
+ */
1631
+ declare function getAddOptionValue(gear: ReadonlyGear, type: AddOptionType, grade: AddOptionGrade): number;
1632
+ //#endregion
1633
+ //#region src/lib/enhance/soulSlot.d.ts
1634
+ /**
1635
+ * 장비가 소울웨폰을 지원하는지 여부를 확인합니다.
1636
+ * @param gear 확인할 장비.
1637
+ * @returns 지원할 경우 `true`; 아닐 경우 `false`.
1638
+ */
1639
+ declare function supportsSoul(gear: ReadonlyGear): boolean;
1640
+ /**
1641
+ * 장비에 소울 인챈터를 적용할 수 있는 상태인지 여부를 확인합니다.
1642
+ * @param gear 확인할 장비.
1643
+ * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
1644
+ */
1645
+ declare function canApplySoulEnchant(gear: ReadonlyGear): boolean;
1646
+ /**
1647
+ * 장비에 소울 인챈터를 적용합니다.
1648
+ * @param gear 적용할 장비.
1649
+ *
1650
+ * @throws {@link GearError}
1651
+ * 소울 인챈터를 적용할 수 없는 경우.
1652
+ */
1653
+ declare function applySoulEnchant(gear: Gear): void;
1654
+ /**
1655
+ * 장비에 소울을 장착할 수 있는지 여부를 확인합니다.
1656
+ * @param gear 확인할 장비.
1657
+ * @returns 장착할 수 있을 경우 `true`; 아닐 경우 `false`.
1658
+ */
1659
+ declare function canSetSoul(gear: ReadonlyGear): boolean;
1660
+ /**
1661
+ * 장비에 소울을 장착합니다.
1662
+ * @param gear 대상 장비.
1663
+ * @param soul 장착할 소울 아이템.
1664
+ *
1665
+ * @throws {@link GearError}
1666
+ * 소울을 장착할 수 없는 경우.
1667
+ */
1668
+ declare function setSoul(gear: Gear, soul: SoulData): void;
1669
+ /**
1670
+ * 장비의 소울 충전량을 설정할 수 있는지 여부를 확인합니다.
1671
+ * @param gear 확인할 장비.
1672
+ * @returns 설정할 수 있을 경우 `true`; 아닐 경우 `false`.
1673
+ */
1674
+ declare function canSetSoulCharge(gear: ReadonlyGear): boolean;
1675
+ /**
1676
+ * 장비의 소울 충전량을 설정합니다.
1677
+ * @param gear 대상 장비.
1678
+ * @param charge 소울 충전량.
1679
+ *
1680
+ * @throws {@link GearError}
1681
+ * 소울 충전량을 설정할 수 없는 경우.
1682
+ *
1683
+ * @throws {@link RangeError}
1684
+ * 소울 충전량이 0 미만 또는 1000 초과인 경우.
1685
+ */
1686
+ declare function setSoulCharge(gear: Gear, charge: number): void;
1687
+ /**
1688
+ * 장비의 소울웨폰을 초기화합니다.
1689
+ * @param gear 초기화할 장비.
1690
+ */
1691
+ declare function resetSoulEnchant(gear: Gear): void;
1692
+ //#endregion
1693
+ //#region src/lib/enhance/starforce.d.ts
1694
+ /**
1695
+ * 장비가 스타포스 강화를 지원하는지 여부를 확인합니다.
1696
+ * @param gear 확인할 장비.
1697
+ * @returns 지원할 경우 `true`; 아닐 경우 `false`.
1698
+ */
1699
+ declare function supportsStarforce(gear: ReadonlyGear): boolean;
1700
+ /**
1701
+ * 장비에 스타포스 강화를 적용할 수 있는 상태인지 여부를 확인합니다.
1702
+ *
1703
+ * 업그레이드가 완료되지 않은 장비, 놀라운 장비강화 주문서가 적용된 장비에도 적용할 수 있습니다.
1704
+ * @param gear 확인할 장비.
1705
+ * @param exceedMaxStar 장비의 최대 강화 단계를 초과하여 강화할 지 여부.
1706
+ * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
1707
+ */
1708
+ declare function canStarforce(gear: ReadonlyGear, exceedMaxStar?: boolean): boolean;
1709
+ /**
1710
+ * 장비에 스타포스 강화를 1회 적용합니다.
1711
+ *
1712
+ * 업그레이드가 완료되지 않은 장비, 놀라운 장비강화 주문서가 적용된 장비에도 적용할 수 있습니다.
1713
+ * @param gear 적용할 장비.
1714
+ * @param exceedMaxStar 장비의 최대 강화 단계를 초과하여 강화할 지 여부.
1715
+ *
1716
+ * @throws {@link GearError}
1717
+ * 스타포스 강화를 적용할 수 없는 경우.
1718
+ */
1719
+ declare function starforce(gear: Gear, exceedMaxStar?: boolean): void;
1720
+ /**
1721
+ * 장비에 놀라운 장비 강화 주문서를 적용할 수 있는 상태인지 여부를 확인합니다.
1722
+ *
1723
+ * 착용 가능 레벨 150 이하의 장비에만 적용할 수 있습니다.
1724
+ * 업그레이드가 완료되지 않은 장비, 놀라운 장비강화 주문서가 적용된 장비에도 적용할 수 있습니다.
1725
+ * 슈페리얼 장비에는 적용할 수 없습니다.
1726
+ * @param gear 확인할 장비.
1727
+ * @param exceedMaxStar 장비의 최대 강화 단계를 초과하여 강화할 지 여부.
1728
+ * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
1729
+ */
1730
+ declare function canStarScroll(gear: ReadonlyGear, exceedMaxStar?: boolean): boolean;
1731
+ /**
1732
+ * 장비에 놀라운 장비 강화 주문서를 1회 적용합니다.
1733
+ *
1734
+ * 착용 가능 레벨 150 이하의 장비에만 적용할 수 있습니다.
1735
+ * 업그레이드가 완료되지 않은 장비, 스타포스 강화가 적용된 장비에도 적용할 수 있습니다.
1736
+ * 슈페리얼 장비에는 적용할 수 없습니다.
1737
+ *
1738
+ * 보너스 스탯은 장비 분류에 따라 결정됩니다.
1739
+ * - 방어구(방패 제외): 최대 HP +50
1740
+ * - 장신구: 올스탯 +1 ~ +2
1741
+ * - 무기/블레이드/방패: 공격력/마력 +1
1742
+ * @param gear 적용할 장비.
1743
+ * @param bonus 보너스 스탯 적용 여부.
1744
+ * @param exceedMaxStar 장비의 최대 강화 단계를 초과하여 강화할 지 여부.
1745
+ *
1746
+ * @throws {@link GearError}
1747
+ * 놀라운 장비 강화 주문서를 적용할 수 없는 경우.
1748
+ */
1749
+ declare function starScroll(gear: Gear, bonus?: boolean, exceedMaxStar?: boolean): void;
1750
+ /**
1751
+ * 장비의 스타포스 강화를 초기화할 수 있는지 여부를 확인합니다.
1752
+ * @param gear 확인할 장비.
1753
+ * @returns 초기화할 수 있을 경우 `true`; 아닐 경우 `false`.
1754
+ */
1755
+ declare function canResetStarforce(gear: ReadonlyGear): boolean;
1756
+ /**
1757
+ * 장비의 스타포스 강화를 초기화합니다.
1758
+ * @param gear 초기화할 장비.
1759
+ *
1760
+ * @throws {@link GearError}
1761
+ * 스타포스 강화를 초기화할 수 없는 장비일 경우.
1762
+ */
1763
+ declare function resetStarforce(gear: Gear): void;
1764
+ /**
1765
+ * 장비의 최대 스타포스 강화를 계산합니다.
1766
+ *
1767
+ * 놀라운 장비 강화 주문서가 사용되었을 경우 최대 `15`입니다.
1768
+ * @param gear 계산할 장비.
1769
+ * @returns 장비의 최대 스타포스 강화.
1770
+ */
1771
+ declare function getMaxStar(gear: ReadonlyGear): number;
1772
+ /**
1773
+ * exceedMaxStar가 true일 경우의 최대 스타포스 강화를 계산합니다.
1774
+ * 장비 강화 주문서 및 언리미티드 아이템을 토드하는 경우를 고려합니다.
1775
+ *
1776
+ * 놀라운 장비 강화 주문서가 사용되었을 경우 최대 `15`입니다.
1777
+ * @param gear 계산할 장비.
1778
+ * @returns exceedMaxStar가 true일 경우의 최대 스타포스 강화.
1779
+ */
1780
+ declare function getHardMaxStar(gear: ReadonlyGear): number;
1781
+ //#endregion
1782
+ //#region src/lib/manage/migrate.d.ts
1783
+ /**
1784
+ * 입력 장비 정보를 목표 버전으로 마이그레이션합니다.
1785
+ * 이 함수가 성공한 이후에는 입력 장비 정보 객체를 사용할 수 없습니다.
1786
+ *
1787
+ * @param data 마이그레이션할 장비 정보.
1788
+ * @param version 목표 버전.
1789
+ * @returns 목표 버전으로 마이그레이션된 장비 정보.
1790
+ *
1791
+ * @throws {@link TypeError}
1792
+ * 입력 데이터가 유효하지 않은 경우.
1793
+ * 입력 데이터의 버전이 잘못되었거나 지원하는 버전보다 최신인 경우.
1794
+ */
1795
+ declare function migrate(data: object, version?: number): object;
1796
+ //#endregion
1797
+ //#region src/lib/gearOption.d.ts
1798
+ /**
1799
+ * 장비 옵션의 설정되지 않은 속성(`undefined`)을 `0`으로 처리하는 프록시 객체를 생성합니다.
1800
+ *
1801
+ * 프록시 객체를 반복할 때 값이 `0`인 속성은 열거하지 않습니다.
1802
+ * @param option 장비 옵션.
1803
+ * @returns 장비 옵션 프록시.
1804
+ */
1805
+ declare function toGearOption(option: Partial<GearOption>): GearOption;
1806
+ //#endregion
1807
+ //#region src/lib/gearType.d.ts
1808
+ /**
1809
+ * 장비 분류가 주무기인지 여부를 확인합니다. 블레이드(`katara`)는 포함되지 않습니다.
1810
+ * @param type 장비 분류.
1811
+ * @returns 주무기일 경우 `true`; 아닐 경우 `false`.
1812
+ */
1813
+ declare function isWeapon(type: GearType): boolean;
1814
+ /**
1815
+ * 장비 분류가 한손무기인지 여부를 확인합니다. 블레이드(`katara`)는 포함되지 않습니다.
1816
+ * @param type 장비 분류.
1817
+ * @returns 한손무기일 경우 `true`; 아닐 경우 `false`.
1818
+ */
1819
+ declare function isLeftWeapon(type: GearType): boolean;
1820
+ /**
1821
+ * 장비 분류가 두손무기인지 여부를 확인합니다.
1822
+ * @param type 장비 분류.
1823
+ * @returns 두손무기일 경우 `true`; 아닐 경우 `false`.
1824
+ */
1825
+ declare function isDoubleHandWeapon(type: GearType): boolean;
1826
+ /**
1827
+ * 장비 분류가 보조무기인지 여부를 확인합니다. 블레이드(`katara`), 방패류가 포함됩니다.
1828
+ * @param type 장비 분류.
1829
+ * @returns 보조무기일 경우 `true`; 아닐 경우 `false`.
1830
+ */
1831
+ declare function isSubWeapon(type: GearType): boolean;
1832
+ /**
1833
+ * 장비 분류가 방패인지 여부를 확인합니다.
1834
+ * @param type 장비 분류.
1835
+ * @returns 방패일 경우 `true`; 아닐 경우 `false`.
1836
+ */
1837
+ declare function isShield(type: GearType): boolean;
1838
+ /**
1839
+ * 장비 분류가 방어구인지 여부를 확인합니다. 어깨장식이 포함되지 않고 방패가 포함됩니다.
1840
+ * @param type 장비 분류.
1841
+ * @returns 방어구일 경우 `true`; 아닐 경우 `false`.
1842
+ */
1843
+ declare function isArmor(type: GearType): boolean;
1844
+ /**
1845
+ * 장비 분류가 장신구인지 여부를 확인합니다. 어깨장식이 포함됩니다.
1846
+ * @param type 장비 분류.
1847
+ * @returns 장신구일 경우 `true`; 아닐 경우 `false`.
1848
+ */
1849
+ declare function isAccessory(type: GearType): boolean;
1850
+ /**
1851
+ * 장비 분류가 메카닉 장비인지 여부를 확인합니다.
1852
+ * @param type 장비 분류.
1853
+ * @returns 메카닉 장비일 경우 `true`; 아닐 경우 `false`.
1854
+ */
1855
+ declare function isMechanicGear(type: GearType): boolean;
1856
+ /**
1857
+ * 장비 분류가 에반 드래곤 장비인지 여부를 확인합니다.
1858
+ * @param type 장비 분류.
1859
+ * @returns 에반 드래곤 장비일 경우 `true`; 아닐 경우 `false`.
1860
+ */
1861
+ declare function isDragonGear(type: GearType): boolean;
1862
+ //#endregion
1863
+ export { type AddOptionData, type AddOptionGrade, AddOptionType, type ExceptionalHammer, Gear, type GearAddOption, GearAttribute, type GearAttributeData, type GearBaseOption, GearCapability, GearCuttable, type GearData, type GearExceptionalOption, GearGender, type GearIncline, type GearOption, GearReq, type GearReqData, type GearShapeData, GearShare, type GearStarforceOption, GearTrade, GearType, type GearUpgradeOption, type PotentialData, PotentialGrade, type PotentialOption, ReadonlyGear, type ReadonlyPotential, type ReadonlySoulData, type Scroll, type SoulChargeOption, type SoulData, type SoulOption, type SoulSlotData, type SpellTrace, type SpellTraceRate, SpellTraceType, applyAddOption, applyExceptional, applyScroll, applySoulEnchant, applySpellTrace, canApplyAddOption, canApplyExceptional, canApplyScroll, canApplySoulEnchant, canFailScroll, canResetAddOption, canResetExceptional, canResetStarforce, canResetUpgrade, canResileScroll, canSetAdditionalPotential, canSetPotential, canSetSoul, canSetSoulCharge, canStarScroll, canStarforce, failScroll, getAddOption, getAddOptionValue, getHardMaxStar, getMaxStar, getSpellTraceScroll, isAccessory, isArmor, isDoubleHandWeapon, isDragonGear, isLeftWeapon, isMechanicGear, isShield, isSubWeapon, isWeapon, migrate, resetAddOption, resetAdditionalPotential, resetExceptional, resetPotential, resetSoulEnchant, resetStarforce, resetUpgrade, resileScroll, setAdditionalPotential, setPotential, setSoul, setSoulCharge, starScroll, starforce, supportsAddOption, supportsAdditionalPotential, supportsExceptional, supportsPotential, supportsSoul, supportsStarforce, supportsUpgrade, toGearOption };