From 878bcc0a16b8b9dae571404a224a42932d64f214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Pons?= Date: Thu, 24 Apr 2025 17:23:03 +0200 Subject: [PATCH] Progress on spells --- pages/character/[id]/edit.client.vue | 30 +- shared/character-config.json | 739 ++++++++++++++++++++++++++- types/character.d.ts | 12 + 3 files changed, 774 insertions(+), 7 deletions(-) diff --git a/pages/character/[id]/edit.client.vue b/pages/character/[id]/edit.client.vue index 65da917..47f9add 100644 --- a/pages/character/[id]/edit.client.vue +++ b/pages/character/[id]/edit.client.vue @@ -43,7 +43,7 @@ function abilitySpecialFeatures(type: "points" | "max", curiosity: DoubleIndex({ }, abilities: {}, modifiers: {}, + spells: [], notes: "", }, }); -const peopleOpen = ref(false), trainingOpen = ref(false), notesOpen = ref(false), abilityOpen = ref(false), trainingTab = ref(0); +const peopleOpen = ref(false), trainingOpen = ref(false), abilityOpen = ref(false), spellOpen = ref(false), notesOpen = ref(false), trainingTab = ref(0); const raceOptions = computed(() => data.value.progress.race.index !== undefined ? characterConfig.peoples[data.value.progress.race.index!].options : undefined); const selectedRaceOptions = computed(() => raceOptions !== undefined ? data.value.progress.race.progress!.map(e => raceOptions.value![e[0]][e[1]]) : undefined); const trainingPoints = computed(() => raceOptions.value ? data.value.progress.race.progress?.reduce((p, v) => p + (raceOptions.value![v[0]][v[1]].training ?? 0), 0) : 0); @@ -88,6 +89,8 @@ const modifierSpent = computed(() => Object.values(data.value.progress.modifiers const abilityPoints = computed(() => (selectedRaceOptions.value ? selectedRaceOptions.value.reduce((p, v) => p + (v?.abilities ?? 0), 0) : 0) + training.value.flatMap(e => e[1].filter(_e => _e.ability !== undefined)).reduce((p, v) => p + v.ability!, 0)); const abilityMax = computed(() => Object.entries(characterConfig.abilities).reduce((p, v) => { p[v[0] as Ability] = abilitySpecialFeatures("max", data.value.progress.training.curiosity, Math.floor(maxTraining.value[v[1].max[0]] / 3) + Math.floor(maxTraining.value[v[1].max[1]] / 3)); return p; }, {} as Record)); const abilitySpent = computed(() => Object.values(data.value.progress.abilities ?? {}).reduce((p, v) => p + v[0], 0)); +const spellranks = computed(() => training.value.flatMap(e => e[1].filter(_e => _e.spellrank !== undefined)).reduce((p, v) => { p[v.spellrank!]++; return p; }, { instinct: 0, precision: 0, knowledge: 0 } as Record)); +const spellsPoints = computed(() => training.value.flatMap(e => e[1].filter(_e => _e.spellslot !== undefined)).reduce((p, v) => p + (modifiers.value.hasOwnProperty(v.spellslot as MainStat) ? modifiers.value[v.spellslot as MainStat] : v.spellslot as number), 0)); if(id !== 'new') { @@ -248,7 +251,7 @@ useShortcuts({
- + @@ -271,7 +274,7 @@ useShortcuts({
- + @@ -302,7 +305,7 @@ useShortcuts({ - + @@ -327,7 +330,22 @@ useShortcuts({ - + + + + + diff --git a/shared/character-config.json b/shared/character-config.json index 6b2bacd..860730f 100644 --- a/shared/character-config.json +++ b/shared/character-config.json @@ -2859,5 +2859,742 @@ } ] } - } + }, + "spells": [ + { + "name": "Trait de feu", + "rank": 1, + "type": "precision", + "cost": 3, + "speed": "action", + "elements": [ + "fire" + ], + "effect": "Faites un jet d'attaque avec la [[1. Entrainement#La dextérité|dextérité]]. Tire un faisceau de flamme, infligeant 2d8 dégâts de feu en touchant.", + "tags": [ + "Dégats" + ], + "id": "0" + }, + { + "name": "Echauffement", + "rank": 1, + "type": "knowledge", + "cost": 2, + "speed": "action", + "elements": [ + "fire" + ], + "effect": "Chauffe à blanc une arme ou un projectile. Jusqu'au début de votre prochain tour, les coups portés avec l'objet infligent 1d6 dégâts supplémentaire. Les dégâts de l'arme deviennent des dégâts de feu.", + "tags": [ + "Buff" + ], + "id": "1" + }, + { + "name": "Projection bouillonnante", + "rank": 1, + "type": "precision", + "cost": 6, + "speed": "action", + "elements": [ + "fire" + ], + "effect": "Lance un projectile de feu éclatant sur 3 cases de rayon. Chaque personne dans le rayon doit réussir un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]](d10/6 + mod. d'[[1. Entrainement#L'intelligence|intelligence]]) ou subit 2d8 dégâts de feu.", + "tags": [ + "Dégats" + ], + "id": "2" + }, + { + "name": "Corps ardent", + "rank": 1, + "type": "knowledge", + "cost": 6, + "speed": "action", + "elements": [ + "fire" + ], + "effect": "Pendant 5 tours, toute personne terminant son tour à une case de vous subit 1d10 dégâts de feu.", + "tags": [ + "Dégats" + ], + "id": "3" + }, + { + "name": "Gravure marquante", + "rank": 1, + "type": "knowledge", + "cost": 3, + "speed": 10, + "elements": [ + "fire" + ], + "effect": "Grave une marque discrète sur un objet, restant durant 3 jours ou jusqu'à ce que quelqu'un rentre en contact avec la marque, auquel cas cette dernière lui sera gravée avec une désagréable sensation de brulure. La brulure disparait après 3 jours.", + "tags": [ + "Utilitaire" + ], + "id": "4" + }, + { + "name": "Protection supérieure", + "rank": 1, + "type": "instinct", + "cost": 3, + "speed": "reaction", + "elements": [ + "ice" + ], + "effect": "Votre armure subit l'intégralité des dégâts sur le prochain coup.", + "tags": [ + "Tank" + ], + "id": "5" + }, + { + "name": "Lames de glace", + "rank": 1, + "type": "precision", + "cost": 3, + "speed": "action", + "elements": [ + "ice" + ], + "effect": "Faites un jet d'attaque avec la [[1. Entrainement#La dextérité|dextérité]] en touchant. Tire 2 projectiles infligeant 1d8 dégâts de glace. *Augmenter les dés de dégâts offre un projectile supplémentaire à la place. Chaque projectile demande un jet d'attaque séparé et peut viser une cible différente.*", + "tags": [ + "Dégats" + ], + "id": "6" + }, + { + "name": "Chaine de foudre", + "rank": 1, + "type": "precision", + "cost": 3, + "speed": "action", + "elements": [ + "thunder" + ], + "effect": "Faites un jet d'attaque avec la [[1. Entrainement#Dextérité|dextérité]]. Frappe une cible visible puis rebondit sur jusqu'à 2 autres cibles. Inflige 1d8[[2. Glossaire#Jet explosif|!]] dégâts de foudre.", + "tags": [ + "Dégats" + ], + "id": "7" + }, + { + "name": "Vitesse lumière", + "rank": 1, + "type": "knowledge", + "cost": 2, + "speed": "action", + "elements": [ + "thunder" + ], + "effect": "Se téléporte à 6 cases tant que vous pouvez voir et courir vers la destination.", + "tags": [ + "Mouvement" + ], + "id": "8" + }, + { + "name": "Décharge de foudre", + "rank": 1, + "type": "precision", + "cost": 3, + "speed": "action", + "elements": [ + "thunder" + ], + "effect": "Faites un jet d'attaque avec la [[1. Entrainement#La dextérité|dextérité]]. Tire une décharge foudroyante d'énergie, infligeant 4d4[[2. Glossaire#Jet explosif|!]] dégâts de foudre.", + "tags": [ + "Dégats" + ], + "id": "9" + }, + { + "name": "No name", + "rank": 1, + "type": "precision", + "cost": 2, + "speed": "action", + "elements": [ + "earth" + ], + "effect": "Faites un jet d'attaque avec la [[1. Entrainement#La dextérité|dextérité]]. Un pilier de matière est extirpé du sol pour aller frapper la cible, qui est alors déplacée d'une case. Si la cible est propulsée contre un mur, elle subit alors 3d12 dégâts contondant.", + "tags": [ + "Dégats" + ], + "id": "10" + }, + { + "name": "No name", + "rank": 1, + "type": "precision", + "cost": 3, + "speed": "action", + "elements": [ + "earth" + ], + "effect": "Faites un jet d'attaque avec la [[1. Entrainement#La dextérité|dextérité]]. Propulse un projectile de matière sur la cible, infligeant 1d12 dégâts contondant en touchant, ainsi qu'un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]] (d10/5 + mod. d'[[1. Entrainement#L'intelligence|intelligence]]) à l'[[2. Liste des effets#L'hébètement|hébètement]].", + "tags": [ + "Debuff" + ], + "id": "11" + }, + { + "name": "Bouclier tortue", + "rank": 1, + "type": "knowledge", + "cost": 3, + "speed": "action", + "elements": [ + "earth" + ], + "effect": "Durant 1 minute, vous gagnez un bonus de 2 au blocage, mais subissez également un malus de 2 à l'esquive et perdez 2 cases de vitesse de course.", + "tags": [ + "Tank" + ], + "id": "12" + }, + { + "name": "No name", + "rank": 1, + "type": "instinct", + "cost": 3, + "speed": "reaction", + "elements": [ + "earth" + ], + "effect": "Vous gagnez une résistance aux dégâts physiques jusqu'au début de votre prochain tour.", + "tags": [ + "Tank" + ], + "id": "13" + }, + { + "name": "Enchantement mineur", + "rank": 1, + "type": "knowledge", + "cost": 2, + "speed": "action", + "elements": [ + "arcana" + ], + "effect": "Condense de l'énergie magique dans une arme ou un projectile sur vous. Vous faites une attaque immédiatement après avoir lancé ce sort sans dépenser d'action, infligeant 1d8 dégâts supplémentaire. Les dégâts de l'arme deviennent magique.", + "tags": [ + "Buff" + ], + "id": "14" + }, + { + "name": "Rupture de force", + "rank": 1, + "type": "knowledge", + "cost": 5, + "speed": "action", + "elements": [ + "arcana" + ], + "effect": "Faites un jet d'attaque avec l'[[1. Entrainement#L'intelligence|intelligence]]. Vous condensez une puissante énergie magique qui est propulsée directement sur votre cible. Vous lancez 2d20 et prenez le plus haut résultat pour infliger des dégâts magique. *Avoir un [[2. Glossaire#Avantage et désavantage|avantage]] **aux dégâts** permet de lancer un autre d20.* *Augmenter les dégâts de ce sort permet d'infliger 5 dégâts magique supplémentaire.*", + "tags": [ + "Dégats" + ], + "id": "15" + }, + { + "name": "Foulée aérienne", + "rank": 1, + "type": "knowledge", + "cost": 3, + "speed": "action", + "elements": [ + "air" + ], + "effect": "La vitesse de course de votre cible augmente de 2 cases pendant 1 minute. Elle gagne également un bonus de +1 à l'esquive.", + "tags": [ + "Buff" + ], + "id": "16" + }, + { + "name": "Pression forcée", + "rank": 1, + "type": "precision", + "cost": 5, + "speed": "action", + "elements": [ + "air" + ], + "effect": "Crée une imposante colonne d'air descendent de 3 cases de rayon sur 12 cases de haut à 18 cases de vous. Les créatures à l'intérieur ont un malus de 1 à l'esquive. Les créatures volantes chutent de 3 cases par tour. Dure 5 tours.", + "tags": [ + "Mouvement" + ], + "id": "17" + }, + { + "name": "Poids plume", + "rank": 1, + "type": "knowledge", + "cost": 2, + "speed": "action", + "elements": [ + "air" + ], + "effect": "Réduit le poids d'un objet à un dixième de son poids d'origine pendant 1 minute. Fonctionne sur des objets inertes allant jusqu'à 500kg. ", + "tags": [ + "Utilitaire" + ], + "id": "18" + }, + { + "name": "Conservation", + "rank": 1, + "type": "knowledge", + "cost": 2, + "speed": 1, + "elements": [ + "nature" + ], + "effect": "Permet à jusqu'à 5 herbes ou préparations médicinales de se conserver 1 jour de plus. *Ne peux être utilisé qu'une seule fois par herbe/préparation.*", + "tags": [ + "Utilitaire" + ], + "id": "19" + }, + { + "name": "No name", + "rank": 1, + "type": "instinct", + "cost": 3, + "speed": "action", + "elements": [ + "nature" + ], + "effect": "Vous récupérez un point de fatigue temporaire de la cible que vous touchez.", + "tags": [ + "Support" + ], + "id": "20" + }, + { + "name": "No name", + "rank": 1, + "type": "precision", + "cost": 3, + "speed": "action", + "elements": [ + "nature" + ], + "effect": "Faites un jet d'attaque avec la [[1. Entrainement#La dextérité|dextérité]]. Inflige 2d8+2 dégâts magique à l'armure de la cible.", + "tags": [ + "Dégats" + ], + "id": "21" + }, + { + "name": "Absorption radieuse", + "rank": 1, + "type": "knowledge", + "cost": 3, + "speed": "action", + "elements": [ + "light" + ], + "effect": "Absorbe la lumière d'une zone de 4 cases de rayon, la faisant apparaitre comme plus sombre durant 1 minute. ", + "tags": [ + "Support" + ], + "id": "22" + }, + { + "name": "Orbe de lumière", + "rank": 1, + "type": "knowledge", + "cost": 2, + "speed": "action", + "elements": [ + "light" + ], + "effect": "Fait apparaitre une boule de lumière immatérielle illuminant d'une lumière visible à 12 cases. Peut être bougée de 6 cases avec une action libre.", + "tags": [ + "Utilitaire" + ], + "id": "23" + }, + { + "name": "Pas des ombres", + "rank": 1, + "type": "instinct", + "cost": 4, + "speed": "action", + "elements": [ + "light" + ], + "effect": "Si vous êtes dans une zone de noir total, vous pouvez vous téléporter dans n'importe quelle autre zone de noir total à 9 cases.", + "tags": [ + "Mouvement" + ], + "id": "24" + }, + { + "name": "No name", + "rank": 1, + "type": "instinct", + "cost": 6, + "speed": "action", + "elements": [ + "psyche" + ], + "effect": "Envenime l'esprit de la cible, brouillant sa perception de la réalité et lui faisant voir des images subliminales de chaos. La cible fait un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]] (d8/4 + mod. de psyché) à la [[2. Liste des effets#Apeuré|peur]].", + "tags": [ + "Debuff" + ], + "id": "25" + }, + { + "name": "Boule de feu", + "rank": 2, + "type": "precision", + "cost": 8, + "speed": "action", + "elements": [ + "fire" + ], + "effect": "Lance une boule de feu éclatant sur 4 cases de rayon. Chaque personne dans le rayon doit faire un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]] (d10/6 + mod. d'[[1. Entrainement#L'intelligence|intelligence]]) ou subit 3d10 dégâts de feu.", + "tags": [ + "Dégats" + ], + "id": "26" + }, + { + "name": "No name", + "rank": 2, + "type": "knowledge", + "cost": 5, + "speed": "action", + "elements": [ + "earth" + ], + "effect": "Fait apparaitre une myriade de petites pierres flottantes qui forment une ligne de 6 cases de long pour 3 lignes de haut. Tout le monde peut passer au travers mais les projectiles et sorts de précisions qui le traversent voit leur dé de dégâts réduit de 1 niveau. %% Important, pas de limite de durée %%", + "tags": [ + "Support" + ], + "id": "27" + }, + { + "name": "No name", + "rank": 2, + "type": "precision", + "cost": 4, + "speed": "action", + "elements": [ + "earth" + ], + "effect": "Durant 1 minute, vos [[4. Équipement#Les armes naturelles|armes naturelles]] se recouvrent de roches, infligeant des dégâts supplémentaires égal à votre mod. d'intelligence. A chaque coup porté (réussi comme raté), les dégâts décroient d'un point jusqu'à arrivée à 0.", + "tags": [ + "Buff" + ], + "id": "28" + }, + { + "name": "No name", + "rank": 2, + "type": "instinct", + "cost": 5, + "speed": "action", + "elements": [ + "arcana" + ], + "effect": "Votre cible doit faire un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]] (d4/3 + mod. d'[[1. Entrainement#L'intelligence|intelligence]]) à l'[[2. Liste des effets#Influencé|influence]]. En cas d'échec, elle perds 2d4[[2. Glossaire#Jet explosif|!]] mana.", + "tags": [ + "Debuff" + ], + "id": "29" + }, + { + "name": "Enchantement dense", + "rank": 2, + "type": "knowledge", + "cost": 3, + "speed": "action", + "elements": [ + "arcana" + ], + "effect": "Condense de l'énergie magique dans toutes les arme ou projectiles sur vous. Vous faites une attaque immédiatement après avoir lancé ce sort sans dépenser d'action, avec chaque arme infligeant 1d8 dégâts supplémentaire. Les dégâts de l'arme deviennent magique.", + "tags": [ + "Buff" + ], + "id": "30" + }, + { + "name": "Enchantement tenace", + "rank": 2, + "type": "knowledge", + "cost": 4, + "speed": "action", + "elements": [ + "arcana" + ], + "effect": "Condense de l'énergie magique dans une arme sur vous *jusqu'à la fin de votre prochain tour*. Vous faites une attaque immédiatement après avoir lancé ce sort sans dépenser d'action, infligeant 1d8 dégâts supplémentaire. Les dégâts de l'arme deviennent magique.", + "tags": [ + "Buff" + ], + "id": "31" + }, + { + "name": "No name", + "rank": 2, + "type": "knowledge", + "cost": 7, + "speed": "action", + "elements": [ + "air" + ], + "effect": "Vous générez un vent chaotique dans un cylindre de 4 cases de rayon sur 6 cases de hauteur pendant 1 minute. Toute personne dans la zone doit se déplacer une fois par tour pour contrebalancer les puissantes rafales ou subira un malus de -2 à ces jets (hors [[1. Magie#Les sorts instinctif|sort d'instinct]]).", + "tags": [ + "Debuff" + ], + "id": "32" + }, + { + "name": "No name", + "rank": 2, + "type": "precision", + "cost": 4, + "speed": "action", + "elements": [ + "air" + ], + "effect": "Vous bénissez temporairement un arc avec la magie des vents pour les 3 prochaines attaques. Les flèches tirée par cet arc ont une vélocité accrue, les portée sont doublée et vous avez un bonus de +2 pour toucher à moyenne distance.", + "tags": [ + "Buff" + ], + "id": "33" + }, + { + "name": "No name", + "rank": 2, + "type": "precision", + "cost": 5, + "speed": "action", + "elements": [ + "air" + ], + "effect": "Choisissez une cible volante visible à portée. Votre cible doit faire un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]] (d10/6 + mod. de [[1. Entrainement#La dextérité|dextérité]]) aux [[1. Magie#Les sorts de précision|sorts de précision]]. En cas d'échec, elle voit sa vitesse de vol réduite de 12 cases.", + "tags": [ + "Mouvement" + ], + "id": "34" + }, + { + "name": "No name", + "rank": 2, + "type": "instinct", + "cost": 4, + "speed": "reaction", + "elements": [ + "air" + ], + "effect": "Vous pouvez lancer ce sort lorsque vous êtes ciblé par une attaque au corps à corps. Faites un jet de [[1. Magie#Les sorts instinctif|sort instinctif]], si vous faites un meilleur score que l'attaque de votre attaquant, vous lui faites rater son attaque. Cependant, si vous ne parvenez pas à bloquer son attaque, il gagne un niveau de dé de dégâts sur son attaque. %% À vérifier %%", + "tags": [ + "Tank" + ], + "id": "35" + }, + { + "name": "No name", + "rank": 2, + "type": "knowledge", + "cost": 6, + "speed": "action", + "elements": [ + "nature" + ], + "effect": "Votre cible doit faire un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]] (d8/5 + mod. d'[[1. Entrainement#L'intelligence|intelligence]]) aux [[1. Magie#Les sorts de savoir|sorts de savoir]]. En cas d'échec, elle subit un point de fatigue temporaire.", + "tags": [ + "Debuff" + ], + "id": "36" + }, + { + "name": "No name", + "rank": 2, + "type": "instinct", + "cost": 5, + "speed": "reaction", + "elements": [ + "nature" + ], + "effect": "Vous récupérez un point de fatigue persistante de votre cible.", + "tags": [ + "Support" + ], + "id": "37" + }, + { + "name": "No name", + "rank": 2, + "type": "knowledge", + "cost": 4, + "speed": "action", + "elements": [ + "light" + ], + "effect": "Vous gagnez pendant 1 minute une vision dans le noir à 12 cases.", + "tags": [ + "Utilitaire" + ], + "id": "38" + }, + { + "name": "Poussière incandescente", + "rank": 2, + "type": "knowledge", + "cost": 5, + "speed": "action", + "elements": [ + "light" + ], + "effect": "Crée une zone de poussière brulante de 6 cases de rayon émettant une lumière intense durant 1 minute. Finir son tour dans la poussière vous fait subir 1d12 dégâts de feu. #rework", + "tags": [ + "Dégats" + ], + "id": "39" + }, + { + "name": "Apaisement", + "rank": 2, + "type": "knowledge", + "cost": 3, + "speed": "action", + "elements": [ + "psyche" + ], + "effect": "En touchant la cible, guérit l'influence, le charme et la peur, mais inflige un malus de -1 aux jets de résistance de défense pour ces effets.", + "tags": [ + "Support" + ], + "id": "40" + }, + { + "name": "Painshock", + "rank": 2, + "type": "instinct", + "cost": 6, + "speed": "action", + "elements": [ + "psyche" + ], + "effect": "*Ne fonctionne que si la cible touchée à subit des dégâts depuis votre dernier tour.* Vous touchez une plaie et intensifiez la douleur à l'extrême. La cible doit faire un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]] (d10/5 + mod. d'[[1. Entrainement#L'intelligence|intelligence]] + 1 par 10% de vie perdu au tour précédent) à l'[[2. Liste des effets#L'hébètement|hébètement]]. ", + "tags": [ + "Debuff" + ], + "id": "41" + }, + { + "name": "Perturbateur", + "rank": 2, + "type": "instinct", + "cost": 4, + "speed": "reaction", + "elements": [ + "psyche" + ], + "effect": "Vous pouvez perturber les flux magiques d'un lanceur de sort que vous voyez à 9 cases pour lui imposer un malus de 3 à son lancer de sort en cours.", + "tags": [ + "Debuff" + ], + "id": "42" + }, + { + "name": "Tourbillon de braise", + "rank": 3, + "type": "knowledge", + "cost": 6, + "speed": "action", + "elements": [ + "fire" + ], + "effect": "Fait apparaitre une tornade de braises ardente de 2 cases de rayon. Chaque tour, vous pouvez la faire bouger de 2 cases pour 1 point d'action. Toute personne commençant son tour dans la tornade subit 2d8 dégâts de feu.", + "tags": [ + "Dégats" + ], + "id": "43" + }, + { + "name": "Engourdissement", + "rank": 3, + "type": "instinct", + "cost": 5, + "speed": "action", + "elements": [ + "ice" + ], + "effect": "La cible doit faire un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]] (d10/6 + mod. de [[1. Entrainement#La psyché|psyché]]) aux [[1. Magie#Les sorts instinctif|sorts d'instinct]], divisant sa vitesse par 2 et lui imposant un malus de 3 pour attaquer avec des armes en cas d'échec.", + "tags": [ + "Debuff" + ], + "id": "44" + }, + { + "name": "Orbe de chaos", + "rank": 3, + "type": "precision", + "cost": 9, + "speed": "action", + "elements": [ + "thunder" + ], + "effect": "Fait apparaitre une orbe de foudre d'une case. Chaque tour pendant 1 minute, à l'initiative de l'environnement, l'orbe lance un d4 pour choisir un point cardinal. Chaque personne dans un cône de 6 cases (90°) dans cette direction doit faire un [[3. Résistance aux chocs#Le jet de résistance|jet de résistance]] (d12/7 + mod. d'[[1. Entrainement#L'intelligence|intelligence]]) aux [[1. Magie#Les sorts de précision|sorts de précision]] ou subit 6d6[[2. Glossaire#Jet explosif|!]] dégâts de foudre.", + "tags": [ + "Dégats" + ], + "id": "45" + }, + { + "name": "Rejet pur", + "rank": 3, + "type": "knowledge", + "cost": null, + "speed": "action", + "elements": [ + "arcana" + ], + "effect": "Faites un jet d'attaque avec l'[[1. Entrainement#L'intelligence|intelligence]]. Vous propulsez une énergie magique pure condensée sur votre adversaire avec une puissance absolue. Vous infligez 1d6[[2. Glossaire#Jet explosif|!]]+2 dégâts magique par tranche de 3 mana dépensé. Vous pouvez dépenser jusqu'à 30 mana. Vous subissez un malus de 4 au lancer de sort au tour suivant.", + "tags": [ + "Dégats" + ], + "id": "46" + }, + { + "name": "Disruption", + "rank": 3, + "type": "instinct", + "cost": 5, + "speed": "action", + "elements": [ + "arcana" + ], + "effect": "Faites un jet d'attaque avec la [[1. Entrainement#La psyché|psyché]]. Vous imposez un jet de concentration à une cible que vous voyez. La difficulté est de 4d6+4.", + "tags": [ + "Debuff" + ], + "id": "47" + }, + { + "name": "Anomalie immaculée", + "rank": 3, + "type": "knowledge", + "cost": 6, + "speed": "action", + "elements": [ + "light" + ], + "effect": "Place une anomalie visuelle à 3 cases émettant une [[6. Visibilité et lumière#Lumière intense|lumière vive]] à 9 cases. Lorsqu'un être vivant rentre en contact avec l'anomalie, il absorbe toute l'énergie magique et subit 4d8 points de dégâts magique", + "tags": [ + "Dégats" + ], + "id": "48" + } + ] } diff --git a/types/character.d.ts b/types/character.d.ts index 7c898d3..78bb99b 100644 --- a/types/character.d.ts +++ b/types/character.d.ts @@ -32,6 +32,18 @@ export type CharacterConfig = { training: Record>; abilities: Record; resistances: Record; + spells: SpellConfig[]; +}; +export type SpellConfig = { + id: string; + name: string; + rank: 1 | 2 | 3; + type: SpellType; + cost: number; + speed: "action" | "reaction" | number; + elements: Array<"fire" | "ice" | "thunder" | "earth" | "arcana" | "air" | "nature" | "light" | "psyche">; + effect: string; + tags?: string[]; }; export type AbilityConfig = { max: [MainStat, MainStat];