@malib/gear 0.0.1

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,441 @@
1
+ /**
2
+ * 장비 분류
3
+ */
4
+ export declare enum GearType {
5
+ /**
6
+ * 모자
7
+ */
8
+ cap = 100,
9
+ /**
10
+ * 얼굴장식
11
+ */
12
+ faceAccessory = 101,
13
+ /**
14
+ * 눈장식
15
+ */
16
+ eyeAccessory = 102,
17
+ /**
18
+ * 귀고리
19
+ */
20
+ earrings = 103,
21
+ /**
22
+ * 상의
23
+ */
24
+ coat = 104,
25
+ /**
26
+ * 한벌옷
27
+ */
28
+ longcoat = 105,
29
+ /**
30
+ * 하의
31
+ */
32
+ pants = 106,
33
+ /**
34
+ * 신발
35
+ */
36
+ shoes = 107,
37
+ /**
38
+ * 장갑
39
+ */
40
+ glove = 108,
41
+ /**
42
+ * 망토
43
+ */
44
+ cape = 110,
45
+ /**
46
+ * 반지
47
+ */
48
+ ring = 111,
49
+ /**
50
+ * 펜던트
51
+ */
52
+ pendant = 112,
53
+ /**
54
+ * 벨트
55
+ */
56
+ belt = 113,
57
+ /**
58
+ * 훈장
59
+ */
60
+ medal = 114,
61
+ /**
62
+ * 어깨장식
63
+ */
64
+ shoulder = 115,
65
+ /**
66
+ * 포켓 아이템
67
+ */
68
+ pocket = 116,
69
+ /**
70
+ * 뱃지
71
+ */
72
+ badge = 118,
73
+ /**
74
+ * 안드로이드
75
+ */
76
+ android = 166,
77
+ /**
78
+ * 기계 심장
79
+ */
80
+ machineHeart = 167,
81
+ /**
82
+ * 방패
83
+ */
84
+ shield = 109,
85
+ /**
86
+ * 엠블렘
87
+ */
88
+ emblem = 119,
89
+ /**
90
+ * 파워소스
91
+ */
92
+ powerSource = 119020,
93
+ /**
94
+ * 샤이닝 로드
95
+ */
96
+ shiningRod = 1212,
97
+ /**
98
+ * 튜너
99
+ */
100
+ tuner = 1213,
101
+ /**
102
+ * 브레스 슈터
103
+ */
104
+ breathShooter = 1214,
105
+ /**
106
+ * 소울 슈터
107
+ */
108
+ soulShooter = 122,
109
+ /**
110
+ * 데스페라도
111
+ */
112
+ desperado = 123,
113
+ /**
114
+ * 에너지소드
115
+ */
116
+ energySword = 124,
117
+ /**
118
+ * ESP 리미터
119
+ */
120
+ espLimiter = 126,
121
+ /**
122
+ * 체인 (카데나)
123
+ */
124
+ chain = 127,
125
+ /**
126
+ * 매직 건틀렛
127
+ */
128
+ magicGauntlet = 128,
129
+ /**
130
+ * 부채 (호영)
131
+ */
132
+ ritualFan = 129,
133
+ /**
134
+ * 한손검
135
+ */
136
+ ohSword = 130,
137
+ /**
138
+ * 한손도끼
139
+ */
140
+ ohAxe = 131,
141
+ /**
142
+ * 한손둔기
143
+ */
144
+ ohBlunt = 132,
145
+ /**
146
+ * 단검
147
+ */
148
+ dagger = 133,
149
+ /**
150
+ * 블레이드
151
+ */
152
+ katara = 134,
153
+ /**
154
+ * 케인
155
+ */
156
+ cane = 136,
157
+ /**
158
+ * 완드
159
+ */
160
+ wand = 137,
161
+ /**
162
+ * 스태프
163
+ */
164
+ staff = 138,
165
+ /**
166
+ * 두손검
167
+ */
168
+ thSword = 140,
169
+ /**
170
+ * 차크람
171
+ */
172
+ chakram = 1404,
173
+ /**
174
+ * 두손도끼
175
+ */
176
+ thAxe = 141,
177
+ /**
178
+ * 두손둔기
179
+ */
180
+ thBlunt = 142,
181
+ /**
182
+ * 창
183
+ */
184
+ spear = 143,
185
+ /**
186
+ * 폴암
187
+ */
188
+ polearm = 144,
189
+ /**
190
+ * 활
191
+ */
192
+ bow = 145,
193
+ /**
194
+ * 석궁
195
+ */
196
+ crossbow = 146,
197
+ /**
198
+ * 아대
199
+ */
200
+ claw = 147,
201
+ /**
202
+ * 너클
203
+ */
204
+ knuckle = 148,
205
+ /**
206
+ * 건
207
+ */
208
+ gun = 149,
209
+ /**
210
+ * 삽
211
+ */
212
+ shovel = 150,
213
+ /**
214
+ * 곡괭이
215
+ */
216
+ pickaxe = 151,
217
+ /**
218
+ * 듀얼 보우건
219
+ */
220
+ dualBowguns = 152,
221
+ /**
222
+ * 핸드캐논
223
+ */
224
+ handCannon = 153,
225
+ /**
226
+ * 대검
227
+ */
228
+ heavySword = 156,
229
+ /**
230
+ * 태도
231
+ */
232
+ longSword = 157,
233
+ /**
234
+ * 건틀렛 리볼버
235
+ */
236
+ gauntletRevolver = 158,
237
+ /**
238
+ * 에인션트 보우
239
+ */
240
+ ancientBow = 159,
241
+ /**
242
+ * 소울실드
243
+ */
244
+ soulShield = 1098,
245
+ /**
246
+ * 포스실드
247
+ */
248
+ demonShield = 1099,
249
+ /**
250
+ * 마법화살
251
+ */
252
+ magicArrow = 135200,
253
+ /**
254
+ * 카드
255
+ */
256
+ card = 135210,
257
+ /**
258
+ * 메달
259
+ */
260
+ medallion = 135220,
261
+ /**
262
+ * 로자리오
263
+ */
264
+ rosary = 135221,
265
+ /**
266
+ * 쇠사슬
267
+ */
268
+ ironChain = 135222,
269
+ /**
270
+ * 마도서 (불,독)
271
+ */
272
+ magicBook1 = 135223,
273
+ /**
274
+ * 마도서 (얼음,번개)
275
+ */
276
+ magicBook2 = 135224,
277
+ /**
278
+ * 마도서 (비숍)
279
+ */
280
+ magicBook3 = 135225,
281
+ /**
282
+ * 화살깃
283
+ */
284
+ arrowFletching = 135226,
285
+ /**
286
+ * 활골무
287
+ */
288
+ bowThimble = 135227,
289
+ /**
290
+ * 단검용 검집
291
+ */
292
+ daggerScabbard = 135228,
293
+ /**
294
+ * 부적
295
+ */
296
+ charm = 135229,
297
+ /**
298
+ * 오브
299
+ */
300
+ orb = 135240,
301
+ /**
302
+ * 용의 정수
303
+ */
304
+ dragonEssence = 135250,
305
+ /**
306
+ * 소울링
307
+ */
308
+ soulRing = 135260,
309
+ /**
310
+ * 매그넘
311
+ */
312
+ magnum = 135270,
313
+ /**
314
+ * 리스트밴드
315
+ */
316
+ wristBand = 135290,
317
+ /**
318
+ * 조준기
319
+ */
320
+ farSight = 135291,
321
+ /**
322
+ * 화약통
323
+ */
324
+ powderKeg = 135292,
325
+ /**
326
+ * 무게추
327
+ */
328
+ mass = 135293,
329
+ /**
330
+ * 문서
331
+ */
332
+ document = 135294,
333
+ /**
334
+ * 마법구슬
335
+ */
336
+ magicMarble = 135295,
337
+ /**
338
+ * 화살촉
339
+ */
340
+ arrowhead = 135296,
341
+ /**
342
+ * 보석 (시그너스)
343
+ */
344
+ jewel = 135297,
345
+ /**
346
+ * 화약통 2
347
+ */
348
+ powderKeg2 = 135298,
349
+ /**
350
+ * 컨트롤러
351
+ */
352
+ controller = 135300,
353
+ /**
354
+ * 여우구슬
355
+ */
356
+ foxMarble = 135310,
357
+ /**
358
+ * 체스피스
359
+ */
360
+ chessPiece = 135320,
361
+ /**
362
+ * 무기 전송장치
363
+ */
364
+ transmitter = 135330,
365
+ /**
366
+ * 장약
367
+ */
368
+ charge = 135340,
369
+ /**
370
+ * 매직윙
371
+ */
372
+ magicWing = 135350,
373
+ /**
374
+ * 패스 오브 어비스
375
+ */
376
+ pathOfAbyss = 135360,
377
+ /**
378
+ * 렐릭
379
+ */
380
+ relic = 135370,
381
+ /**
382
+ * 선추
383
+ */
384
+ fanTassel = 135380,
385
+ /**
386
+ * 브레이슬릿
387
+ */
388
+ bracelet = 135400,
389
+ /**
390
+ * 웨폰 벨트
391
+ */
392
+ weaponBelt = 135401,
393
+ /**
394
+ * 노리개
395
+ */
396
+ ornament = 135402,
397
+ /**
398
+ * 헥스시커
399
+ */
400
+ hexSeeker = 135403,
401
+ /**
402
+ * 펫장비
403
+ */
404
+ petEquip = 180,
405
+ /**
406
+ * 메카닉 엔진
407
+ */
408
+ machineEngine = 161,
409
+ /**
410
+ * 메카닉 암
411
+ */
412
+ machineArms = 162,
413
+ /**
414
+ * 메카닉 레그
415
+ */
416
+ machineLegs = 163,
417
+ /**
418
+ * 메카닉 프레임
419
+ */
420
+ machineBody = 164,
421
+ /**
422
+ * 메카닉 트렌지스터
423
+ */
424
+ machineTransistors = 165,
425
+ /**
426
+ * 드래곤 모자
427
+ */
428
+ dragonMask = 194,
429
+ /**
430
+ * 드래곤 펜던트
431
+ */
432
+ dragonPendant = 195,
433
+ /**
434
+ * 드래곤 날개장식
435
+ */
436
+ dragonWings = 196,
437
+ /**
438
+ * 드래곤 꼬리장식
439
+ */
440
+ dragonTail = 197
441
+ }
@@ -0,0 +1,28 @@
1
+ import { Gear } from "../gear";
2
+ import { GearPropType } from "../gearproptype";
3
+ import { BonusStatType } from "./bonusstattype";
4
+ export declare type BonusStatGrade = 1 | 2 | 3 | 4 | 5 | 6 | 7;
5
+ /**
6
+ * 추가옵션 관련 기능을 제공합니다.
7
+ *
8
+ * - '보스 아레나 엠블렘'은 지원하지 않습니다.
9
+ */
10
+ export declare class BonusStatLogic {
11
+ /**
12
+ * 장비에 1개의 추가옵션을 추가합니다. 기존에 부여된 추가옵션에 더해집니다.
13
+ * @param gear 추가옵션을 추가할 장비
14
+ * @param type 추가옵션 스탯 종류
15
+ * @param grade 추가옵션 등급; 1~7의 정수
16
+ * @returns 추가옵션 부여애 성공했을 경우 `true`; 아닐 경우 `false`
17
+ */
18
+ addBonusStat(gear: Gear, type: BonusStatType, grade: BonusStatGrade): boolean;
19
+ /**
20
+ * 장비에 적용된 추가옵션을 초기화합니다.
21
+ * @param gear 추가옵션을 초기화할 장비
22
+ * @returns 추가옵션 초기화에 성공했을 경우 `true`; 아닐 경우 `false`
23
+ */
24
+ resetBonusStat(gear: Gear): boolean;
25
+ getBonusStatOption(gear: Gear, type: BonusStatType, grade: BonusStatGrade): Map<GearPropType, number>;
26
+ getBonusStatValue(gear: Gear, type: BonusStatType, grade: BonusStatGrade): number;
27
+ static getGearPropType(type: BonusStatType): GearPropType[];
28
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * 보너스 스탯 종류
3
+ */
4
+ export declare enum BonusStatType {
5
+ /** STR 단일 */
6
+ STR = 0,
7
+ /** DEX 단일 */
8
+ DEX = 1,
9
+ /** INT 단일 */
10
+ INT = 2,
11
+ /** LUK 단일 */
12
+ LUK = 3,
13
+ /** STR, DEX 이중 */
14
+ STR_DEX = 4,
15
+ /** STR, INT 이중 */
16
+ STR_INT = 5,
17
+ /** STR, LUK 이중 */
18
+ STR_LUK = 6,
19
+ /** DEX, INT 이중 */
20
+ DEX_INT = 7,
21
+ /** DEX, LUK 이중 */
22
+ DEX_LUK = 8,
23
+ /** INT, LUK 이중 */
24
+ INT_LUK = 9,
25
+ /** 방어력 */
26
+ PDD = 10,
27
+ /** 공격력 */
28
+ PAD = 11,
29
+ /** 마력 */
30
+ MAD = 12,
31
+ /** 최대 HP */
32
+ MHP = 13,
33
+ /** 최대 MP */
34
+ MMP = 14,
35
+ /** 이동속도 */
36
+ speed = 15,
37
+ /** 점프력 */
38
+ jump = 16,
39
+ /** 데미지 % */
40
+ damR = 17,
41
+ /** 보스 데미지 % */
42
+ bdR = 18,
43
+ /** 올스탯 % */
44
+ allStatR = 19,
45
+ /** 착용 레벨 감소 */
46
+ reduceReq = 20
47
+ }
@@ -0,0 +1,62 @@
1
+ import { Gear } from "../gear";
2
+ /**
3
+ * 장비 강화 관련 기능을 제공합니다.
4
+ *
5
+ * - 스타포스 강화 이후 주문서 수치가 변동될 경우 `recalculate` 함수를 호출해야 합니다.
6
+ */
7
+ export declare class EnhancementLogic {
8
+ private static readonly MAX_STARFORCE;
9
+ private static readonly MAX_AMAZING;
10
+ /**
11
+ * 장비에 스타포스 강화를 1회 적용합니다.
12
+ * - 업그레이드가 완료되지 않은 장비, 놀라운 장비강화 주문서가 적용된 장비에도 적용됩니다.
13
+ * @param gear 강화를 적용할 장비
14
+ * @param ignoreMaxStar 장비의 최대 강화 수치를 초과하여 강화하는지 여부
15
+ * - 슈페리얼 장비는 최대 강화 수치를 초과할 수 없음
16
+ * @returns 성공했을 경우 `true`; 아닐 경우 `false`
17
+ */
18
+ addStarforce(gear: Gear, ignoreMaxStar?: boolean): boolean;
19
+ /**
20
+ * 슈페리얼 장비에 스타포스 강화를 1회 적용합니다.
21
+ */
22
+ private addSuperiorStarforce;
23
+ /**
24
+ * 장비에 놀라운 장비강화 주문서를 1회 적용합니다.
25
+ *
26
+ * 스타포스가 적용된 장비에도 사용 가능합니다. 슈페리얼 장비에는 적용되지 않습니다.
27
+ * @param gear 강화를 적용할 장비
28
+ * @param ignoreMaxStar 장비의 최대 강화 수치 초과로 강화하는 지 여부
29
+ * - ex) 착용 제한 레벨이 100인 장비는 최대 강화 수치가 8성이지만 `ignoreMaxStar`가 `true`일 경우 15성까지 강화 가능
30
+ * @param bonus 보너스 스탯 적용 여부
31
+ * - 방어구(방패 제외): 최대 HP +50
32
+ * - 장신구: 올스탯 +1~2
33
+ * - 주무기, 블레이드, 방패: 공격력, 마력 +1
34
+ * @returns 성공했을 경우 `true`; 아닐 경우 `false`
35
+ */
36
+ addAmazingEnhancement(gear: Gear, bonus?: boolean, ignoreMaxStar?: boolean): boolean;
37
+ /**
38
+ * 장비 강화를 초기화합니다.
39
+ * @param 강화를 초기화할 장비
40
+ * @returns 성공했을 경우 `true`; 아닐 경우 `false`
41
+ */
42
+ resetEnhancement(gear: Gear): boolean;
43
+ /**
44
+ * 스타포스 강화로 오르는 스탯을 다시 계산합니다.
45
+ *
46
+ * 놀라운 장비강화 주문서가 적용된 장비에는 적용되지 않습니다.
47
+ * @param 스탯을 다시 계산할 장비
48
+ * @returns 성공했을 경우 `true`; 아닐 경우 `false`
49
+ */
50
+ recalculate(gear: Gear): boolean;
51
+ private static getStatData;
52
+ private static superiorAttData;
53
+ private static superiorStatData;
54
+ private static starforceWeaponAttData;
55
+ private static starforceAttData;
56
+ private static starforceStatData;
57
+ private static amazingAttData;
58
+ private static amazingStatData;
59
+ private static starforceGloveBonusAttData;
60
+ private static starforceMhpData;
61
+ private static starforceSpeedJumpData;
62
+ }
@@ -0,0 +1,22 @@
1
+ import { Gear } from "../gear";
2
+ import { GearPropType } from "../gearproptype";
3
+ export declare type SpellTraceProbability = 100 | 70 | 30 | 15;
4
+ export declare type SpellTraceStatType = GearPropType.incSTR | GearPropType.incDEX | GearPropType.incINT | GearPropType.incLUK | GearPropType.incAllStat | GearPropType.incMHP;
5
+ /**
6
+ * 주문서
7
+ */
8
+ export declare class Scroll {
9
+ /** 주문서 이름 */
10
+ name: string;
11
+ /** 주문서 옵션 */
12
+ stat: Map<GearPropType, number>;
13
+ constructor(name?: string, stats?: Map<GearPropType, number>);
14
+ /**
15
+ * 주문의 흔적 `Scroll`을 반환합니다.
16
+ * @param gear 적용할 장비
17
+ * @param type 주문의 흔적 스탯 (`GearPropType`)
18
+ * @param probability 주문의 흔적 확률
19
+ * @returns 주문의 흔적 `Scroll`; 존재하지 않을 경우 `undefined`
20
+ */
21
+ static getSpellTraceScroll(gear: Gear, type: SpellTraceStatType, probability: SpellTraceProbability): Scroll | undefined;
22
+ }
@@ -0,0 +1,53 @@
1
+ import { Gear } from "../gear";
2
+ import { Scroll, SpellTraceProbability, SpellTraceStatType } from "./scroll";
3
+ /**
4
+ * 주문서 업그레이드 관련 기능을 제공합니다.
5
+ */
6
+ export declare class UpgradeLogic {
7
+ /**
8
+ * 장비에 황금망치를 적용합니다.
9
+ * @param gear 황금망치를 적용할 장비
10
+ * @returns 황금망치가 적용됐을 경우 `true`; 아닐 경우 `false`
11
+ */
12
+ applyGoldHammer(gear: Gear): boolean;
13
+ /**
14
+ * 장비에 주문서를 1회 적용합니다.
15
+ *
16
+ * @param gear 주문서를 적용할 장비
17
+ * @param scroll 적용할 주문서
18
+ * @returns 주문서가 적용됐을 경우 `true`; 아닐 경우 `false`
19
+ */
20
+ applyScroll(gear: Gear, scroll: Scroll): boolean;
21
+ /**
22
+ * 장비에 주문의 흔적 강화를 1회 적용합니다.
23
+ * @param gear 강화를 적용할 장비
24
+ * @param type 주문의 흔적 스탯 종류
25
+ * @param probability 주문의 흔적 성공 확률 %
26
+ * @returns 주문서가 적용됐을 경우 `true`; 아닐 경우 `false`
27
+ */
28
+ applySpellTrace(gear: Gear, type: SpellTraceStatType, probability: SpellTraceProbability): boolean;
29
+ /**
30
+ * 장비의 업그레이드 가능 횟수를 1회 감소합니다.
31
+ *
32
+ * 주문서가 실패한 것과 동일한 효과입니다.
33
+ * @param gear 감소할 장비
34
+ * @returns 감소됐을 경우 `true`; 아닐 경우 `false`
35
+ */
36
+ addUpgradeFail(gear: Gear): boolean;
37
+ /**
38
+ * 장비의 업그레이드 가능 횟수를 1회 복구합니다.
39
+ *
40
+ * 장비의 최대 업그레이드 가능 횟수를 초과하지 않습니다.
41
+ * @param gear 복구할 장비
42
+ * @returns 복구했을 경우 `true`; 아닐 경우 `false`
43
+ */
44
+ restoreUpgradeFail(gear: Gear): boolean;
45
+ /**
46
+ * 장비의 주문서, 황금망치 관련 속성을 초기화합니다.
47
+ *
48
+ * 아크 이노센트와 동일한 효과입니다. 놀라운 장비강화 주문서가 적용된 장비도 적용 가능하지만 오차가 발생할 수 있습니다.
49
+ * @param gear 초기화할 장비
50
+ * @returns 초기화했을 경우 `true`; 아닐 경우 `false`
51
+ */
52
+ resetUpgrade(gear: Gear): boolean;
53
+ }
@@ -0,0 +1,38 @@
1
+ import { GearPropType } from "./gearproptype";
2
+ import { GearType } from "./geartype";
3
+ /**
4
+ * 잠재옵션
5
+ */
6
+ export declare class Potential {
7
+ /** 잠재옵션 ID */
8
+ code: number;
9
+ /**
10
+ * 잠재옵션 분류
11
+ *
12
+ * 잠재옵션을 적용 가능한 장비 분류를 나타냅니다.
13
+ */
14
+ optionType: number;
15
+ /** 장비의 최소 착용 가능 레벨 */
16
+ reqLevel: number;
17
+ /** 장비에 표시되는 문자열의 원본 */
18
+ summary: string;
19
+ /** 잠재옵션 옵션 */
20
+ option: Map<GearPropType, number>;
21
+ /**
22
+ * 장비에 표시되는 문자열
23
+ */
24
+ get convertSummary(): string;
25
+ /**
26
+ * 장비의 착용 가능 레벨로부터 잠재옵션의 레벨을 계산합니다.
27
+ * @param gearReqLevel 장비의 착용 가능 레벨
28
+ * @returns 잠재옵션 레벨 (1~20)
29
+ */
30
+ static getPotentialLevel(gearReqLevel: number): number;
31
+ /**
32
+ * 잠재옵션 분류와 장비 분류를 비교합니다.
33
+ * @param optionType 잠재옵션 분류
34
+ * @param gearType 장비 분류
35
+ * @returns 잠재옵션 분류가 장비 분류에 적용 가능한 경우 `true`; 아닌 경우 `false`
36
+ */
37
+ static checkOptionType(optionType: number, gearType: GearType): boolean;
38
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 잠재능력 등급
3
+ */
4
+ export declare enum PotentialGrade {
5
+ normal = 0,
6
+ rare = 1,
7
+ epic = 2,
8
+ unique = 3,
9
+ legendary = 4,
10
+ special = 5
11
+ }