optolith-database-schema 0.21.2 → 0.22.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.
- package/CHANGELOG.md +23 -0
- package/gen/types.d.ts +67 -4
- package/lib/types/Advantage.d.ts +136 -1
- package/lib/types/Advantage.js +6 -1
- package/lib/types/Disadvantage.d.ts +66 -1
- package/lib/types/Disadvantage.js +4 -1
- package/lib/types/_Activatable.d.ts +1 -1900
- package/lib/types/_Activatable.js +1 -1385
- package/lib/types/_ActivatableAdvanced.d.ts +50 -0
- package/lib/types/_ActivatableAdvanced.js +97 -0
- package/lib/types/_ActivatableAdventurePointsValue.d.ts +152 -0
- package/lib/types/_ActivatableAdventurePointsValue.js +141 -0
- package/lib/types/_ActivatableAutomatic.d.ts +71 -0
- package/lib/types/_ActivatableAutomatic.js +64 -0
- package/lib/types/_ActivatableCombat.d.ts +124 -0
- package/lib/types/_ActivatableCombat.js +359 -0
- package/lib/types/_ActivatableNonMundane.d.ts +399 -0
- package/lib/types/_ActivatableNonMundane.js +492 -0
- package/lib/types/_ActivatableSelectOptions.d.ts +1197 -0
- package/lib/types/_ActivatableSelectOptions.js +272 -0
- package/lib/types/_ActivatableSkillApplicationsAndUses.d.ts +109 -0
- package/lib/types/_ActivatableSkillApplicationsAndUses.js +78 -0
- package/lib/types/_Identifier.js +2 -1
- package/lib/types/_SizeCategory.d.ts +15 -0
- package/lib/types/_SizeCategory.js +24 -0
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +67 -1
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +5 -1
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +4 -1
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +4 -1
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +4 -1
- package/lib/types/specialAbility/AncestorGlyph.d.ts +66 -1
- package/lib/types/specialAbility/AncestorGlyph.js +3 -1
- package/lib/types/specialAbility/BlessedTradition.d.ts +66 -1
- package/lib/types/specialAbility/BlessedTradition.js +4 -1
- package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +67 -1
- package/lib/types/specialAbility/BrawlingSpecialAbility.js +4 -1
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +6 -2
- package/lib/types/specialAbility/CombatSpecialAbility.d.ts +67 -1
- package/lib/types/specialAbility/CombatSpecialAbility.js +5 -1
- package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +67 -1
- package/lib/types/specialAbility/CombatStyleSpecialAbility.js +6 -1
- package/lib/types/specialAbility/CommandSpecialAbility.d.ts +67 -1
- package/lib/types/specialAbility/CommandSpecialAbility.js +4 -1
- package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/FamiliarSpecialAbility.js +3 -1
- package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/FatePointSexSpecialAbility.js +3 -1
- package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/FatePointSpecialAbility.js +4 -1
- package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/GeneralSpecialAbility.js +4 -1
- package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/KarmaSpecialAbility.js +3 -1
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +5 -1
- package/lib/types/specialAbility/LycantropicGift.d.ts +66 -1
- package/lib/types/specialAbility/LycantropicGift.js +3 -1
- package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/MagicStyleSpecialAbility.js +5 -1
- package/lib/types/specialAbility/MagicalSign.d.ts +2 -1
- package/lib/types/specialAbility/MagicalSign.js +8 -2
- package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/MagicalSpecialAbility.js +4 -1
- package/lib/types/specialAbility/MagicalTradition.d.ts +66 -1
- package/lib/types/specialAbility/MagicalTradition.js +4 -1
- package/lib/types/specialAbility/PactGift.d.ts +128 -62
- package/lib/types/specialAbility/PactGift.js +6 -61
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +3 -1
- package/lib/types/specialAbility/Sermon.d.ts +66 -1
- package/lib/types/specialAbility/Sermon.js +3 -1
- package/lib/types/specialAbility/SexSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/SexSpecialAbility.js +4 -1
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +3 -1
- package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +66 -1
- package/lib/types/specialAbility/SkillStyleSpecialAbility.js +4 -1
- package/lib/types/specialAbility/VampiricGift.d.ts +66 -1
- package/lib/types/specialAbility/VampiricGift.js +3 -1
- package/lib/types/specialAbility/Vision.d.ts +66 -1
- package/lib/types/specialAbility/Vision.js +3 -1
- package/lib/types/specialAbility/sub/TradeSecret.js +2 -1
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/AttireEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/BowlEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/CauldronEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/ChronicleEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/DaggerRitual.d.ts +66 -1
- package/lib/types/traditionArtifacts/DaggerRitual.js +5 -2
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/InstrumentEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +66 -1
- package/lib/types/traditionArtifacts/Krallenkettenzauber.js +5 -2
- package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/OrbEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/RingEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/RingEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/SickleRitual.d.ts +66 -1
- package/lib/types/traditionArtifacts/SickleRitual.js +5 -2
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/StaffEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/ToyEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +66 -1
- package/lib/types/traditionArtifacts/Trinkhornzauber.js +5 -2
- package/lib/types/traditionArtifacts/WandEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/WandEnchantment.js +5 -2
- package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +66 -1
- package/lib/types/traditionArtifacts/WeaponEnchantment.js +5 -2
- package/package.json +1 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Array, Boolean, EnumCase, IncludeIdentifier, Object, type Type, TypeArgument } from "tsondb/schema/def";
|
|
2
|
+
export declare const advanced: (identifier: Type) => import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, Type>[], import("tsondb/schema/def").EnumDecl<"AdvancedSpecialAbility", {
|
|
3
|
+
General: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"Identifier", Type>>>;
|
|
4
|
+
RestrictOptions: EnumCase<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, Type>[], import("tsondb/schema/def").TypeAliasDecl<"RestrictAdvancedSpecialAbilityOptions", Object<{
|
|
5
|
+
id: import("tsondb/schema/def").MemberDecl<TypeArgument<import("tsondb/schema/def").TypeParameter<"Identifier", Type>>, true>;
|
|
6
|
+
option: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"AdvancedSpecialAbilityRestrictedOptionIdentifier", {
|
|
7
|
+
General: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
8
|
+
Skill: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
9
|
+
CloseCombatTechnique: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
10
|
+
RangedCombatTechnique: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
11
|
+
Element: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
12
|
+
Aspect: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
13
|
+
}, []>>>, true>;
|
|
14
|
+
}>, [Identifier: import("tsondb/schema/def").TypeParameter<"Identifier", Type>]>>>;
|
|
15
|
+
OneOf: EnumCase<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, Type>[], import("tsondb/schema/def").TypeAliasDecl<"OneOfAdvancedSpecialAbilityOptions", Object<{
|
|
16
|
+
options: import("tsondb/schema/def").MemberDecl<Array<TypeArgument<import("tsondb/schema/def").TypeParameter<"Identifier", Type>>>, true>;
|
|
17
|
+
is_selection_required_on_purchase: import("tsondb/schema/def").MemberDecl<Boolean, true>;
|
|
18
|
+
display_option: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"DisplayOption", {
|
|
19
|
+
Hide: EnumCase<null>;
|
|
20
|
+
ReplaceWith: EnumCase<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ReplacementDisplayOption", Object<{
|
|
21
|
+
sentence_type: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"SentenceType", {
|
|
22
|
+
Standalone: EnumCase<null>;
|
|
23
|
+
Connected: EnumCase<null>;
|
|
24
|
+
}, []>>, false>;
|
|
25
|
+
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ReplacementDisplayOptionTranslation", {
|
|
26
|
+
replacement: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
27
|
+
}>, true>;
|
|
28
|
+
}>, []>>>;
|
|
29
|
+
}, []>>, false>;
|
|
30
|
+
}>, [Identifier: import("tsondb/schema/def").TypeParameter<"Identifier", Type>]>>>;
|
|
31
|
+
DeriveFromExternalOption: EnumCase<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, Type>[], import("tsondb/schema/def").TypeAliasDecl<"AdvancedSpecialAbilityDerivedFromExternalOption", Object<{
|
|
32
|
+
external_entry: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
|
|
33
|
+
map: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, Type>[], import("tsondb/schema/def").TypeAliasDecl<"AdvancedSpecialAbilityDerivedFromExternalOptionMapping", Object<{
|
|
34
|
+
from_option: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
|
|
35
|
+
to_advanced: import("tsondb/schema/def").MemberDecl<TypeArgument<import("tsondb/schema/def").TypeParameter<"Identifier", Type>>, true>;
|
|
36
|
+
}>, [Identifier: import("tsondb/schema/def").TypeParameter<"Identifier", Type>]>>>, true>;
|
|
37
|
+
display_option: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"DisplayOption", {
|
|
38
|
+
Hide: EnumCase<null>;
|
|
39
|
+
ReplaceWith: EnumCase<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ReplacementDisplayOption", Object<{
|
|
40
|
+
sentence_type: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"SentenceType", {
|
|
41
|
+
Standalone: EnumCase<null>;
|
|
42
|
+
Connected: EnumCase<null>;
|
|
43
|
+
}, []>>, false>;
|
|
44
|
+
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ReplacementDisplayOptionTranslation", {
|
|
45
|
+
replacement: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
|
|
46
|
+
}>, true>;
|
|
47
|
+
}>, []>>>;
|
|
48
|
+
}, []>>, false>;
|
|
49
|
+
}>, [Identifier: import("tsondb/schema/def").TypeParameter<"Identifier", Type>]>>>;
|
|
50
|
+
}, [Identifier: import("tsondb/schema/def").TypeParameter<"Identifier", Type>]>>>, true>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Array, Boolean, EnumCase, GenEnum, GenIncludeIdentifier, GenTypeAlias, IncludeIdentifier, Object, Optional, Param, Required, TypeArgument, } from "tsondb/schema/def";
|
|
2
|
+
import { MagicalTraditionIdentifier, PatronIdentifier } from "./_Identifier.js";
|
|
3
|
+
import { AdvancedSpecialAbilityRestrictedOptionIdentifier } from "./_IdentifierGroup.js";
|
|
4
|
+
import { DisplayOption } from "./prerequisites/DisplayOption.js";
|
|
5
|
+
const AdvancedSpecialAbility = GenEnum(import.meta.url, {
|
|
6
|
+
name: "AdvancedSpecialAbility",
|
|
7
|
+
comment: "A reference to an advanced special ability.",
|
|
8
|
+
parameters: [Param("Identifier")],
|
|
9
|
+
values: Identifier => ({
|
|
10
|
+
General: EnumCase({ type: TypeArgument(Identifier) }),
|
|
11
|
+
RestrictOptions: EnumCase({
|
|
12
|
+
type: GenIncludeIdentifier(RestrictAdvancedSpecialAbilityOptions, [TypeArgument(Identifier)]),
|
|
13
|
+
}),
|
|
14
|
+
OneOf: EnumCase({
|
|
15
|
+
type: GenIncludeIdentifier(OneOfAdvancedSpecialAbilityOptions, [TypeArgument(Identifier)]),
|
|
16
|
+
}),
|
|
17
|
+
DeriveFromExternalOption: EnumCase({
|
|
18
|
+
type: GenIncludeIdentifier(AdvancedSpecialAbilityDerivedFromExternalOption, [
|
|
19
|
+
TypeArgument(Identifier),
|
|
20
|
+
]),
|
|
21
|
+
}),
|
|
22
|
+
}),
|
|
23
|
+
});
|
|
24
|
+
const RestrictAdvancedSpecialAbilityOptions = GenTypeAlias(import.meta.url, {
|
|
25
|
+
name: "RestrictAdvancedSpecialAbilityOptions",
|
|
26
|
+
parameters: [Param("Identifier")],
|
|
27
|
+
type: Identifier => Object({
|
|
28
|
+
id: Required({
|
|
29
|
+
comment: "The advanced special ability’s identifier.",
|
|
30
|
+
type: TypeArgument(Identifier),
|
|
31
|
+
}),
|
|
32
|
+
option: Required({
|
|
33
|
+
comment: "Specify the select option(s) that only are allowed for the referenced advanced special ability; others are disallowed.",
|
|
34
|
+
type: Array(IncludeIdentifier(AdvancedSpecialAbilityRestrictedOptionIdentifier), {
|
|
35
|
+
minItems: 1,
|
|
36
|
+
}),
|
|
37
|
+
}),
|
|
38
|
+
}),
|
|
39
|
+
});
|
|
40
|
+
const OneOfAdvancedSpecialAbilityOptions = GenTypeAlias(import.meta.url, {
|
|
41
|
+
name: "OneOfAdvancedSpecialAbilityOptions",
|
|
42
|
+
parameters: [Param("Identifier")],
|
|
43
|
+
type: Identifier => Object({
|
|
44
|
+
options: Required({
|
|
45
|
+
comment: "The possible advanced special abilities.",
|
|
46
|
+
type: Array(TypeArgument(Identifier), { minItems: 2 }),
|
|
47
|
+
}),
|
|
48
|
+
is_selection_required_on_purchase: Required({
|
|
49
|
+
comment: "Do have to choose the advanced special ability when buying the style special ability? Otherwise the decision can be made later.",
|
|
50
|
+
type: Boolean(),
|
|
51
|
+
}),
|
|
52
|
+
display_option: Optional({
|
|
53
|
+
type: IncludeIdentifier(DisplayOption),
|
|
54
|
+
}),
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
const AdvancedSpecialAbilityDerivedFromExternalOption = GenTypeAlias(import.meta.url, {
|
|
58
|
+
name: "AdvancedSpecialAbilityDerivedFromExternalOption",
|
|
59
|
+
parameters: [Param("Identifier")],
|
|
60
|
+
type: Identifier => Object({
|
|
61
|
+
external_entry: Required({
|
|
62
|
+
comment: "The possible advanced special abilities.",
|
|
63
|
+
type: MagicalTraditionIdentifier(),
|
|
64
|
+
}),
|
|
65
|
+
map: Required({
|
|
66
|
+
comment: "Map options from the external entry to allowed advanced special abilities.",
|
|
67
|
+
type: Array(GenIncludeIdentifier(AdvancedSpecialAbilityDerivedFromExternalOptionMapping, [
|
|
68
|
+
TypeArgument(Identifier),
|
|
69
|
+
]), { minItems: 1 }),
|
|
70
|
+
}),
|
|
71
|
+
display_option: Optional({
|
|
72
|
+
type: IncludeIdentifier(DisplayOption),
|
|
73
|
+
}),
|
|
74
|
+
}),
|
|
75
|
+
});
|
|
76
|
+
const AdvancedSpecialAbilityDerivedFromExternalOptionMapping = GenTypeAlias(import.meta.url, {
|
|
77
|
+
name: "AdvancedSpecialAbilityDerivedFromExternalOptionMapping",
|
|
78
|
+
parameters: [Param("Identifier")],
|
|
79
|
+
comment: "Mapping from an option of the external entry to an allowed advanced special ability.",
|
|
80
|
+
type: Identifier => Object({
|
|
81
|
+
from_option: Required({
|
|
82
|
+
comment: "The select option’s identifier.",
|
|
83
|
+
type: PatronIdentifier(),
|
|
84
|
+
}),
|
|
85
|
+
to_advanced: Required({
|
|
86
|
+
comment: "The advanced special ability’s identifier.",
|
|
87
|
+
type: TypeArgument(Identifier),
|
|
88
|
+
}),
|
|
89
|
+
}),
|
|
90
|
+
});
|
|
91
|
+
export const advanced = (identifier) => Required({
|
|
92
|
+
comment: "The Advanced Special Abilities for the respective Style Special Ability. Sometimes, only a specific select option or a set of select options of an entry is allowed, which can be modelled by the option property. It can also be that you can choose from a set of special abilities, but then you can’t specify an option.",
|
|
93
|
+
type: Array(GenIncludeIdentifier(AdvancedSpecialAbility, [identifier]), {
|
|
94
|
+
minItems: 3,
|
|
95
|
+
maxItems: 3,
|
|
96
|
+
}),
|
|
97
|
+
});
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { ArrayType as Array, EnumDecl as Enum, EnumCaseDecl as EnumCase, IncludeIdentifier, IntegerType as Integer, ObjectType as Object, String, TypeAlias } from "tsondb/schema/def";
|
|
2
|
+
import { MathOperation } from "./_MathExpression.js";
|
|
3
|
+
export declare const ap_value: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"AdventurePointsValue", {
|
|
4
|
+
Fixed: EnumCase<IncludeIdentifier<[], TypeAlias<"FixedAdventurePointsValue", IncludeIdentifier<[], TypeAlias<"AdventurePointsSingleValue", Integer, []>>, []>>>;
|
|
5
|
+
ByLevel: EnumCase<IncludeIdentifier<[], TypeAlias<"AdventurePointsValueByLevel", Object<{
|
|
6
|
+
list: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], TypeAlias<"AdventurePointsSingleValue", Integer, []>>>, true>;
|
|
7
|
+
additionalBySizeCategory: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], TypeAlias<"BySizeCategory", Object<{
|
|
8
|
+
tiny: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>, true>;
|
|
9
|
+
small: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>, true>;
|
|
10
|
+
medium: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>, true>;
|
|
11
|
+
large: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>, true>;
|
|
12
|
+
huge: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>, true>;
|
|
13
|
+
}>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, false>;
|
|
14
|
+
}>, []>>>;
|
|
15
|
+
DerivedFromSelection: EnumCase<IncludeIdentifier<[], TypeAlias<"AdventurePointsDerivedFromSelection", Object<{
|
|
16
|
+
translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"AdventurePointsDerivedFromSelectionTranslation", {
|
|
17
|
+
replacement: import("tsondb/schema/def").MemberDecl<String, false>;
|
|
18
|
+
}>, false>;
|
|
19
|
+
}>, []>>>;
|
|
20
|
+
DependingOnActive: EnumCase<IncludeIdentifier<[], TypeAlias<"AdventurePointsDependingOnActive", Object<{
|
|
21
|
+
id: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"ActivatableIdentifier", {
|
|
22
|
+
Advantage: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
23
|
+
Disadvantage: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
24
|
+
AdvancedCombatSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
25
|
+
AdvancedKarmaSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
26
|
+
AdvancedMagicalSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
27
|
+
AdvancedSkillSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
28
|
+
AncestorGlyph: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
29
|
+
ArcaneOrbEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
30
|
+
AttireEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
31
|
+
BlessedTradition: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
32
|
+
BowlEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
33
|
+
BrawlingSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
34
|
+
CauldronEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
35
|
+
CeremonialItemSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
36
|
+
ChronicleEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
37
|
+
CombatSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
38
|
+
CombatStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
39
|
+
CommandSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
40
|
+
DaggerRitual: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
41
|
+
FamiliarSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
42
|
+
FatePointSexSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
43
|
+
FatePointSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
44
|
+
FoolsHatEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
45
|
+
GeneralSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
46
|
+
InstrumentEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
47
|
+
KarmaSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
48
|
+
Krallenkettenzauber: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
49
|
+
LiturgicalStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
50
|
+
LycantropicGift: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
51
|
+
MagicalSign: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
52
|
+
MagicalSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
53
|
+
MagicalTradition: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
54
|
+
MagicStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
55
|
+
OrbEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
56
|
+
PactGift: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
57
|
+
ProtectiveWardingCircleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
58
|
+
RingEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
59
|
+
Sermon: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
60
|
+
SexSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
61
|
+
SickleRitual: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
62
|
+
SikaryanDrainSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
63
|
+
SkillStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
64
|
+
SpellSwordEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
65
|
+
StaffEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
66
|
+
ToyEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
67
|
+
Trinkhornzauber: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
68
|
+
VampiricGift: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
69
|
+
Vision: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
70
|
+
WandEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
71
|
+
WeaponEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
72
|
+
}, []>>, true>;
|
|
73
|
+
active: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"AdventurePointsSingleValue", Integer, []>>, true>;
|
|
74
|
+
inactive: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"AdventurePointsSingleValue", Integer, []>>, true>;
|
|
75
|
+
}>, []>>>;
|
|
76
|
+
DependingOnActiveInstances: EnumCase<IncludeIdentifier<[], Enum<"AdventurePointsDependingOnActiveInstances", {
|
|
77
|
+
Threshold: EnumCase<IncludeIdentifier<[], TypeAlias<"AdventurePointsDependingOnActiveInstancesThreshold", Object<{
|
|
78
|
+
normal: import("tsondb/schema/def").MemberDecl<Integer, true>;
|
|
79
|
+
threshold: import("tsondb/schema/def").MemberDecl<Integer, true>;
|
|
80
|
+
alternative: import("tsondb/schema/def").MemberDecl<Integer, true>;
|
|
81
|
+
}>, []>>>;
|
|
82
|
+
Expression: EnumCase<IncludeIdentifier<[], TypeAlias<"AdventurePointsDependingOnActiveInstancesExpression", IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], MathOperation>, []>>>;
|
|
83
|
+
}, []>>>;
|
|
84
|
+
Indefinite: EnumCase<null>;
|
|
85
|
+
}, []>>, true>;
|
|
86
|
+
export declare const ap_value_l10n: import("tsondb/schema/def").MemberDecl<String, false>;
|
|
87
|
+
export declare const ap_value_append: import("tsondb/schema/def").MemberDecl<String, false>;
|
|
88
|
+
export declare const FixedAdventurePointsValue: TypeAlias<"FixedAdventurePointsValue", IncludeIdentifier<[], TypeAlias<"AdventurePointsSingleValue", Integer, []>>, []>;
|
|
89
|
+
export declare const AdventurePointsDependingOnActive: TypeAlias<"AdventurePointsDependingOnActive", Object<{
|
|
90
|
+
id: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"ActivatableIdentifier", {
|
|
91
|
+
Advantage: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
92
|
+
Disadvantage: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
93
|
+
AdvancedCombatSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
94
|
+
AdvancedKarmaSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
95
|
+
AdvancedMagicalSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
96
|
+
AdvancedSkillSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
97
|
+
AncestorGlyph: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
98
|
+
ArcaneOrbEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
99
|
+
AttireEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
100
|
+
BlessedTradition: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
101
|
+
BowlEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
102
|
+
BrawlingSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
103
|
+
CauldronEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
104
|
+
CeremonialItemSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
105
|
+
ChronicleEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
106
|
+
CombatSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
107
|
+
CombatStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
108
|
+
CommandSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
109
|
+
DaggerRitual: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
110
|
+
FamiliarSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
111
|
+
FatePointSexSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
112
|
+
FatePointSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
113
|
+
FoolsHatEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
114
|
+
GeneralSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
115
|
+
InstrumentEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
116
|
+
KarmaSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
117
|
+
Krallenkettenzauber: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
118
|
+
LiturgicalStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
119
|
+
LycantropicGift: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
120
|
+
MagicalSign: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
121
|
+
MagicalSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
122
|
+
MagicalTradition: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
123
|
+
MagicStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
124
|
+
OrbEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
125
|
+
PactGift: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
126
|
+
ProtectiveWardingCircleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
127
|
+
RingEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
128
|
+
Sermon: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
129
|
+
SexSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
130
|
+
SickleRitual: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
131
|
+
SikaryanDrainSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
132
|
+
SkillStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
133
|
+
SpellSwordEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
134
|
+
StaffEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
135
|
+
ToyEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
136
|
+
Trinkhornzauber: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
137
|
+
VampiricGift: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
138
|
+
Vision: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
139
|
+
WandEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
140
|
+
WeaponEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
141
|
+
}, []>>, true>;
|
|
142
|
+
active: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"AdventurePointsSingleValue", Integer, []>>, true>;
|
|
143
|
+
inactive: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"AdventurePointsSingleValue", Integer, []>>, true>;
|
|
144
|
+
}>, []>;
|
|
145
|
+
export declare const AdventurePointsDependingOnActiveInstances: Enum<"AdventurePointsDependingOnActiveInstances", {
|
|
146
|
+
Threshold: EnumCase<IncludeIdentifier<[], TypeAlias<"AdventurePointsDependingOnActiveInstancesThreshold", Object<{
|
|
147
|
+
normal: import("tsondb/schema/def").MemberDecl<Integer, true>;
|
|
148
|
+
threshold: import("tsondb/schema/def").MemberDecl<Integer, true>;
|
|
149
|
+
alternative: import("tsondb/schema/def").MemberDecl<Integer, true>;
|
|
150
|
+
}>, []>>>;
|
|
151
|
+
Expression: EnumCase<IncludeIdentifier<[], TypeAlias<"AdventurePointsDependingOnActiveInstancesExpression", IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], MathOperation>, []>>>;
|
|
152
|
+
}, []>;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { ArrayType as Array, EnumDecl as Enum, EnumCaseDecl as EnumCase, GenIncludeIdentifierType as GenIncludeIdentifier, IncludeIdentifier, IntegerType as Integer, ObjectType as Object, Optional, Required, String, TypeAlias, } from "tsondb/schema/def";
|
|
2
|
+
import { ActivatableIdentifier } from "./_IdentifierGroup.js";
|
|
3
|
+
import { MathOperation } from "./_MathExpression.js";
|
|
4
|
+
import { BySizeCategory } from "./_SizeCategory.js";
|
|
5
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
6
|
+
const AdventurePointsValue = Enum(import.meta.url, {
|
|
7
|
+
name: "AdventurePointsValue",
|
|
8
|
+
values: () => ({
|
|
9
|
+
Fixed: EnumCase({ type: IncludeIdentifier(FixedAdventurePointsValue) }),
|
|
10
|
+
ByLevel: EnumCase({ type: IncludeIdentifier(AdventurePointsValueByLevel) }),
|
|
11
|
+
DerivedFromSelection: EnumCase({
|
|
12
|
+
type: IncludeIdentifier(AdventurePointsDerivedFromSelection),
|
|
13
|
+
}),
|
|
14
|
+
DependingOnActive: EnumCase({
|
|
15
|
+
type: IncludeIdentifier(AdventurePointsDependingOnActive),
|
|
16
|
+
}),
|
|
17
|
+
DependingOnActiveInstances: EnumCase({
|
|
18
|
+
type: IncludeIdentifier(AdventurePointsDependingOnActiveInstances),
|
|
19
|
+
}),
|
|
20
|
+
Indefinite: EnumCase({ type: null }),
|
|
21
|
+
}),
|
|
22
|
+
});
|
|
23
|
+
export const ap_value = Required({
|
|
24
|
+
comment: "The adventure points value.",
|
|
25
|
+
type: IncludeIdentifier(AdventurePointsValue),
|
|
26
|
+
});
|
|
27
|
+
export const ap_value_l10n = Optional({
|
|
28
|
+
comment: "The adventure points value.",
|
|
29
|
+
isDeprecated: true,
|
|
30
|
+
type: String({ minLength: 1 }),
|
|
31
|
+
});
|
|
32
|
+
export const ap_value_append = Optional({
|
|
33
|
+
comment: "The string to append to the generated AP value text.",
|
|
34
|
+
isDeprecated: true,
|
|
35
|
+
type: String({ minLength: 1 }),
|
|
36
|
+
});
|
|
37
|
+
export const FixedAdventurePointsValue = TypeAlias(import.meta.url, {
|
|
38
|
+
name: "FixedAdventurePointsValue",
|
|
39
|
+
comment: "A fixed adventure points value. If the entry has levels, this is the cost per level as well.",
|
|
40
|
+
type: () => IncludeIdentifier(AdventurePointsSingleValue),
|
|
41
|
+
});
|
|
42
|
+
const AdventurePointsValueByLevel = TypeAlias(import.meta.url, {
|
|
43
|
+
name: "AdventurePointsValueByLevel",
|
|
44
|
+
comment: "An entry with levels may have different costs for each level.",
|
|
45
|
+
type: () => Object({
|
|
46
|
+
list: Required({
|
|
47
|
+
comment: "The list of adventure point values, where the position in the list corresponds to the level (i.e. the first value is for level I, the second value is for level II, and so on). The length of the list must match the amount of levels the special ability has.",
|
|
48
|
+
type: Array(IncludeIdentifier(AdventurePointsSingleValue), { minItems: 2 }),
|
|
49
|
+
}),
|
|
50
|
+
additionalBySizeCategory: Optional({
|
|
51
|
+
comment: "Values may be added to each level based on the size category of the character. Negative values mean that the AP value is lowered.",
|
|
52
|
+
type: GenIncludeIdentifier(BySizeCategory, [Integer()]),
|
|
53
|
+
}),
|
|
54
|
+
}),
|
|
55
|
+
});
|
|
56
|
+
const AdventurePointsDerivedFromSelection = TypeAlias(import.meta.url, {
|
|
57
|
+
name: "AdventurePointsDerivedFromSelection",
|
|
58
|
+
comment: "The adventure points value is derived from the selection of the special ability. Its display value may be able to be derived from the given information for the select options. If that is not the case or the generated text would not match the original one, a replacement text can be provided.",
|
|
59
|
+
type: () => Object({
|
|
60
|
+
translations: NestedTranslationMap(Optional, "AdventurePointsDerivedFromSelection", Object({
|
|
61
|
+
replacement: Optional({
|
|
62
|
+
comment: "A replacement for the generated text if it would not match the original one.",
|
|
63
|
+
type: String({ minLength: 1, isMarkdown: true }),
|
|
64
|
+
}),
|
|
65
|
+
}, { minProperties: 1 })),
|
|
66
|
+
}),
|
|
67
|
+
});
|
|
68
|
+
const AdventurePointsSingleValue = TypeAlias(import.meta.url, {
|
|
69
|
+
name: "AdventurePointsSingleValue",
|
|
70
|
+
comment: "A single adventure points value.",
|
|
71
|
+
type: () => Integer({ minimum: 0 }),
|
|
72
|
+
});
|
|
73
|
+
export const AdventurePointsDependingOnActive = TypeAlias(import.meta.url, {
|
|
74
|
+
name: "AdventurePointsDependingOnActive",
|
|
75
|
+
comment: "The adventure points cost depends on if an instance of an entry is active.",
|
|
76
|
+
type: () => Object({
|
|
77
|
+
id: Required({
|
|
78
|
+
comment: "The identifier of the entry to that decides which AP value to pick.",
|
|
79
|
+
type: IncludeIdentifier(ActivatableIdentifier),
|
|
80
|
+
}),
|
|
81
|
+
active: Required({
|
|
82
|
+
comment: "The adventure points value if an instance of the referenced entry is active.",
|
|
83
|
+
type: IncludeIdentifier(AdventurePointsSingleValue),
|
|
84
|
+
}),
|
|
85
|
+
inactive: Required({
|
|
86
|
+
comment: "The adventure points value if no instance of the referenced entry is active.",
|
|
87
|
+
type: IncludeIdentifier(AdventurePointsSingleValue),
|
|
88
|
+
}),
|
|
89
|
+
}),
|
|
90
|
+
});
|
|
91
|
+
export const AdventurePointsDependingOnActiveInstances = Enum(import.meta.url, {
|
|
92
|
+
name: "AdventurePointsDependingOnActiveInstances",
|
|
93
|
+
comment: "The adventure points cost depends on how many instances of the entry are already active.",
|
|
94
|
+
values: () => ({
|
|
95
|
+
Threshold: EnumCase({
|
|
96
|
+
type: IncludeIdentifier(AdventurePointsDependingOnActiveInstancesThreshold),
|
|
97
|
+
}),
|
|
98
|
+
Expression: EnumCase({
|
|
99
|
+
type: IncludeIdentifier(AdventurePointsDependingOnActiveInstancesExpression),
|
|
100
|
+
}),
|
|
101
|
+
}),
|
|
102
|
+
});
|
|
103
|
+
const AdventurePointsDependingOnActiveInstancesThreshold = TypeAlias(import.meta.url, {
|
|
104
|
+
name: "AdventurePointsDependingOnActiveInstancesThreshold",
|
|
105
|
+
comment: "The adventure points cost depends on how many instances of the entry are already active.",
|
|
106
|
+
type: () => Object({
|
|
107
|
+
normal: Required({
|
|
108
|
+
comment: "The normal adventure points value.",
|
|
109
|
+
type: Integer({ minimum: 0 }),
|
|
110
|
+
}),
|
|
111
|
+
threshold: Required({
|
|
112
|
+
comment: "The number of active instances **after** which the alternative cost applies.",
|
|
113
|
+
type: Integer({ minimum: 1 }),
|
|
114
|
+
}),
|
|
115
|
+
alternative: Required({
|
|
116
|
+
comment: "The alternative adventure points value.",
|
|
117
|
+
type: Integer({ minimum: 0 }),
|
|
118
|
+
}),
|
|
119
|
+
}),
|
|
120
|
+
});
|
|
121
|
+
const AdventurePointsDependingOnActiveInstancesExpression = TypeAlias(import.meta.url, {
|
|
122
|
+
name: "AdventurePointsDependingOnActiveInstancesExpression",
|
|
123
|
+
comment: "The adventure points cost depends on how many instances of the entry are already active.",
|
|
124
|
+
type: () => GenIncludeIdentifier(MathOperation, [
|
|
125
|
+
IncludeIdentifier(AdventurePointsDependingOnActiveInstancesExpressionValue),
|
|
126
|
+
]),
|
|
127
|
+
});
|
|
128
|
+
const AdventurePointsDependingOnActiveInstancesExpressionValue = Enum(import.meta.url, {
|
|
129
|
+
name: "AdventurePointsDependingOnActiveInstancesExpressionValue",
|
|
130
|
+
comment: `The type of value allowed in the expression to calculate the AP value.`,
|
|
131
|
+
values: () => ({
|
|
132
|
+
Constant: EnumCase({
|
|
133
|
+
comment: "A constant integer value.",
|
|
134
|
+
type: Integer(),
|
|
135
|
+
}),
|
|
136
|
+
Active: EnumCase({
|
|
137
|
+
comment: "The number of active instances.",
|
|
138
|
+
type: null,
|
|
139
|
+
}),
|
|
140
|
+
}),
|
|
141
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Array, Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, TypeAlias } from "tsondb/schema/def";
|
|
2
|
+
export declare const automatic_entries: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], TypeAlias<"AutomaticEntry", Object<{
|
|
3
|
+
action: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"AutomaticEntryAction", {
|
|
4
|
+
Add: EnumCase<null>;
|
|
5
|
+
Remove: EnumCase<null>;
|
|
6
|
+
}, []>>, true>;
|
|
7
|
+
apply_ap_value: import("tsondb/schema/def").MemberDecl<Boolean, true>;
|
|
8
|
+
target: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"AutomaticEntryTarget", {
|
|
9
|
+
Selection: EnumCase<IncludeIdentifier<[], TypeAlias<"AutomaticEntryTargetSelection", Object<{
|
|
10
|
+
list: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"AutomaticEntryTargetSelectionList", {
|
|
11
|
+
MagicalTraditions: EnumCase<null>;
|
|
12
|
+
MagicalDilettanteTraditions: EnumCase<null>;
|
|
13
|
+
}, []>>, true>;
|
|
14
|
+
}>, []>>>;
|
|
15
|
+
Fixed: EnumCase<IncludeIdentifier<[], TypeAlias<"FixedAutomaticEntryTarget", Object<{
|
|
16
|
+
id: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"ActivatableIdentifier", {
|
|
17
|
+
Advantage: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
18
|
+
Disadvantage: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
19
|
+
AdvancedCombatSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
20
|
+
AdvancedKarmaSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
21
|
+
AdvancedMagicalSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
22
|
+
AdvancedSkillSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
23
|
+
AncestorGlyph: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
24
|
+
ArcaneOrbEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
25
|
+
AttireEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
26
|
+
BlessedTradition: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
27
|
+
BowlEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
28
|
+
BrawlingSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
29
|
+
CauldronEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
30
|
+
CeremonialItemSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
31
|
+
ChronicleEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
32
|
+
CombatSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
33
|
+
CombatStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
34
|
+
CommandSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
35
|
+
DaggerRitual: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
36
|
+
FamiliarSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
37
|
+
FatePointSexSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
38
|
+
FatePointSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
39
|
+
FoolsHatEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
40
|
+
GeneralSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
41
|
+
InstrumentEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
42
|
+
KarmaSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
43
|
+
Krallenkettenzauber: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
44
|
+
LiturgicalStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
45
|
+
LycantropicGift: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
46
|
+
MagicalSign: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
47
|
+
MagicalSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
48
|
+
MagicalTradition: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
49
|
+
MagicStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
50
|
+
OrbEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
51
|
+
PactGift: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
52
|
+
ProtectiveWardingCircleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
53
|
+
RingEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
54
|
+
Sermon: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
55
|
+
SexSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
56
|
+
SickleRitual: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
57
|
+
SikaryanDrainSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
58
|
+
SkillStyleSpecialAbility: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
59
|
+
SpellSwordEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
60
|
+
StaffEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
61
|
+
ToyEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
62
|
+
Trinkhornzauber: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
63
|
+
VampiricGift: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
64
|
+
Vision: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
65
|
+
WandEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
66
|
+
WeaponEnchantment: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
|
|
67
|
+
}, []>>, true>;
|
|
68
|
+
level: import("tsondb/schema/def").MemberDecl<Integer, false>;
|
|
69
|
+
}>, []>>>;
|
|
70
|
+
}, []>>, true>;
|
|
71
|
+
}>, []>>>, false>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Array, Boolean, Enum, EnumCase, IncludeIdentifier, Integer, Object, Optional, Required, TypeAlias, } from "tsondb/schema/def";
|
|
2
|
+
import { ActivatableIdentifier } from "./_IdentifierGroup.js";
|
|
3
|
+
const AutomaticEntry = TypeAlias(import.meta.url, {
|
|
4
|
+
name: "AutomaticEntry",
|
|
5
|
+
type: () => Object({
|
|
6
|
+
action: Required({
|
|
7
|
+
comment: "What type of action is applied to the target entry?",
|
|
8
|
+
type: IncludeIdentifier(AutomaticEntryAction),
|
|
9
|
+
}),
|
|
10
|
+
apply_ap_value: Required({
|
|
11
|
+
comment: "If an entry is added or removed, does is cost or grant adventure points or is it free of charge?",
|
|
12
|
+
type: Boolean(),
|
|
13
|
+
}),
|
|
14
|
+
target: Required({
|
|
15
|
+
comment: "The entry that is to be added or removed. It can be a fixed entry or a selection where the player must choose one entry.",
|
|
16
|
+
type: IncludeIdentifier(AutomaticEntryTarget),
|
|
17
|
+
}),
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
export const automatic_entries = Optional({
|
|
21
|
+
comment: "This entry has a direct influence on the existence of other entries. It may add or remove entries.",
|
|
22
|
+
type: Array(IncludeIdentifier(AutomaticEntry), { minItems: 1 }),
|
|
23
|
+
});
|
|
24
|
+
const AutomaticEntryAction = Enum(import.meta.url, {
|
|
25
|
+
name: "AutomaticEntryAction",
|
|
26
|
+
values: () => ({
|
|
27
|
+
Add: EnumCase({ type: null }),
|
|
28
|
+
Remove: EnumCase({ type: null }),
|
|
29
|
+
}),
|
|
30
|
+
});
|
|
31
|
+
const AutomaticEntryTarget = Enum(import.meta.url, {
|
|
32
|
+
name: "AutomaticEntryTarget",
|
|
33
|
+
values: () => ({
|
|
34
|
+
Selection: EnumCase({ type: IncludeIdentifier(AutomaticEntryTargetSelection) }),
|
|
35
|
+
Fixed: EnumCase({ type: IncludeIdentifier(FixedAutomaticEntryTarget) }),
|
|
36
|
+
}),
|
|
37
|
+
});
|
|
38
|
+
const AutomaticEntryTargetSelection = TypeAlias(import.meta.url, {
|
|
39
|
+
name: "AutomaticEntryTargetSelection",
|
|
40
|
+
type: () => Object({
|
|
41
|
+
list: Required({
|
|
42
|
+
type: IncludeIdentifier(AutomaticEntryTargetSelectionList),
|
|
43
|
+
}),
|
|
44
|
+
}),
|
|
45
|
+
});
|
|
46
|
+
const AutomaticEntryTargetSelectionList = Enum(import.meta.url, {
|
|
47
|
+
name: "AutomaticEntryTargetSelectionList",
|
|
48
|
+
values: () => ({
|
|
49
|
+
MagicalTraditions: EnumCase({ type: null }),
|
|
50
|
+
MagicalDilettanteTraditions: EnumCase({ type: null }),
|
|
51
|
+
}),
|
|
52
|
+
});
|
|
53
|
+
const FixedAutomaticEntryTarget = TypeAlias(import.meta.url, {
|
|
54
|
+
name: "FixedAutomaticEntryTarget",
|
|
55
|
+
type: () => Object({
|
|
56
|
+
id: Required({
|
|
57
|
+
type: IncludeIdentifier(ActivatableIdentifier),
|
|
58
|
+
}),
|
|
59
|
+
level: Optional({
|
|
60
|
+
comment: "The level of the target entry to be added or removed. If this is omitted for a multi-level entry, level 1 is assumed.",
|
|
61
|
+
type: Integer({ minimum: 1 }),
|
|
62
|
+
}),
|
|
63
|
+
}),
|
|
64
|
+
});
|