@malib/gear 1.0.0-next.3 → 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.
@@ -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' | 'attackPower' | 'magicPower' | 'armor' | 'speed' | 'jump' | '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,14 @@
1
1
  import { GearOption } from './GearOption';
2
+ import { PotentialGrade } from './PotentialGrade';
3
+ /**
4
+ * 잠재옵션 정보
5
+ */
2
6
  export interface PotentialData {
7
+ /** 잠재능력 등급 */
8
+ grade: PotentialGrade;
3
9
  /** 장비에 표시되는 이름 */
4
- title: string;
10
+ summary: string;
5
11
  /** 잠재능력 옵션 */
6
12
  option: Partial<PotentialOption>;
7
13
  }
8
- export 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' | 'ignoreMonsterArmor' | 'damage' | 'criticalRate' | 'criticalDamage' | 'cooltimeReduce' | 'strLv' | 'dexLv' | 'intLv' | 'lukLv'>;
14
+ export 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'>;
@@ -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
- * 추가 옵션을 지원하는 장비 분류인지 확인합니다.
50
- * @param gearType 확인할 장비.
5
+ * 장비가 추가 옵션을 지원하는지 확인합니다.
6
+ * @param gear 확인할 장비.
51
7
  * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
52
8
  */
53
- export declare function supportsAddOption(gearType: GearType): 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 초기화할 장비.
@@ -0,0 +1,84 @@
1
+ import { PotentialData, PotentialGrade, PotentialOption } from '../data';
2
+ import { Gear } from '../Gear';
3
+ import { ReadonlyGear } from '../ReadonlyGear';
4
+ /**
5
+ * 잠재옵션 (읽기 전용)
6
+ */
7
+ export interface ReadonlyPotential extends Readonly<PotentialData> {
8
+ /** 잠재능력 옵션 */
9
+ option: Readonly<PotentialOption>;
10
+ }
11
+ /**
12
+ * 장비가 잠재능력을 지원하는지 여부를 확인합니다.
13
+ * @param gear 확인할 장비.
14
+ * @returns 지원할 경우 `true`; 아닐 경우 `false`.
15
+ */
16
+ export declare function supportsPotential(gear: ReadonlyGear): boolean;
17
+ /**
18
+ * 장비의 잠재능력을 설정할 수 있는지 여부를 확인합니다.
19
+ * @param gear 확인할 장비.
20
+ * @returns 설정할 수 있을 경우 `true`; 아닐 경우 `false`.
21
+ */
22
+ export declare function canSetPotential(gear: ReadonlyGear): boolean;
23
+ /**
24
+ * 장비의 잠재능력을 설정합니다.
25
+ * @param gear 설정할 장비.
26
+ * @param grade 잠재능력 등급.
27
+ * @param options 잠재옵션 목록.
28
+ *
29
+ * @throws {@link TypeError}
30
+ * 잠재능력을 설정할 수 없는 장비일 경우.
31
+ *
32
+ * @throws {@link TypeError}
33
+ * 설정하려는 잠재능력 등급이 Normal일 경우.
34
+ *
35
+ * @throws {@link TypeError}
36
+ * 잘못된 잠재옵션 목록을 지정했을 경우.
37
+ */
38
+ export declare function setPotential(gear: Gear, grade: PotentialGrade, options: PotentialData[]): void;
39
+ /**
40
+ * 장비의 잠재능력을 초기화합니다.
41
+ *
42
+ * 에디셔널 잠재능력은 변경되지 않습니다.
43
+ * @param gear 초기화할 장비.
44
+ *
45
+ * @throws {@link TypeError}
46
+ * 잠재능력을 초기화할 수 없는 장비일 경우.
47
+ */
48
+ export declare function resetPotential(gear: Gear): void;
49
+ /**
50
+ * 장비가 에디셔널 잠재능력을 지원하는지 여부를 확인합니다.
51
+ * @param gear 확인할 장비.
52
+ * @returns 지원할 경우 `true`; 아닐 경우 `false`.
53
+ */
54
+ export declare function supportsAdditionalPotential(gear: ReadonlyGear): boolean;
55
+ /**
56
+ * 장비의 에디셔널 잠재능력을 설정할 수 있는지 여부를 확인합니다.
57
+ * @param gear 확인할 장비.
58
+ * @returns 설정할 수 있을 경우 `true`; 아닐 경우 `false`.
59
+ */
60
+ export declare function canSetAdditionalPotential(gear: ReadonlyGear): boolean;
61
+ /**
62
+ * 장비의 에디셔널 잠재능력을 설정합니다.
63
+ * @param gear 설정할 장비.
64
+ * @param grade 에디셔널 잠재능력 등급.
65
+ * @param options 에디셔널 잠재옵션 목록.
66
+ *
67
+ * @throws {@link TypeError}
68
+ * 에디셔널 잠재능력을 설정할 수 없는 장비일 경우.
69
+ *
70
+ * @throws {@link TypeError}
71
+ * 설정하려는 에디셔널 잠재능력 등급이 Normal일 경우.
72
+ *
73
+ * @throws {@link TypeError}
74
+ * 잘못된 에디셔널 잠재옵션 목록을 지정했을 경우.
75
+ */
76
+ export declare function setAdditionalPotential(gear: Gear, grade: PotentialGrade, options: PotentialData[]): void;
77
+ /**
78
+ * 장비의 에디셔널 잠재능력을 초기화합니다.
79
+ * @param gear 초기화할 장비.
80
+ *
81
+ * @throws {@link TypeError}
82
+ * 에디셔널 잠재능력을 초기화할 수 없는 장비일 경우.
83
+ */
84
+ export declare function resetAdditionalPotential(gear: Gear): void;
@@ -1,17 +1,18 @@
1
- import { SoulData } from './data';
2
- import { Gear } from './Gear';
1
+ import { SoulData } from '../data';
2
+ import { Gear } from '../Gear';
3
+ import { ReadonlyGear } from '../ReadonlyGear';
3
4
  /**
4
5
  * 장비가 소울웨폰을 지원하는지 여부를 확인합니다.
5
6
  * @param gear 확인할 장비.
6
7
  * @returns 지원할 경우 `true`; 아닐 경우 `false`.
7
8
  */
8
- export declare function supportsSoul(gear: Gear): boolean;
9
+ export declare function supportsSoul(gear: ReadonlyGear): boolean;
9
10
  /**
10
11
  * 장비에 소울 인챈터를 적용할 수 있는 상태인지 여부를 확인합니다.
11
12
  * @param gear 확인할 장비.
12
13
  * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
13
14
  */
14
- export declare function canApplySoulEnchant(gear: Gear): boolean;
15
+ export declare function canApplySoulEnchant(gear: ReadonlyGear): boolean;
15
16
  /**
16
17
  * 장비에 소울 인챈터를 적용합니다.
17
18
  * @param gear 적용할 장비.
@@ -25,7 +26,7 @@ export declare function applySoulEnchant(gear: Gear): void;
25
26
  * @param gear 확인할 장비.
26
27
  * @returns 장착할 수 있을 경우 `true`; 아닐 경우 `false`.
27
28
  */
28
- export declare function canSetSoul(gear: Gear): boolean;
29
+ export declare function canSetSoul(gear: ReadonlyGear): boolean;
29
30
  /**
30
31
  * 장비에 소울을 장착합니다.
31
32
  * @param gear 대상 장비.
@@ -40,7 +41,7 @@ export declare function setSoul(gear: Gear, soul: SoulData): void;
40
41
  * @param gear 확인할 장비.
41
42
  * @returns 설정할 수 있을 경우 `true`; 아닐 경우 `false`.
42
43
  */
43
- export declare function canSetSoulCharge(gear: Gear): boolean;
44
+ export declare function canSetSoulCharge(gear: ReadonlyGear): boolean;
44
45
  /**
45
46
  * 장비의 소울 충전량을 설정합니다.
46
47
  * @param gear 대상 장비.
@@ -1,4 +1,5 @@
1
1
  import { Gear } from '../Gear';
2
+ import { ReadonlyGear } from '../ReadonlyGear';
2
3
  import { Scroll } from './upgrade';
3
4
  /**
4
5
  * 주문의 흔적 종류
@@ -51,9 +52,9 @@ export declare function applySpellTrace(gear: Gear, type: SpellTraceType, rate:
51
52
  * @throws {@link TypeError}
52
53
  * 주문의 흔적을 장비에 적용할 수 없는 경우.
53
54
  */
54
- export declare function getSpellTraceScroll(gear: Gear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
55
- export declare function _getWeaponSpellTrace(gear: Gear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
56
- export declare function _getGloveSpellTrace(gear: Gear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
57
- export declare function _getArmorSpellTrace(gear: Gear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
58
- export declare function _getAccSpellTrace(gear: Gear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
59
- export declare function _getHeartSpellTrace(gear: Gear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
55
+ export declare function getSpellTraceScroll(gear: ReadonlyGear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
56
+ export declare function _getWeaponSpellTrace(gear: ReadonlyGear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
57
+ export declare function _getGloveSpellTrace(gear: ReadonlyGear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
58
+ export declare function _getArmorSpellTrace(gear: ReadonlyGear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
59
+ export declare function _getAccSpellTrace(gear: ReadonlyGear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
60
+ export declare function _getHeartSpellTrace(gear: ReadonlyGear, type: SpellTraceType, rate: SpellTraceRate): SpellTrace;
@@ -1,5 +1,6 @@
1
1
  import { Gear } from '../Gear';
2
- export declare const MAX_STARFORCE = 25;
2
+ import { ReadonlyGear } from '../ReadonlyGear';
3
+ export declare const MAX_STARFORCE = 30;
3
4
  export declare const MAX_STARSCROLL = 15;
4
5
  export declare const MAX_SUPERIOR = 15;
5
6
  export declare const MAX_REQLEVEL_STARSCROLL = 150;
@@ -8,7 +9,7 @@ export declare const MAX_REQLEVEL_STARSCROLL = 150;
8
9
  * @param gear 확인할 장비.
9
10
  * @returns 지원할 경우 `true`; 아닐 경우 `false`.
10
11
  */
11
- export declare function supportsStarforce(gear: Gear): boolean;
12
+ export declare function supportsStarforce(gear: ReadonlyGear): boolean;
12
13
  /**
13
14
  * 장비에 스타포스 강화를 적용할 수 있는 상태인지 여부를 확인합니다.
14
15
  *
@@ -17,7 +18,7 @@ export declare function supportsStarforce(gear: Gear): boolean;
17
18
  * @param exceedMaxStar 장비의 최대 강화 단계를 초과하여 강화할 지 여부.
18
19
  * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
19
20
  */
20
- export declare function canStarforce(gear: Gear, exceedMaxStar?: boolean): boolean;
21
+ export declare function canStarforce(gear: ReadonlyGear, exceedMaxStar?: boolean): boolean;
21
22
  /**
22
23
  * 장비에 스타포스 강화를 1회 적용합니다.
23
24
  *
@@ -39,7 +40,7 @@ export declare function starforce(gear: Gear, exceedMaxStar?: boolean): void;
39
40
  * @param exceedMaxStar 장비의 최대 강화 단계를 초과하여 강화할 지 여부.
40
41
  * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
41
42
  */
42
- export declare function canStarScroll(gear: Gear, exceedMaxStar?: boolean): boolean;
43
+ export declare function canStarScroll(gear: ReadonlyGear, exceedMaxStar?: boolean): boolean;
43
44
  /**
44
45
  * 장비에 놀라운 장비 강화 주문서를 1회 적용합니다.
45
46
  *
@@ -64,7 +65,7 @@ export declare function starScroll(gear: Gear, bonus?: boolean, exceedMaxStar?:
64
65
  * @param gear 확인할 장비.
65
66
  * @returns 초기화할 수 있을 경우 `true`; 아닐 경우 `false`.
66
67
  */
67
- export declare function canResetStarforce(gear: Gear): boolean;
68
+ export declare function canResetStarforce(gear: ReadonlyGear): boolean;
68
69
  /**
69
70
  * 장비의 스타포스 강화를 초기화합니다.
70
71
  * @param gear 초기화할 장비.
@@ -73,3 +74,11 @@ export declare function canResetStarforce(gear: Gear): boolean;
73
74
  * 스타포스 강화를 초기화할 수 없는 장비일 경우.
74
75
  */
75
76
  export declare function resetStarforce(gear: Gear): void;
77
+ /**
78
+ * 장비의 최대 스타포스 강화를 계산합니다.
79
+ *
80
+ * 놀라운 장비 강화 주문서가 사용되었을 경우 최대 `15`입니다.
81
+ * @param gear 계산할 장비.
82
+ * @returns 장비의 최대 스타포스 강화.
83
+ */
84
+ export declare function getMaxStar(gear: ReadonlyGear): 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,27 +17,13 @@ export interface Scroll {
16
17
  * @param gear 확인할 장비.
17
18
  * @returns 지원할 경우 `true`; 아닐 경우 `false`.
18
19
  */
19
- export declare function supportsUpgrade(gear: Gear): boolean;
20
- /**
21
- * 장비에 황금 망치를 적용할 수 있는 상태인지 여부를 확인합니다.
22
- * @param gear 확인할 장비.
23
- * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
24
- */
25
- export declare function canGoldenHammer(gear: Gear): boolean;
26
- /**
27
- * 장비에 황금 망치를 적용합니다.
28
- * @param gear 적용할 장비.
29
- *
30
- * @throws {@link TypeError}
31
- * 황금 망치를 적용할 수 없는 상태의 장비일 경우.
32
- */
33
- export declare function applyGoldenHammer(gear: Gear): void;
20
+ export declare function supportsUpgrade(gear: ReadonlyGear): boolean;
34
21
  /**
35
22
  * 장비에 주문서 실패를 적용할 수 있는 상태인지 여부를 확인합니다.
36
23
  * @param gear 확인할 장비.
37
24
  * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
38
25
  */
39
- export declare function canFailScroll(gear: Gear): boolean;
26
+ export declare function canFailScroll(gear: ReadonlyGear): boolean;
40
27
  /**
41
28
  * 장비에 주문서 실패를 적용합니다.
42
29
  * @param gear 적용할 장비.
@@ -50,7 +37,7 @@ export declare function failScroll(gear: Gear): void;
50
37
  * @param gear 확인할 장비.
51
38
  * @returns 복구할 수 있을 경우 `true`; 아닐 경우 `false`.
52
39
  */
53
- export declare function canResileScroll(gear: Gear): boolean;
40
+ export declare function canResileScroll(gear: ReadonlyGear): boolean;
54
41
  /**
55
42
  * 장비의 주문서 실패로 차감된 업그레이드 가능 횟수를 1회 복구합니다.
56
43
  * @param gear 복구할 장비.
@@ -64,7 +51,7 @@ export declare function resileScroll(gear: Gear): void;
64
51
  * @param gear 확인할 장비.
65
52
  * @returns 초기화할 수 있을 경우 `true`; 아닐 경우 `false`.
66
53
  */
67
- export declare function canResetUpgrade(gear: Gear): boolean;
54
+ export declare function canResetUpgrade(gear: ReadonlyGear): boolean;
68
55
  /**
69
56
  * 장비의 주문서 강화를 초기화합니다.
70
57
  * @param gear 초기화할 장비.
@@ -78,7 +65,7 @@ export declare function resetUpgrade(gear: Gear): void;
78
65
  * @param gear 확인할 장비.
79
66
  * @returns 적용할 수 있을 경우 `true`; 아닐 경우 `false`.
80
67
  */
81
- export declare function canApplyScroll(gear: Gear): boolean;
68
+ export declare function canApplyScroll(gear: ReadonlyGear): boolean;
82
69
  /**
83
70
  * 장비에 주문서를 적용합니다.
84
71
  * @param gear 적용할 장비.
@@ -1,4 +1,6 @@
1
1
  export declare const enum ErrorMessage {
2
+ AddOption_InvalidApplyGear = "\uCD94\uAC00 \uC635\uC158\uC744 \uC801\uC6A9\uD560 \uC218 \uC5C6\uB294 \uC0C1\uD0DC\uC758 \uC7A5\uBE44\uC785\uB2C8\uB2E4.",
3
+ AddOption_InvalidResetGear = "\uCD94\uAC00 \uC635\uC158\uC744 \uCD08\uAE30\uD654\uD560 \uC218 \uC5C6\uB294 \uC0C1\uD0DC\uC758 \uC7A5\uBE44\uC785\uB2C8\uB2E4.",
2
4
  AddOption_InvalidAttackPowerGear = "\uACF5\uACA9\uB825/\uB9C8\uB825 \uCD94\uAC00 \uC635\uC158\uC740 \uCC29\uC6A9 \uAC00\uB2A5 \uB808\uBCA8 60 \uC774\uC0C1\uC758 \uBB34\uAE30 \uC7A5\uBE44\uC5D0\uB9CC \uBD80\uC5EC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
3
5
  AddOption_UnknownLongSwordGear = "\uACF5\uACA9\uB825/\uB9C8\uB825 \uCD94\uAC00 \uC635\uC158\uC744 \uBD80\uC5EC\uD560 \uC218 \uC5C6\uB294 \uD0DC\uB3C4 \uC7A5\uBE44\uC785\uB2C8\uB2E4. (Please submit issue with the gear info)",
4
6
  AddOption_InvalidSpeedGear = "\uC774\uB3D9\uC18D\uB3C4 \uCD94\uAC00 \uC635\uC158\uC740 \uBB34\uAE30\uAC00 \uC544\uB2CC \uC7A5\uBE44\uC5D0\uB9CC \uBD80\uC5EC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
@@ -18,6 +20,12 @@ export declare const enum ErrorMessage {
18
20
  Starforce_InvalidReqLevelGear = "\uC7A5\uBE44\uC758 \uCC29\uC6A9 \uAC00\uB2A5 \uB808\uBCA8\uC740 0 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.",
19
21
  StarScroll_InvalidStarScrollGear = "\uB180\uB77C\uC6B4 \uC7A5\uBE44 \uAC15\uD654 \uC8FC\uBB38\uC11C\uB97C \uC801\uC6A9\uD560 \uC218 \uC5C6\uB294 \uC0C1\uD0DC\uC758 \uC7A5\uBE44\uC785\uB2C8\uB2E4.",
20
22
  Starforce_InvalidResetGear = "\uC2A4\uD0C0\uD3EC\uC2A4 \uAC15\uD654\uB97C \uCD08\uAE30\uD654\uD560 \uC218 \uC5C6\uB294 \uC7A5\uBE44\uC785\uB2C8\uB2E4.",
23
+ Potential_InvalidPotentialGear = "\uC7A0\uC7AC\uB2A5\uB825\uC744 \uC801\uC6A9\uD560 \uC218 \uC5C6\uB294 \uC0C1\uD0DC\uC758 \uC7A5\uBE44\uC785\uB2C8\uB2E4.",
24
+ Potential_InvalidPotentialOptions = "\uC7A0\uC7AC\uC635\uC158 \uAC1C\uC218\uB294 1\uAC1C\uC5D0\uC11C 3\uAC1C \uC0AC\uC774\uC5EC\uC57C \uD569\uB2C8\uB2E4.",
25
+ Potential_InvalidPotentialGrade = "\uC7A0\uC7AC\uB2A5\uB825 \uB4F1\uAE09\uC744 Normal\uB85C \uC124\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. (\uC7A0\uC7AC\uB2A5\uB825\uC744 \uCD08\uAE30\uD654\uD558\uB824\uBA74 resetPotential\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.)",
26
+ Potential_InvalidAdditionalPotentialGear = "\uC5D0\uB514\uC154\uB110 \uC7A0\uC7AC\uB2A5\uB825\uC744 \uC801\uC6A9\uD560 \uC218 \uC5C6\uB294 \uC0C1\uD0DC\uC758 \uC7A5\uBE44\uC785\uB2C8\uB2E4.",
27
+ Potential_InvalidAdditionalPotentialOptions = "\uC5D0\uB514\uC154\uB110 \uC7A0\uC7AC\uC635\uC158 \uAC1C\uC218\uB294 1\uAC1C\uC5D0\uC11C 3\uAC1C \uC0AC\uC774\uC5EC\uC57C \uD569\uB2C8\uB2E4.",
28
+ Potential_InvalidAdditionalPotentialGrade = "\uC5D0\uB514\uC154\uB110 \uC7A0\uC7AC\uB2A5\uB825 \uB4F1\uAE09\uC744 Normal\uB85C \uC124\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. (\uC5D0\uB514\uC154\uB110 \uC7A0\uC7AC\uB2A5\uB825\uC744 \uCD08\uAE30\uD654\uD558\uB824\uBA74 resetAdditionalPotential\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.)",
21
29
  Soul_SetSoulUnenchanted = "\uC18C\uC6B8\uC6E8\uD3F0 \uC0C1\uD0DC\uC758 \uC7A5\uBE44\uC5D0\uB9CC \uC18C\uC6B8\uC744 \uC7A5\uCC29\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
22
30
  Soul_SetChargeUnenchanted = "\uC18C\uC6B8\uC6E8\uD3F0 \uC0C1\uD0DC\uC758 \uC7A5\uBE44\uB9CC \uC18C\uC6B8 \uCDA9\uC804\uB7C9\uC744 \uBCC0\uACBD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
23
31
  Soul_InvalidSoulCharge = "\uC18C\uC6B8 \uCDA9\uC804\uB7C9\uC740 0 \uC774\uC0C1 1000 \uC774\uD558\uC758 \uAC12\uC73C\uB85C\uB9CC \uBCC0\uACBD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
@@ -7,3 +7,5 @@ import { GearOption } from './data';
7
7
  * @returns 장비 옵션 프록시.
8
8
  */
9
9
  export declare function toGearOption(option: Partial<GearOption>): GearOption;
10
+ export declare function addOptions(option: Partial<GearOption>, ...options: Partial<GearOption>[]): void;
11
+ export declare function sumOptions(...options: Partial<GearOption>[]): Partial<GearOption>;
@@ -0,0 +1,2 @@
1
+ import { ExceptionalHammer } from '../enhance/exceptional';
2
+ export declare function createExceptional(data?: Partial<ExceptionalHammer>): ExceptionalHammer;
@@ -0,0 +1,13 @@
1
+ import { GearData } from '../data';
2
+ import { Gear } from '../Gear';
3
+ import { ReadonlyGear } from '../ReadonlyGear';
4
+ import { resources } from './gearFixtureResources';
5
+ import { Patch } from './gearPatch';
6
+ type GearNames = keyof typeof resources;
7
+ export type CreateGearParams = [name?: GearNames, patches?: Patch[]] | [data: Partial<GearData>] | [name: GearNames, data: Partial<GearData>, patches?: Patch[]];
8
+ export declare function createGear(name?: GearNames, patches?: Patch[]): Gear;
9
+ export declare function createGear(data: Partial<GearData>): Gear;
10
+ export declare function createGear(name: GearNames, data: Partial<GearData>, patches?: Patch[]): Gear;
11
+ export declare function createReadonlyGear(name?: GearNames, data?: Partial<GearData>): ReadonlyGear;
12
+ export declare function createReadonlyGear(data: Partial<GearData>): ReadonlyGear;
13
+ export {};