/
skills-config.ts
43 lines (37 loc) · 1.24 KB
/
skills-config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import { Type, Static } from '@sinclair/typebox';
import { SkillCheckOptionsConfigSchema } from './skillchecks-config';
export const SkillConfigSchema = Type.Object({
name: Type.String(),
description: Type.String(),
startingLevel: Type.Number(),
hidden: Type.Optional(Type.Boolean()),
icon: Type.String(),
});
export type SkillConfig = Static<typeof SkillConfigSchema>;
export const SkillsListConfigSchema = Type.Record(
Type.String(),
SkillConfigSchema,
);
export type SkillsListConfig = Static<typeof SkillsListConfigSchema>;
export const SkillOptionsSchema = Type.Object({
xpPerLevel: Type.Number(),
notifyLevelUp: Type.Boolean(),
});
export type SkillOptions = Static<typeof SkillOptionsSchema>;
export const SkillsConfigSchema = Type.Object({
skills: SkillsListConfigSchema,
skillOptions: SkillOptionsSchema,
});
export type SkillsConfig = Static<typeof SkillsConfigSchema>;
export const SkillsInputConfigSchema = Type.Object({
skills: Type.Optional(SkillsListConfigSchema),
skillOptions: Type.Optional(SkillOptionsSchema),
});
export type SkillsInputConfig = Static<typeof SkillsInputConfigSchema>;
export const defaultSkillsConfig: SkillsConfig = {
skills: {},
skillOptions: {
xpPerLevel: 10,
notifyLevelUp: true,
},
};