optolith-database-schema 0.8.0 → 0.9.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.
Files changed (41) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +2 -0
  4. package/lib/types/_Activatable.d.ts +2 -1
  5. package/lib/types/_ActivatableSkillCastingTime.d.ts +9 -1
  6. package/lib/types/_ActivatableSkillCost.d.ts +5 -0
  7. package/lib/types/_Identifier.d.ts +9 -0
  8. package/lib/types/_IdentifierGroup.d.ts +3 -3
  9. package/lib/types/_SkillCheck.d.ts +3 -1
  10. package/lib/types/_SkillCheck.js +2 -0
  11. package/lib/types/magicalActions/MagicalRune.d.ts +82 -16
  12. package/lib/types/specialAbility/MagicalSign.d.ts +38 -0
  13. package/lib/types/specialAbility/MagicalSign.js +5 -0
  14. package/lib/types/specialAbility/MagicalTradition.d.ts +2 -2
  15. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +6 -0
  16. package/lib/types/specialAbility/sub/Language.d.ts +1 -1
  17. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +1 -1
  18. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +1 -1
  19. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +1 -1
  20. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +0 -5
  21. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +2 -1
  22. package/package.json +1 -1
  23. package/schema/_ActivatableSkillCastingTime.schema.json +6 -6
  24. package/schema/_ActivatableSkillCost.schema.json +4 -0
  25. package/schema/_Identifier.schema.json +18 -0
  26. package/schema/_IdentifierGroup.schema.json +9 -0
  27. package/schema/_SkillCheck.schema.json +3 -1
  28. package/schema/magicalActions/MagicalRune.schema.json +213 -21
  29. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +42 -27
  30. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +42 -27
  31. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +42 -27
  32. package/schema/specialAbility/MagicalSign.schema.json +72 -0
  33. package/schema/specialAbility/MagicalTradition.schema.json +0 -2
  34. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +6 -0
  35. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +42 -27
  36. package/schema/specialAbility/sub/Language.schema.json +0 -1
  37. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -1
  38. package/schema/traditionArtifacts/StaffEnchantment.schema.json +0 -1
  39. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -1
  40. package/schema/traditionArtifacts/WandEnchantment.schema.json +1 -9
  41. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +8 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,45 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [0.9.0](https://github.com/elyukai/optolith-database-schema/compare/v0.8.1...v0.9.0) (2023-01-14)
6
+
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * make protective/warding circle cost language-independent
11
+ * change magical rune options to explicit options
12
+
13
+ ### Features
14
+
15
+ * add trinkhornzauber identifier to applying identifier groups ([f6671e3](https://github.com/elyukai/optolith-database-schema/commit/f6671e31bd94a8a6600e17dc448e619be2e30d74))
16
+ * change magical rune options to explicit options ([a8c45d1](https://github.com/elyukai/optolith-database-schema/commit/a8c45d148d8ad5060b3d60536b11c39673fb01ab))
17
+ * magical signs ([4517d64](https://github.com/elyukai/optolith-database-schema/commit/4517d64bdafd1800074bac684053abbdc104518e))
18
+ * make protective/warding circle cost language-independent ([27640a6](https://github.com/elyukai/optolith-database-schema/commit/27640a695050597ba910331ab1e35094a0f827f2))
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * advanced special ability OneOf option should allow and required multiple options ([0e5bbd4](https://github.com/elyukai/optolith-database-schema/commit/0e5bbd485da7843f810e092883c03c12dced1e57))
24
+ * make cost optional for all tradition arfifact enchantments ([6025485](https://github.com/elyukai/optolith-database-schema/commit/60254855e2e236f328d1f1480b009f322b0881d9))
25
+ * some tradition properties have to be optional ([687665d](https://github.com/elyukai/optolith-database-schema/commit/687665d0a0699e8ee25d2f378cb3b041384173bb))
26
+ * translation was not embedded in locale map ([a395778](https://github.com/elyukai/optolith-database-schema/commit/a39577830351b36595a06c247234fac3a3d499b1))
27
+ * wand enchantments dont use volume ([1a3f34a](https://github.com/elyukai/optolith-database-schema/commit/1a3f34a3880fb19ab6fbe7cc7a481e2deb7bab9a))
28
+
29
+ ### [0.8.1](https://github.com/elyukai/optolith-database-schema/compare/v0.8.0...v0.8.1) (2023-01-08)
30
+
31
+
32
+ ### Features
33
+
34
+ * allow minimum total for countable cost for sustained skills ([448978f](https://github.com/elyukai/optolith-database-schema/commit/448978f3815e721bb69e5315b61f5d5b0e3854e2))
35
+ * allow only casting time during lovemaking to be present ([9be75fe](https://github.com/elyukai/optolith-database-schema/commit/9be75fe9372c9ef40bca914d2659b3b026f543d9))
36
+ * allow to restrict advanced special ability to aspect option ([21289fe](https://github.com/elyukai/optolith-database-schema/commit/21289fe81d3b81648eb65e8d459a3d6f71d984ab))
37
+ * use summoning and creation difficulty as possible skill check penalties ([5756ecd](https://github.com/elyukai/optolith-database-schema/commit/5756ecd33fe1c32f28b31d0afa88e1f45658a0be))
38
+
39
+
40
+ ### Bug Fixes
41
+
42
+ * optional language specializations ([2ead215](https://github.com/elyukai/optolith-database-schema/commit/2ead215fc1bcb870ecec8a7f88a48bc7d09136b3))
43
+
5
44
  ## [0.8.0](https://github.com/elyukai/optolith-database-schema/compare/v0.7.0...v0.8.0) (2023-01-03)
6
45
 
7
46
 
package/lib/config.d.ts CHANGED
@@ -109,6 +109,7 @@ import * as GeneralSpecialAbility from "./types/specialAbility/GeneralSpecialAbi
109
109
  import * as KarmaSpecialAbility from "./types/specialAbility/KarmaSpecialAbility.js";
110
110
  import * as LiturgicalStyleSpecialAbility from "./types/specialAbility/LiturgicalStyleSpecialAbility.js";
111
111
  import * as LycantropicGift from "./types/specialAbility/LycantropicGift.js";
112
+ import * as MagicalSign from "./types/specialAbility/MagicalSign.js";
112
113
  import * as MagicalSpecialAbility from "./types/specialAbility/MagicalSpecialAbility.js";
113
114
  import * as MagicalTradition from "./types/specialAbility/MagicalTradition.js";
114
115
  import * as MagicStyleSpecialAbility from "./types/specialAbility/MagicStyleSpecialAbility.js";
@@ -245,6 +246,7 @@ export declare type TypeMap = {
245
246
  magicalDances: MagicalDance.MagicalDance;
246
247
  magicalMelodies: MagicalMelody.MagicalMelody;
247
248
  magicalRunes: MagicalRune.MagicalRune;
249
+ magicalSigns: MagicalSign.MagicalSign;
248
250
  magicalSpecialAbilities: MagicalSpecialAbility.MagicalSpecialAbility;
249
251
  magicalTraditions: MagicalTradition.MagicalTradition;
250
252
  magicStyleSpecialAbilities: MagicStyleSpecialAbility.MagicStyleSpecialAbility;
package/lib/config.js CHANGED
@@ -109,6 +109,7 @@ import * as GeneralSpecialAbility from "./types/specialAbility/GeneralSpecialAbi
109
109
  import * as KarmaSpecialAbility from "./types/specialAbility/KarmaSpecialAbility.js";
110
110
  import * as LiturgicalStyleSpecialAbility from "./types/specialAbility/LiturgicalStyleSpecialAbility.js";
111
111
  import * as LycantropicGift from "./types/specialAbility/LycantropicGift.js";
112
+ import * as MagicalSign from "./types/specialAbility/MagicalSign.js";
112
113
  import * as MagicalSpecialAbility from "./types/specialAbility/MagicalSpecialAbility.js";
113
114
  import * as MagicalTradition from "./types/specialAbility/MagicalTradition.js";
114
115
  import * as MagicStyleSpecialAbility from "./types/specialAbility/MagicStyleSpecialAbility.js";
@@ -244,6 +245,7 @@ export const typeValidatorMap = {
244
245
  magicalDances: MagicalDance.validateSchema,
245
246
  magicalMelodies: MagicalMelody.validateSchema,
246
247
  magicalRunes: MagicalRune.validateSchema,
248
+ magicalSigns: MagicalSign.validateSchema,
247
249
  magicalSpecialAbilities: MagicalSpecialAbility.validateSchema,
248
250
  magicalTraditions: MagicalTradition.validateSchema,
249
251
  magicStyleSpecialAbilities: MagicStyleSpecialAbility.validateSchema,
@@ -1044,8 +1044,9 @@ export declare type RestrictAdvancedSpecialAbilityOptions<Identifier> = {
1044
1044
  export declare type OneOfAdvancedSpecialAbilityOptions<Identifier> = {
1045
1045
  /**
1046
1046
  * The possible advanced special abilities.
1047
+ * @minItems 2
1047
1048
  */
1048
- options: AdvancedSpecialAbilityReference<Identifier>;
1049
+ options: AdvancedSpecialAbilityReference<Identifier>[];
1049
1050
  /**
1050
1051
  * Do have to choose the advanced special ability when buying the style
1051
1052
  * special ability? Otherwise the decision can be made later.
@@ -15,11 +15,19 @@ export declare type ModifiableCastingTime = {
15
15
  */
16
16
  initial_modification_level: number;
17
17
  };
18
+ /**
19
+ * The casting time may have two different values: One for use in “normal” time,
20
+ * i. e. actions, combat rounds and others, and one for use during lovemaking,
21
+ * which is a rule set from Aventurian Intimacy.
22
+ *
23
+ * There must always be at least one casting time value.
24
+ * @minProperties 1
25
+ */
18
26
  export declare type CastingTimeIncludingLovemaking<NonModifiable extends Object> = {
19
27
  /**
20
28
  * The default casting time definition.
21
29
  */
22
- default: CastingTime<NonModifiable>;
30
+ default?: CastingTime<NonModifiable>;
23
31
  /**
24
32
  * The casting time during lovemaking. In Aventurian Intimacy, you may only
25
33
  * use an activatable skill during lovemaking if it has a casting time used
@@ -237,6 +237,11 @@ export declare type NonModifiableSustainedCost = {
237
237
  interval: DurationUnitValue;
238
238
  };
239
239
  export declare type NonModifiableSustainedCostPerCountable = {
240
+ /**
241
+ * If defined, the minimum total AE that have to be spent casting the
242
+ * skill.
243
+ */
244
+ minimum_total?: number;
240
245
  /**
241
246
  * All translations for the entry, identified by IETF language tag (BCP47).
242
247
  */
@@ -529,6 +529,15 @@ export declare type KrallenkettenzauberIdentifier = {
529
529
  */
530
530
  krallenkettenzauber: number;
531
531
  };
532
+ export declare type TrinkhornzauberIdentifier = {
533
+ tag: "Trinkhornzauber";
534
+ /**
535
+ * The Trinkhornzauber’s identifier.
536
+ * @integer
537
+ * @minimum 1
538
+ */
539
+ trinkhornzauber: number;
540
+ };
532
541
  export declare type LanguageIdentifier = {
533
542
  tag: "Language";
534
543
  /**
@@ -1,11 +1,11 @@
1
1
  import * as Identifier from "./_Identifier.js";
2
- export declare type ActivatableIdentifier = Identifier.AdvantageIdentifier | Identifier.DisadvantageIdentifier | Identifier.GeneralSpecialAbilityIdentifier | Identifier.FatePointSpecialAbilityIdentifier | Identifier.CombatSpecialAbilityIdentifier | Identifier.MagicalSpecialAbilityIdentifier | Identifier.StaffEnchantmentIdentifier | Identifier.FamiliarSpecialAbilityIdentifier | Identifier.KarmaSpecialAbilityIdentifier | Identifier.ProtectiveWardingCircleSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier | Identifier.MagicStyleSpecialAbilityIdentifier | Identifier.AdvancedMagicalSpecialAbilityIdentifier | Identifier.SpellSwordEnchantmentIdentifier | Identifier.DaggerRitualIdentifier | Identifier.InstrumentEnchantmentIdentifier | Identifier.AttireEnchantmentIdentifier | Identifier.OrbEnchantmentIdentifier | Identifier.WandEnchantmentIdentifier | Identifier.BrawlingSpecialAbilityIdentifier | Identifier.AncestorGlyphIdentifier | Identifier.CeremonialItemSpecialAbilityIdentifier | Identifier.SermonIdentifier | Identifier.LiturgicalStyleSpecialAbilityIdentifier | Identifier.AdvancedKarmaSpecialAbilityIdentifier | Identifier.VisionIdentifier | Identifier.MagicalTraditionIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.PactGiftIdentifier | Identifier.SikaryanDrainSpecialAbilityIdentifier | Identifier.LycantropicGiftIdentifier | Identifier.SkillStyleSpecialAbilityIdentifier | Identifier.AdvancedSkillSpecialAbilityIdentifier | Identifier.ArcaneOrbEnchantmentIdentifier | Identifier.CauldronEnchantmentIdentifier | Identifier.FoolsHatEnchantmentIdentifier | Identifier.ToyEnchantmentIdentifier | Identifier.BowlEnchantmentIdentifier | Identifier.FatePointSexSpecialAbilityIdentifier | Identifier.SexSpecialAbilityIdentifier | Identifier.WeaponEnchantmentIdentifier | Identifier.SickleRitualIdentifier | Identifier.RingEnchantmentIdentifier | Identifier.ChronicleEnchantmentIdentifier | Identifier.KrallenkettenzauberIdentifier;
3
- export declare type SpecialAbilityIdentifier = Identifier.GeneralSpecialAbilityIdentifier | Identifier.FatePointSpecialAbilityIdentifier | Identifier.CombatSpecialAbilityIdentifier | Identifier.MagicalSpecialAbilityIdentifier | Identifier.StaffEnchantmentIdentifier | Identifier.FamiliarSpecialAbilityIdentifier | Identifier.KarmaSpecialAbilityIdentifier | Identifier.ProtectiveWardingCircleSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier | Identifier.MagicStyleSpecialAbilityIdentifier | Identifier.AdvancedMagicalSpecialAbilityIdentifier | Identifier.SpellSwordEnchantmentIdentifier | Identifier.DaggerRitualIdentifier | Identifier.InstrumentEnchantmentIdentifier | Identifier.AttireEnchantmentIdentifier | Identifier.OrbEnchantmentIdentifier | Identifier.WandEnchantmentIdentifier | Identifier.BrawlingSpecialAbilityIdentifier | Identifier.AncestorGlyphIdentifier | Identifier.CeremonialItemSpecialAbilityIdentifier | Identifier.SermonIdentifier | Identifier.LiturgicalStyleSpecialAbilityIdentifier | Identifier.AdvancedKarmaSpecialAbilityIdentifier | Identifier.VisionIdentifier | Identifier.MagicalTraditionIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.PactGiftIdentifier | Identifier.SikaryanDrainSpecialAbilityIdentifier | Identifier.LycantropicGiftIdentifier | Identifier.SkillStyleSpecialAbilityIdentifier | Identifier.AdvancedSkillSpecialAbilityIdentifier | Identifier.ArcaneOrbEnchantmentIdentifier | Identifier.CauldronEnchantmentIdentifier | Identifier.FoolsHatEnchantmentIdentifier | Identifier.ToyEnchantmentIdentifier | Identifier.BowlEnchantmentIdentifier | Identifier.FatePointSexSpecialAbilityIdentifier | Identifier.SexSpecialAbilityIdentifier | Identifier.WeaponEnchantmentIdentifier | Identifier.SickleRitualIdentifier | Identifier.RingEnchantmentIdentifier | Identifier.ChronicleEnchantmentIdentifier | Identifier.KrallenkettenzauberIdentifier;
2
+ export declare type ActivatableIdentifier = Identifier.AdvantageIdentifier | Identifier.DisadvantageIdentifier | Identifier.GeneralSpecialAbilityIdentifier | Identifier.FatePointSpecialAbilityIdentifier | Identifier.CombatSpecialAbilityIdentifier | Identifier.MagicalSpecialAbilityIdentifier | Identifier.StaffEnchantmentIdentifier | Identifier.FamiliarSpecialAbilityIdentifier | Identifier.KarmaSpecialAbilityIdentifier | Identifier.ProtectiveWardingCircleSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier | Identifier.MagicStyleSpecialAbilityIdentifier | Identifier.AdvancedMagicalSpecialAbilityIdentifier | Identifier.SpellSwordEnchantmentIdentifier | Identifier.DaggerRitualIdentifier | Identifier.InstrumentEnchantmentIdentifier | Identifier.AttireEnchantmentIdentifier | Identifier.OrbEnchantmentIdentifier | Identifier.WandEnchantmentIdentifier | Identifier.BrawlingSpecialAbilityIdentifier | Identifier.AncestorGlyphIdentifier | Identifier.CeremonialItemSpecialAbilityIdentifier | Identifier.SermonIdentifier | Identifier.LiturgicalStyleSpecialAbilityIdentifier | Identifier.AdvancedKarmaSpecialAbilityIdentifier | Identifier.VisionIdentifier | Identifier.MagicalTraditionIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.PactGiftIdentifier | Identifier.SikaryanDrainSpecialAbilityIdentifier | Identifier.LycantropicGiftIdentifier | Identifier.SkillStyleSpecialAbilityIdentifier | Identifier.AdvancedSkillSpecialAbilityIdentifier | Identifier.ArcaneOrbEnchantmentIdentifier | Identifier.CauldronEnchantmentIdentifier | Identifier.FoolsHatEnchantmentIdentifier | Identifier.ToyEnchantmentIdentifier | Identifier.BowlEnchantmentIdentifier | Identifier.FatePointSexSpecialAbilityIdentifier | Identifier.SexSpecialAbilityIdentifier | Identifier.WeaponEnchantmentIdentifier | Identifier.SickleRitualIdentifier | Identifier.RingEnchantmentIdentifier | Identifier.ChronicleEnchantmentIdentifier | Identifier.KrallenkettenzauberIdentifier | Identifier.TrinkhornzauberIdentifier;
3
+ export declare type SpecialAbilityIdentifier = Identifier.GeneralSpecialAbilityIdentifier | Identifier.FatePointSpecialAbilityIdentifier | Identifier.CombatSpecialAbilityIdentifier | Identifier.MagicalSpecialAbilityIdentifier | Identifier.StaffEnchantmentIdentifier | Identifier.FamiliarSpecialAbilityIdentifier | Identifier.KarmaSpecialAbilityIdentifier | Identifier.ProtectiveWardingCircleSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier | Identifier.MagicStyleSpecialAbilityIdentifier | Identifier.AdvancedMagicalSpecialAbilityIdentifier | Identifier.SpellSwordEnchantmentIdentifier | Identifier.DaggerRitualIdentifier | Identifier.InstrumentEnchantmentIdentifier | Identifier.AttireEnchantmentIdentifier | Identifier.OrbEnchantmentIdentifier | Identifier.WandEnchantmentIdentifier | Identifier.BrawlingSpecialAbilityIdentifier | Identifier.AncestorGlyphIdentifier | Identifier.CeremonialItemSpecialAbilityIdentifier | Identifier.SermonIdentifier | Identifier.LiturgicalStyleSpecialAbilityIdentifier | Identifier.AdvancedKarmaSpecialAbilityIdentifier | Identifier.VisionIdentifier | Identifier.MagicalTraditionIdentifier | Identifier.BlessedTraditionIdentifier | Identifier.PactGiftIdentifier | Identifier.SikaryanDrainSpecialAbilityIdentifier | Identifier.LycantropicGiftIdentifier | Identifier.SkillStyleSpecialAbilityIdentifier | Identifier.AdvancedSkillSpecialAbilityIdentifier | Identifier.ArcaneOrbEnchantmentIdentifier | Identifier.CauldronEnchantmentIdentifier | Identifier.FoolsHatEnchantmentIdentifier | Identifier.ToyEnchantmentIdentifier | Identifier.BowlEnchantmentIdentifier | Identifier.FatePointSexSpecialAbilityIdentifier | Identifier.SexSpecialAbilityIdentifier | Identifier.WeaponEnchantmentIdentifier | Identifier.SickleRitualIdentifier | Identifier.RingEnchantmentIdentifier | Identifier.ChronicleEnchantmentIdentifier | Identifier.KrallenkettenzauberIdentifier | Identifier.TrinkhornzauberIdentifier;
4
4
  export declare type CombatRelatedSpecialAbilityIdentifier = Identifier.CombatSpecialAbilityIdentifier | Identifier.CombatStyleSpecialAbilityIdentifier | Identifier.AdvancedCombatSpecialAbilityIdentifier | Identifier.CommandSpecialAbilityIdentifier;
5
5
  export declare type TraditionIdentifier = Identifier.MagicalTraditionIdentifier | Identifier.BlessedTraditionIdentifier;
6
6
  export declare type RatedIdentifier = Identifier.AttributeIdentifier | Identifier.SkillIdentifier | Identifier.CloseCombatTechniqueIdentifier | Identifier.RangedCombatTechniqueIdentifier | Identifier.SpellIdentifier | Identifier.RitualIdentifier | Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier;
7
7
  export declare type SkillIdentifier = Identifier.SkillIdentifier | Identifier.SpellIdentifier | Identifier.RitualIdentifier | Identifier.LiturgicalChantIdentifier | Identifier.CeremonyIdentifier;
8
- export declare type AdvancedSpecialAbilityRestrictedOptionIdentifier = Identifier.GeneralIdentifier | Identifier.SkillIdentifier | Identifier.ElementIdentifier;
8
+ export declare type AdvancedSpecialAbilityRestrictedOptionIdentifier = Identifier.GeneralIdentifier | Identifier.SkillIdentifier | Identifier.ElementIdentifier | Identifier.AspectIdentifier;
9
9
  export declare type VolumePointsOptionReferenceIdentifier = Identifier.GeneralIdentifier | Identifier.AnimalShapeSizeIdentifier;
10
10
  export declare type CombatTechniqueIdentifier = Identifier.CloseCombatTechniqueIdentifier | Identifier.RangedCombatTechniqueIdentifier;
11
11
  export declare type ExtensionRuleIdentifier = Identifier.FocusRuleIdentifier | Identifier.OptionalRuleIdentifier;
@@ -16,5 +16,7 @@ export declare enum SkillCheckPenalty {
16
16
  Spirit = "Spirit",
17
17
  HalfOfSpirit = "HalfOfSpirit",
18
18
  Toughness = "Toughness",
19
- HigherOfSpiritAndToughness = "HigherOfSpiritAndToughness"
19
+ HigherOfSpiritAndToughness = "HigherOfSpiritAndToughness",
20
+ SummoningDifficulty = "SummoningDifficulty",
21
+ CreationDifficulty = "CreationDifficulty"
20
22
  }
@@ -8,4 +8,6 @@ export var SkillCheckPenalty;
8
8
  SkillCheckPenalty["HalfOfSpirit"] = "HalfOfSpirit";
9
9
  SkillCheckPenalty["Toughness"] = "Toughness";
10
10
  SkillCheckPenalty["HigherOfSpiritAndToughness"] = "HigherOfSpiritAndToughness";
11
+ SkillCheckPenalty["SummoningDifficulty"] = "SummoningDifficulty";
12
+ SkillCheckPenalty["CreationDifficulty"] = "CreationDifficulty";
11
13
  })(SkillCheckPenalty || (SkillCheckPenalty = {}));
@@ -5,7 +5,7 @@ import { Errata } from "../source/_Erratum.js";
5
5
  import { PublicationRefs } from "../source/_PublicationRef.js";
6
6
  import { CheckResultBasedDuration } from "../_ActivatableSkillDuration.js";
7
7
  import { Effect } from "../_ActivatableSkillEffect.js";
8
- import { CloseCombatTechniqueIdentifier } from "../_Identifier.js";
8
+ import { CombatTechniqueIdentifier } from "../_IdentifierGroup.js";
9
9
  import { ImprovementCost } from "../_ImprovementCost.js";
10
10
  import { LocaleMap } from "../_LocaleMap.js";
11
11
  import { NonEmptyString } from "../_NonEmptyString.js";
@@ -22,7 +22,13 @@ export declare type MagicalRune = {
22
22
  * @minimum 1
23
23
  */
24
24
  id: number;
25
- option?: MagicalRuneOption;
25
+ /**
26
+ * The options the magical rune has, if any.
27
+ *
28
+ * If there are multiple options, the magical rune may be activated for each
29
+ * option, that is, multiple times.
30
+ */
31
+ options?: MagicalRuneOption[];
26
32
  /**
27
33
  * Lists the linked three attributes used to make a skill check.
28
34
  */
@@ -42,7 +48,7 @@ export declare type MagicalRune = {
42
48
  /**
43
49
  * States which column is used to improve the skill.
44
50
  */
45
- improvement_cost: ImprovementCost;
51
+ improvement_cost: MagicalRuneImprovementCost;
46
52
  src: PublicationRefs;
47
53
  /**
48
54
  * All translations for the entry, identified by IETF language tag (BCP47).
@@ -58,10 +64,15 @@ export declare type MagicalRuneTranslation = {
58
64
  * on demand.
59
65
  */
60
66
  name: NonEmptyString;
67
+ /**
68
+ * The full name of the entry as stated in the sources. Only use when `name`
69
+ * needs to be different from full name for text generation purposes.
70
+ */
71
+ name_in_library?: NonEmptyString;
61
72
  /**
62
73
  * The native name of the magical rune.
63
74
  */
64
- native_name: NonEmptyString;
75
+ native_name?: NonEmptyString;
65
76
  /**
66
77
  * The effect description may be either a plain text or a text that is
67
78
  * divided by a list of effects for each quality level. It may also be a
@@ -104,31 +115,31 @@ export declare type MagicalRuneTranslation = {
104
115
  errata?: Errata;
105
116
  };
106
117
  export declare type MagicalRuneCheckPenalty = {
107
- tag: "CloseCombatTechnique";
108
- close_combat_technique: MagicalRuneCloseCombatTechniqueCheckPenalty;
118
+ tag: "CombatTechnique";
119
+ combat_technique: MagicalRuneCombatTechniqueCheckPenalty;
109
120
  };
110
- export declare type MagicalRuneCloseCombatTechniqueCheckPenalty = {
121
+ export declare type MagicalRuneCombatTechniqueCheckPenalty = {
111
122
  /**
112
- * A map from close combat techniques to their modifiers.
123
+ * A map from combat techniques to their modifiers.
113
124
  * @minItems 1
114
125
  */
115
- map: MagicalRuneCloseCombatTechniqueCheckPenaltyMapping[];
116
- rest: MagicalRuneCloseCombatTechniqueCheckPenaltyRest;
126
+ map: MagicalRuneCombatTechniqueCheckPenaltyMapping[];
127
+ rest: MagicalRuneCombatTechniqueCheckPenaltyRest;
117
128
  };
118
- export declare type MagicalRuneCloseCombatTechniqueCheckPenaltyMapping = {
129
+ export declare type MagicalRuneCombatTechniqueCheckPenaltyMapping = {
119
130
  /**
120
- * The close combat technique's identifier.
131
+ * The combat technique's identifier.
121
132
  */
122
- combat_technique_id: CloseCombatTechniqueIdentifier;
133
+ id: CombatTechniqueIdentifier;
123
134
  /**
124
- * The check modifier for the specified close combat technique.
135
+ * The check modifier for the specified combat technique.
125
136
  * @integer
126
137
  */
127
138
  modifier: number;
128
139
  };
129
- export declare type MagicalRuneCloseCombatTechniqueCheckPenaltyRest = {
140
+ export declare type MagicalRuneCombatTechniqueCheckPenaltyRest = {
130
141
  /**
131
- * The check modifier for close combat techniques not specified in `map`.
142
+ * The check modifier for combat techniques not specified in `map`.
132
143
  * @integer
133
144
  */
134
145
  modifier: number;
@@ -156,6 +167,16 @@ export declare type MagicalRuneCost = {
156
167
  } | {
157
168
  tag: "Disjunction";
158
169
  disjunction: MagicalRuneCostDisjunction;
170
+ } | {
171
+ tag: "DerivedFromOption";
172
+ derived_from_option: {};
173
+ };
174
+ export declare type MagicalRuneOptionCost = {
175
+ tag: "Single";
176
+ single: SingleMagicalRuneCost;
177
+ } | {
178
+ tag: "Disjunction";
179
+ disjunction: MagicalRuneCostDisjunction;
159
180
  };
160
181
  export declare type SingleMagicalRuneCost = {
161
182
  /**
@@ -209,12 +230,53 @@ export declare type MagicalRuneDuration = {
209
230
  */
210
231
  fast: CheckResultBasedDuration;
211
232
  };
233
+ export declare type MagicalRuneImprovementCost = {
234
+ tag: "Constant";
235
+ constant: ConstantMagicalRuneImprovementCost;
236
+ } | {
237
+ tag: "DerivedFromOption";
238
+ derived_from_option: {};
239
+ };
240
+ export declare type ConstantMagicalRuneImprovementCost = {
241
+ value: ImprovementCost;
242
+ };
212
243
  export declare type MagicalRuneOption = {
244
+ /**
245
+ * The magical rune option’s identifier. An unique, increasing integer.
246
+ * @integer
247
+ * @minimum 1
248
+ */
249
+ id: number;
250
+ /**
251
+ * The option-specific AE cost.
252
+ */
253
+ cost: MagicalRuneOptionCost;
254
+ /**
255
+ * The option-specific improvement cost.
256
+ */
257
+ improvement_cost: ImprovementCost;
258
+ suboption: MagicalRuneSuboption;
213
259
  /**
214
260
  * All translations for the entry, identified by IETF language tag (BCP47).
215
261
  */
216
262
  translations: LocaleMap<MagicalRuneOptionTranslation>;
217
263
  };
264
+ export declare type MagicalRuneSuboption = {
265
+ tag: "Custom";
266
+ custom: CustomMagicalRuneSuboption;
267
+ };
268
+ export declare type CustomMagicalRuneSuboption = {
269
+ /**
270
+ * All translations for the entry, identified by IETF language tag (BCP47).
271
+ */
272
+ translations: LocaleMap<CustomMagicalRuneSuboptionTranslation>;
273
+ };
274
+ export declare type CustomMagicalRuneSuboptionTranslation = {
275
+ /**
276
+ * One or more examples for the suboption.
277
+ */
278
+ examples?: NonEmptyString[];
279
+ };
218
280
  export declare type MagicalRuneOptionTranslation = {
219
281
  /**
220
282
  * The name of the option.
@@ -223,5 +285,9 @@ export declare type MagicalRuneOptionTranslation = {
223
285
  * be generated.
224
286
  */
225
287
  name: NonEmptyString;
288
+ /**
289
+ * The native name of the magical rune option.
290
+ */
291
+ native_name: NonEmptyString;
226
292
  };
227
293
  export declare const validateSchema: import("../../validation/schema.js").TypeValidator<MagicalRune>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @main MagicalSign
3
+ */
4
+ import { Errata } from "../source/_Erratum.js";
5
+ import { PublicationRefs } from "../source/_PublicationRef.js";
6
+ import * as Activatable from "../_Activatable.js";
7
+ import { LocaleMap } from "../_LocaleMap.js";
8
+ import { GeneralPrerequisites } from "../_Prerequisite.js";
9
+ import { PropertyReference } from "../_SimpleReferences.js";
10
+ /**
11
+ * @title Magical Sign
12
+ */
13
+ export declare type MagicalSign = {
14
+ id: Activatable.Id;
15
+ prerequisites?: GeneralPrerequisites;
16
+ /**
17
+ * The associated magic property.
18
+ */
19
+ property: PropertyReference;
20
+ /**
21
+ * The adventure points value.
22
+ * @integer
23
+ * @minimum 0
24
+ */
25
+ ap_value: number;
26
+ src: PublicationRefs;
27
+ /**
28
+ * All translations for the entry, identified by IETF language tag (BCP47).
29
+ */
30
+ translations: LocaleMap<ProtectiveWardingCircleSpecialAbilityTranslation>;
31
+ };
32
+ export declare type ProtectiveWardingCircleSpecialAbilityTranslation = {
33
+ name: Activatable.Name;
34
+ name_in_library?: Activatable.NameInLibrary;
35
+ effect: Activatable.Effect;
36
+ errata?: Errata;
37
+ };
38
+ export declare const validateSchema: import("../../validation/schema.js").TypeValidator<MagicalSign>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @main MagicalSign
3
+ */
4
+ import { validateSchemaCreator } from "../../validation/schema.js";
5
+ export const validateSchema = validateSchemaCreator(import.meta.url);
@@ -53,7 +53,7 @@ export declare type MagicalTradition = {
53
53
  * @maximum 30
54
54
  * @multipleOf 5
55
55
  */
56
- alternative_magical_adventure_points_maximum: number;
56
+ alternative_magical_adventure_points_maximum?: number;
57
57
  /**
58
58
  * Are advantages/disadvantages required to not exclusively apply to arcane
59
59
  * spellworks, but also to the tradition's magical actions or applications?
@@ -67,7 +67,7 @@ export declare type MagicalTradition = {
67
67
  * If arcane spellworks from a different tradition count as arcane spellworks
68
68
  * of this tradition, this is the different tradition's reference.
69
69
  */
70
- use_arcane_spellworks_from_tradition: MagicalTraditionReference;
70
+ use_arcane_spellworks_from_tradition?: MagicalTraditionReference;
71
71
  /**
72
72
  * The Influences for the traditions. Influences are enabled by Focus Rules.
73
73
  * @minItems 2
@@ -16,6 +16,12 @@ export declare type ProtectiveWardingCircleSpecialAbility = {
16
16
  select_options?: Activatable.SelectOptions;
17
17
  maximum?: Activatable.Maximum;
18
18
  prerequisites?: GeneralPrerequisites;
19
+ /**
20
+ * The cost in AE.
21
+ * @integer
22
+ * @minimum 0
23
+ */
24
+ cost: number;
19
25
  ap_value: Activatable.AdventurePointsValue;
20
26
  src: PublicationRefs;
21
27
  /**
@@ -27,7 +27,7 @@ export declare type Language = {
27
27
  * Language-specific specializations. Either a list of possible options or a
28
28
  * indefinite description of what may be a specialization.
29
29
  */
30
- specializations: Specializations;
30
+ specializations?: Specializations;
31
31
  prerequisites?: LanguagePrerequisites;
32
32
  /**
33
33
  * The maximum possible level of the language. Only specified if lower than
@@ -17,7 +17,7 @@ export declare type DaggerRitual = {
17
17
  maximum?: Activatable.Maximum;
18
18
  prerequisites?: GeneralPrerequisites;
19
19
  volume: Activatable.Volume;
20
- cost: DaggerRitualCost;
20
+ cost?: DaggerRitualCost;
21
21
  property: Activatable.Property;
22
22
  ap_value: Activatable.AdventurePointsValue;
23
23
  src: PublicationRefs;
@@ -16,7 +16,7 @@ export declare type StaffEnchantment = {
16
16
  maximum?: Activatable.Maximum;
17
17
  prerequisites?: GeneralPrerequisites;
18
18
  volume: Activatable.Volume;
19
- cost: Activatable.EnchantmentCost;
19
+ cost?: Activatable.EnchantmentCost;
20
20
  property: Activatable.Property;
21
21
  ap_value: Activatable.AdventurePointsValue;
22
22
  src: PublicationRefs;
@@ -16,7 +16,7 @@ export declare type ToyEnchantment = {
16
16
  maximum?: Activatable.Maximum;
17
17
  prerequisites?: GeneralPrerequisites;
18
18
  volume: Activatable.Volume;
19
- cost: Activatable.EnchantmentCost;
19
+ cost?: Activatable.EnchantmentCost;
20
20
  property: Activatable.Property;
21
21
  ap_value: Activatable.AdventurePointsValue;
22
22
  src: PublicationRefs;
@@ -15,7 +15,6 @@ export declare type WandEnchantment = {
15
15
  select_options?: Activatable.SelectOptions;
16
16
  maximum?: Activatable.Maximum;
17
17
  prerequisites?: GeneralPrerequisites;
18
- volume: Activatable.Volume;
19
18
  cost?: Activatable.EnchantmentCost;
20
19
  property: Activatable.Property;
21
20
  ap_value: Activatable.AdventurePointsValue;
@@ -29,10 +28,6 @@ export declare type WandEnchantmentTranslation = {
29
28
  name: Activatable.Name;
30
29
  name_in_library?: Activatable.NameInLibrary;
31
30
  effect: Activatable.Effect;
32
- /**
33
- * @deprecated
34
- */
35
- volume: string;
36
31
  /**
37
32
  * @deprecated
38
33
  */
@@ -4,6 +4,7 @@
4
4
  import { Errata } from "../source/_Erratum.js";
5
5
  import { PublicationRefs } from "../source/_PublicationRef.js";
6
6
  import * as Activatable from "../_Activatable.js";
7
+ import { LocaleMap } from "../_LocaleMap.js";
7
8
  import { GeneralPrerequisites } from "../_Prerequisite.js";
8
9
  /**
9
10
  * @title Weapon Enchantment
@@ -22,7 +23,7 @@ export declare type WeaponEnchantment = {
22
23
  /**
23
24
  * All translations for the entry, identified by IETF language tag (BCP47).
24
25
  */
25
- translations: WeaponEnchantmentTranslation;
26
+ translations: LocaleMap<WeaponEnchantmentTranslation>;
26
27
  };
27
28
  export declare type WeaponEnchantmentTranslation = {
28
29
  name: Activatable.Name;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",
@@ -76,6 +76,7 @@
76
76
  "additionalProperties": false
77
77
  },
78
78
  "FastCastingTime": {
79
+ "description": "The casting time may have two different values: One for use in “normal” time,\ni. e. actions, combat rounds and others, and one for use during lovemaking,\nwhich is a rule set from Aventurian Intimacy.\n\nThere must always be at least one casting time value.",
79
80
  "type": "object",
80
81
  "properties": {
81
82
  "default": {
@@ -119,12 +120,12 @@
119
120
  "$ref": "#/$defs/CastingTimeDuringLovemaking"
120
121
  }
121
122
  },
122
- "required": [
123
- "default"
124
- ],
123
+ "required": [],
124
+ "minProperties": 1,
125
125
  "additionalProperties": false
126
126
  },
127
127
  "SlowCastingTime": {
128
+ "description": "The casting time may have two different values: One for use in “normal” time,\ni. e. actions, combat rounds and others, and one for use during lovemaking,\nwhich is a rule set from Aventurian Intimacy.\n\nThere must always be at least one casting time value.",
128
129
  "type": "object",
129
130
  "properties": {
130
131
  "default": {
@@ -168,9 +169,8 @@
168
169
  "$ref": "#/$defs/CastingTimeDuringLovemaking"
169
170
  }
170
171
  },
171
- "required": [
172
- "default"
173
- ],
172
+ "required": [],
173
+ "minProperties": 1,
174
174
  "additionalProperties": false
175
175
  }
176
176
  }
@@ -475,6 +475,10 @@
475
475
  "NonModifiableSustainedCostPerCountable": {
476
476
  "type": "object",
477
477
  "properties": {
478
+ "minimum_total": {
479
+ "description": "If defined, the minimum total AE that have to be spent casting the\nskill.",
480
+ "type": "number"
481
+ },
478
482
  "translations": {
479
483
  "description": "All translations for the entry, identified by IETF language tag (BCP47).",
480
484
  "type": "object",
@@ -1064,6 +1064,24 @@
1064
1064
  ],
1065
1065
  "additionalProperties": false
1066
1066
  },
1067
+ "TrinkhornzauberIdentifier": {
1068
+ "type": "object",
1069
+ "properties": {
1070
+ "tag": {
1071
+ "const": "Trinkhornzauber"
1072
+ },
1073
+ "trinkhornzauber": {
1074
+ "description": "The Trinkhornzauber’s identifier.",
1075
+ "type": "integer",
1076
+ "minimum": 1
1077
+ }
1078
+ },
1079
+ "required": [
1080
+ "tag",
1081
+ "trinkhornzauber"
1082
+ ],
1083
+ "additionalProperties": false
1084
+ },
1067
1085
  "LanguageIdentifier": {
1068
1086
  "type": "object",
1069
1087
  "properties": {
@@ -144,6 +144,9 @@
144
144
  },
145
145
  {
146
146
  "$ref": "./_Identifier.schema.json#/$defs/KrallenkettenzauberIdentifier"
147
+ },
148
+ {
149
+ "$ref": "./_Identifier.schema.json#/$defs/TrinkhornzauberIdentifier"
147
150
  }
148
151
  ]
149
152
  },
@@ -283,6 +286,9 @@
283
286
  },
284
287
  {
285
288
  "$ref": "./_Identifier.schema.json#/$defs/KrallenkettenzauberIdentifier"
289
+ },
290
+ {
291
+ "$ref": "./_Identifier.schema.json#/$defs/TrinkhornzauberIdentifier"
286
292
  }
287
293
  ]
288
294
  },
@@ -369,6 +375,9 @@
369
375
  },
370
376
  {
371
377
  "$ref": "./_Identifier.schema.json#/$defs/ElementIdentifier"
378
+ },
379
+ {
380
+ "$ref": "./_Identifier.schema.json#/$defs/AspectIdentifier"
372
381
  }
373
382
  ]
374
383
  },
@@ -28,7 +28,9 @@
28
28
  "Spirit",
29
29
  "HalfOfSpirit",
30
30
  "Toughness",
31
- "HigherOfSpiritAndToughness"
31
+ "HigherOfSpiritAndToughness",
32
+ "SummoningDifficulty",
33
+ "CreationDifficulty"
32
34
  ]
33
35
  }
34
36
  }