@malib/gear 1.0.0-next.4 → 1.0.0-next.5

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.
@@ -1,6 +1,8 @@
1
- import { AddOptionCan, GearAttributeData, GearCuttable, GearIncline, GearShare, GearTrade, PotentialCan } from './data';
2
- type OptionalProperty = 'attackSpeed' | 'cuttableCount' | 'growthExp' | 'growthLevel' | 'dateExpire';
3
- type _GearAttribute = Omit<Required<GearAttributeData>, OptionalProperty> & Pick<GearAttributeData, OptionalProperty>;
1
+ import { GearAttributeData, GearCapability, GearCuttable, GearIncline, GearShare, GearTrade } from './data';
2
+ type OptionalProperty = 'attackSpeed' | 'cuttableCount' | 'totalCuttableCount' | 'setItemId' | 'growthExp' | 'growthLevel' | 'dateExpire';
3
+ type _GearAttribute = Omit<Omit<Required<GearAttributeData>, OptionalProperty> & Pick<GearAttributeData, OptionalProperty>, 'skills'> & {
4
+ skills: readonly string[];
5
+ };
4
6
  export declare class GearAttribute implements _GearAttribute {
5
7
  /** 장비 속성 정보 */
6
8
  data: GearAttributeData;
@@ -14,31 +16,33 @@ export declare class GearAttribute implements _GearAttribute {
14
16
  get onlyEquip(): boolean;
15
17
  /** 월드 내 나의 캐릭터 간 이동 가능 여부 */
16
18
  get share(): GearShare;
17
- /** 황금망치 사용 불가 */
18
- get blockGoldenHammer(): boolean;
19
19
  /** 슈페리얼 */
20
20
  get superior(): boolean;
21
21
  /** 공격 속도 */
22
22
  get attackSpeed(): number | undefined;
23
- /** 강화불가 */
24
- get cannotUpgrade(): boolean;
23
+ /** 주문서 강화 가능 여부 */
24
+ get canScroll(): GearCapability;
25
+ /** 스타포스 강화 가능 여부 */
26
+ get canStarforce(): GearCapability;
25
27
  /** 추가옵션 설정 가능 여부 */
26
- get canAddOption(): AddOptionCan;
28
+ get canAddOption(): GearCapability;
27
29
  /** 잠재능력 설정 가능 여부 */
28
- get canPotential(): PotentialCan;
30
+ get canPotential(): GearCapability;
29
31
  /** 에디셔널 잠재능력 설정 가능 여부 */
30
- get canAdditionalPotential(): PotentialCan;
32
+ get canAdditionalPotential(): GearCapability;
31
33
  /** 스페셜 아이템 여부 */
32
34
  get specialGrade(): boolean;
33
- /** 착용 레벨 증가 */
34
- get reqLevelIncrease(): number;
35
35
  /** 카르마의 가위 사용 가능 여부 */
36
36
  get cuttable(): GearCuttable;
37
37
  /** 가위 사용 가능 횟수 */
38
38
  get cuttableCount(): number | undefined;
39
39
  set cuttableCount(value: number | undefined);
40
+ /** 최대 가위 사용 가능 횟수 */
41
+ get totalCuttableCount(): number | undefined;
40
42
  /** 쉐어 네임 텍을 사용 가능 여부 */
41
43
  get accountShareTag(): boolean;
44
+ /** 세트 효과 ID */
45
+ get setItemId(): number | undefined;
42
46
  /** 럭키 아이템 */
43
47
  get lucky(): boolean;
44
48
  /** 장착 시 획득 경험치 */
@@ -46,6 +50,8 @@ export declare class GearAttribute implements _GearAttribute {
46
50
  set incline(value: Partial<GearIncline>);
47
51
  /** 보스 드롭 여부 */
48
52
  get bossReward(): boolean;
53
+ /** 사용 가능 스킬 */
54
+ get skills(): readonly string[];
49
55
  /** 성장 경험치 */
50
56
  get growthExp(): number | undefined;
51
57
  set growthExp(value: number | undefined);
@@ -12,25 +12,13 @@ export declare class GearReq implements GearReqData {
12
12
  */
13
13
  constructor(data: GearReqData);
14
14
  /**
15
- * 착용 가능 레벨
15
+ * 기본 착용 가능 레벨
16
16
  */
17
17
  get level(): number;
18
18
  /**
19
- * 착용 가능 STR
19
+ * 착용 가능 레벨 증가
20
20
  */
21
- get str(): number;
22
- /**
23
- * 착용 가능 DEX
24
- */
25
- get dex(): number;
26
- /**
27
- * 착용 가능 INT
28
- */
29
- get int(): number;
30
- /**
31
- * 착용 가능 LUK
32
- */
33
- get luk(): number;
21
+ get levelIncrease(): number;
34
22
  /**
35
23
  * 착용 가능 직업 분류
36
24
  * */
@@ -0,0 +1,177 @@
1
+ import { AddOptionData, GearAddOption, GearBaseOption, GearData, GearExceptionalOption, GearMetadata, GearShapeData, GearStarforceOption, GearType, GearUpgradeOption, PotentialGrade, ReadonlySoulData, SoulChargeOption } from './data';
2
+ import { ReadonlyPotential } from './enhance/potential';
3
+ import { GearAttribute } from './GearAttribute';
4
+ import { GearReq } from './GearReq';
5
+ type _Gear = Omit<GearData, 'attributes' | 'potentials' | 'additionalPotentials' | 'addOptions'> & {
6
+ attributes: GearAttribute;
7
+ addOptions: readonly Readonly<AddOptionData>[];
8
+ potentials: readonly ReadonlyPotential[];
9
+ additionalPotentials: readonly ReadonlyPotential[];
10
+ };
11
+ /**
12
+ * 장비 (읽기 전용)
13
+ *
14
+ * 생성자에 전달된 장비 정보와 `data` 속성 간에 엄격한 동등(`===`)을 보장합니다.
15
+ *
16
+ * 장비 정보의 모든 속성에 대해 읽기 전용 속성을 제공합니다.
17
+ */
18
+ export declare class ReadonlyGear implements _Gear {
19
+ /** 장비 정보 */
20
+ protected readonly _data: Readonly<GearData>;
21
+ /**
22
+ * 장비 정보를 참조하는 장비 인스턴스를 생성합니다.
23
+ * @param data 장비 정보.
24
+ */
25
+ constructor(data: GearData);
26
+ /**
27
+ * 장비 정보
28
+ */
29
+ get data(): Readonly<GearData>;
30
+ /**
31
+ * 장비 메타데이터
32
+ */
33
+ get meta(): GearMetadata;
34
+ /**
35
+ * 장비명
36
+ */
37
+ get name(): string;
38
+ /**
39
+ * 장비 아이콘
40
+ */
41
+ get icon(): string;
42
+ /**
43
+ * 장비 설명
44
+ */
45
+ get desc(): string | undefined;
46
+ /**
47
+ * 장비 외형
48
+ */
49
+ get shape(): Readonly<GearShapeData> | undefined;
50
+ /**
51
+ * 장비 외형 아이콘
52
+ *
53
+ * 장비 외형이 설정되었을 경우 장비 외형 아이콘, 그렇지 않을 경우 장비 아이콘.
54
+ */
55
+ get shapeIcon(): string;
56
+ /**
57
+ * 장비 분류
58
+ */
59
+ get type(): GearType;
60
+ /**
61
+ * 장비 착용 제한
62
+ */
63
+ get req(): GearReq;
64
+ /**
65
+ * 장비 속성
66
+ */
67
+ get attributes(): GearAttribute;
68
+ /**
69
+ * 장비 최종 옵션
70
+ *
71
+ * 기본 옵션, 추가 옵션, 주문서 옵션, 스타포스 옵션의 합.
72
+ *
73
+ * 익셉셔널 옵션은 미포함.
74
+ */
75
+ get totalOption(): Readonly<GearBaseOption & GearAddOption & GearUpgradeOption & GearStarforceOption>;
76
+ /**
77
+ * 장비 순수 옵션
78
+ */
79
+ get baseOption(): Readonly<GearBaseOption>;
80
+ /**
81
+ * 장비 추가 옵션
82
+ */
83
+ get addOption(): Readonly<GearAddOption>;
84
+ /**
85
+ * 장비 주문서 강화 옵션
86
+ */
87
+ get upgradeOption(): Readonly<GearUpgradeOption>;
88
+ /**
89
+ * 장비 스타포스 옵션
90
+ */
91
+ get starforceOption(): Readonly<GearStarforceOption>;
92
+ /**
93
+ * 추가 옵션 목록
94
+ */
95
+ get addOptions(): readonly Readonly<AddOptionData>[];
96
+ /**
97
+ * 업그레이드 횟수
98
+ */
99
+ get scrollUpgradeCount(): number;
100
+ /**
101
+ * 복구 가능 횟수
102
+ */
103
+ get scrollResilienceCount(): number;
104
+ /**
105
+ * 업그레이드 가능 횟수
106
+ */
107
+ get scrollUpgradeableCount(): number;
108
+ /**
109
+ * 전체 업그레이드 가능 횟수
110
+ *
111
+ * 성공, 실패, 황금 망치 적용 여부를 무시한 장비의 기본 업그레이드 가능 횟수입니다.
112
+ */
113
+ get scrollTotalUpgradeableCount(): number;
114
+ /**
115
+ * 스타포스 강화 단계
116
+ */
117
+ get star(): number;
118
+ /**
119
+ * 최대 스타포스 강화 단계
120
+ *
121
+ * 놀라운 장비 강화 주문서가 사용되었을 경우 최대 `15`입니다.
122
+ */
123
+ get maxStar(): number;
124
+ /**
125
+ * 놀라운 장비 강화 주문서 사용 여부
126
+ */
127
+ get starScroll(): boolean;
128
+ /**
129
+ * 소울 인챈트 여부
130
+ */
131
+ get soulEnchanted(): boolean;
132
+ /**
133
+ * 소울
134
+ */
135
+ get soul(): ReadonlySoulData | undefined;
136
+ /**
137
+ * 소울 충전량
138
+ */
139
+ get soulCharge(): number;
140
+ /**
141
+ * 소울 충전 옵션
142
+ */
143
+ get soulChargeOption(): Readonly<SoulChargeOption>;
144
+ /**
145
+ * 잠재능력 등급
146
+ */
147
+ get potentialGrade(): PotentialGrade;
148
+ /**
149
+ * 잠재능력 목록
150
+ */
151
+ get potentials(): readonly ReadonlyPotential[];
152
+ /**
153
+ * 에디셔널 잠재능력 등급
154
+ */
155
+ get additionalPotentialGrade(): PotentialGrade;
156
+ /**
157
+ * 에디셔널 잠재능력 목록
158
+ */
159
+ get additionalPotentials(): readonly Readonly<ReadonlyPotential>[];
160
+ /**
161
+ * 장비 익셉셔널 옵션
162
+ */
163
+ get exceptionalOption(): Readonly<GearExceptionalOption>;
164
+ /**
165
+ * 익셉셔널 강화 횟수
166
+ */
167
+ get exceptionalUpgradeCount(): number;
168
+ /**
169
+ * 익셉셔널 강화 가능 횟수
170
+ */
171
+ get exceptionalUpgradeableCount(): number;
172
+ /**
173
+ * 전체 익셉셔널 강화 가능 횟수
174
+ */
175
+ get exceptionalTotalUpgradeableCount(): number;
176
+ }
177
+ export {};
@@ -0,0 +1,62 @@
1
+ /**
2
+ * 추가 옵션 종류
3
+ */
4
+ export declare enum AddOptionType {
5
+ /** STR */
6
+ str = "str",
7
+ /** DEX */
8
+ dex = "dex",
9
+ /** INT */
10
+ int = "int",
11
+ /** LUK */
12
+ luk = "luk",
13
+ /** STR, DEX */
14
+ str_dex = "str,dex",
15
+ /** STR, INT */
16
+ str_int = "str,int",
17
+ /** STR, LUK */
18
+ str_luk = "str,luk",
19
+ /** DEX, INT */
20
+ dex_int = "dex,int",
21
+ /** DEX, LUK */
22
+ dex_luk = "dex,luk",
23
+ /** INT, LUK */
24
+ int_luk = "int,luk",
25
+ /** 최대 HP */
26
+ maxHp = "maxHp",
27
+ /** 최대 MP */
28
+ maxMp = "maxMp",
29
+ /** 공격력 */
30
+ attackPower = "attackPower",
31
+ /** 마력 */
32
+ magicPower = "magicPower",
33
+ /** 방어력 */
34
+ armor = "armor",
35
+ /** 이동속도 */
36
+ speed = "speed",
37
+ /** 점프력 */
38
+ jump = "jump",
39
+ /** 보스 공격 시 데미지 증가(%) */
40
+ bossDamage = "bossDamage",
41
+ /** 데미지(%) */
42
+ damage = "damage",
43
+ /** 올스탯(%) */
44
+ allStat = "allStat",
45
+ /** 착용 레벨 감소 */
46
+ reqLevelDecrease = "reqLevelDecrease"
47
+ }
48
+ /**
49
+ * 추가 옵션 단계
50
+ */
51
+ export type AddOptionGrade = 1 | 2 | 3 | 4 | 5 | 6 | 7;
52
+ /**
53
+ * 추가 옵션 정보
54
+ */
55
+ export interface AddOptionData {
56
+ /** 추가 옵션 종류 */
57
+ type: AddOptionType;
58
+ /** 추가 옵션 단계 */
59
+ grade: AddOptionGrade;
60
+ /** 추가 옵션 수치 */
61
+ value: number;
62
+ }
@@ -10,36 +10,40 @@ export interface GearAttributeData {
10
10
  onlyEquip?: boolean;
11
11
  /** 월드 내 나의 캐릭터 간 이동 가능 여부 */
12
12
  share?: GearShare;
13
- /** 황금망치 사용 불가 */
14
- blockGoldenHammer?: boolean;
15
13
  /** 슈페리얼 */
16
14
  superior?: boolean;
17
15
  /** 공격 속도 */
18
16
  attackSpeed?: number;
19
- /** 강화불가 */
20
- cannotUpgrade?: boolean;
17
+ /** 주문서 강화 가능 여부 */
18
+ canScroll?: GearCapability;
19
+ /** 스타포스 강화 가능 여부 */
20
+ canStarforce?: GearCapability;
21
21
  /** 추가 옵션 설정 가능 여부 */
22
- canAddOption?: AddOptionCan;
22
+ canAddOption?: GearCapability;
23
23
  /** 잠재능력 설정 가능 여부 */
24
- canPotential?: PotentialCan;
24
+ canPotential?: GearCapability;
25
25
  /** 에디셔널 잠재능력 설정 가능 여부 */
26
- canAdditionalPotential?: PotentialCan;
26
+ canAdditionalPotential?: GearCapability;
27
27
  /** 스페셜 아이템 여부 */
28
28
  specialGrade?: boolean;
29
- /** 착용 레벨 증가 */
30
- reqLevelIncrease?: number;
31
29
  /** 카르마의 가위 사용 가능 여부 */
32
30
  cuttable?: GearCuttable;
33
31
  /** 가위 사용 가능 횟수 */
34
32
  cuttableCount?: number;
33
+ /** 최대 가위 사용 가능 횟수 */
34
+ totalCuttableCount?: number;
35
35
  /** 쉐어 네임 텍을 사용 가능 여부 */
36
36
  accountShareTag?: boolean;
37
+ /** 세트 효과 ID */
38
+ setItemId?: number;
37
39
  /** 럭키 아이템 */
38
40
  lucky?: boolean;
39
41
  /** 장착 시 획득 경험치 */
40
42
  incline?: Partial<GearIncline>;
41
43
  /** 보스 드롭 여부 */
42
44
  bossReward?: boolean;
45
+ /** 사용 가능 스킬 */
46
+ skills?: string[];
43
47
  /** 성장 경험치 */
44
48
  growthExp?: number;
45
49
  /** 성장 레벨 */
@@ -63,23 +67,13 @@ export declare enum GearShare {
63
67
  /** 월드 내 나의 캐릭터 간 1회 이동 가능 (이동 후 교환불가) */
64
68
  AccountSharableOnce = 2
65
69
  }
66
- export declare enum AddOptionCan {
67
- /** 없음 (장비 분류를 따름) */
68
- None = 0,
69
- /** 설정 가능 */
70
- Can = 1,
70
+ export declare enum GearCapability {
71
71
  /** 설정 불가 */
72
- Cannot = 2
73
- }
74
- export declare enum PotentialCan {
75
- /** 없음 (장비 분류를 따름) */
76
- None = 0,
72
+ Cannot = 0,
77
73
  /** 설정 가능 */
78
74
  Can = 1,
79
- /** 설정 불가 */
80
- Cannot = 2,
81
75
  /** 재설정 불가 */
82
- Fixed = 3
76
+ Fixed = 2
83
77
  }
84
78
  export declare enum GearCuttable {
85
79
  /** 없음 */
@@ -1,4 +1,4 @@
1
- import { AddOptionGrade, AddOptionType } from '../enhance/addOption';
1
+ import { AddOptionData } from './AddOptionData';
2
2
  import { GearAttributeData } from './GearAttributeData';
3
3
  import { GearOption } from './GearOption';
4
4
  import { GearType } from './GearType';
@@ -33,18 +33,16 @@ export interface GearData {
33
33
  upgradeOption?: Partial<GearUpgradeOption>;
34
34
  /** 장비 스타포스 옵션 */
35
35
  starforceOption?: Partial<GearStarforceOption>;
36
+ /** 추가 옵션 목록 */
37
+ addOptions?: AddOptionData[];
36
38
  /** 업그레이드 횟수 */
37
39
  scrollUpgradeCount?: number;
38
40
  /** 복구 가능 횟수 */
39
41
  scrollResilienceCount?: number;
40
42
  /** 업그레이드 가능 횟수 */
41
43
  scrollUpgradeableCount?: number;
42
- /** 황금 망치 재련 적용 */
43
- goldenHammer?: number;
44
44
  /** 강화 단계 */
45
45
  star?: number;
46
- /** 최대 강화 단계 */
47
- maxStar?: number;
48
46
  /** 놀라운 장비 강화 주문서 사용 여부 */
49
47
  starScroll?: boolean;
50
48
  /** 소울 웨폰 정보 */
@@ -76,8 +74,6 @@ export interface GearMetadata {
76
74
  id: number;
77
75
  /** 장비 정보 버전 */
78
76
  version: 1;
79
- /** 추가 옵션 적용 기록 */
80
- add: [AddOptionType, AddOptionGrade][];
81
77
  }
82
78
  /**
83
79
  * 장비 외형 정보
@@ -94,14 +90,8 @@ export interface GearShapeData {
94
90
  export interface GearReqData {
95
91
  /** 착용 가능 레벨 */
96
92
  level?: number;
97
- /** 착용 가능 STR */
98
- str?: number;
99
- /** 착용 가능 LUK */
100
- luk?: number;
101
- /** 착용 가능 DEX */
102
- dex?: number;
103
- /** 착용 가능 INT */
104
- int?: number;
93
+ /** 착용 가능 레벨 증가 */
94
+ levelIncrease?: number;
105
95
  /** 착용 가능 직업 분류 */
106
96
  job?: number;
107
97
  /** 착용 가능 직업 */
@@ -110,7 +100,7 @@ export interface GearReqData {
110
100
  /**
111
101
  * 장비 기본 옵션
112
102
  */
113
- export type GearBaseOption = Pick<GearOption, 'str' | 'dex' | 'int' | 'luk' | 'maxHp' | 'maxMp' | 'maxHpRate' | 'maxMpRate' | 'maxDemonForce' | 'attackPower' | 'magicPower' | 'armor' | 'speed' | 'jump' | 'knockback' | 'bossDamage' | 'ignoreMonsterArmor' | 'allStat' | 'damage' | 'reqLevelDecrease'>;
103
+ export type GearBaseOption = Pick<GearOption, 'str' | 'dex' | 'int' | 'luk' | 'maxHp' | 'maxMp' | 'maxHpRate' | 'maxMpRate' | 'maxDemonForce' | 'attackPower' | 'magicPower' | 'armor' | 'speed' | 'jump' | 'bossDamage' | 'ignoreMonsterArmor' | 'allStat' | 'damage' | 'reqLevelDecrease'>;
114
104
  /**
115
105
  * 장비 추가 옵션
116
106
  */
@@ -44,8 +44,6 @@ export interface GearOption {
44
44
  speed: number;
45
45
  /** 점프력 */
46
46
  jump: number;
47
- /** %의 확률로 넉백 */
48
- knockback: number;
49
47
  /** 보스 공격 시 데미지 증가(%) */
50
48
  bossDamage: number;
51
49
  /** 일반 몬스터 데미지(%) */
@@ -1,8 +1,11 @@
1
1
  import { GearOption } from './GearOption';
2
+ import { PotentialGrade } from './PotentialGrade';
2
3
  /**
3
4
  * 잠재옵션 정보
4
5
  */
5
6
  export interface PotentialData {
7
+ /** 잠재능력 등급 */
8
+ grade: PotentialGrade;
6
9
  /** 장비에 표시되는 이름 */
7
10
  summary: string;
8
11
  /** 잠재능력 옵션 */
@@ -1,3 +1,4 @@
1
+ export * from './AddOptionData';
1
2
  export * from './GearAttributeData';
2
3
  export * from './GearData';
3
4
  export * from './GearOption';
@@ -1,78 +1,67 @@
1
- import { GearAddOption, GearType } from '../data';
1
+ import { AddOptionGrade, AddOptionType, GearAddOption, GearType } from '../data';
2
2
  import { Gear } from '../Gear';
3
- export declare enum AddOptionType {
4
- /** STR */
5
- str = "str",
6
- /** DEX */
7
- dex = "dex",
8
- /** INT */
9
- int = "int",
10
- /** LUK */
11
- luk = "luk",
12
- /** STR, DEX */
13
- str_dex = "str&dex",
14
- /** STR, INT */
15
- str_int = "str&int",
16
- /** STR, LUK */
17
- str_luk = "str&luk",
18
- /** DEX, INT */
19
- dex_int = "dex&int",
20
- /** DEX, LUK */
21
- dex_luk = "dex&luk",
22
- /** INT, LUK */
23
- int_luk = "int&luk",
24
- /** 최대 HP */
25
- maxHp = "maxHp",
26
- /** 최대 MP */
27
- maxMp = "maxMp",
28
- /** 공격력 */
29
- attackPower = "attackPower",
30
- /** 마력 */
31
- magicPower = "magicPower",
32
- /** 방어력 */
33
- armor = "armor",
34
- /** 이동속도 */
35
- speed = "speed",
36
- /** 점프력 */
37
- jump = "jump",
38
- /** 보스 공격 시 데미지 증가(%) */
39
- bossDamage = "bossDamage",
40
- /** 데미지(%) */
41
- damage = "damage",
42
- /** 올스탯(%) */
43
- allStat = "allStat",
44
- /** 착용 레벨 감소 */
45
- reqLevelDecrease = "reqLevelDecrease"
46
- }
47
- export type AddOptionGrade = 1 | 2 | 3 | 4 | 5 | 6 | 7;
3
+ import { ReadonlyGear } from '../ReadonlyGear';
48
4
  /**
49
5
  * 장비가 추가 옵션을 지원하는지 확인합니다.
50
6
  * @param gear 확인할 장비.
51
7
  * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
52
8
  */
53
- export declare function supportsAddOption(gear: Gear): boolean;
9
+ export declare function supportsAddOption(gear: ReadonlyGear): boolean;
10
+ /**
11
+ * 장비에 추가 옵션을 적용할 수 있는 상태인지 여부를 확인합니다.
12
+ * @param gear 확인할 장비.
13
+ * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
14
+ */
15
+ export declare function canApplyAddOption(gear: ReadonlyGear): boolean;
16
+ /**
17
+ * 장비에 추가 옵션을 적용합니다.
18
+ * @param gear 적용할 장비.
19
+ * @param type 추가 옵션 종류.
20
+ * @param grade 추가 옵션 단계.
21
+ *
22
+ * @throws {@link TypeError}
23
+ * 추가 옵션을 적용할 수 없는 상태의 장비일 경우.
24
+ *
25
+ * @throws {@link TypeError}
26
+ * 장비에 부여할 수 없는 추가 옵션을 지정했을 경우.
27
+ */
28
+ export declare function applyAddOption(gear: Gear, type: AddOptionType, grade: AddOptionGrade): void;
29
+ /**
30
+ * 추가 옵션을 초기화할 수 있는지 여부를 확인합니다.
31
+ * @param gear 확인할 장비.
32
+ * @returns 초기화할 수 있을 경우 `true`; 아닐 경우 `false`.
33
+ */
34
+ export declare function canResetAddOption(gear: ReadonlyGear): boolean;
35
+ /**
36
+ * 장비의 추가 옵션을 초기화합니다.
37
+ * @param gear 초기화할 장비.
38
+ *
39
+ * @throws {@link TypeError}
40
+ * 추가 옵션을 초기화할 수 없는 상태의 장비일 경우.
41
+ */
42
+ export declare function resetAddOption(gear: Gear): void;
54
43
  /**
55
44
  * 장비에 적용되는 추가 옵션을 계산합니다.
56
45
  * @param gear 추가옵션을 계산할 장비.
57
46
  * @param type 추가 옵션 종류.
58
- * @param grade 추가 옵션 등급.
59
- * @returns 추가 옵션 종류 및 등급에 해당하는 옵션.
47
+ * @param grade 추가 옵션 단계.
48
+ * @returns 추가 옵션 종류 및 단계에 해당하는 옵션.
60
49
  *
61
50
  * @throws {@link TypeError}
62
51
  * 장비에 부여할 수 없는 추가 옵션을 지정했을 경우.
63
52
  */
64
- export declare function getAddOption(gear: Gear, type: AddOptionType, grade: AddOptionGrade): Partial<GearAddOption>;
53
+ export declare function getAddOption(gear: ReadonlyGear, type: AddOptionType, grade: AddOptionGrade): Partial<GearAddOption>;
65
54
  /**
66
55
  * 장비에 적용되는 추가 옵션 종류에 따른 값을 계산합니다.
67
56
  * @param gear 추가옵션을 계산할 장비.
68
57
  * @param type 추가 옵션 종류.
69
- * @param grade 추가 옵션 등급.
58
+ * @param grade 추가 옵션 단계.
70
59
  * @returns 추가 옵션 값.
71
60
  *
72
61
  * @throws {@link TypeError}
73
62
  * 장비에 부여할 수 없는 추가 옵션을 지정했을 경우.
74
63
  */
75
- export declare function getAddOptionValue(gear: Gear, type: AddOptionType, grade: AddOptionGrade): number;
64
+ export declare function getAddOptionValue(gear: ReadonlyGear, type: AddOptionType, grade: AddOptionGrade): number;
76
65
  export interface AddOptionContext {
77
66
  type: AddOptionType;
78
67
  reqLevel: number;
@@ -1,5 +1,6 @@
1
1
  import { GearUpgradeOption } from '../data';
2
2
  import { Gear } from '../Gear';
3
+ import { ReadonlyGear } from '../ReadonlyGear';
3
4
  /**
4
5
  * 익셉셔널 해머
5
6
  */
@@ -16,13 +17,13 @@ export interface ExceptionalHammer {
16
17
  * @param gear 확인할 장비.
17
18
  * @returns 지원할 경우 `true`; 아닐 경우 `false`.
18
19
  */
19
- export declare function supportsExceptional(gear: Gear): boolean;
20
+ export declare function supportsExceptional(gear: ReadonlyGear): boolean;
20
21
  /**
21
22
  * 장비에 익셉셔널 강화를 적용할 수 있는 상태인지 여부를 확인합니다.
22
23
  * @param gear 확인할 장비.
23
24
  * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
24
25
  */
25
- export declare function canApplyExceptional(gear: Gear): boolean;
26
+ export declare function canApplyExceptional(gear: ReadonlyGear): boolean;
26
27
  /**
27
28
  * 장비에 익셉셔널 강화를 적용합니다.
28
29
  * @param gear 적용할 장비.
@@ -37,7 +38,7 @@ export declare function applyExceptional(gear: Gear, exceptionalHammer: Exceptio
37
38
  * @param gear 확인할 장비.
38
39
  * @returns 초기화할 수 있을 경우 `true`; 아닐 경우 `false`.
39
40
  */
40
- export declare function canResetExceptional(gear: Gear): boolean;
41
+ export declare function canResetExceptional(gear: ReadonlyGear): boolean;
41
42
  /**
42
43
  * 장비의 익셉셔널 강화를 초기화합니다.
43
44
  * @param gear 초기화할 장비.