From 8241967ab6c1aa6474dd49281435bc55b80efdb5 Mon Sep 17 00:00:00 2001 From: Martin Gasque Date: Mon, 8 Apr 2024 12:30:23 +0200 Subject: [PATCH] Add jutsu data, level datas & clean Character page Add html-react-parser to the project, should npm install at boot --- .gitignore | 2 +- package.json | 1 + src/data/jutsuData.js | 2033 ++++++++++++++++++++++++++++++++++ src/data/levels.js | 96 ++ src/pages/Character/index.js | 54 +- 5 files changed, 2169 insertions(+), 17 deletions(-) create mode 100644 src/data/jutsuData.js create mode 100644 src/data/levels.js diff --git a/.gitignore b/.gitignore index acf28f9..a3051d4 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,7 @@ packages/react-devtools-timeline/dist# See https://help.github.com/articles/igno /coverage # production -/src/data +# /src/data # to uncomment /build temp dist diff --git a/package.json b/package.json index 44f969b..d102d3e 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "fs-extra": "^11.2.0", + "html-react-parser": "^5.1.10", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.22.3", diff --git a/src/data/jutsuData.js b/src/data/jutsuData.js new file mode 100644 index 0000000..476160e --- /dev/null +++ b/src/data/jutsuData.js @@ -0,0 +1,2033 @@ +const jutsus = [ + { + _id: "eOYpllYzm00wXcXH", + name: "Bombe de fum\u00c3\u00a9e", + type: "spell", + img: "icons/magic/fire/explosion-fireball-medium-blue.webp", + effects: [], + folder: "pUdIcyUJQM87DODM", + sort: 300000, + flags: {}, + system: { + description: { + value: + '

Les ninjas doivent tr\u00c3\u00a8s souvent dispara\u00c3\u00aetre de la vue de tous. A chaque fin de session, un Ninja peut d\u00c3\u00a9cider de s\'\u00c3\u00a9clipser et ne pas r\u00c3\u00a9appara\u00c3\u00aetre \u00c3\u00a0 la prochaine session de jeu.

Si un ninja est vaincu, tombe en dessous des 0 hp et \u00c3\u00a9choue ses jets de sauvegarde contre la mort, son corps est emport\u00c3\u00a9 par son clan dans le m\u00c3\u00aame proc\u00c3\u00a9d\u00c3\u00a9.

', + chat: "", + unidentified: "", + }, + source: { custom: "" }, + activation: { type: "", cost: 0, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { value: null, width: null, units: "", type: "", prompt: true }, + range: { value: null, long: null, units: "" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "", target: null, amount: null, scale: false }, + ability: null, + actionType: "", + attackBonus: "", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 1, + school: "abj", + components: { + vocal: false, + somatic: false, + material: false, + ritual: false, + concentration: false, + }, + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + }, + ownership: { default: 3, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "2.4.0", + coreVersion: "11.315", + createdTime: 1702230822389, + modifiedTime: 1702230822389, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!eOYpllYzm00wXcXH", + }, + { + _id: "TNqvqXDHn6Ldl08K", + name: "Boue primoridale", + type: "spell", + img: "icons/magic/earth/strike-fist-stone-light.webp", + effects: [], + folder: "Dw3zZbKivXfgPtZv", + sort: 250000, + flags: { + autoanimations: { + version: 4, + killAnim: false, + animLevel: false, + options: { + ammo: false, + staticType: "source", + menuType: "particles", + variant: "01", + enableCustom: false, + repeat: null, + delay: null, + scale: null, + opacity: null, + unbindAlpha: false, + unbindVisibility: false, + persistent: false, + }, + override: true, + sourceToken: { enable: false }, + targetToken: { enable: false }, + levels3d: { type: "" }, + macro: { enable: false }, + animType: "static", + animation: "dots", + color: "green", + audio: { a01: { enable: false } }, + preview: true, + explosions: { enable: false }, + }, + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + '
\n
\n
\n
\n
\n
\n
\n
Permet de recouvrir un alli\u00c3\u00a9 ou soi-m\u00c3\u00aame de boue.
Cela lui conf\u00c3\u00a8re une resistance aux d\u00c3\u00a9gats tranchant, de poison, necrotique et de feu.
De plus, conf\u00c3\u00a8re un nombre de points de vie max temporaire \u00c3\u00a9gale a votre niveau (et soigne du m\u00c3\u00aame montant) \u00c3\u00a0 la cr\u00c3\u00a9ature recouverte.
Une seule cible peut \u00c3\u00aatre recouverte de boue primordiale
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\u00c2\u00a0
\n
\u00c2\u00a0
\n
\u00c2\u00a0
\n
\u00c2\u00a0
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\u00c2\u00a0
\n
\n
\u00c2\u00a0
\n
\n
\n
\n
\n
\n
\n
\n
', + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: null, + width: null, + units: "touch", + type: "ally", + prompt: true, + }, + range: { value: null, long: null, units: "touch" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 3, scale: false }, + ability: "", + actionType: "util", + chatFlavor: + "Deviens resistant au feu, aux d\u00c3\u00a9gats n\u00c3\u00a9crotiques, aux d\u00c3\u00a9gats de poisons et aux d\u00c3\u00a9gats tranchants.", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 3, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!TNqvqXDHn6Ldl08K", + }, + { + _id: "MKWxMbJEBrj8hxrM", + name: "Chakra Koky\u00c5\u00ab | Souffle de chakra", + type: "spell", + img: "icons/skills/wounds/blood-cells-vessel-blue.webp", + effects: [], + folder: "SYYVLYXoq7K9DW6r", + sort: 500000, + flags: { + autoanimations: { + version: 4, + killAnim: false, + animLevel: false, + options: { + ammo: false, + menuType: "marker", + variant: "01", + enableCustom: false, + auraRadius: null, + opacity: null, + ignoreTarget: false, + unbindAlpha: false, + unbindVisibility: false, + }, + override: true, + sourceToken: { enable: false }, + targetToken: { enable: false }, + levels3d: { type: "" }, + macro: { enable: false }, + animType: "aura", + animation: "energystrands", + color: "blue", + audio: { a01: { enable: false } }, + preview: true, + }, + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + '

Le shinobi se concentre sur son souffle afin de puiser le maximum de ses capacit\u00c3\u00a9 en apportant l\'oxyg\u00c3\u00a8ne a ses muscles. Pendant 1 minute, le shinobi peut utiliser un souflle afin de profiter de l\'un des effets suivants :

\n

- Souffle de la r\u00c3\u00a9cup\u00c3\u00a9ration : Une action bonus pour lancer, permet de r\u00c3\u00a9cup\u00c3\u00a9rer 1d8 points de vie

\n

- Souffle de la t\u00c3\u00a9m\u00c3\u00a9rit\u00c3\u00a9 : Une action bonus pour lancer, conf\u00c3\u00a8re l\'avantage au prochain jet d\'attaque

\n

- Souffle de l\'endurance : Utilisable par une r\u00c3\u00a9action, permet de doubler son bonus de maitrise pour les jets de sauvegarde pendant 1 tour

\n

- Souffle de survie : Utilisable par une r\u00c3\u00a9action, permet que la faim et la fatigue soient dissip\u00c3\u00a9e pour 24h.

', + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: null, + width: null, + units: "self", + type: "", + prompt: true, + }, + range: { value: null, long: null, units: "self" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 5, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 5, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!MKWxMbJEBrj8hxrM", + }, + { + _id: "BZidYKw1BCqoxxb6", + name: "Doheki | Mur de boue", + type: "spell", + img: "icons/magic/earth/projectile-stone-landslide.webp", + effects: [], + folder: "Dw3zZbKivXfgPtZv", + sort: 225000, + flags: { + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + advancedspelleffects: { + enableASE: false, + spellEffect: "Wall Spell", + effectOptions: { + summons: { + zombie: { actor: "fqxQqIyEknrss0fn" }, + skeleton: { actor: "fqxQqIyEknrss0fn" }, + }, + range: 10, + magicSchool: "abjuration", + magicSchoolColor: "blue", + effectAColor: "purple", + effectBColor: "blue", + magicSchoolSound: "", + magicSchoolSoundDelay: 0, + magicSchoolVolume: 1, + magicSchoolSoundOutro: "", + magicSchoolSoundDelayOutro: 0, + magicSchoolVolumeOutro: 1, + effectASound: "", + effectASoundDelay: 0, + effectASoundVolume: 1, + effectBSound: "", + effectBSoundDelay: 0, + effectBSoundVolume: 1, + wallType: "force", + levelScaling: true, + dmgDieCount: 5, + dmgDie: "d8", + dmgMod: 0, + wallLength: 60, + wallHeight: 20, + wallWidth: 1, + wallRadius: 10, + useWebP: false, + fireColor: "blue", + fireImpactColor: "blue", + wallSpellDmgSound: "", + wallSpellDmgSoundDelay: 0, + wallSpellDmgVolume: 0.5, + wallSpellSound: "", + wallSpellSoundDelay: 0, + wallSpellVolume: 0.5, + wallSegmentSize: 10, + panelCount: 10, + forceColor: "grey", + }, + }, + autoanimations: { + version: 4, + killAnim: false, + animLevel: false, + options: { + ammo: false, + menuType: "square", + variant: "", + enableCustom: true, + repeat: null, + delay: null, + scaleX: 3, + scaleY: 2, + opacity: null, + removeTemplate: false, + persistent: false, + customPath: + "modules/jaamod/AnimatedArt/Spells-Effects/earthTremor.webm", + }, + override: true, + sourceToken: { enable: false }, + targetToken: { enable: false }, + levels3d: { type: "" }, + macro: { enable: false }, + animType: "template", + animation: "", + color: "", + audio: { a01: { enable: false } }, + preview: false, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + "

Permet de former un mur de boue, arr\u00c3\u00a9tant la plupart des attaques physiques.

\n

\u00c2\u00a0

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: null, + width: null, + units: "m", + type: "square", + prompt: true, + }, + range: { value: 0, long: 9, units: "m" }, + uses: { value: 0, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 2, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 2, + school: "con", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!BZidYKw1BCqoxxb6", + }, + { + _id: "Q0tA3NEeu8nFxXj8", + name: "Fenikkusu Regaria | Ph\u00c3\u00a9nix regalia", + type: "spell", + img: "icons/magic/fire/projectile-wave-arrow.webp", + effects: [], + folder: "kQxG5RFU69FLBPr1", + sort: 500000, + flags: { + autoanimations: { + version: 4, + killAnim: false, + animLevel: true, + options: { + ammo: false, + menuType: "circle", + variant: "loop", + enableCustom: true, + repeat: null, + delay: null, + scaleX: 3, + scaleY: 3, + opacity: null, + removeTemplate: false, + persistent: false, + customPath: "modules/jaamod/AnimatedArt/Fire/fireFlat.webm", + }, + override: true, + sourceToken: { enable: false }, + targetToken: { enable: false }, + levels3d: { type: "" }, + macro: { enable: false }, + animType: "template", + animation: "moonbeam", + color: "blue", + audio: { a01: { enable: false } }, + preview: false, + }, + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + }, + system: { + description: { + value: + '
\n
\n
\n
\n
\n
\n
\n
Invoque un ph\u00c3\u00a9nix qui viens soigner vos alt\u00c3\u00a9ration d\'\u00c3\u00a9tat et blessures.
Le ph\u00c3\u00a9nix \u00c3\u00a0 10 points de vie, une CA de 10 et n\'a pas de mouvement.
Il peut, une fois par tour, lancer un sort de soins dans une zone de 9m de rayon autour de lui.
Le sort de soin fait r\u00c3\u00a9cup\u00c3\u00a9rer 2d8 hp a chaque personnages \u00c3\u00a0 l\'int\u00c3\u00a9rieur de la zone.
Le ph\u00c3\u00a9nix se dissipe lorsque son invocateur n\'a plus besoin de soin ou au bo\u00c3\u00bbt de 3 tours
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\u00c2\u00a0
\n
\u00c2\u00a0
\n
Invoque un ph\u00c3\u00a9nix qui soigne les alt\u00c3\u00a9rations d\'\u00c3\u00a9tat et blessures des personnages \u00c3\u00a0 9m de rayon autour de sa position.
Le ph\u00c3\u00a9nix a 10 points de vie, une CA de 10 et n\'a pas de mouvement
Chaque tour, il fait r\u00c3\u00a9cup\u00c3\u00a9rer 2d8hp \u00c3\u00a0 chaque personnages se trouvant \u00c3\u00a0 l\'int\u00c3\u00a9rieur de sa zone d\'effet.
Le ph\u00c3\u00a9nix se dissipe lorsque son invocateur \u00c3\u00a0 atteint son maximum de point de vie\u00c2\u00a0

\n
\n
\n
\n
\n
\n
\n
', + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { value: null, width: null, units: "", type: "", prompt: true }, + range: { value: null, long: null, units: "touch" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "", target: "", amount: null, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "2d8", + save: { ability: "", dc: null, scaling: "spell" }, + level: 5, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + attack: { bonus: "", flat: false }, + summons: null, + properties: [], + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!Q0tA3NEeu8nFxXj8", + }, + { + _id: "ZyfjYPTG49BYbMK3", + name: "F\u00c5\u00abryoku | Force du vent", + type: "spell", + img: "icons/magic/control/debuff-energy-hold-levitate-blue-yellow.webp", + effects: [], + folder: "SYYVLYXoq7K9DW6r", + sort: 325000, + flags: { + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + autoanimations: { + version: 4, + killAnim: false, + animLevel: false, + options: { + ammo: false, + staticType: "source", + menuType: "tokenborder", + variant: "05", + enableCustom: false, + repeat: null, + delay: null, + scale: null, + opacity: null, + unbindAlpha: false, + unbindVisibility: false, + persistent: true, + }, + override: true, + sourceToken: { enable: false }, + targetToken: { enable: false }, + levels3d: { type: "" }, + macro: { enable: false }, + animType: "static", + animation: "static", + color: "blue", + audio: { a01: { enable: false } }, + preview: true, + explosions: { enable: false }, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + "

Permet de controler de petits objets dans les airs. Ainsi lors de l'utilisation d'arme a distance, vous obtenez l'avantage au jet de toucher. De plus, vous ne consommez pas de munition. Enfin, les armes a distances sont envoy\u00c3\u00a9 avec plus de puissance leur conf\u00c3\u00a9rant un bonus aux d\u00c3\u00a9gat \u00c3\u00a9gal au bonus d'incantation du shinobi (INT)

Dure 30 secondes (5 tours)\u00c2\u00a0

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: null, + width: null, + units: "self", + type: "", + prompt: true, + }, + range: { value: null, long: null, units: "self" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 3, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 3, + school: "enc", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!ZyfjYPTG49BYbMK3", + }, + { + _id: "5Rw0b54xFtYzhBOe", + name: "Hi no sh\u00c4\u00abto | Nappe de feu", + type: "spell", + img: "icons/magic/fire/beam-jet-stream-trails-orange.webp", + effects: [], + folder: "kQxG5RFU69FLBPr1", + sort: 0, + flags: { + "midi-qol": { fumbleThreshold: null, effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["concentration"] }, + }, + system: { + description: { value: "", chat: "" }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "inst" }, + cover: null, + crewed: false, + target: { value: 9, width: 1, units: "m", type: "line", prompt: true }, + range: { value: null, long: 7, units: "m" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 1, scale: false }, + ability: "", + actionType: "save", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [["1d8+@mod.int", "fire"]], versatile: "" }, + formula: "", + save: { ability: "dex", dc: null, scaling: "spell" }, + level: 2, + school: "evo", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["concentration"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!5Rw0b54xFtYzhBOe", + }, + { + _id: "4ZtTP9O9xS7gwfb4", + name: "Ishi no ha | Lame de pierre", + type: "spell", + img: "icons/weapons/swords/greatsword-evil-green.webp", + effects: [], + folder: "Dw3zZbKivXfgPtZv", + sort: 312500, + flags: { + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + autoanimations: { + version: 4, + killAnim: false, + animLevel: false, + options: { + ammo: false, + menuType: "generic", + variant: "", + enableCustom: false, + auraRadius: null, + opacity: null, + ignoreTarget: false, + unbindAlpha: false, + unbindVisibility: false, + }, + override: true, + sourceToken: { enable: false }, + targetToken: { enable: false }, + levels3d: { type: "" }, + macro: { enable: false }, + animType: "aura", + animation: "", + color: "", + audio: { a01: { enable: false } }, + preview: true, + }, + core: { sourceId: "Item.F43CDwIha4EmwXTg" }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + "

Recouvre son arme de chakra, rendant son tranchant surnaturel ou son centre de gravit\u00c3\u00a9 plus dense.
R\u00c3\u00a9duit la zone de critique de 1 pendant 8heures.

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { value: null, width: null, units: "", type: "", prompt: true }, + range: { value: null, long: null, units: "" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { + type: "attribute", + target: "resources.primary.value", + amount: 4, + scale: false, + }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 4, + school: "enc", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!4ZtTP9O9xS7gwfb4", + }, + { + _id: "2kkm7kFz2jjY6v0H", + name: "Jet de flammes", + type: "spell", + img: "icons/magic/fire/projectile-fireball-embers-yellow.webp", + effects: [], + folder: "kQxG5RFU69FLBPr1", + sort: -50000, + flags: { + "midi-qol": { fumbleThreshold: null, effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + ignoreTotalCover: false, + }, + autoanimations: { + version: 4, + killAnim: false, + animLevel: false, + options: { + ammo: false, + menuType: "spell", + variant: "01", + enableCustom: false, + repeat: null, + delay: null, + }, + override: true, + color: "orange", + }, + core: { sourceId: "Item.eZnT4wULyFjNQPb0" }, + }, + system: { + description: { + value: + "

Le shinobi cr\u00c3\u00a9\u00c3\u00a9e une flamme dans la paume de sa main de laquelle il peut faire jaillir un trait de feu dans la direction de son choix.

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "inst" }, + cover: null, + crewed: false, + target: { value: null, width: null, units: "", type: "", prompt: true }, + range: { value: null, long: 18, units: "m" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 1, scale: false }, + ability: "", + actionType: "rsak", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [["1d8", "fire"]], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 1, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + attack: { bonus: "", flat: false }, + summons: null, + properties: [], + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!2kkm7kFz2jjY6v0H", + }, + { + _id: "exWaZzfCLPga7AgH", + name: "Jishin | Seisme", + type: "spell", + img: "icons/magic/earth/explosion-lava-stone-yellow.webp", + effects: [], + folder: "Dw3zZbKivXfgPtZv", + sort: 450000, + system: { + description: { value: "", chat: "" }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: 15, + width: null, + units: "m", + type: "square", + prompt: true, + }, + range: { value: null, long: 60, units: "m" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 5, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "5d6", + save: { ability: "dex", dc: null, scaling: "spell" }, + level: 5, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + attack: { bonus: "", flat: false }, + summons: null, + properties: [], + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!exWaZzfCLPga7AgH", + }, + { + _id: "3eHhh6sTgduOhHPt", + name: "J\u00c5\u00abryokuseki | Pierres gravitationnelles", + type: "spell", + img: "icons/magic/earth/projectiles-stone-salvo-gray.webp", + effects: [], + folder: "Dw3zZbKivXfgPtZv", + sort: 200000, + + system: { + description: { + value: + "

Sort 2 pierres du sol, permet un jet de toucher \u00c3\u00a0 distance suppl\u00c3\u00a9mentaire a chaque tour pour envoyer une pierre sur l'adversaire, infligeant 1d6 d\u00c3\u00a9gats contendants

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: null, + width: null, + units: "self", + type: "", + prompt: true, + }, + range: { value: null, long: null, units: "" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 1, scale: false }, + ability: "", + actionType: "rsak", + chatFlavor: "attaque suppl\u00c3\u00a9mentaire", + critical: { threshold: null, damage: "" }, + damage: { parts: [["1d6", "bludgeoning"]], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 1, + school: "con", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!3eHhh6sTgduOhHPt", + }, + { + _id: "p5HNmXlr6kjvInRN", + name: "Kaky\u00c5\u00ab | Boule de feu", + type: "spell", + img: "icons/magic/fire/projectile-fireball-smoke-strong-orange.webp", + effects: [], + folder: "kQxG5RFU69FLBPr1", + sort: 300000, + system: { + description: { + value: + '
\n
Lance une boule de feu, infligeant 4d8 d\u00c3\u00a9gat de feu dans une zone de 9m de diam\u00c3\u00aatre.
\n

Les personnages touch\u00c3\u00a9s peuvent jeter un jet de sauvegarde de dext\u00c3\u00a9rit\u00c3\u00a9 pour r\u00c3\u00a9duire les d\u00c3\u00a9gats subits de moiti\u00c3\u00a9.

\n
', + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { value: null, width: null, units: "", type: "", prompt: true }, + range: { value: null, long: null, units: "" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 4, scale: false }, + ability: "", + actionType: "rsak", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [["4d8", "fire"]], versatile: "" }, + formula: "", + save: { ability: "dex", dc: null, scaling: "spell" }, + level: 4, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!p5HNmXlr6kjvInRN", + }, + { + _id: "TJA8dnuEd2eKAY3l", + name: "Kaze dangan | Projectile de vent", + type: "spell", + img: "icons/magic/sonic/projectile-shock-wave-blue.webp", + effects: [], + folder: "SYYVLYXoq7K9DW6r", + sort: 125000, + flags: { + "midi-qol": { fumbleThreshold: null, effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + "

Envoie deux projectiles sur l'adversaire. Chacun infligent 1 point de d\u00c3\u00a9gat tranchant et repoussent de 1,5m.

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { value: null, width: null, units: "", type: "", prompt: true }, + range: { value: null, long: null, units: "" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 1, scale: false }, + ability: "", + actionType: "rsak", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [["1", ""]], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 1, + school: "evo", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!TJA8dnuEd2eKAY3l", + }, + { + _id: "cXdimhYjM8ZZnSui", + name: "Kaze no kairō | Couloir de vent", + type: "spell", + img: "icons/magic/air/fog-gas-smoke-swirling-white.webp", + effects: [], + folder: "SYYVLYXoq7K9DW6r", + sort: 150000, + flags: { + core: { + sourceId: "Item.jvTeyEiWJd7EOCPy", + }, + "midi-qol": { + effectActivation: false, + }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { + migratedProperties: ["vocal", "somatic"], + }, + }, + system: { + description: { + value: + "

Créer un couloir de 18m de long et 3m de large en face du shinobi. Ce dernier peut choisir le sens du vent et peut, par une action bonus a chaque tour, changer l'orientation du couloir
Quiconque dans ce couloir de vent doit jeter un jet de sauvegarde de force ou bien est repoussé de 4,5m
Le vent souffle au maximum à 75KM/h

", + chat: "", + }, + source: { + custom: "", + }, + activation: { + type: "action", + cost: 1, + condition: "", + }, + duration: { + value: "", + units: "", + }, + cover: null, + crewed: false, + target: { + value: 18, + width: 1, + units: "m", + type: "line", + prompt: true, + }, + range: { + value: 18, + long: 36, + units: "m", + }, + uses: { + value: null, + max: "", + per: null, + recovery: "", + prompt: true, + }, + consume: { + type: "attribute", + target: "resources.primary.value", + amount: 2, + scale: false, + }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { + threshold: null, + damage: "", + }, + damage: { + parts: [], + versatile: "", + }, + formula: "", + save: { + ability: "str", + dc: null, + scaling: "spell", + }, + level: 2, + school: "abj", + materials: { + value: "", + consumed: false, + cost: 0, + supply: 0, + }, + preparation: { + mode: "prepared", + prepared: false, + }, + scaling: { + mode: "none", + formula: "", + }, + properties: ["vocal", "somatic"], + attack: { + bonus: "", + flat: false, + }, + summons: null, + }, + ownership: { + default: 0, + rnDWxiLHx5q6fRFC: 3, + }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!cXdimhYjM8ZZnSui", + }, + { + _id: "K69Apv4uzOEHxK7B", + name: "Kaze no ha | Lames de vent", + type: "spell", + img: "icons/magic/air/air-wave-gust-blue.webp", + effects: [], + folder: "SYYVLYXoq7K9DW6r", + sort: 350000, + flags: { + "midi-qol": { fumbleThreshold: null, effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + autoanimations: { + version: 4, + killAnim: false, + animLevel: false, + options: { + ammo: false, + staticType: "source", + menuType: "generic", + variant: "intro", + enableCustom: false, + repeat: null, + delay: null, + scale: 6, + opacity: 0.8, + unbindAlpha: false, + unbindVisibility: false, + persistent: false, + }, + override: true, + sourceToken: { enable: false }, + targetToken: { enable: false }, + levels3d: { type: "" }, + macro: { enable: false }, + animType: "static", + animation: "whirl", + color: "blue", + audio: { a01: { enable: false } }, + preview: true, + explosions: { enable: false }, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + '

Le shinobi cr\u00c3\u00a9\u00c3\u00a9e des lames de vents qui d\u00c3\u00a9coupent ses adversaires autour de lui. Les adversaires dans un rayon de 9m autour du shinobi jettent un jet de dexterit\u00c3\u00a9 pour reduire de moiti\u00c3\u00a9 les d\u00c3\u00a9gats ou subissent 3d10 d\u00c3\u00a9gats tranchants

', + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: 9, + width: null, + units: "m", + type: "radius", + prompt: true, + }, + range: { value: null, long: null, units: "none" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 4, scale: false }, + ability: "", + actionType: "msak", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [["3d10", ""]], versatile: "" }, + formula: "", + save: { ability: "dex", dc: null, scaling: "spell" }, + level: 4, + school: "con", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!K69Apv4uzOEHxK7B", + }, + { + _id: "8S33dtGY88deU6D9", + name: "Kindoringu | Embrasement", + type: "spell", + img: "icons/magic/fire/flame-burning-creature-skeleton.webp", + effects: [], + folder: "kQxG5RFU69FLBPr1", + sort: 150000, + flags: { + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + }, + system: { + description: { + value: + '
\n
\u00c2\u00a0
\n
\n
\n
\n
\n
Embrase un adversaire. Ce dernier subit 1d8 d\u00c3\u00a9gat de feu \u00c3\u00a0 chaque tour pendant 5 tours.
\n


Il peut alors jeter un jet de constitution a chaque tour afin de ne subir que la moiti\u00c3\u00a9 des d\u00c3\u00a9gats de feu subits ce tour ci.
Si la cr\u00c3\u00a9ature r\u00c3\u00a9ussis 2 jets de consitution d\'affil\u00c3\u00a9, l\'effet s\'estompe.

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
', + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: null, + width: null, + units: "", + type: "creature", + prompt: true, + }, + range: { value: null, long: 9, units: "m" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 3, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [["1d8", ""]], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 3, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + attack: { bonus: "", flat: false }, + summons: null, + properties: [], + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!8S33dtGY88deU6D9", + }, + { + _id: "H9dCcBmNxHshLoA8", + name: "Kiry\u00c5\u00ab | Courant aerien", + type: "spell", + img: "icons/magic/air/air-smoke-casting.webp", + effects: [], + folder: "SYYVLYXoq7K9DW6r", + sort: 100000, + flags: { + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + "

G\u00c3\u00a9n\u00c3\u00a8re une courant d'air d'une force maximale de 45km/h entre deux points \u00c3\u00a9loign\u00c3\u00a9s de 9m l'un l'autre, tout deux se situant \u00c3\u00a0 moins de 30m du lanceur

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "", cost: 0, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { value: null, width: null, units: "", type: "", prompt: true }, + range: { value: null, long: null, units: "" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "", target: null, amount: null, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 0, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!H9dCcBmNxHshLoA8", + }, + { + _id: "AFqptq4k0mCjTHjA", + name: "Mizuguruma | Tirs d'eau", + type: "spell", + img: "icons/magic/water/projectile-needles-salvo-blue.webp", + effects: [], + folder: "YIUe7c9tlVNf0QOl", + sort: 200000, + flags: { + "midi-qol": { fumbleThreshold: null, effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + autoanimations: { + version: 4, + killAnim: false, + animLevel: false, + options: { + ammo: false, + menuType: "spell", + variant: "01", + enableCustom: true, + repeat: 4, + delay: 500, + customPath: + "modules/JB2A_DnD5e/Library/Generic/Liquid/LiquidSplashSide01_Regular_Blue_600x600.webm", + onlyX: false, + staticType: "target", + scale: null, + opacity: null, + unbindAlpha: false, + unbindVisibility: false, + persistent: false, + }, + override: true, + sourceToken: { enable: false }, + targetToken: { enable: false }, + levels3d: { type: "" }, + macro: { enable: false }, + animType: "static", + animation: "rayoffrost", + color: "blue", + audio: { a01: { enable: false } }, + preview: false, + explosions: { enable: false }, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + "

Permet d'envoyer 1d4 projectile sur l'adversaire qui infligent 1d4 d\u00c3\u00a9gats de froid

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: null, + width: null, + units: "", + type: "creature", + prompt: true, + }, + range: { value: null, long: 18, units: "m" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 1, scale: false }, + ability: "", + actionType: "rsak", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [["1d4", ""]], versatile: "" }, + formula: "1d4", + save: { ability: "", dc: null, scaling: "spell" }, + level: 1, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!AFqptq4k0mCjTHjA", + }, + { + _id: "LDXn1A2WpWBbfDny", + name: "Mizunoawa | Bulles d'eau", + type: "spell", + img: "icons/magic/water/orb-ice-opaque.webp", + effects: [], + folder: "YIUe7c9tlVNf0QOl", + sort: 500000, + flags: { + "midi-qol": { fumbleThreshold: null, effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + "

Cr\u00c3\u00a9er 3 orbes d'eau qui flottent dans les airs. Elles ont un mouvement de 3m et peuvent \u00c3\u00aatre d\u00c3\u00a9plac\u00c3\u00a9 une par une par une action bonus \u00c3\u00a0 chaque tour. Si un adversaire est touch\u00c3\u00a9 par ces orbes, il doit effectuer un test de dexterit\u00c3\u00a9 sans quoi il est \u00c3\u00a9tourdi pendant 1 tour et l'orbe disparait.

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { + value: null, + width: null, + units: "self", + type: "", + prompt: true, + }, + range: { value: null, long: null, units: "self" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 3, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "Esquive ou soit \u00c3\u00a9tourdi pendant 1 tour.", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "dex", dc: null, scaling: "spell" }, + level: 3, + school: "trs", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!LDXn1A2WpWBbfDny", + }, + { + _id: "EgBm7OiN0k2tBzqI", + name: "Mizutamari | Flaque", + type: "spell", + img: "icons/magic/water/water-iceberg-bubbles.webp", + effects: [], + folder: "YIUe7c9tlVNf0QOl", + sort: 100000, + flags: { + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + '

Permet de cr\u00c3\u00a9er une flaque d\'eau de 1m cube

', + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { value: 1, width: null, units: "m", type: "cube", prompt: true }, + range: { value: null, long: 18, units: "m" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "", target: "", amount: null, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 0, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!EgBm7OiN0k2tBzqI", + }, + { + _id: "SkD98cxqoJ5wf3Fx", + name: "Rendre chaud", + type: "spell", + img: "icons/magic/fire/flame-burning-hand-orange.webp", + effects: [], + folder: "kQxG5RFU69FLBPr1", + sort: -100000, + flags: { + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["concentration"] }, + }, + system: { + description: { + value: + '
\n
\u00c2\u00a0
\n
\n
\n
\n
\n
\n
Permet de rendre chaud un \u00c3\u00a9l\u00c3\u00a9ment au toucher ou faire monter lentement la temperature d\'un fluide a distance en gardant sa concentration
\n

La temp\u00c3\u00a9rature monte a raison de 5\u00c2\u00b0C par tour concentr\u00c3\u00a9.

\n

La temp\u00c3\u00a9rature maximale est de 40 + niveau du joueur.

\n
\n
\n
\n
', + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { value: null, width: null, units: "", type: "", prompt: true }, + range: { value: null, long: 9, units: "m" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "", target: "", amount: null, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "", dc: null, scaling: "spell" }, + level: 0, + school: "evo", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["concentration"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!SkD98cxqoJ5wf3Fx", + }, + { + name: "Ry\u00c5\u00ab no taki | Cascade du dragon", + type: "spell", + img: "Ressources/Campange/Garde%20Wroath/images/illustration/Icones/wowiconpack(1)/WoW%20Icon%20Pack/Spells/BlueFireNova.png", + effects: [], + folder: "YIUe7c9tlVNf0QOl", + sort: 550000, + flags: { + enhancedcombathud: { set1p: false, set2p: false, set3p: false }, + "midi-qol": { + criticalThreshold: "20", + effectActivation: false, + fumbleThreshold: null, + }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + ignoreTotalCover: false, + }, + autoanimations: { + version: 4, + killAnim: false, + animLevel: false, + options: { + ammo: false, + staticType: "target", + persistent: false, + staticOptions: "staticSpells", + variant: "01", + repeat: null, + delay: null, + scale: 1, + enableCustom: true, + customPath: + "modules/animated-spell-effects-cartoon/spell-effects/cartoon/water/ice_blast_RECTANGLE_01.webm", + menuType: "spell", + onlyX: false, + }, + override: true, + allSounds: { + item: { enableAudio: false }, + explosion: { audioExplodeEnabled: false }, + }, + sourceToken: { + enable: false, + animLevel: true, + name: "standard", + variant: "01", + color: "marker01", + loops: 1, + loopDelay: 250, + scale: 1, + delayAfter: 0, + enableCustom: true, + customPath: + "modules/JB2A_DnD5e/Library/Generic/Magic_Signs/EnchantmentCircleIntro_02_Regular_Pink_800x800.webm", + menuType: "marker", + opacity: null, + }, + targetToken: { + enable: true, + animLevel: false, + persistent: false, + name: "icespikes", + variant: "01", + color: "white", + delayStart: 3000, + loops: 1, + loopDelay: 250, + scale: 1, + enableCustom: true, + customPath: "modules/jaamod/AnimatedArt/Misc/waterSplash3.webm", + menuType: "ice", + opacity: null, + }, + animType: "range", + animation: "rayoffrost", + color: "blue", + explosions: { + enable: false, + below: false, + radius: 1.5, + delay: 3600, + animation: "shatter", + variant: "01", + color: "blue", + enableCustom: false, + }, + audio: { + a01: { enable: false, file: "", delay: 0, volume: 0.25 }, + e01: { enable: false, file: "", delay: 0, volume: 0.25 }, + s01: { enable: false }, + t01: { enable: false }, + }, + macro: { enable: false }, + preview: false, + levels3d: { type: "" }, + }, + core: { sourceId: "Item.s3PEbuAQrk2BqtJZ" }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + _id: "zcVt4JxBGycUpxVi", + system: { + description: { + value: + "

Le shinobi transforme un cube de 1m3 d'eau a port\u00c3\u00a9e en un grand dragon serpentin. Ce dragon peut d\u00c3\u00a9placer le shinobi comme un surf, il obtient alors une vitesse de deplacement de 36m. Il peut \u00c3\u00a9galement s'\u00c3\u00a9craser t\u00c3\u00aate la premi\u00c3\u00a8re sur un adversaire, lui infligeant 12d4 d\u00c3\u00a9gats de froid. L'adversaire peut alors jeter un jet de sauvegarde de dext\u00c3\u00a9rit\u00c3\u00a9 afin de r\u00c3\u00a9duire ces d\u00c3\u00a9gats de moiti\u00c3\u00a9

", + chat: "", + }, + source: { custom: "" }, + activation: { + type: "action", + cost: 1, + condition: "1 m\"tre cube d'eau", + }, + duration: { value: "", units: "inst" }, + cover: null, + crewed: false, + target: { + value: null, + width: null, + units: "", + type: "creature", + prompt: true, + }, + range: { value: 18, long: 36, units: "m" }, + uses: { value: null, max: "", per: "lr", recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 5, scale: false }, + ability: "", + actionType: "rsak", + chatFlavor: "Le shinobi se fait porter par l'immense dragon aqueux.", + critical: { threshold: null, damage: "" }, + damage: { parts: [["12d4", "cold"]], versatile: "" }, + formula: "", + save: { ability: "dex", dc: null, scaling: "spell" }, + level: 5, + school: "evo", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: true }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 3, rnDWxiLHx5q6fRFC: 3, Hcx2p87T4dBeKFBJ: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!zcVt4JxBGycUpxVi", + }, + { + _id: "b8kPRMEltLHX9s63", + name: "Suich\u00c5\u00ab de meisai | Camouflage dans l'eau", + type: "spell", + img: "icons/magic/water/elemental-water.webp", + effects: [], + folder: "YIUe7c9tlVNf0QOl", + sort: 300000, + flags: { + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + "

\u00c2\u00a0Le shinobi peut se fondre dans une \u00c3\u00a9tendue d'eau (tant qu'elle contient le m\u00c3\u00aame volume que lui). Il est alors invisible et ne peut \u00c3\u00aatre per\u00c3\u00a7u par ses mouvements. Il gagne l'avantage a son premier d'attaque, \u00c3\u00a0 ses jets de discretion tant qu'il est dans l'eau et peut discerner les environs comme si il pouvait voir depuis la surface de l'eau.

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "" }, + duration: { value: "", units: "" }, + cover: null, + crewed: false, + target: { value: null, width: null, units: "", type: "", prompt: true }, + range: { value: null, long: null, units: "" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 2, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [], versatile: "" }, + formula: "", + save: { ability: "wis", dc: null, scaling: "spell" }, + level: 2, + school: "abj", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!b8kPRMEltLHX9s63", + }, + { + _id: "M3hKkRAzfd9zBZkj", + name: "Taif\u00c5\u00ab | Typhon", + type: "spell", + img: "icons/magic/water/projectile-water-rings.webp", + effects: [], + folder: "YIUe7c9tlVNf0QOl", + sort: 400000, + flags: { + "midi-qol": { effectActivation: false }, + midiProperties: { + nodam: false, + fulldam: false, + halfdam: false, + rollOther: false, + critOther: false, + magicdam: false, + magiceffect: false, + concentration: false, + toggleEffect: false, + }, + dnd5e: { migratedProperties: ["vocal", "somatic"] }, + }, + system: { + description: { + value: + "

Le shinobi cr\u00c3\u00a9e un syphon qui emporte tout au fond de l'eau : les ennemis, les alli\u00c3\u00a9s et les objets autour. Choisi un point dans une \u00c3\u00a9tendue d'eau d'au moins 20m\u00c2\u00b2.
Toute cr\u00c3\u00a9ature non consentante doit jeter un jet de sauvegarde de force ou \u00c3\u00aatre attir\u00c3\u00a9 ir\u00c3\u00a9m\u00c3\u00a9diablement au fond du volume d'eau.
Si un joueur est pris dans le syphon, il peut jeter a chaque tour un jet de sauvegarde de force. Si il r\u00c3\u00a9ussi deux tour d'affiler, il arrive a se d\u00c3\u00a9gager de l'emprise du syphon et peut agir.
Si il \u00c3\u00a9choue et est pris au fond de l'eau, il subit 8d4 d\u00c3\u00a9gats de froid Les shinobi sous l'emprise du jutsu \"La carpe Jacumba\" ont un avantage lors de leurs jet de sauvegarde contre ce jutsu

", + chat: "", + }, + source: { custom: "" }, + activation: { type: "action", cost: 1, condition: "20m cube d'eau" }, + duration: { value: "6", units: "turn" }, + cover: null, + crewed: false, + target: { + value: 20, + width: null, + units: "m", + type: "square", + prompt: true, + }, + range: { value: null, long: 40, units: "m" }, + uses: { value: null, max: "", per: null, recovery: "", prompt: true }, + consume: { type: "attribute", target: "", amount: 4, scale: false }, + ability: "", + actionType: "util", + chatFlavor: "", + critical: { threshold: null, damage: "" }, + damage: { parts: [["8d4", "cold"]], versatile: "" }, + formula: "", + save: { ability: "str", dc: null, scaling: "spell" }, + level: 4, + school: "evo", + materials: { value: "", consumed: false, cost: 0, supply: 0 }, + preparation: { mode: "prepared", prepared: false }, + scaling: { mode: "none", formula: "" }, + properties: ["vocal", "somatic"], + attack: { bonus: "", flat: false }, + summons: null, + }, + ownership: { default: 0, rnDWxiLHx5q6fRFC: 3 }, + _stats: { + systemId: "dnd5e", + systemVersion: "3.1.1", + coreVersion: "11.315", + createdTime: 1712570600486, + modifiedTime: 1712570600486, + lastModifiedBy: "rnDWxiLHx5q6fRFC", + }, + _key: "!items!M3hKkRAzfd9zBZkj", + }, +]; + +export default jutsus; diff --git a/src/data/levels.js b/src/data/levels.js new file mode 100644 index 0000000..15d1bcf --- /dev/null +++ b/src/data/levels.js @@ -0,0 +1,96 @@ +import { type } from "@testing-library/user-event/dist/type"; + +const levels = [ + { + _id: "1", + name: "1", + unlocks: [ + { + name: "Archetype", + type: "choice", + options: [ + { + folder_id: "xdVnM5YTVFEewTje", + name: "Maitre des lames", + description: "assassin", + }, + { + folder_id: "A0uWlUA0R29NFyzt", //Mauvaise organisation des dossiers => liste des Taïjutsu et non liste des tech. de MDT + name: "Maitre du Taîjutsu", + description: "combattant", + }, + { + folder_id: "iu3QsWHoalitMfaF", + name: "Maitre du chakra", + description: "mage", + }, + { + folder_id: "6ugsJPZf1DtuJKcF", + name: "Maitre des 1000 objets", + description: "Bricoleur", + }, + ], + }, + { + name: "Jutsus", + type: "mandatory", + options: [ + { + folder_id: "kQxG5RFU69FLBPr1", + name: "Feu (Katon)", + }, + { + folder_id: "YIUe7c9tlVNf0QOl", + name: "Eau (Suiton)", + }, + { + folder_id: "SYYVLYXoq7K9DW6r", + name: "Vent (Fuuton)", + }, + { + folder_id: "Dw3zZbKivXfgPtZv", + name: "Terre (Doton)", + }, + ], + }, + ], + }, + { + _id: "2", + name: "2", + }, + { + _id: "3", + name: "3", + }, + { + _id: "4", + name: "4", + }, + { + _id: "5", + name: "5", + }, + { + _id: "6", + name: "6", + }, + { + _id: "7", + name: "7", + }, + { + _id: "8", + name: "8", + }, + { + _id: "9", + name: "9", + }, + { + _id: "10", + name: "10", + }, +]; + +export default levels; diff --git a/src/pages/Character/index.js b/src/pages/Character/index.js index 3919626..b4ded40 100644 --- a/src/pages/Character/index.js +++ b/src/pages/Character/index.js @@ -3,7 +3,8 @@ import "./styles.css"; import { useEffect, useState } from "react"; import Container from "../../layouts/Container/index.js"; -import allData from "../../data/data.js"; +import allData from "../../data/dataFiltered.js"; +import levels from "../../data/levels.js"; const Character = () => { const [data, setData] = useState(); @@ -36,9 +37,11 @@ const Character = () => { const renderSubItems = (subItems) => { if (subItems?.length === 0) { return subItems?.length !== 0 ? ( -

- {subItems?._id} - {subItems?.name} -

+
+

+ {subItems?._id} - {subItems?.name} +

+
) : ( <> ); @@ -47,13 +50,17 @@ const Character = () => { return (
{subItems?.length !== 0 ? ( -
- {subItem?._id} - {subItem?.name} - {subItem?.folder} -
+
+
+ {subItem?._id} - {subItem?.name} - {subItem?.folder} +
+
) : ( <> )} @@ -67,14 +74,29 @@ const Character = () => { return (
- {data?.map((item, id) => ( +
+ {levels.map((item, id) => ( +
+

{item?.name}

+
+ ))} +
+ {/* {data?.map((item, id) => (
-

- {item?._id} - {item?.name} -

+
+

+ {item?._id} - {item?.name} +

+
{renderSubItems(item?.subItems)}
- ))} + ))} */}
);