Compare commits

...

8 Commits

Author SHA1 Message Date
Lector fbe85e7c1a Cantrip- und BlessingPrereq ist now grouped under TinyActivatablePrerequisite.ts 2026-06-29 12:53:54 +02:00
Lector 739620db3a prettier 2026-06-27 14:08:51 +02:00
Lector baa37e097c Fix cache 2026-06-27 14:07:27 +02:00
Lector 0b93f01502 Merge branch 'feature/prereq-cantrip' of https://github.com/elyukai/optolith-database-schema into feature/prereq-cantrip 2026-06-25 13:27:59 +02:00
Lector 9652cdac63 Blessing and CantripPrerequisite.ts are now a TinyActivatablePrereq in _IdentifierGroup.ts
Removed this Prereqs from SpecialAbilities in _IdentifierGroup.ts
Renamed identifying key to id in this 2 Prereqs
2026-06-25 13:27:50 +02:00
Lector 7ac029ae11 Merge branch 'main' into feature/prereq-cantrip 2026-06-25 13:26:17 +02:00
Lector 6737a322d4 Blessing and Cantrips are now entries in GeneralPrerequisites. 2026-06-24 11:22:58 +02:00
Lector 16de03d13a Added cantrips and blessings to activatable prereqs 2026-06-23 21:21:16 +02:00
6 changed files with 75 additions and 2 deletions
@@ -81,6 +81,7 @@ const isPrerequisiteFor = (
case "PrimaryAttribute":
case "BlessedTradition":
case "MagicalTradition":
case "TinyActivatable":
case "RatedMinimumNumber":
case "RatedSum":
case "Enhancement":
+8
View File
@@ -505,3 +505,11 @@ export const AdvancedSkillStyleSpecialAbilityIdentifier = DB.Enum(import.meta.ur
AdvancedSkillSpecialAbility: DB.EnumCase({ type: AdvancedSkillSpecialAbilityIdentifier() }),
}),
})
export const TinyActivatableIdentifier = DB.Enum(import.meta.url, {
name: "TinyActivatableIdentifier",
values: () => ({
Blessing: DB.EnumCase({ type: BlessingIdentifier() }),
Cantrip: DB.EnumCase({ type: CantripIdentifier() }),
}),
})
@@ -2,13 +2,14 @@ import * as DB from "tsondb/schema/dsl"
import { ActivatablePrerequisite } from "./single/ActivatablePrerequisite.js"
import { AncestorBloodPrerequisite } from "./single/AncestorBloodPrerequisite.js"
import { AnimistPowerPrerequisite } from "./single/AnimistPowerPrerequisite.js"
import { TinyActivatablePrerequisite } from "./single/TinyActivatablePrerequisite.js"
import { CulturePrerequisite } from "./single/CulturePrerequisite.js"
import { EnhancementPrerequisite } from "./single/EnhancementPrerequisite.js"
import { InfluencePrerequisite } from "./single/InfluencePrerequisite.js"
import { PactPrerequisite } from "./single/PactPrerequisite.js"
import { PersonalityTraitPrerequisite } from "./single/PersonalityTraitPrerequisite.js"
import { PrimaryAttributePrerequisite } from "./single/PrimaryAttributePrerequisite.js"
import { ProfessionPrerequisite } from "./single/ProfessionPrerequisite.ts"
import { ProfessionPrerequisite } from "./single/ProfessionPrerequisite.js"
import { PublicationPrerequisite } from "./single/PublicationPrerequisite.js"
import { RacePrerequisite } from "./single/RacePrerequisite.js"
import { RatedMinimumNumberPrerequisite } from "./single/RatedMinimumNumberPrerequisite.js"
@@ -59,6 +60,7 @@ export const PublicationPrerequisiteGroup = DB.Enum(import.meta.url, {
export const GeneralPrerequisiteGroup = DB.Enum(import.meta.url, {
name: "GeneralPrerequisiteGroup",
values: () => ({
Activatable: DB.EnumCase({ type: DB.IncludeIdentifier(ActivatablePrerequisite) }),
Sex: DB.EnumCase({ type: DB.IncludeIdentifier(SexPrerequisite) }),
Race: DB.EnumCase({ type: DB.IncludeIdentifier(RacePrerequisite) }),
Culture: DB.EnumCase({ type: DB.IncludeIdentifier(CulturePrerequisite) }),
@@ -67,9 +69,9 @@ export const GeneralPrerequisiteGroup = DB.Enum(import.meta.url, {
State: DB.EnumCase({ type: DB.IncludeIdentifier(StatePrerequisite) }),
Rule: DB.EnumCase({ type: DB.IncludeIdentifier(RulePrerequisite) }),
PrimaryAttribute: DB.EnumCase({ type: DB.IncludeIdentifier(PrimaryAttributePrerequisite) }),
Activatable: DB.EnumCase({ type: DB.IncludeIdentifier(ActivatablePrerequisite) }),
BlessedTradition: DB.EnumCase({ type: DB.IncludeIdentifier(BlessedTraditionPrerequisite) }),
MagicalTradition: DB.EnumCase({ type: DB.IncludeIdentifier(MagicalTraditionPrerequisite) }),
TinyActivatable: DB.EnumCase({ type: DB.IncludeIdentifier(TinyActivatablePrerequisite) }),
Rated: DB.EnumCase({ type: DB.IncludeIdentifier(RatedPrerequisite) }),
RatedMinimumNumber: DB.EnumCase({ type: DB.IncludeIdentifier(RatedMinimumNumberPrerequisite) }),
RatedSum: DB.EnumCase({ type: DB.IncludeIdentifier(RatedSumPrerequisite) }),
@@ -0,0 +1,18 @@
import * as DB from "tsondb/schema/dsl"
import { BlessingIdentifier } from "../../_Identifier.js"
import { DisplayOption } from "../DisplayOption.js"
export const BlessingPrerequisite = DB.TypeAlias(import.meta.url, {
name: "BlessingPrerequisite",
comment: "Requires a specific blessing.",
type: () =>
DB.Object({
id: DB.Required({
comment: "The required blessing.",
type: BlessingIdentifier(),
}),
display_option: DB.Optional({
type: DB.IncludeIdentifier(DisplayOption),
}),
}),
})
@@ -0,0 +1,18 @@
import * as DB from "tsondb/schema/dsl"
import { CantripIdentifier } from "../../_Identifier.js"
import { DisplayOption } from "../DisplayOption.js"
export const CantripPrerequisite = DB.TypeAlias(import.meta.url, {
name: "CantripPrerequisite",
comment: "Requires a specific cantrip.",
type: () =>
DB.Object({
id: DB.Required({
comment: "The required cantrip.",
type: CantripIdentifier(),
}),
display_option: DB.Optional({
type: DB.IncludeIdentifier(DisplayOption),
}),
}),
})
@@ -0,0 +1,26 @@
import * as DB from "tsondb/schema/dsl"
import { BlessingIdentifier, CantripIdentifier } from "../../_Identifier.js"
import { DisplayOption } from "../DisplayOption.js"
export const TinyActivatablePrerequisite = DB.TypeAlias(import.meta.url, {
name: "TinyActivatablePrerequisite",
comment: "Requires a specific cantrip or blessing.",
type: () =>
DB.Object({
id: DB.Required({
comment: "The required item.",
type: DB.IncludeIdentifierType(TinyActivatableCategory),
}),
display_option: DB.Optional({
type: DB.IncludeIdentifier(DisplayOption),
}),
}),
})
const TinyActivatableCategory = DB.Enum(import.meta.url, {
name: "TinyActivatableCategory",
values: () => ({
Blessing: DB.EnumCase({ type: BlessingIdentifier() }),
Cantrip: DB.EnumCase({ type: CantripIdentifier() }),
}),
})