diff --git a/src/content/classes/barbare.md b/src/content/classes/barbare.md new file mode 100644 index 0000000..fb282b4 --- /dev/null +++ b/src/content/classes/barbare.md @@ -0,0 +1,4 @@ +--- +title: "Barbare" +description: "Guerrier sauvage entrant dans une rage dévastatrice, il puise sa force dans son instinct primaire." +--- diff --git a/src/content/classes/barde.md b/src/content/classes/barde.md new file mode 100644 index 0000000..b3b5fcf --- /dev/null +++ b/src/content/classes/barde.md @@ -0,0 +1,4 @@ +--- +title: "Barde" +description: "Maître de la magie par le son et les mots, il inspire ses compagnons et manipule l'esprit de ses ennemis." +--- diff --git a/src/content/classes/druide.md b/src/content/classes/druide.md new file mode 100644 index 0000000..16d9cd7 --- /dev/null +++ b/src/content/classes/druide.md @@ -0,0 +1,4 @@ +--- +title: "Druide" +description: "Gardien de la nature, il commande aux éléments et peut adopter la forme de bêtes féroces." +--- diff --git a/src/content/classes/ensourceleur.md b/src/content/classes/ensourceleur.md new file mode 100644 index 0000000..e9876dc --- /dev/null +++ b/src/content/classes/ensourceleur.md @@ -0,0 +1,4 @@ +--- +title: "Ensourceleur" +description: "Possédant une magie innée coulant dans ses veines, il déchaîne une puissance brute sans besoin d'étude." +--- diff --git a/src/content/classes/guerrier.md b/src/content/classes/guerrier.md new file mode 100644 index 0000000..54037cd --- /dev/null +++ b/src/content/classes/guerrier.md @@ -0,0 +1,4 @@ +--- +title: "Guerrier" +description: "Maître des armes et du combat rapproché. Le Guerrier est une force inarrêtable sur le champ de bataille." +--- diff --git a/src/content/classes/mage.md b/src/content/classes/mage.md new file mode 100644 index 0000000..72ecba4 --- /dev/null +++ b/src/content/classes/mage.md @@ -0,0 +1,4 @@ +--- +title: "Mage" +description: "Manipulateur des arcanes, le Mage plie la réalité à sa volonté avec de puissants sortilèges." +--- diff --git a/src/content/classes/moine.md b/src/content/classes/moine.md new file mode 100644 index 0000000..951d8ce --- /dev/null +++ b/src/content/classes/moine.md @@ -0,0 +1,4 @@ +--- +title: "Moine" +description: "Maître des arts martiaux, il canalise son énergie intérieure (Ki) pour accomplir des prouesses physiques surhumaines." +--- diff --git a/src/content/classes/paladin.md b/src/content/classes/paladin.md new file mode 100644 index 0000000..92b9e55 --- /dev/null +++ b/src/content/classes/paladin.md @@ -0,0 +1,4 @@ +--- +title: "Paladin" +description: "Chevalier lié par un serment sacré, il allie la force des armes à la protection divine." +--- diff --git a/src/content/classes/pretre.md b/src/content/classes/pretre.md new file mode 100644 index 0000000..e0b2fcd --- /dev/null +++ b/src/content/classes/pretre.md @@ -0,0 +1,4 @@ +--- +title: "Prêtre" +description: "Canal de la puissance divine, il soigne ses alliés et foudroie les impies par sa foi." +--- diff --git a/src/content/classes/rodeur.md b/src/content/classes/rodeur.md new file mode 100644 index 0000000..3e3de49 --- /dev/null +++ b/src/content/classes/rodeur.md @@ -0,0 +1,4 @@ +--- +title: "Rôdeur" +description: "Traqueur d'élite des terres sauvages, il survit là où les autres périssent grâce à son lien avec la faune." +--- diff --git a/src/content/classes/sorcier.md b/src/content/classes/sorcier.md new file mode 100644 index 0000000..992a0ff --- /dev/null +++ b/src/content/classes/sorcier.md @@ -0,0 +1,4 @@ +--- +title: "Rôdeur" +description: "Ayant conclu un pacte avec une entité occulte, il manie des pouvoirs sombres et mystérieux." +--- diff --git a/src/content/classes/voleur.md b/src/content/classes/voleur.md new file mode 100644 index 0000000..576b8df --- /dev/null +++ b/src/content/classes/voleur.md @@ -0,0 +1,4 @@ +--- +title: "Voleur" +description: "Expert en infiltration et en précision, il frappe dans l'ombre et déjoue les pièges les plus mortels." +--- diff --git a/src/content.config.ts b/src/content/config.ts similarity index 59% rename from src/content.config.ts rename to src/content/config.ts index ea65cca..6e24deb 100644 --- a/src/content.config.ts +++ b/src/content/config.ts @@ -21,4 +21,24 @@ const journal = defineCollection({ .passthrough(), }); -export const collections = { journal }; // Simplifié pour test +const classes = defineCollection({ + loader: obsidianLoader("classes"), + schema: z + .object({ + title: z.string(), + description: z.string(), + }) + .passthrough(), +}); + +const especes = defineCollection({ + loader: obsidianLoader("especes"), + schema: z + .object({ + title: z.string(), + description: z.string(), + }) + .passthrough(), +}); + +export const collections = { journal, classes, especes }; diff --git a/src/content/especes/demielfe.md b/src/content/especes/demielfe.md new file mode 100644 index 0000000..7d76daf --- /dev/null +++ b/src/content/especes/demielfe.md @@ -0,0 +1,4 @@ +--- +title: "Demi-Elfe" +description: "Voyageurs entre deux mondes, alliant le charme humain à l'élégance elfique." +--- diff --git a/src/content/especes/demiorc.md b/src/content/especes/demiorc.md new file mode 100644 index 0000000..84f1dfc --- /dev/null +++ b/src/content/especes/demiorc.md @@ -0,0 +1,4 @@ +--- +title: "Demi-Orc" +description: "Voyageurs entre deux mondes, alliant le charme humain à l'élégance elfique." +--- diff --git a/src/content/especes/drakeide.md b/src/content/especes/drakeide.md new file mode 100644 index 0000000..ed61b02 --- /dev/null +++ b/src/content/especes/drakeide.md @@ -0,0 +1,4 @@ +--- +title: "Elfe" +description: "Gracieux et anciens, les elfes ont une affinité naturelle avec la magie et la nature. Ils vivent bien plus longtemps que les autres espèces." +--- diff --git a/src/content/especes/elfe.md b/src/content/especes/elfe.md new file mode 100644 index 0000000..ed61b02 --- /dev/null +++ b/src/content/especes/elfe.md @@ -0,0 +1,4 @@ +--- +title: "Elfe" +description: "Gracieux et anciens, les elfes ont une affinité naturelle avec la magie et la nature. Ils vivent bien plus longtemps que les autres espèces." +--- diff --git a/src/content/especes/gnome.md b/src/content/especes/gnome.md new file mode 100644 index 0000000..a35afaa --- /dev/null +++ b/src/content/especes/gnome.md @@ -0,0 +1,4 @@ +--- +title: "Gnome" +description: "Inventeurs excentriques et curieux, maniant souvent une magie subtile ou mécanique." +--- diff --git a/src/content/especes/halfelin.md b/src/content/especes/halfelin.md new file mode 100644 index 0000000..aedb3e5 --- /dev/null +++ b/src/content/especes/halfelin.md @@ -0,0 +1,4 @@ +--- +title: "Halfelin" +description: "Petits par la taille mais grands par le courage, ils possèdent une chance insolente." +--- diff --git a/src/content/especes/humain.md b/src/content/especes/humain.md new file mode 100644 index 0000000..bf0bc46 --- /dev/null +++ b/src/content/especes/humain.md @@ -0,0 +1,4 @@ +--- +title: "Humain" +description: "Adaptables et ambitieux, les humains sont la plus jeune et la plus nombreuse des espèces, capables de s'illustrer dans toutes les voies." +--- diff --git a/src/content/especes/nain.md b/src/content/especes/nain.md new file mode 100644 index 0000000..ed854a7 --- /dev/null +++ b/src/content/especes/nain.md @@ -0,0 +1,4 @@ +--- +title: "Humain" +description: "Maîtres de la forge et de la pierre, réputés pour leur robustesse et leur loyauté indéfectible." +--- diff --git a/src/content/especes/tieffelin.md b/src/content/especes/tieffelin.md new file mode 100644 index 0000000..336de2f --- /dev/null +++ b/src/content/especes/tieffelin.md @@ -0,0 +1,4 @@ +--- +title: "Tieffelin" +description: "Marqués par une lignée infernale, ils naviguent dans les ombres avec une aura de mystère." +--- diff --git a/src/content/journal/eveil.md b/src/content/journal/eveil.md index 9fe9147..81d8511 100644 --- a/src/content/journal/eveil.md +++ b/src/content/journal/eveil.md @@ -29,11 +29,24 @@ tags: [ "perso:Liam", "perso:Mara", "perso:Gablo", + "perso:Hope", + "perso:Nils", + "perso:Kalinci", + "perso:Zajic", + "perso:Iben", + "perso:Tritte", + "perso:Ran", + "perso:Zas", + "perso:Alvin", "plot:Enfants-Disparus", "plot:Disparition-Outils", "plot:Cul-Brillant", "lore:Legendes-de-Kouel", - "lore:Bataille-du-Grand-Chêne" + "lore:Dragon-de-la-Mine", + "lore:Fondation-de-l-Auberge", + "lore:Bataille-du-Grand-Chêne", + "lore:Paradoxe-Temporel", + "lore:Connaissance-des-Grungs" ] era: "initiation" --- diff --git a/src/content/journal/sang.md b/src/content/journal/sang.md index cbd0315..5d4379f 100644 --- a/src/content/journal/sang.md +++ b/src/content/journal/sang.md @@ -13,6 +13,13 @@ tags: [ "aventurier:Gurdil", "aventurier:Jinn", "perso:Maielan", + "perso:Maielten", + "perso:Hope", + "perso:Nils", + "perso:Zajic", + "perso:Ran", + "perso:Zas", + "perso:Alvin", "antagoniste:Constantia-Denney", "organisation:Couronne-d-Argent", "plot:Enfants-Disparus", diff --git a/src/pages/classes/[...slug].astro b/src/pages/classes/[...slug].astro new file mode 100644 index 0000000..fb2c1af --- /dev/null +++ b/src/pages/classes/[...slug].astro @@ -0,0 +1,82 @@ +--- +import { getCollection, render } from "astro:content"; +import GameLayout from "../../../layouts/GameLayout.astro"; + +export async function getStaticPaths() { + const classEntries = await getCollection("classes"); + return classEntries.map((entry) => ({ + params: { slug: entry.id }, + props: { entry }, + })); +} + +const { entry } = Astro.props; +if (!entry) return Astro.redirect("/404"); + +const { Content } = await render(entry); +--- + + +
+
+ ← Retour à la création +

{entry.data.title}

+

{entry.data.description}

+
+ +
+ +
+ +
+
+
+ + diff --git a/src/pages/creation.astro b/src/pages/creation.astro new file mode 100644 index 0000000..fa51c52 --- /dev/null +++ b/src/pages/creation.astro @@ -0,0 +1,167 @@ +--- +import { getCollection } from "astro:content"; +import GameLayout from "../layouts/GameLayout.astro"; + +const classes = await getCollection("classes"); +const especes = await getCollection("especes"); +--- + + +
+ +
+

Choisissez votre Classe

+
+

+ La classe définit vos compétences et votre rôle dans l'aventure. +

+
+ { + classes.map((charClass) => ( +
+

{charClass.data.title}

+

{charClass.data.description}

+ + Détails + +
+ )) + } +
+
+ + +
+

Choisissez votre Espèce

+
+

+ L'espèce influence votre apparence, votre histoire et certaines + de vos aptitudes. +

+
+ { + especes.map((espece) => ( +
+

{espece.data.title}

+

{espece.data.description}

+ + Détails + +
+ )) + } +
+
+
+
+ + diff --git a/src/pages/especes/[...slug].astro b/src/pages/especes/[...slug].astro new file mode 100644 index 0000000..62f68ce --- /dev/null +++ b/src/pages/especes/[...slug].astro @@ -0,0 +1,82 @@ +--- +import { getCollection, render } from "astro:content"; +import GameLayout from "../../../layouts/GameLayout.astro"; + +export async function getStaticPaths() { + const especeEntries = await getCollection("especes"); + return especeEntries.map((entry) => ({ + params: { slug: entry.id }, + props: { entry }, + })); +} + +const { entry } = Astro.props; +if (!entry) return Astro.redirect("/404"); + +const { Content } = await render(entry); +--- + + +
+
+ ← Retour à la création +

{entry.data.title}

+

{entry.data.description}

+
+ +
+ +
+ +
+
+
+ + diff --git a/src/pages/index.astro b/src/pages/index.astro index a09ea7d..6ccd29a 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -32,6 +32,12 @@ const allTags = [

+
+ Création de Personnage +
+ @@ -39,6 +45,30 @@ const allTags = [