From 01861340ad5fed062bed63c92d40dbabc7114644 Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Tue, 31 Mar 2026 22:58:35 +0200 Subject: [PATCH] feat: Add NPC compendium with 49 PNJs from the rulebook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 9 esprits-animaux nommés (James Kam, Karen Sen, Susan Chow, Hyun Ci, Michelle Chun, Scott Zang, Pui Gan, Bui Hok, Sonia Tsui) - 8 fantômes (Phil Mok, Tony Meng + 4 archétypes génériques) - 13 démons (Je Maan, Good Boy, Charlie Fei, Zoeng, Ban Daan + 8 archétypes génériques) - 4 jiugwaai (Juk Lyun + archétypes gaaujan, gwat jyun) - 2 divinités (Ruby Jin Jin / tinneoi, Jing Tin) - 3 mortels initiés nommés (Laureen Zoeng, Julian Po, John Wa) - 8 PNJ du scénario L'Année du Lion (Alexander Weng, Maximilian Pang, Ginny Ching, Ken Luan, Jeffrey Chiu, Paul Fei, Leonie Fei, Carrie Suet) - 3 archétypes mortels génériques (Fat si sorcier, Intermédiaire, Consultant ésotérique) - Suppression du fichier modèle npc_Modele_Creature.json - Recompilation du pack cde-npcs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- dist/system.js | 21 +- dist/system.js.map | 4 +- images/icons/icon-armor.svg | 58 + images/icons/icon-ingredient.svg | 53 + images/icons/icon-item.svg | 59 + images/icons/icon-kungfu.svg | 38 + images/icons/icon-sanhei.svg | 58 + images/icons/icon-spell.svg | 62 + images/icons/icon-supernatural.svg | 49 + images/icons/icon-weapon.svg | 46 + kungfu_data.json | 472 + package.json | 6 +- ...mor_Armure_ancienne__armure_en_métal.json | 32 + ...or_Armure_ancienne__chemise_de_maille.json | 32 + ...armor_Combinaison_militaire_de_Kevlar.json | 32 + ...r_Gilet_pare-balles___Veste_de_Kevlar.json | 32 + .../cde-items/item_Modele_Equipement.json | 29 + packs-src/cde-npcs/Alexander_Weng.json | 69 + .../Ban_Daan_gros_bras_trop_ambitieux.json | 69 + .../cde-npcs/Bui_Hok_general_fidele.json | 69 + .../Carrie_Suet_citoyenne_ordinaire.json | 69 + .../Charlie_Fei_psychologue_pour_defunts.json | 69 + .../cde-npcs/Cimei_demon_des_forets.json | 69 + packs-src/cde-npcs/Consultant_esoterique.json | 69 + .../Demon-gardien_gaamwujan_mo_Profane.json | 69 + .../cde-npcs/Deoi_Sam_double_demoniaque.json | 69 + packs-src/cde-npcs/Fat_si_sorcier.json | 69 + .../Fonctionnaire_infernal_gwai_caai.json | 69 + .../cde-npcs/Gaaujan_ogresse_des_mers.json | 69 + packs-src/cde-npcs/Gamzing_generique.json | 69 + packs-src/cde-npcs/Ginny_Ching.json | 69 + packs-src/cde-npcs/Goengsi_jiangshi.json | 69 + .../cde-npcs/Good_Boy_molosse_protecteur.json | 69 + .../Gwat_Jyun_singe_blanc_Initie.json | 69 + .../Gwat_Jyun_singe_blanc_Profane.json | 69 + .../Hyun_Ci_champion_underground.json | 69 + packs-src/cde-npcs/Intermediaire.json | 69 + packs-src/cde-npcs/James_Kam_tueur_gages.json | 69 + .../Je_Maan_cadre_aux_dents_longues.json | 69 + packs-src/cde-npcs/Jeffrey_Chiu.json | 69 + .../cde-npcs/Jing_Tin_guerrier_decapite.json | 69 + .../John_Wa_maitre_des_rites_free-lance.json | 69 + .../cde-npcs/Juk_Lyun_guide_touristique.json | 69 + .../Julian_Po_travailleur_social.json | 69 + .../Karen_Sen_croqueuse_de_diamants.json | 69 + packs-src/cde-npcs/Ken_Luan.json | 69 + ...Laureen_Zoeng_estheticienne_roublarde.json | 69 + packs-src/cde-npcs/Leonie_Fei.json | 69 + packs-src/cde-npcs/Maximilian_Pang.json | 69 + .../Michelle_Chun_gentille_couturiere.json | 69 + packs-src/cde-npcs/Mo_demon_basique.json | 69 + packs-src/cde-npcs/Mogwaai.json | 69 + .../cde-npcs/Ngogwai_spectre_affame.json | 69 + packs-src/cde-npcs/Paul_Fei.json | 69 + packs-src/cde-npcs/Peijau_bete_ailee.json | 69 + .../cde-npcs/Phil_Mok_fantome_errant.json | 69 + packs-src/cde-npcs/Pui_Gan_petit_parrain.json | 69 + .../cde-npcs/Ruby_Jin_Jin_star_de_la_pop.json | 69 + .../Scott_Zang_explorateur_urbain.json | 69 + .../Sonia_Tsui_hackeuse_agoraphobe.json | 69 + .../Susan_Chow_culturiste_amateure.json | 69 + packs-src/cde-npcs/Taotie_tetes_volantes.json | 69 + .../cde-npcs/Tony_Meng_assoiffe_de_sang.json | 69 + packs-src/cde-npcs/Waanjing_Apprenti.json | 69 + packs-src/cde-npcs/Waanjing_Initie.json | 69 + .../cde-npcs/Zoeng_singe_revanchard.json | 69 + .../cde-weapons/weapon_Arc___Arbalète.json | 35 + ..._lourde_fusil_d'assaut_lance-roquette.json | 35 + .../weapon_Arme_à_feu_de_collection.json | 35 + ...pon_Bâton___Nunchaku___Triple-bâton.json | 35 + .../weapon_Dard___Bille___Shuriken.json | 35 + .../cde-weapons/weapon_Fusil_de_chasse.json | 35 + .../cde-weapons/weapon_Fusil_de_sniper.json | 35 + .../cde-weapons/weapon_Fusil_à_pompe.json | 35 + .../weapon_Gourdin___Massue___Matraque.json | 35 + packs-src/cde-weapons/weapon_Grenade.json | 35 + ...Lance___Trident___Hallebarde_chinoise.json | 35 + ...weapon_Pistolet_petit_et_gros_calibre.json | 35 + .../weapon_Poignard___Dague___Hachette.json | 35 + .../cde-weapons/weapon_Épée___Sabre.json | 35 + .../cde-weapons/weapon_Épée_de_saule.json | 35 + packs/cde-armors/LOG | 10 +- packs/cde-ingredients/LOG | 10 +- packs/cde-items/LOG | 10 +- packs/cde-kungfus/LOG | 10 +- packs/cde-npcs/000005.ldb | Bin 730 -> 21473 bytes packs/cde-npcs/LOG | 10 +- packs/cde-npcs/MANIFEST-000002 | Bin 136 -> 137 bytes packs/cde-sanhei/LOG | 10 +- packs/cde-spells/LOG | 10 +- packs/cde-supernaturals/LOG | 10 +- packs/cde-weapons/LOG | 10 +- spells_full.txt | 9772 +++++++++++++++++ src/documents/item.js | 21 + system.json | 84 +- tmp/test-cde-armors/000003.log | 0 tmp/test-cde-armors/CURRENT | 1 + tmp/test-cde-armors/LOCK | 0 tmp/test-cde-armors/LOG | 1 + tmp/test-cde-armors/MANIFEST-000002 | Bin 0 -> 50 bytes tools/compendiums.mjs | 82 + 101 files changed, 14990 insertions(+), 50 deletions(-) create mode 100644 images/icons/icon-armor.svg create mode 100644 images/icons/icon-ingredient.svg create mode 100644 images/icons/icon-item.svg create mode 100644 images/icons/icon-kungfu.svg create mode 100644 images/icons/icon-sanhei.svg create mode 100644 images/icons/icon-spell.svg create mode 100644 images/icons/icon-supernatural.svg create mode 100644 images/icons/icon-weapon.svg create mode 100644 kungfu_data.json create mode 100644 packs-src/cde-armors/armor_Armure_ancienne__armure_en_métal.json create mode 100644 packs-src/cde-armors/armor_Armure_ancienne__chemise_de_maille.json create mode 100644 packs-src/cde-armors/armor_Combinaison_militaire_de_Kevlar.json create mode 100644 packs-src/cde-armors/armor_Gilet_pare-balles___Veste_de_Kevlar.json create mode 100644 packs-src/cde-items/item_Modele_Equipement.json create mode 100644 packs-src/cde-npcs/Alexander_Weng.json create mode 100644 packs-src/cde-npcs/Ban_Daan_gros_bras_trop_ambitieux.json create mode 100644 packs-src/cde-npcs/Bui_Hok_general_fidele.json create mode 100644 packs-src/cde-npcs/Carrie_Suet_citoyenne_ordinaire.json create mode 100644 packs-src/cde-npcs/Charlie_Fei_psychologue_pour_defunts.json create mode 100644 packs-src/cde-npcs/Cimei_demon_des_forets.json create mode 100644 packs-src/cde-npcs/Consultant_esoterique.json create mode 100644 packs-src/cde-npcs/Demon-gardien_gaamwujan_mo_Profane.json create mode 100644 packs-src/cde-npcs/Deoi_Sam_double_demoniaque.json create mode 100644 packs-src/cde-npcs/Fat_si_sorcier.json create mode 100644 packs-src/cde-npcs/Fonctionnaire_infernal_gwai_caai.json create mode 100644 packs-src/cde-npcs/Gaaujan_ogresse_des_mers.json create mode 100644 packs-src/cde-npcs/Gamzing_generique.json create mode 100644 packs-src/cde-npcs/Ginny_Ching.json create mode 100644 packs-src/cde-npcs/Goengsi_jiangshi.json create mode 100644 packs-src/cde-npcs/Good_Boy_molosse_protecteur.json create mode 100644 packs-src/cde-npcs/Gwat_Jyun_singe_blanc_Initie.json create mode 100644 packs-src/cde-npcs/Gwat_Jyun_singe_blanc_Profane.json create mode 100644 packs-src/cde-npcs/Hyun_Ci_champion_underground.json create mode 100644 packs-src/cde-npcs/Intermediaire.json create mode 100644 packs-src/cde-npcs/James_Kam_tueur_gages.json create mode 100644 packs-src/cde-npcs/Je_Maan_cadre_aux_dents_longues.json create mode 100644 packs-src/cde-npcs/Jeffrey_Chiu.json create mode 100644 packs-src/cde-npcs/Jing_Tin_guerrier_decapite.json create mode 100644 packs-src/cde-npcs/John_Wa_maitre_des_rites_free-lance.json create mode 100644 packs-src/cde-npcs/Juk_Lyun_guide_touristique.json create mode 100644 packs-src/cde-npcs/Julian_Po_travailleur_social.json create mode 100644 packs-src/cde-npcs/Karen_Sen_croqueuse_de_diamants.json create mode 100644 packs-src/cde-npcs/Ken_Luan.json create mode 100644 packs-src/cde-npcs/Laureen_Zoeng_estheticienne_roublarde.json create mode 100644 packs-src/cde-npcs/Leonie_Fei.json create mode 100644 packs-src/cde-npcs/Maximilian_Pang.json create mode 100644 packs-src/cde-npcs/Michelle_Chun_gentille_couturiere.json create mode 100644 packs-src/cde-npcs/Mo_demon_basique.json create mode 100644 packs-src/cde-npcs/Mogwaai.json create mode 100644 packs-src/cde-npcs/Ngogwai_spectre_affame.json create mode 100644 packs-src/cde-npcs/Paul_Fei.json create mode 100644 packs-src/cde-npcs/Peijau_bete_ailee.json create mode 100644 packs-src/cde-npcs/Phil_Mok_fantome_errant.json create mode 100644 packs-src/cde-npcs/Pui_Gan_petit_parrain.json create mode 100644 packs-src/cde-npcs/Ruby_Jin_Jin_star_de_la_pop.json create mode 100644 packs-src/cde-npcs/Scott_Zang_explorateur_urbain.json create mode 100644 packs-src/cde-npcs/Sonia_Tsui_hackeuse_agoraphobe.json create mode 100644 packs-src/cde-npcs/Susan_Chow_culturiste_amateure.json create mode 100644 packs-src/cde-npcs/Taotie_tetes_volantes.json create mode 100644 packs-src/cde-npcs/Tony_Meng_assoiffe_de_sang.json create mode 100644 packs-src/cde-npcs/Waanjing_Apprenti.json create mode 100644 packs-src/cde-npcs/Waanjing_Initie.json create mode 100644 packs-src/cde-npcs/Zoeng_singe_revanchard.json create mode 100644 packs-src/cde-weapons/weapon_Arc___Arbalète.json create mode 100644 packs-src/cde-weapons/weapon_Arme_lourde_fusil_d'assaut_lance-roquette.json create mode 100644 packs-src/cde-weapons/weapon_Arme_à_feu_de_collection.json create mode 100644 packs-src/cde-weapons/weapon_Bâton___Nunchaku___Triple-bâton.json create mode 100644 packs-src/cde-weapons/weapon_Dard___Bille___Shuriken.json create mode 100644 packs-src/cde-weapons/weapon_Fusil_de_chasse.json create mode 100644 packs-src/cde-weapons/weapon_Fusil_de_sniper.json create mode 100644 packs-src/cde-weapons/weapon_Fusil_à_pompe.json create mode 100644 packs-src/cde-weapons/weapon_Gourdin___Massue___Matraque.json create mode 100644 packs-src/cde-weapons/weapon_Grenade.json create mode 100644 packs-src/cde-weapons/weapon_Lance___Trident___Hallebarde_chinoise.json create mode 100644 packs-src/cde-weapons/weapon_Pistolet_petit_et_gros_calibre.json create mode 100644 packs-src/cde-weapons/weapon_Poignard___Dague___Hachette.json create mode 100644 packs-src/cde-weapons/weapon_Épée___Sabre.json create mode 100644 packs-src/cde-weapons/weapon_Épée_de_saule.json create mode 100644 spells_full.txt create mode 100644 tmp/test-cde-armors/000003.log create mode 100644 tmp/test-cde-armors/CURRENT create mode 100644 tmp/test-cde-armors/LOCK create mode 100644 tmp/test-cde-armors/LOG create mode 100644 tmp/test-cde-armors/MANIFEST-000002 create mode 100644 tools/compendiums.mjs diff --git a/dist/system.js b/dist/system.js index e9c739d..0b0ffec 100644 --- a/dist/system.js +++ b/dist/system.js @@ -648,7 +648,25 @@ var CDEActor = class extends Actor { }; // src/documents/item.js +var DEFAULT_ICONS = { + kungfu: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-kungfu.svg", + spell: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-spell.svg", + supernatural: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-supernatural.svg", + weapon: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + armor: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-armor.svg", + sanhei: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-sanhei.svg", + ingredient: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-ingredient.svg", + item: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-item.svg" +}; var CDEItem = class extends Item { + /** @override */ + async _preCreate(data, options, userId) { + await super._preCreate(data, options, userId); + const defaultIcon = DEFAULT_ICONS[this.type]; + if (defaultIcon && (!data.img || data.img === Item.DEFAULT_ICON)) { + this.updateSource({ img: defaultIcon }); + } + } }; // src/ui/dice.js @@ -2441,7 +2459,8 @@ Hooks.on("updateSetting", (setting) => { * * Chroniques de l'Étrange est un jeu de rôle édité par Antre-Monde Éditions. * Ce système FoundryVTT est une implémentation indépendante et n'est pas - * affilié à Antre-Monde Éditions. + * affilié à Antre-Monde Éditions, + * mais a été réalisé avec l'autorisation d'Antre-Monde Éditions. * * @author LeRatierBretonnien * @copyright 2024–2026 LeRatierBretonnien diff --git a/dist/system.js.map b/dist/system.js.map index 57336b5..3d778f9 100644 --- a/dist/system.js.map +++ b/dist/system.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/config/constants.js", "../src/config/settings.js", "../src/config/localize.js", "../src/config/runtime.js", "../src/data/actors/character.js", "../src/data/actors/npc.js", "../src/data/items/item.js", "../src/data/items/kungfu.js", "../src/data/items/spell.js", "../src/data/items/supernatural.js", "../src/data/items/weapon.js", "../src/data/items/armor.js", "../src/data/items/sanhei.js", "../src/data/items/ingredient.js", "../src/documents/chat-message.js", "../src/documents/actor.js", "../src/documents/item.js", "../src/ui/dice.js", "../src/ui/helpers.js", "../src/ui/templates.js", "../src/ui/initiative.js", "../src/ui/apps/singletons.js", "../src/ui/rolling.js", "../src/ui/sheets/actors/base.js", "../src/ui/sheets/actors/character.js", "../src/ui/sheets/actors/npc.js", "../src/ui/sheets/items/base.js", "../src/ui/sheets/items/item.js", "../src/ui/sheets/items/kungfu.js", "../src/ui/sheets/items/spell.js", "../src/ui/sheets/items/supernatural.js", "../src/ui/sheets/items/weapon.js", "../src/ui/sheets/items/armor.js", "../src/ui/sheets/items/sanhei.js", "../src/ui/sheets/items/ingredient.js", "../src/ui/apps/loksyu-app.js", "../src/ui/apps/tinji-app.js", "../src/ui/roll-actions.js", "../src/system.js"], - "sourcesContent": ["/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport const SYSTEM_ID = \"fvtt-chroniques-de-l-etrange\"\n\nexport const ACTOR_TYPES = {\n character: \"character\",\n npc: \"npc\",\n}\n\nexport const ITEM_TYPES = {\n item: \"item\",\n kungfu: \"kungfu\",\n spell: \"spell\",\n supernatural: \"supernatural\",\n weapon: \"weapon\",\n armor: \"armor\",\n sanhei: \"sanhei\",\n ingredient: \"ingredient\",\n}\n\nexport const SUBTYPES = {\n weapon: { id: \"weapon\", label: \"CDE.Weapon\" },\n armor: { id: \"armor\", label: \"CDE.Armor\" },\n sanhei: { id: \"sanhei\", label: \"CDE.Sanhei\" },\n other: { id: \"other\", label: \"CDE.Other\" },\n}\n\nexport const MAGICS = {\n internalcinnabar: {\n id: \"internalcinnabar\",\n background: \"linear-grey\",\n label: \"CDE.InternalCinnabar\",\n aspectlabel: \"CDE.Metal\",\n speciality: {\n essence: { label: \"CDE.Essence\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n mind: { label: \"CDE.Mind\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n purification: { label: \"CDE.Purification\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n manipulation: { label: \"CDE.Manipulation\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n aura: { label: \"CDE.Aura\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n alchemy: {\n id: \"alchemy\",\n background: \"linear-blue\",\n label: \"CDE.Alchemy\",\n aspectlabel: \"CDE.Water\",\n speciality: {\n acupuncture: { label: \"CDE.Acupuncture\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n elixirs: { label: \"CDE.Elixirs\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n poisons: { label: \"CDE.Poisons\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n arsenal: { label: \"CDE.Arsenal\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n potions: { label: \"CDE.Potions\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n masteryoftheway: {\n id: \"masteryoftheway\",\n background: \"linear-brown\",\n label: \"CDE.MasteryOfTheWay\",\n aspectlabel: \"CDE.Earth\",\n speciality: {\n curse: { label: \"CDE.Curse\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n transfiguration: { label: \"CDE.Transfiguration\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n necromancy: { label: \"CDE.Necromancy\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n climatecontrol: { label: \"CDE.ClimateControl\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n goldenmagic: { label: \"CDE.GoldenMagic\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n exorcism: {\n id: \"exorcism\",\n background: \"linear-red\",\n label: \"CDE.Exorcism\",\n aspectlabel: \"CDE.Fire\",\n speciality: {\n invocation: { label: \"CDE.Invocation\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n tracking: { label: \"CDE.Tracking\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n protection: { label: \"CDE.Protection\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n punishment: { label: \"CDE.Punishment\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n domination: { label: \"CDE.Domination\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n geomancy: {\n id: \"geomancy\",\n background: \"linear-green\",\n label: \"CDE.Geomancy\",\n aspectlabel: \"CDE.Wood\",\n speciality: {\n neutralization: { label: \"CDE.Neutralization\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n divination: { label: \"CDE.Divination\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n earthlyprayer: { label: \"CDE.EarthlyPrayer\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n heavenlyprayer: { label: \"CDE.HeavenlyPrayer\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n fungseoi: { label: \"CDE.Fungseoi\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n}\n\n/** Map aspect name \u2192 i18n label key */\nexport const ASPECT_LABELS = {\n metal: \"CDE.Metal\",\n water: \"CDE.Water\",\n earth: \"CDE.Earth\",\n fire: \"CDE.Fire\",\n wood: \"CDE.Wood\",\n}\n\n/** Map aspect name \u2192 image path */\nexport const ASPECT_ICONS = {\n metal: \"systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\",\n water: \"systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\",\n earth: \"systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\",\n fire: \"systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\",\n wood: \"systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\",\n}\n\n/** Map aspect name \u2192 die face pair [yin, yang] (face=10 stored as 0) */\nexport const ASPECT_FACES = {\n metal: [3, 8],\n water: [1, 6],\n earth: [0, 5], // 0 = face \"10\"\n fire: [2, 7],\n wood: [4, 9],\n}\n\n/** Ordered aspect names by index (metal=0, water=1, earth=2, fire=3, wood=4) */\nexport const ASPECT_NAMES = [\"metal\", \"water\", \"earth\", \"fire\", \"wood\"]\n\n/**\n * Wu Xing generating/overcoming cycle.\n * For each active aspect, the five result categories in order:\n * [successes, auspicious, noxious, loksyu, tinji]\n */\nexport const WU_XING_CYCLE = {\n wood: [\"wood\", \"fire\", \"water\", \"earth\", \"metal\"],\n fire: [\"fire\", \"earth\", \"wood\", \"metal\", \"water\"],\n earth: [\"earth\", \"metal\", \"fire\", \"water\", \"wood\"],\n metal: [\"metal\", \"water\", \"earth\", \"wood\", \"fire\"],\n water: [\"water\", \"wood\", \"metal\", \"fire\", \"earth\"],\n}\n\nexport const TEMPLATE_PARTIALS = [\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-skills.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-magics.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-nghang.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-treasures.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-items.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-kungfus.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-spells.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-npc-supernaturals.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-npc-spells.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-npc-kungfus.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-npc-items.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/apps/cde-loksyu-app.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/apps/cde-tinji-app.html\",\n]\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { SYSTEM_ID } from \"./constants.js\"\n\n/**\n * Register all world/client settings for the system.\n * Called during the \"init\" hook before sheets and data-models are set up.\n */\nexport function registerSettings() {\n game.settings.register(SYSTEM_ID, \"loksyuData\", {\n scope: \"world\",\n config: false,\n type: Object,\n default: {\n wood: { yin: 0, yang: 0 },\n fire: { yin: 0, yang: 0 },\n earth: { yin: 0, yang: 0 },\n metal: { yin: 0, yang: 0 },\n water: { yin: 0, yang: 0 },\n },\n })\n\n game.settings.register(SYSTEM_ID, \"tinjiData\", {\n scope: \"world\",\n config: false,\n type: Number,\n default: 0,\n })\n}\n\n/**\n * Run any pending data migrations on the \"ready\" hook.\n * Reserved for future schema migrations.\n */\nexport async function migrateIfNeeded() {\n // No migrations required yet.\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { MAGICS, SUBTYPES } from \"./constants.js\"\n\nexport function preLocalizeConfig() {\n const localizeConfigObject = (obj, keys) => {\n for (const o of Object.values(obj)) {\n for (const key of keys) {\n o[key] = game.i18n.localize(o[key])\n }\n }\n }\n\n localizeConfigObject(SUBTYPES, [\"label\"])\n Object.values(MAGICS).forEach((magic) => {\n magic.label = game.i18n.localize(magic.label)\n magic.aspectlabel = game.i18n.localize(magic.aspectlabel)\n Object.values(magic.speciality).forEach((spec) => {\n spec.label = game.i18n.localize(spec.label)\n spec.labelelement = game.i18n.localize(spec.labelelement)\n })\n })\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport function configureRuntime() {\n CONFIG.Actor.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/actor-banner.webp\"\n CONFIG.Adventure.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/adventure-banner.webp\"\n CONFIG.Cards.compendiumBanner = \"ui/banners/cards-banner.webp\"\n CONFIG.Item.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/item-banner.webp\"\n CONFIG.JournalEntry.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/journalentry-banner.webp\"\n CONFIG.Macro.compendiumBanner = \"ui/banners/macro-banner.webp\"\n CONFIG.Playlist.compendiumBanner = \"ui/banners/playlist-banner.webp\"\n CONFIG.RollTable.compendiumBanner = \"ui/banners/rolltable-banner.webp\"\n CONFIG.Scene.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/scene-banner.webp\"\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class CharacterDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const numberField = (initial = 0, extra = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...extra })\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const boolField = (initial = false) => new fields.BooleanField({ required: true, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n const aspectField = (label, chinese) =>\n new fields.SchemaField({\n chinese: stringField(chinese),\n label: stringField(label),\n value: numberField(15, { min: 0 }),\n })\n\n const skillField = (label) =>\n new fields.SchemaField({\n label: stringField(label),\n specialities: stringField(\"\"),\n value: numberField(0, { min: 0 }),\n })\n\n const resourceField = (label) =>\n new fields.SchemaField({\n label: stringField(label),\n specialities: stringField(\"\"),\n value: numberField(0, { min: 0 }),\n debt: boolField(false),\n })\n\n const componentField = () =>\n new fields.SchemaField({\n value: stringField(\"\"),\n })\n\n const magicSpecialityField = () =>\n new fields.SchemaField({\n check: boolField(false),\n })\n\n const magicField = () =>\n new fields.SchemaField({\n visible: boolField(true),\n value: numberField(0, { min: 0 }),\n speciality: new fields.SchemaField({\n essence: magicSpecialityField(),\n mind: magicSpecialityField(),\n purification: magicSpecialityField(),\n manipulation: magicSpecialityField(),\n aura: magicSpecialityField(),\n acupuncture: magicSpecialityField(),\n elixirs: magicSpecialityField(),\n poisons: magicSpecialityField(),\n arsenal: magicSpecialityField(),\n potions: magicSpecialityField(),\n curse: magicSpecialityField(),\n transfiguration: magicSpecialityField(),\n necromancy: magicSpecialityField(),\n climatecontrol: magicSpecialityField(),\n goldenmagic: magicSpecialityField(),\n invocation: magicSpecialityField(),\n tracking: magicSpecialityField(),\n protection: magicSpecialityField(),\n punishment: magicSpecialityField(),\n domination: magicSpecialityField(),\n neutralization: magicSpecialityField(),\n divination: magicSpecialityField(),\n earthlyprayer: magicSpecialityField(),\n heavenlyprayer: magicSpecialityField(),\n fungseoi: magicSpecialityField(),\n }),\n })\n\n const treasureBranch = () =>\n new fields.SchemaField({\n value: numberField(0, { min: 0 }),\n max: numberField(0, { min: 0 }),\n min: numberField(0, { min: 0 }),\n })\n\n const treasureLevel = () =>\n new fields.SchemaField({\n san: treasureBranch(),\n zing: treasureBranch(),\n })\n\n const schema = {\n concept: stringField(\"\"),\n guardian: numberField(0, { min: 0, max: 5 }),\n initiative: numberField(1, { min: 0 }),\n anti_initiative: numberField(24, { min: 0 }),\n description: htmlField(\"\"),\n prefs: new fields.SchemaField({\n typeofthrow: new fields.SchemaField({\n check: boolField(true),\n choice: stringField(\"0\"),\n }),\n }),\n prompt: new fields.SchemaField({\n typeofthrow: new fields.SchemaField({\n check: boolField(true),\n choice: stringField(\"0\"),\n }),\n configure: new fields.SchemaField({\n numberofdice: numberField(0),\n aspect: numberField(0),\n bonus: numberField(0),\n bonusauspiciousdice: numberField(0),\n typeofthrow: numberField(0),\n aspectskill: numberField(0),\n bonusmalusskill: numberField(0),\n aspectspeciality: numberField(0),\n rolldifficulty: numberField(0),\n bonusmalusspeciality: numberField(0),\n }),\n }),\n aspect: new fields.SchemaField({\n fire: aspectField(\"CDE.Fire\", \"\u328B\"),\n earth: aspectField(\"CDE.Earth\", \"\u328F\"),\n metal: aspectField(\"CDE.Metal\", \"\u328E\"),\n water: aspectField(\"CDE.Water\", \"\u328C\"),\n wood: aspectField(\"CDE.Wood\", \"\u328D\"),\n }),\n skills: new fields.SchemaField({\n art: skillField(\"CDE.Art\"),\n investigation: skillField(\"CDE.Investigation\"),\n erudition: skillField(\"CDE.Erudition\"),\n knavery: skillField(\"CDE.Knavery\"),\n wordliness: skillField(\"CDE.Wordliness\"),\n prowess: skillField(\"CDE.Prowess\"),\n sciences: skillField(\"CDE.Sciences\"),\n technologies: skillField(\"CDE.Technologies\"),\n kungfu: skillField(\"CDE.KungFu\"),\n rangedcombat: skillField(\"CDE.RangedCombat\"),\n }),\n resources: new fields.SchemaField({\n supply: resourceField(\"CDE.Supply\"),\n inquiry: resourceField(\"CDE.Inquiry\"),\n influence: resourceField(\"CDE.Influence\"),\n }),\n component: new fields.SchemaField({\n one: componentField(),\n two: componentField(),\n three: componentField(),\n four: componentField(),\n five: componentField(),\n six: componentField(),\n seven: componentField(),\n eight: componentField(),\n nine: componentField(),\n zero: componentField(),\n }),\n magics: new fields.SchemaField({\n internalcinnabar: magicField(),\n alchemy: magicField(),\n masteryoftheway: magicField(),\n exorcism: magicField(),\n geomancy: magicField(),\n }),\n threetreasures: new fields.SchemaField({\n heiyang: new fields.SchemaField({ value: numberField(0, { min: 0 }), max: numberField(0, { min: 0 }) }),\n heiyin: new fields.SchemaField({ value: numberField(0, { min: 0 }), max: numberField(0, { min: 0 }) }),\n dicelevel: new fields.SchemaField({\n level0d: treasureLevel(),\n level1d: treasureLevel(),\n level2d: treasureLevel(),\n }),\n }),\n experience: new fields.SchemaField({\n value: numberField(0, { min: 0 }),\n max: numberField(0, { min: 0 }),\n min: numberField(0, { min: 0 }),\n }),\n }\n\n return schema\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class NpcDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const numberField = (initial = 0, extra = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...extra })\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const boolField = (initial = false) => new fields.BooleanField({ required: true, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n const aptitudeField = () =>\n new fields.SchemaField({\n value: numberField(0, { min: 0 }),\n speciality: stringField(\"\"),\n })\n\n const trackedField = () =>\n new fields.SchemaField({\n value: numberField(0, { min: 0 }),\n calcul: numberField(0, { min: 0 }),\n note: stringField(\"\"),\n })\n\n return {\n type: stringField(\"\"),\n threat: numberField(0, { min: 0, max: 4 }), // profane(0) | apprentice(1) | initiate(2) | accomplished(3) | renowned(4)\n nuisance: numberField(0, { min: 0, max: 5 }), // figurant(0) | minion(1) | adversary(2) | ally(3) | boss(4) | divinity(5)\n initiative: numberField(1, { min: 0 }),\n anti_initiative: numberField(24, { min: 0 }),\n aptitudes: new fields.SchemaField({\n physical: aptitudeField(),\n martial: aptitudeField(),\n mental: aptitudeField(),\n social: aptitudeField(),\n spiritual: aptitudeField(),\n }),\n vitality: trackedField(),\n hei: trackedField(),\n description: htmlField(\"\"),\n prefs: new fields.SchemaField({\n typeofthrow: new fields.SchemaField({\n check: boolField(false),\n choice: stringField(\"0\"),\n }),\n }),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class EquipmentDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const numberField = (initial = 0, extra = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...extra })\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n quantity: numberField(1, { min: 0 }),\n weight: numberField(0, { min: 0 }),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class KungfuDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const boolField = (initial = false) => new fields.BooleanField({ required: true, initial })\n\n const techniqueField = () =>\n new fields.SchemaField({\n check: boolField(false),\n name: stringField(\"\"),\n activation: stringField(\"action-attack\"), // action-attack | action-defense | action-aid | action-attack-defense | reaction | dice | damage-inflicted | damage-received\n technique: htmlField(\"\"),\n })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n orientation: stringField(\"yin\"), // yin | yang | yinyang\n aspect: stringField(\"metal\"), // metal | eau | terre | feu | bois\n skill: stringField(\"kungfu\"), // kungfu | rangedcombat\n speciality: stringField(\"\"),\n style: stringField(\"\"),\n techniques: new fields.SchemaField({\n technique1: techniqueField(),\n technique2: techniqueField(),\n technique3: techniqueField(),\n }),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class SpellDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n specialityname: stringField(\"\"),\n associatedelement: stringField(\"metal\"), // metal | eau | terre | feu | bois\n hei: stringField(\"\"),\n realizationtimeritual: stringField(\"\"),\n realizationtimeaccelerated: stringField(\"\"),\n flashback: stringField(\"\"),\n components: htmlField(\"\"),\n effects: htmlField(\"\"),\n examples: htmlField(\"\"),\n notes: htmlField(\"\"),\n discipline: stringField(\"internalcinnabar\"),\n heiType: stringField(\"yin\"),\n heiCost: new fields.NumberField({ required: true, nullable: false, integer: true, min: 0, initial: 1 }),\n difficulty: new fields.NumberField({ required: true, nullable: false, integer: true, min: 0, initial: 1 }),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class SupernaturalDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n notes: htmlField(\"\"),\n heiType: stringField(\"yin\"),\n heiCost: new fields.NumberField({ required: true, nullable: false, integer: true, min: 0, initial: 0 }),\n trigger: stringField(\"\"),\n effects: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class WeaponDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const intField = (initial = 0, opts = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...opts })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n weaponType: stringField(\"melee\"),\n material: stringField(\"\"),\n damageAspect: stringField(\"metal\"),\n damageBase: intField(1),\n range: stringField(\"contact\"), // contact | courte | mediane | longue | extreme\n obtainLevel: intField(0, { min: 0, max: 5 }),\n obtainDifficulty: intField(0, { min: 0, max: 3 }),\n quantity: intField(1),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class ArmorDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const intField = (initial = 0, opts = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...opts })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n protectionValue: intField(0),\n domain: stringField(\"\"),\n obtainLevel: intField(0, { min: 0, max: 5 }),\n obtainDifficulty: intField(0, { min: 0, max: 3 }),\n quantity: intField(1),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class SanheiDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const intField = (initial = 0, opts = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...opts })\n\n const propertySchema = () => new fields.SchemaField({\n name: stringField(\"\"),\n heiCost: intField(0),\n heiType: stringField(\"yin\"),\n description: htmlField(\"\"),\n })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n heiType: stringField(\"yin\"),\n properties: new fields.SchemaField({\n prop1: propertySchema(),\n prop2: propertySchema(),\n prop3: propertySchema(),\n }),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class IngredientDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const intField = (initial = 0, opts = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...opts })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n school: stringField(\"all\"),\n obtainLevel: intField(0, { min: 0, max: 5 }),\n obtainDifficulty: intField(0, { min: 0, max: 3 }),\n quantity: intField(1),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport class CDEMessage extends ChatMessage {\n async renderHTML({ canDelete, canClose = false, ...rest } = {}) {\n const html = await super.renderHTML({ canDelete, canClose, ...rest })\n this.#enrichChatCard(html)\n return html\n }\n\n getAssociatedActor() {\n if (this.speaker.scene && this.speaker.token) {\n const scene = game.scenes.get(this.speaker.scene)\n const token = scene?.tokens.get(this.speaker.token)\n if (token) return token.actor\n }\n return game.actors.get(this.speaker.actor)\n }\n\n #enrichChatCard(html) {\n const actor = this.getAssociatedActor()\n\n let img\n let nameText\n if (this.isContentVisible) {\n img = actor?.img ?? this.author.avatar\n nameText = this.alias\n } else {\n img = this.author.avatar\n nameText = this.author.name\n }\n\n const avatar = document.createElement(\"a\")\n avatar.classList.add(\"avatar\")\n if (actor) avatar.dataset.uuid = actor.uuid\n const avatarImg = document.createElement(\"img\")\n Object.assign(avatarImg, { src: img, alt: nameText })\n avatar.append(avatarImg)\n\n const name = document.createElement(\"span\")\n name.classList.add(\"name-stacked\")\n const title = document.createElement(\"span\")\n title.classList.add(\"title\")\n title.append(nameText)\n name.append(title)\n\n const sender = html.querySelector(\".message-sender\")\n sender?.replaceChildren(avatar, name)\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { ACTOR_TYPES } from \"../config/constants.js\"\n\nexport class CDEActor extends Actor {\n getRollData() {\n const data = this.toObject(false).system\n return data\n }\n\n prepareBaseData() {\n super.prepareBaseData()\n\n if (this.type === ACTOR_TYPES.character) {\n this.system.anti_initiative = 25 - (this.system.initiative ?? 0)\n }\n\n if (this.type === ACTOR_TYPES.npc) {\n this.system.vitality.calcul = (this.system.aptitudes.physical.value ?? 0) * 4\n this.system.hei.calcul = (this.system.aptitudes.spiritual.value ?? 0) * 4\n this.system.anti_initiative = 25 - (this.system.initiative ?? 0)\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport class CDEItem extends Item {\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nconst DIGIT_LABELS = [\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-1.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-2.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-3.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-4.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-5.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-6.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-7.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-8.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-9.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-10.webp\",\n]\n\nconst CLASSIC_LABELS = [\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-1.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-2.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-3.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-4.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-5.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-6.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-7.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-8.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-9.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-10.webp\",\n]\n\nexport function registerDice() {\n Hooks.once(\"diceSoNiceReady\", (dice3d) => {\n dice3d.addColorset(\n {\n name: \"cde\",\n description: \"CdE\",\n foreground: \"#000000\",\n background: \"#ffffff\",\n edge: \"#ffffff\",\n font: \"DeliusUnicase\",\n texture: \"ice\",\n material: \"plastic\",\n },\n \"preferred\",\n )\n\n dice3d.addSystem({ id: \"fvtt-chroniques-de-l-etrangedigit\", name: \"Chroniques de l'\u00E9trange digits\" }, \"preferred\")\n dice3d.addDicePreset({ type: \"d10\", labels: DIGIT_LABELS, system: \"fvtt-chroniques-de-l-etrangedigit\" })\n\n dice3d.addSystem({ id: \"fvtt-chroniques-de-l-etrange\", name: \"Chroniques de l'\u00E9trange\" }, \"preferred\")\n dice3d.addDicePreset({ type: \"d10\", labels: CLASSIC_LABELS, system: \"fvtt-chroniques-de-l-etrange\" })\n })\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { MAGICS } from \"../config/constants.js\"\n\nexport function registerHandlebarsHelpers() {\n const { Handlebars } = globalThis\n if (!Handlebars) return\n\n Handlebars.registerHelper(\"select\", function (selected, options) {\n const escapedValue = RegExp.escape(Handlebars.escapeExpression(selected))\n const rgx = new RegExp(` value=[\"']${escapedValue}[\"']`)\n const html = options.fn(this)\n return html.replace(rgx, \"$& selected\")\n })\n\n Handlebars.registerHelper(\"getMagicBackground\", function (magic) {\n return game.i18n.localize(MAGICS[magic]?.background ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicLabel\", function (magic) {\n return game.i18n.localize(MAGICS[magic]?.label ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicAspectLabel\", function (magic) {\n return game.i18n.localize(MAGICS[magic]?.aspectlabel ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityLabel\", function (magic, speciality) {\n return game.i18n.localize(MAGICS[magic]?.speciality?.[speciality]?.label ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityClassIcon\", function (magic, speciality) {\n return MAGICS[magic]?.speciality?.[speciality]?.classicon ?? \"\"\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityIcon\", function (magic, speciality) {\n return MAGICS[magic]?.speciality?.[speciality]?.icon ?? \"\"\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityElementIcon\", function (magic, speciality) {\n return MAGICS[magic]?.speciality?.[speciality]?.elementicon ?? \"\"\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityLabelIcon\", function (magic, speciality) {\n return MAGICS[magic]?.speciality?.[speciality]?.labelicon ?? \"\"\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityLabelElement\", function (magic, speciality) {\n return game.i18n.localize(MAGICS[magic]?.speciality?.[speciality]?.labelelement ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicAspectIcon\", function (magic) {\n const icons = {\n internalcinnabar: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\",\n alchemy: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\",\n masteryoftheway: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\",\n exorcism: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\",\n geomancy: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\",\n }\n return icons[magic] ?? \"\"\n })\n\n Handlebars.registerHelper(\"getElementIcon\", function (aspect) {\n const icons = {\n metal: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\",\n water: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\",\n earth: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\",\n fire: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\",\n wood: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\",\n // legacy French keys\n eau: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\",\n terre: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\",\n feu: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\",\n bois: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\",\n }\n return icons[aspect] ?? \"\"\n })\n\n Handlebars.registerHelper(\"getOrientationIcon\", function (orientation) {\n const icons = {\n yin: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\",\n yang: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\",\n yinyang: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\",\n }\n return icons[orientation] ?? \"\"\n })\n\n Handlebars.registerHelper(\"getOrientationLabel\", function (orientation) {\n const keys = {\n yin: \"CDE.OrientationYin\",\n yang: \"CDE.OrientationYang\",\n yinyang: \"CDE.OrientationYinYang\",\n }\n return game.i18n.localize(keys[orientation] ?? \"CDE.Orientation\")\n })\n\n Handlebars.registerHelper(\"getActivationLabel\", function (activation) {\n const keys = {\n \"action-attack\": \"CDE.ActivationAttack\",\n \"action-defense\": \"CDE.ActivationDefense\",\n \"action-aid\": \"CDE.ActivationAid\",\n \"action-attack-defense\": \"CDE.ActivationAttackOrDefense\",\n reaction: \"CDE.ActivationReaction\",\n dice: \"CDE.ActivationDice\",\n \"damage-inflicted\": \"CDE.ActivationDamageInflicted\",\n \"damage-received\": \"CDE.ActivationDamageReceived\",\n }\n return game.i18n.localize(keys[activation] ?? \"CDE.Activation\")\n })\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { TEMPLATE_PARTIALS } from \"../config/constants.js\"\n\nexport async function preloadPartials() {\n return foundry.applications.handlebars.loadTemplates(TEMPLATE_PARTIALS)\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\n/**\n * Initiative determination system for Chroniques de l'\u00C9trange.\n *\n * PJ formula: Initiative = Prouesse + Premi\u00E8re action (comp\u00E9tence/ressource/magie)\n * PNJ formula: Initiative = Aptitude physique + Premi\u00E8re action (aptitude)\n *\n * Range 1-24 ; anti-initiative = 25 \u2212 initiative.\n * Combat order is ascending (low initiative acts first).\n */\n\nconst PC_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-initiative-prompt.html\"\nconst NPC_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-initiative-prompt-npc.html\"\nconst RESULT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-initiative-result.html\"\n\n/** Skills, resources and magics available as \"premi\u00E8re action\" for a PC. */\nfunction buildPCOptions(sys) {\n const sk = sys.skills ?? {}\n const rs = sys.resources ?? {}\n const mg = sys.magics ?? {}\n return [\n { key: \"art\", label: game.i18n.localize(\"CDE.Art\"), value: sk.art?.value ?? 0 },\n { key: \"investigation\", label: game.i18n.localize(\"CDE.Investigation\"), value: sk.investigation?.value ?? 0 },\n { key: \"erudition\", label: game.i18n.localize(\"CDE.Erudition\"), value: sk.erudition?.value ?? 0 },\n { key: \"knavery\", label: game.i18n.localize(\"CDE.Knavery\"), value: sk.knavery?.value ?? 0 },\n { key: \"wordliness\", label: game.i18n.localize(\"CDE.Wordliness\"), value: sk.wordliness?.value ?? 0 },\n { key: \"prowess\", label: game.i18n.localize(\"CDE.Prowess\"), value: sk.prowess?.value ?? 0 },\n { key: \"sciences\", label: game.i18n.localize(\"CDE.Sciences\"), value: sk.sciences?.value ?? 0 },\n { key: \"technologies\", label: game.i18n.localize(\"CDE.Technologies\"), value: sk.technologies?.value ?? 0 },\n { key: \"kungfu\", label: game.i18n.localize(\"CDE.KungFu\"), value: sk.kungfu?.value ?? 0 },\n { key: \"rangedcombat\", label: game.i18n.localize(\"CDE.RangedCombat\"), value: sk.rangedcombat?.value ?? 0 },\n { key: \"supply\", label: game.i18n.localize(\"CDE.Supply\"), value: rs.supply?.value ?? 0 },\n { key: \"inquiry\", label: game.i18n.localize(\"CDE.Inquiry\"), value: rs.inquiry?.value ?? 0 },\n { key: \"influence\", label: game.i18n.localize(\"CDE.Influence\"), value: rs.influence?.value ?? 0 },\n { key: \"internalcinnabar\", label: game.i18n.localize(\"CDE.InternalCinnabar\"), value: mg.internalcinnabar?.value ?? 0 },\n { key: \"alchemy\", label: game.i18n.localize(\"CDE.Alchemy\"), value: mg.alchemy?.value ?? 0 },\n { key: \"masteryoftheway\", label: game.i18n.localize(\"CDE.MasteryOfTheWay\"), value: mg.masteryoftheway?.value ?? 0 },\n { key: \"exorcism\", label: game.i18n.localize(\"CDE.Exorcism\"), value: mg.exorcism?.value ?? 0 },\n { key: \"geomancy\", label: game.i18n.localize(\"CDE.Geomancy\"), value: mg.geomancy?.value ?? 0 },\n ]\n}\n\n/** Aptitudes available as \"premi\u00E8re action\" for an NPC. */\nfunction buildNPCOptions(sys) {\n const ap = sys.aptitudes ?? {}\n return [\n { key: \"physical\", label: game.i18n.localize(\"CDE.Physical\"), value: ap.physical?.value ?? 0 },\n { key: \"martial\", label: game.i18n.localize(\"CDE.Martial\"), value: ap.martial?.value ?? 0 },\n { key: \"mental\", label: game.i18n.localize(\"CDE.Mental\"), value: ap.mental?.value ?? 0 },\n { key: \"social\", label: game.i18n.localize(\"CDE.Social\"), value: ap.social?.value ?? 0 },\n { key: \"spiritual\", label: game.i18n.localize(\"CDE.Spiritual\"), value: ap.spiritual?.value ?? 0 },\n ]\n}\n\n/** Parse the dialog element and extract firstaction + modifier. */\nfunction readInitFields(dialog) {\n const root = dialog.element ?? dialog\n const selectedKey = root.querySelector(\"select[name='firstaction']\")?.value ?? \"\"\n const modifier = parseInt(root.querySelector(\"input[name='modifier']\")?.value ?? \"0\", 10) || 0\n return { selectedKey, modifier }\n}\n\n/** Post a styled initiative chat message. */\nasync function sendInitChatMessage({ actor, baseName, baseValue, actionName, actionValue, modifier, initiative, antiInitiative }) {\n const html = await foundry.applications.handlebars.renderTemplate(RESULT_TEMPLATE, {\n actorName: actor.name,\n actorImg: actor.img,\n baseName,\n baseValue,\n actionName,\n actionValue,\n modifier,\n hasModifier: modifier !== 0,\n initiative,\n antiInitiative,\n })\n await ChatMessage.create({\n user: game.user.id,\n speaker: ChatMessage.getSpeaker({ actor }),\n content: html,\n })\n}\n\n/**\n * Open the PC initiative dialog, compute initiative (Prouesse + Premi\u00E8re action + modificateur)\n * and update the actor, then post a chat card.\n */\nexport async function rollInitiativePC(actor) {\n const sys = actor.system\n const prowess = sys.skills?.prowess?.value ?? 0\n const options = buildPCOptions(sys)\n const baseName = game.i18n.localize(\"CDE.Prowess\")\n\n const content = await foundry.applications.handlebars.renderTemplate(PC_PROMPT_TEMPLATE, {\n prowessValue: prowess,\n options,\n modifier: 0,\n })\n\n const result = await foundry.applications.api.DialogV2.prompt({\n window: { title: game.i18n.localize(\"CDE.InitiativeRoll\") },\n content,\n rejectClose: false,\n ok: {\n label: game.i18n.localize(\"CDE.Validate\"),\n callback: (_ev, _btn, dialog) => readInitFields(dialog),\n },\n })\n if (!result) return\n\n const { selectedKey, modifier } = result\n const selected = options.find((o) => o.key === selectedKey) ?? options[0]\n const rawValue = prowess + selected.value + modifier\n const initiative = Math.max(1, Math.min(24, rawValue))\n const antiInit = 25 - initiative\n\n await actor.update({ \"system.initiative\": initiative })\n await sendInitChatMessage({\n actor,\n baseName,\n baseValue: prowess,\n actionName: selected.label,\n actionValue: selected.value,\n modifier,\n initiative,\n antiInitiative: antiInit,\n })\n}\n\n/**\n * Open the NPC initiative dialog, compute initiative (Aptitude physique + Premi\u00E8re action + modificateur)\n * and update the actor, then post a chat card.\n */\nexport async function rollInitiativeNPC(actor) {\n const sys = actor.system\n const physical = sys.aptitudes?.physical?.value ?? 0\n const options = buildNPCOptions(sys)\n const baseName = game.i18n.localize(\"CDE.Physical\")\n\n const content = await foundry.applications.handlebars.renderTemplate(NPC_PROMPT_TEMPLATE, {\n physicalValue: physical,\n options,\n modifier: 0,\n })\n\n const result = await foundry.applications.api.DialogV2.prompt({\n window: { title: game.i18n.localize(\"CDE.InitiativeRoll\") },\n content,\n rejectClose: false,\n ok: {\n label: game.i18n.localize(\"CDE.Validate\"),\n callback: (_ev, _btn, dialog) => readInitFields(dialog),\n },\n })\n if (!result) return\n\n const { selectedKey, modifier } = result\n const selected = options.find((o) => o.key === selectedKey) ?? options[0]\n const rawValue = physical + selected.value + modifier\n const initiative = Math.max(1, Math.min(24, rawValue))\n const antiInit = 25 - initiative\n\n await actor.update({ \"system.initiative\": initiative })\n await sendInitChatMessage({\n actor,\n baseName,\n baseValue: physical,\n actionName: selected.label,\n actionValue: selected.value,\n modifier,\n initiative,\n antiInitiative: antiInit,\n })\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\n/**\n * Loksyu / TinJi settings-based helpers.\n *\n * Data is stored as world settings instead of singleton Actor documents.\n */\n\nimport { SYSTEM_ID, WU_XING_CYCLE, ASPECT_FACES } from \"../../config/constants.js\"\n\n/** Read the current loksyu data object from world settings */\nexport function getLoksyuData() {\n return game.settings.get(SYSTEM_ID, \"loksyuData\") ?? {\n wood: {yin:0,yang:0}, fire: {yin:0,yang:0}, earth: {yin:0,yang:0}, metal: {yin:0,yang:0}, water: {yin:0,yang:0},\n }\n}\n\n/** Write the loksyu data object to world settings */\nexport async function setLoksyuData(data) {\n await game.settings.set(SYSTEM_ID, \"loksyuData\", data)\n Hooks.callAll(\"cde:loksyuUpdated\", data)\n}\n\n/** Read current TinJi value from world settings */\nexport function getTinjiValue() {\n return game.settings.get(SYSTEM_ID, \"tinjiData\") ?? 0\n}\n\n/** Write TinJi value to world settings */\nexport async function setTinjiValue(value) {\n await game.settings.set(SYSTEM_ID, \"tinjiData\", Math.max(0, value))\n Hooks.callAll(\"cde:tinjiUpdated\", Math.max(0, value))\n}\n\n/**\n * After a WuXing roll, add the loksyu faces (yin + yang) of the relevant\n * aspect to the loksyu settings data.\n *\n * @param {string} activeAspect - e.g. \"fire\"\n * @param {Object} faces - Die face counts { 0: n, 1: n, \u2026, 9: n }\n */\nexport async function updateLoksyuFromRoll(activeAspect, faces) {\n const cycle = WU_XING_CYCLE[activeAspect]\n if (!cycle) return\n\n const lokAspect = cycle[3]\n const [yinFace, yangFace] = ASPECT_FACES[lokAspect] ?? []\n if (yinFace === undefined) return\n\n const yinCount = faces[yinFace] ?? 0\n const yangCount = faces[yangFace] ?? 0\n if (yinCount === 0 && yangCount === 0) return\n\n const data = getLoksyuData()\n const current = data[lokAspect] ?? { yin: 0, yang: 0 }\n data[lokAspect] = {\n yin: (current.yin ?? 0) + yinCount,\n yang: (current.yang ?? 0) + yangCount,\n }\n await setLoksyuData(data)\n}\n\n/**\n * After a WuXing roll, add tinji faces to the TinJi settings.\n *\n * @param {number} count - Number of tinji faces rolled\n */\nexport async function updateTinjiFromRoll(count) {\n if (!count || count <= 0) return\n const current = getTinjiValue()\n await setTinjiValue(current + count)\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\n/**\n * Wu Xing rolling system for Chroniques de l'\u00C9trange.\n *\n * The Wu Xing cycle maps each aspect (by index 0-4) to die face groups:\n * - metal=0 : faces 3,8\n * - water=1 : faces 1,6\n * - earth=2 : faces 0/10,5\n * - fire=3 : faces 2,7\n * - wood=4 : faces 4,9\n *\n * For a given active aspect the five result categories are:\n * successes / auspicious / noxious / loksyu (yin face, yang face) / tinji\n * Each category is associated with one of the five aspects in Wu Xing cycle order.\n */\n\nimport { MAGICS, ASPECT_LABELS, ASPECT_ICONS, ASPECT_FACES, ASPECT_NAMES, WU_XING_CYCLE } from \"../config/constants.js\"\nimport { updateLoksyuFromRoll, updateTinjiFromRoll } from \"./apps/singletons.js\"\n\nconst RESULT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-dice-result.html\"\nconst SKILL_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-skill-dice-prompt.html\"\nconst SKILL_SPECIAL_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-skill-special-dice-prompt.html\"\nconst MAGIC_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-magic-dice-prompt.html\"\nconst WEAPON_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-weapon-dice-prompt.html\"\n\n/** Maps i18n element label \u2192 aspect name (for speciality default aspect lookup) */\nconst LABELELEMENT_TO_ASPECT = {\n \"CDE.Metal\": \"metal\",\n \"CDE.Water\": \"water\",\n \"CDE.Earth\": \"earth\",\n \"CDE.Fire\": \"fire\",\n \"CDE.Wood\": \"wood\",\n}\n\n/** Maps weapon range string \u2192 dice malus applied to the attack pool */\nconst RANGE_MALUS = {\n contact: 0,\n courte: 0,\n mediane: -1,\n longue: -2,\n extreme: -3,\n}\n\n/** Maps weapon type string \u2192 default skill key */\nconst WEAPON_TYPE_SKILL = {\n melee: \"kungfu\",\n thrown: \"rangedcombat\",\n ranged: \"rangedcombat\",\n firearm: \"rangedcombat\",\n}\n\n/** Maps weapon damageAspect name \u2192 ASPECT_NAMES index */\nconst WEAPON_ASPECT_INDEX = { metal: 0, eau: 1, water: 1, terre: 2, earth: 2, feu: 3, fire: 3, bois: 4, wood: 4 }\n\n/** Count how many times each die face appeared in the roll results */\nfunction countFaces(rollResults) {\n const counts = { 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0, 0:0 }\n for (const die of rollResults) {\n const face = die.result === 10 ? 0 : die.result\n counts[face]++\n }\n return counts\n}\n\n/**\n * Compute Wu Xing result categories from face counts and active aspect.\n * Returns { successesdice, auspiciousdice, noxiousdice, loksyudice, tinjidice, loksyurepartition }\n */\nfunction computeWuXingResults(faces, aspectName, bonusAuspicious = 0) {\n const cycle = WU_XING_CYCLE[aspectName]\n if (!cycle) return null\n\n const [succAspect, ausAspect, noxAspect, lokAspect, tinAspect] = cycle\n const [succYin, succYang] = ASPECT_FACES[succAspect]\n const [ausYin, ausYang] = ASPECT_FACES[ausAspect]\n const [noxYin, noxYang] = ASPECT_FACES[noxAspect]\n const [lokYin, lokYang] = ASPECT_FACES[lokAspect]\n const [tinYin, tinYang] = ASPECT_FACES[tinAspect]\n\n const yin = game.i18n.localize(\"CDE.Yin\")\n const yang = game.i18n.localize(\"CDE.Yang\")\n\n return {\n successesdice: faces[succYin] + faces[succYang],\n auspiciousdice: faces[ausYin] + faces[ausYang] + bonusAuspicious,\n noxiousdice: faces[noxYin] + faces[noxYang],\n loksyudice: faces[lokYin] + faces[lokYang],\n loksyurepartition: `[${yin}(${faces[lokYin]}) ${yang}(${faces[lokYang]})]`,\n tinjidice: faces[tinYin] + faces[tinYang],\n }\n}\n\n/** Read a named field from a dialog DOM element */\nfunction readField(dlg, name) {\n const el = dlg.querySelector(`[name=\"${name}\"]`)\n if (!el) return null\n return el.type === \"checkbox\" ? el.checked : el.value\n}\n\n/**\n * Open a DialogV2.prompt with the given template + data and return the resolved form values.\n * The callback receives the DialogV2 application instance; fields are read from its .element.\n * @returns {Promise|null>}\n */\nasync function showRollPrompt({ title, template, data, fields }) {\n const content = await foundry.applications.handlebars.renderTemplate(template, data)\n return foundry.applications.api.DialogV2.prompt({\n window: { title },\n content,\n rejectClose: false,\n ok: {\n label: game.i18n.localize(\"CDE.Validate\"),\n callback: (event, button, dialog) => {\n // In AppV2, dialog is the application instance; .element is the root HTMLElement\n const root = dialog.element ?? dialog\n const result = {}\n for (const field of fields) {\n result[field] = readField(root, field)\n }\n return result\n },\n },\n })\n}\n\n/**\n * Open the skill roll prompt and return the user-confirmed parameters.\n * @param {object} params - Initial values\n * @returns {Promise}\n */\nasync function showSkillPrompt(params) {\n return showRollPrompt({\n title: params.title,\n template: params.isSpecial ? SKILL_SPECIAL_PROMPT_TEMPLATE : SKILL_PROMPT_TEMPLATE,\n data: {\n numberofdice: params.numberofdice,\n aspect: Number(params.aspect ?? 0),\n bonusmalus: params.bonusmalus ?? 0,\n woundmalus: params.woundmalus ?? 0,\n bonusauspiciousdice: params.bonusauspiciousdice ?? 0,\n typeofthrow: Number(params.typeofthrow ?? 0),\n },\n fields: [\"aspect\", \"bonusmalus\", \"woundmalus\", \"bonusauspiciousdice\", \"typeofthrow\"],\n })\n}\n\n/**\n * Open the magic roll prompt and return the user-confirmed parameters.\n */\nasync function showMagicPrompt(params) {\n return showRollPrompt({\n title: params.title,\n template: MAGIC_PROMPT_TEMPLATE,\n data: {\n numberofdice: params.numberofdice ?? 0,\n aspectskill: Number(params.aspectskill ?? 0),\n bonusmalusskill: params.bonusmalusskill ?? 0,\n bonusauspiciousdice: params.bonusauspiciousdice ?? 0,\n aspectspeciality: Number(params.aspectspeciality ?? 0),\n rolldifficulty: params.rolldifficulty ?? 1,\n bonusmalusspeciality: params.bonusmalusspeciality ?? 0,\n heispend: params.heispend ?? 0,\n typeofthrow: Number(params.typeofthrow ?? 0),\n },\n fields: [\"aspectskill\", \"bonusmalusskill\", \"bonusauspiciousdice\",\n \"aspectspeciality\", \"rolldifficulty\", \"bonusmalusspeciality\",\n \"heispend\", \"typeofthrow\"],\n })\n}\n\n/**\n * Open the weapon attack roll prompt and return user-confirmed parameters.\n */\nasync function showWeaponPrompt(params) {\n return showRollPrompt({\n title: params.title,\n template: WEAPON_PROMPT_TEMPLATE,\n data: {\n numberofdice: params.numberofdice ?? 0,\n weaponName: params.weaponName ?? \"\",\n weaponTypeLabel: params.weaponTypeLabel ?? \"CDE.Weapon\",\n weaponAspectIcon: params.weaponAspectIcon ?? \"\",\n weaponAspectLabel: params.weaponAspectLabel ?? \"\",\n damageBase: params.damageBase ?? 1,\n weaponskill: params.weaponskill ?? \"kungfu\",\n aspect: Number(params.aspect ?? 0),\n effectiverange: params.effectiverange ?? \"contact\",\n bonusmalus: params.bonusmalus ?? 0,\n woundmalus: params.woundmalus ?? 0,\n bonusauspiciousdice: params.bonusauspiciousdice ?? 0,\n typeofthrow: Number(params.typeofthrow ?? 0),\n },\n fields: [\"weaponskill\", \"aspect\", \"effectiverange\", \"bonusmalus\", \"woundmalus\",\n \"bonusauspiciousdice\", \"typeofthrow\"],\n })\n}\n\n/**\n * Build and send a single enriched ChatMessage containing both the roll\n * (for Dice So Nice) and the Wu Xing result card.\n */\nasync function sendResultMessage(actor, resultData, roll, rollMode) {\n const html = await foundry.applications.handlebars.renderTemplate(RESULT_TEMPLATE, resultData)\n return ChatMessage.create({\n user: game.user.id,\n speaker: ChatMessage.getSpeaker({ actor }),\n content: html,\n rolls: [roll],\n rollMode,\n flags: {\n \"fvtt-chroniques-de-l-etrange\": { rollResult: { ...resultData } },\n },\n })\n}\n\nconst ROLL_MODES = [\"roll\", \"gmroll\", \"blindroll\", \"selfroll\"]\n\n/**\n * Main entry point: roll dice for a given actor.\n *\n * @param {Actor} actor\n * @param {string} rollKey - e.g. \"prowess-skill\", \"fire-aspect\", \"alchemy-magic-elixirs\"\n */\nexport async function rollForActor(actor, rollKey) {\n const parts = rollKey.split(\"-\")\n const skillLibel = parts[0]\n const typeLibel = parts[1]\n const specialLibel = parts[2] ?? null\n\n const sys = actor.system\n const typeOfThrow = Number(sys.prefs?.typeofthrow?.choice ?? 0)\n\n let numberofdice = 0\n let title = \"\"\n let isSpecial = false\n let isMagic = false\n let isMagicSpecial = false\n let kfDefaultAspect = -1 // set in \"itemkungfu\" case, used when computing defaultAspect\n\n // ---- Determine dice count + title ----\n const MAGIC_I18N_KEYS = {\n internalcinnabar: \"CDE.InternalCinnabar\",\n alchemy: \"CDE.Alchemy\",\n masteryoftheway: \"CDE.MasteryOfTheWay\",\n exorcism: \"CDE.Exorcism\",\n geomancy: \"CDE.Geomancy\",\n }\n\n switch (typeLibel) {\n case \"aspect\":\n numberofdice = sys.aspect[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.aspect[skillLibel]?.label ?? \"CDE.Roll\")\n break\n case \"aptitude\":\n // NPC aptitude roll \u2014 flat pool with WuXing prompt\n numberofdice = sys.aptitudes?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(`CDE.${skillLibel.charAt(0).toUpperCase() + skillLibel.slice(1)}`)\n break\n case \"skill\":\n numberofdice = sys.skills?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.skills?.[skillLibel]?.label ?? \"CDE.Roll\")\n break\n case \"special\":\n numberofdice = sys.skills?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.skills?.[skillLibel]?.label ?? \"CDE.Roll\")\n title += ` [${game.i18n.localize(\"CDE.Speciality\")}]`\n isSpecial = true\n if (!sys.skills?.[skillLibel]?.specialities) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error2\"))\n return\n }\n break\n case \"resource\":\n numberofdice = sys.resources?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.resources?.[skillLibel]?.label ?? \"CDE.Roll\")\n break\n case \"field\":\n numberofdice = sys.resources?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.resources?.[skillLibel]?.label ?? \"CDE.Roll\")\n title += ` [${game.i18n.localize(\"CDE.Field\")}]`\n isSpecial = true\n if (!sys.resources?.[skillLibel]?.specialities) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error4\"))\n return\n }\n break\n case \"magic\":\n numberofdice = sys.magics?.[skillLibel]?.value ?? 0\n isMagic = true\n title = game.i18n.localize(MAGIC_I18N_KEYS[skillLibel] ?? \"CDE.Magics\")\n break\n case \"magicspecial\":\n numberofdice = sys.magics?.[skillLibel]?.value ?? 0\n isMagicSpecial = true\n isMagic = true\n if (!sys.magics?.[skillLibel]?.speciality?.[specialLibel]?.check) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error6\"))\n return\n }\n title = `${game.i18n.localize(MAGIC_I18N_KEYS[skillLibel] ?? \"CDE.Magics\")} [${game.i18n.localize(MAGICS?.[skillLibel]?.speciality?.[specialLibel]?.label ?? \"\")}]`\n break\n case \"itemkungfu\": {\n // skillLibel = item._id \u2014 look up the kungfu item to find which skill + aspect to use\n const kfItem = actor.items.get(skillLibel)\n if (!kfItem) { ui.notifications.warn(game.i18n.localize(\"CDE.Error0\")); return }\n const kfSkill = kfItem.system.skill ?? \"kungfu\"\n numberofdice = sys.skills?.[kfSkill]?.value ?? 0\n title = `${kfItem.name} [${game.i18n.localize(sys.skills?.[kfSkill]?.label ?? \"CDE.KungFu\")}]`\n kfDefaultAspect = ASPECT_NAMES.indexOf(kfItem.system.aspect ?? \"metal\")\n if (kfDefaultAspect < 0) kfDefaultAspect = 0\n break\n }\n case \"itemweapon\": {\n // skillLibel = item._id \u2014 look up the weapon item to find type + aspect + damage\n const wpItem = actor.items.get(skillLibel)\n if (!wpItem) { ui.notifications.warn(game.i18n.localize(\"CDE.Error0\")); return }\n\n const wpType = wpItem.system.weaponType ?? \"melee\"\n const wpSkill = WEAPON_TYPE_SKILL[wpType] ?? \"kungfu\"\n numberofdice = sys.skills?.[wpSkill]?.value ?? 0\n\n const wpAspectRaw = wpItem.system.damageAspect ?? \"metal\"\n const wpAspectIdx = WEAPON_ASPECT_INDEX[wpAspectRaw] ?? 0\n const wpRange = wpItem.system.range ?? \"contact\"\n\n const WEAPON_TYPE_LABELS = {\n melee: \"CDE.WeaponMelee\",\n thrown: \"CDE.WeaponThrown\",\n ranged: \"CDE.WeaponRanged\",\n firearm: \"CDE.WeaponFirearm\",\n }\n\n // Show weapon-specific prompt\n const wParams = await showWeaponPrompt({\n title: `${wpItem.name} [${game.i18n.localize(sys.skills?.[wpSkill]?.label ?? \"CDE.WeaponRoll\")}]`,\n numberofdice,\n weaponName: wpItem.name,\n weaponTypeLabel: WEAPON_TYPE_LABELS[wpType] ?? \"CDE.Weapon\",\n weaponAspectIcon: ASPECT_ICONS[ASPECT_NAMES[wpAspectIdx]] ?? \"\",\n weaponAspectLabel: game.i18n.localize(ASPECT_LABELS[ASPECT_NAMES[wpAspectIdx]] ?? \"\"),\n damageBase: wpItem.system.damageBase ?? 1,\n weaponskill: wpSkill,\n aspect: wpAspectIdx,\n effectiverange: wpRange,\n bonusmalus: 0,\n woundmalus: 0,\n bonusauspiciousdice: 0,\n typeofthrow: typeOfThrow,\n })\n\n if (!wParams) return // cancelled\n\n // Resolve final pool from weapon prompt values\n const wpChosenSkill = wParams.weaponskill ?? wpSkill\n const wpSkillDice = sys.skills?.[wpChosenSkill]?.value ?? 0\n const wpAspFinal = Number(wParams.aspect ?? wpAspectIdx)\n const wpAspectDice = sys.aspect[ASPECT_NAMES[wpAspFinal]]?.value ?? 0\n const wpRangeMalus = RANGE_MALUS[wParams.effectiverange ?? \"contact\"] ?? 0\n const wpBonusMalus = Number(wParams.bonusmalus ?? 0)\n const wpWoundMalus = Number(wParams.woundmalus ?? 0)\n const wpBonusAusp = Number(wParams.bonusauspiciousdice ?? 0)\n const wpThrowMode = Number(wParams.typeofthrow ?? 0)\n const wpDamageBase = wpItem.system.damageBase ?? 1\n\n const wpTotalDice = wpSkillDice + wpAspectDice + wpRangeMalus + wpBonusMalus - wpWoundMalus\n if (wpTotalDice <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error0\"))\n return\n }\n\n const wpRoll = new Roll(`${wpTotalDice}d10`)\n await wpRoll.evaluate()\n\n const wpAspectName = ASPECT_NAMES[wpAspFinal] ?? \"metal\"\n const wpFaces = countFaces(wpRoll.dice[0]?.results ?? [])\n const wpResults = computeWuXingResults(wpFaces, wpAspectName, wpBonusAusp)\n if (!wpResults) return\n\n const wpModParts = []\n if (wpRangeMalus !== 0) wpModParts.push(`${wpRangeMalus} ${game.i18n.localize(\"CDE.RangePenalty\")}`)\n if (wpBonusMalus !== 0) wpModParts.push(`${wpBonusMalus > 0 ? \"+\" : \"\"}${wpBonusMalus} ${game.i18n.localize(\"CDE.BonusMalus\")}`)\n if (wpWoundMalus !== 0) wpModParts.push(`-${wpWoundMalus} ${game.i18n.localize(\"CDE.WoundMalus\")}`)\n if (wpBonusAusp !== 0) wpModParts.push(`+${wpBonusAusp} ${game.i18n.localize(\"CDE.BonusAuspiciousDice\")}`)\n\n const wpMsg = await sendResultMessage(actor, {\n rollLabel: `${wpItem.name}`,\n aspectName: wpAspectName,\n aspectLabel: game.i18n.localize(ASPECT_LABELS[wpAspectName] ?? \"\"),\n aspectIcon: ASPECT_ICONS[wpAspectName] ?? \"\",\n totalDice: wpTotalDice,\n modifiersText: wpModParts.length ? wpModParts.join(\" \u00B7 \") : \"\",\n spellPower: null,\n rollDifficulty: null,\n actorName: actor.name ?? \"\",\n actorImg: actor.img ?? \"\",\n // weapon-specific\n weaponName: wpItem.name,\n damageBase: wpDamageBase,\n totalDamage: wpResults.successesdice * wpDamageBase,\n ...wpResults,\n aspect: wpAspectName,\n d1: wpFaces[1], d2: wpFaces[2], d3: wpFaces[3], d4: wpFaces[4], d5: wpFaces[5],\n d6: wpFaces[6], d7: wpFaces[7], d8: wpFaces[8], d9: wpFaces[9], d0: wpFaces[0],\n }, wpRoll, ROLL_MODES[wpThrowMode] ?? \"roll\")\n\n if (game.modules.get(\"dice-so-nice\")?.active && wpMsg?.id) {\n await game.dice3d.waitFor3DAnimationByMessageID(wpMsg.id)\n }\n // Auto-update Loksyu/TinJi singletons from weapon roll faces\n if ((wpResults.loksyudice ?? 0) > 0) await updateLoksyuFromRoll(wpAspectName, wpFaces)\n if ((wpResults.tinjidice ?? 0) > 0) await updateTinjiFromRoll(wpResults.tinjidice)\n return\n }\n default:\n ui.notifications.warn(`Unknown roll type: ${typeLibel}`)\n return\n }\n\n // For magic rolls the prompt allows adding HEI dice, so don't block early.\n // For itemkungfu, allow 0 base dice (user can add bonus dice in the prompt).\n if (numberofdice <= 0 && typeLibel !== \"aspect\" && typeLibel !== \"itemkungfu\" && !isMagic) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error0\"))\n return\n }\n\n // ---- Pre-compute default aspect for magic based on skill ----\n const MAGIC_ASPECTS = {\n internalcinnabar: 0, // metal\n alchemy: 1, // water\n masteryoftheway: 2, // earth\n exorcism: 3, // fire\n geomancy: 4, // wood\n }\n\n let defaultAspect = typeLibel === \"aspect\"\n ? [\"metal\",\"water\",\"earth\",\"fire\",\"wood\"].indexOf(skillLibel)\n : 0\n if (isMagic && MAGIC_ASPECTS[skillLibel] !== undefined) {\n defaultAspect = MAGIC_ASPECTS[skillLibel]\n }\n if (kfDefaultAspect >= 0) {\n defaultAspect = kfDefaultAspect\n }\n\n let defaultSpecialAspect = 0\n if (isMagicSpecial && specialLibel) {\n // Look up the speciality's element from the MAGICS config constant\n const specialCfg = MAGICS?.[skillLibel]?.speciality?.[specialLibel]\n const aspectName = LABELELEMENT_TO_ASPECT[specialCfg?.labelelement]\n if (aspectName) {\n defaultSpecialAspect = ASPECT_NAMES.indexOf(aspectName)\n }\n }\n\n // ---- Show roll prompt ----\n let params\n\n if (isMagic) {\n params = await showMagicPrompt({\n title,\n numberofdice,\n aspectskill: defaultAspect,\n bonusmalusskill: 0,\n bonusauspiciousdice: 0,\n aspectspeciality: defaultSpecialAspect,\n rolldifficulty: 1,\n bonusmalusspeciality: 0,\n heispend: 0,\n typeofthrow: typeOfThrow,\n })\n } else {\n params = await showSkillPrompt({\n title,\n numberofdice,\n aspect: defaultAspect,\n bonusmalus: 0,\n woundmalus: 0,\n bonusauspiciousdice: 0,\n typeofthrow: typeOfThrow,\n isSpecial,\n })\n }\n\n if (!params) return // cancelled\n\n // ---- Compute total dice and roll ----\n let aspectIndex, bonusMalus, bonusAuspicious, throwMode\n let spellAspectIndex = null // magic only: aspect of the speciality for Wu Xing\n let rollDifficulty = 1 // magic only: multiplier applied to successes\n\n if (isMagic) {\n const skillAspectIndex = Number(params.aspectskill ?? 0)\n spellAspectIndex = Number(params.aspectspeciality ?? skillAspectIndex)\n aspectIndex = skillAspectIndex // used only for skill dice pool\n bonusMalus = Number(params.bonusmalusskill ?? 0)\n bonusAuspicious = Number(params.bonusauspiciousdice ?? 0)\n rollDifficulty = Math.max(1, Number(params.rolldifficulty ?? 1))\n throwMode = Number(params.typeofthrow ?? 0)\n // magic: magic skill + aspect + bonuses + 1 (speciality base) + HEI spent\n const aspectDice = sys.aspect?.[ASPECT_NAMES[aspectIndex]]?.value ?? 0\n const bonusSpec = Number(params.bonusmalusspeciality ?? 0)\n const heiDice = Number(params.heispend ?? 0)\n numberofdice = numberofdice + aspectDice + bonusMalus + 1 + bonusSpec + heiDice\n } else {\n aspectIndex = Number(params.aspect ?? 0)\n bonusMalus = Number(params.bonusmalus ?? 0)\n const woundMalus = Number(params.woundmalus ?? 0)\n bonusAuspicious = Number(params.bonusauspiciousdice ?? 0)\n throwMode = Number(params.typeofthrow ?? 0)\n\n const aspectDice = (typeLibel !== \"aspect\")\n ? (sys.aspect?.[ASPECT_NAMES[aspectIndex]]?.value ?? 0)\n : 0\n\n numberofdice = numberofdice + aspectDice + bonusMalus - woundMalus\n if (isSpecial) numberofdice += 1 // +1d for speciality\n }\n\n if (numberofdice <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error0\"))\n return\n }\n\n // ---- Roll ----\n const roll = new Roll(`${numberofdice}d10`)\n await roll.evaluate()\n\n const rollModeKey = ROLL_MODES[throwMode] ?? \"roll\"\n\n // ---- Compute Wu Xing results ----\n // For magic rolls, the spell's aspect (aspectspeciality) governs the Wu Xing\n // cycle (which faces count as successes/auspicious/etc.), not the skill aspect.\n const wuXingAspectName = spellAspectIndex !== null\n ? ASPECT_NAMES[spellAspectIndex]\n : ASPECT_NAMES[aspectIndex]\n const allResults = roll.dice[0]?.results ?? []\n const faces = countFaces(allResults)\n const results = computeWuXingResults(faces, wuXingAspectName, bonusAuspicious)\n if (!results) return\n\n // For magic, successesdice \u00D7 rollDifficulty = spell power\n const spellPower = isMagic ? results.successesdice * rollDifficulty : null\n\n // ---- Build modifier summary text ----\n const modParts = []\n if (isMagic) {\n const bm = Number(params.bonusmalusskill ?? 0)\n const bs = Number(params.bonusmalusspeciality ?? 0)\n const hs = Number(params.heispend ?? 0)\n const ba = Number(params.bonusauspiciousdice ?? 0)\n if (bm !== 0) modParts.push(`${bm > 0 ? \"+\" : \"\"}${bm} ${game.i18n.localize(\"CDE.BonusMalus\")}`)\n if (bs !== 0) modParts.push(`${bs > 0 ? \"+\" : \"\"}${bs} ${game.i18n.localize(\"CDE.SpellBonus\")}`)\n if (ba !== 0) modParts.push(`+${ba} ${game.i18n.localize(\"CDE.BonusAuspiciousDice\")}`)\n if (hs !== 0) modParts.push(`${hs} ${game.i18n.localize(\"CDE.HeiSpend\")}`)\n if (rollDifficulty !== 1) modParts.push(`\u00D7${rollDifficulty} ${game.i18n.localize(\"CDE.RollDifficulty\")}`)\n } else {\n const bm = Number(params.bonusmalus ?? 0)\n const wm = Number(params.woundmalus ?? 0)\n const ba = Number(params.bonusauspiciousdice ?? 0)\n if (bm !== 0) modParts.push(`${bm > 0 ? \"+\" : \"\"}${bm} ${game.i18n.localize(\"CDE.BonusMalus\")}`)\n if (wm !== 0) modParts.push(`-${wm} ${game.i18n.localize(\"CDE.WoundMalus\")}`)\n if (ba !== 0) modParts.push(`+${ba} ${game.i18n.localize(\"CDE.BonusAuspiciousDice\")}`)\n }\n\n // ---- Send single enriched ChatMessage (roll + result card) ----\n const msg = await sendResultMessage(actor, {\n // Roll identity\n rollLabel: title,\n aspectName: wuXingAspectName,\n aspectLabel: game.i18n.localize(ASPECT_LABELS[wuXingAspectName] ?? \"\"),\n aspectIcon: ASPECT_ICONS[wuXingAspectName] ?? \"\",\n totalDice: numberofdice,\n modifiersText: modParts.length ? modParts.join(\" \u00B7 \") : \"\",\n // Spell power (magic only)\n spellPower,\n rollDifficulty: isMagic ? rollDifficulty : null,\n // Actor info\n actorName: actor.name ?? \"\",\n actorImg: actor.img ?? \"\",\n // Wu Xing results\n aspect: wuXingAspectName,\n ...results,\n // Die face counts\n d1: faces[1], d2: faces[2], d3: faces[3], d4: faces[4], d5: faces[5],\n d6: faces[6], d7: faces[7], d8: faces[8], d9: faces[9], d0: faces[0],\n }, roll, rollModeKey)\n\n // ---- Wait for Dice So Nice animation ----\n if (game.modules.get(\"dice-so-nice\")?.active && msg?.id) {\n await game.dice3d.waitFor3DAnimationByMessageID(msg.id)\n }\n\n // ---- Auto-update Loksyu / TinJi singletons ----\n if ((results.loksyudice ?? 0) > 0) await updateLoksyuFromRoll(wuXingAspectName, faces)\n if ((results.tinjidice ?? 0) > 0) await updateTinjiFromRoll(results.tinjidice)\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nconst { HandlebarsApplicationMixin } = foundry.applications.api\n\nexport class CDEBaseActorSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ActorSheetV2) {\n static DEFAULT_OPTIONS = {\n classes: [\"fvtt-chroniques-de-l-etrange\", \"actor\"],\n position: { width: 920, height: 800 },\n window: { resizable: true },\n form: { submitOnChange: true },\n dragDrop: [{ dragSelector: \".item, [data-drag='true']\", dropSelector: null }],\n actions: {\n create: CDEBaseActorSheet.#onItemCreate,\n edit: CDEBaseActorSheet.#onItemEdit,\n delete: CDEBaseActorSheet.#onItemDelete,\n editImage: CDEBaseActorSheet.#onEditImage,\n },\n }\n\n tabGroups = { primary: \"description\" }\n\n get title() {\n return this.document.name\n }\n\n async _prepareContext() {\n const descriptionHTML = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description ?? \"\", { async: true })\n const cssClass = this.options.classes?.join(\" \") ?? \"\"\n return {\n actor: this.document,\n system: this.document.system,\n systemData: this.document.system,\n systemFields: this.document.system.schema.fields,\n items: this.document.items.contents,\n descriptionHTML,\n editable: this.isEditable,\n cssClass,\n }\n }\n\n // Restore the active tab after every render (including re-renders from submitOnChange).\n // AppV2 does NOT preserve tab state natively \u2014 we must re-apply it from this.tabGroups,\n // which is dynamically updated by changeTab() when the user clicks a tab.\n _onRender(context, options) {\n super._onRender?.(context, options)\n for (const [group, tab] of Object.entries(this.tabGroups)) {\n this.changeTab(tab, group, { force: true })\n }\n }\n\n static async #onItemCreate(event, target) {\n const type = target.dataset.type ?? \"item\"\n const cls = getDocumentClass(\"Item\")\n const labels = {\n item: \"CDE.ItemNew\",\n weapon: \"CDE.WeaponNew\",\n armor: \"CDE.ArmorNew\",\n sanhei: \"CDE.SanheiNew\",\n ingredient: \"CDE.IngredientNew\",\n kungfu: \"CDE.KFNew\",\n spell: \"CDE.SpellNew\",\n supernatural: \"CDE.SupernaturalNew\",\n }\n const name = game.i18n.localize(labels[type] ?? \"CDE.ItemNew\")\n const systemData = {}\n if (type === \"spell\" && target.dataset.discipline) {\n systemData.discipline = target.dataset.discipline\n }\n return cls.create({ name, type, system: systemData }, { parent: this.document })\n }\n\n static #onItemEdit(event, target) {\n const itemId = target.dataset.itemId ?? target.closest(\"[data-item-id]\")?.dataset.itemId\n const item = this.document.items.get(itemId)\n if (item) item.sheet.render(true)\n }\n\n static #onItemDelete(event, target) {\n const itemId = target.dataset.itemId ?? target.closest(\"[data-item-id]\")?.dataset.itemId\n const item = this.document.items.get(itemId)\n if (item) item.delete()\n }\n\n static async #onEditImage(event, target) {\n const attr = target.dataset.edit\n const current = foundry.utils.getProperty(this.document, attr)\n const { img } = this.document.constructor.getDefaultArtwork?.(this.document.toObject()) ?? {}\n const fp = new FilePicker({\n current,\n type: \"image\",\n redirectToRoot: img ? [img] : [],\n callback: (path) => this.document.update({ [attr]: path }),\n top: this.position.top + 40,\n left: this.position.left + 10,\n })\n return fp.browse()\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { MAGICS, SUBTYPES } from \"../../../config/constants.js\"\nimport { rollInitiativePC } from \"../../initiative.js\"\nimport { rollForActor } from \"../../rolling.js\"\nimport { CDEBaseActorSheet } from \"./base.js\"\n\nexport class CDECharacterSheet extends CDEBaseActorSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"character\"],\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/actor/cde-character-sheet.html\" },\n }\n\n tabGroups = { primary: \"description\" }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n context.equipments = context.items.filter((item) => item.type === \"item\")\n context.weapons = context.items.filter((item) => item.type === \"weapon\")\n context.armors = context.items.filter((item) => item.type === \"armor\")\n context.sanheis = context.items.filter((item) => item.type === \"sanhei\")\n context.ingredients = context.items.filter((item) => item.type === \"ingredient\")\n context.spells = context.items.filter((item) => item.type === \"spell\")\n context.kungfus = context.items.filter((item) => item.type === \"kungfu\")\n context.CDE = { MAGICS, SUBTYPES }\n\n // Group spells by discipline key (matches MAGICS keys)\n const spellsByDiscipline = {}\n for (const spell of context.spells) {\n const disc = spell.system?.discipline ?? \"internalcinnabar\"\n if (!spellsByDiscipline[disc]) spellsByDiscipline[disc] = []\n spellsByDiscipline[disc].push(spell)\n }\n\n // Build magicsDisplay: only include the 5 relevant specialities per magic type + grimoire\n const systemMagics = context.systemData.magics ?? {}\n context.magicsDisplay = Object.fromEntries(\n Object.entries(MAGICS).map(([magicKey, magicDef]) => {\n const magicData = systemMagics[magicKey] ?? {}\n return [\n magicKey,\n {\n value: magicData.value ?? 0,\n visible: magicData.visible ?? false,\n speciality: Object.fromEntries(\n Object.keys(magicDef.speciality).map((specKey) => [\n specKey,\n { check: magicData.speciality?.[specKey]?.check ?? false },\n ])\n ),\n grimoire: spellsByDiscipline[magicKey] ?? [],\n },\n ]\n })\n )\n\n return context\n }\n\n _onRender(context, options) {\n super._onRender(context, options)\n this.#bindInitiativeControls()\n this.#bindPrefs()\n this.#bindRollButtons()\n this.#bindComponentRandomize()\n }\n\n #bindInitiativeControls() {\n const buttons = this.element?.querySelectorAll(\".click-initiative\")\n if (!buttons?.length) return\n buttons.forEach((button) => {\n button.addEventListener(\"click\", async () => {\n const action = button.dataset.libelId\n let initiative = this.document.system.initiative ?? 1\n if (action === \"plus\") {\n initiative = initiative >= 24 ? 1 : initiative + 1\n await this.document.update({ \"system.initiative\": initiative })\n return\n }\n if (action === \"minus\") {\n initiative = initiative <= 1 ? 24 : initiative - 1\n await this.document.update({ \"system.initiative\": initiative })\n return\n }\n if (action === \"create\") {\n await rollInitiativePC(this.document)\n }\n })\n })\n }\n\n #bindPrefs() {\n const button = this.element?.querySelector(\".click-prefs\")\n if (!button) return\n button.addEventListener(\"click\", async () => {\n const current = this.document.system.prefs?.typeofthrow ?? { choice: \"0\", check: true }\n const html = `\n
\n
\n \n \n
\n
\n \n \n
\n
`\n const prefs = await foundry.applications.api.DialogV2.prompt({\n window: { title: game.i18n.localize(\"CDE.Preferences\") },\n content: html,\n rejectClose: false,\n ok: {\n label: game.i18n.localize(\"CDE.Validate\"),\n callback: (_ev, _btn, dialog) => {\n const root = dialog.element ?? dialog\n const choice = root.querySelector(\"select[name='choice']\")?.value ?? \"0\"\n const check = root.querySelector(\"input[name='check']\")?.checked ?? false\n return { choice, check }\n },\n },\n })\n if (prefs) {\n await this.document.update({\n \"system.prefs.typeofthrow.choice\": String(prefs.choice),\n \"system.prefs.typeofthrow.check\": !!prefs.check,\n })\n }\n })\n }\n\n #bindRollButtons() {\n const cells = this.element?.querySelectorAll(\"td.click[data-libel-id], td.click2[data-libel-id], .cde-roll-trigger[data-libel-id]\")\n if (!cells?.length) return\n cells.forEach((cell) => {\n cell.addEventListener(\"click\", (event) => {\n event.preventDefault()\n const rollKey = cell.dataset.libelId\n if (rollKey) rollForActor(this.document, rollKey)\n })\n })\n }\n\n #bindComponentRandomize() {\n const btn = this.element?.querySelector(\"[data-action='randomize-component']\")\n if (!btn) return\n btn.addEventListener(\"click\", async () => {\n const roll = new Roll(\"1d10\")\n await roll.evaluate()\n const face = roll.total === 10 ? 0 : roll.total\n const COMPONENT_KEYS = { 1:\"one\", 2:\"two\", 3:\"three\", 4:\"four\", 5:\"five\",\n 6:\"six\", 7:\"seven\", 8:\"eight\", 9:\"nine\", 0:\"zero\" }\n const componentKey = COMPONENT_KEYS[face]\n const componentValue = this.document.system.component?.[componentKey]?.value ?? \"\"\n const label = componentValue\n ? `${componentValue}`\n : `${game.i18n.localize(\"CDE.Component\")}${face}`\n const content = `\n
\n ${game.i18n.localize(\"CDE.ChanceThrowResult\")}\n ${label}\n
`\n await ChatMessage.create({\n user: game.user.id,\n speaker: ChatMessage.getSpeaker({ actor: this.document }),\n content,\n rolls: [roll],\n rollMode: game.settings.get(\"core\", \"rollMode\") ?? \"roll\",\n })\n })\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { rollInitiativeNPC } from \"../../initiative.js\"\nimport { rollForActor } from \"../../rolling.js\"\nimport { CDEBaseActorSheet } from \"./base.js\"\n\nexport class CDENpcSheet extends CDEBaseActorSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"npc\"],\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/actor/cde-npc-sheet.html\" },\n }\n\n tabGroups = { primary: \"description\" }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n context.supernaturals = context.items.filter((item) => item.type === \"supernatural\")\n context.spells = context.items.filter((item) => item.type === \"spell\")\n context.kungfus = context.items.filter((item) => item.type === \"kungfu\")\n context.weapons = context.items.filter((item) => item.type === \"weapon\")\n context.armors = context.items.filter((item) => item.type === \"armor\")\n context.equipments = context.items.filter((item) => item.type === \"item\")\n return context\n }\n\n _onRender(context, options) {\n super._onRender(context, options)\n this.#bindInitiativeControls()\n this.#bindRollButtons()\n }\n\n #bindRollButtons() {\n const cells = this.element?.querySelectorAll(\".cde-roll-trigger[data-libel-id]\")\n if (!cells?.length) return\n cells.forEach((cell) => {\n cell.addEventListener(\"click\", (event) => {\n event.preventDefault()\n const rollKey = cell.dataset.libelId\n if (rollKey) rollForActor(this.document, rollKey)\n })\n })\n }\n\n #bindInitiativeControls() {\n const buttons = this.element?.querySelectorAll(\".click-initiative-npc\")\n if (!buttons?.length) return\n buttons.forEach((button) => {\n button.addEventListener(\"click\", async () => {\n const action = button.dataset.libelId\n let initiative = this.document.system.initiative ?? 1\n if (action === \"plus\") {\n initiative = initiative >= 24 ? 1 : initiative + 1\n await this.document.update({ \"system.initiative\": initiative })\n return\n }\n if (action === \"minus\") {\n initiative = initiative <= 1 ? 24 : initiative - 1\n await this.document.update({ \"system.initiative\": initiative })\n return\n }\n if (action === \"create\") {\n await rollInitiativeNPC(this.document)\n }\n })\n })\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nconst { HandlebarsApplicationMixin } = foundry.applications.api\n\nexport class CDEBaseItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) {\n static DEFAULT_OPTIONS = {\n classes: [\"fvtt-chroniques-de-l-etrange\", \"item\"],\n position: { width: 520, height: \"auto\" },\n window: { resizable: true },\n form: { submitOnChange: true },\n actions: {\n editImage: CDEBaseItemSheet.#onEditImage,\n },\n }\n\n tabGroups = { primary: \"details\" }\n\n get title() {\n return this.document.name\n }\n\n async _prepareContext() {\n const cssClass = this.options.classes?.join(\" \") ?? \"\"\n const enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description ?? \"\", { async: true })\n const enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.notes ?? \"\", { async: true })\n return {\n item: this.document,\n system: this.document.system,\n systemData: this.document.system,\n systemFields: this.document.system.schema.fields,\n editable: this.isEditable,\n cssClass,\n enrichedDescription,\n enrichedNotes,\n descriptionHTML: enrichedDescription,\n notesHTML: enrichedNotes,\n }\n }\n\n // Restore the active tab after every render (including re-renders from submitOnChange).\n _onRender(context, options) {\n super._onRender?.(context, options)\n for (const [group, tab] of Object.entries(this.tabGroups)) {\n this.changeTab(tab, group, { force: true })\n }\n }\n\n static async #onEditImage(event, target) {\n const attr = target.dataset.edit\n const current = foundry.utils.getProperty(this.document, attr)\n const { img } = this.document.constructor.getDefaultArtwork?.(this.document.toObject()) ?? {}\n const fp = new FilePicker({\n current,\n type: \"image\",\n redirectToRoot: img ? [img] : [],\n callback: (path) => this.document.update({ [attr]: path }),\n top: this.position.top + 40,\n left: this.position.left + 10,\n })\n return fp.browse()\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEItemSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"equipment\"],\n position: { width: 560, height: 460 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-item-sheet.html\" },\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEKungfuSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"kungfu\"],\n position: { width: 720, height: 680 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-kungfu-sheet.html\" },\n }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n const techniques = this.document.system.techniques ?? {}\n const enrich = (value) => foundry.applications.ux.TextEditor.implementation.enrichHTML(value ?? \"\", { async: true })\n context.descriptionTechnique1HTML = await enrich(techniques.technique1?.technique)\n context.descriptionTechnique2HTML = await enrich(techniques.technique2?.technique)\n context.descriptionTechnique3HTML = await enrich(techniques.technique3?.technique)\n return context\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDESpellSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"spell\"],\n position: { width: 660, height: 680 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-spell-sheet.html\" },\n }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n const enrich = (content) => foundry.applications.ux.TextEditor.implementation.enrichHTML(content ?? \"\", { async: true })\n context.spellDescriptionHTML = await enrich(this.document.system.description)\n context.componentsDescriptionHTML = await enrich(this.document.system.components)\n context.effectsDescriptionHTML = await enrich(this.document.system.effects)\n context.examplesDescriptionHTML = await enrich(this.document.system.examples)\n return context\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDESupernaturalSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"supernatural\"],\n position: { width: 560, height: 520 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-supernatural-sheet.html\" },\n }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n const enrich = (content) => foundry.applications.ux.TextEditor.implementation.enrichHTML(content ?? \"\", { async: true })\n context.effectsHTML = await enrich(this.document.system.effects)\n return context\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEWeaponSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"weapon\"],\n position: { width: 580, height: 520 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-weapon-sheet.html\" },\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEArmorSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"armor\"],\n position: { width: 520, height: 460 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-armor-sheet.html\" },\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDESanheiSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"sanhei\"],\n position: { width: 580, height: 620 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-sanhei-sheet.html\" },\n }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n const enrich = (content) => foundry.applications.ux.TextEditor.implementation.enrichHTML(content ?? \"\", { async: true })\n const props = this.document.system.properties\n context.prop1DescriptionHTML = await enrich(props.prop1.description)\n context.prop2DescriptionHTML = await enrich(props.prop2.description)\n context.prop3DescriptionHTML = await enrich(props.prop3.description)\n context.propFields = this.document.system.schema.fields.properties.fields\n return context\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEIngredientSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"ingredient\"],\n position: { width: 520, height: 460 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-ingredient-sheet.html\" },\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { getLoksyuData, setLoksyuData } from \"./singletons.js\"\nimport { SYSTEM_ID } from \"../../config/constants.js\"\n\nexport class CDELoksyuApp extends foundry.applications.api.HandlebarsApplicationMixin(\n foundry.applications.api.ApplicationV2\n) {\n static DEFAULT_OPTIONS = {\n id: \"cde-loksyu-app\",\n tag: \"div\",\n window: {\n title: \"CDE.Loksyu\",\n icon: \"fas fa-yin-yang\",\n resizable: false,\n },\n classes: [\"cde-app\", \"cde-loksyu-standalone\"],\n position: { width: 520, height: \"auto\" },\n actions: {\n resetElement: CDELoksyuApp.#onResetElement,\n resetAll: CDELoksyuApp.#onResetAll,\n },\n }\n\n static PARTS = {\n main: {\n template: `systems/${SYSTEM_ID}/templates/apps/cde-loksyu-app.html`,\n },\n }\n\n /** @type {Function|null} bound hook handler */\n _updateHook = null\n\n /** Singleton accessor \u2014 open or bring to front */\n static open() {\n const existing = Array.from(foundry.applications.instances.values()).find(\n (app) => app instanceof CDELoksyuApp\n )\n if (existing) { existing.bringToFront(); return existing }\n const app = new CDELoksyuApp()\n app.render(true)\n return app\n }\n\n async _prepareContext() {\n const sys = getLoksyuData()\n const ELEMENTS = [\n { key: \"wood\", nameKey: \"CDE.Wood\", qualKey: \"CDE.WoodQualities\", img: `systems/${SYSTEM_ID}/images/cde_bois.webp` },\n { key: \"fire\", nameKey: \"CDE.Fire\", qualKey: \"CDE.FireQualities\", img: `systems/${SYSTEM_ID}/images/cde_feu.webp` },\n { key: \"earth\", nameKey: \"CDE.Earth\", qualKey: \"CDE.EarthQualities\", img: `systems/${SYSTEM_ID}/images/cde_terre.webp` },\n { key: \"metal\", nameKey: \"CDE.Metal\", qualKey: \"CDE.MetalQualities\", img: `systems/${SYSTEM_ID}/images/cde_metal.webp` },\n { key: \"water\", nameKey: \"CDE.Water\", qualKey: \"CDE.WaterQualities\", img: `systems/${SYSTEM_ID}/images/cde_eau.webp` },\n ]\n\n return {\n canEdit: game.user.isGM,\n elements: ELEMENTS.map((el) => ({\n ...el,\n yang: sys[el.key]?.yang ?? 0,\n yin: sys[el.key]?.yin ?? 0,\n })),\n }\n }\n\n _onRender(context, options) {\n super._onRender(context, options)\n this.#bindInputs()\n\n this._updateHook = Hooks.on(\"cde:loksyuUpdated\", () => this.render())\n }\n\n _onClose(options) {\n if (this._updateHook !== null) {\n Hooks.off(\"cde:loksyuUpdated\", this._updateHook)\n this._updateHook = null\n }\n super._onClose(options)\n }\n\n #bindInputs() {\n const inputs = this.element?.querySelectorAll(\"input[data-field]\")\n if (!inputs?.length) return\n inputs.forEach((input) => {\n input.addEventListener(\"change\", async (ev) => {\n const field = ev.currentTarget.dataset.field\n const val = parseInt(ev.currentTarget.value, 10)\n if (!field || isNaN(val)) return\n // field is like \"wood.yin\" or \"fire.yang\"\n const [aspect, dim] = field.split(\".\")\n if (!aspect || !dim) return\n const data = getLoksyuData()\n if (!data[aspect]) data[aspect] = { yin: 0, yang: 0 }\n data[aspect][dim] = Math.max(0, val)\n await setLoksyuData(data)\n })\n })\n }\n\n static async #onResetElement(event, target) {\n const key = target.dataset.element\n if (!key) return\n const data = getLoksyuData()\n data[key] = { yin: 0, yang: 0 }\n await setLoksyuData(data)\n }\n\n static async #onResetAll(_event, _target) {\n const KEYS = [\"wood\", \"fire\", \"earth\", \"metal\", \"water\"]\n const data = getLoksyuData()\n for (const k of KEYS) data[k] = { yin: 0, yang: 0 }\n await setLoksyuData(data)\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { getTinjiValue, setTinjiValue } from \"./singletons.js\"\nimport { SYSTEM_ID } from \"../../config/constants.js\"\n\nexport class CDETinjiApp extends foundry.applications.api.HandlebarsApplicationMixin(\n foundry.applications.api.ApplicationV2\n) {\n static DEFAULT_OPTIONS = {\n id: \"cde-tinji-app\",\n tag: \"div\",\n window: {\n title: \"CDE.TinJi2\",\n icon: \"fas fa-star\",\n resizable: false,\n },\n classes: [\"cde-app\", \"cde-tinji-standalone\"],\n position: { width: 320, height: \"auto\" },\n actions: {\n increment: CDETinjiApp.#onIncrement,\n decrement: CDETinjiApp.#onDecrement,\n reset: CDETinjiApp.#onReset,\n spend: CDETinjiApp.#onSpend,\n },\n }\n\n static PARTS = {\n main: {\n template: `systems/${SYSTEM_ID}/templates/apps/cde-tinji-app.html`,\n },\n }\n\n /** @type {Function|null} */\n _updateHook = null\n\n static open() {\n const existing = Array.from(foundry.applications.instances.values()).find(\n (app) => app instanceof CDETinjiApp\n )\n if (existing) { existing.bringToFront(); return existing }\n const app = new CDETinjiApp()\n app.render(true)\n return app\n }\n\n async _prepareContext() {\n return {\n canEdit: game.user.isGM,\n value: getTinjiValue(),\n }\n }\n\n _onRender(context, options) {\n super._onRender(context, options)\n this.#bindDirectInput()\n this._updateHook = Hooks.on(\"cde:tinjiUpdated\", () => this.render())\n }\n\n _onClose(options) {\n if (this._updateHook !== null) {\n Hooks.off(\"cde:tinjiUpdated\", this._updateHook)\n this._updateHook = null\n }\n super._onClose(options)\n }\n\n #bindDirectInput() {\n const input = this.element?.querySelector(\"input.cde-tinji-direct\")\n if (!input) return\n input.addEventListener(\"change\", async (ev) => {\n const val = parseInt(ev.currentTarget.value, 10)\n if (!isNaN(val)) await setTinjiValue(val)\n })\n }\n\n static async #onIncrement() {\n await setTinjiValue(getTinjiValue() + 1)\n }\n\n static async #onDecrement() {\n const current = getTinjiValue()\n if (current <= 0) return\n await setTinjiValue(current - 1)\n }\n\n static async #onReset() {\n await setTinjiValue(0)\n }\n\n static async #onSpend() {\n const current = getTinjiValue()\n if (current <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.TinjiEmpty\"))\n return\n }\n await setTinjiValue(current - 1)\n ChatMessage.create({\n user: game.user.id,\n content: `
\n \n ${game.i18n.localize(\"CDE.TinJi2\")}\n ${game.i18n.format(\"CDE.TinjiSpent\", { name: game.user.name })}\n (${current - 1} ${game.i18n.localize(\"CDE.TinjiRemaining\")})\n
`,\n })\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\n/**\n * Post-roll interactive action buttons injected into dice result chat messages.\n * Allows players to pull dice from the Loksyu (as Successes or d\u00E9s-fastes)\n * and allows the GM to spend Tin Ji to intervene.\n *\n * After a draw, the originating roll result message is updated in-place\n * with the new counts, without creating noise.\n */\n\nimport { getLoksyuData, setLoksyuData, getTinjiValue, setTinjiValue } from \"./apps/singletons.js\"\nimport { SYSTEM_ID, WU_XING_CYCLE, ASPECT_LABELS, ASPECT_ICONS } from \"../config/constants.js\"\n\nconst RESULT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-dice-result.html\"\n\n/**\n * Inject or refresh post-roll action buttons in the given chat message HTML element.\n * Called from renderChatMessageHTML hook.\n * @param {ChatMessage} message\n * @param {HTMLElement} html - the chat message HTML element (li.chat-message)\n */\nexport function injectRollActions(message, html) {\n const rollCard = html.querySelector(\".cde-roll-result\")\n if (!rollCard) return\n const aspect = rollCard.dataset.aspect\n if (!aspect || !WU_XING_CYCLE[aspect]) return\n refreshRollActions(rollCard, aspect, message)\n}\n\n/**\n * Re-render the action buttons section based on current Loksyu / TinJi state.\n */\nfunction refreshRollActions(rollCard, aspect, message) {\n rollCard.querySelector(\".cde-roll-actions\")?.remove()\n\n const cycle = WU_XING_CYCLE[aspect]\n const fasteAspect = cycle[1]\n\n const loksyu = getLoksyuData()\n const tinji = getTinjiValue()\n\n const successAvail = (loksyu[aspect]?.yin ?? 0) + (loksyu[aspect]?.yang ?? 0)\n const fasteAvail = (loksyu[fasteAspect]?.yin ?? 0) + (loksyu[fasteAspect]?.yang ?? 0)\n const isGM = game.user.isGM\n\n const hasSomething = successAvail > 0 || fasteAvail > 0 || (isGM && tinji > 0)\n if (!hasSomething) return\n\n const aspLabel = game.i18n.localize(ASPECT_LABELS[aspect])\n const fasteLabel = game.i18n.localize(ASPECT_LABELS[fasteAspect])\n\n let btns = \"\"\n\n if (successAvail > 0) {\n btns += ``\n }\n\n if (fasteAvail > 0) {\n btns += ``\n }\n\n if (isGM && tinji > 0) {\n btns += ``\n }\n\n const wrapper = document.createElement(\"div\")\n wrapper.className = \"cde-roll-actions\"\n wrapper.innerHTML = `\n
\n \n ${game.i18n.localize(\"CDE.PostRollActions\")}\n
\n
${btns}
\n `\n rollCard.appendChild(wrapper)\n\n wrapper.addEventListener(\"click\", async ev => {\n const btn = ev.target.closest(\"[data-action]\")\n if (!btn || btn.disabled) return\n const action = btn.dataset.action\n if (action === \"loksyu-success\") {\n await _drawFromLoksyu(message, aspect, \"success\", aspLabel)\n } else if (action === \"loksyu-faste\") {\n await _drawFromLoksyu(message, fasteAspect, \"faste\", fasteLabel)\n } else if (action === \"tinji\") {\n await _spendTinjiPostRoll()\n }\n // Buttons will be re-injected automatically via renderChatMessageHTML\n // after message.update(). For tinji (no message update), refresh manually.\n if (action === \"tinji\") refreshRollActions(rollCard, aspect, message)\n })\n}\n\n/**\n * Pull one die from a given Loksyu aspect slot, update Loksyu settings,\n * and update the originating roll-result message in-place.\n *\n * @param {ChatMessage} message - the roll result chat message to update\n * @param {string} aspect - which Loksyu aspect slot to draw from\n * @param {\"success\"|\"faste\"} type\n * @param {string} aspectLabel - localised aspect name for the notification\n */\nasync function _drawFromLoksyu(message, aspect, type, aspectLabel) {\n const data = getLoksyuData()\n const entry = data[aspect] ?? { yin: 0, yang: 0 }\n const total = entry.yin + entry.yang\n if (total <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.LoksyuEmpty\"))\n return\n }\n\n // Remove 1 die (prefer yang first)\n if (entry.yang > 0) entry.yang--\n else entry.yin--\n data[aspect] = entry\n await setLoksyuData(data)\n\n // Update the roll-result message in-place if it has stored flags\n const flags = message?.flags?.[SYSTEM_ID]\n if (flags?.rollResult && message.isOwner) {\n const updated = foundry.utils.deepClone(flags.rollResult)\n if (type === \"success\") {\n updated.successesdice = (updated.successesdice ?? 0) + 1\n updated.loksyuBonusSuc = (updated.loksyuBonusSuc ?? 0) + 1\n // Recalculate weapon damage if applicable\n if (updated.damageBase) updated.totalDamage = updated.successesdice * updated.damageBase\n } else {\n updated.auspiciousdice = (updated.auspiciousdice ?? 0) + 1\n updated.loksyuBonusFaste = (updated.loksyuBonusFaste ?? 0) + 1\n }\n const newHtml = await foundry.applications.handlebars.renderTemplate(RESULT_TEMPLATE, updated)\n await message.update({\n content: newHtml,\n [`flags.${SYSTEM_ID}.rollResult`]: updated,\n })\n // renderChatMessageHTML hook fires automatically \u2192 buttons re-injected\n }\n\n const remain = entry.yin + entry.yang\n const typeLabel = type === \"success\"\n ? game.i18n.localize(\"CDE.Successes\")\n : game.i18n.localize(\"CDE.AuspiciousDie\")\n\n ChatMessage.create({\n user: game.user.id,\n content: `
\n
\n \"${aspectLabel}\"/\n ${game.user.name}\n ${game.i18n.localize(\"CDE.LoksyuDrawsA\")}\n ${typeLabel}\n ${game.i18n.localize(\"CDE.LoksyuFromAspect\")} ${aspectLabel}\n
\n
\n \n ${game.i18n.localize(\"CDE.Loksyu\")} ${aspectLabel} : \n ${remain} ${game.i18n.localize(\"CDE.LoksyuRemaining\")}\n
\n
`,\n })\n}\n\n/**\n * Spend 1 Tin Ji point (GM only) and post a notification.\n */\nasync function _spendTinjiPostRoll() {\n if (!game.user.isGM) return\n const current = getTinjiValue()\n if (current <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.TinjiEmpty\"))\n return\n }\n await setTinjiValue(current - 1)\n ChatMessage.create({\n user: game.user.id,\n content: `
\n \u5929\n \n ${game.user.name} ${game.i18n.localize(\"CDE.TinjiSpent\").replace(\"{name}\", game.user.name)}\n \n (${current - 1} ${game.i18n.localize(\"CDE.TinjiRemaining\")})\n
`,\n })\n}\n\n/**\n * Refresh all visible roll-result buttons when Loksyu or TinJi settings change.\n * Wired up via Hooks.on(\"updateSetting\", ...) in system.js.\n */\nexport function refreshAllRollActions() {\n document.querySelectorAll(\".chat-message .cde-roll-result[data-aspect]\").forEach(card => {\n const aspect = card.dataset.aspect\n if (!aspect || !WU_XING_CYCLE[aspect]) return\n // Find the ChatMessage document from the ancestor element's data-message-id\n const msgEl = card.closest(\"[data-message-id]\")\n const msgId = msgEl?.dataset?.messageId\n const message = msgId ? game.messages.get(msgId) : null\n refreshRollActions(card, aspect, message)\n })\n}\n\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { ACTOR_TYPES, ITEM_TYPES, MAGICS, SUBTYPES, SYSTEM_ID } from \"./config/constants.js\"\nimport { registerSettings, migrateIfNeeded } from \"./config/settings.js\"\nimport { preLocalizeConfig } from \"./config/localize.js\"\nimport { configureRuntime } from \"./config/runtime.js\"\nimport { CharacterDataModel, NpcDataModel } from \"./data/actors/index.js\"\nimport { EquipmentDataModel, KungfuDataModel, SpellDataModel, SupernaturalDataModel, WeaponDataModel, ArmorDataModel, SanheiDataModel, IngredientDataModel } from \"./data/items/index.js\"\nimport { CDEMessage } from \"./documents/chat-message.js\"\nimport { CDEActor } from \"./documents/actor.js\"\nimport { CDEItem } from \"./documents/item.js\"\nimport { registerDice } from \"./ui/dice.js\"\nimport { registerHandlebarsHelpers } from \"./ui/helpers.js\"\nimport { preloadPartials } from \"./ui/templates.js\"\nimport { CDECharacterSheet, CDENpcSheet } from \"./ui/sheets/actors/index.js\"\nimport { CDEItemSheet, CDEKungfuSheet, CDESpellSheet, CDESupernaturalSheet, CDEWeaponSheet, CDEArmorSheet, CDESanheiSheet, CDEIngredientSheet } from \"./ui/sheets/items/index.js\"\nimport { CDELoksyuApp } from \"./ui/apps/loksyu-app.js\"\nimport { CDETinjiApp } from \"./ui/apps/tinji-app.js\"\nimport { injectRollActions, refreshAllRollActions } from \"./ui/roll-actions.js\"\n\nHooks.once(\"i18nInit\", preLocalizeConfig)\n\nHooks.once(\"init\", async () => {\n console.info(`CHRONIQUESDELETRANGE | Initializing ${SYSTEM_ID}`)\n\n registerSettings()\n\n game.system.CONST = { MAGICS, SUBTYPES }\n\n // Expose standalone apps globally for macros\n game.cde = { CDELoksyuApp, CDETinjiApp }\n\n CONFIG.Actor.dataModels = {\n [ACTOR_TYPES.character]: CharacterDataModel,\n [ACTOR_TYPES.npc]: NpcDataModel,\n }\n CONFIG.Item.dataModels = {\n [ITEM_TYPES.item]: EquipmentDataModel,\n [ITEM_TYPES.kungfu]: KungfuDataModel,\n [ITEM_TYPES.spell]: SpellDataModel,\n [ITEM_TYPES.supernatural]: SupernaturalDataModel,\n [ITEM_TYPES.weapon]: WeaponDataModel,\n [ITEM_TYPES.armor]: ArmorDataModel,\n [ITEM_TYPES.sanhei]: SanheiDataModel,\n [ITEM_TYPES.ingredient]: IngredientDataModel,\n }\n\n CONFIG.Actor.documentClass = CDEActor\n CONFIG.Item.documentClass = CDEItem\n CONFIG.ChatMessage.documentClass = CDEMessage\n\n configureRuntime()\n\n foundry.applications.apps.DocumentSheetConfig.unregisterSheet(Actor, \"core\", foundry.appv1.sheets.ActorSheet)\n foundry.applications.apps.DocumentSheetConfig.unregisterSheet(Item, \"core\", foundry.appv1.sheets.ItemSheet)\n\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Actor, SYSTEM_ID, CDECharacterSheet, {\n types: [ACTOR_TYPES.character],\n makeDefault: true,\n label: \"CDE Character Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Actor, SYSTEM_ID, CDENpcSheet, {\n types: [ACTOR_TYPES.npc],\n makeDefault: true,\n label: \"CDE NPC Sheet (V2)\",\n })\n\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEItemSheet, {\n types: [ITEM_TYPES.item],\n makeDefault: true,\n label: \"CDE Item Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEKungfuSheet, {\n types: [ITEM_TYPES.kungfu],\n makeDefault: true,\n label: \"CDE KungFu Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDESpellSheet, {\n types: [ITEM_TYPES.spell],\n makeDefault: true,\n label: \"CDE Spell Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDESupernaturalSheet, {\n types: [ITEM_TYPES.supernatural],\n makeDefault: true,\n label: \"CDE Supernatural Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEWeaponSheet, {\n types: [ITEM_TYPES.weapon],\n makeDefault: true,\n label: \"CDE Weapon Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEArmorSheet, {\n types: [ITEM_TYPES.armor],\n makeDefault: true,\n label: \"CDE Armor Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDESanheiSheet, {\n types: [ITEM_TYPES.sanhei],\n makeDefault: true,\n label: \"CDE Sanhei Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEIngredientSheet, {\n types: [ITEM_TYPES.ingredient],\n makeDefault: true,\n label: \"CDE Ingredient Sheet (V2)\",\n })\n\n await preloadPartials()\n registerHandlebarsHelpers()\n registerDice()\n\n console.info(`CHRONIQUESDELETRANGE | Initialized`)\n})\n\nHooks.once(\"ready\", async () => {\n await migrateIfNeeded()\n})\n\n/** Add Loksyu + Tin Ji quick-access buttons to the chat panel (FoundryVTT v13) */\nHooks.on(\"renderChatLog\", (_app, html) => {\n const el = html instanceof HTMLElement ? html : (html[0] ?? html)\n if (!el?.querySelector) return\n\n // Avoid double-injection on re-renders\n if (el.querySelector(\".cde-chat-app-buttons\")) return\n\n const wrapper = document.createElement(\"div\")\n wrapper.classList.add(\"cde-chat-app-buttons\")\n wrapper.innerHTML = `\n \n \n `\n\n // Use event delegation to avoid being swallowed by Foundry's own handlers\n wrapper.addEventListener(\"click\", (ev) => {\n if (ev.target.closest(\".cde-chat-btn--loksyu\")) CDELoksyuApp.open()\n if (ev.target.closest(\".cde-chat-btn--tinji\")) CDETinjiApp.open()\n })\n\n // Insert before the chat form \u2014 works on v12 and v13\n const anchor = el.querySelector(\".chat-form\")\n ?? el.querySelector(\".chat-message-form\")\n ?? el.querySelector(\"form\")\n if (anchor) anchor.parentElement.insertBefore(wrapper, anchor)\n else el.appendChild(wrapper)\n})\n\n/** Inject Loksyu / TinJi action buttons into roll-result chat messages */\nHooks.on(\"renderChatMessageHTML\", (message, html) => {\n injectRollActions(message, html)\n})\n\n/** Refresh all visible roll-result buttons whenever Loksyu or TinJi settings change */\nHooks.on(\"updateSetting\", setting => {\n if (!setting.key) return\n if (setting.key.includes(\"loksyuData\") || setting.key.includes(\"tinjiData\")) {\n refreshAllRollActions()\n }\n})\n"], - "mappings": "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", + "sourcesContent": ["/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport const SYSTEM_ID = \"fvtt-chroniques-de-l-etrange\"\n\nexport const ACTOR_TYPES = {\n character: \"character\",\n npc: \"npc\",\n}\n\nexport const ITEM_TYPES = {\n item: \"item\",\n kungfu: \"kungfu\",\n spell: \"spell\",\n supernatural: \"supernatural\",\n weapon: \"weapon\",\n armor: \"armor\",\n sanhei: \"sanhei\",\n ingredient: \"ingredient\",\n}\n\nexport const SUBTYPES = {\n weapon: { id: \"weapon\", label: \"CDE.Weapon\" },\n armor: { id: \"armor\", label: \"CDE.Armor\" },\n sanhei: { id: \"sanhei\", label: \"CDE.Sanhei\" },\n other: { id: \"other\", label: \"CDE.Other\" },\n}\n\nexport const MAGICS = {\n internalcinnabar: {\n id: \"internalcinnabar\",\n background: \"linear-grey\",\n label: \"CDE.InternalCinnabar\",\n aspectlabel: \"CDE.Metal\",\n speciality: {\n essence: { label: \"CDE.Essence\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n mind: { label: \"CDE.Mind\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n purification: { label: \"CDE.Purification\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n manipulation: { label: \"CDE.Manipulation\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n aura: { label: \"CDE.Aura\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n alchemy: {\n id: \"alchemy\",\n background: \"linear-blue\",\n label: \"CDE.Alchemy\",\n aspectlabel: \"CDE.Water\",\n speciality: {\n acupuncture: { label: \"CDE.Acupuncture\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n elixirs: { label: \"CDE.Elixirs\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n poisons: { label: \"CDE.Poisons\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n arsenal: { label: \"CDE.Arsenal\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n potions: { label: \"CDE.Potions\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n masteryoftheway: {\n id: \"masteryoftheway\",\n background: \"linear-brown\",\n label: \"CDE.MasteryOfTheWay\",\n aspectlabel: \"CDE.Earth\",\n speciality: {\n curse: { label: \"CDE.Curse\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n transfiguration: { label: \"CDE.Transfiguration\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n necromancy: { label: \"CDE.Necromancy\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n climatecontrol: { label: \"CDE.ClimateControl\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n goldenmagic: { label: \"CDE.GoldenMagic\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n exorcism: {\n id: \"exorcism\",\n background: \"linear-red\",\n label: \"CDE.Exorcism\",\n aspectlabel: \"CDE.Fire\",\n speciality: {\n invocation: { label: \"CDE.Invocation\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n tracking: { label: \"CDE.Tracking\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n protection: { label: \"CDE.Protection\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n punishment: { label: \"CDE.Punishment\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n domination: { label: \"CDE.Domination\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n geomancy: {\n id: \"geomancy\",\n background: \"linear-green\",\n label: \"CDE.Geomancy\",\n aspectlabel: \"CDE.Wood\",\n speciality: {\n neutralization: { label: \"CDE.Neutralization\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\", labelicon: \"Yin\", labelelement: \"CDE.Metal\" },\n divination: { label: \"CDE.Divination\", classicon: \"icon-yin\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\", labelicon: \"Yin\", labelelement: \"CDE.Water\" },\n earthlyprayer: { label: \"CDE.EarthlyPrayer\", classicon: \"icon-yinyang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\", labelicon: \"Yin/Yang\", labelelement: \"CDE.Earth\" },\n heavenlyprayer: { label: \"CDE.HeavenlyPrayer\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\", labelicon: \"Yang\", labelelement: \"CDE.Fire\" },\n fungseoi: { label: \"CDE.Fungseoi\", classicon: \"icon-yang\", icon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\", elementicon: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\", labelicon: \"Yang\", labelelement: \"CDE.Wood\" },\n },\n },\n}\n\n/** Map aspect name \u2192 i18n label key */\nexport const ASPECT_LABELS = {\n metal: \"CDE.Metal\",\n water: \"CDE.Water\",\n earth: \"CDE.Earth\",\n fire: \"CDE.Fire\",\n wood: \"CDE.Wood\",\n}\n\n/** Map aspect name \u2192 image path */\nexport const ASPECT_ICONS = {\n metal: \"systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\",\n water: \"systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\",\n earth: \"systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\",\n fire: \"systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\",\n wood: \"systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\",\n}\n\n/** Map aspect name \u2192 die face pair [yin, yang] (face=10 stored as 0) */\nexport const ASPECT_FACES = {\n metal: [3, 8],\n water: [1, 6],\n earth: [0, 5], // 0 = face \"10\"\n fire: [2, 7],\n wood: [4, 9],\n}\n\n/** Ordered aspect names by index (metal=0, water=1, earth=2, fire=3, wood=4) */\nexport const ASPECT_NAMES = [\"metal\", \"water\", \"earth\", \"fire\", \"wood\"]\n\n/**\n * Wu Xing generating/overcoming cycle.\n * For each active aspect, the five result categories in order:\n * [successes, auspicious, noxious, loksyu, tinji]\n */\nexport const WU_XING_CYCLE = {\n wood: [\"wood\", \"fire\", \"water\", \"earth\", \"metal\"],\n fire: [\"fire\", \"earth\", \"wood\", \"metal\", \"water\"],\n earth: [\"earth\", \"metal\", \"fire\", \"water\", \"wood\"],\n metal: [\"metal\", \"water\", \"earth\", \"wood\", \"fire\"],\n water: [\"water\", \"wood\", \"metal\", \"fire\", \"earth\"],\n}\n\nexport const TEMPLATE_PARTIALS = [\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-skills.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-magics.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-nghang.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-treasures.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-items.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-kungfus.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-character-spells.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-npc-supernaturals.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-npc-spells.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-npc-kungfus.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/actor/parts/cde-npc-items.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/apps/cde-loksyu-app.html\",\n \"systems/fvtt-chroniques-de-l-etrange/templates/apps/cde-tinji-app.html\",\n]\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { SYSTEM_ID } from \"./constants.js\"\n\n/**\n * Register all world/client settings for the system.\n * Called during the \"init\" hook before sheets and data-models are set up.\n */\nexport function registerSettings() {\n game.settings.register(SYSTEM_ID, \"loksyuData\", {\n scope: \"world\",\n config: false,\n type: Object,\n default: {\n wood: { yin: 0, yang: 0 },\n fire: { yin: 0, yang: 0 },\n earth: { yin: 0, yang: 0 },\n metal: { yin: 0, yang: 0 },\n water: { yin: 0, yang: 0 },\n },\n })\n\n game.settings.register(SYSTEM_ID, \"tinjiData\", {\n scope: \"world\",\n config: false,\n type: Number,\n default: 0,\n })\n}\n\n/**\n * Run any pending data migrations on the \"ready\" hook.\n * Reserved for future schema migrations.\n */\nexport async function migrateIfNeeded() {\n // No migrations required yet.\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { MAGICS, SUBTYPES } from \"./constants.js\"\n\nexport function preLocalizeConfig() {\n const localizeConfigObject = (obj, keys) => {\n for (const o of Object.values(obj)) {\n for (const key of keys) {\n o[key] = game.i18n.localize(o[key])\n }\n }\n }\n\n localizeConfigObject(SUBTYPES, [\"label\"])\n Object.values(MAGICS).forEach((magic) => {\n magic.label = game.i18n.localize(magic.label)\n magic.aspectlabel = game.i18n.localize(magic.aspectlabel)\n Object.values(magic.speciality).forEach((spec) => {\n spec.label = game.i18n.localize(spec.label)\n spec.labelelement = game.i18n.localize(spec.labelelement)\n })\n })\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport function configureRuntime() {\n CONFIG.Actor.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/actor-banner.webp\"\n CONFIG.Adventure.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/adventure-banner.webp\"\n CONFIG.Cards.compendiumBanner = \"ui/banners/cards-banner.webp\"\n CONFIG.Item.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/item-banner.webp\"\n CONFIG.JournalEntry.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/journalentry-banner.webp\"\n CONFIG.Macro.compendiumBanner = \"ui/banners/macro-banner.webp\"\n CONFIG.Playlist.compendiumBanner = \"ui/banners/playlist-banner.webp\"\n CONFIG.RollTable.compendiumBanner = \"ui/banners/rolltable-banner.webp\"\n CONFIG.Scene.compendiumBanner = \"/systems/fvtt-chroniques-de-l-etrange/images/banners/scene-banner.webp\"\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class CharacterDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const numberField = (initial = 0, extra = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...extra })\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const boolField = (initial = false) => new fields.BooleanField({ required: true, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n const aspectField = (label, chinese) =>\n new fields.SchemaField({\n chinese: stringField(chinese),\n label: stringField(label),\n value: numberField(15, { min: 0 }),\n })\n\n const skillField = (label) =>\n new fields.SchemaField({\n label: stringField(label),\n specialities: stringField(\"\"),\n value: numberField(0, { min: 0 }),\n })\n\n const resourceField = (label) =>\n new fields.SchemaField({\n label: stringField(label),\n specialities: stringField(\"\"),\n value: numberField(0, { min: 0 }),\n debt: boolField(false),\n })\n\n const componentField = () =>\n new fields.SchemaField({\n value: stringField(\"\"),\n })\n\n const magicSpecialityField = () =>\n new fields.SchemaField({\n check: boolField(false),\n })\n\n const magicField = () =>\n new fields.SchemaField({\n visible: boolField(true),\n value: numberField(0, { min: 0 }),\n speciality: new fields.SchemaField({\n essence: magicSpecialityField(),\n mind: magicSpecialityField(),\n purification: magicSpecialityField(),\n manipulation: magicSpecialityField(),\n aura: magicSpecialityField(),\n acupuncture: magicSpecialityField(),\n elixirs: magicSpecialityField(),\n poisons: magicSpecialityField(),\n arsenal: magicSpecialityField(),\n potions: magicSpecialityField(),\n curse: magicSpecialityField(),\n transfiguration: magicSpecialityField(),\n necromancy: magicSpecialityField(),\n climatecontrol: magicSpecialityField(),\n goldenmagic: magicSpecialityField(),\n invocation: magicSpecialityField(),\n tracking: magicSpecialityField(),\n protection: magicSpecialityField(),\n punishment: magicSpecialityField(),\n domination: magicSpecialityField(),\n neutralization: magicSpecialityField(),\n divination: magicSpecialityField(),\n earthlyprayer: magicSpecialityField(),\n heavenlyprayer: magicSpecialityField(),\n fungseoi: magicSpecialityField(),\n }),\n })\n\n const treasureBranch = () =>\n new fields.SchemaField({\n value: numberField(0, { min: 0 }),\n max: numberField(0, { min: 0 }),\n min: numberField(0, { min: 0 }),\n })\n\n const treasureLevel = () =>\n new fields.SchemaField({\n san: treasureBranch(),\n zing: treasureBranch(),\n })\n\n const schema = {\n concept: stringField(\"\"),\n guardian: numberField(0, { min: 0, max: 5 }),\n initiative: numberField(1, { min: 0 }),\n anti_initiative: numberField(24, { min: 0 }),\n description: htmlField(\"\"),\n prefs: new fields.SchemaField({\n typeofthrow: new fields.SchemaField({\n check: boolField(true),\n choice: stringField(\"0\"),\n }),\n }),\n prompt: new fields.SchemaField({\n typeofthrow: new fields.SchemaField({\n check: boolField(true),\n choice: stringField(\"0\"),\n }),\n configure: new fields.SchemaField({\n numberofdice: numberField(0),\n aspect: numberField(0),\n bonus: numberField(0),\n bonusauspiciousdice: numberField(0),\n typeofthrow: numberField(0),\n aspectskill: numberField(0),\n bonusmalusskill: numberField(0),\n aspectspeciality: numberField(0),\n rolldifficulty: numberField(0),\n bonusmalusspeciality: numberField(0),\n }),\n }),\n aspect: new fields.SchemaField({\n fire: aspectField(\"CDE.Fire\", \"\u328B\"),\n earth: aspectField(\"CDE.Earth\", \"\u328F\"),\n metal: aspectField(\"CDE.Metal\", \"\u328E\"),\n water: aspectField(\"CDE.Water\", \"\u328C\"),\n wood: aspectField(\"CDE.Wood\", \"\u328D\"),\n }),\n skills: new fields.SchemaField({\n art: skillField(\"CDE.Art\"),\n investigation: skillField(\"CDE.Investigation\"),\n erudition: skillField(\"CDE.Erudition\"),\n knavery: skillField(\"CDE.Knavery\"),\n wordliness: skillField(\"CDE.Wordliness\"),\n prowess: skillField(\"CDE.Prowess\"),\n sciences: skillField(\"CDE.Sciences\"),\n technologies: skillField(\"CDE.Technologies\"),\n kungfu: skillField(\"CDE.KungFu\"),\n rangedcombat: skillField(\"CDE.RangedCombat\"),\n }),\n resources: new fields.SchemaField({\n supply: resourceField(\"CDE.Supply\"),\n inquiry: resourceField(\"CDE.Inquiry\"),\n influence: resourceField(\"CDE.Influence\"),\n }),\n component: new fields.SchemaField({\n one: componentField(),\n two: componentField(),\n three: componentField(),\n four: componentField(),\n five: componentField(),\n six: componentField(),\n seven: componentField(),\n eight: componentField(),\n nine: componentField(),\n zero: componentField(),\n }),\n magics: new fields.SchemaField({\n internalcinnabar: magicField(),\n alchemy: magicField(),\n masteryoftheway: magicField(),\n exorcism: magicField(),\n geomancy: magicField(),\n }),\n threetreasures: new fields.SchemaField({\n heiyang: new fields.SchemaField({ value: numberField(0, { min: 0 }), max: numberField(0, { min: 0 }) }),\n heiyin: new fields.SchemaField({ value: numberField(0, { min: 0 }), max: numberField(0, { min: 0 }) }),\n dicelevel: new fields.SchemaField({\n level0d: treasureLevel(),\n level1d: treasureLevel(),\n level2d: treasureLevel(),\n }),\n }),\n experience: new fields.SchemaField({\n value: numberField(0, { min: 0 }),\n max: numberField(0, { min: 0 }),\n min: numberField(0, { min: 0 }),\n }),\n }\n\n return schema\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class NpcDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const numberField = (initial = 0, extra = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...extra })\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const boolField = (initial = false) => new fields.BooleanField({ required: true, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n const aptitudeField = () =>\n new fields.SchemaField({\n value: numberField(0, { min: 0 }),\n speciality: stringField(\"\"),\n })\n\n const trackedField = () =>\n new fields.SchemaField({\n value: numberField(0, { min: 0 }),\n calcul: numberField(0, { min: 0 }),\n note: stringField(\"\"),\n })\n\n return {\n type: stringField(\"\"),\n threat: numberField(0, { min: 0, max: 4 }), // profane(0) | apprentice(1) | initiate(2) | accomplished(3) | renowned(4)\n nuisance: numberField(0, { min: 0, max: 5 }), // figurant(0) | minion(1) | adversary(2) | ally(3) | boss(4) | divinity(5)\n initiative: numberField(1, { min: 0 }),\n anti_initiative: numberField(24, { min: 0 }),\n aptitudes: new fields.SchemaField({\n physical: aptitudeField(),\n martial: aptitudeField(),\n mental: aptitudeField(),\n social: aptitudeField(),\n spiritual: aptitudeField(),\n }),\n vitality: trackedField(),\n hei: trackedField(),\n description: htmlField(\"\"),\n prefs: new fields.SchemaField({\n typeofthrow: new fields.SchemaField({\n check: boolField(false),\n choice: stringField(\"0\"),\n }),\n }),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class EquipmentDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const numberField = (initial = 0, extra = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...extra })\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n quantity: numberField(1, { min: 0 }),\n weight: numberField(0, { min: 0 }),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class KungfuDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const boolField = (initial = false) => new fields.BooleanField({ required: true, initial })\n\n const techniqueField = () =>\n new fields.SchemaField({\n check: boolField(false),\n name: stringField(\"\"),\n activation: stringField(\"action-attack\"), // action-attack | action-defense | action-aid | action-attack-defense | reaction | dice | damage-inflicted | damage-received\n technique: htmlField(\"\"),\n })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n orientation: stringField(\"yin\"), // yin | yang | yinyang\n aspect: stringField(\"metal\"), // metal | eau | terre | feu | bois\n skill: stringField(\"kungfu\"), // kungfu | rangedcombat\n speciality: stringField(\"\"),\n style: stringField(\"\"),\n techniques: new fields.SchemaField({\n technique1: techniqueField(),\n technique2: techniqueField(),\n technique3: techniqueField(),\n }),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class SpellDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n specialityname: stringField(\"\"),\n associatedelement: stringField(\"metal\"), // metal | eau | terre | feu | bois\n hei: stringField(\"\"),\n realizationtimeritual: stringField(\"\"),\n realizationtimeaccelerated: stringField(\"\"),\n flashback: stringField(\"\"),\n components: htmlField(\"\"),\n effects: htmlField(\"\"),\n examples: htmlField(\"\"),\n notes: htmlField(\"\"),\n discipline: stringField(\"internalcinnabar\"),\n heiType: stringField(\"yin\"),\n heiCost: new fields.NumberField({ required: true, nullable: false, integer: true, min: 0, initial: 1 }),\n difficulty: new fields.NumberField({ required: true, nullable: false, integer: true, min: 0, initial: 1 }),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class SupernaturalDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n notes: htmlField(\"\"),\n heiType: stringField(\"yin\"),\n heiCost: new fields.NumberField({ required: true, nullable: false, integer: true, min: 0, initial: 0 }),\n trigger: stringField(\"\"),\n effects: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class WeaponDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const intField = (initial = 0, opts = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...opts })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n weaponType: stringField(\"melee\"),\n material: stringField(\"\"),\n damageAspect: stringField(\"metal\"),\n damageBase: intField(1),\n range: stringField(\"contact\"), // contact | courte | mediane | longue | extreme\n obtainLevel: intField(0, { min: 0, max: 5 }),\n obtainDifficulty: intField(0, { min: 0, max: 3 }),\n quantity: intField(1),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class ArmorDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const intField = (initial = 0, opts = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...opts })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n protectionValue: intField(0),\n domain: stringField(\"\"),\n obtainLevel: intField(0, { min: 0, max: 5 }),\n obtainDifficulty: intField(0, { min: 0, max: 3 }),\n quantity: intField(1),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class SanheiDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const intField = (initial = 0, opts = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...opts })\n\n const propertySchema = () => new fields.SchemaField({\n name: stringField(\"\"),\n heiCost: intField(0),\n heiType: stringField(\"yin\"),\n description: htmlField(\"\"),\n })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n heiType: stringField(\"yin\"),\n properties: new fields.SchemaField({\n prop1: propertySchema(),\n prop2: propertySchema(),\n prop3: propertySchema(),\n }),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport default class IngredientDataModel extends foundry.abstract.TypeDataModel {\n static defineSchema() {\n const { fields } = foundry.data\n const stringField = (initial = \"\") => new fields.StringField({ required: true, nullable: false, initial })\n const htmlField = (initial = \"\") => new fields.HTMLField({ required: true, nullable: false, initial, textSearch: true })\n const intField = (initial = 0, opts = {}) => new fields.NumberField({ required: true, nullable: false, integer: true, initial, ...opts })\n\n return {\n reference: stringField(\"\"),\n description: htmlField(\"\"),\n school: stringField(\"all\"),\n obtainLevel: intField(0, { min: 0, max: 5 }),\n obtainDifficulty: intField(0, { min: 0, max: 3 }),\n quantity: intField(1),\n notes: htmlField(\"\"),\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nexport class CDEMessage extends ChatMessage {\n async renderHTML({ canDelete, canClose = false, ...rest } = {}) {\n const html = await super.renderHTML({ canDelete, canClose, ...rest })\n this.#enrichChatCard(html)\n return html\n }\n\n getAssociatedActor() {\n if (this.speaker.scene && this.speaker.token) {\n const scene = game.scenes.get(this.speaker.scene)\n const token = scene?.tokens.get(this.speaker.token)\n if (token) return token.actor\n }\n return game.actors.get(this.speaker.actor)\n }\n\n #enrichChatCard(html) {\n const actor = this.getAssociatedActor()\n\n let img\n let nameText\n if (this.isContentVisible) {\n img = actor?.img ?? this.author.avatar\n nameText = this.alias\n } else {\n img = this.author.avatar\n nameText = this.author.name\n }\n\n const avatar = document.createElement(\"a\")\n avatar.classList.add(\"avatar\")\n if (actor) avatar.dataset.uuid = actor.uuid\n const avatarImg = document.createElement(\"img\")\n Object.assign(avatarImg, { src: img, alt: nameText })\n avatar.append(avatarImg)\n\n const name = document.createElement(\"span\")\n name.classList.add(\"name-stacked\")\n const title = document.createElement(\"span\")\n title.classList.add(\"title\")\n title.append(nameText)\n name.append(title)\n\n const sender = html.querySelector(\".message-sender\")\n sender?.replaceChildren(avatar, name)\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { ACTOR_TYPES } from \"../config/constants.js\"\n\nexport class CDEActor extends Actor {\n getRollData() {\n const data = this.toObject(false).system\n return data\n }\n\n prepareBaseData() {\n super.prepareBaseData()\n\n if (this.type === ACTOR_TYPES.character) {\n this.system.anti_initiative = 25 - (this.system.initiative ?? 0)\n }\n\n if (this.type === ACTOR_TYPES.npc) {\n this.system.vitality.calcul = (this.system.aptitudes.physical.value ?? 0) * 4\n this.system.hei.calcul = (this.system.aptitudes.spiritual.value ?? 0) * 4\n this.system.anti_initiative = 25 - (this.system.initiative ?? 0)\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\n/** Default icons per item type. */\nconst DEFAULT_ICONS = {\n kungfu: \"systems/fvtt-chroniques-de-l-etrange/images/icons/icon-kungfu.svg\",\n spell: \"systems/fvtt-chroniques-de-l-etrange/images/icons/icon-spell.svg\",\n supernatural: \"systems/fvtt-chroniques-de-l-etrange/images/icons/icon-supernatural.svg\",\n weapon: \"systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg\",\n armor: \"systems/fvtt-chroniques-de-l-etrange/images/icons/icon-armor.svg\",\n sanhei: \"systems/fvtt-chroniques-de-l-etrange/images/icons/icon-sanhei.svg\",\n ingredient: \"systems/fvtt-chroniques-de-l-etrange/images/icons/icon-ingredient.svg\",\n item: \"systems/fvtt-chroniques-de-l-etrange/images/icons/icon-item.svg\",\n};\n\nexport class CDEItem extends Item {\n\n /** @override */\n async _preCreate(data, options, userId) {\n await super._preCreate(data, options, userId);\n const defaultIcon = DEFAULT_ICONS[this.type];\n if (defaultIcon && (!data.img || data.img === Item.DEFAULT_ICON)) {\n this.updateSource({ img: defaultIcon });\n }\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nconst DIGIT_LABELS = [\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-1.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-2.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-3.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-4.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-5.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-6.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-7.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-8.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-9.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/digit/d10-10.webp\",\n]\n\nconst CLASSIC_LABELS = [\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-1.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-2.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-3.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-4.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-5.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-6.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-7.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-8.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-9.webp\",\n \"systems/fvtt-chroniques-de-l-etrange/images/dice-so-nice/d10-10.webp\",\n]\n\nexport function registerDice() {\n Hooks.once(\"diceSoNiceReady\", (dice3d) => {\n dice3d.addColorset(\n {\n name: \"cde\",\n description: \"CdE\",\n foreground: \"#000000\",\n background: \"#ffffff\",\n edge: \"#ffffff\",\n font: \"DeliusUnicase\",\n texture: \"ice\",\n material: \"plastic\",\n },\n \"preferred\",\n )\n\n dice3d.addSystem({ id: \"fvtt-chroniques-de-l-etrangedigit\", name: \"Chroniques de l'\u00E9trange digits\" }, \"preferred\")\n dice3d.addDicePreset({ type: \"d10\", labels: DIGIT_LABELS, system: \"fvtt-chroniques-de-l-etrangedigit\" })\n\n dice3d.addSystem({ id: \"fvtt-chroniques-de-l-etrange\", name: \"Chroniques de l'\u00E9trange\" }, \"preferred\")\n dice3d.addDicePreset({ type: \"d10\", labels: CLASSIC_LABELS, system: \"fvtt-chroniques-de-l-etrange\" })\n })\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { MAGICS } from \"../config/constants.js\"\n\nexport function registerHandlebarsHelpers() {\n const { Handlebars } = globalThis\n if (!Handlebars) return\n\n Handlebars.registerHelper(\"select\", function (selected, options) {\n const escapedValue = RegExp.escape(Handlebars.escapeExpression(selected))\n const rgx = new RegExp(` value=[\"']${escapedValue}[\"']`)\n const html = options.fn(this)\n return html.replace(rgx, \"$& selected\")\n })\n\n Handlebars.registerHelper(\"getMagicBackground\", function (magic) {\n return game.i18n.localize(MAGICS[magic]?.background ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicLabel\", function (magic) {\n return game.i18n.localize(MAGICS[magic]?.label ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicAspectLabel\", function (magic) {\n return game.i18n.localize(MAGICS[magic]?.aspectlabel ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityLabel\", function (magic, speciality) {\n return game.i18n.localize(MAGICS[magic]?.speciality?.[speciality]?.label ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityClassIcon\", function (magic, speciality) {\n return MAGICS[magic]?.speciality?.[speciality]?.classicon ?? \"\"\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityIcon\", function (magic, speciality) {\n return MAGICS[magic]?.speciality?.[speciality]?.icon ?? \"\"\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityElementIcon\", function (magic, speciality) {\n return MAGICS[magic]?.speciality?.[speciality]?.elementicon ?? \"\"\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityLabelIcon\", function (magic, speciality) {\n return MAGICS[magic]?.speciality?.[speciality]?.labelicon ?? \"\"\n })\n\n Handlebars.registerHelper(\"getMagicSpecialityLabelElement\", function (magic, speciality) {\n return game.i18n.localize(MAGICS[magic]?.speciality?.[speciality]?.labelelement ?? \"\")\n })\n\n Handlebars.registerHelper(\"getMagicAspectIcon\", function (magic) {\n const icons = {\n internalcinnabar: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\",\n alchemy: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\",\n masteryoftheway: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\",\n exorcism: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\",\n geomancy: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\",\n }\n return icons[magic] ?? \"\"\n })\n\n Handlebars.registerHelper(\"getElementIcon\", function (aspect) {\n const icons = {\n metal: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_metal.webp\",\n water: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\",\n earth: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\",\n fire: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\",\n wood: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\",\n // legacy French keys\n eau: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_eau.webp\",\n terre: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_terre.webp\",\n feu: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_feu.webp\",\n bois: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_bois.webp\",\n }\n return icons[aspect] ?? \"\"\n })\n\n Handlebars.registerHelper(\"getOrientationIcon\", function (orientation) {\n const icons = {\n yin: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yin.webp\",\n yang: \"/systems/fvtt-chroniques-de-l-etrange/images/cde_yang.webp\",\n yinyang: \"/systems/fvtt-chroniques-de-l-etrange/images/yin_yang.webp\",\n }\n return icons[orientation] ?? \"\"\n })\n\n Handlebars.registerHelper(\"getOrientationLabel\", function (orientation) {\n const keys = {\n yin: \"CDE.OrientationYin\",\n yang: \"CDE.OrientationYang\",\n yinyang: \"CDE.OrientationYinYang\",\n }\n return game.i18n.localize(keys[orientation] ?? \"CDE.Orientation\")\n })\n\n Handlebars.registerHelper(\"getActivationLabel\", function (activation) {\n const keys = {\n \"action-attack\": \"CDE.ActivationAttack\",\n \"action-defense\": \"CDE.ActivationDefense\",\n \"action-aid\": \"CDE.ActivationAid\",\n \"action-attack-defense\": \"CDE.ActivationAttackOrDefense\",\n reaction: \"CDE.ActivationReaction\",\n dice: \"CDE.ActivationDice\",\n \"damage-inflicted\": \"CDE.ActivationDamageInflicted\",\n \"damage-received\": \"CDE.ActivationDamageReceived\",\n }\n return game.i18n.localize(keys[activation] ?? \"CDE.Activation\")\n })\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { TEMPLATE_PARTIALS } from \"../config/constants.js\"\n\nexport async function preloadPartials() {\n return foundry.applications.handlebars.loadTemplates(TEMPLATE_PARTIALS)\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\n/**\n * Initiative determination system for Chroniques de l'\u00C9trange.\n *\n * PJ formula: Initiative = Prouesse + Premi\u00E8re action (comp\u00E9tence/ressource/magie)\n * PNJ formula: Initiative = Aptitude physique + Premi\u00E8re action (aptitude)\n *\n * Range 1-24 ; anti-initiative = 25 \u2212 initiative.\n * Combat order is ascending (low initiative acts first).\n */\n\nconst PC_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-initiative-prompt.html\"\nconst NPC_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-initiative-prompt-npc.html\"\nconst RESULT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-initiative-result.html\"\n\n/** Skills, resources and magics available as \"premi\u00E8re action\" for a PC. */\nfunction buildPCOptions(sys) {\n const sk = sys.skills ?? {}\n const rs = sys.resources ?? {}\n const mg = sys.magics ?? {}\n return [\n { key: \"art\", label: game.i18n.localize(\"CDE.Art\"), value: sk.art?.value ?? 0 },\n { key: \"investigation\", label: game.i18n.localize(\"CDE.Investigation\"), value: sk.investigation?.value ?? 0 },\n { key: \"erudition\", label: game.i18n.localize(\"CDE.Erudition\"), value: sk.erudition?.value ?? 0 },\n { key: \"knavery\", label: game.i18n.localize(\"CDE.Knavery\"), value: sk.knavery?.value ?? 0 },\n { key: \"wordliness\", label: game.i18n.localize(\"CDE.Wordliness\"), value: sk.wordliness?.value ?? 0 },\n { key: \"prowess\", label: game.i18n.localize(\"CDE.Prowess\"), value: sk.prowess?.value ?? 0 },\n { key: \"sciences\", label: game.i18n.localize(\"CDE.Sciences\"), value: sk.sciences?.value ?? 0 },\n { key: \"technologies\", label: game.i18n.localize(\"CDE.Technologies\"), value: sk.technologies?.value ?? 0 },\n { key: \"kungfu\", label: game.i18n.localize(\"CDE.KungFu\"), value: sk.kungfu?.value ?? 0 },\n { key: \"rangedcombat\", label: game.i18n.localize(\"CDE.RangedCombat\"), value: sk.rangedcombat?.value ?? 0 },\n { key: \"supply\", label: game.i18n.localize(\"CDE.Supply\"), value: rs.supply?.value ?? 0 },\n { key: \"inquiry\", label: game.i18n.localize(\"CDE.Inquiry\"), value: rs.inquiry?.value ?? 0 },\n { key: \"influence\", label: game.i18n.localize(\"CDE.Influence\"), value: rs.influence?.value ?? 0 },\n { key: \"internalcinnabar\", label: game.i18n.localize(\"CDE.InternalCinnabar\"), value: mg.internalcinnabar?.value ?? 0 },\n { key: \"alchemy\", label: game.i18n.localize(\"CDE.Alchemy\"), value: mg.alchemy?.value ?? 0 },\n { key: \"masteryoftheway\", label: game.i18n.localize(\"CDE.MasteryOfTheWay\"), value: mg.masteryoftheway?.value ?? 0 },\n { key: \"exorcism\", label: game.i18n.localize(\"CDE.Exorcism\"), value: mg.exorcism?.value ?? 0 },\n { key: \"geomancy\", label: game.i18n.localize(\"CDE.Geomancy\"), value: mg.geomancy?.value ?? 0 },\n ]\n}\n\n/** Aptitudes available as \"premi\u00E8re action\" for an NPC. */\nfunction buildNPCOptions(sys) {\n const ap = sys.aptitudes ?? {}\n return [\n { key: \"physical\", label: game.i18n.localize(\"CDE.Physical\"), value: ap.physical?.value ?? 0 },\n { key: \"martial\", label: game.i18n.localize(\"CDE.Martial\"), value: ap.martial?.value ?? 0 },\n { key: \"mental\", label: game.i18n.localize(\"CDE.Mental\"), value: ap.mental?.value ?? 0 },\n { key: \"social\", label: game.i18n.localize(\"CDE.Social\"), value: ap.social?.value ?? 0 },\n { key: \"spiritual\", label: game.i18n.localize(\"CDE.Spiritual\"), value: ap.spiritual?.value ?? 0 },\n ]\n}\n\n/** Parse the dialog element and extract firstaction + modifier. */\nfunction readInitFields(dialog) {\n const root = dialog.element ?? dialog\n const selectedKey = root.querySelector(\"select[name='firstaction']\")?.value ?? \"\"\n const modifier = parseInt(root.querySelector(\"input[name='modifier']\")?.value ?? \"0\", 10) || 0\n return { selectedKey, modifier }\n}\n\n/** Post a styled initiative chat message. */\nasync function sendInitChatMessage({ actor, baseName, baseValue, actionName, actionValue, modifier, initiative, antiInitiative }) {\n const html = await foundry.applications.handlebars.renderTemplate(RESULT_TEMPLATE, {\n actorName: actor.name,\n actorImg: actor.img,\n baseName,\n baseValue,\n actionName,\n actionValue,\n modifier,\n hasModifier: modifier !== 0,\n initiative,\n antiInitiative,\n })\n await ChatMessage.create({\n user: game.user.id,\n speaker: ChatMessage.getSpeaker({ actor }),\n content: html,\n })\n}\n\n/**\n * Open the PC initiative dialog, compute initiative (Prouesse + Premi\u00E8re action + modificateur)\n * and update the actor, then post a chat card.\n */\nexport async function rollInitiativePC(actor) {\n const sys = actor.system\n const prowess = sys.skills?.prowess?.value ?? 0\n const options = buildPCOptions(sys)\n const baseName = game.i18n.localize(\"CDE.Prowess\")\n\n const content = await foundry.applications.handlebars.renderTemplate(PC_PROMPT_TEMPLATE, {\n prowessValue: prowess,\n options,\n modifier: 0,\n })\n\n const result = await foundry.applications.api.DialogV2.prompt({\n window: { title: game.i18n.localize(\"CDE.InitiativeRoll\") },\n content,\n rejectClose: false,\n ok: {\n label: game.i18n.localize(\"CDE.Validate\"),\n callback: (_ev, _btn, dialog) => readInitFields(dialog),\n },\n })\n if (!result) return\n\n const { selectedKey, modifier } = result\n const selected = options.find((o) => o.key === selectedKey) ?? options[0]\n const rawValue = prowess + selected.value + modifier\n const initiative = Math.max(1, Math.min(24, rawValue))\n const antiInit = 25 - initiative\n\n await actor.update({ \"system.initiative\": initiative })\n await sendInitChatMessage({\n actor,\n baseName,\n baseValue: prowess,\n actionName: selected.label,\n actionValue: selected.value,\n modifier,\n initiative,\n antiInitiative: antiInit,\n })\n}\n\n/**\n * Open the NPC initiative dialog, compute initiative (Aptitude physique + Premi\u00E8re action + modificateur)\n * and update the actor, then post a chat card.\n */\nexport async function rollInitiativeNPC(actor) {\n const sys = actor.system\n const physical = sys.aptitudes?.physical?.value ?? 0\n const options = buildNPCOptions(sys)\n const baseName = game.i18n.localize(\"CDE.Physical\")\n\n const content = await foundry.applications.handlebars.renderTemplate(NPC_PROMPT_TEMPLATE, {\n physicalValue: physical,\n options,\n modifier: 0,\n })\n\n const result = await foundry.applications.api.DialogV2.prompt({\n window: { title: game.i18n.localize(\"CDE.InitiativeRoll\") },\n content,\n rejectClose: false,\n ok: {\n label: game.i18n.localize(\"CDE.Validate\"),\n callback: (_ev, _btn, dialog) => readInitFields(dialog),\n },\n })\n if (!result) return\n\n const { selectedKey, modifier } = result\n const selected = options.find((o) => o.key === selectedKey) ?? options[0]\n const rawValue = physical + selected.value + modifier\n const initiative = Math.max(1, Math.min(24, rawValue))\n const antiInit = 25 - initiative\n\n await actor.update({ \"system.initiative\": initiative })\n await sendInitChatMessage({\n actor,\n baseName,\n baseValue: physical,\n actionName: selected.label,\n actionValue: selected.value,\n modifier,\n initiative,\n antiInitiative: antiInit,\n })\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\n/**\n * Loksyu / TinJi settings-based helpers.\n *\n * Data is stored as world settings instead of singleton Actor documents.\n */\n\nimport { SYSTEM_ID, WU_XING_CYCLE, ASPECT_FACES } from \"../../config/constants.js\"\n\n/** Read the current loksyu data object from world settings */\nexport function getLoksyuData() {\n return game.settings.get(SYSTEM_ID, \"loksyuData\") ?? {\n wood: {yin:0,yang:0}, fire: {yin:0,yang:0}, earth: {yin:0,yang:0}, metal: {yin:0,yang:0}, water: {yin:0,yang:0},\n }\n}\n\n/** Write the loksyu data object to world settings */\nexport async function setLoksyuData(data) {\n await game.settings.set(SYSTEM_ID, \"loksyuData\", data)\n Hooks.callAll(\"cde:loksyuUpdated\", data)\n}\n\n/** Read current TinJi value from world settings */\nexport function getTinjiValue() {\n return game.settings.get(SYSTEM_ID, \"tinjiData\") ?? 0\n}\n\n/** Write TinJi value to world settings */\nexport async function setTinjiValue(value) {\n await game.settings.set(SYSTEM_ID, \"tinjiData\", Math.max(0, value))\n Hooks.callAll(\"cde:tinjiUpdated\", Math.max(0, value))\n}\n\n/**\n * After a WuXing roll, add the loksyu faces (yin + yang) of the relevant\n * aspect to the loksyu settings data.\n *\n * @param {string} activeAspect - e.g. \"fire\"\n * @param {Object} faces - Die face counts { 0: n, 1: n, \u2026, 9: n }\n */\nexport async function updateLoksyuFromRoll(activeAspect, faces) {\n const cycle = WU_XING_CYCLE[activeAspect]\n if (!cycle) return\n\n const lokAspect = cycle[3]\n const [yinFace, yangFace] = ASPECT_FACES[lokAspect] ?? []\n if (yinFace === undefined) return\n\n const yinCount = faces[yinFace] ?? 0\n const yangCount = faces[yangFace] ?? 0\n if (yinCount === 0 && yangCount === 0) return\n\n const data = getLoksyuData()\n const current = data[lokAspect] ?? { yin: 0, yang: 0 }\n data[lokAspect] = {\n yin: (current.yin ?? 0) + yinCount,\n yang: (current.yang ?? 0) + yangCount,\n }\n await setLoksyuData(data)\n}\n\n/**\n * After a WuXing roll, add tinji faces to the TinJi settings.\n *\n * @param {number} count - Number of tinji faces rolled\n */\nexport async function updateTinjiFromRoll(count) {\n if (!count || count <= 0) return\n const current = getTinjiValue()\n await setTinjiValue(current + count)\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\n/**\n * Wu Xing rolling system for Chroniques de l'\u00C9trange.\n *\n * The Wu Xing cycle maps each aspect (by index 0-4) to die face groups:\n * - metal=0 : faces 3,8\n * - water=1 : faces 1,6\n * - earth=2 : faces 0/10,5\n * - fire=3 : faces 2,7\n * - wood=4 : faces 4,9\n *\n * For a given active aspect the five result categories are:\n * successes / auspicious / noxious / loksyu (yin face, yang face) / tinji\n * Each category is associated with one of the five aspects in Wu Xing cycle order.\n */\n\nimport { MAGICS, ASPECT_LABELS, ASPECT_ICONS, ASPECT_FACES, ASPECT_NAMES, WU_XING_CYCLE } from \"../config/constants.js\"\nimport { updateLoksyuFromRoll, updateTinjiFromRoll } from \"./apps/singletons.js\"\n\nconst RESULT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-dice-result.html\"\nconst SKILL_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-skill-dice-prompt.html\"\nconst SKILL_SPECIAL_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-skill-special-dice-prompt.html\"\nconst MAGIC_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-magic-dice-prompt.html\"\nconst WEAPON_PROMPT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-weapon-dice-prompt.html\"\n\n/** Maps i18n element label \u2192 aspect name (for speciality default aspect lookup) */\nconst LABELELEMENT_TO_ASPECT = {\n \"CDE.Metal\": \"metal\",\n \"CDE.Water\": \"water\",\n \"CDE.Earth\": \"earth\",\n \"CDE.Fire\": \"fire\",\n \"CDE.Wood\": \"wood\",\n}\n\n/** Maps weapon range string \u2192 dice malus applied to the attack pool */\nconst RANGE_MALUS = {\n contact: 0,\n courte: 0,\n mediane: -1,\n longue: -2,\n extreme: -3,\n}\n\n/** Maps weapon type string \u2192 default skill key */\nconst WEAPON_TYPE_SKILL = {\n melee: \"kungfu\",\n thrown: \"rangedcombat\",\n ranged: \"rangedcombat\",\n firearm: \"rangedcombat\",\n}\n\n/** Maps weapon damageAspect name \u2192 ASPECT_NAMES index */\nconst WEAPON_ASPECT_INDEX = { metal: 0, eau: 1, water: 1, terre: 2, earth: 2, feu: 3, fire: 3, bois: 4, wood: 4 }\n\n/** Count how many times each die face appeared in the roll results */\nfunction countFaces(rollResults) {\n const counts = { 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0, 0:0 }\n for (const die of rollResults) {\n const face = die.result === 10 ? 0 : die.result\n counts[face]++\n }\n return counts\n}\n\n/**\n * Compute Wu Xing result categories from face counts and active aspect.\n * Returns { successesdice, auspiciousdice, noxiousdice, loksyudice, tinjidice, loksyurepartition }\n */\nfunction computeWuXingResults(faces, aspectName, bonusAuspicious = 0) {\n const cycle = WU_XING_CYCLE[aspectName]\n if (!cycle) return null\n\n const [succAspect, ausAspect, noxAspect, lokAspect, tinAspect] = cycle\n const [succYin, succYang] = ASPECT_FACES[succAspect]\n const [ausYin, ausYang] = ASPECT_FACES[ausAspect]\n const [noxYin, noxYang] = ASPECT_FACES[noxAspect]\n const [lokYin, lokYang] = ASPECT_FACES[lokAspect]\n const [tinYin, tinYang] = ASPECT_FACES[tinAspect]\n\n const yin = game.i18n.localize(\"CDE.Yin\")\n const yang = game.i18n.localize(\"CDE.Yang\")\n\n return {\n successesdice: faces[succYin] + faces[succYang],\n auspiciousdice: faces[ausYin] + faces[ausYang] + bonusAuspicious,\n noxiousdice: faces[noxYin] + faces[noxYang],\n loksyudice: faces[lokYin] + faces[lokYang],\n loksyurepartition: `[${yin}(${faces[lokYin]}) ${yang}(${faces[lokYang]})]`,\n tinjidice: faces[tinYin] + faces[tinYang],\n }\n}\n\n/** Read a named field from a dialog DOM element */\nfunction readField(dlg, name) {\n const el = dlg.querySelector(`[name=\"${name}\"]`)\n if (!el) return null\n return el.type === \"checkbox\" ? el.checked : el.value\n}\n\n/**\n * Open a DialogV2.prompt with the given template + data and return the resolved form values.\n * The callback receives the DialogV2 application instance; fields are read from its .element.\n * @returns {Promise|null>}\n */\nasync function showRollPrompt({ title, template, data, fields }) {\n const content = await foundry.applications.handlebars.renderTemplate(template, data)\n return foundry.applications.api.DialogV2.prompt({\n window: { title },\n content,\n rejectClose: false,\n ok: {\n label: game.i18n.localize(\"CDE.Validate\"),\n callback: (event, button, dialog) => {\n // In AppV2, dialog is the application instance; .element is the root HTMLElement\n const root = dialog.element ?? dialog\n const result = {}\n for (const field of fields) {\n result[field] = readField(root, field)\n }\n return result\n },\n },\n })\n}\n\n/**\n * Open the skill roll prompt and return the user-confirmed parameters.\n * @param {object} params - Initial values\n * @returns {Promise}\n */\nasync function showSkillPrompt(params) {\n return showRollPrompt({\n title: params.title,\n template: params.isSpecial ? SKILL_SPECIAL_PROMPT_TEMPLATE : SKILL_PROMPT_TEMPLATE,\n data: {\n numberofdice: params.numberofdice,\n aspect: Number(params.aspect ?? 0),\n bonusmalus: params.bonusmalus ?? 0,\n woundmalus: params.woundmalus ?? 0,\n bonusauspiciousdice: params.bonusauspiciousdice ?? 0,\n typeofthrow: Number(params.typeofthrow ?? 0),\n },\n fields: [\"aspect\", \"bonusmalus\", \"woundmalus\", \"bonusauspiciousdice\", \"typeofthrow\"],\n })\n}\n\n/**\n * Open the magic roll prompt and return the user-confirmed parameters.\n */\nasync function showMagicPrompt(params) {\n return showRollPrompt({\n title: params.title,\n template: MAGIC_PROMPT_TEMPLATE,\n data: {\n numberofdice: params.numberofdice ?? 0,\n aspectskill: Number(params.aspectskill ?? 0),\n bonusmalusskill: params.bonusmalusskill ?? 0,\n bonusauspiciousdice: params.bonusauspiciousdice ?? 0,\n aspectspeciality: Number(params.aspectspeciality ?? 0),\n rolldifficulty: params.rolldifficulty ?? 1,\n bonusmalusspeciality: params.bonusmalusspeciality ?? 0,\n heispend: params.heispend ?? 0,\n typeofthrow: Number(params.typeofthrow ?? 0),\n },\n fields: [\"aspectskill\", \"bonusmalusskill\", \"bonusauspiciousdice\",\n \"aspectspeciality\", \"rolldifficulty\", \"bonusmalusspeciality\",\n \"heispend\", \"typeofthrow\"],\n })\n}\n\n/**\n * Open the weapon attack roll prompt and return user-confirmed parameters.\n */\nasync function showWeaponPrompt(params) {\n return showRollPrompt({\n title: params.title,\n template: WEAPON_PROMPT_TEMPLATE,\n data: {\n numberofdice: params.numberofdice ?? 0,\n weaponName: params.weaponName ?? \"\",\n weaponTypeLabel: params.weaponTypeLabel ?? \"CDE.Weapon\",\n weaponAspectIcon: params.weaponAspectIcon ?? \"\",\n weaponAspectLabel: params.weaponAspectLabel ?? \"\",\n damageBase: params.damageBase ?? 1,\n weaponskill: params.weaponskill ?? \"kungfu\",\n aspect: Number(params.aspect ?? 0),\n effectiverange: params.effectiverange ?? \"contact\",\n bonusmalus: params.bonusmalus ?? 0,\n woundmalus: params.woundmalus ?? 0,\n bonusauspiciousdice: params.bonusauspiciousdice ?? 0,\n typeofthrow: Number(params.typeofthrow ?? 0),\n },\n fields: [\"weaponskill\", \"aspect\", \"effectiverange\", \"bonusmalus\", \"woundmalus\",\n \"bonusauspiciousdice\", \"typeofthrow\"],\n })\n}\n\n/**\n * Build and send a single enriched ChatMessage containing both the roll\n * (for Dice So Nice) and the Wu Xing result card.\n */\nasync function sendResultMessage(actor, resultData, roll, rollMode) {\n const html = await foundry.applications.handlebars.renderTemplate(RESULT_TEMPLATE, resultData)\n return ChatMessage.create({\n user: game.user.id,\n speaker: ChatMessage.getSpeaker({ actor }),\n content: html,\n rolls: [roll],\n rollMode,\n flags: {\n \"fvtt-chroniques-de-l-etrange\": { rollResult: { ...resultData } },\n },\n })\n}\n\nconst ROLL_MODES = [\"roll\", \"gmroll\", \"blindroll\", \"selfroll\"]\n\n/**\n * Main entry point: roll dice for a given actor.\n *\n * @param {Actor} actor\n * @param {string} rollKey - e.g. \"prowess-skill\", \"fire-aspect\", \"alchemy-magic-elixirs\"\n */\nexport async function rollForActor(actor, rollKey) {\n const parts = rollKey.split(\"-\")\n const skillLibel = parts[0]\n const typeLibel = parts[1]\n const specialLibel = parts[2] ?? null\n\n const sys = actor.system\n const typeOfThrow = Number(sys.prefs?.typeofthrow?.choice ?? 0)\n\n let numberofdice = 0\n let title = \"\"\n let isSpecial = false\n let isMagic = false\n let isMagicSpecial = false\n let kfDefaultAspect = -1 // set in \"itemkungfu\" case, used when computing defaultAspect\n\n // ---- Determine dice count + title ----\n const MAGIC_I18N_KEYS = {\n internalcinnabar: \"CDE.InternalCinnabar\",\n alchemy: \"CDE.Alchemy\",\n masteryoftheway: \"CDE.MasteryOfTheWay\",\n exorcism: \"CDE.Exorcism\",\n geomancy: \"CDE.Geomancy\",\n }\n\n switch (typeLibel) {\n case \"aspect\":\n numberofdice = sys.aspect[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.aspect[skillLibel]?.label ?? \"CDE.Roll\")\n break\n case \"aptitude\":\n // NPC aptitude roll \u2014 flat pool with WuXing prompt\n numberofdice = sys.aptitudes?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(`CDE.${skillLibel.charAt(0).toUpperCase() + skillLibel.slice(1)}`)\n break\n case \"skill\":\n numberofdice = sys.skills?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.skills?.[skillLibel]?.label ?? \"CDE.Roll\")\n break\n case \"special\":\n numberofdice = sys.skills?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.skills?.[skillLibel]?.label ?? \"CDE.Roll\")\n title += ` [${game.i18n.localize(\"CDE.Speciality\")}]`\n isSpecial = true\n if (!sys.skills?.[skillLibel]?.specialities) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error2\"))\n return\n }\n break\n case \"resource\":\n numberofdice = sys.resources?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.resources?.[skillLibel]?.label ?? \"CDE.Roll\")\n break\n case \"field\":\n numberofdice = sys.resources?.[skillLibel]?.value ?? 0\n title = game.i18n.localize(sys.resources?.[skillLibel]?.label ?? \"CDE.Roll\")\n title += ` [${game.i18n.localize(\"CDE.Field\")}]`\n isSpecial = true\n if (!sys.resources?.[skillLibel]?.specialities) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error4\"))\n return\n }\n break\n case \"magic\":\n numberofdice = sys.magics?.[skillLibel]?.value ?? 0\n isMagic = true\n title = game.i18n.localize(MAGIC_I18N_KEYS[skillLibel] ?? \"CDE.Magics\")\n break\n case \"magicspecial\":\n numberofdice = sys.magics?.[skillLibel]?.value ?? 0\n isMagicSpecial = true\n isMagic = true\n if (!sys.magics?.[skillLibel]?.speciality?.[specialLibel]?.check) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error6\"))\n return\n }\n title = `${game.i18n.localize(MAGIC_I18N_KEYS[skillLibel] ?? \"CDE.Magics\")} [${game.i18n.localize(MAGICS?.[skillLibel]?.speciality?.[specialLibel]?.label ?? \"\")}]`\n break\n case \"itemkungfu\": {\n // skillLibel = item._id \u2014 look up the kungfu item to find which skill + aspect to use\n const kfItem = actor.items.get(skillLibel)\n if (!kfItem) { ui.notifications.warn(game.i18n.localize(\"CDE.Error0\")); return }\n const kfSkill = kfItem.system.skill ?? \"kungfu\"\n numberofdice = sys.skills?.[kfSkill]?.value ?? 0\n title = `${kfItem.name} [${game.i18n.localize(sys.skills?.[kfSkill]?.label ?? \"CDE.KungFu\")}]`\n kfDefaultAspect = ASPECT_NAMES.indexOf(kfItem.system.aspect ?? \"metal\")\n if (kfDefaultAspect < 0) kfDefaultAspect = 0\n break\n }\n case \"itemweapon\": {\n // skillLibel = item._id \u2014 look up the weapon item to find type + aspect + damage\n const wpItem = actor.items.get(skillLibel)\n if (!wpItem) { ui.notifications.warn(game.i18n.localize(\"CDE.Error0\")); return }\n\n const wpType = wpItem.system.weaponType ?? \"melee\"\n const wpSkill = WEAPON_TYPE_SKILL[wpType] ?? \"kungfu\"\n numberofdice = sys.skills?.[wpSkill]?.value ?? 0\n\n const wpAspectRaw = wpItem.system.damageAspect ?? \"metal\"\n const wpAspectIdx = WEAPON_ASPECT_INDEX[wpAspectRaw] ?? 0\n const wpRange = wpItem.system.range ?? \"contact\"\n\n const WEAPON_TYPE_LABELS = {\n melee: \"CDE.WeaponMelee\",\n thrown: \"CDE.WeaponThrown\",\n ranged: \"CDE.WeaponRanged\",\n firearm: \"CDE.WeaponFirearm\",\n }\n\n // Show weapon-specific prompt\n const wParams = await showWeaponPrompt({\n title: `${wpItem.name} [${game.i18n.localize(sys.skills?.[wpSkill]?.label ?? \"CDE.WeaponRoll\")}]`,\n numberofdice,\n weaponName: wpItem.name,\n weaponTypeLabel: WEAPON_TYPE_LABELS[wpType] ?? \"CDE.Weapon\",\n weaponAspectIcon: ASPECT_ICONS[ASPECT_NAMES[wpAspectIdx]] ?? \"\",\n weaponAspectLabel: game.i18n.localize(ASPECT_LABELS[ASPECT_NAMES[wpAspectIdx]] ?? \"\"),\n damageBase: wpItem.system.damageBase ?? 1,\n weaponskill: wpSkill,\n aspect: wpAspectIdx,\n effectiverange: wpRange,\n bonusmalus: 0,\n woundmalus: 0,\n bonusauspiciousdice: 0,\n typeofthrow: typeOfThrow,\n })\n\n if (!wParams) return // cancelled\n\n // Resolve final pool from weapon prompt values\n const wpChosenSkill = wParams.weaponskill ?? wpSkill\n const wpSkillDice = sys.skills?.[wpChosenSkill]?.value ?? 0\n const wpAspFinal = Number(wParams.aspect ?? wpAspectIdx)\n const wpAspectDice = sys.aspect[ASPECT_NAMES[wpAspFinal]]?.value ?? 0\n const wpRangeMalus = RANGE_MALUS[wParams.effectiverange ?? \"contact\"] ?? 0\n const wpBonusMalus = Number(wParams.bonusmalus ?? 0)\n const wpWoundMalus = Number(wParams.woundmalus ?? 0)\n const wpBonusAusp = Number(wParams.bonusauspiciousdice ?? 0)\n const wpThrowMode = Number(wParams.typeofthrow ?? 0)\n const wpDamageBase = wpItem.system.damageBase ?? 1\n\n const wpTotalDice = wpSkillDice + wpAspectDice + wpRangeMalus + wpBonusMalus - wpWoundMalus\n if (wpTotalDice <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error0\"))\n return\n }\n\n const wpRoll = new Roll(`${wpTotalDice}d10`)\n await wpRoll.evaluate()\n\n const wpAspectName = ASPECT_NAMES[wpAspFinal] ?? \"metal\"\n const wpFaces = countFaces(wpRoll.dice[0]?.results ?? [])\n const wpResults = computeWuXingResults(wpFaces, wpAspectName, wpBonusAusp)\n if (!wpResults) return\n\n const wpModParts = []\n if (wpRangeMalus !== 0) wpModParts.push(`${wpRangeMalus} ${game.i18n.localize(\"CDE.RangePenalty\")}`)\n if (wpBonusMalus !== 0) wpModParts.push(`${wpBonusMalus > 0 ? \"+\" : \"\"}${wpBonusMalus} ${game.i18n.localize(\"CDE.BonusMalus\")}`)\n if (wpWoundMalus !== 0) wpModParts.push(`-${wpWoundMalus} ${game.i18n.localize(\"CDE.WoundMalus\")}`)\n if (wpBonusAusp !== 0) wpModParts.push(`+${wpBonusAusp} ${game.i18n.localize(\"CDE.BonusAuspiciousDice\")}`)\n\n const wpMsg = await sendResultMessage(actor, {\n rollLabel: `${wpItem.name}`,\n aspectName: wpAspectName,\n aspectLabel: game.i18n.localize(ASPECT_LABELS[wpAspectName] ?? \"\"),\n aspectIcon: ASPECT_ICONS[wpAspectName] ?? \"\",\n totalDice: wpTotalDice,\n modifiersText: wpModParts.length ? wpModParts.join(\" \u00B7 \") : \"\",\n spellPower: null,\n rollDifficulty: null,\n actorName: actor.name ?? \"\",\n actorImg: actor.img ?? \"\",\n // weapon-specific\n weaponName: wpItem.name,\n damageBase: wpDamageBase,\n totalDamage: wpResults.successesdice * wpDamageBase,\n ...wpResults,\n aspect: wpAspectName,\n d1: wpFaces[1], d2: wpFaces[2], d3: wpFaces[3], d4: wpFaces[4], d5: wpFaces[5],\n d6: wpFaces[6], d7: wpFaces[7], d8: wpFaces[8], d9: wpFaces[9], d0: wpFaces[0],\n }, wpRoll, ROLL_MODES[wpThrowMode] ?? \"roll\")\n\n if (game.modules.get(\"dice-so-nice\")?.active && wpMsg?.id) {\n await game.dice3d.waitFor3DAnimationByMessageID(wpMsg.id)\n }\n // Auto-update Loksyu/TinJi singletons from weapon roll faces\n if ((wpResults.loksyudice ?? 0) > 0) await updateLoksyuFromRoll(wpAspectName, wpFaces)\n if ((wpResults.tinjidice ?? 0) > 0) await updateTinjiFromRoll(wpResults.tinjidice)\n return\n }\n default:\n ui.notifications.warn(`Unknown roll type: ${typeLibel}`)\n return\n }\n\n // For magic rolls the prompt allows adding HEI dice, so don't block early.\n // For itemkungfu, allow 0 base dice (user can add bonus dice in the prompt).\n if (numberofdice <= 0 && typeLibel !== \"aspect\" && typeLibel !== \"itemkungfu\" && !isMagic) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error0\"))\n return\n }\n\n // ---- Pre-compute default aspect for magic based on skill ----\n const MAGIC_ASPECTS = {\n internalcinnabar: 0, // metal\n alchemy: 1, // water\n masteryoftheway: 2, // earth\n exorcism: 3, // fire\n geomancy: 4, // wood\n }\n\n let defaultAspect = typeLibel === \"aspect\"\n ? [\"metal\",\"water\",\"earth\",\"fire\",\"wood\"].indexOf(skillLibel)\n : 0\n if (isMagic && MAGIC_ASPECTS[skillLibel] !== undefined) {\n defaultAspect = MAGIC_ASPECTS[skillLibel]\n }\n if (kfDefaultAspect >= 0) {\n defaultAspect = kfDefaultAspect\n }\n\n let defaultSpecialAspect = 0\n if (isMagicSpecial && specialLibel) {\n // Look up the speciality's element from the MAGICS config constant\n const specialCfg = MAGICS?.[skillLibel]?.speciality?.[specialLibel]\n const aspectName = LABELELEMENT_TO_ASPECT[specialCfg?.labelelement]\n if (aspectName) {\n defaultSpecialAspect = ASPECT_NAMES.indexOf(aspectName)\n }\n }\n\n // ---- Show roll prompt ----\n let params\n\n if (isMagic) {\n params = await showMagicPrompt({\n title,\n numberofdice,\n aspectskill: defaultAspect,\n bonusmalusskill: 0,\n bonusauspiciousdice: 0,\n aspectspeciality: defaultSpecialAspect,\n rolldifficulty: 1,\n bonusmalusspeciality: 0,\n heispend: 0,\n typeofthrow: typeOfThrow,\n })\n } else {\n params = await showSkillPrompt({\n title,\n numberofdice,\n aspect: defaultAspect,\n bonusmalus: 0,\n woundmalus: 0,\n bonusauspiciousdice: 0,\n typeofthrow: typeOfThrow,\n isSpecial,\n })\n }\n\n if (!params) return // cancelled\n\n // ---- Compute total dice and roll ----\n let aspectIndex, bonusMalus, bonusAuspicious, throwMode\n let spellAspectIndex = null // magic only: aspect of the speciality for Wu Xing\n let rollDifficulty = 1 // magic only: multiplier applied to successes\n\n if (isMagic) {\n const skillAspectIndex = Number(params.aspectskill ?? 0)\n spellAspectIndex = Number(params.aspectspeciality ?? skillAspectIndex)\n aspectIndex = skillAspectIndex // used only for skill dice pool\n bonusMalus = Number(params.bonusmalusskill ?? 0)\n bonusAuspicious = Number(params.bonusauspiciousdice ?? 0)\n rollDifficulty = Math.max(1, Number(params.rolldifficulty ?? 1))\n throwMode = Number(params.typeofthrow ?? 0)\n // magic: magic skill + aspect + bonuses + 1 (speciality base) + HEI spent\n const aspectDice = sys.aspect?.[ASPECT_NAMES[aspectIndex]]?.value ?? 0\n const bonusSpec = Number(params.bonusmalusspeciality ?? 0)\n const heiDice = Number(params.heispend ?? 0)\n numberofdice = numberofdice + aspectDice + bonusMalus + 1 + bonusSpec + heiDice\n } else {\n aspectIndex = Number(params.aspect ?? 0)\n bonusMalus = Number(params.bonusmalus ?? 0)\n const woundMalus = Number(params.woundmalus ?? 0)\n bonusAuspicious = Number(params.bonusauspiciousdice ?? 0)\n throwMode = Number(params.typeofthrow ?? 0)\n\n const aspectDice = (typeLibel !== \"aspect\")\n ? (sys.aspect?.[ASPECT_NAMES[aspectIndex]]?.value ?? 0)\n : 0\n\n numberofdice = numberofdice + aspectDice + bonusMalus - woundMalus\n if (isSpecial) numberofdice += 1 // +1d for speciality\n }\n\n if (numberofdice <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.Error0\"))\n return\n }\n\n // ---- Roll ----\n const roll = new Roll(`${numberofdice}d10`)\n await roll.evaluate()\n\n const rollModeKey = ROLL_MODES[throwMode] ?? \"roll\"\n\n // ---- Compute Wu Xing results ----\n // For magic rolls, the spell's aspect (aspectspeciality) governs the Wu Xing\n // cycle (which faces count as successes/auspicious/etc.), not the skill aspect.\n const wuXingAspectName = spellAspectIndex !== null\n ? ASPECT_NAMES[spellAspectIndex]\n : ASPECT_NAMES[aspectIndex]\n const allResults = roll.dice[0]?.results ?? []\n const faces = countFaces(allResults)\n const results = computeWuXingResults(faces, wuXingAspectName, bonusAuspicious)\n if (!results) return\n\n // For magic, successesdice \u00D7 rollDifficulty = spell power\n const spellPower = isMagic ? results.successesdice * rollDifficulty : null\n\n // ---- Build modifier summary text ----\n const modParts = []\n if (isMagic) {\n const bm = Number(params.bonusmalusskill ?? 0)\n const bs = Number(params.bonusmalusspeciality ?? 0)\n const hs = Number(params.heispend ?? 0)\n const ba = Number(params.bonusauspiciousdice ?? 0)\n if (bm !== 0) modParts.push(`${bm > 0 ? \"+\" : \"\"}${bm} ${game.i18n.localize(\"CDE.BonusMalus\")}`)\n if (bs !== 0) modParts.push(`${bs > 0 ? \"+\" : \"\"}${bs} ${game.i18n.localize(\"CDE.SpellBonus\")}`)\n if (ba !== 0) modParts.push(`+${ba} ${game.i18n.localize(\"CDE.BonusAuspiciousDice\")}`)\n if (hs !== 0) modParts.push(`${hs} ${game.i18n.localize(\"CDE.HeiSpend\")}`)\n if (rollDifficulty !== 1) modParts.push(`\u00D7${rollDifficulty} ${game.i18n.localize(\"CDE.RollDifficulty\")}`)\n } else {\n const bm = Number(params.bonusmalus ?? 0)\n const wm = Number(params.woundmalus ?? 0)\n const ba = Number(params.bonusauspiciousdice ?? 0)\n if (bm !== 0) modParts.push(`${bm > 0 ? \"+\" : \"\"}${bm} ${game.i18n.localize(\"CDE.BonusMalus\")}`)\n if (wm !== 0) modParts.push(`-${wm} ${game.i18n.localize(\"CDE.WoundMalus\")}`)\n if (ba !== 0) modParts.push(`+${ba} ${game.i18n.localize(\"CDE.BonusAuspiciousDice\")}`)\n }\n\n // ---- Send single enriched ChatMessage (roll + result card) ----\n const msg = await sendResultMessage(actor, {\n // Roll identity\n rollLabel: title,\n aspectName: wuXingAspectName,\n aspectLabel: game.i18n.localize(ASPECT_LABELS[wuXingAspectName] ?? \"\"),\n aspectIcon: ASPECT_ICONS[wuXingAspectName] ?? \"\",\n totalDice: numberofdice,\n modifiersText: modParts.length ? modParts.join(\" \u00B7 \") : \"\",\n // Spell power (magic only)\n spellPower,\n rollDifficulty: isMagic ? rollDifficulty : null,\n // Actor info\n actorName: actor.name ?? \"\",\n actorImg: actor.img ?? \"\",\n // Wu Xing results\n aspect: wuXingAspectName,\n ...results,\n // Die face counts\n d1: faces[1], d2: faces[2], d3: faces[3], d4: faces[4], d5: faces[5],\n d6: faces[6], d7: faces[7], d8: faces[8], d9: faces[9], d0: faces[0],\n }, roll, rollModeKey)\n\n // ---- Wait for Dice So Nice animation ----\n if (game.modules.get(\"dice-so-nice\")?.active && msg?.id) {\n await game.dice3d.waitFor3DAnimationByMessageID(msg.id)\n }\n\n // ---- Auto-update Loksyu / TinJi singletons ----\n if ((results.loksyudice ?? 0) > 0) await updateLoksyuFromRoll(wuXingAspectName, faces)\n if ((results.tinjidice ?? 0) > 0) await updateTinjiFromRoll(results.tinjidice)\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nconst { HandlebarsApplicationMixin } = foundry.applications.api\n\nexport class CDEBaseActorSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ActorSheetV2) {\n static DEFAULT_OPTIONS = {\n classes: [\"fvtt-chroniques-de-l-etrange\", \"actor\"],\n position: { width: 920, height: 800 },\n window: { resizable: true },\n form: { submitOnChange: true },\n dragDrop: [{ dragSelector: \".item, [data-drag='true']\", dropSelector: null }],\n actions: {\n create: CDEBaseActorSheet.#onItemCreate,\n edit: CDEBaseActorSheet.#onItemEdit,\n delete: CDEBaseActorSheet.#onItemDelete,\n editImage: CDEBaseActorSheet.#onEditImage,\n },\n }\n\n tabGroups = { primary: \"description\" }\n\n get title() {\n return this.document.name\n }\n\n async _prepareContext() {\n const descriptionHTML = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description ?? \"\", { async: true })\n const cssClass = this.options.classes?.join(\" \") ?? \"\"\n return {\n actor: this.document,\n system: this.document.system,\n systemData: this.document.system,\n systemFields: this.document.system.schema.fields,\n items: this.document.items.contents,\n descriptionHTML,\n editable: this.isEditable,\n cssClass,\n }\n }\n\n // Restore the active tab after every render (including re-renders from submitOnChange).\n // AppV2 does NOT preserve tab state natively \u2014 we must re-apply it from this.tabGroups,\n // which is dynamically updated by changeTab() when the user clicks a tab.\n _onRender(context, options) {\n super._onRender?.(context, options)\n for (const [group, tab] of Object.entries(this.tabGroups)) {\n this.changeTab(tab, group, { force: true })\n }\n }\n\n static async #onItemCreate(event, target) {\n const type = target.dataset.type ?? \"item\"\n const cls = getDocumentClass(\"Item\")\n const labels = {\n item: \"CDE.ItemNew\",\n weapon: \"CDE.WeaponNew\",\n armor: \"CDE.ArmorNew\",\n sanhei: \"CDE.SanheiNew\",\n ingredient: \"CDE.IngredientNew\",\n kungfu: \"CDE.KFNew\",\n spell: \"CDE.SpellNew\",\n supernatural: \"CDE.SupernaturalNew\",\n }\n const name = game.i18n.localize(labels[type] ?? \"CDE.ItemNew\")\n const systemData = {}\n if (type === \"spell\" && target.dataset.discipline) {\n systemData.discipline = target.dataset.discipline\n }\n return cls.create({ name, type, system: systemData }, { parent: this.document })\n }\n\n static #onItemEdit(event, target) {\n const itemId = target.dataset.itemId ?? target.closest(\"[data-item-id]\")?.dataset.itemId\n const item = this.document.items.get(itemId)\n if (item) item.sheet.render(true)\n }\n\n static #onItemDelete(event, target) {\n const itemId = target.dataset.itemId ?? target.closest(\"[data-item-id]\")?.dataset.itemId\n const item = this.document.items.get(itemId)\n if (item) item.delete()\n }\n\n static async #onEditImage(event, target) {\n const attr = target.dataset.edit\n const current = foundry.utils.getProperty(this.document, attr)\n const { img } = this.document.constructor.getDefaultArtwork?.(this.document.toObject()) ?? {}\n const fp = new FilePicker({\n current,\n type: \"image\",\n redirectToRoot: img ? [img] : [],\n callback: (path) => this.document.update({ [attr]: path }),\n top: this.position.top + 40,\n left: this.position.left + 10,\n })\n return fp.browse()\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { MAGICS, SUBTYPES } from \"../../../config/constants.js\"\nimport { rollInitiativePC } from \"../../initiative.js\"\nimport { rollForActor } from \"../../rolling.js\"\nimport { CDEBaseActorSheet } from \"./base.js\"\n\nexport class CDECharacterSheet extends CDEBaseActorSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"character\"],\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/actor/cde-character-sheet.html\" },\n }\n\n tabGroups = { primary: \"description\" }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n context.equipments = context.items.filter((item) => item.type === \"item\")\n context.weapons = context.items.filter((item) => item.type === \"weapon\")\n context.armors = context.items.filter((item) => item.type === \"armor\")\n context.sanheis = context.items.filter((item) => item.type === \"sanhei\")\n context.ingredients = context.items.filter((item) => item.type === \"ingredient\")\n context.spells = context.items.filter((item) => item.type === \"spell\")\n context.kungfus = context.items.filter((item) => item.type === \"kungfu\")\n context.CDE = { MAGICS, SUBTYPES }\n\n // Group spells by discipline key (matches MAGICS keys)\n const spellsByDiscipline = {}\n for (const spell of context.spells) {\n const disc = spell.system?.discipline ?? \"internalcinnabar\"\n if (!spellsByDiscipline[disc]) spellsByDiscipline[disc] = []\n spellsByDiscipline[disc].push(spell)\n }\n\n // Build magicsDisplay: only include the 5 relevant specialities per magic type + grimoire\n const systemMagics = context.systemData.magics ?? {}\n context.magicsDisplay = Object.fromEntries(\n Object.entries(MAGICS).map(([magicKey, magicDef]) => {\n const magicData = systemMagics[magicKey] ?? {}\n return [\n magicKey,\n {\n value: magicData.value ?? 0,\n visible: magicData.visible ?? false,\n speciality: Object.fromEntries(\n Object.keys(magicDef.speciality).map((specKey) => [\n specKey,\n { check: magicData.speciality?.[specKey]?.check ?? false },\n ])\n ),\n grimoire: spellsByDiscipline[magicKey] ?? [],\n },\n ]\n })\n )\n\n return context\n }\n\n _onRender(context, options) {\n super._onRender(context, options)\n this.#bindInitiativeControls()\n this.#bindPrefs()\n this.#bindRollButtons()\n this.#bindComponentRandomize()\n }\n\n #bindInitiativeControls() {\n const buttons = this.element?.querySelectorAll(\".click-initiative\")\n if (!buttons?.length) return\n buttons.forEach((button) => {\n button.addEventListener(\"click\", async () => {\n const action = button.dataset.libelId\n let initiative = this.document.system.initiative ?? 1\n if (action === \"plus\") {\n initiative = initiative >= 24 ? 1 : initiative + 1\n await this.document.update({ \"system.initiative\": initiative })\n return\n }\n if (action === \"minus\") {\n initiative = initiative <= 1 ? 24 : initiative - 1\n await this.document.update({ \"system.initiative\": initiative })\n return\n }\n if (action === \"create\") {\n await rollInitiativePC(this.document)\n }\n })\n })\n }\n\n #bindPrefs() {\n const button = this.element?.querySelector(\".click-prefs\")\n if (!button) return\n button.addEventListener(\"click\", async () => {\n const current = this.document.system.prefs?.typeofthrow ?? { choice: \"0\", check: true }\n const html = `\n
\n
\n \n \n
\n
\n \n \n
\n
`\n const prefs = await foundry.applications.api.DialogV2.prompt({\n window: { title: game.i18n.localize(\"CDE.Preferences\") },\n content: html,\n rejectClose: false,\n ok: {\n label: game.i18n.localize(\"CDE.Validate\"),\n callback: (_ev, _btn, dialog) => {\n const root = dialog.element ?? dialog\n const choice = root.querySelector(\"select[name='choice']\")?.value ?? \"0\"\n const check = root.querySelector(\"input[name='check']\")?.checked ?? false\n return { choice, check }\n },\n },\n })\n if (prefs) {\n await this.document.update({\n \"system.prefs.typeofthrow.choice\": String(prefs.choice),\n \"system.prefs.typeofthrow.check\": !!prefs.check,\n })\n }\n })\n }\n\n #bindRollButtons() {\n const cells = this.element?.querySelectorAll(\"td.click[data-libel-id], td.click2[data-libel-id], .cde-roll-trigger[data-libel-id]\")\n if (!cells?.length) return\n cells.forEach((cell) => {\n cell.addEventListener(\"click\", (event) => {\n event.preventDefault()\n const rollKey = cell.dataset.libelId\n if (rollKey) rollForActor(this.document, rollKey)\n })\n })\n }\n\n #bindComponentRandomize() {\n const btn = this.element?.querySelector(\"[data-action='randomize-component']\")\n if (!btn) return\n btn.addEventListener(\"click\", async () => {\n const roll = new Roll(\"1d10\")\n await roll.evaluate()\n const face = roll.total === 10 ? 0 : roll.total\n const COMPONENT_KEYS = { 1:\"one\", 2:\"two\", 3:\"three\", 4:\"four\", 5:\"five\",\n 6:\"six\", 7:\"seven\", 8:\"eight\", 9:\"nine\", 0:\"zero\" }\n const componentKey = COMPONENT_KEYS[face]\n const componentValue = this.document.system.component?.[componentKey]?.value ?? \"\"\n const label = componentValue\n ? `${componentValue}`\n : `${game.i18n.localize(\"CDE.Component\")}${face}`\n const content = `\n
\n ${game.i18n.localize(\"CDE.ChanceThrowResult\")}\n ${label}\n
`\n await ChatMessage.create({\n user: game.user.id,\n speaker: ChatMessage.getSpeaker({ actor: this.document }),\n content,\n rolls: [roll],\n rollMode: game.settings.get(\"core\", \"rollMode\") ?? \"roll\",\n })\n })\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { rollInitiativeNPC } from \"../../initiative.js\"\nimport { rollForActor } from \"../../rolling.js\"\nimport { CDEBaseActorSheet } from \"./base.js\"\n\nexport class CDENpcSheet extends CDEBaseActorSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"npc\"],\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/actor/cde-npc-sheet.html\" },\n }\n\n tabGroups = { primary: \"description\" }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n context.supernaturals = context.items.filter((item) => item.type === \"supernatural\")\n context.spells = context.items.filter((item) => item.type === \"spell\")\n context.kungfus = context.items.filter((item) => item.type === \"kungfu\")\n context.weapons = context.items.filter((item) => item.type === \"weapon\")\n context.armors = context.items.filter((item) => item.type === \"armor\")\n context.equipments = context.items.filter((item) => item.type === \"item\")\n return context\n }\n\n _onRender(context, options) {\n super._onRender(context, options)\n this.#bindInitiativeControls()\n this.#bindRollButtons()\n }\n\n #bindRollButtons() {\n const cells = this.element?.querySelectorAll(\".cde-roll-trigger[data-libel-id]\")\n if (!cells?.length) return\n cells.forEach((cell) => {\n cell.addEventListener(\"click\", (event) => {\n event.preventDefault()\n const rollKey = cell.dataset.libelId\n if (rollKey) rollForActor(this.document, rollKey)\n })\n })\n }\n\n #bindInitiativeControls() {\n const buttons = this.element?.querySelectorAll(\".click-initiative-npc\")\n if (!buttons?.length) return\n buttons.forEach((button) => {\n button.addEventListener(\"click\", async () => {\n const action = button.dataset.libelId\n let initiative = this.document.system.initiative ?? 1\n if (action === \"plus\") {\n initiative = initiative >= 24 ? 1 : initiative + 1\n await this.document.update({ \"system.initiative\": initiative })\n return\n }\n if (action === \"minus\") {\n initiative = initiative <= 1 ? 24 : initiative - 1\n await this.document.update({ \"system.initiative\": initiative })\n return\n }\n if (action === \"create\") {\n await rollInitiativeNPC(this.document)\n }\n })\n })\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nconst { HandlebarsApplicationMixin } = foundry.applications.api\n\nexport class CDEBaseItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) {\n static DEFAULT_OPTIONS = {\n classes: [\"fvtt-chroniques-de-l-etrange\", \"item\"],\n position: { width: 520, height: \"auto\" },\n window: { resizable: true },\n form: { submitOnChange: true },\n actions: {\n editImage: CDEBaseItemSheet.#onEditImage,\n },\n }\n\n tabGroups = { primary: \"details\" }\n\n get title() {\n return this.document.name\n }\n\n async _prepareContext() {\n const cssClass = this.options.classes?.join(\" \") ?? \"\"\n const enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description ?? \"\", { async: true })\n const enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.notes ?? \"\", { async: true })\n return {\n item: this.document,\n system: this.document.system,\n systemData: this.document.system,\n systemFields: this.document.system.schema.fields,\n editable: this.isEditable,\n cssClass,\n enrichedDescription,\n enrichedNotes,\n descriptionHTML: enrichedDescription,\n notesHTML: enrichedNotes,\n }\n }\n\n // Restore the active tab after every render (including re-renders from submitOnChange).\n _onRender(context, options) {\n super._onRender?.(context, options)\n for (const [group, tab] of Object.entries(this.tabGroups)) {\n this.changeTab(tab, group, { force: true })\n }\n }\n\n static async #onEditImage(event, target) {\n const attr = target.dataset.edit\n const current = foundry.utils.getProperty(this.document, attr)\n const { img } = this.document.constructor.getDefaultArtwork?.(this.document.toObject()) ?? {}\n const fp = new FilePicker({\n current,\n type: \"image\",\n redirectToRoot: img ? [img] : [],\n callback: (path) => this.document.update({ [attr]: path }),\n top: this.position.top + 40,\n left: this.position.left + 10,\n })\n return fp.browse()\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEItemSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"equipment\"],\n position: { width: 560, height: 460 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-item-sheet.html\" },\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEKungfuSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"kungfu\"],\n position: { width: 720, height: 680 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-kungfu-sheet.html\" },\n }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n const techniques = this.document.system.techniques ?? {}\n const enrich = (value) => foundry.applications.ux.TextEditor.implementation.enrichHTML(value ?? \"\", { async: true })\n context.descriptionTechnique1HTML = await enrich(techniques.technique1?.technique)\n context.descriptionTechnique2HTML = await enrich(techniques.technique2?.technique)\n context.descriptionTechnique3HTML = await enrich(techniques.technique3?.technique)\n return context\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDESpellSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"spell\"],\n position: { width: 660, height: 680 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-spell-sheet.html\" },\n }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n const enrich = (content) => foundry.applications.ux.TextEditor.implementation.enrichHTML(content ?? \"\", { async: true })\n context.spellDescriptionHTML = await enrich(this.document.system.description)\n context.componentsDescriptionHTML = await enrich(this.document.system.components)\n context.effectsDescriptionHTML = await enrich(this.document.system.effects)\n context.examplesDescriptionHTML = await enrich(this.document.system.examples)\n return context\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDESupernaturalSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"supernatural\"],\n position: { width: 560, height: 520 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-supernatural-sheet.html\" },\n }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n const enrich = (content) => foundry.applications.ux.TextEditor.implementation.enrichHTML(content ?? \"\", { async: true })\n context.effectsHTML = await enrich(this.document.system.effects)\n return context\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEWeaponSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"weapon\"],\n position: { width: 580, height: 520 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-weapon-sheet.html\" },\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEArmorSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"armor\"],\n position: { width: 520, height: 460 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-armor-sheet.html\" },\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDESanheiSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"sanhei\"],\n position: { width: 580, height: 620 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-sanhei-sheet.html\" },\n }\n\n async _prepareContext() {\n const context = await super._prepareContext()\n const enrich = (content) => foundry.applications.ux.TextEditor.implementation.enrichHTML(content ?? \"\", { async: true })\n const props = this.document.system.properties\n context.prop1DescriptionHTML = await enrich(props.prop1.description)\n context.prop2DescriptionHTML = await enrich(props.prop2.description)\n context.prop3DescriptionHTML = await enrich(props.prop3.description)\n context.propFields = this.document.system.schema.fields.properties.fields\n return context\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { CDEBaseItemSheet } from \"./base.js\"\n\nexport class CDEIngredientSheet extends CDEBaseItemSheet {\n static DEFAULT_OPTIONS = {\n classes: [\"ingredient\"],\n position: { width: 520, height: 460 },\n }\n\n static PARTS = {\n main: { template: \"systems/fvtt-chroniques-de-l-etrange/templates/item/cde-ingredient-sheet.html\" },\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { getLoksyuData, setLoksyuData } from \"./singletons.js\"\nimport { SYSTEM_ID } from \"../../config/constants.js\"\n\nexport class CDELoksyuApp extends foundry.applications.api.HandlebarsApplicationMixin(\n foundry.applications.api.ApplicationV2\n) {\n static DEFAULT_OPTIONS = {\n id: \"cde-loksyu-app\",\n tag: \"div\",\n window: {\n title: \"CDE.Loksyu\",\n icon: \"fas fa-yin-yang\",\n resizable: false,\n },\n classes: [\"cde-app\", \"cde-loksyu-standalone\"],\n position: { width: 520, height: \"auto\" },\n actions: {\n resetElement: CDELoksyuApp.#onResetElement,\n resetAll: CDELoksyuApp.#onResetAll,\n },\n }\n\n static PARTS = {\n main: {\n template: `systems/${SYSTEM_ID}/templates/apps/cde-loksyu-app.html`,\n },\n }\n\n /** @type {Function|null} bound hook handler */\n _updateHook = null\n\n /** Singleton accessor \u2014 open or bring to front */\n static open() {\n const existing = Array.from(foundry.applications.instances.values()).find(\n (app) => app instanceof CDELoksyuApp\n )\n if (existing) { existing.bringToFront(); return existing }\n const app = new CDELoksyuApp()\n app.render(true)\n return app\n }\n\n async _prepareContext() {\n const sys = getLoksyuData()\n const ELEMENTS = [\n { key: \"wood\", nameKey: \"CDE.Wood\", qualKey: \"CDE.WoodQualities\", img: `systems/${SYSTEM_ID}/images/cde_bois.webp` },\n { key: \"fire\", nameKey: \"CDE.Fire\", qualKey: \"CDE.FireQualities\", img: `systems/${SYSTEM_ID}/images/cde_feu.webp` },\n { key: \"earth\", nameKey: \"CDE.Earth\", qualKey: \"CDE.EarthQualities\", img: `systems/${SYSTEM_ID}/images/cde_terre.webp` },\n { key: \"metal\", nameKey: \"CDE.Metal\", qualKey: \"CDE.MetalQualities\", img: `systems/${SYSTEM_ID}/images/cde_metal.webp` },\n { key: \"water\", nameKey: \"CDE.Water\", qualKey: \"CDE.WaterQualities\", img: `systems/${SYSTEM_ID}/images/cde_eau.webp` },\n ]\n\n return {\n canEdit: game.user.isGM,\n elements: ELEMENTS.map((el) => ({\n ...el,\n yang: sys[el.key]?.yang ?? 0,\n yin: sys[el.key]?.yin ?? 0,\n })),\n }\n }\n\n _onRender(context, options) {\n super._onRender(context, options)\n this.#bindInputs()\n\n this._updateHook = Hooks.on(\"cde:loksyuUpdated\", () => this.render())\n }\n\n _onClose(options) {\n if (this._updateHook !== null) {\n Hooks.off(\"cde:loksyuUpdated\", this._updateHook)\n this._updateHook = null\n }\n super._onClose(options)\n }\n\n #bindInputs() {\n const inputs = this.element?.querySelectorAll(\"input[data-field]\")\n if (!inputs?.length) return\n inputs.forEach((input) => {\n input.addEventListener(\"change\", async (ev) => {\n const field = ev.currentTarget.dataset.field\n const val = parseInt(ev.currentTarget.value, 10)\n if (!field || isNaN(val)) return\n // field is like \"wood.yin\" or \"fire.yang\"\n const [aspect, dim] = field.split(\".\")\n if (!aspect || !dim) return\n const data = getLoksyuData()\n if (!data[aspect]) data[aspect] = { yin: 0, yang: 0 }\n data[aspect][dim] = Math.max(0, val)\n await setLoksyuData(data)\n })\n })\n }\n\n static async #onResetElement(event, target) {\n const key = target.dataset.element\n if (!key) return\n const data = getLoksyuData()\n data[key] = { yin: 0, yang: 0 }\n await setLoksyuData(data)\n }\n\n static async #onResetAll(_event, _target) {\n const KEYS = [\"wood\", \"fire\", \"earth\", \"metal\", \"water\"]\n const data = getLoksyuData()\n for (const k of KEYS) data[k] = { yin: 0, yang: 0 }\n await setLoksyuData(data)\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { getTinjiValue, setTinjiValue } from \"./singletons.js\"\nimport { SYSTEM_ID } from \"../../config/constants.js\"\n\nexport class CDETinjiApp extends foundry.applications.api.HandlebarsApplicationMixin(\n foundry.applications.api.ApplicationV2\n) {\n static DEFAULT_OPTIONS = {\n id: \"cde-tinji-app\",\n tag: \"div\",\n window: {\n title: \"CDE.TinJi2\",\n icon: \"fas fa-star\",\n resizable: false,\n },\n classes: [\"cde-app\", \"cde-tinji-standalone\"],\n position: { width: 320, height: \"auto\" },\n actions: {\n increment: CDETinjiApp.#onIncrement,\n decrement: CDETinjiApp.#onDecrement,\n reset: CDETinjiApp.#onReset,\n spend: CDETinjiApp.#onSpend,\n },\n }\n\n static PARTS = {\n main: {\n template: `systems/${SYSTEM_ID}/templates/apps/cde-tinji-app.html`,\n },\n }\n\n /** @type {Function|null} */\n _updateHook = null\n\n static open() {\n const existing = Array.from(foundry.applications.instances.values()).find(\n (app) => app instanceof CDETinjiApp\n )\n if (existing) { existing.bringToFront(); return existing }\n const app = new CDETinjiApp()\n app.render(true)\n return app\n }\n\n async _prepareContext() {\n return {\n canEdit: game.user.isGM,\n value: getTinjiValue(),\n }\n }\n\n _onRender(context, options) {\n super._onRender(context, options)\n this.#bindDirectInput()\n this._updateHook = Hooks.on(\"cde:tinjiUpdated\", () => this.render())\n }\n\n _onClose(options) {\n if (this._updateHook !== null) {\n Hooks.off(\"cde:tinjiUpdated\", this._updateHook)\n this._updateHook = null\n }\n super._onClose(options)\n }\n\n #bindDirectInput() {\n const input = this.element?.querySelector(\"input.cde-tinji-direct\")\n if (!input) return\n input.addEventListener(\"change\", async (ev) => {\n const val = parseInt(ev.currentTarget.value, 10)\n if (!isNaN(val)) await setTinjiValue(val)\n })\n }\n\n static async #onIncrement() {\n await setTinjiValue(getTinjiValue() + 1)\n }\n\n static async #onDecrement() {\n const current = getTinjiValue()\n if (current <= 0) return\n await setTinjiValue(current - 1)\n }\n\n static async #onReset() {\n await setTinjiValue(0)\n }\n\n static async #onSpend() {\n const current = getTinjiValue()\n if (current <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.TinjiEmpty\"))\n return\n }\n await setTinjiValue(current - 1)\n ChatMessage.create({\n user: game.user.id,\n content: `
\n \n ${game.i18n.localize(\"CDE.TinJi2\")}\n ${game.i18n.format(\"CDE.TinjiSpent\", { name: game.user.name })}\n (${current - 1} ${game.i18n.localize(\"CDE.TinjiRemaining\")})\n
`,\n })\n }\n}\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\n/**\n * Post-roll interactive action buttons injected into dice result chat messages.\n * Allows players to pull dice from the Loksyu (as Successes or d\u00E9s-fastes)\n * and allows the GM to spend Tin Ji to intervene.\n *\n * After a draw, the originating roll result message is updated in-place\n * with the new counts, without creating noise.\n */\n\nimport { getLoksyuData, setLoksyuData, getTinjiValue, setTinjiValue } from \"./apps/singletons.js\"\nimport { SYSTEM_ID, WU_XING_CYCLE, ASPECT_LABELS, ASPECT_ICONS } from \"../config/constants.js\"\n\nconst RESULT_TEMPLATE = \"systems/fvtt-chroniques-de-l-etrange/templates/form/cde-dice-result.html\"\n\n/**\n * Inject or refresh post-roll action buttons in the given chat message HTML element.\n * Called from renderChatMessageHTML hook.\n * @param {ChatMessage} message\n * @param {HTMLElement} html - the chat message HTML element (li.chat-message)\n */\nexport function injectRollActions(message, html) {\n const rollCard = html.querySelector(\".cde-roll-result\")\n if (!rollCard) return\n const aspect = rollCard.dataset.aspect\n if (!aspect || !WU_XING_CYCLE[aspect]) return\n refreshRollActions(rollCard, aspect, message)\n}\n\n/**\n * Re-render the action buttons section based on current Loksyu / TinJi state.\n */\nfunction refreshRollActions(rollCard, aspect, message) {\n rollCard.querySelector(\".cde-roll-actions\")?.remove()\n\n const cycle = WU_XING_CYCLE[aspect]\n const fasteAspect = cycle[1]\n\n const loksyu = getLoksyuData()\n const tinji = getTinjiValue()\n\n const successAvail = (loksyu[aspect]?.yin ?? 0) + (loksyu[aspect]?.yang ?? 0)\n const fasteAvail = (loksyu[fasteAspect]?.yin ?? 0) + (loksyu[fasteAspect]?.yang ?? 0)\n const isGM = game.user.isGM\n\n const hasSomething = successAvail > 0 || fasteAvail > 0 || (isGM && tinji > 0)\n if (!hasSomething) return\n\n const aspLabel = game.i18n.localize(ASPECT_LABELS[aspect])\n const fasteLabel = game.i18n.localize(ASPECT_LABELS[fasteAspect])\n\n let btns = \"\"\n\n if (successAvail > 0) {\n btns += ``\n }\n\n if (fasteAvail > 0) {\n btns += ``\n }\n\n if (isGM && tinji > 0) {\n btns += ``\n }\n\n const wrapper = document.createElement(\"div\")\n wrapper.className = \"cde-roll-actions\"\n wrapper.innerHTML = `\n
\n \n ${game.i18n.localize(\"CDE.PostRollActions\")}\n
\n
${btns}
\n `\n rollCard.appendChild(wrapper)\n\n wrapper.addEventListener(\"click\", async ev => {\n const btn = ev.target.closest(\"[data-action]\")\n if (!btn || btn.disabled) return\n const action = btn.dataset.action\n if (action === \"loksyu-success\") {\n await _drawFromLoksyu(message, aspect, \"success\", aspLabel)\n } else if (action === \"loksyu-faste\") {\n await _drawFromLoksyu(message, fasteAspect, \"faste\", fasteLabel)\n } else if (action === \"tinji\") {\n await _spendTinjiPostRoll()\n }\n // Buttons will be re-injected automatically via renderChatMessageHTML\n // after message.update(). For tinji (no message update), refresh manually.\n if (action === \"tinji\") refreshRollActions(rollCard, aspect, message)\n })\n}\n\n/**\n * Pull one die from a given Loksyu aspect slot, update Loksyu settings,\n * and update the originating roll-result message in-place.\n *\n * @param {ChatMessage} message - the roll result chat message to update\n * @param {string} aspect - which Loksyu aspect slot to draw from\n * @param {\"success\"|\"faste\"} type\n * @param {string} aspectLabel - localised aspect name for the notification\n */\nasync function _drawFromLoksyu(message, aspect, type, aspectLabel) {\n const data = getLoksyuData()\n const entry = data[aspect] ?? { yin: 0, yang: 0 }\n const total = entry.yin + entry.yang\n if (total <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.LoksyuEmpty\"))\n return\n }\n\n // Remove 1 die (prefer yang first)\n if (entry.yang > 0) entry.yang--\n else entry.yin--\n data[aspect] = entry\n await setLoksyuData(data)\n\n // Update the roll-result message in-place if it has stored flags\n const flags = message?.flags?.[SYSTEM_ID]\n if (flags?.rollResult && message.isOwner) {\n const updated = foundry.utils.deepClone(flags.rollResult)\n if (type === \"success\") {\n updated.successesdice = (updated.successesdice ?? 0) + 1\n updated.loksyuBonusSuc = (updated.loksyuBonusSuc ?? 0) + 1\n // Recalculate weapon damage if applicable\n if (updated.damageBase) updated.totalDamage = updated.successesdice * updated.damageBase\n } else {\n updated.auspiciousdice = (updated.auspiciousdice ?? 0) + 1\n updated.loksyuBonusFaste = (updated.loksyuBonusFaste ?? 0) + 1\n }\n const newHtml = await foundry.applications.handlebars.renderTemplate(RESULT_TEMPLATE, updated)\n await message.update({\n content: newHtml,\n [`flags.${SYSTEM_ID}.rollResult`]: updated,\n })\n // renderChatMessageHTML hook fires automatically \u2192 buttons re-injected\n }\n\n const remain = entry.yin + entry.yang\n const typeLabel = type === \"success\"\n ? game.i18n.localize(\"CDE.Successes\")\n : game.i18n.localize(\"CDE.AuspiciousDie\")\n\n ChatMessage.create({\n user: game.user.id,\n content: `
\n
\n \"${aspectLabel}\"/\n ${game.user.name}\n ${game.i18n.localize(\"CDE.LoksyuDrawsA\")}\n ${typeLabel}\n ${game.i18n.localize(\"CDE.LoksyuFromAspect\")} ${aspectLabel}\n
\n
\n \n ${game.i18n.localize(\"CDE.Loksyu\")} ${aspectLabel} : \n ${remain} ${game.i18n.localize(\"CDE.LoksyuRemaining\")}\n
\n
`,\n })\n}\n\n/**\n * Spend 1 Tin Ji point (GM only) and post a notification.\n */\nasync function _spendTinjiPostRoll() {\n if (!game.user.isGM) return\n const current = getTinjiValue()\n if (current <= 0) {\n ui.notifications.warn(game.i18n.localize(\"CDE.TinjiEmpty\"))\n return\n }\n await setTinjiValue(current - 1)\n ChatMessage.create({\n user: game.user.id,\n content: `
\n \u5929\n \n ${game.user.name} ${game.i18n.localize(\"CDE.TinjiSpent\").replace(\"{name}\", game.user.name)}\n \n (${current - 1} ${game.i18n.localize(\"CDE.TinjiRemaining\")})\n
`,\n })\n}\n\n/**\n * Refresh all visible roll-result buttons when Loksyu or TinJi settings change.\n * Wired up via Hooks.on(\"updateSetting\", ...) in system.js.\n */\nexport function refreshAllRollActions() {\n document.querySelectorAll(\".chat-message .cde-roll-result[data-aspect]\").forEach(card => {\n const aspect = card.dataset.aspect\n if (!aspect || !WU_XING_CYCLE[aspect]) return\n // Find the ChatMessage document from the ancestor element's data-message-id\n const msgEl = card.closest(\"[data-message-id]\")\n const msgId = msgEl?.dataset?.messageId\n const message = msgId ? game.messages.get(msgId) : null\n refreshRollActions(card, aspect, message)\n })\n}\n\n", "/**\n * Chroniques de l'\u00C9trange \u2014 Syst\u00E8me FoundryVTT\n *\n * Chroniques de l'\u00C9trange est un jeu de r\u00F4le \u00E9dit\u00E9 par Antre-Monde \u00C9ditions.\n * Ce syst\u00E8me FoundryVTT est une impl\u00E9mentation ind\u00E9pendante et n'est pas\n * affili\u00E9 \u00E0 Antre-Monde \u00C9ditions,\n * mais a \u00E9t\u00E9 r\u00E9alis\u00E9 avec l'autorisation d'Antre-Monde \u00C9ditions.\n *\n * @author LeRatierBretonnien\n * @copyright 2024\u20132026 LeRatierBretonnien\n * @license CC BY-NC-SA 4.0 \u2013 https://creativecommons.org/licenses/by-nc-sa/4.0/\n */\n\nimport { ACTOR_TYPES, ITEM_TYPES, MAGICS, SUBTYPES, SYSTEM_ID } from \"./config/constants.js\"\nimport { registerSettings, migrateIfNeeded } from \"./config/settings.js\"\nimport { preLocalizeConfig } from \"./config/localize.js\"\nimport { configureRuntime } from \"./config/runtime.js\"\nimport { CharacterDataModel, NpcDataModel } from \"./data/actors/index.js\"\nimport { EquipmentDataModel, KungfuDataModel, SpellDataModel, SupernaturalDataModel, WeaponDataModel, ArmorDataModel, SanheiDataModel, IngredientDataModel } from \"./data/items/index.js\"\nimport { CDEMessage } from \"./documents/chat-message.js\"\nimport { CDEActor } from \"./documents/actor.js\"\nimport { CDEItem } from \"./documents/item.js\"\nimport { registerDice } from \"./ui/dice.js\"\nimport { registerHandlebarsHelpers } from \"./ui/helpers.js\"\nimport { preloadPartials } from \"./ui/templates.js\"\nimport { CDECharacterSheet, CDENpcSheet } from \"./ui/sheets/actors/index.js\"\nimport { CDEItemSheet, CDEKungfuSheet, CDESpellSheet, CDESupernaturalSheet, CDEWeaponSheet, CDEArmorSheet, CDESanheiSheet, CDEIngredientSheet } from \"./ui/sheets/items/index.js\"\nimport { CDELoksyuApp } from \"./ui/apps/loksyu-app.js\"\nimport { CDETinjiApp } from \"./ui/apps/tinji-app.js\"\nimport { injectRollActions, refreshAllRollActions } from \"./ui/roll-actions.js\"\n\nHooks.once(\"i18nInit\", preLocalizeConfig)\n\nHooks.once(\"init\", async () => {\n console.info(`CHRONIQUESDELETRANGE | Initializing ${SYSTEM_ID}`)\n\n registerSettings()\n\n game.system.CONST = { MAGICS, SUBTYPES }\n\n // Expose standalone apps globally for macros\n game.cde = { CDELoksyuApp, CDETinjiApp }\n\n CONFIG.Actor.dataModels = {\n [ACTOR_TYPES.character]: CharacterDataModel,\n [ACTOR_TYPES.npc]: NpcDataModel,\n }\n CONFIG.Item.dataModels = {\n [ITEM_TYPES.item]: EquipmentDataModel,\n [ITEM_TYPES.kungfu]: KungfuDataModel,\n [ITEM_TYPES.spell]: SpellDataModel,\n [ITEM_TYPES.supernatural]: SupernaturalDataModel,\n [ITEM_TYPES.weapon]: WeaponDataModel,\n [ITEM_TYPES.armor]: ArmorDataModel,\n [ITEM_TYPES.sanhei]: SanheiDataModel,\n [ITEM_TYPES.ingredient]: IngredientDataModel,\n }\n\n CONFIG.Actor.documentClass = CDEActor\n CONFIG.Item.documentClass = CDEItem\n CONFIG.ChatMessage.documentClass = CDEMessage\n\n configureRuntime()\n\n foundry.applications.apps.DocumentSheetConfig.unregisterSheet(Actor, \"core\", foundry.appv1.sheets.ActorSheet)\n foundry.applications.apps.DocumentSheetConfig.unregisterSheet(Item, \"core\", foundry.appv1.sheets.ItemSheet)\n\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Actor, SYSTEM_ID, CDECharacterSheet, {\n types: [ACTOR_TYPES.character],\n makeDefault: true,\n label: \"CDE Character Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Actor, SYSTEM_ID, CDENpcSheet, {\n types: [ACTOR_TYPES.npc],\n makeDefault: true,\n label: \"CDE NPC Sheet (V2)\",\n })\n\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEItemSheet, {\n types: [ITEM_TYPES.item],\n makeDefault: true,\n label: \"CDE Item Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEKungfuSheet, {\n types: [ITEM_TYPES.kungfu],\n makeDefault: true,\n label: \"CDE KungFu Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDESpellSheet, {\n types: [ITEM_TYPES.spell],\n makeDefault: true,\n label: \"CDE Spell Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDESupernaturalSheet, {\n types: [ITEM_TYPES.supernatural],\n makeDefault: true,\n label: \"CDE Supernatural Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEWeaponSheet, {\n types: [ITEM_TYPES.weapon],\n makeDefault: true,\n label: \"CDE Weapon Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEArmorSheet, {\n types: [ITEM_TYPES.armor],\n makeDefault: true,\n label: \"CDE Armor Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDESanheiSheet, {\n types: [ITEM_TYPES.sanhei],\n makeDefault: true,\n label: \"CDE Sanhei Sheet (V2)\",\n })\n foundry.applications.apps.DocumentSheetConfig.registerSheet(Item, SYSTEM_ID, CDEIngredientSheet, {\n types: [ITEM_TYPES.ingredient],\n makeDefault: true,\n label: \"CDE Ingredient Sheet (V2)\",\n })\n\n await preloadPartials()\n registerHandlebarsHelpers()\n registerDice()\n\n console.info(`CHRONIQUESDELETRANGE | Initialized`)\n})\n\nHooks.once(\"ready\", async () => {\n await migrateIfNeeded()\n})\n\n/** Add Loksyu + Tin Ji quick-access buttons to the chat panel (FoundryVTT v13) */\nHooks.on(\"renderChatLog\", (_app, html) => {\n const el = html instanceof HTMLElement ? html : (html[0] ?? html)\n if (!el?.querySelector) return\n\n // Avoid double-injection on re-renders\n if (el.querySelector(\".cde-chat-app-buttons\")) return\n\n const wrapper = document.createElement(\"div\")\n wrapper.classList.add(\"cde-chat-app-buttons\")\n wrapper.innerHTML = `\n \n \n `\n\n // Use event delegation to avoid being swallowed by Foundry's own handlers\n wrapper.addEventListener(\"click\", (ev) => {\n if (ev.target.closest(\".cde-chat-btn--loksyu\")) CDELoksyuApp.open()\n if (ev.target.closest(\".cde-chat-btn--tinji\")) CDETinjiApp.open()\n })\n\n // Insert before the chat form \u2014 works on v12 and v13\n const anchor = el.querySelector(\".chat-form\")\n ?? el.querySelector(\".chat-message-form\")\n ?? el.querySelector(\"form\")\n if (anchor) anchor.parentElement.insertBefore(wrapper, anchor)\n else el.appendChild(wrapper)\n})\n\n/** Inject Loksyu / TinJi action buttons into roll-result chat messages */\nHooks.on(\"renderChatMessageHTML\", (message, html) => {\n injectRollActions(message, html)\n})\n\n/** Refresh all visible roll-result buttons whenever Loksyu or TinJi settings change */\nHooks.on(\"updateSetting\", setting => {\n if (!setting.key) return\n if (setting.key.includes(\"loksyuData\") || setting.key.includes(\"tinjiData\")) {\n refreshAllRollActions()\n }\n})\n"], + "mappings": "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", "names": ["RESULT_TEMPLATE", "HandlebarsApplicationMixin", "app", "app", "RESULT_TEMPLATE"] } diff --git a/images/icons/icon-armor.svg b/images/icons/icon-armor.svg new file mode 100644 index 0000000..188404a --- /dev/null +++ b/images/icons/icon-armor.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/icons/icon-ingredient.svg b/images/icons/icon-ingredient.svg new file mode 100644 index 0000000..2ec5941 --- /dev/null +++ b/images/icons/icon-ingredient.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/icons/icon-item.svg b/images/icons/icon-item.svg new file mode 100644 index 0000000..d66da20 --- /dev/null +++ b/images/icons/icon-item.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/icons/icon-kungfu.svg b/images/icons/icon-kungfu.svg new file mode 100644 index 0000000..d35eec1 --- /dev/null +++ b/images/icons/icon-kungfu.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/icons/icon-sanhei.svg b/images/icons/icon-sanhei.svg new file mode 100644 index 0000000..0e73765 --- /dev/null +++ b/images/icons/icon-sanhei.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/icons/icon-spell.svg b/images/icons/icon-spell.svg new file mode 100644 index 0000000..3a0ea0d --- /dev/null +++ b/images/icons/icon-spell.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/icons/icon-supernatural.svg b/images/icons/icon-supernatural.svg new file mode 100644 index 0000000..a6d9d92 --- /dev/null +++ b/images/icons/icon-supernatural.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/icons/icon-weapon.svg b/images/icons/icon-weapon.svg new file mode 100644 index 0000000..9f6d5b1 --- /dev/null +++ b/images/icons/icon-weapon.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kungfu_data.json b/kungfu_data.json new file mode 100644 index 0000000..8869edc --- /dev/null +++ b/kungfu_data.json @@ -0,0 +1,472 @@ +[ + { + "name": "La Paume des Huit Trigrammes", + "chineseName": "Baatgwaa Zoeng", + "orientation": "yin", + "aspect": "metal", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Une action de déplacement coûte 1 cran d'initiative (au lieu de 2) au personnage.", + "technique1": { + "name": "Contourner l'obstacle", + "activation": "reaction", + "description": "Une attaque contre le personnage coûte 1 cran d'initiative supplémentaire à l'agresseur." + }, + "technique2": { + "name": "La terre tourne autour du soleil", + "activation": "action-attack", + "description": "Cette action d'attaque du personnage lui coûte 2 crans d'initiative (au lieu de 3)." + }, + "technique3": { + "name": "La main du dragon", + "activation": "action-attack", + "description": "Si cette attaque réussit, les dés-fastes dépensés pour augmenter ses dégâts comptent double. De plus, les dégâts à mains nues sont égaux à sa valeur de Terre au lieu de 1." + } + }, + { + "name": "Le Wing Chun", + "chineseName": "Wing Ceon", + "orientation": "yin", + "aspect": "metal", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Sur chacune de ses attaques réussies, les dés-fastes dépensés par le personnage pour augmenter ses dégâts comptent double.", + "technique1": { + "name": "Les mains collantes", + "activation": "damage-inflicted", + "description": "Les coups assénés épuisent l'adversaire. La cible perd 2 points de Hei en plus des dégâts infligés." + }, + "technique2": { + "name": "Contrer l'impulsion", + "activation": "reaction", + "description": "Si le personnage choisit de ne pas utiliser d'action de défense, il utilise sa valeur de Terre pour fixer la difficulté pour le toucher (au lieu de 1)." + }, + "technique3": { + "name": "Le double coup de paume", + "activation": "damage-inflicted", + "description": "Les dégâts à mains nues du personnage sont égaux à sa valeur de Bois au lieu de 1 pour cette attaque." + } + }, + { + "name": "La Boxe de l'Ivresse", + "chineseName": "Zeoi Kyun", + "orientation": "yin", + "aspect": "eau", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Le personnage élimine gratuitement 2 dés-néfastes sur ses actions d'attaque, qu'elles soient réussies ou non.", + "technique1": { + "name": "Chuter du ciel", + "activation": "dice", + "description": "Lors d'une attaque réussie, le personnage fait tomber son adversaire et peut dépenser les dés-fastes pour lui faire perdre des crans d'initiative (1 pour 1, max 3)." + }, + "technique2": { + "name": "La lame s'envole", + "activation": "action-defense", + "description": "Lors d'une défense au contact réussie, le personnage désarme son adversaire. 2 dés-fastes projetent l'arme à distance médiane." + }, + "technique3": { + "name": "L'alcool mauvais", + "activation": "damage-inflicted", + "description": "Les dégâts à mains nues sont égaux à sa valeur de Feu au lieu de 1 pour cette attaque." + } + }, + { + "name": "La Boxe du Faîte suprême", + "chineseName": "Taaigik Kyun", + "orientation": "yin", + "aspect": "eau", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Le personnage gagne 1 dé supplémentaire sur chacun de ses jets de défense et inflige 1 dégât supplémentaire à mains nues.", + "technique1": { + "name": "La souplesse face à la force", + "activation": "reaction", + "description": "Si le personnage choisit de ne pas utiliser d'action de défense, il utilise sa valeur d'Eau pour fixer la difficulté pour le toucher (au lieu de 1)." + }, + "technique2": { + "name": "L'équilibre contre le déséquilibre", + "activation": "dice", + "description": "Le personnage peut dépenser les dés-fastes de son action de défense réussie pour imposer des dés-néfastes à la prochaine action de son adversaire (1 pour 1)." + }, + "technique3": { + "name": "La résolution vainc l'indécision", + "activation": "action-attack", + "description": "Si l'adversaire se défend et obtient des dés-néfastes, ceux-ci peuvent être dépensés pour infliger des dégâts supplémentaires (1 pour 1). Les dégâts sont égaux à sa valeur de Métal au lieu de 1." + } + }, + { + "name": "La Boxe longue", + "chineseName": "Coeng Kyun", + "orientation": "yang", + "aspect": "feu", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Le personnage peut dépenser 2 dés-fastes obtenus lors d'une action de défense pour obtenir une action de déplacement gratuite immédiatement après.", + "technique1": { + "name": "Le bond du fauve", + "activation": "action-attack", + "description": "Le personnage ajoute à son action d'attaque une action de déplacement gratuite. Il peut se déplacer puis attaquer, mais pas l'inverse." + }, + "technique2": { + "name": "Le plongeon de l'aigle", + "activation": "damage-inflicted", + "description": "Les dégâts à mains nues du personnage sont égaux à sa valeur de Terre au lieu de 1 pour cette attaque." + }, + "technique3": { + "name": "L'envol de la grue", + "activation": "reaction", + "description": "Si le personnage choisit de ne pas utiliser d'action de défense, il utilise sa valeur de Feu pour fixer la difficulté pour le toucher (au lieu de 1)." + } + }, + { + "name": "La Boxe de la famille Hong", + "chineseName": "Hung Gar", + "orientation": "yang", + "aspect": "feu", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Le personnage gagne 1 dé supplémentaire sur chacun de ses jets d'attaque et inflige 1 dégât supplémentaire à mains nues.", + "technique1": { + "name": "Le tigre déchire sa proie", + "activation": "damage-inflicted", + "description": "Les dégâts à mains nues du personnage sont égaux à sa valeur de Métal au lieu de 1 pour cette attaque." + }, + "technique2": { + "name": "La grue frappe au cœur", + "activation": "damage-inflicted", + "description": "La cible perd 2 points de Hei en plus des dégâts infligés." + }, + "technique3": { + "name": "L'animal acculé mord le chasseur", + "activation": "dice", + "description": "Le personnage peut dépenser les dés-fastes de son action de défense réussie pour infliger immédiatement des dégâts à son adversaire (1 pour 1)." + } + }, + { + "name": "Le Jeet Kune Do", + "chineseName": "Jie Quan Dao (Zit Kyun Dou)", + "orientation": "yang", + "aspect": "bois", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Le personnage obtient automatiquement 1 dé-faste supplémentaire au résultat de ses jets d'attaque et de défense et inflige 1 dégât supplémentaire à mains nues.", + "technique1": { + "name": "Le poing qui intercepte", + "activation": "action-defense", + "description": "Le personnage réalise une action de défense en dépensant 3 crans d'initiative au lieu de 1. En cas de réussite, il peut immédiatement réaliser une contre-attaque sans dépenser de crans supplémentaires. Les dégâts sont égaux à sa valeur de Feu." + }, + "technique2": { + "name": "Briser le rythme", + "activation": "dice", + "description": "Le personnage peut dépenser les dés-fastes de son action d'attaque (réussie ou non) pour faire perdre des crans d'initiative à sa cible (1 pour 1, max 3)." + }, + "technique3": { + "name": "Sois comme l'eau", + "activation": "dice", + "description": "Quelle que soit son action, le personnage peut annuler sur le résultat du jet un nombre de dés-néfastes égal à sa valeur d'Eau." + } + }, + { + "name": "La Boxe de la Forme et de la Pensée", + "chineseName": "Jingji Kyun", + "orientation": "yang", + "aspect": "bois", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Une action de déplacement coûte 1 cran d'initiative (au lieu de 2) au personnage.", + "technique1": { + "name": "La pointe de la lance", + "activation": "damage-inflicted", + "description": "Les dégâts à mains nues du personnage sont égaux à sa valeur d'Eau au lieu de 1 pour cette attaque." + }, + "technique2": { + "name": "La résistance du bois", + "activation": "reaction", + "description": "Si le personnage choisit de ne pas utiliser d'action de défense, il utilise sa valeur de Bois pour fixer la difficulté pour le toucher (au lieu de 1)." + }, + "technique3": { + "name": "La pensée précède la forme", + "activation": "dice", + "description": "Le personnage peut dépenser les dés-fastes de son action d'attaque ou de défense (réussie ou non) pour infliger des dés-néfastes à la prochaine action de son adversaire (1 pour 1)." + } + }, + { + "name": "Le Seot Gaau", + "chineseName": "", + "orientation": "yinyang", + "aspect": "terre", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Le personnage obtient automatiquement 2 dés-fastes supplémentaires sur ses actions de défense, qu'elles soient réussies ou non.", + "technique1": { + "name": "Briser le flux", + "activation": "action-attack", + "description": "Si cette attaque réussit, la cible perd 2 points de Hei en plus des dégâts. Les dégâts à mains nues sont égaux à sa valeur d'Eau au lieu de 1." + }, + "technique2": { + "name": "Éloigner le danger", + "activation": "action-defense", + "description": "Si l'action de défense est réussie, l'agresseur est projeté à distance courte. 2 dés-fastes le projettent à distance médiane." + }, + "technique3": { + "name": "Saisir l'opportunité", + "activation": "action-aid", + "description": "Lors de l'action d'Aide, le personnage octroie autant de dés supplémentaires que sa valeur de Feu (au lieu de 2) sur la prochaine attaque visant la cible immobilisée." + } + }, + { + "name": "Le Kung-fu de l'Invulnérabilité", + "chineseName": "", + "orientation": "yinyang", + "aspect": "terre", + "skill": "kungfu", + "specialite": "Mains Nues", + "styleBonus": "Le personnage obtient une protection de 2.", + "technique1": { + "name": "La chemise de fer", + "activation": "reaction", + "description": "Si le personnage choisit de ne pas utiliser d'action de défense, il utilise sa valeur de Métal pour fixer la difficulté pour le toucher (au lieu de 1)." + }, + "technique2": { + "name": "La main de fer", + "activation": "action-attack", + "description": "Si cette attaque réussit, la cible est projetée à distance courte. 2 dés-fastes la projettent à distance médiane. Les dégâts sont égaux à sa valeur de Bois au lieu de 1." + }, + "technique3": { + "name": "La volonté de fer", + "activation": "action-attack-defense", + "description": "Quelle que soit son action, le personnage ignore 1 dé de malus dû à la perte de Zing/San. 2 dés-fastes permettent d'en ignorer 2." + } + }, + { + "name": "La Forme des Couteaux papillon", + "chineseName": "", + "orientation": "yin", + "aspect": "metal", + "skill": "kungfu", + "specialite": "Poignard", + "styleBonus": "Le personnage gagne 1 dé supplémentaire à ses jets d'attaque. Il peut remplacer son score d'Initiative par le double de sa valeur de Feu.", + "technique1": { + "name": "Les papillons sanglants", + "activation": "dice", + "description": "Le personnage peut dépenser les dés-fastes de son action de défense réussie pour infliger immédiatement des dégâts à son adversaire (1 pour 1)." + }, + "technique2": { + "name": "Le vol des papillons", + "activation": "action-defense", + "description": "Sur une défense réussie, le personnage désarme son adversaire au contact. 2 dés-fastes projettent l'arme à distance médiane." + }, + "technique3": { + "name": "Les ailes du papillon", + "activation": "action-attack", + "description": "Cette action d'attaque du personnage lui coûte 2 crans d'initiative (au lieu de 3)." + } + }, + { + "name": "L'Épée du Faîte suprême", + "chineseName": "Taaigik Gim", + "orientation": "yin", + "aspect": "eau", + "skill": "kungfu", + "specialite": "Épée", + "styleBonus": "Le personnage gagne 1 dé supplémentaire à ses jets de défense. Les adversaires subissent automatiquement 2 dés-néfastes sur leur action visant à le désarmer.", + "technique1": { + "name": "Le souffle de Wudang", + "activation": "dice", + "description": "Le personnage peut dépenser les dés-fastes de son action de défense réussie pour faire perdre des points de Hei à son adversaire (1 pour 1)." + }, + "technique2": { + "name": "La lame est partout", + "activation": "reaction", + "description": "Face au personnage, une action de défense coûte 2 crans d'initiative (au lieu de 1)." + }, + "technique3": { + "name": "L'immortel sur sa montagne", + "activation": "action-attack-defense", + "description": "Quelle que soit son action, le personnage ignore 1 dé de malus dû à la perte de Zing/San. 2 dés-fastes permettent d'en ignorer 2." + } + }, + { + "name": "Le Bâton de la Double-peau de Tigre", + "chineseName": "", + "orientation": "yang", + "aspect": "bois", + "skill": "kungfu", + "specialite": "Bâton", + "styleBonus": "Le personnage gagne 1 dé-faste gratuit sur ses actions d'attaque et de défense.", + "technique1": { + "name": "Le tigre mord deux fois", + "activation": "action-attack", + "description": "Cette action coûte 5 crans d'initiative (au lieu de 3). Le personnage réalise 2 jets d'attaque ciblant deux adversaires différents au contact, résolus séparément mais simultanément." + }, + "technique2": { + "name": "Briser le crâne du tigre", + "activation": "dice", + "description": "Lors d'une attaque réussie, les dés-fastes dépensés pour augmenter ses dégâts comptent double." + }, + "technique3": { + "name": "Esquiver les griffes du tigre", + "activation": "reaction", + "description": "Si le personnage choisit de ne pas utiliser d'action de défense, il utilise sa valeur d'Eau pour fixer la difficulté pour le toucher (au lieu de 1)." + } + }, + { + "name": "Les Trois Joyaux", + "chineseName": "", + "orientation": "yang", + "aspect": "feu", + "skill": "kungfu", + "specialite": "Bâton", + "styleBonus": "Le personnage obtient une protection de 2.", + "technique1": { + "name": "Le serpent encercle sa proie", + "activation": "action-defense", + "description": "Le personnage ajoute au résultat de son jet de défense (réussi ou non) autant de dés-fastes que sa valeur de Terre." + }, + "technique2": { + "name": "Le serpent se joue des griffes", + "activation": "action-attack", + "description": "Sur une attaque au contact réussie, le personnage désarme son adversaire. 2 dés-fastes projettent l'arme à distance médiane. L'attaque inflige ses dégâts normalement." + }, + "technique3": { + "name": "Le serpent rampe au sol", + "activation": "dice", + "description": "Sur une attaque réussie, le personnage fait tomber son adversaire et peut dépenser les dés-fastes pour lui faire perdre des crans d'initiative (1 pour 1, max 3)." + } + }, + { + "name": "La Lance loyale du Général Yue Fei", + "chineseName": "", + "orientation": "yinyang", + "aspect": "terre", + "skill": "kungfu", + "specialite": "Lance", + "styleBonus": "Le personnage peut porter une attaque à distance courte comme s'il se trouvait au contact.", + "technique1": { + "name": "Le général écrase ses ennemis", + "activation": "dice", + "description": "Lors d'une attaque réussie, les dés-fastes dépensés pour augmenter ses dégâts comptent double." + }, + "technique2": { + "name": "Tenir le cavalier à distance", + "activation": "action-defense", + "description": "Le personnage ajoute au résultat de son jet de défense autant de dés-fastes que sa valeur d'Eau." + }, + "technique3": { + "name": "Retenir l'avalanche", + "activation": "action-defense", + "description": "Si l'action de défense est réussie, l'agresseur est projeté à distance courte. 2 dés-fastes le projettent à distance médiane." + } + }, + { + "name": "Les Éclairs de Leoi Gung", + "chineseName": "", + "orientation": "yang", + "aspect": "bois", + "skill": "rangedcombat", + "specialite": "Arc", + "styleBonus": "Le personnage peut tirer autant de fois que sa valeur de Métal avant de recharger. De plus, ses dégâts à l'arc sont toujours augmentés de 1.", + "technique1": { + "name": "La flèche est la cible", + "activation": "action-attack", + "description": "Le personnage ajoute au résultat de son jet d'attaque (réussi ou non) autant de dés-fastes que sa valeur de Feu." + }, + "technique2": { + "name": "La pluie d'éclairs", + "activation": "action-attack", + "description": "Cette action d'attaque du personnage lui coûte 2 crans d'initiative (au lieu de 3)." + }, + "technique3": { + "name": "L'impassibilité de la montagne", + "activation": "dice", + "description": "Le personnage peut annuler sur le résultat d'un jet d'attaque un nombre de dés-néfastes égal à sa valeur de Terre, qu'il soit réussi ou non." + } + }, + { + "name": "Les Mille Frelons", + "chineseName": "", + "orientation": "yang", + "aspect": "feu", + "skill": "rangedcombat", + "specialite": "Arme de jet", + "styleBonus": "Chaque attaque du personnage coûte 2 crans d'initiative (au lieu de 3).", + "technique1": { + "name": "L'essaim furieux", + "activation": "action-attack", + "description": "Même ligoté, immobilisé, fouillé, aveuglé ou privé de ses armes, le personnage peut activer cette Technique en dépensant 1 point de Hei et effectuer une action d'attaque." + }, + "technique2": { + "name": "La nuée vorace", + "activation": "reaction", + "description": "La cible se voit imposer à sa prochaine action un nombre de dés-néfastes égal à la valeur de Feu du personnage. Si elle se défend, les dés-néfastes restants peuvent infliger des dégâts (1 pour 1)." + }, + "technique3": { + "name": "Les incessantes piqûres", + "activation": "dice", + "description": "Le personnage peut dépenser les dés-fastes de son action d'attaque (réussie ou non) pour faire perdre des crans d'initiative à sa cible (1 pour 1, max 3)." + } + }, + { + "name": "Les Poignards volants", + "chineseName": "", + "orientation": "yinyang", + "aspect": "terre", + "skill": "rangedcombat", + "specialite": "Poignard, Hachette", + "styleBonus": "La portée des attaques passe de distance médiane à distance longue, et les dégâts des attaques aux poignards sont augmentés de 1.", + "technique1": { + "name": "Handicaper l'ennemi", + "activation": "action-attack", + "description": "Sur une attaque réussie jusqu'à distance longue, le personnage désarme son adversaire. 2 dés-fastes projettent l'arme à distance médiane. L'attaque inflige ses dégâts normalement." + }, + "technique2": { + "name": "Assiéger la forteresse", + "activation": "dice", + "description": "Le personnage peut dépenser les dés-fastes de son action d'attaque (réussie ou non) pour faire perdre des crans d'initiative à sa cible (1 pour 1, max 3)." + }, + "technique3": { + "name": "Décider de la retraite", + "activation": "action-defense", + "description": "Le personnage obtient immédiatement après son action de défense une action de déplacement gratuite." + } + }, + { + "name": "Le Gun-fu", + "chineseName": "", + "orientation": "yin", + "aspect": "eau", + "skill": "rangedcombat", + "specialite": "Pistolet, Fusil", + "styleBonus": "La portée des attaques du personnage passe de distance longue à distance extrême, et les dégâts des armes à feu sont augmentés de 1 à portée courte.", + "technique1": { + "name": "Louvoyer entre les flammes", + "activation": "dice", + "description": "Le personnage peut annuler sur son action de défense (réussie ou non) un nombre de dés-néfastes égal à sa valeur de Feu." + }, + "technique2": { + "name": "Rester conscient", + "activation": "action-attack-defense", + "description": "Quelle que soit son action, le personnage ignore 1 dé de malus dû à la perte de Zing/San. 2 dés-fastes permettent d'en ignorer 2." + }, + "technique3": { + "name": "Le cri du dragon", + "activation": "damage-inflicted", + "description": "Le personnage inflige des dégâts supplémentaires égaux à sa valeur de Métal sur une attaque réussie." + } + }, + { + "name": "Le Gun Kata", + "chineseName": "", + "orientation": "yin", + "aspect": "metal", + "skill": "rangedcombat", + "specialite": "Pistolet, Fusil", + "styleBonus": "Pour effectuer une défense face à une attaque à distance, le personnage peut utiliser sa Compétence Armes à feu (Pistolet/Fusil) au lieu de sa Compétence Prouesse.", + "technique1": { + "name": "Tir précis", + "activation": "action-attack", + "description": "Le personnage ajoute au résultat de son jet d'attaque (réussi ou non) autant de dés-fastes que sa valeur de Bois." + } + } +] \ No newline at end of file diff --git a/package.json b/package.json index 559a846..91e073f 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,11 @@ "build:js": "esbuild src/system.js --bundle --format=esm --target=es2022 --sourcemap --outfile=dist/system.js", "build": "npm run build:css && npm run build:js", "build:watch": "npm run build:css && npm run build:js -- --watch", + "build:full": "npm run pack:compile && npm run build", "clean": "rm -rf dist", - "prepare": "npm run build" + "prepare": "npm run build", + "pack:compile": "node tools/compendiums.mjs compile", + "pack:extract": "node tools/compendiums.mjs extract" }, "repository": { "type": "git", @@ -20,6 +23,7 @@ "license": "ISC", "type": "module", "devDependencies": { + "@foundryvtt/foundryvtt-cli": "^3.0.3", "esbuild": "^0.27.4", "jscpd": "^4.0.8", "less": "^4.2.0" diff --git a/packs-src/cde-armors/armor_Armure_ancienne__armure_en_métal.json b/packs-src/cde-armors/armor_Armure_ancienne__armure_en_métal.json new file mode 100644 index 0000000..cabfdba --- /dev/null +++ b/packs-src/cde-armors/armor_Armure_ancienne__armure_en_métal.json @@ -0,0 +1,32 @@ +{ + "_id": "3aig6MWvZCRoWXPW", + "_key": "!items!3aig6MWvZCRoWXPW", + "name": "Armure ancienne – armure en métal", + "type": "armor", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-armor.svg", + "system": { + "reference": "", + "description": "

Armure historique complète en plaques de métal. Très rare, généralement en musée. Encombrante mais résistante.

", + "protectionValue": 3, + "domain": "Musée, Collections privées", + "obtainLevel": 4, + "obtainDifficulty": 1, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-armors/armor_Armure_ancienne__chemise_de_maille.json b/packs-src/cde-armors/armor_Armure_ancienne__chemise_de_maille.json new file mode 100644 index 0000000..9dafbb0 --- /dev/null +++ b/packs-src/cde-armors/armor_Armure_ancienne__chemise_de_maille.json @@ -0,0 +1,32 @@ +{ + "_id": "B6SpR7ipr96MAgsv", + "_key": "!items!B6SpR7ipr96MAgsv", + "name": "Armure ancienne – chemise de maille", + "type": "armor", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-armor.svg", + "system": { + "reference": "", + "description": "

Armure médiévale ou historique en cotte de mailles. Légalement facile à obtenir via des antiquaires ou musées, mais encombrante.

", + "protectionValue": 2, + "domain": "Musée, Collections privées", + "obtainLevel": 3, + "obtainDifficulty": 1, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-armors/armor_Combinaison_militaire_de_Kevlar.json b/packs-src/cde-armors/armor_Combinaison_militaire_de_Kevlar.json new file mode 100644 index 0000000..2b13e5c --- /dev/null +++ b/packs-src/cde-armors/armor_Combinaison_militaire_de_Kevlar.json @@ -0,0 +1,32 @@ +{ + "_id": "cXaQG1TBE0jzrbNt", + "_key": "!items!cXaQG1TBE0jzrbNt", + "name": "Combinaison militaire de Kevlar", + "type": "armor", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-armor.svg", + "system": { + "reference": "", + "description": "

Protection balistique complète de niveau militaire. Extrêmement visible et difficile à dissimuler. Accès quasi-exclusivement militaire.

", + "protectionValue": 3, + "domain": "Armée, Industrie", + "obtainLevel": 3, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-armors/armor_Gilet_pare-balles___Veste_de_Kevlar.json b/packs-src/cde-armors/armor_Gilet_pare-balles___Veste_de_Kevlar.json new file mode 100644 index 0000000..c7b02c2 --- /dev/null +++ b/packs-src/cde-armors/armor_Gilet_pare-balles___Veste_de_Kevlar.json @@ -0,0 +1,32 @@ +{ + "_id": "EXeXrDmoizy1Mqx5", + "_key": "!items!EXeXrDmoizy1Mqx5", + "name": "Gilet pare-balles / Veste de Kevlar", + "type": "armor", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-armor.svg", + "system": { + "reference": "", + "description": "

Protection balistique souple. Commune dans les forces de l'ordre et les milieux criminels. Visible sous les vêtements larges.

", + "protectionValue": 2, + "domain": "Police, Armée, Triades", + "obtainLevel": 2, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-items/item_Modele_Equipement.json b/packs-src/cde-items/item_Modele_Equipement.json new file mode 100644 index 0000000..f2764bb --- /dev/null +++ b/packs-src/cde-items/item_Modele_Equipement.json @@ -0,0 +1,29 @@ +{ + "_id": "HKq5ANSGiBIdcnki", + "_key": "!items!HKq5ANSGiBIdcnki", + "name": "Modèle Équipement", + "type": "item", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-item.svg", + "system": { + "reference": "", + "description": "", + "quantity": 1, + "weight": 0, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Alexander_Weng.json b/packs-src/cde-npcs/Alexander_Weng.json new file mode 100644 index 0000000..92d862a --- /dev/null +++ b/packs-src/cde-npcs/Alexander_Weng.json @@ -0,0 +1,69 @@ +{ + "_id": "9jr5RN2GDhfVOZnY", + "_key": "!actors!9jr5RN2GDhfVOZnY", + "name": "Alexander Weng", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 2, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "Mains Nues" + }, + "mental": { + "value": 2, + "speciality": "Taonet" + }, + "social": { + "value": 2, + "speciality": "" + }, + "spiritual": { + "value": 3, + "speciality": "Mythologie, Domination, Transfiguration, Purification" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Sorcier Initié — antagoniste du scénario L'Année du Lion. Pratique le Jeet Kune Do (Le poing qui intercepte, Briser le rythme, Sois comme l'eau). Use de Domination pour contrôler des créatures.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Ban_Daan_gros_bras_trop_ambitieux.json b/packs-src/cde-npcs/Ban_Daan_gros_bras_trop_ambitieux.json new file mode 100644 index 0000000..9a6fd08 --- /dev/null +++ b/packs-src/cde-npcs/Ban_Daan_gros_bras_trop_ambitieux.json @@ -0,0 +1,69 @@ +{ + "_id": "JSQ8x2ojYooWx6fr", + "_key": "!actors!JSQ8x2ojYooWx6fr", + "name": "Ban Daan, gros bras trop ambitieux", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 2, + "nuisance": 2, + "initiative": 14, + "anti_initiative": 20, + "aptitudes": { + "physical": { + "value": 4, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "Massue" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 16, + "calcul": 16, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Losaat (ogre) Initié. Sbire de Pui Gan qui rêve de prendre la place de son patron. Capacités : arme (crocs) 2 ; peur (action) 3 ; protection (muscles puissants) +2.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Bui_Hok_general_fidele.json b/packs-src/cde-npcs/Bui_Hok_general_fidele.json new file mode 100644 index 0000000..c2c0d16 --- /dev/null +++ b/packs-src/cde-npcs/Bui_Hok_general_fidele.json @@ -0,0 +1,69 @@ +{ + "_id": "xs3iEeRvVqnLG4fa", + "_key": "!actors!xs3iEeRvVqnLG4fa", + "name": "Bui Hok, général fidèle", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "esprit-animal", + "threat": 3, + "nuisance": 4, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Travail de force" + }, + "martial": { + "value": 3, + "speciality": "Mains Nues, Épée" + }, + "mental": { + "value": 2, + "speciality": "Stratégie" + }, + "social": { + "value": 2, + "speciality": "Intimidation" + }, + "spiritual": { + "value": 2, + "speciality": "Mythologie" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Esprit-crabe (haaizing) Accompli/Boss. Ancien général, pratique la Lance loyale du général Yue.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Carrie_Suet_citoyenne_ordinaire.json b/packs-src/cde-npcs/Carrie_Suet_citoyenne_ordinaire.json new file mode 100644 index 0000000..a885504 --- /dev/null +++ b/packs-src/cde-npcs/Carrie_Suet_citoyenne_ordinaire.json @@ -0,0 +1,69 @@ +{ + "_id": "c08hmLyriGEOct1K", + "_key": "!actors!c08hmLyriGEOct1K", + "name": "Carrie Suet, citoyenne ordinaire", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 0, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "" + }, + "spiritual": { + "value": 1, + "speciality": "" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 4, + "calcul": 4, + "note": "" + }, + "description": "

Mortelle Profane. Maîtresse de Good Boy, ignore la véritable nature de son chien démoniaque.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Charlie_Fei_psychologue_pour_defunts.json b/packs-src/cde-npcs/Charlie_Fei_psychologue_pour_defunts.json new file mode 100644 index 0000000..224b0f5 --- /dev/null +++ b/packs-src/cde-npcs/Charlie_Fei_psychologue_pour_defunts.json @@ -0,0 +1,69 @@ +{ + "_id": "CVbY9xpxodgazhLq", + "_key": "!actors!CVbY9xpxodgazhLq", + "name": "Charlie Fei, psychologue pour défunts", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 2, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "Bâton" + }, + "mental": { + "value": 3, + "speciality": "Surveillance" + }, + "social": { + "value": 2, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "Deijuk" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Démon-gardien (gaamwujan mo) Initié. Veilleur de nuit à la morgue, pratique le Bâton de la Double-peau de Tigre (Le tigre mord deux fois, Briser le crâne du tigre). Capacités : arme (crocs) 3 ; métamorphe (change-forme) 2 ; peur (action) 3 ; régénération 2.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Cimei_demon_des_forets.json b/packs-src/cde-npcs/Cimei_demon_des_forets.json new file mode 100644 index 0000000..3369a5a --- /dev/null +++ b/packs-src/cde-npcs/Cimei_demon_des_forets.json @@ -0,0 +1,69 @@ +{ + "_id": "xwVOrq4vFJbAHrue", + "_key": "!actors!xwVOrq4vFJbAHrue", + "name": "Cimei (démon des forêts)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 1, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "Acrobaties" + }, + "martial": { + "value": 2, + "speciality": "" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Démon des montagnes et forêts (cimei) Apprenti. Petit démon à corps animal constitué de terre et de branches. Capacités : arme (crocs, griffes) ; peur (permanent) ; protection (bois, terre) ; régénération.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Consultant_esoterique.json b/packs-src/cde-npcs/Consultant_esoterique.json new file mode 100644 index 0000000..42ac5bb --- /dev/null +++ b/packs-src/cde-npcs/Consultant_esoterique.json @@ -0,0 +1,69 @@ +{ + "_id": "A54y6E5qYiSfPhQw", + "_key": "!actors!A54y6E5qYiSfPhQw", + "name": "Consultant ésotérique", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 2, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "Pistolet" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Négociation" + }, + "spiritual": { + "value": 3, + "speciality": "Protection, Neutralisation" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Consultant Initié générique. Expert en surnaturel travaillant pour diverses organisations. Ne pratique pas la magie directement.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Demon-gardien_gaamwujan_mo_Profane.json b/packs-src/cde-npcs/Demon-gardien_gaamwujan_mo_Profane.json new file mode 100644 index 0000000..fd2a076 --- /dev/null +++ b/packs-src/cde-npcs/Demon-gardien_gaamwujan_mo_Profane.json @@ -0,0 +1,69 @@ +{ + "_id": "kEgcNfeMGeOA3q58", + "_key": "!actors!kEgcNfeMGeOA3q58", + "name": "Démon-gardien (gaamwujan mo) Profane", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 0, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "" + }, + "spiritual": { + "value": 1, + "speciality": "" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 4, + "calcul": 4, + "note": "" + }, + "description": "

Démon-gardien Profane. Jeune démon à tête animale, gardien de lieux surnaturels. Capacités : arme (crocs, cornes) ; peur (permanent ou action) ; régénération.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Deoi_Sam_double_demoniaque.json b/packs-src/cde-npcs/Deoi_Sam_double_demoniaque.json new file mode 100644 index 0000000..4655f51 --- /dev/null +++ b/packs-src/cde-npcs/Deoi_Sam_double_demoniaque.json @@ -0,0 +1,69 @@ +{ + "_id": "j0M9lM05layknpjc", + "_key": "!actors!j0M9lM05layknpjc", + "name": "Deoi Sam (double démoniaque)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 2, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "" + }, + "mental": { + "value": 3, + "speciality": "" + }, + "social": { + "value": 3, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Double démoniaque (deoi sam) Initié. Créature capable de prendre l'apparence d'un mortel. Capacités : métamorphe (déguisement) ; boxe de l'Ivresse (Chuter du...). Les aptitudes physiques et martiales varient selon l'original copié.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Fat_si_sorcier.json b/packs-src/cde-npcs/Fat_si_sorcier.json new file mode 100644 index 0000000..a8f5a6e --- /dev/null +++ b/packs-src/cde-npcs/Fat_si_sorcier.json @@ -0,0 +1,69 @@ +{ + "_id": "CecTD0e1caDDLi4f", + "_key": "!actors!CecTD0e1caDDLi4f", + "name": "Fat si sorcier", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 1, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Commerce" + }, + "spiritual": { + "value": 3, + "speciality": "Élixirs" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Sorcier (fat si / mou) Apprenti. Alchimiste ou mage taoïste pratiquant l'ésotérisme à Hong Kong. Utilise la magie comme les fat si.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Fonctionnaire_infernal_gwai_caai.json b/packs-src/cde-npcs/Fonctionnaire_infernal_gwai_caai.json new file mode 100644 index 0000000..30edb9b --- /dev/null +++ b/packs-src/cde-npcs/Fonctionnaire_infernal_gwai_caai.json @@ -0,0 +1,69 @@ +{ + "_id": "oZQYYd9fshpR1fzS", + "_key": "!actors!oZQYYd9fshpR1fzS", + "name": "Fonctionnaire infernal (gwai caai)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 2, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 3, + "speciality": "Comptabilité" + }, + "social": { + "value": 2, + "speciality": "Autorité" + }, + "spiritual": { + "value": 3, + "speciality": "Deijuk" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Fonctionnaire infernal générique (gwai caai) Initié. Superviseur des Enfers reconnaissable à sa peau rouge ou bleue et ses cornes. Capacités : absorption de Yang (distance courte) ; arme (crocs) ; don inné (Torture) ; immortalité ; peur (permanent).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Gaaujan_ogresse_des_mers.json b/packs-src/cde-npcs/Gaaujan_ogresse_des_mers.json new file mode 100644 index 0000000..6dd47ca --- /dev/null +++ b/packs-src/cde-npcs/Gaaujan_ogresse_des_mers.json @@ -0,0 +1,69 @@ +{ + "_id": "nKvFMqTQluI6slsR", + "_key": "!actors!nKvFMqTQluI6slsR", + "name": "Gaaujan (ogresse des mers)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "jiugwaai", + "threat": 1, + "nuisance": 2, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Natation" + }, + "martial": { + "value": 2, + "speciality": "" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "Commerce" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Femme-requin (gaaujan) Apprentie. Prédatrice marine capable de se déguiser en humaine. Capacités : arme (dents et griffes) 2 ; don inné (Natation) ; peur (action) 3 ; protection (peau) 2. Perle mystique : permet de respirer sous l'eau.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Gamzing_generique.json b/packs-src/cde-npcs/Gamzing_generique.json new file mode 100644 index 0000000..20b936c --- /dev/null +++ b/packs-src/cde-npcs/Gamzing_generique.json @@ -0,0 +1,69 @@ +{ + "_id": "gX41y0aGmiXzf7em", + "_key": "!actors!gX41y0aGmiXzf7em", + "name": "Gamzing (générique)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "fantome", + "threat": 1, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "Discrétion" + }, + "martial": { + "value": 1, + "speciality": "Poignard" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 3, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "Histoire" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Fantôme revanchard (gamzing) Apprenti. Être animé par la vengeance, dangereux et imprévisible. Capacités : absorption de Yang (distance courte) ; intangibilité ; peur (permanent) ; possession ; régénération.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Ginny_Ching.json b/packs-src/cde-npcs/Ginny_Ching.json new file mode 100644 index 0000000..1a82a40 --- /dev/null +++ b/packs-src/cde-npcs/Ginny_Ching.json @@ -0,0 +1,69 @@ +{ + "_id": "qfTSRgyrtBfRA43K", + "_key": "!actors!qfTSRgyrtBfRA43K", + "name": "Ginny Ching", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 1, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "Occultisme" + }, + "social": { + "value": 2, + "speciality": "Tromperie, Charme" + }, + "spiritual": { + "value": 3, + "speciality": "Domination, Essence, Aura" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Sorcière corrompue Apprentie — antagoniste du scénario. Use des mogwaai sous ses ordres et fuit les combats directs.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Goengsi_jiangshi.json b/packs-src/cde-npcs/Goengsi_jiangshi.json new file mode 100644 index 0000000..dad82b3 --- /dev/null +++ b/packs-src/cde-npcs/Goengsi_jiangshi.json @@ -0,0 +1,69 @@ +{ + "_id": "Xn42o1E660Q7nFD5", + "_key": "!actors!Xn42o1E660Q7nFD5", + "name": "Goengsi (jiangshi)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "fantome", + "threat": 1, + "nuisance": 1, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Bond" + }, + "martial": { + "value": 2, + "speciality": "" + }, + "mental": { + "value": 0, + "speciality": "" + }, + "social": { + "value": 0, + "speciality": "" + }, + "spiritual": { + "value": 0, + "speciality": "" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 0, + "calcul": 0, + "note": "" + }, + "description": "

Vampire chinois (goengsi/jiangshi) Sbire. Mort-vivant sauteur, dépourvu d'intelligence mais redoutable au combat. Hei = 0 (aucune énergie spirituelle).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Good_Boy_molosse_protecteur.json b/packs-src/cde-npcs/Good_Boy_molosse_protecteur.json new file mode 100644 index 0000000..1ac0a33 --- /dev/null +++ b/packs-src/cde-npcs/Good_Boy_molosse_protecteur.json @@ -0,0 +1,69 @@ +{ + "_id": "ch7LrshdCOtq7cyl", + "_key": "!actors!ch7LrshdCOtq7cyl", + "name": "Good Boy, molosse protecteur", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 2, + "nuisance": 2, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Course" + }, + "martial": { + "value": 3, + "speciality": "Morsure" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Démon-gardien (deoi sam) Initié. Chien démoniaque créé par sorcellerie. Capacités : arme (griffes et crocs) 3 ; peur (permanent) 2 ; protection (pelage épais) +2 ; régénération 3.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Gwat_Jyun_singe_blanc_Initie.json b/packs-src/cde-npcs/Gwat_Jyun_singe_blanc_Initie.json new file mode 100644 index 0000000..ade0f2c --- /dev/null +++ b/packs-src/cde-npcs/Gwat_Jyun_singe_blanc_Initie.json @@ -0,0 +1,69 @@ +{ + "_id": "CSiS3imbab0YaMSW", + "_key": "!actors!CSiS3imbab0YaMSW", + "name": "Gwat Jyun (singe blanc) Initié", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "jiugwaai", + "threat": 2, + "nuisance": 2, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Acrobaties" + }, + "martial": { + "value": 2, + "speciality": "" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Manipulation" + }, + "spiritual": { + "value": 3, + "speciality": "" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Singe blanc (gwat jyun) Initié. Créature agile et malicieuse, habile manipulateur. Capacités : arme (griffes) 2 ; métamorphe (change-forme) 2 ; peur (action) 2 ; régénération 2.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Gwat_Jyun_singe_blanc_Profane.json b/packs-src/cde-npcs/Gwat_Jyun_singe_blanc_Profane.json new file mode 100644 index 0000000..71a15be --- /dev/null +++ b/packs-src/cde-npcs/Gwat_Jyun_singe_blanc_Profane.json @@ -0,0 +1,69 @@ +{ + "_id": "rCaI4p3b7wWAkogg", + "_key": "!actors!rCaI4p3b7wWAkogg", + "name": "Gwat Jyun (singe blanc) Profane", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "jiugwaai", + "threat": 0, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Baratin" + }, + "spiritual": { + "value": 1, + "speciality": "" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 4, + "calcul": 4, + "note": "" + }, + "description": "

Singe blanc (gwat jyun) Profane. Jeune créature encore peu puissante. Capacités : arme (griffes) ; métamorphe (change-forme) ; peur (action).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Hyun_Ci_champion_underground.json b/packs-src/cde-npcs/Hyun_Ci_champion_underground.json new file mode 100644 index 0000000..224bed5 --- /dev/null +++ b/packs-src/cde-npcs/Hyun_Ci_champion_underground.json @@ -0,0 +1,69 @@ +{ + "_id": "dQUAdHHo2adCgCcY", + "_key": "!actors!dQUAdHHo2adCgCcY", + "name": "Hyun Ci, champion underground", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "esprit-animal", + "threat": 3, + "nuisance": 2, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Travail de force" + }, + "martial": { + "value": 3, + "speciality": "Mains Nues" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "Mythologie" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Esprit-tigre (fuzing) Accompli. Champion de combat souterrain, brutal et tenace.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Intermediaire.json b/packs-src/cde-npcs/Intermediaire.json new file mode 100644 index 0000000..f5e7a2c --- /dev/null +++ b/packs-src/cde-npcs/Intermediaire.json @@ -0,0 +1,69 @@ +{ + "_id": "lWZ4Ifq8L46QorAH", + "_key": "!actors!lWZ4Ifq8L46QorAH", + "name": "Intermédiaire", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 1, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "Mains Nues" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Empathie" + }, + "spiritual": { + "value": 3, + "speciality": "Exorcisme" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Intermédiaire générique Apprenti. Mortel assurant la liaison entre monde humain et surnaturel. Pratique quelques sorts défensifs.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/James_Kam_tueur_gages.json b/packs-src/cde-npcs/James_Kam_tueur_gages.json new file mode 100644 index 0000000..4a14ac6 --- /dev/null +++ b/packs-src/cde-npcs/James_Kam_tueur_gages.json @@ -0,0 +1,69 @@ +{ + "_id": "mTlPb9acTYuN8g34", + "_key": "!actors!mTlPb9acTYuN8g34", + "name": "James Kam, tueur à gages", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "esprit-animal", + "threat": 4, + "nuisance": 2, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Discrétion" + }, + "martial": { + "value": 3, + "speciality": "Mains Nues, Dague, Pistolet" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "Intimidation" + }, + "spiritual": { + "value": 2, + "speciality": "Mythologie" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Esprit-serpent (sezing) Renommé. Tueur à gages froid et efficace qui pratique le Gun Kata (Tir précis, Tir rapide).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Je_Maan_cadre_aux_dents_longues.json b/packs-src/cde-npcs/Je_Maan_cadre_aux_dents_longues.json new file mode 100644 index 0000000..b093f1b --- /dev/null +++ b/packs-src/cde-npcs/Je_Maan_cadre_aux_dents_longues.json @@ -0,0 +1,69 @@ +{ + "_id": "GPcB3MHaqxO0NcyK", + "_key": "!actors!GPcB3MHaqxO0NcyK", + "name": "Je Maan, cadre aux dents longues", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 2, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 3, + "speciality": "Comptabilité" + }, + "social": { + "value": 2, + "speciality": "Autorité" + }, + "spiritual": { + "value": 3, + "speciality": "Deijuk" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Fonctionnaire infernal (gwai caai) Initié. Ancien comptable des Enfers, ambitieux et calculateur. Capacités : absorption de Yang 2 ; arme (crocs) 2 ; don inné (Torture) ; immortalité ; peur (permanent) 2.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Jeffrey_Chiu.json b/packs-src/cde-npcs/Jeffrey_Chiu.json new file mode 100644 index 0000000..571ff81 --- /dev/null +++ b/packs-src/cde-npcs/Jeffrey_Chiu.json @@ -0,0 +1,69 @@ +{ + "_id": "VDe1iLJbtQ0Yy5CD", + "_key": "!actors!VDe1iLJbtQ0Yy5CD", + "name": "Jeffrey Chiu", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 0, + "nuisance": 0, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "Mécanique" + }, + "social": { + "value": 2, + "speciality": "" + }, + "spiritual": { + "value": 1, + "speciality": "" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 4, + "calcul": 4, + "note": "" + }, + "description": "

Figurant Profane — scénario. Mécanicien ordinaire qui ignore tout du surnaturel. Fuit ou appelle la police en cas de danger.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Jing_Tin_guerrier_decapite.json b/packs-src/cde-npcs/Jing_Tin_guerrier_decapite.json new file mode 100644 index 0000000..a1bfa81 --- /dev/null +++ b/packs-src/cde-npcs/Jing_Tin_guerrier_decapite.json @@ -0,0 +1,69 @@ +{ + "_id": "4ZjFZ1HoJV9mJStt", + "_key": "!actors!4ZjFZ1HoJV9mJStt", + "name": "Jing Tin, guerrier décapité", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "dieu", + "threat": 3, + "nuisance": 2, + "initiative": 14, + "anti_initiative": 20, + "aptitudes": { + "physical": { + "value": 4, + "speciality": "" + }, + "martial": { + "value": 3, + "speciality": "Hache, Pistolet, Fusil" + }, + "mental": { + "value": 2, + "speciality": "Stratégie" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 3, + "speciality": "Temps mythiques" + } + }, + "vitality": { + "value": 16, + "calcul": 16, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Être divin Accompli. Guerrier décapité de l'antiquité, immortel et assoiffé de sang, qui s'est adapté au monde moderne avec des armes à feu. Capacités : immortalité ; peur (permanent) 3 ; régénération 4.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/John_Wa_maitre_des_rites_free-lance.json b/packs-src/cde-npcs/John_Wa_maitre_des_rites_free-lance.json new file mode 100644 index 0000000..bb0e1fb --- /dev/null +++ b/packs-src/cde-npcs/John_Wa_maitre_des_rites_free-lance.json @@ -0,0 +1,69 @@ +{ + "_id": "54uOjMPREX9p9y3k", + "_key": "!actors!54uOjMPREX9p9y3k", + "name": "John Wa, maître des rites free-lance", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 2, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "Pistolet" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Négociation" + }, + "spiritual": { + "value": 3, + "speciality": "Protection, Neutralisation" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Consultant Initié. Expert en rituels taoïstes au service des triades. Pratique le Gun-fu (Rester conscient, Le cri du dragon).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Juk_Lyun_guide_touristique.json b/packs-src/cde-npcs/Juk_Lyun_guide_touristique.json new file mode 100644 index 0000000..af4cca7 --- /dev/null +++ b/packs-src/cde-npcs/Juk_Lyun_guide_touristique.json @@ -0,0 +1,69 @@ +{ + "_id": "xso73DrDuFPD74MF", + "_key": "!actors!xso73DrDuFPD74MF", + "name": "Juk Lyun, guide touristique", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "jiugwaai", + "threat": 1, + "nuisance": 2, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Natation" + }, + "martial": { + "value": 2, + "speciality": "" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "Commerce" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Femme-requin (gaaujan) Apprentie. Guide touristique qui attire les visiteurs pour les dévorer. Capacités : arme (dents et griffes) 2 ; don inné (Natation) ; peur (action) +3 ; protection (peau) 2.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Julian_Po_travailleur_social.json b/packs-src/cde-npcs/Julian_Po_travailleur_social.json new file mode 100644 index 0000000..114b147 --- /dev/null +++ b/packs-src/cde-npcs/Julian_Po_travailleur_social.json @@ -0,0 +1,69 @@ +{ + "_id": "4qsz1fgQaLp6XgOA", + "_key": "!actors!4qsz1fgQaLp6XgOA", + "name": "Julian Po, travailleur social", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 1, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "Mains Nues" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Empathie" + }, + "spiritual": { + "value": 3, + "speciality": "Exorcisme" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Intermédiaire Apprenti. Aide les sauzing en perdition à Hong Kong, accompagné de Joan Maau, son amie esprit-renard.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Karen_Sen_croqueuse_de_diamants.json b/packs-src/cde-npcs/Karen_Sen_croqueuse_de_diamants.json new file mode 100644 index 0000000..5841ee1 --- /dev/null +++ b/packs-src/cde-npcs/Karen_Sen_croqueuse_de_diamants.json @@ -0,0 +1,69 @@ +{ + "_id": "zVpmacwoWEG8YTCQ", + "_key": "!actors!zVpmacwoWEG8YTCQ", + "name": "Karen Sen, croqueuse de diamants", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "esprit-animal", + "threat": 2, + "nuisance": 4, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "Danse" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 3, + "speciality": "Séduction" + }, + "spiritual": { + "value": 2, + "speciality": "Mythologie" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Esprit-renard (wuleizing) Initiée/Boss. Séductrice redoutable qui use de ses charmes pour dépouiller ses victimes.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Ken_Luan.json b/packs-src/cde-npcs/Ken_Luan.json new file mode 100644 index 0000000..0d4bc44 --- /dev/null +++ b/packs-src/cde-npcs/Ken_Luan.json @@ -0,0 +1,69 @@ +{ + "_id": "Z5DRulhhSyujEVjG", + "_key": "!actors!Z5DRulhhSyujEVjG", + "name": "Ken Luan", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 1, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 3, + "speciality": "Poignards" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "" + }, + "spiritual": { + "value": 1, + "speciality": "" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 4, + "calcul": 4, + "note": "" + }, + "description": "

Adversaire Apprenti — scénario. Expert aux couteaux papillon enchantés (drainent le Hei). Pratique La Forme des Couteaux Papillon (Les papillons sanglants, Le vol des papillons, Les ailes du papillon).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Laureen_Zoeng_estheticienne_roublarde.json b/packs-src/cde-npcs/Laureen_Zoeng_estheticienne_roublarde.json new file mode 100644 index 0000000..9100ca7 --- /dev/null +++ b/packs-src/cde-npcs/Laureen_Zoeng_estheticienne_roublarde.json @@ -0,0 +1,69 @@ +{ + "_id": "a5blX0uXTNzcplH1", + "_key": "!actors!a5blX0uXTNzcplH1", + "name": "Laureen Zoeng, esthéticienne roublarde", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 1, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Commerce" + }, + "spiritual": { + "value": 3, + "speciality": "Élixirs" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Sorcière (mou) Apprentie. Alchimiste qui prélève subrepticement le souffle Yang de ses clients pour le revendre aux jiugwaai.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Leonie_Fei.json b/packs-src/cde-npcs/Leonie_Fei.json new file mode 100644 index 0000000..d932311 --- /dev/null +++ b/packs-src/cde-npcs/Leonie_Fei.json @@ -0,0 +1,69 @@ +{ + "_id": "4ys4N6FQKGacd3rf", + "_key": "!actors!4ys4N6FQKGacd3rf", + "name": "Leonie Fei", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 1, + "nuisance": 3, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "Bâton, Mains Nues" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "" + }, + "spiritual": { + "value": 1, + "speciality": "" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 4, + "calcul": 4, + "note": "" + }, + "description": "

Alliée Apprentie — scénario. Pratique Le Bâton de la Double-peau de Tigre (Le tigre mord deux fois, Briser le crâne du tigre).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Maximilian_Pang.json b/packs-src/cde-npcs/Maximilian_Pang.json new file mode 100644 index 0000000..5597759 --- /dev/null +++ b/packs-src/cde-npcs/Maximilian_Pang.json @@ -0,0 +1,69 @@ +{ + "_id": "wvdZgXLIdqQxc3nH", + "_key": "!actors!wvdZgXLIdqQxc3nH", + "name": "Maximilian Pang", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 3, + "nuisance": 3, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "Bâton" + }, + "mental": { + "value": 3, + "speciality": "Vigilance" + }, + "social": { + "value": 2, + "speciality": "Enquête" + }, + "spiritual": { + "value": 3, + "speciality": "Mythologie, Invocation, Protection, Punition" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Fat si Accompli — allié du scénario. Mentor et expert en arts martiaux (Le Bâton de la Double-peau de Tigre). Note : ses aptitudes sont réduites de 1 et son Hei à 0 lors de la rencontre initiale.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Michelle_Chun_gentille_couturiere.json b/packs-src/cde-npcs/Michelle_Chun_gentille_couturiere.json new file mode 100644 index 0000000..e308d53 --- /dev/null +++ b/packs-src/cde-npcs/Michelle_Chun_gentille_couturiere.json @@ -0,0 +1,69 @@ +{ + "_id": "S6LN7FcZz1i2jHQj", + "_key": "!actors!S6LN7FcZz1i2jHQj", + "name": "Michelle Chun, gentille couturière", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "esprit-animal", + "threat": 2, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "Couture" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Commerce" + }, + "spiritual": { + "value": 3, + "speciality": "Mythologie" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Esprit-araignée (louzing) Initiée. Couturière en apparence inoffensive, mais dangereux prédateur.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Mo_demon_basique.json b/packs-src/cde-npcs/Mo_demon_basique.json new file mode 100644 index 0000000..fade994 --- /dev/null +++ b/packs-src/cde-npcs/Mo_demon_basique.json @@ -0,0 +1,69 @@ +{ + "_id": "cPLaYDg6uI1XuThZ", + "_key": "!actors!cPLaYDg6uI1XuThZ", + "name": "Mo (démon basique)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 2, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "Poignard" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Intimidation" + }, + "spiritual": { + "value": 3, + "speciality": "" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Démon basique (mo) Initié. Créature des Enfers échappée dans le monde des vivants. Capacités : absorption de Yang (distance courte) ; arme (crocs/griffes) 2 ; immortalité ; peur (permanent) 2.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Mogwaai.json b/packs-src/cde-npcs/Mogwaai.json new file mode 100644 index 0000000..a217bf8 --- /dev/null +++ b/packs-src/cde-npcs/Mogwaai.json @@ -0,0 +1,69 @@ +{ + "_id": "phueAQD8QBesE5IP", + "_key": "!actors!phueAQD8QBesE5IP", + "name": "Mogwaai", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 1, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "Autorité" + }, + "spiritual": { + "value": 2, + "speciality": "Alchimie" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Petit démon (mogwaai) Apprenti. Créature malicieuse servant souvent de sbire à des jiugwaai plus puissants. Capacités : absorption de Yang (contact) ; arme (griffes) ; peur (action).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Ngogwai_spectre_affame.json b/packs-src/cde-npcs/Ngogwai_spectre_affame.json new file mode 100644 index 0000000..7cffdda --- /dev/null +++ b/packs-src/cde-npcs/Ngogwai_spectre_affame.json @@ -0,0 +1,69 @@ +{ + "_id": "u3ssdy3dXYpglToU", + "_key": "!actors!u3ssdy3dXYpglToU", + "name": "Ngogwai (spectre affamé)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "fantome", + "threat": 1, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "Surin" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 3, + "speciality": "Baratin" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Spectre affamé (ngogwai) Apprenti. Âme condamnée à errer, rongée par la faim de Yang. Capacités : absorption de Yang (contact) ; intangibilité ; peur (action).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Paul_Fei.json b/packs-src/cde-npcs/Paul_Fei.json new file mode 100644 index 0000000..e8b1e6c --- /dev/null +++ b/packs-src/cde-npcs/Paul_Fei.json @@ -0,0 +1,69 @@ +{ + "_id": "nj5HVe2TK5B9xxR7", + "_key": "!actors!nj5HVe2TK5B9xxR7", + "name": "Paul Fei", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "mortel", + "threat": 1, + "nuisance": 3, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "Bâton, Mains Nues" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 1, + "speciality": "" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 4, + "calcul": 4, + "note": "" + }, + "description": "

Allié Apprenti — scénario. Pratique Le Bâton de la Double-peau de Tigre (Le tigre mord deux fois, Briser le crâne du tigre).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Peijau_bete_ailee.json b/packs-src/cde-npcs/Peijau_bete_ailee.json new file mode 100644 index 0000000..b9a340a --- /dev/null +++ b/packs-src/cde-npcs/Peijau_bete_ailee.json @@ -0,0 +1,69 @@ +{ + "_id": "dVqVEap03syc9tq2", + "_key": "!actors!dVqVEap03syc9tq2", + "name": "Peijau (bête ailée)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 2, + "nuisance": 2, + "initiative": 14, + "anti_initiative": 20, + "aptitudes": { + "physical": { + "value": 4, + "speciality": "Vol" + }, + "martial": { + "value": 2, + "speciality": "Griffes" + }, + "mental": { + "value": 1, + "speciality": "Perception" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 16, + "calcul": 16, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Bête ailée démoniaque (peijau) Initié. Prédateur volant massif, terreur du ciel. Capacités : arme (griffes et morsure) 3 ; peur (action) 2 ; régénération 2.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Phil_Mok_fantome_errant.json b/packs-src/cde-npcs/Phil_Mok_fantome_errant.json new file mode 100644 index 0000000..763b294 --- /dev/null +++ b/packs-src/cde-npcs/Phil_Mok_fantome_errant.json @@ -0,0 +1,69 @@ +{ + "_id": "9CRYTLZ8mKD3r9vS", + "_key": "!actors!9CRYTLZ8mKD3r9vS", + "name": "Phil Mok, fantôme errant", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "fantome", + "threat": 1, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "Discrétion" + }, + "martial": { + "value": 1, + "speciality": "Poignard" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 3, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "Histoire de fantômes" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Gamzing (fantôme revanchard) Apprenti. Fantôme errant lié à Tony Meng, le gamzing maléfique qui hante sa cave.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Pui_Gan_petit_parrain.json b/packs-src/cde-npcs/Pui_Gan_petit_parrain.json new file mode 100644 index 0000000..8275a14 --- /dev/null +++ b/packs-src/cde-npcs/Pui_Gan_petit_parrain.json @@ -0,0 +1,69 @@ +{ + "_id": "5cjWTpSNYAb8tXsL", + "_key": "!actors!5cjWTpSNYAb8tXsL", + "name": "Pui Gan, petit parrain", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "esprit-animal", + "threat": 2, + "nuisance": 4, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 3, + "speciality": "Économie, Connaissance du milieu criminel" + }, + "social": { + "value": 3, + "speciality": "Négociation" + }, + "spiritual": { + "value": 2, + "speciality": "Mythologie" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Esprit-cochon (zyuzing) Initié/Boss. Parrain du crime surnaturel, habile négociateur et manipulateur.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Ruby_Jin_Jin_star_de_la_pop.json b/packs-src/cde-npcs/Ruby_Jin_Jin_star_de_la_pop.json new file mode 100644 index 0000000..bc3bd70 --- /dev/null +++ b/packs-src/cde-npcs/Ruby_Jin_Jin_star_de_la_pop.json @@ -0,0 +1,69 @@ +{ + "_id": "Cba6AI6uEzOlag4A", + "_key": "!actors!Cba6AI6uEzOlag4A", + "name": "Ruby Jin Jin, star de la pop", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "dieu", + "threat": 3, + "nuisance": 2, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Danse" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 4, + "speciality": "Chant" + }, + "spiritual": { + "value": 3, + "speciality": "Monde céleste" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Fée céleste (tinneoi) Accomplie. Pop star mystérieuse qui se produit à Hong Kong et aide discrètement les fat si. Capacités : don inné (Séduction) ; protection (aura céleste) +4 ; régénération 4.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Scott_Zang_explorateur_urbain.json b/packs-src/cde-npcs/Scott_Zang_explorateur_urbain.json new file mode 100644 index 0000000..825bcb7 --- /dev/null +++ b/packs-src/cde-npcs/Scott_Zang_explorateur_urbain.json @@ -0,0 +1,69 @@ +{ + "_id": "rjyebC6fMDuwPvcm", + "_key": "!actors!rjyebC6fMDuwPvcm", + "name": "Scott Zang, explorateur urbain", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "esprit-animal", + "threat": 2, + "nuisance": 2, + "initiative": 12, + "anti_initiative": 21, + "aptitudes": { + "physical": { + "value": 3, + "speciality": "Urbex, Parkour" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 2, + "speciality": "Connaissance du cadastre" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 3, + "speciality": "Mythologie" + } + }, + "vitality": { + "value": 12, + "calcul": 12, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Esprit-rat (syuzing) Initié. Explorateur urbain qui connaît chaque recoin de la ville.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Sonia_Tsui_hackeuse_agoraphobe.json b/packs-src/cde-npcs/Sonia_Tsui_hackeuse_agoraphobe.json new file mode 100644 index 0000000..68feca9 --- /dev/null +++ b/packs-src/cde-npcs/Sonia_Tsui_hackeuse_agoraphobe.json @@ -0,0 +1,69 @@ +{ + "_id": "IfGFbXhsGkUchE5u", + "_key": "!actors!IfGFbXhsGkUchE5u", + "name": "Sonia Tsui, hackeuse agoraphobe", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "esprit-animal", + "threat": 1, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "Natation" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 3, + "speciality": "Informatique" + }, + "social": { + "value": 1, + "speciality": "Réseaux sociaux" + }, + "spiritual": { + "value": 3, + "speciality": "Mythologie" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Esprit-crevette Apprentie. Hackeuse recluse vivant dans son appartement, redoutable dans le cyberespace.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Susan_Chow_culturiste_amateure.json b/packs-src/cde-npcs/Susan_Chow_culturiste_amateure.json new file mode 100644 index 0000000..faec7e1 --- /dev/null +++ b/packs-src/cde-npcs/Susan_Chow_culturiste_amateure.json @@ -0,0 +1,69 @@ +{ + "_id": "mcRdZybIvf7empYb", + "_key": "!actors!mcRdZybIvf7empYb", + "name": "Susan Chow, culturiste amateure", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "esprit-animal", + "threat": 4, + "nuisance": 2, + "initiative": 14, + "anti_initiative": 20, + "aptitudes": { + "physical": { + "value": 4, + "speciality": "Musculation" + }, + "martial": { + "value": 2, + "speciality": "Mains Nues" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "Mythologie" + } + }, + "vitality": { + "value": 16, + "calcul": 16, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Esprit-buffle (seoingauzing) Renommée. Culturiste imposante qui pratique le Seot Gaau (Briser le flux).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Taotie_tetes_volantes.json b/packs-src/cde-npcs/Taotie_tetes_volantes.json new file mode 100644 index 0000000..37ad38a --- /dev/null +++ b/packs-src/cde-npcs/Taotie_tetes_volantes.json @@ -0,0 +1,69 @@ +{ + "_id": "TeSKf4HhtefN6eUO", + "_key": "!actors!TeSKf4HhtefN6eUO", + "name": "Taotie (têtes volantes)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 1, + "nuisance": 1, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "Vol" + }, + "martial": { + "value": 1, + "speciality": "Morsure" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 3, + "speciality": "Ci Jau" + } + }, + "vitality": { + "value": 20, + "calcul": 20, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Têtes volantes (taotie) Sbire. Têtes décapitées animées par une énergie malveillante, utilisées en essaims. Immortalité ; Absorption de Yang (contact) ; peur (permanent).

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Tony_Meng_assoiffe_de_sang.json b/packs-src/cde-npcs/Tony_Meng_assoiffe_de_sang.json new file mode 100644 index 0000000..2e987f9 --- /dev/null +++ b/packs-src/cde-npcs/Tony_Meng_assoiffe_de_sang.json @@ -0,0 +1,69 @@ +{ + "_id": "nHDNm1XjphjKkCiP", + "_key": "!actors!nHDNm1XjphjKkCiP", + "name": "Tony Meng, assoiffé de sang", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "fantome", + "threat": 2, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "Poignard" + }, + "mental": { + "value": 2, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Intimidation" + }, + "spiritual": { + "value": 3, + "speciality": "" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Gamzing (fantôme revanchard) Initié. Ancien tueur devenu fantôme maléfique. Pratique le Jeet Kune Do (Le poing qui intercepte, Briser le rythme). Capacités : absorption de Yang 3 ; intangibilité ; peur (permanent) 3 ; possession 3 ; régénération 2.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Waanjing_Apprenti.json b/packs-src/cde-npcs/Waanjing_Apprenti.json new file mode 100644 index 0000000..5584156 --- /dev/null +++ b/packs-src/cde-npcs/Waanjing_Apprenti.json @@ -0,0 +1,69 @@ +{ + "_id": "UawVI5WvJYTiAvWc", + "_key": "!actors!UawVI5WvJYTiAvWc", + "name": "Waanjing (Apprenti)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "fantome", + "threat": 1, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "Skate" + }, + "martial": { + "value": 1, + "speciality": "" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 2, + "speciality": "Manipulation" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Fantôme (waanjing) Apprenti. Fantôme moderne ancré dans les habitudes de sa vie passée. Capacités : intangibilité ; possession ; régénération.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Waanjing_Initie.json b/packs-src/cde-npcs/Waanjing_Initie.json new file mode 100644 index 0000000..42a65be --- /dev/null +++ b/packs-src/cde-npcs/Waanjing_Initie.json @@ -0,0 +1,69 @@ +{ + "_id": "eg7nSF3p8bAfoGgP", + "_key": "!actors!eg7nSF3p8bAfoGgP", + "name": "Waanjing (Initié)", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "fantome", + "threat": 2, + "nuisance": 2, + "initiative": 8, + "anti_initiative": 23, + "aptitudes": { + "physical": { + "value": 1, + "speciality": "" + }, + "martial": { + "value": 2, + "speciality": "Épée" + }, + "mental": { + "value": 2, + "speciality": "Histoire" + }, + "social": { + "value": 2, + "speciality": "Commerce" + }, + "spiritual": { + "value": 3, + "speciality": "Mei" + } + }, + "vitality": { + "value": 4, + "calcul": 4, + "note": "" + }, + "hei": { + "value": 12, + "calcul": 12, + "note": "" + }, + "description": "

Fantôme (waanjing) Initié. Pratique l'Épée du Faîte suprême. Capacités : absorption de Yang (distance courte) ; intangibilité ; peur (permanent) ; possession ; régénération.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-npcs/Zoeng_singe_revanchard.json b/packs-src/cde-npcs/Zoeng_singe_revanchard.json new file mode 100644 index 0000000..311892a --- /dev/null +++ b/packs-src/cde-npcs/Zoeng_singe_revanchard.json @@ -0,0 +1,69 @@ +{ + "_id": "oJoQJY0MHfDmkfH5", + "_key": "!actors!oJoQJY0MHfDmkfH5", + "name": "Zoeng, singe revanchard", + "type": "npc", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-npc.svg", + "system": { + "type": "demon", + "threat": 1, + "nuisance": 2, + "initiative": 10, + "anti_initiative": 22, + "aptitudes": { + "physical": { + "value": 2, + "speciality": "Acrobaties" + }, + "martial": { + "value": 2, + "speciality": "" + }, + "mental": { + "value": 1, + "speciality": "" + }, + "social": { + "value": 1, + "speciality": "" + }, + "spiritual": { + "value": 2, + "speciality": "" + } + }, + "vitality": { + "value": 8, + "calcul": 8, + "note": "" + }, + "hei": { + "value": 8, + "calcul": 8, + "note": "" + }, + "description": "

Cimei (démon des forêts) Apprenti. Vieux singe démoniaque du Sai Kung Country Park, irritable et territorial. Capacités : arme (canines) 2 ; peur (permanent) 2 ; protection (corps de bois) +2 ; régénération 2.

", + "prefs": { + "typeofthrow": { + "check": false, + "choice": "0" + } + } + }, + "items": [], + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Arc___Arbalète.json b/packs-src/cde-weapons/weapon_Arc___Arbalète.json new file mode 100644 index 0000000..ef4d59d --- /dev/null +++ b/packs-src/cde-weapons/weapon_Arc___Arbalète.json @@ -0,0 +1,35 @@ +{ + "_id": "HV4YtU9n7dAyK398", + "_key": "!items!HV4YtU9n7dAyK398", + "name": "Arc / Arbalète", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Arme de tir traditionnelle. Le fusil de chasse et le sniper sont les seules armes permettant d'attaquer sans être identifié.

", + "weaponType": "ranged", + "material": "", + "damageAspect": "terre", + "damageBase": 1, + "range": "longue", + "obtainLevel": 2, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Arme_lourde_fusil_d'assaut_lance-roquette.json b/packs-src/cde-weapons/weapon_Arme_lourde_fusil_d'assaut_lance-roquette.json new file mode 100644 index 0000000..bb407c0 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Arme_lourde_fusil_d'assaut_lance-roquette.json @@ -0,0 +1,35 @@ +{ + "_id": "uOpWyMGK3oiUJ1Sl", + "_key": "!items!uOpWyMGK3oiUJ1Sl", + "name": "Arme lourde (fusil d'assaut, lance-roquette…)", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Armement militaire lourd : fusil d'assaut, lance-roquette, lance-flammes, pistolet mitrailleur. Pratiquement inaccessible hors connexions militaires.

", + "weaponType": "firearm", + "material": "", + "damageAspect": "feu", + "damageBase": 1, + "range": "longue", + "obtainLevel": 5, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Arme_à_feu_de_collection.json b/packs-src/cde-weapons/weapon_Arme_à_feu_de_collection.json new file mode 100644 index 0000000..ccbfb52 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Arme_à_feu_de_collection.json @@ -0,0 +1,35 @@ +{ + "_id": "J0r37NfFLlKJf6Pz", + "_key": "!items!J0r37NfFLlKJf6Pz", + "name": "Arme à feu de collection", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Pistolet ou revolver ancien à valeur de collection. Légalement plus facile à acquérir mais potentiellement moins fiable.

", + "weaponType": "firearm", + "material": "", + "damageAspect": "feu", + "damageBase": 1, + "range": "longue", + "obtainLevel": 2, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Bâton___Nunchaku___Triple-bâton.json b/packs-src/cde-weapons/weapon_Bâton___Nunchaku___Triple-bâton.json new file mode 100644 index 0000000..9cb1103 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Bâton___Nunchaku___Triple-bâton.json @@ -0,0 +1,35 @@ +{ + "_id": "G8PyCK1o2081123d", + "_key": "!items!G8PyCK1o2081123d", + "name": "Bâton / Nunchaku / Triple-bâton", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Armes de kung-fu traditionnelles en bois. Idéales pour les pratiquants d'arts martiaux.

", + "weaponType": "melee", + "material": "", + "damageAspect": "bois", + "damageBase": 1, + "range": "contact", + "obtainLevel": 1, + "obtainDifficulty": 2, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Dard___Bille___Shuriken.json b/packs-src/cde-weapons/weapon_Dard___Bille___Shuriken.json new file mode 100644 index 0000000..5113c7b --- /dev/null +++ b/packs-src/cde-weapons/weapon_Dard___Bille___Shuriken.json @@ -0,0 +1,35 @@ +{ + "_id": "CuWCEIWIHEZsDGNB", + "_key": "!items!CuWCEIWIHEZsDGNB", + "name": "Dard / Bille / Shuriken", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Projectiles légers lancés à la main. Inclut dards, billes de jade et shuriken.

", + "weaponType": "thrown", + "material": "", + "damageAspect": "eau", + "damageBase": 1, + "range": "mediane", + "obtainLevel": 2, + "obtainDifficulty": 2, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Fusil_de_chasse.json b/packs-src/cde-weapons/weapon_Fusil_de_chasse.json new file mode 100644 index 0000000..b5e6968 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Fusil_de_chasse.json @@ -0,0 +1,35 @@ +{ + "_id": "LnG1x54lAS8R3Vz9", + "_key": "!items!LnG1x54lAS8R3Vz9", + "name": "Fusil de chasse", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Fusil à canon long, portée extrême. Permet d'attaquer une cible à grande distance sans être vu ni identifié. Silencieux possible.

", + "weaponType": "firearm", + "material": "", + "damageAspect": "feu", + "damageBase": 1, + "range": "extreme", + "obtainLevel": 2, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Fusil_de_sniper.json b/packs-src/cde-weapons/weapon_Fusil_de_sniper.json new file mode 100644 index 0000000..8512eb3 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Fusil_de_sniper.json @@ -0,0 +1,35 @@ +{ + "_id": "87mJevuuInlENkSf", + "_key": "!items!87mJevuuInlENkSf", + "name": "Fusil de sniper", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Fusil de précision à très longue portée. Permet d'attaquer sans être vu ni identifié. Silencieux possible.

", + "weaponType": "firearm", + "material": "", + "damageAspect": "feu", + "damageBase": 1, + "range": "extreme", + "obtainLevel": 3, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Fusil_à_pompe.json b/packs-src/cde-weapons/weapon_Fusil_à_pompe.json new file mode 100644 index 0000000..0610e74 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Fusil_à_pompe.json @@ -0,0 +1,35 @@ +{ + "_id": "ndDMMkQeCnU2OP2r", + "_key": "!items!ndDMMkQeCnU2OP2r", + "name": "Fusil à pompe", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Arme à feu à courte portée mais à fort impact. Idéale pour les combats en espace réduit.

", + "weaponType": "firearm", + "material": "", + "damageAspect": "feu", + "damageBase": 1, + "range": "mediane", + "obtainLevel": 2, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Gourdin___Massue___Matraque.json b/packs-src/cde-weapons/weapon_Gourdin___Massue___Matraque.json new file mode 100644 index 0000000..23e80e7 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Gourdin___Massue___Matraque.json @@ -0,0 +1,35 @@ +{ + "_id": "2kxyxh6oL21TWu4t", + "_key": "!items!2kxyxh6oL21TWu4t", + "name": "Gourdin / Massue / Matraque", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Arme contondante polyvalente. Comprend les matraques, masses et gourdins.

", + "weaponType": "melee", + "material": "", + "damageAspect": "bois", + "damageBase": 1, + "range": "contact", + "obtainLevel": 1, + "obtainDifficulty": 2, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Grenade.json b/packs-src/cde-weapons/weapon_Grenade.json new file mode 100644 index 0000000..bce2624 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Grenade.json @@ -0,0 +1,35 @@ +{ + "_id": "YFRPciLxfoO98w0p", + "_key": "!items!YFRPciLxfoO98w0p", + "name": "Grenade", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Grenade offensive ou défensive. L'explosion couvre une aire équivalente à la distance médiane (extensible à longue ou réduite à courte avec 2 dés-fastes).

", + "weaponType": "thrown", + "material": "", + "damageAspect": "feu", + "damageBase": 1, + "range": "mediane", + "obtainLevel": 3, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Lance___Trident___Hallebarde_chinoise.json b/packs-src/cde-weapons/weapon_Lance___Trident___Hallebarde_chinoise.json new file mode 100644 index 0000000..164968a --- /dev/null +++ b/packs-src/cde-weapons/weapon_Lance___Trident___Hallebarde_chinoise.json @@ -0,0 +1,35 @@ +{ + "_id": "bIgVZvXIAXQYwevR", + "_key": "!items!bIgVZvXIAXQYwevR", + "name": "Lance / Trident / Hallebarde chinoise", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Armes d'hast chinoises traditionnelles. Longue portée au contact, idéales pour tenir les adversaires à distance.

", + "weaponType": "melee", + "material": "", + "damageAspect": "metal", + "damageBase": 1, + "range": "contact", + "obtainLevel": 2, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Pistolet_petit_et_gros_calibre.json b/packs-src/cde-weapons/weapon_Pistolet_petit_et_gros_calibre.json new file mode 100644 index 0000000..f6ff1f1 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Pistolet_petit_et_gros_calibre.json @@ -0,0 +1,35 @@ +{ + "_id": "hEci6FZT3Ps9unNl", + "_key": "!items!hEci6FZT3Ps9unNl", + "name": "Pistolet (petit et gros calibre)", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Pistolet semi-automatique ou revolver. La législation de Hong Kong impose un permis. Peut être équipé d'un silencieux (niveau d'obtention +1).

", + "weaponType": "firearm", + "material": "", + "damageAspect": "feu", + "damageBase": 1, + "range": "longue", + "obtainLevel": 1, + "obtainDifficulty": 2, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Poignard___Dague___Hachette.json b/packs-src/cde-weapons/weapon_Poignard___Dague___Hachette.json new file mode 100644 index 0000000..defdfce --- /dev/null +++ b/packs-src/cde-weapons/weapon_Poignard___Dague___Hachette.json @@ -0,0 +1,35 @@ +{ + "_id": "NYsO41Wbl38tWtXn", + "_key": "!items!NYsO41Wbl38tWtXn", + "name": "Poignard / Dague / Hachette", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Lame courte ou hachette. Peut être lancée à distance médiane.

", + "weaponType": "melee", + "material": "", + "damageAspect": "metal", + "damageBase": 1, + "range": "mediane", + "obtainLevel": 1, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Épée___Sabre.json b/packs-src/cde-weapons/weapon_Épée___Sabre.json new file mode 100644 index 0000000..bb3a2f2 --- /dev/null +++ b/packs-src/cde-weapons/weapon_Épée___Sabre.json @@ -0,0 +1,35 @@ +{ + "_id": "2IYbyCPF9LJojzsj", + "_key": "!items!2IYbyCPF9LJojzsj", + "name": "Épée / Sabre", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Lame longue, inclut jian (épée droite), dao (sabre), katana et autres lames orientales.

", + "weaponType": "melee", + "material": "", + "damageAspect": "metal", + "damageBase": 1, + "range": "contact", + "obtainLevel": 2, + "obtainDifficulty": 2, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs-src/cde-weapons/weapon_Épée_de_saule.json b/packs-src/cde-weapons/weapon_Épée_de_saule.json new file mode 100644 index 0000000..bdc0bef --- /dev/null +++ b/packs-src/cde-weapons/weapon_Épée_de_saule.json @@ -0,0 +1,35 @@ +{ + "_id": "A2pJ48fWhGeCDawD", + "_key": "!items!A2pJ48fWhGeCDawD", + "name": "Épée de saule", + "type": "weapon", + "img": "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + "system": { + "reference": "", + "description": "

Épée en bois utilisée pour l'entraînement ou à usage rituel. Bois sacré potentiellement efficace contre les esprits.

", + "weaponType": "melee", + "material": "", + "damageAspect": "bois", + "damageBase": 1, + "range": "contact", + "obtainLevel": 2, + "obtainDifficulty": 3, + "quantity": 1, + "notes": "" + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0 + }, + "flags": {}, + "_stats": { + "systemId": "fvtt-chroniques-de-l-etrange", + "systemVersion": "13.0.0", + "coreVersion": "13", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + } +} \ No newline at end of file diff --git a/packs/cde-armors/LOG b/packs/cde-armors/LOG index 3d02ad7..55761cd 100644 --- a/packs/cde-armors/LOG +++ b/packs/cde-armors/LOG @@ -1,5 +1,5 @@ -2026/03/31-21:11:06.680660 7f6053fff6c0 Delete type=3 #1 -2026/03/31-21:11:06.683477 7f6052ffd6c0 Level-0 table #5: started -2026/03/31-21:11:06.688560 7f6052ffd6c0 Level-0 table #5: 1330 bytes OK -2026/03/31-21:11:06.699293 7f6052ffd6c0 Delete type=0 #3 -2026/03/31-21:11:06.699437 7f6052ffd6c0 Manual compaction at level-0 from '!items!3aig6MWvZCRoWXPW' @ 72057594037927935 : 1 .. '!items!cXaQG1TBE0jzrbNt' @ 0 : 0; will stop at (end) +2026/03/31-22:58:15.366543 7fc9a1fee6c0 Delete type=3 #1 +2026/03/31-22:58:15.369466 7fc983fff6c0 Level-0 table #5: started +2026/03/31-22:58:15.372659 7fc983fff6c0 Level-0 table #5: 1330 bytes OK +2026/03/31-22:58:15.379486 7fc983fff6c0 Delete type=0 #3 +2026/03/31-22:58:15.379631 7fc983fff6c0 Manual compaction at level-0 from '!items!3aig6MWvZCRoWXPW' @ 72057594037927935 : 1 .. '!items!cXaQG1TBE0jzrbNt' @ 0 : 0; will stop at (end) diff --git a/packs/cde-ingredients/LOG b/packs/cde-ingredients/LOG index e60e5ad..29405a0 100644 --- a/packs/cde-ingredients/LOG +++ b/packs/cde-ingredients/LOG @@ -1,5 +1,5 @@ -2026/03/31-21:11:06.721994 7f60537fe6c0 Delete type=3 #1 -2026/03/31-21:11:06.723522 7f6052ffd6c0 Level-0 table #5: started -2026/03/31-21:11:06.730027 7f6052ffd6c0 Level-0 table #5: 5923 bytes OK -2026/03/31-21:11:06.742089 7f6052ffd6c0 Delete type=0 #3 -2026/03/31-21:11:06.742334 7f6052ffd6c0 Manual compaction at level-0 from '!items!0NDBw1YB54q3hLH0' @ 72057594037927935 : 1 .. '!items!ykekdZlirabRobEF' @ 0 : 0; will stop at (end) +2026/03/31-22:58:15.396550 7fc9a1fee6c0 Delete type=3 #1 +2026/03/31-22:58:15.397820 7fc983fff6c0 Level-0 table #5: started +2026/03/31-22:58:15.401078 7fc983fff6c0 Level-0 table #5: 5923 bytes OK +2026/03/31-22:58:15.408201 7fc983fff6c0 Delete type=0 #3 +2026/03/31-22:58:15.408355 7fc983fff6c0 Manual compaction at level-0 from '!items!0NDBw1YB54q3hLH0' @ 72057594037927935 : 1 .. '!items!ykekdZlirabRobEF' @ 0 : 0; will stop at (end) diff --git a/packs/cde-items/LOG b/packs/cde-items/LOG index cfcb530..d3541af 100644 --- a/packs/cde-items/LOG +++ b/packs/cde-items/LOG @@ -1,5 +1,5 @@ -2026/03/31-21:11:06.765068 7f60a17ff6c0 Delete type=3 #1 -2026/03/31-21:11:06.766165 7f6052ffd6c0 Level-0 table #5: started -2026/03/31-21:11:06.771530 7f6052ffd6c0 Level-0 table #5: 559 bytes OK -2026/03/31-21:11:06.782100 7f6052ffd6c0 Delete type=0 #3 -2026/03/31-21:11:06.782207 7f6052ffd6c0 Manual compaction at level-0 from '!items!HKq5ANSGiBIdcnki' @ 72057594037927935 : 1 .. '!items!HKq5ANSGiBIdcnki' @ 0 : 0; will stop at (end) +2026/03/31-22:58:15.422547 7fc9a0fec6c0 Delete type=3 #1 +2026/03/31-22:58:15.423307 7fc983fff6c0 Level-0 table #5: started +2026/03/31-22:58:15.426406 7fc983fff6c0 Level-0 table #5: 559 bytes OK +2026/03/31-22:58:15.432970 7fc983fff6c0 Delete type=0 #3 +2026/03/31-22:58:15.433101 7fc983fff6c0 Manual compaction at level-0 from '!items!HKq5ANSGiBIdcnki' @ 72057594037927935 : 1 .. '!items!HKq5ANSGiBIdcnki' @ 0 : 0; will stop at (end) diff --git a/packs/cde-kungfus/LOG b/packs/cde-kungfus/LOG index 4bafeef..ef2de28 100644 --- a/packs/cde-kungfus/LOG +++ b/packs/cde-kungfus/LOG @@ -1,5 +1,5 @@ -2026/03/31-21:11:06.806125 7f6053fff6c0 Delete type=3 #1 -2026/03/31-21:11:06.808115 7f6052ffd6c0 Level-0 table #5: started -2026/03/31-21:11:06.813892 7f6052ffd6c0 Level-0 table #5: 35713 bytes OK -2026/03/31-21:11:06.826088 7f6052ffd6c0 Delete type=0 #3 -2026/03/31-21:11:06.826329 7f6052ffd6c0 Manual compaction at level-0 from '!items!2nKXEHLG0fXtSOdy' @ 72057594037927935 : 1 .. '!items!tlIc1bmIAbQeUwj7' @ 0 : 0; will stop at (end) +2026/03/31-22:58:15.450200 7fc9a0fec6c0 Delete type=3 #1 +2026/03/31-22:58:15.451644 7fc983fff6c0 Level-0 table #5: started +2026/03/31-22:58:15.455369 7fc983fff6c0 Level-0 table #5: 35713 bytes OK +2026/03/31-22:58:15.462125 7fc983fff6c0 Delete type=0 #3 +2026/03/31-22:58:15.462243 7fc983fff6c0 Manual compaction at level-0 from '!items!2nKXEHLG0fXtSOdy' @ 72057594037927935 : 1 .. '!items!tlIc1bmIAbQeUwj7' @ 0 : 0; will stop at (end) diff --git a/packs/cde-npcs/000005.ldb b/packs/cde-npcs/000005.ldb index 2a84a7b4bdb04b6763ca3d555e0a9d4ec65f7744..cbdd163031b9908357de432f71641c99cc95fe4b 100644 GIT binary patch literal 21473 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 diff --git a/packs/cde-npcs/LOG b/packs/cde-npcs/LOG index 7ad33b9..587202f 100644 --- a/packs/cde-npcs/LOG +++ b/packs/cde-npcs/LOG @@ -1,5 +1,5 @@ -2026/03/31-21:11:06.848585 7f60a17ff6c0 Delete type=3 #1 -2026/03/31-21:11:06.849499 7f6052ffd6c0 Level-0 table #5: started -2026/03/31-21:11:06.856312 7f6052ffd6c0 Level-0 table #5: 730 bytes OK -2026/03/31-21:11:06.865903 7f6052ffd6c0 Delete type=0 #3 -2026/03/31-21:11:06.866055 7f6052ffd6c0 Manual compaction at level-0 from '!actors!8Mw2wZKUqlyXNB8i' @ 72057594037927935 : 1 .. '!actors!8Mw2wZKUqlyXNB8i' @ 0 : 0; will stop at (end) +2026/03/31-22:58:15.480087 7fc9a17ed6c0 Delete type=3 #1 +2026/03/31-22:58:15.481142 7fc983fff6c0 Level-0 table #5: started +2026/03/31-22:58:15.484612 7fc983fff6c0 Level-0 table #5: 21473 bytes OK +2026/03/31-22:58:15.490762 7fc983fff6c0 Delete type=0 #3 +2026/03/31-22:58:15.490900 7fc983fff6c0 Manual compaction at level-0 from '!actors!4ZjFZ1HoJV9mJStt' @ 72057594037927935 : 1 .. '!actors!zVpmacwoWEG8YTCQ' @ 0 : 0; will stop at (end) diff --git a/packs/cde-npcs/MANIFEST-000002 b/packs/cde-npcs/MANIFEST-000002 index b2b1db125d65761fc1990e60d5fc555a89727bb4..82a3e19f2c991f1e606d091142e8ee2c3d5f9e40 100644 GIT binary patch delta 94 zcmeBR>|~r^6u$iJx~l;Uj7%(?49sjShU`qN50^74C?+PC|mT=6lR_p+vm@~$i%|Qz|6+N$j-!ii&a4}F}Wnas94d$x7?^a$~&|$r!vCN O$s&`HkpT<{DgXc&7!~ON diff --git a/packs/cde-sanhei/LOG b/packs/cde-sanhei/LOG index 432e95e..b8c8dc9 100644 --- a/packs/cde-sanhei/LOG +++ b/packs/cde-sanhei/LOG @@ -1,5 +1,5 @@ -2026/03/31-21:11:06.888889 7f60a0ffe6c0 Delete type=3 #1 -2026/03/31-21:11:06.889866 7f6052ffd6c0 Level-0 table #5: started -2026/03/31-21:11:06.895354 7f6052ffd6c0 Level-0 table #5: 4830 bytes OK -2026/03/31-21:11:06.905174 7f6052ffd6c0 Delete type=0 #3 -2026/03/31-21:11:06.905349 7f6052ffd6c0 Manual compaction at level-0 from '!items!DC2kimCi9sWxqhXG' @ 72057594037927935 : 1 .. '!items!qzfAEhmvVxEMzm0k' @ 0 : 0; will stop at (end) +2026/03/31-22:58:15.506552 7fc9a0fec6c0 Delete type=3 #1 +2026/03/31-22:58:15.507171 7fc983fff6c0 Level-0 table #5: started +2026/03/31-22:58:15.510288 7fc983fff6c0 Level-0 table #5: 4830 bytes OK +2026/03/31-22:58:15.517698 7fc983fff6c0 Delete type=0 #3 +2026/03/31-22:58:15.517870 7fc983fff6c0 Manual compaction at level-0 from '!items!DC2kimCi9sWxqhXG' @ 72057594037927935 : 1 .. '!items!qzfAEhmvVxEMzm0k' @ 0 : 0; will stop at (end) diff --git a/packs/cde-spells/LOG b/packs/cde-spells/LOG index 1a24afc..bc49daf 100644 --- a/packs/cde-spells/LOG +++ b/packs/cde-spells/LOG @@ -1,5 +1,5 @@ -2026/03/31-21:11:06.935043 7f60a17ff6c0 Delete type=3 #1 -2026/03/31-21:11:06.937376 7f6052ffd6c0 Level-0 table #5: started -2026/03/31-21:11:06.946335 7f6052ffd6c0 Level-0 table #5: 128809 bytes OK -2026/03/31-21:11:06.957456 7f6052ffd6c0 Delete type=0 #3 -2026/03/31-21:11:06.957745 7f6052ffd6c0 Manual compaction at level-0 from '!items!2f51pcvFkcZjaxDk' @ 72057594037927935 : 1 .. '!items!yVN7PZw35iIaBl0H' @ 0 : 0; will stop at (end) +2026/03/31-22:58:15.535662 7fc9a27ef6c0 Delete type=3 #1 +2026/03/31-22:58:15.537652 7fc983fff6c0 Level-0 table #5: started +2026/03/31-22:58:15.542438 7fc983fff6c0 Level-0 table #5: 128809 bytes OK +2026/03/31-22:58:15.548587 7fc983fff6c0 Delete type=0 #3 +2026/03/31-22:58:15.548779 7fc983fff6c0 Manual compaction at level-0 from '!items!2f51pcvFkcZjaxDk' @ 72057594037927935 : 1 .. '!items!yVN7PZw35iIaBl0H' @ 0 : 0; will stop at (end) diff --git a/packs/cde-supernaturals/LOG b/packs/cde-supernaturals/LOG index ab98b60..3e15eb9 100644 --- a/packs/cde-supernaturals/LOG +++ b/packs/cde-supernaturals/LOG @@ -1,5 +1,5 @@ -2026/03/31-21:11:06.982144 7f60a0ffe6c0 Delete type=3 #1 -2026/03/31-21:11:06.983261 7f6052ffd6c0 Level-0 table #5: started -2026/03/31-21:11:06.988938 7f6052ffd6c0 Level-0 table #5: 8622 bytes OK -2026/03/31-21:11:06.997109 7f6052ffd6c0 Delete type=0 #3 -2026/03/31-21:11:06.997279 7f6052ffd6c0 Manual compaction at level-0 from '!items!APN91pQL0NBfZsG7' @ 72057594037927935 : 1 .. '!items!xxZKGqDVxAfr140W' @ 0 : 0; will stop at (end) +2026/03/31-22:58:15.565769 7fc9a17ed6c0 Delete type=3 #1 +2026/03/31-22:58:15.566638 7fc983fff6c0 Level-0 table #5: started +2026/03/31-22:58:15.569896 7fc983fff6c0 Level-0 table #5: 8622 bytes OK +2026/03/31-22:58:15.576614 7fc983fff6c0 Delete type=0 #3 +2026/03/31-22:58:15.576758 7fc983fff6c0 Manual compaction at level-0 from '!items!APN91pQL0NBfZsG7' @ 72057594037927935 : 1 .. '!items!xxZKGqDVxAfr140W' @ 0 : 0; will stop at (end) diff --git a/packs/cde-weapons/LOG b/packs/cde-weapons/LOG index d0183ff..e7158a6 100644 --- a/packs/cde-weapons/LOG +++ b/packs/cde-weapons/LOG @@ -1,5 +1,5 @@ -2026/03/31-21:11:07.020988 7f60a17ff6c0 Delete type=3 #1 -2026/03/31-21:11:07.022086 7f6052ffd6c0 Level-0 table #5: started -2026/03/31-21:11:07.026056 7f6052ffd6c0 Level-0 table #5: 4359 bytes OK -2026/03/31-21:11:07.039132 7f6052ffd6c0 Delete type=0 #3 -2026/03/31-21:11:07.039391 7f6052ffd6c0 Manual compaction at level-0 from '!items!2IYbyCPF9LJojzsj' @ 72057594037927935 : 1 .. '!items!uOpWyMGK3oiUJ1Sl' @ 0 : 0; will stop at (end) +2026/03/31-22:58:15.592864 7fc9a27ef6c0 Delete type=3 #1 +2026/03/31-22:58:15.593820 7fc983fff6c0 Level-0 table #5: started +2026/03/31-22:58:15.597667 7fc983fff6c0 Level-0 table #5: 4359 bytes OK +2026/03/31-22:58:15.604189 7fc983fff6c0 Delete type=0 #3 +2026/03/31-22:58:15.604352 7fc983fff6c0 Manual compaction at level-0 from '!items!2IYbyCPF9LJojzsj' @ 72057594037927935 : 1 .. '!items!uOpWyMGK3oiUJ1Sl' @ 0 : 0; will stop at (end) diff --git a/spells_full.txt b/spells_full.txt new file mode 100644 index 0000000..9771b41 --- /dev/null +++ b/spells_full.txt @@ -0,0 +1,9772 @@ + a g i e + la m + + 1 0 + p i tre +cha + La magie que maîtrisent les fat si est l’un +des aspects essentiels de Hong Kong – Les +Chroniques de l’Étrange – dont l’univers baigne +dans l’occulte et le surnaturel. + Ce chapitre détaille les règles qui gouvernent +l’usage des diverses magies dont peuvent dispo- +ser les PJ. + + + + + « Un plumeau taoïste à la main, + j’entamai une suite de mouvements + martiaux afin de symboliser le combat + du dieu de la guerre Gwaan Dai contre + les forces maléfiques. Mes gestes + enroulaient des volutes de poussière + autour du chasse-mouches jusqu’à ce + que d’épaisses spirales entourent l’objet. + Classique instrument d’exorcisme, le + plumeau possède le pouvoir d’expulser + les flux néfastes comme une nuée + d’insectes indésirables. Afin que mon + rituel de purification soit complet, je + devais cependant concentrer toute + cette énergie Yin et ne pas en laisser + une seule bribe m’échapper. Cela me + demandait un effort considérable mais la + nature même de ma magie me facilitait + quelque peu cette tâche. Mes sens + mystiques évaluaient avec exactitude la + quantité de force négative qu’il me restait + à accumuler autour de mon plumeau afin + de nettoyer l’établissement de Pui Gan. + J’injectais en continu mon propre hei + dans le chasse-mouches sans cesser ma + danse martiale – devenant en quelque + sorte un aimant à énergie Yin. » + — La Résurrection du Dragon + + + + 285 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + PrincipeS gÉNÉraux + Bien que les magies disponibles dans Hong Lorsqu’un PJ possède une Compétence ma- + Kong – Les Chroniques de l’Étrange soient di- gique sans y disposer de Spécialité, il n’en a + verses et variées, il existe des principes géné- alors qu’une connaissance théorique et ne peut + raux qui s’appliquent à toutes et permettent de pas lancer de sorts. Il peut toutefois s’en servir + les gérer de façon unifiée – dans un souci de afin d’accéder au savoir ésotérique qui y cor- + simplicité ludique et afin de privilégier comme respond – et ainsi obtenir réponse à certains + toujours le dynamisme des parties et l’ambiance mystères. + autour de la table. Dès lors qu’il possède une Spécialité au sein + d’une Compétence magique, le PJ est alors ca- + pable de produire les effets de cette magie par- + QUESTION DE SÉMANTIQUE ticulière – sans restriction – et donc d’effectuer + Dans ce chapitre, nous utilisons généralement la des jets de magie pour lancer des sorts. + dénomination « sort » pour désigner les divers effets 怪 Cinabre interne (Métal) comprend : + des magies. Il s’agit d’un choix permettant d’unifier le Essence, Esprit, Purification, Manipulation, + vocabulaire dans un souci de confort pour le lecteur. Aura. + Mais pour les fat si, le terme « sort » n’est que l’une 怪 Alchimie (Eau) comprend : Acupuncture, + des façons dont on peut nommer les effets de leurs Élixirs, Poisons, Arsenal, Philtres. + multiples techniques mystiques. Ainsi, cette appellation 怪 Maîtrise de la Voie (Terre) comprend : + désigne aussi bien un enchantement, une malédiction, Malédiction, Transfiguration, Nécromancie, + un rituel, un charme que divers autres types de magies. Maîtrise climatique, Magie d’or. + 怪 Exorcisme (Feu) comprend : Invocation, + Traque, Protection, Punition, Domination. + 怪 Géomancie (Bois) comprend : + Neutralisation, Divination, Prière terrestre, + CompÉtences et Prière céleste, Fungseoi. + + SpÉCIALITÉs Chaque Compétence magique est liée à un + Aspect – correspondant à celui qui est utilisé + Il existe cinq Compétences magiques, elles- pour effectuer les jets de magie. Un fat si ne + mêmes subdivisées en cinq Spécialités qui repré- peut lancer que les sorts correspondant à une + sentent le large éventail de ce qu’un fat si peut Spécialité dont il dispose. + maîtriser – même si la plupart ont tendance à Si chaque Compétence est liée à un Aspect, il + se focaliser sur une ou deux Compétences (cf en est de même pour chaque Spécialité : chacune + p. 198). d’elles est en relation avec un Aspect spécifique + + + DÉCRIVEZ ! + Comme pour le combat, la magie dans Hong Kong – Les Chroniques de l’Étrange fait appel à diverses notions + techniques. Effectuer le jet de Compétence, dépenser les points de Hei, répartir la Puissance entre les différents + Effets… Tout cela fait courir le risque d’une perte d’implication des joueurs vis-à-vis de l’ambiance de la partie + – au moment même où c’est le cœur du jeu qui est mis en scène ! + Comme d’habitude donc, la solution est de décrire ce qui se passe, de traduire les éléments techniques en termes + cinématographiques. Les règles de magie fournissent notamment les Composantes comme vecteur idéal à cet effet : + si les joueurs décrivent la façon dont leurs PJ lancent les sorts, la manière dont ils utilisent les éléments matériels + à leur disposition, les gestes qu’ils doivent accomplir ou les paroles à prononcer : cela renforce grandement l’inter- + prétation. Mais ce n’est pas tout ! Presque chaque magie recèle un potentiel spectaculaire qu’il ne faut pas hésiter + à mettre en avant. Par sa maîtrise de l’énergie, un PJ est capable d’exploits physiques dignes des meilleurs films + d’action. En invoquant une arme divine, un exorciste fait apparaître un artefact céleste crépitant d’un hei d’une + grande pureté. Prier un dieu terrestre permet d’introduire un PNJ qui peut s’avérer marquant (imaginez une vieille + gardienne d’immeuble acariâtre, cigarette au bec, en divinité protectrice d’une résidence…). La préparation d’une + potion dans un laboratoire d’alchimie introduit toute la pharmacopée chinoise. Un fat si qui déclenche une tempête + par une simple incantation est un spectacle impressionnant. Les possibilités ne manquent pas ! + La magie des fat si est multiple, malléable, mais elle est surtout extraordinaire. Cette dimension doit ressortir + durant les scènes où elle est utilisée par les PJ. C’est ainsi que la partie ressemblera aux meilleurs films du genre +286 – pensez à Histoire de fantômes chinois ou Mr. Vampire par exemple. + COMMENT DÉTERMINER LA DIFFICULTÉ D’UN JET DE MAGIE ? les chroniques + Il existe en réalité plusieurs méthodes pour déterminer la difficulté, et donc le coût en Hei, des sorts que + + + de l’étrange +lancent les PJ dans Hong Kong – Les Chroniques de l’Étrange. + 怪 Afin de déterminer la Puissance nécessaire au lancement d’un sort, le joueur additionne le coût de l’ensemble + des Effets souhaités (cf p. 291). En comparant cette Puissance totale à la valeur de l’Aspect lié à la Spécialité + utilisée, il en déduit la difficulté du jet ainsi que le nombre de points de Hei à dépenser grâce au tableau + ci-dessus. + 怪 Un joueur peut aussi décider de laisser la magie venir d’elle-même au fat si et ce dernier façonne alors l’énergie + qu’il parvient à canaliser. Il choisit librement la quantité de Hei qu’il dépense, ce qui fixe la difficulté du jet de + magie. Si le jet est réussi, il dispose alors d’une certaine quantité de Puissance et décide librement de ce qu’il + + + la magie + en fait, en utilisant l’ensemble des Effets (cf p. 291) à sa disposition dans la Spécialité correspondante. + Quelle que soit la méthode utilisée, lorsqu’un joueur n’est pas sûr de la façon dont il peut utiliser les Effets à +sa disposition pour façonner son sortilège, il peut bien entendu décrire narrativement ce qu’il souhaite réaliser au +MJ, qui le guide en lui proposant une Puissance associée – et donc une difficulté et un coût en Hei. + Les joueurs disposent de la possibilité d’utiliser les dés du Loksyu, ainsi que les dés-fastes obtenus sur un jet +ou encore les capacités de certains sanhei pour faire varier la Puissance d’un sort et les Effets qui en découlent. +De même, le MJ peut puiser dans la Tin Ji (cf p. 334) pour faciliter ou au contraire entraver un sort en fonction +des circonstances. La description et les Composantes utilisées peuvent aussi revêtir une grande importance quand +il s’agit d’obtenir des dés supplémentaires à lancer ou des dés-fastes sur un jet de magie. + + + + +qui permet de déterminer la Puissance de base La Puissance d’un sort est égale à la valeur +du sort lancé. de l’Aspect lié à la Spécialité utilisée multipliée + Exemple : la Compétence de Maîtrise de la Voie par la difficulté. Le coût en Hei (du type dépen- +est liée à l’Aspect Terre, utilisé pour effectuer le dant de la Spécialité choisie) est quant à lui égal +jet de magie, et sa Spécialité Transfiguration est à la difficulté choisie. +associée à l’Aspect Eau pour ce qui concerne le Plus la Puissance est grande, plus la diffi- +calcul de la Puissance du sort (cf p. 291). culté se révèle élevée et le coût en point de Hei + (Yin ou Yang en fonction de la magie utilisée) + augmente lui aussi proportionnellement. + Cette formule est résumée dans le tableau +Le jet de magie ci-dessous. + + Un jet de magie ne diffère pas d’un jet de Enfin, pour chaque dé-faste dépensé à cet ef- +Compétence normal, si ce n’est qu’il coûte un fet, le joueur peut augmenter la Puissance de 1 +certain nombre de points de Hei. – ce qui lui permet d’améliorer un Effet ou d’en + Pour déterminer combien de dés le joueur acheter un autre. +peut lancer, il suffit d’additionner la valeur de +la Compétence magique et celle de l’Aspect Si le jet est réussi, le PJ dispose de la +qui lui est lié. Comme le PJ utilise la Spécialité Puissance déterminée afin de lancer son sort. +correspondant à la magie dont dépend le sort Si le jet est un échec, le sort ne produit pas +qu’il prépare, il ajoute toujours 1 dé et obtient ses effets mais le PJ dépense tout de même son +de cette manière le total de sa réserve de dés. Hei. + Cf exemple p. 295. + 怪 Réserve de dés = Aspect lié à la Compétence + + Compétence magique + 1 + + DIFFICULTÉ DU COÛT EN POINT + PUISSANCE À INVOQUER + JET DE MAGIE DE HEI + Aspect lié à la Spécialité 1 1 + Aspect lié à la Spécialité × 2 2 2 + Aspect lié à la Spécialité × 3 3 3 + Aspect lié à la Spécialité × 4 4 4 + Aspect lié à la Spécialité × 5 5 5 + + + + 287 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + 怪 Les consommables : plusieurs magies ré- + clament que le fat si utilise des ingrédients + Les Composantes qui seront consommés pour lancer le sort. + C’est notamment le cas en Alchimie : les + Les diverses magies que pratiquent les fat si consommables sont alors des herbes (gin- + sont liées à la cosmologie chinoise et à la reli- seng, feuilles de saule, etc.), des minéraux + gion populaire – qui mélange des éléments issus (poudre de jade, morceaux de quartz, etc.) + du taoïsme, du bouddhisme, du confucianisme, ou des liquides (eau de cuisson de riz, + de l’animisme antique, etc. alcool, etc.). Mais une carapace de tortue + Rituels et décorum y sont très importants : utilisée pour une divination par scapulo- + prière, psalmodie de sûtra, gestuelle, concen- mancie est également considérée comme + tration, utilisation d’objets ou ingrédients spé- un consommable puisqu’elle est dégradée + cifiques, etc. par le sort – de même que de nombreux + talismans de papier jaune qui se consument + lorsqu’on les utilise. Les consommables + Types de Composantes peuvent être courants et bon marché ou au + contraire rares et fort dispendieux. + Ces divers rituels ou objets qui entourent l’uti- 怪 L’état d’esprit : le fat si a besoin de se + lisation de la magie sont nommés Composantes concentrer, il fait le vide dans son esprit + et s’avèrent très variés : une incantation à un ou médite. Il peut également être néces- + général céleste, une offrande à une divinité saire de susciter en lui certaines émotions + locale, l’emploi d’une arme bénie, l’utilisation pour alimenter le sort (colère, compassion, + d’outils en matériau noble, etc. peine, etc.). C’est en quelque sorte son + Toutefois, il est possible de les classifier en âme qui sert de Composante. Accorder son + cinq catégories : esprit au sort prend un temps variable : + 怪 Les objets : un fat si utilise de nombreux cela peut être court (faire surgir un sen- + objets pour l’aider à pratiquer sa magie. timent) ou très long (plusieurs heures de + L’épée de saule de l’exorciste, les aiguilles méditation). + d’acupuncture du spécialiste des points 怪 Les gestes : le fat si doit effectuer une ges- + vitaux, le sceptre taoïste de celui qui tuelle particulière. Cela peut être une danse + commande aux éléments… Contrairement rituelle, un enchaînement de kung-fu, une + aux consommables, les objets ne sont pas posture spécifique à adopter, etc. C’est + détruits par le sort : ils servent plutôt à cette fois le corps qui sert de Composante. + le canaliser ou en sont les récipiendaires Là aussi, ces mouvements peuvent être ra- + – quand ils ne font pas juste office d’une pides et simples à effectuer (faire prendre + aide à la concentration du fat si (à la façon à ses doigts une position particulière) ou + d’un disque de jade). Des objets technolo- longs et complexes (une danse martiale). + giques courants peuvent tout à fait faire of- + fice de Composantes : citons l’application + GPS d’un smartphone qui remplace avan- Utilisation des Composantes + tageusement l’antique boussole à esprits, + par exemple. C’est au joueur de décrire les Composantes + 怪 Les mots : le fat si doit réciter un sûtra, qu’il utilise lorsqu’il décide d’avoir recours à + prier une divinité, incanter une formule… une magie – et ce avant même de faire son jet. + Il attire ainsi la faveur du Ciel sur lui et Sa description doit bien sûr être cohérente avec + facilite par ce biais l’utilisation de la ma- le matériel dont dispose le PJ (épée de saule ou + gie. En somme, il utilise sa parole comme épée de jade), la situation dans laquelle il se + Composante. De telles récitations peuvent trouve (difficile de psalmodier d’une voix forte + être très brèves (la syllabe bouddhique quand on est bâillonné), son humeur (il est exclu + « Ohm ») ou particulièrement longues (dé- de parvenir à se concentrer dans un état de rage + clamer entièrement le Sûtra du Lotus). totale), etc. + + +288 + Bien qu’un fat si puisse utiliser autant de Il est bien sûr possible de lancer un sort sans les chroniques +Composantes qu’il le désire pour lancer un sort, utiliser de Composantes, en ne comptant que + + + de l’étrange +un PJ n’en utilise que deux tout au plus pour sur sa maîtrise de la magie et la puissance de +déterminer le bonus au jet de magie de son sort. son hei. Auquel cas le jet de magie ne gagne +Il lui est ainsi possible de cumuler les bonus aucun bonus. +offerts par une Composante traditionnelle et Ce n’est pas tant la valeur monétaire de la +une Composante technologique – en prenant Composante que sa valeur spirituelle (et no- +en compte les bonus les plus élevés de chaque. tamment sa pertinence) qui compte pour lancer +Les Composantes surnuméraires n’offrent pas un sortilège. Aussi le système de magie fait-il +de bonus supplémentaires mais ajoutent de la peu de cas du fait que la poudre de jade soit + + + la magie +couleur à la description du sort. plus précieuse et coûteuse qu’une fiole de sel + Il faut également que les Composantes – même si un éventuel jet de Ressource peut +utilisées soient en accord avec l’esprit de la être demandé par le MJ dans le cadre de cer- +magie utilisée : on prie le dieu des exorcistes tains ingrédients plus chers que d’autres s’il le +avant un combat contre un démon, on utilise désire, le prix n’interviendra que pendant ce jet +des baguettes de jik ging pour une divination, de Ressource et non pendant le jet de magie. +on effectue des mouvements martiaux afin de Voici un rapide tableau afin de guider le MJ +concentrer son énergie interne, etc. au moment de trancher sur le bonus qu’offre + l’utilisation de Composantes : + + + + Le PJ utilise des Composantes + Exemples : offrande à un dieu + usuelles qui ne réclament que + plusieurs heures avant le jet + peu de temps ou de moyens + Bonus de 1 dé-faste ou 1 dé de magie, rapide prière au mo- + particuliers, qui peuvent être + supplémentaire à lancer au ment de lancer le sort (coûte + utilisées ou effectuées en + jet de magie 1 cran d’initiative), utilisation + amont. C’est souvent le cas + (au choix du joueur) d’outils ou ingrédients ba- + quand un fat si doit agir en + nals, piochés au hasard dans + situation d’urgence et qu’il se + la sacoche ou improvisés, etc. + sert de ce qu’il a sous la main. + + Le PJ utilise des Composantes + plus restrictives, qui de- + Exemples : récitation d’une + mandent un certain temps + incantation (coûte 3 crans + ou l’usage de moyens signi- + d’initiative), doublement du + ficatifs. La plupart des fat si Bonus de 2 dés-fastes ou + temps de réalisation d’un + expérimentés ont en général 2 dés supplémentaires à + sort, utilisation d’armes en + sous la main de quoi obtenir lancer au jet de magie + bois sacré (saule ou pécher), + ce genre de bonus. C’est le (au choix du joueur) + emploi d’ingrédients de qua- + cas quand un PJ choisit soi- + lité, choisis et conservés avec + gneusement des ingrédients + soin, etc. + parmi ceux qui se trouvent + dans sa sacoche de fat si. + + Le PJ utilise des Composantes Exemples : psalmodie d’un + parmi les plus limitatives ou long sûtra (coûte 6 crans + coûteuses, nécessitant argent d’initiative), triplement du + et temps en quantité. Il s’agit temps de réalisation d’un + là du bonus que gagne un sort, utilisation d’outils en + Bonus de 3 dés-fastes ou + fat si qui lance un sort dans matériau noble (or ou jade), + 3 dés supplémentaires à + des conditions idéales, avec consommation d’ingrédients + lancer au jet de magie + du temps devant lui et un rares obtenus par la Ressource + (au choix du joueur) + matériel rare et coûteux. En Matériel, ou de talismans et + termes de jeu, cela signifie amulettes spécifiquement + que le fat si a éventuellement bénies ou consacrées pour + employé ses Ressources pour l’occasion et obtenus par la + obtenir les Composantes. Ressource Influence, etc. + + + + 289 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Là où une boussole à esprit indiquait juste une + La magie et la direction, une application de géolocalisation + permet de repérer avec précision un fantôme + technologie égaré (affichant sa position exacte sur un plan + du quartier) ; un alchimiste disposant d’un la- + De tout temps, les fat si se sont servis d’outils boratoire ultramoderne prépare des potions + pour pratiquer leur magie. Citons par exemple plus précisément dosées que si elles avaient été + les disques de jade des devins, les boussoles à concoctées dans de vieilles fioles en céramique ; + esprit des exorcistes, les instruments du labo- un logiciel affichant la position des constella- + ratoire d’un alchimiste, etc. Ces objets étaient tions en temps réel autorise une divination plus + le reflet de l’époque où ils étaient utilisés et les fine que des cartes anciennes ; etc. + progrès de la technologie ont ainsi toujours ac- L’adaptabilité des fat si est souvent leur + compagné la pratique de la magie. meilleur atout pour survivre – surtout à notre + C’est ainsi qu’à notre époque, la plupart des époque moderne – et ils n’hésitent donc jamais + fat si (sauf certains des plus traditionalistes) uti- à s’équiper en conséquence. + lisent des objets technologiques tout à fait mo- En général, l’usage de la technologie actuelle + dernes lorsqu’ils lancent un sort. Ainsi le disque peut presque toujours être considéré comme une + de jade peut être remplacé par une tablette infor- Composante – notamment du type « objet ». Mais + matique, un baromètre numérique permet à un obtenir un bonus en dés supplémentaires ou en + Maître de la Voie de mieux maîtriser le climat, les dés-fastes n’est pas la seule façon pour le MJ de + alchimistes disposent de balances électroniques tenir compte d’une Composante technologique. + de précision pour peser leurs ingrédients, etc. Par exemple, insuffler son énergie Yang dans + Ce mariage de la magie et de la science est na- des balles à tête en bois de saule ne diffère pas + turel aux yeux des fat si – qui considèrent d’ailleurs réellement de l’utilisation d’une épée ou de + la magie comme une discipline scientifique et ne flèches taillées dans la même essence : l’effet est + voient donc aucune contradiction dans l’alliance le même, il consiste à blesser les jiugwaai. Ces + de la tradition et de la modernité, même lorsque munitions bénéficient toutefois de l’avantage + cela concerne les arts mystiques. Après tout, telle d’être propulsées par une arme à feu – comme + est la nature même de Hong Kong : une cité qui une portée supérieure. + relie le passé et le futur, qui fait le pont entre De la même façon, si un fat si enregistre sur + l’Orient et l’Occident – et où les contrastes qui en un iPod de la musique sacrée afin de la diffuser + découlent semblent naturels à ses habitants. pendant qu’il affronte des démons, il reproduit + l’effet d’une clochette de bronze à agiter : son + avantage est en revanche de pouvoir se battre + La + en technologie avec ses deux bras libres face à des adversaires + tant que Composante affaiblis – là où un devin des siècles précédents + aurait eu une main prise durant tout le combat ! + Les objets technologiques peuvent donc Il en va de même pour l’utilisation d’un lo- + constituer l’un des types de Composantes utili- giciel de décryptage permettant de décoder + sables pour améliorer un jet de magie – au même une prédiction – par exemple en comparant + titre que des objets plus classiques en général les craquelures obtenues sur une carapace de + associés à la magie traditionnelle chinoise. tortue à une banque de données en ligne de + Souvent, un objet technologique se révèle symboles ésotériques. Le devin est aidé a pos- + une Composante de plus grande valeur qu’un teriori dans l’interprétation de l’augure grâce à + objet classique, mais ce n’est pas automatique. l’informatique. + + + GRIMOIRES NUMÉRIQUES, OBJETS MAGIQUES ET TAONET + Le Taonet est un réseau de sites, forums et blogs tenus par des fat si et qui forme le principal lien de leur + communauté. Une légende urbaine prétend que le fondateur du Taonet n’est autre que le dieu des lettrés Man + Coeng, dont la présence serait réelle, au cœur d’internet, sous la forme d’une pure intelligence numérique. + Il est fréquent que les fat si disposent d’objets imprégnés de magie, en plus de leur sanhei. Ces objets peuvent + prendre de multiples formes – y compris celles d’objets technologiques. Dans ce cas, il est probable que les ma- + tériaux qui ont servi à la fabrication de l’objet aient été enchantés ou remplacés par des matériaux aux propriétés + magiques et à la noblesse reconnues telles que le jade, l’argent ou l’or. + Un ordinateur ou un téléphone peuvent donc être des objets magiques. Si internet est habité par une divinité, les + réseaux sont aussi parfois hantés et il est possible pour un fat si de protéger ses données numériques avec des pare-feu + mystiques. Un tel ordinateur ou téléphone enchanté et relié au Taonet devient alors un véritable grimoire numérique. + En termes de règles, tout cela est couvert par une description pertinente du joueur et les objets en question + constituent alors des Composantes de sorts. Les plus puissants objets de ce type peuvent utiliser la règle présente + dans la création de personnage, au chapitre « Armes, équipement et ingrédients » (cf p. 218), afin de conférer des +290 capacités spéciales au fat si. + Dans tous les cas, c’est au MJ de trancher techniques, il a été nécessaire de la codifier et les chroniques +selon la situation. Comme d’habitude, il doit de la cadrer dans ces cinq Compétences et leurs + + + de l’étrange +veiller à récompenser les idées des joueurs vingt-cinq Spécialités. Cependant, une certaine +lorsque celles-ci sont dans l’esprit de la magie liberté d’interprétation et d’utilisation est laissée +chinoise (et de son mariage avec la technologie) entre les mains des joueurs et du MJ. Chaque +et contribuent à l’ambiance de la partie. Spécialité dispose de divers Effets qui peuvent + être modulés par la façon dont le PJ gère la + Puissance du sort : le joueur garde donc une + certaine maîtrise sur la façon dont il souhaite +La Puissance faire fonctionner la magie que son PJ utilise (en + + + la magie + distribuant la Puissance à sa convenance, en + Dès lors qu’un jet de magie est réalisé et choisissant parmi les Effets ceux qu’il souhaite +réussi, le sort lancé peut être modelé grâce à appliquer, en panachant plusieurs Effets pour un +l’usage de la Puissance – celle-ci permettant résultat inattendu, etc.). +d’acheter les différents Effets qui définissent le Pour pousser cette logique encore plus loin, +sort, dans le respect de la Spécialité utilisée. les joueurs peuvent proposer des utilisations + Cette Puissance dépend de l’Aspect qui est inédites de certaines Spécialités, qui ne sont +lié à la Spécialité choisie pour lancer le sort, ain- pas forcément décrites dans ces pages. Tant que +si que de la quantité de Hei qui a été dépensée l’esprit de la magie est respecté, il est possible +(cf p. 287), mais elle peut aussi être influencée d’inventer d’autres Effets. Bien entendu, c’est +par les dés-fastes utilisés ou d’autres capacités au MJ qu’il revient d’avoir le dernier mot sur +– notamment celles liées au sanhei. ce genre d’improvisations, mais nous l’encoura- + geons à se montrer ouvert d’esprit – dès lors + que le joueur propose une idée intéressante, + Les Effets respectueuse des fondamentaux de la magie + utilisée et qu’il enrobe tout cela d’une interpré- + Le PJ doit distribuer la Puissance obtenue tation adéquate (notamment en proposant des +entre différents Effets, qui dépendent de la Composantes adaptées). +Spécialité utilisée. + Un sort ne peut toutefois provoquer que des Les Trois Trésors +résultats compris dans la définition de cette Cet Effet a un impact direct sur les Trois +Spécialité. Traquer un démon ne permet pas de Trésors d’un individu : son Zing, son San et son +discerner l’avenir, harmoniser les flux d’un lieu Hei. Il peut en faire regagner (mais jamais plus +ne crée pas une potion fortifiante, etc. À toutes que le maximum), en faire perdre, créer une pro- +fins utiles, chacune des Spécialités comporte de tection, etc. +nombreux exemples d’utilisation. Les gains et les pertes sont immédiats. La + Mais dans la marge de manœuvre que re- protection n’est valable dans le temps que si elle +couvre la définition d’une magie, le PJ est libre est associée à l’Effet « durée » en conjonction. +de construire son sort comme il l’entend grâce à Pour le fait de soigner avec une fréquence éta- +la façon dont il dépensera la Puissance invoquée blie ou de créer des sources de dégâts récur- +pour acheter tel ou tel Effet, et provoquer ainsi les rents, un Effet spécifique existe (cf p. 295). +effets désirés. S’il souhaite créer avec la Spécialité Il peut s’agir de dégâts supplémentaires +Élixir un baume cicatrisant qui rend des points de qu’inflige une attaque portée avec une épée de +Zing et accélère la guérison d’une blessure, il lui saule, d’énergie régénératrice contenue dans +suffit d’acheter les deux Effets concernés. des pilules alchimiques, d’imprécations desti- + En effet, la magie chinoise est versatile et nées à briser l’esprit d’un ennemi, d’un bouclier +des plus variées. Afin de la traduire en termes mental, d’une armure élémentaire, etc. + + COÛT EN POINTS +EFFETS + DE PUISSANCE +Retirer 1 point de Trésor : Zing, San ou Hei (Vitalité ou Hei dans le cas + 2 +d’un PNJ) +Ajouter 1 point de Trésor : Zing, San ou Hei (Vitalité ou Hei dans le cas + 3 +d’un PNJ) +Créer une Protection de + 1 pour un Trésor : Zing, San ou Hei (Vitalité ou + 4 +Hei dans le cas d’un PNJ) + + + + + 291 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + COÛT EN POINTS + EFFETS BONUS + DE PUISSANCE + Diminuer de 1 le malus dû à la perte de San 1 + Diminuer de 1 le malus dû à la perte de Zing 1 + Octroyer 1 dé-faste à tout type de jet dans des conditions définies à l’avance + 2 + (« lorsque le PJ se déplace », « quand il s’agit d’entendre », « s’il fait nuit ») + Octroyer 1 dé-faste à tout type de jet utilisant un Aspect, une Compétence + 2 + ou une Ressource définies (ou une Aptitude dans le cas d’un PNJ) + Octroyer 1 dé supplémentaire à lancer à tout type de jet dans des conditions + définies (« s’il pleut », « pour trouver quelque chose de caché », « pour ne 3 + pas être vu ») (ou augmenter de 1 une Aptitude dans le cas d’un PNJ) + Ajouter 1 dé à supplémentaire à lancer à tout type de jet utilisant un Aspect, + une Compétence ou une Ressource définies (ou augmenter de 1 une Aptitude 3 + dans le cas d’un PNJ) + + Les bonus Les malus + Cet Effet consiste à octroyer à un personnage Cet Effet impose des dés-néfastes ou retire + des dés supplémentaires à lancer ou des dés-fastes des dés à lancer lors de certains jets. Un tel ma- + lors de certains jets. Un tel bonus peut être lié à un lus peut être lié à un type de jet – en fonction + type de jet – en fonction d’une condition ou de cir- d’une condition ou de circonstances définies par + constances définies par le sortilège – ou bien asso- le sortilège – ou bien associé sans conditions à + cié sans conditions à un Aspect, une Compétence un Aspect, une Compétence ou une Ressource + ou une Ressource utilisés dans le cadre du jet. Un utilisées dans le cadre du jet. + tel bonus peut compenser temporairement le malus Le malus ne vaut que pour le prochain jet, à + dû à la perte de Zing et de San, quel que soit le jet. moins d’utiliser l’Effet « durée » en conjonction. + Dans tous les cas, l’Effet choisi n’est valable Pour affecter plusieurs cibles d’un coup, il faut + que pour le prochain jet, à moins d’utiliser multiplier la Puissance nécessaire par le nombre de + l’Effet « durée » en conjonction. Pour affecter personnages désignés. Il est aussi possible d’affec- + plusieurs cibles d’un coup, il faut multiplier la ter une zone à l’aide de l’Effet « aire » mais, dans + Puissance nécessaire par le nombre de person- ce cas, le malus affectera tous les personnages qui + nages désignés. Il est aussi possible d’affecter se trouvent dans l’aire d’Effet, sans distinction. À + une zone à l’aide de l’Effet « aire » mais, dans noter que toutes les Spécialités de magie ne per- + ce cas, le bonus affecte tous les personnages qui mettent pas forcément toutes les options. + se trouvent dans l’aire d’Effet, sans distinction. Il peut s’agir d’une infection affaiblissante, + À noter que toutes les Spécialités de magie ne de liens spirituels entravant les mouvements, + permettent pas forcément toutes les options. des effets d’une malédiction diminuant l’expres- + Il peut s’agir d’un renforcement interne amé- sion d’un élément dans le corps, etc. + liorant le niveau d’un élément dans le corps, + d’un savoir obtenu grâce à la guidance d’un + dieu, d’une résistance interne améliorée contre + une maladie, etc. + + COÛT EN POINTS + EFFETS MALUS + DE PUISSANCE + Imposer 1 dé-néfaste à tout type de jet dans des conditions définies à + l’avance (« s’il se montre agressif envers moi », « s’il utilise cette arme 2 + brûlante », « à la personne qui franchit cette porte en premier ») + Imposer 1 dé-néfaste à tout type de jet utilisant un Aspect, une Compétence + 2 + ou une Ressource définies (ou une Aptitude dans le cas d’un PNJ) + Retirer 1 dé à lancer à tout type de jet dans des conditions définies (« s’il + fait jour », « s’il doit se déplacer », « s’il doit parler ») (ou diminuer de 1 une 3 + Aptitude dans le cas d’un PNJ) + Retirer 1 dé à lancer à tout type de jet utilisant un Aspect, une Compétence ou + 3 + une Ressource définies (ou augmenter de 1 une Aptitude dans le cas d’un PNJ) + + + + +292 + EFFETS LOKSYU + COÛT EN POINTS les chroniques + DE PUISSANCE + + + de l’étrange +Lancer 1 dé et l’ajouter au Loksyu conformément à son résultat 2 +Ajouter 1 dé au Loksyu sur la case de son choix 7 + + COÛT EN POINTS +EFFETS D’AMPLEUR + DE PUISSANCE +Ampleur faible 2 +Ampleur moyenne 4 + + + la magie +Ampleur importante 6 + + Le Loksyu + Cet Effet permet d’ajouter des dés à la ré- Il peut s’agir de l’importance d’un service de- +serve partagée des PJ. Cela traduit souvent un mandé à un dieu terrestre, d’une vision obtenue +effet qui touche tous les personnages et leur par divination, de questions que le personnage +permet de bénéficier d’un avantage commun. pose à une divinité terrestre, de connaissances + Il peut s’agir d’une prédiction leur apportant sur l’origine d’un nœud d’énergies néfastes, etc. +la connaissance d’événements à venir dont ils Des exemples détaillés sont fournis pour in- +sauront tirer parti, d’une potion unissant leurs terpréter ce que recouvrent « ampleurs faible, +esprits après qu’ils en aient tous bu une dose, moyenne et importante » pour chaque Spécialité +d’une bénédiction divine qui leur profite à tous, où cet Effet peut intervenir. +etc. + La durée + L’ampleur Cet Effet indique le temps durant lequel les + Cet Effet traduit de façon abstraite la force autres Effets du sort s’appliquent – il ne s’utilise +d’un phénomène produit par un sort, qu’il est donc jamais seul, mais toujours en conjonction +difficile de retranscrire techniquement. Cela avec un (ou plusieurs) autre(s) Effet(s). +comprend par exemple une quantité d’informa- Par exemple, un personnage qui enchante +tions que le personnage peut transmettre ou son épée de saule pour qu’elle inflige plus de +recueillir. En combat, cet Effet correspond aussi dégâts à des créatures surnaturelles peut choisir +à un nombre précis de cibles affectées par l’effet comme durée 1 scène – afin de combattre avec +d’un même sort offensif. son arme pendant tout un affrontement. Sans + Il existe trois niveaux : durée définie, les dégâts augmentés de son épée + Ampleur faible : la force du phénomène reste ne se seraient appliqués que sur le premier coup. +limitée, il n’est guère impressionnant ; peu d’in- Pour les sorts qui permettent d’obtenir des +formations sont transmises ou recueillies (pas informations sur le passé ou de remonter une +plus de cinq phrases), elles peuvent être par- piste, la durée peut s’utiliser pour déterminer de +cellaires ou peu claires ; jusqu’à 2 cibles sont quand date l’information ou la difficulté à fixer +affectées ; l’impact sur le scénario et l’univers en fonction de sa fraîcheur. +est faible. Seuls des sorts spécifiques et extrêmement + Ampleur moyenne : la force du phénomène puissants s’avèrent à même de durer plus de +s’avère notable, elle démontre la maîtrise du quelques semaines. Ils font alors l’objet d’ac- +personnage ; un bon nombre d’informations tions longues, avec des composants spécifiques +sont transmises ou recueillies (une quinzaine de et souvent très rares pour être lancés, en suivant +phrases), elles se déchiffrent bien et sont com- des rituels très particuliers. Le prix à payer pour +plètes ; jusqu’à 4 cibles sont affectées ; l’impact pouvoir les utiliser se révèle en général élevé et +sur le scénario et l’univers est significatif. dépasse le cadre de la simple dépense de Hei. + Ampleur importante : la force du phénomène Les fat si y ont rarement recours dans l’exercice +se révèle puissante, elle frappe de stupeur les normal de leurs activités. De tels rituels sont +témoins ; de nombreuses informations sont donc plutôt spécifiques à un scénario ou à une +transmises ou recueillies (à la manière d’une intrigue donnée (cf p. 297). +conversation), elles sont très claires et détail- +lées ; jusqu’à 6 cibles sont affectées par l’Effet ; +l’impact sur le scénario et l’univers est tel qu’il +s’agit d’un bouleversement qui change la donne. + + + + + 293 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + COÛT EN POINTS COÛT EN POINTS + EFFETS DE DURÉE EFFETS D’AIRE + DE PUISSANCE DE PUISSANCE + 1 action 0 Équivalent à un cercle + 1 minute / de rayon distance 1 + 1 courte + 12 crans d’initiative + 15 minutes / 1 scène 2 Équivalent à une pièce 2 + 2 heures 3 Équivalent à un appar- + 3 + tement ou une maison + 6 heures 4 + Équivalent à un bâti- + 12 heures 5 4 + ment (immeuble) + 24 heures 6 Équivalent à un pâté + 5 + 5 jours 7 de maisons + 2 semaines 8 Équivalent à un + 6 + 1 mois 9 quartier + Équivalent à un district 7 + La distance + Cet Effet indique la portée maximale jusqu’à La source de dégâts récurrents + laquelle les Effets précédents peuvent produire Cet Effet permet de créer ou neutraliser une + leur résultat – il ne s’utilise donc jamais seul, source de dégâts récurrents (aussi bien phy- + mais toujours en conjonction avec un autre Effet. siques que spirituels) en faisant varier sa valeur + Par exemple, un magicien séparant son âme – représentée par la difficulté qu’elle impose à + de son corps choisit une distance de dix kilo- un jet d’Aspect privilégié pour y résister. Dès + mètres afin de pouvoir faire voyager son esprit lors que cette difficulté tombe à 0, la source est + dans un rayon de dix kilomètres autour de l’en- considérée comme détruite. + droit où repose son corps. Il peut s’agir d’un poison qui détériore les + organes, d’une incantation capable d’affaiblir + un nœud d’énergies néfastes, d’un cataplasme + COÛT EN POINTS + EFFETS DE DISTANCE stoppant l’infection propagée par la morsure + DE PUISSANCE + d’un goengsi, etc. + Distance au contact 0 + Distance courte COÛT EN POINTS + 1 EFFETS RÉCURRENTS + (cf p. 261) DE PUISSANCE + De distance médiane à Diminuer de 1 la valeur + distance extrême 2 d’une source de dégâts + (cf p. 261) récurrents (ce qui 3 + Jusqu’à 500 mètres 3 implique sa destruction + Jusqu’à 1 kilomètre 4 en l’amenant à 0) + Jusqu’à 2 kilomètres 5 Augmenter de 1 la + valeur d’une source de + Jusqu’à 5 kilomètres 6 + dégâts récurrents (ce + Jusqu’à 10 kilomètres 7 3 + qui implique sa créa- + tion en passant de 0 à + L’aire 1 ou plus) + Cet Effet indique la zone au sein de laquelle + les Effets précédents peuvent agir au maximum Afin de compléter la création d’une source de + (et donc le nombre d’individus qu’ils affectent) dégâts récurrents, il convient également d’ajou- + – il ne s’utilise donc jamais seul, mais toujours ter un Effet « fréquence ». Celui-ci indique avec + en conjonction avec un autre Effet. L’aire se quelle régularité effectuer le jet d’Aspect privi- + base moins sur une superficie que sur une den- légié permettant d’y résister pendant la durée + sité spirituelle – c’est pourquoi l’équivalent d’un d’existence de cette source de dégâts récur- + district coûte un prix fixe, bien que les districts rents. Si aucun point de Puissance n’est investi + de Hong Kong soient d’une taille bien diffé- dans l’Effet « fréquence », alors la fréquence + rente (mais peuplés par un nombre comparable par défaut d’une source de dégâts récurrents + d’habitants). fraîchement créée est toutes les 24 heures. + + + + +294 + EFFETS DE COÛT EN POINTS EXEMPLE les chroniques +FRÉQUENCE DE PUISSANCE + + + de l’étrange +Toutes les 24 heures 0 Maxime / Billy Lau et Maïlys / Penny Woo +Toutes les 12 heures 1 se sont infiltrés discrètement dans un entrepôt. + Adrien / MJ décrit que Billy et Penny ressentent +Toutes les 6 heures 2 un flux d’énergie Yin. Grâce à ses connaissances +Toutes les heures 3 en Géomancie, notre exorciste va tenter d’obtenir +Tous les quarts d’heure / des informations sur ce souffle néfaste. Pour ce + 4 faire, elle se concentre sur le symbole qu’elle +À chaque scène + porte à la ceinture – son sanhei « la Morsure +Toutes les minutes / + + la magie + 5 du Soleil » – et se prépare à lancer un sort de +12 crans d’initiative Neutralisation. +Toutes les 30 secondes / + 6 Penny dispose d’une valeur de 2 en Géomancie +6 crans d’initiative (Neutralisation) et de 4 en Bois – qui est l’As- + pect associé à cette Compétence magique. Avec + Si l’Effet « durée » n’est pas associé à la sa valeur de 2 en Métal (l’élément lié à la spé- +source de dégâts récurrents : cialité Neutralisation), Maïlys sait qu’elle peut + 怪 celle-ci prend fin dès qu’un jet d’Aspect générer une Puissance de 2 pour son sort en + privilégié permettant d’y résister est réus- réussissant son jet de magie contre une difficulté + si, indépendamment pour chaque PJ ou de 1 et en dépensant 1 point de Hei Yin. Grâce + PNJ affecté ; à une Propriété de son sanhei, cette Puissance + 怪 si l’effet peut affecter plusieurs cibles (par passe même à 3 (sans changer la difficulté du jet + exemple parce qu’il recouvre une « aire »), ni la dépense en Hei). + il affecte uniquement les personnages pré- Maïlys souhaite s’économiser au cas où un + sents dans la zone d’effet au moment où le affrontement éclaterait par la suite : elle décide + sort a été lancé (car la durée par défaut est donc que cette Puissance de 3 lui suffit pour + d’une action). analyser le nœud d’énergies néfastes. Elle dépense + 1 point de Hei Yin et effectue son jet de magie + Si l’Effet « durée » est utilisé : contre une difficulté de 1. Elle précise à Adrien + 怪 la source de dégâts récurrents perdure qu’elle déclame une courte prière à voix basse et + même si on lui résiste avec succès, et de s’entaille la paume pour faire couler un peu de sang + nouveaux jets d’Aspect privilégié permet- – utilisant donc des Composantes dont le MJ es- + tant d’y résister doivent être réalisés en time qu’elles octroient 1 dé supplémentaire à lancer + fonction de la fréquence à chaque fois, ou 1 dé-faste gratuit à ajouter au résultat du jet. + même si les précédents ont été réussis ; Maïlys opte pour cette dernière possibilité. + 怪 si l’Effet peut affecter plusieurs cibles (par Elle rassemble 7 dés (4 pour l’Aspect Bois + exemple parce qu’il recouvre une « aire »), + 2 pour la Géomancie + 1 pour la Spécialité + il affecte toutes les personnes présentes Neutralisation) et les lance. Les dés lancés af- + dans la zone d’effet, quel que soit le mo- fichent les résultats suivants : H, H, H, + ment où elles y entrent et pour toute la + durée du sort. Cependant, les dégâts récur- + A , B, I, J. Maïlys décide de ne pas + utiliser de dés issus du Loksyu pour compléter + rents cessent dès que le personnage quitte son jet. Le résultat final est donc le suivant : + la zone affectée ; • l’Aspect Bois – sous lequel s’effectue le + 怪 il est possible de payer 1 point de Puissance jet – étant lié aux valeurs 9 et 4, le dé qui + supplémentaire dans le coût total du sort si affiche J donne 1 Succès à Penny, ce qui + les Effets « durée » et « aire » sont utilisés suffit à lancer le sort ; + conjointement, afin que les PJ et PNJ qui • le H correspond au Feu, élément généré par + sont entrés dans la zone d’effet continuent le Bois : ces 3 dés deviennent 3 dés-fastes, + d’en ressentir les effets pour toute la du- qui peuvent être utilisés pour accorder un + rée du sort, même s’ils quittent ladite zone avantage narratif ou technique à Penny ; + ensuite. • le B est lié à l’Eau, élément qui génère le + Bois : ce dé devient 1 dé-néfaste, qui peut être + Le coût total en points de Puissance pour la utilisé pour infliger un désavantage narratif ou +création d’un Effet « source de dégâts récur- technique à Penny ; +rents » est donc égal à la Puissance nécessaire • le A est associé à la Terre, élément dominé +pour la valeur, la fréquence, la durée éventuelle par le bois : le dé est placé sur le Loksyu à sa +et l’aire éventuelle de l’Effet. place désignée (A est à la fois Terre et Yin) + et pourra être utilisé plus tard par Maïlys ou + un autre PJ ; + + 295 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + • le I est associé au Métal, élément qui do- Penny lance avec succès son sort de + mine le Bois : ce dé rejoint la Tin Ji, la réserve Neutralisation et souhaite sonder le nœud d’éner- + d’action du MJ. gies néfastes pour obtenir diverses informations + à son sujet – origine, force, évolution probable, + Maïlys décide d’annuler le dé-néfaste avec 1 etc. Cela correspond à l’Effet « ampleur ». + dé-faste, ce qui lui en laisse 3 à utiliser (2 is- Comme elle investit 4 points de Puissance dans + sus du jet + 1 accordé grâce à l’utilisation de ce seul Effet (ce qui correspond à une ampleur + Composantes pour lancer le sort). Elle accroît la moyenne), Adrien lui apprend plusieurs choses : + Puissance de son sort avec 1 dé-faste et utilise ce nœud est encore faible, mais il pourrait se + les 2 derniers pour l’effet Préparation : elle s’oc- développer rapidement. Il est issu de l’énergie Yin + troie 1 dé supplémentaire à lancer sur son pro- émise par les divers objets entreposés dans le + chain jet – au cas où les choses tournent mal. bâtiment – il semble donc que certains de ces + artefacts soient bien plus dangereux que ce que + Billy et Penny imaginaient ! + + + + RÉSUMÉ ÉTAPE PAR ÉTAPE + 1. LE JET DE MAGIE + + Pour déterminer la réserve de dés du jet de magie, il suffit d’additionner les valeurs de la Compétence magique + et de l’Aspect qui lui est lié. Comme le PJ utilise la Spécialité correspondant à la magie dont dépend le sort qu’il + prépare, il ajoute toujours 1 dé. + - Réserve de dés = Aspect lié à la Compétence + Compétence magique + 1 + + 2. LA PUISSANCE DU SORT + + Cette Puissance est égale à la valeur de l’Aspect lié à la Spécialité utilisée multipliée par la difficulté. Le coût + en Hei (du type dépendant de la Spécialité choisie) est quant à lui égal à la difficulté choisie. Plus la Puissance est + grande, plus la difficulté se révèle élevée et le coût en points de Hei (Yin ou Yang en fonction de la magie utilisée) + augmente lui aussi en proportion. + + + PUISSANCE À INVOQUER DIFFICULTÉ DU JET DE COÛT EN POINTS DE HEI + MAGIE + Aspect lié à la Spécialité 1 1 + Aspect lié à la Spécialité × 2 2 2 + Aspect lié à la Spécialité × 3 3 3 + Aspect lié à la Spécialité × 4 4 4 + Aspect lié à la Spécialité × 5 5 5 + + + Pour chaque dé-faste dépensé à cet effet, le joueur peut augmenter la Puissance de 1 – ce qui lui permet + d’améliorer un Effet ou d’en acheter un autre (cf p. 231). Ces modifications ont lieu après la multiplication par la + difficulté permettant de déterminer la Puissance initiale du sort. + Si le jet est réussi, le PJ dispose de la Puissance déterminée afin de lancer son sort. + Si le jet est un échec, le sort ne produit pas ses effets, mais le PJ dépense tout de même son Hei. + + 3. LES EFFETS + + Quand il lance un sort, le joueur doit déclarer ce qu’il compte obtenir comme résultat en indiquant sommai- + rement les Effets souhaités. Puis, dès lors que le jet de magie est réussi, le sort se déclenche et peut être modelé + grâce à l’usage de la Puissance. + Le joueur distribue la Puissance obtenue entre différents Effets – qui dépendent de la Spécialité utilisée – dans + le respect de sa déclaration d’intention initiale. + + + + +296 + les chroniques + + + de l’étrange + + + + + AUTRES MAGIES +La liste des magies ET RITUELS UNIQUES + la magie + Ce chapitre présente la magie classique chinoise + Voici la description de chacune des Spécialités, telle que les fat si la pratiquent couramment dans le +classées par Compétences magiques : cadre de leurs missions. + 怪 Nom de la Spécialité : la description de ce Cependant, il existe d’autres formes d’arts mys- + que permet la magie est destinée à donner tiques – qui peuvent n’être pratiquées qu’au sein + une idée de ses applications concrètes et d’une minorité ethnique ou qui peuvent venir de pays + sert de guide sur la façon dont le joueur étrangers comme la Malaisie, par exemple. De façon + peut utiliser ses Effets afin de créer un sort. semblable, de nombreux rituels (en général consignés + 怪 Élément associé : il s’agit de l’Aspect dont dans des ouvrages anciens) peuvent déclencher des + la valeur définit la Puissance de base du effets mystiques notables. Ces magies alternatives + sort produit par cette Spécialité. et ces rituels se rattachent toutefois facilement aux + 怪 Hei : il s’agit du type de Hei à dépenser Compétences et Spécialités décrites en ces pages : + pour lancer le sort, lié à l’élément associé. elles peuvent en être des variantes, et il suffit de ré- + 怪 Temps de réalisation (rituel) : il s’agit fléchir aux Composantes et Effets nécessaires à les + du temps nécessaire minimum au PJ pour modéliser pour aisément les intégrer aux règles de + lancer le sort, qui peut être rallongé par magie de Hong Kong – Les Chroniques de l’Étrange, + l’utilisation de certaines Composantes. et ce afin que des PJ originaux ou des PNJ exotiques + 怪 Temps de réalisation (accéléré) : en dé- puissent les utiliser. + pensant 1 point de Hei supplémentaire Pour certains rituels uniques aux effets puissants, + (du même type que celui utilisé avec la il convient en revanche de les traiter plus comme un + Spécialité concernée et donc le sort qui enjeu scénaristique que comme une magie à recy- + est lancé), il est possible au personnage cler. Ainsi, déclencher une peste mystique sur toute + d’accélérer le temps de réalisation d’un la région de Hong Kong est un rituel majeur qui, si + sort. Là encore, l’utilisation de certaines on peut le rattacher à la Spécialité Malédiction de la + Composantes peut faire varier cette durée Compétence Maîtrise de la Voie, ne doit pas être mis + à la hausse. Toutes les Spécialités ne pro- entre les mains des PJ – sauf s’il s’agit de le neutra- + posent pas nécessairement cette option. liser ou de l’étudier pour en contrecarrer les effets ! + 怪 Flash-back : indique s’il est possible ou pas Un tel sort sera l’objectif d’un scénario ou d’une cam- + d’utiliser la règle du flash-back (cf p. 228) pagne : apprendre son existence, empêcher un sorcier + pour préparer un sort de cette Spécialité. ou un esprit de s’en emparer, le détruire, etc. Il en est + Cela concerne uniquement certaines de même pour les invocations de créatures particu- + Spécialités qui s’y prêtent et il peut être lièrement dangereuses, comme d’antiques démons ou + alors nécessaire d’associer l’Effet « du- des divinités oubliées et revanchardes… + rée » pour que le sort soit toujours actif au De façon similaire, d’autres rituels aux effets béné- + moment présent. fiques s’utilisent ainsi : le MJ en fait un enjeu scéna- + 怪 Composantes : on y trouve divers exemples ristique ou le cœur d’une intrigue. Citons par exemple + (non exhaustifs) de Composantes, classés le rituel de purification qui permit de réharmoniser le + par catégories. site de Walled City après la destruction de ce lieu dans + 怪 Effets : ici sont indiqués les différents les années 1990 – et qui appartient à la Spécialité + Effets les plus courants dans lesquels il Fungseoi de la Compétence Géomancie. + est possible d’investir de la Puissance pour + modeler le sort à la guise du personnage, + dans les limites définies de la Spécialité. Il + ne s’agit pas d’une liste fermée – mais plu- + tôt d’exemples de descriptions possibles – + et le joueur est libre d’utiliser d’autres + Effets et descriptions afin de créer un sort + original. + + + 297 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + • Ce même Effet peut être utilisé pour + Cinabre interne diminuer les malus dus à la perte de + Zing pour simuler la résistance accrue + (MÉtal) à la douleur d’un corps bouillonnant + d’énergie. + Cette magie permet de maîtriser son énergie • L’Effet « Trois Trésors » autorise la + interne dans le but d’améliorer le corps et l’âme. création d’une protection du Zing pour + On la surnomme parfois « alchimie interne » car mettre en avant la résistance musculaire + le pratiquant utilise son propre corps comme un qui agit comme une armure. + laboratoire en contrôlant ses points vitaux et ses • L’Effet « durée » permet de décider du + méridiens énergétiques. temps durant lequel le renforcement du + Cette Spécialité est très liée à la pratique du corps perdure. + heigung (le travail du souffle qu’implique la pra- + tique des arts martiaux) et il s’agit de la magie EXEMPLE + la plus personnelle – car elle n’a d’effet que sur + le corps et l’âme de celui qui la pratique, à l’ex- Voici une liste non exhaustive de sorts utiles, + ception de la Spécialité Manipulation qui permet avec leur coût en Puissance : + d’affecter l’environnement. Elle est ainsi simple à • Ignorer la douleur (4 points) : permet au lan- + utiliser et ne requiert que peu de Composantes. ceur du sort de supprimer ses malus consé- + quents aux pertes de Zing pour une durée de + 1 scène. + Essence • Augmentation musculaire (4 points) : accorde + 1 dé-faste gratuit sur n’importe quel jet en + Le PJ sait canaliser son énergie à travers son lien avec les capacités physiques du lanceur + corps, afin de renforcer ses muscles et tendons. (+ 2 points par dé-faste supplémentaire + Il devient ainsi plus leste, plus endurant, plus au-delà du premier). + fort. Les pratiquants d’arts martiaux sont en • Renforcement physique (5 points) : ajoute 1 dé + général versés dans cette Spécialité. Le cinéma supplémentaire à lancer sur n’importe quel jet + a aussi depuis longtemps popularisé les héros en lien avec les capacités physiques du lan- + capables de faire des bonds prodigieux ou de ceur (ou augmente de 1 son Aptitude physique + courir sur des parois verticales – héros qui uti- dans le cas d’un PNJ) (+ 3 points par dé + lisent probablement cette magie ! supplémentaire au-delà du premier). + 怪 Élément associé : Métal • Armure de Hei (5 points) : crée une protection + 怪 Hei : Yin physique personnelle de 1 point pour une durée + 怪 Temps de réalisation (rituel) : 5 minutes de 1 scène (+ 3 points par point de protection + 怪 Temps de réalisation (accéléré) : 3 crans supplémentaire au-delà du premier). + d’initiative Il est possible de déclencher chaque Effet + 怪 Flash-back : non plusieurs fois dans un même sort. Le coût pour + 怪 Composantes : en augmenter les effets est précisé entre paren- + • Mots : sûtra du diamant, prière à Gwaan thèses. Il est aussi possible de les combiner entre + Dai, citation du Wong Ting Ging eux pour créer de nouveaux sorts plus puissants. + • Gestes : mouvements martiaux, postures + de puissance, respiration profonde + • État d’esprit : pensées de puissance, Esprit + mouwai + • Consommables : encens, barre protéinée Le PJ canalise son énergie afin de fortifier + • Objets : objet métallique, lingot d’or, son esprit, le rendant ainsi plus acéré et percep- + morceau de jade, montre Fit Track, tif. Sa mémoire et sa concentration augmentent, + amulette ses cinq sens deviennent plus affûtés, il se dé- + 怪 Effets : tache de ses émotions et garde son sang-froid + • Il n’est possible d’affecter que soi-même en toutes circonstances. + avec les sorts de cette Spécialité. De nombreux ascètes – tels les fameux + • L’Effet « bonus » indique les dés-fastes moines de Shaolin – maîtrisent cette Spécialité + ou dés supplémentaires à lancer lors afin d’acquérir une haute capacité de concentra- + d’actions physiques (couvertes par tion destinée à leur permettre de percer les se- + les Compétences Prouesse, Kung-fu, crets du Tao ou à atteindre l’Éveil bouddhique. + Combat à distance mais aussi parfois 怪 Élément associé : Eau + Filouterie…), permettant des exploits 怪 Hei : Yin + remarquables. 怪 Temps de réalisation (rituel) : 5 minutes + + + + +298 + 怪 Temps de réalisation (accéléré) : 3 crans Il est possible de déclencher chaque Effet les chroniques + d’initiative plusieurs fois dans un même sort. Le coût pour + + de l’étrange +怪 Flash-back : non en augmenter les effets est précisé entre paren- +怪 Composantes : thèses. Il est aussi possible de les combiner entre + • Mots : sûtra du cœur, prière à Man eux pour créer de nouveaux sorts plus puissants. + Coeng, syllabe « Ohm », citation du + Wong Ting Ging + • Gestes : doigts joints en position de Purification + prière, posture du lotus + • État d’esprit : pensées profondes, mouwai Le PJ fait circuler son souffle à travers ses + + + la magie + • Consommables : encens, vitamines points vitaux pour purifier son corps et son âme. + • Objets : talisman, ouvrage ancien, li- Il peut ainsi bloquer – voire neutraliser – les ef- + seuse numérique, amulette fets des maladies et poisons (physiques ou spi- +怪 Effets : rituels), se soustraire à certains besoins vitaux + • Il n’est possible d’affecter que soi-même – ne plus dormir, ne plus se nourrir ou boire, + avec les sorts de cette Spécialité. etc. – durant un certain temps ou même guérir + • L’Effet « bonus » indique les dés-fastes plus vite. + ou dés supplémentaires à lancer lors Nombre d’ascètes maîtrisent cette Spécialité + d’actions mentales (couvertes par et passent ainsi aux yeux des profanes pour des + les Compétences Érudition, Sciences, immortels détachés des contingences maté- + Technologie mais aussi parfois rielles de ce monde. + Enquête…), permettant des prouesses 怪 Élément associé : Terre + intellectuelles remarquables. 怪 Hei : Yin ou Yang + • Ce même Effet peut être utilisé pour di- 怪 Temps de réalisation (rituel) : 2 heures + minuer les malus dus à la perte de San 怪 Temps de réalisation (accéléré) : 12 crans + pour simuler la résistance accrue aux d’initiative + traumas d’un esprit affermi. 怪 Flash-back : non + • L’Effet « Trois Trésors » autorise la 怪 Composantes : + création d’une protection du San pour • Mots : sûtra du diamant, prière à + mettre en avant la résistance mentale Sannung, citation du Wong Ting Ging + qui agit comme un bouclier. • Gestes : pression sur les points vitaux, + • L’Effet « durée » permet de décider du massage, posture du lotus + temps durant lequel le renforcement de • État d’esprit : pensées apaisées, humeur + l’esprit perdure. combative + • Consommables : pilules de ci- + EXEMPLE nabre, décoction d’herbes, granules + d’homéopathie + Voici une liste non exhaustive de sorts utiles, • Objets : schéma des points vitaux +avec leur coût en Puissance : et méridiens d’énergie, appareil +• Vaincre le désespoir (4 points) : permet au d’électrostimulation + lanceur du sort de supprimer ses malus 怪 Effets : + conséquents aux pertes de San pour une durée • Il n’est possible d’affecter que soi-même + de 1 scène. avec les sorts de cette Spécialité. +• Amélioration mentale (4 points) : accorde • L’Effet « source de dégâts récurrents » + 1 dé-faste gratuit sur n’importe quel jet en permet de diminuer la valeur d’un poi- + lien avec les capacités mentales du lanceur son ou d’une infection démoniaque, + (+ 2 points par dé-faste supplémentaire indiquant le renforcement des points + au-delà du premier). vitaux. Cela peut aller jusqu’à détruire +• Renforcement spirituel (5 points) : ajoute 1 dé cette source de dégâts récurrents en + supplémentaire à lancer sur n’importe quel jet abaissant sa valeur à 0. + en lien avec les capacités mentales du lanceur • L’Effet « Trois Trésors » offre une pro- + (ou augmente de 1 son Aptitude mentale dans tection contre une perte de Zing ou de + le cas d’un PNJ) (+ 3 points par dé supplé- San pour simuler la résistance du corps + mentaire au-delà du premier). à un venin ou une maladie spirituelle. +• Bouclier psychique (5 points) : crée une pro- Il permet aussi de récupérer quelques + tection spirituelle personnelle de 1 point pour points de Zing ou de San directement, + une durée de 1 scène (+ 3 points par point symbolisant la capacité du corps à se + de protection supplémentaire au-delà du régénérer en redirigeant l’énergie in- + premier). terne là où cela s’avère utile. + + + 299 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + • L’Effet « bonus » octroie des dés supplé- + mentaires à lancer sur un jet de récupé- Manipulation + ration afin de guérir plus vite – soit au + prochain jet, soit éventuellement pen- Le PJ sait exprimer son énergie hors de son + dant une période plus longue couverte corps et la diffuser dans son environnement pour + par l’Effet « durée ». agir dessus. Son énergie ainsi projetée peut faire + • L’Effet « ampleur » indique l’importance bouger des objets à distance – lui permettant de + du besoin vital dont le personnage peut se les attirer, de les repousser ou de les déplacer + passer et l’Effet « durée » fixe le temps du- à son gré. + rant lequel le personnage peut tenir ainsi. Grâce à une concentration sans faille, il est + même possible au personnage de manipuler à + EXEMPLE distance des mécanismes – faire démarrer une + voiture, actionner un interrupteur, désamorcer + Voici une liste non exhaustive de sorts utiles, une bombe, etc. + avec leur coût en Puissance : 怪 Élément associé : Feu + • Puiser la vitalité dans le Hei (2 points) : le 怪 Hei : Yang + lanceur récupère immédiatement 1 point 怪 Temps de réalisation (rituel) : 5 minutes + de Zing ou 1 point de San (+ 2 points par 怪 Temps de réalisation (accéléré) : 3 crans + point de Zing ou San supplémentaire récupéré d’initiative + au-delà du premier). 怪 Flash-back : non + • Éliminer le poison (3 points) : diminue de 怪 Composantes : + 1 point la valeur d’un poison (source de dégâts • Mots : description des mouvements des + physiques récurrents) qui affecte le lanceur, objets manipulés + ce qui l’annule si cette valeur est réduite à 0 • Gestes : reproduction des gestes per- + (+ 3 points par diminution supplémentaire de mettant de manipuler les objets + 1 point au-delà de la première). • État d’esprit : concentration, pensées + • Lever la malédiction (3 points) : diminue de dynamiques + 1 point la valeur d’une malédiction (source • Consommables : limaille de fer, copeaux + de dégâts spirituels récurrents) qui affecte de bois, chutes de plastique + le lanceur, ce qui l’annule si cette valeur est • Objets : sceptre taoïste jyuji, pointeur + réduite 0 (+ 3 points par diminution supplé- laser + mentaire de 1 point au-delà de la première). 怪 Effets : + • Retrouver l’équilibre du mouwai (3 points) : le • L’Effet « ampleur » mesure la complexi- + lanceur ajoute 1 dé supplémentaire à lancer sur té de la manipulation à laquelle le PJ + un prochain jet de récupération (+ 3 points souhaite se livrer : une Ampleur faible + par dé supplémentaire au-delà du premier). ne permet que de déplacer un petit + • Apothéose de l’ascète (8 points) : permet objet (téléphone portable, pistolet, sta- + au lanceur de se passer de boire, manger et tuette, etc.) ou de procéder à des ac- + dormir (impact limité sur un scénario, donc tions simples (appuyer sur un bouton, + ampleur faible) pendant vingt-quatre heures abaisser un levier, etc.) ; une Ampleur + (pour prolonger : + 6 points par jour supplé- moyenne améliore le degré de dextérité + mentaire au-delà du premier). des actions possibles (manœuvrer un + Comme dans les exemples précédents, il est mécanisme simple, forcer une serrure, + possible d’utiliser plusieurs fois le même Effet etc.) ainsi que la taille de l’objet à dé- + afin de récupérer plusieurs points de Zing ou de placer (jusqu’à cinquante kilos) ; une + San, ou d’obtenir un bonus plus important, en Ampleur importante autorise une mani- + payant plusieurs fois le coût en Puissance lors pulation fine (désamorcer une bombe, + d’un seul et même jet de magie. Éliminer totale- faire tomber en panne un moteur, etc.) + ment un poison d’une valeur de 3 demande donc et le déplacement d’objets massifs + 9 points de Puissance. (jusqu’à cent kilos). + N.B. : si un PJ souhaite utiliser le fait de se • L’Effet « Trois Trésors » sert si le person- + passer d’un besoin vital pour se retenir de respirer nage utilise cette magie pour envoyer + afin d’échapper à la noyade ou à un gaz toxique, il des projectiles sur ses adversaires et + peut utiliser plutôt la valeur de Puissance proposée leur infliger ainsi des dégâts physiques. + pour gérer la diminution d’une source de dégâts • L’Effet « distance » indique jusqu’à + récurrents. Comme il s’agit d’une source généra- quelle portée la manipulation peut + lisée, seul le personnage y est immunisé tempo- s’exercer – sachant qu’elle devient + rairement : il suffit d’ajouter l’Effet « durée » pour impossible dès lors que l’objet sort du + que cette immunité dure plus longtemps. champ de vision. Par définition, cette + + +300 + les chroniques + + + de l’étrange + + + + + la magie + magie s’exerce à portée courte plutôt + qu’au contact, l’effet distance sert à Aura + augmenter cette portée. + • L’Effet « durée » se révèle utile si la ma- Le PJ utilise son énergie interne pour renfor- + nipulation doit durer un certain temps cer son charisme naturel. Cette expression de + et implique ainsi une action longue son Hei le fait paraître plus grand ou plus fort, + – forcer une serrure complexe peut im- plus affable ou plus beau. Il est mieux écouté, + pliquer plusieurs jets, par exemple. plus respecté et souvent obéi. + Nombreux sont les taoïstes qui ont pu créer + EXEMPLE des sectes d’adeptes à leurs ordres grâce à cette + Spécialité. + Voici une liste non exhaustive de sorts utiles, 怪 Élément associé : Bois +avec leur coût en Puissance : 怪 Hei : Yang +• Mains invisibles (3 points) : permet d’action- 怪 Temps de réalisation (rituel) : 5 minutes + ner un levier ou un bouton visible, à distance 怪 Temps de réalisation (accéléré) : 3 crans + courte (+ 1 point pour passer à distance ex- d’initiative + trême) (+ 2 points pour manipuler un méca- 怪 Flash-back : non + nisme complexe comme une serrure). 怪 Composantes : +• Attaque invisible (4 points) : permet d’utiliser • Mots : prière à Soeng Ngo, chant de sé- + un objet comme une arme lancée ou projetée, duction, citation du Wong Ting Ging + qui occasionne 3 dégâts physiques et dont • Gestes : sourire, danse + l’utilisation est limitée à 1 action à distance • État d’esprit : volonté de plaire, pensées + courte (+ 1 point pour passer à distance ex- d’autorité + trême) (+ 1 point par dégât supplémentaire • Consommables : maquillage, accessoires + – dans la limite du poids des objets dispo- cosmétiques (parfum, etc.) + nibles, à la discrétion du MJ). • Objets : vêtements chics, parure sophis- +• La poigne spirituelle (7 points) : permet de tiquée, amulette + soulever un objet de moins de cinquante kilos 怪 Effets : + qui n’est ni entravé ni retenu par un autre per- • Il n’est possible d’affecter que soi-même + sonnage, visible jusqu’à une distance extrême, avec les sorts de cette Spécialité. + pour l’amener à portée de main ; il parcourt au • L’Effet « bonus » indique les dés-fastes + maximum 1 unité de distance tous les 6 crans ou dés supplémentaires à lancer lors + d’initiative, en flottant dans l’air comme s’il d’actions sociales (couvertes par les + était porté par quelqu’un d’invisible ; il est Compétences Art, Mondanités mais + possible de manipuler légèrement l’objet, dans aussi parfois Enquête ou Filouterie), + la limite d’une durée de 12 crans d’initiative, permettant de devenir charismatique et + mais pas d’attaquer avec. manipulateur. +• Sabotage magique (7 points) : permet de sa- • L’Effet « durée » permet de décider du + boter un mécanisme complexe (faire tomber temps durant lequel le renforcement du + en panne un moteur) situé à distance courte charisme perdure. + (+ 1 point pour passer à distance extrême). + Chaque exemple d’Effet ci-dessus est indé- +pendant et nécessite son propre sort. Cependant, +les effets d’un sort peuvent être renforcés : le coût +pour en augmenter les effets est précisé entre +parenthèses. + + 301 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + EXEMPLE EFFETS SECONDAIRES + Les potions alchimiques sont pratiques car il s’agit + Voici une liste non exhaustive de sorts utiles, d’une magie transportable et transférable. Si l’alchi- + avec leur coût en Puissance : mie en elle-même demande un certain temps de prépa- + • Porte-bonheur (2 points) : accorde 1 dé-faste ration, ses produits peuvent se révéler très puissants. + gratuit sur n’importe quel jet en lien avec les Mais cette puissance a cependant un coût : lorsque la + capacités sociales du lanceur (+ 2 points par potion est préparée, le MJ peut utiliser les dés-néfastes + dé-faste supplémentaire au-delà du premier). obtenus sur le jet pour créer des effets secondaires. + • Suggestion par l’hypnose (3 points) : ajoute Pour chaque dé-néfaste ainsi dépensé, il obtient une + 1 dé supplémentaire à lancer (ou augmente Puissance de 3 qu’il peut assigner à des Effets négatifs + de 1 son Aptitude sociale dans le cas d’un tels que « malus », « source de dégâts récurrents » ou + PNJ) sur la prochaine action sociale du lan- « Trois Trésors », ainsi que « durée » bien entendu. Le + ceur envers un PJ ou PNJ spécifiquement visé MJ peut également utiliser des points de sa Tin Ji (cf + (et présent) au moment où le sort a été lancé p. 334) pour créer des effets secondaires supplémen- + (+ 3 points par dé supplémentaire au-delà taires ou au contraire pour les réduire. + du premier). + • Charme irrésistible (4 points) : accorde 1 dé- + faste gratuit à tous les jets de Mondanités du + lanceur pour une durée de 1 scène (+ 2 points + par dé-faste supplémentaire au-delà du + premier). QUESTION DE SÉMANTIQUE + • Ambassadeur céleste (5 points) : ajoute 1 dé Pour traiter des préparations que permet de créer + supplémentaire à lancer sur tous les jets pour cette magie, nous employons le terme de « potions » + une durée de 1 scène, tant que l’action est en – dans un souci de confort pour le lecteur. Cependant, + lien avec les capacités sociales du lanceur (ou l’Alchimie permet également de concocter des élixirs, + augmente de 1 son Aptitude sociale dans le des pilules, des baumes, des onguents, des poudres, + cas d’un PNJ) (+ 3 points par dé supplé- des inhalations, etc. L’effet technique ne varie cepen- + mentaire au-delà du premier). dant pas, quelle que soit la forme prise par le composé. + • Langue de serpent (7 points) : ajoute 1 dé Seul le mode d’administration peut différer (ingestion, + supplémentaire à lancer sur tous les jets application, injection, inhalation, etc.). + de Filouterie du lanceur pour une durée de + 1 scène (ou augmente de 1 son Aptitude sociale + dans le cas d’un PNJ) ; accorde 1 dé-faste + gratuit à tous ses jets sociaux, tant que sa une fois la préparation terminée, l’ingérer, se + capacité à mentir ou manipuler peut servir l’appliquer ou la projeter sur quelqu’un ne prend + (+ 3 points par dé supplémentaire au-delà qu’une seule action qui coûte 3 crans d’initiative. + du premier) (+ 2 points par dé-faste sup- + plémentaire au-delà premier). + Il est possible de déclencher chaque Effet Acupuncture + plusieurs fois dans un même sort. Le coût pour + en augmenter les effets est précisé entre paren- Utilisant le corps de son patient comme + thèses. Il est aussi possible de les combiner entre un laboratoire (que ce soit par des techniques + eux pour créer de nouveaux sorts plus puissants. d’acupuncture pure, des massages ou de la + moxibustion), le PJ peut bloquer chez lui les + effets de maladies et de poisons (physiques ou + spirituels) et lui permettre de guérir plus vite. + Alchimie (Eau) Connaissant parfaitement les points vitaux et + les méridiens d’énergie, il sait aussi diagnosti- + L’alchimie (parfois appelée « alchimie ex- quer des maladies (là aussi physiques ou spiri- + terne » par opposition au cinabre interne) est tuelles) et examiner un corps – afin de pratiquer + l’art de concocter des potions et des poisons, une autopsie mystique, par exemple. + mais aussi des préparations aux effets variés et Si l’acupuncture est à l’origine une tech- + imprévisibles. La technique ancestrale de l’acu- nique destinée à soigner et apaiser, elle se + puncture fait elle aussi partie de l’alchimie – le montre aisée à détourner et peut aussi bien + corps du patient devenant le terrain d’expéri- servir à blesser et à faire souffrir. Rares sont + mentation de l’alchimiste. les fat si qui l’utilisent de cette manière, mais + Le temps de préparation de la plupart des comme dit le proverbe « on combat le poison par + potions que permet de concocter l’alchimie est le poison », et si se servir de l’acupuncture de + long – plusieurs heures en général. Cependant, façon agressive permet d’atteindre un but noble, + + +302 + certains pratiquants n’hésiteront pas à le faire. EXEMPLES les chroniques +La majorité des exorcistes considère cependant + + + de l’étrange +que d’un acte ainsi entaché, aucun bien ne peut Voici une liste non exhaustive de sorts utiles, +naître… En revanche, des sorciers sans scrupule avec leur coût en Puissance : +se montreront sans doute moins timorés. • Diagnostic (2 points) : établit un diagnostic + 怪 Élément associé : Métal médical, physique ou spirituel (+ 2 ou + 怪 Hei : Yin + 4 points pour obtenir des informations + 怪 Temps de réalisation (rituel) : 1 heure supplémentaires, en fonction de l’impact sur le + 怪 Temps de réalisation (accéléré) : 12 crans scénario – à la discrétion du MJ). + d’initiative • Rétablir l’équilibre (3 points) : diminue + + la magie + 怪 Flash-back : non de 1 point la valeur d’une source de dégâts + 怪 Composantes : physiques ou spirituels récurrents (maladie, + • Mots : sûtra du diamant, prière à poison, malédiction, etc.), ce qui l’annule si + Sannung, citation du Wong Ting Ging cette valeur est réduite à 0 (+ 3 points par + • Gestes : utilisation des aiguilles, pres- diminution supplémentaire de 1 point). + sion sur les points vitaux, massage • Favoriser la circulation des énergies + • État d’esprit : humeur apaisée, (3 points) : ajoute 1 dé supplémentaire à lancer + concentration sur un prochain jet de récupération (+ 3 points + • Consommables : encens, huiles essen- par dé supplémentaire au-delà du premier). + tielles, moxa, bougies Chaque Effet peut être déclenché plusieurs fois + • Objets : schéma des points vitaux et mé- dans un même sort en payant le coût indiqué entre + ridiens d’énergie, aiguilles (or, argent, parenthèses. Ainsi, il devient possible de soigner + etc.) une maladie en diminuant la valeur de la source + 怪 Effets : de dégâts récurrents d’une valeur de 2, la rédui- + • Il n’est pas aisé de s’affecter soi-même sant ainsi potentiellement à 0, tout en octroyant + avec les sorts de cette Spécialité, qui 1 dé supplémentaire à lancer sur le prochain jet de + cible habituellement d’autres person- récupération afin de guérir plus vite des pertes de + nages (PJ ou PNJ). Si un fat si souhaite Zing éventuellement subies auparavant. + l’utiliser sur lui-même, la difficulté du + jet de magie augmente de 1. + • L’Effet « source de dégâts récurrents » Élixirs + permet de diminuer la valeur d’un poi- + son ou d’une infection démoniaque, Le PJ sait préparer des potions dont les proprié- + indiquant le renforcement des points tés curatives sont exceptionnelles et permettent + vitaux. Cela peut aller jusqu’à détruire de soigner le corps aussi bien que l’âme. Celui qui + cette source de dégâts récurrents en les ingère guérit ainsi de façon immédiate et spec- + abaissant sa valeur à 0. À l’inverse, taculaire, regagnant santé et sérénité. + ce même Effet utilisé pour créer une Des potions fortifiantes permettent égale- + « source de dégâts récurrents » peut ment de renforcer l’expression d’un élément + provoquer un déséquilibre dans le corps dans le corps de celui qui les ingère. + de la cible et lui infliger une forme 怪 Élément associé : Eau + d’intoxication. 怪 Hei : Yin + • L’Effet « bonus » octroie des dés sup- 怪 Temps de réalisation (rituel) : 4 heures + plémentaires à lancer sur un jet de 怪 Temps de réalisation (accéléré) : boire un + récupération afin de guérir plus vite, élixir déjà préparé, ceux-ci sont stockables + pendant une période couverte par l’Ef- et transférables + fet « durée ». L’Effet « malus » diminue 怪 Flash-back : oui, pour préparer la potion + au contraire le nombre de dés à lancer 怪 Composantes : + sur le jet de récupération, reflétant un • Mots : prière à Sannung, prière à Leoi + blocage de la circulation de l’énergie Dungban, citation du Wong Ting Ging + vitale dans le corps. • Gestes : gestes rituels de concoction des + • L’Effet « ampleur » indique l’importance élixirs + des informations apprises par le person- • État d’esprit : concentration, humeur + nage sur une maladie à diagnostiquer expérimentale + ou lors d’une autopsie. • Consommables : plantes (ginseng, radis noir, + etc.), minéraux (cinabre, jade, etc.), alcool + • Objets : livre de recettes, instruments + d’alchimie (fioles, tubes, balance, mor- + tier, etc.) anciens ou modernes + + + 303 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + 怪 Effets : • Élixir de bénédiction du métal (4 points) : le + • L’Effet « Trois Trésors » indique le Zing, bénéficiaire gagne 1 dé-faste gratuit à tous ses + le San ou le Hei (un panachage est pos- jets basés sur l’Aspect Métal pour une durée + sible) que la personne avalant la potion de 1 scène (+ 2 points par dé-faste supplé- + récupère de façon immédiate. mentaire au-delà du premier). + • L’Effet « Trois Trésors » indique aussi la • Élixir de Yin (4 points) : le bénéficiaire récu- + diminution des malus dus à une perte de père 2 points de Hei Yin. + Zing ou de San, cette diminution restant • Élixir de Yang (4 points) : le bénéficiaire ré- + effective durant une période couverte cupère 2 points de Hei Yang. + par l’Effet « durée ». • Élixir de la flamme intérieure (5 points) : le + • L’Effet « bonus » indique les dés-fastes bénéficiaire ajoute 1 dé supplémentaire à lan- + ou dés supplémentaires à lancer lors d’ac- cer sur tous ses jets basés sur l’Aspect Feu + tions impliquant un Aspect choisi, dont pour une durée de 1 scène (ou augmente de 1 + l’expression de l’élément associé est atti- son Aptitude sociale dans le cas d’un PNJ) + sée dans le corps de l’utilisateur durant (+ 3 points par dé supplémentaire au-delà + une période couverte par l’Effet « durée ». du premier). + • Élixir du vent du changement (5 points) : le + EXEMPLES bénéficiaire ajoute 1 dé supplémentaire à lan- + cer sur tous ses jets basés sur l’Aspect Bois + Voici une liste non exhaustive de potions pour une durée de 1 scène (ou augmente de 1 + utiles, avec leur coût en Puissance : son Aptitude spirituelle dans le cas d’un PNJ) + • Potion de soin physique (2 points) : le béné- (+ 3 points par dé supplémentaire au-delà + ficiaire récupère 1 point de Zing (+ 2 points du premier). + par point de Zing supplémentaire au-delà du • Élixir de la montagne immobile (5 points) : le + premier). bénéficiaire ajoute 1 dé supplémentaire à lan- + • Potion de soin psychique (2 points) : le bé- cer sur tous ses jets basés sur l’Aspect Terre + néficiaire récupère 1 point de San (+ 2 points pour une durée de 1 scène (ou augmente de 1 + par point de San supplémentaire au-delà du son Aptitude physique dans le cas d’un PNJ) + premier). (+ 3 points par dé supplémentaire au-delà + • Élixir de vigueur (4 points) : le bénéficiaire du premier). + ignore les malus dus aux pertes de Zing pour • Élixir de l’eau sacrée (5 points) : le bénéficiaire + une durée de 1 scène. ajoute 1 dé supplémentaire à lancer sur tous + • Élixir de détermination (4 points) : le bénéfi- ses jets basés sur l’Aspect Eau pour une durée + ciaire ignore les malus dus aux pertes de San de 1 scène (ou augmente de 1 son Aptitude + pour une durée de 1 scène. mentale dans le cas d’un PNJ) (+ 3 points + • Élixir de restauration (4 points) : le bénéfi- par dé supplémentaire au-delà du premier). + ciaire récupère 1 point de Zing et 1 point de • Élixir du vif-argent (5 points) : le bénéficiaire + San (+ 4 points par point de Zing et de San ajoute 1 dé supplémentaire à lancer sur tous ses + supplémentaire au-delà des premiers). jets basés sur l’Aspect Métal pour une durée de + • Élixir de bénédiction du feu (4 points) : le bé- 1 scène (ou augmente de 1 son Aptitude mar- + néficiaire gagne 1 dé-faste gratuit à tous ses tiale dans le cas d’un PNJ) (+ 3 points par dé + jets basés sur l’Aspect Feu pour une durée de supplémentaire au-delà du premier). + 1 scène (+ 2 points par dé-faste supplémen- • Sang de Kun Ng Bao (6 points) : le bénéficiaire + taire au-delà du premier). ignore les malus dus aux pertes de Zing et de + • Élixir de bénédiction du bois (4 points) : le San pour une durée de 1 scène – cette potion + bénéficiaire gagne 1 dé-faste gratuit à tous ses a tendance à rendre ceux qui la boivent té- + jets basés sur l’Aspect Bois pour une durée de méraires, car ils ne ressentent plus la douleur. + 1 scène (+ 2 points par dé-faste supplémen- • Potion du professeur Shan Shen (8 points) : le + taire au-delà du premier). bénéficiaire récupère 1 point de chaque Trésor + • Élixir de bénédiction de la terre (4 points) : le (1 Zing, 1 San et 1 Hei de chaque type) – la + bénéficiaire gagne 1 dé-faste gratuit à tous ses rumeur dit que cette potion possède d’autres + jets basés sur l’Aspect Terre pour une durée de vertus cachées et qu’elle augmente la lon- + 1 scène (+ 2 points par dé-faste supplémen- gévité, quand d’autres prétendent qu’elle est + taire au-delà du premier). légèrement addictive. + • Élixir de bénédiction de l’eau (4 points) : le Chaque recette nécessite son propre sort pour + bénéficiaire gagne 1 dé-faste gratuit à tous ses être préparée. Il est toutefois possible d’utiliser + jets basés sur l’Aspect Eau pour une durée de plus de Puissance pour en renforcer les effets + 1 scène (+ 2 points par dé-faste supplémen- selon les indications fournies entre parenthèses. + taire au-delà du premier). + +304 + 怪 Effets : les chroniques + Poisons • L’Effet « source de dégâts récurrents » + + + de l’étrange + permet de créer une source de dégâts + Le PJ sait préparer des toxiques redoutables, récurrents (la toxine en question) et d’en +capables d’infecter aussi bien l’âme que le fixer la valeur et la fréquence, durant une +corps de celui qui y est soumis – pour le tuer période couverte par l’Effet « durée ». +ou l’affaiblir. • L’Effet « malus » traduit l’affaiblisse- + Empoisonner une victime peut se faire de di- ment provoqué par le poison en impo- +verses façons : glisser le venin dans sa nourriture sant des dés-néfastes ou en diminuant +ou sa boisson, le pulvériser dans l’air pour lui le nombre de dés à lancer lors d’actions + + + la magie +faire respirer, lui injecter directement… Dans ce particulières (liées à un Aspect ou une +dernier cas, il faut blesser la cible (c’est-à-dire Compétence), et ce à chaque fois que la +lui faire perdre au moins 1 point de Zing) avec victime rate son jet d’Aspect privilégié. +l’objet imprégné (lame recouverte, aiguille, etc.) Le malus perdure jusqu’au prochain jet +pour que le poison pénètre dans son organisme. d’Aspect privilégié. + 怪 Élément associé : Terre + 怪 Hei : Yin ou Yang EXEMPLES + 怪 Temps de réalisation (rituel) : 4 heures + 怪 Temps de réalisation (accéléré) : utiliser un Voici une liste non exhaustive de poisons + poison déjà préparé, ceux-ci sont stockables utiles, avec leur coût en Puissance : + et transférables • Venin d’araignée (5 points) : ce poison est une + 怪 Flash-back : oui, pour préparer le poison source de dégâts physiques récurrents d’une + 怪 Composantes : valeur de 1, nécessitant un jet de résistance + • Mots : prière aux Cinq Venins toutes les 6 heures et qui s’attaque au Zing + • Gestes : gestes rituels de concoction des de sa victime ; ses effets s’arrêtent au premier + poisons jet de résistance réussi (+ 3 points par point + • État d’esprit : concentration, humeur de valeur supplémentaire au-delà du premier) + venimeuse (+ 4 points pour imposer un jet de résistance + • Consommables : plantes (ciguë, amanite, tous les 6 crans d’initiative). + etc.), minéraux (soufre, obsidienne, • Thé infernal (5 points) : ce poison est une + etc.), toxiques (venin de divers animaux) source de dégâts spirituels récurrents d’une + • Objets : livre de recettes, instruments valeur de 1, nécessitant un jet de résistance + d’alchimie (fioles, tubes, balance, pilon, toutes les 6 heures et qui s’attaque au Zing + etc.) anciens ou modernes de sa victime. Ses effets s’arrêtent au premier + + + + + 305 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + jet de résistance réussi (+ 3 points par point dans le cas d’un PNJ). Les effets s’arrêtent au + de valeur supplémentaire au-delà du premier) premier jet de résistance réussi (+ 3 points + (+ 4 points pour imposer un jet de résistance par point de valeur supplémentaire au-delà + tous les 6 crans d’initiative). du premier) (+ 4 points pour imposer un jet + • Baiser de la colère (7 points) : ce poison est de résistance à chaque scène). + une source de dégâts spirituels récurrents • Vengeance de Jiang Zhe (10 points) : conçu + d’une valeur de 1, nécessitant un jet de ré- à la base pour punir les époux infidèles, ce + sistance toutes les vingt-quatre heures. Il poison lent est une source de dégâts spirituels + rend colérique, faisant perdre 1 point de San et récurrents d’une valeur de 1, nécessitant un jet + imposant 2 dés-néfastes sur tous les jets im- de résistance toutes les vingt-quatre heures et + pliquant l’Aspect Métal (ou l’Aptitude martiale qui s’attaque au San de sa victime. Il l’affecte + dans le cas d’un PNJ). Ses effets s’arrêtent au pendant cinq jours, puis ses effets s’arrêtent + premier jet de résistance réussi (+ 3 points au premier jet de résistance réussi après cette + par point de valeur supplémentaire au-delà durée (+ 3 points par point de valeur supplé- + du premier) (+ 4 points pour imposer un jet mentaire au-delà du premier). + de résistance à chaque scène). • Venin de cobra (12 points) : ce célèbre poison + • Fongus des apparitions (7 points) : ce poison naturel est une source de dégâts physiques + est une source de dégâts physiques récur- récurrents d’une valeur de 1, nécessitant un jet + rents d’une valeur de 1, nécessitant 1 jet toutes de résistance toutes les quinze minutes (où à + les vingt-quatre heures. Il brouille les sens, chaque scène) et qui s’attaque au Zing de sa + faisant perdre 1 point de Zing et imposant victime. Il l’affecte pendant douze heures, à + 2 dés-néfastes sur tous les jets impliquant moins qu’elle ne reçoive des soins appropriés + l’Aspect Bois (ou l’Aptitude mentale dans le (+ 3 points par point de valeur supplémen- + cas d’un PNJ). Ses effets s’arrêtent au pre- taire au-delà du premier) (+ 2 points pour un + mier jet de résistance réussi (+ 3 points par venin concentré, nécessitant un jet de résis- + point de valeur supplémentaire au-delà du tance tous les 6 crans d’initiative). + premier) (+ 4 points pour imposer un jet de • Danse des Cinq Venins (15 points) : rare et + résistance à chaque scène). difficile à fabriquer, ce poison très ancien + • Larme voilée (7 points) : ce poison est une qui engourdit les membres est une source + source de dégâts physiques récurrents d’une de dégâts physiques récurrents d’une valeur + valeur de 1, nécessitant un jet toutes les vingt- de 1, nécessitant un jet de résistance toutes + quatre heures. Il fait couler des larmes de sang les quinze minutes (où à chaque scène). Il + et perturbe l’équilibre, faisant perdre 1 point retire 1 dé à lancer à tous les jets physiques + de Zing et imposant 2 dés-néfastes sur tous de la cible (ou diminue de 1 son Aptitude + les jets impliquant l’Aspect Eau (ou l’Aptitude physique dans le cas d’un PNJ), qu’il affecte + physique dans le cas d’un PNJ). Ses effets durant douze heures à moins qu’elle ne reçoive + s’arrêtent au premier jet de résistance réussi des soins appropriés (+ 3 points par point + (+ 3 points par point de valeur supplémen- de valeur supplémentaire au-delà du premier) + taire au-delà du premier) (+ 4 points pour (+ 2 points pour imposer un jet de résistance + imposer un jet de résistance à chaque scène). tous les 6 crans d’initiative). + • Rancune des flammes (7 points) : ce poison • Griffure de la reine (15 points) : c’est généra- + est une source de dégâts spirituels récur- lement un poison dont les assassins enduisent + rents d’une valeur de 1, nécessitant un jet leurs armes, il est une source de dégâts phy- + toutes les vingt-quatre heures. Il fait bouillir siques récurrents d’une valeur de 1, nécessitant + les humeurs, faisant perdre 1 point de Hei un jet de résistance tous les 6 crans d’initiative + Yin et imposant 2 dés-néfastes sur tous les pendant une durée de 1 scène – à moins que + jets impliquant l’Aspect Terre (ou l’Aptitude sa cible reçoive des soins appropriés. En cas + spirituelle dans le cas d’un PNJ). Ses effets d’échec au jet de résistance, la victime perd + s’arrêtent au premier jet de résistance réussi 1 point de chacune de ses réserves de Hei + (+ 3 points par point de valeur supplémen- (2 points de Hei dans le cas d’un PNJ) ainsi + taire au-delà du premier) (+ 4 points pour que 1 point de Zing (+ 3 points par point de + imposer un jet de résistance à chaque scène). valeur supplémentaire au-delà du premier). + • Spore de cristal (7 points) : ce poison est Chaque recette nécessite son propre sort pour + une source de dégâts spirituels récurrents être préparée. Il est toutefois possible d’utiliser + d’une valeur de 1, nécessitant un jet toutes les plus de Puissance pour en renforcer les effets + vingt-quatre heures. Il rend le teint blafard selon les indications fournies entre parenthèses. + et maladif, faisant perdre 1 point de Hei Yang + imposant 2 dés-néfastes sur tous les jets im- + pliquant l’Aspect Feu (ou l’Aptitude spirituelle + +306 + avec précision, il faut alors utiliser l’Effet « am- les chroniques + Arsenal pleur ». Pour chaque niveau d’Ampleur, le + + + de l’étrange + nombre de cibles affectées au maximum est + Les armes alchimiques sont des préparations augmenté de 2, chacune de ces cibles devant se +destinées à attaquer un adversaire afin de le bles- trouver à distance courte les unes des autres. +ser, de le paralyser, de l’aveugler, etc. La potion +contenue dans une fiole possède de puissantes EXEMPLES +propriétés souvent comparables à celles d’armes +de guerre (comme le napalm, le gaz sarin, etc.). Voici une liste non exhaustive d’armes alchi- + L’utilisation de ces armes alchimiques im- miques utiles, avec leur coût en Puissance : + + la magie +plique le plus souvent de les projeter sur la cible • Fiole de foudre liquide (3 points) : inflige +afin qu’elles libèrent leur potentiel destructeur. 3 dégâts et affecte même les créatures imma- + 怪 Élément associé : Feu térielles. Si l’arme est projetée (par exemple + 怪 Hei : Yang un lance-projectile, comme le LBD de Brenda + 怪 Temps de réalisation (rituel) : 4 heures Kang (cf p. X)), ces dégâts s’ajoutent à ceux + 怪 Temps de réalisation (accéléré) : utiliser de l’outil (+ 1 point par dégât supplémentaire + une préparation toute prête, celles-ci sont au-delà du premier) (+ 2 points pour affecter + stockables et transférables jusqu’à 3 cibles proches, + 2 points supplé- + 怪 Flash-back : oui, pour préparer l’arme mentaires pour affecter 5 cibles). + alchimique • Grenade aveuglante (3 points) : la cible reçoit + 怪 Composantes : 1 dé-néfaste sur toute action qui nécessite de + • Mots : prière à Sannung, prière à Leoi voir durant les 12 prochains crans d’initiative + Dungban, prière à Gwaan Dai (+ 2 points par dé-néfaste supplémentaire + • Gestes : gestes rituels de concoction des au-delà du premier) (+ 2 points pour affecter + préparations magiques jusqu’à 3 cibles proches, + 2 points supplé- + • État d’esprit : concentration, pensées mentaires pour affecter 5 cibles). + martiales • Grenade de potion collante (4 points) : la + • Consommables : herbes (urticantes, cible reçoit 1 dé-néfaste sur toute action qui + vénéneuses, etc.), minéraux toxiques nécessite de bouger durant 1 scène. Elle doit + (mercure, plomb, etc.) effectuer une action, coûtant 6 crans d’ini- + • Objets : livre de recettes, instruments tiative, pour se débarrasser de la substance + d’alchimie (fioles, tubes, balance, pilon, (+ 2 points par dé-néfaste supplémentaire + etc.) anciens ou modernes au-delà du premier). + 怪 Effets : • Grenade paralysante (5 points) : la cible perd + • L’Effet « Trois Trésors » transcrit les 1 dé à lancer (ou diminue de 1 son Aptitude + dégâts physiques que provoque l’arme. physique dans le cas d’un PNJ) à tout jet + • L’Effet « malus » traduit une gêne physique ou sur toute action qui nécessite de + provoquée par l’arme en imposant se déplacer. L’effet dure 1 scène (+ 3 points + des dés-néfastes ou en diminuant le par dé retiré supplémentaire au-delà du + nombre de dés à lancer lors d’actions premier) (+ 2 points pour affecter jusqu’à + particulières (liées à un Aspect ou une 3 cibles proches, + 2 points supplémentaires + Compétence) – comme le ferait une pour affecter 5 cibles) – si la cible n’a plus + potion gelant des parties du corps de aucun dé à lancer (ou si son Aptitude phy- + la cible – et cela pendant une période sique est réduite à 0 dans le cas d’un PNJ), + correspondant à l’Effet « durée ». elle ne peut pas agir et se trouve totalement + • L’Effet « source de dégâts récurrents » paralysée même si cela reste temporaire et si + permet de créer une source de dégâts d’autres effets (y compris l’utilisation de la Tin + récurrents (si l’arme est une sorte de Ji du MJ) peuvent changer cela par la suite. + bombe incendiaire mettant le feu à la • Fiole d’acide (10 points) : cette arme alchi- + cible, par exemple) et d’en fixer la force mique est une source de dégâts physiques + et la fréquence, durant une période cou- récurrents d’une valeur de 1, nécessitant un jet + verte par l’Effet « durée ». de résistance toutes les minutes (ou 12 crans + Les Effets n’affectent qu’une cible à la fois. Il d’initiative). Ses effets durent 1 scène : même +est possible d’augmenter la zone touchée en uti- si des jets de résistance sont réussis, de +lisant l’Effet « aire » mais dans ce cas, les armes nouveaux sont à effectuer à moins de laver +alchimiques affectent une grande surface dans les vêtements ou la blessure à grandes eaux +sa totalité (elles remplissent par exemple toute (+ 3 points par point de valeur supplémen- +une pièce de fumée). Pour créer des armes al- taire au-delà du premier) (+ 2 points pour +chimiques ayant une petite aire d’effet contrôlée affecter jusqu’à 3 cibles proches). + + 307 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + • Grenade de nuage de poison spirituel • Objets : livre de recettes, instruments + (10 points) : cette arme alchimique crée d’alchimie (fioles, tubes, balance, mor- + une aire d’effet qui remplit une pièce d’un tier, etc.) anciens ou modernes + poison violent n’affectant que les créatures 怪 Effets : + surnaturelles. Pour elles, la zone concernée • L’Effet « Trois Trésors » indique les + devient une source de dégâts spirituels ré- dégâts supplémentaires que peut provo- + currents d’une valeur de 1, nécessitant un jet quer un personnage changé par l’inges- + de résistance toutes les minutes (ou 12 crans tion d’une potion (en transmutant ses + d’initiative). Les effets cessent si les jiugwaai poings en roche ou en lui permettant de + quittent la zone (+ 3 points par point de va- cracher des flammes…) mais également + leur supplémentaire au-delà du premier). la protection le recouvrant (transformer + • Bombe incendiaire purificatrice (12 points) : sa peau en écorce, etc.) pour le protéger + inflige 3 dégâts et affecte même les créa- de dégâts physiques. + tures immatérielles. Si l’arme est projetée • Ce même Effet peut être utilisé pour di- + (par exemple un lance-projectile, comme le minuer les malus dus à la perte de Zing + LBD de Brenda Kang (cf p. X)), ces dégâts afin de simuler la résistance accrue à la + s’ajoutent à ceux de l’outil. La cible prend feu douleur d’un corps changé (en pierre, + et est alors affectée par une source de dégâts par exemple). + physiques récurrents d’une valeur de 1, né- • L’Effet « bonus » indique les dés-fastes + cessitant un jet de résistance tous les 6 crans ou dés supplémentaires à lancer lors + d’initiative. Les effets cessent dès le premier d’actions cohérentes avec la transfor- + jet de résistance réussi (+ 1 point par dégât mation induite (par exemple, devenir + initial supplémentaire) (+ 3 points par point aussi transparent que l’eau octroie des + de valeur supplémentaire au-delà du premier) bonus aux jets en rapport avec la discré- + (+ 2 points pour affecter jusqu’à 3 cibles tion – Compétence Filouterie). + proches, + 2 points supplémentaires pour • L’Effet « ampleur » indique l’importance + affecter 5 cibles). des effets annexes éventuels qui peuvent + Chaque recette nécessite son propre sort pour être obtenus grâce à des philtres et qui + être préparée. Il est toutefois possible d’utiliser ne se quantifient pas simplement avec + plus de Puissance pour en renforcer les effets des bonus en dés ou en valeurs chif- + selon les indications fournies entre parenthèses. frées. Par exemple : la capacité de voir + l’invisible (Ampleur moyenne) ou d’at- + taquer les êtres spirituels intangibles + Philtres (Ampleur faible) – jusqu’à des capacités + spectaculaires comme la capacité de + Les potions que prépare le PJ octroient des voler ou de devenir soi-même invisible + capacités clairement surhumaines à ceux qui (Ampleur importante). + les ingèrent. Cracher du feu, transformer sa L’Effet « durée » permet de décider du temps + peau en pierre, couvrir ses poings de fer, de- durant lequel la transmutation perdure. + venir translucide, se contorsionner comme des + branches flexibles, etc. EXEMPLES + Les effets de ces préparations sont toujours en + lien avec les cinq éléments de la tradition taoïste. Voici une liste non-exhaustive de philtres + 怪 Élément associé : Bois utiles, avec leur coût en Puissance : + 怪 Hei : Yang • Philtre de poings d’acier (3 points) : permet + 怪 Temps de réalisation (rituel) : 4 heures au bénéficiaire d’occasionner 1 dégât supplé- + 怪 Temps de réalisation (accéléré) : boire un mentaire sur une attaque à mains nues pour + philtre déjà préparé, ceux-ci sont stockables une durée de 1 scène (+ 1 point par dégât + et transférables supplémentaire au-delà du premier). + 怪 Flash-back : oui, pour préparer le philtre • Philtre d’enivrant parfum (4 points) : permet + 怪 Composantes : au bénéficiaire d’obtenir 1 dé-faste gratuit à + • Mots : prière à Sannung, prière à Leoi tous ses jets impliquant de séduire ou charmer, + Dungban, citations du Dou Dak Ging pour une durée de 1 scène (+ 2 points par + • Gestes : gestes rituels de concoction des dé-faste supplémentaire au-delà du premier). + préparations magiques • Philtre de peau de pierre (5 points) : permet + • État d’esprit : concentration, pensées au bénéficiaire d’obtenir 1 point de pro- + liées aux éléments tection physique pour une durée de 1 scène + • Consommables : pierres, plantes, soufre, (+ 3 points par point de protection supplé- + eau, métaux (limaille de fer, etc.) mentaire au-delà du premier). + +308 + • Philtre de volonté de fer (5 points) : permet les chroniques + au bénéficiaire d’obtenir 1 point de protection maîtrise de la Voie + de l’étrange + spirituel pour une durée de 1 scène. Ce philtre + se limite spécifiquement à résister à la peur et + aux traumatismes liés à l’horreur de certaines + (terre) + créatures surnaturelles (+ 3 points par aug- La Maîtrise de la Voie englobe diverses + mentation de la protection de + 1). magies rituelles, dont certaines représentent +• Philtre de bénédiction du Tao (5 points) : per- l’essence même du taoïsme. Cette magie vise + met au bénéficiaire d’obtenir 1 point de pro- en effet à donner à son pratiquant une maîtrise + tection spirituelle pour une durée de 1 scène. des forces naturelles et surnaturelles – jusqu’à + + + la magie + Ce philtre se limite spécifiquement à protéger pouvoir tricher avec la mort ! + des effets des malédictions et sortilèges (+ 3 Quelques magies de cette voie sont parfois + points par augmentation de la protection de périlleuses et risquent de donner mauvaise ré- + + 1). putation à celui qui en use. En réalité, aucune +• Philtre de flexibilité absolue (5 points) : per- magie n’est intrinsèquement maléfique : seule la + met au bénéficiaire de se contorsionner comme façon dont le fat si s’en sert compte. Toutefois à + des branches flexibles et d’obtenir 1 dé sup- l’époque moderne, de nombreux tabous parfois + plémentaire à lancer (ou d’augmenter de 1 son issus d’autres cultures donnent une mauvaise + Aptitude physique) sur tous ses jets où cette image de certaines pratiques – il ne faut pas + capacité peut s’avérer utile pour une durée oublier que Hong Kong a longtemps été sous + de 1 scène. Son utilisation est perçue par influence occidentale. + les témoins comme ouvertement surnaturelle Toutefois même dans l’esprit de la magie + (+ 3 points par dé supplémentaire au-delà chinoise, abuser de méthodes extrêmes ou am- + du premier). biguës peut porter atteinte à l’essence du fat +• Philtre de la flamme intérieure (5 points) : per- si – celui qui maudit sans compter ou ne laisse + met au bénéficiaire de cracher une salive à pas les défunts reposer en paix risque de voir la + la fois inflammable et corrosive occasionnant Volonté du Ciel se retourner contre lui. On ne + 1 dégât (la Compétence Combat à distance joue pas avec le feu sans risquer de se brûler… + s’applique, ou l’Aptitude martiale dans le cas + d’un PNJ). De tels crachats sont projetés à + distance courte et se révèlent capables d’en- MalÉdiction + flammer certaines substances et d’en ronger + d’autres (à la discrétion du MJ – en respec- Le PJ peut maudire une personne qu’il + tant une « Ampleur faible ») (+ 1 point par connaît, afin d’attirer le malheur sur elle. Il est + dégât supplémentaire au-delà du premier). nécessaire de connaître la victime et de possé- +• Philtre d’invisibilité relative (7 points) : per- der quelque chose qui lui appartienne afin de + met au bénéficiaire de devenir en partie invi- créer le lien : objet, mèche de cheveux, rognure + sible, comme si un voile rendait son corps et d’ongle, sang, sperme, etc. Certains fat si uti- + son équipement translucide et flou, pour une lisent de petites figurines à l’image de leur cible + durée de 1 scène. L’Effet correspond à accorder afin de renforcer encore le maléfice. + 1 dé-faste à tous les jets de Filouterie, ainsi La personne maudite sera victime de mal- + qu’à ajouter 1 dé supplémentaire à lancer (ou chance et pourra même commencer à perdre + à augmenter de 1 l’Aptitude physique dans le l’esprit. La malédiction doit être claire et précise + cas d’un PNJ) pour les actions en rapport avec quant à son champ d’application : provoquer une + la discrétion (+ 2 points par dé-faste sup- éruption de boutons sur le visage pour imposer + plémentaire au-delà du premier) (+ 3 points des malus aux jets sociaux, imposer des cauche- + par dé supplémentaire au-delà du premier). mars pour empêcher un sommeil réparateur, in- +• Philtre de regard brûlant (9 points) : per- voquer les dieux du bonheur afin qu’ils retirent + met au bénéficiaire de percevoir l’invisible leur protection, etc. Souvent, les effets d’une + et d’ajouter ainsi 1 dé supplémentaire à lancer malédiction sont plus spirituels que physiques. + (ou à augmenter de 1 l’Aptitude mentale dans Une autre façon de maudire une personne + le cas d’un PNJ) sur tous ses jets d’Enquête est de déposer une plainte contre elle et de la + en rapport avec la vigilance et la perception transmettre au Ciel. Le PJ doit alors rédiger + visuelle pour la scène (+ 3 points par dé un formulaire de plainte céleste, écrit avec de + supplémentaire au-delà du premier). l’encre au cinabre sur un papier jaune, puis le + Chaque recette nécessite son propre sort pour brûler avec de l’encens afin de communiquer ses +être préparée. Il est toutefois possible d’utiliser griefs à une divinité. +plus de Puissance pour en renforcer les effets 怪 Élément associé : Métal +selon les indications fournies entre parenthèses. 怪 Hei : Yin + + + + + 309 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + 怪 Temps de réalisation (rituel) : 4 heures EXEMPLES + 怪 Temps de réalisation (accéléré) : non + applicable Voici une liste non exhaustive de malédic- + 怪 Flash-back : oui tions utiles, avec leur coût en Puissance : + 怪 Composantes : • Mauvais œil (5 points) : lancée jusqu’à + • Mots : imprécations envers la personne distance courte, cette malédiction en- + maudite, prière à une divinité concernée traîne la malchance de sa cible, qui subit + • Gestes : mouvements agressifs, inges- 1 dé-néfaste à chacune de ses actions pen- + tion d’une partie du corps de la per- dant une durée de 1 scène (+ 2 points par + sonne à maudire dé-faste supplémentaire au-delà du pre- + • État d’esprit : pensées mauvaises cen- mier) (+ 4 points pour étendre la malédic- + trées sur la personne à maudire, colère, tion à une durée de 1 journée) (+ 2 points + indignation pour affecter jusqu’à 3 cibles, + 2 points + • Consommables : formulaire de plainte supplémentaires pour affecter 5 cibles) + céleste, encens, partie du corps de la (+ 1 point pour passer à distance extrême + personne à maudire – mais toujours en vue). + • Objets : figurine, objet appartenant à la • Malédiction de la faiblesse du corps + personne à maudire, amulette, sceau de (6 points) : la cible de cette malédiction qui + jade se lance jusqu’à distance courte se sent fa- + 怪 Effets : tiguée et faible. Elle retire 1 dé à lancer (ou + • L’Effet « source de dégâts récurrents » diminue de 1 ses Aptitudes dans le cas d’un + permet de créer une source de dégâts PNJ) à chacune de ses actions pendant une + récurrents (comme des cauchemars ou durée de 1 scène. L’Effet est le même que + des visions) et d’en fixer la force et la si elle subissait un malus dû à une perte + fréquence, durant une période couverte de Zing et il peut donc être annulé par + par l’Effet « durée ». les sorts agissant à ce niveau, mais il se + • L’Effet « malus » traduit certains ef- cumule avec les malus dus aux blessures + fets de la malédiction en imposant réelles (+ 3 points par dé à retirer supplé- + des dés-néfastes ou en diminuant le mentaire au-delà du premier) (+ 4 points + nombre de dés à lancer lors d’actions pour étendre la malédiction à une durée de + particulières (liées à un Aspect ou une 1 journée) (+ 2 points pour affecter jusqu’à + Compétence – par exemple, affaiblir le 3 cibles, + 2 points supplémentaires pour + corps aura des conséquences sur les jets affecter 5 cibles) (+ 1 point pour passer à + d’actions physiques). distance extrême – mais toujours en vue) + • L’Effet « distance » indique à quelle – si la cible n’a plus aucun dé à lancer + distance maximum doit se trouver la pour une action (ou voit ses Aptitudes ré- + personne à maudire lors du lancement duites à 0), elle ne peut pas la réaliser car + du sort. devenue trop faible pour bouger. + +310 + • Malédiction du menteur nauséeux les chroniques + (8 points) : la cible de cette malédiction qui Transfiguration + de l’étrange + se lance à distance courte est prise d’une + envie de vomir à chaque fois qu’elle profère Le PJ est capable de transformer son ap- + un mensonge. Elle retire alors 1 dé à lancer parence dans une certaine mesure. Grandir ou + (ou diminue son Aptitude sociale dans le cas rapetisser, changer de sexe, modifier ses traits, + d’un PNJ) sur chaque action où elle essaie ajuster sa corpulence, etc. – jusqu’à copier l’ap- + de mentir et subit 1 dé-néfaste à toutes parence d’une personne précise. Il ne s’agit pas + ses actions sociales pendant une durée de d’une réelle transformation physique ni d’une + 1 scène (+ 3 points par dé à retirer supplé- illusion : en réalité, le fat si modifie son essence + + + la magie + mentaire au-delà du premier) (+ 2 points de façon superficielle ou plus profonde. + par dé-néfaste supplémentaire au-delà du À l’extrême, cette magie permet d’adopter + premier) (+ 4 points pour étendre la malé- la forme d’un animal et d’en acquérir alors les + diction à une durée de 1 journée) (+ 1 point caractéristiques (un oiseau peut voler, un pois- + pour passer à distance extrême – mais tou- son nager sous l’eau, un fauve bénéficier d’une + jours en vue). rapidité toute féline, etc.). +• Damnation spirituelle (10 points) : la cible de 怪 Élément associé : Eau + cette malédiction subit une source de dégâts 怪 Hei : Yin + spirituels récurrents d’une valeur de 1, né- 怪 Temps de réalisation (rituel) : 5 minutes + cessitant un jet de résistance tous les 6 crans 怪 Temps de réalisation (accéléré) : 6 crans + d’initiative jusqu’à ce qu’un de ces jets soit d’initiative + réussi. La damnation spirituelle peut entraî- 怪 Flash-back : non + ner la folie ou la mort pour des esprits faibles 怪 Composantes : + et elle affecte même les créatures sous forme • Mots : prière à Lou Long (dieu des + immatérielle, mais il faut pouvoir clairement acteurs) + voir ou nommer sa cible afin de la lancer • Gestes : gestuelle de la personne ou de + à distance courte (+ 3 points par point de l’animal imité + valeur supplémentaire au-delà du premier) • État d’esprit : concentration, pensées + (+ 1 point pour passer à distance extrême primitives + – mais toujours en vue). • Consommables : partie du corps appar- +• Fléau cauchemardesque (15 points) : cette tenant à la personne ou à l’animal imité + malédiction nécessite de posséder un objet • Objets : objet appartenant à la personne + appartenant à la cible : soit venant de son imitée ou rappelant l’animal imité, + corps (cheveux, ongles, etc.), soit cher à son amulette + âme (objets personnels). Celle-ci doit être 怪 Effets : + à portée de vue au moment du lancement • L’Effet « bonus » indique les dés-fastes + du sort, jusqu’à un maximum de distance ou dés supplémentaires à lancer lors + extrême. La cible souffre de visions cau- d’actions cohérentes avec la transfor- + chemardesques et d‘hallucinations – même mation induite. Par exemple, prendre + éveillée – et ne peut trouver le sommeil du- l’apparence de quelqu’un offre des + rant toute la durée du sort qui est de 1 journée. bonus à utiliser lorsque l’on se fait + Cet effet est une source de dégâts spirituels passer pour cette personne, afin de ne + récurrents d’une valeur de 1, nécessitant un pas être démasqué. Ou encore, ces bo- + jet de résistance à chaque scène (ou toutes nus simulent les avantages empruntés + les quinze minutes). De plus, la cible ne à l’animal dont le personnage prend + peut réaliser aucun jet de récupération pen- la forme : à des jets de Prouesse pour + dant la durée de la malédiction (+ 3 points nager comme un poisson, à des jets de + par point de valeur supplémentaire au-delà Kung-fu pour attaquer comme un tigre, + du premier) (+ 2 points pour augmenter la à des jets de Filouterie pour s’infiltrer + fréquence des jets de résistance à tous les comme un rat, etc. + 6 crans d’initiative) (+ 5 points pour affecter • L’Effet « Trois Trésors » permet de se + la cible même si elle ne se trouve pas à portée créer une protection comparable à la + de vue jusqu’à un rayon de dix kilomètres). résistance d’un animal dont le person- + Chaque malédiction nécessite son propre nage emprunte l’apparence : la carapace +sort pour être lancée. Il est toutefois possible d’une tortue, l’endurance d’un ours, etc. +d’utiliser plus de Puissance pour en renforcer Il permet également d’indiquer la perte +les effets selon les indications fournies entre de points de Zing d’un adversaire que +parenthèses. le PJ attaque au moyen d’attributs qu’il + s’est créés (griffes, serres, crocs, etc.). + + + 311 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + • L’Effet « ampleur » indique l’impor- l’aspect surnaturel des attaques encore plus + tance des effets annexes éventuels qui évident aux yeux d‘éventuels observateurs) + peuvent être obtenus grâce à des trans- (+ 4 points pour étendre la durée à 1 journée). + formations et qui ne se quantifient pas • Traits animaux : Protection naturelle (5 points) : + simplement avec des bonus en dés ou gardant son apparence humaine, le lanceur + en valeurs chiffrées. Par exemple, la dispose d’une protection physique de 1 (figu- + capacité à respirer sous l’eau (Ampleur rant les attributs défensifs de l’animal choisi : + faible), de prendre l’apparence du dé- endurance, fourrure, défenses, carapace, etc.). + cor comme un caméléon (Ampleur L’Effet dure 1 scène (+ 3 points par point de + moyenne) ou même de voler comme un protection supplémentaire au-delà du premier, + oiseau (Ampleur importante). mais toute augmentation de la protection de + L’Effet « durée » indique le temps durant le- base du sort rend l’aspect surnaturel de cette + quel la mutation perdure. défense encore plus évident aux yeux d’éven- + tuels observateurs) (+ 4 points pour étendre + EXEMPLES la durée à 1 journée). + • Traits animaux : Capacité naturelle (5 points) : + Voici une liste non exhaustive de métamor- gardant son apparence humaine, le lanceur + phoses utiles, avec leur coût en Puissance : obtient la qualité physique d’un animal choi- + • Déguisement (6 points) : le lanceur prend si (l’agilité d’un fauve, la capacité de nager + l’apparence d’une personne différente de d’un poisson ou l’élégance et la grâce d’un + lui-même, sans copier un individu réel pour paon, etc.). Cela ajoute 1 dé supplémentaire à + autant. Cela lui accorde 1 dé-faste gratuit lancer (ou augmente de 1 l’Aptitude concernée + à chacune des actions où le fait de ne pas dans le cas d’un PNJ) sur tous les jets en + « être » lui-même l’avantage (des jets de rapport avec la qualité obtenue. L’Effet dure + Filouterie pour s’infiltrer discrètement quelque 1 scène (+ 3 points par dé supplémentaire + part et tromper les videurs d’une soirée privée au-delà du premier) (+ 4 points pour étendre + sur sa véritable identité, par exemple). Il ne la durée à 1 journée). + peut en outre pas être reconnu et difficilement • Forme animale (9 points) : le lanceur adopte + démasqué. Cet effet dure 1 scène (+ 2 points l’apparence d’un animal au choix. Cette + par dé-faste supplémentaire au-delà du transformation est totale et rien ne le distingue + premier) (+ 4 points pour étendre la durée d’un animal moyen de l’espèce choisie. Cela + à 1 journée). ajoute 1 dé sur tous les jets en rapport avec les + • Jumeau (6 points) : le lanceur adopte l’appa- capacités naturelles de l’animal choisi (nager + rence d’une personne existante qu’il a pu ob- comme un poisson, se faufiler comme un rat, + server ou avec qui il a eu un contact prolongé etc.) et il obtient des armes naturelles (griffes, + précédemment – sans toutefois changer ses crocs, etc.) qui infligent 1 dégât de base ainsi + propres valeurs d’Aspect et de Compétences. qu’une protection physique de 1 (si l’animal + Il obtient 1 dé supplémentaire à lancer (ou choisi possède une carapace ou des écailles, + augmente de 1 son Aptitude sociale dans le par exemple) ou une capacité comme le vol + cas d’un PNJ) pour se faire passer pour la ou la respiration subaquatique (si l’animal + personne imitée et ne pas se voir démasqué. est un oiseau ou un poisson) (+ 3 points + Cela lui accorde également 1 dé-faste gratuit à par dé supplémentaire au-delà du premier) + chacun de ses jets en rapport avec une carac- (+ 4 points pour étendre la durée à 1 journée + téristique de la personne imitée (par exemple, entière) (+ 3 points par point de protection + des jets de Prouesse pour un athlète, des jets supplémentaire au-delà du premier, mais + de Kung-fu pour un artiste martial, etc.). La toute augmentation rend l’apparence de l’ani- + transformation dure 1 scène (+ 2 points par mal surnaturelle) (+ 1 point par dégât sup- + dé-faste supplémentaire au-delà du premier) plémentaire au-delà du premier, mais toute + (+ 3 points par dé supplémentaire au-delà augmentation rend l’apparence de l’animal + du premier) (+ 4 points pour étendre la durée surnaturelle) + à 1 journée). En dehors des traits animaux qui peuvent + • Traits animaux : Arme naturelle (5 points) : être combinés entre eux dans un même sort (à + gardant son apparence humaine, le lanceur condition que toutes les caractéristiques soient + devient capable d’attaquer comme s’il possé- héritées du même animal), chaque transforma- + dait des serres, griffes ou crocs surnaturels tion nécessite son propre sort pour être opérée. Il + qui infligent 3 dégâts à mains nues. L’Effet est toutefois possible d’utiliser plus de Puissance + dure 1 scène (+ 1 point par dégât supplé- pour en renforcer les effets selon les indications + mentaire au-delà du premier, mais toute fournies entre parenthèses. + augmentation des dégâts de base du sort rend + +312 + d’un Roi des Enfers, lanterne blanche les chroniques + NÉcromancie 怪 Effets : + + + de l’étrange + • L’Effet « ampleur » traduit l’importance + La nécromancie est l’art de commercer avec des informations que le personnage par- +les morts – corps et âme. vient à apprendre des âmes défuntes. + Ainsi, le PJ est capable de contacter les mânes • L’Effet « durée » indique le temps du- +des défunts dans l’au-delà afin de les interroger. rant lequel un goengsi (cf p. 369) reste +Il peut ainsi apprendre les causes de leur mort, animé et aux ordres du PJ. +avoir accès à leurs derniers souvenirs, obte- • L’Effet « distance » montre jusqu’à +nir des informations qu’eux seuls détiennent. quelle portée les goengsi peuvent agir + + + la magie +Cependant, les morts se situent dans un autre lorsqu’ils s’éloignent de leur maître. +monde – les Dix Enfers – et leur mémoire peut N.B. : il est bien sûr possible de faire se +avoir été altérée par le traumatisme de leur lever plusieurs goengsi en achetant plu- +décès ou les innombrables tortures subies en sieurs fois l’Effet « durée » (la distance +ces lieux. Parfois, leur témoignage s’avérera est alors valable pour tous les goengsi). +confus – et il n’est en tout cas jamais recevable • L’Effet « durée » fixe la période durant +devant un tribunal profane ! Un nécromancien laquelle un personnage dont le nom a +audacieux s’adresse parfois directement aux été falsifié dans le registre d’Yimlo ne +fonctionnaires infernaux, mais mieux vaut pour peut pas mourir – même s’il n’a plus de +lui qu’il possède de quoi les amadouer (comme points de Zing, il lui est impossible de +des offrandes). décéder totalement pendant le temps + Le PJ est également capable d’animer des déterminé. +corps et de les contrôler. Ces cadavres pos- +sèdent alors les caractéristiques d’un goengsi EXEMPLES +(cf p. 369). À l’époque moderne, cette branche +de la Nécromancie n’est plus guère utilisée : il Voici une liste non exhaustive de sorts nécro- +est bien difficile de se procurer des corps et mantiques utiles, avec leur coût en Puissance : +les profanateurs de sépulture sont particulière- • Interroger les morts (2 à 6 points) : ce sort +ment mal considérés en Chine. Certains sorciers permet d’interroger un revenant rencontré +sans scrupule n’hésitent cependant pas à tuer pendant une scène ou d’appeler à soi l’esprit +leurs victimes pour en faire de tels serviteurs d’un défunt afin de lui poser des questions +morts-vivants. ou de recueillir des images en manipulant + Enfin, le PJ peut duper le Roi des Enfers Ymlo des objets lui ayant appartenu (le coût initial +en falsifiant le nom d’une personne afin qu’il ne dépend de la nature des informations recueil- +corresponde plus à celui écrit dans le registre lies – au choix du joueur – selon le tableau +des décès. La personne dont le fat si a changé d’Ampleur fourni). +temporairement le nom échappe aux griffes de • Tromper la mort (4 points) : permet d’em- +la mort durant le temps que dure cette super- pêcher la mort d’un personnage pendant +cherie. Attention toutefois, le dieu de la mort 6 heures, même s’il ne possède plus de points +n’apprécie pas d’être ainsi floué ! de Zing (ou de Vitalité dans le cas d’un PNJ). + 怪 Élément associé : Terre Cela ne l’empêche pas de sombrer dans le + 怪 Hei : Yin ou Yang coma, mais il ne peut mourir totalement pen- + 怪 Temps de réalisation (rituel) : 1 heure dant la durée du sort, ce qui permet de lui + 怪 Temps de réalisation (accéléré) : 12 crans rendre du Zing par des soins divers durant ce + d’initiative sursis (+ 2 points pour étendre la durée à + 怪 Flash-back : oui 1 journée). + 怪 Composantes : • Relever les morts (5 points) : permet d’obtenir + • Mots : prière aux Rois des Enfers, pa- les services d’un goengsi (cf p. 369) pendant + roles de commandement, pleurs et une durée de 1 scène. Ce dernier doit rester + plaintes dans un rayon de cinq cents mètres autour du + • Gestes : danse rituelle funéraire, salut nécromancien (+ 2 points pour contrôler une + aux défunts créature supplémentaire au-delà de la pre- + • État d’esprit : concentration, mouwai, mière) (+ 4 points par créature pour étendre + pensées de domination, pensées la durée à 1 journée). + morbides Chaque sort nécessite son propre jet de magie + • Consommables : papier, encens, cendres, pour être lancé. Il est toutefois possible d’utiliser + argent funéraire plus de Puissance pour en renforcer les effets + • Objets : talismans, nécessaire de calli- selon les indications fournies entre parenthèses. + graphie, sceau de jade, masque à l’image + + + 313 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + EXEMPLES + MaÎtrise climatique Voici une liste non exhaustive de sorts clima- + Le PJ peut harmoniser son énergie interne avec tologiques utiles, avec leur coût en Puissance : + son environnement immédiat et contrôler dans une • Le vent se lève (7 points) : le sortilège affecte + certaine mesure le climat et les phénomènes mé- une zone équivalente à un appartement ou + téorologiques. Il est capable de faire pleuvoir ou une maison et dure 1 scène. Un vent très fort + neiger, d’abaisser ou d’élever la température, de souffle dans toute cette zone, ce qui impose + faire se lever un vent violent, d’invoquer une brume 1 dé-néfaste à quiconque s’y trouve sur toutes + épaisse, de faire tomber la foudre, etc. Le PJ peut ses actions (+ 1 point pour étendre la durée à + provoquer, mais aussi dissiper de tels phénomènes. 2 heures) (+ 1 point pour étendre l’aire d’effet + Contrôler ainsi les éléments permet d’impo- à un immeuble, + 1 point supplémentaire pour + ser des malus dans la zone couverte (le brouillard affecter tout un pâté de maisons) (+ 2 points + étouffe les sons, le vent empêche de se mouvoir par dé-néfaste supplémentaire au-delà du + correctement, etc.) – malus qui concerneront premier) (+ 4 points pour épargner ces effets + tous les personnages présents. Faire tomber la au lanceur et jusqu’à 4 de ses compagnons) + foudre peut également provoquer des dégâts. – à partir de 3 dés-néfastes imposés par les + 怪 Élément associé : Feu variantes les plus puissantes de ce sort, le vent + 怪 Hei : Yang est ostensiblement surnaturel et comparable à + 怪 Temps de réalisation (rituel) : 15 minutes celui d’une petite tornade ; il peut occasionner + 怪 Temps de réalisation (accéléré) : 12 crans des dégâts matériels à la discrétion du MJ, + d’initiative dont l’usage de la Tin Ji rendra alors compte + 怪 Flash-back : oui d’événements supplémentaires. + 怪 Composantes : • La foudre frappe (6 points) : le sortilège af- + • Mots : prière à Leoi Gung et Din Mou fecte 1 seule cible à laquelle il cause 6 dégâts + Gestes : danse rituelle, bras levés au ciel affectant directement son Zing (ou sa Vitalité + • État d’esprit : concentration, pensées re- dans le cas d’un PNJ), sans tenir compte + liées au phénomène climatique à invoquer d’une éventuelle protection (+ 2 points si les + • Consommables : pétards, feux d’artifice, conditions météorologiques de départ imposent + talismans au lanceur du sort de changer légèrement le + • Objets : vajra, sceptre taoïste jyuji, ba- climat avant de faire tomber la foudre – par + romètre, cymbales, tablette de comman- exemple, amonceler des nuages noirs dans un + dement aux éléments ciel jusqu’ici radieux) (+ 1 point par dégât + 怪 Effets : supplémentaire au-delà du premier). + • L’Effet « ampleur » permet de mesurer la • La brume tombe (9 points) : le sortilège af- + puissance du phénomène climatique que fecte une zone équivalent à un immeuble et + le personnage est capable de neutraliser : dure 1 scène. À l’intérieur de cette zone, le + une Ampleur faible stoppe une simple brouillard est si épais que tous les jets où il + averse ; une Ampleur moyenne dissipe un est nécessaire d’utiliser la vue se voient retirer + épais banc de brouillard ; une Ampleur 1 dé à lancer (ou voient diminuer de 1 l’Aptitu- + importante repousse un puissant orage. de concernée dans le cas d’un PNJ) (+ 1 point + • L’Effet « Trois Trésors » indique les dégâts pour étendre la durée à 2 heures) (+ 1 point + occasionnés par le phénomène météorolo- pour étendre l’aire d’effet à un pâté de mai- + gique convoqué par le personnage, comme sons) (+ 3 points par dé à retirer supplémen- + un éclair qui frappe un individu ou une taire au-delà du premier) – à partir de 2 dés + bourrasque qui le projette contre un mur. à retirer, imposés par les variantes les plus + • L’Effet « malus » traduit certains effets puissantes de ce sort, le brouillard s’avère si + concrets du phénomène météorologique épais qu’il est visiblement surnaturel. + convoqué, en imposant des dés-néfastes • Apaisement (10 à 14 points) : ce sortilège per- + ou en diminuant le nombre de dés à lancer met d’influencer la météo sur une zone aussi + lors d’actions particulières (se repérer dans grande qu’un quartier de Hong Kong. Le coût en + le brouillard, courir sur un sol gelé, etc.). Puissance varie selon l’ampleur du phénomène + • L’Effet « durée » décide du temps que météorologique que le lanceur veut apaiser : + dure le phénomène climatique invoqué. de stopper une averse à calmer une tempête + • L’Effet « aire » délimite la zone qu’il affecte. en passant par dissiper un brouillard – à + • L’Effet « distance » permet d’affecter la discrétion du MJ. L’accalmie dure 1 scène + une zone dans laquelle on ne se situe (+ 1 point pour étendre la durée à 2 heures). + pas forcément, en la désignant à l’aide • La tempête se déchaîne (16 points) : le vent et + d’une carte par exemple. la pluie, accompagnés de fortes bourrasques + +314 + et d‘éclairs, se déchaînent violemment sur • État d’esprit : sérénité, concentration les chroniques + une zone équivalent à un quartier de Hong • Consommables : encens, bougie + + + de l’étrange + Kong. Le lanceur n’a pas nécessairement be- • Objets : talismans, amulette + soin de se trouver dans l’aire d’effet et peut 怪 Effets : + simplement désigner un quartier de son choix • L’Effet « distance » indique jusqu’à + sur une carte, mais il doit se tenir à moins quelle portée l’âme libérée du corps + de deux kilomètres de l’aire ciblée. Le phé- peut voyager. + nomène invoqué dure 2 heures et tous ceux • L’Effet « ampleur » décide de l’impor- + qui s’y trouvent subissent 1 dé-néfaste à tance des informations que le person- + toutes les actions pour lesquelles le phéno- nage peut recueillir et transmettre (en + + + la magie + mène climatique peut se révéler gênant – à la s’introduisant dans les rêves d’un indi- + discrétion du MJ. Il s’agit d’un excellent moyen vidu ou en pénétrant ses pensées). + de s’assurer que les habitants restent cloîtrés • L’Effet « Loksyu » rend compte de la fa- + chez eux, le temps par exemple pour les fat çon dont l’âme du personnage peut unir + si d’aller s’occuper d’une menace surnaturelle. celles de ses camarades lorsqu’elle les + Il est possible de déclencher chaque Effet plu- relie toutes sur un plan spirituel. + sieurs fois dans un même sort. Le coût pour en • L’Effet « durée » limite le temps durant + augmenter les Effets est précisé entre parenthèses. lequel l’âme peut rester séparée du corps. + Il est parfois nécessaire de lancer un premier sort + pour créer les conditions météorologiques favo- EXEMPLES + rables au lancement d’un autre sort, souvent plus + offensif. Il est bien sûr possible de combiner les Voici une liste non exhaustive de sorts utiles, + effets pour en créer de plus puissants. avec leur coût en Puissance : + • Lien spirituel (2 points) : le groupe de fat + si gagne un lien spirituel qui octroie à ses + Magie d’or membres une parfaite coordination. Cela se + traduit par le lancement de 1 dé à ajouter au + La Magie d’or est un accomplissement pour un Loksyu (+ 2 points par dé supplémentaire +taoïste, désormais capable de dissocier son âme au-delà du premier). +de son corps. Sa pure essence spirituelle peut • Lien spirituel renforcé (7 points) : le groupe de +alors voyager librement, sous une forme invisible fat si gagne un lien spirituel si puissant qu’il +et intangible. Il lui est ainsi possible de trans- leur permet de planifier leurs actions avec +mettre un message à une personne lointaine, le exactitude. Cela se traduit par l’ajout de 1 dé +plus souvent dans un rêve – voire de partager des de la valeur choisie par le lanceur au Loksyu +informations avec plusieurs individus. (+ 7 points par dé supplémentaire au-delà + L’âme libérée de sa chair voyage à la vitesse du premier). +de la pensée et perçoit avec presque les mêmes • Voyage astral (7 points) : permet de disso- +sens que le corps : elle peut voir, entendre, sen- cier son esprit de son corps et de voyager +tir, etc. mais pas toucher – elle reste immaté- sous forme immatérielle dans un rayon d’un +rielle et incapable d’interaction physique avec kilomètre pendant une durée de 1 scène +son environnement. (+ 2 points pour étendre à cinq kilomètres, + Gare toutefois : laisser son corps à l’aban- + 2 points pour étendre à dix kilomètres) +don trop longtemps ne va pas sans danger, un (+ 1 point pour étendre la durée à 2 heures). +esprit errant peut très bien décider d’investir • Voyage onirique (2 à 6 points) : avec un coût en +cette enveloppe charnelle vide si aucune protec- points de Puissance dépendant de la complexité +tion mystique ne la garde. De plus, si l’âme est et de l’ampleur des informations recueillies (à +empêchée de retourner dans son corps après le la discrétion du MJ), ce sort permet de s’in- +temps limite (car prisonnière d’un démon, par troduire dans les rêves ou les pensées d’un +exemple), le PJ peut y perdre la vie. individu consentant parfaitement calme ou + 怪 Élément associé : Bois inconscient. Il est possible d’effectuer un voyage + 怪 Hei : Yang astral et de réaliser ensuite ce sort pour lire + 怪 Temps de réalisation (rituel) : 1 heure dans les pensées ou les rêves d’une personne de + 怪 Temps de réalisation (accéléré) : non laquelle on s’approche sous forme immatérielle. + applicable En dehors des effets affectant le Loksyu qui + 怪 Flash-back : oui peuvent se combiner entre eux, chaque exemple + 怪 Composantes : d’Effet ci-dessus est indépendant et nécessite + • Mots : syllabe « Ohm » son propre sort. Cependant, les effets d’un sort + • Gestes : position du lotus, position al- peuvent être renforcés : le coût pour en augmen- + longée, mains jointes en prière ter les effets est précisé entre parenthèses. + + 315 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Yang), cette discipline lui permet également + Exorcisme (feu) d’invoquer l’un de ses attributs : en général, + l’arme ou une partie de l’équipement du dieu + L’Exorcisme est la magie qui permet de lut- ainsi sollicité (le trident de Jilong, la hallebarde + ter efficacement contre les jiugwaai – tels les de Gwaan Dai, le bâton du Roi singe, etc.). Cet + esprits, démons, fantômes, etc. – mais aussi objet est capable de blesser les jiugwaai (même + d’interagir avec elles. Un exorciste est capable ceux possédant la Capacité intangibilité ; les + de pister ces êtres, de les affronter, de s’en pro- dégâts infligés par une arme ainsi invoquée ne + téger et même de les soumettre. tiennent pas compte de leur éventuelle Capacité + Il s’agit d’une magie qui fait un grand usage protection) et frappe également les mortels ou + d’objets et d’armes. Un exorciste est souvent les êtres célestes. De façon similaire, la protec- + équipé d’une épée de saule et de talismans de tion octroyée par cet équipement protège le PJ + protection, mais aussi de divers outils facilitant aussi bien contre les agressions des créatures + sa traque et son combat – boussole à esprits ou surnaturelles que contre les armes profanes. + GPS à fantômes, entre autres. En même temps que cet attribut, le PJ est + Les sorts d’Exorcisme ne sont en général également investi d’une part de l’essence du + d’aucune utilité face à des mortels ou des créa- dieu – qui lui permet de manier son arme avec + tures d’essence céleste. efficacité. Si l’attribut invoqué n’est pas une + arme, mais un outil (comme le Pilon de Soeng + Ngo), le PJ bénéficie d’un bonus à un jet spéci- + Invocation fique en relation avec son utilisation. + 怪 Élément associé : Métal + Le PJ est capable de canaliser son énergie 怪 Hei : Yin + Yang afin de se créer un redoutable arsenal, 怪 Temps de réalisation (rituel) : 5 minutes + transférable et utilisable par un autre person- 怪 Temps de réalisation (accéléré) : 3 crans + nage que lui-même. d’initiative + Lorsqu’il la transfère dans un objet, celui-ci 怪 Flash-back : non + devient capable de blesser ou perturber (en 怪 Composantes : + gênant leurs actions par le port d’un masque • Mots : prière à Zung Kwai, prière à + représentant le visage d’un dieu courroucé, une Jilong, sûtra du diamant + musique produite par une clochette de bronze • Gestes : suivre le contour de l’objet à + ou une odeur répandue par de l’encens) tous les enchanter du plat de la main, lever les + jiugwaai, même s’ils disposent de la Capacité in- mains vers le ciel + tangibilité. De la même façon, les dégâts infligés • État d’esprit : courroucé, combatif + par une arme ainsi imprégnée de Hei ne tiennent • Consommables : poudre de jade, eau + pas compte de l’éventuelle Capacité protection pure, alcool de riz, encens, représenta- + de la cible. tion en papier de l’attribut emprunté au + L’exorciste peut également se protéger des dieu + attaques portées par des créatures surnaturelles. • Objets : arme en bois de saule ou de pé- + Généralement, il utilise pour cela un talisman cher, masque nuo, clochette de bronze, + qu’il porte sur lui et dans lequel il déverse son statuette du dieu auquel on emprunte + énergie Yang pour former une armure spirituelle. un attribut + Certains matériaux sont des « conducteurs » 怪 Effets : + privilégiés pour l’énergie Yang : les essences de • L’Effet « Trois Trésors » indique les + bois sacré (pêcher, saule) et les métaux nobles dégâts supplémentaires provoqués par + (or, argent, jade) notamment. Bien des exorcistes un objet chargé en énergie Yang (ces + utilisent encore la classique épée de saule, mais dégâts n’affectant que les créatures + nombre d’entre eux se sont adaptés à l’ère mo- d’essence Yin), ainsi que la protection + derne et se servent de munitions à tête en bois qu’il peut octroyer au personnage (là + sacré pour leurs armes à feu – toutefois, ces aussi, uniquement contre des attaques + balles sont difficiles à produire et donc plutôt portées par des créatures d’essence + chères (sans compter que la stricte législation Yin). Il traduit aussi les dégâts supplé- + de Hong Kong concernant les armes à feu rend mentaires provoqués par l’attribut divin + leur possession très difficile). Certains fat si invoqué, ainsi que la protection qu’elle + utilisent également de l’eau pure ou de l’alcool peut octroyer au personnage contre les + qu’ils crachent sur les créatures après y avoir attaques physiques (s’il s’agit d’un bou- + insufflé leur puissance ! clier ou d’une armure). + Lorsque le PJ mobilise son souffle positif pour • L’Effet « malus » impose des dés- + prier une divinité (expression ultime de l’énergie néfastes ou diminue le nombre de dés + + +316 + à lancer d’un jiugwaai lors d’actions • Les Roues de Feu de Naazaa (6 points) : il les chroniques + particulières (généralement les actions s’agit d’un attribut divin permettant de voler. Il + + de l’étrange + physiques ou de combat), rendant accorde au bénéficiaire 2 dés-fastes gratuits + compte de sa gêne quand il est exposé à toutes les actions où le fait de pouvoir voler + à une vision, un son ou même une odeur s’avère utile (y compris dans le cadre d’un + chargée de Yang. affrontement). Il perdure pour une durée de + • L’Effet « bonus » indique les dés-fastes 1 scène (+ 2 points par dé-faste supplémen- + ou dés supplémentaires à lancer lors taire au-delà des deux premiers). + d’actions en lien avec l’objet ou l’arme • Talisman de protection (6 points) : ce talis- + invoqué (bonus en Kung-fu pour manier man dans lequel l’exorciste a insufflé son Hei + + la magie + l’épée de Zung Kwai, en Combat à dis- octroie à son bénéficiaire 1 point de protection + tance pour tirer avec l’arc de Jik l’Ar- physique et spirituelle contre les jiugwaai + cher, en Prouesse avec les Roues de Feu de toutes sortes. À usage unique, il ne pro- + de Naazaa, etc.). tège que contre une attaque ou équivalent + • L’Effet « durée » définit le temps durant – comme l’effet d’un nœud d’énergies néfastes + lequel l’objet reste chargé ou durant le- (+ 3 points par point de protection physique + quel l’attribut divin se trouve entre les ou spirituelle supplémentaire au-delà du + mains du personnage. premier) (+ 2 points pour rendre son usage + Certains effets des attributs divins peuvent effectif pour une durée de 1 scène). +également être associés à une « aire » d’effet ou • Le Pilon de Soeng Ngo (8 points) : il s’agit +avoir une « distance » pour la portée. d’un attribut divin représenté par un ensemble + mortier / pilon. Pour une durée de 2 heures, + EXEMPLES il accorde à son bénéficiaire 2 dés-fastes + gratuits sur un jet d’alchimie et lui permet de + Voici une liste non exhaustive d’invocations préparer une potion en seulement 2 heures + utiles, avec leur coût en Puissance : (+ 2 points par dé-faste supplémentaire + • Balle bénie à tête en bois de saule (3 points) : au-delà du premier). + contre les jiugwaai, les dégâts de cette balle • Flèche divine de Soeng Ngo (10 points) : com- + spéciale s’élèvent à [Feu + 3 ou Aptitude pagne de Jik l’Archer divin, la déesse lunaire + mentale + 3 dans le cas d’un PNJ] du lan- permet à cette flèche argentée d’infliger des + ceur. Chaque balle est à usage unique, mais dégâts s’élevant à [Terre + 6 ou Attribut + il arrive que des exorcistes en enchantent tout mentale + 6 dans le cas d’un PNJ] du lanceur + un chargeur (+ 1 point par dégât supplémen- et ignore alors toute forme de protection. Elle + taire au-delà du premier concernant le bonus ne fonctionne toutefois que contre les revenants + de dégât) (+ 2 points pour rendre le bonus (cf p. 367) et n’autorise que 1 tir – le béné- + de dégât effectif pour une durée de 1 scène en ficiaire doit de plus disposer d’un arc pour la + enchantant tout le chargeur). décocher (+ 1 point par dégât supplémentaire + • Lame bénie insufflée de Yang (3 points) : contre au-delà du premier concernant le bonus de + les jiugwaai, les dégâts de cette épée (qui doit dégât). + être constituée de bois de saule) s’élèvent à • Jyuji Gamku Paang, le bâton du Roi singe + [Bois + 3 ou Aptitude physique + 3 dans (9 points) : attribut divin, ce bâton inflige + le cas d’un PNJ] du lanceur. Le Yang se dis- des dégâts s’élevant à [Bois + 2 ou Aptitude + sipe après le premier coup porté avec l’arme physique + 2 dans le cas d’un PNJ] du + (+ 1 point par dégât supplémentaire au-delà lanceur et peut atteindre des cibles situées + du premier concernant le bonus de dégât) à distance courte en ignorant leur protection. + (+ 2 points pour rendre le bonus de dégât Cette arme se révèle si versatile que sur + effectif pour une durée de 1 scène). chaque jet d’attaque, elle accorde 2 dés- + • Le Cercle du Ciel et de la Terre de Naazaa fastes gratuits à son bénéficiaire. Elle perdure + (5 points) : il s’agit d’un attribut divin sem- pour une durée de 1 scène (+ 2 points par + blable à un anneau d’or (considéré comme un dé-faste supplémentaire au-delà du premier) + chakram), dont les dégâts s’élèvent à [Eau (+ 1 point par dégât supplémentaire au-delà + + 3 ou Aptitude mentale + 3 dans le cas d’un du premier concernant le bonus de dégât). + PNJ] du lanceur. Cette arme peut s’utiliser • La Lame du Dragon bleu de Gwaan Dai + au contact ou à distance, jusqu’à une distance (9 points) : attribut divin, cette hallebarde + extrême. Elle revient toujours dans la main inflige des dégâts s’élevant à [Métal + 4 + de celui qui l‘a invoquée et perdure pour une ou Aptitude physique + 4 dans le cas d’un + durée de 1 scène (+ 1 point par dégât sup- PNJ] du lanceur. Elle perdure pour une durée + plémentaire au-delà du premier concernant le de 1 scène. Sa lame ajoute 1 dé supplémen- + bonus de dégât). taire à lancer (ou augmente de 1 l’Aptitude + + 317 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + martiale dans le cas d’un PNJ) sur tous les + jets d’attaque et de défense de son bénéficiaire Traque + (+ 1 point par dégât supplémentaire au-delà + du premier concernant le bonus de dégât) Le PJ présente une sensibilité prononcée pour + (+ 3 points par dé supplémentaire au-delà l’énergie Yin. Il s’octroie ainsi une clairvoyance + du premier). accrue pour tout ce qui concerne les jiugwaai + • Le Trident à Double-tranchant de Jilong et devient capable de percer à jour leurs tours. + (9 points) : attribut divin, ce trident inflige Ainsi, le PJ parvient à reconnaître la nature + des dégâts s’élevant à [Métal + 4 ou Attribut d’une créature surnaturelle, même lorsqu’elle se + physique + 4] du lanceur. Il perdure pour une dissimule sous une apparence différente. Il sait dé- + durée de 1 scène. Ses pointes retirent 1 dé (ou terminer s’il s’agit d’un esprit, d’un fantôme, d’un + diminuent de 1 l’Aptitude martiale dans le cas démon, etc. Il peut pister ces êtres, reconnaître + d’un PNJ) sur tous les jets d’attaque et de leur empreinte sur une scène de crime, repérer leur + défense d’un adversaire de son bénéficiaire, présence aux alentours, etc. En se concentrant, le + nommé au moment de l’invocation de l’arme PJ peut même s’essayer au profilage grâce à sa + (+ 1 point par dégât supplémentaire au-delà connaissance des créatures : comprendre leur état + du premier concernant le bonus de dégât) d’esprit, deviner leurs motivations, etc. – grâce à + (+ 3 points par dé retiré supplémentaire l’intuition aiguisée que lui octroie cette magie. + au-delà du premier). Les exorcistes s’aident souvent d’outils pour + • Le Miroir de Din Mou (13 points) : attribut mieux traquer les jiugwaai. Des lunettes lavées + divin, ce bouclier octroie une protection phy- à l’eau pure au moyen de feuilles de saule auto- + sique et spirituelle de 1. Sa simple présence risent à distinguer les auras des créatures (mais + impose à tout adversaire qui affronte son aussi la marque qu’ils peuvent laisser en un lieu + bénéficiaire 1 dé-néfaste et 1 dé à retirer (ou ou sur un objet) tandis qu’un miroir octogonal + la diminution de 1 à l’Aptitude martiale dans révèle leur véritable apparence, par exemple. + le cas d’un PNJ) à tous leurs jets d’attaque 怪 Élément associé : Eau + et de défense. L’objet perdure pour 1 scène 怪 Hei : Yin + (+ 3 points par point de protection physique 怪 Temps de réalisation (rituel) : 5 minutes + ou spirituelle supplémentaire au-delà du 怪 Temps de réalisation (accéléré) : 6 crans + premier) (+ 2 points par dé-néfaste supplé- d’initiative + mentaire au-delà du premier) (+ 3 points par 怪 Flash-back : non + dé retiré supplémentaire au-delà du premier). 怪 Composantes : + • Les Cloches de Bouddha (14 points) : le tin- • Mots : prière à Zung Kwai, prière à + tement de ces cloches est insupportable pour Jilong + les créatures surnaturelles, qui subissent pour • Gestes : mains en position de prière, + une durée de 1 scène 1 dé-néfaste et retirent yeux fermés + 2 dés (ou diminuent leurs Aptitudes dans le • État d’esprit : concentration, mouwai + cas de PNJ) sur toutes leurs actions, au sein • Consommables : feuilles de saule, sel, + d’une aire correspondant à la surface d’une poudre de jade + pièce de maison – jusqu’à distance extrême. • Objets : boussole, GPS, miroir octogo- + Se boucher les oreilles ne protège pas contre nal, lunettes + le glas du jugement céleste. 怪 Effets : + Chaque exemple d’Effet ci-dessus est indé- • L’Effet « bonus » octroie des dés-fastes + pendant et nécessite son propre sort. Cependant, et des dés supplémentaires à lancer + les effets d’un sort peuvent être renforcés : le coût sur tout jet visant à repérer, identifier + pour en augmenter les effets est précisé entre (la démasquer sous n’importe quelle + parenthèses. apparence, identifier sa nature, la dis- + cerner même quand elle est invisible, + etc.) et pister une créature – ce qui peut + se faire à l’aide de jets impliquant la + Compétence Exorcisme sans Spécialité. + • L’Effet « ampleur » révèle l’importance + des informations que le personnage + peut déduire sur l’être dont il essaie + d’établir le profil. + • L’Effet « distance » indique jusqu’à + quelle portée le PJ peut traquer un + jiugwaai, en relevant ses traces ou en + suivant son aura d’énergie Yin. + + +318 + • L’Effet « durée » peut s’avérer néces- les chroniques + saire pour des chasses de longue ha- Protection + de l’étrange + leine, nécessitant plusieurs jets pour ne + pas perdre la trace de sa proie. Le PJ peut créer une zone investie d’énergie + Yang afin d’en éloigner les créatures surnatu- + EXEMPLES relles – qui se retrouvent gênées dans leurs ac- + tions quand elles y pénètrent et peuvent même + Voici une liste non exhaustive de sorts utiles, y subir des dommages (leur éventuelle Capacité +avec leur coût en Puissance : protection ne s’appliquant alors pas, pas plus +• Classique de l’occulte (3 points) : permet que la Capacité intangibilité). + + + la magie + d’ajouter 1 dé supplémentaire à lancer (ou Le plus souvent, le fat si utilise un talisman + augmente de 1 l’Aptitude spirituelle dans le placé au centre du lieu à protéger ou sur l’objet + cas d’un PNJ) sur un prochain jet visant à qu’il souhaite tenir hors de portée des démons + identifier la nature d’une créature surnaturelle, et autres esprits. Mais pour diffuser son énergie + à condition de pouvoir l’observer (+ 3 points dans la zone délimitée, l’exorciste peut égale- + par dé supplémentaire au-delà du premier) ment utiliser des ingrédients riches en Yang (riz, + (+ 2, 4, ou 6 points pour obtenir des infor- œufs, sang, etc.), de la musique sacrée, un mi- + mations précises et utiles sur la créature, en roir octogonal, des amulettes, etc. + fonction de l’Ampleur de l’information obtenue Une application de cette magie permet de + – à la discrétion du MJ). protéger le lieu contre les âmes désincarnées +• Regard magique (4 points) : accorde 1 dé- – comme celle d’un fat si utilisant la Magie d’or. + faste sur n’importe quel jet lié au repérage C’est un moyen efficace de se prémunir contre + ou à l’identification d’une créature, d’un sort les indiscrets… + ou d’un événement mystique (+ 2 points par 怪 Élément associé : Terre + dé-faste supplémentaire au-delà du premier). 怪 Hei : Yin ou Yang +• Filature spirituelle (5 points) : pour une durée 怪 Temps de réalisation (rituel) : 15 minutes + de 1 scène, le lanceur ressent la présence spi- 怪 Temps de réalisation (accéléré) : 12 crans + rituelle d’une créature qu’il traque jusqu’à cinq d’initiative + cents mètres de distance – ce qui lui donne 怪 Flash-back : non + une indication générale de la direction à suivre 怪 Composantes : + pour la rejoindre (+ 1 point pour étendre la • Mots : prière à Zung Kwai, prière à + portée à un kilomètre, + 4 points pour l’étendre Jilong, sûtra du diamant + jusqu’à dix kilomètres) (+ 2 points pour obtenir • Gestes : gestes rituels de protection, + des informations plus précises, + 4 points pour manipulation des ingrédients + ressentir une localisation exacte). • État d’esprit : solide, serein +• Révéler les traces de hei (5 points) : permet • Consommables : œuf, riz, alcool, sang, + d’ajouter 1 dé supplémentaire à lancer (ou talismans + augmente l’Aptitude spirituelle dans le cas • Objets : pilon et mortier, amulettes, mi- + d’un PNJ) sur tout jet visant à traquer une roir octogonal, statuette d’un dieu + créature, pour une durée de 1 scène, à condi- 怪 Effets : + tion de disposer d’au moins une vague idée • L’Effet « Trois Trésors » traduit les + du type de jiugwaai ou d‘indices comme point dégâts qui s’abattent sur les créatures + de départ (+ 3 points par dé supplémentaire d’essence Yin qui se trouvent dans la + au-delà du premier). zone protégée ou qui y pénètrent. +• Contempler la véritable nature (8 points) : • L’Effet « malus » indique les dés- + permet de révéler la véritable nature d’une néfastes imposés ou les dés en moins + créature actuellement déguisée à l’aide d’une à lancer lors des actions physiques des + Capacité surnaturelle de métamorphe (change- jiugwaai piégés dans la zone. + forme). Le lanceur discerne la véritable forme • L’Effet « aire » circonscrit la zone que + du jiugwaai qu’il observe, mais cette vérité le personnage protège en l’emplissant + n’est pas dévoilée aux autres personnes pré- d’énergie Yang. + sentes. Il s’avère nécessaire de lancer ce sort • L’Effet « durée » définit la période + séparément pour chaque créature dont on sou- durant laquelle la protection reste + haite apprendre la véritable nature. effective. + Il est possible de déclencher chaque Effet +plusieurs fois dans un même sort. Le coût pour +en augmenter les effets est précisé entre paren- +thèses. Il est aussi possible de les combiner entre +eux pour créer de nouveaux sorts plus puissants. + + 319 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + EXEMPLES • Ultime jugement de Ymlo (14 points) : la + zone d’effet comprend un cercle de rayon + Voici une liste non exhaustive de sorts utiles, distance courte autour de l’endroit où se te- + avec leur coût en Puissance : nait l’exorciste au moment du lancement du + • Bouclier d’énergie positive (5 points) : la zone sort. Ses effets perdurent pendant 1 journée. + d’effet comprend un cercle de rayon distance Tous les types de revenants (cf p. 367) pé- + courte autour de l’endroit où se tenait l’exor- nétrant ou se trouvant dans cette zone sont + ciste au moment du lancement du sort. Les affectés par une source de dégâts spirituels + jiugwaai pénétrant ou se trouvant dans cette récurrents d’une valeur de 1, nécessitant un + zone subissent 1 dé-néfaste à toutes leurs jet de résistance à chaque scène (ou toutes + actions pour une durée de 1 scène (+ 1 point les quinze minutes) (+ 1 point pour étendre + pour étendre l’aire d’effet à une pièce entière) l’aire d’effet à une pièce entière) (+ 3 points + (+ 2 points par dé-néfaste supplémentaire par point de valeur supplémentaire au-delà + au-delà du premier) (+ 4 points pour étendre du premier) (+ 2 points pour augmenter la + la durée à 1 journée). fréquence des jets de résistance à tous les + • Cercle de protection taoïste (6 points) : la zone 6 crans d’initiative). + d’effet comprend un cercle de rayon distance • Sûtra de la sublime lumière d’or (16 points) : + courte autour de l’endroit où se tenait l’exor- la zone d’effet s’étend sur une pièce entière. + ciste au moment du lancement du sort. Les Les chaînes spirituelles dorées qui surgissent + créatures d’un type désigné (au choix, les es- des talismans empêchent une créature de + prits-animaux, les démons, les revenants, les bouger, lui retirant 4 dés (ou diminuant de 4 + monstres, etc.) pénétrant ou se trouvant dans ses Aptitudes dans le cas d’un PNJ) à tous + cette zone retirent 1 dé (ou diminuent de 1 leurs ses jets pour une durée de 1 scène. Il est ce- + Aptitudes dans le cas de PNJ) sur toutes leurs pendant nécessaire de prendre la créature ci- + actions pour une durée de 1 scène (+ 1 point blée par surprise ou de l’attirer dans un piège + pour étendre l’aire d’effet à une pièce entière) au préalable car la présence des talismans sur + (+ 3 points par dé à retirer supplémentaire les murs peut l’alerter (+ 3 points par dé à + au-delà du premier) (+ 4 points pour étendre retirer supplémentaire au-delà du premier) + la durée à 1 journée) – si les créatures n’ont (+ 1 point pour étendre la durée à 2 heures). + plus aucun dé à lancer pour une action (ou Il est possible de déclencher chaque Effet + voient leurs Aptitudes réduites à 0), elles ne plusieurs fois dans un même sort. Le coût pour + peuvent pas la réaliser, car elle sont devenues en augmenter les effets est précisé entre pa- + trop faibles pour bouger. renthèses. Il est également possible de cumuler + • Sanctuaire de Toudei (9 points) : la zone d’effet dégâts, malus et dés-néfastes en dépensant la + s’étend sur une pièce entière. Les jiugwaai Puissance nécessaire pour créer de nouveaux + pénétrant ou se trouvant dans cette zone retirent sorts plus puissants. + 1 dé (ou diminuent de 1 leurs Aptitudes dans + le cas de PNJ) et subissent 1 dé-néfaste sur + toutes leurs actions pour une durée de 1 scène Punition + (+ 3 points par dé à retirer supplémentaire + au-delà du premier) (+ 2 points par dé- Cette discipline représente l’exorcisme au + néfaste supplémentaire au-delà du premier) sens occidental : le PJ appelle sur un jiugwaai + (+ 4 points pour étendre la durée à 1 journée) visé le châtiment céleste afin de le neutraliser. + – si les créatures n’ont plus aucun dé à lancer Ainsi, lorsqu’une créature d’essence Yin perd + pour une action (ou voient leurs Aptitudes tous ses points de Vitalité en subissant cette + réduites à 0), elles ne peuvent pas la réaliser punition, elle est détruite ou bannie définiti- + car elles sont devenues trop faibles pour bouger. vement. Pour pratiquer ce rituel, le fat si doit + • Encensoir de purification (10 points) : la zone « connaître » sa cible : soit il a déjà interagi + d’effet comprend un cercle de rayon distance avec (il l’a vue, lui a parlé, l’a combattue, etc.), + courte autour de l’endroit où se tenait l’exor- soit il possède quelque chose qui lui appartient + ciste au moment du lancement du sort. Les intimement (une mèche de cheveux, un objet + jiugwaai pénétrant ou se trouvant dans cette auquel elle tient vraiment, un peu de sang ou + zone sont affectés par une source de dégâts autre fluide corporel, etc.), soit il connaît son + spirituels récurrents d’une valeur de 1, né- nom véritable et sa nature réelle. Les dom- + cessitant un jet de résistance tous les 6 crans mages subis par le jiugwaai ne sont pas réduits + d’initiative jusqu’à ce qu’un jet de résistance par son éventuelle Capacité protection et la + soit réussi (+ 1 point pour étendre l’aire d’effet Capacité intangibilité ne sert à rien non plus + à une pièce entière) (+ 3 points par point de – la punition du Ciel frappe directement son + valeur supplémentaire au-delà du premier). essence. + + +320 + De la même façon, il est possible au PJ de pu- de 3 points de Zing (ou de Vitalité dans le les chroniques +rifier un nœud d’énergies néfastes en abaissant cas d’un PNJ) à un jiugwaai (unique ou géré + + de l’étrange +sa valeur à 0. comme une bande de sbires) pris pour cible + Pour exécuter ce rituel, l’exorciste dresse (+ 1 point pour étendre la portée à distance +bien souvent un autel lui permettant d’avoir à extrême, mais la cible doit rester en vue) +portée de main toutes les Composantes char- (+ 1 point par dégât supplémentaire au-delà +gées de Yang dont il a besoin. des 3 premiers) – il existe de nombreux ri- + 怪 Élément associé : Feu tuels de bannissement différents, comme celui + 怪 Hei : Yang de la Dame aux Sept Étoiles de la Grande + 怪 Temps de réalisation (rituel) : 5 minutes Ourse. + + la magie + 怪 Temps de réalisation (accéléré) : 12 crans • Tempête de talismans (6 points) : l’exorciste + d’initiative inflige une perte directe de 1 point de Zing + 怪 Flash-back : non (ou de Vitalité dans le cas d’un PNJ) aux + 怪 Composantes : jiugwaai d’un même type (au choix, les + • Mots : prière à Zung Kwai, prière à Jilong, esprits-animaux, les démons, les revenants, + sûtra du diamant, nom véritable de la cible les monstres, etc.) situés autour de lui (au + • Gestes : mouvements martiaux, gestes maximum 4 cibles se trouvant à distance + rituels d’exorcisme, manipulation des courte) (+ 1 point pour étendre la portée + ingrédients à toute une pièce) (+ 1 point par dégât + • État d’esprit : courroucé, combatif supplémentaire au-delà du premier) + • Consommables : œuf, riz, alcool, sang, (+ 2 points pour affecter jusqu’à 6 cibles). + objet ou partie de corps appartenant à Chaque exemple d’Effet ci-dessus est indé- + la cible pendant et nécessite son propre sort. Cependant, + • Objets : autel, pilon et mortier, amu- les effets d’un sort peuvent être renforcés : le coût + lette, plumeau taoïste pour en augmenter les effets est précisé entre + 怪 Effets : parenthèses. + • L’Effet « Trois Trésors » traduit les dé- + gâts qui s’abattent sur la cible du rituel + d’exorcisme. Domination + • L’Effet « source de dégâts récurrents » + permet de diminuer la valeur du nœud Le PJ est capable d’interagir socialement + d’énergies néfastes. Cela peut aller de façon très efficace avec des créatures sur- + jusqu’à le détruire en abaissant cette naturelles et d’en soumettre certaines afin de + valeur à 0. les prendre à son service pour une période + • L’Effet « distance » indique jusqu’à déterminée. + quelle portée la punition peut frapper. Le personnage mobilise son Yang pour pa- + raître plus puissant et charismatique aux yeux + EXEMPLES des jiugwaai – ce qui lui facilite les discussions, + négociations, ou même l’usage de l’intimida- + Voici une liste non exhaustive de sorts utiles, tion. Quant aux êtres sur lesquels il exerce sa + avec leur coût en Puissance : domination, il peut leur donner des ordres et ils + • Incantation de la pureté du corps (3 points) : s’il devront obéir pour toute la durée d’effet. Le PJ + est capable de toucher sa cible, l’exorciste in- peut alors leur ordonner de suivre quelqu’un, de + flige une perte directe de 3 points de Zing (ou porter un message, d’espionner un lieu, etc. Il + de Vitalité dans le cas d’un PNJ) à un jiugwaai peut même obtenir qu’ils se battent à ses côtés, + qui possède un objet ou un être humain. Ces même s’ils seront plus que récalcitrants à ris- + dégâts n’affectent que la créature surnaturelle quer la mort de cette façon. + en s’attaquant directement à son essence, pas Une fois la durée d’effet écoulée, les créa- + l’objet ou l’humain possédé (+ 1 point par dégât tures soumises retournent à leurs occupations + supplémentaire au-delà du premier). – et pourront garder rancune au PJ si celui-ci + • Rituel de purification des énergies (3 points) : s’est montré sadique ou ne leur a pas fait d’of- + diminue de 1 la valeur d’un nœud d’énergies frandes appropriées. De plus, le PJ doit garder + néfastes (source de dégâts spirituels récur- en tête que de tels jiugwaai sont souvent les + rents) clairement identifié, ce qui le dissipe si vassaux d’un roi-dragon ou d’un esprit puissant + cette valeur se trouve réduite à 0 (+ 3 points et que ces êtres n’apprécient pas forcément que + par diminution supplémentaire de la valeur l’on « emprunte » ainsi leurs sujets sans leur + au-delà de la première). demander leur avis… + • Rituel de bannissement (4 points) : à distance 怪 Élément associé : Bois + courte, l’exorciste inflige une perte directe 怪 Hei : Yang + + + + + 321 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + DOMINER DES JIUGWAAI RENCONTRÉS + Afin de déterminer la Puissance nécessaire pour dominer un jiugwaai rencontré par un fat si (et donc la + difficulté du jet de magie), le MJ fait la somme de l’ensemble des Aptitudes de la créature et du nombre de ses + Spécialités, puis ajoute la somme des valeurs de ses Capacités et encore 1 par Style et Technique martiale éven- + tuels. On divise alors le tout par deux – arrondi au supérieur. + Cette Puissance est généralement supérieure à celle nécessaire pour simplement attirer et dominer un jiugwaai + quelconque. En effet, il est plus facile de dominer des créatures faibles et il reste souhaitable qu’il soit plus + complexe de dominer celles qui apparaissent en tant que personnalités du scénario. Même si un fat si dispose de + la Puissance nécessaire pour dominer une créature nommée dans un scénario, le MJ peut dépenser des points de + la Tin Ji pour l’en protéger de manière temporaire (un scénario pour un coût de 2 points) ou définitive (pour un + coût de 4 points) afin de préserver l’intrigue en cours. + La domination ne permet pas d’influencer les goengsi, qui ne peuvent être contrôlés que par la Spécialité + Nécromancie. + + + 怪 Temps de réalisation (rituel) : 15 minutes Il est possible de dominer ainsi plusieurs jiu- + 怪 Temps de réalisation (accéléré) : impossible gwaai, à condition d’acheter plusieurs fois + 怪 Flash-back : oui l’Effet « ampleur » selon les créatures que le + 怪 Composantes : personnage souhaite commander ainsi. + • Mots : prière à Zung Kwai, imprécations • L’Effet « durée » indique le temps durant + envers les créatures invoquées lequel le PJ renforce son charisme ou + • Gestes : mouvements martiaux, danse le temps durant lequel les êtres soumis + rituelle restent à son service. + • État d’esprit : dominateur, courroucé, + roublard EXEMPLES + • Consommables : offrandes aux jiugwaai + invoqués Voici une liste non exhaustive de sorts utiles, + • Objets : sceptre jyuji, talisman, amulette avec leur coût en Puissance : + de commandement • Mandaté par le Ciel (4 points) : accorde 1 dé- + 怪 Effets : faste sur tous les jets sociaux pour une durée + • L’Effet « bonus » indique les dés-fastes de 1 scène, tant qu’il s’agit de s’adresser à des + ou dés supplémentaires à lancer lors jiugwaai (+ 2 points par dé-faste supplé- + d’actions sociales (couvertes par les mentaire au-delà du premier). + Compétences Art, Mondanités, mais • Ambassadeur des mortels (5 points) : ajoute + aussi parfois Enquête ou Filouterie) vis- 1 dé supplémentaire à lancer (ou augmente + à-vis de jiugwaai exclusivement. de 1 l’Aptitude sociale dans le cas d’un PNJ) + • L’Effet « ampleur » décide de la puis- sur tous les jets sociaux pour une durée de + sance de la créature dominée. Celle-ci 1 scène, tant qu’il s’agit de s’adresser à des + doit être spécifiquement rencontrée – et jiugwaai (+ 3 points par dé supplémentaire + dans ce cas le MJ décide de l’Ampleur au-delà du premier). + nécessaire – ou bien appelée par le fat • Rituel de commandement (4 à 8 points) : ce + si. Dans le cas des jiugwaai appelés, le sort domine un jiugwaai rencontré pour une + tableau ci-dessous permet de détermi- durée de 1 scène (+ 4 points pour étendre la + ner la puissance de la créature. durée à 1 journée) – le coût initial dépend de + + Ampleur Un jiugwaai disposant de 6 points à répartir dans ses Aptitudes et de + faible 3 points à répartir dans les Capacités inhérentes à son type. + Ampleur Un jiugwaai disposant de 7 points à répartir dans ses Aptitudes, d’une + moyenne Spécialité et de 4 points à répartir dans les Capacités inhérentes à son type. + Ampleur Un jiugwaai disposant de 8 points à répartir dans ses Aptitudes, de deux + importante Spécialités et de 5 points à répartir dans les Capacités inhérentes à son type. + + +322 + la puissance du jiugwaai – à la discrétion du Uniquement après s’être livré à cette ana- les chroniques + MJ, selon son niveau de Menace. lyse, le personnage peut se prémunir – lui-même + + + de l’étrange + • Rituel de convocation (4 à 8 points) : ce sort ainsi que d’autres personnes s’il lance le sort + appelle un jiugwaai qui doit ensuite obéir au sur elles – des effets de la puissance négative + lanceur pour une durée de 1 scène (+ 4 points de cette confluence délétère. Grâce à diverses + pour étendre la durée à 1 journée) (+ 2 à 6 points protections (talisman, peinture corporelle, amu- + par créature supplémentaire convoquée au-delà lette, etc.), il réduit ainsi la valeur du nœud. + de la première) – le coût initial par créature Toujours grâce à une analyse préalable, le PJ + dépend de chacune de leur puissance – à la use enfin de sa magie pour détruire le nœud de + discrétion du MJ, selon leur niveau de Menace. flux néfastes – généralement en dissipant les + + + la magie + Chaque exemple d’Effet ci-dessus est indépen- énergies négatives qui le composent par une + dant et nécessite son propre sort. Cependant, les ef- réorganisation de leur circulation. Il peut ainsi + fets d’un sort peuvent être renforcés : le coût pour en ramener une certaine harmonie dans le lieu qui + augmenter les effets est précisé entre parenthèses. était pollué par cette confluence. + 怪 Élément associé : Métal + 怪 Hei : Yin + 怪 Temps de réalisation (rituel) : 5 minutes +GÉomancie (bois) 怪 Temps de réalisation (accéléré) : 6 crans + d’initiative + Le Géomancie recouvre la compréhension 怪 Flash-back : non +qu’a le fat si des flux d’énergie qui circulent à 怪 Composantes : +travers le cosmos, ainsi que sa capacité à les ma- • Mots : prière à Zung Kwai, prière à +nipuler dans une certaine mesure. Il voit ainsi la Jilong, citation du Dou Dak Ging +façon dont l’énergie du Tao baigne le monde et • Gestes : gestes rituels de purification, +le relie au Ciel – mais aussi aux Dix Enfers. Cette manipulation des ingrédients +Compétence recouvre la divination et le fungseoi. • État d’esprit : apaisé, serein + Grâce à la divination, le fat si est capable de • Consommables : riz, œuf, sang, alcool +recevoir des présages et de les interpréter – il • Objets : plumeau taoïste, collier de +discerne ainsi des bribes de l’avenir par divers pièces, amulette de purification +moyens (tirage du Jik Ging, scapulomancie, ho- 怪 Effets : +roscope, etc.). Il est également versé dans l’art • L’Effet « ampleur » indique l’importance +de prier les dieux célestes afin de demander leur des informations apprises par le person- +bénédiction pour une occasion particulière. Enfin, nage en analysant le nœud d’énergie +il sait s’adresser aux divinités terrestres afin d’ob- Yin (son origine, sa puissance, etc.). +tenir des faveurs et de leur demander des services. • L’Effet « source de dégâts récurrents » + Le fungseoi permet de manipuler les lignes permet de diminuer la valeur du nœud +d’énergie dans le but de les harmoniser ou de d’énergies néfastes. Cela peut aller jusqu’à +les perturber – afin de changer du tout au tout le détruire en abaissant cette valeur à 0. +l’influence exercée par un lieu sur ses occupants. • L’Effet « bonus » octroie des dés supplé- +Le fat si est également capable de repérer et de mentaires à lancer sur un jet d’Aspect +détruire un nœud de flux néfastes afin de libérer privilégié visant à résister aux effets du +un endroit de son influence délétère. nœud néfaste. + • L’Effet « Trois Trésors » recouvre le + personnage d’une protection contre la + Neutralisation perte de San provoquée par l’exposition + au nœud de flux néfastes. + Grâce à son art de la géomancie, le PJ est • L’Effet « durée » indique le temps du- +capable d’analyser un nœud de flux néfastes, rant lequel les effets du sort perdurent. +d’en bloquer les effets et même de le détruire. + Lorsqu’il se trouve face à un tel confluent EXEMPLES +d’énergie négative, le PJ peut en premier lieu +étudier ce qui en est à l’origine. S’agit-il d’une Voici une liste non exhaustive de sorts utiles, +stagnation d’un élément due à une mauvaise avec leur coût en Puissance : +circulation des souffles ? Le nœud provient-il de • Dans l’eau du bol, contempler le Taigik (2 à +l’accumulation de sentiments violents (colère, 6 points) : offre des visions concernant la na- +peine, ressentiment) ? Est-il né à la suite d’un ture d’un nœud d’énergies néfastes, le coût en +événement atroce (meurtre, tortures, suicide) ? Puissance dépendant de la nature des infor- +Le PJ peut ainsi apprendre diverses informations mations à obtenir (Effet « ampleur » – à la +sur la nature de ce nœud néfaste. discrétion du MJ) et chaque information doit + + 323 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + être obtenue séparément (mais un même sort + permet d’en obtenir plusieurs). Divination + • Rituel de purification des énergies (3 points) : + diminuer de 1 la valeur d’un nœud d’énergies Magie ancienne, la divination permet au PJ de + néfastes (source de dégâts spirituels récur- deviner l’avenir, d’entrevoir le destin, de visua- + rents) clairement identifié, ce qui l’annule liser le passé et le présent ainsi que de recevoir + si cette valeur est réduite à 0 (+ 3 points divers signes qu’il aura à charge d’interpréter + par diminution supplémentaire de la valeur au mieux. La divination chinoise prend bien des + au-delà de la première). formes : lecture de la position des étoiles, ho- + • Protection spirituelle (5 points) : crée une roscope et almanach, scapulomancie, tirage du + protection spirituelle de 1 point pour 1 per- Jik Ging, analyse des lignes de la main et des + sonne ciblée (qui peut être le lanceur) pour traits du visage, rêve prémonitoire, etc. + une durée de 1 scène, valable uniquement Concrètement, le PJ discerne un futur pro- + contre les pertes de San occasionnées par un bable ou des événements à venir sur un cer- + nœud d’énergies néfastes (source de dégâts tain laps de temps. Une divination va souvent + spirituels récurrents) (+ 3 points par point concerner une occasion particulière (la réussite + de protection supplémentaire au-delà du pre- à un concours, la signature d’un contrat, etc.), + mier) (+ 2 points pour protéger 1 personne pendant la durée de laquelle le PJ (ou celui à + supplémentaire, + 4 points pour protéger qui il a fait sa prédiction) gagnera un certain + jusqu’à 4 personnes et + 6 points pour pro- nombre de bonus. + téger jusqu’à 8 personnes). Il est également possible d’explorer le passé, de + • Bouclier spirituel (7 points) : accorde 1 dé- visualiser des scènes s’étant produites en un lieu + faste gratuit et ajoute 1 dé supplémentaire à donné ou aux abords d’un objet précis (à la façon + lancer (ou augmente l’Aptitude spirituelle de la psychomancie). De même, le devin peut voir + dans le cas d’un PNJ) sur tout jet de résis- le présent et percevoir des images d’événements + tance contre la perte de San occasionnée par en cours qui se déroulent loin de lui. + un nœud d’énergies néfastes (source de dégâts Le PJ peut bien sûr réaliser une réelle prédic- + spirituels récurrents) (+ 3 points par dé sup- tion – pour lui-même ou un tiers – et le MJ doit + plémentaire au-delà du premier) (+ 2 points alors délivrer des informations plus ou moins + par dé-faste supplémentaire au-delà du pre- exploitables en fonction de la Puissance investie + mier) (+ 2 points pour protéger 1 personne dans le sort. + supplémentaire, + 4 points pour protéger 怪 Élément associé : Eau + jusqu’à 4 personnes et + 6 points pour pro- 怪 Hei : Yin + téger jusqu’à 8 personnes). 怪 Temps de réalisation (rituel) : 30 minutes + Il est possible de déclencher chaque Effet 怪 Temps de réalisation (accéléré) : impossible + plusieurs fois dans un même sort. Le coût pour 怪 Flash-back : oui, mais sans la possibilité + en augmenter les Effets est précisé entre paren- d’agir sur le Loksyu + thèses. Il est aussi possible de les combiner entre 怪 Composantes : + eux pour créer de nouveaux sorts plus puissants. • Mots : citation du Dou Dak Ging, cita- + tion du Jik Ging, prière à Fuk Hei + + + + INTERPRÉTER UNE DIVINATION + Il est toujours délicat pour le MJ de dévoiler l’avenir à un joueur dont le PJ est devin. Il doit fournir des infor- + mations utiles (afin que la divination ne soit pas considérée comme une Spécialité inutile) tout en prenant garde + à ne pas risquer de révéler des éléments cruciaux de son scénario trop tôt. Sans compter que s’il veut rester dans + l’ambiance du jeu, charge à lui de délivrer une prédiction riche en symboles à interpréter – une tâche qui n’a rien + d’évident ! C’est d’ailleurs pour cela qu’est proposée la mécanique permettant de transformer une prédiction en + dés à placer sur le Loksyu. + Voici toutefois un petit guide de la précision des prédictions à fournir au PJ : + 怪 Ampleur faible : la prédiction n’est pas particulièrement précise, mais le PJ en saisit des bribes qu’il pourra + interpréter aisément – noyées dans un symbolisme difficile à comprendre. Le MJ doit fournir quelques infor- + mations de façon claire, mais en les disséminant dans des digressions sans rapport. + 怪 Ampleur moyenne : la prédiction est claire et, même s’il reste des zones d’ombre, le PJ n’a guère de mal + à l’interpréter. Le MJ délivre plusieurs informations exactes au milieu d’un discours cohérent émaillé de + quelques symboles plus flous. + 怪 Ampleur importante : la prédiction est précise et sans équivoque. Elle est compréhensible presque telle + quelle, sans besoin d’interprétation. Le MJ est invité à donner des informations rigoureusement authentiques. + + +324 + • Gestes : jeter les baguettes d’achillée, • Scruter le Taigik (6 points) : au prix d’une les chroniques + lire une carte céleste, suivre les lignes concentration extrême, le devin obtient une + + de l’étrange + de la main information limpide sur ce que lui réserve + • État d’esprit : tourné vers l’avenir, l’avenir. L’augure peut se voir orienté par une + concentration question : si le MJ dispose d’une réponse, + • Consommables : écaille ventrale de tor- il la formule sous la forme d’une prédiction + tue, encens (Ampleur importante). Dans le cas contraire, + • Objets : disque de jade, baguettes le devin lance 3 dés à ajouter au Loksyu + d’achillée, pièces, almanach (ou ajoute 3 points à la Tin Ji dans le cas +怪 Effets : d’un PNJ) pour signifier qu’il a obtenu des + + la magie + • L’Effet « ampleur » indique le degré informations parcellaires mais utiles pour ses + de précision de la vision ou prédiction prochaines actions – bien que le scénario ne + obtenue – de messages sibyllins à véri- permette pas d’identifier lesquelles pour l’ins- + tables visions claires. tant (cf encadré Interpréter une divination). + • L’Effet « Loksyu » simule les avantages • Souffler le vent (7 points) : le devin obtient + qu’a procurés aux PJ la connaissance de une vision si claire de ce que lui réserve + la divination lorsque l’événement prédit l’avenir qu’il devient capable d’influer celui-ci + survient. par ses propres actions. Cela se traduit par + l’ajout de 1 dé de la valeur choisie par le devin + EXEMPLES au Loksyu (ou l’ajout de 2 points à la Tin Ji + dans le cas d’un PNJ) (+ 7 points par dé + Voici une liste non exhaustive de divinations supplémentaire au-delà du premier). +utiles, avec leur coût en Puissance : Il est possible de déclencher chaque Effet +• Vents favorables (2 points) : le devin s’attire plusieurs fois dans un même sort. Le coût pour + les faveurs des dieux pour ses prochaines en augmenter les effets est précisé entre paren- + actions, sans se soucier de la manière dont thèses. Il est aussi possible de les combiner entre + ceux-ci vont lui venir en aide. Il lance 1 dé à eux pour créer de nouveaux sorts plus puissants. + ajouter au Loksyu (ou ajoute 1 point à la Tin + Ji dans le cas d’un PNJ) (+ 2 points par dé + supplémentaire au-delà du premier). PriÈre terrestre +• Murmure du vent (2 points) : l’avenir change + comme la direction du vent, mais en utilisant Il existe de nombreuses divinités terrestres, + la divination, le devin obtient une information dotées d’un pouvoir limité et généralement + symbolique sur ce qui lui est réservé. Cet circonscrit à un lieu spécifique. Ces dieux font + augure peut se voir orienté par une question : souvent le lien entre la Terre et le Ciel, et il n’est + si le MJ dispose d’une réponse, il la formule pas rare qu’ils soient des mortels élevés à ce + sous la forme d’une image ou d’un symbole rang après leur mort – en récompense d’une vie + (Ampleur faible). Dans le cas contraire, le de- vertueuse. Ce sont en quelque sorte les « petits + vin lance 1 dé à ajouter au Loksyu (ou ajoute fonctionnaires » de la hiérarchie divine. Ainsi, + 1 point à la Tin Ji dans le cas d’un PNJ) pour à Hong Kong, on peut trouver le dieu d’une + signifier qu’il a obtenu des informations par- rue, d’un immeuble résidentiel, d’un square, + cellaires mais utiles pour ses prochaines ac- d’une bibliothèque, etc. Souvent, ces divinités + tions – bien que le scénario ne permette pas prennent une apparence familière : la concierge + d’identifier lesquelles pour l’instant (cf enca- d’une résidence, l’homme d’entretien d’un parc + dré Interpréter une divination). public, un employé de bureau, une archiviste, un +• Clairvoyance (4 points) : le devin plonge le mendiant, etc. + regard dans le flot de hei et obtient une in- Le PJ est capable de prier un tel dieu afin + formation claire sur ce que lui réserve l’avenir. de se voir octroyer une ou plusieurs faveurs en + L’augure peut se voir orienté par une ques- lien avec sa juridiction. Ainsi, la divinité d’un + tion : si le MJ dispose d’une réponse, il la for- immeuble peut déverrouiller toutes les portes + mule sous la forme d’une prédiction (Ampleur du bâtiment ou y couper le courant, connaît le + moyenne). Dans le cas contraire, le devin nom de chaque personne qui s’y trouve, sait + lance 2 dés à ajouter au Loksyu (ou ajoute s’y orienter à la perfection, etc. En général, + 2 points à la Tin Ji dans le cas d’un PNJ) les dieux terrestres répondent favorablement + pour signifier qu’il a obtenu des informations si on pense à leur faire une offrande adaptée. + parcellaires mais utiles pour ses prochaines Dans leur juridiction, ces divinités sont quasi + actions – bien que le scénario ne permette omniscientes et disposent de grands pouvoirs + pas d’identifier lesquelles pour l’instant – mais leurs bienfaits ne peuvent en aucun cas + (cf encadré Interpréter une divination). s’étendre hors de leur domaine. + + + 325 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Les divinités domestiques – telles que le dieu IMPORTANCE D’UNE DIVINITÉ + des portes ou le dieu du foyer qui vivent dans TERRESTRE ET AMPLEUR DU + chaque appartement ou maison – appartiennent SERVICE À DEMANDER + à cette catégorie de déités. Même s’il ne maî- Cette Spécialité repose en partie sur l’interpré- + trise pas cette magie, tout fat si pense à leur tation du MJ et du joueur. Selon l’Effet « ampleur » + rendre hommage afin d’être protégé chez lui. choisi, le PJ peut invoquer et demander des services + 怪 Élément associé : Terre plus ou moins grands à la divinité contactée ou lui + 怪 Hei : Yin ou Yang poser des questions simples ou complexes. + 怪 Temps de réalisation (rituel) : 5 minutes Il faut cependant garder à l’esprit que ces dieux ne + 怪 Temps de réalisation (accéléré) : 12 crans voient pas le monde comme les mortels – du fait de + d’initiative leurs responsabilités et de leur longévité. Une infor- + 怪 Flash-back : oui mation cruciale pour les PJ leur semblera banale et ils + 怪 Composantes : ne penseront pas à en parler ou l’auront déjà oubliée, + • Mots : prière à la divinité invoquée par exemple. + • Gestes : danse rituelle Voici un guide d’interprétation de l’Effet + • État d’esprit : lié à la divinité invoquée, « ampleur » : + concentration 怪 Ampleur faible : le dieu est d’une importance res- + • Consommables : offrandes à la divinité treinte, il règne sur un lieu de faible importance + invoquée, encens symbolique ou spirituelle – studio vide, apparte- + • Objets : statuette ou amulette de la divi- ment squatté, ruelle souvent déserte, square peu + nité invoquée, autel de prière fréquenté, dock à l’abandon, entrepôt désaffecté, + 怪 Effets : échoppe peu achalandée, autel isolé, etc. Voici + • L’Effet « bonus » indique les dés-fastes les services qu’il peut rendre : répondre à plu- + ou dés supplémentaires à lancer lors de sieurs questions, ouvrir une porte verrouillée (ou + diverses actions simulant l’aide qu’ap- verrouiller un accès), prévenir si quelqu’un arrive + porte au personnage la divinité terrestre sur son territoire, etc. + sur son territoire. Serrures mal fermées, 怪 Ampleur moyenne : le dieu est relativement im- + raccourcis inopinés, objets faciles à portant, étendant sa juridiction sur un lieu d’une + trouver, etc. certaine importance symbolique ou spirituelle + • L’Effet « Trois Trésors » peut être utilisé – maison ou appartement habité par une famille, + pour rendre compte d’éventuels soins étage de bureau actif dans un gratte-ciel, petit + prodigués par la divinité terrestre ou immeuble au voisinage chaleureux, parc public + bien d’un afflux de Hei dont elle peut où des enfants jouent et où de vieilles personnes + faire profiter ses hôtes. s’adonnent à de la gymnastique taoïste, rue mar- + • L’Effet « malus » traduit les obstacles chande fréquentée, station de métro bondée aux + que la divinité place sur le chemin d’ad- heures de pointe, plage agréable accueillant des + versaires désignés par le personnage surfeurs, petit temple, etc. La divinité domestique + en leur imposant des dés-néfastes ou appartient à cette catégorie. Voici les services + en diminuant le nombre de dés à lancer qu’elle peut rendre : fournir des informations sur + lors d’actions particulières. Portes qui un événement ayant eu lieu sur son territoire, + se verrouillent, ascenseurs qui tombent couper le courant dans un bâtiment, donner le + en panne, escaliers devenant glissants, nom de plusieurs personnages vivant dans sa + ampoules qui grillent, etc. zone d’influence, etc. + • L’Effet « ampleur » permet de dimen- 怪 Ampleur importante : le dieu est important et + sionner l’importance du service deman- tient sous sa garde un endroit d’une grande im- + dé à la divinité (et donc sa puissance), portance symbolique ou spirituelle – grand im- + la quantité d’informations qu’il est pos- meuble accueillant le siège de plusieurs grandes + sible d’apprendre de sa part. entreprises, avenue majeure de Hong Kong, + • L’Effet « aire » circonscrit la taille du manoir datant de la colonisation britannique, bâ- + territoire de la divinité ou la zone au timent public (grande bibliothèque, morgue prin- + sein de celui-ci où le PJ souhaite qu’elle cipale d’un district, etc.), parc naturel, gare al- + exerce son influence. Cela dure tant que lant jusqu’à Shenzhen, temple géré par plusieurs + les PJ ne font rien qui puisse contrarier prêtres, monastères majeurs, mall immense, etc. + la divinité terrestre et demeurent dans Voici les services qu’il peut rendre : provoquer + l’aire d’effet. Par exemple : un étage un phénomène naturel sur son territoire (pluie, + d’un immeuble, une pièce d’une maison, brouillard, obscurité, etc.), effectuer des modifi- + un square au sein d’un quartier, etc. cations drastiques de sa zone d’influence (chan- + ger temporairement la configuration des lieux), + etc. + + +326 + EXEMPLES permettant de communiquer par télépathie s’ils les chroniques + se séparent (+ 2 points supplémentaires pour + + de l’étrange + Voici une liste non exhaustive de prières affecter jusqu’à 6 personnes). +utiles, avec leur coût en Puissance : Il est possible de déclencher chaque Effet +• Renseignement divin (2 à 6 points) : en fonc- plusieurs fois dans un même sort. Le coût pour + tion de la puissance du dieu terrestre invoqué, en augmenter les Effets est précisé entre paren- + permet au lanceur d’obtenir un renseignement thèses. Il est également possible de les combiner + de la part de la divinité (le coût de base dé- au cours de la même prière. + pend de l’Ampleur – cf encadré). +• Soins physiques (2 points) : le dieu offre + PriÈre cÉleste + la magie + 1 point de Zing (+ 2 points par point de Zing + supplémentaire au-delà du premier). +• Soins spirituels (2 points) : le dieu offre Le PJ connaît les rituels et paroles permettant + 1 point de San (+ 2 points par point de San d’appeler la bénédiction d’une divinité céleste. + supplémentaire au-delà du premier). En général, on sollicite les dieux pour qu’ils +• Souffle vital (2 points) : le dieu offre 1 point nous prêtent force et assistance durant une + de Hei (Yin ou Yang selon le type de divinité épreuve particulière et planifiée – qui peut être + ou au choix du lanceur si la divinité peut offrir un combat, une négociation, un interrogatoire, + les deux) (+ 2 points par point de Hei sup- l’analyse d’une scène de crime, la préparation + plémentaire au-delà du premier). d’une potion d’alchimie, etc. Cette épreuve doit +• Service divin (4 à 8 points) : en fonction de la être planifiée à l’avance afin que le Ciel identifie + puissance du dieu terrestre invoqué, permet au le moment où il doit apporter son aide. + lanceur d’obtenir un service circonscrit à une Le PJ doit bien sûr rendre hommage à la divi- + partie de son domaine, qui ne peut excéder nité la plus en rapport avec la nature de l’épreuve + la taille d’une pièce (le coût de base dépend prévue. S’il s’apprête à combattre des démons, il + de l’Ampleur – cf encadré) (+ 2 points pour priera Jinlong ou Gwaan Ji. S’il compte séduire + étendre l’aire à un immeuble, + 4 points pour la personne dont il est amoureux, il sollicitera + étendre l’aire à tout un quartier). Soeng Ngo. Si l’épreuve est de nature intellec- +• Bénédiction terrestre (7 points) : le dieu offre tuelle (des recherches à accomplir, un examen + une bénédiction de chance au PJ dans un à réussir, etc.), il se tournera vers Man Tai. Il + champ de compétence précis (fuite, com- est bien sûr possible d’adresser ses prières aux + bat, enquête, magie, etc.) au sein d’une aire immortels et aux divers bouddhas ! + choisie. Cela se traduit par l’ajout de 1 dé 怪 Élément associé : Feu + supplémentaire à lancer sur toutes les actions 怪 Hei : Yang + concernées dans la zone d’effet déterminée, 怪 Temps de réalisation (rituel) : 30 minutes + qui ne peut excéder la taille d’un immeuble 怪 Temps de réalisation (accéléré) : non + (+ 3 points par dé supplémentaire au-delà applicable + du premier) (+ 2 points pour affecter jusqu’à 怪 Flash-back : oui + 4 personnes, + 4 points pour affecter jusqu’à 怪 Composantes : + 6 personnes) (+ 2 points par dé-faste, si l’on • Mots : prière à la divinité implorée + souhaite aussi en ajouter dans le même sort) Gestes : danse rituelle + (+ 2 points pour affecter un quartier). • État d’esprit : lié à la divinité implorée, +• Entrave divine (7 points) : le dieu entrave les concentration + actions d’un adversaire du lanceur dans un • Consommables : offrandes à la divinité + champ de compétence précis (poursuite, com- implorée, encens + bat, investigation, etc.) au sein d’une aire choisie • Objets : statuette ou amulette de la divi- + dans son domaine. Cela se traduit par le retrait nité implorée, autel de prière + de 1 dé à lancer sur toutes les actions concernées 怪 Effets : + dans la zone d’effet déterminée, qui ne peut • L’Effet « bonus » octroie des dés-fastes + excéder la taille d’un immeuble (+ 3 points par ou des dés supplémentaires à lancer lors + dé retiré supplémentaire au-delà du premier) des épreuves en rapport avec la bénédic- + (+ 2 points pour affecter jusqu’à 4 personnes, tion demandée : si le personnage compte + + 4 points pour affecter jusqu’à 6 personnes) examiner une scène de crime, il obtien- + (+ 2 points par dé-néfaste, si l’on souhaite dra ces bonus sur ses jets d’Enquête ; s’il + aussi en ajouter dans le même sort) (+ 2 points s’agit de reconstituer un antique rituel, + pour affecter un quartier). il choisira la Compétence Érudition, etc. +• Lien spirituel divin (8 points) : le dieu lie les • L’Effet « durée » permet de décider du + esprits des membres du groupe du lanceur – au temps durant lequel les dieux veillent sur + maximum 4 personnes – sur son territoire, leur le personnage et favorisent ses actions. + + + 327 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + • L’Effet « Loksyu » traduit une bénédic- • Grâce de Soeng Ngo (3 points) : la déesse + tion s’étendant sur le groupe des PJ, lunaire ajoute 1 dé supplémentaire (ou aug- + signe qu’ils se trouvent sous la protec- mente de 1 son Aptitude sociale dans le cas + tion du dieu céleste prié. d’un PNJ) sur un prochain jet de Mondanités + • Les bienfaits proposés par une divinité du lanceur (+ 3 points par dé supplémentaire + céleste sont accordés à une ou plusieurs au-delà du premier). + personnes : où qu’elles aillent, la béné- • Bénédiction de Gwaan Dai (4 points) : le dieu + diction ou la faveur les suit pour une de la guerre accorde 1 dé-faste gratuit sur tous + durée donnée. les jets du lanceur lors de son prochain com- + bat. Les effets de cette prière durent 1 scène + EXEMPLES (+ 2 points par dé-faste supplémentaire + au-delà du premier) (+ 4 points pour étendre + Voici une liste non exhaustive de prières la bénédiction à 4 combattants supplémen- + utiles, avec leur coût en Puissance : taires) (+ 3 points par dé pour obtenir des + • Faveur de Mansyu (2 points) : la divinité de la dés supplémentaires à lancer – ou des aug- + sagesse accorde 1 dé-faste gratuit au lanceur mentations de l’Aptitude martiale – en plus + sur un prochain jet d’Érudition ou d’Enquête, des dés-fastes). + au choix (+ 2 points par dé-faste supplé- • Souffle de la Dame aux Sept Étoiles de la + mentaire au-delà du premier) (+ 4 points Grande Ourse (4 points) : la déesse protectrice + pour étendre la bénédiction à 4 personnes accorde 1 dé-faste gratuit sur tous les jets du + supplémentaires, chacun recevant le ou les lanceur liés aux Spécialités magiques sui- + dé(s)-faste(s) sur son prochain jet). vantes : Purification, Punition et Neutralisation + • Protection des cinq Gardiens célestes (mais un seul à la fois). Les Effets de cette + (2 points) : la prière s’adresse aux Gardiens prière durent 1 scène (+ 2 points par dé- + célestes afin de leur demander d’attirer la faste supplémentaire au-delà du premier) + chance. Seuls les fat si s’avèrent normalement (+ 4 points pour étendre la bénédiction à + capables de la réaliser et elle permet de lancer 4 exorcistes supplémentaires). + 1 dé à ajouter au Loksyu (ou ajoute 1 point à la • Assentiment de Jilong (4 points) : le défen- + Tin Ji dans le cas d’un PNJ) (+ 2 points par seur du Ciel accorde 1 dé-faste gratuit sur + dé supplémentaire au-delà du premier). tous les jets du lanceur, tant qu’il combat ou + • Appui de Man Coeng (3 points) : le lanceur s’oppose à des jiugwaai dont les actions ou + reçoit une assistance discrète du dieu des l’existence s’opposent à la Volonté du Ciel + lettrés sous sa forme d’entité numérique. Il – ce qui inclut la plupart des revenants et + ajoute 1 dé supplémentaire à lancer (ou aug- démons (+ 2 points par dé-faste supplé- + mente de 1 son Aptitude mentale dans le cas mentaire au-delà du premier) (+ 4 points + d’un PNJ) sur son prochain jet en rapport avec pour étendre la bénédiction à 4 combattants + une recherche sur internet – dont le Taonet supplémentaires). + (+ 3 points par dé supplémentaire au-delà • Faveur de Naazaa (5 points) : apprécié de + du premier). cette divinité martiale, le lanceur ajoute 1 dé + • Bénédiction de Gunjam (3 points) : la déesse supplémentaire à lancer (ou augmente de 1 + de la compassion ajoute 1 dé supplémentaire à son Aptitude martiale dans le cas d’un PNJ) + lancer (ou augmente de 1 son Aptitude phy- sur tous ses jets d’attaque et de défense tant + sique ou spirituelle dans le cas d’un PNJ) sur qu’il utilise un Style d’art martial (+ 3 points + un prochain jet de récupération d’un person- par dé supplémentaire au-delà du premier) + nage (qui peut être le lanceur) (+ 3 points (+ 4 points pour étendre la bénédiction à + par dé supplémentaire au-delà du premier). 4 combattants supplémentaires). + • Faveur de Poujin (3 points) : la divinité de la • Assentiment de Ymlo (6 points) : un groupe + vérité ultime ajoute 1 dé supplémentaire (ou d’au maximum 4 fat si reçoit l’approbation du + augmente de 1 son Aptitude mentale dans le dieu des Enfers lui-même et se voit accorder + cas d’un PNJ) sur un prochain jet d’Enquête pour chacun de ses membres 1 dé-faste gratuit + ou de Renseignement – au choix – du sur tous ses jets, tant qu’il s’agit d’affronter + lanceur (+ 3 points par dé supplémentaire des démons ou des revenants (+ 2 points par + au-delà du premier). dé-faste supplémentaire au-delà du premier) + • Sapience de Sannung (3 points) : la divinité de (+ 2 points pour étendre la bénédiction à + l’herboristerie ajoute 1 dé supplémentaire (ou 8 personnes supplémentaires). + augmente de 1 son Aptitude mentale dans le • Bienfait de Syun Nghung (6 points) : le Roi + cas d’un PNJ) sur un prochain jet d’Érudition singe aux nombreuses formes offre un dé- + du lanceur (+ 3 points par dé supplémentaire guisement presque parfait qui accorde au + au-delà du premier). lanceur 2 dés-fastes gratuits sur tous ses + +328 + jets pour lesquels cette illusion s’avère utile • Imprécation de Deizong (7 points) : ce dieu les chroniques + (+ 2 points par dé-faste supplémentaire apporte une endurance et une détermination + + de l’étrange + au-delà du premier). sans faille, se traduisant par l’ajout de 1 dé +• Présent de Soeng Ngo (6 points) : l’éclat de supplémentaire à lancer sur tous les jets du + la lune elle-même se voile pour dissimuler lanceur impliquant l’Aspect Bois (ou aug- + les actions nocturnes du lanceur, qui se voit mente de 1 son Aptitude spirituelle ou martiale + accorder 1 dé-faste sur tous ses jets pour se dans le cas d’un PNJ) et accorde 1 dé-faste + dissimuler ou être discret – incluant les jets gratuit sur tous ses jets liés à une Compétence + de Filouterie, mais aussi d’autres Compétences de Magie, une Spécialité de Magie ou un + éventuelles (comme Prouesse). Les effets de Style d’art martial liés à l’Aspect Bois. Ces + + la magie + cette prière durent 1 nuit (+ 2 points par dé- bonus sont cumulatifs et durent 1 scène. Il est + faste supplémentaire au-delà du premier). possible de recevoir cette bénédiction et d’en +• Bénédiction de Tin Hau (7 points) : la déesse utiliser les effets lors d’une scène ultérieure, + tutélaire de Hong Kong permet au lanceur à la discrétion du MJ (+ 2 points par dé- + d’ajouter 1 dé supplémentaire sur tous ses faste supplémentaire au-delà du premier) + jets impliquant l’Aspect Terre (ou augmente (+ 3 points par dé supplémentaire au-delà + de 1 son Aptitude spirituelle ou martiale dans du premier). + le cas d’un PNJ) et accorde 1 dé-faste gra- • Manifestation de Leoi Gung (7 points) : le + tuit sur tous ses jets liés à une Compétence dieu du tonnerre ajoute 1 dé supplémentaire + Magie, une Spécialité de Magie ou un Style à lancer sur tous les jets du lanceur impli- + d’art martial liés à l’Aspect Terre. Ces bo- quant l’Aspect Métal (ou augmente de 1 son + nus sont cumulatifs et durent 1 scène. Il est Aptitude spirituelle ou martiale dans le cas + possible de recevoir cette bénédiction et d’en d’un PNJ) et accorde 1 dé-faste gratuit sur + utiliser les effets lors d’une scène ultérieure, tous ses jets liés à une Compétence de Magie, + à la discrétion du MJ (+ 2 points par dé- une Spécialité de Magie ou un Style d’art + faste supplémentaire au-delà du premier) martial liés à l’Aspect Métal. Ces bonus sont + (+ 3 points par dé supplémentaire au-delà cumulatifs et durent 1 scène. Il est possible de + du premier). recevoir cette bénédiction et d’en utiliser les +• Faveur de Zuk Jung (7 points) : le dieu du effets lors d’une scène ultérieure, à la discré- + feu chevaucheur de dragon ajoute 1 dé sup- tion du MJ (+ 2 points par dé-faste supplé- + plémentaire à lancer sur tous les jets du lan- mentaire au-delà du premier) (+ 3 points par + ceur impliquant l’Aspect Feu (ou augmente dé supplémentaire au-delà du premier). + de 1 son Aptitude spirituelle ou martiale dans • Prospérité de Coi San (7 points) : cette béné- + le cas d’un PNJ) et accorde 1 dé-faste gra- diction apporte richesse et succès. Le lanceur + tuit sur tous ses jets liés à une Compétence s’accorde 2 dés-fastes gratuits et ajoute 1 dé + Magie, une Spécialité de Magie ou un Style supplémentaire à lancer sur son prochain jet + d’art martial liés à l’Aspect Feu. Ces bo- de Ressource Matériel (ou augmente sa ca- + nus sont cumulatifs et durent 1 scène. Il est pacité de Nuisance de 1 cran dans le cas d’un + possible de recevoir cette bénédiction et d’en PNJ) (+ 2 points par dé-faste supplémen- + utiliser les effets lors d’une scène ultérieure, taire au-delà des 2 premiers) (+ 3 points par + à la discrétion du MJ (+ 2 points par dé- dé supplémentaire au-delà du premier). + faste supplémentaire au-delà du premier) • Visions de Neilakfat (7 points) : rares sont ceux + (+ 3 points par dé supplémentaire au-delà qui possèdent le pouvoir de prier le bouddha + du premier). du futur pour obtenir de lui une vision de leur +• Manifestation de Din Mou (7 points) : la propre destin. Cela se traduit par l’ajout de + déesse des éclairs ajoute 1 dé supplémentaire 1 dé de la valeur choisie par le lanceur au + à lancer sur tous les jets du lanceur impli- Loksyu (ou l’ajout de 2 points à la Tin Ji dans + quant l’Aspect Eau (ou augmente de 1 son le cas d’un PNJ) (+ 7 points par dé supplé- + Aptitude spirituelle ou martiale dans le cas mentaire au-delà du premier). + d’un PNJ) et accorde 1 dé-faste gratuit sur • Soutien de Zung Kwai (9 points) : grâce au + tous ses jets liés à une Compétence de Magie, soutien de la divinité, le personnage ajoute 1 dé + une Spécialité de Magie ou un Style d’art supplémentaire à lancer (ou augmente de 1 son + martial liés à l’Aspect Eau. Ces bonus sont Aptitude mentale, sociale ou spirituelle dans + cumulatifs et durent 1 scène. Il est possible de le cas d’un PNJ) sur tous ses jets d’Enquête, + recevoir cette bénédiction et d’en utiliser les Renseignement et Exorcisme (Traque) visant à + effets lors d’une scène ultérieure, à la discré- identifier ou traquer un revenant. Il faut spé- + tion du MJ (+ 2 points par dé-faste supplé- cifier de quel spectre, fantôme ou mort-vivant + mentaire au-delà du premier) (+ 3 points par il s’agit au départ car on ne peut en traquer + dé supplémentaire au-delà du premier). qu’un seul à la fois. Les effets de cette prière + + 329 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + durent 1 journée – jusqu’à la prochaine aube l’épreuve de façon à y imposer un malus aux + (+ 3 points par dé supplémentaire au-delà jets d’une Compétence intellectuelle (celle sur + du premier). laquelle portent les questions). Il est bien sûr + • Sceau des Neuf Cieux, message de l’Impéra- possible d’organiser un lieu de façon à y favori- + trice du Ciel (10 points) : pour effectuer cette ser l’utilisation de certaines Compétences tandis + prière, le fat si doit disposer du véritable nom que d’autres s’y verront désavantagées… + d’un jiugwaai, de l’un de ses effets personnels Harmoniser ou désorganiser des flux implique + ou l’avoir déjà clairement identifié. Il obtient que le PJ passe un certain temps à organiser + de la messagère de l’Impératrice du Ciel l’as- l’agencement et la décoration du lieu. Il peut dé- + cendant sur la créature ciblée : l’ajout de 2 dés placer les meubles, positionner un miroir sur un + supplémentaires à lancer (ou l’augmentation mur particulier, placer une plante dans un coin, + de 2 de ses Aptitudes spirituelles ou sociales etc. Il s’agit là de l’art ancestral du fungseoi tel + dans le cas d’un PNJ) et 2 dés-fastes gra- que les profanes le connaissent. + tuits sur son prochain jet de Domination ou de 怪 Élément associé : Bois + Nécromancie visant à la contrôler ou de toute 怪 Hei : Yang + autre Compétence permettant de s’en octroyer 怪 Temps de réalisation (rituel) : 30 minutes + les services durablement, comme Mondanités 怪 Temps de réalisation (accéléré) : non + (Négociation) par exemple. applicable + • Mandat de l’Empereur de Jade (12 points) : 怪 Flash-back : oui + pour effectuer cette prière, le fat si doit dispo- 怪 Composantes : + ser du véritable nom d’un jiugwaai, de l’un de • Mots : citation du Dou Dak Ging, cita- + ses effets personnels ou l’avoir déjà clairement tion du Wong Ting Ging + identifié. Il obtient de l’Empereur de Jade lui- • Gestes : organiser l’espace, déplacer des + même l’assentiment pour le bannir : l’ajout objets + de 2 dés supplémentaires à lancer (ou l’aug- • État d’esprit : centré sur les compor- + mentation de 2 de ses Aptitudes spirituelles tements à influencer, concentration, + ou sociales dans le cas d’un PNJ) et 2 dés- mouwai + fastes gratuits sur tous ses jets pour affronter, • Consommables : encens, bougies, sel + vaincre ou utiliser des Spécialités magiques • Objets : boussole lopun, miroir octo- + telles qu’Invocation, Neutralisation ou Punition gonal, figurines en matériau précieux + à l’encontre de la créature ciblée. Les effets de (jade, or) + cette prière durent 1 scène. Il est possible de 怪 Effets : + recevoir cette bénédiction et d’en utiliser les • L’Effet « bonus » octroie des dés-fastes + effets lors d’une scène ultérieure, à la dis- ou des dés supplémentaires à lancer dans + crétion du MJ (+ 4 points pour étendre la la zone où le PJ a harmonisé les flux, + bénédiction à 4 combattants supplémentaires). sur un type de jet déterminé (dépendant + Chaque exemple d’Effet ci-dessus est indé- d’un Aspect ou d’une Compétence). + pendant et nécessite son propre sort. Cependant, • L’Effet « malus » impose des dés- + les Effets d’un sort peuvent être renforcés : le néfastes ou diminue le nombre de + coût pour en augmenter les Effets est précisé dés à lancer dans la zone où le PJ a + entre parenthèses. désorganisé les souffles, sur un type de + jet déterminé (dépendant d’un Aspect + ou d’une Compétence). + Fungseoi • L’Effet « aire » détermine la zone au + sein de laquelle l’harmonisation ou la + Par la géomancie, le PJ est capable d’harmo- désorganisation s’applique et affecte les + niser ou de désorganiser les flux d’énergie en personnes présentes. + un lieu donné. Ce faisant, il peut favoriser ou • L’Effet « durée » permet de décider du + handicaper des comportements au sein de l’aire temps durant lequel les flux restent har- + d’effet – apportant bonus ou malus à des com- monisés ou désorganisés. + pétences choisies. • L’Effet « source de dégâts récurrents » + Ainsi, dans un bureau où doit avoir lieu la est également applicable, afin de créer + signature d’un contrat important, le PJ peut un nœud d’énergies néfastes. La plu- + harmoniser les énergies afin que les parties ob- part des fat si rechignent à utiliser ce + tiennent des bonus à leurs jets impliquant des genre de méthodes (qui ont tendance + Compétences sociales par exemple. À l’inverse, à perturber l’harmonie), à moins que + si le PJ souhaite que des candidats à un exa- l’endroit visé n’accueille une réunion de + men perdent leurs moyens devant leur copie, il malfaiteurs jiugwaai. Seuls des dégâts + peut désorganiser les souffles dans la salle de spirituels peuvent être infligés. + + +330 + EXEMPLES 1 journée entière) (+ 1 point pour affecter une les chroniques + maison ou un appartement). + + de l’étrange + Voici une liste non exhaustive de sorts utiles, • Nœud d’énergies négatives (7 points) : l’en- +avec leur coût en Puissance : droit touché par ce sort produit une source +• Harmonie du fungseoi (6 points) : l’effet dure de dégâts spirituels récurrents d’une valeur + 1 scène et recouvre une zone correspondant à de 1, nécessitant un jet de résistance à chaque + une pièce dans laquelle l’harmonisation a eu scène. Ses effets s’arrêtent au premier jet de + lieu (au moment du lancement du sort). Le résistance réussi (+ 3 points par point de + lanceur choisit un comportement (par exemple, valeur supplémentaire au-delà du premier) + celui qui négocie, celui qui fouille, etc.) et tous (+ 2 points pour imposer un jet de résistance + + la magie + les jets de dés en rapport avec celui-ci ef- tous les 6 crans d’initiative). + fectués par les individus se trouvant dans la + zone d’effet se voient accorder 1 dé-faste gra- Il est possible de déclencher chaque Effet + tuit (+ 2 points par dé-faste supplémentaire plusieurs fois dans un même sort. Le coût pour + au-delà du premier) (+ 4 points pour étendre en augmenter les Effets est précisé entre pa- + la durée à 1 journée entière) (+ 1 point pour renthèses. Il est également possible de cumuler + affecter une maison ou un appartement). dégâts, malus et dés-néfastes en dépensant la +• Dissonance du fungseoi (6 points) : l’effet dure Puissance nécessaire pour créer de nouveaux + 1 scène et recouvre une zone correspondant sorts plus forts. Puisqu’on cible un comportement, + à une pièce dans laquelle l’harmonisation a il est possible de cibler directement un Aspect + eu lieu (au moment du lancement du sort). (par exemple, tous ceux qui font des jets impli- + Le lanceur choisit un comportement (par quant l’Aspect Feu), car ceux-ci sont représen- + exemple, celui qui se montre agressif, celui qui tatifs d’une attitude. + réfléchit, etc.) et tous les jets de dés en rapport + avec celui-ci effectués par les individus se + trouvant dans la zone d’effet se voient imposer + 1 dé-néfaste (+ 2 points par dé-faste sup- + plémentaire au-delà du premier) (+ 4 points + pour étendre la durée à 1 journée entière) + (+ 1 point pour affecter une maison ou un + appartement). +• Équilibre du fungseoi (7 points) : l’effet dure + 1 scène et recouvre une zone correspondant + à une pièce dans laquelle l’harmonisation a + eu lieu (au moment du lancement du sort). + Le lanceur choisit un comportement (par + exemple, celui qui affronte des démons, celui + qui effectue un rituel, etc.) et tous les jets + de dés en rapport avec celui-ci effectués par + les individus se trouvant dans la zone d’effet + ajoutent 1 dé supplémentaire à lancer (ou aug- + mentent de 1 l’Aptitude adéquate dans le cas + d’un PNJ) (+ 3 points par dé supplémentaire + au-delà du premier) (+ 4 points pour étendre + à la durée à 1 journée entière) (+ 1 point pour + affecter une maison ou un appartement). +• Déséquilibre du fungseoi (7 points) : l’effet + dure 1 scène et recouvre une zone correspon- + dant à une pièce dans laquelle l’harmonisation + a eu lieu (au moment du lancement du sort). + Le lanceur choisit un comportement (par + exemple, celui qui utilise des armes à feu, + celui qui torture une victime) et tous les jets + de dés en rapport avec celui-ci effectués par + les individus se trouvant dans la zone d’ef- + fet retirent 1 dé à lancer (ou diminuent de 1 + l’Aptitude adéquate dans le cas d’un PNJ) + (+ 3 points par dé supplémentaire au-delà du + premier) (+ 4 points pour étendre à la durée à + + 331 + rt i e + e p a + un + e ner + m + 1 1 + p i tre +cha + e + Le Meneur de Jeu (abrégé MJ) joue un rôle + important durant une partie de Hong Kong – Les + Chroniques de l’Étrange : + 怪 narrateur : chargé de proposer une intrigue + et d’y intégrer les idées des joueurs ; + 怪 arbitre : dès lors qu’interviennent les + règles ; + 怪 joueur : lorsqu’il interprète les PNJ ; + 怪 incarnation de Hong Kong : responsable + d’une grande partie de l’ambiance. + Les chapitres suivants décrivent les règles + et les accessoires dont le MJ dispose pour lui + simplifier ces multiples tâches tout au long des + parties. + + + + + « La Dame aux Sept Étoiles de la Grande + Ourse remplit au sein du panthéon + céleste la fonction de protectrice des + jeunes filles. Elle veille ainsi sur les + femmes avant qu’elles ne soient en âge + de se marier et prend cet office très à + cœur. Bien sûr, elle ne se manifesta pas à + nous directement : trois jours auparavant, + alors que nous dînions dans un restaurant + de Yau Ma Tei à l’ouest de Kowloon, une + adolescente à l’apparence décalée nous + avait abordés. Jupe en cuir, multiples + piercings sur le visage et cheveux colorés + en vert, elle arborait d’impressionnants + tatouages sur les bras – figurant + d’innombrables plumes blanches. James + comprit immédiatement que nous étions + en présence d’une nymphe céleste : une + messagère envoyée par une déesse. » + — Les Gardiens célestes + + + + + 333 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Les outils du MJ + Afin de lui faciliter la tâche, le système pro- Utilisation de la Tin Ji + pose des outils simples et ergonomiques pour + qu’il puisse aisément se concentrer sur ce qui En dépensant des points de sa Tin Ji, le MJ + se passe dans la fiction. C’est ainsi qu’il dispose peut intervenir à la fois sur les PJ et les PNJ, mais + d’une réserve de points qui lui permet d’inter- également sur l’environnement général – soit la + venir de façon directe dans la partie et que les ville de Hong Kong elle-même. La Tin Ji sert no- + PNJ dont il doit jouer le rôle se gèrent grâce à tamment à donner vie aux PNJ, qu’ils soient les + des règles réduites et pratiques. adversaires ou les alliés des PJ. Comme le MJ + ne lance jamais les dés, la Tin Ji est son unique + « Les coïncidences n’existent pas : il moyen technique destiné à gérer les actions des + n’y a que la Volonté du Ciel. » PNJ et à faire varier les rebondissements qui y + sont liés. C’est un outil essentiel dont le MJ ne + Johnny Kwan, fat si doit pas hésiter à se servir pour rendre un adver- + saire plus redoutable ou surprendre les PJ avec + une action spectaculaire menée par un allié. + La Tin Ji À travers ses choix d’utilisation de la Tin Ji, le + MJ est également invité à récompenser ou punir + La Tin Ji – terme qui peut se traduire par « la les PJ en fonction de leurs choix. Ainsi, si les fat + Volonté du Ciel » – est en quelque sorte le sens si rudoient leurs interlocuteurs, exécutent des + du cosmos, la direction impulsée à l’univers par jiugwaai sans montrer de pitié, agissent pour de + le Tao. Concept sans conscience mais supérieur l’argent, ne font pas montre de compassion et + aux dieux eux-mêmes (qui doivent le respecter), ne se préoccupent guère de l’équilibre du cos- + la Tin Ji s’assure que les êtres humains agissent mos : le MJ doit leur faire sentir que la Volonté + conformément à leur place dans le grand ordre du Ciel désapprouve leurs actes en dépensant + des choses. Elle récompense autant qu’elle pu- des points afin de les gêner (imposer des malus + nit et on lui attribue aussi bien ses turpitudes aux PJ, rendre plus forts les PNJ…). À l’inverse, + personnelles que des catastrophes à plus grande s’ils se montrent bienveillants, cherchent à com- + échelle (inondations, tempêtes, séismes…). prendre le fond de l’affaire, agissent de façon + Dans Hong Kong – Les Chroniques de désintéressée, évitent la violence inutile et ont + l’Étrange, on nomme Tin Ji la réserve dont dis- à cœur de préserver l’harmonie : le MJ doit + pose le MJ et avec les points de laquelle il peut montrer aux PJ qu’ils se comportent en accord + agir directement dans la partie. avec le Tao en dépensant des points afin de les + assister (octroyer des bonus, réduire un peu la + puissance des PNJ…). Le plus souvent, les PJ + Constitution de la Tin Ji alternent les comportements ; aussi le MJ doit-il + également alterner les usages de la Tin Ji. + Au début de la partie, la Tin Ji contient au- La Tin Ji offre au MJ un moyen d’intervenir + tant de points que de joueurs autour de la table sur la fiction, en toute transparence, sans tri- + – MJ inclus. Durant la partie, la Tin Ji reçoit des cher. Il matérialise ainsi une réalité de l’univers + points chaque fois que, lors d’un jet pour réussir où vivent les fat si, que certains PNJ pourront + une action (cf p.224), un joueur place des dés sur assimiler à la chance, ou au destin, mais que les + l’Aspect dominé par l’Aspect choisi pour ledit jet exorcistes reconnaissent comme l’intervention + (1 dé équivalent à 1 point de Tin Ji). Cette ré- des forces occultes qui composent le monde. Il + serve se vide et se remplit alors continuellement peut s’en servir pour aider les PJ ou pour leur + au cours de la séance, selon l’utilisation qu’en rendre la tâche plus difficile. Dans les cas où il + fait le MJ et les points que les joueurs y injectent. ne se sert pas de cette réserve, les règles s’ap- + Ainsi, la Volonté du Ciel juge en permanence pliquent normalement. + les PJ et pourra les récompenser ou les punir en + fonction de la justesse de leurs actes. + + + + +334 + En dehors d’un jet de dés, les points de Tin Exemples d’utilisation : les chroniques +Ji sont dépensés au moment d’annoncer l’effet 怪 S’il souhaite orienter l’intrigue dans une + + + de l’étrange +au PJ concerné. Mais lors d’un jet de dés, le MJ certaine direction, le MJ peut subtilement +peut dépenser des points de Tin Ji pour modifier guider les joueurs grâce à une dépense +les Aptitudes et les difficultés ou octroyer des particulière de points. En affaiblissant un +dés supplémentaires à lancer ou des dés-fastes, groupe adverse de PNJ, il permet aux fat si +à deux moments : de les neutraliser plus aisément et de pour- + 怪 avant le jet de dés ; suivre ainsi par exemple leur enquête dans + 怪 après le jet de dés, mais avant que les PJ la direction choisie. + aient eu l’occasion de dépenser des points 怪 S’il souhaite qu’ils découvrent une informa- + + + + + Mener une partie + de Loksyu. tion importante, il lui suffit de leur donner + Ce sont donc toujours les PJ qui ont l’occa- des bonus afin d’améliorer leurs chances +sion de dépenser du Loksyu en dernier lieu. Le de la découvrir. +MJ peut utiliser autant de points de Tin Ji qu’il le 怪 D’une façon comparable, il peut garder le +souhaite et activer plusieurs fois le même effet contrôle sur le rythme de la partie – accélé- +sur le même PJ ou PNJ de manière cumulative rant telle scène ou ralentissant telle autre, +au besoin. Le MJ dépense ouvertement, à la vue en fonction des ambiances qu’il souhaite +de tous, ces points – de manière à faire sentir privilégier ou des envies des joueurs (pro- +aux PJ l’importance de l’influence de l’environ- longer un combat car chacun souhaite se +nement sur leurs actions et réciproquement. défouler, raccourcir une scène de marchan- + dage qui n’apporte rien à l’intrigue, etc.). + + NOMBRE DE POINTS + DE TIN JI UTILISÉS EFFETS + Octroyer 1 dé-faste à un PJ ou un PNJ. + 1 point Imposer 1 dé-néfaste à un PJ ou un PNJ. + Ajouter ou soustraire 1 point de Puissance à un sort lancé par un PJ ou un PNJ. + Donner 1 dé supplémentaire ou retirer 1 dé à lancer à un PJ. + Augmenter ou diminuer de 1 la valeur d’une Aptitude d’un PNJ. + Augmenter ou diminuer de 1 la difficulté d’une action. + Rendre ou retirer 1 point de Trésor au choix à un PJ. + Rendre ou retirer 1 point de Vitalité ou 1 point de Hei à un PNJ. + 2 points + Retirer 1 dé du Loksyu (au choix du MJ) dans un élément au sein duquel il + en reste au moins 2. + Prémunir un PNJ jiugwaai de la Spécialité Domination d’Exorcisme pour + toute la durée du scénario en cours. + Lorsqu’un PNJ de type Adversaire est présent, faire intervenir des renforts + composés d’un groupe de Sbires à son service. + Rendre un bien, un renseignement ou un service indisponible. Bien que le PJ + ait les Ressources nécessaires pour l’obtenir, il n’y parvient pas. + Plus ce bien, ce renseignement ou ce service s’avère important pour l’intrigue, + plus le coût pour le rendre indisponible est élevé – 3 points étant le minimum. + 3 points Lever l’immunité scénaristique d’un Allié ou d’un Contact majeur d’un PJ – le + MJ peut lui faire subir divers aléas (kidnappé, blessé, en planque…), mais + jamais le tuer ou le rendre définitivement indisponible (en exil, en prison…). + Plus ce PNJ s’avère important dans l’intrigue, plus le coût pour l’atteindre + est élevé – 3 points étant le minimum. + Prémunir un PNJ jiugwaai de la Spécialité Domination d’Exorcisme de fa- + çon définitive. + Retirer 1 dé du Loksyu (au choix du MJ) dans un élément au sein duquel il + 4 points + n’en reste plus que 1. + Lorsqu’un PNJ de type Boss est présent, faire intervenir des renforts com- + posés d’un Adversaire accompagné d’un groupe de Sbires. + + + + 335 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + EXEMPLE + Tandis que les fat si se trouvent dans un célèbre parc d’attractions de Hong Kong, ils sont confrontés à un + puissant démon – un Boss (cf p.341). Dès le départ, Adrien / MJ leur a décrit que ce démon disposait de + plusieurs hommes de main, des Sbires (cf p.341), qui agissent en groupe, et d’un garde du corps, un Adversaire + (cf p.341), qui semble leur donner des ordres. Le démon tente de négocier avec les PJ en leur indiquant à quel + point ils sont en infériorité numérique, mais les exorcistes pensent qu’il bluffe. « Nous allons vous arrêter, quoi + qu’il en coûte » indique, confiante, Maïlys / Penny Woo, forte de trois autres PJ à ses côtés. + Lorsque le combat commence, Adrien dépense 4 points de sa Tin Ji pour faire intervenir des renforts. + Un second groupe de Sbires avec à sa tête un lieutenant supplémentaire du démon, Adversaire à part, fait + irruption dans le décor. Adrien décrit aux PJ que de nouveaux hommes de main surgissent de partout, certains + sortant des structures du parc par les portes et les fenêtres, pour venir le rejoindre. Leurs effectifs viennent de + doubler. Avec un rire tonitruant, le démon leur répond : « J’aimerais bien voir avec quelle armée vous allez faire + ça… » Et le combat s’engage. + + + + QUELQUES CONSEILS SUPPLÉMENTAIRES POUR BIEN UTILISER LA TIN JI + Il est du ressort du MJ de Hong Kong – Les Chroniques de l’Étrange de tenir les PJ en haleine tout au long de + la partie. La Tin Ji constitue le moyen technique pour y parvenir et bien que nous ayons souhaité proposer une + liberté totale d’action aux MJ dans leurs choix, voici quelques conseils supplémentaires (et optionnels) pour ceux + qui souhaitent un cadre plus précis : + 怪 La Tin Ji est le seul moyen pour les PNJ (le MJ ne lançant pas de dés) de générer des dés-fastes pour activer + leurs Capacités surnaturelles, pouvoirs magiques ou Techniques d’Arts martiaux. Le MJ doit en priorité + utiliser la Tin Ji pour permettre à ses PNJ de plus haut niveau de briller avec les effets spéciaux qui les + caractérisent le plus, afin de leur donner toute la dimension qu’ils méritent. + 怪 Lorsque des dés-fastes sont générés par la Tin Ji pour ensuite augmenter les dégâts ou les effets d’un sort, le + MJ peut limiter cette dépense de manière à ne jamais excéder 3 dés-fastes ou – exceptionnellement – monter + jusqu’à 6 dés-fastes dans le cas d’un PNJ puissant ou qui dispose d’un objet magique ou de circonstances + très favorables. + 怪 Lorsque des points de Tin Ji sont dépensés pour augmenter une Aptitude d’un PNJ, celle-ci ne peut être + augmentée qu’au maximum de +1 pour un Sbire ou un Figurant, de +2 pour un Adversaire ou un Allié et de + +3 pour un Boss ou une Divinité. Dans tous les cas, le niveau final ne peut excéder le double de l’Aptitude + de départ – quel que soit le Niveau de Menace ou la Capacité de Nuisance du PNJ. + 怪 Lorsque des points de Tin Ji sont dépensés pour augmenter une difficulté ou infliger un malus de dés, + cette augmentation ou ce malus ne devraient pas excéder 2 sur une même action – sauf circonstances + exceptionnelles. + 怪 La capacité à rendre ou retirer des points de Trésors s’avère particulièrement utile si les PJ font appel à des + alliés pour être soignés ou pour combattre à leurs côtés. Il s’agit d’une façon très efficace de dépenser de + la Tin Ji en faveur des PJ. + 怪 Lorsque le Loksyu dispose de nombreux dés qui s’accumulent dans un élément donné et qu’un changement + de scène a lieu, le MJ doit se sentir libre de dépenser plusieurs points de Tin Ji afin de réduire cette réserve. + Les PJ n’avaient qu’à penser à utiliser ce souffle du destin et après tout, l’énergie circule et si elle n’est pas + utilisée par eux, elle le sera par quelqu’un d’autre. + 怪 La capacité à retirer des dés du Loksyu peut également servir à simuler les capacités de certains PNJ à + pratiquer la divination et à disposer ainsi de plusieurs coups d’avance sur les PJ, leur permettant d’anticiper + et de restreindre les actions des fat si. + + +336 + Si l’on ajoute à cela le côté surnaturel, les les chroniques +Incarner Hong Kong opportunités sont démultipliées et le contraste + + + de l’étrange + encore amplifié. Il suffit d’imaginer un démon à + « Vous pouvez quitter Hong Kong, mais tête de bœuf jouer les portiers pour une boîte + Hong Kong ne vous quittera jamais » de nuit à la mode, une femme-serpent en es- + pionne industrielle au service d’une puissante + Nury Vittachi entreprise, un roi-dragon dirigeant un stu- + dio de cinéma, un singe parlant qui tient une + Dans Hong Kong – Les Chroniques de l’Étrange, herboristerie… +la cité est bien plus qu’un décor : il s’agit d’un + + + + + Mener une partie +personnage à part entière et, en tant que tel, c’est +au MJ de l’incarner. À lui d’en faire découvrir les Les Traits de Hong Kong +multiples facettes à ses joueurs, de leur faire +goûter l’atmosphère de cette mégalopole, de les Dans ce but, le MJ dispose des Traits : de +immerger dans son rythme frénétique afin qu’ils courtes descriptions permettant de typer les +finissent par s’y attacher et qu’ils la considèrent différents endroits de Hong Kong afin d’en dé- +comme un être vivant à part entière. gager l’ambiance en un coup d’œil. + Hong Kong est une métropole moderne et Dans la pensée religieuse chinoise – héritage +surpeuplée, mais émaillée ici et là de rappels d’un ancien animisme –, presque chaque lieu est +à ses origines antiques. D’immenses gratte-ciel habité par une divinité et cela dans une perspec- +de verre et d’acier surplombent des temples tive hiérarchique. Un dieu de la ville commande +taoïstes, les avenues éclairées par d’agressifs ainsi aux dieux des quartiers, qui eux-mêmes +néons comportent divers autels dédiés à tel ou reçoivent les hommages des dieux des rues, +tel dieu, les grandes enseignes de luxe côtoient jusqu’aux dieux des foyers qui ne veillent que +les petites échoppes traditionnelles… sur un bâtiment – voire un appartement. + + + + +(SUITE DES CONSEILS) + 怪 Les PNJ ont des attitudes logiques par rapport à leurs motivations et aux connaissances relatives qu’ils ont + de la situation. Un PNJ ne peut pas se défendre face à une attaque qu’il n’a pas pu anticiper par exemple, + mais il peut agir en prévision d’une des capacités des PJ s’il a eu l’occasion d’en apprendre l’existence lors + d’un précédent affrontement. De fait, un PNJ puissant saura se prémunir des tentatives de Domination ou + s’arrangera pour disposer de renforts, ce qui peut se refléter par une dépense de Tin Ji. + 怪 Lorsque les points de Tin Ji s’accumulent (notamment au-delà de 10 points), il est souhaitable de les utiliser + assez rapidement pour créer des rebondissements. + 怪 La levée de l’immunité scénaristique d’un allié ou contact important, suivie de représailles sur ces PNJ par + les adversaires des PJ, devrait être privilégiée dans les situations où ceux-ci ont fait preuve de témérité ou + de négligence ou s’ils affrontent des organisations peu scrupuleuses (comme la pègre) qui n’hésitent jamais + à recourir à ce genre de moyens de pression. + 怪 Si les PJ réussissent trop facilement ou qu’une de leurs actions met en péril l’ensemble du scénario, l’uti- + lisation de la Tin Ji pour rendre un bien, un renseignement ou un service indisponible peut s’avérer fort + utile – de même avec une immunité à la Domination ou l’utilisation de renforts impromptus. Cependant, il est + capital de ne pas abuser de cette possibilité pour que les PJ ne soient pas systématiquement spoliés de leurs + victoires. Une excellente idée doit porter ses fruits pour les PJ – même si, de temps en temps, cela signifie + qu’ils vaincront plus facilement et rapidement que prévu. Le but est uniquement de rendre les choses plus + intéressantes, pas d’annihiler efforts et bonnes idées des joueurs. + 怪 Le MJ doit se sentir libre d’utiliser la Tin Ji pour créer des rebondissements originaux. Plutôt que de solliciter + des renforts ou de s’attaquer à leurs alliés, les PNJ influents sont capables d’envoyer aux fat si un journaliste + qui pose beaucoup de questions ou encore de soudoyer la police pour qu’ils enquêtent sur certains de leurs + agissements. En substance, tout ce que les PJ peuvent accomplir avec leurs Ressources, les Boss en sont + aussi capables avec la Tin Ji. + 怪 Afin de ne pas toujours se servir de la Tin Ji contre les PJ, le MJ peut saisir toutes les occasions où un joueur + a décrit quelque chose de manière détaillée ou bien a proposé un plan particulièrement bien ficelé ou même + simplement fait un effort d’interprétation pour dépenser ouvertement de la Tin Ji en sa faveur et lui accorder + des bonus en dé-fastes ou à lancer. + + + + + 337 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + De la même manière, le MJ peut définir des interprète la ville et la fait agir comme un per- + Traits pour une région, un district, un quartier, sonnage. En fonction des Traits dont l’énoncé + une rue… mais aussi un parc ou un complexe le guide, il décide ainsi des bonus et malus à + commercial. Généralement, il fixe jusqu’à cinq octroyer aux PJ ou PNJ de manière respectueuse + Traits (le plus souvent deux ou trois) pour un de l’ambiance voulue. + lieu afin de décrire sommairement ses caracté- + ristiques. Un Trait prend en effet la forme d’une EXEMPLE + courte description, quelques mots tout au plus + qui doivent être les plus évocateurs possibles. Un PJ se promenant à Apliu Street en quête + Il est ainsi conseillé au MJ de définir à l’avance d’un ordinateur bien particulier verra la difficulté + les Traits des lieux où se rendront les PJ, dans de sa recherche diminuer (grâce au Trait « ma- + l’objectif de s’appuyer dessus pour utiliser la gasins d’électronique »). Mais un voleur à la tire + Tin Ji. bénéficiera sans doute aussi de quelques dés- + Un Trait peut définir un sentiment particulier fastes s’il tente de faire les poches du PJ (à cause + (paisible, agité, triste…), une réputation (mal- du Trait « marché aux voleurs »). Remarquant + famé, accueillant, encombré…), une caractéris- le larcin et se lançant à la poursuite du délin- + tique géographique (nombreuses ruelles, bâti quant, le PJ perdra un dé à lancer dans son jet de + sur une colline, au bord de la mer…), un lieu Prouesse car le flot de badauds gêne sa course + spécifique présent (poste de police, night-club (du fait du Trait « foule dense »). + à la mode, marché animé…), un type de po- + pulation (expatriés, ouvriers précaires, riches + businessmen…), une fonction (quartier d’af- Utiliser les Traits + faires, place commerçante, rue touristique…), pour improviser + une importance spirituelle (source de Hei Yang, des divinités locales + présence d’esprits-rats, ambiance néfaste…), + etc. Dans le chapitre « Hong Kong » (cf p. 106), Les Traits permettent également d’imaginer + de nombreux exemples sont fournis pour divers la divinité qui incarne l’endroit (son apparence, + endroits de la ville, mais ils ne sont qu’indi- sa personnalité, ses capacités…), au cas où les + catifs : le MJ est libre de doter les quartiers PJ seraient amenés à interagir avec elle (par le + ou rues des Traits qui lui conviennent selon sa biais de la magie Prière terrestre, par exemple). + vision de Hong Kong. Le MJ peut improviser le dieu local en se basant + sur ces Traits. + EXEMPLE + EXEMPLE + Dans le district ouvrier de Sham Shui Po (le + plus pauvre de Kowloon) se trouve Apliu Street, Il est aisé de se représenter la divinité d’Apliu + une avenue réputée pour son marché aux étals Street sous l’apparence d’une jeune femme au + regorgeant de produits électroniques de première look alternatif (piercings, tatouages, cheveux + main ou d’occasion. Mais l’endroit est égale- teints en bleu électrique…) parcourant le marché + ment parcouru par de nombreux pickpockets qui en saisissant les composants qui l’intéressent et + profitent de la fréquentation pour dérober porte- fendant la foule comme si celle-ci n’existait pas. + feuilles et objets précieux… Aliu Street pourrait Intelligente et experte en informatique, elle rend + donc être définie par les Traits suivants : « ma- service en échange d’informations auxquelles + gasins d’électronique », « marché aux voleurs » elle ne peut avoir accès. Parmi ses capacités, + et « foule dense ». on trouve diverses compétences technologiques + (décryptage, piratage, assemblage…), mais aussi + le talent de dérober n’importe quoi sans se faire + + de Hongles + Utiliser Traits remarquer (uniquement dans la rue qui constitue + Kong son domaine). + + Les Traits de Hong Kong offrent une per- + sonnalité aux différents endroits de la cité et LE Loksyu + permettent d’en définir les caractéristiques les + plus saillantes – mais aussi les plus utiles au MJ Le Loksyu est par essence la matérialisation + dans le cadre de ses scénarios. du lien qui unit les fat si entre eux et qui les + En effet, les Traits fournissent un guide au relie également au Hei ambiant et à l’équilibre + MJ afin d’utiliser sa Tin Ji à bon escient et de du monde, ainsi qu’à leurs Gardiens. C’est donc + façon cohérente avec les lieux où se déroule un outil utilisé principalement par les joueurs et + l’action. C’est en se basant sur eux que le MJ moins par le MJ. + + +338 + Il existe cependant des cas où le MJ influe 怪 certains PNJ peuvent disposer d’effets les chroniques +directement sur le Loksyu : magiques qui viennent perturber le Hei + + + de l’étrange + 怪 lorsqu’il fait appel à la Tin Ji pour réduire ambiant ou fausser des prédictions des fat + le nombre de dés présent dans le Loksyu, si, ce qui revient à ajouter ou retirer un ou + figurant ainsi des événements célestes qui plusieurs dés du Loksyu. + peuvent perturber la circulation du Hei am- Il n’est pas recommandé d’enlever des dés du + biant (cf p. 206) ; Loksyu s’il reste moins de dés dans celui-ci que + 怪 à la fin d’une séance de jeu, même si le scé- deux fois le nombre de PJ présents autour de la + nario n’est pas terminé, le Loksyu est vidé. table. Il peut en revanche s’avérer utile d’utili- + Les joueurs effectuent chacun un jet pour ser la Tin Ji pour réduire le nombre de dés du + + + + + Mener une partie + commencer à le remplir dès le début de la Loksyu si les lancers successifs ont rempli ces + séance suivante, comme indiqué p. 207 ; deux jauges dans des proportions qui sortent + 怪 entre deux scènes d’un même scénario par- de l’ordinaire. La plupart du temps, une modi- + ticulièrement éloignées dans le temps fictif fication drastique du Loksyu se justifie si, par + dans lequel vivent les PJ, mais qui peuvent exemple, des forces ténébreuses sont à l’œuvre + avoir lieu dans la même séance de jeu, le et menacent l’équilibre occulte de la ville. C’est + Loksyu peut également être vidé à la dis- un outil pratique pour matérialiser une tension, + crétion du MJ. Il faut alors reconstruire un comme un mystère à l’origine d’un trouble dans + Loksyu neuf (comme au début d’une par- le Tao. Les fat si ressentent tout de suite un + tie, cf p. 207), mais les PJ ont l’occasion tel changement et peuvent légitimement s’en + d’utiliser des pouvoirs de divination pour inquiéter. + y ajouter des dés supplémentaires s’ils le + souhaitent ; + + + + + 339 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Les Personnages non-Joueurs (PNJ) + Personnages indispensables du décor que L’importance du rôle que les PNJ jouent dans + constitue Hong Kong, les PNJ peuvent avoir des la campagne n’est pas uniquement fonction du ni- + utilités diverses dans les parties proposées par veau de leurs caractéristiques techniques. Un allié + le MJ : véritables protagonistes ayant un des- majeur ou un adversaire menaçant disposent certes + tin, une personnalité et une fonction narrative d’Aptitudes plus élevées que le simple second rôle + ou bien simples figurants uniquement là pour qui n’intervient que le temps d’une scène, cepen- + donner la réplique aux PJ ou s’opposer à eux le dant il existe aussi des PNJ qui ne disposent pas + temps d’une brève altercation. d’une puissance physique ou spirituelle impor- + Dans un cas comme dans l’autre, le MJ doit tante, mais qui se révèlent pourtant de redoutables + pouvoir les créer selon ses besoins sans avoir à y adversaires grâce à leurs alliés ou leur influence. + consacrer trop de temps. Des règles de création + et de gestion simplifiées lui permettent donc de + leur donner vie rapidement. Le Concept + Le concept décrit – en quelques mots – les + motivations, l’apparence et l’historique d’un + Profil des PNJ PNJ ainsi que quelques éléments permettant au + MJ de cerner son caractère et son attitude. Il + « Les principes gouvernent s’agit uniquement d’éléments de contexte per- + les gens honnêtes, les lois gouvernent mettant d’interpréter ou d’illustrer les éléments + techniques du reste du profil. + les gens méchants. » + Proverbe chinois + Le niveau de Menace + Chaque PNJ dispose d’un Niveau de Menace + qui représente à quel point il est dangereux de + l’affronter – que ce soit physiquement ou sur le + plan spirituel : + 怪 Profane : signifie qu’il ne s’agit pas d’une + menace réelle pour un groupe de fat si. + C’est le niveau de la plupart des citoyens + de Hong Kong qui ne font pas partie des + criminels, des forces de l’ordre, des créa- + tures surnaturelles ou des sorciers. + 怪 Apprenti : correspond à des adversaires qui + représentent un défi gérable lors des pre- + mières aventures d’un groupe de PJ et qui + reste acceptable jusqu’à 20 PTao environ. + 怪 Initié : renvoie à des adversaires des- + tinés à un groupe de PJ ayant déjà une + bonne connaissance de Hong Kong – Les + Chroniques de l’Étrange et ayant réalisé + quelques missions avec succès – idéale- + ment entre 3 et 5 scénarios joués (15 à + 30 PTao) et jusqu’à une expérience cumulée + de 50 PTao environ selon le contexte. + 怪 Accompli : s’adresse à un groupe de fat + si expérimentés, ayant accumulé de 30 à + 60 PTao et même jusqu’à 100 PTao, si ces + PNJ sont accompagnés de Sbires et d’alliés + lorsque les PJ y sont confrontés. + + +340 + 怪 Renommé : signifie qu’il s’agit d’une me- 怪 Adversaire : renvoie à un PNJ important, les chroniques + nace sérieuse, même pour un groupe de nommé et possédant ses propres mo- + + + de l’étrange + PJ vétérans, à la façon de l’antagoniste tivations, ses ressources personnelles, + majeur d’une longue campagne. Ce type ses contacts et ses alliés. C’est le niveau + d’adversaire redoutable agit de surcroît standard de la plupart des PNJ majeurs + rarement seul. d’une histoire, correspondant à un niveau + Les MJ peuvent se servir de cette indication d’influence équivalent au maximum à celui +pour adapter la puissance des PNJ rencontrés par d’un des PJ. Certains adversaires disposent +les PJ. Il convient bien entendu d’ajuster cela en de Sbires ou peuvent travailler pour des +fonction du nombre de PJ constituant le groupe, Boss, ce qui les rend potentiellement plus + + + + + Mener une partie +de leurs habitudes de jeu ainsi que des circons- dangereux – mais pas toujours plus in- +tances et des objectifs de chaque scénario. fluents. Il existe aussi de nombreux PNJ de + Le Niveau de Menace s’utilise également ce type qui s’avèrent indépendants, voire +pour déterminer la puissance des PNJ lors de solitaires. Certains PNJ de ce niveau sont +leur création (cf p. 346) ainsi que le niveau des notés « Alliés » s’ils sont davantage suscep- +renforts que le MJ peut amener en utilisant la tibles d’aider les PJ que de les affronter ou +règle des renforts (cf p. 335) avec la Tin Ji. Il de les contrecarrer. Ce sont alors des PNJ +permet aussi d’indiquer le type de PNJ que cer- qui sont susceptibles de devenir des alliés +taines magies peuvent influencer ou contrôler au sens de la règle des « contacts et alliés » +(cf p. 322). (cf p. 219) si les PJ décident de tisser des + liens durables avec eux. Mais ils peuvent + tout aussi bien devenir des adversaires si + La capacité de Nuisance les PJ se comportent mal envers eux. + 怪 Boss : correspond à un PNJ très puissant et + La puissance brute, qu’elle soit physique, influent, tel qu’un politicien, un haut-gradé +mentale ou spirituelle, n’est pas la seule di- de la police, un entrepreneur, un cadre de +mension à prendre en compte lorsqu’on évalue triades, etc. De tels individus ont accès +l’impact d’un PNJ sur l’intrigue d’un scénario. à un niveau de ressources et d’influence +Il existe de nombreux individus qui ne sont pas supérieur à celui des PJ. Même lorsqu’ils +réellement forts ou versés dans les arts occultes, ne sont pas dotés d’un niveau de menace +mais qui disposent d’une influence considérable élevé par eux-mêmes, cette influence leur +– simplement grâce à leurs connexions, leur confère un pouvoir de nuisance élevé. +immense fortune ou leurs alliés. Afin de mesu- 怪 Divinité : ce genre de PNJ se compare aux +rer cela, chaque PNJ dispose d’une Capacité de rois-dragons et autres dieux et ne dispose +Nuisance envers les PJ. pas de profil technique à proprement par- + Il est à noter que les alliés et contacts des ler. Un PNJ d’un tel rang ne peut pas être +PJ n’ont pas de Capacité de Nuisance, bien qu’il vaincu par la seule force, dispose poten- +s’agisse de PNJ. Si elle est présente dans leur tiellement d’une grande influence à la fois +profil, cette capacité ne s’active que si le PNJ sur Hong Kong et sur le destin des PJ, et +est trahi ou devient d’une manière ou d’une il faudra donc négocier avec lui. La plupart +autre un adversaire des PJ. du temps, lorsqu’il faut contrer la volonté + La Capacité de Nuisance s’évalue ainsi : d’un tel PNJ, les scénarios proposent des + 怪 Figurant : indique un PNJ participant à méthodes pour y parvenir – telles qu’un + donner vie à Hong Kong mais sans impor- rituel pour les renvoyer, la possibilité de + tance dans le scénario et sans influence sur momentanément entraver ou retarder leurs + le destin des PJ. Il peut arriver qu’un PJ plans, attirer sur eux la colère du Ciel ou + s’intéresse de près à un tel personnage et d’autres êtres divins, etc. + lui confère ainsi un statut de contact ou Lorsque les PJ sont confrontés à des PNJ + d’allié, qui permettra à ce dernier de se dé- influents tels que les Boss et Divinités, ces der- + velopper. Il devient alors littéralement un niers sont libres d’utiliser la Tin Ji pour déclen- + de ses « Sbires » (voir ci-dessous). cher des événements correspondant aux actions + 怪 Sbire : signifie que le PNJ est principa- que de tels individus influents peuvent réaliser + lement un allié ou le larbin d’un autre s’ils s’opposent aux PJ. + PNJ plus important. Les Sbires qui inter- Les Boss disposent le plus souvent d’hommes + viennent dans les scénarios sont, la plupart de main, peuvent engager des sorciers ou des + du temps, considérés en groupe car n’inter- assassins, se lier avec des jiugwaai, user de leur + venant que rarement seuls. Leur influence pouvoir administratif ou judiciaire, etc. Ils re- + et leurs ressources sont limitées et ils ne présentent les antagonistes ou les alliés majeurs + sont généralement pas nommés. d’une campagne. + + + 341 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Lorsqu’un PJ entre en confrontation avec un + Les Aptitudes PNJ, il considère l’Aptitude adaptée de ce der- + nier est considérée comme la difficulté de son + La capacité d’action directe d’un PNJ est dé- jet - bien qu’il s’agisse d’un jet en opposition, il + finie par ses Aptitudes : se résout ainsi comme un jet simple. En consé- + 怪 Aptitude physique : représente les capaci- quence, le MJ n’a jamais besoin de jeter les dés + tés physiques brutes du second rôle (force, pour gérer un PNJ. S’il doit faire fluctuer les + résistance, agilité, etc.), mais aussi la façon capacités d’un PNJ, il utilise la Tin Ji. + dont il sait en faire usage (nager, escala- Des Aptitudes ayant une valeur de 4 ou 5 + der, courir, etc.). sont très rares et à réserver à des individus ex- + 怪 Aptitude martiale : représente la combati- ceptionnels – alliés formidables ou adversaires + vité du PNJ (sa rage de vaincre, sa hargne particulièrement dangereux. Le MJ doit en te- + durant un conflit physique) et se traduit en nir compte lorsqu’il crée ses PNJ en gardant à + général par la maîtrise de talents comme l’esprit qu’une personne compétente possède + le corps-à-corps, les armes blanches, les le plus souvent une valeur de 2 dans l’Aptitude + armes à feu, etc. concernée – les autres ayant une valeur de 1. + 怪 Aptitude mentale : représente l’intelligence Lorsqu’une Aptitude tombe à une valeur de 0 + du PNJ au sens large (mémoire, perception, (après des malus imposés, par exemple), le PNJ + concentration...) ainsi que sa capacité à la ne peut plus l’utiliser. Cela se traduit par des + mobiliser efficacement (culture générale, effets bien concrets : une Aptitude physique à 0 + connaissances diverses ou spécialisées, vi- indique que le PNJ est immobilisé (inconscient, + gilance, etc.). blessé, etc.) ; une Aptitude martiale à 0 indique + 怪 Aptitude sociale : représente l’aura de qu’il ne peut plus combattre (effrayé, démora- + charme que dégage le PNJ (son apparence lisé, etc.) ; une Aptitude mentale à 0 indique + physique mais aussi sa prestance ou son qu’il n’est plus capable de penser clairement + magnétisme naturel) et la manière dont il (trauma crânien, drogue, etc.) ; une Aptitude so- + sait en faire usage (pour charmer, négocier, ciale à 0 indique qu’il est incapable d’interagir + tromper, etc.). avec d’autres individus (prostré, défiguré, etc.) + 怪 Aptitude spirituelle : représente l’appré- et une Aptitude spirituelle à 0 indique qu’il ne + hension du Tao par le PNJ (sixième sens, peut plus faire appel aux capacités demandant + sagesse, ouverture d’esprit) et sa compré- d’utiliser du Hei (magie, Arts martiaux, etc.). + hension de la cosmologie chinoise à travers Si un effet en jeu (Technique martiale, ma- + divers talents (connaissance de la théolo- gie, etc.) implique de gagner ou perdre des dés + gie, pratique de la méditation, maîtrise du à lancer sur un prochain jet, à la place le PNJ + hei, utilisation de la magie, etc.). augmente ou diminue respectivement la valeur + de l’Aptitude concernée du même nombre. + Les Aptitudes ont une valeur comprise entre + 1 et 5 : + 怪 1 : correspond à une valeur normale, soit la Les Spécialités + moyenne pour un être humain non entraîné + ou dont l’Aptitude en question n’est pas la Comme les PJ, les PNJ peuvent disposer de + spécialité. Spécialités qui permettent d’affiner leur savoir- + 怪 2 : représente une valeur supérieure pour faire au sein d’une Aptitude. Il suffit d’indiquer + un être humain, soit parce qu’il est doué par un mot à côté de l’Aptitude la plus adaptée + soit parce qu’il est entraîné. la Spécialité qu’elle comprend. Voici quelques + 怪 3 : indique une valeur élevée pour un être exemples : + humain, qu’il s’agisse de quelqu’un de 怪 Aptitude physique : travail de force, course, + naturellement doué ou d’un spécialiste escalade, natation, conduite, pilotage, etc. + expérimenté. 怪 Aptitude martiale : mains nues, épée, poignard, + 怪 4 : représente une valeur exceptionnelle bâton, pistolet, fusil, arc, armes de jet, etc. + pour un être humain, que l’on rencontre 怪 Aptitude mentale : sciences physiques, + plus souvent chez les êtres surnaturels les médecine, culture générale, histoire, stra- + plus redoutables en la matière. tégie, politique, sociologie, etc. + 怪 5 : est une Aptitude si grande et si rare 怪 Aptitude sociale : séduction, manipulation, + qu’elle en est légendaire. baratin, chant, comédie, étiquette, etc. + 怪 Aptitude spirituelle : les mêmes Spécialités + que celles englobées par les Compétences + magiques, magie rituelle, théologie, mytho- + logie, etc. + + +342 + Lorsqu’un PJ entre en confrontation avec directement du Hei, les points récupérés dépendent les chroniques +un PNJ disposant d’une Spécialité pertinente, de l’Effet « Trois Trésors » (cf p. 291). Si un Effet + + + de l’étrange +il considère [valeur de l’Aptitude associée de « bonus » lié à la magie est de leur octroyer des +celui-ci + 1] comme la difficulté de son jet. Si dés ou dés-fastes supplémentaires sur un prochain +l’Aptitude est tombée à une valeur de 0, ce bo- jet de récupération, il se traduit par 1 point de +nus de + 1 ne s’applique plus. Vitalité ou de Hei supplémentaire récupéré par le + PNJ lors de son prochain repos (au choix du MJ). + Enfin, le MJ est libre de dépenser des points de Tin + Vitalité Ji pour rendre aux PNJ du Hei supplémentaire, en + fonction des événements et de la Volonté du Ciel. + + + + + Mener une partie + La Vitalité est une jauge qui mesure la santé +du PNJ. Elle regroupe en une seule notion le +Zing et le San. Cela signifie que tout ce qui peut Autres +affecter ces deux éléments affecte dans le cas +d’un PNJ uniquement sa Vitalité. Un PNJ peut disposer de diverses autres + caractéristiques (comme des Capacités de créa- + 怪 Vitalité : Aptitude physique × 4 tures surnaturelles, des Spécialités magiques + Lorsque la Vitalité d’un PNJ tombe à 0, cela ou la maîtrise d’un Art martial) qui sont alors +signifie qu’il se trouve hors d’état d’agir : as- spécifiées dans sa description (cf p. 346). +sommé, inconscient, affligé, traumatisé, terri- Il peut également posséder divers équipe- +fié, etc. Pour tuer un PNJ dans cet état, il faut ments comme des armes, des protections, etc. Si +en exprimer l’intention. Aucun jet n’est alors le PNJ est un fat si, il aura à coup sûr un sanhei +nécessaire. Certains PNJ particuliers (généra- (cf p. 214). +lement des jiugwaai) ont une Vitalité calculée Si un PNJ est amené à devoir effectuer un jet +différemment (cf p. 350). de résistance, notamment contre une source de + Les PNJ n’effectuent pas de jets de récupéra- dégâts récurrents, ce jet est résolu de la même +tion. S’ils font l’objet de soins naturels, ils récu- manière que tous les autres concernant les PNJ : +pèrent 1 point de Vitalité par période de repos. en utilisant les Aptitudes (cf p. 342). Si la valeur +S’ils font l’objet de soins magiques, ils récupèrent de l’Aptitude concernée par le jet de résistance +des points de Vitalité qui dépendent de l’Effet est égale ou supérieure à la difficulté, le jet est +« Trois Trésors » (cf p. 291). Si un Effet « bonus » considéré comme réussi, sinon il s’agit d’un échec. +lié à la magie est censé leur octroyer des dés ou Les sources de dégâts récurrents qui peuvent être +dés-fastes supplémentaires sur un prochain jet de physiques, mentales ou spirituelles, se comparent +récupération, il se traduit par 1 point de Vitalité aux Aptitudes du même nom. Dans tous les cas, +ou de Hei supplémentaire récupéré par le PNJ lors les dégâts s’appliquent à la Vitalité. Là encore, le +de son prochain repos (au choix du MJ). Enfin, le MJ est libre de dépenser des points de Tin Ji pour +MJ est libre de dépenser des points de Tin Ji pour augmenter ou diminuer les Aptitudes des PNJ +rendre aux PNJ de la Vitalité supplémentaire, en et les rendre ainsi plus ou moins résistants aux +fonction des événements et de la Volonté du Ciel. agressions du milieu, en fonction des événements + et de la Volonté du Ciel. + + HEI + Un PNJ ne possède qu’une seule valeur de Hei, +qui comprend indistinctement le Hei Yin et le Hei +Yang. Lorsqu’il doit dépenser du Hei pour alimen- +ter une magie, une Technique martiale ou une +Capacité, le PNJ puise dans cette jauge unique. + + 怪 Hei : Aptitude spirituelle x 4 + Lorsque le Hei d’un PNJ tombe à 0, il subit les +mêmes conséquences qu’un PJ qui n’aurait plus +de souffle. Certains PNJ particuliers (générale- +ment des jiugwaai) ont un Hei calculé différem- +ment ou subissent des conséquences différentes +lorsque leur Hei tombe à 0 (cf p. 350). + Les PNJ n’effectuent pas de jets de récupé- +ration. Ils récupèrent 1 point de Hei par période +de repos. S’ils sont la cible d’un sort qui rend + + + 343 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + gérer les PNJ Gérer le combat + Qu’ils soient appelés à jouer un rôle important Lorsque survient un affrontement, il existe + dans la campagne ou qu’ils ne fassent office que de certains aménagements techniques permettant + figurants, les PNJ se créent et se gèrent de la même de simplifier la gestion des PNJ et ainsi de faci- + façon. Le MJ dispose de règles spécifiques plus liter le travail du MJ. + simples que celles qui régissent le destin des PJ, + ce qui lui permet de se concentrer sur la narration. Initiative + L’Initiative d’un PNJ est égale à la valeur de + son Aptitude physique à laquelle s’ajoute celle + Gérer les actions de l’Aptitude correspondant à sa première ac- + tion du combat. Cette somme indique à quel + Lorsqu’un PNJ souhaite accomplir une ac- cran il se place sur la roue d’initiative dans le + tion (soigner un PJ, par exemple), le MJ doit sens anti-horaire (cf p. 258). + comparer l’Aptitude adéquate et la difficulté de 怪 Initiative = Aptitude physique + Aptitude + l’action : correspondant à la première action prévue + 怪 si la valeur de l’Aptitude est égale ou supé- du combat + rieure à la difficulté, l’action est réussie ; + 怪 si la valeur de l’Aptitude est inférieure à la Attaque et défense + difficulté, l’action est un échec. Pour porter un coup à un PNJ, le PJ doit réus- + sir son jet d’attaque contre une difficulté de 1. + Si l’Aptitude dispose d’une Spécialité perti- Si le PNJ se défend, le jet d’attaque s’effec- + nente pour la réalisation de l’action (Médecine tue contre une difficulté égale à la valeur de + pour soigner, par exemple), sa valeur est consi- l’Aptitude martiale du PNJ. + dérée comme disposant d’un + 1. De même, s’il souhaite se protéger d’une + Un PNJ qui réalise une action d’Aide n’offre attaque d’un PNJ, le jet de défense s’effectue + que 1 dé à lancer au lieu de 2 au personnage contre une difficulté égale à la valeur de son + qu’il assiste. S’il offre ce bonus à un autre PNJ, Aptitude martiale. + la valeur de l’Aptitude concernée de celui-ci dis- Si le PJ ne se défend pas, le PNJ le touche + pose d’un + 1 pour sa prochaine action. si son Aptitude martiale est égale ou supérieure + Grâce à la Tin Ji, le MJ peut augmenter ou à 1. + abaisser la valeur d’une Aptitude d’un PNJ. Il peut + également octroyer des dés-fastes ou des dés- Dégâts + néfastes au PNJ lors de la réalisation d’une action. Une attaque réussie d’un PNJ inflige les dé- + Ceux-ci se dépensent de la même façon que pour gâts suivants (qui peuvent être augmentés par + les PJ – aux aménagements suivants près : l’utilisation de dés-fastes) : + 怪 si l’effet implique de gagner ou perdre des dés 怪 à mains nues (pieds, poings, tête…) : + à lancer sur un prochain jet, à la place le PNJ 1 dégât ; + augmente ou diminue respectivement la valeur 怪 avec une arme blanche utilisée au corps à + de l’Aptitude concernée du même nombre ; corps (bâton, épée, lance, etc.) : [Aptitude + 怪 si l’effet a un impact sur le Zing ou le San, physique] dégât(s) ; + à la place il affecte la Vitalité du PNJ ; 怪 avec une arme à distance (arme de jeu, + 怪 si l’effet implique de dépenser du Hei Yin arc, arme à feu, etc.) : [Aptitude mentale] + ou Yang, il dépense tout simplement du Hei. dégât(s). + + + EXEMPLE + Sébastien / Freddie Tan reçoit des soins d’une infirmière qui fait partie de ses contacts (voir exemple + précédent – cf p. 245). L’infirmière, Joelle Yi, est un PNJ qui dispose d’une Aptitude mentale d’une valeur + de 2 et de la Spécialité Médecine. Les blessures de Freddie n’ont atteint que le premier palier de Zing, fixant + la difficulté pour le soigner à 1. L’Aptitude et la Spécialité de Joelle lui permettent de réussir toutes les tâches + d’une difficulté de 3 ou moins : les soins sont donc réussis. Freddie peut récupérer 1 point de Zing en les + recevant, plus 1 point supplémentaire par dé-faste, ce qui correspond à la dépense par Adrien / MJ de points + de Tin Ji en faveur des PJ – à sa discrétion. + Plus tard, lors d’un autre combat, Freddie est beaucoup plus grièvement atteint : il ne lui reste que 1 seul + point de Zing à son dernier palier ! Cela fixe la difficulté des soins à 4 : l’infirmière Joelle explique qu’elle + ne peut rien faire et qu’il faut d’urgence conduire Freddie à l’hôpital. Adrien / MJ aurait cependant pu choisir + d’augmenter l’Aptitude mentale de Joelle Yi en utilisant des points de Tin Ji – à sa discrétion. +344 + Groupement de PNJ hors de combat : selon leur nature, les survi- les chroniques + Plusieurs PNJ peuvent s’allier pour com- vants peuvent alors vouloir s’enfuir ou se rendre + + + de l’étrange +battre. Il s’agit généralement de PNJ faibles, (les humains combattent rarement jusqu’à la +dont les valeurs d’Aptitude ne dépassent ja- mort de tous, en revanche, certains êtres sur- +mais 2 et qui ne disposent ni de Spécialités ni de naturels n’hésitent pas à se battre jusqu’à être +Capacités particulières (notamment la maîtrise exterminés en totalité). +d’un Art martial). À noter qu’amener la Vitalité d’un PNJ ou + Un tel groupement est alors considéré comme d’un groupe de PNJ à 0 ne signifie pas forcé- +un seul et unique PNJ, et le PJ n’a besoin de ment l’avoir vaincu physiquement, blessé ou +faire qu’un seul jet d’attaque et de défense face tué, mais peut correspondre à l’avoir épuisé ou + + + + + Mener une partie +à lui. – dans le cas d’un groupe – dispersé. + 怪 Attaque du PJ : si le groupement choisit + de se défendre, le MJ désigne le PNJ ayant + la valeur d’Aptitude martiale la plus faible Gérer la magie + pour fixer la difficulté des jets d’attaque du + PJ (afin de refléter le fait que s’en prendre Si le PNJ possède les Spécialités correspon- + à un groupe est plus simple). Si le groupe- dant à diverses magies dans son Aptitude spiri- + ment ne se défend pas, la difficulté du jet tuelle, cela signifie qu’il est capable d’utiliser + d’attaque est de 1. ces magies. + 怪 Défense du PJ : le MJ prend le PNJ ayant Voilà comment déterminer la Puissance + la valeur d’Aptitude martiale la plus élevée d’un sort (cf p. 291) et la dépense de points de + pour fixer la difficulté du jet de défense du Hei correspondante : + PJ, à qui il impose autant de dés-néfastes + que le nombre d’alliés de ce PNJ (jusqu’à PUISSANCE COÛT EN POINTS + un maximum de 4). Si le PJ ne se défend + DU SORT DE HEI + pas, il est automatiquement touché. + Aptitude spirituelle 1 + Les valeurs de Vitalité des PNJ ainsi regrou- Aptitude spirituelle × 2 2 +pés s’ajoutent entre elles pour déterminer une +Vitalité globale. Lorsqu’un PJ attaque un tel Aptitude spirituelle × 3 3 +groupement de PNJ, ses dégâts s’appliquent Aptitude spirituelle × 4 4 +alors sur cette Vitalité globale. Si celle-ci se +trouve diminuée de moitié, cela signifie que la Aptitude spirituelle × 5 5 +moitié des PNJ constituant le groupement sont + + + EXEMPLE + Amandine / Mallory Tin avance seule dans un couloir. Il s’agit du repaire d’un sorcier lié aux triades et de + nombreux Sbires à son service tentent d’empêcher la fat si de l’atteindre. Lors d’une première action, elle utilise + son Art martial des Poignards volants pour se débarrasser de plusieurs d’entre eux. Ceux qui restent debout + tentent de répliquer. + Les hommes de main ont une Aptitude martiale d’une valeur de 2, sans Spécialité. La difficulté pour tou- + cher Mallory, si elle ne se défend pas, est de 1 lorsque ces derniers s’approchent – couteaux papillon, battes de + baseball ou nunchakus à la main. Amandine décrit la fluidité et la grâce de la fat si au sang de fée tandis qu’elle + évolue parmi ces brutes. Elle décide d’utiliser une action de défense, au prix d’un cran d’initiative. Elle réalise + un jet en utilisant son Aspect Eau d’une valeur de 4 (ce qui correspond à son attitude et à sa description), + conjointement à sa Compétence Prouesse d’une valeur de 2 pour un total de 6 dés. Elle obtient 2 Succès et 1 + dé-faste, les dés restants allant grossir la Tin Ji du MJ. + Adrien utilise 1 point de Tin Ji pour obtenir l’équivalent d’un dé-faste sur son attaque, la rendant po- + tentiellement plus efficace. De son côté, Amandine se doute que ces brutes ont une Aptitude martiale assez + importante et utilise un dé du Loksyu pour porter son total de Succès à 3. Elle utilise également son dé-faste + pour obtenir un avantage : Amandine explique que tout en esquivant, elle progresse rapidement vers son objectif + – la porte au fond du couloir menant au sorcier. La défense de Mallory est efficace et les Sbires du sorcier + n’ont pas l’Aptitude martiale nécessaire pour lui infliger des dégâts. + Adrien utilise finalement le dé-faste de son groupe de PNJ pour obtenir un avantage et décrit à Amandine + que Mallory a réussi à progresser dans le couloir en évitant les coups de tous les hommes de main avec une + grâce presque surnaturelle. Cependant, quand elle est parvenue devant la porte, les deux laquais les plus mas- + sifs au service du sorcier se tiennent devant et lui barrent le chemin. Ces deux géants, de véritables jumeaux, + sont prêts à en découdre et semblent donner des ordres aux autres Sbires. + 345 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + Choix du Concept + En premier lieu, il convient de déterminer + qui est ce PNJ, en quelques mots – en le dotant + d’un nom, d’une motivation, d’une apparence, + etc. Un agent de police zélé, cet esprit-renard + qui connaît de bons tuyaux, un bookmaker qui + n’aime pas les retards de remboursement, le + propriétaire d’un restaurant populaire, un sé- + Un PNJ ne peut dépenser plus de points de vère maître de kung-fu, etc. + Hei pour lancer un sort que sa valeur dans son Cela permet au MJ de mieux cerner sa créa- + Aptitude spirituelle – limitant ainsi la Puissance tion technique. + dont il disposera. + + EXEMPLE Choix du capacité + Niveau dedeMenace + et de la nuisance + Amandine / Mallory Tin s’est débarrassé des + Sbires et Adversaires qui lui barraient la route Après le concept, le choix de la Capacité de + jusqu’au sorcier des triades (voir exemple pré- Nuisance (cf p. 341) est déterminant pour savoir + cédent). Le terrible mou (cf p. 386), dénommé s’il s’agit d’une bande de Sbires, d’un capitaine + Wyman Chu, lui fait face. Mallory l’interrompt en de niveau Adversaire ou même d’un antagoniste + plein rituel visant à animer des goengsi à l’aide de majeur de type Boss. Ces données permettent + sa nécromancie. Adrien / MJ dépense 2 points de connaître l’influence que le PNJ aura sur + de Tin Ji pour décréter que Mallory arrive à la l’histoire qui est contée, notamment dans les + toute fin du rituel et que les goengsi formeront scénarios où il intervient. + des renforts à même d’aider le sorcier. Indépendamment de cette Capacité de + Wyman dispose d’une Aptitude spirituelle Nuisance, le Niveau de Menace est le plus sou- + d’une valeur de 3 avec la Spécialité Nécromancie. Il vent déterminé en fonction de l’expérience des + dépense 2 points de Hei et obtient donc 6 points de fat si constituant le groupe de PJ (cf p. 340). + Puissance : 3 d’Aptitude spirituelle × 2 Hei dé- Le tableau ci-contre récapitule, en fonction de + pensés. Il n’a pas l’intention de rester là, soupçon- ce niveau, le nombre de points disponibles pour + nant que les amis fat si de Mallory vont bientôt la constituer le profil du PNJ. + rejoindre ou sont peut-être déjà dans le bâtiment. Il + décide donc de donner l’Effet « distance » à son sort, + afin de permettre à ses goengsi d’agir contre les PJ Choix des Aptitudes et Spécialités + tandis qu’il fuira le plus loin possible : 500 mètres + pour 2 points de Puissance (cf p. 294), ce qui lui La puissance d’un PNJ dépend principale- + laisse 4 points pour l’Effet « durée » : une scène ment de ses Aptitudes et en particulier de la + suffit, pour 1 point de Puissance par goengsi ani- valeur maximale dans son Aptitude favorite. + mé. Il animera donc 4 goengsi capables d’agir à Elle représente le plus souvent un niveau de + 500 mètres de lui pendant une scène complète. difficulté à surmonter pour les PJ, ce qui veut + Mallory n’est pas en très bonne posture, mais dire que le MJ doit être vigilant lorsqu’il crée + c’est le moment où sa collègue et amie Maïlys / un PNJ. Le tableau des Niveaux de Menace + Penny Woo décide de traverser une fenêtre à donne des indications sur les valeurs à respec- + grand fracas pour la rejoindre dans le combat, ter en fonction de l’expérience et la puissance + coupant ainsi au sorcier tout espoir de fuite par du groupe de PJ. + les escaliers de secours ou les toits. + + Choix des Capacités + Surnaturelles + Créer DES PNJ Si le PNJ est une créature, la catégorie de + Bien que de nombreux profils de PNJ soient jiugwaai (cf p. 354) à laquelle il appartient dé- + fournis dans les pages de Hong Kong – Les termine les Capacités surnaturelles qu’il peut + Chroniques de l’Étrange, notamment dans posséder et le tableau indique, en fonction de + le bestiaire (cf p. 348), ce chapitre décrit la son Niveau de Menace, le nombre maximum + procédure permettant au MJ de créer ses propres de Capacités possédées et de points à répartir + PNJ très rapidement. dans leurs valeurs. Il n’est pas obligatoire d’aller + + +346 + les chroniques + NIVEAU DE MENACE Profane Apprenti Initié Accompli Renommé + + + de l’étrange + VALEUR 3 3 4 4 5 + + + NOMBRE DE POINTS + 7à9 8 à 11 9 à 12 10 à 13 11 à 14 + D’APTITUDE À RÉPARTIR + + + + + Mener une partie + NOMBRE MAXIMUM DE SPÉCIALITÉS + 2 (0) 3 (1) 5 (1) 5 (3) 8 (3) + (DONT LES SPÉCIALITÉS MAGIQUES) + + + NOMBRE MAXIMUM DE CAPACITÉS + 0 4 5 6 7 + SURNATURELLES (SI APPLICABLE) + + + SOMME MAXIMALE DES + VALEURS DANS LES CAPACITÉS 0 6 8 10 12 + SURNATURELLES + + NOMBRE DE STYLES MARTIAUX OU + D’OBJETS MAGIQUES (TECHNIQUES 0 (0) 1 (2) 1 (2) 2 (4) 3 (6) + OU PROPRIÉTÉS) + + + +jusqu’au nombre maximum ou de répartir tous Sa valeur d’Aptitude maximale est donc de 3, +les points disponibles : le profil doit avant tout avec entre 7 et 9 points à répartir ainsi que deux +correspondre au concept. Les points non utilisés Spécialités. Adrien et Emmanuel se mettent +sont perdus. d’accord sur la répartition suivante : + • Aptitude physique : 2 + • Aptitude martiale : 3 (Mains Nues) + Autres • Aptitude mentale : 1 + • Aptitude sociale : 1 + Le PNJ peut disposer de Styles et Techniques • Aptitude spirituelle : 1 (Taoïsme) +d’Arts martiaux ou bien d’objets magiques ayant +diverses Propriétés. Il est possible également Même si ce n’est pas recommandé à ce +qu’il pratique lui-même la magie, représentée Niveau de Menace, Adrien estime que cet allié +par une ou plusieurs Spécialités. Si le PNJ est est essentiellement présent pour ses capacités en +un fat si, il dispose bien sûr d’un sanhei. Le ta- Arts martiaux et décide de lui accorder le Style +bleau des Niveaux de Menace donne un aperçu de la Boxe du Faîte suprême, sans Technique +du nombre recommandé pour chacune de ces supplémentaire pour l’instant. Kong Sha disposera +options. en outre de 4 points de Hei et 8 points de Vitalité, + calculés sur la base de ses Aptitudes. + EXEMPLE Ce PNJ sera à même d’évoluer avec le temps + et, en privilégiant les Arts martiaux plutôt que + Emmanuel / Sam Song dispose d’un allié PNJ tout autre discipline ésotérique, il se pourrait bien + du nom de Kong Sha, un autre élève du temple où qu’il surpasse le fat si dans ce domaine précis au + il a appris les Arts martiaux (voir exemple pré- fil du temps. + cédent – cf p. 252). Adrien / MJ et Emmanuel Par exemple, lorsque Sam sera de niveau + décident de créer conjointement ce PNJ. Il s’agit Initié, son Allié aura progressé au niveau Novice + d’un PNJ de type Allié (ce qui équivaut au ni- de son côté. Adrien et Emmanuel se mettent + veau Adversaire) et Profane, puisque Sam Song alors d’accord sur le fait de lui accorder + 1 en + est un fat si Novice (comme spécifié dans la règle Aptitude spirituelle et deux Techniques d’Arts + sur les alliés, cf p. 251). martiaux liée à son Style : l’équilibre contre le + déséquilibre (cf p. 272) et la résolution vainc + l’indécision (cf p. 272). + + 347 + È n e a i s e + a s c o n g + l k + t e u r s + E T + l + d + É + l + es + e h + so n g + a c + Lesurnat + A + u + N G + r e + u É E + s + T R + É hron i q + c + 1 2 + p i tre +cha + Dans Hong Kong – Les Chroniques de +l’Étrange, les esprits, fantômes et créatures di- +verses du folklore chinois – que les Hongkongais +désignent sous le terme général de jiugwaai – +existent toujours. Ces êtres sont peut-être plus +discrets, se faufilant dans les ombres ou s’inté- +grant à la société, mais ils sont encore bien pré- +sents. C’est d’ailleurs tout le surnaturel chinois +– légendes, magie, objets mystiques, etc. – qui +fut réel et l’est encore de nos jours. + Ainsi dans cette métropole ultramoderne +qu’est Hong Kong, des démons servent d’hommes +de main aux triades ; des femmes-renardes sont +des idoles de la canto pop ; des rois-dragons +règnent sur des cours secrètes d’esprits ; des +sorciers pratiquent les arts sombres ; des sectes +œuvrent au retour d’anciennes entités… et les +fat si qu’incarnent les joueurs sont les gardiens +de l’harmonie cosmique, ceux qui se tiennent +entre la société profane et le monde surnaturel +dans une recherche d’équilibre et de cohabita- +tion apaisée. + Car, si tous les jiugwaai ne sont pas malin- +tentionnés (la plupart veulent juste vivre en paix +et prendre du bon temps), certains représentent +un danger mortel… + + + + + « Je levai les yeux et surpris un étrange + spectacle. La main posée sur la joue + de l’une des renardes, le fuzing la + contemplait avec une profonde affection + teintée de tristesse. Il se pencha et + déposa un tendre baiser sur le front de la + prostituée morte. Puis il se reprit et se + composa à nouveau une attitude détachée + d’homme de main sans état d’âme. + De mon côté, je feignis de n’avoir rien + remarqué – mais je ne pus m’empêcher + de penser à Kara, qui partageait une + partie de la nature de cette wuleizing. + Une fois de plus, je me remémorai + que mortels et esprits ne sont pas si + différents – nous vivons, nous aimons, + nous mourons sous un même Ciel. + J’éprouvai une vive sympathie envers le + tigre, dont le chagrin muet me touchait + plus que je ne l’aurais cru. » + — La Résurrection du Dragon + + + + + 349 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + GÉNÉRALITÉs + L’objectif de ce chapitre consiste à fournir au résister à ce vol de souffle. En cas d’échec, le + MJ un panel varié d’exemples de créatures sur- PJ perd [valeur de cette Capacité] points de Hei + naturelles pouvant se rencontrer à Hong Kong. (il choisit la répartition en Yin et Yang) et la + Entre les spectres vengeurs, les esprits discrets, créature gagne [valeur de cette Capacité] points + les démons menaçants et les objets hantés, il de Hei – pouvant ainsi dépasser son maximum et + existe de nombreux jiugwaai avec lesquels les accumuler une considérable réserve d’énergie. + fat si doivent traiter presque au quotidien. Lorsque le PJ tombe à 0 point de Hei, il perd + Ces créatures constituent des PNJ comme les alors des points de Zing à la place. + autres – au cours des scénarios proposés, elles Au cours d’un combat, l’usage de cette + peuvent ainsi jouer le rôle de contacts, alliés, Capacité coûte 3 crans d’initiative (effectuer un + figurants, rivaux ou adversaires. Techniquement, jet pour s’en préserver n’en coûte en revanche + elles se créent exactement de la même façon que aucun – il s’agit d’une réaction automatique). Sa + des PNJ humains et se gèrent selon les mêmes portée peut être diverse, aussi est-elle précisée + règles – à une exception près, les Capacités sur- dans la description de la créature. + naturelles dont elles disposent et qui les diffé- Le MJ est libre de décrire la façon dont cette + rencient du commun des mortels. Capacité affecte les PNJ ayant une Aptitude spi- + rituelle inférieure à la Capacité absorption de + Yang de la créature quand celle-ci cherche à se + nourrir de leur énergie : petit coup de fatigue + Les CapacitÉs ou soudaine faiblesse passagère sont les effets + les plus classiques si le jiugwaai se contente de + surnaturelles peu ; étiolement physique total quand un mortel + est vidé de son souffle. + Se distinguant par les pouvoirs étonnants + dont ils sont dotés, les jiugwaai possèdent en + termes de jeu des Capacités qui leur octroient Arme + un avantage certain dans leur existence quoti- + dienne. Généralement innées, elles peuvent par- Bien des créatures disposent de cette + fois s’apprendre ou s’obtenir (suite à un rituel Capacité surnaturelle, sous une forme ou une + par exemple). autre. Cornes, griffes, crocs, excroissances os- + Bien souvent, tous les membres d’une catégo- seuses, flammes naturelles, projection de venin, + rie de créatures partagent les mêmes Capacités etc., ces armes peuvent occasionner des dom- + – bien que certains individus se singularisent mages importants durant un affrontement. + parfois par des pouvoirs inédits, qu’ils en dis- La valeur de l’arme s’ajoute aux dégâts que + posent naturellement ou bien qu’ils les aient le jiugwaai inflige par son attaque. Selon la na- + appris au cours de leur existence. ture de l’arme, l’attaque peut se faire au corps + à corps (des griffes ou une aura glacée) ou à + distance (un crachat acide ou un éclair) – auquel + Absorption de Yang cas la portée est indiquée. + + De nombreuses créatures surnaturelles ont + besoin d’absorber de l’énergie Yang afin d’équi- Don innÉ + librer leur nature Yin. La grande majorité uti- + lise cette Capacité avec parcimonie, afin de se De nombreux jiugwaai sont réputés pour se + sustenter sans faire de mal aux mortels dont montrer naturellement doués dans une tâche + elle prélève un peu de souffle. Mais certains jiu- précise. Cette Capacité est toujours associée à + gwaai – par plaisir ou manque de contrôle – sont une Spécialité et notée alors dans le profil du + capables de vider entièrement un humain de sa PNJ sous la forme : don inné (Séduction) ou don + vie. inné (Discrétion). + La valeur de la Capacité absorption de Yang Si le PNJ dispose de la Spécialité correspon- + s’échelonne de 1 à 5. Elle fixe la difficulté des dante, celle-ci donne + 2 à sa valeur d’Aptitude + jets de l’Aspect privilégié des PJ destinés à au lieu de + 1. S’il ne dispose pas de la Spécialité, + + +350 + mais réalise une action en rapport avec celle-ci, les chroniques +il obtient tout de même un + 1. + + + de l’étrange + Lorsqu’il est utilisé, ce talent particulier +prend toujours une forme visiblement surnatu- +relle. Par exemple, un don pour convaincre ou +séduire se concrétise par une voix et une attitude +quasiment hypnotiques. Cela le rend potentiel- +lement détectable par des fat si ou d’autres PNJ +versés dans les sciences occultes. Cependant, il +est toujours possible de ne pas l’utiliser et de + + + + + étrangetés chroniquées +réaliser l’action de façon normale. + + + immortalitÉ + Dans les croyances taoïstes, l’immortalité est +en réalité une longévité extrême pouvant repré- +senter jusqu’à dix mille ans. Seules certaines +créatures jouissent d’un tel pouvoir, éveillant +souvent la curiosité et la convoitise des alchi- +mistes en quête du secret de la vie éternelle… + Un tel jiugwaai vieillit très lentement, au +point qu’il peut ne pas changer d’âge apparent +pendant plusieurs siècles. Il est immunisé contre +les maladies courantes ainsi que les venins or- +dinaires, mais peut se voir touché par certaines +affections ou poisons magiques. Il peut bien sûr +être blessé et tué par des actes violents. À moins +de disposer d’une Capacité de régénération, il +ne guérit pas plus vite que la normale. + variante de cette Capacité, courante chez les + fantômes. + IntangibilitÉ La valeur de la Capacité métamorphe s’éche- + lonne de 1 à 5. Elle fixe la difficulté des jets + Surtout présente chez les fantômes, cette destinés à démasquer la créature, à deviner sa +Capacité permet de se rendre incorporel – que nature réelle, à la repérer malgré son invisibilité, +ce soit pour traverser les obstacles physiques ou etc. Passer d’une forme à l’autre durant un com- +échapper aux attaques. bat coûte 1 cran d’initiative. + Dès lors qu’elle utilise cette Capacité, la Le type de cette Capacité précise la nature du +créature n’est plus affectée par la matière. Elle pouvoir, les conditions qui la rendent applicable +peut ainsi passer à travers les murs, mais aussi et la description de ses effets : +totalement échapper aux dommages physiques. 怪 change-forme : le jiugwaai dispose d’une +Seuls certains objets ou les effets de certaines ou plusieurs formes fixes, et peut passer de +magies permettent alors de la blesser. l’une à l’autre (coûte 2 crans d’initiative en + Durant un combat, passer d’un état à un combat) ; +autre (de tangible à intangible, et inversement) 怪 déguisement : le jiugwaai dispose de +coûte 2 crans d’initiative. nombreuses formes ou peut improviser de + nouvelles formes, mais ne peut pas copier + l’apparence de quelqu’un (coûte 2 crans + Métamorphe d’initiative en combat) ; + 怪 clonage : le jiugwaai peut copier l’appa- + Les esprits-animaux maîtrisent cette rence de quelqu’un (coûte 2 crans d’initia- +Capacité, qui leur permet de changer de forme tive en combat) ; +pour mieux se fondre dans la population hu- 怪 dissimulation : le jiugwaai peut se fondre +maine. Mais beaucoup d’autres jiugwaai la pos- dans le décor tel un caméléon ou se cacher +sèdent également – ce qui leur permet d’adopter dans les ombres (coûte 1 cran d’initiative +diverses apparences, que ce soit pour échapper en combat) ; +à des poursuivants ou approcher une proie avec 怪 invisibilité : le jiugwaai peut se rendre invi- +plus de facilité… Se rendre invisible est une sible (coûte 1 cran d’initiative en combat). + + + 351 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Le MJ est libre de décrire la façon dont cette + Peur Capacité affecte les PNJ ayant une Aptitude spi- + rituelle inférieure à la Capacité peur de la créa- + Certaines créatures apparaissent si mons- ture quand ils la croisent : prostration, évanouis- + trueuses qu’elles suscitent un sentiment de pro- sement ou fuite sont des réactions classiques. + fonde terreur chez les mortels qui les voient. + Cette monstruosité n’est pas uniquement phy- + sique : il peut aussi s’agir de la sensation dé- Possession + rangeante dégagée par un démon, de la sourde + menace qui suinte d’un monstre anthropophage Esprits malins et fantômes se révèlent ca- + ou d’une voix glaciale qui promet bien des pables de s’emparer du corps d’un mortel afin + tourments… d’agir à leur guise dans le monde physique. Un + La Capacité peur n’agit que sur les humains, tel acte ne va pas sans conséquences néfastes + y compris les fat si, mais pas sur les autres jiu- pour la pauvre victime. + gwaai – quel que soit leur type. La valeur de la Capacité possession s’éche- + La valeur de la Capacité peur s’échelonne lonne de 1 à 5. Elle fixe la difficulté des jets + de 1 à 5. Elle fixe la difficulté des jets de l’As- de l’Aspect privilégié des PJ destinés à résister + pect privilégié des PJ destinés à résister à la à la tentative. En cas d’échec à ce jet, le PJ se + terreur que suscite le jiugwaai. En cas d’échec trouve possédé et peut refaire un jet toutes les + à ce jet, le PJ perd [valeur de cette Capacité] [valeur de cette Capacité] heures. Il perd 1 point + points de San. de San à chaque échec. Tant qu’il est possédé, le + La Capacité peur indique toujours les condi- PJ doit agir dans le sens désiré par la créature + tions pour qu’elle se déclenche : il s’agit d’une qui le contrôle. + action ou bien d’un effet permanent. Dans ce En combat, une tentative de possession coûte + dernier cas, il est aussi involontaire et affecte 2 crans d’initiative à la créature (effectuer un + toutes les personnes qui croisent la créature. S’il jet pour s’en préserver n’en coûte en revanche + résulte d’une action volontaire, l’effet affecte les aucun – il s’agit d’une réaction automatique). + personnages (PJ ou PNJ) présents en capacité Il est nécessaire de se trouver au contact pour + de voir le jiugwaai au moment où la Capacité est utiliser cette Capacité. + déclenchée (ce qui coûte 1 cran d’initiative). La Le MJ est libre de décrire la façon dont cette + Capacité s’utilise une fois par scène sur chaque Capacité affecte les PNJ ayant une Aptitude + PJ ou PNJ : que le jet soit réussi ou raté, le spirituelle inférieure à la Capacité possession + résultat est définitif. Cependant, plusieurs créa- de la créature et se trouvant alors possédés par + tures du même type peuvent obliger à effectuer elle : dans presque tous les cas, ils agissent dans + autant de jets, sauf si plusieurs Sbires sont re- le sens désiré par l’être qui les possède et se + groupés en un seul profil de PNJ. trouve à présent aux commandes. + + + + +352 + les chroniques + Protection Autres spÉCIFICITÉs + de l’étrange + Là encore, il s’agit d’une Capacité courante Outre leurs Capacités, les créatures surna- +chez de nombreuses créatures. Cette protection turelles possèdent d’autres spécificités liées à +prend des formes variées : cuir épais, résistance leur nature – et qui ne s’avèrent pas forcément +inhumaine, plaques osseuses, carapace chi- positives. +tineuse, aura mystique, etc. Elle permet de se Ainsi, il n’est pas rare chez certaines catégo- +protéger efficacement. ries d’êtres – comme les esprits-animaux ou les + La valeur de la protection (notée + X) se re- fantômes – de perdre peu à peu leur force vitale, + + + + + étrangetés chroniquées +tranche aux dégâts que reçoit le jiugwaai – et ce qui constitue le prix à payer pour vivre dans +peut s’ajouter à une éventuelle autre armure un monde dominé par les souffles Yang lorsqu’on +portée par celui-ci. Il est à noter que les sorts est de nature Yin. En conséquence, ces jiugwaai +de l’Exorcisme annulent cette protection. sont condamnés à prélever l’énergie Yang des + mortels pour compenser cette perte. Pour ceux + qui savent se montrer mesurés, cet acte ne porte + RÉGÉNÉration guère à conséquence (il est d’ailleurs toléré par + les fat si) ; mais certains se laissent aveugler par + Fantômes et démons présentent fréquem- cette faim et posent dès lors un problème s’ils +ment cette Capacité qui leur permet de guérir laissent dans leur sillage les corps exsangues +les dommages subis. Elle peut prendre plusieurs d’innocents humains… +formes : cicatrisation accélérée, reconstitution D’autres créatures sont affectées par des +de l’énergie, etc. atavismes issus de leur nature et parfois totale- + La valeur de la Capacité régénération indique ment inexplicables. Des légendes racontent ainsi +le nombre de points de Vitalité que récupère le que certains démons sont obligés de compter les +jiugwaai tous les 6 crans d’initiative. pièces jetées par terre devant eux et ne peuvent + bouger avant d’avoir terminé. Bien des spectres + ne font que rejouer encore et encore la même + Vol scène – probablement un souvenir de leur vie + en tant que mortel, dont ils ne parviennent pas + Certaines créatures sont capables de voler. À à sortir ; il existe des monstres qui amassent +moins qu’une vitesse particulière ne soit préci- certaines matières (jade, or, etc.) et veillent in- +sée avec la Capacité, le vol se fait à la même vi- lassablement sur ce trésor lentement accumulé ; +tesse que la marche ou la course à pied et coûte les objets hantés se comportent bien souvent en +le même nombre de crans d’initiative en combat accord avec la nature de l’article qu’ils étaient +qu’un déplacement. Voler permet cependant de avant de s’éveiller à la conscience ; etc. +surmonter de nombreux obstacles et de se tenir Comme ces spécificités restent rares, uniques +à distance de certains adversaires. ou bien cantonnées à un seul type de jiugwaai, + Lorsqu’un jiugwaai est également doué pour elles sont détaillées dans les descriptions des +manœuvrer en vol, cela est représenté par son différentes catégories de créatures. +Aptitude physique avec la Spécialité Vol. + + + + + 353 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + La liste des catÉgories de jiugwaai + Voici une liste des diverses catégories de 怪 Immortalité : un sauzing jouit d’une + créatures que le MJ sera amené à interpréter et longévité extrême. Certains d’entre eux + mettre en scène au cours de ses scénarios. sont âgés de plusieurs siècles. Acquérir + Pour chaque catégorie, il trouvera : un bref le statut d’esprit-animal s’accompagne en + descriptif, une liste des Capacités les plus cou- effet d’une accession à l’immortalité. + rantes chez ces créatures, quelques spécificités 怪 Change-forme : un sauzing possède trois + qui leur sont propres et enfin un représentant du apparences. Tout d’abord, celle de l’animal + type détaillé afin de fournir un exemple concret. qu’il était avant de s’élever au-dessus de + cette condition. Puis une forme hybride, + mêlant un aspect humanoïde à certains + de ses traits sauvages (et qui est propre + Les esprits-animaux à chaque individu). Enfin, l’apparence d’un + mortel qui ne se distingue guère des autres + (sauzing) Hongkongais (encore que certains esprits- + animaux peu expérimentés laissent encore + Il existe de nombreuses légendes sur l’origine discrètement apparaître certaines de leurs + de ces esprits, mais toutes s’accordent sur un caractéristiques animales à ce stade). + point : une telle créature est un animal parvenu Passer d’une forme à une autre est un + à un haut degré de conscience (par l’accumula- acte naturel qui ne demande aucun effort + tion de souffles Yang, en menant une vie longue particulier – mais il coûte 1 cran d’initiative + et sage, par la contemplation des étoiles, en bai- durant un combat. + gnant dans l’énergie d’entités puissantes comme 怪 Déficience en Yang : rester un sauzing + un roi-dragon, en suivant l’enseignement d’un consomme du souffle, aussi un esprit- + maître taoïste, etc.), qui lui permet d’obtenir animal perd-il 1 point de Hei par jour. + d’étonnants pouvoirs – dont celui de prendre Lorsqu’il tombe à 0 point de Hei à cause + forme humaine. Les sauzing transcendent ainsi de cette déficience, il se voit dépouillé de + leur nature initiale et se rapprochent d’une to- son statut et de ses pouvoirs – redevenant + tale compréhension du cosmos. un simple animal. Il s’agit là du pire destin + Les contes d’autrefois racontent bien souvent possible pour un sauzing, une régression + l’amour qui naît entre mortels et sauzing. De fait, ultime qui menace chacun d’entre eux. + les deux espèces se sont mêlées à plus d’une re- C’est pourquoi tous les esprits-animaux + prise et les enfants issus de telles unions sont géné- prélèvent un peu d’énergie aux mortels + ralement des humains – qui disposent alors d’une qu’ils fréquentent. Les plus prudents et + sensibilité marquée au surnaturel et forment ainsi sociables prennent garde à ne consommer + de bons candidats à une formation de fat si. L’on que le strict nécessaire tandis que d’autres + dit souvent des personnes aux intuitions fiables – fous de terreur à l’idée de retourner à + qu’elles « ont du sang d’animal dans les veines ». leur état de bêtes ou obsédés par l’idée + Fort répandus en Chine ancienne, les esprits- d’accumuler de la puissance – n’hésitent + animaux sont également les créatures surnaturelles pas à aspirer des vies entières. + les plus présentes à Hong Kong. Leur besoin + d’énergie Yang et leur capacité à prendre forme La liste de sauzing proposée ci-après est des- + humaine les poussent tout naturellement à se mêler tinée à fournir au MJ des exemples de ces créa- + à la société des mortels. Quant à leur concentration tures à utiliser dans ses scénarios. Elle ne pré- + à Hong Kong même, elle s’explique par les tend pas à l’exhaustivité : il existe bien d’autres + grandes purges menées par le Parti communiste esprits-animaux, issus d’espèces variées. Loups, + chinois envers la communauté surnaturelle durant corbeaux, singes ou carpes sont ainsi autant de + le Grand Bond en avant de Mao : un nombre bêtes capables de se transformer en sauzing. + considérable de sauzing migrèrent vers la colonie Le MJ peut se servir des types d’esprits- + britannique afin d’échapper à la mort. animaux présentés en ces pages pour inventer + Les esprits-animaux partagent de nombreux ceux dont il aura besoin pour ses parties et les + points communs, quelle que soit leur espèce créer techniquement. + d’origine. + + +354 + récurrents pouvant être physique ou spiri- les chroniques + Esprit-serpent (sezing) tuelle (à déterminer une fois pour toutes) et + + + de l’étrange + sa valeur fixée en fonction de la puissance + Si la Terre est emplie de sagesse, les serpents de l’esprit-serpent. Tous ne disposent pas +qui rampent à sa surface sont les mieux placés de cette Capacité, cela dépend s’ils étaient +pour en devenir les récipiendaires. En Chine, venimeux ou non à l’origine. +ils incarnent une forme de discernement et +de clairvoyance. Parmi les grands Augustes +d’autrefois, Fuk Hei et son épouse Neoi Wo James Kam, tueur à gages +étaient dépeints comme possédant un corps + + + + + étrangetés chroniquées +ophidien. Ainsi, les serpents possèdent-ils une Détaché de toute notion du bien et du mal, +filiation directe avec certaines des forces les plus James Kam se voue entièrement à la nature +primordiales du cosmos, et il n’est donc guère prédatrice du serpent qu’il était voici bien des +étonnant qu’ils engendrent autant de sauzing. siècles. Dans le milieu, il est réputé comme +En effet, ils constituent sans doute la deuxième l’un des tueurs à gages les plus efficaces qui +communauté la plus nombreuse d’esprits- soit : dès lors qu’un contrat lui est confié, +animaux à Hong Kong – bien qu’il soit difficile il n’a de cesse de le respecter et malheur à +de l’affirmer, étant donné leur propension à la sa proie… Combattant aguerri sachant manier +solitude et la discrétion. diverses armes, il est devenu une légende en + Les sezing possèdent la réputation d’être très peu de temps. +sages, patients et contemplatifs. Ils n’agissent Sur le Taonet, James Kam figure dans le +jamais à la légère et envisagent toutes les peloton de tête de la liste des créatures sur- +conséquences de leurs actes. De nature solitaire, naturelles à neutraliser en priorité. En effet, +ils se regroupent rarement à plus de trois – et il tue indistinctement mortels ou autres es- +encore faut-il qu’ils soient de la même famille. prits, et se trouve ainsi pleinement dans la +Pourtant, ils aiment exercer leur charme trouble juridiction des fat si. Le sezing en a d’ailleurs +et peuvent se révéler de grands séducteurs massacré quelques-uns (parmi lesquels peut- +– plus par jeu que par réelle intention de se être un proche des PJ ?) qui étaient parve- +lier. La fameuse légende du serpent blanc ra- nus à l’approcher d’un peu trop près à son +conte toutefois la façon dont une sezing tomba goût. C’est un adversaire redoutable, à ne pas +follement amoureuse d’un simple herboriste, au sous-estimer. +point de sacrifier sa vie pour mettre au monde +leur enfant. Ce récit semble démentir la réputa- Niveau de Menace : Renommé +tion d’extrême froideur des serpents… Capacité de Nuisance : Adversaire + À Hong Kong, les esprits-serpents ne forment Aptitude physique : 3 (Discrétion) +pas une communauté unie. Chacun évolue à sa Aptitude martiale : 3 (Mains Nues, Dague, +guise et mène son existence comme il l’entend. Pistolet) +Il leur arrive de fréquenter un temps des sauzing Aptitude mentale : 2 +issus d’autres espèces, par curiosité, et la société Aptitude sociale : 1 (Intimidation) +humaine les fascine. Bien que généralement peu Aptitude spirituelle : 2 (Mythologie) +enclins à la violence, il n’est pas rare que des Vitalité : 12 +sezing – du fait de leur discrétion naturelle et Hei : 8 +de leur don pour tuer – soient employés comme Capacités surnaturelles : absorption de +assassins ou espions, notamment par les triades. Yang (au contact) 2 ; arme (griffes et cro- + Les Capacités surnaturelles les plus courantes chets) 2 ; immortalité ; don inné (Discrétion) ; +chez les esprits-serpents sont les suivantes : métamorphe (change-forme) 4 ; peur (action) + 怪 Absorption de Yang (au contact) ; 2 ; protection (écailles) + 1 ; régénération 3 + 怪 Arme (griffes et crochets) ; Art martial : Gun Kata (Tir précis, Tir + 怪 Don inné (Discrétion) ; rapide) + 怪 Don inné (Séduction) ; + 怪 Immortalité ; + 怪 Métamorphe (change-forme) ; + 怪 Peur (action) ; + 怪 Protection (écailles) ; + 怪 Régénération ; + 怪 Venin : les victimes d’une attaque de + crochets (qui ont perdu au moins 1 point + de Zing ou de Vitalité) sont considérées + comme empoisonnées, la source de dégâts + + + 355 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + +356 + Karen Sen, croqueuse de diamants les chroniques + Esprit-renard (wuleizing) + de l’étrange + Au grand dam de certains membres de la + Si les esprits-animaux forment l’essentiel de communauté des renards, Karen Sen incarne +la population surnaturelle de Hong Kong, les re- l’archétype de la wuleizing telle que dépeinte +nards représentent aisément les trois quarts de par des siècles de légendes. Séductrice invé- +leurs rangs ! Déjà réputés pour leur intelligence térée et amoureuse de la belle vie, elle met +et leur roublardise en tant que simples animaux, à profit sa grande beauté et son goût sûr +il n’est guère étonnant que les renards soient en matière de look pour séduire de riches +parmi les bêtes qui accèdent le plus facilement Hongkongais et mener grand train à leurs + + + + + étrangetés chroniquées +au statut de sauzing. De nombreuses légendes côtés, avant de les abandonner dès qu’ils en- +leur prêtent d’ailleurs des pouvoirs magiques visagent une relation plus sérieuse avec elle. +avant même qu’ils ne transcendent leur nature Membre éminente de la haute socié- +sauvage. té, elle est de tous les galas, de toutes les + Les wuleizing sont connus pour leur propen- fêtes, de tous les vernissages et de toutes les +sion aux farces et leur sens de l’humour, sou- avant-premières. Bien qu’elle ne détienne au- +vent exercés au détriment des humains. Jamais cun pouvoir par elle-même, ses relations font +cruels, ces tours sont en général destinés à don- de Karen Sen une influenceuse de premier +ner une précieuse leçon à celui qui les subit. Les ordre – le nombre d’abonnés à son compte +femmes-renardes sont, quant à elles, réputées Instagram fait d’ailleurs bien des envieux. +pour leur pouvoir de séduction, qui attire entre Après des années passées au sein du gotha de +leurs bras les hommes se laissant subjuguer. Hong Kong, il s’avère certain qu’elle connaît +D’ailleurs, on dit souvent d’une aguicheuse bien des vilains petits secrets – ce qui la rend +qu’elle a l’esprit d’une renarde. Innombrables intouchable, mais aussi très intéressante en +sont les fables mettant en scène des maris qui tant que contact pour un PJ… +abandonnent leur épouse pour vivre une aven- +ture avec une femme-renarde ; et autant de Niveau de Menace : Initié +contes narrent la façon dont la wuleizing tombe Capacité de Nuisance : Boss +finalement amoureuse du naïf avec qui elle Aptitude physique : 2 (Danse) +s’imaginait ne s’amuser que le temps d’une nuit. Aptitude martiale : 1 + À Hong Kong, les esprits-renards se re- Aptitude mentale : 2 +trouvent dans toutes les couches de la société. Aptitude sociale : 3 (Séduction) +Ils exercent tous les types de profession mais Aptitude spirituelle : 2 (Mythologie) +excellent dans les milieux artistique et commer- Vitalité : 8 +cial. Communauté soudée dont les membres pré- Hei : 8 +sentent une tendance à se regrouper et à faire Capacités surnaturelles : absorption de +preuve d’une solidarité à toute épreuve, elle sait Yang (au contact) 3 ; arme (griffes et crocs) +rester discrète et ne pose guère de souci aux fat 2 ; don inné (Séduction) ; immortalité ; méta- +si. Paradoxalement, certains des sauzing les plus morphe (change-forme) 5 +dangereux de la ville sont pourtant des wulei- +zing, qui savent utiliser leur rouerie à leur profit +pour atteindre des objectifs néfastes. Esprit-buffle (seoingauzing) + Les Capacités surnaturelles les plus courantes +chez les esprits-renards sont les suivantes : Il est difficile de croire qu’un animal aussi + 怪 Absorption de Yang (au contact) ; placide que le buffle puisse devenir un sauzing. + 怪 Arme (griffes et crocs) ; Pourtant, ce vieux compagnon de l’humanité sait + 怪 Immortalité ; se montrer patient et observateur. Endurantes et + 怪 Don inné (Séduction) ; puissantes, ces bêtes vivent sous le patronage + 怪 Métamorphe (change-forme). du dernier des trois Augustes : Sannung, à la + tête bovine. Fortement liés à l’agriculture et à la + nature, ils gardent ces intérêts à cœur une fois + devenus des sauzing. + Considérés comme lents d’esprit, les seoin- + gauzing ne font rien pour démentir cette + croyance erronée. En effet, ils réfléchissent + souvent longtemps afin de considérer un pro- + blème sous tous les angles avant de passer à + l’action. Une fois leur décision prise, les buffles + ne changent plus d’avis et se montrent alors + + + 357 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Susan Chow, culturiste amateure + Difficile de ne pas remarquer Susan Chow + dans la rue : dépassant d’une tête la plupart + des hommes, son impressionnante carrure se + devine même à travers ses vêtements. Son + visage avenant au prompt sourire achève de + déconcerter ses interlocuteurs. Jeune seoin- + gauzing, elle s’est prise de passion pour la + musculation – qu’elle pratique intensivement + dans une salle de sport située sur Wyndham + Street dans le quartier de Central : Pherform + Hong Kong. Rapidement remarquée grâce à + son physique avantageux, elle a depuis fait la + couverture de plusieurs magazines de sport. + Des agents commencent à l’approcher dans le + but d’en faire une actrice ou un mannequin. + Cette notoriété gêne la communauté des + buffles de la ville, qui détestent se faire re- + marquer et préfèrent mener des vies tradi- + tionnelles. Sous le feu des projecteurs, Susan + Chow déroge à cette volonté de discrétion, + mais la jeune seoingauzing – enivrée par la + vie hongkongaise – désire profiter de toutes + les opportunités que la cité peut lui offrir. + Les esprits-buffles les plus conservateurs + pourraient demander aux PJ de lui parler en + leur nom, afin de lui expliquer les dangers de + s’exposer ainsi au risque de révéler sa nature + aux profanes… + + Niveau de Menace : Renommé + obstinés et imperméables aux influences ex- Capacité de Nuisance : Adversaire / Alliée + ternes. Ils s’avèrent des individus stables et Aptitude physique : 4 (Musculation) + fidèles, à qui l’on peut faire confiance : leur Aptitude martiale : 2 (Mains Nues) + amitié est aussi solide que le bronze. Aptitude mentale : 1 + À Hong Kong, les seoingauzing restent peu Aptitude sociale : 2 + nombreux. Travailleurs (notamment au sein des Aptitude spirituelle : 2 (Mythologie) + Nouveaux Territoires où ils sont agriculteurs, Vitalité : 16 + jardiniers ou guides de randonnée), ils n’at- Hei : 8 + tirent guère l’attention – ce qui leur permet de Capacités surnaturelles : absorption de + mener une existence tranquille et conforme à Yang (au contact) 2 ; arme (cornes) 2 ; don + leur nature conservatrice. Hélas, parfois confon- inné (Travail de force) ; immortalité ; méta- + dus avec des démons à tête de bœuf lorsqu’ils morphe (change-forme) 4 ; peur (action) 2 ; + adoptent leur forme hybride, les esprits-buffles protection (cuir épais) + 1 + peuvent être victimes d’actes inconsidérés de la Art martial : Seot Gaau (Briser le flux, + part de fat si au sang chaud… Éloigner le danger, Saisir l’opportunité) + Les Capacités surnaturelles les plus courantes + chez les esprits-buffles sont les suivantes : + 怪 Absorption de Yang (au contact) ; + 怪 Arme (cornes) ; + 怪 Don inné (Travail de force) ; + 怪 Immortalité ; + 怪 Métamorphe (change-forme) ; + 怪 Peur (action) ; + 怪 Protection (cuir épais). + + + + +358 + Hyun Ci, champion underground les chroniques + Esprit-tigre (fuzing) + de l’étrange + Doté d’une carrure impressionnante, Hyun + Noble et majestueux, le tigre a de tout temps Ci maîtrise de nombreux arts martiaux. Le +exercé une grande fascination sur l’homme. combat est sa raison d’être, mais les règles +Celui-ci prête même aux organes de ce grand des compétitions humaines l’empêchent de +fauve diverses propriétés médicinales miracu- donner sa pleine mesure. De par son intransi- +leuses. Animal favorisé par les Cieux et patron- geance, il s’est mis à dos presque l’intégralité +né par le Gardien céleste de l’Ouest, le tigre se des écoles de kung-fu de Hong Kong. Il a donc +satisfait en général de son existence au sein de finalement opté pour les combats clandestins, + + + + + étrangetés chroniquées +la nature – ce qui explique la grande rareté des qui se tiennent dans les bas-fonds de la ville. +esprits issus de cette espèce. Peu fréquents, les Depuis qu’il s’est lancé dans ces tournois +fuzing marquent profondément ceux qui ont la underground arrangés par de riches ano- +chance d’en croiser un tant les diverses qualités nymes en quête de sensations fortes, Hyun Ci +des tigres semblent exacerbées chez eux. se sent réellement vivre pour la première fois + Animés par une droiture et un sens de l’hon- en plusieurs décennies. Champion incontesté, +neur rares, ces esprits ne semblent pas ressentir il régale son public en déployant toute l’éten- +la peur. La passion régit leur vie : les fuzing ne due de ses talents de guerrier – profitant des +donnent jamais dans la demi-mesure et se livrent règles relativement lâches de ce genre de +corps et âme à leur tâche. Férus d’arts martiaux, compétitions. Mais cela fait trop longtemps +ce sont des combattants de grand talent, mais qu’il gagne et les organisateurs des combats +ils restent pondérés et préfèrent les duels res- clandestins comptent bientôt lui demander +pectueux aux affrontements sanglants. Prompts de se coucher – afin d’engranger de subs- +à s’emporter pour une offense, les esprits-tigres tantiels bénéfices en truquant les paris. Il +accordent tout aussi rapidement leur amitié et n’est pas certain que Hyun Ci prenne bien la +leur loyauté à qui aura su mériter leur respect. proposition… + À Hong Kong, les fuzing ne se fréquentent +guère entre eux et se montrent assez territo- Niveau de Menace : Accompli +riaux. Bien des leurs exercent un métier en lien Capacité de Nuisance : Adversaire / Allié +avec les arts martiaux : professeurs dans une Aptitude physique : 3 (Travail de force) +école de kung-fu, cascadeurs dans l’industrie Aptitude martiale : 3 (Mains Nues) +du cinéma, gardes du corps… Ils montrent une Aptitude mentale : 1 +certaine propension à prendre sous leur aile de Aptitude sociale : 1 +jeunes talents prometteurs, qu’ils façonnent à Aptitude spirituelle : 2 (Mythologie) +leur image. Vitalité : 12 + Les Capacités surnaturelles les plus cou- Hei : 8 +rantes chez les esprits-tigres sont les suivantes : Capacités surnaturelles : absorption de + 怪 Absorption de Yang (au contact) ; Yang (au contact) 2 ; arme (griffes et crocs) 3 ; + 怪 Arme (griffes et crocs) ; immortalité ; métamorphe (change-forme) 3 ; + 怪 Immortalité ; peur (action) 2 + 怪 Métamorphe (change-forme) ; Arts martiaux : Boxe de la famille Hong + 怪 Peur (action). (Le tigre déchire sa proie, La grue frappe + au cœur, L’animal acculé mord le chasseur), + Boxe longue (Le bond du fauve), Kung-fu de + l’Invulnérabilité (La chemise de fer, La main + de fer) + + + + + 359 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + +360 + Michelle Chun, gentille couturière les chroniques + Esprit-araignée (louzing) + de l’étrange + Possédant un modeste étal de vêtements + Les louzing sont des êtres d’une certaine ra- au sein du Ladies’ Market situé à Tong Choi +reté, mais plusieurs récits témoignent de leur Street, Michelle Chun conçoit elle-même la +existence. Récits qui les décrivent invariable- plupart des habits qu’elle vend. Couturière +ment comme extrêmement dangereux ! Ainsi, infatigable, elle remporte un franc succès +les femmes-araignées sont réputées pour leur auprès d’une clientèle désireuse de s’offrir +tendance à séduire les hommes et à les dévo- un look unique. Autant dire que son stock +rer une fois l’acte consommé. Par opposition, il s’épuise rapidement dès les premières heures + + + + + étrangetés chroniquées +existe divers mythes qui mettent en avant leur d’ouverture du marché ! Produisant inlassa- +volonté de protéger les femmes et de voler à blement, elle renouvelle ses collections avec +leur secours face à des hommes brutaux. une régularité de métronome – pour le plus + Comme souvent, la vérité se révèle plus grand bonheur des femmes qui admirent sa +nuancée. Patientes et méticuleuses, les griffe. +araignées gardent ces qualités une fois devenues Il arrive encore quelques fois à Michelle +des sauzing. Elles peuvent ainsi nourrir une Chun de tisser des vêtements avec sa propre +rancœur durant des décennies et s’en prendre soie – créant ainsi des articles d’une grande +aux descendants de qui les a jadis offensées résistance. Des fat si respectueux et prêts +– menant ainsi une vendetta qui apparaît à l’aider à régler ses soucis occasionnels +forcément injuste à ceux qui en subissent les pourraient bien s’en voir offrir un échantil- +conséquences. Mais de la même manière, le lon. Et justement, un petit gang local désire +bienfaiteur d’un esprit-araignée est assuré que faire payer à la vieille louzing une « taxe de +la créature veillera sur sa lignée pour les siècles protection »… +à venir. Cette ambiguïté se retrouve dans le +folklore : voir une araignée tisser sa toile (dont Niveau de Menace : Initié +on dit qu’elle symbolise les huit trigrammes) Capacité de Nuisance : Adversaire / Alliée +porte chance, mais l’Araignée – en tant que l’un Aptitude physique : 2 (Couture) +des Cinq Venins – reste une entité à redouter. Aptitude martiale : 1 + À Hong Kong, presque tous les louzing sont Aptitude mentale : 2 +issus de la progéniture de la Grande Tisseuse Aptitude sociale : 2 (Commerce) +– la maîtresse incontestée des bas-fonds sur- Aptitude spirituelle : 3 (Mythologie) +naturels de la ville et elle-même un puissant Vitalité : 8 +esprit-araignée vieux de plusieurs siècles. Du Hei : 12 +fait de cette origine, ces êtres constituent une Capacités surnaturelles : absorption de +population violente et criminelle dont les fat Yang (au contact) 2 ; arme (chélicères et toile / +si ont appris à se méfier. En conséquence, les distance moyenne) 2 ; don inné (Escalade) ; +quelques louzing indépendants gardent profil immortalité ; métamorphe (change-forme) 4 ; +bas et vivent en petits groupes afin de s’épauler. peur (action) 1 ; protection (chitine) + 1 ; ve- + Les Capacités surnaturelles les plus courantes nin (physique) 2 +chez les esprits-araignées sont les suivantes : Autre : les vêtements que Michelle Chun + 怪 Absorption de Yang (au contact) ; conçoit à partir de sa toile possèdent la + 怪 Arme (chélicères et toile / distance Propriété Protection. + moyenne) ; + 怪 Don inné (Escalade) ; + 怪 Immortalité ; + 怪 Métamorphe (change-forme) ; + Esprit-rat (syuzing) + 怪 Peur (action) ; Un peu à l’instar du cochon, le rat symbolise + 怪 Protection (chitine) ; la prospérité et l’industrie. On l’associe parfois + 怪 Venin : les victimes d’une attaque de ché- aussi à la friponnerie, au vu de sa tendance à + licères (qui ont perdu au moins 1 point s’emparer de tous les objets qu’il trouve sur son + de Zing ou de Vitalité) sont considérées chemin. Animal coriace capable de survivre dans + comme empoisonnées, la source de dégâts tous les milieux, il privilégie les communautés + récurrents pouvant être physique ou spiri- humaines dont il profite des déchets – démon- + tuelle (à déterminer une fois pour toutes) trant bien là sa grande capacité d’adaptation. + et sa valeur fixée en fonction de la puis- Tous ces facteurs expliquent l’existence de + sance de l’esprit-araignée. nombreux esprits-rats, dont l’ingéniosité et l’in- + telligence leur permettent de creuser leur trou + parmi les autres créatures surnaturelles. + + + 361 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Les syuzing restent discrets et préfèrent Scott Zang, explorateur urbain + ne compter que sur eux-mêmes. Prudents à + l’extrême, ils anticipent tous les problèmes Depuis quelque temps, une pratique nom- + qui pourraient les frapper et conçoivent des mée l’urbex (pour urban exploration) pas- + solutions préventives. N’est pas né celui qui sionne nombre de jeunes Hongkongais. Scott + parviendra à prendre un rat par surprise ! Cette Zang en fait partie – à la différence près qu’il + adaptabilité à toutes les situations explique la est un esprit-rat naturellement doué pour + longévité des syuzing. Attention toutefois à ne cette discipline. L’urbex consiste à visiter des + pas confondre ce comportement précautionneux lieux construits par l’homme, soit abandon- + avec de la lâcheté : pour défendre sa vie ou celle nés, soit interdits, soit difficiles d’accès… + des siens, un esprit-rat peut se muer en un re- D’une certaine façon, il s’agit d’une forme + doutable adversaire. de spéléologie qui considère les villes comme + À Hong Kong, ces sauzing vivent en familles des massifs rocheux. + élargies. Ils travaillent au contact de la rue et En tant qu’urbexeur, Scott Zang est déjà + les métiers réputés durs ou sales ne les effraient une légende grâce à ses capacités de syuzing. + pas : ils occupent les professions d’ouvriers, Il sait en effet mieux que personne s’orienter + d’égoutiers, d’éboueurs, de veilleurs de nuit… dans des tunnels obscurs ou parcourir des + Ils sont ainsi à l’écoute du cœur de la ville et les toits situés à des hauteurs vertigineuses. Au + fat si sachant surmonter la répugnance que les cours de ses explorations, le jeune esprit-rat + rats inspirent parfois trouvent en eux des infor- a également pris l’habitude de récupérer tous + mateurs sans pareils. les objets intrigants qu’il dégotte. Il n’est pas + Les Capacités surnaturelles les plus cou- impossible qu’au sein de son bric-à-brac se + rantes chez les esprits-rats sont les suivantes : trouve un artefact ancien dont les PJ ont un + 怪 Absorption de Yang (au contact) ; besoin primordial… + 怪 Arme (dents) ; + 怪 Immortalité ; Niveau de Menace : Initié + 怪 Métamorphe (change-forme) ; Capacité de Nuisance : Adversaire / Allié + 怪 Peur (action). Aptitude physique : 3 (Urbex, Parkour) + Aptitude martiale : 1 + Aptitude mentale : 2 (Connaissance du + cadastre) + Aptitude sociale : 1 + Aptitude spirituelle : 3 (Mythologie) + Vitalité : 12 + Hei : 12 + Capacités surnaturelles : absorption de + Yang (au contact) 2 ; arme (dents) 2 ; immor- + talité ; métamorphe (change-forme) 3 ; peur + (action) 1 + + + Esprit-cochon (zyuzing) + Figurant parmi les signes astrologiques + chinois, le cochon possède une réputation + flatteuse. Travailleur et malin, il apporte pros- + périté et bonheur. Il est omniprésent dans la + société depuis des millénaires et côtoie ainsi + les humains au jour le jour – un facteur qui + favorise l’émergence de sauzing issus de cette + espèce animale. Ceux-ci continuent de vivre + parmi les mortels et de veiller discrètement + sur eux. + Les zyzing sont de bons vivants, dotés d’un so- + lide sens de l’humour et d’un grand appétit pour + toutes les bonnes choses. Gourmands et jouis- + seurs, ils n’apprécient rien tant qu’un bon repas + en compagnie d’amis fidèles. Généreux, ce sont + des compagnons fiables et des hôtes plaisants. + + +362 + Cette image d’hédoniste peut toutefois s’avérer Aptitude mentale : 3 (Économie, les chroniques +trompeuse : les esprits-cochons disposent d’un Connaissance du milieu criminel) + + + de l’étrange +esprit acéré et d’une intelligence redoutable, Aptitude sociale : 3 (Négociation) +notamment dans les rapports sociaux. Et si leurs Aptitude spirituelle : 2 (Mythologie) +colères sont rares, elles s’avèrent dévastatrices, Vitalité : 8 +et leur rancune est tenace – surtout envers ceux Hei : 8 +qui les auraient trahis. Capacités surnaturelles : absorption de + À Hong Kong, les zyuzing sont commerçants Yang (au contact) 3 ; immortalité ; métamorphe +ou hommes d’affaires. Âpres aux gains, ils (change-forme) 4 ; protection (graisse) + 3 +gagnent souvent confortablement leur vie mais + + + + + étrangetés chroniquées +n’économisent guère – préférant au contraire +jouir des plaisirs de la vie. Les esprits-cochons Esprit-crabe (haaizing) +apprécient les mortels, mais les savent parfois +indignes de confiance, aussi n’offrent-ils pas Certains animaux ne se changent pas en +leur amitié aussi facilement qu’on pourrait le sauzing d’eux-mêmes, mais plutôt quand ils +penser… Leur communauté ne pose en général sont longtemps exposés au souffle d’un être +guère de problèmes et les fat si les laissent en puissant. C’est le cas des esprits-crabes qui +paix. – en évoluant dans les fonds marins où les rois- + Les Capacités surnaturelles les plus courantes dragons érigeaient jadis leurs palais de jade et +chez les esprits-cochons sont les suivantes : de nacre – deviennent des jiugwaai singuliers, + 怪 Absorption de Yang (au contact) ; se consacrant exclusivement au service de + 怪 Immortalité ; celui qui les a transformés. Bien des haaizing + 怪 Métamorphe (change-forme) ; assument ainsi une charge d’officier à la cour + 怪 Protection (graisse). de rois-dragons ou de divinités comparables. + Puissamment charpentés, les esprits-crabes + sont des guerriers redoutables à la volonté de + Pui Gan, petit parrain fer. Rien ne peut les détourner de leur devoir : + ils se révèlent loyaux à l’extrême, au point + Cet individu à l’apparence débonnaire est de manquer parfois de clairvoyance. Fiers de + un chef criminel dont le territoire s’étend au- servir des entités de renom, ils présentent une + tour de Jaffe Road, dans le quartier de Wan certaine tendance à mépriser les autres sau- + Chai. Il y mène diverses affaires troubles zing. Les haaizing se mêlent peu à l’humanité + – paris illégaux, trafic d’informations, contre- et peineraient d’ailleurs à y parvenir, tant le + bande… – mais prend garde à ne jamais jouer domaine de leur seigneur-lige constitue géné- + trop gros ou trop immoral. S’il assume d’être ralement une bulle peu connectée à la réalité + un gangster, le zyuzing refuse de tremper des mortels. + dans le sordide – comme le trafic de drogue. À Hong Kong, les esprits-crabes s’avèrent + Son quartier général se situe à La Douceur des peu nombreux et la quasi-totalité reste à + Pruniers, un bar à hôtesses employant exclusi- l’écart des mortels. Ils ne fréquentent pas plus + vement des sauzing (renardes et serpentes en les autres esprits-animaux – à part ceux qui + majorité) qui savent recueillir les confidences servent la même divinité qu’eux. Toutefois, ils + sur l’oreiller de leurs clients… entretiennent des liens avec les fat si dont ils + Bien que son organisation soit petite, Pui respectent la fonction de garants de l’équilibre + Gan sait la défendre. Il emploie, en tant que dans la ville et les capacités martiales. Il arrive + gardes du corps, non pas un, mais bien deux même qu’ils acceptent de se battre à leurs côtés, + fuzing – dont l’un, nommé Je Saang, possède quand un jiugwaai menace cette harmonie – et + une réputation des plus redoutables. Les fat les plans de leur maître… + si tolèrent les petites affaires du cochon pour Les Capacités surnaturelles les plus courantes + une bonne raison : il n’est jamais avare d’un chez les esprits-crabes sont les suivantes : + coup de main ou d’une information. Lorsque 怪 Absorption de Yang (au contact) ; + des exorcistes ont besoin de faire disparaître 怪 Arme (pinces) ; + le corps d’un monstre ou d’un démon, ils 怪 Don inné (Natation) ; + savent ainsi à qui s’adresser. Pour les PJ, Pui 怪 Immortalité ; + Gan peut constituer un contact précieux. 怪 Métamorphe (change-forme) ; + 怪 Protection (carapace) ; + Niveau de Menace : Initié 怪 Régénération. + Capacité de Nuisance : Boss + Aptitude physique : 2 + Aptitude martiale : 1 + + + 363 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Bui Hok, général fidèle + Esprit-écrevisse + Vieux de plusieurs siècles, Bui Hok occupe + la place de général auprès du roi-dragon (syulunghaazing) + Ngou Zong. Son expérience en fait un officier + des plus efficaces, bien plus malin qu’il n’en De la même façon que les crabes, les écre- + a l’air. Son physique de brute au torse large visses se transforment en syulunghaazing sous + comme une barrique de vin jaune dissimule l’effet de l’énergie d’un roi-dragon. Nombre de + en effet une vive intelligence tactique. Quand ces esprits prêtent serment de loyauté envers + son maître s’installa à Hong Kong, le haaizing leur bienfaiteur mais – plus indépendants que + le suivit et s’adapta plutôt bien à cette nou- les haaizing – il leur arrive de reprendre leur + velle vie. Il supervise ainsi les affaires menées liberté pour parcourir le monde à leur guise. + par Ngou Zong à Shau Kei Wan, un quartier Leur adaptabilité leur permet de s’intégrer à la + situé à l’est de l’île de Hong Kong. Véritable société mortelle, dans laquelle ils évoluent en se + bras droit du roi-dragon, il le sert également laissant guider par leur soif d’expériences. + en tant que porte-parole. Les esprits-écrevisses sont plutôt versatiles. + Œuvrant toute la journée au sein d’un port Combattants efficaces autant que penseurs éru- + actif de la ville, Bui Hok entend bien des ru- dits, ils occupent différents postes au sein de la + meurs. Il est particulièrement attentif à tout cour de leur seigneur. Cette polyvalence en fait des + ce qui pourrait porter atteinte à la tranquillité serviteurs précieux mais explique également leur + des lieux – et de la cité en général. En effet, besoin de mener leur vie à leur guise, tôt ou tard. + le vaillant haaizing se souvient avec nostalgie La curiosité finit toujours par l’emporter et les + de ses années en tant que militaire et ne re- syulunghaazing ne parviennent plus à se satisfaire + chigne pas à participer à une bonne bataille, d’une existence limitée au domaine d’une divinité. + armé de sa lame Pince des Abysses. Il a déjà À Hong Kong, les esprits-écrevisses sont + prêté assistance à quelques fat si – dont, ré- rares. Les plus jeunes servent encore leur + cemment, l’exorciste Johnny Kwan avec qui maître, mais ceux qui accusent déjà quelques + il a détruit une marée de crânes, un spectre siècles vivent dans la cité, où ils peuvent occu- + marin particulièrement dangereux. per n’importe quel emploi. Il est d’ailleurs rare + de les voir exercer le même métier trop long- + Niveau de Menace : Accompli temps, leur besoin de nouveauté les amenant à + Capacité de Nuisance : Boss varier pratiques et savoirs. Leur seule motiva- + Aptitude physique : 3 (Travail de force, tion semble être de connaître des expériences + Natation) inédites, ce qui en fait de précieux contacts : ils + Aptitude martiale : 3 (Mains Nues, Épée) évoluent dans nombre de milieux différents. + Aptitude mentale : 2 (Stratégie) Les Capacités surnaturelles les plus courantes + Aptitude sociale : 2 (Intimidation) chez les esprits-crabes sont les suivantes : + Aptitude spirituelle : 2 (Mythologie, 怪 Absorption de Yang (au contact) ; + Rois-dragons) 怪 Arme (pinces) ; + Vitalité : 12 怪 Don inné (Natation) ; + Hei : 8 怪 Immortalité ; + Capacités surnaturelles : absorption de 怪 Métamorphe (change-forme) ; + Yang (au contact) 3 ; arme (pinces) 2 ; don 怪 Protection (carapace). + inné (Natation) ; immortalité ; métamorphe + (change-forme) 3 ; protection (carapace) + 3 ; + régénération 2 Nora Ng, émissaire zélée + Arme : Bui Hok manie Pince des Abysses + (dégâts = 4, Propriété Augmentation des dé- Encore jeune pour un esprit, Nora Ng tra- + gâts / + Aptitude spirituelle), un sabre à la vaille encore sous les ordres de son seigneur : + lame orangée taillée dans la carapace d’un le roi-dragon Ngou Gaai. Celui-ci remplit le rôle + monstre marin. de « fixer » au sein de la communauté surnatu- + relle de Hong Kong, se chargeant de jouer les + intermédiaires entre certaines factions quand + des désaccords surviennent. Nora Ng est sans + nul doute sa meilleure diplomate, celle qu’il + envoie lorsqu’un conflit menace de dégénérer + – et d’attirer l’attention des fat si. Jusqu’à pré- + sent, la syulunghaazing n’a connu aucun échec + et sa réputation grandit sans cesse. + + +364 + Nora Ng nourrit des ambitions peu com- dans des bureaux – comme banals employés. La les chroniques + munes pour un esprit-écrevisse. Au fil des grande majorité œuvre au sein de l’une ou l’autre + + + de l’étrange + années, elle s’est mise à mépriser Ngou Gaai entreprise possédée par leur seigneur et se sa- + – qu’elle considère comme une relique du pas- tisfont de leur sort. Mais quelques-uns, inspirés + sé qui ne garde sa position que grâce au zèle par les syulunghaazing, se laissent tenter par une + de ses serviteurs. Elle déplace donc ses pions existence indépendante et s’intègrent au mieux + de façon à détrôner le vieux roi-dragon pour dans la cité grâce à leur caractère laborieux. + prendre sa place – profitant de ses missions À Hong Kong, les haahaazing se mêlent volon- + pour tisser un réseau de relations au sein de tiers aux humains aux côtés desquels ils travaillent. + la faune surnaturelle de la cité. Quand elle Ils nouent des amitiés, vont boire un verre avec + + + + + étrangetés chroniquées + passera à l’action, une guerre des gangs impli- leurs collègues mortels, échangent des potins sur + quant sauzing et démons éclatera sans doute, la vie des ports, voire se lancent dans des idylles. + mais elle considère que verser un peu de sang Ainsi malgré leur attachement au domaine d’un + (fusse celui de mortels innocents) n’est pas roi-dragon, ils font preuve d’une grande sociabilité + un trop gros prix à payer pour atteindre son et excellent à se fondre au sein de l’humanité – un + objectif. Lancière émérite, elle se montre prête talent qui leur devient fort utile quand ils décident + à se salir les mains s’il le faut. de prendre leur indépendance. + Les Capacités surnaturelles les plus courantes + Niveau de Menace : Accompli chez les esprits-crevettes sont les suivantes : + Capacité de Nuisance : Boss 怪 Absorption de Yang (au contact) ; + Aptitude physique : 1 (Natation) 怪 Don inné (Natation) ; + Aptitude martiale : 2 (Mains Nues, Lance) 怪 Immortalité ; + Aptitude mentale : 2 怪 Métamorphe (change-forme) ; + Aptitude sociale : 3 (Négociation) 怪 Protection (carapace). + Aptitude spirituelle : 2 (Mythologie, + Rois-dragons) + Vitalité : 4 Sonia Tsui, hackeuse agoraphobe + Hei : 8 + Capacités surnaturelles : absorption de Très tôt dans son existence d’esprit, Sonia + Yang (au contact) 2 ; arme (pinces) 2 ; don Tsui a décidé qu’elle ne souhaitait pas res- + inné (Natation) ; immortalité ; métamorphe ter au service de son seigneur. Étant atteinte + (change-forme) 4 ; protection (carapace) + 2 d’une importante phobie sociale, même tra- + Art martial : Lance loyale du général Yue vailler avec ses semblables l’angoissait au + Fei (Le général écrase ses ennemis, Tenir le point de la plonger dans une profonde dépres- + cavalier à distance, Retenir l’avalanche) sion. Enfermée dans son minuscule studio, + elle commença à interagir avec le monde via + les réseaux sociaux et apprit l’informatique + Esprit-crevette en autodidacte – grâce à l’esprit industrieux + des haahaazing. Oubliée par son roi-dragon + (haahaazing) tutélaire, elle se mit à son compte en tant + qu’hackeuse au service de qui peut la payer. + Les esprits-crevettes forment une autre ca- Désormais, Sonia Tsui vit dans un bureau +tégorie de serviteurs que l’on trouve dans l’en- qu’elle a aménagé en appartement confortable +tourage des rois-dragons. Crustacés moins évo- dans un bâtiment portuaire appartenant à une +lués que leurs cousins crabes et écrevisses, ils entreprise quelconque. Elle semble là depuis +occupent de fait des postes moins prestigieux, si longtemps qu’aucun des employés présents +mais leur nombre sensiblement plus élevé leur ne questionne sa légitimité à se trouver en ce +permet de former le gros des troupes de leurs lieu. Grande et maigre, la silhouette dissimu- +maîtres. Industrieux à l’extrême, les haahaa- lée sous un pull trop large, la haahaazing sort +zing deviennent aussi bien soldats qu’ouvriers, le moins possible : elle se fait livrer sa nour- +scribes que comptables. Petites mains invisibles, riture et commande les fournitures dont elle +les esprits-crevettes s’avèrent indispensables au a besoin, prélevant un peu d’énergie sur les +fonctionnement du domaine d’un roi-dragon. coursiers. Elle gère très bien sa solitude – qui + Avec leur démarche voûtée et leur allure dé- se trouve grandement relativisée par sa riche +gingandée, les haahaazing fourmillent en général vie sociale en ligne. Arpentant notamment le +sur les quais et dans les entrepôts des nombreux Taonet, l’informaticienne guette les opportu- +ports de Hong Kong. Se mêlant aux travailleurs nités diverses et ce dans le seul but de satis- +humains, ils accomplissent leur office aussi bien faire son besoin de travailler. Elle n’a aucun +à l’extérieur – en tant que manouvriers – que objectif mais s’en arrange parfaitement. + + + 365 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Niveau de Menace : Apprenti 怪 Absorption de Yang (au contact) ; + Capacité de Nuisance : Adversaire / Alliée 怪 Arme (divers) ; + Aptitude physique : 1 (Natation) 怪 Don inné ; + Aptitude martiale : 1 怪 Immortalité ; + Aptitude mentale : 3 (Informatique) 怪 Métamorphe (change-forme) ; + Aptitude sociale : 1 (Réseaux sociaux) 怪 Protection (divers). + Aptitude spirituelle : 3 (Mythologie, + Rois-dragons) Les objets hantés possèdent des forces et + Vitalité : 4 faiblesses communes avec les esprits-animaux : + Hei : 12 l’immortalité et la déficience en Yang, notam- + Capacités surnaturelles : absorption de ment. Leur Capacité métamorphe présente la + Yang (au contact) 1 ; don inné (Natation) ; particularité suivante : + immortalité ; métamorphe (change-forme) 3 ; 怪 forme partiellement changeante : un mei + protection (carapace) + 3 possède deux aspects principaux, celui de + l’objet qu’il était avant de s’élever au-des- + sus de cette condition et une apparence de + Objet hanté (mei) mortel qui ne se distingue guère des autres + Hongkongais (encore que certains mei peu + Les sauzing ne sont pas les seuls êtres ca- expérimentés laissent encore discrètement + pables de transcender leur condition : c’est aussi apparaître certaines de leurs caractéris- + le cas des mei. Le même processus s’avère d’ail- tiques d’origine à ce stade). Il dispose + leurs à l’œuvre dans le cas de ces objets accédant également de la faculté de transformer + à la conscience et capables de prendre forme uniquement certaines parties de son corps + humaine : une existence riche en expérience au en un élément de l’objet qu’il était jadis. + contact d’individus exceptionnels les imprègne Passer d’une forme complète à une autre + d’énergie Yang et les éveille. Contrairement à est un acte naturel qui ne demande aucun + ce que leur nom usuel pourrait laisser croire, il effort particulier – mais cela coûte 1 cran + ne s’agit donc pas d’articles auxquels seraient d’initiative durant un combat. Changer seu- + rattachés des fantômes mais bien d’esprits issus lement une partie de son corps ne coûte + d’objets usuels. De façon générale, un mei est à par contre aucun cran d’initiative. Quand + la base une œuvre de grande qualité façonnée il se trouve sous la forme de l’objet qu’il + avec soin par un artisan de renom. était originellement, le mei fait bénéficier à + Outre leur origine qui les classe indubita- celui qui l’utilise alors d’une Propriété (cf + blement parmi les jiugwaai, les mei partagent p. 215) fixée une fois pour toutes. + d’autres points communs avec les esprits-ani- + maux – le besoin de se nourrir de souffles Yang, + l’immortalité, la capacité à prendre forme hu- Albert Fong, antiquaire + maine, etc. Un objet hanté est capable d’assu- + mer son apparence originelle, mais surtout, il Fabriqué en 764 par un érudit taoïste, + peut changer des parties de son corps humain Albert Fong passa bien des années sous la + en éléments de l’article dont il est originaire. forme d’une horloge hydraulique à observer + Ainsi, une épée éveillée pourra transformer l’un les expériences alchimiques de son créateur. + de ses bras en lame pour se battre par exemple. Baignant ainsi dans une atmosphère magique, + À Hong Kong, les mei sont relativement cou- il accumula un puissant souffle Yang et accé- + rants. Tout comme les sauzing, ils cherchent es- da peu à peu à la conscience. Devenu un mei, + sentiellement à vivre en bonne intelligence avec il resta auprès de son maître jusqu’à sa mort + les mortels, restant discrets sans pour autant afin de perfectionner ses connaissances. Par + faire profil bas. Leurs capacités souvent uniques la suite, il écuma la Chine en quête d’aven- + en font pourtant des jiugwaai fort prisés – à tures jusqu’à ce qu’il soit forcé de s’installer + la fois par d’autres créatures et des fat si. En à Hong Kong au début des années 1960. + effet, quoi de mieux qu’un compagnon d’armes Sous l’apparence d’un homme aux cheveux + capable de se transformer en sabre ou en bou- gris mais encore robuste, Albert Fong tient + clier quand on exerce un métier si dangereux ? un magasin d’antiquités dans le quartier de + La plupart des objets hantés n’apprécient guère Wan Chai, sur l’île de Hong Kong. Étant don- + d’être considérés comme des outils, mais cer- né sa nature, il sait reconnaître un objet au- + tains aiment l’idée de nouer un tel partenariat thentiquement ancien et sa boutique regorge + avec un équipier de valeur. d’œuvres rares et précieuses. Mais surtout, il + Les Capacités surnaturelles les plus cou- en a fait un véritable sanctuaire pour ses sem- + rantes chez les mei sont les suivantes : blables : tout mei arrivant en ville sait qu’il + + +366 + peut y trouver refuge le temps de s’adapter. arrive souvent qu’un fantôme devienne fou et les chroniques + Albert Fong évalue également les objets se montre trop agressif pour être raisonné – il + + + de l’étrange + qu’il acquiert et détermine ceux qui ont une convient alors de l’exorciser en bonne et due + chance de s’éveiller – il les place alors dans forme. + les conditions idéales pour les transformer à La catégorie des revenants est trop variée + leur tour en mei. pour que l’on puisse distinguer de réels points + communs entre ses divers représentants – si ce + Niveau de Menace : Initié n’est qu’ils brisent l’harmonie cosmique et n’ont + Capacité de Nuisance : Adversaire / Allié guère de place dans le monde. En tant que ga- + Aptitude physique : 1 rants de l’équilibre, les fat si ont pour mission + + + + + étrangetés chroniquées + Aptitude martiale : 2 (Épée) de réparer les anomalies qu’ils constituent. + Aptitude mentale : 2 (Histoire) Ils présentent toutefois une caractéristique + Aptitude sociale : 2 (Commerce) commune : + Aptitude spirituelle : 3 (Mei) 怪 vulnérabilité au soleil : atteints par ses + Vitalité : 4 rayons, les gwai perdent 1 point de Vitalité + Hei : 12 par minute. S’ils perdent l’intégralité de + Capacités surnaturelles : absorption de leur Vitalité ainsi, ils sont définitivement + Yang (au contact) 3 ; immortalité ; méta- détruits. + morphe (change-forme) 4 ; protection (méca- + nismes en cuivre) + 2 ; Propriété Récupération + de Hei accrue FantÔme (waanjing) + Art martial : Épée du Faîte suprême (Le + souffle de Wudang, La lame est partout, Les fantômes présentent autant de profils + L’immortel sur sa montagne) différents que les mortels qu’ils étaient avant + leur mort et il est donc difficile d’établir des + généralités sur eux. + Un être humain se transforme en waanjing +Les revenants pour diverses raisons, dont le point commun est + un refus de la mort. Cela peut arriver parce qu’il +(gwai) est décédé dans d’atroces souffrances et sou- + haite se venger, parce qu’il n’a pas achevé une + Créatures omniprésentes dans le folklore (les tâche de son vivant, parce qu’il souhaite conti- +fameuses « histoires de fantômes chinois »), les nuer à veiller sur sa famille et parfois même +revenants regroupent tous les êtres qui – après parce qu’il ne comprend pas qu’il a péri (ce +leur mort – reviennent dans le monde des qui est assez fréquent chez les enfants qui ne +hommes alors qu’ils n’y ont plus leur place. saisissent pas encore bien le concept de mort). + Qu’ils soient des fantômes égarés, des âmes Mais si ces raisons sont multiples, le résultat +en peine, des cadavres animés et décharnés ou revient au même : ces âmes stagnent dans le +même des résidus d’émotions matérialisés, ils monde des vivants où elles n’ont plus leur place, +enfreignent les règles de l’équilibre céleste et au lieu de rejoindre le Deijuk et de se diriger +doivent être renvoyés là où est leur place. vers leur prochaine incarnation. + En effet, contrairement aux esprits-animaux Bien des fantômes restent liés à un lieu pré- +ou à certains démons qui peuvent s’intégrer cis : celui de leur mort ou un endroit ayant une +à la société humaine, un revenant n’a aucune certaine importance à leurs yeux (leur demeure, +place auprès des mortels. Il s’agit là d’une règle leur parc préféré, etc.). D’autres s’attachent à +stricte pour les fat si, mais cela ne signifie pas une personne, comme leur conjoint ou leur en- +qu’il faille se montrer vindicatif en toutes cir- fant – la littérature classique chinoise abonde +constances. Un bon exorciste n’a guère besoin d’ailleurs de récits mettant en scène un amour +de son attirail pour envoyer une âme errante qui se prolonge au-delà de la mort. Quelques- +vers le Deijuk : il lui suffit en général de discuter uns enfin sont libres de toute attache – géné- +avec elle, de lui faire prendre conscience de sa ralement parce qu’ils disposent d’une volonté +mort ou de réparer le tort qui lui a été fait et qui inflexible. +l’empêche de progresser vers sa réincarnation. Les waanjing tendent à ne se manifester que +L’empathie et la communication s’avèrent plus la nuit, car la lumière du soleil les brûle et peut +utiles que les rituels et les épées de saule quand même les détruire. À la lueur de la lune, ils ne +il s’agit d’apaiser un fantôme. projettent aucune ombre et leurs pieds semblent + Bien sûr, la question se pose moins quand ne pas toucher le sol. Ils ne respirent bien sûr +on évoque un goengsi : ces corps animés d’une pas et l’atmosphère refroidit notablement en +vie impie doivent être exterminés. Et hélas, il leur présence. Ces signes sont les plus communs + + + 367 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + pour reconnaître un fantôme : en effet, les Nick Cheung, gamin cruel + waanjing possèdent une présence physique et + peuvent interagir avec le monde matériel. Ce Véritable petite brute d’école primaire, + qui explique pourquoi un profane ne se rend pas Nick Cheung se plaisait à harceler et tour- + toujours compte qu’il a affaire à un spectre… menter ses camarades les plus faibles. Malgré + Presque tous les fantômes savent se rendre les admonestations de ses enseignants et les + immatériels ou invisibles, et les plus mesquins raclées quotidiennes que lui flanquait son + se servent de ces pouvoirs pour tourmenter père afin d’extraire la méchanceté de son + leurs victimes et absorber leur énergie Yang. âme, le garçon se complaisait dans sa cruau- + Jiugwaai d’essence purement Yin, les spectres té. Il mourut renversé par une voiture il y a + se nourrissent en effet du souffle des mortels près de trente ans, alors qu’il poursuivait une + sous peine de finir par disparaître dans le néant. petite fille dans le but de lui couper les che- + À l’instar des sauzing, certains parviennent à veux avec le rasoir qu’il tenait à la main. + procéder avec discrétion et frugalité tandis que Devenu un waanjing, Nick Cheung conti- + d’autres vampirisent totalement leurs proies et nue ses méfaits. Il s’en prend toujours aux + les laissent pour mortes. enfants de l’école qu’il hante à Sai Kung (une + D’ailleurs, lorsqu’un fantôme se sert de ses ville des Nouveaux Territoires), mais n’hésite + pouvoirs pour s’en prendre à des humains, il y pas non plus à s’attaquer à des adultes. Sa + a de grandes chances que ce comportement le débrouillardise et son apparence enfantine + transforme en esprit démoniaque – lui interdi- lui ont jusqu’ici permis de survivre vaille que + sant ainsi toute chance de se réincarner en tant vaille. Les fat si qui le croisent imaginent avoir + que mortel. affaire à un pauvre garçonnet égaré dans le + À Hong Kong, on trouve des fantômes monde des vivants et le fantôme profite de + littéralement partout. Dans une société aussi cette naïveté pour les attirer dans des pièges + tournée vers le profit et qui laisse derrière tendus par les démons locaux. Nick Cheung + elle autant de désœuvrés, bien des âmes ne a en effet passé un accord avec les êtres les + parviennent pas à atteindre la sérénité nécessaire plus dangereux de sa ville : il conduit leurs + au voyage vers les Enfers. Les victimes des ennemis à eux et en échange, il n’est ni dévo- + triades ont aussi de grandes chances de nourrir ré ni asservi. + un désir de vengeance qui les bloque dans le + monde des vivants. Accidents ou suicides Niveau de Menace : Apprenti + peuvent également engendrer des waanjing. Il Capacité de Nuisance : Adversaire + n’est pas exagéré de dire que la majeure partie Aptitude physique : 2 (Skate) + des activités d’un exorciste consiste à s’occuper Aptitude martiale : 1 + de ce problème. Aptitude mentale : 1 + Les Capacités surnaturelles les plus cou- Aptitude sociale : 2 (Manipulation) + rantes chez les waanjing sont les suivantes : Aptitude spirituelle : 2 + 怪 Absorption de Yang (distance courte) ; Vitalité : 8 + 怪 Intangibilité ; Hei : 8 + 怪 Métamorphe (invisibilité) ; Capacités surnaturelles : absorption de + 怪 Peur (action) ; Yang (distance courte) 2 ; intangibilité ; mé- + 怪 Possession ; tamorphe (invisibilité) 2 ; possession 2 + 怪 Régénération. + + + Les fantômes sont également affligés du Spectre affamé (ngogwai) + point faible suivant : + 怪 déficience en Yang : désincarnés sous la Les ngogwai sont les fantômes de personnes + forme d’un esprit Yin, les waanjing perdent qui se sont montrées particulièrement avides et + 1 point de Hei par jour. Lorsqu’ils tombent voraces durant leur existence humaine. Se voir + à 0 point de Hei à cause de cette déficience, condamné à errer parmi les mortels sous cette + ils disparaissent sans laisser de trace. forme est une punition céleste – particulièrement + + + « TUER » UN FANTÔME + Quand un fat si neutralise un fantôme (waanjing ou ngogwai) grâce à sa magie (épée de saule, rituel de + purification, etc.), il ne le détruit pas, mais l’exorcise. L’âme est envoyée vers sa destination logique, ce qui reste + un destin préférable à une oblitération complète. Un fantôme qui perd toute sa Vitalité après avoir subi des dom- + mages purement physiques (coup de poing, tir d’arme à feu, etc.) se reconstitue dès la tombée de la nuit suivante + – il ne s’agit que d’une façon temporaire de se débarrasser de lui. + + +368 + sévère, qui plus est ! La condition de ngogwai se Mark Sung est toujours bookmaker, mais il les chroniques +révèle en effet l’une des pires qui soit… officie à présent auprès de ses pairs jiugwaai. + + + de l’étrange + Un spectre affamé est affligé d’une faim et Il prend les paris sur un combat clandestin +d’une soif dévorantes et presque inextinguibles. entre deux démons, sur l’identité de l’héri- +Cet état provoque une souffrance atroce et de tier de tel ou tel esprit-animal influent, sur le +nombreux ngogwai sombrent dans la démence. prochain fantôme qui se fera exorciser par un +Un tel fantôme présente une apparence à la fat si (en s’arrangeant toujours pour qu’il ne +fois ridicule et effrayante : sa peau craquelée s’agisse pas de lui), etc. Il est devenu un vi- +témoigne de sa déshydratation extrême, sa tête sage connu dans la communauté surnaturelle +se balance au bout d’un cou un peu trop long et interlope et sa grande gueule le dessert autant + + + + + étrangetés chroniquées +bien trop étroit (ne pouvant laisser passer qua- qu’elle contribue à sa réputation. Lorsque le +siment aucune nourriture) tandis que son ventre ngogwai réalise un gain substantiel, sa faim +présente un ostensible renflement. Certains ont dévorante semble disparaître pour plusieurs +même la bouche cousue. jours – ce qui le pousse à prendre de plus + Un ngogwai ne dispose que de trois sources en plus de risques… jusqu’au moment où il +de sustentation : la fumée des bâtonnets d’en- arnaquera le mauvais jiugwaai. +cens que de miséricordieux citoyens laissent +brûler à cette intention, la viande avariée et Niveau de Menace : Apprenti +l’eau qui ruisselle du toit des temples. Certains Capacité de Nuisance : Adversaire / Allié +spectres affamés devenus fous s’en prennent Aptitude physique : 1 +aux humains : ils les tuent et les conservent en- Aptitude martiale : 1 (Surin) +suite dans leur repaire, attendant que leur corps Aptitude mentale : 2 +pourrisse pour pouvoir les dévorer. Plus d’un fat Aptitude sociale : 3 (Baratin) +si est ainsi déjà tombé sur de tels charniers – un Aptitude spirituelle : 2 +spectacle aussi terrifiant que répugnant. Vitalité : 4 + À Hong Kong, les spectres affamés sont mon- Hei : 8 +naie courante. La fascination des habitants de la Capacités surnaturelles : intangibilité ; +ville pour la réussite financière se mue souvent métamorphe (invisibilité) 2 ; peur (perma- +en une avidité de mauvais aloi – qui pousse à nent) 2 ; régénération 2 +écraser son prochain pour s’élever. Cette menta- +lité individualiste qui prône la compétition à tout +prix forme un terreau fertile à l’émergence de Mort-vivant (goengsi) +ngogwai. Les fat si tendent à laisser ces jiugwaai +tranquilles : après tout, ils purgent une peine di- D’après la tradition taoïste, un être humain +vine et les exorciser revient à abréger cette juste comporte trois souffles célestes, qui descendent +punition. Ce n’est que quand un spectre affamé aux Enfers après sa mort, et sept souffles ter- +s’attaque à des mortels qu’il convient d’interve- restres, qui se dissolvent dans la terre. Si les souf- +nir, après en avoir averti le Ciel par des prières. fles célestes représentent sa conscience, sa per- + Les Capacités surnaturelles les plus courantes sonnalité et son humanité, les souffles terrestres +chez les spectres affamés sont les suivantes : ne sont en revanche qu’instinct, sauvagerie et + 怪 Intangibilité ; voracité animale. Il arrive qu’un souffle terrestre + 怪 Métamorphe (invisibilité) ; s’incarne dans un cadavre (et pas forcément celui + 怪 Peur (permanent) ; dont il vient à l’origine), qui se transforme alors + 怪 Régénération. en un corps habité par un esprit affamé – sans + conscience ni intelligence. On nomme une telle + créature morte-vivante goengsi. + Mark Sung, bookmaker Il existe plusieurs manières pour un goengsi + de venir au monde. En premier lieu, la naissance + Petit voyou dans la vie, petit voyou dans peut être spontanée : une forte concentration de + la mort. Quand il gérait des paris illégaux, cadavres reposant en un lieu de grand malheur + Mark Sung n’hésitait jamais à arnaquer ses (comme un champ de bataille) finit presque tou- + clients et à faire tabasser les mauvais payeurs jours par donner naissance à de tels zombies. Il + par des gros bras. Par amour de l’argent, il se est ensuite possible d’animer un cadavre grâce + montrait capable des pires bassesses. Un jour, à un sort de nécromancie, forçant un souffle + il tenta d’escroquer la mauvaise personne et terrestre à habiter un corps défunt. Enfin, la + se retrouva truffé de plomb. En punition de morsure d’un goengsi transmet la malédiction : + sa misérable existence, il fut alors changé en la victime est atteinte d’une maladie mystique + ngogwai – mais ne perdit aucune de ses dé- qui, si elle la tue, la transforme à son tour en + plorables habitudes. mort-vivant dès la nuit suivant son trépas. + + + 369 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Un tel jiugwaai présente l’aspect d’un ca- + davre rigide – ce qui explique que certains se + déplacent par bonds successifs, leurs jambes + Les nœuds + ne parvenant plus à se plier. Sa chair grise + présente des taches de putréfaction bleuâtres, + d’Énergies nÉfastes + d’impressionnantes canines lui poussent hors de Tout événement, toute action laisse des + la bouche et ses ongles s’allongent en griffes traces. Positives ou négatives, celles-ci finissent + aiguisées. Le goengsi est aveugle et repère les en général par disparaître sans guère influen- + vivants par leur souffle – retenir sa respiration cer leur environnement. Mais il arrive que des + est un bon moyen de passer inaperçu quand une choses si tragiques se déroulent en un lieu qu’il + telle créature rôde dans les parages… À l’instar s’y développe un nexus de souffles délétères, + de bien des revenants, ce zombie ne supporte s’agrégeant en une force immatérielle ayant + pas la lumière du soleil qui le brûle cruellement. un impact concret sur les esprits mortels qui + À Hong Kong, les naissances spontanées de le côtoient. De la même manière, des endroits + goengsi sont peu courantes – mais il en survient où des émotions négatives perdurent durant un + encore parfois (dans le charnier d’un monstre temps suffisamment long engendrent de telles + anthropophage, au sein d’une maison-cage où anomalies. + des migrants sans le sou meurent de faim dans Les géomanciens nomment ces accumula- + l’indifférence générale, sur les lieux d’un règle- tions de Yin des nœuds d’énergie néfaste. Il ne + ment de compte entre triades, etc). La plupart s’agit pas de réels jiugwaai : ce ne sont pas des + des morts-vivants que croisent les fat si ont été entités conscientes, mais leur action reste bien + créés par un sorcier ou un jiugwaai, qui les uti- concrète. Les humains qui subissent l’influence + lise comme chair à canon. d’un nœud d’énergies néfastes finissent tou- + Les goengsi présentent tous le même profil jours par voir leur personnalité s’altérer – dé- + technique, quel que soit le corps qu’ils animent : sespoir, colère, agressivité s’accroissent ainsi + peu à peu. Ces nexus Yin attirent également à + Niveau de Menace : Apprenti eux des spectres et des mauvais esprits qui se + Capacité de Nuisance : Sbire mettent à hanter l’endroit, apportant encore + Aptitude physique : 3 (Bond) plus de danger. + Aptitude martiale : 2 La façon dont un nœud d’énergies néfastes + Aptitude mentale : 0 affecte le caractère des mortels à sa portée dé- + Aptitude sociale : 0 pend en grande partie de l’émotion dont il est + Aptitude spirituelle : 0 né. Sur un quai où une dizaine de migrants sont + Vitalité : 12 morts de faim dans un container laissé à l’aban- + Hei : 0 don, cela peut être la peur ou le désespoir ; dans + Capacités surnaturelles : arme (ongles et un entrepôt où a eu lieu l’exécution de plusieurs + dents) 2 ; peur (permanent) 2 ; protection (ri- hommes d’une triade, la haine et la vengeance + gidité cadavérique) + 2 ; régénération 2 dominent ; etc. + Morsure maudite : si un goengsi parvient À Hong Kong, il existe des milliers de ces + à mordre un mortel (et à lui infliger au moins nœuds d’énergies néfastes – trop pour que les + 1 dégât), il lui transmet une maladie mys- fat si puissent les éliminer tous. Généralement, + tique destinée à le transformer à son tour en ils dissipent les plus gros et les plus dangereux + mort-vivant une fois qu’il aura perdu tous ses dès que l’occasion se présente, mais aucun géo- + points de Zing. Cette maladie est une source mancien n’aurait l’ambition de tous les trouver + de dégâts physiques récurrents dotée d’une pour les neutraliser un par un. D’autant qu’il + valeur de 3 ; 5 réussites aux jets de l’Aspect s’en forme sans arrêt, partout ! Ce phénomène + privilégié de la victime permettent d’en guérir fait, hélas, partie du quotidien, malgré les soucis + et la fréquence de ces jets est de 1 par jour. qu’il engendre… + En termes de jeu, un nœud d’énergies né- + fastes est à considérer comme une source de + dégâts spirituels récurrents. Sa capacité d’in- + fluence se mesure à sa valeur : 1 pour un nexus + dont les murmures sont presque inaudibles, 5 + pour un confluent de Yin capable d’altérer du- + rablement une personnalité. La fréquence du jet + d’Aspect privilégié visant à résister à la perte de + San dépend elle aussi de la puissance du nœud : + tous les mois quand il est léger, tous les 6 crans + d’initiative si sa densité se révèle étouffante. + + +370 + Chaque fois qu’un PJ perd au minimum 1 point vouloir l’épouser dès qu’il aurait gagné suffisam- les chroniques +de San sous l’effet de son exposition à un nœud ment d’argent – et bien sûr, la naïve le crut. Mais + + + de l’étrange +d’énergies néfastes, son caractère est subtile- quand le financier devint assez riche, il se maria +ment altéré en fonction de l’émotion concentrée avec la fille d’un directeur de banque. Il annonça +– ce changement n’est que temporaire, mais il cette nouvelle à la prostituée après une dernière +peut amplifier un sentiment déjà bien ancré (une nuit dans la chambre… La jeune femme s’y tran- +rancœur, de la colère, etc.) et ainsi provoquer cha les veines après les adieux de son amant. +des réactions épidermiques. Depuis, tous ceux qui passent une nuit dans + Concernant les PNJ, ne sont affectés que cette chambre se réveillent avec au cœur une +ceux dont l’Aptitude spirituelle est inférieure à sensation de profonde dépression – l’impression + + + + + étrangetés chroniquées +la valeur du nœud d’énergies néfastes. Le MJ d’avoir le cœur brisé et de ne rien pouvoir faire +peut bien sûr utiliser des points de sa Tin Ji pour le réparer, quand bien même ils seraient +pour augmenter ou diminuer cette Aptitude afin parfaitement heureux en mariage. Ce sentiment +qu’un PNJ se retrouve immunisé ou affecté par les poursuit toute la journée et certains font une +cette influence. tentative de suicide le soir même – quant aux + autres, leurs décisions se trouvent altérées par + l’émotion qui les envahit (les poussant à rompre, + La chambre du cœur brisé par exemple). + + Dans un hôtel de passe de Sham Shui Po, Valeur : 3 +se trouve une chambre où un drame se déroula Fréquence du jet d’Aspect privilégié : +voilà déjà quelques années. Une prostituée avait toutes les heures +l’habitude de s’y rendre avec un client régulier Sentiment suscité : dépression amoureuse +– un jeune trader alors en pleine ascension. Le +jeune homme lui assurait être amoureux d’elle et + Nœud d’Énergies néfastes + incarné (gamzing) + Un nœud d’énergies néfastes attire + immanquablement à lui divers jiugwaai. Et il arrive + parfois que l’un d’entre eux se lie au phénomène + et en devienne une incarnation. Cela concerne + en général des créatures qui ont perdu presque + toute personnalité et errent sans but – comme un + fantôme se dissolvant dans le néant ou un esprit + maléfique sans conscience, qui se raccroche à + une source de Yin pour subsister. Lorsque cela + arrive, on assiste à la naissance d’une dangereuse + entité personnifiant une émotion violente. + On appelle cette créature un gamzing (es- + prit-sentiment) et son existence se voue dès lors + à agir dans le sens de l’émotion qui pulse au + cœur du nœud d’énergies néfastes. Si un gam- + zing possède une certaine autonomie, il ne peut + guère s’éloigner de son point de naissance de + plus d’un pâté de maisons. Il s’en prend aux + mortels à sa portée afin de dérober leur souffle + pour nourrir et renforcer son nœud d’énergies + néfastes d’attache. Il n’est pas rare que de tels + esprits-sentiments règnent sur un petit gang de + jiugwaai influençables, en partageant le Yang + récolté avec eux. Dans ce genre de cas, il arrive + que des créatures dont le territoire est menacé + par un esprit-sentiment et ses sbires s’associent + à des fat si pour régler le problème. + À Hong Kong, les gamzing sont courants, + mais leur incapacité à se restreindre et à faire + des compromis limite la durée de leur existence. + + + 371 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Qu’ils piétinent les plates-bandes d’un jiugwaai Phil Mok + susceptible ou attirent l’attention d’un exorciste + à force de s’en prendre aux mortels du quartier, Niveau de Menace : Apprenti + et ils seront l’objet d’une traque impitoyable. Capacité de Nuisance : Adversaire + Certains parviennent à survivre en s’entourant Aptitude physique : 1 (Discrétion) + de serviteurs à même de les protéger, formant Aptitude martiale : 1 (Poignard) + ainsi de petites, mais dangereuses, organisations. Aptitude mentale : 2 + Les Capacités surnaturelles les plus cou- Aptitude sociale : 3 + rantes chez les gamzing sont les suivantes : Aptitude spirituelle : 2 (Histoire de + 怪 Absorption de Yang (distance courte) ; fantômes) + 怪 Intangibilité ; Vitalité : 4 + 怪 Peur (permanent) ; Hei : 8 + 怪 Possession ; + 怪 Régénération. + + + + + Tony Meng, assoiffé de sang + Les dÉmons (mo) + De manière générale, les créatures que l’on + Tony Meng était déjà un monstre de son nomme démons sont les habitants naturels + vivant, un meurtrier exécutant ses pauvres vic- du Deijuk. Sujets des Dix Rois des Enfers qui + times avec une abjecte cruauté. Quand la po- règnent sur l’après-vie, ils occupent une fonction + lice vint chez lui pour l’arrêter, il s’enfuit et fut claire qui modèle leur nature : torturer les âmes + abattu dans une petite allée. Son esprit tordu des défunts afin de les punir des péchés com- + ne pouvait pas trouver le repos, aussi devint-il mis de leur vivant avant qu’elles n’obtiennent + un fantôme – un état qui ne fit qu’accroître sa le droit de se réincarner. Cela explique la raison + folie. Mais même sous cette forme, il finit par pour laquelle les démons sont des êtres ayant + s’étioler par manque de souffle Yang. Simple la cruauté et la malveillance chevillées au corps + spectre translucide sur le point de s’éteindre, – leur nature même les y destine. + il se trouva attiré par un nœud d’énergies né- L’écrasante majorité des démons vivent dans + fastes situé dans la cave d’un vieil immeuble le Deijuk, où est leur place. Mais certains par- + de Mongkok. Y reposaient les restes des vic- viennent à s’échapper dans le monde des vivants + times d’un tueur aussi impitoyable que l’avait – que ce soit par accident ou par un acte volon- + été Tony Meng – qui s’incarna alors en un taire. Cela peut arriver de plusieurs manières. + gamzing animé par la soif de sang. Des lieux de grande souffrance où règnent la + Le tueur mortel – un dénommé Phil Mok – mort et le désespoir forment parfois un passage + vénère à présent l’esprit-sentiment qui occupe entre les Enfers et la Terre : un démon égaré ou + sa cave comme une divinité. Il capture des proies en recherche d’une telle porte peut ainsi péné- + et les lui amène afin qu’il les vide de leur souffle trer dans le monde des vivants. Des sorciers ou + Yang et renforce encore le nœud d’énergies né- d’autres jiugwaai invoquent parfois des démons + fastes de la cave. À présent, c’est tout l’immeuble afin d’en faire des serviteurs. Il arrive même que + qui se trouve sous son influence et les occupants des fantômes se livrant à des actes de plus en + commencent à se montrer de plus en plus hos- plus atroces se transforment en démons – per- + tiles – n’hésitant pas à en venir aux mains au dant leur nature humaine au passage. + moindre désaccord. Ce n’est plus qu’une ques- Dans tous les cas, un démon qui se retrouve + tion de temps avant qu’un drame ne survienne… parmi les mortels cède à ses atavismes – en + Niveau de Menace : Initié s’en prenant à eux, torturant et tourmentant + Capacité de Nuisance : Adversaire sans guère plus de motivation que son essence + Aptitude physique : 1 profonde. Mais à mesure que le temps passe, + Aptitude martiale : 2 (Poignard) nombreux sont ceux qui parviennent à dépasser + Aptitude mentale : 2 cette condition. De tels démons acquièrent des + Aptitude sociale : 2 (Intimidation) objectifs propres (régner sur une organisation + Aptitude spirituelle : 3 de jiugwaai, amasser richesses et pouvoir, explo- + Vitalité : 4 rer les plaisirs de la société, etc.) et s’emploient + Hei : 12 à les accomplir – ne renonçant que rarement + Capacités surnaturelles : absorption de à leur caractère malveillant et leurs méthodes + Yang (distance courte) 3 ; intangibilité ; peur violentes. + (permanent) 3 ; possession 3 ; régénération 2 Il existe de nombreux types de démons, dont + Art martial : Jeet Kune Do (Le poing qui les apparences varient, mais restent toujours + intercepte, Briser le rythme) particulièrement effrayante : corps de géant, + + +372 + tête animale, fourrure épaisse, crocs et griffes, Les Capacités surnaturelles les plus cou- les chroniques +peau rouge ou bleue, tentacules, cornes, etc. rantes chez les gwai caai sont les suivantes : + + + de l’étrange +Même si certains savent changer d’apparence 怪 Absorption de Yang (distance courte) ; +pour mieux se fondre parmi les humains, il reste 怪 Arme (crocs) ; +toujours un détail chez eux qui met mal à l’aise 怪 Don inné (Torture) ; +(comme une odeur). 怪 Immortalité ; + La catégorie des démons est trop variée pour 怪 Peur (permanent). +que l’on puisse distinguer de réels points com- +muns entre ses divers représentants. Toutefois, +il est certain que leur place est aux Enfers et Je Maan, cadre aux dents longues + + + + + étrangetés chroniquées +non sur Terre – leur présence parmi les mortels +provoque des dégâts dans l’ordre cosmique et Arrivé depuis peu dans notre monde, +les fat si se doivent donc de les éliminer dès que Je Maan a rapidement rejoint les Cornes du +possible. La liste fournie présente les espèces Deijuk : une petite organisation criminelle te- +de démons les plus courantes, mais n’est pas nue par un démon nommé Gwei Lo Gwai et +exhaustive. située à Sham Shui Po. Ancien comptable au + sein de l’Enfer des Tortures muettes, Je Maan + se révéla rapidement un élément-clé de cette + fonctionnaire infernal mafia : capable d’utiliser un boulier mystique + avec grand talent, il permet à son boss de blan- + (gwai Caai) chir l’argent issu de ses activités illégales sans + laisser de traces – ni écrites ni informatisées. + Les fonctionnaires infernaux forment le type Mais du fait de sa nature, il lui est difficile +de démons le plus courant aux Enfers. Ils sont de se contenter de cette position par trop +ceux qui accueillent les âmes humaines et super- discrète et subalterne à son goût. Je Maan +visent les tortures qui leur sont infligées pour se rêve en leader d’une section entière des +une plus ou moins longue période. Occupant une Cornes du Deijuk et chaque fois qu’il constate +haute position dans la hiérarchie démoniaque, l’incurie des cadres de Gwei Lo Gwai, sa co- +les gwai caai disposent d’une autorité que les lère et son impatience augmentent. Mais le +autres démons reconnaissent et acceptent – parrain ne souhaite pas le placer dans une po- +même dans notre monde. Les fonctionnaires sition si exposée et préfère le garder auprès +infernaux se distinguent par leur peau rouge de lui – en sécurité. Avec quelques alliés, le +ou bleue, les cornes qui leur saillent du front comptable infernal projette donc de détour- +(une ou deux), leurs crocs prononcés et leur ner suffisamment de butin pour monter sa +haute stature. Aux Enfers, ils portent une tenue propre organisation – au sein de laquelle il +mandarinale, mais sur Terre, ils affectionnent n’aura de compte à rendre à personne. +de porter d’élégants costumes qui leur donnent +l’air des mafieux qu’ils aspirent à devenir. Niveau de Menace : Initié + Cela explique que les fonctionnaires infer- Capacité de Nuisance : Adversaire +naux prennent souvent un poste de leader dans Aptitude physique : 2 +les organisations plus ou moins légales que for- Aptitude martiale : 1 +ment les jiugwaai. Et du fait de leurs penchants Aptitude mentale : 3 (Comptabilité) +cruels, ils se sentent parfaitement à leur aise Aptitude sociale : 2 (Autorité) +dans les cartels surnaturels de la communau- Aptitude spirituelle : 3 (Deijuk) +té occulte. Qu’ils soient chefs de gang, cadres Vitalité : 8 +d’une triade ou même parrains, ils exercent leur Hei : 12 +pouvoir avec brutalité et écrasent sans pitié Capacités surnaturelles : absorption de +ceux qui osent s’opposer à eux. Yang (distance courte) 2 ; arme (crocs) 2 ; + À Hong Kong, les gwai caai se savent en don inné (Torture) ; immortalité ; peur (per- +terrain ennemi. Ils ont conscience que les fat si manent) 2 +voient en eux des cibles prioritaires et que les +jiugwaai les plus intégrés ne tolèrent qu’à peine +leur présence. Aussi s’empressent-ils d’offrir Gwei Lo Gwai +leurs services à une organisation à même de les +protéger en leur octroyant pouvoir et influence. Il s’agit d’un démon ancien et dangereux +Les plus ambitieux créent d’ailleurs eux-mêmes (Niveau de Menace : Renommée, Capacité de +leur propre clan. Dans tous les cas, les fonction- Nuisance : Boss) – cf Le Kit de découverte de +naires infernaux sont particulièrement actifs Hong Kong – Les Chroniques de l’Étrange pour +dans le milieu du crime surnaturel. son profil et sa description. + + + 373 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + a pour le moment occasionné plus de dépit + Mogwaai que de satisfaction, mais parfois, l’un de ses + subordonnés lui ramène quelque chose d’in- + Les mogwaai sont d’insignifiants esprits téressant. Petit à petit, Jau Hung s’est consti- + démoniaques qui s’incarnent dans des corps tué une modeste bibliothèque mystique dans + temporaires constitués de boue, afin de se livrer laquelle il espère bien découvrir le secret de + à leurs tours cruels. Placés tout au bas de la la puissance. + hiérarchie démoniaque, ils en conçoivent une + vive amertume et se vengent en s’en prenant Niveau de Menace : Apprenti + aux êtres vivants qu’ils croisent. Peu dangereux Capacité de Nuisance : Adversaire + quand ils sont seuls, les mogwaai ont donc ten- Aptitude physique : 1 + dance à former des meutes comportant jusqu’à Aptitude martiale : 2 + une vingtaine d’individus. Ils se terrent le plus Aptitude mentale : 1 + souvent dans les bas-fonds de Hong Kong, où Aptitude sociale : 1 (Autorité) + ils tuent de petits animaux (chiens, chats, etc.) Aptitude spirituelle : 2 (Alchimie) + pour le plaisir – mais il arrive qu’ils s’attaquent Vitalité : 4 + aussi à des enfants isolés. Hei : 8 + Les mogwaai vivent sous le contrôle de dé- Capacités surnaturelles : arme (griffes + mons ou d’esprits-animaux plus importants et crocs) 2 ; peur (permanent) 2 ; protection + – ils servent alors d’yeux et d’oreilles, portent (boue) + 1 + des messages ou font le guet. Personne ne leur + confierait de mission importante, tant ils sont + stupides et prompts à la déconcentration, mais Esprit dÉmoniaque (Ok mo) + ils forment une chair à canon aisément sacri- + fiable. Leur apparence de lutins aux dents acé- Un ok mo est un démon qui ne possède pas + rés et aux yeux brillants suffit à susciter la peur ou plus de corps, et n’existe donc qu’à l’état + chez les humains. d’esprit désincarné. Peut-être a-t-il perdu son + À Hong Kong, la population de mogwaai enveloppe en arrivant dans le monde des vivants + reste sous le joug de jiugwaai plus évolués. ou peut-être vivait-il déjà sous cette forme aux + Incontrôlables sinon, ces petits démons se Enfers – nul ne le sait vraiment. Mais du fait + laissent aller à leurs mauvais penchants dès de cet état, un tel démon se montre avide de + qu’on leur en laisse l’occasion. Les fat si s’em- goûter aux plaisirs physiques (sexe, nourriture, + ploient à exterminer tous ceux qu’ils débusquent. alcool, etc.) et cherche donc pour cela des corps + Les Capacités surnaturelles les plus cou- mortels à posséder. + rantes chez les mogwaai sont les suivantes : Plutôt indépendants et ne fréquentant guère + 怪 Arme (griffes et crocs) ; les autres jiugwaai, les ok mo ne désirent rien + 怪 Peur (permanent) ; d’autre que de jouir sans entrave – et qu’im- + 怪 Protection (boue). porte qui ils blessent au passage. Leur besoin + de s’incarner est si puissant qu’il les pousse à + passer de corps en corps afin de rester le moins + Jau Hung, nabot ambitieux possible sous une forme immatérielle. Il n’est + pas rare qu’ils laissent dans leur sillage une traî- + Le mogwaai nommé Jau Hung est une ano- née de souffrance, car peu leur importent les + malie au sein de son espèce. Plus intelligent conséquences de leurs actes… + que la moyenne – sans doute grâce à son âge À Hong Kong, il est difficile d’estimer la + vénérable de sept ans –, il ne souhaite pas population des ok mo. Rien ne les distingue + continuer à passer son existence sous les vraiment des humains lorsqu’ils possèdent un + ordres d’autres créatures surnaturelles. Mais corps. Seul leur comportement permet de les + il sait que sa faiblesse le condamne à ne ja- démasquer – et encore, de nombreux mortels + mais pouvoir s’émanciper – aussi s’emploie-t- partagent le goût pour l’hédonisme de ces dé- + il à trouver un moyen de gagner en pouvoir. mons ! Heureusement, les exorcistes disposent + Son choix s’est porté sur la magie, grâce à en général des sorts nécessaires pour révéler + laquelle il espère transcender son statut et leur réelle nature. + devenir un véritable démon digne de ce nom. Les Capacités surnaturelles les plus cou- + Possédant quelque autorité sur les mo- rantes chez les ok mo sont les suivantes : + gwaai qui le connaissent, Jau Hung les envoie 怪 Possession ; + lui dérober parchemins et manuscrits anciens 怪 Intangibilité (uniquement sous leur forme + sur lesquels sont inscrites des formules à demi spirituelle). + effacées. La bêtise des lutins démoniaques lui + + +374 + Fa Siu les chroniques + Animal dÉmoniaque + de l’étrange + Fa Siu est une ok mo dont le vice princi- +pal est un amour immodéré pour l’alcool. Dès (deoi sam) +qu’elle parvient à posséder un corps, elle se +rend dans un bar et s’y saoule de son mieux. Un deoi sam est un animal dans lequel se +Elle apprécie particulièrement faire la tournée trouve piégé un esprit démoniaque – soit par +des établissements dans le quartier Central, accident, soit parce qu’un sorcier ou un jiugwaai +entraînant à sa suite de nombreux employés l’a voulu ainsi. La personnalité du démon ain- +désireux de fêter la fin d’une journée de dur si emprisonné se dissout dans celle de la bête + + + + + étrangetés chroniquées +labeur. Elle n’a rien non plus contre une bonne – aussi s’agit-il d’un sort particulièrement cruel. +bagarre et son comportement tantôt agressif, L’animal démontre alors un comportement plus +tantôt aguicheur, est prompt à en déclencher agressif et son apparence s’émaille de traits +partout où elle passe. surnaturels qui ne laissent planer aucun doute + Bien entendu, le modus operandi de Fa sur sa nature (taille accrue, crocs allongés, re- +Siu – s’il peut paraître inoffensif au premier gard intense, pattes déformées, excroissances +abord – sème le malheur. Plusieurs des per- osseuses, etc.). +sonnes dont elle a possédé le corps sont Les deoi sam servent essentiellement de chiens +tombées dans un coma éthylique après une de garde à des démons ou des esprits-animaux +folle nuit de beuverie. Les plus chanceux s’en – et certaines triades les emploient également +sortent avec des lésions cérébrales, quand les de cette manière. Ils gardent un lieu spécifique +autres meurent. De la même façon, les rixes et ne laissent approcher que des individus triés +que déclenche l’ok mo font du dégât – maté- sur le volet – attaquant tous les autres. Il arrive +riel et humain. Mais elle n’a cure de tout cela également qu’un chef d’organisation utilise un +et veut juste continuer à profiter de ses nuits animal démoniaque comme « garde du corps » +d’ivresse à Hong Kong… – mais cela ne s’avère ni discret ni prudent. + À Hong Kong, les deoi sam sont presque + Niveau de Menace : Initié toujours des créations volontaires – vendues à + Capacité de Nuisance : Adversaire des jiugwaai qui en ont l’usage. Leur apparition + Aptitude physique : valeur de celle du spontanée s’est fait de plus en plus rare, mais on +corps qu’elle possède recense encore quelques cas dans les Nouveaux + Aptitude martiale : valeur de celle du Territoires. Les médias parlent alors d’une bête +corps qu’elle possède sauvage commettant des dégâts, mais un fat si + Aptitude mentale : 3 précautionneux ira toujours vérifier ce qu’il en + Aptitude sociale : 3 est réellement… + Aptitude spirituelle : 2 Les Capacités surnaturelles les plus cou- + Vitalité : valeur de celle du corps qu’elle rantes chez les deoi sam sont les suivantes : +possède 怪 Arme (griffes, crocs, cornes, queue barbe- + Hei : 8 lée, etc.) ; + Capacités surnaturelles : don inné (Mains 怪 Peur (permanent) ; +Nues) ; don inné (Séduction) ; intangibilité 怪 Protection (fourrure épaisse, carapace, +(uniquement sous sa forme spirituelle) ; pos- plaques osseuses, etc.) ; +session 4 怪 Régénération. + Art martial : Boxe de l’Ivresse (Chuter du +ciel, La lame s’envole) + + + + + 375 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Good Boy, molosse protecteur + Démon-gardien + À l’origine un puissant mastiff, Good Boy + est désormais un animal démoniaque créé par (gaamwujan mo) + une sorcière à la demande de Carrie Suet, une + femme ayant récemment subi une violente Importants fonctionnaires infernaux, les + agression dans le quartier de Yau Ma Tei. démons-gardiens se reconnaissent à leur tête + Effrayée à l’idée d’être de nouveau la cible animale. Leur mission prioritaire est de garder + d’une telle attaque, elle ne sort de chez elle certaines portes ou de protéger certains lieux + qu’accompagnée par le deoi sam qu’elle a dans les Enfers – ils se révèlent en effet d’effi- + acheté. Elle se sent rassurée quand le chien caces vigies grâce à leurs sens développés. Les + marche à ses côtés et que la foule s’écarte plus fameux d’entre eux sont Tête de Cheval et + craintivement sur son chemin. Gueule de Bœuf, qui se tiennent devant l’entrée + Mais Carrie Suet n’a pas réellement du Deijuk depuis des milliers d’années. Mais il + conscience de ce qu’est Good Boy. Pour le en existe bien d’autres qui surveillent une porte + moment, le molosse fait preuve de discipline ou un couloir, qui gardent une pièce de stockage + grâce à un dressage strict, mais il ne va plus ou un bureau, etc. + tarder à tester les limites de sa maîtresse Un gaamwujan mo possède un corps + – jusqu’à ce qu’il parvienne à reprendre sa humanoïde puissamment charpenté surmonté + liberté. Et un tel deoi sam errant dans les rues d’une tête d’animal. Les plus fréquemment + de Hong Kong représente un véritable danger représentés sont le bœuf, le cheval ou le porc, + pour les innocents… mais l’on trouve aussi des faciès de vautour, + de serpent ou d’araignée. Cette particularité + Niveau de Menace : Initié fait que des fat si inexpérimentés peuvent les + Capacité de Nuisance : Adversaire confondre avec un sauzing sous forme hybride. + Aptitude physique : 3 (Course) Les démons-gardiens partagent tous un besoin + Aptitude martiale : 3 (Morsure) irrépressible de protéger ou garder un lieu + Aptitude mentale : 1 – c’est la tâche que leur nature profonde leur + Aptitude sociale : 1 impose. + Aptitude spirituelle : 2 À Hong Kong, les gaamwujan mo sont les dé- + Vitalité : 12 mons que l’on rencontre le plus fréquemment. + Hei : 8 Bien que leur physique les empêche de passer + Capacités surnaturelles : arme (griffes et inaperçus, leurs services sont très appréciés au + crocs) 3 ; peur (permanent) 2 ; protection (pe- sein de la communauté surnaturelle ou dans le + lage épais) + 2 ; régénération 3 milieu criminel. Un démon-gardien trouvera fa- + cilement un emploi de videur de boîte de nuit, + de garde du corps d’une personnalité impor- + Carrie Suet tante ou de portier devant un hôtel hébergeant + des jiugwaai. Bien qu’ils soient redoutés, leur + Niveau de Menace : Profane présence s’avère paradoxalement rassurante. + Capacité de Nuisance : Adversaire Les Capacités surnaturelles les plus courantes + Aptitude physique : 1 chez les gaamwujan mo sont les suivantes : + Aptitude martiale : 1 怪 Arme (crocs, cornes, etc.) ; + Aptitude mentale : 2 怪 Peur (permanent ou action) ; + Aptitude sociale : 2 怪 Régénération. + Aptitude spirituelle : 1 + Vitalité : 4 + Hei : 4 + + + + +376 + Charlie Fei, Bien que la plupart des cimei vivent de façon les chroniques + libre et indépendante, un nombre significatif + psychologue pour défunts + + de l’étrange + d’entre eux se trouve sous les ordres de jiu- + Possédant une tête de loup, Charlie Fei gwaai plus puissants. À la façon des deoi sam, ils + est un démon-gardien plutôt paisible qui a su servent alors d’animaux de garde et protègent + trouver sa place à Hong Kong. Son métier de des lieux bien spécifiques. Leur capacité à se + veilleur de nuit à la morgue de Kwai Chung fondre dans la nature leur assure une discrétion + Public Mortuary lui permet de passer des à toute épreuve dans leur mission. + nuits tranquilles à lire, dans une atmosphère À Hong Kong, on ne trouve que peu de cimei. + de recueillement. Grâce à un esprit-renard Quelques-uns rôdent parfois au sein des collines + + + + + étrangetés chroniquées + lui ayant enseigné l’art de la métamorphose boisées des Nouveaux Territoires, mais comme + en remboursement d’une vieille dette, le ils croisent rarement le chemin des mortels, on + gaamwujan mo est capable de prendre visage ignore le plus souvent leur présence. Ceux qui + humain – bien que celui-ci se révèle fort laid. vivent dans les parcs de la ville sont les plus + Ce qui explique qu’il puisse occuper un em- susceptibles d’être capturés et dressés par les + ploi dans un établissement public sans rela- autres jiugwaai. Du fait de leur rareté, ils font + tion avec la communauté des jiugwaai. l’objet d’un juteux marché noir dans la commu- + Oreille attentive, Charlie Fei sait écouter nauté surnaturelle. + et il faut bien avouer que les fantômes aiment Les Capacités surnaturelles les plus cou- + parler. Nombreux dans cette morgue, ils rantes chez les cimei sont les suivantes : + confient leurs regrets et espoirs au démon- 怪 Arme (crocs, griffes, etc.) ; + gardien qui sait trouver les mots pour 怪 Peur (permanent) ; + les rassurer quant à leur destin après-vie 怪 Protection (bois, terre, etc.) ; + – facilitant leur transition. Il connaît ainsi 怪 Régénération. + de nombreuses anecdotes confiées par ces + spectres temporaires et se montre prêt à les + partager avec des fat si acceptant de payer Zoeng, singe revanchard + pour ce service. + Zoeng est un vieux cimei à la forme simiesque. + Niveau de Menace : Initié Il vit au sein du Sai Kung Country Park, d’où + Capacité de Nuisance : Adversaire / Allié il observe les nombreux randonneurs qui s’y + Aptitude physique : 2 promènent. Il déteste voir des mortels traverser + Aptitude martiale : 1 (Bâton) son territoire, mais il les craint et n’ose guère + Aptitude mentale : 3 (Surveillance) s’en prendre à eux. Tout juste essaie-t-il de leur + Aptitude sociale : 2 jouer de vilains tours, ce qui donne à son petit + Aptitude spirituelle : 2 (Deijuk) domaine la réputation d’être hanté. Mais loin + Vitalité : 8 d’effrayer les gens, cette renommée les attire + Hei : 8 bien au contraire et Zoeng se désespère de voir + Capacités surnaturelles : arme (crocs) 3 ; sa tranquillité de plus en plus perturbée. + métamorphe (change-forme) 2 ; peur (action) En conséquence, le singe démoniaque envi- + 3 ; régénération 2 sage de réunir d’autres cimei sous son autorité, + Art martial : Bâton de la Double-peau de afin d’attaquer les humains en masse pour les + Tigre (Le tigre mord deux fois, Briser le crâne chasser définitivement. Évidemment, la créa- + du tigre) ture ne comprend pas qu’un tel acte ne fera + qu’attirer l’attention des fat si et se révélera à + terme très préjudiciable pour elle et ses alliés… + DÉmon des montagnes Niveau de Menace : Apprenti + et forÊts (cimei) Capacité de Nuisance : Adversaire + Aptitude physique : 2 (Acrobaties) + Proche des mogwaai, les cimei sont de pe- Aptitude martiale : 2 +tits démons qui hantent les bois et les reliefs. Aptitude mentale : 1 +Leur apparence physique est celle d’un animal Aptitude sociale : 1 +(comme un singe, un renard ou un blaireau) Aptitude spirituelle : 2 +constitué de terre, de branches et de mousse. Vitalité : 8 +Agressifs et animés d’un instinct grégaire, ces Hei : 8 +démons s’en prennent à quiconque pénètre sur Capacités surnaturelles : arme (canines) +leur territoire. Leur intelligence dépasse rare- 2 ; peur (permanent) 2 ; protection (corps de +ment celle d’une bête sauvage. bois) + 2 ; régénération 2 + + + 377 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + monstre amasse donc de nombreuses richesses + Les monstres dans son repaire et veille jalousement dessus. + Bien des récits racontent comment des hommes + (jiumat) fortunés parvinrent à apprivoiser un peijau et à + l’utiliser comme gardien de leur trésor. + Ne venant ni des Cieux ni des Enfers, il À Hong Kong, des jiugwaai particulièrement + existe encore une grande quantité de créatures avides agissent de même. Payant des chasseurs + sauvages, étranges et déroutantes aux yeux de monstres afin d’obtenir un peijau, ils confient + des mortels, car elles ne sont ni humaines ni à ces créatures la protection d’un trésor important + animales, et ne semblent pas non plus être des – qui peut être un artefact mystique, d’importants + démons. De façon générale, ces êtres sont quali- dossiers ou un otage précieux. Tant qu’un peijau + fiés de monstres, et ils sillonnent les montagnes, reçoit suffisamment d’or pour se nourrir convena- + les forêts, les océans, les lacs et les rivières. blement, il n’a aucune raison de regagner sa liberté + Les jiumat évitent généralement les zones où et veille sur ce qui lui a été confié avec attention. + se concentrent les mortels – comme les villes. Les Capacités surnaturelles les plus cou- + Autant dire que Hong Kong constitue un re- rantes chez les peijau sont les suivantes : + poussoir pour la grande majorité d’entre eux ! 怪 Arme (corne, crocs et griffes) ; + Lorsqu’ils se trouvent dans la cité, c’est bien 怪 Peur (permanent) ; + souvent contre leur gré. En tant que raretés, 怪 Protection (fourrure épaisse) ; + de nombreux monstres attisent la convoitise de 怪 Vol. + jiugwaai désireux d’accroître leur prestige en en + exhibant un dans leur collection privée. Les fat + si n’apprécient que peu ce genre d’initiative, car Le peijau de Madame Zyu + un jiumat parvenant à s’échapper en plein cœur + d’un quartier peuplé de Hong Kong représente Esprit-araignée ambitieuse, Madame Zyu + un danger non négligeable… est l’une des innombrables filles de Wang Lou + Toutefois, les exorcistes ne traquent pas acti- – la Grande Tisseuse. Elle a quitté le domaine + vement les monstres, en premier lieu car il s’en de sa mère depuis de nombreuses années déjà + trouve peu dans la ville mais surtout parce qu’ils et compte bien créer sa propre organisation + ne représentent pas une offense envers l’ordre criminelle au sein de Hong Kong. Si elle reste + céleste – à la façon des fantômes ou des démons. encore discrète, elle avance ses pions un à + Bien entendu, dès lors qu’un jiumat s’attaque à un – notamment en entraînant dans son lit + des humains, il devient une cible toute désignée. de puissants jiugwaai, afin de se créer une + La catégorie des monstres est trop variée progéniture d’exception à même de l’assister + pour que l’on puisse distinguer de réels points dans sa conquête du pouvoir. + communs entre ses divers représentants. La Madame Zyu a aménagé une vaste cave + liste de jiumat fournie en présente quelques sous sa villa de Shek O, où se trouvent entre- + exemples, mais ne prétend pas à l’exhaustivité : posés ses œufs. Un peijau veille sur ce précieux + il existe bien d’autres espèces de monstres, dont trésor, dormant sur un tas d’or, de jade et de + certaines n’ont plus été aperçues en Chine de- rubis. Son pelage blanc est strié de rayures + puis bien des siècles. noires, qui lui donnent l’apparence d’un tigre + sacré. La sauzing traite le monstre avec beau- + coup de soin et s’assure qu’il ait toujours de + Peijau quoi se nourrir – ce qui lui coûte assez cher. + Mais une fois ses enfants venus au monde, elle + Un peijau est une chimère au corps de lion et à compte revendre le peijau afin de se refaire. + la tête de dragon dont dépasse une unique corne de + keileon. Recouvert d’une fourrure blanche et grise, Niveau de Menace : Initié + il arbore également une paire d’ailes et présente Capacité de Nuisance : Adversaire + un aspect majestueux qui évoque un fauve céleste Aptitude physique : 4 (Vol) + – ce qui n’a rien d’un hasard. En effet, d’après cer- Aptitude martiale : 2 (Griffes) + taines légendes, les peijau vivaient jadis dans les Aptitude mentale : 1 (Perception) + Cieux, mais l’un d’entre eux commit un péché et Aptitude sociale : 1 + tous furent alors chassés par l’Empereur de Jade Aptitude spirituelle : 2 + – qui maudit l’espèce tout entière. Vitalité : 16 + Que cette histoire soit vraie ou non, les peijau Hei : 8 + semblent en effet sous le coup d’une sorte de Capacités surnaturelles : arme (griffes, + malédiction qui les empêche de se nourrir d’autre crocs, corne) 3 ; peur (permanent) 3 ; protec- + chose que d’or ou de pierres précieuses. Un tel tion (fourrure épaisse) + 3 ; vol + + +378 + Madame Zyu évoquent en effet les « 81 Frères » qui œuvrent les chroniques + au retour de leur maître Ci Jau – mais il ne + + + de l’étrange + Niveau de Menace : Initié s’agit encore que de vagues bruits et aucun + Capacité de Nuisance : Boss membre de la communauté surnaturelle ne sou- + Aptitude physique : 2 haite évoquer le sujet… + Aptitude martiale : 1 Les essaims de taotie (composés d’environ + Aptitude mentale : 2 cinq têtes volantes à traiter comme un seul PNJ) + Aptitude sociale : 2 (Intimidation) présentent tous le même profil technique : + Aptitude spirituelle : 3 (Mythologie) + Vitalité : 8 Niveau de Menace : Apprenti + + + + + étrangetés chroniquées + Hei : 12 Capacité de Nuisance : Sbires + Capacités surnaturelles : absorption de Aptitude physique : 1 (Vol) + Yang (au contact) 3 ; arme (chélicères et toile / Aptitude martiale : 1 (Morsure) + distance moyenne) 2 ; don inné (Escalade) ; Aptitude mentale : 1 + Immortalité ; métamorphe (change-forme) 4 ; Aptitude sociale : 1 + peur (action) 2 ; protection (carapace) 2 ; ve- Aptitude spirituelle : 3 (Ci Jau) + nin (spirituel) 3 Vitalité : 20 + Hei : 12 + Capacités surnaturelles : arme (dents) 2 ; + Taotie (toutit) peur (permanent) 3 ; vol + + À l’origine, les taotie sont des mortels ayant +fait le mauvais choix : celui de se dresser contre Femme-requin (gaaujan) +l’Empereur Jaune aux côtés de leur divinité Ci +Jau – qui régnait sur les peuples du sud de la Si quelques traditions folkloriques dé- +Chine. Après la défaite de ce dieu-démon, le peignent les gaaujan comme des servantes des +souverain décida que ses serviteurs devaient rois-dragons, mieux vaut éviter de les répé- +tous subir le même sort : comme Ci Jau avait ter à ces divinités colériques ! En réalité, ces +reçu un coup de sabre lui ayant tranché la tête femmes-requins ne sont que des monstres qui +au niveau de la bouche, ses suivants furent tous hantent les abysses et remontent à la surface +alignés et les bourreaux firent leur office en pour dévorer des pêcheurs imprudents. D’après +leur infligeant une semblable « décapitation ». une légende, les larmes des gaaujan se trans- +Maudits par le Ciel, ceux que l’on appellerait forment en perles d’une grande pureté – ce qui +désormais les taotie ne périrent pas, mais explique que, de tout temps, des mortels avides +durent poursuivre leur existence sous la forme aient tenté d’en capturer. Mais les fat si doutent +de têtes volantes dépourvues de mâchoire infé- même que ces créatures cruelles soient capables +rieure. Ces créatures pathétiques s’inscrivirent de pleurer… +dès lors au sein d’une tradition artisanale L’apparence de ces jiumat mêle une beauté +folklorique : elles devinrent des ornementa- troublante à des caractéristiques typiques des +tions décorant les vases tripodes – gargouilles requins : leur corps grisâtre est fuselé, conçu +de bronze destinées à écarter les souffles pour une nage rapide, tandis que leurs dents et +maléfiques et parfois surnommées « dragons leurs griffes peuvent déchiqueter la chair et que +gloutons ». leurs branchies leur permettent de respirer sous + Les taotie sont des monstres grotesques : l’eau. Amphibies, les gaaujan n’hésitent pas à +de simples têtes tranchées dont la partie in- rôder autour des ports pour y guetter une proie. +férieure n’est que dents pointues, capables de Leurs cheveux semblables à des algues leur +voler grâce à leurs oreilles en forme d’ailes de fournissent un parfait camouflage et, quand on +chauve-souris. Se déplaçant en essaims meur- remarque leur présence, c’est souvent qu’il est +triers, ils s’en prennent à quiconque se trouve déjà trop tard. +sur leur chemin et laissent un sillage de mort À Hong Kong, de nombreuses femmes-requins +et de destruction derrière eux. Même les autres sillonnent les eaux qui séparent les différentes +jiugwaai les méprisent et les craignent, car ils îles de la région. La ville est en effet un archipel +ne peuvent les contrôler. disposant de nombreux ports – qu’il s’agisse + À Hong Kong – et où que ce soit en Chine, d’immenses quais industriels ou de simples vil- +d’ailleurs –, personne n’a vu de taotie depuis lages de pêcheurs. Les gaaujan n’hésitent jamais +bien des siècles. Nombreux sont ceux qui ne à mettre pied à terre pour s’emparer d’un mortel +croient plus guère à leur existence ou qui les à dévorer – un marin rentrant tard de son travail, +estiment disparus. Pourtant, quelques fat si ont un sans-abri endormi à l’ombre d’un entrepôt, +récemment entendu parler d’eux. Des rumeurs un couple d’amoureux venu observer la mer, etc. + + + 379 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Les Capacités surnaturelles les plus cou- des terres, elle tue ses clients et ramène leur + rantes chez les gaaujan sont les suivantes : cadavre dans son repaire sous-marin pour les + 怪 Arme (dents et griffes) ; dévorer. + 怪 Don inné (Natation) ; Prudente, Juk Lyun n’assassine pas systé- + 怪 Peur (action) ; matiquement les touristes qu’elle embarque. + 怪 Protection (peau). Cela éveillerait trop de soupçons. Elle se + contente d’un gros repas toutes les deux ou + Elles présentent également une caractéris- trois semaines – et ce depuis plusieurs mois + tique spécifique : déjà. Pourtant, elle a remarqué que des in- + 怪 perle mystique : la perle en laquelle une dividus la tenaient à l’œil… Fat si ou autres + larme de femme-requin se transforme per- jiugwaai n’appréciant guère ses méthodes ? + met à son porteur de respirer sous l’eau Dans le doute, la gaaujan prévoit de changer + comme s’il se trouvait à la surface. prochainement d’activité. + + Niveau de Menace : Apprenti + Juk Lyun, guide touristique Capacité de Nuisance : Adversaire + Aptitude physique : 3 (Natation) + Certains jiugwaai démontrent une redou- Aptitude martiale : 2 + table intelligence dès lors qu’il s’agit de se Aptitude mentale : 1 + livrer à leurs pires instincts – et Juk Lyun est Aptitude sociale : 1 (Commerce) + de ceux-là. Cette gaaujan a monté sa petite Aptitude spirituelle : 2 + affaire de tourisme et propose – pour un coût Vitalité : 12 + fort modique – de faire visiter l’archipel de Hei : 8 + Hong Kong sur un élégant canot à moteur. Capacités surnaturelles : arme (dents et + Afin de ne pas effrayer les mortels, elle excelle griffes) 2 ; don inné (Natation) ; peur (action) + à se déguiser et passe pour une humaine au + 3 ; protection (peau) 2 + physique assez disgracieux. Une fois éloignée + + +380 + Le singe blanc profite de ce mépris géné- les chroniques + Singe blanc (gwat jyun) ralisé pour se livrer à ses horribles habitudes + + + de l’étrange + en toute discrétion. Il a noué un pacte avec + Un singe blanc est un monstre prédateur Nick Zung, un passeur qui fait entrer illégale- +parmi les pires qui soient. Ses mœurs particu- ment des Philippins à Hong Kong : le mortel +lièrement lubriques l’amènent à kidnapper de fournit quelques jeunes femmes au gwat jyun +jeunes femmes, dont il abuse des jours durant, à chaque arrivée, en échange de quoi Sankei +avant de finalement les dévorer. Doté d’un Bolaan lui sert d’homme de main occasionnel +impressionnant don de métamorphose, il sait – quand il faut remettre un rival à sa place +prendre bien des apparences afin d’approcher ou encaisser des dettes qui tardent à être + + + + + étrangetés chroniquées +ses proies, puis d’échapper aux conséquences de remboursées. Cet arrangement reste dans +ses actes. Même les autres jiugwaai méprisent l’ombre, hors de vue de la police ou des fat si +cet être violent et ils ne voient aucun problème pour le plus grand bénéfice du jiugwaai. +à aider un fat si dans sa traque si nécessaire Niveau de Menace : Initié +– ou du moins à ne pas lui mettre de bâton dans Capacité de Nuisance : Adversaire +les roues. Aptitude physique : 3 (Acrobaties) + Sous leur forme native, les singes blancs Aptitude martiale : 2 +présentent l’apparence d’un puissant simien à la Aptitude mentale : 1 +fourrure immaculée. Un regard jaunâtre reflète Aptitude sociale : 2 (Manipulation) +leur immense cruauté tandis que des canines Aptitude spirituelle : 3 +surdéveloppées déforment leur sourire en une Vitalité : 12 +grimace déviante. Animés d’une force supé- Hei : 12 +rieure, leurs bras démesurés leur permettent de Capacités surnaturelles : arme (canines) +démembrer ceux qui osent s’en prendre à eux. 2 ; métamorphe (déguisement) 4 ; peur (ac- +Ce sont des monstres redoutables, mais qu’au- tion) 3 ; protection (muscles puissants) + 2 +cun exorciste ne laissera jamais en vie s’il en a +l’opportunité. + À Hong Kong, on ne dénombre heureusement Nick Zung +que quelques gwat jyun et chaque fois que l’un +d’entre eux est repéré, fat si et jiugwaai hono- Niveau de Menace : Profane +rables allient leurs forces pour mettre fin à son Capacité de Nuisance : Adversaire +existence. Seuls les plus audacieux des singes Aptitude physique : 2 +blancs osent encore établir un repaire en ville, Aptitude martiale : 2 +comptant sur leur puissance et leur capacité à Aptitude mentale : 1 +disparaître pour profiter de la vie urbaine et de Aptitude sociale : 2 (Baratin) +tous les plaisirs qu’elle peut leur apporter… Aptitude spirituelle : 1 + Les Capacités surnaturelles les plus cou- Vitalité : 8 +rantes chez les gwat jyun sont les suivantes : Hei : 4 + 怪 Arme (canines) ; + 怪 Métamorphe (déguisement) ; + 怪 Peur (action) ; + 怪 Protection (muscles puissants). + Ogre (Losaat) + De stature colossale, l’ogre chinois est une + créature traditionnelle des contes et légendes. + Sankei Bolaan, ordure prédatrice Souvent pris pour un démon, il ne vient cepen- + dant pas des Enfers – il s’agit bel et bien d’un + Sankei Bolaan a très vite compris que monstre qui hante les campagnes du pays. D’une + chercher ses proies parmi les citoyennes de intelligence limitée, il n’a pour seul objectif que + Hong Kong lui attirerait immanquablement son prochain repas – et il est friand de chair + des ennuis. Aussi décida-t-il de jeter son dé- humaine, consommée si possible vivante. + volu sur une population ignorée de la ville : Des cheveux rouges, une peau sombre, des + les migrantes en provenance des Philippines yeux verdâtres et de puissants crocs : les lo- + et à la recherche d’une vie meilleure. Femmes saat présentent une apparence terrifiante. Leur + de ménage, servantes, nourrices, etc., elles puissance physique en fait de redoutables ad- + occupent des emplois certes indispensables, versaires, mais leur esprit fruste les condamne + mais globalement invisibles – et rarement te- à ne pouvoir survivre seuls à l’époque moderne + nus en haute estime. Et quand l’une d’elles – c’est la raison pour laquelle ils tombent le + disparaît… eh bien, sans doute est-elle re- plus souvent sous la coupe de jiugwaai plus + tournée au pays. malins. + + + 381 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + À Hong Kong, les ogres servent d’hommes de + main au sein d’organisations criminelles surna- + turelles. Obéissants tant qu’ils sont nourris (s’ils + Autres Êtres + apprécient la chair humaine par-dessus tout, ils + savent se contenter de viande animale), leur + surnaturels + force de frappe peut faire la différence lors d’un Il existe bien des êtres fabuleux que l’on ne + conflit territorial. Leur intellect inférieur em- peut guère classer parmi les jiugwaai : divini- + pêche que des missions complexes leur soient tés incarnées, messagers célestes, etc. appar- + confiées – leurs employeurs les apprécient sur- tiennent aussi à la faune surnaturelle que l’on + tout pour leurs muscles. peut croiser à Hong Kong. De telles entités ne + Les Capacités surnaturelles les plus cou- sont pas les ennemies des fat si – ce qui ne + rantes chez les losaat sont les suivantes : signifie pas qu’elles soient forcément leurs al- + 怪 Arme (crocs) ; liées. Elles poursuivent leurs propres objectifs et + 怪 Peur (action) ; mettent les moyens pour y parvenir. Mais le plus + 怪 Protection (muscles puissants). souvent, ces créatures évitent de bouleverser + l’ordre céleste afin de ne pas attirer sur elles + le regard des dieux supérieurs – elles préfèrent + Ban Daan, gros bras trop ambitieux passer des pactes mutuellement profitables avec + les exorcistes afin de bénéficier d’une certaine + Ban Daan est aussi stupide que la plupart liberté d’action en échange de services divers. + des losaat – son problème étant qu’il s’ima- Ces êtres inclassables occupent en général + gine au contraire être un génie. Il souffre d’un des positions de pouvoir ou d’influence à Hong + réel complexe de supériorité qui l’empêche Kong : ils règnent sur une cour de jiugwaai à + de se satisfaire de sa position au sein de la leurs ordres, à l’instar des rois-dragons, ou bien + petite organisation de Pui Gan, le fameux ils font le lien entre le monde céleste et la sphère + zyuzing. D’autant que l’esprit-cochon ne met des mortels, comme les tinneoi – sans même + pas vraiment ses compétences à profit : il se parler des immortels qui mènent leur existence + contente d’utiliser l’ogre pour intimider ses à leur étrange façon, sans se préoccuper de la + rivaux et lui interdit de laisser libre cours à sa marche du monde. Compter de telles créatures + sauvagerie. Ban Daan en ressent une intense parmi ses contacts est un immense avantage + frustration. et un véritable privilège pour des fat si – qui + C’est pourquoi il n’ambitionne rien moins sont ainsi en relation directe avec certains des + que de prendre la place de son patron. Pour membres les plus importants de la communau- + cela, il a mis au point un plan d’une telle té surnaturelle de la ville. + idiotie qu’il pourrait bien réussir – tant il se Cette catégorie se montre bien trop variée + révèle imprévisible de bout en bout. Le losaat pour que l’on puisse distinguer de réels points + est parvenu à convaincre quelques-uns de ses communs entre les divers êtres qui la com- + semblables de lui prêter main-forte le moment posent. La liste suivante en présente plusieurs + venu et, si son projet a tout de même peu de exemples, mais ne prétend pas à l’exhaustivité. + chances d’aboutir, il affaiblira la position de + Pui Gan face à ses concurrents. + Roi-dragon (lungwong) + Niveau de Menace : Initié + Capacité de Nuisance : Adversaire Jadis d’importantes divinités, les rois- + Aptitude physique : 4 dragons régnaient sur tous les territoires situés + Aptitude martiale : 2 (Massue) notamment en bordure des lacs et des rivières. + Aptitude mentale : 1 Intermédiaires entre le monde des mortels et + Aptitude sociale : 1 celui des dieux, ils étaient vénérés par le peuple + Aptitude spirituelle : 2 qui les priait afin de faire pleuvoir ou au contraire + Vitalité : 16 d’arrêter les inondations – le climat appartenant + Hei : 8 à leur sphère d’influence. La Chine comptait + Capacités surnaturelles : arme (crocs) 2 ; alors une multitude de lungwong – dont les plus + peur (action) 3 ; protection (muscles puis- puissants régnaient sur les quatre mers (ceux- + sants) + 2 ci vivaient dans des palais de nacre et de jade + bâtis au fond de l’océan) tandis que les moins + importants n’étendaient pas leur influence au- + delà du puits d’un village ou du ruisseau d’une + petite forêt. + + + +382 + De nos jours, les lungwong ont dû renoncer les chroniques +à une grande part de leur superbe. L’abandon Zi Sau + de l’étrange +progressif des anciennes croyances et leur relé- +gation au rang de simples superstitions suite au Connu sous son titre de Zau Wong il y a de +Grand Bond en avant orchestré par Mao en Chine cela bien des millénaires, Zi Sau fut le dernier +continentale les ont forcés à l’exil. Les plus in- empereur de la dynastie Shang. Il débuta son +telligents sont toutefois parvenus à s’adapter au règne sous les meilleurs auspices : sage et avisé, +monde moderne en mettant à profit leur ascen- il parvenait à convaincre même ses détracteurs +dant sur les jiugwaai pour asseoir leur autorité grâce à son art de la rhétorique. Hélas, il tom- +sur de nouvelles communautés, plus en phase ba sous le charme d’une maléfique wuleizing à + + + + + étrangetés chroniquées +avec la société actuelle. Bien des lungwong se la beauté sans pareille, mais dont l’esprit cruel +sont ainsi transformés en entrepreneurs, pro- exerça une influence délétère sur le souverain. +ducteurs, parrains du crime ou même en conseil- Une inévitable décadence s’empara de la cour +lers politiques – des positions d’influence grâce et le peuple, négligé, connut de bien sombres +auxquelles ils renouent avec leur gloire passée. années. Nombre de monstres et de démons en + À Hong Kong, les rois-dragons peuvent être profitèrent pour ravager l’empire. +considérés comme les véritables dirigeants de la Inquiets, les dieux célestes dépêchèrent cer- +communauté surnaturelle. Bien peu de jiugwaai tains d’entre eux afin d’enrayer ce fléau. Une +disposent de la puissance nécessaire pour riva- véritable guerre s’engagea alors entre les di- +liser avec eux – la Grande Tisseuse et quelques vinités et les forces obscures contrôlées par la +doyens parmi les sauzing peut-être. Chacun wuleizing – ce conflit est d’ailleurs relaté dans le +d’eux dispose d’un domaine plus ou moins im- classique de la littérature chinoise L’Investiture +portant et y mène ses affaires afin de gagner en des dieux. Finalement, Zau Wong fut détrôné et +influence et en pouvoir. Les fat si cherchent sou- la dynastie Shang connut une fin amère avant +vent à s’attirer leurs bonnes grâces, car un lun- d’être remplacée par la lignée des Zhou qui ne +gwong bien disposé facilite considérablement le prit fin qu’avec l’unification de la Chine. +travail – de par son autorité et les informations Malgré toutes ses turpitudes, Zau Wong ac- +dont il dispose. En effet, même si leurs terri- céda au monde céleste – en tant qu’empereur, il +toires ont changé de nature et que leur prestige en avait le droit. Mais, afin de le tourner en dé- +s’est bien amoindri par rapport à leur âge d’or, rision et en un hommage cruel à ses nombreux +les rois-dragons règnent encore à Hong Kong. vices, l’Empereur de Jade le nomma dieu de la + Il est inutile de fournir les caractéristiques sodomie – un titre bien peu glorieux selon les +chiffrées d’un roi-dragon. Ces êtres se tiennent conceptions sociales d’alors. Endurant la honte +au sommet de la hiérarchie des divinités ter- des millénaires durant, Zau Wong en eut fina- +restres et possèdent des capacités ineffables, lement assez et se dit qu’il serait mieux parmi +presque au-delà de l’imagination. Aucun mortel les mortels. Reprenant son nom de naissance, Zi +ne peut espérer leur tenir tête. Sau s’installa à Hong Kong dans le plus grand + Si un lungwong devait devenir l’ennemi des secret afin de mener une existence débarrassée +PJ, trouver un moyen de le vaincre serait alors de la honte. +tout l’enjeu de la campagne – dénicher un vieux Cependant, les habitudes ont la vie dure. Doté +rituel, mettre la main sur un artefact céleste, d’un esprit luxurieux, Zi Sau a fondé une mai- +s’allier à un être de puissance comparable, etc. son de production de contenu pornographique. + + Ngou Jyun, marraine des stars + Parfaitement intégrée à la société hongkongaise, la reine-dragon Ngou Jyun s’est peu à peu + éloignée de la communauté surnaturelle pour diriger ses affaires parmi les mortels. Fondatrice + de la HK Hopestars, une agence spécialisée dans la représentation de jeunes artistes en vogue + (comédiens, chanteurs et mannequins principalement), elle possède ses entrées dans le milieu du + showbiz de la ville et commence à grignoter des parts de marché en Chine continentale. Sa société + est en pleine ascension, car un grand nombre de ses poulains remporte un franc succès. + Même si elle se tient à distance des autres jiugwaai, Ngou Jyun reste une créature de magie. + C’est ainsi que son entreprise emploie tout un service de devins, qu’elle charge de prédire le futur + succès de ses protégés – elle mise alors sur les plus prometteurs en les mettant au maximum en + avant. Ses voyants l’avertissent également lorsqu’un danger menace un artiste sous contrat (fan + obsessionnel, pensées suicidaires, accident, etc.) et il lui arrive alors d’embaucher des fat si pour + le protéger. + Niveau de Menace : Divinité + Capacité de Nuisance : Boss + + + 383 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Films, jeux vidéo, sessions de camgirls, romans + ou bandes dessinées : l’ancien dieu baigne dans Fée cÉleste (Tinneoi) + un milieu de stupre où l’amoralité ne constitue + pas l’exception – bien qu’il évite de tremper Parmi les divinités, les fées célestes font + dans des affaires trop louches (il se tient à dis- office de servantes. Elles sont notamment + tance de la prostitution, notamment). Il emploie les dames de compagnie de Sai Wongmou, la + des sauzing (essentiellement des renardes et Reine-Mère de l’Ouest – égale de l’Empereur de + des serpentes) afin de fournir des spectacles Jade. Immortelles à la beauté incomparable, les + de choix à une clientèle triée sur le volet. Zi tinneoi peuvent aller et venir à leur gré entre la + Sau lui-même mène une vie dissolue : il hante sphère divine et le monde des humains – grâce + les clubs libertins de la ville et goûte à toutes à leur manteau en plumes de grue. Les contes + les expériences sexuelles possibles, au cours de populaires ne se montrent pas avares en récits + nuits enfiévrées. narrant la romance entre un mortel et une fée + Zi Sau n’est pas une mauvaise personne. Il est céleste – la plus fameuse étant celle du Bouvier + certes esclave de ses pulsions, mais il ne cherche et de la Tisserande. + pas à faire de mal. Devenu un richissime homme Bien qu’elles aient le rang de servantes + d’affaires, il habite dans un immense penthouse parmi les dieux, les tinneoi restent des entités + à Sha Tin (une ville des Nouveaux Territoires) célestes de grand pouvoir. Émissaires, elles se + qui abrite chaque soir des fêtes orgiaques. De rendent en général sur Terre pour y délivrer + par ses fréquentations, Zi Sau possède une des messages aux mortels. Elles ne craignent + grande connaissance des milieux interlopes de alors qu’une seule chose : qu’on leur dérobe + Hong Kong – ce qui peut faire de lui un contact leur manteau en plumes de grue, ce qui les + précieux. empêcherait de retourner dans le monde des + Il est inutile de fournir les caractéristiques dieux. + chiffrées de Zi Sau. Divinité incarnée, il possède À Hong Kong, les fées célestes sont en + une puissance céleste qui le met hors d’atteinte, contact régulier avec les fat si. Elles leur portent + même des rois-dragons. Autant dire qu’un des ordres de mission de la part d’une déité ou + simple mortel – fût-il un fat si – n’aurait aucune d’une autre, ou bien leur fournissent des infor- + chance face à lui dans un combat. Le seul moyen mations cruciales – mais ne peuvent guère plus + de s’en débarrasser serait de convaincre un dieu s’impliquer. Toutefois, il n’est pas rare qu’elles + supérieur à lui (Tin Hau, par exemple) qu’il n’a vivent des idylles avec les exorcistes à qui elles + pas sa place à Hong Kong et qu’il en perturbe sont venues apporter un message. Bien des + l’harmonie. tinneoi se laissent influencer par l’ambiance + moderne de Hong Kong et s’habillent ainsi à + Niveau de Menace : Divinité la dernière mode, arborent des tatouages ou + Capacité de Nuisance : Boss exhibent d’audacieux piercings. Le manteau de + plumes de grue présente de moins en moins + l’apparence d’une cape traditionnelle pour se + voir préférer des blousons ou des accessoires + bien plus dans le move. + UN PEU DE CONTEXTE Les Capacités surnaturelles les plus cou- + Si le titre de « dieu de la sodomie » octroyé jadis rantes chez les tinneoi sont les suivantes : + à Zi Sau devait sonner comme une punition honteuse, 怪 Don inné (Séduction) ; + c’est en raison des mœurs patriarcales de la Chine 怪 Protection (aura céleste) ; + antique – où l’homosexualité, bien que tolérée, n’était 怪 Régénération. + pas considérée d’un très bon œil par les gens d’alors. + Dans une société où prolonger sa lignée comptait plus Les fées célestes possèdent le pouvoir aussi + que tout, l’idée d’une sexualité ne permettant pas la rare que précieux de passer à leur convenance + conception d’enfants apparaissait en effet comme une du monde céleste au terrestre – à condition + hérésie. qu’elles portent leur manteau en plumes de + Cette vision archaïque perpétuée par des divi- grue. Si celui-ci leur était volé, elles se retrouve- + nités plutôt conservatrices ne reflète en aucun cas raient coincées et pourraient alors faire l’objet + les opinions des auteurs, illustrateurs et éditeurs de d’un ignoble chantage en vue de le récupérer. + Hong Kong – Les Chroniques de l’Étrange, pour qui + le respect envers les orientations sexuelles, politiques + et religieuses de tous les êtres humains s’avère une + priorité non négociable. + + + + +384 + Ruby Jin Jin Depuis, ce colossal corps sans tête – mais les chroniques + dont le visage hideux apparaît sur le torse – + + + de l’étrange + Véritable prodige de la pop cantonnaise, hante les champs de bataille du monde des + Ruby Jin Jin reste un mystère aux yeux des hommes et s’y livre à une incessante orgie de + journalistes du showbiz. Ses concerts ne sont massacres. S’en prenant aussi bien à un camp + jamais programmés à l’avance, mais annoncés qu’à l’autre, il n’est obsédé que par son besoin + la veille de leur tenue – généralement dans des de faire couler le sang. Immortel, Jing Tin se + bars ou des boîtes à la mode. Ses fans restent relève de toutes les blessures afin de se rendre + attentifs à toutes les informations concernant sur les lieux d’un nouveau conflit dès lors qu’il + ses apparitions et cette incertitude contribue en a terminé avec le précédent. + + + + + étrangetés chroniquées + grandement à son succès : la voir se produire À Hong Kong, ce monstre inhumain poursuit + donne le sentiment d’assister à un événement son œuvre. Mais il s’est adapté à l’époque + unique. Sa musique se trouve gratuitement moderne, remisant sa vieille hache au placard + sur internet et ses disques ne sont en vente pour lui préférer des armes à feu bien plus + que sur les lieux de ses concerts, au moment efficaces. Désormais, Jing Tin se mêle aux + de la représentation. conflits territoriaux entre triades et participe + Ruby Jin Jin est une fée céleste qui – lors aux guerres de gangs qu’il contribue même + de ses venues sur Terre – aime chanter et parfois à provoquer. Rien ne lui plaît plus que de + danser devant son public. L’enthousiasme de se retrouver au beau milieu d’une fusillade entre + ses admirateurs la galvanise et chacun de ses la police et des gangsters – où il sème encore + shows brille de mille feux, restant à jamais plus de confusion en abattant des membres des + gravé dans le cœur des chanceux présents. deux camps. + Après ses concerts, la tinneoi invite dans sa + loge les fat si qu’elle a pu identifier dans la Niveau de Menace : Accompli + foule et leur donne diverses informations, que Capacité de Nuisance : Adversaire + ce soit sur le monde céleste ou sur ce qui Aptitude physique : 4 + se passe à Hong Kong. De nature charmeuse, Aptitude martiale : 3 (Hache, Pistolet, + elle pourrait ne pas rester insensible aux at- Fusil) + traits de l’un ou l’une des PJ… Aptitude mentale : 2 (Stratégie) + Aptitude sociale : 1 + Niveau de Menace : Accompli Aptitude spirituelle : 3 (Temps mythiques) + Capacité de Nuisance : Adversaire / Alliée Vitalité : 16 + Aptitude physique : 3 (Danse) Hei : 12 + Aptitude martiale : 1 Capacités surnaturelles : immortalité ; + Aptitude mentale : 2 peur (permanent) 3 ; régénération 4 + Aptitude sociale : 4 (Chant) + Aptitude spirituelle : 3 (Monde céleste) + Vitalité : 12 + Hei : 12 + Capacités surnaturelles : don inné + Mortels initiÉs + (Séduction) ; protection (aura céleste) + 4 ; À l’instar des fat si, il existe bien des mortels + régénération 4 amenés à côtoyer la faune surnaturelle de la cité. + Qu’ils pratiquent la magie ou non, ils connaissent + l’existence des jiugwaai et la réalité de leurs + Jing Tin pouvoirs. Fêtards amateurs de sensations fortes, + sorciers aux fréquentations occultes, criminels + À l’époque du règne de l’Empereur Jaune, faisant affaire avec des démons ou simples éru- +on raconte que vivait un combattant terrifiant dits désireux d’en apprendre le plus possible +nommé Jing Tin. Héros pour certains, guerrier sur le côté mystique de Hong Kong, tous ces +sanguinaire pour d’autres, il était de toutes les humains partagent cet exceptionnel secret sur +batailles, au point que sa soif de massacres ne la réalité du surnaturel dans la ville. Leurs ob- +fit plus aucun doute. À mesure qu’il terrifiait la jectifs peuvent différer, mais cette connaissance +population, les plaintes de ses sujets alertèrent interdite permet de les qualifier d’initiés. +le souverain mythique – qui prit les armes Avec un pied dans chaque monde, ces mor- +pour aller l’affronter. Le duel s’avéra terrible, tels peuvent viser divers objectifs. Certains pro- +mais Jing Tin ne put rien contre la noblesse fitent de cette position pour gagner argent ou +et l’expérience martiale de l’Empereur Jaune. influence, par exemple en devenant des intermé- +Décapité, le guerrier subit alors la malédiction diaires entre les deux sociétés. Qu’ils servent de +des Cieux. messagers entre les triades et les organisations + + + 385 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + criminelles tenues par des démons, qu’ils tra- Les sorciers occupent des emplois parfaitement + vaillent pour la police en assurant un lien avec admis et font souvent partie des ordres taoïstes + des clans de jiugwaai acceptant cette collabo- ou bouddhistes. Les mages corrompus sont plus + ration ou qu’ils jouent les informateurs au ser- rares, mais il en existe bel et bien – après tout, + vice des fat si, ils savent tirer avantage de leur disposer d’un tel pouvoir donne envie de l’utili- + connaissance de la facette occulte de Hong Kong. ser pour son propre profit… + D’autres ne cherchent qu’à accroître leur savoir Les mou savent utiliser la magie à l’instar des + concernant le surnaturel sans en tirer vraiment fat si. + profit – si ce n’est sur le plan de la curiosité in- + tellectuelle. Ceux-là deviennent des érudits dont + la fréquentation peut se révéler un bel avantage Laureen Zoeng, + pour un groupe d’exorcistes. Certains veulent esthéticienne roublarde + appartenir corps et biens au monde occulte et + apprennent à pratiquer la magie pour s’y creu- Alors qu’elle était encore adolescente, + ser une place. Enfin, il en est encore d’autres qui Laureen Zoeng fut initiée à l’alchimie par sa + ont mis le pied dans la communauté surnaturelle grand-tante – qui officiait en tant que rebou- + par accident et qui aimeraient bien ne plus avoir teuse quand elle vivait encore dans un petit + à la côtoyer – mais par un étrange coup de sort, village chinois. Forte de ses connaissances, la + ils finissent toujours par se retrouver mêlés à jeune femme suivit un cursus en esthétique + des affaires plutôt bizarres… et ouvrit son propre salon. Les onguents et + Bien qu’initiés, ces mortels ne disposent pas crèmes qu’elle prépare elle-même dans son + de Capacités surnaturelles comparables à celles arrière-boutique s’avèrent d’une efficacité + des jiugwaai. Une grande partie d’entre eux pos- sans pareille et sa réputation lui attire une + sèdent cependant des connaissances étendues clientèle toujours plus nombreuse. Et pour- + en matière de magie et un nombre non négli- tant, le coût de l’immobilier à Hong Kong fait + geable sait même la pratiquer. que cela ne suffit pas – elle est constamment + au bord de la faillite. + Bien décidée à ne pas perdre ce qu’elle + Sorcier (mou) a bâti de ses propres mains, Laureen Zoeng + profite des séances de soins à ses clients pour + Le vocable de sorcier désigne toute personne leur prélever une fraction de souffle Yang + utilisant la magie sans être un véritable fat si – trois fois rien. Elle transfère ensuite cette + désigné par le Ciel (et ne possédant donc pas de énergie dans des gélules qu’elle revend aux + sanhei). Le terme n’a rien de péjoratif et il est jiugwaai qui en ont besoin, essentiellement + possible de lui substituer d’autres mots : ma- des sauzing et des mei. Ce petit trafic lui + gicien, prêtre taoïste, moine bouddhiste, etc. Il permet de redresser peu à peu ses comptes, + existe d’ailleurs sans doute plus de sorciers que mais cela a attiré l’attention de Simon Lang, + de fat si à Hong Kong et une grande majorité un fantôme avide qui compte cambrioler son + d’entre eux exercent une profession mystique. laboratoire sous peu. + Ainsi en est-il des devins qui prédisent l’avenir + aux touristes du temple de Wong Tai Sin, des Niveau de Menace : Apprenti + géomanciens qui travaillent au sein de cabinets Capacité de Nuisance : Adversaire / Alliée + d’architectes, des exorcistes qui purifient des Aptitude physique : 1 + appartements avant l’emménagement de nou- Aptitude martiale : 1 + veaux locataires, etc. Aptitude mentale : 2 + Bien entendu, il existe également des sorciers Aptitude sociale : 2 (Commerce) + qui abusent de leurs connaissances ésotériques Aptitude spirituelle : 3 (Élixirs) + – pour la richesse, la gloire ou le pouvoir. Ceux-ci Vitalité : 4 + n’hésitent pas à frayer avec la communauté sur- Hei : 12 + naturelle, à soumettre des jiugwaai ou à utiliser + des sorts de sombre réputation (issus de la nécro- + mancie ou de la malédiction, notamment). De tels IntermÉdiaire + individus constituent des adversaires redoutables + pour les fat si – car si leurs méfaits les placent Les intermédiaires sont des mortels connais- + sous la juridiction céleste, leur statut d’êtres hu- sant la vérité à propos de la communauté sur- + mains représente un obstacle à leur neutralisation. naturelle hongkongaise, et qui décident alors + À Hong Kong, les mou pullulent littérale- de se placer au point de contact entre les deux + ment. La cité possède une tradition fortement mondes. Cela leur permet de travailler aussi + ancrée et la religion populaire y reste influente. bien pour une organisation humaine que pour un + + +386 + roi-dragon, tirant profit, pour ce faire, de tout Aujourd’hui accompagné de la sezing les chroniques +le savoir dont ils disposent. Ils assurent un lien – nommée Joan Maau – dont il est tombé + + + de l’étrange +qui peut se révéler aussi dangereux que lucratif, amoureux, le travailleur social continue ses +et rare sont ceux qui arrivent à ne pas s’attirer maraudes, mais cette fois-ci en quête de sau- +d’ennuis. La position d’intermédiaire est bien zing en perdition à Hong Kong. Grâce à un +souvent précaire, mais quiconque parvient à s’y discret réseau de volontaires, il parvient à +maintenir s’attire le respect aussi bien des mor- leur fournir l’énergie Yang qui leur est néces- +tels que des créatures surnaturelles. saire. Non seulement il aide ainsi des êtres + Les motivations des intermédiaires se ré- fragiles, mais il les empêche aussi de basculer +vèlent multiples. Une grande partie d’entre eux dans une folie affamée qui les pousserait à de + + + + + étrangetés chroniquées +joue ce rôle dans le but de s’enrichir ou de ga- fatales extrémités. Joan Maau, quant à elle, +gner en pouvoir – c’est notamment le cas de assure le lien avec les diverses communautés +ceux qui mettent en lien les mafias de l’un et de sauzing, permettant l’intégration rapide +l’autre monde en espérant prélever une part de ceux repérés et secourus par Julian Po. Le +des bénéfices qui résulteront de cette funeste couple s’est ainsi attiré le respect de bien des +collaboration. Il en est qui ne cherchent que le esprits-animaux influents, qui leur assurent +frisson de l’inconnu et ces accrocs à l’adrénaline protection et financement. +vont toujours plus loin au risque de perdre leur +âme. Enfin, quelques-uns se retrouvent impli- Niveau de Menace : Apprenti +qués par hasard, mais ils cherchent sincèrement Capacité de Nuisance : Adversaire / Allié +à améliorer la situation de chacun. Ces profils Aptitude physique : 2 +variés évoluent dans un demi-monde instable et Aptitude martiale : 1 (Mains Nues) +peuvent à tout moment perdre pied – au prix de Aptitude mentale : 2 +leur santé mentale. Aptitude sociale : 2 (Empathie) + À Hong Kong, les intermédiaires disposent de Aptitude spirituelle : 3 (Exorcisme) +bonnes connaissances concernant les jiugwaai Vitalité : 8 +et leur organisation sociale au sein de la cité. Hei : 12 +Ils connaissent les principales factions surnatu- +relles, savent dans quelles affaires trempe tel +ou tel roi-dragon, et ont une bonne idée d’à qui +s’adresser pour obtenir un service ou un autre. +Ils négocient en personne et se gardent bien de +mettre les parties pour lesquelles ils travaillent +en contact direct – afin de préserver leur emploi. + Tous les intermédiaires ne sont pas initiés +à la magie, mais les plus précautionneux maî- +trisent quelques sorts utiles. + + + Julian Po, travailleur social + Lui-même un ancien sans domicile, Julian + Po dirige à présent une petite association + d’aide aux plus démunis. Avec son équipe, + il cherche des solutions de logement pour + les laissés-pour-compte et prépare des colis + alimentaires à destination de ceux qui ne + mangent pas à leur faim (comme bien des + habitants des maisons-cages de Sham Shui + Po). Un soir, alors qu’il était en maraude, il + tomba sur une jeune femme qui se jeta sur + lui et commença à absorber son souffle vital. + Heureusement, la sezing parvint à s’arrêter à + temps – le laissant affaibli sans plus de sé- + quelles. Au lieu de fuir, Julian Po engagea la + conversation avec la créature et apprit ainsi + l’existence des jiugwaai et les difficultés des + plus fraîchement arrivés à Hong Kong pour + subsister. + + + 387 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + John Wa, maître des rites + Consultant free-lance + Tout comme les intermédiaires, les consul- Jadis membre d’un gang, John Wa se + tants sont conscients de la réalité surnaturelle retrouva impliqué dans une confrontation + de Hong Kong, mais ils se gardent de trop s’im- avec des créatures surnaturelles – de simples + pliquer dans cette facette de la cité. Au lieu mogwaai qui tuèrent deux de ses frères d’armes + de cela, ils usent de leur savoir occulte pour et lui laissèrent une vilaine cicatrice sur la + conseiller différentes instances mortelles : po- joue. Ainsi initié à l’existence des jiugwaai, + lice, triades, entreprises, associations, etc. Les il décida – par peur et désir de se protéger – + connaissances qu’ils détiennent s’avérant plutôt d’en apprendre le plus possible sur ces êtres. + rares et jalousement gardées, leurs services Au fil de ses découvertes, il s’intéressa surtout + s’arrachent à prix d’or – ce qui leur permet aux divers rituels permettant de se concilier + de mener une vie confortable. Moins dange- la faveur des dieux. De fil en aiguille, il offrit + reuse que l’existence d’intermédiaire, celle de ses services à diverses triades – les aidant à + consultant recèle toutefois quelques risques : célébrer les rites les plus conformes possibles, + les informations donnent du pouvoir, mais at- comme l’intronisation d’un nouveau parrain + tirent également une convoitise parfois bien mal ou l’intégration de fraîches recrues. + intentionnée… John Wa ne cherche pas à comprendre le + La majorité des consultants se contente d’un monde occulte – et ne cherche surtout pas + employeur, mais il en existe quelques-uns qui ne à l’explorer. Le trauma résultant de sa ren- + souhaitent pas dépendre d’une seule source de contre avec les mogwaai le ronge toujours + revenu et qui multiplient donc les missions en et il espère que les centaines de rituels qu’il + free-lance. Ces mercenaires de l’information se exécute chaque année finiront par chasser + doivent d’assurer leurs arrières, mais ils s’enri- ses cauchemars. En attendant, il profite des + chissent également plus rapidement – à eux de généreux émoluments que lui versent ses + trouver l’équilibre entre prise de risque et gain clients pour assurer son confort – jouissant + financier. De toute façon, il s’agit d’une profes- d’une existence agréable dans un bel appar- + sion au sein de laquelle les imprudents font long tement des Mid-Levels. Pourtant, chaque fois + feu. Ceux qui durent s’avèrent d’aussi précieux qu’il passe devant un miroir ou que sa main se + alliés que de redoutables adversaires. promène sur sa joue, il se rappelle qu’à Hong + À Hong Kong, on trouve de très nombreux Kong la mort peut s’abattre à chaque instant. + consultants. Difficile en effet de maintenir un + total secret sur l’existence de la communauté Niveau de Menace : Initié + surnaturelle dans une telle cité, et fréquents Capacité de Nuisance : Adversaire / Allié + sont les mortels qui s’y intéressent sans pour Aptitude physique : 2 + autant chercher à y appartenir – même partiel- Aptitude martiale : 1 (Pistolet) + lement. Généralement, les consultants se spé- Aptitude mentale : 1 + cialisent : qui dans les artefacts magiques, qui Aptitude sociale : 2 (Négociation) + dans les différentes espèces de jiugwaai, qui Aptitude spirituelle : 3 (Protection, + dans la théologie concrète, etc. Cela leur per- Neutralisation) + met de créer un créneau à même d’intéresser les Vitalité : 8 + investisseurs les plus pointus et de limiter ainsi Hei : 12 + la concurrence. Arts martiaux : Gun-fu (Rester conscient, + Les consultants n’utilisent pas la magie, pré- Le cri du dragon) + férant n’avoir qu’une connaissance théorique de + tout ce qui concerne le surnaturel afin de ne pas + trop s’impliquer. + + + + +388 + les chroniques + de l’étrange étrangetés chroniquées 389 + ri o + én a +sc + n é e + n +’l au lio n i r e + d scén + ar io d + e + orig + un une idée s guil d’huis + i + dr en n + cé d’ adri e herli + inale + c + e + am r + l fichte + + l a u m sier + p r ès e c tion a i n + d’ a + r e & co + r r + r om + le ctu + re + se ils, + con + + + + + 391 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + « Mes chers élèves, il n’existe pas de Lion parmi les douze signes + du deizi. Vous est-il arrivé de vous demander pourquoi ? » + Maître Fei + Ce scénario est destiné à un groupe de fat si débutants (niveau apprenti ou initié). + L’histoire a pour cadre les festivités du Nouvel An chinois. Cette aventure permet de découvrir un + ennemi potentiellement récurrent pour vos fat si. + Les PJ enquêtent tour à tour sur deux séries de disparitions distinctes. Au début de ce scénario, + la première investigation les amène à rencontrer un fat si expérimenté en difficulté. En lui venant + en aide, ils découvrent alors que leurs affaires respectives sont liées. Ensemble, ils traqueront un + assassin, une sorcière et un ancien fat si déchu pour mettre un terme à un rituel menaçant la ville de + Hong Kong. + + + + + Acte 1 – RÉbellion + Fat si cupide, Alexander Weng se voit privé de son mandat céleste et perd son sanhei. Décidé à + se venger des dieux et des hommes, il compte libérer l’antique monstre Nin pour le lâcher sur Hong + Kong après avoir compensé ses faiblesses. + + + LE MYTHE DU NIN + Les légendes racontent qu’au début de la civilisation, une terrible créature nommée le Nin terrifiait à chaque + printemps les populations de Chine en dévorant bétail, hommes, femmes et enfants, puis – une fois repue – s’en + retournait à son sommeil pour une année. La créature se révélait si puissante que rien ni personne ne pouvait + l’arrêter. + Un jour, un vieil homme se présenta dans un village à la veille du réveil du Nin et proposa aux habitants de + chasser la créature en échange du gîte et du couvert. Les villageois acceptèrent et le vieillard leur demanda de + peindre leurs portes en rouge, d’attacher des lanternes de papier rouge dans le village, d’allumer des feux et de + se réunir afin de faire du bruit. Ils découvrirent ainsi que le Nin présentait trois faiblesses : le feu, la couleur rouge + et le vacarme. Chaque année après cela, les habitants reproduisirent ce que leur bienfaiteur leur avait appris afin + de se prémunir du retour de la créature. + Ce vieil homme se nommait en réalité Zi Wei. Conscient que le Nin ne pouvait être détruit, il créa un enchan- + tement puissant à même de le maintenir perpétuellement dans sa torpeur en le nourrissant dans ses rêves du hei + généré par la ferveur des hommes reproduisant son rituel chaque année. De nos jours, celui-ci s’avère perpétué au + travers des festivités du Nouvel An. Par cet acte civilisateur démontrant sa sagesse, Zi Wei devint l’un des Quatre + Souverains du Taoïsme assistant l’Empereur de Jade – celui qui préside à tous les phénomènes naturels. + + + + +392 + Utilisant ses connaissances du monde occulte, les chroniques +Alexander Weng prend contact avec Jau Hung, Mise en place + de l’étrange +un mogwaai ambitieux (cf p. 413) dont il connaît +l’attrait pour la magie. L’ancien fat si convainc Les PJ auront de nombreux chemins pos- +le démon de se servir de sa petite troupe de sibles pour remonter la piste les conduisant à +sbires pour dérober des ouvrages à la Hong Kong sauver la ville et les festivités du Nouvel An. +Central Library. Il lui fournit les indications lui C’est pourquoi ce scénario présente les diffé- +permettant de pénétrer dans la section occulte de rents protagonistes et lieux importants dans +la bibliothèque tandis que lui-même emploie sa leur ordre d’apparition chronologique du point +magie afin d’endormir la vigilance de l’esprit gar- de vue de l’agenda de leur adversaire, Alexander + + + + + scénario : l'année du lion +dien de ce lieu sacré. En contrepartie, Alexander Weng, plutôt que dans l’ordre imprévisible dans +exige une faveur du mogwaai afin d’effectuer un lequel les fat si préféreront s’y intéresser. +enlèvement (voir acte 2) et scelle ce pacte dans +le sang en sacrifiant l’annulaire de sa main droite +au démon afin que celui-ci soit contraint de res- Chronologie +pecter sa parole. + Se joignant au cambriolage, il met la main sur Dans ce scénario, les PJ interviennent pour +d’antiques parchemins décrivant l’enfermement la première fois quand ils sont contactés par +du Nin par l’empereur Zi Wei. Le rouleau décrit Jeffrey Chu durant l’acte 2 – Le Lion est mort +en détails comment le Nin fut jadis enfermé au ce soir (cf p. 399). De nombreux événements ont +ciel et maintenu en sommeil par un puissant en- déjà eu lieu avant ce « jour J » et d’autres se +chantement créé par son geôlier. Tous les ans, dérouleront ensuite – à moins que les PJ n’inter- +l’enchantement nourrit le Nin du hei généré par viennent pour sauver Hong Kong. +les célébrations du Nouvel An chinois – son ap- Voici les événements présentés dans l’ordre +pétit comblé, le monstre reste alors en sommeil chronologique où ils surviennent si le plan +une année de plus. Afin de le libérer, Alexander d’Alexander ne se voit pas contrecarré : +échafaude un plan ambitieux : ruiner les célé- +brations à Hong Kong pour affamer le Nin et +ainsi le réveiller. J – 90 + Pour cela, le fat si déchu compte agir de la +manière suivante : 怪 Alexander Weng refuse d’aider un village + 怪 s’attaquer aux représentations du Nin – en de pêcheurs à se débarrasser d’un jiugwaai + faisant capturer des danseurs du lion et qui dévore le fruit de la pêche de ses habi- + des fabricants de lions traditionnels par les tants, car ils ne peuvent pas le payer. Son + mogwaai à son service ; sanhei cesse de fonctionner, marquant ain- + 怪 consommer le hei d’un démon du silence si la perte de son mandat céleste. + grâce à un puissant sort visant à atténuer + le bruit sur l’ensemble de Hong Kong. Il + emploie pour cela une jeune apprentie qu’il J – 18 + a subjuguée ; + 怪 faire assassiner le fat si expérimenté qui le 怪 Alexander et Jau Hung cambriolent la Hong + traque, sans se douter qu’un autre groupe Kong Central Library. Jau Hung promet de + de fat si débutants va s’intéresser à l’af- servir Alexander Weng en échange d’une + faire par hasard. Pour cela, son apprentie – part du butin qu’il récupère et ce dernier + qui dispose de contacts dans la pègre – lui sacrifie un doigt pour signer ce pacte dans + conseille un assassin étranger ; le sang avec le démon. + 怪 appeler le Nin à Hong Kong en se servant de + la plus grande figure le représentant : Lion + Rock, une formation rocheuse en forme de J – 16 + lion située à la frontière entre Kowloon et + les Nouveaux Territoires, qui surplombe 怪 Maximilian Pang remonte la piste des + toute la ville. Le rituel complexe qui per- cambrioleurs de la bibliothèque jusqu’à + met le retour du Lion sera réalisé par les Jau Hung. Celui-ci vend Alexander Weng + danseurs et artisans eux-mêmes, possédés à Maximilian – sans donner son nom mais + par des esprits démoniaques qu’Alexander juste une description : un sorcier qui ne + aura créés. compte plus que neuf doigts. Puis Jau Hung + vend Maximilian Pang (identité et descrip- + tion) à Alexander, lui indiquant que le fat si + est venu l’interroger. + + + 393 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + J – 14 J+1 + 怪 Alexander reprend contact avec Ginny 怪 Maximilian Pang apprend que les PJ ont + Ching et commence à lui enseigner les affronté les mogwaai au temple. Il prend + bases de la magie de Domination. Il utilise contact avec eux pour les informer sur sa + la jeune femme pour les étapes les plus propre enquête concernant la bibliothèque. + importantes de sa préparation du rituel du Les PJ rencontrent un Maximilian affaibli. + retour du Nin. Les mogwaai commencent Au début, les PJ peuvent penser que ces + déjà à kidnapper quelques danseurs et ar- deux enquêtes ne sont pas liées, mais ils + tisans, mais ces disparitions ne sont pas changeront rapidement d’avis. + encore signalées aux PJ. Seule la police est + prévenue et elle ne fait pas immédiatement + le lien entre les différents enlèvements. J+2 + 怪 Deux danseurs du lion de l’école du Tigre + J–5 volant sont enlevés. La police ferme l’éta- + blissement pour les besoins de l’enquête. + 怪 Alexander manipule Ginny pour qu’elle dé- Jeffrey Chu (ou Andy Liu) appelle les PJ à + cide elle-même d’embaucher un assassin, l’aide une seconde fois – au sujet des dan- + Ken Luan, afin d’éliminer Maximilian, dont seurs cette fois. Les PJ rencontrent alors + l’enquête progresse. maître Fei et peuvent apprendre auprès + de la police que de nombreux danseurs et + artisans ont été enlevés ces derniers jours. + J–1 + 怪 Ken Luan tente d’éliminer Maximilian, qui J+3 + parvient à s’en sortir de justesse. Pour évi- + ter de se faire achever, il décide de faire 怪 Si les PJ n’ont pas encore appris l’existence + profil bas – passant pour mort aux yeux de de l’équipage muet victime d’une malédic- + l’assassin. tion via leurs recherches, Lucy Cho (une de + 怪 De son côté, Ginny utilise sa magie de leurs collègues fat si) le leur signale direc- + Domination pour envoyer les mogwaai en- tement. Ils peuvent ainsi remonter la piste + lever Andy Liu, un artisan dont le travail est d’une jarre dans laquelle a été enfermé le + lié au rituel du Nin. Celui-ci leur échappe et hei d’un démon du silence. + se réfugie dans un temple de Gwaan Dai de + Sham Shui Po. + J+4 + Jour J 怪 Nous sommes le jour du réveillon, la veille + du Nouvel An. Ginny Ching pratique le ri- + 怪 Le Nouvel An chinois aura lieu dans cinq tuel d’invocation du démon du silence et + jours. atténue le bruit sur tout Hong Kong en fin + 怪 Les PJ sont contactés par Jeffrey Chu, d’après-midi. + l’assistant d’Andy Liu, qui s’inquiète de la 怪 Ensuite, le soir venu, les ok mo (cf p. 404) + disparition de ce dernier et soupçonne une possédant les corps des personnes enle- + activité surnaturelle. vées entament la danse corrompue au pied + 怪 La police commence à faire le rapproche- de Lion Rock pour réveiller le Nin. + ment entre les disparitions, mais imagine + avoir affaire à un tueur en série. + 怪 Un bateau est victime d’une malédiction + qui rend tout son équipage muet. + 怪 Le soir même, les mogwaai retrouvent la + trace d’Andy au temple et décident de le + prendre d’assaut pour capturer l’artisan. + + + + +394 + les chroniques + Alexander Weng + de l’étrange + (Rencontre) + V , , + indicatif calculateur arrogant + + Alexander Weng est né dans une famille ai- +sée de Hong Kong et a grandi dans les beaux +quartiers du district de Southern. Durant son +enfance et son adolescence, il n’a jamais man- +qué de rien. Cependant, ses parents contrac- + + + + + scénario : l'année du lion +tèrent des dettes auprès d’une triade. À quinze +ans, il rencontra ainsi un fat si qui travaillait +occasionnellement pour cette société noire. +Cet exorciste constata qu’Alexander était doué +pour remarquer les détails liés aux événements +surnaturels et proposa de l’entraîner. Ses pa- +rents acceptèrent, espérant s’attirer ainsi les +bonnes grâces de leurs créanciers. + Alexander devint donc l’élève du fat si, +découvrant au passage que son activité dé- +passait le cadre des quelques services occa- +sionnellement rendus à la pègre et s’éten- +dait à une grande partie des industriels et des +financiers de Hong Kong. Grâce à son maître, le +jeune homme se créa un réseau de clients et de +contacts qu’il conserva quand ce dernier prit sa +retraite et qu’il lui succéda. Malheureusement, +Alexander ne prit jamais vraiment la dimension +sacrée de sa charge au sérieux. Il voyait son +rôle d’exorciste comme un métier plutôt lucra- +tif, compte tenu de sa clientèle habituelle. Son +avidité et son matérialisme causèrent sa perte. + Trois mois avant le début de ce scéna- +rio, Alexander Weng se trouvait à Tai O (cf +p. 393) tandis qu’un jiugwaai y causait des pro- +blèmes en dévorant le fruit de la pêche des habi- +tants. Alexander aurait pu les aider et négocier +avec la créature afin qu’elle se comporte autre- +ment ou même la dissuader par la force. Mais +il n’en fit rien, car les villageois ne pouvaient +pas le payer. Alexander Weng ne se comportait +pas de la sorte pour la première fois – mais ce +fut celle de trop. Les dieux se lassèrent-ils de +son comportement égoïste ? Ou bien était-ce la +volonté du Ciel de lui donner une leçon à ce +moment-là ? Quelle qu’en soit la raison, son +sanhei perdit ce jour-là son éclat et cessa de +fonctionner. Pour les exorcistes, un tel événe- +ment marque la perte du mandat céleste et donc +de leur statut. + Fou de rage, Alexander effectua de nom- +breuses recherches sur les raisons ayant pu +provoquer la perte d’une partie de son pouvoir. +Son orgueil était tel qu’il refusa de faire amende +honorable et de reconnaître sa responsabilité. +À la place, il chercha un moyen de se +rebeller contre son destin et élabo- +ra un plan pour provoquer +le retour du Nin. + + + 395 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Grand et fin, élégant et mystérieux à sa façon, sans lui révéler l’identité réelle de l’exorciste. Le + Alexander affiche un visage souvent marqué par vieux mogwaai ambitieux ne fournit qu’une des- + une expression de colère sourde et une concen- cription volontairement vague de l’individu en + tration de tous les instants – qui lui donnent précisant qu’il s’agit d’un sorcier puissant qui l’a + un air à la fois sérieux et inquiétant. Bien qu’il forcé à travailler pour lui. Il agrémente ses aveux + dispose d’un réel charisme et soit capable d’af- de la mention de différents lieux de Wang Chai et + ficher le plus séducteur des sourires, au fond de Central où le sorcier en question opère habituel- + lui gronde une rage vengeresse : un feu attisé lement, tout cela en se laissant un peu menacer + par sa propre arrogance et la défiance envers le et malmener pour donner le change. + Ciel qui le caractérise désormais. Alexander se Maximilian Pang ayant rencontré de nom- + révèle calculateur, mais il n’est pas quelqu’un de breux mogwaai facétieux et peu courageux + froid. Sa capacité à patienter pour atteindre son par le passé, les mensonges de Jau Hung lui + but ne signifie pas qu’il soit dénué de passion, semblent crédibles. Tandis que le fat si s’élance + bien au contraire. à la poursuite d’un « dangereux sorcier », le dé- + Alexander aime disposer d’un plan de se- mon prévient Alexander Weng que l’un de ses + cours, d’un atout supplémentaire caché. Les anciens confrères se trouve à ses trousses. Il + événements récents l’ont rendu prudent et il parvient même à monnayer cette information. + travaille désormais le plus possible au travers + d’intermédiaires – tels que Jau Hung (cf p. 413), + Ken Luan (cf p. 398) et Ginny Ching (cf p. 398) madame Siu, (Rencontre) + qu’il manipule ou qui se trouvent à son service. I , + nquiète érudite perspicace + La perte de son statut de fat si l’a rendu fou. Au + fond de lui, il sait que défier le Ciel est une folie, La divinité est chagrinée et s’inquiète qu’on + mais il ira jusqu’au bout, persuadé qu’il ne peut ait cherché à la tromper et à lui dérober des + désormais plus faire machine arrière. connaissances à son insu. Elle ne sait pas + qu’Alexander Weng est à l’origine du cambrio- + lage, mais elle a en revanche senti que des dé- + mons accompagnaient le voleur et qu’ils comp- + Le cambriolage taient des mogwaai parmi eux. Elle a également + conscience que, normalement, seuls les fat si + connaissent l’entrée secrète de son domaine + Note importante : Les événements décrits ci-dessous spirituel et que les cambrioleurs ont eu besoin + ont lieu avant que les PJ n’interviennent dans cette de cette information pour réussir leur exploit. + histoire. En effet, le scénario débute pour eux à Elle s’imagine pour l’instant + l’acte 2 – Le Lion est mort ce soir (cf p. 399). MJ, que des démons ont pu + vous devez utiliser ces informations lorsque les PJ obtenir l’informa- + remontent la piste et visitent les différents lieux et tion par la force, + interrogent les différents PNJ pendant leur enquête. ne parvenant + pas à conce- + Bien que les PJ ne le découvrent qu’en deu- voir qu’un + xième partie de scénario, la Hong Kong Central exorciste ait + Library (cf p. 116) se révèle d’une importance pu trahir le + capitale pour Alexander Weng : c’est en ce lieu Ciel. + que son plan a débuté. Situé à Causeway Bay, + cet édifice constitue un lieu sacré, solide comme + la montagne et paisible comme l’eau, imprégné + d’un souffle Yang puissant. Les PJ ont sans + doute l’habitude de le fréquenter, tout particu- + lièrement son annexe souterraine – le domaine + de Madame Siu (cf p. 117). + Après s’être aperçue du fait qu’elle a été + cambriolée, la divinité terrestre fait appel à un + fat si expérimenté nommé Maximilian Pang pour + éclaircir ce mystère. Il enquête de son côté avant + que les PJ soient amenés à le croiser. Remontant + la piste en commençant par les mogwaai, il re- + trouve et interroge Jau Hung, mais ce dernier se + révèle bien plus intelligent et retors que prévu : il + envoie Maximilian sur la piste d’Alexander, mais + + +396 + Malgré les nombreux textes et ouvrages dé- les chroniques +placés, abîmés ou emportés afin de brouiller les Disparitions + de l’étrange +pistes, Madame Siu a toutefois deviné l’objet prin- +cipal du vol : un vieux livre en lattes de bambou Inquiet que la communauté occulte ne s’in- +contenant les rituels de Zi Wei, l’un des Quatre téresse trop vite et de trop près à lui au risque +Souverains du Taoïsme. Les autres ouvrages dis- de faire capoter son plan, Alexander décida qu’il +parus ne valaient en effet pas la peine de prendre n’agirait désormais qu’à distance. Il se rapprocha +un tel risque. La divinité n’a pas compris que tout de la fille de l’un des cadres de la triade à laquelle +cela concerne le Nin et le Nouvel An, mais si les sa famille devait de l’argent : Ginny Ching, une +PJ viennent la voir et lui posent des questions à femme ambitieuse, passionnée d’ésotérisme et qui + + + + + scénario : l'année du lion +propos des lions, elle pourra faire le rapproche- avait souhaité recevoir quelques années auparavant +ment et leur en faire part. l’enseignement de son ancien maître. Ce dernier + avait refusé car, même si Ginny se révélait douée + pour la magie, son cœur n’était pas assez pur. +LES FAIBLESSES DU NIN Reprenant contact avec elle, Alexander lui a +ET LES RITUELS DE ZI WEI proposé de la prendre comme élève à condition + Madame Siu peut aider les PJ à prendre conscience qu’elle lui rende plusieurs services afin de prouver +des faiblesses du Nin : le bruit, la couleur rouge et le feu. sa valeur. Il sait que Ginny lui voue une certaine ad- +Ils peuvent aussi décider de se renseigner au sujet de cette miration et qu’elle démontre beaucoup d’ambition. +créature, ou de Zi Wei et ses rituels – soit sur le Taonet (cf Dès lors, il s’en sert pour la manipuler et l’amener +encart), soit en utilisant leurs propres ressources. à croire que des danseurs du lion et des fabricants + Un autre ouvrage comportant les rituels de Zi Wei est de lions traditionnels se sont vus remplacés par +conservé chez un collectionneur nommé Edward Tong de dangereux jiugwaai ayant pour but de gâcher +– ce que les PJ peuvent apprendre grâce à d’éventuels les festivités du Nouvel An. Ginny se trouve donc +contacts. Obtenir le droit de consulter ce tome ancien à l’origine des événements décrits dans l’acte 2 +permet de comprendre que le rituel qui enferme le Nin – bien qu’elle soit manipulée par Alexander. Jau +peut être perverti pour en inverser les effets (cf acte 3 – Hung et ses mogwaai sont à ses ordres, Alexander +La part du lion p. 406) et de réaliser ainsi pourquoi lui ayant enseigné la Spécialité Domination. +des artisans et des danseurs du lion sont enlevés. Il est Comme le mogwaai ambitieux a préve- +nécessaire d’effectuer un jet de Renseignement (Gotha) nu Alexander Weng que son ancien confrère +ou Influence (Gotha) / 2 ou un jet de Mondanités Maximilian Pang le recherchait, le fat si conseille +(Négociation) / 3 pour obtenir qu’Edward Tong, riche à Ginny Ching de se méfier, car une personne +excentrique qui vit reclus au milieu de ses précieux gri- mal intentionnée le menace. Alexander lui fait +moires, accepte qu’on vienne lire cet ouvrage chez lui. croire qu’en tant que fat si, il ne peut pas gérer + le problème lui-même – en vertu de l’interdiction + faite aux exorcistes de s’en prendre aux mortels + – et lui demande donc de trouver une solution. + + +SUR LE TAONET + 怪 Une rumeur peut attirer l’attention des PJ. Les marins d’un cargo sont soudainement tous devenus muets… + Leur capitaine a fait appel à une collègue fat si nommée Lucy Cho pour lever cette « malédiction ». Cette + dernière finit par contacter le PJ du groupe qui s’avère le plus « connecté » parmi eux pour obtenir des + conseils. À partir de là, il devient possible de remonter la piste de la jarre du démon du silence (cf acte 3 – Un + Nouvel An trop silencieux p. 406). Soit l’information leur parvient dès qu’ils effectuent des recherches sur + le Taonet, soit le PJ concerné est contacté directement après avoir discuté avec maître Fei (cf acte 2 – Une + dernière danse p. 404). + 怪 Le nom d’Edward Tong (cf encart), collectionneur disposant d’un ouvrage comportant les rituels de Zi Wei, + peut être trouvé en discutant sur le réseau avec un jet de Renseignement (Taonet) / 1. Quelqu’un disposant + des faveurs de la divinité du Taonet ou de compétences informatiques très pointues pourrait même retrouver + la trace d’une conversation privée entre Edward Tong et un dénommé Alexander Weng (qu’à ce stade, les + PJ ne soupçonnent pas) au sujet de la chorégraphie des danseurs du lion, datant d’il y a deux mois environ. + Alexander y prétend s’intéresser à l’ouvrage, mais Edward refuse de le laisser le consulter. Cela nécessite soit + un jet de Renseignement (Taonet) / 3, soit de faire appel à un sort pour contacter la divinité, soit de réaliser + un test de Technologies (Informatique) / 3. + 怪 La communauté des fat si est unanime : le Nin est une créature très dangereuse. Monstre maléfique à tête + de lion et corps de taureau, la légende profane veut qu’il vive au fond des mers, mais les occultistes les plus + érudits savent qu’il est en réalité prisonnier d’une geôle de hei mystique et onirique, créée pour lui par Zi Wei + et régénérée à chaque fête du Nouvel An. Tous s’accordent à dire que provoquer son retour est impossible, + mais que, dans une telle éventualité, la ville de Hong Kong serait menacée dans son ensemble. + + 397 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Prête à tout pour son maître, Ginny prend mentor, elle se montre prête à tout pour l’aider + contact avec un tueur étranger en lui faisant à accomplir ce qu’elle voit comme une grande + miroiter une place dans la triade pour laquelle destinée. Mais elle n’est plus la jeune fille naïve + travaille son père. Alexander dépense la plus d’autrefois. Déterminée et ambitieuse, elle se ré- + grande partie de sa fortune pour payer cet vèle vraiment douée pour la magie. Elle pourrait + assassin, nommé Ken Luan, afin qu’il élimine sans doute se rendre compte de l’étrangeté de + Maximilian et lui fournit même une arme à même ce qu’Alexander lui demande (les personnes enle- + de blesser un fat si. Quand les PJ commencent à vées par ses soins ne présentant aucun stigmate + enquêter, ce criminel vient tout juste d’agresser de possession tandis qu’elles repartent de chez + Maximilian et de le laisser pour mort. Mais il Alexander avec une étrange lueur dans le regard), + ignore que sa cible a finalement survécu et n’est si elle ne se trouvait pas elle-même aveuglée par + que grièvement blessée. son désir de pouvoir et de reconnaissance. + Mais dès que les PJ commencent à agir et + que Ginny repère leurs activités, elle demande + Ginny Ching (Rencontre) conseil à Alexander qui la convainc que ces der- + E , , + ndoctrinée arriviste méfiante niers appartiennent au complot visant à détruire + la ville. Ginny les considère dès lors comme des + C’est probablement la piste de Ginny que adversaires. La convaincre du contraire néces- + les fat si suivent en premier. Elle se trouve aux site un jet de Mondanités (Éloquence, Séduction, + commandes lors de l’acte 2 – Le Lion est mort Diplomatie ou Négociation, selon l’approche uti- + ce soir (cf p. 399). lisée) / 2 (l’Aptitude sociale de Ginny). + Trentenaire dynamique et passionnée de Même si les PJ parviennent par leurs actes + magie, Ginny est la fille d’un membre de triade et leurs paroles à prouver à Ginny qu’ils ne sont + influent pour lequel Alexander et son maître animés que de bonnes intentions, elle les voit + avant lui travaillèrent par le passé. Ce ponte de comme des rivaux à même de lui voler sa vic- + la pègre affiche un fort respect des traditions toire et sa future ascension au rang de fat si. + et, de ce fait, sa fille se prit de passion, il y Parvenir à lui faire entendre raison pour qu’elle + a plus de quinze ans, pour l’ésotérisme. Elle trahisse son maître s’avère extrêmement diffi- + tomba amoureuse de l’apprenti charismatique cile. Elle est consumée par la passion et la ja- + qu’était alors Alexander – qu’elle croisait de lousie ; Alexander l’a manipulée et endoctrinée : + temps en temps. Quelques années plus tard, elle les jets de Mondanités ou d’autres Compétences + approcha l’ancien maître d’Alexander afin de en fonction de l’approche utilisée présentent + devenir son apprentie, mais celui-ci l’éconduisit. une difficulté de 4 si les PJ tentent cette façon + Ginny se forma dès lors en autodidacte grâce de faire. Ils peuvent tout simplement décider + aux quelques contacts de son père. Depuis, le de la mettre hors d’état de nuire par la force + vieux maître a pris sa retraite et Alexander lui a mais, dans ce cas, l’interroger une fois vaincue + succédé. Très récemment, il est venu la chercher nécessite des jets d’Enquête (Interrogatoire) / + et Ginny se persuade que c’est en raison de ses 3 (l’Aptitude sociale de Ginny + 1, car elle est + grands progrès dans les arts occultes. Elle a ac- terrorisée à l’idée de trahir Alexander). + cepté avec joie de devenir son élève. + Depuis qu’Alexander la forme, il lui fait croire + qu’un complot menace Hong Kong et que, s’ils Ken Luan (Rencontre) + sauvaient ensemble le Nouvel An, elle obtiendrait I , , + mmoral impitoyable ambitieux + sûrement son mandat céleste en récompense. Sur + les ordres du fat si déchu, elle fait enlever les Même parmi les pires criminels, bien peu de + danseurs et artisans qu’Alexander lui désigne en Hongkongais accepteraient un contrat placé sur la + croyant qu’ils sont possédés. Ceux qu’elle kidnappe tête d’un exorciste. Mais d’origine vietnamienne, + subissent alors des « séances de soins » censées Ken Luan se montre prêt à tout pour se bâtir une + les libérer de leur possession – qu’Alexander met solide réputation dans le milieu – et il n’est pas + en réalité à profit pour les offrir à des ok mo qu’il a très superstitieux. Les membres filiformes, la + créés dans ce but. L’objectif de l’exorciste dément musculature sèche et noueuse, les traits émaciés, + consiste à faire participer ces artistes possédés à cet homme inquiétant porte des vêtements ordi- + une danse corrompue au pied de Lion Rock – ce naires : sweat à capuche et jeans aux couleurs + qui détournera le hei destiné à alimenter les rêves de l’automne. Professionnel jusqu’au bout des + du Nin et lui permettra de s’en servir pour l’invo- ongles, il observe ses proies discrètement, puis + quer au sein du monument naturel. les attaque par surprise à l’aide de ses couteaux + Ginny Ching n’a pas conscience qu’Alexander capables de blesser mais également de drainer le + Weng a trahi le Ciel, que son sanhei s’avère inerte hei depuis l’enchantement pratiqué sur eux par + et qu’il la manipule. Fascinée par son puissant Alexander Weng. + + +398 + délibérée d’un individu connaissant son statut les chroniques + Maximilian Pang de fat si et qui s’était préparé en conséquence. Il + + + de l’étrange + (Rencontre) pense bien entendu que cette tentative se révèle + P , , + erspicace expérimenté blessé directement liée à son enquête et raconte aux + PJ l’histoire du cambriolage de la Hong Kong + Habillé d’un imperméable aux couleurs ter- Central Library, réalisé à sa connaissance par un +nies et coiffé d’un bonnet de docker, Maximilian sorcier. +Pang ne paie pas de mine. Quinquagénaire spor- Lors de l’acte 2, Maximilian Pang leur de- +tif mais hédoniste, son goût pour les cigares, mande de l’aide sur cette affaire et pose des +l’alcool et les femmes de caractère ne laisse questions sur celle qui rassemble actuellement + + + + + scénario : l'année du lion +pas imaginer un seul instant qu’il puisse être les PJ. Brillant enquêteur, il pourrait bien de- +un exorciste de renom. Pourtant, il prend sa viner que tout est lié et demander aux PJ de +mission de protecteur de Hong Kong avec le poursuivre les investigations à sa place. Il doit +plus grand sérieux. Long bâton antique difficile en effet reprendre des forces et ne sera pas +à dissimuler, son sanhei tranche singulièrement en mesure de se joindre à eux pour la suite ou +avec le reste de son équipement. pour de futurs combats. En dehors de cela, il se + Lorsque les PJ le rencontrent pour la première montre extrêmement coopératif : il représente +fois, Maximilian vient d’échapper de peu à la un excellent moyen de guider des PJ débutants, +mort. Blessé et affaibli, il est soulagé de pouvoir s’ils en ont besoin à un moment du scénario. +compter sur l’aide de quelques collègues plus Maximilian dispose de nombreux renseigne- +jeunes. Il explique que son agresseur était armé ments et peut prodiguer divers conseils à de +pour attenter à sa vie, mais aussi pour s’attaquer jeunes fat si. En revanche, il se garde bien de +à son hei – prouvant qu’il s’agissait de l’attaque leur voler la vedette. + + + + + Acte 2 – Le Lion est mort ce soir + Lorsque les PJ entrent en scène, il reste cinq Autre attraction fort demandée : la danse +jours avant le Nouvel An chinois. Pour les fat du lion représente la façon dont le Nin se vit +si, il s’agit d’une période faste où leurs services repoussé grâce aux célébrations conçues par Zi +sont très demandés tant par les particuliers que Wei. Très liée à la pratique des arts martiaux, +par les entreprises. Tous les habitants de Hong cette danse fait l’objet d’un entraînement sans +Kong sont soucieux de s’attirer les faveurs du relâche dans diverses écoles de kung-fu, car +Ciel pour ce nouveau départ. Les demandes de seuls les élèves les plus doués se voient offrir +services de géomancie, de divination et d’exor- le privilège de la pratiquer lors des cérémonies. +cisme s’avèrent donc courantes. + + + +LA TÊTE DE LION + Élément essentiel à la cérémonie de la danse du lion, le costume des artistes est fabriqué par des artisans +détenteurs d’un savoir-faire ancestral. Il se compose de deux éléments, chacun porté par un danseur : la tête et +le corps. La tête du lion est traditionnellement réalisée en papier mâché et apposée sur une structure en bambou. +S’y appliquent alors plusieurs couches de laque donnant à la tête ses couleurs vives et brillantes. + De nos jours, de nombreuses têtes de lion sont évidemment fabriquées à partir de matériaux modernes tels que +l’aluminium et le plastique, mais la demande pour des têtes de lion traditionnelles reste forte, et certaines se vendent +à prix d’or. Toutefois, pour la plupart des créateurs de ces œuvres, il s’agit avant tout d’une passion vouée au respect +d’une tradition. C’est parmi ces passionnés au talent devenu rare que se trouve Andy Liu, l’artisan disparu. + + + + + 399 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + +400 + des profanations et des actes de vandalisme. les chroniques +L’artisan disparu Une discussion avec une divinité permet d’ap- + + + de l’étrange + prendre qu’Andy est parvenu à s’enfuir, sans + Homme âgé propriétaire d’un petit garage plus d’informations sur l’endroit où il se trouve +automobile de Sham Shui Po, Andy Liu a dispa- désormais, tandis qu’une divination fournit une +ru. Les PJ sont contactés par l’apprenti d’Andy, vision du temple où il se cache. +un jeune homme du nom de Jeffrey Chu. Bien Si les PJ ne disposent pas de ces Spécialités +sûr, l’apprenti a également appelé la police ou ne pensent pas à les utiliser, ils devront re- +– mais le saccage de l’autel dédié à Lou Baan monter la piste des mogwaai jusqu’au temple +(une divinité des artisans) lui laisse à penser par une enquête de voisinage. Bien sûr, les + + + + + scénario : l'année du lion +que le hei du garage a été corrompu. Il fait ap- voisins ne décrivent pas les démons avec +pel à des exorcistes afin de mettre toutes les exactitude, mais ils évoquent des bruits et des +chances de son côté pour retrouver son maître, ombres qu’ils ont pu apercevoir. Ils peuvent +soupçonnant une activité ésotérique. aussi mettre les PJ sur la piste d’Andy en pré- + D’habitude, Jeffrey – tout comme Andy, cisant qu’ils ont vu le vieil homme dans la rue, +maître Fei et de nombreux autres habitants du à une heure tardive et inhabituelle, visiblement +quartier – aurait requis les services d’un exor- pressé et nerveux. Étudier méticuleusement +ciste de renom local : Maximilian Pang. Mais ce les lieux – en particulier l’arrière-salle du ga- +dernier semble indisponible en ce moment et rage et l’atelier du maître – donne une idée +Jeffrey a entendu parler de la bonne réputation de la façon dont l’agression s’est déroulée. +des PJ. Il leur explique que son mentor disparu Toutes ces informations nécessitent des jets +est un vieil homme qui n’a guère l’habitude de d’Enquête (Observation, Scène de Crime ou +ne pas donner signe de vie pendant presque une Interrogatoire) / 2 ou éventuellement l’utilisa- +journée – surtout vu le travail à cette période. tion de la Ressource Renseignement / 2. + Les PJ peuvent voir dans l’atelier d’Andy la Finalement, quand les PJ déterminent que +tête de lion sur laquelle il travaillait et qui est des mogwaai ont commis ces exactions, la spé- +destinée aux célébrations du Nouvel An. Mais cialité Exorcisme (Traque) peut enfin se voir +sans le vieil homme, impossible de la terminer… utilisée à bon escient. Elle ne permet pas de +Cependant, Jeffrey ne met pas d’emblée cela remonter jusqu’à la tanière des démons, mais +en avant. Pour relier la disparition au talent amène les PJ à se rapprocher du temple de +unique d’Andy, il faut réussir un jet d’Enquête Gwaan Dai (cf p. 402), qui se trouve dans le +(Déduction) / 1. Des jets d’Érudition (Histoire, district de Sham Shui Po. Les créatures se sont +Théologie ou Mythologie) / 1 permettent égale- en effet regroupées dans le voisinage du bâti- +ment d’obtenir certaines des informations pré- ment et attendent la tombée de la nuit pour se +sentées en encart dans ce scénario (à la discré- lancer sur les traces d’Andy. Quelle que soit +tion du MJ) sur la tête de lion, le mythe du Nin la méthode – magie ou enquête – que les PJ +et les célébrations du Nouvel An à Hong Kong. auront utilisée, ils finiront donc par se rendre +Les PJ n’obtiennent ces informations que s’ils au temple. +ont une raison valable de s’intéresser au sujet +– ce qui peut advenir à un moment ultérieur +du scénario, selon la manière dont ils abordent Jeffrey Chu (Rencontre) +leur enquête. I , , + nquiet enthousiaste travailleur + Les fat si peuvent aussi s’intéresser à +l’aspect ésotérique de la disparition : recher- Ce presque trentenaire dynamique se révèle +cher des traces d’activité magique avec des une personne fort sympathique habituellement. +sorts, par exemple. Il est complexe d’utiliser Mais quand les PJ le rencontrent, sa bonne hu- +Exorcisme (Traque) à ce stade de l’enquête, car meur et son enthousiasme se trouvent minés par +les PJ ne savent pas encore à quel type de créa- l’inquiétude d’avoir perdu son maître. Jeffrey +ture ils ont affaire. Mais ils peuvent souhaiter leur indique volontiers qu’Andy travaille sou- +s’adresser aux dieux locaux grâce à Géomancie vent tard le soir et qu’il ne l’a pas vu depuis +(Prière terrestre), utiliser les augures avec l’avant-veille, quand lui-même a quitté l’atelier +Géomancie (Divination) ou encore affiner leurs vers vingt-deux heures. Comme pour beaucoup +sens au moyen de l’Alchimie ou du Cinabre in- d’artisans de Hong Kong, l’habitation d’Andy est +terne. À la discrétion du MJ et en fonction de solidaire de son lieu de travail. Toute la journée +la méthode utilisée, il est possible de confir- de la veille, Jeffrey a guetté le retour de son +mer que des jiugwaai étaient à l’œuvre, qu’il patron avant de finalement prévenir la police. +s’agissait probablement de démons et (avec Cela fait maintenant un peu plus de vingt-quatre +de nombreux dés-fastes) que ceux-ci sont des heures qu’Andy a disparu, ce qui semble grande- +mogwaai – compte tenu de la nature chaotique ment affecter Jeffrey. + + + 401 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Une fois que la question de la disparition Les démons ne cherchent pas à affronter + et la nature surnaturelle de l’agression ont les fat si, qu’ils craignent à raison. La surprise + été établies par les PJ, Jeffrey indique que son initiale de voir des exorcistes à leurs trousses + maître travaille à la création de têtes de lion passée, ils s’organisent rapidement : quelques- + dans son atelier depuis des années. Cependant, uns tentent de faire diversion pendant que le + celle qui se trouve dans l’atelier actuellement plus fort parmi eux essaie de s’enfuir en em- + est particulière : Andy comptait faire de cette portant Andy. Une fois les mogwaai vaincus, le + œuvre inachevée sa soixantième et dernière tête prêtre remercie chaleureusement les exorcistes. + de lion avant de passer le flambeau à Jeffrey Si Andy est présent, il raconte sa version des + – complétant ainsi un cycle céleste complet faits. S’il s’est fait enlever, le prêtre renseigne + (composé de cinq fois douze années, pour les les PJ du mieux qu’il peut. Mais ni l’un ni l’autre + cinq éléments et les douze animaux du zo- ne comprend ce que ces démons ont en tête. + diaque chinois). Pour l’occasion, il est reparti + de la structure en bambou de la première tête + sur laquelle son grand-père lui avait appris ses Temple de Gwaan Dai (Lieu) + propres techniques. Mais, sans Andy, il s’avère + impossible de terminer l’œuvre. Traits : coloré, touristique, plongé dans un + environnement urbain, source de Hei Yang + Ce petit temple aux couleurs vives (vert, rouge + Le garage (Lieu) et or) se trouve au cœur du district – sur Hai Tan + Street. Construit à la fin du dix-neuvième siècle, + Traits : discret, pratique, spacieux, dédié au il constitue l’unique lieu de culte exclusivement + dieu Lou Baan dédié à Gwaan Daai dans tout Kowloon. Lors + Seule partie visible depuis la rue, une toute du développement du quartier dans les années + petite façade avec une pancarte aux lettres fuch- 1930, il s’est retrouvé entouré de nombreux + sia sur fond blanc désigne l’entrée du garage. immeubles et semble désormais enclavé. + Ensuite, un long chemin permet aux véhicules L’autel du temple se révèle magnifique et, à + d’entrer et sortir d’une cour intérieure flanquée travers les motifs de bon augure et les histoires + d’un atelier de réparation et du lieu de vie du traditionnelles, les visiteurs peuvent apprécier la + garagiste et de son apprenti. L’établissement se minutie des gravures sur bois traditionnelles et + révèle beaucoup plus vaste à l’intérieur que ce de l’art religieux. Une cloche de bronze géante + que laisse présager son entrée. L’atelier où est et une lame en forme de croissant constituent + exposée la tête de lion, ainsi que l’arrière-salle les curiosités les plus fameuses de l’endroit. + où se trouvent les réserves et le matériel, n’est Bien qu’il s’agisse d’un lieu touristique, un + pas visible depuis la cour où Jeffrey reçoit les prêtre s’occupe du temple et celui-ci a recueilli + PJ au début de leur visite. Cependant, il se fait Andy. Lorsque ce dernier a expliqué que des dé- + une joie de leur faire découvrir les lieux. Même mons le pourchassaient, il a accepté qu’il reste + dans la partie technique de l’atelier, on sent pour se cacher. Le prêtre et Andy ne se trouvent + que le propriétaire se montre respectueux des pas en mesure de se battre efficacement contre + traditions et envisage la mécanique comme un les mogwaai mais, si les PJ interviennent, ils + artisanat noble. parviennent à s’organiser pour se protéger l’un + l’autre et prier la divinité du temple. Lancez + trois dés et placez les résultats obtenus sur le + Loksyu en début de confrontation pour simuler + L’attaque des le soutien que la bénédiction du prêtre apporte + aux PJ qui tentent de sauver Andy en ce lieu. Par + mogwaai la suite, le MJ est invité à utiliser sa Tin Ji pour + venir en aide aux PJ si cela s’avère nécessaire + Juste avant que les PJ ne se rendent au – afin de montrer la Volonté du Ciel de contrer + temple de Gwaan Dai, les mogwaai décident de les plans d’Alexander Weng. + passer à l’attaque. Soit le jour a suffisamment + décliné et le temple est presque vide, soit ils + ont perdu patience et optent pour l’action quoi + qu’il arrive si les PJ découvrent le temple plus + tôt dans la journée. Dans tous les cas, ils y pé- + nètrent pour chercher et enlever Andy. Le prêtre + tente de protéger le vieil homme et évacue les + quelques touristes, s’il y a lieu. Les PJ arrivent + tandis que l’agression se produit. + + +402 + leur enquête les amène à entendre parler de les chroniques + Andy Liu (Rencontre) Ginny Ching, peut-être même jusqu’à en obtenir + + + de l’étrange + I , , + nquiet sympathique talentueux une description. Et bien sûr, ils peuvent tenter + de retrouver l’agresseur de Maximilian : l’assas- + Andy est un septuagénaire sympathique et sin Ken Luan. +encore en grande forme pour son âge. Garagiste Enfin, si les PJ décident d’utiliser des +mais également artisan à ses heures, il a hérité contacts dans la police, il est probable qu’ils +sa passion et son talent pour la création de têtes obtiennent en avance certaines informations du +de lion de son grand-père et, pour lui, il s’agit chapitre suivant Une dernière danse. Cela ne +de bien plus qu’un art : c’est une tradition fa- gêne absolument pas la suite du scénario. + + + + + scénario : l'année du lion +miliale. Tous les ans, Andy travaille sur une ou +deux têtes de lion. Cette année, il avait décidé +de n’en créer qu’une seule – la dernière, qui au- +rait dû revenir aux élèves de maître Fei, le sifu UTILISER LE TUEUR +de l’école du Tigre volant, située dans le même DANS LE SCÉNARIO +quartier. Selon la manière dont les PJ abordent le scé- + Au jour J – 1 de la chronologie, il a vu les nario et en fonction de la volonté du MJ de rendre +mogwaai entrer dans son garage alors qu’il les choses plus ou moins complexes, il est possible +se trouvait dans l’arrière-salle et a pris peur. d’utiliser l’intrigue supplémentaire ci-dessous. +Il ne sait pas ce que ces créatures lui veulent, Une fois Maximilian hors d’état de nuire, plutôt +mais il s’est réfugié dans le temple dans l’es- que de congédier Ken en lui promettant de parler +poir qu’elles ne puissent entrer dans un tel lieu de lui à la triade, Ginny et Alexander mettent le +sacré. Andy s’avère très superstitieux, même tueur sur la piste d’autres taoïstes parmi les plus +pour un Hongkongais. Il se montre heureux de doués en astrologie – ceux qui seraient capables de +coopérer avec les PJ, surtout si ceux-ci lui sont lire leur plan dans les augures. Alexander convainc +venus en aide. Cependant, il ne comprend pas Ginny que ces devins appartiennent au fameux com- +bien pourquoi il est la cible d’une telle tentative plot et elle demande alors à Ken de les mettre hors +d’enlèvement. d’état de nuire – sans nécessairement les tuer, mais + en faisant en sorte qu’ils soient victimes d’une sé- + rie d’accidents qui les maintienne à l’écart lors du + Nouvel An à venir. +Un collÈgue dans Si cette intrigue est utilisée, Ken devient un pro- + tagoniste plus important dans le scénario, et surtout +le besoin un adversaire qu’il faut stopper et vaincre. Le tra- + quer et l’interroger permet d’obtenir une descrip- + Que les PJ sauvent Andy ou non, Maximilian tion vague du « sorcier », dont il tient ses ordres, et +Pang prend contact avec eux dès le lendemain de Ginny, qu’il identifie comme « la fille d’un cadre +matin (donc à J + 1 de la chronologie). Il leur d’une triade ». Il connaît assez peu la ville et encore +explique ce qu’il sait du casse de la Hong Kong moins bien les subtilités du fonctionnement de la +Central Library et – mis au courant de la ten- pègre. Mais il donne suffisamment d’informations +tative d’enlèvement d’Andy – réalise que les pour qu’il soit possible de remonter jusqu’à la fa- +mêmes démons sont sans doute impliqués dans mille Ching et à son clan. +les deux affaires. Il demande l’aide des PJ afin Si le MJ décide de ne pas compliquer l’enquête +de résoudre son enquête en même temps que la des PJ avec une seconde série d’agressions, Ken peut +leur (cf acte 1 – Rébellion p. 392). simplement rester à l’écart un moment pour mieux + À ce stade, les PJ peuvent rendre visite à revenir en tant qu’allié de Ginny ou d’Alexander +Madame Siu (cf p. 396), chercher des informa- lors de la confrontation finale. Il n’a pas vraiment +tions sur les mogwaai impliqués ou tenter de l’étoffe d’un garde du corps et servira d’atout dans +remonter la piste du sorcier qui les contrôle – la manche du fat si rebelle, intervenant en renfort et +en usant de leur magie ou de leurs contacts. Il par surprise à tout moment souhaité par le MJ, pour +est important de les laisser utiliser toutes les un coût de 2 points de Tin Ji. +Compétences et Ressources à leur disposition +pour tenter d’en apprendre plus. Si des éléments +censés être découverts dans les précédents cha- +pitres leur ont échappé, il s’agit d’un bon moyen +de combler leurs lacunes. Cependant, en aucun +cas ils ne peuvent à ce moment découvrir où se +cache Alexander ou même ne serait-ce qu’ap- +prendre son nom. Il y a de fortes chances que + + + 403 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + Une derniÈre danse SE RENDRE SUR LE SITE + L’école du Tigre volant présente une parti- DU RITUEL D’INVOCATION + cularité : elle était fréquentée par Maximilian DES OK MO + Pang et Andy Liu à différentes époques lors- Si les PJ suivent néanmoins cette maigre piste, ils + qu’ils étaient jeunes, et ces derniers se lièrent découvrent finalement que les mogwaai ont amené + d’amitié avec les différents sifu qui se succé- leurs victimes dans un vieux bâtiment abritant des + dèrent à la tête de l’établissement, ainsi qu’à de structures de ventilation près des cours de tennis de Ma + nombreuses autres personnes du quartier. C’est Chai Hang. Là-bas, ils mettent au jour les traces d’un + pour cela qu’Andy souhaite que sa dernière tête rituel magique. Les mêmes Compétences leur ayant + de lion revienne à ces danseurs en particulier. permis d’examiner les scènes d’enlèvement peuvent + De même, Jeffrey et Andy ne contactent les PJ alors servir à en apprendre plus sur ce qui s’est passé + que parce que Maximilian se trouve indisponible – mais face à une difficulté de 3. Qu’ils réussissent ou + lorsqu’ils apprennent que des danseurs ont non, ils acquièrent la certitude que l’endroit a été le + disparu. lieu d’une invocation démoniaque ou d’un rite abject + Le simple fait que des artistes martiaux dispa- du même ordre. S’ils ne font pas quelque chose pour + raissent soudainement – et qu’il s’agisse de deux y remédier (avec Exorcisme (Punition) ou Géomancie + élèves de la même école – suffit pour déclencher (Neutralisation)), un nœud d’énergies néfastes pren- + une enquête. La police se trouve déjà sur place dra naissance ici sous peu. + quand les PJ arrivent après avoir été appelés Si les PJ parviennent à comprendre en détail ce + par Jeffrey (ou Andy s’ils l’ont sauvé). À présent qui s’est passé, ils apprennent que le rituel réalisé par + que les PJ ont eu l’occasion de discuter avec un sorcier ou une sorcière très puissant(e) a forcé une + Maximilian et peut-être visité la bibliothèque, le possession de mortels par des esprits démoniaques : + lien entre les mogwaai, les disparitions, le Nin artisans et danseurs enlevés sans doute… Même s’il + et le Nouvel An devrait leur apparaître plus clai- est impossible d’en estimer le nombre exact, il y a fort + rement. Or, s’il s’agit de quelque chose qui se à parier que tous les disparus ont subi cette atrocité. + trame pour le Nouvel An, cela place également Dans tous les cas, même si les PJ n’arrivent pas à ob- + un compte à rebours sur leur enquête. tenir les Succès nécessaires pour tout comprendre, ils + Les fat si peuvent interroger Paul et Leonie, savent à présent que les mogwaai n’agissent pas seuls + propriétaires de l’école du Tigre volant. Ils et qu’un sorcier se dissimule derrière leurs actions. + peuvent aussi discuter avec l’inspectrice Diana + Pan Han qui leur apprend que les disparitions + d’artisans et de danseurs s’avèrent curieuse- + ment nombreuses ces derniers temps. Les deux + disparus – Clarence Lee et Betty Wu – sont des Paul et Leonie fei + amis d’enfance et les plus doués des élèves de (Rencontre) + l’école : il était bien sûr prévu qu’ils réalisent la S , , + oudés surpris traditionalistes + danse du lion au Nouvel An. + Comme pour les événements du garage Paul est l’actuel maître de l’école du Tigre + d’Andy, Exorcisme (Traque), Géomancie (Prière volant et sa fille unique Leonie est pressentie + terrestre) ou Géomancie (Divination) voire des pour lui succéder. Ces deux personnages consti- + jets d’Enquête (Observation, Scène de Crime ou tuent des alliés potentiels des PJ, qui pourraient + Interrogatoire) ou Renseignement / 2, éventuel- leur être redevables et continuer à les aider par + lement en affinant leurs sens avec l’Alchimie ou la suite. Bien qu’ils soient très coopératifs et + le Cinabre interne, constituent pour les PJ de visiblement très inquiets de ce qu’il est advenu + bons moyens d’obtenir des informations détail- de deux de leurs meilleurs élèves, ils n’ont en + lées sur la scène de crime. À la discrétion du réalité pas vu grand-chose. Paul est un quinqua- + MJ et en fonction de la méthode utilisée, il est génaire sportif mais sage, tandis que sa fille de + possible de confirmer que les mogwaai sont là vingt-trois ans se révèle brillante dans son do- + encore responsables et que des actes de vanda- maine mais un peu impulsive. Elle propose son + lisme ont été commis : l’autel dédié aux ancêtres aide si les PJ parlent d’aller affronter ceux qui + du sifu s’est vu profané. Cependant, à moins de ont enlevé les disciples. À noter que si les PJ + lancer un sort de Traque ayant une portée très cherchent à connaître la danse en détail, Paul + éloignée (dix kilomètres), il semble impossible et Leonie font office d’experts dans ce domaine + de déterminer la direction que les démons ont – ce qui peut aider les fat si à comprendre les + prise. Et même avec un tel sort, l’indication rites de Wei Zi lorsque cela s’avérera nécessaire + reste vague : nord-est sur plus de six kilomètres (cf acte 3 – La part du lion p. 406). + – donc quelque part près de Wang Tau Hom. + + +404 + les chroniques + Diana Pan Han, (Rencontre) l’École + (Lieu) du Tigre volant + de l’étrange + A , + ttentive prudente méthodique + + Diana est une inspectrice qui applique le Traits : traditionnelle, populaire, auguste +règlement à la lettre. Elle a donc fait boucler Cet établissement offre l’apparence d’une +l’école d’arts martiaux à la suite des événements école traditionnelle de kung-fu accueillant des +récents. Elle est entourée d’agents qui l’aident étudiants pour leur enseigner les bases du +à examiner la scène de crime. Sensible au sur- combat à mains nues, à la lance et au bâton +naturel, Diana est ouverte à l’idée de coopérer notamment. Suivant la tradition Sap Dung Mou + + + + + scénario : l'année du lion +avec les fat si, à condition qu’ils se souviennent (la boxe des dix animaux), plusieurs styles y +que les disparitions relèvent de sa compétence, sont enseignés – même si le sifu excelle sur- +tandis qu’eux se contentent d’enquêter sur les tout dans ceux du Tigre volant et du Bâton à la +profanations de l’autel des ancêtres. Cependant, Double-peau de Tigre. De nombreux enfants et +si les PJ savent se montrer persuasifs, au adolescents du quartier apprennent en ce lieu, +moyen d’un jet de Mondanités (Négociation ou composé d’une cour intérieure et de deux salles +Diplomatie) / 2, elle se montre ravie d’entendre d’entraînement avec vestiaires, tandis que les +parler des mésaventures d’Andy et de soutenir appartements du maître et de sa fille se trouvent +les fat si au besoin en partageant des informa- nichés au cœur de la ville, entre des bâtiments +tions sur les autres enlèvements. Elle enquête modernes. Le côté relativement ancien des bâ- +sur des disparitions d’artisans et de danseurs timents contraste avec la modernité de la cité +depuis plusieurs jours et celles qui frappent alentour, tout comme l’aspect traditionnel de +l’école du Tigre volant font qu’à présent tout l’entraînement tranche avec les allures contem- +se relie. Elle pensait tomber sur les traces d’une poraines des jeunes du quartier qui fréquentent +sorte de maniaque ou de tueur en série, mais l’école. +ce serait la première fois qu’il enlève deux per- +sonnes en même temps – et tout porte à croire +que plusieurs individus ont perpétré ce crime. +Elle pense à présent avoir affaire à une sorte de +secte ou de groupe terroriste – ou peut-être à +une rivalité entre écoles d’arts martiaux. Si les +PJ lui font part du caractère surnaturel de la me- +nace et avancent des preuves ou indices sérieux, +elle appelle ses supérieurs ou le département F +au besoin. + + + + + 405 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Acte 3 – La part du lion + Du Pic Victoria à la forêt de gratte-ciel plan- 怪 s’ils s’y intéressent avant J + 3, ils de- + tée dans la baie de Hong Kong, de Central à vront réaliser eux-mêmes l’enquête avec + Kowloon en passant par Shek O, tous les quar- ou sans l’aide de Lucy. Ils peuvent aller + tiers de la ville – mais aussi des îles telles que eux-mêmes interroger le capitaine et les + Lamma ou Lantau – sont en effervescence. Plus marins en question, ce qui nécessite des + la journée passe et plus la fébrilité qui précède jets d’Enquête (Interrogatoire) / 2. L’accès + le Nouvel An s’empare des rues, culminant lors à des Ressources avec comme Domaine les + de la soirée. Hong Kong est plus touristique que Dockers par exemple, mais aussi d’autres + jamais et ses lieux emblématiques se trouvent méthodes comme le fait d’utiliser des liens + envahis par les curieux. Cette ambiance festive avec des Domaines comme la Finance ou + se ressent jusque dans le hei ambiant. les Commerçants pour essayer d’en savoir + S’il le souhaite, le MJ peut utiliser autant plus sur le lieu de provenance et le contenu + de points de Tin Ji qu’il estime nécessaire pour de la cargaison du cargo, permettent face + enlever des dés de Loksyu de son choix. Puis à une difficulté de 2 d’obtenir les informa- + chaque PJ effectue un jet d’Aspect privilégié : tions ci-dessous. La difficulté passe à 3 si + pour chaque Succès obtenu, il peut lancer 1 dé les liens, les contacts et les alliés sont peu + et l’ajouter au Loksyu gratuitement – comme s’il familiers des docks et de la capitainerie ou + venait de pratiquer le rituel de groupe une nou- n’ont rien à voir avec le transport ; + velle fois. L’heure est grave et les fat si le res- 怪 s’ils ne s’y intéressent pas au début, alors + sentent jusque dans leur lien avec leur Gardien à J + 3 Lucy Cho contacte via le Taonet le + céleste, qui semble leur murmurer des mises en PJ le plus connecté. À noter qu’au départ, + garde. Comme si le paysage mystique venait de sa requête pour obtenir des conseils n’est + changer du tout au tout, symbolisé par ce renou- absolument pas une demande d’assistan- + vellement soudain d’une partie du Loksyu liant ce : il s’agit seulement d’une conversation + les PJ entre eux… autour des possibles démons qui ont trait + au silence, aux rituels qui permettent de + les enfermer et au danger que cela peut + représenter. C’est le lien entre le silence et + Un nouvel an le Nin qui peut pousser les PJ à vouloir se + mêler de cette histoire confiée à une autre + trop silencieux fat si. Si les PJ évoquent directement le Nin + dans leurs recherches sur le Taonet, alors il + Cette partie du scénario peut être abordée de est aussi possible que ce soit Lucy qui fasse + deux façons : le rapprochement de son côté et prévienne + 怪 soit les PJ ont entendu parler des mésaven- le PJ d’une possible convergence de leurs + tures de l’équipage soudainement devenu deux enquêtes. Elle s’empresse de leur de- + muet à cause d’une mystérieuse malédic- mander de l’aide (à J + 3) pour se rendre à + tion par un de leurs contacts ou via le l’entrepôt : + Taonet plus tôt dans le scénario, et ils s’y 怪 s’ils décident de ne pas creuser plus avant + sont tout de suite intéressés ; cette partie de l’histoire malgré les mes- + 怪 soit ils n’ont pas eu l’information ou n’y ont sages de Lucy, alors la jarre restera dans + pas prêté attention et, dans ce cas, Lucy l’entrepôt pendant quelques jours, puis + Cho (une collègue fat si) leur demande sera brisée par Ginny afin de libérer le sort + conseil à ce sujet. Elle peut être remplacée de silence qui s’abattra sur la ville (dans la + par un PNJ plus familier des PJ – comme chronologie, cela survient l’après-midi pré- + un contact ou un allié – afin de mieux cédant les festivités du Nouvel An, à J + 4). + impliquer les joueurs dans cette partie de Ce jour-là, il est très probable que les PJ + l’intrigue. aient en main toutes les informations pour + faire le lien avec le Nin et les festivités du + Selon le moment auquel les PJ vont s’intéres- jour. Et il leur sera toujours possible de se + ser à l’affaire, les choses ne se dérouleront pas ruer vers l’entrepôt pour y découvrir les + de la même manière : morceaux de jarre brisée. + + +406 + Voici les informations qui peuvent être dé- les chroniques +couvertes – soit en discutant avec Lucy qui a Lucy Cho, (Rencontre) + de l’étrange +réalisé sa part de l’enquête, soit en enquêtant D , + ébutante exaltée douée +par soi-même : + 怪 le cargo transportait entre autres une jarre Lucy peut être rencontrée par les PJ et pré- + mystérieuse importée de Chine continen- sentée au choix du MJ comme un contact, une + tale. Depuis que cet objet a été livré, les alliée ou une simple relation professionnelle + marins ont retrouvé la parole : il est donc d’un des PJ – de préférence le plus « connec- + probable que ce soit cet objet qui soit à té » d’entre eux, c’est-à-dire celui ou celle qui + l’origine de la malédiction, à cause d’une fait le plus usage du Taonet et qui dispose des + + + + + scénario : l'année du lion + légère fissure ayant laissé s’échapper une connaissances techniques adéquates. La conver- + partie du hei qui s’y trouve contenu ; sation avec Lucy débute par quelques questions + 怪 le transport est mandaté par la famille posées sur un forum du réseau des exorcistes au + Ching, liée aux triades, qui dispose d’un sujet des démons liés au silence et fait état du + entrepôt non loin de là. Selon toute vrai- mystère sur lequel la jeune fat si enquête : les + semblance, la cargaison maudite y a été marins d’un cargo sont tous devenus muets et + déposée ; leur capitaine a fait appel à elle (et ses associés). + 怪 l’objet venait d’un antiquaire. Contacté par + téléphone, il indique que cet objet est, se- + + Ching (Lieu)de la famille + lon la légende, censé avoir recueilli le hei L’entrepôt + maudit d’un gaumeiwu – un renard à neuf + queues, un genre de démon réputé pour + rechercher le silence des forêts après avoir Traits : lugubre, encombré, trop silencieux, + commis son forfait. Attention, les démons source de Hei Yin + de ce type ne sont pas des esprits-renards. En fonction du moment où les PJ arrivent + Bien entendu, aux yeux de l’antiquaire, dans ce lieu, les événements ne se déroulent pas + tout ce folklore ne constitue qu’un argu- de la même manière : + ment de vente – il est plus vendeur que 怪 jusqu’à J + 3, l’endroit est gardé par Ken + superstitieux. Luan et un démon (cf p. 394) au service + d’Alexander ; + Plus les PJ arrivent tard sur cette partie de 怪 durant la matinée et l’après-midi de la veille +l’enquête, moins ils devront la réaliser eux- du Nouvel An (J + 4), Ginny Ching et ses +mêmes, car Lucy aura avancé de son côté. mogwaai s’y trouvent avec Ken Luan. Mais +Cependant, celle-ci ne se sent pas forcément la le démon accompagne Alexander et les +capacité d’entrer par effraction dans l’entrepôt danseurs possédés dans les préparatifs des +gardé de la famille Ching pour en avoir le cœur festivités du soir et n’est donc plus présent ; +net. Elle cherche plutôt à convaincre les PJ que 怪 une fois le rituel de Ginny Ching accompli et +leurs deux affaires sont liées et qu’il faut qu’ils la chape de silence tombée sur une grande +coopèrent. partie de la ville, atténuant tous les bruits, + il ne reste dans l’entrepôt que les débris de + la jarre. Cependant, le MJ peut dépenser + 3 points de Tin Ji pour décider que Ken Luan +GAGNER UNE BATAILLE, est aussi resté en retrait dans le but de dis- +MAIS PAS LA GUERRE suader d’éventuels curieux de poursuivre une + Le silence permet d’éveiller le Nin en douceur afin enquête, s’il estime que Ginny ou Alexander +qu’Alexander le contrôle, mais ne s’avère pas indis- ont de bonnes raisons de soupçonner que les +pensable. Si ce rituel n’est pas lancé, le Nin revient, PJ sont à leurs trousses. Le tueur est alors +mais sous une forme incontrôlable. À ce stade de son seul, mais tentera de les piéger. +projet, Alexander est prêt à tout et ira jusqu’au bout… +Cela signifie que le cours du scénario n’est pas altéré Tant que la jarre est entière, cela donne po- +si les PJ parviennent à mettre la main sur la jarre et tentiellement lieu à une scène de combat par- +quelques sbires d’Alexander à temps. C’est la danse ticulière : sans un bruit, totalement silencieuse +corrompue qui constitue l’élément crucial en détour- malgré la violence des coups. Selon le moment +nant l’alimentation en hei du Nin, de façon à l’utiliser où les PJ interviennent (surtout entre les jours +pour l’invoquer dans Lion Rock. J et J + 3), il n’est pas certain qu’ils aient déjà + entendu parler de Ginny Ching. Il n’est pas non + plus certain qu’ils fassent le rapprochement + entre la jarre contenant le hei d’un démon du + silence, le Nouvel An et le Nin. + + + 407 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Les débris de la jarre contenant le démon 怪 les rencontres avec les mogwaai qu’ils ont + du silence peuvent être étudiés. Avec un jet de pu forcer à parler (surtout s’ils sont parve- + Géomancie (Neutralisation) / 2, il est possible nus à remonter jusqu’à leur chef) et les dif- + de sonder l’énergie néfaste qui les imprègne en- férents lieux visités (en particulier le site + core. Avec un jet d’Exorcisme / 1, on peut aussi du rituel d’invocation des ok mo et l’entre- + lire le sceau qui fermait le récipient et indiquait pôt où se trouvait la jarre du démon du si- + le type de démon dont il contenait le hei. lence) confirment une partie du rituel ; les + Si les PJ parviennent à neutraliser Ken Luan recherches sur le Taonet et en bibliothèque + ou Ginny Ching, ils seront alors en mesure de complètent également le panorama qu’ils + les interroger. Des jets en opposition d’Enquête se font du danger ; + (Interrogatoire) sont nécessaires et peut-être 怪 une utilisation de Prière Céleste ou de + aussi des jets de Mondanités (Négociation) Divination leur octroie des informations + s’ils veulent les convaincre des enjeux et dan- complémentaires. Utiliser Exorcisme (Traque) + gers encourus. Si nous sommes à J + 4, Ken permet de suivre les mogwaai ou de retrouver + sait précisément où va se dérouler le rituel de la trace des ok mo, une fois qu’ils savent à + Lion Rock, mais ne sait pas de quoi il s’agit. Il quoi ils ont affaire ; + peut juste dire qu’il devait rejoindre son patron 怪 Les PJ peuvent aussi interroger directe- + (ou sa patronne) à cet endroit cette nuit, après ment Ken Luan ou même Ginny Ching selon + s’être débarrassé d’eux. Si nous sommes avant les rencontres et affrontements qui ont eu + J + 4, Ken ne connaît que l’endroit où résident lieu entre J + 3 et J + 4 dans la chronologie. + Ginny Ching et ses mogwaai, et le fait qu’elle + s’avère responsable des enlèvements ainsi que En étudiant de très près les rituels de Zi + de la tentative d’assassinat sur Maximilian (qu’il Wei, il reste possible de comprendre le plan + croit bel et bien mort). Le détail de ce que sait d’Alexander Weng et d’en déduire que, pour que + Ginny et de comment la convaincre est décrit le Nin soit invoqué, il faut une figure représen- + dans le chapitre qui lui est réservé (cf p. 398). tative de lion suffisamment puissante. À partir + de cette information, deviner de quoi il s’agit ne + se révèle normalement pas très difficile. Le MJ + peut utiliser la sagacité des alliés des PJ pour + RandonnÉe leur donner discrètement des indices : Paul et + Leonie Fei, ainsi que Andy Liu et Jeffrey Chu, + nocturne disposent d’informations sur le Nouvel An et ses + rites, tandis que Maximilian Pang et Lucy Cho + Il existe plusieurs façons pour les PJ d’obte- apportent des indices concernant les mythes et + nir des indications les incitant à se rendre à Lion rituels occultes susceptibles d’être détournés. Il + Rock pour stopper le rituel de réveil du Nin : est même possible de faire intervenir Diana Pan + 怪 le mythe du Nin lui-même et les indications Han, qui mène l’enquête sur les artisans et dan- + récupérées concernant Zi Wei, ainsi que le seurs disparus et qui a eu vent du fait que cer- + constat que des danseurs et des têtes de tains d’entre eux ont été aperçus du côté du site + lion se sont vus dévoyés de leur fonction de Lion Rock : bien entendu, elle ne préviendra + première les amènent à penser qu’un sor- les PJ que si elle a été auparavant convaincue de + cier ou une sorcière mal intentionné(e) pré- la nature surnaturelle de l’affaire durant leurs + voit de gâcher les festivités du Nouvel An ; discussions et s’ils se trouvent en bons termes. + + + + +408 + Il est important de ne pas donner la solution les chroniques +du scénario aux PJ, mais il est tout aussi crucial Confrontation finale + de l’étrange +de ne pas les laisser dans une impasse – après +tout, les joueurs ne sont pas des Hongkongais Selon la manière dont se sont déroulés les +disposant de tout le savoir de natifs concernant événements de l’acte précédent – Le lion est +le Nouvel An ou la géographie de la ville. Les mort ce soir (cf p. 399), il est possible que Ginny +PNJ constituent donc d’excellents moyens de soit toujours aux commandes de l’opération ou +les remettre sur la bonne voie si nécessaire, qu’elle ait été mise hors d’état de nuire et que +d’une façon suffisamment naturelle pour que les Alexander Weng soit obligé de s’en charger lui- +joueurs n’aient pas l’impression d’être pris par même. En fonction de la manière dont le MJ + + + + + scénario : l'année du lion +la main du début à la fin. souhaite gérer ce scénario et ses éventuelles + Il est aussi important que l’enquête et le mys- suites, diverses options s’offrent alors à lui (cf +tère perdurent jusqu’à quelques heures avant la encart). Dans tout le reste de ce chapitre, nous +nouvelle année : les PJ ne doivent pas être en appellerons « le sorcier » celui ou celle qui mène +mesure de connaître à l’avance le lieu du rituel le rituel – il peut s’agir de Ginny ou d’Alexander. +ou même l’existence d’Alexander Weng. Il est Le sorcier est accompagné des danseurs +même possible qu’ils ne soupçonnent que Ginny possédés par les ok mo et un démon lui sert de +Ching jusqu’au bout et qu’Alexander Weng garde du corps (s’il a été vaincu à l’entrepôt (cf +s’en sorte (cf encart à ce sujet dans le chapitre p. 406), il peut éventuellement être remplacé +Confrontation finale p. 410). par un autre fraîchement invoqué, mais ayant + le même profil). Quand les PJ arrivent au som- + met du site, les danseurs réalisent une danse + Lion rock (Lieu) pervertie en utilisant une tête de lion souillée. + Une connaissance pointue de la danse et des + Traits : touristique, escarpé, boisé, proche du Ciel rituels de Zi Wei peut aider les PJ à comprendre + Avec ses sentiers de randonnées, ses nom- ce qui se passe, mais aussi à préparer un plan +breux arbres où logent des singes et sa vue pour empêcher le sorcier de réveiller le Nin – et +imprenable sur Kowloon et les Nouveaux ainsi éviter qu’il ne s’incarne dans Lion Rock et +Territoires, ce site touristique se révèle très fré- ne ravage Hong Kong. Si le rituel du silence a +quenté – même à l’approche du Nouvel An, bien eu lieu, il est possible que le sorcier parvienne +qu’il ne soit alors pas au centre de l’attention, à contrôler le Nin une fois réveillé mais, pour +car de nombreuses autres festivités attirent les les PJ, cela ne change pas l’ampleur de la catas- +curieux partout en ville. trophe et ils feront sans doute tout ce qui est en + Le panorama depuis le sommet de Lion Rock leur pouvoir pour que cela ne se produise pas. +s’avère encore plus spectaculaire la nuit, au La danse impie est réalisée en sens inverse +moment du rituel où il est le plus probable que de la chorégraphie normale. Les PJ peuvent +les PJ s’y rendent. S’ils gravissent Lion Rock à émettre différentes idées sur la manière d’em- +pied, la randonnée se révèle plutôt sportive : pêcher le rituel de fonctionner. Voici quelques +des jets de Prouesse (Athlétisme, Endurance ou exemples : +même Escalade) / 1 sont nécessaires. Un PJ perd 怪 réaliser eux-mêmes une danse du lion. Il +1 point de Zing par jet raté, pour signifier son faut qu’ils soient au minimum deux et ils +état d’épuisement une fois parvenu au sommet. peuvent recevoir un bonus de 2 dés sup- + Le nombre de jets est laissé à la discrétion du plémentaires à lancer sur leurs jets d’Art +MJ en fonction de l’accentuation souhaitée du (Danse) s’ils utilisent la tête achevée par +parcours de ce décor emblématique. Cependant Andy. Ils peuvent aussi avoir amené leurs +une recommandation de 3 jets correspond à propres danseurs, s’ils se sont alliés à +une bonne moyenne pour des fat si débutants. l’école du Tigre volant ; +Il est possible qu’au moins l’un de ces jets soit 怪 utiliser la magie, par exemple Géomancie +d’une difficulté de 2, s’il reste des mogwaai (Neutralisation) pour dissiper le hei accu- +qui piègent le chemin. Un affrontement face mulé par les danseurs possédés avant qu’ils +à quelques démons survivants peut également ne le redirigent vers Lion Rock ; +éclater en chemin. Si le MJ dépense 3 points de 怪 combattre les danseurs pour en réduire le +Tin Ji lors d’un jet raté, le PJ concerné se blesse nombre et rendre le sortilège inefficace. +en chutant d’un point particulièrement escarpé Les PJ peuvent être venus avec des alliés, +ou le temps change brusquement, ce qui aug- que ce soient des membres de la police ou +mente de 1 la difficulté du prochain jet. d’autres combattants. Même si Lucy Cho et + Maximilian Pang ne sont pas vraiment en + état de combattre avec eux, Leonie Fei ne + demande qu’à les suivre ; + + + 409 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + ALEXANDER WENG EN TANT QU’ADVERSAIRE RÉCURRENT DES PJ + (OPTIONNEL) + Si c’est encore Ginny Ching qui constitue l’adversaire des PJ et non Alexander Weng directement, il s’agit + d’une occasion de faire de ce dernier un grand méchant récurrent – qui interviendrait dans d’éventuelles suites à + ce scénario. Après avoir sauvé Hong Kong, les PJ pourraient très bien se rendre compte que Ginny était manipulée + depuis le début et qu’en fait le vrai sorcier se trouvant derrière tout cela leur a échappé. Ils peuvent découvrir que + cet adversaire n’est autre qu’un ancien collègue corrompu. Voici la méthode à suivre pour rendre tout cela effectif : + 怪 faire en sorte que Ginny Ching soit celle qui réalise le rituel final, Alexander n’étant pas resté sur place afin + d’éviter d’être lui-même victime de la colère du Nin – en particulier si les fat si sont parvenus à empêcher le + rituel de silence et donc à décourager Alexander de contrôler la créature ; + 怪 lorsque les PJ interrogent Ginny une fois vaincue, lui faire avouer qu’elle ne travaillait pas seule et que son + maître finira le travail tôt ou tard. Effet garanti si elle ponctue cette révélation d’un grand éclat de rire et + d’un regard pensif et admiratif adressé à son mentor, qui se trouve bien sûr déjà loin. + Comme les PJ sont parvenus à contrer ses plans, et peut-être même à l’identifier, Alexander Weng devient leur + ennemi privilégié. Recherché par les autres fat si, il sera obligé de se cacher pour un temps, mais il est certain + qu’il reviendra pour se venger un jour ou l’autre. + + + 怪 utiliser des pétards pour provoquer du Pour un groupe de 4 fat si débutants : + bruit, se vêtir de rouge ou utiliser des 怪 Nombre de Succès à obtenir : 25 + armes à feu ou alchimiques peut également 怪 Nombre de jets moyen par PJ : 4 + avoir un effet supplémentaire, leur offrant 怪 Si un combat se déclenche, un minimum de + des dés-fastes sur leurs jets ; 2 tours complets de la roue d’initiative est + 怪 il est bien entendu également possible à prévoir. + d’utiliser la magie de Zi Wei, voire d’obte- + nir sa bénédiction avec Prière Céleste. Note : si les PJ sont particulièrement nombreux, ou + plus expérimentés, il est possible d’augmenter légère- + Les PJ pouvant mettre en œuvre plusieurs ment le nombre de Succès à obtenir, par exemple à 30 + de ces plans à la fois, il convient de mettre en ou même 35, et de baisser le nombre de jets par PJ à + œuvre une action longue (cf p. 236) avec une 3 pour éviter que ce soit trop long ou trop fastidieux. + Jauge de Succès. Chacun des jets effectués par + les PJ se voit alors considéré comme partie in- Cette confrontation finale se doit d’être à la + tégrante de cette action longue, et la scène se hauteur de l’enjeu, et le sorcier et ses sbires ne + poursuit jusqu’à ce que le nombre de Succès se laisseront pas abattre facilement. Le MJ peut + ciblé soit obtenu en un temps limité. librement utiliser la Tin Ji pour compliquer les + choses : les adversaires se sont eux aussi prépa- + rés à les recevoir, en particulier si les PJ n’ont + pas été discrets durant leur enquête. + + + + + Conclusion + Empêcher l’achèvement de la danse rituelle scénario. Cependant, les PJ ont pu aussi se faire + destinée à réveiller le Nin assure la sécurité de des ennemis : la famille Ching laissera-t-elle im- + Hong Kong – qui n’aura pas à subir la furie d’un puni le triste sort infligé à Ginny ? S’il est parve- + monstre primordial affamé de hei en pleines fes- nu à fuir, Ken Luan épargnera-t-il des personnes + tivités du Nouvel An. connaissant son visage ? Quant à Alexander, le + Les PJ ont donc accompli leur devoir et se voilà sans doute propulsé au rang de némésis du + sont attiré quelques sympathies au passage : groupe… + Maximilian, Andy, Jeffrey, l’école du Tigre vo- Au terme du scénario cependant, les PJ ont + lant, Lucy Cho et même Diana Pan Han peuvent bien mérité de souffler un peu et de profiter du + devenir des contacts et alliés au terme de ce Nouvel An comme il se doit ! San nin faai lok ! + + +410 + les chroniques + Profil des Principaux PNJ + de l’étrange + + + + Alexander Weng Maximilian Pang + + + + + scénario : l'année du lion + Niveau de Menace : Initié Niveau de Menace : Accompli + Capacité de Nuisance : Adversaire Capacité de Nuisance : Allié + Aptitude physique : 2 Aptitude physique : 2 [1] + Aptitude martiale : 2 (Mains Nues) Aptitude martiale : 2 (Bâton) [1] + Aptitude mentale : 2 (Taonet) Aptitude mentale : 3 (Vigilance) [2] + Aptitude sociale : 2 Aptitude sociale : 2 (Enquête) [1] + Aptitude spirituelle : 3 (Mythologie, Aptitude spirituelle : 3 (Mythologie, +Domination, Transfiguration, Purification) Invocation, Protection, Punition) [2] + Vitalité : 8 Vitalité : 8 + Hei : 12 Hei : 12 [0] + Art martial : Jeet Kune Do Armes : Bâton « Entre Deux Ciels » antique + • Le point qui intercepte et richement décoré, qui constitue son san- + • Briser le rythme hei (dégâts 2, peut doubler les dégâts avec la + • Sois comme l’eau dépense de 1 point de Hei, portée contact et + ajoute 1 dé-faste sur tous ses jets d’attaque) + Alexander Weng est un homme très dan- Art martial : Le Bâton de la Double-peau +gereux, versé à la fois dans les arts martiaux de Tigre +et la magie. Il s’entoure en général de créa- • Le tigre mord deux fois +tures soumises par sa Domination lorsqu’il se • Briser le crâne du tigre +prépare à affronter des adversaires. S’il est • Esquiver les griffes du titre +pris au dépourvu, il use de ses capacités de +métamorphose couplées à son kung-fu pour Maximilian Pang peut se révéler un allié +prendre le dessus sur ses adversaires. précieux pour les PJ, car il dispose de nom- + breux renseignements. Garder le contact + avec lui pour de prochaines aventures s’avère + Ginny Ching intéressant : il peut devenir un mentor pour + quiconque souhaite apprendre son art martial + Niveau de Menace : Apprenti ou ses Spécialités d’Exorcisme. Cependant, + Capacité de Nuisance : Adversaire ce fat si expérimenté ne se joint pas aux PJ + Aptitude physique : 1 pour les combats : lorsqu’ils le rencontrent, il + Aptitude martiale : 1 est affaibli, toutes ses aptitudes se voient di- + Aptitude mentale : 2 (Occultisme) minuées de 1 et son Hei se réduit à 0. Il doit + Aptitude sociale : 2 (Tromperie, Charme) reprendre des forces et compte sur eux pour + Aptitude spirituelle : 3 (Domination, sauver Hong Kong et le Nouvel An. +Essence, Aura) + Vitalité : 4 + Hei : 12 + + Ginny évite le combat autant que possible +et utilise plutôt les mogwaai sous ses ordres +pour affronter ses adversaires tandis qu’elle +prend la fuite. En dernier recours, elle use de +son Hei pour augmenter ses capacités phy- +siques avant de passer à l’attaque. + + + + + 411 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Ken Luan Jeffrey Chiu + Niveau de Menace : Apprenti Niveau de Menace : Profane + Capacité de Nuisance : Adversaire Capacité de Nuisance : Figurant + Aptitude physique : 2 Aptitude physique : 1 + Aptitude martiale : 3 (Poignards) Aptitude martiale : 1 + Aptitude mentale : 1 Aptitude mentale : 2 (Mécanique) + Aptitude sociale : 2 Aptitude sociale : 2 + Aptitude spirituelle : 1 Aptitude spirituelle : 1 + Vitalité : 8 Vitalité : 4 + Hei : 4 Hei : 4 + Armes : paire de couteaux papillon (3 dé- + gâts, portée contact – ce sont des objets en- Jeffrey ne combat pas. Si des événements + chantés qui drainent le Hei, le MJ est invité étranges ou dangereux surviennent, il tente + à dépenser les dés-néfastes obtenus par les de fuir ou appelle la police. + PJ qui affrontent Ken Luang pour leur faire + perdre du Hei avec l’Effet « Trois Trésors » (cf + p. 291), en particulier s’ils ont été blessés par Paul et Leonie Fei + ses couteaux) + Art martial : La Forme des Couteaux Niveau de Menace : Apprenti + papillon Capacité de Nuisance : Allié + • Les papillons sanglants Aptitude physique : 2 + • Le vol des papillons Aptitude martiale : 2 (Bâton, Mains Nues) + • Les ailes du papillon Aptitude mentale : 1 / Paul : 2 + Aptitude sociale : 1 / Leonie : 2 + Ken évite les confrontations directes et Aptitude spirituelle : 1 + préfère prendre ses adversaires par surprise, Vitalité : 8 + quand ils se trouvent isolés les uns des autres. Hei : 4 + Acculé, il n’hésite toutefois pas à se battre, Art martial : Le Bâton de la Double-peau + cherchant à blesser grièvement l’adversaire de Tigre + qui lui semble le plus dangereux avant de • Le tigre mord deux fois + prendre la fuite si possible. • Briser le crâne du tigre + • Esquiver les griffes du titre + + Andy Liu Paul et Leonie ont quasiment le même + profil, mais Paul est un peu plus réfléchi et + Niveau de Menace : Profane Leonie un peu plus douée pour tout ce qui + Capacité de Nuisance : Figurant a trait aux relations sociales. Si les PJ l’ac- + Aptitude physique : 1 ceptent, Leonie propose de venir les aider + Aptitude martiale : 1 à retrouver les élèves disparus et combattre + Aptitude mentale : 3 (Mécanique) leurs ravisseurs. + Aptitude sociale : 2 + Aptitude spirituelle : 2 (Artisanat) + Vitalité : 4 + Hei : 8 + + Note : la Spécialité Artisanat d’Andy corres- + pond à sa capacité à fabriquer les têtes de lion + et peut également servir à donner des indica- + tions sur le mythe du Nin. + + Andy est âgé et ne combat pas. En cas de + danger, il appelle à l’aide en espérant que + quelqu’un vienne à son secours. + + + + +412 + Diana Pan Han mogwaai type les chroniques + + + de l’étrange + Niveau de Menace : Profane Niveau de Menace : Apprenti + Capacité de Nuisance : Allié Capacité de Nuisance : Sbires + Aptitude physique : 1 Aptitude physique : 1 + Aptitude martiale : 2 Aptitude martiale : 1 + Aptitude mentale : 2 (Enquête) Aptitude mentale : 1 + Aptitude sociale : 2 Aptitude sociale : 1 + Aptitude spirituelle : 1 Aptitude spirituelle : 1 + Vitalité : 4 Vitalité : 4 + + + + + scénario : l'année du lion + Hei : 4 Hei : 4 + Capacités surnaturelles : + Diana est une inspectrice sensible au sur- • Arme (griffes et crocs) 2 +naturel et ouverte à l’idée de coopérer avec • Peur (permanent) 2 +les fat si, mais elle considère tout de même • Protection (boue) 1 +que les disparitions relèvent de sa compé- +tence et que seules les profanations sont du Pour le profil de Jau Hung, cf p. 374. +domaine des PJ. Attentive et prudente, elle Ce profil correspond à tous les mogwaai +appellera ses supérieurs si la situation semble qui se trouvent sous ses ordres ou ceux de +lui échapper et n’hésitera pas à contacter le Ginny et Alexander. En dehors de l’obligation +département F si nécessaire, ce qui provoque- d’attaquer pour obéir à leur supérieur, les +ra immanquablement l’arrivée de Daniel Sung mogwaai essaient plutôt d’éviter et de fuir les +(cf p. 28) ou d’un de ses collègues. fat si le plus possible. Ils peuvent au choix + être utilisés en bande (dans ce cas, multiplier + la Vitalité par le nombre d’individus) ou bien + Lucy Cho individuellement. La plupart du temps, les + mogwaai se déplacent en groupe de trois à + Niveau de Menace : Apprenti cinq individus. Au total, une quinzaine de ces + Capacité de Nuisance : Allié démons sont impliqués dans les opérations en + Aptitude physique : 1 cours pour le Nouvel An. Afin de donner plus + Aptitude martiale : 1 de personnalité à chacun des mogwaai, le MJ + Aptitude mentale : 3 (Technologies) est libre d’ajouter 1 à la valeur de l’une de + Aptitude sociale : 2 leurs Aptitudes au choix. Il y a ainsi des spéci- + Aptitude spirituelle : 2 (Mythologie, Prière mens plus malins ou plus forts. Attention ce- +Terrestre, Divination) pendant, seul leur chef Jau Hung s’intéresse + Vitalité : 4 à la magie et dispose d’une valeur supérieure + Hei : 8 dans son Aptitude spirituelle. + Armes : « L’Œil du Ciel », un monocle +cerclé de jade qui constitue son sanhei (lui +procurant 1 dé supplémentaire à lancer sur +tous ses jets d’Enquête et d’Observation, lui +permettant de voir l’invisible contre 1 point +de Hei) + + Lucy est une fat si débutante qui peut de- +venir un contact ou une alliée des PJ. Elle dis- +pose surtout de connaissances ésotériques et +d’une maîtrise de la technologie qui peuvent +s’avérer utiles. + + + + + 413 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + Groupe de danseurs corrompus démon garde du corps + Niveau de Menace : Apprenti Niveau de Menace : Apprenti + Capacité de Nuisance : Sbires Capacité de Nuisance : Adversaire + Aptitude physique : 2 Aptitude physique : 3 + Aptitude martiale : 3 Aptitude martiale : 3 + Aptitude mentale : 2 Aptitude mentale : 2 + Aptitude sociale : 2 Aptitude sociale : 2 + Aptitude spirituelle : 1 Aptitude spirituelle : 2 + Vitalité : 48 Vitalité : 12 + Hei : 4 Hei : 8 + Capacités surnaturelles : Capacités surnaturelles : + • Don inné (Mains Nues) Arme (crocs) 3 + • Don inné (Danse) Peur 2 + • Intangibilité (uniquement sous forme Régénération 1 + spirituelle) + • Possession 2 Le démon garde du corps ressemble à un + grand humain à la peau presque rouge avec + Les danseurs possédés sont nombreux. des petites cornes sur le front et des crocs + Bien que proches des ok mo que les PJ dans la bouche. Il porte une tenue de docker + connaissent peut-être déjà, ces démons sont qui met en valeur sa puissante musculature et + légèrement différents dans le sens où ils ne ne parle presque pas. Il obéit au sorcier qui + sont pas vraiment indépendants et se révèlent le commande pour l’instant, car il lui est lié + un peu moins puissants. Il s’agit d’esprits dé- par un pacte, mais il n’apprécie guère d’être + moniaques qu’Alexander Weng a en réalité traité comme un serviteur. Il n’a qu’une hâte : + façonnés. Ceux-ci n’ont donc qu’une hâte : en finir avec les PJ pour pouvoir retourner à + remplir la mission pour laquelle ils sont venus ses occupations. Il dispose d’une résistance + au monde. Ils utilisent les capacités martiales à la magie hors du commun pour quelqu’un + de leurs hôtes pour se défendre si des exor- de son espèce, que le MJ peut matérialiser + cistes les agressent. en utilisant sa Tin Ji en vue de le protéger + de certains sorts et Effets – notamment la + Domination – tant qu’il se trouve au service + du sorcier, car ce pacte semble l’empêcher + d’être dominé par tout autre. + + + + +414 + les chroniques + de l’étrange scénario : l'année du lion 415 + ri o + én a +sc + r t u e + t o u r s + n e l +u sur paul e e s e a u + or , + é un scén + ure + a ri + & co + o de + r rection + s + n m + lie e he , + r + ju illaum ameire + i + + gu ric l sier + céd d’huis + i n + l n + + + + ct a + seils, + rele rom + con + + + + + 417 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Ce scénario est destiné à un groupe de fat si débutants (niveau apprenti ou initié). + Les PJ y croisent sans doute pour la première fois l’Ordre des Cieux penchés, qui planifie de + mettre fin à une dynastie mystique d’une importance primordiale pour l’équilibre cosmique. + + + + + Introduction + Où le MJ prend connaissance des tenants et + aboutissants d’Une tortue sur leurs épaules. + + RAPPEL + L’Ordre des Cieux penchés (cf p. 102) est une secte + Synopsis dirigée par l’un des plus puissants occultistes que + compte Hong Kong, William Hung. Son objectif est de + Bien que simple mortel, Stephen Wong ressusciter le démon Gung Gung, puis de précipiter + descend directement d’une lignée de gwaizing la fin de l’harmonie céleste sous son autorité. Quelle + (esprits-tortues) affiliée à l’une des plus impor- meilleure façon de procéder que de s’attaquer au pi- + tantes divinités du panthéon taoïste : la Tortue lier qui le soutient, la Tortue céleste ? + céleste. C’est la tâche que Hung a confié à Thomas Tsi et + Dans le cadre de ce scénario, un sorcier ses séides, sous la couverture profane de l’Amicale de + dévoyé appartenant à l’Amicale des Sigaa, Sigaa. + Thomas Tsi, cherche à transformer Stephen + Wong en créature corrompue. S’il réussissait, + le hei souillé de ce malheureux contaminerait + l’ensemble de sa lignée comportant de puissants + esprits-tortues et s’insinuerait dans le domaine + de la Tortue céleste elle-même ! Ses défenses af- LE SORCIER + faiblies, la divinité, qui porte sur ses puissantes Si vous avez joué le scénario L’Année du Lion et + pattes la voûte céleste, serait alors à la merci qu’Alexander Weng a survécu aux événements du + d’une attaque de la secte. Nouvel An, il a peut-être rejoint l’Ordre des Cieux + Il ne resterait alors plus au sorcier et à ses penchés. À ce titre, il peut faire partie du casting de ce + séides qu’à entrer dans le domaine sacré de la scénario en tant qu’allié de Thomas Tsi. L’importance + Tortue céleste et à asservir ou tuer la noble qu’il peut prendre dans l’intrigue est laissée à la dis- + créature, à s’approprier son énergie vitale et crétion du MJ – Thomas et Alexander pouvant l’un + son domaine, pour faire chavirer l’équilibre comme l’autre être le dirigeant des opérations. + cosmique lui-même et se rapprocher fortement + de l’objectif de l’Ordre des Cieux penchés : la + résurrection du puissant Gung Gung et son ins- + tallation sur le trône de l’Empereur de Jade ! + + + + +418 + les chroniques +Chronologie Thomas Tsi + de l’étrange + Membre de l’Ordre des Cieux penchés de- + Cette chronologie indique la façon dont les puis plusieurs années, Thomas Tsi lui a apporté +événements se déroulent sans intervention des PJ. un avantage précieux grâce à sa maîtrise de la + magie. Ambitieux, l’individu espère bien se his- + 怪 J – 2 : la famille de Stephen Wong est enle- ser au plus haut de la hiérarchie de cette secte + vée par l’Ordre des Cieux penchés. eschatologique – comptant devenir un dieu aux + 怪 J 0 : Stephen Wong entre dans le bureau côtés de Gung Gung. + + + + + scénario : une tortue sur leurs épaules + des fat si en milieu de matinée. Totalement impitoyable, il n’a jamais eu l’in- + 怪 J + 1, vers 23 h : arrivée de Thomas Tsi tention d’épargner la famille Wong – dès lors que + et de ses hommes escortant Stephen Wong. Stephen aura subi sa métamorphose, il donnera + Début du rituel à minuit, fin une demi-heure l’ordre d’éliminer femme et enfants. Toutefois, + plus tard. le sorcier ne brille pas par son courage : il + 怪 J + 2, 6 h du matin : la famille de Stephen se dissimule derrière des sbires (mortels ou + Wong est abattue. surnaturels) et évite de combattre lui-même. + 怪 J + 4, vers 9 h : si le rituel a réussi, les + forces de l’Ordre des Cieux penchés inves- + tissent Le Délice nacré et le domaine de la + Tortue céleste. + 怪 J + 6, minuit : si l’assaut contre la Tortue + céleste n’a pas été repoussé, l’ordre cos- + mique est secoué sur ses fondements et + commence à s’affaiblir. Il faudra quelques + jours pour qu’une chute totale se pro- + duise : une contre-attaque est donc encore + possible. Mais quelque part au fin fond du + Deijuk, le démon Gung Gung ouvre les yeux + et commence à s’extirper de la gangue qui + le retient… + + + +Protagonistes +impliqués + Stephen Wong + L’écrasante majorité des gwaizing sont +devenus des esprits au contact de la Tortue +céleste, qu’ils considèrent donc comme leur +grande ancêtre. Parmi ces nombreuses lignées, +une ressort tout particulièrement de par son rôle +sur Terre : assurer le lien entre les mortels et +la Tortue céleste au moyen de rituels réguliers +consolidant l’ordre céleste. Au fil du temps, ces +esprits-tortues se sont mêlés aux humains et +Stephen Wong s’en révèle le représentant actuel. + Menant une existence discrète pour protéger +ce secret et assurer la sécurité de sa descen- +dance, ce modeste fonctionnaire se trouve dans +une situation terrible et n’entrevoit que son +propre sacrifice – via les PJ – pour sortir sa fa- +mille de ce guêpier. Stephen Wong ne dispose +hélas pas de la force d’âme que son rôle exige +et abdique trop facilement face à la difficulté. + + + 419 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Acte 1 – Un nouveau client + Où les PJ reçoivent une requête des plus Une fois à l’intérieur de l’entrepôt, nous allons + incongrues. commencer à pratiquer une sorte de rituel dont + je serai le centre. Je ne sais pas exactement com- + ment cela va se passer, mais je vous demande de + ne l’interrompre sous aucun prétexte, quoi qu’il + Une demande étonnante se passe. C’est très important ! Peu après minuit, + le rituel sera terminé. À partir de ce moment, peu + En milieu de matinée, un nouveau client rend importe la manière dont vous vous y prendrez : je + visite aux PJ Chez Lau (ou en tout lieu où ils traitent ne dois pas sortir vivant de cet entrepôt ! Je vous + leurs affaires) : il s’agit d’un homme d’une quaran- rassure, je ne serai alors plus vraiment humain, + taine d’années vêtu d’un costume chemise-cravate vous n’aurez pas de cas de conscience et n’en- + bon marché. Il a les cheveux courts, porte une paire freindrez aucune loi céleste. Les gens qui m’en- + de lunettes à la monture noire et arbore un physique toureront seront déterminés et prêts à tout, et il y + assez passe-partout. Surtout, le dénommé Stephen aura au moins un sorcier parmi eux – alors soyez + Wong paraît nerveux : il transpire, écarte régulière- bien préparés, utilisez tous vos trucs d’exorcistes, + ment le col de sa chemise ou remet en place ses lu- vos armes ou vos techniques martiales, peu im- + nettes. Son regard est fuyant et il semble vraiment porte – mais je dois absolument mourir ! » + pressé de repartir. Les fat si ressentent en lui un hei + particulièrement chargé en énergie Yin. Stephen Wong ne compte pas faire durer cet + Quand Stephen Wong ouvre enfin la bouche, entretien. Il doit retourner au plus vite à ses + il parle vite et s’exprime sur un ton sérieux, voire recherches avant que quiconque ne s’aperçoive + grave. Il n’a pas l’air d’être du genre à plaisanter qu’il s’est éclipsé. Il le dira très clairement aux + et reste imperméable à d’éventuelles tentatives fat si qui – tout au contraire – ont certainement + d’humour des PJ. des questions à poser ! + « Mon nom est Stephen Wong, je suis Stephen acceptera de répondre rapidement à + fonctionnaire aux douanes. Mon métier n’a rien à quelques-unes mais, si cela dure trop, il se lève- + voir avec ma présence ici, mais je veux que vous ra, s’excusera et se dirigera vers la sortie, même + sachiez que je suis honnête et que vous pouvez si les PJ n’ont pas encore formellement accepté + vous fier à ma parole. Je ne suis pas un homme le travail. Il compte sur leur sens du devoir et + extravagant et ma requête est des plus sérieuses. leur volonté de protéger l’harmonie céleste. + Quel est votre tarif habituel pour l’extermination + d’une créature corrompue ? » « Je dois vraiment y aller ou ils vont se douter + de quelque chose… » + Si les personnages répondent, sans même + négocier il sort un vieux portefeuille en cuir de + la poche intérieure de sa veste et commence à + compter les billets qu’il pose sur la table d’un + geste vif – même s’il est probable que les PJ l’in- + Quelques informations + terrogent sur la mission qu’il veut leur confier + avant de prendre cet argent. + supplémentaires + Si les PJ sont pertinents dans leurs questions, + « Voilà. Je vous paie intégralement d’avance. En voilà ce qu’ils peuvent apprendre : + échange, je vous demande une chose : demain, soyez 怪 Stephen est un fonctionnaire des douanes, + à vingt heures au Port Victoria – quai 7, entrepôt de catégorie moyenne. Il vit avec sa fa- + 624. Soyez discrets, personne ne doit s’apercevoir mille dans un bel appartement des Mid- + de votre présence. Au bout d’un certain temps, vous Levels. Il y a deux nuits de cela, un groupe + me verrez arriver. Ne vous montrez sous aucun d’hommes – dont l’un pratiquait la magie – + prétexte. Je serai rejoint par des hommes sinistres, ont pénétré chez lui et l’ont rapidement + peut-être même se montreront-ils un peu violents. réduit à l’impuissance. Celui qu’il appelle + Mais ils ont besoin de moi, donc ils ne me feront pas « le sorcier » s’est alors approché de lui + réellement de mal. Là encore, ils ne doivent pas se et a découpé puis prélevé de sa poitrine + douter de votre présence. dénudée un morceau de peau sanglant avec + + +420 + une sorte de couteau rituel. Il l’a examiné Mais il pense avoir choisi la voie la plus sûre. les chroniques + avec un monocle étrange, aux reflets iri- Les PJ pointeront sans doute les incertitudes du + + + de l’étrange + sés. Puis il a dit : « Oui, c’est bien lui. » En « plan » de leur client. Insistez sur sa nervosi- + pleurs, son épouse et ses deux enfants ont té, sa peur. Lorsqu’il parle de ses enfants, les + alors été emmenés et lui a été laissé sur larmes lui montent aux yeux et il assure essayer + place avec la consigne de ne pas prévenir la de faire ce qu’il faut pour leur assurer les meil- + police s’il voulait revoir sa famille en vie ; leures chances de se tirer de ce drame. + 怪 le lendemain, il a reçu un coup de téléphone. Wong convient cependant, si les PJ le lui font + Un homme lui a d’abord fait entendre les remarquer, que neutraliser les malfaiteurs – et no- + cris de sa femme et de ses enfants. Ils sont tamment leur meneur, qui qu’il soit – augmenterait + + + + + scénario : une tortue sur leurs épaules + en vie, mais ils seront tués impitoyablement, les chances de survie de sa famille. Mais il refuse + d’après la voix, si Stephen ne se plie pas à la tout net de participer à quelque plan d’infiltration + demande des ravisseurs. Cette dernière est que les fat si pourraient lui proposer. Cela précipi- + simple : se rendre le lendemain soir à l’en- tera même son départ. Ce que ces derniers doivent + trepôt cité plus haut, à vingt-deux heures comprendre, c’est que Stephen Wong n’arrive pas + précises. Seul, sans arme et sans prévenir avec le meilleur des plans – loin de là ! Mais il est + les forces de l’ordre. L’homme prétend qu’il désespéré et têtu : il s’est convaincu que c’est la + le saurait s’il prévenait la police ; seule solution, et il ne changera pas d’avis. Si les + 怪 Stephen se montre réticent à en parler, mais PJ n’aiment pas ce plan (et ce devrait être le cas), + devant l’insistance des personnages (surtout ils devront en changer sans son accord. + si certains ont sondé son hei), il peut avouer S’ils expriment leur refus catégorique de tuer + qu’il est le descendant d’un puissant jiugwaai, Stephen Wong quoi qu’il lui arrive, ce dernier se + plus précisément un esprit-tortue. Sa lignée montrera insistant, laissant percer le désespoir + est fortement liée à la Tortue céleste et, en auquel il se trouve réduit. Finalement, il quittera + tant que telle, elle est sacrée et ne doit pas les lieux et tentera sa chance auprès d’un autre + s’interrompre sous peine que de grandes cala- groupe de fat si. Il finira par trouver quelqu’un qui + mités s’abattent sur Hong Kong. La survie de acceptera de le tuer à l’heure dite. On peut cepen- + ses enfants est donc absolument primordiale. dant espérer que les PJ, mus par leur conscience + Le sang de cette famille est en effet l’un des aiguë des conséquences métaphysiques que + piliers mystiques de la ville. En s’en prenant pourrait avoir cette mort (quels piètres fat si ils + aux Wong, une personne ou un groupe avec feraient, autrement !), auront à cœur de se mêler + de grandes connaissances occultes peuvent de cette affaire même sans client. Au besoin, l’un + influer sur le domaine de la Tortue céleste et d’eux peut recevoir une vision de Neiowo pour les + même affaiblir cette dernière ; rappeler à leur devoir sacré. + 怪 avant de venir les voir, Stephen a prié et + fait une offrande à la déesse Neoiwo dont + il possède un petit autel consacré dans ET SI LES PJ DÉCIDENT DE TUER + son appartement. La déesse lui est alors STEPHEN IMMÉDIATEMENT ? + apparue pour lui apprendre que, s’il ve- Il faut déjà s’assurer que les joueurs ont bien + nait à devenir une créature corrompue, les compris que tuer un être humain est un péché capital + conséquences en seraient catastrophiques pour un fat si – un crime au regard de l’ordre céleste. + et entraîneraient la fin d’une ère pour Anticiper la mise à mort de Stephen aurait de graves + l’équilibre universel. C’est pour cela qu’il répercussions pour la poursuite de leurs activités ! + a décidé d’organiser sa propre mort. C’est Et surtout, cela condamnerait sa famille à très brève + aussi Neoiwo qui l’a poussé à venir cher- échéance. + cher de l’aide auprès de fat si ; Quant à le tuer une fois corrompu : oui, cela reste + 怪 Stephen ne veut absolument pas que les PJ une possibilité si les PJ renoncent ou échouent à les + s’en prennent aux kidnappeurs. Pour lui, il y sauver, lui et sa famille. Dans ce cas, il s’agirait plu- + a trop de risques que ses enfants soient tués. tôt d’un geste de miséricorde qui va dans le sens de + la Volonté du Ciel. Mais est-ce que tout le monde le + « Je vous paie pour une seule chose : m’éliminer verrait ainsi ? Après tout, d’autres gwaizing peuvent +après ma transformation. Après cela, et seulement avoir vent de l’affaire et en concevoir un sentiment de +après, il faudra retrouver mes enfants. Dès le rancune envers les fat si. Et pourquoi pas la propre +lendemain matin, une lettre sera déposée au bureau famille de Stephen ? Certains enfants, surtout quand +de police avec tout ce que je sais concernant cette leur lignée comporte un hei puissant, se sont déjà +affaire. Ils sauveront ma famille. » montrés précoces dans la maîtrise de la magie. Et la + perspective d’affronter un enfant humain d’une lignée + Évidemment, Stephen n’a aucune garantie sacrée devrait convaincre les plus rustres des fat si de +que sa famille ne sera pas tuée quoi qu’il arrive. tenter de trouver une autre solution que la violence. + + + 421 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Acte 2 – L’enquête + Où les PJ mènent des investigations tous + azimuts. + Offrande et prière + Notez qu’une contrainte forte s’impose aux + PJ : le temps ! Ils n’ont qu’une journée et demie + à Neoiwo + pour agir avant le rendez-vous fixé à l’entrepôt. S’ils se sont montrés assez persuasifs, les PJ + Ils doivent se montrer réactifs et ne pas ont pu apprendre que c’est Neoiwo qui a orienté + perdre une minute s’ils veulent apprendre un Stephen vers eux. En découvrant l’autel, l’un + certain nombre d’informations avant cette d’eux voudra peut-être proposer une offrande + échéance. Il existe ainsi plusieurs pistes que les à la déesse afin de la consulter : avec un sort + PJ peuvent explorer. de Géomancie (Prière céleste ou Divination), il + reçoit alors une vision : une grande tortue se dé- + tache entre le ciel et la mer. Ses colossales pattes + avant paraissent tordues. Cette vision disparaît + Fouille de et laisse place à celle d’un grand plateau circu- + laire, où se trouve un trône doré, qui soudain se + l’appartement de met à pencher dangereusement et provoque la + chute du siège impérial. Dans l’obscurité située + Stephen Wong en dessous de ce plateau, quelque chose semble + bouger – sans que cela ne soit discernable… + En premier lieu, il est possible de rendre une Si les PJ ne visitent pas l’appartement des + petite visite chez Stephen pour en savoir plus Wong et donc ne trouvent pas l’autel, mais sont + sur leur employeur. Celui-ci se rendant direc- au courant du lien entre Stephen et l’Auguste, + tement à son travail dès qu’il sort de l’office ils peuvent obtenir cette même vision ailleurs, + des PJ, son appartement se trouve vide et sans dans un temple ou devant un autre autel dédié + surveillance – l’occasion idéale. – pour peu qu’ils fassent une offrande à Neiowo. + Par le biais de leurs contacts ou via une + simple recherche sur internet (Stephen ayant re- + fusé de leur donner ce renseignement), les fat si + ne devraient pas avoir de mal à trouver l’adresse + de leur client. Stephen et sa famille habitent + Recherches diverses + dans les Mid-Levels, un quartier résidentiel si- + tué sur l’île de Hong Kong mais proche du Port + (ouvrages, + Victoria grâce au ferry. Dans l’appartement lui- + même (où les PJ devront donc s’introduire par + Taonet, contacts, + effraction), il n’y a pas grand-chose à trouver, + même s’il est visible que la porte d’entrée a été + Ressources…) + forcée (Stephen n’a pas trouvé le temps de la Une recherche sur une tortue géante permet + faire réparer). aux PJ de lire (ou relire) les récits des exactions + Dans la chambre à coucher parentale, il de Gung Gung et de la façon dont l’Auguste + s’avère possible avec un sort de Géomancie Neoiwo rétablit l’équilibre céleste avec les + (Neutralisation) de déceler une énergie Yang pattes de la Tortue céleste à l’aube des temps. Il + résiduelle – preuve de l’utilisation d’une relique s’agit là d’une légende connue, il est donc très + mystique par le sorcier. possible que la vision ait orienté les fat si direc- + Enfin, dans le salon, un petit autel consacré tement dessus – cf p. 422. + à la déesse Neoiwo se dresse sur une commode Des recherches effectuées à propos du mo- + – un porte-encens encore encombré de quelques nocle décrit par Stephen amènent à découvrir + cendres à ses côtés. une information importante : il s’agit d’une re- + lique ancienne, nommée l’Œil de Vérité. Une fois + posé sur l’œil de son détenteur, cet artefact est + capable de révéler la véritable nature de tout + objet ou créature examinée à la façon d’un sort + d’Exorcisme (Traque). + + +422 + Pour apprendre l’identité du propriétaire ac- Malheureusement pour les PJ, ce document les chroniques +tuel de cet artefact, de plus amples recherches bénéficie d’une protection occulte : dès que l’un + + + de l’étrange +s’avèrent nécessaires. La dernière fois que l’Œil d’eux tente d’ouvrir la boîte, il est attaqué par +de Vérité a été vu, c’était lors d’une vente aux un animal démoniaque (deoi sam) : un chien +enchères d’objets d’art antique au hall des ventes de garde possédé par un esprit malin qui s’en +de Alyes Auction – situé sur Kowloon Plaza. Il prend à tout intrus ! Dissimulée par un sortilège +faut se rendre sur place et se montrer convain- d’illusion, cette créature attaque toute personne +cant ou bien faire jouer quelques relations pour ouvrant le tiroir (devenant alors visible). Un sort +apprendre qu’une association – l’Amicale des d’Exorcisme (Traque) permet de déceler la pré- +Sigaa – a acquis cet objet il y a trois semaines sence de ce gardien et d’anticiper son attaque. + + + + + scénario : une tortue sur leurs épaules +environ. + Renseignements pris, les PJ apprennent qu’il +s’agit d’une simple association d’historiens très +pointus et férus d’ésotérisme. Si les fat si inter- +rogent directement l’association, il leur faudra + Filature de Stephen +une bonne explication pour justifier cet intérêt Si l’un des PJ suit Stephen, il constate que +soudain envers un groupe qui n’a guère envie ce dernier se rend au bureau des douanes du +de discuter ouvertement de ses achats et de Port Victoria et prend son service comme si de +ses études devant qui que ce soit d’une part… rien n’était. Une longue surveillance de Stephen +et pour éviter de mettre en danger la famille permet au fat si de s’apercevoir qu’il n’est pas +de Stephen d’autre part car, si les soupçons seul sur l’affaire : un esprit-araignée plutôt dis- +du chargé de relations de l’Amicale des Sigaa cret suit également le fonctionnaire. La créature +sont éveillés, William Hung (cf p. 102) lui-même ne se montre pas spécialement méfiante et il +se verra prévenu et le sorcier Thomas Tsi, en n’est pas très difficile de rester invisible à ses +charge de cette affaire, aura vent de tout cela. yeux grâce à un jet de Filouterie (Dissimulation) + Quoi qu’il en soit, les PJ n’apprennent rien de / 2. S’il venait malgré tout à se faire repérer, l’es- +plus s’ils se contentent d’un coup de téléphone prit ne cherche pas l’affrontement et s’échappe +ou d’une simple visite. Mais s’ils s’introduisent – ce qui peut donner lieu à une course-poursuite. +dans les locaux de l’Amicale des Sigaa (qui se Difficile de suivre une créature si rapide pouvant +trouvent à Tai Po, une paisible ville des Nouveaux évoluer sur les murs et les plafonds ainsi que +Territoires – cf p. 174), ils peuvent consulter s’accrocher à distance au mobilier urbain grâce +un registre informatique très bien tenu qui re- à sa toile ! +cense les entrées et sorties des objets antiques Quant à l’employeur des PJ, rien de spécial +des stocks de l’association, moyennant un jet de à signaler. À midi, il sort acheter quelques bou- +Technologie (Informatique) / 1. L’Œil de Vérité y lettes de riz à la viande dans l’un des nombreux +figure bien et il est indiqué qu’il a été sorti par un stands de rue qui entourent le port, puis rentre +certain Thomas Tsi. Il y a même son adresse (qui directement manger à son bureau. Le soir venu, +conduit à sa demeure dans l’acte 3) ! il rentre chez lui pour ne plus ressortir. Le lou- + Mais pour parvenir à consulter ce registre, zing cesse alors de le surveiller et si le PJ pré- +il faut déjà se donner du mal. Le personnel ad- sent décide de le suivre, il le verra se diriger +ministratif de l’association ne fournit en aucun vers une demeure du quartier de Diamond Hill. +cas cette information, il est donc nécessaire d’y C’est là que sont détenus l’épouse et les enfants +avoir accès directement. Et si les PJ optent pour de Stephen… +une infiltration de nuit, l’Amicale des Sigaa n’est +certes pas aussi sécurisée qu’une banque, mais +portes et fenêtres sont verrouillées et il y a un +système d’alarme. Les fat si n’ont probablement +pas le temps de s’intéresser plus avant à l’as- + L’entrepôt +sociation, mais s’ils ont l’occasion de jeter un L’entrepôt appartient à une société française +œil dans le bureau du président, ils devraient se d’import-export. Si les personnages creusent +rendre compte que l’ambiance est empreinte de de ce côté, ils n’apprennent rien d’inquiétant : +Yin. Une fouille réussie avec un jet d’Enquête cette société stocke dans son entrepôt des +(Fouille) / 1 permet de trouver un parchemin quantités de containers débarquant ou embar- +soigneusement rangé dans une boîte en bois quant de Hong Kong depuis ou pour toutes les +précieux, sur lequel figure un texte calligraphié destinations du monde. Si les joueurs ont déjà +en ossécaille : Le Manifeste de l’Ordre des Cieux fait le scénario Jusqu’à ce que la mort nous +penchés. Visiblement, cette secte a pour but de sépare du kit de découverte, il est possible de +réveiller le démon Gung Gung puis, sous son glisser un clin d’œil à l’application de Matt Shao. +autorité, de renverser l’ordre céleste ! L’entreprise Lykeios Corporation ne sait pas + + + 423 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + vraiment ce qu’elle stocke – ou plutôt, elle se fie Si on lui pose la question, il n’a pas remarqué + à ce qu’indiquent les papiers qui accompagnent de cargaison étrange ou douteuse ces derniers + la cargaison. Il est néanmoins possible d’aller temps, et la date prévue pour la cérémonie ne + discuter avec le responsable local à son siège lui parle pas. Il ne connaît pas l’Amicale des + social, l’un des multiples bureaux loués par une Sigaa et – après vérification – ne stocke pas de + société étrangère dans un gratte-ciel de verre container leur appartenant (l’association utilise + brillant du district de Central and Western, sur une société prête-nom). Évidemment, il est hors + l’île de Hong Kong. Il s’agit d’un Français d’une de question que les PJ fouillent l’entrepôt avec + cinquantaine d’années, au look de biker un peu son assentiment et commencent à en ouvrir les + détonant, au vu de son poste de cadre. Il parle containers au hasard… + un cantonais (mais aussi un anglais) impeccable. Chastel paraît sincère, mais ce gérant pos- + Il se nomme Jean-Pierre Chastel. sède un hei étonnant si les fat si y prêtent + attention. En effet, l’entrepreneur n’est pas + humain – néanmoins, il ne ressemble pas vrai- + ment à un jiugwai connu… Un sort d’Exorcisme + (Traque) indique au mieux qu’il se révèle proche + d’un esprit-animal. Voilà qui pourrait induire les + PJ en erreur et les pousser à s’intéresser à cet + individu qui n’a absolument rien à voir avec les + problèmes qu’ils doivent gérer. + Il est vraisemblable que les choses en restent + là. Cependant, si au cours de la conversation + les fat si mentionnent une cérémonie, des êtres + surnaturels ou tout incident qui pourrait surve- + nir dans l’entrepôt à la date et l’heure du rituel + (y compris à une certaine distance de Chastel : + il a l’ouïe fine !), le gérant leur proposera de + renforcer la sécurité et de prévenir la police. Ce + qui devrait faire reculer les fat si ! + Si c’est le cas, à eux d’être convaincants + maintenant mais, dans tous les cas, Jean- + Pierre Chastel – s’il n’est pas un local – pos- + sède une conscience aiguë du surnaturel et des + responsabilités qu’il a en la matière. Il viendra à + l’heure dite s’assurer que tout va bien dans son + entrepôt. Il pourrait s’avérer un allié inattendu + (surtout si les choses tournent mal pour les fat + si, il peut représenter la cavalerie salvatrice). + + + MAIS QUI EST + JEAN-PIERRE CHASTEL ? + Jean-Pierre Chastel est un Neuri, un esprit-loup + tel qu’on en trouve un peu partout dans le monde et + particulièrement en Occident et en France. C’est un + loup solitaire, une rareté pour ces créatures qui vivent + normalement en meute. Habituellement, Chastel se + garde bien de se mêler des affaires des jiugwaai et + des fat si hongkongais (à l’exception des quelques + esprits-crevettes qu’il emploie – comme presque tout + le monde – sur le port), il n’a aucune compétence en + folklore local et essaie simplement de rester discret. + Mais les Neuris possèdent une notion très forte de + ce qui constitue leur territoire. Et l’entrepôt fait partie + de celui de Jean-Pierre Chastel ! S’il est mis au courant, + il ne tolérera pas qu’un rituel de magie démoniaque + soit pratiqué « chez lui ». S’il est présent, il prendra sa + forme de loup (particulièrement massive) et se jettera + sur les hommes de main de Thomas Tsi avec férocité. + + +424 + d’humidité, sans fenêtre et sans porte apparente, les chroniques +Le domaine de plongé dans une semi-obscurité, une conque + + + de l’étrange + phosphorescente fournissant la seule lumière. +la Tortue céleste Au mur, des cartes marines anciennes dé- + taillent les alentours de Hong Kong et de l’Asie + Il est également possible que les fat si dé- du Sud-Est. Assis sur un fauteuil-bulle derrière +cident de prévenir la Tortue céleste ou sou- son bureau, un homme lève les yeux de son ro- +haitent lui demander de l’aide. Mais ce n’est pas man (une vieille édition écornée du Classique +chose aisée que de repérer le domaine d’une des monts et des mers) à leur entrée. Il paraît +divinité de cette importance. Peut-être quelque assez surpris de voir des visiteurs. Sa lèvre su- + + + + + scénario : une tortue sur leurs épaules +esprit marin ou roi-dragon doit-il une faveur à périeure retombe étrangement par-dessus sa +l’un des PJ ? Ou bien une divinité bienveillante bouche, évoquant un bec. Il est chauve et porte +répondra-t-elle aux prières d’un autre ? Toujours une élégante tunique chinoise traditionnelle +est-il qu’au cas où les fat si accompliraient l’ex- d’un bleu roi. Lorsqu’il se lève, une carapace +ploit de découvrir l’entrée secrète du domaine apparaît dans son dos légèrement courbé. C’est +de la Tortue céleste dans le court laps de temps avec un accent distingué qu’il s’adresse aux per- +qui leur est alloué, ils se trouveraient devant sonnages : « Plaît-il ? » +l’entrée d’un des plus grands et prestigieux Cet esprit-tortue s’appelle Jyuseon et il est +restaurants hongkongais, Le Délice nacré situé à le gardien de l’antichambre. Ses consignes sont +Aberdeen – au sud de l’île de Hong Kong. claires : il ne laissera personne entrer dans le + Cet établissement propose des plats de pois- domaine de la Tortue céleste sans ordre ex- +sons, crustacés et coquillages d’une fraîcheur à press – et il n’en a pas reçu concernant les fat +toute épreuve. Dans un décor qui évoque une ca- si. Mis au courant de la situation, il se montre +verne sous-marine, sous des éclairages imitant cependant inquiet. Si Stephen Wong venait à +le miroitement des lumières océanes, de grands être corrompu, toute sa lignée en amont comme +aquariums regorgent de créatures de la mer : en aval en serait affaiblie… Ce qui le concerne +crabes, homards, huîtres, araignées de mer, an- directement ! Il ne sera plus en mesure d’empê- +guilles et autres poissons bigarrés. cher quiconque se présentera de trouver l’en- + Au fond de ce restaurant, un aquarium plus trée dissimulée dans ce bureau et de s’introduire +grand que les autres (vingt mètres de long, sept dans le domaine. Pire encore, si un esprit-tortue +de large et trois de haut) abrite trois requins de corrompu (ou quelqu’un de sa lignée) venait à +bonne taille. À travers les algues qui en parsè- pénétrer dans le domaine, les protecteurs de la +ment le fond, un décor de carton-pâte représente Tortue céleste ne le reconnaîtraient pas comme +une cité sous-marine. Et sous la représentation un ennemi et il pourrait – avec ceux qui l’accom- +dorée et à moitié effacée d’un trident, se trouve pagnent – se présenter sans opposition devant +une petite porte d’à peine un mètre de haut, un pilier de l’équilibre cosmique ! +collée contre la vitre du fond de l’aquarium. Malgré cette menace, Jyuseon ne peut aller +L’entrée du domaine de la Tortue céleste… à l’encontre de ses instructions et laisser entrer + Évidemment, pour l’ouvrir il faut trouver le les PJ. Il ne peut que s’engager à faire remonter +moyen d’entrer dans l’aquarium sans être vu des l’information via la voie hiérarchique et espérer +nombreux clients et du personnel (absolument que des mesures seront prises. Les fat si sont +inconscients de la nature réelle de cette porte), sans doute frustrés d’avoir accompli tant d’ef- +ce qui ne se révèle pas facile dans un restaurant forts pour si peu de résultat apparent. En réa- +ouvert toute la journée et une bonne partie de la lité, ils viennent de faire une vraie différence, +nuit. Et bien sûr, il y a les requins. Ils ne font pas mais ils ne le réaliseront que plus tard. +plus d’un mètre cinquante de long, mais ils ne +verront sans doute pas d’un bon œil l’intrusion +des PJ… UNE RELIQUE IMPROMPTUE + Si les fat si parviennent toutefois à ouvrir la Si les PJ ont prévenu la Tortue céleste de ce qui se +porte, ils pénètrent dans un espace impossible trame, le plus pieux et le plus dévoué à l’ordre céleste +puisque cette ouverture est posée au fond de parmi eux trouvera au moment de préparer ses affaires +l’aquarium. Ils entrent en réalité dans une autre pour le départ vers l’entrepôt un étrange poignard qui +dimension, une bulle posée contre la réalité : le semble taillé dans une large écaille de tortue. +domaine de la Tortue céleste. Cette arme magique ignore toute protection de sa + Le décor qui les accueille est sans doute cible et peut frapper même les créatures immatérielles. +différent du faste auquel on pourrait s’attendre +de la part d’une divinité aussi importante. Une +fois la porte franchie, les PJ se retrouvent dans +un bureau, sans trace aucune d’océan ou même + + + 425 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Acte 3 – Sauver la famille + de Stephen Wong + Il est possible que les PJ décident de tenter Si la famille de Stephen est sauvée, elle se + de sauver la famille de Stephen, malgré l’in- confond en pleurs et en remerciements. Mais où + terdiction de leur employeur. Il leur faut alors la mettre à l’abri en attendant que cette histoire + réussir à s’introduire discrètement dans la mai- soit réglée ? + son où se terrent les ravisseurs et en faire sor- Une fois que les PJ ont trouvé une solution, + tir femme et enfants sains et saufs. Un assaut ils rencontrent alors un nouveau problème : + frontal peut tourner en faveur des fat si mais, Stephen a disparu ! Avec la libération de la + lorsqu’ils arriveront devant la cellule, la famille famille Wong, le sorcier a perdu son moyen de + aura été impitoyablement abattue… pression et réagit donc immédiatement : Stephen + Le repaire se révèle être une grande bâtisse est kidnappé à son tour, en sortant de son tra- + d’un style colonial anglais traditionnel, dotée vail. Ignorant que sa famille se trouve hors de + d’un jardin sans ostentation et entourée d’un danger, confus et effrayé, il restera prisonnier + mur assez haut. Dans le parc, deux hommes ar- des hommes de Tsi jusqu’à l’heure de se rendre + més de pistolets patrouillent. à l’entrepôt pour la cérémonie. + La famille de Stephen est retenue à la Les PJ peuvent tenter de le retrouver (il est + cave, surveillée par un ogre armé d’une puis- détenu dans une maison-cage de Sham Shui Po). + sante hache (le sorcier garde le gros de ses Après tout, son hei particulier de descendant + ressources occultes pour l’assaut sur le do- d’esprit-tortue est très reconnaissable et un + maine de la Tortue céleste). Dans la maison se exorciste peut parvenir à le localiser avec un sort + trouvent Thomas Tsi, deux hommes de main et d’Exorcisme (Traque). Mais le temps manque et + deux chiens démoniaques prêts à défendre leur il est vraisemblable que les PJ réalisent qu’ils + maître. Au moindre signe d’intrusion, le sorcier ne pourront déployer toute leur magie avant + donne l’ordre d’abattre les otages avant de s’en- l’heure de la cérémonie. + fuir avec l’un de ses hommes de main en guise + de garde du corps, laissant l’autre et ses deoi + sam repousser l’intrusion. + Une fois la maison repérée, les fat si voudront + peut-être prévenir la police et la laisser libérer + la famille Wong – mais envoyer des hommes + enquêter dans une maison inconnue sur la foi + du témoignage de civils et le tout en quelques + heures n’est pas si évident, d’autant que des + policiers auront besoin de preuves pour lancer + une procédure. Il faut aux PJ de solides contacts + au sein de l’institution pour y parvenir – avec + un jet d’Influence (Police) / 3. S’ils réussissent, + c’est donc la police qui affrontera les sbires du + sorcier. Selon la tonalité qu’il souhaite donner à + la suite du scénario, le MJ décide si les otages + sont libérés ou tués. Si les fat si n’accompagnent + pas les forces de l’ordre, un policier sera tué et + deux autres grièvement blessés par l’ogre et les + chiens démoniaques. Les PJ doivent comprendre + qu’ils ne peuvent pas se dédouaner ainsi de leurs + responsabilités envers l’équilibre de l’univers + sans qu’un prix ne soit payé. + + + + +426 + les chroniques + de l’étrange scénario : une tortue sur leurs épaules 427 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Acte 4 – La cérémonie noire + à l’entrepôt + Où les PJ assistent au destin de Stephen tout en éclairant d’un projecteur les zones + Wong. d’ombre. Le personnel n’est pas d’une extrême + vigilance, mais si les fat si s’y prennent mal… + Quand le MJ le souhaite, cette patrouille longe + l’entrepôt 624 et ne pas se faire remarquer né- + Planter le décor cessite un jet de Filouterie (Dissimulation) / 2. + À l’exception d’un minuscule bureau et + L’entrepôt est situé sur le Port Victoria du des non moins minuscules sanitaires à côté + côté industriel, au milieu d’autres bâtiments de l’entrée, l’entrepôt n’a pas de murs inté- + identiques. Depuis l’extérieur en effet, rien rieurs : juste des containers et des caisses ali- + ne distingue le 624 des autres. Des containers gnés, formant de longues allées bien droites + sont stockés contre ses murs et devant l’éten- et empilées les unes sur les autres jusqu’à + due bétonnée – facile de s’y cacher ou de se former des parois métalliques de plusieurs + percher dessus… Attention tout de même : des mètres de haut : ce qui veut dire que si les + caméras parsèment le port et si elles ne sont PJ sont entrés par une fenêtre « du premier + pas assez nombreuses et que plusieurs sont étage », ils se trouvent en réalité perchés à + cassées, il faut tout de même y prendre garde trois mètres de haut, devant choisir entre sau- + sur le parcours et la cachette choisis. C’est ter ou progresser jusqu’au container le plus + encore plus compliqué si les PJ choisissent de proche pour descendre. + se dissimuler à l’intérieur de l’entrepôt. Ici et là, on peut trouver un chariot éléva- + Le bâtiment dispose de deux issues. L’entrée teur et quelques palettes de bois, témoins de + principale est composée de deux lourdes l’activité qui règne en ce lieu dans la journée. + portes dont l’ouverture est commandée par Là encore, il est possible d’essayer de se ca- + un boîtier électronique nécessitant un code (si cher sur les containers, voire dans une caisse + Chastel est avec les fat si, il dispose bien sûr ou derrière un chariot. + de ce code). Forcer ces portes est hors de pro- À vingt-trois heures trente, Stephen arrive + pos : elles sont bien trop solides – sans parler – encadré par deux hommes de main vigilants + du risque de déclencher l’alarme. Parvenir à et armés. Ils sont suivis d’un homme grand et + provoquer leur ouverture en déclenchant un mince, arborant une fine moustache et portant + court-circuit du boîtier est certes possible un élégant costume marron : Thomas Tsi. Il + (par un jet de Technologie (Électronique) / est escorté par le louzing que les fat si ont + 2), mais elles se trouveront alors bloquées en peut-être suivi la veille et par une gaaujan + position ouverte, ce qui ne peut qu’alerter les aux dents acérées et au corps recouvert de + patrouilles de sécurité ainsi que Thomas Tsi et rayures. Ils descendent de leur voiture, une + ses sbires. Mercedes noire dans laquelle reste le chauf- + Il existe également un accès par le toit, at- feur. Si un PJ le surveille, il voit celui-ci sortir + teignable grâce à un escalier-incendie (il y a de la voiture quand la patrouille de sécurité + seulement un verrou et sa chaîne à franchir). s’approche. Il discute quelques secondes avec + La porte est verrouillée, mais un souci élec- les deux vigiles et leur confie une grosse en- + trique a désamorcé l’alarme. À l’intérieur, une veloppe. Après cela, la patrouille s’éloigne + échelle est fixée pour pouvoir rejoindre le sol. pour ne plus revenir – sauf si les choses en + À l’arrière du bâtiment, pas de porte, mais viennent à devenir folles aux abords de l’en- + au premier étage des fenêtres sont visibles. trepôt. Après être descendu, Thomas Tsi ouvre + Elles ne sont pas conçues pour s’ouvrir, mais les portes grâce au code du boîtier et toute la + il est toujours possible d’entrer par effrac- bande entre avec Stephen. + tion. La difficulté consiste à escalader le mur + jusque-là, casser la vitre et entrer tout en dis- + crétion. En effet, un service de sécurité circule + en voiture sur les quais, roulant lentement + + +428 + S’ils ne sont pas dérangés, le sorcier de- les chroniques +Que se déchaîne mande alors à Stephen de dévorer tous les + + + de l’étrange + organes, dans l’ordre dans lequel ils ont été +le Deijuk ! retirés du corps. Révulsé par cet acte odieux, + c’est contraint et forcé par la gaaujam qu’il + À partir de là, tout est possible : absorbe cette nourriture impie. Dès qu’il com- + 怪 Les fat si ont déjà sauvé et mis à l’abri la mence à manger, une grande corruption s’abat + famille de Stephen. Ils peuvent alors agir sur Stephen et l’atmosphère paraît soudain plus + tout de suite, crier à leur employeur l’infor- lourde ; l’air vicié s’assombrit, comme si une + mation, et s’en prendre au sorcier et à ses fine fumée noire se répandait dans le bâtiment. + + + + + scénario : une tortue sur leurs épaules + sbires. C’est sans doute la situation idéale. En corrompant Stephen, c’est bien plus qu’un + Encore faut-il faire en sorte que Stephen ne homme qui est souillé. Quelque part, un dieu + soit pas blessé, notamment quand Thomas sent soudain ses forces décliner… C’est sans + Tsi comprend que tout est perdu. Si le com- doute le moment que choisiront les fat si pour + bat se déroule à l’extérieur, la sécurité n’a accomplir ce pour quoi ils ont été engagés ! + pas encore été achetée et arrive au bout Mais le combat est difficile, car en plus + de quelques minutes, après avoir prévenu de Thomas Tsi et de ses sbires mortels ou + la police. surnaturels, les fat si doivent aussi affronter + 怪 Les fat si agissent avant la cérémonie, mais Stephen lui-même. Les yeux entièrement noirs, + n’ont pas sauvé la famille de Stephen ou un rictus hideux déformant son visage, il est + bien ils sont repérés par l’un des séides du désormais doté d’une force et d’une résistance + sorcier. Dans ce cas, il va leur falloir agir vite, surhumaines ! Il n’est plus conscient de ses actes + car dès qu’il le peut, Thomas Tsi – couvert et obéit aveuglement au sorcier. Ce dernier ne + par ses hommes et créatures – téléphone à se prive pas non plus d’utiliser sa magie contre + ses sbires restés dans la demeure pour leur les importuns. La bataille n’attire pas l’attention + ordonner d’exécuter la petite famille, au de la police – alertée par la sécurité du port – + grand désespoir de Stephen. avant une vingtaine de minutes. + 怪 Si les fat si attendent la fin de la cérémo- Cependant, Thomas Tsi essaie de s’échapper + nie. Ils assistent à un spectacle qui devrait dès qu’il en a l’occasion ; Stephen ne lui est plus + par la suite hanter leurs cauchemars. Guidé d’aucune utilité, l’enjeu pour lui se trouve dé- + par Thomas Tsi, le petit groupe se dirige sormais ailleurs. S’il parvient à s’enfuir et que la + vers l’un des containers. Une fois ouvert, famille de Stephen se trouve toujours entre ses + les hommes de main en sortent une caisse mains, c’est la mort assurée pour la femme et les + tandis que le sorcier commence à dessiner enfants. S’il a déjà réussi à corrompre Stephen + des idéogrammes en sigillaire sur le corps Wong, éteindre le reste de sa lignée affaiblira + d’un Stephen déshabillé. Un fat si avec plus encore la Tortue céleste ! + une vue suffisamment proche sur la scène + peut déduire avec un jet de Maîtrise de la + Voie que le rituel a pour but d’affaiblir la + Tortue céleste elle-même, dont les pattes + soutiennent la voûte du Ciel. + + De la caisse se voit extirpé un cadavre de +démon-gardien à tête de buffle, un gaamwujan +mo plus qu’à demi putréfié, tandis qu’une +horrible odeur de charogne et de corruption +se fait soudain sentir dans tout l’entrepôt. Une +fois sa calligraphie terminée, Thomas Tsi sort +une dague élégante et, sans paraître le moins +du monde incommodé par l’affreuse odeur, +entreprend d’ouvrir le corps de la créature +démoniaque. Il en retire alors les organes : cœur, +foie, cerveau, pancréas, rein, organes génitaux. + Même à distance, la puanteur s’avère pra- +tiquement insupportable. Stephen vomit, l’un +des hommes de main également. Les PJ les plus +proches de la scène risquent de rendre aussi +leur dîner – ce qu’il est difficile de faire en toute +discrétion ! + + + 429 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Conclusion + Les conséquences de cette aventure peuvent Stephen Wong, est devenue folle… Les + se révéler fort variables selon les choix des PJ et fat si débarquent en pleine guerre civile + la manière dont les choses ont tourné. – esprits marins contre esprits marins, + corrompus contre loyalistes… + 怪 Si les fat si ont sauvé Stephen de la cor- Une bonne nouvelle cependant : les PJ + ruption de même que la vie de sa famille, se rendent compte qu’ils peuvent respi- + c’est une grande victoire. Si Thomas Tsi rer et parler sous l’eau, un cadeau de la + est mort, c’est même une victoire totale Tortue céleste, ce qui tombe bien car son + et un coup d’arrêt important aux desseins domaine est une poche spirituelle compa- + de l’Ordre des Cieux penchés – que les PJ rable au fond de la Mer de Chine. + aient appris son existence ou non. Cette 怪 Si Stephen a été corrompu et que ses en- + secte a vu ses plans contrecarrés et a fants sont morts, il s’agit du cas le plus + perdu de précieuses ressources, dont un grave – surtout si Thomas Tsi a survécu. + sorcier compétent et une relique, l’Œil L’attaque de l’Ordre des Cieux penchés + de Vérité ! Attention tout de même à sa sur le domaine de la Tortue céleste est + vengeance, surtout si le sorcier est encore imminente. Sans plus tarder, les fat si + en vie ! doivent rassembler leurs forces, mobi- + 怪 Si la famille a été sauvée, mais que liser leur communauté et porter secours + Stephen a été corrompu, la situation est à la divinité. Là aussi, il faudra décou- + plus délicate. La Tortue céleste est affai- vrir son domaine, puis livrer une terrible + blie et l’Ordre des Cieux penchés compte bataille contre le sorcier et ses renforts + certainement tenter quelque chose contre de l’Ordre des Cieux penchés alors que + elle à présent. Cependant, si le sorcier est la Tortue céleste se montre incapable de + mort et que les enfants de Stephen ont faire quoi que ce soit pour les aider. Tous + survécu, il reste du temps et de l’espoir. les esprits-tortues apparentés aux Wong + La survie de la lignée de Stephen limite sont morts, et les autres sont affaiblis et + l’affaiblissement de la Tortue céleste. Il se incapables de lever la main sur les enva- + révélera essentiel de les protéger de ma- hisseurs. Tout allié sera alors le bienvenu + nière durable. Quant à la Tortue céleste, pour les PJ ! Si Thomas Tsi est mort, c’est + il sera nécessaire de l’aider à surmonter peut-être William Hung lui-même – le chef + la faiblesse induite par la corruption de de l’Ordre des Cieux penchés – qui mènera + Stephen. Il faudra trouver l’entrée de son l’assaut directement ! Un adversaire for- + domaine spirituel au Délice nacré afin midable pour les fat si. + de la rencontrer pour mettre en place 怪 Si Stephen est sauvé, mais que sa famille + des défenses face à l’assaut à venir. À a été tuée, le douanier en concevra une + moins qu’elle ne connaisse une manière haine terrible envers les fat si qui ont + de contrer les plans de l’Ordre des Cieux sciemment fait l’inverse de ce qu’il avait + penchés et envoie les PJ en quête du né- demandé et deviendront à ses yeux autant + cessaire pour retrouver ses forces ? responsables du massacre de sa famille + Si les fat si sont déjà venus dans l’an- que Thomas Tsi et sa bande. Est-il du + tichambre durant leur enquête et qu’ils genre à chercher à se venger ? C’est bien + y retournent, l’endroit s’avère inchangé, possible ! Les PJ risquent d’avoir maille à + mais Jyuseon les attaque dès qu’ils fran- partir avec les autorités dans les semaines + chissent la porte, les yeux entièrement et les mois à venir, à moins que Stephen + noirs et un filet de bave sombre dégou- ne se mette à étudier à son tour la magie ? + linant de sa bouche. Derrière le mur Le plus ironique dans tout cela, c’est que + opposé à l’entrée, une porte est grande si le sorcier s’est échappé, la lignée de + ouverte et mène au domaine de la Tortue la Tortue céleste se trouve menacée et il + céleste qu’ils pourront enfin rencon- appartient aux PJ (les dieux s’assureront + trer… s’ils parviennent jusqu’à elle ! Une qu’ils en soient conscients) de préserver + partie de la population du domaine, celle Stephen de la corruption et d’une éven- + qui entretient des liens familiaux avec tuelle deuxième tentative ! + + +430 + les chroniques + + + de l’étrange + + + + + scénario : une tortue sur leurs épaules + + + + +怪 Et… quid du lycanthrope français ? Jean- Voilà une occasion d’envoyer les fat + Pierre Chastel est sans doute resté à si loin de Hong Kong pour une mission + l’écart et ignorant de tout ce qui s’est dé- périlleuse, afin de remonter la piste de + roulé dans son entrepôt. Mais si ce n’est ce fournisseur de produits impies. Et s’il + pas le cas et que les PJ ont manqué de s’agissait d’un milliardaire sans foi ni + discrétion, il enquêtera et pourrait venir loi habitant une petite île indépendante + leur demander des explications sur ce qui et extrêmement fortifiée ? La seule ma- + s’est passé chez lui. Il peut même devenir nière pour un étranger à l’île d’y pénétrer + un allié récurrent des fat si ou bien avoir consiste en une participation à un grand + un jour besoin de leur aide. Il n’est pas tournoi clandestin d’arts martiaux (l’autre + un membre du folklore local et n’a guère grande passion de notre milliardaire), or- + de relations ou de grandes connaissances ganisé tous les cinq ans. Justement, les + susceptibles d’aider les PJ dans leurs inscriptions se déroulent actuellement. + aventures futures. Reste qu’il a de grandes Cette infiltration permettrait de découvrir + dents… les secrets et les artefacts que dissimule +怪 Et pourquoi pas une aventure loin de Hong cet allié de l’Ordre des Cieux penchés. Seul + Kong ? Si les PJ se montrent curieux, ils problème : les combats sont extrêmement + pourraient s’intéresser à la provenance du violents et peuvent très bien se conclure + container qui a introduit en ville la chair par la mort de l’un des combattants… + putréfiée du démon. Après tout, ce genre Tout est réuni pour monter une parfaite + de produit ne se trouve pas facilement et Opération Dragon à la sauce fat si ! + quiconque peut en proposer contrevient + plus que probablement à l’ordre céleste. + + + + 431 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Profil des PNJ + Stephen Wong Jean-Pierre Chastel + Niveau de Menace : Profane Niveau de Menace : Apprenti + Capacité de Nuisance : Sbire Capacité de Nuisance : Adversaire + Aptitude physique : 1 Aptitude physique : 2 + Aptitude martiale : 1 Aptitude martiale : 2 + Aptitude mentale : 2 (Comptabilité) Aptitude mentale : 2 (Business) + Aptitude sociale : 1 Aptitude sociale : 2 (Charme) + Aptitude spirituelle : 3 (Tortue céleste) Aptitude spirituelle : 2 (Neuri) + Vitalité : 4 Vitalité : 8 + Hei : 12 Hei : 8 + Capacités surnaturelles : arme (crocs) 2 ; + métamorphe (change-forme) 5 ; peur (action) 1 ; + Stephen Wong – version démon protection (pelage épais) 1 ; régénération 2 + + Niveau de Menace : Apprenti + Capacité de Nuisance : Sbire Les hommes de main + Aptitude physique : 2 + Aptitude martiale : 2 Comptent comme un groupe de X PNJ, + Aptitude mentale : 2 (Comptabilité) en fonction du nombre qu’ils sont. + Aptitude sociale : 2 (Autorité) Niveau de Menace : Profane + Aptitude spirituelle : 3 (Tortue céleste) Capacité de Nuisance : Sbire + Vitalité : 8 Aptitude physique : 2 + Hei : 12 Aptitude martiale : 2 + Capacités surnaturelles : absorption de Aptitude mentale : 1 + Yang (distance courte) 2 ; arme (crocs) 2 ; Aptitude sociale : 1 + peur (permanent) 2 Aptitude spirituelle : 1 + Vitalité : 8 (à multiplier par le nombre de PNJ) + Hei : 4 + Thomas Tsi + Niveau de Menace : Apprenti L’ogre + Capacité de Nuisance : Adversaire + Aptitude physique : 2 Niveau de Menace : Apprenti + Aptitude martiale : 1 Capacité de Nuisance : Sbire + Aptitude mentale : 2 (Mythes) Aptitude physique : 3 + Aptitude sociale : 1 Aptitude martiale : 2 (Hache) + Aptitude spirituelle : 3 (Malédiction, Aptitude mentale : 1 + Traque) Aptitude sociale : 1 + Vitalité : 8 Aptitude spirituelle : 2 + Hei : 12 Vitalité : 12 + Objet magique : l’Œil de Vérité, un mo- Hei : 8 + nocle qui augmente son Aptitude spirituelle Capacités surnaturelles : arme (crocs) 2 ; + de 1 quand il utilise sa Spécialité magique de peur (action) 1 ; protection (muscles puis- + Traque. sants) 2 + + + + +432 + les chroniques + + + de l’étrange + + + + Ngok, la gaaujan + + + + + scénario : une tortue sur leurs épaules + Niveau de Menace : Apprenti + Capacité de Nuisance : Sbire + Aptitude physique : 3 (Natation) + Aptitude martiale : 2 + Aptitude mentale : 1 + Aptitude sociale : 1 + Aptitude spirituelle : 2 + Vitalité : 12 + Hei : 8 + Capacités surnaturelles : arme (dents et +griffes) 2 ; don inné (natation) ; peur (ac- +tion) 3 ; protection (peau) 2 + + + Silei, le louzing + Niveau de Menace : Apprenti + Capacité de Nuisance : Sbire + Aptitude physique : 1 (Escalade) + Aptitude martiale : 2 + Aptitude mentale : 2 + Aptitude sociale : 1 + Aptitude spirituelle : 2 + Vitalité : 4 + Hei : 8 + Capacités surnaturelles : absorption de +Yang (au contact) 2 ; arme (chélicères et toile +/ distance moyenne) 2 ; don inné (Escalade) ; +immortalité ; métamorphe (change-forme) 3 ; +peur (action) 1 ; protection (chitine) 1 ; venin +(physique) 2 + + + Les chiens démoniaques + Profil valable pour chacun des deoi sam. + Niveau de Menace : Apprenti + Capacité de Nuisance : Sbire + Aptitude physique : 2 (Course) + Aptitude martiale : 2 (Morsure) + Aptitude mentale : 1 + Aptitude sociale : 1 + Aptitude spirituelle : 2 + Vitalité : 8 + Hei : 8 + Capacités surnaturelles : arme (griffes +et crocs) 3 ; peur (permanent) 1 ; protection +(pelage épais) 1 + + + + 433 + ri o + én a +sc + h a t , t + o n c r a + b +à b o n a r io d + ’ + i n e + u + ba , + r + nto e he , + a illaum meire + l + z + i + + gu ric la sier + a + n + + scén tion + s + un + & co + r rec céd d’huis + cture a i n + seils, + rele rom + con + + + + + 435 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Ce scénario est destiné à un groupe de fat si débutants (niveau apprenti ou initié). + L’histoire place les PJ au cœur de trois affaires initialement indépendantes, mais qui s’entre- + croisent au fur et à mesure de leurs avancées (cf p. 449-450). Il ne tiendra alors qu’à eux de tisser des + liens entre ces différents dossiers pour se donner les moyens de les résoudre tous les trois avec brio ! + N.B. : les événements fictifs de ce scénario évoquent des faits de cruauté animale. Si cette pra- + tique est bien sûr vivement condamnée par l’auteur, il convient également de s’assurer qu’aucun des + joueurs n’est dérangé par cette thématique – qui n’est cependant pas directement mise en scène, + mais seulement mentionnée. + + + + + Introduction + Où le MJ prend connaissance des tenants et devront essayer de réparer les pots cassés + aboutissants de À bon chat, bon rat. par une créature maladroite, paumée, mais + attachante. + 怪 Enfin, la troisième affaire – Vermine – débute + par une invasion de rats dans le quartier + La croisée du destin des fat si (celui où ils vivent ou celui où + ils se réunissent, au choix) et les conduit + Ce sont donc trois intrigues différentes qui à la recherche d’un artefact égaré dans + s’entremêlent au cours de ce scénario. Si elles les profondeurs des égouts de la ville. Le + sont en apparence détachées les unes des autres, propriétaire, un individu peu recommandable + la progression des PJ dans chacune leur permet à qui l’objet a été dérobé, cherche bien + de récolter des éléments pour avancer dans les entendu à le récupérer lui aussi. + deux autres – comme si le Ciel avait organisé + tout cela en un fascinant casse-tête chinois. Pour le MJ, l’idée derrière ce scénario est de + 怪 L’Œil du Tigre, la première affaire, voit mélanger trois ambiances différentes dans une + la présidente d’une brillante compagnie savoureuse fondue chinoise : une histoire de + pharmaceutique mandater les fat si pour complot industriel, une comédie fantastique et + enquêter sur sa propre branche Recherche une exploration souterraine inquiétante. + & Développement, qu’elle soupçonne de Ces intrigues étant indépendantes, les PJ + conduire des activités illégales à teneur peuvent y naviguer librement : passer à côté + mystique. d’un indice ou d’une piste n’entrave guère leur + 怪 La deuxième affaire – Chat perdu – met progression globale dans l’aventure. Le MJ peut + en scène un esprit-chat (ou maauzing) toutefois utiliser les éléments d’une intrigue + tout juste arrivé en plein Hong Kong et pour tendre une perche aux fat si et leur per- + le fourre dans les pattes des PJ. Ceux-ci mettre d’en raccrocher une autre qu’ils auraient + se retrouvent à devoir assumer un rôle de délaissée. Cf p. 449-450 pour les différents + chaperon – qu’ils le veuillent ou non ! Ils ponts reliant les trois affaires. + + +436 + Elle sait notamment que Mary Siu soup- les chroniques +Protagonistes çonne Mark Wu, mais ne souhaite pas en faire + + + de l’étrange + part aux PJ pour ne pas biaiser leur enquête. +impliqués De même, elle est au courant que la P.-D.G. + a conduit ses propres analyses sur le collyre + spécial et a ainsi déterminé que la science ne + Mary Siu, P.-D.G. suffisait pas à en expliquer l’efficacité. Le MJ + de CyunGwo peut utiliser le côté maladroit de Penelope pour + permettre aux PJ d’apprendre ces deux infor- + Femme d’une quarantaine d’années, d’appa- mations afin de les débloquer dans le cas où ils + + + + + scénario : à bon chat, bon rat +rence très soignée : talons, tailleur et lunettes stagnent dans leurs investigations. +de designer. + Issue d’une famille modeste, Mary Siu per- +pétue la tradition d’herboristerie que lui a en- Mark Wu, directeur R&D +seignée son père dès son plus jeune âge dans +leur village du nord des Nouveaux Territoires. Jeune cadre brillant, propre sur lui et impec- +Ses parents ont investi toutes leurs économies cablement coiffé – mais à la moralité flexible et +pour l’envoyer étudier à « la ville ». Elle s’est à l’ambition dévorante. +alors épanouie à Hong Kong et, dès la fin de Directeur-adjoint au département R&D de +ses brillantes études de biochimie, elle a créé CyunGwo depuis plusieurs années, Mark Wu +une société pharmaceutique à laquelle il n’a se voit motivé par la réussite et ferme facile- +fallu que quelques années pour se tailler une ment les yeux sur les moyens peu scrupuleux +réputation solide et honorable, capable de pour y parvenir. Il est le produit d’une société +concilier le meilleur de la tradition chinoise et déshumanisée et ultralibérale, qui se focalise +la technologie de pointe du xxie siècle. sur les gains à court terme sans réfléchir aux + Mary Siu dirige son entreprise de manière générations futures. +avisée et prudente ; elle n’a ainsi pas connais- Alors qu’il se trouvait dans une impasse +sance de ce qui se trame dans l’aile B du dépar- concernant ses recherches, il rencontra Terry +tement R&D mais n’est pas dupe pour autant. Sap et décida de collaborer avec lui. Grâce à +Elle sait que le succès attire la convoitise et la magie du sorcier, de précieuses découvertes +les malversations. Ses soupçons envers cette permirent la mise sur le marché de produits +branche sont le fruit d’une intuition alimentée prometteurs. Et qu’importe si quelques bêtes +par ses propres connaissances en biochimie sauvages doivent y laisser la peau ! +et herboristerie. Dotée d’une certaine affinité +avec le surnaturel, la P.-D.G. ressent confusé- +ment que quelque chose ne tourne pas rond au Terry Sap, sorcier +sein de CyunGwo. Si elle ne dispose d’aucun corporatiste +élément lui permettant de lancer une enquête +interne officielle, elle compte bien tirer tout ça Grand échalas doté d’une fine moustache +au clair au moyen des PJ. noire, alchimiste de pouvoir modéré mais op- + portuniste de premier plan. + Versé dans les arts occultes, Terry Sap a très + Penelope Gwo, tôt développé des accointances avec des entre- + intermédiaire prises sans scrupules, allant chercher l’argent + là où il se trouve. Il se considère comme un + Petite femme rondelette et énergique, fidèle consultant du paranormal et loue ses services +amie de Mary Siu depuis leur rencontre en pre- aux sociétés désireuses d’augmenter leurs pro- +mière année d’université. fits. Sa route a récemment croisé celle de Mark + La P.-D.G. de CyunGow accorde une totale Wu, et les deux hommes ont immédiatement +confiance à Penelope Gwo et lui a donc deman- vu tout le potentiel de leur collaboration. Ils +dé d’entrer en contact avec les PJ. Elle s’ac- mènent désormais leur petite opération dans les +quitte de sa tâche avec un grand sérieux, flat- zones grises du département R&D de CyanGwo +tée que son amie lui confie une mission aussi – dont le sorcier est un employé. +importante. Elle se révèle cependant bavarde et +gaffeuse, et il est possible d’obtenir d’elle plus +d’informations sur l’affaire qu’elle n’est censée +en délivrer… + + + + + 437 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Patte noire, chef de gang Sonny Mak + Homme voûté à l’âge indéfinissable, vêtu Jeune homme aux longs bras, doté d’une + comme un vagabond et s’appuyant sur une grande agilité et d’un esprit vif. + canne. Regard acéré et voix caverneuse. Originaires de Chine continentale, Sonny et + Leader de la bande d’esprits-rats, les son frère Lance ont débarqué à Hong Kong sans le + « Museaux rusés », Patte Noire est un sauzing sou il y a plusieurs années. Grâce à leur condition + ancien qui connaît les sous-sols de Hong Kong physique, ils ont pu se lancer dans une lucrative + sur le bout de ses doigts sales. Respecté et ja- carrière de cambrioleurs – interrompue çà et là + mais contesté parmi les siens, il règne sur son par des séjours en prison. Superstitieux, ils portent + clan depuis des décennies. Prêt à tout pour sa toujours sur eux divers talismans et porte-bonheur. + communauté, il ne faut pas le sous-estimer. Il Très attaché à son jumeau, Sonny cherche dé- + connaît la plupart des acteurs majeurs de la so- sespérément la Griffe de Jade afin de la rendre + ciété surnaturelle à la surface, même s’il préfère à Robert Ling. Son manque de succès le stresse + ne pas interférer avec ces derniers outre mesure. de plus en plus et, s’il se montre méfiant envers + les PJ au premier abord, il sera finalement content + de l’aide qu’ils peuvent lui apporter – à condition + Les Museaux rusés qu’ils lui laissent l’artefact destiné à sauver Lance. + + Tous les membres de cette bande de syuzing + vivent dans les égouts et ne sortent à la surface Robert Ling, collectionneur + que dans le cadre de leurs diverses activités. Ils compulsif + forment une communauté soudée, au sein de la- + quelle l’intérêt du groupe passe toujours avant Vieillard chauve aux traits flasques et à la + celui de l’individu. peau tavelée. Voix profonde et regard habité + Les Museaux rusés pratiquent essentiellement d’une petite lueur de folie. + des activités de contrebande, mais se livrent Praticien amateur mais possédant une grande + parfois aussi au kidnapping. Ils transmettent des connaissance des traditions mystiques chinoises, + messages pour le compte d’autres organisations Robert Ling se comporte à la manière d’un peijau + ou de tiers, et transportent toutes sortes de humain : il n’aime rien tant qu’amasser ouvrages + marchandises à travers les égouts – d’une façon et artefacts, afin de se constituer une collection de + discrète et sans jamais poser de questions. Ils reliques. Il n’en fait guère usage : reclus dans son + peuvent également aider des gens à fuir Hong vaste appartement situé à Wong Tai Sin, il ne nourrit + Kong grâce à leurs contacts au port – un service d’autres ambitions que d’obtenir toujours plus de + des plus appréciés par les triades. matériel magique. S’en prendre à sa collection est le + meilleur moyen de s’en faire un ennemi – auquel cas + il s’avère implacable, usant de sa magie, de ses ob- + jets et de sa fortune pour anéantir ses adversaires. + + +438 + les chroniques + Scène 1 – L’Œil du Tigre + de l’étrange + + TIGRE ET MÉDECINE CHINOISE + « Nourrir l’ambition dans son cœur, TRADITIONNELLE + c’est porter un tigre dans ses bras. » En Asie, il s’avérait fréquent d’utiliser certaines + parties du corps du tigre (comme ses os, ses yeux, + + + + + scénario : à bon chat, bon rat + Proverbe son pénis ou ses dents) pour fabriquer des remèdes + traditionnels conformes aux mythes et croyances des + populations. Ce marché générait jusqu’à trente-cinq + Les PJ sont approchés par une société millions de HK$ par an. +pharmaceutique afin d’enquêter sur les activi- L’efficacité des concoctions ainsi obtenues n’est +tés suspectes qui se tiennent dans sa branche pas établie par la science et ces pratiques contri- +Recherche & Développement. Ils vont mettre au buaient à accélérer la disparition de l’espèce – déjà +jour un trafic de tigres en provenance d’Asie du en voie d’extinction. En Chine (et donc à Hong Kong), +Sud-Est, dont les yeux sont utilisés afin d’élabo- l’utilisation de tigres en tant qu’ingrédients de la phar- +rer un composé révolutionnaire – ce qui consti- macopée s’est vue interdite en 1993. Mais dans divers +tue une pratique illégale et contraire à l’éthique. pays d’Asie du Sud-Est, la lutte contre le braconnage + se révèle très faible et le marché persiste donc. + Voici une liste des qualités attribuées aux diffé- + rentes parties du tigre lorsqu’elles sont utilisées dans +CyunGwo la pharmacopée chinoise traditionnelle : + 怪 mélangés à une soupe, les poils de sa queue + La société Cyuntung Gwongming (abrégé soignent les maladies de peau. Les os de sa queue +CyunGwo) est une compagnie hongkongaise permettent de créer des talismans éloignant les +(possédant une filiale chinoise) ayant récemment mauvais esprits ; +connu un immense succès grâce à ses lignes 怪 réduits en poudre, les os de son corps mélangés +de produits « Pharmacopée et Bien-être » qui à du vin donnent un tonifiant luttant contre la +s’appuient à la fois sur la pharmacopée chinoise fatigue, mais aussi réputé rallumer la flamme du +traditionnelle et sur des procédés chimiques à la désir ; +pointe de la technologie actuelle. 怪 une cape ou une couverture taillée dans sa peau + La branche R&D de la société a d’ailleurs s’avère capable de soigner les fièvres causées par +récemment mis au point un composé révolu- les fantômes. Attention cependant ! Un homme +tionnaire : en expérimentant divers types de qui reste trop longtemps enveloppé dans un tel +collyres, elle est parvenue à créer une formule vêtement risque de se transformer lui-même en +qui corrige de façon temporaire les myopies et tigre ; +confère également une nyctalopie passagère 怪 trempés dans du miel et appliqués directement +chez certains sujets. Concrètement, le produit sur des abcès, ses calculs rénaux résorbent ces +permet de dispenser ses utilisateurs de porter derniers efficacement ; +lunettes et lentilles de contact – ce qui constitue 怪 la fumée obtenue en brûlant ses poils éloigne les +un grand pas en avant en matière de correction mille-pattes porteurs d’infection ; +ophtalmologique. Pour le moment, ce collyre est 怪 ses yeux constituent un remède contre les convul- +toujours en phase de test au sein de la branche sions et soignent définitivement l’épilepsie. En +R&D. Son éventuelle commercialisation n’au- cataplasme, ils améliorent la vue ; +ra sans doute pas lieu avant plusieurs mois, le 怪 son cerveau mélangé à de l’huile fournit un +temps d’en finaliser la formule, puis d’obtenir onguent qui traite les problèmes de peau ; +toutes les autorisations nécessaires à une mise 怪 portées en pendentif, ses griffes octroient du +sur le marché. courage même au plus lâche des hommes ; + Toutefois, la médaille possède un revers de 怪 son cœur augmente la force et l’audace de celui +taille : le prix de la solution est élevé. Parmi qui l’ingère ; +les composés nécessaires se trouve en effet un 怪 son pénis est un puissant aphrodisiaque : en +extrait d’œil de tigre, une espèce en voie de dis- consommer régulièrement assure d’engendrer de +parition et protégée par plusieurs organisations nombreux garçons. +gouvernementales et non gouvernementales. + + + + + 439 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + d’être expédiés, quelques individus à la fois, + Implication via des embarcations de pêche et ainsi ache- + minés jusqu’au Kwai Tsing Container Terminals + Fondatrice et P.-D.G. de CyunGow, Mary Siu (cf p. 441). + entre en contact avec les fat si pour déterminer Sur place, les félins enfermés dans de larges + si son département R&D a recours à quelque caisses sont pris en charge – au nez et à la barbe + pratique illégale de nature occulte pour la des autorités portuaires – par les Waat Bei (les + fabrication de l’un de ses produits au futur Museaux rusés) : un gang d’esprits-rats colla- + commercial prometteur. Elle soupçonne en ef- borant depuis quelque temps avec Terry Sap. Ils + fet que la branche – dont le fonctionnement transitent alors par le réseau d’égouts de Hong + s’avère plutôt opaque – utilise des méthodes Kong jusqu’au bâtiment R&D de CyunGwo, im- + douteuses pour obtenir ses excellents résultats. médiatement après leur débarquement. + Elle passe cependant par une intermé- C’est en ces lieux que se déroule le rituel + diaire pour solliciter les PJ : une amie de longue permettant de créer le collyre spécial de l’en- + date et une femme de confiance, Penelope Gwo. treprise. Afin que le procédé fonctionne, les + Cette dernière ne possède aucune connexion yeux des tigres doivent leur être prélevés alors + officielle avec CyunGwo afin de ne pas éveiller qu’ils sont encore vivants. Terry Sap se charge + les soupçons, que ce soit ceux de ses salariés de toute la partie mystique de la chaîne de fa- + ou des éventuels coupables – voire de la presse. brication dans un laboratoire dont il est le seul + Penelope Gwo propose aux PJ de les ren- à avoir l’accès. + contrer dans le lieu de leur choix, afin de les Les peaux des tigres sont ensuite récupé- + mettre en confiance. Elle s’avère cordiale et rées et servent de paiement pour le gang des + extrêmement professionnelle, expliquant la Museaux rusés – ce qui permet d’éviter toute + situation en s’efforçant de ne donner que les trace de transactions financières entre les deux + informations strictement nécessaires à sa com- parties. Les autres morceaux exploitables des + préhension. Elle présente donc les soupçons de félins (crocs, griffes, os, testicules, etc.) sont + Mary Siu et fournit l’adresse du département récupérés par Terry Sap : il en utilise certains + R&D de CyunGow – ainsi que des échantillons et revend le reste à prix d’or aux apothicaires + de divers produits parmi les plus récents de les moins scrupuleux de la ville. Les dépouilles + l’entreprise (dont le collyre spécial). disparaissent finalement dans un incinérateur + Cette offre est bien sûr accompagnée d’une du département R&D et les cendres sont mé- + rémunération. Si les fat si ne sont pas motivés langées avec celles d’autres déchets traités sur + par des espèces sonnantes et trébuchantes, leur les lieux. + commanditaire est disposé à leur fournir une + autre forme de paiement à leur convenance : + composés ou matériaux difficiles à trouver, ser- + vice d’ampleur équivalente, etc. + Penelope Gwo leur donne également un + Dénouer les fils + point de rendez-vous où elle se tiendra à leur + disposition les mardi, jeudi et samedi à onze + de l’intrigue + heures, afin de rester en contact, tout en limi- Une fois briefés par Penelope Gwo, les PJ + tant les moyens de communication modernes. peuvent débuter cette mission à leur conve- + Si les PJ trouvent cet arrangement suspicieux : nance. Les principales pistes sont toutefois les + tant mieux, il ne fait pas de mal de jeter un suivantes. + voile de doute sur cette proposition pourtant + parfaitement honnête. Qu’ils se posent des + questions ! Enquête de voisinage + Le bâtiment du département R&D de + Organisation du trafic CyanGwo se trouve à Kowloon Bay, dans la zone + industrielle du district de Kwun Tong. Il s’agit + C’est Mark Wu, l’un des directeurs-adjoints d’un laboratoire dernier cri qui s’étend sur trois + de la branche R&D de CyunGwo, qui supervise étages au bord de Victoria Harbour. + le trafic des tigres sur les conseils du sorcier Les livraisons des tigres s’y déroulent en + Terry Sap. Il utilise bien sûr différents prête- soirée, alors que la plupart des employés ont + noms afin qu’il ne soit pas possible de remon- quitté les lieux afin que la présence de Terry Sap + ter jusqu’à lui. n’éveille pas les soupçons. En effet, toutes les + Les tigres sont capturés en Indonésie et entrées et sorties du personnel sont consignées + en Malaisie par des braconniers locaux avant informatiquement à l’aide de badges sécurisés. + + +440 + Quatre membres des Museaux rusés émer- les chroniques +gent des égouts à l’intérieur du périmètre du bâ- Du côté des apothicaires + de l’étrange +timent avec la marchandise. Terry Sap leur ouvre +alors un accès permettant d’acheminer les félins Une fois que les PJ ont compris que des tigres +directement dans son laboratoire, en évitant les se trouvent au cœur du problème, ils peuvent +couloirs officiels et leurs caméras de sécurité. creuser du côté des différentes utilisations oc- + Surveillant les lieux, les PJ peuvent observer cultes des organes des grands félins (cf. p. 439). +la réception des caisses contenant les tigres. Les Des apothicaires les renseignent à ce propos +dates et horaires peuvent leur être fournis par sans problème – tout en leur indiquant que la +les Museaux rusés ou via l’analyse des heures de vente de tels produits se révèle totalement il- + + + + + scénario : à bon chat, bon rat +présence de Terry Sap. Attention, les livraisons légale. Un jet d’Alchimie / 2 leur offre déjà une +ne sont pas régulières afin d’éviter la suspicion, bonne première approche de la pharmacopée +mais au minimum un tigre est livré tous les que l’on peut tirer d’un corps de tigre. +trente jours environ. Utilisant leurs contacts et alliés ainsi que + leurs Ressources tout en interrogeant certains + pharmaciens ou herboristes, les PJ remarquent + Investigations mystiques que le nom de Terry Sap revient régulièrement : + le sorcier revend en effet les organes des tigres + Par un sort de Géomancie (Neutralisation), qu’il n’utilise pas pour ses pratiques person- +les PJ se rendent compte que le bâtiment R&D nelles à des boutiquiers peu regardants. Amenés +de CyanGwo est le siège d’un nœud d’énergie à parler, ceux-ci fournissent la description du +Yin massif. En le sondant par magie, il est pos- sorcier et précisent même la fréquence de ses +sible d’apprendre les éléments suivants : visites. + 怪 ces souffles néfastes proviennent de la + souffrance et de la mort d’animaux ; + 怪 un rituel de nature alchimique se déroule Le Kwai Tsing Container + régulièrement à l’intérieur du bâtiment ; + 怪 le Tigre blanc de l’Ouest enrage de ce qui + Terminals + se passe ici – un PJ dont il est le Gardien Une petite virée sur le port est également + céleste ressent d’ailleurs cette furie sans envisageable. + même utiliser de sort. Furetant sur les quais, les PJ peuvent ob- + server le manège des chargements et déchar- + Grâce à un sort de Géomancie (Divination), gements des cargos et même poser quelques +il est possible d’obtenir des visions de ce qui questions aux dockers présents. Si leur com- +se joue en ces lieux : des images de tigres munauté se révèle plutôt méfiante vis-à-vis des +étourdis par un long voyage et l’injection de étrangers, quelques billets dénouent cependant +tranquillisants, du sang qui gicle, des yeux en- les langues. +core gluants des filaments du nerf optique… Certains employés du port mentionnent ain- +Le spectacle s’avère choquant aux yeux des si des caisses « bruyantes » déchargées par un +PJ. groupe d’individus discrets n’appartenant pas + Avec un sort d’Exorcisme (Traque), les PJ au personnel habituel. Ces caisses ne sont pas +repèrent les traces de passage des Museaux acheminées vers un quelconque entrepôt et +rusés – leur permettant d’apprendre que des personne ne sait où elles sont livrées, une fois +esprits-rats collaborent au trafic. sorties du port. + Analyser les divers échantillons fournis par L’activité du Kwai Tsing Container Terminals +Penelope Gwo (que ce soit par des jets d’Alchi- s’avère dense et ininterrompue. Des affaires lé- +mie, de Géomancie ou même d’Exorcisme / 2) gales et illégales s’y déroulent en permanence. +met en évidence que l’un d’entre eux contient Les triades notamment utilisent les lieux pour +des traces de magie : celui du collyre spécial. leurs divers trafics et des gangsters arpentent +Il ne s’agit que de résidus (car c’est le rituel donc les quais. Voir des inconnus poser des +d’extraction des yeux qui nécessite l’utilisa- questions ne manque pas d’éveiller leurs soup- +tion de moyens mystiques, pas la fabrication çons et les PJ risquent de se voir pris à partie +du collyre elle-même), mais ils s’avèrent clai- par quelques gros bras… +rement présents. Interrogée, Penelope Gwo De manière générale, ce port permet de lan- +leur apprend que ce produit particulier a été cer diverses fausses pistes au besoin. +mis au point au sein de l’aile B de la branche +R&D – dont le directeur-adjoint se nomme +Mark Wu. + + + + 441 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + magnétiques afin de se faire passer pour + Contacter FREE PAWNS des employés, des journalistes, des inves- + tisseurs ou une équipe d’audit extérieure + Il existe à Hong Kong quelques groupes – aux PJ de choisir leur couverture selon + d’activistes militants concernant le respect et la leurs compétences. Ils peuvent dès lors vi- + protection des animaux. Peu nombreux, ils n’ont siter le bâtiment de façon officielle. + cependant pas froid aux yeux. La plus connue + de ces organisations se nomme FREE PAWNS et + les PJ peuvent se rendre dans ses locaux, situés Description des lieux + dans le quartier de Sham Shui Po au sein du + district du même nom. Le laboratoire est une installation à la pointe + Lors d’une investigation récente, ses de la technologie et sa sécurité l’est également : + membres ont découvert – analyses par un la- tous les employés disposent d’un badge et + boratoire indépendant à l’appui – que CyanGwo d’une accréditation spécifique à leur fonction + utilise des composants d’animaux dans certains au sein de la société. Ils doivent tout d’abord + de ses produits. Ils soupçonnent l’entreprise franchir un portique sécurisé sous les yeux de + d’importer des espèces protégées pour ce faire. deux gardiens avant de rejoindre la zone où ils + Leur prochain objectif consiste donc à vérifier, travaillent – à l’entrée de laquelle il leur faut + puis à exposer la société si cela est avéré – par s’identifier à nouveau. Des caméras surveillent + exemple en allant prendre des photos sur le port. le hall d’accueil, les couloirs et les laboratoires + Si les membres de FREE PAWNS se révèlent des différentes zones de recherche. + aisés à motiver pour mener une action même ris- Le bâtiment lui-même se voit divisé en plu- + quée, ce sont également des têtes brûlées. Les sieurs ailes indépendantes (chaque section étant + PJ pourraient se retrouver responsables d’une tenue au secret vis-à-vis des autres), dont cha- + opération qui se termine mal pour un ou plu- cune accueille plusieurs projets de recherche. + sieurs membres de l’organisation… Celle dirigée par Mark Wu (et où les PJ ont + éventuellement découvert une étrange pièce sur + plan) est l’aile B, qui se situe au rez-de-chaussée. + Découvrir le laboratoire Une fois introduits dans le bâtiment, les PJ + de Terry Sap peuvent chercher diverses preuves accréditant + leurs découvertes précédentes. Localiser le la- + Le sorcier possède son propre laboratoire boratoire secret de Terry Sap permet d’en ob- + secret au cœur du bâtiment R&D de CyanGwo tenir de particulièrement probantes (restes de + – au sein de l’aile B. Une analyse des plans des cadavres de tigres, matériel d’alchimie, etc.). + lieux met en évidence une grande salle désignée De même, espionner le directeur-adjoint ou le + comme local d’entretien, qui ne dispose pour- sorcier amène éventuellement à surprendre une + tant visiblement d’aucun accès. Voilà qui devrait conversation compromettante entre eux. + interpeller les PJ et les pousser à en apprendre Selon la façon dont les PJ se débrouillent, ils + plus… peuvent se voir repérés par Terry Sap et Mark + Wu. Il convient donc de se montrer des plus + prudents. + + Infiltration de la Démasqués ! + branche R&D Si les PJ se trouvent repérés, deux cas de fi- + Il viendra certainement à l’esprit des PJ de gure sont alors envisagés : soit ils ont conscience + planifier une mission d’infiltration dans la socié- d’être grillés, soit ils se pensent toujours sous + té. Après tout, cela constitue la meilleure façon couverture. Dans un cas comme dans l’autre, + d’obtenir des preuves solides, même si cette Mark Wu se lancera dans un grand nettoyage + solution n’est pas sans risque. du département R&D (et dans la précipitation, + 怪 Il s’avère possible de pénétrer dans le péri- ouvrira une nouvelle fenêtre d’action pour les + mètre du laboratoire via les égouts – par le joueurs). Terry Sap, quant à lui, entreprendra de + chemin qu’empruntent les Museaux rusés – mener sa propre enquête sur les fat si afin de + si les PJ ont découvert cette voie lors de savoir à qui il a affaire. Les PJ seront dès lors + leurs investigations. dans son collimateur… + 怪 Sollicitée, Penelope Gwo leur fournit de + quoi passer par la grande porte : Mary + Siu lui confie à leur intention des badges + + +442 + les chroniques +Rencontre Représailles à venir + de l’étrange +avec Mary Siu Confondus, débarqués et exposés au grand + jour (sans même parler des ennuis judiciaires + Si les fat si apportent à Penelope Gwo des qu’ils encourent), Mark Wu et Terry Sap désirent +preuves solides de ce qui se trame au sein de à présent se venger. Un procès les attend, mais +l’aile B de la branche R&D de CyanGwo (par ce genre de procédure prend du temps – un +exemple : des photographies du trafic, la locali- temps qu’ils comptent mettre à profit pour fo- +sation du laboratoire clandestin, un enregistre- menter leur revanche. + + + + + scénario : à bon chat, bon rat +ment compromettant de Mark Wu et/ou Terry Mary Siu constitue leur cible prioritaire, +Sap), Mary Siu souhaitera les rencontrer person- à moins qu’ils n’aient identifié les PJ comme +nellement, toujours en présence de son amie. étant responsables de leur déchéance. Dans un + La P.-D.G. remerciera les PJ et procédera au cas comme dans l’autre, le MJ dispose d’une +paiement de leurs honoraires. À partir de ce mo- trame toute trouvée pour un prochain scénario +ment, elle reprend la main sur cette affaire via ramenant ces deux individus sur le devant de la +les canaux officiels de sa société. Elle licencie scène. +Mark Wu et Terry Sap sans plus attendre, puis +convoque elle-même la presse en vue de confes- +ser les activités condamnables de son entreprise +et d’annoncer les mesures que CyunGwo compte +prendre à très court terme pour faire amende +honorable : contrôle plus strict des projets, mise +en place d’un code éthique, soutien et dons aux +ONG protégeant la vie sauvage, etc. + + + + + 443 + s + ue + o niq e + hr ng + s c ra +le l’ét + de + + + + + Scène 2 – Chat perdu + « Peu importe qu’un chat soit noir ou même de la prendre en charge. Selon la façon + blanc : s’il attrape la souris, c’est un dont ils mènent la discussion, Juju peut facile- + ment se désintéresser d’eux et les planter là. Lui + bon chat. » proposer de la nourriture constitue le meilleur + Deng Xiaoping moyen de conserver son attention… + + Cette intrigue met en scène la rencontre des + PJ avec Juju, un esprit-chat femelle attachant et JUJU, ESPRIT-CHAT TAQUINE + gaffeur. Si elle a bien besoin d’un coup de pouce Juju est une maauzing nouveau-née et c’est bien là + pour faire ses premiers pas dans le Hong Kong son problème. Elle ne s’est pas encore accoutumée à + des humains, elle pourra également faire valoir sa nouvelle condition et se retrouve errant dans Hong + ses atouts et aider – bon gré mal gré – les fat si Kong comme une sans-abri à l’esprit embrumé et au + dans le cadre de leurs enquêtes. comportement inapproprié. + Sous sa forme humaine, elle possède l’apparence + d’une adolescente aux yeux sombres et pétillants de + malice. Ses cheveux bruns ébouriffés accentuent l’es- + Premiers contacts pièglerie de ses traits passe-partout. Divers rappels de + son origine féline émaillent son aspect (ses pupilles se + Quand le scénario débute, Juju vient tout fendent parfois, ses ongles tranchants s’allongent, son + juste de s’éveiller en tant que sauzing : après nez devient tout rose…). + cinq réincarnations successives dans la peau En tant qu’animal, Juju est une chatte « écaille de + d’un chat et grâce à son existence insouciante tortue » pouilleuse et au caractère bien marqué, mais + d’animal gâté par les retraités des coins où elle qui sait se montrer affectueuse. + traîne, elle est finalement devenue un esprit- + chat. Perdue, elle erre dans son quartier de + la ville de Tai Po dont elle sort parfois pour + chercher à manger. Son comportement étant + encore celui d’un félin des rues, elle enchaîne les + longues siestes dans des endroits improbables + et les interactions humaines… compliquées + – notamment quand il lui faut se nourrir. + Dans les pattes + D’ailleurs, les PJ croisent pour la première Une fois que Juju se trouve dans les pattes + fois sa route (par exemple alors qu’ils entament des PJ, elle va s’attacher à eux – d’autant plus + leur enquête pour le compte de Mary Siu) lors- s’ils l’ont sauvée et nourrie ! Elle ne cesse dès + qu’elle les bouscule après avoir volé un poisson lors de les placer dans des situations cocasses, + sur l’étal d’un marchand. Le MJ peut en fournir voire embarrassantes : elle vole sa nourriture + une description sommaire avant de la faire dis- et d’autres choses (n’ayant aucune notion de la + paraître au coin de la rue. Une deuxième ren- propriété privée), provoque les chiens et crache + contre est à planifier un peu plus tard. Cette après eux, s’exprime de façon directe et sans + fois, Juju se voit prise à partie par un bande de aucun filtre, ne se montre guère gênée par la + voyous – que les PJ peuvent disperser aisément nudité, parle avec les chats qu’elle croise en + à l’occasion d’un petit combat. Après cette alter- miaulant… + cation, la jeune maauzing est tentée de détaler Malgré ce comportement, elle se révèle une + sans demander son reste, mais les PJ peuvent gamine très attachante, et les PJ devraient lo- + l’amadouer et faire sa connaissance s’ils se giquement s’en accommoder et surtout l’aider + montrent amicaux. Sa nature de jiugwaai saute à prendre ses marques dans sa nouvelle vie. + aux yeux des fat si (sa forme humaine s’avère À eux de lui enseigner les rudiments de la vie + imparfaite et comporte de nombreux traits fé- parmi les mortels – même si cela ne se fera pas + lins) et ils auront sans doute à cœur de lui ve- sans peine… Si jamais les fat si prenaient cette + nir en aide, comme leur devoir l’exige – en lui tâche à la légère, le MJ ne doit pas hésiter à leur + fournissant un début d’éducation aux manières rappeler qu’une telle mission entre pleinement + humaines et en lui trouvant une communauté à dans leurs attributions (cf p. 39) ! + + +444 + \ No newline at end of file diff --git a/src/documents/item.js b/src/documents/item.js index b7fa46b..4f1cfaf 100644 --- a/src/documents/item.js +++ b/src/documents/item.js @@ -11,5 +11,26 @@ * @license CC BY-NC-SA 4.0 – https://creativecommons.org/licenses/by-nc-sa/4.0/ */ +/** Default icons per item type. */ +const DEFAULT_ICONS = { + kungfu: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-kungfu.svg", + spell: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-spell.svg", + supernatural: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-supernatural.svg", + weapon: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-weapon.svg", + armor: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-armor.svg", + sanhei: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-sanhei.svg", + ingredient: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-ingredient.svg", + item: "systems/fvtt-chroniques-de-l-etrange/images/icons/icon-item.svg", +}; + export class CDEItem extends Item { + + /** @override */ + async _preCreate(data, options, userId) { + await super._preCreate(data, options, userId); + const defaultIcon = DEFAULT_ICONS[this.type]; + if (defaultIcon && (!data.img || data.img === Item.DEFAULT_ICON)) { + this.updateSource({ img: defaultIcon }); + } + } } diff --git a/system.json b/system.json index 6612bee..9bcedbb 100644 --- a/system.json +++ b/system.json @@ -17,7 +17,89 @@ "css/cde-theme.css" ], "packFolders": [], - "packs":[], + "packs": [ + { + "name": "cde-kungfus", + "label": "Arts Martiaux", + "type": "Item", + "path": "packs/cde-kungfus", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { "PLAYER": "OBSERVER", "ASSISTANT": "OWNER" } + }, + { + "name": "cde-spells", + "label": "Sortilèges", + "type": "Item", + "path": "packs/cde-spells", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { "PLAYER": "OBSERVER", "ASSISTANT": "OWNER" } + }, + { + "name": "cde-supernaturals", + "label": "Capacités Surnaturelles", + "type": "Item", + "path": "packs/cde-supernaturals", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { "PLAYER": "OBSERVER", "ASSISTANT": "OWNER" } + }, + { + "name": "cde-weapons", + "label": "Armes", + "type": "Item", + "path": "packs/cde-weapons", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { "PLAYER": "OBSERVER", "ASSISTANT": "OWNER" } + }, + { + "name": "cde-armors", + "label": "Protections", + "type": "Item", + "path": "packs/cde-armors", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { "PLAYER": "OBSERVER", "ASSISTANT": "OWNER" } + }, + { + "name": "cde-sanhei", + "label": "San Hei", + "type": "Item", + "path": "packs/cde-sanhei", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { "PLAYER": "OBSERVER", "ASSISTANT": "OWNER" } + }, + { + "name": "cde-ingredients", + "label": "Ingrédients", + "type": "Item", + "path": "packs/cde-ingredients", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { "PLAYER": "OBSERVER", "ASSISTANT": "OWNER" } + }, + { + "name": "cde-items", + "label": "Équipements", + "type": "Item", + "path": "packs/cde-items", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { "PLAYER": "OBSERVER", "ASSISTANT": "OWNER" } + }, + { + "name": "cde-npcs", + "label": "Créatures & PNJs", + "type": "Actor", + "path": "packs/cde-npcs", + "system": "fvtt-chroniques-de-l-etrange", + "flags": {}, + "ownership": { "PLAYER": "NONE", "ASSISTANT": "OWNER" } + } + ], "languages": [ { "lang": "fr", diff --git a/tmp/test-cde-armors/000003.log b/tmp/test-cde-armors/000003.log new file mode 100644 index 0000000..e69de29 diff --git a/tmp/test-cde-armors/CURRENT b/tmp/test-cde-armors/CURRENT new file mode 100644 index 0000000..1a84852 --- /dev/null +++ b/tmp/test-cde-armors/CURRENT @@ -0,0 +1 @@ +MANIFEST-000002 diff --git a/tmp/test-cde-armors/LOCK b/tmp/test-cde-armors/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/tmp/test-cde-armors/LOG b/tmp/test-cde-armors/LOG new file mode 100644 index 0000000..5d9d53d --- /dev/null +++ b/tmp/test-cde-armors/LOG @@ -0,0 +1 @@ +2026/03/31-18:02:40.694402 7fa6737fe6c0 Delete type=3 #1 diff --git a/tmp/test-cde-armors/MANIFEST-000002 b/tmp/test-cde-armors/MANIFEST-000002 new file mode 100644 index 0000000000000000000000000000000000000000..bbbc585686bcbcc33686059c69d80b7b4e1291cd GIT binary patch literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$kRS-TOEg7@3$k8JJmE F7y#sj5K{mE literal 0 HcmV?d00001 diff --git a/tools/compendiums.mjs b/tools/compendiums.mjs new file mode 100644 index 0000000..ddbbc06 --- /dev/null +++ b/tools/compendiums.mjs @@ -0,0 +1,82 @@ +/** + * Chroniques de l'Étrange — Système FoundryVTT + * Édité par Antre-Monde Éditions + * @file tools/compendiums.mjs — Compile / extrait les compendiums LevelDB + * @author LeRatierBretonnien + * @copyright 2025 LeRatierBretonnien + * @license CC BY-NC-SA 4.0 + * @description Ce système a été réalisé avec l'autorisation d'Antre-Monde Éditions. + * Le jeu Chroniques de l'Étrange est un jeu de rôle édité par Antre-Monde Éditions. + * + * Usage: + * npm run pack:compile — compile packs-src/ → packs/ (JSON → LevelDB) + * npm run pack:extract — extrait packs/ → packs-src/ (LevelDB → JSON) + * + * Format des fichiers source JSON : + * Chaque document DOIT contenir un champ `_key` de la forme : + * - Items : `"_key": "!items!<_id>"` + * - Actors : `"_key": "!actors!<_id>"` + * Sans ce champ, le document est ignoré silencieusement par compilePack. + */ + +import { compilePack, extractPack } from "@foundryvtt/foundryvtt-cli"; +import { promises as fs } from "fs"; +import path from "path"; + +const ROOT = new URL("..", import.meta.url).pathname; +const SRC_DIR = path.join(ROOT, "packs-src"); +const DIST_DIR = path.join(ROOT, "packs"); + +const action = process.argv[2] ?? "compile"; + +if (action === "compile") { + await compileAll(); +} else if (action === "extract") { + await extractAll(); +} else { + console.error(`Action inconnue : ${action}. Utiliser "compile" ou "extract".`); + process.exit(1); +} + +/** + * Compile tous les sous-dossiers de packs-src/ vers packs/ (JSON → LevelDB). + */ +async function compileAll() { + const packs = await fs.readdir(SRC_DIR); + for (const pack of packs) { + const src = path.join(SRC_DIR, pack); + const dist = path.join(DIST_DIR, pack); + const stat = await fs.stat(src); + if (!stat.isDirectory()) continue; + console.log(`📦 Compilation : ${pack}`); + // Supprime l'ancien LevelDB avant recompilation (évite l'erreur LEVEL_ITERATOR_NOT_OPEN) + await fs.rm(dist, { recursive: true, force: true }); + await compilePack(src, dist, { yaml: false }); + } + console.log("✅ Compilation terminée."); +} + +/** + * Extrait tous les packs LevelDB de packs/ vers packs-src/ (LevelDB → JSON). + */ +async function extractAll() { + const packs = await fs.readdir(DIST_DIR); + for (const pack of packs) { + const dist = path.join(DIST_DIR, pack); + const src = path.join(SRC_DIR, pack); + const stat = await fs.stat(dist).catch(() => null); + if (!stat?.isDirectory()) continue; + console.log(`📂 Extraction : ${pack}`); + await fs.mkdir(src, { recursive: true }); + await extractPack(dist, src, { + yaml: false, + transformName: doc => { + const safeName = doc.name.replace(/[^a-zA-Z0-9À-ÿ]/g, "_"); + const docType = doc._key?.split("!")[1] ?? "doc"; + const prefix = ["actors", "items"].includes(docType) ? doc.type : docType; + return `${prefix}_${safeName}_${doc._id}.json`; + }, + }); + } + console.log("✅ Extraction terminée."); +}