Compare commits

..

43 Commits

Author SHA1 Message Date
Vlyan
d035b963de Release 1.13.2 2025-10-18 13:37:02 +02:00
Vlyan
a14c26d168 Release 1.13.2 2025-10-18 13:26:32 +02:00
Vlyan
b25a25a94f Added handmade conditions icons by Nikotka - part 2 2025-10-18 10:23:55 +02:00
Vlyan
98ffb27db7 Added handmade conditions icons by Nikotka 2025-10-06 17:02:10 +02:00
Vlyan
a6e0f60665 Merge branch 'patch-1' into 'dev'
Edit es-es.json

See merge request teaml5r/l5r5e!47
2025-10-06 14:59:24 +00:00
Alejabar
8488ed1bd1 Edit es-es.json 2025-10-06 14:59:23 +00:00
Vlyan
dda47c51a8 20Q autocomplete and menu css fixes 2025-09-27 10:56:06 +02:00
Vlyan
a2285931b3 unduplicate Astrolab name for Unicorn version (Mantis untouched) 2025-09-26 11:25:49 +02:00
Vlyan
37b8956048 Fix for pressing key "Enter" in input trigger "no active Encounter..." message. 2025-09-25 17:45:45 +02:00
Vlyan
e54a105222 Release v1.13.1 - Conditions & Fixes 2025-09-21 16:55:57 +02:00
Vlyan
bee911df5e Merge branch 'dev' into 'dev'
apply incapacitated if character's fatigue goes beyond endurance, simplify...

See merge request teaml5r/l5r5e!46
2025-09-11 15:35:03 +00:00
Bernhard Posselt
e2e533d481 apply incapacitated if character's fatigue goes beyond endurance, simplify update logic since composure and endurance are derived attributes which aren't persisted on the actor's data 2025-09-06 11:14:13 +02:00
Vlyan
2518ded84f only add l5r conditions instead of replacing them all 2025-09-06 09:48:02 +02:00
Vlyan
fab88401ea Merge branch 'dev' into 'dev'
Automatically add compromised condition when strife goes beyond max and remove...

See merge request teaml5r/l5r5e!45
2025-09-06 07:38:11 +00:00
Putty
7fed2f0a98 Automatically add compromised condition when strife goes beyond max and remove... 2025-09-06 07:38:10 +00:00
Vlyan
7c3ef81dec updated conditions on types 2025-09-05 10:45:09 +02:00
Vlyan
cbb52bf3aa Merge branch 'automated-exhausted-condition' into 'dev'
Automated exhausted condition

See merge request teaml5r/l5r5e!44
2025-09-05 08:34:20 +00:00
Putty
86f73a96d0 Automated exhausted condition 2025-09-05 08:34:20 +00:00
Vlyan
dbba39373b basic tooltip fix by KitCat #62 2025-09-05 10:20:55 +02:00
Vlyan
30455759e8 Properties loading optimizations by KitCat 2025-09-05 09:53:48 +02:00
Vlyan
eb675f24ea Added ability to remove condition from actor sheet + journal on click. 2025-09-04 13:18:17 +02:00
Vlyan
1357ec9b6d Merge branch 'conditions' into 'dev'
Implement token conditions

See merge request teaml5r/l5r5e!42
2025-09-04 07:53:36 +00:00
Vlyan
396986fefd Merge branch 'issue65_calling_map_on_set' into 'dev'
Fixing using map on Set causing issues. Renamed a few variables to try and...

See merge request teaml5r/l5r5e!43
2025-09-04 07:49:09 +00:00
Vlyan
c591cee153 #66 fix fade configuration css 2025-09-04 09:47:07 +02:00
Litasa
54ae4fdb63 Fixing using map on Set causing issues. Renamed a few variables to try and make it more clear what type they are 2025-09-03 20:09:39 +00:00
Bernhard Posselt
e846a0a30c implement token conditions 2025-09-03 14:11:06 +02:00
Vlyan
54aafefcf4 Release v1.13.0 2025-08-24 13:24:09 +02:00
Vlyan
c138b52c30 add chat migration 2025-08-24 10:40:55 +02:00
Vlyan
8b77966287 fixed some css & prosemirror 2025-08-22 12:47:39 +02:00
Vlyan
30e8da25a2 fixed some css 2025-08-20 17:37:01 +02:00
Vlyan
0d71accfd5 Sync internal import with CofW 2025-08-19 12:38:30 +02:00
Vlyan
02db7b6fe2 Merge branch 'children-of-the-five-winds_update' into 'dev'
Children of the five winds update

See merge request teaml5r/l5r5e!41
2025-08-18 14:55:02 +00:00
Litasa
3e75b54958 Children of the five winds update 2025-08-18 14:55:02 +00:00
Vlyan
80b9703318 Merge branch 'dev_popupmanager' into 'dev'
Moved the popup manager into its own file. Made it more robust so there should...

See merge request teaml5r/l5r5e!40
2025-07-25 15:48:22 +00:00
Litasa
6a8d25f140 Moved the popup manager into its own file. Made it more robust so there should... 2025-07-25 15:48:21 +00:00
Vlyan
e9b7b5b42f Merge branch 'v13_update_pt2' into 'dev'
V13 update pt2

See merge request teaml5r/l5r5e!39
2025-06-30 17:16:09 +00:00
Litasa
1bc01d0741 V13 update pt2 2025-06-30 17:16:09 +00:00
Vlyan
a9748bdf03 Merge branch 'v13_update' into 'dev'
Updating to v13, various changes to make it work

See merge request teaml5r/l5r5e!38
2025-05-30 08:58:14 +00:00
Litasa
1649c2b032 Updating to v13, various changes to make it work 2025-05-30 08:58:14 +00:00
Vlyan
897ccefd71 Compat FVTT v13 - adding namespaces 2025-05-01 14:41:43 +02:00
Vlyan
95fa36d7a8 Merge branch 'gm_toolbox_monitor_application_v2' into 'dev'
ApplicationV2 GM Toolbox and GM Monitor

See merge request teaml5r/l5r5e!37
2025-05-01 12:05:54 +00:00
Litasa
9d8c1431be ApplicationV2 GM Toolbox and GM Monitor 2025-05-01 12:05:54 +00:00
Vlyan
2c883d2be3 Fix Type "Beseech Hida's Might" 2025-04-02 14:50:47 +02:00
149 changed files with 3967 additions and 2125 deletions

View File

@@ -6,6 +6,36 @@ Date format : day/month/year
> - `foundry-version`: Stick to the major version of FoundryVTT.
> - `system-version`: System functionalities and Fixes.
## 1.13.2 - 18/10/2025 - Conditions Icons & Fixes
- Fix Actor Sheet for pressing key `Enter` in input trigger `no active Encounter...` message.
- Fix Compendium `Astrolab` is duplicate with `Mantis Clan` and `Children of the Five Winds`. Renamed the `cotfw` version to `Astrolabe (Unicorn)`.
- Fix 20Q autocomplete and menu css.
- Added handmade conditions icons by Nikotka (thx to rex35game for the share).
- Spanish language updated thanks to Alejabarr.
## 1.13.1 - 21/09/2025 - Conditions & Fixes
- Fix for Clicking on items doesn't show item window (#65 Thx to Litasa)
- Fix for fade configuration (#66)
- Added some Tooltips loading optimizations (#62 Thanks to KitCat).
- Added some Properties loading optimizations (#63 Thanks to KitCat).
- Conditions changes :
- Added basic token conditions (Thanks to Putty)
- Added compromised condition when strife goes beyond max (Thanks to Putty).
- Added apply incapacitated if character's fatigue goes beyond endurance (Thanks to Putty).
- Added ability to remove condition from actor sheet and show core journal on click.
- Added option to show all conditions (StatusEffect), default to false (show only l5R conditions).
## 1.13.0 - 24/08/2025 - Foundry v13 Compatibility (Thx to Litasa)
__! Be certain to carefully back up any critical user data before installing this update !__
- Updated the System to FoundryVTT v13.
- Compendiums
- Added English compendium for `Children of the Five Winds`.
- Added French translation for `Writ of the Wild`.
- Fix Compendium Typo: "Beseech Hida's MIght" -> "Beseech Hida's Might" (#59).
- Actor sheets: Technique types are now hidden when they are not checked in locked mode.
- Fix 20Q: Technique message fixed (unallowed tech for School).
- Switched wysiwyg editor engine to `prosemirror` for text editor (`tinymce` will be removed in Foundry v14).
## 1.12.3 - 13/03/2025 - Fixes and Compendiums Filters (Thx to Litasa)
- Added Compendiums Filters (#41)
- Separated the reference and the page number from book reference for filtering purpose.
@@ -43,12 +73,12 @@ __! Be certain to carefully back up any critical user data before installing thi
## 1.11.0 - 13/12/2023 - Little fixes
- 20Q :
- Starting techniques now have a limit of 6 techniques instead of 5 (see Celestial Realms : `Moshi Sun Sentinel School`).
- Enable dropping on the 'drop here' label for 20Q (thk to Litasa !34).
- Enable dropping on the 'drop here' label for 20Q (thk to Litasa #34).
- Compendiums : Added masteries and abilities from Deathly Turns.
## 1.10.1 - 22/08/2023 - Litasa's fixes
All these changes are thanks to Litasa.
- Roll-n-Keep dialog now waits for the DiceSoNice animation to finish before displaying the result when re-rolling or exploding dice (!28).
- Roll-n-Keep dialog now waits for the DiceSoNice animation to finish before displaying the result when re-rolling or exploding dice (#28).
- Adding the ability to have a different name for the custom-compendium (needed to disable the system embedded ones).
- Fixes some CSS issues when the font size is not the default (#50, #51 and #52).
@@ -64,8 +94,8 @@ __! Be certain to carefully back up any critical user data before installing thi
## 1.9.6 - 14/05/2023 - Bragma's QoL
All these changes are thanks to Bragma.
- Added effects panel to both pc and npc (!26).
- Added a underline on rings to show current stance (!25).
- Added effects panel to both pc and npc (#26).
- Added an underline on rings to show current stance (#25).
- Fix Lists not showing correctly in journal (#44).
## 1.9.5 - 11/01/2023 - Adding Modifiers

View File

@@ -3,7 +3,7 @@
![Banner Legend of the Five Rings](./l5rBan.jpg)
[![Buy Me a Coffee](./tags-bymecoffee.svg)](https://ko-fi.com/vlyan)
[![FoundryVTT version](https://img.shields.io/badge/FVTT-v12-informational)](https://foundryvtt.com/)
[![FoundryVTT version](https://img.shields.io/badge/FVTT-v13-informational)](https://foundryvtt.com/)
[![Forge Installs](https://img.shields.io/badge/dynamic/json?label=Forge%20Installs&query=package.installs&suffix=%25&url=https%3A%2F%2Fforge-vtt.com%2Fapi%2Fbazaar%2Fpackage%2Fl5r5e&colorB=4aa94a)](https://forge-vtt.com/bazaar#package=l5r5e)
[![Foundry Hub Endorsements](https://img.shields.io/endpoint?logoColor=white&url=https%3A%2F%2Fwww.foundryvtt-hub.com%2Fwp-json%2Fhubapi%2Fv1%2Fpackage%2Fl5r5e%2Fshield%2Fendorsements)](https://www.foundryvtt-hub.com/package/l5r5e/)
[![Foundry Hub Comments](https://img.shields.io/endpoint?logoColor=white&url=https%3A%2F%2Fwww.foundryvtt-hub.com%2Fwp-json%2Fhubapi%2Fv1%2Fpackage%2Fl5r5e%2Fshield%2Fcomments)](https://www.foundryvtt-hub.com/package/l5r5e/)

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -0,0 +1,2 @@
All original conditions icons was made by Nikotka.
Altered by Vlyan to be more visible in FoundryVTT.

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -156,6 +156,30 @@
"source_reference": {
"page": "97"
}
},
{
"id": "Mirror Armor",
"name": "Mirror Armor (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Unicorn Barding",
"name": "Unicorn Barding (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Yuki: The Ancestral Armor of the Unicorn Clan [Blessed Treasure]",
"name": "Yuki: The Ancestral Armor of the Unicorn Clan [Blessed Treasure] (WIP)",
"description": "",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -148,6 +148,30 @@
"source_reference": {
"page": "105"
}
},
{
"id": "Ujik Horsebow Pattern",
"name": "Ujik Horsebow Pattern (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Utsuko Pattern",
"name": "Utsuko Pattern (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Watered Steel Pattern",
"name": "Watered Steel Pattern (WIP)",
"description": "",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -892,6 +892,86 @@
"source_reference": {
"page": "96"
}
},
{
"id": "Astrolabe (Unicorn)",
"name": "Astrolabe (Licorne)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Horo (Arrow Cloak)",
"name": "Horo (Arrow Cloak) (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Lantern (Personal)",
"name": "Lantern (Personal) (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Mineral-Oil Lamp",
"name": "Mineral-Oil Lamp (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Prayer Rug",
"name": "Prayer Rug (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Sand Clock",
"name": "Sand Clock (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Traveling Board Games",
"name": "Traveling Board Games (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Word of the Prophet",
"name": "Word of the Prophet (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Talisman of the Sun [Blessed Treasure]",
"name": "Talisman of the Sun [Blessed Treasure] (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Fox Pipe [Blessed Treasure]",
"name": "Fox Pipe [Blessed Treasure] (WIP)",
"description": "",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -9,7 +9,7 @@
"pages": {
"Figure: Afflicted": {
"name": "Tourmenté - Image",
"src": "icons/svg/sun.svg"
"src": "systems/l5r5e/assets/icons/conditions/afflicted.webp"
},
"Afflicted": {
"name": "Tourmenté",
@@ -22,7 +22,7 @@
"pages": {
"Figure: Bleeding": {
"name": "En sang - Image",
"src": "icons/svg/blood.svg"
"src": "systems/l5r5e/assets/icons/conditions/bleeding.webp"
},
"Bleeding": {
"name": "En sang",
@@ -35,7 +35,7 @@
"pages": {
"Figure: Burning": {
"name": "En feu - Image",
"src": "icons/svg/fire.svg"
"src": "systems/l5r5e/assets/icons/conditions/burning.webp"
},
"Burning": {
"name": "En feu",
@@ -48,7 +48,7 @@
"pages": {
"Figure: Compromised": {
"name": "Compromis - Image",
"src": "icons/svg/terror.svg"
"src": "systems/l5r5e/assets/icons/conditions/compromised.webp"
},
"Compromised": {
"name": "Compromis",
@@ -61,7 +61,7 @@
"pages": {
"Figure: Dazed": {
"name": "Hébété - Image",
"src": "icons/svg/eye.svg"
"src": "systems/l5r5e/assets/icons/conditions/dazed.webp"
},
"Dazed": {
"name": "Hébété",
@@ -74,7 +74,7 @@
"pages": {
"Figure: Disoriented": {
"name": "Désorienté - Image",
"src": "icons/svg/daze.svg"
"src": "systems/l5r5e/assets/icons/conditions/disoriented.webp"
},
"Disoriented": {
"name": "Désorienté",
@@ -87,7 +87,7 @@
"pages": {
"Figure: Dying [X Rounds]": {
"name": "Mourant (X rounds) - Image",
"src": "icons/svg/skull.svg"
"src": "systems/l5r5e/assets/icons/conditions/dying_1.webp"
},
"Dying [X Rounds]": {
"name": "Mourant (X rounds)",
@@ -100,7 +100,7 @@
"pages": {
"Figure: Enraged": {
"name": "Enragé - Image",
"src": "icons/svg/lightning.svg"
"src": "systems/l5r5e/assets/icons/conditions/enraged.webp"
},
"Enraged": {
"name": "Enragé",
@@ -113,7 +113,7 @@
"pages": {
"Figure: Exhausted": {
"name": "Epuisé - Image",
"src": "icons/svg/sleep.svg"
"src": "systems/l5r5e/assets/icons/conditions/exhausted.webp"
},
"Exhausted": {
"name": "Epuisé",
@@ -126,7 +126,7 @@
"pages": {
"Figure: Immobilized": {
"name": "Immobilisé - Image",
"src": "icons/svg/net.svg"
"src": "systems/l5r5e/assets/icons/conditions/immobilized.webp"
},
"Immobilized": {
"name": "Immobilisé",
@@ -139,7 +139,7 @@
"pages": {
"Figure: Incapacitated": {
"name": "Hors de combat - Image",
"src": "icons/svg/downgrade.svg"
"src": "systems/l5r5e/assets/icons/conditions/incapacitated.webp"
},
"Incapacitated": {
"name": "Hors de combat",
@@ -152,7 +152,7 @@
"pages": {
"Figure: Intoxicated": {
"name": "Ivre - Image",
"src": "icons/svg/poison.svg"
"src": "systems/l5r5e/assets/icons/conditions/intoxicated.webp"
},
"Intoxicated": {
"name": "Ivre",
@@ -165,7 +165,7 @@
"pages": {
"Figure: Prone": {
"name": "A terre - Image",
"src": "icons/svg/falling.svg"
"src": "systems/l5r5e/assets/icons/conditions/prone.webp"
},
"Prone": {
"name": "A terre",
@@ -178,7 +178,7 @@
"pages": {
"Figure: Silenced": {
"name": "Aphone - Image",
"src": "icons/svg/silenced.svg"
"src": "systems/l5r5e/assets/icons/conditions/silenced.webp"
},
"Silenced": {
"name": "Aphone",
@@ -191,7 +191,7 @@
"pages": {
"Figure: Unconscious": {
"name": "Inconscient - Image",
"src": "icons/svg/unconscious.svg"
"src": "systems/l5r5e/assets/icons/conditions/unconscious.webp"
},
"Unconscious": {
"name": "Inconscient",
@@ -204,7 +204,7 @@
"pages": {
"Figure: Wounded": {
"name": "Blessé - Image",
"src": "icons/svg/degen.svg"
"src": "systems/l5r5e/assets/icons/conditions/heavily_wounded.webp"
},
"Wounded": {
"name": "Blessé",
@@ -213,67 +213,106 @@
}
},
"Illness: Oozing Sore Disease": {
"name": "Illness: Oozing Sore Disease (WIP)",
"name": "Maladie : Bubons purulents",
"pages": {
"Figure: Illness: Oozing Sore Disease": {
"name": "Illness: Oozing Sore Disease (WIP) - Image",
"src": "systems/l5r5e/assets/icons/social.svg"
"name": "Maladie : Bubons purulents - Image",
"src": "systems/l5r5e/assets/icons/conditions/illness_oozing_sore_disease.webp"
},
"Illness: Oozing Sore Disease": {
"name": "Illness: Oozing Sore Disease (WIP)",
"text": "<blockquote>Les Édits de la Nature</blockquote>"
"name": "Maladie : Bubons purulents",
"text": "<blockquote>Les Édits de la Nature p.140</blockquote>"
}
}
},
"Illness: Gut Sickness": {
"name": "Illness: Gut Sickness (WIP)",
"name": "Maladie : Mal des entrailles",
"pages": {
"Figure: Illness: Gut Sickness": {
"name": "Illness: Gut Sickness (WIP) - Image",
"src": "systems/l5r5e/assets/icons/social.svg"
"name": "Maladie : Mal des entrailles - Image",
"src": "systems/l5r5e/assets/icons/conditions/illness_gut_sickness.webp"
},
"Illness: Gut Sickness": {
"name": "Illness: Gut Sickness (WIP)",
"text": "<blockquote>Les Édits de la Nature</blockquote>"
"name": "Maladie : Mal des entrailles",
"text": "<blockquote>Les Édits de la Nature p.141</blockquote>"
}
}
},
"Illness: Coughing Illness": {
"name": "Illness: Coughing Illness (WIP)",
"name": "Maladie : Mauvaise toux",
"pages": {
"Figure: Illness: Coughing Illness": {
"name": "Illness: Coughing Illness (WIP) - Image",
"src": "systems/l5r5e/assets/icons/social.svg"
"name": "Maladie : Mauvaise toux - Image",
"src": "systems/l5r5e/assets/icons/conditions/illness_coughing_illness.webp"
},
"Illness: Coughing Illness": {
"name": "Illness: Coughing Illness (WIP)",
"text": "<blockquote>Les Édits de la Nature</blockquote>"
"name": "Maladie : Mauvaise toux",
"text": "<blockquote>Les Édits de la Nature p.141</blockquote>"
}
}
},
"Illness: Unsteady Illness": {
"name": "Illness: Unsteady Illness (WIP)",
"name": "Maladie : Vertiges",
"pages": {
"Figure: Illness: Unsteady Illness": {
"name": "Illness: Unsteady Illness (WIP) - Image",
"src": "systems/l5r5e/assets/icons/social.svg"
"name": "Maladie : Vertiges - Image",
"src": "systems/l5r5e/assets/icons/conditions/illness_unsteady_illness.webp"
},
"Illness: Unsteady Illness": {
"name": "Illness: Unsteady Illness (WIP)",
"text": "<blockquote>Les Édits de la Nature</blockquote>"
"name": "Maladie : Vertiges",
"text": "<blockquote>Les Édits de la Nature p.141</blockquote>"
}
}
},
"Illness: Fire Rash": {
"name": "Illness: Fire Rash (WIP)",
"name": "Maladie : Rougeurs",
"pages": {
"Figure: Illness: Fire Rash": {
"name": "Illness: Fire Rash (WIP) - Image",
"src": "systems/l5r5e/assets/icons/social.svg"
"name": "Maladie : Rougeurs - Image",
"src": "systems/l5r5e/assets/icons/conditions/illness_fire_rash.webp"
},
"Illness: Fire Rash": {
"name": "Illness: Fire Rash (WIP)",
"text": "<blockquote>Les Édits de la Nature</blockquote>"
"name": "Maladie : Rougeurs",
"text": "<blockquote>Les Édits de la Nature p.141</blockquote>"
}
}
},
"Centered": {
"name": "Centered (WIP)",
"pages": {
"Figure: Centered": {
"name": "Centered (WIP) - Image",
"src": "systems/l5r5e/assets/icons/conditions/centered.webp"
},
"Centered": {
"name": "Centered (WIP)",
"text": "<blockquote>Les Enfants des Cinq Vents</blockquote>"
}
}
},
"Emboldened": {
"name": "Emboldened (WIP)",
"pages": {
"Figure: Emboldened": {
"name": "Emboldened (WIP) - Image",
"src": "systems/l5r5e/assets/icons/conditions/emboldened.webp"
},
"Emboldened": {
"name": "Emboldened (WIP)",
"text": "<blockquote>Les Enfants des Cinq Vents</blockquote>"
}
}
},
"Possessed": {
"name": "Possessed (WIP)",
"pages": {
"Figure: Possessed": {
"name": "Possessed (WIP) - Image",
"src": "systems/l5r5e/assets/icons/conditions/possesed.webp"
},
"Possessed": {
"name": "Possessed (WIP)",
"text": "<blockquote>Les Enfants des Cinq Vents</blockquote>"
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -135,15 +135,15 @@
}
},
"Imbalanced (One or More Elements) Variant": {
"name": "Imbalanced (One or More Elements) Variant (WIP)",
"name": "Déséquilibré (un ou plusieurs éléments) variante",
"pages": {
"Figure: Imbalanced (One or More Elements) Variant": {
"name": "Imbalanced (One or More Elements) Variant (WIP) - Image",
"name": "Déséquilibré (un ou plusieurs éléments) variante - Image",
"src": "icons/svg/stoned.svg"
},
"Imbalanced (One or More Elements) Variant": {
"name": "Imbalanced (One or More Elements) Variant (WIP)",
"text": "<blockquote>Les Édits de la Nature</blockquote>"
"name": "Déséquilibré (un ou plusieurs éléments) variante",
"text": "<blockquote>Les Édits de la Nature p.139</blockquote>"
}
}
}

View File

@@ -746,26 +746,53 @@
},
{
"id": "Insomniac",
"name": "Insomniac (WIP)",
"name": "Insomniaque",
"types": "Mental",
"description": "",
"source_reference": {
"page": ""
"page": "104"
}
},
{
"id": "Out of Shape",
"name": "Out of Shape (WIP)",
"name": "Petite forme",
"types": "Physique",
"description": "",
"source_reference": {
"page": "105"
}
},
{
"id": "Stalked by [Creature]",
"name": "Poursuivi par [une créature]",
"types": "Relations, Mental, Spirituel",
"description": "",
"source_reference": {
"page": "105"
}
},
{
"id": "Lost Family History",
"name": "Lost Family History (WIP)",
"types": "Relations, Matériel",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Stalked by [Creature]",
"name": "Stalked by [Creature] (WIP)",
"types": "Relations, Mental, Spirituel",
"id": "Penalty",
"name": "Penalty (WIP)",
"types": "Infamie, Social",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Schism in Status",
"name": "Schism in Status (WIP)",
"types": "Infamie, Relations",
"description": "",
"source_reference": {
"page": ""

View File

@@ -359,7 +359,43 @@
},
{
"id": "Fear of [Common Creature]",
"name": "Fear of [Common Creature] (WIP)",
"name": "Phobie des [Créature Ordinaire]",
"types": "Mental",
"description": "",
"source_reference": {
"page": "106"
}
},
{
"id": "Fear of Mediocrity",
"name": "Crainte de la médiocrité",
"types": "Relations, Mental",
"description": "",
"source_reference": {
"page": "105"
}
},
{
"id": "Fear of Poison",
"name": "Peur du poison",
"types": "Mental",
"description": "",
"source_reference": {
"page": "106"
}
},
{
"id": "Animal Signs",
"name": "Animal Signs (WIP)",
"types": "Mental, Spirituel",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Disdain for Urban Sprawl",
"name": "Disdain for Urban Sprawl (WIP)",
"types": "Mental",
"description": "",
"source_reference": {
@@ -367,17 +403,8 @@
}
},
{
"id": "Fear of Mediocrity",
"name": "Fear of Mediocrity (WIP)",
"types": "Relations, Mental",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Fear of Poison",
"name": "Fear of Poison (WIP)",
"id": "Tip of the Tongue",
"name": "Tip of the Tongue (WIP)",
"types": "Mental",
"description": "",
"source_reference": {

View File

@@ -620,26 +620,53 @@
},
{
"id": "Knowledgeable Wilderness Guide",
"name": "Knowledgeable Wilderness Guide (WIP)",
"name": "Guide de plein air expert",
"types": "Relations, Spirituel",
"description": "",
"source_reference": {
"page": ""
"page": "102"
}
},
{
"id": "Skilled Midwife",
"name": "Skilled Midwife (WIP)",
"name": "Sage-femme compétente",
"types": "Relations",
"description": "",
"source_reference": {
"page": "102"
}
},
{
"id": "Thoughtful Arbiter",
"name": "Arbitre réfléchi",
"types": "Relations",
"description": "",
"source_reference": {
"page": "102"
}
},
{
"id": "Affinity with [Animal Type]",
"name": "Affinity with [Animal Type] (WIP)",
"types": "Renommée, Relations",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Thoughtful Arbiter",
"name": "Thoughtful Arbiter (WIP)",
"types": "Relations",
"id": "Legal Scholarship",
"name": "Legal Scholarship (WIP)",
"types": "Relations, Social",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Syncretic Philosophy",
"name": "Syncretic Philosophy (WIP)",
"types": "Relations, Mental",
"description": "",
"source_reference": {
"page": ""

View File

@@ -377,17 +377,44 @@
},
{
"id": "Charity",
"name": "Charity (WIP)",
"name": "Charité",
"types": "Relations, Mental",
"description": "",
"source_reference": {
"page": "103"
}
},
{
"id": "Kintsugi",
"name": "Kintsugi",
"types": "Mental, Physique",
"description": "",
"source_reference": {
"page": "104"
}
},
{
"id": "Horse Racing",
"name": "Horse Racing (WIP)",
"types": "Physique",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Kintsugi",
"name": "Kintsugi (WIP)",
"types": "Mental, Physique",
"id": "Hot Pot",
"name": "Hot Pot (WIP)",
"types": "Relations, Physique",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Stargazing",
"name": "Stargazing (WIP)",
"types": "Mental, Spirituel",
"description": "",
"source_reference": {
"page": ""

View File

@@ -276,6 +276,38 @@
"source_reference": {
"page": "105"
}
},
{
"id": "Ujik Horsebow Pattern",
"name": "Ujik Horsebow Pattern (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Utsuko Pattern",
"name": "Utsuko Pattern (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Watered Steel Pattern",
"name": "Watered Steel Pattern (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Hewing",
"name": "Hewing (WIP)",
"description": "",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -604,6 +604,14 @@
"source_reference": {
"page": "114"
}
},
{
"id": "The World is Not Heavy",
"name": "The World is Not Heavy (WIP)",
"description": "",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -535,111 +535,183 @@
},
{
"id": "Bears Swipe Style",
"name": "Bears Swipe Style (WIP)",
"name": "Style de la gifle de lours",
"description": "",
"source_reference": {
"page": ""
"page": "114"
}
},
{
"id": "Serpents Twist Style",
"name": "Serpents Twist Style (WIP)",
"name": "Style de la contorsion du serpent",
"description": "",
"source_reference": {
"page": ""
"page": "114"
}
},
{
"id": "Swallows Dart Style",
"name": "Swallows Dart Style (WIP)",
"name": "Style de la vivacité de lhirondelle",
"description": "",
"source_reference": {
"page": ""
"page": "115"
}
},
{
"id": "Tigers Lunge Style",
"name": "Tigers Lunge Style (WIP)",
"name": "Style de lattaque du tigre",
"description": "",
"source_reference": {
"page": ""
"page": "115"
}
},
{
"id": "Flexible Grip",
"name": "Flexible Grip (WIP)",
"name": "Prise flexible",
"description": "",
"source_reference": {
"page": ""
"page": "116"
}
},
{
"id": "Howling Gale Defense",
"name": "Howling Gale Defense (WIP)",
"name": "Défense de la bourrasque hurlante",
"description": "",
"source_reference": {
"page": ""
"page": "115"
}
},
{
"id": "Herons Grasp Style",
"name": "Herons Grasp Style (WIP)",
"name": "Style de létreinte du héron",
"description": "",
"source_reference": {
"page": ""
"page": "116"
}
},
{
"id": "Serows Leap Style",
"name": "Serows Leap Style (WIP)",
"name": "Style du saro bondissant",
"description": "",
"source_reference": {
"page": ""
"page": "116"
}
},
{
"id": "Tumbling Oak Style",
"name": "Tumbling Oak Style (WIP)",
"name": "Style de la chute du chêne",
"description": "",
"source_reference": {
"page": ""
"page": "116"
}
},
{
"id": "Flight",
"name": "Flight (WIP)",
"name": "Vol",
"description": "",
"source_reference": {
"page": ""
"page": "118"
}
},
{
"id": "Razor Bite",
"name": "Razor Bite (WIP)",
"name": "Morsure acérée",
"description": "",
"source_reference": {
"page": ""
"page": "117"
}
},
{
"id": "Owls Swoop Style",
"name": "Owls Swoop Style (WIP)",
"name": "Style du piqué de la chouette",
"description": "",
"source_reference": {
"page": ""
"page": "118"
}
},
{
"id": "Skittering Shift",
"name": "Skittering Shift (WIP)",
"name": "Déguerpissement prompt",
"description": "",
"source_reference": {
"page": "117"
}
},
{
"id": "Tail Sweep",
"name": "Balayage caudal",
"description": "",
"source_reference": {
"page": "117"
}
},
{
"id": "Cautious Tread",
"name": "Cautious Tread (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Tail Sweep",
"name": "Tail Sweep (WIP)",
"id": "Stalking Leopard Style",
"name": "Stalking Leopard Style (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Sudden Downpour Style",
"name": "Sudden Downpour Style (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Swaying Grass Evasion",
"name": "Swaying Grass Evasion (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Distracting Flurry Style",
"name": "Distracting Flurry Style (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Scouring Wind Style",
"name": "Scouring Wind Style (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Slashing Sandstorm Style",
"name": "Slashing Sandstorm Style (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Descending Swarm Shot",
"name": "Descending Swarm Shot (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Thunderbolt Style",
"name": "Thunderbolt Style (WIP)",
"description": "",
"source_reference": {
"page": ""

View File

@@ -191,122 +191,122 @@
},
{
"id": "Mercy of the Stone Fortune",
"name": "Mercy of the Stone Fortune (WIP)",
"name": "Pitié de la fortune de la pierre",
"description": "",
"source_reference": {
"page": ""
"page": "109"
}
},
{
"id": "Rejuvenating Breath",
"name": "Rejuvenating Breath (WIP)",
"name": "Souffle revigorant",
"description": "",
"source_reference": {
"page": ""
"page": "109"
}
},
{
"id": "Shadow of Ancient Peaks",
"name": "Shadow of Ancient Peaks (WIP)",
"name": "A lombre des pics antiques",
"description": "",
"source_reference": {
"page": ""
"page": "109"
}
},
{
"id": "Cutting Wind Talons",
"name": "Cutting Wind Talons (WIP)",
"name": "Serres du vent tranchant",
"description": "",
"source_reference": {
"page": ""
"page": "110"
}
},
{
"id": "Grace of the Gentle Breeze",
"name": "Grace of the Gentle Breeze (WIP)",
"name": "Grâce de la douce brise",
"description": "",
"source_reference": {
"page": ""
"page": "109"
}
},
{
"id": "Step of the Storm",
"name": "Step of the Storm (WIP)",
"name": "Bond de la tempête",
"description": "",
"source_reference": {
"page": ""
"page": "110"
}
},
{
"id": "Blistering Retribution",
"name": "Blistering Retribution (WIP)",
"name": "Rétribution foudroyante",
"description": "",
"source_reference": {
"page": ""
"page": "111"
}
},
{
"id": "Dance of Fire",
"name": "Dance of Fire (WIP)",
"name": "Danse du Feu",
"description": "",
"source_reference": {
"page": ""
"page": "110"
}
},
{
"id": "Volcanic Fist",
"name": "Volcanic Fist (WIP)",
"name": "Poing volcanique",
"description": "",
"source_reference": {
"page": ""
"page": "110"
}
},
{
"id": "Fist of Spreading Venom",
"name": "Fist of Spreading Venom (WIP)",
"name": "Poing propagateur de poison",
"description": "",
"source_reference": {
"page": ""
"page": "112"
}
},
{
"id": "Rivers Flowing Stride",
"name": "Rivers Flowing Stride (WIP)",
"name": "Allure du cours deau",
"description": "",
"source_reference": {
"page": ""
"page": "112"
}
},
{
"id": "Seeping Ki",
"name": "Seeping Ki (WIP)",
"name": "Ruissellement de ki",
"description": "",
"source_reference": {
"page": ""
"page": "112"
}
},
{
"id": "Aura Awareness",
"name": "Aura Awareness (WIP)",
"name": "Perception des auras",
"description": "",
"source_reference": {
"page": ""
"page": "113"
}
},
{
"id": "Essence of Stillness",
"name": "Essence of Stillness (WIP)",
"name": "Essence de limmobilité",
"description": "",
"source_reference": {
"page": ""
"page": "113"
}
},
{
"id": "Eternal Minds Gate",
"name": "Eternal Minds Gate (WIP)",
"name": "Portail de lesprit éternel",
"description": "",
"source_reference": {
"page": ""
"page": "113"
}
}
]

View File

@@ -743,50 +743,50 @@
},
{
"id": "Whispers of the Kami",
"name": "Whispers of the Kami (WIP)",
"name": "Murmures des kamis",
"description": "",
"source_reference": {
"page": ""
"page": "96"
}
},
{
"id": "Smiling Mountain Tradition",
"name": "Smiling Mountain Tradition (WIP)",
"name": "Tradition de la montagne Rieuse",
"description": "",
"source_reference": {
"page": ""
"page": "97"
}
},
{
"id": "Scaled Hide",
"name": "Scaled Hide (WIP)",
"name": "Epaisse peau écailleuse",
"description": "",
"source_reference": {
"page": ""
"page": "98"
}
},
{
"id": "Reflexive Strike",
"name": "Reflexive Strike (WIP)",
"name": "Attaque réflexe",
"description": "",
"source_reference": {
"page": ""
"page": "99"
}
},
{
"id": "A Master of Study",
"name": "A Master of Study (WIP)",
"name": "Un maître de lapprentissage",
"description": "",
"source_reference": {
"page": ""
"page": "100"
}
},
{
"id": "Born to Survive",
"name": "Born to Survive (WIP)",
"name": "Né pour survivre",
"description": "",
"source_reference": {
"page": ""
"page": "101"
}
},
{
@@ -804,6 +804,86 @@
"source_reference": {
"page": "25"
}
},
{
"id": "Measured Force",
"name": "Measured Force (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Student of Many Courts",
"name": "Student of Many Courts (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "The Noble Heart Shines Through",
"name": "The Noble Heart Shines Through (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Cool Heads Prevail",
"name": "Cool Heads Prevail (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Procession of Seasons",
"name": "Procession of Seasons (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Lay of the Land",
"name": "Lay of the Land (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Logical Conclusion",
"name": "Logical Conclusion (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Spirit of the Sacred Horse",
"name": "Spirit of the Sacred Horse (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Reputation Sentinel",
"name": "Reputation Sentinel (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Legendary Endurance",
"name": "Legendary Endurance (WIP)",
"description": "",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -206,7 +206,7 @@
}
},
{
"id": "Beseech Hida's MIght",
"id": "Beseech Hida's Might",
"name": "Implorer la puissance de Hida",
"description": "",
"source_reference": {
@@ -247,39 +247,95 @@
},
{
"id": "Chikushō-dōs Guile",
"name": "Chikushō-dōs Guile (WIP)",
"name": "Duplicité du Chikushō-dō",
"description": "",
"source_reference": {
"page": ""
"page": "118"
}
},
{
"id": "Guard Against the Elements",
"name": "Guard Against the Elements (WIP)",
"name": "Protection contre les éléments",
"description": "",
"source_reference": {
"page": ""
"page": "119"
}
},
{
"id": "Cunning Snares",
"name": "Cunning Snares (WIP)",
"name": "Pièges astucieux",
"description": "",
"source_reference": {
"page": ""
"page": "119"
}
},
{
"id": "Hunters Expertise",
"name": "Hunters Expertise (WIP)",
"name": "Expertise du chasseur",
"description": "",
"source_reference": {
"page": "119"
}
},
{
"id": "Trance of Lives Past",
"name": "Transe des vies antérieures",
"description": "",
"source_reference": {
"page": "120"
}
},
{
"id": "Center the World",
"name": "Center the World (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Trance of Lives Past",
"name": "Trance of Lives Past (WIP)",
"id": "Cultural Exchange",
"name": "Cultural Exchange (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Protection of the Flock",
"name": "Protection of the Flock (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Shadow of Days",
"name": "Shadow of Days (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Spiritual Survey",
"name": "Spiritual Survey (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Traveler's Experience",
"name": "Traveler's Experience (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Wayfinder's Instincts",
"name": "Wayfinder's Instincts (WIP)",
"description": "",
"source_reference": {
"page": ""

View File

@@ -743,50 +743,50 @@
},
{
"id": "May the Spirits Show the Path",
"name": "May the Spirits Show the Path (WIP)",
"name": "Que les esprits montrent la voie",
"description": "",
"source_reference": {
"page": ""
"page": "96"
}
},
{
"id": "Laughter Makes the Home",
"name": "Laughter Makes the Home (WIP)",
"name": "On rit comme chez soi",
"description": "",
"source_reference": {
"page": ""
"page": "97"
}
},
{
"id": "Bend Perception",
"name": "Bend Perception (WIP)",
"name": "Fausser les perceptions",
"description": "",
"source_reference": {
"page": ""
"page": "98"
}
},
{
"id": "Keen Senses",
"name": "Keen Senses (WIP)",
"name": "Sens Développés",
"description": "",
"source_reference": {
"page": ""
"page": "99"
}
},
{
"id": "Mind of Calm",
"name": "Mind of Calm (WIP)",
"name": "Esprit de calme",
"description": "",
"source_reference": {
"page": ""
"page": "100"
}
},
{
"id": "Evolution of the Wilds",
"name": "Evolution of the Wilds (WIP)",
"name": "Evolution de la nature",
"description": "",
"source_reference": {
"page": ""
"page": "101"
}
},
{
@@ -804,6 +804,86 @@
"source_reference": {
"page": "25"
}
},
{
"id": "Moment of Certainty",
"name": "Moment of Certainty (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Disarming Demeanor",
"name": "Disarming Demeanor (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "The Horse Lord's Favor",
"name": "The Horse Lord's Favor (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Calm Counsel",
"name": "Calm Counsel (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Natural Balance",
"name": "Natural Balance (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Dunestrider",
"name": "Dunestrider (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Methodical Observation",
"name": "Methodical Observation (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Unity of Horse and Rider",
"name": "Unity of Horse and Rider (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Warden of the Five Winds",
"name": "Warden of the Five Winds (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Move as the Wind",
"name": "Move as the Wind (WIP)",
"description": "",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -708,6 +708,102 @@
"source_reference": {
"page": "93"
}
},
{
"id": "Cunning Omission",
"name": "Cunning Omission (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Entice with Offerings",
"name": "Entice with Offerings (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Trader's Intuition",
"name": "Trader's Intuition (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Cite the Facts",
"name": "Cite the Facts (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Solidify Gratitude",
"name": "Solidify Gratitude (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Glorious Entrance",
"name": "Glorious Entrance (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Incite Wrath",
"name": "Incite Wrath (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Call to Ride",
"name": "Call to Ride (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Complementary Experience",
"name": "Complementary Experience (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Everyone Has a Price",
"name": "Everyone Has a Price (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Horse Whisperer",
"name": "Horse Whisperer (WIP)",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Appreciate the Scenery",
"name": "Appreciate the Scenery (WIP)",
"description": "",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -335,34 +335,34 @@
},
{
"id": "Awakened Soul",
"name": "Awakened Soul (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Sociales</td><td>Grp. de comp.</td></tr><tr><td>Compétences Savantes</td><td>Grp. de comp.</td></tr><tr><td>Culture</td><td>Compétence</td></tr><tr><td>Méditation</td><td>Compétence</td></tr><tr><td>Survie</td><td>Compétence</td></tr><tr><td>Théologie</td><td>Compétence</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kiho.Item.L5RCoreKih000038\" data-pack=\"l5r5e.core-techniques-kiho\" data-type=\"Item\" data-id=\"L5RCoreKih000038\">(kiho) Eternal Minds Gate (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000035\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000035\">(ritual) Trance of Lives Past (WIP)</a> (prereq)</td><td>Technique</td></tr></table>",
"name": "Ame éveillée",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Sociales</td><td>Grp. de comp.</td></tr><tr><td>Compétences Savantes</td><td>Grp. de comp.</td></tr><tr><td>Culture</td><td>Compétence</td></tr><tr><td>Méditation</td><td>Compétence</td></tr><tr><td>Survie</td><td>Compétence</td></tr><tr><td>Théologie</td><td>Compétence</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kiho.Item.L5RCoreKih000038\" data-pack=\"l5r5e.core-techniques-kiho\" data-type=\"Item\" data-id=\"L5RCoreKih000038\">(kiho) Portail de lesprit éternel</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000035\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000035\">(ritual) Transe des vies antérieures</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
"page": "142"
}
},
{
"id": "Forester",
"name": "Forester (WIP)",
"name": "Forestier",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Sociales</td><td>Grp. de comp.</td></tr><tr><td>Compétences Savantes</td><td>Grp. de comp.</td></tr><tr><td>Courtoisie</td><td>Compétence</td></tr><tr><td>Sentiments</td><td>Compétence</td></tr><tr><td>Survie</td><td>Compétence</td></tr><tr><td>Théologie</td><td>Compétence</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-invocations\">(invocation) Invocations de la Terre ou de lEau de rang 1-2</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-shuji\">(shuji) Shuji de rang 1-3</a> (prereq)</td><td>Tech. Grp.</td></tr></table>",
"source_reference": {
"page": ""
"page": "142"
}
},
{
"id": "Temple Abbot",
"name": "Temple Abbot (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Sociales</td><td>Grp. de comp.</td></tr><tr><td>Compétences Savantes</td><td>Grp. de comp.</td></tr><tr><td>Culture</td><td>Compétence</td></tr><tr><td>Méditation</td><td>Compétence</td></tr><tr><td>Théologie</td><td>Compétence</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000004\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000004\">(ritual) Rite de purification</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kiho.Item.L5RCoreKih000025\" data-pack=\"l5r5e.core-techniques-kiho\" data-type=\"Item\" data-id=\"L5RCoreKih000025\">(kiho) Rejuvenating Breath (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000011\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000011\">(shuji) Courage exemplaire</a> (prereq)</td><td>Technique</td></tr></table>",
"name": "Abbé",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Sociales</td><td>Grp. de comp.</td></tr><tr><td>Compétences Savantes</td><td>Grp. de comp.</td></tr><tr><td>Culture</td><td>Compétence</td></tr><tr><td>Méditation</td><td>Compétence</td></tr><tr><td>Théologie</td><td>Compétence</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000004\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000004\">(ritual) Rite de purification</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kiho.Item.L5RCoreKih000025\" data-pack=\"l5r5e.core-techniques-kiho\" data-type=\"Item\" data-id=\"L5RCoreKih000025\">(kiho) Souffle revigorant</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000011\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000011\">(shuji) Courage exemplaire</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
"page": "143"
}
},
{
"id": "Yōkai Hunter",
"name": "Yōkai Hunter (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Savantes</td><td>Grp. de comp.</td></tr><tr><td>Compétences Martiales</td><td>Grp. de comp.</td></tr><tr><td>Commandement</td><td>Compétence</td></tr><tr><td>Courtoisie</td><td>Compétence</td></tr><tr><td>Survie</td><td>Compétence</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kiho.Item.L5RCoreKih000030\" data-pack=\"l5r5e.core-techniques-kiho\" data-type=\"Item\" data-id=\"L5RCoreKih000030\">(kiho) Blistering Retribution (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000070\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000070\">(kata) Swallows Dart Style (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000071\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000071\">(kata) Tigers Lunge Style (WIP)</a> (prereq)</td><td>Technique</td></tr></table>",
"name": "Chasseur de yōkai",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Savantes</td><td>Grp. de comp.</td></tr><tr><td>Compétences Martiales</td><td>Grp. de comp.</td></tr><tr><td>Commandement</td><td>Compétence</td></tr><tr><td>Courtoisie</td><td>Compétence</td></tr><tr><td>Survie</td><td>Compétence</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kiho.Item.L5RCoreKih000030\" data-pack=\"l5r5e.core-techniques-kiho\" data-type=\"Item\" data-id=\"L5RCoreKih000030\">(kiho) Rétribution foudroyante</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000070\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000070\">(kata) Style de la vivacité de lhirondelle</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000071\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000071\">(kata) Style de lattaque du tigre</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
"page": "143"
}
},
{
@@ -388,6 +388,62 @@
"source_reference": {
"page": "21"
}
},
{
"id": "Animal Handler",
"name": "Animal Handler (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Professionnelles</td><td>Grp. de comp.</td></tr><tr><td>Arts martiaux (mains nues)</td><td>Compétence</td></tr><tr><td>Médecine</td><td>Compétence</td></tr><tr><td>Sentiments</td><td>Compétence</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000096\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000096\">(shuji) Call to Ride (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000095\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000095\">(shuji) Incite Wrath (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000011\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000011\">(shuji) Courage exemplaire</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
}
},
{
"id": "Doomhunter",
"name": "Doomhunter (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Martiales</td><td>Grp. de comp.</td></tr><tr><td>Magouilles</td><td>Compétence</td></tr><tr><td>Survie</td><td>Compétence</td></tr><tr><td>Théologie</td><td>Compétence</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-rituals\">(ritual) Rituels de rang 1-2</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-ninjutsu.Item.L5RCoreNin000002\" data-pack=\"l5r5e.core-techniques-ninjutsu\" data-type=\"Item\" data-id=\"L5RCoreNin000002\">(ninjutsu) Disparition</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000006\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000006\">(kata) Destruction de lâme</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
}
},
{
"id": "Imperial Peacekeeper",
"name": "Imperial Peacekeeper (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Martiales</td><td>Grp. de comp.</td></tr><tr><td>Courtoisie</td><td>Compétence</td></tr><tr><td>Commandement</td><td>Compétence</td></tr><tr><td>Sentiments</td><td>Compétence</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-shuji\">(shuji) Shuji de la Terre de rang 1-2</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000037\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000037\">(ritual) Cultural Exchange (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000016\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000016\">(shuji) Pilier de sérénité</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
}
},
{
"id": "Interpreter",
"name": "Interpreter (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Sociales</td><td>Grp. de comp.</td></tr><tr><td>Composition</td><td>Compétence</td></tr><tr><td>Culture</td><td>Compétence</td></tr><tr><td>Gouvernement</td><td>Compétence</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-shuji\">(shuji) Shuji de rang 1</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000037\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000037\">(ritual) Cultural Exchange (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000041\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000041\">(ritual) Traveler's Experience (WIP)</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
}
},
{
"id": "Scarlet Banners Ranger",
"name": "Scarlet Banners Ranger (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Martiales</td><td>Grp. de comp.</td></tr><tr><td>Compétences Professionnelles</td><td>Grp. de comp.</td></tr><tr><td>Gouvernement</td><td>Compétence</td></tr><tr><td>Sentiments</td><td>Compétence</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-kata\">(kata) Kata de rang 1-2</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000089\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000089\">(shuji) Cunning Omission (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000090\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000090\">(kata) Thunderbolt Style (WIP)</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
}
},
{
"id": "Student of Names",
"name": "Student of Names (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Commandement</td><td>Compétence</td></tr><tr><td>Culture</td><td>Compétence</td></tr><tr><td>Survie</td><td>Compétence</td></tr><tr><td>Théologie</td><td>Compétence</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-invocations\">(invocation) Invocations de rang 1-2</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000040\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000040\">(ritual) Spiritual Survey (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000005\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000005\">(ritual) Seuil infranchissable</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
}
},
{
"id": "White Guard Veteran",
"name": "White Guard Veteran (WIP)",
"description": "<h2>Cursus</h2><table><tr><td>Compétences Martiales</td><td>Grp. de comp.</td></tr><tr><td>Courtoisie</td><td>Compétence</td></tr><tr><td>Commandement</td><td>Compétence</td></tr><tr><td>Survie</td><td>Compétence</td></tr><tr><td>Théologie</td><td>Compétence</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000038\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000038\">(shuji) Le destin du samouraï</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000083\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000083\">(kata) Stalking Leopard Style (WIP)</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000084\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000084\">(kata) Sudden Downpour Style (WIP)</a> (prereq)</td><td>Technique</td></tr></table>",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -1173,6 +1173,116 @@
"source_reference": {
"page": "100"
}
},
{
"id": "Catalpa Bow",
"name": "Catalpa Bow (WIP)",
"category": "Arcs",
"grip_1": "N/A",
"grip_2": "",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Charging Lance",
"name": "Charging Lance (WIP)",
"category": "Armes d'Hast",
"grip_1": "N/A",
"grip_2": "",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Fire Lance",
"name": "Fire Lance (WIP)",
"category": "Armes d'Hast",
"grip_1": "N/A",
"grip_2": "",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Ganzu Ring Ax",
"name": "Ganzu Ring Ax (WIP)",
"category": "Haches",
"grip_1": "N/A",
"grip_2": "",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Katar (Punch Dagger)",
"name": "Katar (Punch Dagger) (WIP)",
"category": "Armes de Poing",
"grip_1": "",
"grip_2": "N/A",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Repeating Crossbow",
"name": "Repeating Crossbow (WIP)",
"category": "Arbalètes",
"grip_1": "N/A",
"grip_2": "",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Saddle Cutter",
"name": "Saddle Cutter (WIP)",
"category": "Armes d'Hast",
"grip_1": "",
"grip_2": "",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Ide Parasol Shield",
"name": "Ide Parasol Shield (WIP)",
"category": "Boucliers",
"grip_1": "",
"grip_2": "",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "Standing Shield",
"name": "Standing Shield (WIP)",
"category": "Boucliers",
"grip_1": "",
"grip_2": "",
"description": "",
"source_reference": {
"page": ""
}
},
{
"id": "The Ancestral Sword of the Fox [Blessed Treasure]",
"name": "The Ancestral Sword of the Fox [Blessed Treasure] (WIP)",
"category": "Sabres",
"grip_1": "",
"grip_2": "Dangerosité +8",
"description": "",
"source_reference": {
"page": ""
}
}
]
}

View File

@@ -21,6 +21,10 @@
"SetTn1OnTypeChange": "Set TN to 1 on encounter change",
"SetTn1OnTypeChangeHint": "Set the TN to 1 when the encounter type is selected (Intrigue, Duel, Skirmish or Mass battle)"
},
"ShowAllStatusEffects": {
"Title": "Show all StatusEffects",
"Hint": "If uncheck (default), only L5R conditions are shown."
},
"CustomTechniques": {
"Title": "Use custom techniques",
"Hint": "Add 'Specificity' technique type to serve as a catch-all."
@@ -79,6 +83,42 @@
}
},
"l5r5e": {
"title": "Legend of the Five Rings",
"conditions": {
"afflicted": "Afflicted",
"bleeding": "Bleeding",
"burning": "Burning",
"centered": "Centered",
"compromised": "Compromised",
"dazed": "Dazed",
"disoriented": "Disoriented",
"dying": "Dying",
"emboldened": "Emboldened",
"enraged": "Enraged",
"exhausted": "Exhausted",
"immobilized": "Immobilized",
"illness_coughing_illness": "Illness: Coughing Illness",
"illness_fire_rash": "Illness: Fire Rash",
"illness_gut_sickness": "Illness: Gut Sickness",
"illness_oozing_sore_disease": "Illness: Oozing Sore Disease",
"illness_unsteady_illness": "Illness: Unsteady Illness",
"incapacitated": "Incapacitated",
"intoxicated": "Intoxicated",
"possessed": "Possessed",
"prone": "Prone",
"silenced": "Silenced",
"unconscious": "Unconscious",
"lightly_wounded_fire": "Lightly Wounded (Fire)",
"lightly_wounded_water": "Lightly Wounded (Water)",
"lightly_wounded_air": "Lightly Wounded (Air)",
"lightly_wounded_earth": "Lightly Wounded (Earth)",
"lightly_wounded_void": "Lightly Wounded (Void)",
"severely_wounded_fire": "Severely Wounded (Fire)",
"severely_wounded_water": "Severely Wounded (Water)",
"severely_wounded_air": "Severely Wounded (Air)",
"severely_wounded_earth": "Severely Wounded (Earth)",
"severely_wounded_void": "Severely Wounded (Void)"
},
"global": {
"edge_translation_disclaimer": "",
"add": "Add",
@@ -103,16 +143,6 @@
"others": "Others"
}
},
"settings": {
"custom-compendiums": {
"title": "Compendiums",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/users/custom-compendiums.md"
},
"wiki": {
"title": "Wiki",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/home"
}
},
"logo": {
"title": "Need help?",
"src": "systems/l5r5e/assets/l5r-logo.webp",
@@ -132,6 +162,22 @@
"title": "FoundryVTT Official Discord",
"info": "Your browser will open on the official Foundry discord",
"link": "https://discordapp.com/invite/DDBZUDf"
},
"notes": {
"title": "Changelog",
"link": "https://gitlab.com/teaml5r/l5r5e/-/blob/master/CHANGELOG.md"
},
"issues": {
"title": "Issues",
"link": "https://gitlab.com/teaml5r/l5r5e/-/issues"
},
"custom-compendiums": {
"title": "Compendiums",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/users/custom-compendiums.md"
},
"wiki": {
"title": "Wiki",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/home"
}
},
"rings": {
@@ -645,6 +691,7 @@
"boar": "Boar",
"dragonfly": "Dragonfly",
"firefly": "Firefly",
"fox": "Fox",
"hare": "Hare",
"monkey": "Monkey",
"oriole": "Oriole",
@@ -672,6 +719,7 @@
"capricious": "Capricious",
"cautious": "Cautious",
"clever": "Clever",
"compassionate": "Compassionate",
"confused": "Confused",
"courageous": "Courageous",
"cowardly": "Cowardly",
@@ -749,7 +797,8 @@
"cresting_waves": "Cresting Waves",
"deathly_turns": "Deathly Turns",
"the_scroll_or_the_blade": "The Scroll or the Blade",
"legacies_of_war": "Legacies of War"
"legacies_of_war": "Legacies of War",
"children_of_the_five_winds": "Children of the Five Winds"
}
}
}

View File

@@ -4,52 +4,56 @@
"Maintainers": ["Team L5R"]
},
"SETTINGS": {
"None": "Sin opción",
"None": "Sin opciones",
"ReverseTokenBars": {
"Title": "Reverse tokens bar",
"Hint": "Change the order in which the bars under the tokens are filled in",
"None": "None",
"Fatigue": "Fatigue only",
"Strife": "Strife",
"Both": "Both Fatigue and Strife"
"Title": "Barra de tokens inversa",
"Hint": "Cambia el orden en el que se rellenan las barras debajo de los tokens",
"None": "Ninguno",
"Fatigue": "Sólo Fatiga",
"Strife": "Conflicto",
"Both": "Tanto la Fatiga como el Conflicto"
},
"RollNKeep": {
"DeleteOldMessage": "TyG Eliminar el mensaje anterior del chat",
"DeleteOldMessage": "TyG eliminar el mensaje anterior del chat",
"DeleteOldMessageHint": "Elige si mantener o borrar el mensaje anterior de la serie TyG"
},
"Initiative": {
"SetTn1OnTypeChange": "Poner el NO a 1 al seleccionar el tipo de encuentro",
"SetTn1OnTypeChangeHint": "Poner el NO a 1 cuando se elige el tipo de encuentro (Intriga, Duelo, Escaramuza o Batalla a gran escala)"
},
"ShowAllStatusEffects": {
"Title": "Mostrar todos los efectos de estado",
"Hint": "Si se desmarca (por defecto), solo se muestran las condiciones de L5A."
},
"CustomTechniques": {
"Title": "Use custom techniques",
"Hint": "Add 'Specificity' technique type to serve as a catch-all."
"Title": "Usar técnicas personalizadas",
"Hint": "Añadir el tipo de técnica 'Particularidad' para que sirva como comodín."
},
"CustomCompendiumName": {
"Title": "Custom Compendium Name",
"Hint": "For advanced users that want to change the name of the custom compendiums (Used to disables the embedded ones).",
"Notification": "Unable set Custom Compendium: '{name}'. Is it activated and registered with Babele?"
"Title": "Nombre de Compendio personalizado",
"Hint": "Permite a los usuarios avanzados cambiar el nombre de los compendios personalizados (utilizados para desactivar los compendios integrados).",
"Notification": "No se puede configurar el compendio personalizado: '{name}'. ¿Está activado y registrado con Babele?"
},
"CustomItemsHeight": {
"Title": "Default items windows height",
"Hint": "Set the default height for 'Items' windows types (techniques, weapons...), in pixels"
"Title": "Altura predeterminada de las ventanas de objetos",
"Hint": "Establecer la altura predeterminada para las ventanas de 'objetos' (técnicas, armas...), en píxeles."
},
"Compendium": {
"HideDisabledSources": {
"Title": "[Compendium] Hide sources filter without reference",
"Hint": "Hide empty source with no elements in source filter."
"Title": "[Compendio] Ocultar filtro de fuentes sin referencia",
"Hint": "Ocultar fuentes vacías sin elementos en el filtro de fuentes."
},
"HideEmptySourcesFromPlayers": {
"Title": "[Compendium] Hide elements with empty reference",
"Hint": "Basically require a reference to be set in order for players to view the content in compendiums"
"Title": "[Compendio] Ocultar elementos con referencias vacías",
"Hint": "Requiere que se establezca una referencia para que los jugadores puedan ver el contenido de los compendios."
},
"AllowedOfficialSources": {
"Title": "[Compendium] Available official resources",
"Hint": "Useful if you as a GM want to limit the available official content to only books you own"
"Title": "[Compendio] Recursos oficiales disponibles",
"Hint": "Útil si, como DJ, quieres limitar el contenido oficial disponible solo a los libros que tienes."
},
"AllowedUnofficialSources": {
"Title": "[Compendium] Available unofficial resources",
"Hint": "Useful if you have compendiums with custom items mixed with player facing items."
"Title": "[Compendio] Recursos no oficiales disponibles",
"Hint": "Útil si tienes compendios con objetos personalizados mezclados con objetos destinados a los jugadores.."
}
}
},
@@ -79,38 +83,64 @@
}
},
"l5r5e": {
"title": "La Leyenda de los Cinco Anillos",
"conditions": {
"afflicted": "Afligido",
"bleeding": "Hemorragia",
"burning": "Ardiendo",
"centered": "Centrado",
"compromised": "Comprometido",
"dazed": "Atontado",
"disoriented": "Desorientado",
"dying": "Moribundo",
"emboldened": "Alentado",
"enraged": "Enfurecido",
"exhausted": "Agotado",
"immobilized": "Inmovilizado",
"illness_coughing_illness": "Enfermedad: tos enfermiza",
"illness_fire_rash": "Enfermedad: sarpullido de fuego",
"illness_gut_sickness": "Enfermedad: malestar intestinal",
"illness_oozing_sore_disease": "Enfermedad: llagas supurantes",
"illness_unsteady_illness": "Enfermedad: temblores",
"incapacitated": "Incapacitado",
"intoxicated": "Intoxicado",
"possessed": "Poseído",
"prone": "Tumbado",
"silenced": "Silenciado",
"unconscious": "Inconsciente",
"lightly_wounded_fire": "Herida leve (Fuego)",
"lightly_wounded_water": "Herida leve (Agua)",
"lightly_wounded_air": "Herida leve (Aire)",
"lightly_wounded_earth": "Herida leve (Tierra)",
"lightly_wounded_void": "Herida leve (Vacío)",
"severely_wounded_fire": "Herida grave (Fuego)",
"severely_wounded_water": "Herida grave (Agua)",
"severely_wounded_air": "Herida grave (Aire)",
"severely_wounded_earth": "Herida grave (Tierra)",
"severely_wounded_void": "Herida grave (Vacío)"
},
"global": {
"edge_translation_disclaimer": "Edge Studio nos da su permiso para ofrecer este módulo a la comunidad, pero tanto los textos así como los códigos que lo constituyen no tienen su aprobación explícita.",
"add": "Añadir",
"edit": "Editar",
"delete_confirm": "¿Estás seguro de que quieres borrar '{name}' ?",
"delete_confirm": "¿Estás seguro de que quieres borrar '{name}'?",
"drop_here": "Dejar caer aquí",
"send_to_chat": "To Chat",
"locked": "Locked",
"unlocked": "Unlocked",
"random": "Random"
"send_to_chat": "Al Chat",
"locked": "Bloqueado",
"unlocked": "Desbloqueado",
"random": "Aleatorio"
},
"multiselect": {
"empty_tag": "<blank>",
"placeholder": "Filter Sources",
"player_filter_label": "Player filter",
"player_filter_tooltip": "Apply player filter",
"already_in_filter": "Already in filter",
"placeholder": "Filtro de recursos",
"player_filter_label": "Filtro de jugador",
"player_filter_tooltip": "Aplicar filtro de jugador",
"already_in_filter": "Ya en el filtro",
"sources_categories": {
"rules": "Rules",
"adventures": "Adventures",
"supplements": "Supplements",
"others": "Others"
}
},
"settings": {
"custom-compendiums": {
"title": "Compendiums",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/users/custom-compendiums.md"
},
"wiki": {
"title": "Wiki",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/home"
"rules": "Reglas",
"adventures": "Aventuras",
"supplements": "Suplementos",
"others": "Otros"
}
},
"logo": {
@@ -130,8 +160,24 @@
},
"discord": {
"title": "Discord oficial de FoundryVTT",
"info": "Su navegador se abrirá el discord oficial de Foundry",
"info": "Tu navegador abrirá el discord oficial de Foundry",
"link": "https://discordapp.com/invite/DDBZUDf"
},
"notes": {
"title": "Registro de cambios",
"link": "https://gitlab.com/teaml5r/l5r5e/-/blob/master/CHANGELOG.md"
},
"issues": {
"title": "Problemas",
"link": "https://gitlab.com/teaml5r/l5r5e/-/issues"
},
"custom-compendiums": {
"title": "Compendios",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/users/custom-compendiums.md"
},
"wiki": {
"title": "Wiki",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/home"
}
},
"rings": {
@@ -185,10 +231,10 @@
"success_text": "¡Éxito!",
"bonus_text": "Éxitos adicionales",
"fail_text": "¡Fallo!",
"unknown_target": "Unknown target"
"unknown_target": "Objetivo desconocido"
},
"dicepicker": {
"title": "Dice Picker",
"title": "Selector de dados",
"difficulty_title": "Dificultad",
"difficulty_hidden_label": "Ocultar NO",
"use_void_point_label": "Gasta un",
@@ -196,7 +242,7 @@
"skill_assistance_label": "Asistencia",
"roll_label": "Tirar",
"bt_add_macro": "Añadir una macro",
"gm_request_dp_to_players": "Roll request sent to players"
"gm_request_dp_to_players": "Solicitud de tirada enviada a los jugadores"
},
"roll_n_keep": {
"title": "Tirar y guardar",
@@ -206,13 +252,13 @@
"keep_drop_here": "Guardar",
"max": "Máx",
"bt_validate": "Terminar este paso",
"bt_strife": "Apply strife",
"bt_strife": "Aplicar Conflicto",
"undo": "[GM] Deshacer los últimos cambios"
}
},
"gm": {
"toolbox": {
"title": "GM ToolBox",
"title": "Caja de herramientas del DJ",
"difficulty_hidden": "Cambiar la dificultad visible",
"difficulty": "Cambiar dificultad (Izquierda: añadir, Derecha: sustraer, central: NO 2)",
"sleep": "Descanso confortable para todos los personajes (Eliminar fatiga = Agua x2. (Click Izquierdo: sólo a los personajes seleccionados. Derecho: a todos los actores)",
@@ -228,7 +274,7 @@
"add_selected_tokens": "Add selected tokens",
"honor_glory_status": "H/G/E",
"focus_vigilance": "Con./Ale.",
"mouse_control": "Click Izquierdo +1, Derecho: -1, middle: set to 0"
"mouse_control": "Click Izquierdo +1, Derecho: -1, medio: poner a 0"
}
},
"weapons": {
@@ -261,7 +307,7 @@
"type": "Técnicas permitidas",
"kata": "Kata",
"kiho": "Kihõ",
"inversion": "Inversion",
"inversion": "Inversión",
"invocation": "Invocación",
"ritual": "Ritual",
"shuji": "Shuji",
@@ -271,7 +317,7 @@
"school_ability": "Capacidad de escuela",
"mastery_ability": "Habilidad de maestría",
"title_ability": "Capacidad de título",
"specificity": "Specificity"
"specificity": "Particularidad"
},
"peculiarities": {
"types": {
@@ -294,7 +340,7 @@
"status": "Estatus",
"ninjo": "Ninjo",
"giri": "Giri",
"past": "Past",
"past": "Pasado",
"bushido_tenets": {
"title": "Preceptos del Bushidō",
"paramount": "Más importante",
@@ -311,20 +357,20 @@
"combat": "Combate",
"intrigue": "Intriga"
},
"age": "Age",
"children": "Children",
"age": "Edad",
"children": "Vástagos",
"marital_status": {
"title": "Marital Status",
"partner": "Partner",
"married": "Married",
"betrothed": "Betrothed",
"unmarried": "Unmarried",
"widowed": "Widowed"
"title": "Estado civil",
"partner": "Pareja",
"married": "Casado",
"betrothed": "Prometido",
"unmarried": "Soltero",
"widowed": "Viudo"
},
"gender": {
"title": "Gender",
"male": "Male",
"female": "Female"
"title": "Género",
"male": "Masculino",
"female": "Femenino"
}
},
"skills": {
@@ -454,33 +500,33 @@
"minion": "Esbirro"
},
"army": {
"warlord": "Warlord",
"allies_backers": "Allies and Backers",
"purpose_mustering": "Purpose for Mustering",
"warlord": "Señor de la guerra",
"allies_backers": "Aliados y apoyos",
"purpose_mustering": "Propósito de la movilización",
"battle_readiness": {
"title": "Battle Readiness",
"strength": "Strength",
"casualties": "Casualties",
"discipline": "Discipline",
"panic": "Panic"
"title": "Preparación para la batalla",
"strength": "Fuerza",
"casualties": "Bajas",
"discipline": "Disciplina",
"panic": "Pánico"
},
"commander": "Commander",
"commander_abilities": "Commander's relevant abilities",
"army_abilities": "Army Abilities",
"commander_standing": "Commander's Standing",
"supplies_logistics": "Supplies and Logistics",
"past_battles": "Past Battles",
"commander": "Comandante",
"commander_abilities": "Habilidades relevantes del comandante",
"army_abilities": "Habilidades del ejército",
"commander_standing": "Posición del comandante",
"supplies_logistics": "Logística y suministros",
"past_battles": "Batallas anteriores",
"cohort": {
"tab": "Cohorts",
"title": "Cohort",
"leader": "Leader",
"abilities": "Abilities"
"tab": "Cohortes",
"title": "Cohorte",
"leader": "Líder",
"abilities": "Habilidades"
},
"fortification": {
"tab": "Fortifications",
"title": "Fortification Held",
"difficulty": "Difficulty Value",
"attrition_reduction": "Attrition Reduction"
"tab": "Fortificaciones",
"title": "Fortificación",
"difficulty": "Valor de dificultad",
"attrition_reduction": "Reducción del desgaste"
}
},
"twenty_questions": {
@@ -507,19 +553,19 @@
},
"part1": {
"title": "Parte I: Identidad básica (Clan y Familia)",
"title_pow": "Part I: Core Identity (Region and Upbringing)",
"title_pow": "Parte I: Identidad básica (Región y educación)",
"q1": "1. ¿A qué clan pertenece tu personaje? (p. 41)",
"q1_pow": "1. What region does your character come from? (p. 31)",
"q1_pow": "1. ¿De que región viene tu personaje? (p. 31)",
"status": "Estatus",
"q2": "2. ¿A qué familia pertenece tu personaje? (p. 49)",
"q2_pow": "2. What was your characters upbringing? (p. 43)",
"q2_pow": "2. ¿Cual fue la educación de tu personaje? (p. 43)",
"money": "Riqueza inicial en Koku",
"glory": "Gloria"
},
"part2": {
"title": "Parte II: Función y escuela",
"q3": "3. ¿Cuál es la escuela de tu personaje, y en qué funciones cumple esa escuela? (p. 56)",
"q3_pow": "3. What is your characters school, and what are its associated roles? (p. 46)",
"q3_pow": "3. ¿Cuál es la escuela de tu personaje y cuáles son sus funciones asociadas? (p. 46)",
"school": "Escuela",
"role": "Funciones",
"honor": "Honor",
@@ -528,23 +574,23 @@
"starting_techniques": "Técnicas iniciales (2-6)",
"outfit": "Equipo inicial",
"q4": "4. ¿De qué manera destaca tu personaje dentro de su escuela? (p. 88)",
"q4_pow": "4. What gets your character in and out of trouble? (p. 60)"
"q4_pow": "4. ¿Qué es lo que mete y saca a tu personaje de problemas? (p. 60)"
},
"part3": {
"title": "Parte III: Honor y Gloria",
"title_pow": "Part III: The Past and the Future they interact and process",
"title_pow": "Parte III: El pasado y el futuro interactúan y se funden.",
"q5": "5. ¿Quién es tu señor y cuál es el deber de tu personaje hacia él? (p. 88)",
"q5_pow": "5. What is your characters past and how does it Affect them? (p. 60)",
"q5_pow": "5. ¿Cuál es el pasado de tu personaje y cómo le afecta? (p. 60)",
"choose_giri": "Elige un giri:",
"choose_past": "Select past",
"choose_past": "Elige un pasado:",
"q6": "6. ¿Qué es lo que anhela tu personaje, y cómo podría esto interferir con su deber? (p. 90)",
"q6_pow": "6. What does your character long for, and how might their past impact their ninjō? (p. 62)",
"q6_pow": "6. ¿Qué anhela tu personaje y cómo podría afectar su pasado a su ninjō? (p. 62)",
"choose_ninjo": "Elige un ninjō:",
"q7": "7. ¿Cuál es la relación de tu personaje con tu clan? (p. 91)",
"q7_pow": "7. What is your character known for? (p. 61)",
"q7_pow": "7. ¿Por qué es conocido tu personaje? (p. 61)",
"increase_glory": "Aumento de la gloria",
"q8": "8. ¿Qué piensa tu personaje acerca del Bushidō? (p. 91)",
"q8_pow": "8. What does your character think of Bushidō? (p. 62)",
"q8_pow": "8. ¿Qué piensa tu personaje acerca del Bushidō? (p. 62)",
"increase_honor": "Aumento del honor",
"tenets": "Escoge un precepto del Bushidō más importante y un precepto como menos significativo (ver las opiniones de los Clanes respecto del Bushidō, página 301 del libro de reglas básicas):",
"object": "Objeto (Rareza 5 o inferior)"
@@ -571,22 +617,22 @@
"part5": {
"title": "Parte V: Personalidad y Comportamiento",
"q14": "14. ¿Qué es lo que advierte primero la gente al encontrarse con tu personaje? (p. 93)",
"q14_pow": "14. What is your characters most prized possession? (p. 66)",
"q14_pow": "14. ¿Cuál es la posesión más preciada de tu personaje? (p. 66)",
"accoutrement": "Accesorio estético distintivo",
"q15": "15. ¿Cómo reacciona tu personaje ante situaciones de tensión? (p. 94)",
"q15_pow": "15. ¿Cómo reacciona tu personaje ante situaciones de tensión? (p. 66)",
"q16": "16. ¿Cuáles son las relaciones previas de tu personaje con otros clanes, familias, organizaciones y tradiciones? (p. 94)",
"q16_pow": "16. What are your relationships to your family, the clans, peasants, and others? (p. 66)",
"q16_pow": "16. ¿Cómo son tus relaciones con tu familia, los clanes, los campesinos y demás? (p. 66)",
"object": "Objeto (Rareza 7 o inferior)"
},
"part6": {
"title": "Parte VI: Ascestros y familia",
"title_pow": "Part VI: Ancestry and Bonds",
"title_pow": "Parte VI: Ascestros y vínculos",
"q17": "17. ¿Cómo describirían sus padres a tu personaje? (p. 95)",
"q17_pow": "17. What shared history do you have with your group? (p. 66)",
"bond": "Determine an appropriate bond to apply to your relationship",
"q17_pow": "17. ¿Qué historia compartes con tu grupo? (p. 66)",
"bond": "Determina el vínculo adecuado que debes aplicar a tu relación.",
"q18": "18. ¿En honor de quién se eligio el nombre de tu personaje? (p. 95)",
"q18_pow": "18. Who raised you? (p. 67)",
"q18_pow": "18. ¿Quién te crió? (p. 67)",
"d10r1": "Resultado D10 (1/2)",
"d10r1_choice": "Primer efecto de D10",
"d10r2": "Resultado D10 (2/2)",
@@ -606,150 +652,153 @@
}
},
"char_generator": {
"title": "Character Generator",
"head_bt_title": "Char. Generator",
"generate": "Generate",
"average_value": "Average value",
"identity": "Clan, gender, age, marital status",
"attributes": "Social standing, Rings, Attributes and Skills",
"demeanor": "Demeanor & rings affinities",
"peculiarities": "Advantages and Disadvantages",
"items": "Armors, Weapons, and Items",
"narrative": "Narrative (Description)"
"title": "Generador de personajes",
"head_bt_title": "Generador de pj",
"generate": "Generar",
"average_value": "Valor medio",
"identity": "Clan, género, edad, estado civil",
"attributes": "Posición social, Anillos, Atributos y Habilidades",
"demeanor": "Comportamiento y afinidades con los anillos",
"peculiarities": "Ventajas y desventajas",
"items": "Armaduras, armas y objetos.",
"narrative": "Historia (descripción)"
},
"roles": {
"title": "Funciones",
"artisan": "Artisan",
"artisan": "Artesano",
"bushi": "Bushi",
"courtier": "Courtier",
"monk": "Monk",
"sage": "Sage",
"courtier": "Cortesano",
"monk": "Monje",
"sage": "Sabio",
"shinobi": "Shinobi",
"shugenja": "Shugenja"
},
"clans": {
"title": "Clans",
"title": "Clanes",
"label": "Clan",
"imperial": "Imperial",
"crab": "Crab",
"crane": "Crane",
"dragon": "Dragon",
"lion": "Lion",
"phoenix": "Phoenix",
"scorpion": "Scorpion",
"unicorn": "Unicorn",
"crab": "Cangrejo",
"crane": "Grulla",
"dragon": "Dragón",
"lion": "Ln",
"phoenix": "nix",
"scorpion": "Escorpión",
"unicorn": "Unicornio",
"mantis": "Mantis",
"ronin": "Ronin",
"badger": "Badger",
"bat": "Bat",
"boar": "Boar",
"dragonfly": "Dragonfly",
"firefly": "Firefly",
"hare": "Hare",
"monkey": "Monkey",
"oriole": "Oriole",
"ox": "Ox",
"sparrow": "Sparrow",
"tortoise": "Tortoise",
"ivory_kingdoms": "Ivory Kingdoms",
"qamarist": "Qamarist",
"badger": "Tejón",
"bat": "Muerciélago",
"boar": "Jabalí",
"dragonfly": "Libélula",
"firefly": "Luciérnaga",
"fox": "Zorro",
"hare": "Liebre",
"monkey": "Mono",
"oriole": "Oropéndula",
"ox": "Buey",
"sparrow": "Gorrión",
"tortoise": "Tortuga",
"ivory_kingdoms": "Reinos de Marfil",
"qamarist": "Qamarista",
"ujik": "Ujik"
},
"demeanor": {
"adaptable": "Adaptable",
"aggressive": "Aggressive",
"ambitious": "Ambitious",
"amiable": "Amiable",
"analytical": "Analytical",
"angry": "Angry",
"arrogant": "Arrogant",
"assertive": "Assertive",
"beguiling": "Beguiling",
"bitter": "Bitter",
"bold": "Bold",
"calculating": "Calculating",
"calm": "Calm",
"capricious": "Capricious",
"cautious": "Cautious",
"clever": "Clever",
"confused": "Confused",
"courageous": "Courageous",
"cowardly": "Cowardly",
"curious": "Curious",
"dependable": "Dependable",
"detached": "Detached",
"disheartened": "Disheartened",
"enraged": "Enraged",
"feral": "Feral",
"fickle": "Fickle",
"fierce": "Fierce",
"flighty": "Flighty",
"flippant": "Flippant",
"friendly": "Friendly",
"gruff": "Gruff",
"hungry": "Hungry",
"intense": "Intense",
"intimidating": "Intimidating",
"aggressive": "Agresivo",
"ambitious": "Ambicioso",
"amiable": "Amigable",
"analytical": "Analítico",
"angry": "Enojado",
"arrogant": "Arrogante",
"assertive": "Firme",
"beguiling": "Seductor",
"bitter": "Amargado",
"bold": "Atrevido",
"calculating": "Calculador",
"calm": "Calmado",
"capricious": "Caprichoso",
"cautious": "Cuidadoso",
"clever": "Ingenioso",
"compassionate": "Compasivo",
"confused": "Confuso",
"courageous": "Valiente",
"cowardly": "Cobarde",
"curious": "Curioso",
"dependable": "Fiable",
"detached": "Desapegado",
"disheartened": "Desanimado",
"enraged": "Furioso",
"feral": "Salvaje",
"fickle": "Voluble",
"fierce": "Fiero",
"flighty": "Veleidoso",
"flippant": "Frívolo",
"friendly": "Amable",
"gruff": "Hosco",
"hungry": "Hambriento",
"intense": "Intenso",
"intimidating": "Intimidante",
"irritable": "Irritable",
"loyal": "Loyal",
"mischievous": "Mischievous",
"morose": "Morose",
"nurturing": "Nurturing",
"obstinate": "Obstinate",
"opportunistic": "Opportunistic",
"passionate": "Passionate",
"playful": "Playful",
"power_hungry": "Power hungry",
"proud": "Proud",
"restrained": "Restrained",
"scheming": "Scheming",
"serene": "Serene",
"serious": "Serious",
"shrewd": "Shrewd",
"stubborn": "Stubborn",
"suspicious": "Suspicious",
"teasing": "Teasing",
"loyal": "Leal",
"mischievous": "Travieso",
"morose": "Taciturno",
"nurturing": "Animador",
"obstinate": "Obstinado",
"opportunistic": "Oportunista",
"passionate": "Apasionado",
"playful": "Juguetón",
"power_hungry": "Ávido de poder",
"proud": "Orgulloso",
"restrained": "Contenido",
"scheming": "Taimado",
"serene": "Sereno",
"serious": "Serio",
"shrewd": "Artero",
"stubborn": "Testarudo",
"suspicious": "Suspicaz",
"teasing": "Bromista",
"territorial": "Territorial",
"uncertain": "Uncertain",
"unenthused": "Unenthused",
"vain": "Vain",
"wary": "Wary"
"uncertain": "Inseguro",
"unenthused": "Sin entusiasmo",
"vain": "Vanidoso",
"wary": "Precavido"
},
"compendium": {
"filter_rank": "Show Rank",
"not_for_players": "Not shown to players",
"filter_rank": "Mostrar rango",
"not_for_players": "No mostrar a los jugadores",
"filter": {
"rank": "Rank",
"rarity": "Rarity",
"ring": "Ring"
"rank": "Rango",
"rarity": "Rareza",
"ring": "Anillo"
}
},
"source_reference": {
"core_rulebook": "Core Rulebook",
"emerald_empire": "Emerald Empire",
"shadowlands": "Shadowlands",
"court_of_stones": "Court of Stones",
"core_rulebook": "Libro básico",
"emerald_empire": "La guia del Imperio Esmeralda",
"shadowlands": "Las Tierras Sombrías",
"court_of_stones": "Cortes de piedra",
"path_of_waves": "Path of Waves",
"celestial_realms": "Celestial Realms",
"fields_of_victory": "Fields of Victory",
"writ_of_the_wild": "Writ of the Wild",
"gm_kit": "Game Master's Kit",
"beginner_game": "Beginner Game",
"the_mantis_clan": "The Mantis Clan",
"mask_of_the_oni": "Mask of the Oni",
"winters_embrace": "Winter's Embrace",
"gm_kit": "Pantalla del DJ",
"beginner_game": "Caja de inicio",
"the_mantis_clan": "El Clan de la Mantis",
"mask_of_the_oni": "La máscara del oni",
"winters_embrace": "El abrazo del invierno",
"sins_of_regret": "Sins of Regret",
"wheel_of_judgment": "Wheel of Judgment",
"blood_of_the_lioness": "Blood of the Lioness",
"imperfect_land": "Imperfect Land",
"in_the_palace_of_the_emerald_champion": "In the Palace of the Emerald Champion",
"in_the_palace_of_the_emerald_champion": "En el palacio del Campeón Esmeralda",
"the_highwayman": "The Highwayman",
"wedding_at_kyotei_castle": "Wedding at Kyotei Castle",
"the_knotted_tails": "The Knotted Tails",
"cresting_waves": "Cresting Waves",
"wedding_at_kyotei_castle": "Esponsales en el Castillo Kyotei",
"the_knotted_tails": "Las Colas Anudadas",
"cresting_waves": "Mareas Oscuras",
"deathly_turns": "Deathly Turns",
"the_scroll_or_the_blade": "The Scroll or the Blade",
"legacies_of_war": "Legacies of War"
"the_scroll_or_the_blade": "El pergamino o la espada",
"legacies_of_war": "Legacies of War",
"children_of_the_five_winds": "Children of the Five Winds"
}
}
}

View File

@@ -21,6 +21,10 @@
"SetTn1OnTypeChange": "ND 1 à la sélection du type de rencontre",
"SetTn1OnTypeChangeHint": "Met le ND à 1 lorsqu'on modifie le type de rencontre (Intrigue, Duel, Escarmouche ou Bataille rangée)"
},
"ShowAllStatusEffects": {
"Title": "Affiche tous les StatusEffects",
"Hint": "Si décoché (défaut), uniquement les conditions de L5R sont affichées."
},
"CustomTechniques": {
"Title": "Utiliser les techniques personnalisées",
"Hint": "Ajoute un type de technique 'Particularités' pour servir de fourre-tout."
@@ -79,6 +83,42 @@
}
},
"l5r5e": {
"title": "La Légende des Cinq Anneaux",
"conditions": {
"afflicted": "Tourmenté",
"bleeding": "En sang",
"burning": "En feu",
"centered": "Centered",
"compromised": "Compromis",
"dazed": "Hébété",
"disoriented": "Désorienté",
"dying": "Mourant",
"emboldened": "Emboldened",
"enraged": "Enragé",
"exhausted": "Épuisé",
"immobilized": "Immobilisé",
"illness_coughing_illness": "Maladie : Mauvaise toux",
"illness_fire_rash": "Maladie : Rougeurs",
"illness_gut_sickness": "Maladie : Mal des entrailles",
"illness_oozing_sore_disease": "Maladie : Bubons purulents",
"illness_unsteady_illness": "Maladie : Vertiges",
"incapacitated": "Hors de combat",
"intoxicated": "Ivre",
"possessed": "Possédé",
"prone": "A terre",
"silenced": "Aphone",
"unconscious": "Inconscient",
"lightly_wounded_fire": "Légèrement Blessé (Feu)",
"lightly_wounded_water": "Légèrement Blessé (Eau)",
"lightly_wounded_air": "Légèrement Blessé (Air)",
"lightly_wounded_earth": "Légèrement Blessé (Terre)",
"lightly_wounded_void": "Légèrement Blessé (Vide)",
"severely_wounded_fire": "Gravement blessé (Feu)",
"severely_wounded_water": "Gravement blessé (Eau)",
"severely_wounded_air": "Gravement blessé (Air)",
"severely_wounded_earth": "Gravement blessé (Terre)",
"severely_wounded_void": "Gravement blessé (Vide)"
},
"global": {
"edge_translation_disclaimer": "",
"add": "Ajouter",
@@ -103,16 +143,6 @@
"others": "Autres"
}
},
"settings": {
"custom-compendiums": {
"title": "Compendiums",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/users/custom-compendiums.md"
},
"wiki": {
"title": "Wiki",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/home"
}
},
"logo": {
"title": "Besoin d'aide ?",
"src": "systems/l5r5e/assets/l5r-logo.webp",
@@ -132,6 +162,22 @@
"title": "Rejoignez le Discord Francophone",
"info": "Votre navigateur va ouvrir le discord francophone de foundry.",
"link": "https://discord.gg/pPSDNJk"
},
"notes": {
"title": "Changelog",
"link": "https://gitlab.com/teaml5r/l5r5e/-/blob/master/CHANGELOG.md"
},
"issues": {
"title": "Issues",
"link": "https://gitlab.com/teaml5r/l5r5e/-/issues"
},
"custom-compendiums": {
"title": "Compendiums",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/users/custom-compendiums.md"
},
"wiki": {
"title": "Wiki",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/home"
}
},
"rings": {
@@ -645,6 +691,7 @@
"boar": "Sanglier",
"dragonfly": "Libellule",
"firefly": "Luciole",
"fox": "Renard",
"hare": "Lièvre",
"monkey": "Singe",
"oriole": "Loriot",
@@ -672,6 +719,7 @@
"capricious": "Capricieuse",
"cautious": "Prudente",
"clever": "Astucieuse",
"compassionate": "Compatissante",
"confused": "Confuse",
"courageous": "Courageuse",
"cowardly": "Lâche",
@@ -749,7 +797,8 @@
"cresting_waves": "La Crête des Vagues",
"deathly_turns": "Détours Mortels",
"the_scroll_or_the_blade": "Le Parchemin ou le Sabre",
"legacies_of_war": "Les Flambeaux de la Guerre"
"legacies_of_war": "Les Flambeaux de la Guerre",
"children_of_the_five_winds": "Les Enfants des Cinq Vents"
}
}
}

View File

@@ -21,6 +21,10 @@
"SetTn1OnTypeChange": "Fissa la TN a 1 quando si cambia il conflitto",
"SetTn1OnTypeChangeHint": "Fissa la TN a 1 quando si seleziona il tipo di conflitto (Intrigo, Duello, Schermaglia or Battaglia campale)"
},
"ShowAllStatusEffects": {
"Title": "Show all StatusEffects",
"Hint": "If uncheck (default), only L5R conditions are shown."
},
"CustomTechniques": {
"Title": "Usa tecniche custom",
"Hint": "Aggiunge il tipo 'Speciale' come termine generale."
@@ -79,6 +83,42 @@
}
},
"l5r5e": {
"title": "Legend of the five Rings",
"conditions": {
"afflicted": "Afflicted",
"bleeding": "Bleeding",
"burning": "Burning",
"centered": "Centered",
"compromised": "Compromised",
"dazed": "Dazed",
"disoriented": "Disoriented",
"dying": "Dying",
"emboldened": "Emboldened",
"enraged": "Enraged",
"exhausted": "Exhausted",
"immobilized": "Immobilized",
"illness_coughing_illness": "Illness: Coughing Illness",
"illness_fire_rash": "Illness: Fire Rash",
"illness_gut_sickness": "Illness: Gut Sickness",
"illness_oozing_sore_disease": "Illness: Oozing Sore Disease",
"illness_unsteady_illness": "Illness: Unsteady Illness",
"incapacitated": "Incapacitated",
"intoxicated": "Intoxicated",
"possessed": "Possessed",
"prone": "Prone",
"silenced": "Silenced",
"unconscious": "Unconscious",
"lightly_wounded_fire": "Lightly Wounded (Fire)",
"lightly_wounded_water": "Lightly Wounded (Water)",
"lightly_wounded_air": "Lightly Wounded (Air)",
"lightly_wounded_earth": "Lightly Wounded (Earth)",
"lightly_wounded_void": "Lightly Wounded (Void)",
"severely_wounded_fire": "Severely Wounded (Fire)",
"severely_wounded_water": "Severely Wounded (Water)",
"severely_wounded_air": "Severely Wounded (Air)",
"severely_wounded_earth": "Severely Wounded (Earth)",
"severely_wounded_void": "Severely Wounded (Void)"
},
"global": {
"edge_translation_disclaimer": "",
"add": "Aggiungi",
@@ -103,16 +143,6 @@
"others": "Others"
}
},
"settings": {
"wiki": {
"custom-compendiums": {
"title": "Compendiums",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/users/custom-compendiums.md"
},
"title": "Wiki",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/home"
}
},
"logo": {
"title": "Bisogno di aiuto?",
"src": "systems/l5r5e/assets/l5r-logo.webp",
@@ -132,6 +162,22 @@
"title": "Discord Ufficiale di FoundryVTT",
"info": "Il tuo browser aprirà il Discord ufficiale di Foundry",
"link": "https://discordapp.com/invite/DDBZUDf"
},
"notes": {
"title": "Changelog",
"link": "https://gitlab.com/teaml5r/l5r5e/-/blob/master/CHANGELOG.md"
},
"issues": {
"title": "Issues",
"link": "https://gitlab.com/teaml5r/l5r5e/-/issues"
},
"custom-compendiums": {
"title": "Compendiums",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/users/custom-compendiums.md"
},
"wiki": {
"title": "Wiki",
"link": "https://gitlab.com/teaml5r/l5r5e/-/wikis/home"
}
},
"rings": {
@@ -645,6 +691,7 @@
"boar": "Cinghiale",
"dragonfly": "Libellula",
"firefly": "Lucciola",
"fox": "Fox",
"hare": "Lepre",
"monkey": "Scimmia",
"oriole": "Oriolo",
@@ -672,6 +719,7 @@
"capricious": "Capriccioso",
"cautious": "Cauto",
"clever": "Furbo",
"compassionate": "Compassionate",
"confused": "Confuso",
"courageous": "Coraggioso",
"cowardly": "Codardo",
@@ -749,7 +797,8 @@
"cresting_waves": "Cresting Waves",
"deathly_turns": "Deathly Turns",
"the_scroll_or_the_blade": "The Scroll or the Blade",
"legacies_of_war": "Legacies of War"
"legacies_of_war": "Legacies of War",
"children_of_the_five_winds": "Children of the Five Winds"
}
}
}

View File

@@ -16,4 +16,7 @@
{"_id":"L5RCoreArm000016","name":"Tosei-Gusoku","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"2","rarity":"8","zeni":"50 koku","properties":[{"id":"L5RCorePro000006","name":"Cumbersome"},{"id":"L5RCorePro000015","name":"Durable"},{"id":"L5RCorePro000011","name":"Wargear"}],"armor":{"physical":"4","supernatural":""},"description":"","source_reference":{"source":"shadowlands","page":"106"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]}
{"_id":"L5RCoreArm000017","name":"Sailor's garb","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"2","zeni":"1 bu","properties":[{"id":"L5RCorePro000012","name":"Mundane"},{"id":"L5RCorePro000015","name":"Durable"}],"armor":{"physical":"1","supernatural":""},"description":"","source_reference":{"source":"the_mantis_clan","page":"9"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/keikogi.svg","effects":[]}
{"_id":"L5RCoreArm000018","name":"Shark leather armor","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"2","rarity":"7","zeni":"25 koku","properties":[{"id":"L5RCorePro000010","name":"Resplendent"}],"armor":{"physical":"2","supernatural":""},"description":"","source_reference":{"source":"the_mantis_clan","page":"9"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]}
{"_id":"L5RCoreArm000019","name":"The Golden Obi of the Sun Goddess [Blessed Treasure]","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"10","zeni":"0","properties":[{"id":"L5RCorePro000002","name":"Ceremonial"},{"id":"L5RCorePro000016","name":"Subtle"},{"id":"L5RCorePro000010","name":"Resplendent"}],"armor":{"physical":"3","supernatural":"6"},"description":"","source_reference":{"source":"celestial_realms","page":"97"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]}
{"_id":"L5RCoreArm000019","name":"The Golden Obi of the Sun Goddess [Blessed Treasure]","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"10","zeni":"0","properties":[{"id":"L5RCorePro000002","name":"Ceremonial"},{"id":"L5RCorePro000016","name":"Subtle"},{"id":"L5RCorePro000010","name":"Resplendent"}],"armor":{"physical":"3","supernatural":"6"},"description":"","source_reference":{"source":"celestial_realms","page":"97"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/keikogi.svg","effects":[]}
{"_id":"L5RCoreArm000020","name":"Mirror Armor","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"8","zeni":"40 koku","properties":[{"id":"L5RCorePro000011","name":"Wargear"}],"armor":{"physical":"3","supernatural":"1"},"description":"","source_reference":{"source":"children_of_the_five_winds","page":"103"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]}
{"_id":"L5RCoreArm000021","name":"Unicorn Barding","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"8","zeni":"65 koku","properties":[{"id":"L5RCorePro000002","name":"Ceremonial"},{"id":"L5RCorePro000010","name":"Resplendent"},{"id":"L5RCorePro000011","name":"Wargear"}],"armor":{"physical":"2","supernatural":""},"description":"","source_reference":{"source":"children_of_the_five_winds","page":"103"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]}
{"_id":"L5RCoreArm000022","name":"Yuki: The Ancestral Armor of the Unicorn Clan [Blessed Treasure]","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"10","zeni":"0","properties":[{"id":"L5RCorePro000002","name":"Ceremonial"},{"id":"L5RCorePro000006","name":"Cumbersome"},{"id":"L5RCorePro000015","name":"Durable"},{"id":"L5RCorePro000014","name":"Sacred"},{"id":"L5RCorePro000011","name":"Wargear"}],"armor":{"physical":"6","supernatural":"2"},"description":"","source_reference":{"source":"children_of_the_five_winds","page":"105"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]}

View File

@@ -16,3 +16,6 @@
{"_id":"L5RCoreItp000016","name":"Ghostlands Yodhaniya Pattern","permission":{"default":0},"type":"item_pattern","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"6","rarity_modifier":"4","linked_property_id":"L5RCorePro000032","description":"","source_reference":{"source":"path_of_waves","page":"117"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item_pattern.svg","effects":[]}
{"_id":"L5RCoreItp000017","name":"Kökejins Heart of the Wind Pattern","permission":{"default":0},"type":"item_pattern","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"8","rarity_modifier":"5","linked_property_id":"L5RCorePro000033","description":"","source_reference":{"source":"path_of_waves","page":"117"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item_pattern.svg","effects":[]}
{"_id":"L5RCoreItp000018","name":"Agasha Pattern","permission":{"default":0},"type":"item_pattern","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"6","rarity_modifier":"4","linked_property_id":"L5RCorePro000034","description":"","source_reference":{"source":"celestial_realms","page":"105"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item_pattern.svg","effects":[]}
{"_id":"L5RCoreItp000019","name":"Ujik Horsebow Pattern","permission":{"default":0},"type":"item_pattern","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"4","rarity_modifier":"3","linked_property_id":"L5RCorePro000035","description":"","source_reference":{"source":"children_of_the_five_winds","page":"107"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item_pattern.svg","effects":[]}
{"_id":"L5RCoreItp000020","name":"Utsuko Pattern","permission":{"default":0},"type":"item_pattern","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"3","rarity_modifier":"4","linked_property_id":"L5RCorePro000036","description":"","source_reference":{"source":"children_of_the_five_winds","page":"107"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item_pattern.svg","effects":[]}
{"_id":"L5RCoreItp000021","name":"Watered Steel Pattern","permission":{"default":0},"type":"item_pattern","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"8","rarity_modifier":"6","linked_property_id":"L5RCorePro000037","description":"","source_reference":{"source":"children_of_the_five_winds","page":"107"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item_pattern.svg","effects":[]}

View File

@@ -109,3 +109,13 @@
{"_id":"L5RCoreIte000111","name":"The horagai of Sacred Rains","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"10","zeni":"0","properties":[{"id":"L5RCorePro000010","name":"Resplendent"},{"id":"L5RCorePro000014","name":"Sacred"}],"description":"","source_reference":{"source":"celestial_realms","page":"96"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000112","name":"Daikoku's Mallet","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"10","zeni":"0","properties":[{"id":"L5RCorePro000015","name":"Durable"},{"id":"L5RCorePro000014","name":"Sacred"},{"id":"L5RCorePro000016","name":"Subtle"}],"description":"","source_reference":{"source":"celestial_realms","page":"96"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000113","name":"Candles of the Moth","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"9","zeni":"10 Koku","properties":[{"id":"L5RCorePro000002","name":"Ceremonial"},{"id":"L5RCorePro000014","name":"Sacred"},{"id":"L5RCorePro000016","name":"Subtle"}],"description":"","source_reference":{"source":"celestial_realms","page":"96"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000114","name":"Astrolabe (Unicorn)","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"8","zeni":"1 Koku","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"102"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000115","name":"Horo (Arrow Cloak)","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"6","zeni":"5 Koku","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"102"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000116","name":"Lantern (Personal)","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"2","zeni":"1 Bu","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"102"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000117","name":"Mineral-Oil Lamp","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"8","zeni":"6 Koku","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"102"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000118","name":"Prayer Rug","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"9","zeni":"2 Koku","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"102"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000119","name":"Sand Clock","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"6","zeni":"2 Koku","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"102"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000120","name":"Traveling Board Games","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"4","zeni":"1 Bu","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"103"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000121","name":"Word of the Prophet","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"9","zeni":"15 Koku","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"103"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000122","name":"Talisman of the Sun [Blessed Treasure]","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"10","zeni":"0","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"104"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}
{"_id":"L5RCoreIte000123","name":"Fox Pipe [Blessed Treasure]","permission":{"default":0},"type":"item","data":{"equipped":false,"quantity":1,"weight":"0","rarity":"10","zeni":"0","properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"105"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/item.svg","effects":[]}

View File

@@ -1,21 +1,24 @@
{"_id":"L5RCoreCon000001","name":"Afflicted","content":"<blockquote>Core Rulebook p.271</blockquote>","img":"icons/svg/sun.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000002","name":"Bleeding","content":"<blockquote>Core Rulebook p.271</blockquote>","img":"icons/svg/blood.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000003","name":"Burning","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"icons/svg/fire.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000004","name":"Compromised","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"icons/svg/terror.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000005","name":"Dazed","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"icons/svg/eye.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000006","name":"Disoriented","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"icons/svg/daze.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000007","name":"Dying [X Rounds]","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"icons/svg/skull.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000008","name":"Enraged","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"icons/svg/lightning.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000009","name":"Exhausted","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"icons/svg/sleep.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000010","name":"Immobilized","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"icons/svg/net.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000011","name":"Incapacitated","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"icons/svg/downgrade.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000012","name":"Intoxicated","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"icons/svg/poison.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000013","name":"Prone","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"icons/svg/falling.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000014","name":"Silenced","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"icons/svg/silenced.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000015","name":"Unconscious","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"icons/svg/unconscious.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000016","name":"Wounded","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"icons/svg/degen.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000017","name":"Illness: Oozing Sore Disease","content":"<blockquote>Writ of the Wild p.140</blockquote>","img":"systems/l5r5e/assets/icons/social.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000018","name":"Illness: Gut Sickness","content":"<blockquote>Writ of the Wild p.141</blockquote>","img":"systems/l5r5e/assets/icons/social.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000019","name":"Illness: Coughing Illness","content":"<blockquote>Writ of the Wild p.141</blockquote>","img":"systems/l5r5e/assets/icons/social.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000020","name":"Illness: Unsteady Illness","content":"<blockquote>Writ of the Wild p.141</blockquote>","img":"systems/l5r5e/assets/icons/social.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000021","name":"Illness: Fire Rash","content":"<blockquote>Writ of the Wild p.141</blockquote>","img":"systems/l5r5e/assets/icons/social.svg","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000001","name":"Afflicted","content":"<blockquote>Core Rulebook p.271</blockquote>","img":"systems/l5r5e/assets/icons/conditions/afflicted.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000002","name":"Bleeding","content":"<blockquote>Core Rulebook p.271</blockquote>","img":"systems/l5r5e/assets/icons/conditions/bleeding.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000003","name":"Burning","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"systems/l5r5e/assets/icons/conditions/burning.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000004","name":"Compromised","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"systems/l5r5e/assets/icons/conditions/compromised.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000005","name":"Dazed","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"systems/l5r5e/assets/icons/conditions/dazed.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000006","name":"Disoriented","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"systems/l5r5e/assets/icons/conditions/disoriented.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000007","name":"Dying [X Rounds]","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"systems/l5r5e/assets/icons/conditions/dying_1.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000008","name":"Enraged","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"systems/l5r5e/assets/icons/conditions/enraged.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000009","name":"Exhausted","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"systems/l5r5e/assets/icons/conditions/exhausted.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000010","name":"Immobilized","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"systems/l5r5e/assets/icons/conditions/immobilized.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000011","name":"Incapacitated","content":"<blockquote>Core Rulebook p.272</blockquote>","img":"systems/l5r5e/assets/icons/conditions/incapacitated.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000012","name":"Intoxicated","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"systems/l5r5e/assets/icons/conditions/intoxicated.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000013","name":"Prone","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"systems/l5r5e/assets/icons/conditions/prone.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000014","name":"Silenced","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"systems/l5r5e/assets/icons/conditions/silenced.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000015","name":"Unconscious","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"systems/l5r5e/assets/icons/conditions/unconscious.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000016","name":"Wounded","content":"<blockquote>Core Rulebook p.273</blockquote>","img":"systems/l5r5e/assets/icons/conditions/heavily_wounded.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000017","name":"Illness: Oozing Sore Disease","content":"<blockquote>Writ of the Wild p.140</blockquote>","img":"systems/l5r5e/assets/icons/conditions/illness_oozing_sore_disease.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000018","name":"Illness: Gut Sickness","content":"<blockquote>Writ of the Wild p.141</blockquote>","img":"systems/l5r5e/assets/icons/conditions/illness_gut_sickness.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000019","name":"Illness: Coughing Illness","content":"<blockquote>Writ of the Wild p.141</blockquote>","img":"systems/l5r5e/assets/icons/conditions/illness_coughing_illness.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000020","name":"Illness: Unsteady Illness","content":"<blockquote>Writ of the Wild p.141</blockquote>","img":"systems/l5r5e/assets/icons/conditions/illness_unsteady_illness.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000021","name":"Illness: Fire Rash","content":"<blockquote>Writ of the Wild p.141</blockquote>","img":"systems/l5r5e/assets/icons/conditions/illness_fire_rash.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000022","name":"Centered","content":"<blockquote>Children of the Five Winds p.133</blockquote>","img":"systems/l5r5e/assets/icons/conditions/centered.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000023","name":"Emboldened","content":"<blockquote>Children of the Five Winds p.133</blockquote>","img":"systems/l5r5e/assets/icons/conditions/emboldened.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}
{"_id":"L5RCoreCon000024","name":"Possessed","content":"<blockquote>Children of the Five Winds p.133</blockquote>","img":"systems/l5r5e/assets/icons/conditions/possesed.webp","folder":null,"sort":100001,"permission":{"default":0},"flags":{}}

File diff suppressed because one or more lines are too long

View File

@@ -83,3 +83,6 @@
{"_id":"L5RCoreAdv000083","name":"Insomniac","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"void","peculiarity_type":"adversity","types":"Mental","description":"","source_reference":{"source":"writ_of_the_wild","page":"104"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAdv000084","name":"Out of Shape","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"earth","peculiarity_type":"adversity","types":"Physical","description":"","source_reference":{"source":"writ_of_the_wild","page":"105"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAdv000085","name":"Stalked by [Creature]","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"earth","peculiarity_type":"adversity","types":"Interpersonal, Mental, Spiritual","description":"","source_reference":{"source":"writ_of_the_wild","page":"105"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAdv000086","name":"Lost Family History","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"earth","peculiarity_type":"adversity","types":"Interpersonal, Material","description":"","source_reference":{"source":"children_of_the_five_winds","page":"95"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAdv000087","name":"Penalty","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"fire","peculiarity_type":"adversity","types":"Infamy, Social","description":"","source_reference":{"source":"children_of_the_five_winds","page":"95"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAdv000088","name":"Schism in Status","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"water","peculiarity_type":"adversity","types":"Infamy, Interpersonal","description":"","source_reference":{"source":"children_of_the_five_winds","page":"96"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}

View File

@@ -40,3 +40,6 @@
{"_id":"L5RCoreAnx000040","name":"Fear of [Common Creature]","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"earth","peculiarity_type":"anxiety","types":"Mental","description":"","source_reference":{"source":"writ_of_the_wild","page":"105"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAnx000041","name":"Fear of Mediocrity","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"fire","peculiarity_type":"anxiety","types":"Interpersonal, Mental","description":"","source_reference":{"source":"writ_of_the_wild","page":"106"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAnx000042","name":"Fear of Poison","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"air","peculiarity_type":"anxiety","types":"Mental","description":"","source_reference":{"source":"writ_of_the_wild","page":"106"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAnx000043","name":"Animal Signs","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"void","peculiarity_type":"anxiety","types":"Mental, Spiritual","description":"","source_reference":{"source":"children_of_the_five_winds","page":"96"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAnx000044","name":"Disdain for Urban Sprawl","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"earth","peculiarity_type":"anxiety","types":"Mental","description":"","source_reference":{"source":"children_of_the_five_winds","page":"96"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreAnx000045","name":"Tip of the Tongue","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"air","peculiarity_type":"anxiety","types":"Mental","description":"","source_reference":{"source":"children_of_the_five_winds","page":"97"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}

View File

@@ -69,3 +69,6 @@
{"_id":"L5RCoreDis000069","name":"Knowledgeable Wilderness Guide","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"void","peculiarity_type":"distinction","types":"Interpersonal, Spiritual","description":"","source_reference":{"source":"writ_of_the_wild","page":"102"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreDis000070","name":"Skilled Midwife","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"fire","peculiarity_type":"distinction","types":"Interpersonal","description":"","source_reference":{"source":"writ_of_the_wild","page":"102"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreDis000071","name":"Thoughtful Arbiter","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"water","peculiarity_type":"distinction","types":"Interpersonal","description":"","source_reference":{"source":"writ_of_the_wild","page":"102"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreDis000072","name":"Affinity with [Animal Type]","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"void","peculiarity_type":"distinction","types":"Fame, Interpersonal","description":"","source_reference":{"source":"children_of_the_five_winds","page":"93"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreDis000073","name":"Legal Scholarship","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"air","peculiarity_type":"distinction","types":"Interpersonal, Social","description":"","source_reference":{"source":"children_of_the_five_winds","page":"93"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCoreDis000074","name":"Syncretic Philosophy","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"water","peculiarity_type":"distinction","types":"Interpersonal, Mental","description":"","source_reference":{"source":"children_of_the_five_winds","page":"93"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}

View File

@@ -41,3 +41,6 @@
{"_id":"L5RCorePas000042","name":"Glorious Deeds","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"fire","peculiarity_type":"passion","types":"Martial, Social","description":"","source_reference":{"source":"fields_of_victory","page":"83"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCorePas000043","name":"Charity","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"water","peculiarity_type":"passion","types":"Interpersonal, Mental","description":"","source_reference":{"source":"writ_of_the_wild","page":"103"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCorePas000044","name":"Kintsugi","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"earth","peculiarity_type":"passion","types":"Mental, Physical","description":"","source_reference":{"source":"writ_of_the_wild","page":"104"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCorePas000045","name":"Horse Racing","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"air","peculiarity_type":"passion","types":"Physical","description":"","source_reference":{"source":"children_of_the_five_winds","page":"94"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCorePas000046","name":"Hot Pot","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"earth","peculiarity_type":"passion","types":"Interpersonal, Physical","description":"","source_reference":{"source":"children_of_the_five_winds","page":"94"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}
{"_id":"L5RCorePas000047","name":"Stargazing","permission":{"default":0},"type":"peculiarity","data":{"in_curriculum":false,"xp_used":0,"rank":0,"bought_at_rank":0,"ring":"void","peculiarity_type":"passion","types":"Mental, Spiritual","description":"","source_reference":{"source":"children_of_the_five_winds","page":"94"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/peculiarity.svg","effects":[]}

View File

@@ -32,3 +32,7 @@
{"_id":"L5RCorePro000032","name":"Ghostlands Yodhaniya Pattern","permission":{"default":0},"type":"property","data":{"properties":[],"description":"","source_reference":{"source":"path_of_waves","page":"117"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]}
{"_id":"L5RCorePro000033","name":"Kökejins Heart of the Wind Pattern","permission":{"default":0},"type":"property","data":{"properties":[],"description":"","source_reference":{"source":"path_of_waves","page":"117"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]}
{"_id":"L5RCorePro000034","name":"Agasha Pattern","permission":{"default":0},"type":"property","data":{"properties":[],"description":"","source_reference":{"source":"celestial_realms","page":"105"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]}
{"_id":"L5RCorePro000035","name":"Ujik Horsebow Pattern","permission":{"default":0},"type":"property","data":{"properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"107"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]}
{"_id":"L5RCorePro000036","name":"Utsuko Pattern","permission":{"default":0},"type":"property","data":{"properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"107"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]}
{"_id":"L5RCorePro000037","name":"Watered Steel Pattern","permission":{"default":0},"type":"property","data":{"properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"107"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]}
{"_id":"L5RCorePro000038","name":"Hewing","permission":{"default":0},"type":"property","data":{"properties":[],"description":"","source_reference":{"source":"children_of_the_five_winds","page":"116"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]}

View File

@@ -73,3 +73,4 @@
{"_id":"L5RCoreInv000073","name":"Rain of Ten Thousand Lotuses","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"5","bought_at_rank":0,"ring":"water","skill":"theology","difficulty":"2","technique_type":"invocation","xp_cost":"3","description":"","source_reference":{"source":"celestial_realms","page":"109"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/invocation.svg","effects":[]}
{"_id":"L5RCoreInv000074","name":"Path of Beasts","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"water","skill":"theology","difficulty":"2","technique_type":"invocation","xp_cost":"3","description":"","source_reference":{"source":"celestial_realms","page":"109"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/invocation.svg","effects":[]}
{"_id":"L5RCoreInv000075","name":"Essence of Jade","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"earth","skill":"theology","difficulty":"3","technique_type":"invocation","xp_cost":"3","description":"","source_reference":{"source":"shadowlands","page":"114"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/invocation.svg","effects":[]}
{"_id":"L5RCoreInv000076","name":"The World is Not Heavy","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"water","skill":"theology","difficulty":"3","technique_type":"invocation","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"116"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/invocation.svg","effects":[]}

View File

@@ -78,3 +78,12 @@
{"_id":"L5RCoreKat000079","name":"Owls Swoop Style","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"writ_of_the_wild","page":"117"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000080","name":"Skittering Shift","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"writ_of_the_wild","page":"118"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000081","name":"Tail Sweep","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"writ_of_the_wild","page":"118"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000082","name":"Cautious Tread","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"108"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000083","name":"Stalking Leopard Style","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"108"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000084","name":"Sudden Downpour Style","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"108"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000085","name":"Swaying Grass Evasion","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"108"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000086","name":"Distracting Flurry Style","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"void","skill":"melee,unarmed","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"108"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000087","name":"Scouring Wind Style","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"melee,unarmed","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"109"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000088","name":"Slashing Sandstorm Style","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"void","skill":"melee","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"109"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000089","name":"Descending Swarm Shot","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"air","skill":"ranged","difficulty":"3","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"110"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}
{"_id":"L5RCoreKat000090","name":"Thunderbolt Style","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"4","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"kata","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"110"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/kata.svg","effects":[]}

View File

@@ -98,3 +98,13 @@
{"_id":"L5RCoreMas000098","name":"Born to Survive","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"writ_of_the_wild","page":"101"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000099","name":"Hunter of the Supernatural","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"deathly_turns","page":"24"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000100","name":"An Arrow Loosed","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"deathly_turns","page":"25"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000101","name":"Measured Force","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"83"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000102","name":"Student of Many Courts","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"84"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000103","name":"The Noble Heart Shines Through","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"85"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000104","name":"Cool Heads Prevail","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"86"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000105","name":"Procession of Seasons","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"87"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000106","name":"Lay of the Land","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"88"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000107","name":"Logical Conclusion","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"89"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000108","name":"Spirit of the Sacred Horse","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"90"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000109","name":"Reputation Sentinel","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"91"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}
{"_id":"L5RCoreMas000110","name":"Legendary Endurance","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"mastery_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"92"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/mastery_ability.svg","effects":[]}

View File

@@ -23,7 +23,7 @@
{"_id":"L5RCoreRit000023","name":"Beseech Akodo's Judgment","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"tactics","difficulty":"3","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"96"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000024","name":"Beseech Bayushi's Absolution","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"4","bought_at_rank":0,"ring":"air","skill":"sentiment","difficulty":"3","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"96"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000025","name":"Beseech Doji's Wisdom","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"void","skill":"composition","difficulty":"3","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"96"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000026","name":"Beseech Hida's MIght","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"fire","skill":"meditation","difficulty":"2","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"97"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000026","name":"Beseech Hida's Might","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"fire","skill":"meditation","difficulty":"2","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"97"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000027","name":"Beseech Shiba's Calm","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"theology","difficulty":"3","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"97"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000028","name":"Beseech Shinjo's Empathy","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"water","skill":"survival","difficulty":"@T:martialRank","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"97"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000029","name":"Beseech Togashi's Vision","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"meditation","difficulty":"3","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"98"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
@@ -33,3 +33,10 @@
{"_id":"L5RCoreRit000033","name":"Cunning Snares","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"air","skill":"survival","difficulty":"1","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"writ_of_the_wild","page":"119"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000034","name":"Hunters Expertise","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"air","skill":"survival","difficulty":"5","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"writ_of_the_wild","page":"120"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000035","name":"Trance of Lives Past","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"4","bought_at_rank":0,"ring":"void","skill":"meditation","difficulty":"4","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"writ_of_the_wild","page":"120"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000036","name":"Center the World","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"air","skill":"survival","difficulty":"3","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"110"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000037","name":"Cultural Exchange","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"fire","skill":"culture","difficulty":"2","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"110"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000038","name":"Protection of the Flock","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"fire","skill":"survival","difficulty":"2","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"111"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000039","name":"Shadow of Days","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"earth","skill":"survival","difficulty":"4","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"111"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000040","name":"Spiritual Survey","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"void","skill":"survival","difficulty":"3","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"111"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000041","name":"Traveler's Experience","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"earth","skill":"culture","difficulty":"2","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"112"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}
{"_id":"L5RCoreRit000042","name":"Wayfinder's Instincts","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"water","skill":"survival,seafaring","difficulty":"2","technique_type":"ritual","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"112"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/ritual.svg","effects":[]}

View File

@@ -98,3 +98,13 @@
{"_id":"L5RCoreSch000098","name":"Evolution of the Wilds","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"writ_of_the_wild","page":"101"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000099","name":"Mazoku's Authority","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"deathly_turns","page":"24"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000100","name":"Effortless Aim","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"deathly_turns","page":"25"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000101","name":"Moment of Certainty","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"83"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000102","name":"Disarming Demeanor","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"84"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000103","name":"The Horse Lord's Favor","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"85"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000104","name":"Calm Counsel","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"86"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000105","name":"Natural Balance","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"87"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000106","name":"Dunestrider","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"88"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000107","name":"Methodical Observation","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"89"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000108","name":"Unity of Horse and Rider","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"90"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000109","name":"Warden of the Five Winds","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"91"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}
{"_id":"L5RCoreSch000110","name":"Move as the Wind","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"school_ability","xp_cost":"0","description":"","source_reference":{"source":"children_of_the_five_winds","page":"92"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/school_ability.svg","effects":[]}

View File

@@ -86,3 +86,15 @@
{"_id":"L5RCoreShu000086","name":"Moment of Glory","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"void","skill":"meditation","difficulty":"4","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"104"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000087","name":"Victory Without a Sword","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"6","bought_at_rank":0,"ring":"void","skill":"tactics","difficulty":"6","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"fields_of_victory","page":"104"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000088","name":"Flowering Deceptions","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"air","skill":"courtesy,tactics","difficulty":"@T:vigilance|max","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"path_of_waves","page":"93"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000089","name":"Cunning Omission","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"air","skill":"sentiment","difficulty":"","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"112"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000090","name":"Entice with Offerings","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"air","skill":"commerce","difficulty":"3","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"113"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000091","name":"Trader's Intuition","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"air","skill":"commerce","difficulty":"2","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"113"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000092","name":"Cite the Facts","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"earth","skill":"scholar","difficulty":"","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"114"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000093","name":"Solidify Gratitude","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"earth","skill":"courtesy","difficulty":"2","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"114"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000094","name":"Glorious Entrance","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"2","bought_at_rank":0,"ring":"fire","skill":"performance","difficulty":"","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"114"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000095","name":"Incite Wrath","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"fire","skill":"","difficulty":"","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"114"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000096","name":"Call to Ride","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"water","skill":"survival","difficulty":"1","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"115"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000097","name":"Complementary Experience","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"water","skill":"command","difficulty":"3","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"115"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000098","name":"Everyone Has a Price","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"4","bought_at_rank":0,"ring":"water","skill":"sentiment","difficulty":"","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"115"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000099","name":"Horse Whisperer","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"3","bought_at_rank":0,"ring":"water","skill":"courtesy,survival","difficulty":"","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"115"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}
{"_id":"L5RCoreShu000100","name":"Appreciate the Scenery","permission":{"default":0},"type":"technique","data":{"in_curriculum":false,"xp_used":0,"rank":"1","bought_at_rank":0,"ring":"void","skill":"","difficulty":"","technique_type":"shuji","xp_cost":"3","description":"","source_reference":{"source":"children_of_the_five_winds","page":"116"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/techs/shuji.svg","effects":[]}

View File

@@ -32,7 +32,7 @@
{"_id":"L5RCoreTit000032","name":"Quartermaster","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"24","description":"<h2>Curriculum</h2><table><tr><td>Trade Skills</td><td>Skill Group</td></tr><tr><td>Courtesy</td><td>Skill</td></tr><tr><td>Government</td><td>Skill</td></tr><tr><td>Tactics</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-shuji\">(shuji) Rank 1-2 Air Shuji</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-shuji\">(shuji) Rank 1-2 Water Shuji</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000075\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000075\">(shuji) Fortress of Necessity</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"fields_of_victory","page":"135"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000033","name":"Renowned Warrior","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"16","description":"<h2>Curriculum</h2><table><tr><td>Martial Skills</td><td>Skill Group</td></tr><tr><td>Command</td><td>Skill</td></tr><tr><td>Culture</td><td>Skill</td></tr><tr><td>Performance</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-kata\">(kata) Rank 1-2 Kata</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000003\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000003\">(kata) Heartpiercing Strike</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000079\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000079\">(shuji) Righteous Example</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"fields_of_victory","page":"135"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000034","name":"Spirit Caller","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"38","description":"<h2>Curriculum</h2><table><tr><td>Scholar Skills</td><td>Skill Group</td></tr><tr><td>Courtesy</td><td>Skill</td></tr><tr><td>Meditation</td><td>Skill</td></tr><tr><td>Performance</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-rituals\">(ritual) Rank 1-2 Rituals</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000010\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000010\">(shuji) Ancestry Unearthed</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000083\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000083\">(shuji) Preserve Strength</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"fields_of_victory","page":"136"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000035","name":"Sumai Master","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"30","description":"<h2>Curriculum</h2><table><tr><td>Social Skills</td><td>Skill Group</td></tr><tr><td>Culture</td><td>Skill</td></tr><tr><td>Martial Arts [Unarmed]</td><td>Skill</td></tr><tr><td>Theology</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-kata\">(kata) Rank 1-2 Kata</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000026\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000026\">(ritual) Beseech Hida's MIght</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000065\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000065\">(kata) Fierce Badger Style</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"fields_of_victory","page":"136"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000035","name":"Sumai Master","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"30","description":"<h2>Curriculum</h2><table><tr><td>Social Skills</td><td>Skill Group</td></tr><tr><td>Culture</td><td>Skill</td></tr><tr><td>Martial Arts [Unarmed]</td><td>Skill</td></tr><tr><td>Theology</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-kata\">(kata) Rank 1-2 Kata</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000026\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000026\">(ritual) Beseech Hida's Might</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000065\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000065\">(kata) Fierce Badger Style</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"fields_of_victory","page":"136"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000036","name":"Sword Saint","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"24","description":"<h2>Curriculum</h2><table><tr><td>Martial Arts [Melee]</td><td>Skill</td></tr><tr><td>Meditation</td><td>Skill</td></tr><tr><td>Smithing</td><td>Skill</td></tr><tr><td>Tactics</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-kata\">(kata) Rank 1-5 Close Combat Kata</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000006\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000006\">(kata) Soul Sunder</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000087\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000087\">(shuji) Victory Without a Sword</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"fields_of_victory","page":"136"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000037","name":"War College Graduate","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"36","description":"<h2>Curriculum</h2><table><tr><td>Martial Skills</td><td>Skill Group</td></tr><tr><td>Command</td><td>Skill Group</td></tr><tr><td>Culture</td><td>Skill</td></tr><tr><td>Government</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-kata\">(kata) Rank 1-3 Kata</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-shuji\">(shuji) Rank 1-3 Shuji</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000023\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000023\">(ritual) Beseech Akodo's Judgment</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"fields_of_victory","page":"137"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000038","name":"In Service to a Lord","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"24","description":"<h2>Curriculum</h2><table><tr><td>Martial Skills</td><td>Skill Group</td></tr><tr><td>Social Skills</td><td>Skill Group</td></tr><tr><td>Culture</td><td>Skill</td></tr><tr><td>Government</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-kata\">(kata) Rank 1-2 Kata</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000009\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000009\">(shuji) Wolfs Proposal</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000066\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000066\">(shuji) Fluent Bargaining</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"path_of_waves","page":"185"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
@@ -46,3 +46,10 @@
{"_id":"L5RCoreTit000046","name":"Bond with a spirit","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"25","description":"<h2>Curriculum</h2><table><tr><td>Scholar Skills</td><td>Skill Group</td></tr><tr><td>Aesthetics</td><td>Skill</td></tr><tr><td>Games</td><td>Skill</td></tr><tr><td>Meditation</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-invocations\">(invocation) Rank 1 Spirit's Elements Invocations</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000002\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000002\">(ritual) Commune with the Spirits</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000022\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000022\">(ritual) Blessing of Fertile Fields</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"celestial_realms","page":"140"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000047","name":"Moon cultist","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"30","description":"<h2>Curriculum</h2><table><tr><td>Scholar Skills</td><td>Skill Group</td></tr><tr><td>Composition</td><td>Skill</td></tr><tr><td>Courtesy</td><td>Skill</td></tr><tr><td>Fitness</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-invocations\">(invocation) Rank 1-2 Water Invocations</a></td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-invocations.Item.L5RCoreInv000052\" data-pack=\"l5r5e.core-techniques-invocations\" data-type=\"Item\" data-id=\"L5RCoreInv000052\">(invocation) Hands of the Tides</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000010\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000010\">(ritual) Whispers to the Moon (Moon Cultist)</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"celestial_realms","page":"140"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000048","name":"Spirits hunter","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"12","description":"<h2>Curriculum</h2><table><tr><td>Martial Skills</td><td>Skill Group</td></tr><tr><td>Social Skills</td><td>Skill Group</td></tr><tr><td>Government</td><td>Skill</td></tr><tr><td>Theology</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-rituals\">(ritual) Rank 1 Rituals</a> (prereq)</td><td>Tech. Grp.</td></tr></table>","source_reference":{"source":"deathly_turns","page":"21"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000049","name":"Animal Handler","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"24","description":"<h2>Curriculum</h2><table><tr><td>Trade Skills</td><td>Skill Group</td></tr><tr><td>Martial Arts [Unarmed]</td><td>Skill</td></tr><tr><td>Medicine</td><td>Skill</td></tr><tr><td>Sentiment</td><td>Skill</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000096\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000096\">(shuji) Call to Ride</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000095\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000095\">(shuji) Incite Wrath</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000011\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000011\">(shuji) Touchstone of Courage</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"children_of_the_five_winds","page":"134"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000050","name":"Doomhunter","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"28","description":"<h2>Curriculum</h2><table><tr><td>Martial Skills</td><td>Skill Group</td></tr><tr><td>Skulduggery</td><td>Skill</td></tr><tr><td>Survival</td><td>Skill</td></tr><tr><td>Theology</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-rituals\">(ritual) Rank 1-2 Rituals</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-ninjutsu.Item.L5RCoreNin000002\" data-pack=\"l5r5e.core-techniques-ninjutsu\" data-type=\"Item\" data-id=\"L5RCoreNin000002\">(ninjutsu) Skulk</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000006\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000006\">(kata) Soul Sunder</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"children_of_the_five_winds","page":"134"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000051","name":"Imperial Peacekeeper","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"18","description":"<h2>Curriculum</h2><table><tr><td>Martial Skills</td><td>Skill Group</td></tr><tr><td>Courtesy</td><td>Skill</td></tr><tr><td>Command</td><td>Skill</td></tr><tr><td>Sentiment</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-shuji\">(shuji) Rank 1-2 Earth Shuji</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000037\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000037\">(ritual) Cultural Exchange</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000016\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000016\">(shuji) Pillar of Calm</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"children_of_the_five_winds","page":"135"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000052","name":"Interpreter","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"12","description":"<h2>Curriculum</h2><table><tr><td>Social Skills</td><td>Skill Group</td></tr><tr><td>Composition</td><td>Skill</td></tr><tr><td>Culture</td><td>Skill</td></tr><tr><td>Government</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-shuji\">(shuji) Rank 1 Shuji</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000037\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000037\">(ritual) Cultural Exchange</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000041\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000041\">(ritual) Traveler's Experience</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"children_of_the_five_winds","page":"135"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000053","name":"Scarlet Banners Ranger","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"24","description":"<h2>Curriculum</h2><table><tr><td>Martial Skills</td><td>Skill Group</td></tr><tr><td>Trade Skills</td><td>Skill Group</td></tr><tr><td>Government</td><td>Skill</td></tr><tr><td>Sentiment</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-kata\">(kata) Rank 1-2 Kata</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000089\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000089\">(shuji) Cunning Omission</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000090\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000090\">(kata) Thunderbolt Style</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"children_of_the_five_winds","page":"136"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000054","name":"Student of Names","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"12","description":"<h2>Curriculum</h2><table><tr><td>Command</td><td>Skill</td></tr><tr><td>Culture</td><td>Skill</td></tr><tr><td>Survival</td><td>Skill</td></tr><tr><td>Theology</td><td>Skill</td></tr><tr><td><a class=\"compendium-link\" data-pack=\"l5r5e.core-techniques-invocations\">(invocation) Rank 1-2 Invocations</a> (prereq)</td><td>Tech. Grp.</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000040\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000040\">(ritual) Spiritual Survey</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-rituals.Item.L5RCoreRit000005\" data-pack=\"l5r5e.core-techniques-rituals\" data-type=\"Item\" data-id=\"L5RCoreRit000005\">(ritual) Threshold Barrier</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"children_of_the_five_winds","page":"136"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}
{"_id":"L5RCoreTit000055","name":"White Guard Veteran","permission":{"default":0},"type":"title","data":{"in_curriculum":false,"xp_used":0,"rank":1,"bought_at_rank":0,"ring":"void","xp_cost":"32","description":"<h2>Curriculum</h2><table><tr><td>Martial Skills</td><td>Skill Group</td></tr><tr><td>Courtesy</td><td>Skill</td></tr><tr><td>Command</td><td>Skill</td></tr><tr><td>Survival</td><td>Skill</td></tr><tr><td>Theology</td><td>Skill</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-shuji.Item.L5RCoreShu000038\" data-pack=\"l5r5e.core-techniques-shuji\" data-type=\"Item\" data-id=\"L5RCoreShu000038\">(shuji) A Samurais Fate</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000083\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000083\">(kata) Stalking Leopard Style</a> (prereq)</td><td>Technique</td></tr><tr><td><a class=\"entity-link content-link\" draggable=\"true\" data-link=\"\" data-uuid=\"Compendium.l5r5e.core-techniques-kata.Item.L5RCoreKat000084\" data-pack=\"l5r5e.core-techniques-kata\" data-type=\"Item\" data-id=\"L5RCoreKat000084\">(kata) Sudden Downpour Style</a> (prereq)</td><td>Technique</td></tr></table>","source_reference":{"source":"children_of_the_five_winds","page":"137"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/title.svg","effects":[]}

View File

@@ -104,3 +104,13 @@
{"_id":"L5RCoreWea000104","name":"Mizutsumi [Blessed Treasure]","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"10","zeni":"0","properties":[{"id":"L5RCorePro000002","name":"Ceremonial"},{"id":"L5RCorePro000001","name":"Razor-Edged"},{"id":"L5RCorePro000014","name":"Sacred"}],"category":"Swords","skill":"melee","readied":false,"range":"1","damage":"4","deadliness":"5","grip_1":"","grip_2":"Deadliness +2","description":"","source_reference":{"source":"deathly_turns","page":"19"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/katana.svg","effects":[]}
{"_id":"L5RCoreWea000105","name":"The Five Akodo Daggers [Blessed Treasure]","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"10","zeni":"0","properties":[{"id":"L5RCorePro000005","name":"Concealable"},{"id":"L5RCorePro000015","name":"Durable"},{"id":"L5RCorePro000001","name":"Razor-Edged"},{"id":"L5RCorePro000014","name":"Sacred"}],"category":"Hand Weapons","skill":"melee","readied":false,"range":"","damage":"2","deadliness":"6","grip_1":"","grip_2":"Deadliness +2","description":"","source_reference":{"source":"fields_of_victory","page":"92"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/knife.svg","effects":[]}
{"_id":"L5RCoreWea000106","name":"The blade with no name: Ancestral sword of the Dragon [Blessed Treasure]","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"10","zeni":"0","properties":[{"id":"L5RCorePro000014","name":"Sacred"}],"category":"Swords","skill":"melee","readied":false,"range":"","damage":"","deadliness":"","grip_1":"","grip_2":"","description":"","source_reference":{"source":"celestial_realms","page":"100"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/katana.svg","effects":[]}
{"_id":"L5RCoreWea000107","name":"Catalpa Bow","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"7","zeni":"25 koku","properties":[{"id":"L5RCorePro000002","name":"Ceremonial"},{"id":"L5RCorePro000014","name":"Sacred"}],"category":"Bows","skill":"ranged","readied":false,"range":"2-5","damage":"5","deadliness":"3","grip_1":"N/A","grip_2":"","description":"","source_reference":{"source":"children_of_the_five_winds","page":"99"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/bow.svg","effects":[]}
{"_id":"L5RCoreWea000108","name":"Charging Lance","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"6","zeni":"7 koku","properties":[{"id":"L5RCorePro000006","name":"Cumbersome"},{"id":"L5RCorePro000011","name":"Wargear"}],"category":"Polearms","skill":"melee","readied":false,"range":"1-2","damage":"4","deadliness":"3","grip_1":"N/A","grip_2":"-, (after a Move action on horseback): Damage +3, Deadliness 7, gain the Hewing item quality","description":"","source_reference":{"source":"children_of_the_five_winds","page":"99"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/bo.svg","effects":[]}
{"_id":"L5RCoreWea000109","name":"Fire Lance","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"9","zeni":"40 koku","properties":[{"id":"L5RCorePro000006","name":"Cumbersome"},{"id":"L5RCorePro000013","name":"Prepare"},{"id":"L5RCorePro000011","name":"Wargear"}],"category":"Polearms","skill":"melee","readied":false,"range":"1-2","damage":"4","deadliness":"3","grip_1":"N/A","grip_2":"-, (firework launch): Martial Arts[Ranged] Range 3-5 Damage +3 Deadliness 9","description":"","source_reference":{"source":"children_of_the_five_winds","page":"99"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/bo.svg","effects":[]}
{"_id":"L5RCoreWea000110","name":"Ganzu Ring Ax","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"9","zeni":"35 koku","properties":[{"id":"L5RCorePro000006","name":"Cumbersome"},{"id":"L5RCorePro000038","name":"Hewing"},{"id":"L5RCorePro000011","name":"Wargear"}],"category":"Axes","skill":"melee","readied":false,"range":"1-2","damage":"4","deadliness":"7","grip_1":"N/A","grip_2":"","description":"","source_reference":{"source":"children_of_the_five_winds","page":"99"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/axe.svg","effects":[]}
{"_id":"L5RCoreWea000111","name":"Katar (Punch Dagger)","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"9","zeni":"10 koku","properties":[{"id":"L5RCorePro000038","name":"Hewing"},{"id":"L5RCorePro000001","name":"Razor-Edged"}],"category":"Hand Weapons","skill":"melee","readied":false,"range":"0-1","damage":"3","deadliness":"5","grip_1":"","grip_2":"N/A","description":"","source_reference":{"source":"children_of_the_five_winds","page":"99"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/bo.svg","effects":[]}
{"_id":"L5RCoreWea000112","name":"Repeating Crossbow","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"8","zeni":"50 koku","properties":[{"id":"L5RCorePro000006","name":"Cumbersome"}],"category":"Crossbows","skill":"ranged","readied":false,"range":"2-4","damage":"5","deadliness":"3","grip_1":"N/A","grip_2":"","description":"","source_reference":{"source":"children_of_the_five_winds","page":"101"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/crossbow.svg","effects":[]}
{"_id":"L5RCoreWea000113","name":"Saddle Cutter","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"8","zeni":"15 koku","properties":[{"id":"L5RCorePro000006","name":"Cumbersome"},{"id":"L5RCorePro000011","name":"Wargear"}],"category":"Polearms","skill":"melee","readied":false,"range":"0-1","damage":"4","deadliness":"6","grip_1":"","grip_2":"","description":"","source_reference":{"source":"children_of_the_five_winds","page":"101"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/knife.svg","effects":[]}
{"_id":"L5RCoreWea000114","name":"Ide Parasol Shield","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"9","zeni":"8 koku","properties":[{"id":"L5RCorePro000005","name":"Concealable"},{"id":"L5RCorePro000006","name":"Cumbersome"}],"category":"Shields","skill":"melee","readied":false,"range":"","damage":"2","deadliness":"3","grip_1":"","grip_2":"","description":"","source_reference":{"source":"children_of_the_five_winds","page":"101"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/unarmed.svg","effects":[]}
{"_id":"L5RCoreWea000115","name":"Standing Shield","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"8","zeni":"12 koku","properties":[{"id":"L5RCorePro000006","name":"Cumbersome"},{"id":"L5RCorePro000015","name":"Durable"}],"category":"Shields","skill":"melee","readied":false,"range":"","damage":"2","deadliness":"2","grip_1":"","grip_2":"","description":"","source_reference":{"source":"children_of_the_five_winds","page":"101"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/unarmed.svg","effects":[]}
{"_id":"L5RCoreWea000116","name":"The Ancestral Sword of the Fox [Blessed Treasure]","permission":{"default":0},"type":"weapon","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"10","zeni":"0","properties":[{"id":"L5RCorePro000002","name":"Ceremonial"},{"id":"L5RCorePro000006","name":"Cumbersome"},{"id":"L5RCorePro000015","name":"Durable"},{"id":"L5RCorePro000001","name":"Razor-Edged"},{"id":"L5RCorePro000014","name":"Sacred"}],"category":"Swords","skill":"melee","readied":false,"range":"1","damage":"5","deadliness":"7","grip_1":"","grip_2":"Deadliness 8","description":"","source_reference":{"source":"children_of_the_five_winds","page":"105"}},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/weapons/katana.svg","effects":[]}

View File

@@ -117,7 +117,6 @@ export class ActorL5r5e extends Actor {
});
}
// Now using updateDocuments
return Actor.updateDocuments([docData], context).then(() => {
// Notify the "Gm Monitor" if this actor is watched
if (game.settings.get(CONFIG.l5r5e.namespace, "gm-monitor-actors").some((uuid) => uuid === this.uuid)) {
@@ -126,6 +125,22 @@ export class ActorL5r5e extends Actor {
});
}
/** @inheritDoc */
async _preUpdate(changes, options, user) {
if (this.isCharacterType) {
// apply compromised condition if strife goes beyond max
const strife = changes.system?.strife?.value ?? this.system.strife.value;
const isCompromised = strife > this.system.composure;
// apply incapacitated if fatigue goes beyond max endurance
const fatigue = changes.system?.fatigue?.value ?? this.system.fatigue.value;
const isIncapacitated = fatigue > this.system.endurance;
await Promise.all([
this.toggleStatusEffect('compromised', {active: isCompromised}),
this.toggleStatusEffect('incapacitated', {active: isIncapacitated}),
]);
}
}
/** @override */
prepareData() {
super.prepareData();
@@ -138,13 +153,16 @@ export class ActorL5r5e extends Actor {
ActorL5r5e.computeDerivedAttributes(system);
}
const isAfflicted = this.statuses.has("afflicted");
const isCompromised = this.statuses.has("compromised");
// Attributes bars
system.fatigue.max = system.endurance;
system.strife.max = system.composure;
system.void_points.max = system.rings.void;
// if compromise, vigilance = 1
system.is_compromised = system.strife.value > system.strife.max;
// if compromised or afflicted, vigilance = 1
system.is_afflicted_or_compromised = isAfflicted || isCompromised;
// Make sure void points are never greater than max
if (system.void_points.value > system.void_points.max) {
@@ -189,6 +207,21 @@ export class ActorL5r5e extends Actor {
return this._updateActorFromAdvancement(item, false);
}
/**
* @type {import("./types").Condition}
*
* Remove conditions by known string ids
* @param conditions {Set<Condition>}
* @returns {Promise<void>}
*/
async removeConditions(conditions) {
const effectsToRemove = this.statuses.intersection(conditions);
const idsToRemove = this.effects.contents
.filter(effect => effect.statuses.isSubsetOf(effectsToRemove))
.map(effect => effect.id);
await this.deleteEmbeddedDocuments("ActiveEffect", idsToRemove);
}
/**
* Alter Actor skill/ring from a advancement
* @param {Item} item
@@ -238,7 +271,7 @@ export class ActorL5r5e extends Actor {
*/
async renderTextTemplate() {
const sheetData = (await this.sheet?.getData()) || this;
const tpl = await renderTemplate(`${CONFIG.l5r5e.paths.templates}actors/actor-text.html`, sheetData);
const tpl = await foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}actors/actor-text.html`, sheetData);
if (!tpl) {
return null;
}

View File

@@ -55,15 +55,15 @@ export class ArmySheetL5r5e extends BaseSheetL5r5e {
*/
_createDragDropHandlers() {
return [
new DragDrop({
new foundry.applications.ux.DragDrop.implementation({
dropSelector: ".warlord",
callbacks: { drop: this._onDropActors.bind(this, "warlord") },
}),
new DragDrop({
new foundry.applications.ux.DragDrop.implementation({
dropSelector: ".commander",
callbacks: { drop: this._onDropActors.bind(this, "commander") },
}),
new DragDrop({
new foundry.applications.ux.DragDrop.implementation({
dropSelector: null,
callbacks: { drop: this._onDrop.bind(this) },
}),
@@ -120,7 +120,7 @@ export class ArmySheetL5r5e extends BaseSheetL5r5e {
// Editors enrichment
for (const name of ["army_abilities", "supplies_logistics", "past_battles"]) {
sheetData.data.enrichedHtml[name] = await TextEditor.enrichHTML(sheetData.data.system[name], {
sheetData.data.enrichedHtml[name] = await foundry.applications.ux.TextEditor.implementation.enrichHTML(sheetData.data.system[name], {
async: true,
});
}

View File

@@ -321,6 +321,73 @@ export class BaseCharacterSheetL5r5e extends BaseSheetL5r5e {
// Fatigue/Strife +/-
html.find(".addsub-control").on("click", this._modifyFatigueOrStrife.bind(this));
// Effect remove/display
html.find(".effect-delete").on("click", this._removeEffectId.bind(this));
html.find(".effect-name").on("click", this._openEffectJournal.bind(this));
}
/**
* Remove an effect
* @param {Event} event
* @private
*/
_removeEffectId(event) {
event.preventDefault();
event.stopPropagation();
const effectId = $(event.currentTarget).data("effect-id");
if (!effectId) {
return;
}
const tmpItem = this.actor.effects.get(effectId);
if (!tmpItem) {
return;
}
const callback = async () => {
return this.actor.deleteEmbeddedDocuments("ActiveEffect", [effectId]);
};
// Holing Ctrl = without confirm
if (event.ctrlKey) {
return callback();
}
game.l5r5e.HelpersL5r5e.confirmDeleteDialog(
game.i18n.format("l5r5e.global.delete_confirm", { name: tmpItem.name }),
callback
);
}
/**
* Open the core linked journal effect if exist
* @param {Event} event
* @private
*/
async _openEffectJournal(event) {
event.preventDefault();
event.stopPropagation();
const effectId = $(event.currentTarget).data("effect-id");
if (!effectId) {
return;
}
const effect = this.actor.effects.get(effectId);
if (!effect?.system?.id && !effect?.system?.uuid) {
return;
}
const journal = await game.l5r5e.HelpersL5r5e.getObjectGameOrPack({
id: effect.system.id,
uuid: effect.system.uuid,
type: "JournalEntry",
});
if (journal) {
journal.sheet.render(true);
}
}
/**
@@ -627,6 +694,12 @@ export class BaseCharacterSheetL5r5e extends BaseSheetL5r5e {
_openDicePickerForSkill(event) {
event.preventDefault();
event.stopPropagation();
// In Fvtt v13+ "Enter" trigger that mouse event, we ignore that below
if (event.clientX === 0 && event.clientY === 0) {
return;
}
const li = $(event.currentTarget);
const weapon = this._getWeaponInfos(li.data("weapon-id") || null);
const isInitiative = li.data("initiative") || false;

View File

@@ -1,7 +1,7 @@
/**
* Base Sheet for Actor and Npc
*/
export class BaseSheetL5r5e extends ActorSheet {
export class BaseSheetL5r5e extends foundry.appv1.sheets.ActorSheet {
/**
* Commons options
*/
@@ -81,8 +81,8 @@ export class BaseSheetL5r5e extends ActorSheet {
// Editors enrichment
sheetData.data.enrichedHtml = {
description: await TextEditor.enrichHTML(sheetData.data.system.description, { async: true }),
notes: await TextEditor.enrichHTML(sheetData.data.system.notes, { async: true }),
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(sheetData.data.system.description, { async: true }),
notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(sheetData.data.system.notes, { async: true }),
};
// Shortcut for some tests

View File

@@ -101,19 +101,19 @@ export class TwentyQuestionsDialog extends FormApplication {
*/
_createDragDropHandlers() {
return [
new DragDrop({
new foundry.applications.ux.DragDrop.implementation({
dragSelector: ".item",
dropSelector: ".items",
permissions: { dragstart: this.isEditable, drop: this.isEditable },
callbacks: { dragstart: this._onDragStart.bind(this), drop: this._onDropItem.bind(this, "item") },
}),
new DragDrop({
new foundry.applications.ux.DragDrop.implementation({
dragSelector: ".technique",
dropSelector: ".techniques",
permissions: { dragstart: this.isEditable, drop: this.isEditable },
callbacks: { dragstart: this._onDragStart.bind(this), drop: this._onDropItem.bind(this, "technique") },
}),
new DragDrop({
new foundry.applications.ux.DragDrop.implementation({
dragSelector: ".peculiarity",
dropSelector: ".peculiarities",
permissions: { dragstart: this.isEditable, drop: this.isEditable },
@@ -122,7 +122,7 @@ export class TwentyQuestionsDialog extends FormApplication {
drop: this._onDropItem.bind(this, "peculiarity"),
},
}),
new DragDrop({
new foundry.applications.ux.DragDrop.implementation({
dragSelector: ".bond",
dropSelector: ".bonds",
permissions: { dragstart: this.isEditable, drop: this.isEditable },
@@ -288,14 +288,12 @@ export class TwentyQuestionsDialog extends FormApplication {
// School Ability
if (stepKey === "step3.school_ability") {
if (item.system.technique_type !== "school_ability") {
console.warn(
`L5R5E | 20Q | This technique is not a school ability : ${item.system.technique_type}`
);
console.warn(`L5R5E | 20Q | This technique is not a school ability : ${item.system.technique_type}`);
return;
} else if (!this.object.data.step3.allowed_techniques?.[item.system.technique_type]) {
// Informative message : Tech not allowed
ui.notifications.info("l5r5e.techniques.not_allowed", {localize: true});
}
} else if (!this.object.data.step3.allowed_techniques?.[item.system.technique_type]) {
// Informative message : Tech not allowed
ui.notifications.info("l5r5e.techniques.not_allowed", {localize: true});
}
break;

View File

@@ -62,7 +62,7 @@ export class CombatL5r5e extends Combat {
// If the character was unprepared (such as when surprised), their base initiative value is their vigilance attribute.
// Minion NPCs can generate initiative value without a check, using their focus or vigilance attribute
let initiative =
isPrepared === "true" ? actorSystem.focus : actorSystem.is_compromised ? 1 : actorSystem.vigilance;
isPrepared === "true" ? actorSystem.focus : actorSystem.is_afflicted_or_compromised ? 1 : actorSystem.vigilance;
// Roll only for PC and Adversary
if (isPc || combatant.actor.isAdversary) {

View File

@@ -14,6 +14,173 @@ export const L5R5E = {
skillCostMultiplier: 2,
techniqueCost: 3,
},
// For rings wound to be aligned, add them first
conditions: [{
id: "lightly_wounded_fire",
name: "l5r5e.conditions.lightly_wounded_fire",
img: "systems/l5r5e/assets/icons/conditions/lightly_wounded_fire.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "lightly_wounded_water",
name: "l5r5e.conditions.lightly_wounded_water",
img: "systems/l5r5e/assets/icons/conditions/lightly_wounded_water.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "lightly_wounded_air",
name: "l5r5e.conditions.lightly_wounded_air",
img: "systems/l5r5e/assets/icons/conditions/lightly_wounded_air.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "lightly_wounded_earth",
name: "l5r5e.conditions.lightly_wounded_earth",
img: "systems/l5r5e/assets/icons/conditions/lightly_wounded_earth.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "lightly_wounded_void",
name: "l5r5e.conditions.lightly_wounded_void",
img: "systems/l5r5e/assets/icons/conditions/lightly_wounded_void.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "severely_wounded_fire",
name: "l5r5e.conditions.severely_wounded_fire",
img: "systems/l5r5e/assets/icons/conditions/heavily_wounded_fire.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "severely_wounded_water",
name: "l5r5e.conditions.severely_wounded_water",
img: "systems/l5r5e/assets/icons/conditions/heavily_wounded_water.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "severely_wounded_air",
name: "l5r5e.conditions.severely_wounded_air",
img: "systems/l5r5e/assets/icons/conditions/heavily_wounded_air.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "severely_wounded_earth",
name: "l5r5e.conditions.severely_wounded_earth",
img: "systems/l5r5e/assets/icons/conditions/heavily_wounded_earth.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "severely_wounded_void",
name: "l5r5e.conditions.severely_wounded_void",
img: "systems/l5r5e/assets/icons/conditions/heavily_wounded_void.webp",
system: { id: "L5RCoreCon000016" }
},{
id: "afflicted",
name: "l5r5e.conditions.afflicted",
img: "systems/l5r5e/assets/icons/conditions/afflicted.webp",
system: { id: "L5RCoreCon000001" }
},{
id: "bleeding",
name: "l5r5e.conditions.bleeding",
img: "systems/l5r5e/assets/icons/conditions/bleeding.webp",
system: { id: "L5RCoreCon000002" }
},{
id: "burning",
name: "l5r5e.conditions.burning",
img: "systems/l5r5e/assets/icons/conditions/burning.webp",
system: { id: "L5RCoreCon000003" }
},{
id: "centered",
name: "l5r5e.conditions.centered",
img: "systems/l5r5e/assets/icons/conditions/centered.webp",
system: { id: "L5RCoreCon000022" }
},{
id: "compromised",
name: "l5r5e.conditions.compromised",
img: "systems/l5r5e/assets/icons/conditions/compromised.webp",
system: { id: "L5RCoreCon000004" }
},{
id: "dazed",
name: "l5r5e.conditions.dazed",
img: "systems/l5r5e/assets/icons/conditions/dazed.webp",
system: { id: "L5RCoreCon000005" }
},{
id: "disoriented",
name: "l5r5e.conditions.disoriented",
img: "systems/l5r5e/assets/icons/conditions/disoriented.webp",
system: { id: "L5RCoreCon000006" }
},{
id: "dying",
name: "l5r5e.conditions.dying",
img: "systems/l5r5e/assets/icons/conditions/dying_1.webp",
system: { id: "L5RCoreCon000007" }
},{
id: "emboldened",
name: "l5r5e.conditions.emboldened",
img: "systems/l5r5e/assets/icons/conditions/emboldened.webp",
system: { id: "L5RCoreCon000023" }
},{
id: "enraged",
name: "l5r5e.conditions.enraged",
img: "systems/l5r5e/assets/icons/conditions/enraged.webp",
system: { id: "L5RCoreCon000008" }
},{
id: "exhausted",
name: "l5r5e.conditions.exhausted",
img: "systems/l5r5e/assets/icons/conditions/exhausted.webp",
system: { id: "L5RCoreCon000009" }
},{
id: "illness_coughing_illness",
name: "l5r5e.conditions.illness_coughing_illness",
img: "systems/l5r5e/assets/icons/conditions/illness_coughing_illness.webp",
system: { id: "L5RCoreCon000019" }
},{
id: "illness_fire_rash",
name: "l5r5e.conditions.illness_fire_rash",
img: "systems/l5r5e/assets/icons/conditions/illness_fire_rash.webp",
system: { id: "L5RCoreCon000021" }
},{
id: "illness_gut_sickness",
name: "l5r5e.conditions.illness_gut_sickness",
img: "systems/l5r5e/assets/icons/conditions/illness_gut_sickness.webp",
system: { id: "L5RCoreCon000018" }
},{
id: "illness_oozing_sore_disease",
name: "l5r5e.conditions.illness_oozing_sore_disease",
img: "systems/l5r5e/assets/icons/conditions/illness_oozing_sore_disease.webp",
system: { id: "L5RCoreCon000017" }
},{
id: "illness_unsteady_illness",
name: "l5r5e.conditions.illness_unsteady_illness",
img: "systems/l5r5e/assets/icons/conditions/illness_unsteady_illness.webp",
system: { id: "L5RCoreCon000020" }
},{
id: "immobilized",
name: "l5r5e.conditions.immobilized",
img: "systems/l5r5e/assets/icons/conditions/immobilized.webp",
system: { id: "L5RCoreCon000010" }
},{
id: "incapacitated",
name: "l5r5e.conditions.incapacitated",
img: "systems/l5r5e/assets/icons/conditions/incapacitated.webp",
system: { id: "L5RCoreCon000011" }
},{
id: "intoxicated",
name: "l5r5e.conditions.intoxicated",
img: "systems/l5r5e/assets/icons/conditions/intoxicated.webp",
system: { id: "L5RCoreCon000012" }
},{
id: "possessed",
name: "l5r5e.conditions.possessed",
img: "systems/l5r5e/assets/icons/conditions/possesed.webp",
system: { id: "L5RCoreCon000024" }
},{
id: "prone",
name: "l5r5e.conditions.prone",
img: "systems/l5r5e/assets/icons/conditions/prone.webp",
system: { id: "L5RCoreCon000013" }
},{
id: "silenced",
name: "l5r5e.conditions.silenced",
img: "systems/l5r5e/assets/icons/conditions/silenced.webp",
system: { id: "L5RCoreCon000014" }
},{
id: "unconscious",
name: "l5r5e.conditions.unconscious",
img: "systems/l5r5e/assets/icons/conditions/unconscious.webp",
system: { id: "L5RCoreCon000015" }
}],
regex: {
techniqueDifficulty: /^@([TS]):([^|]+?)(?:\|(min|max)(?:\(([^)]+?)\))?)?$/,
},
@@ -65,6 +232,11 @@ export const L5R5E = {
label: "l5r5e.source_reference.writ_of_the_wild",
type: "l5r5e.multiselect.sources_categories.rules"
},
"children_of_the_five_winds": {
value: "children_of_the_five_winds",
label: "l5r5e.source_reference.children_of_the_five_winds",
type: "l5r5e.multiselect.sources_categories.rules"
},
"gm_kit": {
value: "gm_kit",
label: "l5r5e.source_reference.gm_kit",
@@ -266,6 +438,7 @@ L5R5E.families.set("bat", ["Komori"]);
L5R5E.families.set("boar", ["Heichi"]);
L5R5E.families.set("dragonfly", ["Tonbo"]);
L5R5E.families.set("firefly", ["Hotaru"]);
L5R5E.families.set("fox", ["Kitsune"]);
L5R5E.families.set("hare", ["Ujina", "Usagi"]);
L5R5E.families.set("monkey", ["Toku", "Fuzake"]);
L5R5E.families.set("oriole", ["Tsi"]);
@@ -299,6 +472,7 @@ L5R5E.demeanors = [
{ id: "capricious", mod: { air: 2, earth: -2 } },
{ id: "cautious", mod: { air: 2, earth: -2 } },
{ id: "clever", mod: { air: 2, earth: -2 } },
{ id: "compassionate", mod: { fire: 2, air: -1, water: -1}},
{ id: "confused", mod: { fire: 1, void: 1, air: -2 } },
{ id: "courageous", mod: { air: 2, earth: -2 } },
{ id: "cowardly", mod: { earth: 2, fire: -2 } },

View File

@@ -193,7 +193,7 @@ export class RollnKeepDialog extends FormApplication {
*/
_createDragDropHandlers() {
return [
new DragDrop({
new foundry.applications.ux.DragDrop.implementation({
dragSelector: ".dice.draggable",
dropSelector: ".dropbox",
permissions: { dragstart: this.isEditable, drop: this.isEditable },
@@ -259,13 +259,13 @@ export class RollnKeepDialog extends FormApplication {
// GM Only, need to be before the editable check
if (game.user.isGM && this.object.currentStep > 0) {
// Add Context menu to rollback choices
new ContextMenu(html, ".l5r5e.profil", [
new foundry.applications.ux.ContextMenu.implementation(html[0], ".l5r5e.profil", [
{
name: game.i18n.localize("l5r5e.dice.roll_n_keep.undo"),
icon: '<i class="fas fa-undo"></i>',
callback: () => this._undoLastStepChoices(),
},
]);
], { jQuery: false });
}
// *** Everything below here is only needed if the sheet is editable ***
@@ -792,7 +792,7 @@ export class RollnKeepDialog extends FormApplication {
const messageId = card.parents(".chat-message").data("message-id");
// Already open ? close it
const app = Object.values(ui.windows).find((e) => e.id === `l5r5e-roll-n-keep-dialog-${messageId}`);
const app = game.l5r5e.HelpersL5r5e.getApplication(`l5r5e-roll-n-keep-dialog-${messageId}`);
if (app) {
app.close();
} else {

View File

@@ -257,7 +257,7 @@ export class RollL5r5e extends Roll {
displaySummary: contexte?.from !== "render",
};
return renderTemplate(CONFIG.l5r5e.paths.templates + this.constructor.TOOLTIP_TEMPLATE, { chatData });
return foundry.applications.handlebars.renderTemplate(CONFIG.l5r5e.paths.templates + this.constructor.TOOLTIP_TEMPLATE, { chatData });
}
/**
@@ -319,7 +319,7 @@ export class RollL5r5e extends Roll {
};
// Render the roll display template
return renderTemplate(chatOptions.template, chatData);
return foundry.applications.handlebars.renderTemplate(chatOptions.template, chatData);
}
/**

View File

@@ -1,102 +1,271 @@
/**
* L5R GM Monitor Windows
* @extends {FormApplication}
*/
export class GmMonitor extends FormApplication {
/**
* Settings
*/
object = {
view: "characters", // characters|armies
actors: [],
import { L5r5ePopupManager } from '../misc/l5r5e-popup-manager.js';
const HandlebarsApplicationMixin = foundry.applications.api.HandlebarsApplicationMixin;
const ApplicationV2 = foundry.applications.api.ApplicationV2;
export class GmMonitor extends HandlebarsApplicationMixin(ApplicationV2) {
/** @override ApplicationV2 */
static get DEFAULT_OPTIONS() {
return {
id: "l5r5e-gm-monitor",
tag: "div",
window: {
contentClasses: ["l5r5e", "gm-monitor"],
title: "l5r5e.gm.monitor.title",
minimizable: true,
controls: [
{
label: game.i18n.localize("l5r5e.gm.monitor.add_selected_tokens"),
icon: "fas fa-users",
action: "add_selected_tokens",
},
{
label: game.i18n.localize("l5r5e.gm.monitor.switch_view"),
icon: "fas fa-repeat",
action: "change_view_tab"
}
],
resizable: true,
editable: true,
},
position: {
width: "600",
height: "150"
},
actions: {
add_selected_tokens: GmMonitor.#addSelectedTokens,
change_view_tab: GmMonitor.#rotateViewTab,
remove_actor: GmMonitor.#removeActor,
toggle_prepared: GmMonitor.#togglePrepared,
change_stance: {
buttons: [0, 2],
handler: GmMonitor.#changeStance,
},
modify_fatigue: {
buttons: [0, 1, 2],
handler: GmMonitor.#modifyFatigue,
},
modify_strife: {
buttons: [0, 1, 2],
handler: GmMonitor.#modifyStrife,
},
modify_voidPoint: {
buttons: [0, 1, 2],
handler: GmMonitor.#modifyVoidPoint,
},
modify_casualties: {
buttons: [0, 1, 2],
handler: GmMonitor.#modifyCasualties,
},
modify_panic: {
buttons: [0, 1, 2],
handler: GmMonitor.#modifyPanic,
}
},
dragDrop: [{ dragSelector: null, dropSelector: null }],
}
};
/** @override HandlebarsApplicationMixin */
static PARTS = {
hidden_tabs: {
template: "templates/generic/tab-navigation.hbs"
},
character: {
id: "character",
template: "systems/l5r5e/templates/" + "gm/monitor/character-view.html"
},
army: {
if: "army",
template: "systems/l5r5e/templates/" + "gm/monitor/army-view.html"
}
};
/**
* Assign the default options
* @override
* @type {Record<string, string>}
* @override ApplicationV2
*/
static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, {
id: "l5r5e-gm-monitor",
classes: ["l5r5e", "gm-monitor"],
template: CONFIG.l5r5e.paths.templates + "gm/gm-monitor.html",
title: game.i18n.localize("l5r5e.gm.monitor.title"),
width: 800,
height: 300,
resizable: true,
closeOnSubmit: false,
submitOnClose: false,
submitOnChange: false,
dragDrop: [{ dragSelector: null, dropSelector: null }],
});
tabGroups = {
view: "character"
};
/**
* Data that is pushed to html
*/
context = {
actors: []
}
/**
* Add the Switch View button on top of sheet
* @override
* hooks we act upon, saved since we need to remove them when this window is not open
*/
_getHeaderButtons() {
let buttons = super._getHeaderButtons();
#hooks = [];
// Switch view Characters/Armies
buttons.unshift({
label: game.i18n.localize("l5r5e.gm.monitor.switch_view"),
class: "switch-view",
icon: "fas fa-repeat",
onclick: () =>
game.l5r5e.HelpersL5r5e.debounce(
"SwitchView-" + this.object.id,
() => {
this.object.view = this.object.view === "armies" ? "characters" : "armies";
this.render(false);
},
500,
true
)(),
});
/**
* The DragDrop instance which handles interactivity resulting from DragTransfer events.
* @type {DragDrop}
*/
#dragDrop;
// Add selected tokens
buttons.unshift({
label: game.i18n.localize("l5r5e.gm.monitor.add_selected_tokens"),
class: "add-selected-token",
icon: "fas fa-users",
onclick: () =>
game.l5r5e.HelpersL5r5e.debounce(
"AddSelectedToken-" + this.object.id,
() => this.#addSelectedTokens(),
500,
true
)(),
});
constructor() {
super();
this.#initialize();
}
return buttons;
/** @override ApplicationV2 */
async _preClose(options) {
await super._preClose(options);
options.animate = false;
for (const hook of this.#hooks) {
Hooks.off(hook.hook, hook.fn);
}
}
/** @override ApplicationV2 */
async _onRender(context, options) {
await super._onRender(context, options);
// Todo: Move this to common l5r5e application v2
game.l5r5e.HelpersL5r5e.commonListeners($(this.element));
this.#dragDrop = new foundry.applications.ux.DragDrop.implementation({
dragSelector: null,
dropSelector: null,
callbacks: {
drop: this.#onDrop.bind(this)
}
}).bind(this.element);
// Tooltips
new L5r5ePopupManager(
$(this.element).find(".actor-infos-control"),
async (event) => {
const type = $(event.currentTarget).data("type");
if (!type) return;
if (type === "text") {
return $(event.currentTarget).data("text");
}
const uuid = $(event.currentTarget).data("actor-uuid");
if (!uuid) return;
const actor = this.context.actors.find(actor => actor.uuid === uuid);
if (!actor) return;
switch (type) {
case "armors":
return this.#getTooltipArmors(actor);
case "weapons":
return this.#getTooltipWeapons(actor);
case "global":
return actor.isArmy
? this.#getTooltipArmiesGlobal(actor)
: this.#getTooltipGlobal(actor);
}
}
);
}
/** @override ApplicationV2 */
async _prepareContext() {
return {
tabs: this.getTabs(),
}
}
/**
* Constructor
* @param {ApplicationOptions} options
* @param {string} partId The part being rendered
* @param {ApplicationRenderContext} context Shared context provided by _prepareContext
* @returns {Promise<ApplicationRenderContext>} Context data for a specific part
*
* @override HandlebarsApplicationMixin
*/
constructor(options = {}) {
super(options);
this._initialize();
async _preparePartContext(partId, context) {
switch (partId) {
case "character":
context.characters = this.context.actors.filter((actor) => !actor.isArmy);
break;
case "army":
context.armies = this.context.actors.filter((actor) => actor.isArmy);
break;
}
return context;
}
/**
* Refresh data (used from socket)
* Prepare an array of form header tabs.
* @returns {Record<string, Partial<ApplicationTab>>}
*/
async refresh() {
if (!game.user.isGM) {
getTabs() {
const tabs = {
character: { id: "character", group: "view", icon: "fa-solid fa-tag", label: "REGION.SECTIONS.identity" },
army: { id: "army", group: "view", icon: "fa-solid fa-shapes", label: "REGION.SECTIONS.shapes" },
}
for (const v of Object.values(tabs)) {
v.active = this.tabGroups[v.group] === v.id;
v.cssClass = v.active ? "active" : "";
}
return tabs;
}
/**
* Handle dropped data on the Actor sheet
* @param {DragEvent} event The originating DragEvent
*/
async #onDrop(event) {
if (!this.options.window.editable) {
return;
}
this._initialize();
this.render(false);
const json = event.dataTransfer.getData("text/plain");
if (!json) {
return;
}
const data = JSON.parse(json);
if (!data || data.type !== "Actor" || !data.uuid || !!this.context.actors.find((a) => a.uuid === data.uuid)) {
return;
}
const actor = fromUuidSync(data.uuid);
if (!actor) {
return;
}
// Switch view to current character type
if (actor.isArmy) {
this.changeTab("army", "view");
}
else {
this.changeTab("character", "view");
}
this.context.actors.push(actor);
return this.saveActorsIds();
}
/** required for updating via our socket implementation game.l5r5e.HelpersL5r5e.refreshLocalAndSocket("l5r5e-gm-monitor")*/
async refresh() {
this.render();
}
/**
* Initialize the values
* Save the actors ids in setting
* @private
*/
_initialize() {
async saveActorsIds() {
return game.settings.set(
CONFIG.l5r5e.namespace,
"gm-monitor-actors",
this.context.actors.map((a) => a.uuid)
);
}
#initialize() {
let actors;
const uuidList = game.settings.get(CONFIG.l5r5e.namespace, "gm-monitor-actors");
if (uuidList.length > 0) {
@@ -109,12 +278,12 @@ export class GmMonitor extends FormApplication {
}
return doc;
})
.filter(a => !!a); // skip null
.filter(actor => !!actor); // skip null
} else {
// If empty add pc with owner
actors = game.actors.filter((actor) => actor.type === "character" && actor.hasPlayerOwnerActive);
this._saveActorsIds();
this.saveActorsIds();
}
// Sort by name asc
@@ -122,287 +291,328 @@ export class GmMonitor extends FormApplication {
return a.name.localeCompare(b.name);
});
this.object.actors = actors;
this.context.actors = actors;
this.#hooks.push({
hook: "updateActor",
fn: Hooks.on("updateActor", (actor) => this.#onUpdateActor(actor))
});
this.#hooks.push({
hook: "updateSetting",
fn: Hooks.on("updateSetting", (actor) => this.#onUpdateSetting(actor))
});
}
/**
* Switch between the available views in sequence
*/
static #rotateViewTab() {
const tabArray = Object.values(this.getTabs());
const activeTabIndex = tabArray.findIndex((tab) => tab.active);
const nextTabIndex = activeTabIndex + 1 < tabArray.length ? activeTabIndex + 1 : 0;
this.changeTab(tabArray[nextTabIndex].id, tabArray[nextTabIndex].group)
}
/**
* Add selected token on monitor if not already present
*/
#addSelectedTokens() {
static #addSelectedTokens() {
if (canvas.tokens.controlled.length > 0) {
const actors2Add = canvas.tokens.controlled
.map(t => t.actor)
.filter(t => !!t && !this.object.actors.find((a) => a.uuid === t.uuid));
.filter(t => !!t && !this.context.actors.find((a) => a.uuid === t.uuid));
if (actors2Add.length < 1) {
return;
}
this.object.actors = [
...this.object.actors,
this.context.actors = [
...this.context.actors,
...actors2Add
];
this._saveActorsIds().then(() => this.render(false));
this.saveActorsIds();
}
}
/**
* Prevent non GM to render this windows
* @override
* Update baseValue based on the type of event
* @param {Int} baseValue The Base value we can to modify
* @param {Int} whichButton The type of click made
*/
render(force = false, options = {}) {
if (!game.user.isGM) {
return false;
static #newValue(baseValue, whichButton) {
switch (whichButton) {
case 0: //Left click
return Math.max(0, baseValue + 1);
case 1: //Middle click
return 0;
case 2: //Right click
return Math.max(0, baseValue - 1);
}
return super.render(force, options);
}
/**
* Construct and return the data object used to render the HTML template for this form application.
* @param options
* @return {Object}
* @override
* @param {HTMLElement} target Html target to get actor information from
*/
async getData(options = null) {
return {
...(await super.getData(options)),
data: {
...this.object,
actors: this.object.actors.filter((a) => (this.object.view === "armies" ? a.isArmy : !a.isArmy)),
},
};
static async #getActorValidated(target) {
const uuid = $(target).data("actor-uuid");
if (!uuid) {
console.warn("L5R5E | GMM | actor uuid not set", type);
return {isValid: false, actor: null};
}
const actor = await fromUuid(uuid);
if (!actor) {
console.warn("L5R5E | GMM | Actor not found", type);
return {isValid: false, actor: null};
}
return {isValid:true, actor: actor};
}
/**
* Listen to html elements
* @param {jQuery} html HTML content of the sheet.
* @override
* @param {PointerEvent} event The originating click event
* @param {HTMLElement} target The capturing HTML element which defined a [data-action]
*/
activateListeners(html) {
super.activateListeners(html);
if (!game.user.isGM) {
static async #modifyCasualties(event, target) {
const {isValid, actor} = await GmMonitor.#getActorValidated(target);
if (!isValid) {
return;
}
// Commons
game.l5r5e.HelpersL5r5e.commonListeners(html);
const casualties_strength = actor.system.battle_readiness.casualties_strength.value;
return actor.update({
system: {
battle_readiness: {
casualties_strength: {
value: GmMonitor.#newValue(casualties_strength, event.button),
}
},
},
});
}
// Delete
html.find(`.actor-remove-control`).on("click", this._removeActor.bind(this));
/**
* @param {PointerEvent} event The originating click event
* @param {HTMLElement} target The capturing HTML element which defined a [data-action]
*/
static async #modifyPanic(event, target) {
const {isValid, actor} = await GmMonitor.#getActorValidated(target);
if (!isValid) {
return;
}
// Add/Subtract
html.find(`.actor-modify-control`).on("mousedown", this._modifyActor.bind(this));
const panic_discipline = actor.system.battle_readiness.panic_discipline.value;
return actor.update({
system: {
battle_readiness: {
panic_discipline: {
value: GmMonitor.#newValue(panic_discipline, event.button),
}
},
},
});
}
// Tooltips
game.l5r5e.HelpersL5r5e.popupManager(html.find(".actor-infos-control"), async (event) => {
const type = $(event.currentTarget).data("type");
if (!type) {
return;
}
if (type === "text") {
return $(event.currentTarget).data("text");
}
/**
* @param {PointerEvent} event The originating click event
* @param {HTMLElement} target The capturing HTML element which defined a [data-action]
*/
static async #togglePrepared(event, target) {
const {isValid, actor} = await GmMonitor.#getActorValidated(target);
if (!isValid) {
return;
}
const uuid = $(event.currentTarget).data("actor-uuid");
if (!uuid) {
return;
}
const actor = this.object.actors.find((a) => a.uuid === uuid);
if (!actor) {
return;
}
switch (type) {
case "armors":
return this._getTooltipArmors(actor);
case "weapons":
return this._getTooltipWeapons(actor);
case "global":
return actor.isArmy ? this._getTooltipArmiesGlobal(actor) : this._getTooltipGlobal(actor);
return actor.update({
system: {
prepared: !actor.system.prepared
}
});
}
/**
* Handle dropped data on the Actor sheet
* @param {DragEvent} event
* @param {PointerEvent} event The originating click event
* @param {HTMLElement} target The capturing HTML element which defined a [data-action]
*/
async _onDrop(event) {
// *** Everything below here is only needed if the sheet is editable ***
if (!this.isEditable) {
static async #changeStance(event, target) {
const {isValid, actor} = await GmMonitor.#getActorValidated(target);
if (!isValid) {
return;
}
const json = event.dataTransfer.getData("text/plain");
if (!json) {
return;
}
const data = JSON.parse(json);
if (!data || data.type !== "Actor" || !data.uuid || !!this.object.actors.find((a) => a.uuid === data.uuid)) {
return;
}
const actor = fromUuidSync(data.uuid);
if (!actor) {
return;
}
// Switch view to current character type
this.object.view = actor.isArmy ? "armies" : "characters";
this.object.actors.push(actor);
return this._saveActorsIds();
}
/**
* Save the actors ids in settings
* @return {Promise<*>}
* @private
*/
async _saveActorsIds() {
return game.settings.set(
CONFIG.l5r5e.namespace,
"gm-monitor-actors",
this.object.actors.map((a) => a.uuid)
);
}
/**
* Remove the link to a property for the current item
* @param {Event} event
* @return {Promise<void>}
* @private
*/
async _removeActor(event) {
event.preventDefault();
event.stopPropagation();
const uuid = $(event.currentTarget).data("actor-uuid");
if (!uuid) {
return;
}
this.object.actors = this.object.actors.filter((a) => a.uuid !== uuid);
return this._saveActorsIds();
}
/**
* Add or subtract fatigue/strife/void/casualties/panic
* @param event
* @return {Promise<void>}
* @private
*/
async _modifyActor(event) {
event.preventDefault();
event.stopPropagation();
const type = $(event.currentTarget).data("type");
if (!type) {
console.warn("L5R5E | GMM | type not set", type);
return;
}
const uuid = $(event.currentTarget).data("actor-uuid");
if (!uuid) {
console.warn("L5R5E | GMM | actor uuid not set", type);
return;
}
const actor = fromUuidSync(uuid);
if (!actor) {
console.warn("L5R5E | GMM | Actor not found", type);
return;
}
// Mouse bt : middle = 0, left +1, right -1
const add = event.which === 2 ? -999 : event.which === 1 ? 1 : -1;
// Stance
let stanceIdx = CONFIG.l5r5e.stances.findIndex((s) => s === actor.system.stance) + (event.which === 1 ? 1 : -1);
let stanceIdx = CONFIG.l5r5e.stances.findIndex((stance) => stance === actor.system.stance) + (event.button === 0 ? 1 : -1);
if (stanceIdx < 0) {
stanceIdx = CONFIG.l5r5e.stances.length - 1;
} else if (stanceIdx > CONFIG.l5r5e.stances.length - 1) {
stanceIdx = 0;
}
const updateData = {};
switch (type) {
// *** Characters ***
case "fatigue":
updateData["system.fatigue.value"] = Math.max(0, actor.system.fatigue.value + add);
break;
case "strife":
updateData["system.strife.value"] = Math.max(0, actor.system.strife.value + add);
break;
case "void_points":
updateData["system.void_points.value"] = Math.min(
actor.system.void_points.max,
Math.max(0, actor.system.void_points.value + add)
);
break;
case "stance":
updateData["system.stance"] = CONFIG.l5r5e.stances[stanceIdx];
break;
case "prepared":
updateData["system.prepared"] = !actor.system.prepared;
break;
// *** Armies ***
case "casualties":
updateData["system.battle_readiness.casualties_strength.value"] = Math.max(
0,
actor.system.battle_readiness.casualties_strength.value + add
);
break;
case "panic":
updateData["system.battle_readiness.panic_discipline.value"] = Math.max(
0,
actor.system.battle_readiness.panic_discipline.value + add
);
break;
default:
console.warn("L5R5E | GMM | Unsupported type", type);
break;
}
if (!foundry.utils.isEmpty(updateData)) {
await actor.update(updateData);
this.render(false);
}
return actor.update({
system: {
stance: CONFIG.l5r5e.stances[stanceIdx]
},
});
}
/**
* @param {PointerEvent} event The originating click event
* @param {HTMLElement} target The capturing HTML element which defined a [data-action]
*/
static async #modifyFatigue(event, target) {
const {isValid, actor} = await GmMonitor.#getActorValidated(target);
if (!isValid) {
return;
}
const fatigue = actor.system.fatigue.value;
return actor.update({
system: {
fatigue: {
value: GmMonitor.#newValue(fatigue, event.button)
}
}
});
}
/**
* @param {PointerEvent} event The originating click event
* @param {HTMLElement} target The capturing HTML element which defined a [data-action]
*/
static async #modifyStrife(event, target) {
const {isValid, actor} = await GmMonitor.#getActorValidated(target);
if (!isValid) {
return;
}
const strife = actor.system.strife.value;
return actor.update({
system: {
strife: {
value: GmMonitor.#newValue(strife, event.button),
},
},
});
}
/**
* @param {PointerEvent} event The originating click event
* @param {HTMLElement} target The capturing HTML element which defined a [data-action]
*/
static async #modifyVoidPoint(event, target) {
const {isValid, actor} = await GmMonitor.#getActorValidated(target);
if (!isValid) {
return;
}
const void_points = actor.system.void_points.value;
const void_points_max = actor.system.void_points.max;
return actor.update({
system: {
void_points: {
value: Math.min(
void_points_max,
GmMonitor.#newValue(void_points, event.button)
),
},
},
});
}
/**
* @param {PointerEvent} event The originating click event
* @param {HTMLElement} target The capturing HTML element which defined a [data-action]
*/
static async #removeActor(event, target) {
const uuid = $(target).data("actor-uuid");
if (!uuid) {
return;
}
this.context.actors = this.context.actors.filter((actor) => actor.uuid !== uuid);
return this.saveActorsIds();
}
/**
* Get armors information for this actor
* @param {ActorL5r5e} actor
* @return {string}
* @private
*/
async #getTooltipArmors(actor) {
// Equipped Armors
const armors = actor.items
.filter((item) => item.type === "armor" && item.system.equipped)
.map(
(item) =>
item.name +
` (<i class="fas fa-tint">${item.system.armor.physical}</i>` +
` / <i class="fas fa-bolt">${item.system.armor.supernatural}</i>)`
);
// *** Template ***
return foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/monitor/tooltips/armors.html`, {
armors,
});
}
/**
* Get weapons information for this actor
* @param {ActorL5r5e} actor
* @return {string}
* @private
*/
async #getTooltipWeapons(actor) {
const display = (weapon) => {
return (
weapon.name +
` (<i class="fas fa-arrows-alt-h"> ${weapon.system.range}</i>` +
` / <i class="fas fa-tint"> ${weapon.system.damage}</i>` +
` / <i class="fas fa-skull"> ${weapon.system.deadliness}</i>)`
);
};
// Readied Weapons
const equippedWeapons = actor.items.filter((item) => item.type === "weapon" && item.system.equipped);
const readied = equippedWeapons
.filter((weapon) => !!weapon.system.readied)
.map((weapon) => display(weapon));
// Equipped Weapons
const sheathed = equippedWeapons
.filter((weapon) => !weapon.system.readied)
.map((weapon) => display(weapon));
// *** Template ***
return foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/monitor/tooltips/weapons.html`, {
readied,
sheathed,
});
}
/**
* Get tooltips information for this character
* @param {ActorL5r5e} actor
* @return {string}
* @private
*/
async _getTooltipGlobal(actor) {
async #getTooltipGlobal(actor) {
const actorData = (await actor.sheet?.getData()?.data) || actor;
// Peculiarities
const pec = actor.items.filter((e) => e.type === "peculiarity");
const adv = pec
.filter((e) => ["distinction", "passion"].includes(e.system.peculiarity_type))
.map((e) => e.name)
const Peculiarities = actor.items.filter((e) => e.type === "peculiarity");
const advantages = Peculiarities
.filter((item) => ["distinction", "passion"].includes(item.system.peculiarity_type))
.map((item) => item.name)
.join(", ");
const dis = pec
.filter((e) => ["adversity", "anxiety"].includes(e.system.peculiarity_type))
.map((e) => e.name)
const disadvantages = Peculiarities
.filter((item) => ["adversity", "anxiety"].includes(item.system.peculiarity_type))
.map((item) => item.name)
.join(", ");
// *** Template ***
return renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/monitor-tooltips/global.html`, {
return foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/monitor/tooltips/global.html`, {
actorData: actorData,
advantages: adv,
disadvantages: dis,
advantages: advantages,
disadvantages: disadvantages,
suffix: actorData.system.template === "pow" ? "_pow" : "",
actor_type: actor.type,
});
@@ -414,68 +624,39 @@ export class GmMonitor extends FormApplication {
* @return {string}
* @private
*/
async _getTooltipArmiesGlobal(actor) {
async #getTooltipArmiesGlobal(actor) {
const actorData = (await actor.sheet?.getData()?.data) || actor;
// *** Template ***
return renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/monitor-tooltips/global-armies.html`, {
return foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/monitor/tooltips/global-armies.html`, {
actorData: actorData,
});
}
/**
* Get weapons information for this actor
* @param {ActorL5r5e} actor
* @return {string}
* @private
* @param {ActorL5r5e} actor The actor that is being updated
*/
async _getTooltipWeapons(actor) {
const display = (e) => {
return (
e.name +
` (<i class="fas fa-arrows-alt-h"> ${e.system.range}</i>` +
` / <i class="fas fa-tint"> ${e.system.damage}</i>` +
` / <i class="fas fa-skull"> ${e.system.deadliness}</i>)`
);
};
// Readied Weapons
const readied = actor.items
.filter((e) => e.type === "weapon" && e.system.equipped && !!e.system.readied)
.map((e) => display(e));
// Equipped Weapons
const sheathed = actor.items
.filter((e) => e.type === "weapon" && e.system.equipped && !e.system.readied)
.map((e) => display(e));
// *** Template ***
return renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/monitor-tooltips/weapons.html`, {
readied,
sheathed,
});
#onUpdateActor(actor) {
if (this.context.actors.includes(actor)) {
this.render(false);
}
}
/**
* Get armors information for this actor
* @param {ActorL5r5e} actor
* @return {string}
* @private
* @param {Setting} setting The setting that is being updated
*/
async _getTooltipArmors(actor) {
// Equipped Armors
const armors = actor.items
.filter((e) => e.type === "armor" && e.system.equipped)
.map(
(e) =>
e.name +
` (<i class="fas fa-tint">${e.system.armor.physical}</i>` +
` / <i class="fas fa-bolt">${e.system.armor.supernatural}</i>)`
);
// *** Template ***
return renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/monitor-tooltips/armors.html`, {
armors,
});
#onUpdateSetting(setting) {
switch (setting.key) {
case "l5r5e.gm-monitor-actors":
this.render(false);
break;
case "l5r5e.initiative-prepared-character":
case "l5r5e.initiative-prepared-adversary":
case "l5r5e.initiative-prepared-minion":
this.render(false);
break;
default:
return;
}
}
}

View File

@@ -1,41 +1,100 @@
/**
* L5R GM Toolbox dialog
* @extends {FormApplication}
*/
export class GmToolbox extends FormApplication {
/**
* Settings
*/
object = {};
const HandlebarsApplicationMixin = foundry.applications.api.HandlebarsApplicationMixin;
const ApplicationV2 = foundry.applications.api.ApplicationV2;
export class GmToolbox extends HandlebarsApplicationMixin(ApplicationV2) {
/** @override ApplicationV2 */
static get DEFAULT_OPTIONS() { return {
id: "l5r5e-gm-toolbox",
window: {
contentClasses: ["l5r5e", "gm-toolbox", "faded-ui"],
title: "l5r5e.gm.toolbox.title",
minimizable: true,
},
position: {
width: "auto",
height: "auto"
},
actions: {
open_gm_monitor: GmToolbox.#openGmMonitor,
toggle_hide_difficulty: GmToolbox.#onToggleHideDifficulty,
// Buttons map (0: left, 1: middle, 2: right, 3: extra 1, 4: extra 2)
// Foundry v13 use middle (1) for popup and currently not bind it for custom
// See : https://github.com/foundryvtt/foundryvtt/issues/12531
change_difficulty: {
buttons: [0, 1, 2],
handler: GmToolbox.#onChangeDifficulty
},
reset_void: {
buttons: [0, 1, 2, 3, 4],
handler: GmToolbox.#onResetVoid
},
sleep: {
buttons: [0, 1, 2, 3, 4],
handler: GmToolbox.#onSleep
},
scene_end: {
buttons: [0, 1, 2, 3, 4],
handler: GmToolbox.#onSceneEnd
},
}
}};
/** @override HandlebarsApplicationMixin */
static PARTS = {
main: {
id: "gm-tool-content",
template: "systems/l5r5e/templates/" + "gm/gm-toolbox.html"
}
};
/**
* Assign the default options
* @override
* hooks we act upon, saved since we need to remove them when this window is not open
*/
static get defaultOptions() {
const x = $(window).width();
const y = $(window).height();
return foundry.utils.mergeObject(super.defaultOptions, {
id: "l5r5e-gm-toolbox",
classes: ["l5r5e", "gm-toolbox"],
template: CONFIG.l5r5e.paths.templates + "gm/gm-toolbox.html",
title: game.i18n.localize("l5r5e.gm.toolbox.title"),
left: x - 630,
top: y - 98,
closeOnSubmit: false,
submitOnClose: false,
submitOnChange: true,
minimizable: false,
#hooks = [];
constructor() {
super();
this.#hooks.push({
hook: "updateSetting",
fn: Hooks.on("updateSetting", (setting) => this.#onUpdateSetting(setting))
});
}
/** @override ApplicationV2*/
async _prepareContext() {
return {
difficulty: game.settings.get(CONFIG.l5r5e.namespace, "initiative-difficulty-value"),
difficultyHidden: game.settings.get(CONFIG.l5r5e.namespace, "initiative-difficulty-hidden"),
};
}
/**
* Constructor
* @param {ApplicationOptions} options
* The ApplicationV2 always adds the close button so just remove it when redering the frame
* @override ApplicationV2
*/
constructor(options = {}) {
super(options);
this._initialize();
async _renderFrame(options) {
const frame = await super._renderFrame(options);
$(frame).find('button[data-action="close"]').remove();
return frame;
}
/**
* The ApplicationV2 always adds the close button so just remove it when redering the frame
* @override ApplicationV2
*/
_onFirstRender(context, options) {
//const x = $(window).width();
const y = $(window).height();
options.position.top = y - 220;
options.position.left = 220; //x - 630;
}
/**
* The GM Toolbox should not be removed when toggling the main menu with the esc key etc.
* @override ApplicationV2
*/
async close(options) {
return Promise.resolve(this);
}
/**
@@ -45,210 +104,156 @@ export class GmToolbox extends FormApplication {
if (!game.user.isGM) {
return;
}
this._initialize();
this.render(false);
}
/**
* Initialize the values
* @private
*/
_initialize() {
this.object = {
difficulty: game.settings.get(CONFIG.l5r5e.namespace, "initiative-difficulty-value"),
difficultyHidden: game.settings.get(CONFIG.l5r5e.namespace, "initiative-difficulty-hidden"),
};
}
/**
* Do not close this dialog
* @override
*/
async close(options = {}) {
// TODO better implementation needed : see KeyboardManager._onEscape(event, up, modifiers)
// This windows is always open, so esc key is stuck at step 2 : Object.keys(ui.windows).length > 0
// Case 3 (GM) - release controlled objects
if (canvas?.ready && game.user.isGM && Object.keys(canvas.activeLayer.controlled).length) {
canvas.activeLayer.releaseAll();
static #openGmMonitor() {
const app = foundry.applications.instances.get("l5r5e-gm-monitor")
if (app) {
app.close();
} else {
// Case 4 - toggle the main menu
ui.menu.toggle();
new game.l5r5e.GmMonitor().render(true);
}
}
/**
* Prevent non GM to render this windows
* @override
* @param {PointerEvent} event The originating click event
*/
render(force = false, options = {}) {
if (!game.user.isGM) {
static #onChangeDifficulty(event) {
let difficulty = game.settings.get(CONFIG.l5r5e.namespace, "initiative-difficulty-value");
switch (event.button) {
case 0: // left click
difficulty = Math.min(9, difficulty + 1);
break;
case 1: // middle click
difficulty = 2;
break;
case 2: // right click
difficulty = Math.max(0, difficulty - 1);
break;
}
game.settings.set(CONFIG.l5r5e.namespace, "initiative-difficulty-value", difficulty);
}
static #onToggleHideDifficulty() {
const hiddenSetting = game.settings.get(CONFIG.l5r5e.namespace, "initiative-difficulty-hidden")
game.settings.set(CONFIG.l5r5e.namespace, "initiative-difficulty-hidden", !hiddenSetting);
}
/**
* @param {Boolean} allActors
* @param {ActorL5r5e} actor
* @returns {Boolean}
*/
static #updatableCharacter(allActors, actor) {
if (!actor.isCharacterType) {
return false;
}
this.position.width = "auto";
this.position.height = "auto";
return super.render(force, options);
}
/**
* Remove the close button
* @override
*/
_getHeaderButtons() {
return [];
}
/**
* Construct and return the data object used to render the HTML template for this form application.
* @param options
* @return {Object}
* @override
*/
async getData(options = null) {
return {
...(await super.getData(options)),
data: this.object,
};
}
/**
* Listen to html elements
* @param {jQuery} html HTML content of the sheet.
* @override
*/
activateListeners(html) {
super.activateListeners(html);
if (!game.user.isGM) {
return;
if (allActors) {
return true;
}
// Modify difficulty hidden
html.find(`.difficulty_hidden`).on("click", (event) => {
event.preventDefault();
event.stopPropagation();
this.object.difficultyHidden = !this.object.difficultyHidden;
game.settings
.set(CONFIG.l5r5e.namespace, "initiative-difficulty-hidden", this.object.difficultyHidden)
.then(() => this.submit());
});
// Modify difficulty (TN)
html.find(`.difficulty`).on("mousedown", (event) => {
event.preventDefault();
event.stopPropagation();
switch (event.which) {
case 1:
// left clic - add 1
this.object.difficulty = Math.min(9, this.object.difficulty + 1);
break;
case 2:
// middle clic - reset to 2
this.object.difficulty = 2;
break;
case 3:
// right clic - minus 1
this.object.difficulty = Math.max(0, this.object.difficulty - 1);
break;
}
game.settings.set(CONFIG.l5r5e.namespace, "initiative-difficulty-value", this.object.difficulty).then(() => this.submit());
});
// Scene End, Sleep, Void Pts
html.find(`.gm_actor_updates`).on("mousedown", this._updatesActors.bind(this));
// GM Monitor
html.find(`.gm_monitor`).on("click", (event) => {
event.preventDefault();
event.stopPropagation();
const app = Object.values(ui.windows).find((e) => e.id === "l5r5e-gm-monitor");
if (app) {
app.close();
} else {
new game.l5r5e.GmMonitor().render(true);
}
});
return actor.isCharacter && actor.hasPlayerOwnerActive
}
/**
* This method is called upon form submission after form data is validated
* @param event The initial triggering submission event
* @param formData The object of validated form data with which to update the object
* @returns A Promise which resolves once the update operation has completed
* @override
* @param {Boolean} allActors
* @param {String} type
*/
async _updateObject(event, formData) {
this.render(false);
static #uiNotification(allActors, type) {
ui.notifications.info(
` <i class="fas fa-user${allActors ? "s" : ""}"></i> ` + game.i18n.localize(`l5r5e.gm.toolbox.${type}_info`)
);
}
/**
* Update all actors
* @param {Event} event
* @private
* @param {PointerEvent} event The originating click event
*/
async _updatesActors(event) {
if (!game.user.isGM) {
return;
}
// Left clic: assigned characters only, others: all actors
const isAll = event.which !== 1;
const type = $(event.currentTarget).data("type");
static async #onResetVoid(event) {
const allActors = event.button !== 0;
for await (const actor of game.actors.contents) {
// Only characters types
if (!actor.isCharacterType) {
if (!GmToolbox.#updatableCharacter(allActors, actor)) {
continue;
}
// Manage left/right button
if (!isAll && (!actor.isCharacter || !actor.hasPlayerOwnerActive)) {
continue;
}
switch (type) {
case "sleep":
// Remove 'water x2' fatigue points
actor.system.fatigue.value = Math.max(
0,
actor.system.fatigue.value - Math.ceil(actor.system.rings.water * 2)
);
break;
case "scene_end":
// If more than half the value => roundup half conflit & fatigue
actor.system.fatigue.value = Math.min(
actor.system.fatigue.value,
Math.ceil(actor.system.fatigue.max / 2)
);
actor.system.strife.value = Math.min(
actor.system.strife.value,
Math.ceil(actor.system.strife.max / 2)
);
break;
case "reset_void":
actor.system.void_points.value = Math.ceil(actor.system.void_points.max / 2);
break;
}
await actor.update({
system: {
fatigue: {
value: actor.system.fatigue.value,
},
strife: {
value: actor.system.strife.value,
},
void_points: {
value: actor.system.void_points.value,
value: Math.ceil(actor.system.void_points.max / 2),
},
},
});
}
ui.notifications.info(
` <i class="fas fa-user${isAll ? "s" : ""}"></i> ` + game.i18n.localize(`l5r5e.gm.toolbox.${type}_info`)
);
GmToolbox.#uiNotification(allActors, "reset_void");
}
/**
* @param {PointerEvent} event The originating click event
*/
static async #onSleep(event) {
const allActors = event.button !== 0;
for await (const actor of game.actors.contents) {
if (!GmToolbox.#updatableCharacter(allActors, actor)) {
continue;
}
await actor.update({
system: {
fatigue: {
value: Math.max(0,
actor.system.fatigue.value - Math.ceil(actor.system.rings.water * 2)
),
}
},
});
await actor.removeConditions(new Set(["exhausted"]));
}
GmToolbox.#uiNotification(allActors, "sleep");
}
/**
* @param {PointerEvent} event The originating click event
*/
static async #onSceneEnd(event) {
const allActors = event.button !== 0;
for await (const actor of game.actors.contents) {
if (!GmToolbox.#updatableCharacter(allActors, actor)
|| actor.statuses.has("exhausted")) {
continue;
}
await actor.update({
system: {
fatigue: {
value: Math.min(
actor.system.fatigue.value,
Math.ceil(actor.system.fatigue.max / 2)
)
},
strife: {
value: Math.min(
actor.system.strife.value,
Math.ceil(actor.system.strife.max / 2)
)
}
}
});
}
GmToolbox.#uiNotification(allActors, "scene_end");
}
/**
* @param {Setting} setting The setting that is being updated
*/
async #onUpdateSetting(setting) {
switch (setting.key) {
case "l5r5e.initiative-difficulty-value":
case "l5r5e.initiative-difficulty-hidden":
this.render(false);
break;
default:
return;
}
}
}

View File

@@ -1,68 +0,0 @@
/**
* L5R Help dialog
* @extends {FormApplication}
*/
export class HelpDialog extends FormApplication {
/**
* Payload Object
*/
object = {};
/**
* Assign the default options
* @override
*/
static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, {
id: "l5r5e-help-dialog",
classes: ["l5r5e", "help-dialog"],
template: CONFIG.l5r5e.paths.templates + "help/help-dialog.html",
title: game.i18n.localize("l5r5e.logo.title"),
width: 400,
height: 200,
closeOnSubmit: false,
submitOnClose: false,
submitOnChange: false,
});
}
/**
* Construct and return the data object used to render the HTML template for this form application.
* @param options
* @return {Object}
*/
async getData(options = null) {
return {
...(await super.getData(options)),
};
}
/**
* Listen to html elements
* @param {jQuery} html HTML content of the sheet.
* @override
*/
activateListeners(html) {
super.activateListeners(html);
// Buttons
html.find(`button`).on("click", (event) => {
event.preventDefault();
event.stopPropagation();
const name = $(event.currentTarget).data("type");
ui.notifications.info(`l5r5e.logo.${name}.info`, {localize: true});
window.open(game.i18n.localize(`l5r5e.logo.${name}.link`), "_blank");
});
}
/**
* This method is called upon form submission after form data is validated
* @param event {Event} The initial triggering submission event
* @param formData {Object} The object of validated form data with which to update the object
* @returns {Promise} A Promise which resolves once the update operation has completed
* @override
*/
_updateObject(event, formData) {
// Nothing, but needed to be override
}
}

View File

@@ -1,3 +1,5 @@
import { L5r5ePopupManager } from './misc/l5r5e-popup-manager.js';
/**
* Extends the actor to process special things from L5R.
*/
@@ -187,12 +189,12 @@ export class HelpersL5r5e {
// Unknown pack object, iterate all packs
if (!document) {
for (const comp of game.packs) {
await Promise.all(game.packs.map(async (comp) => {
const tmpData = await comp.getDocument(id);
if (tmpData) {
document = HelpersL5r5e.createDocumentFromCompendium({ type, data: tmpData });
}
}
}));
}
// Final
@@ -382,7 +384,7 @@ export class HelpersL5r5e {
const title = game.i18n.format("DOCUMENT.Create", { type: game.i18n.localize("Item") });
// Render the template
const html = await renderTemplate(`${CONFIG.l5r5e.paths.templates}dialogs/choose-item-type-dialog.html`, {
const html = await foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}dialogs/choose-item-type-dialog.html`, {
type: null,
types: types.reduce((obj, t) => {
const label = CONFIG.Item.typeLabels[t] ?? t;
@@ -401,12 +403,22 @@ export class HelpersL5r5e {
});
}
static getApplication(appId) {
const app = Object.values(ui.windows).find((e) => e.id === appId);
if(app)
return app;
const appV2 = foundry.applications.instances.get(appId)
if(appV2)
return appV2;
}
/**
* Notify Applications using Difficulty settings that the values was changed
*/
static notifyDifficultyChange() {
["l5r5e-dice-picker-dialog", "l5r5e-gm-toolbox"].forEach((appId) => {
const app = Object.values(ui.windows).find((e) => e.id === appId);
["l5r5e-dice-picker-dialog"].forEach((appId) => {
const app = this.getApplication(appId);
if (app && typeof app.refresh === "function") {
app.refresh();
}
@@ -419,9 +431,7 @@ export class HelpersL5r5e {
*/
static refreshLocalAndSocket(appId) {
game.l5r5e.sockets.refreshAppId(appId);
Object.values(ui.windows)
.find((e) => e.id === appId)
?.refresh();
this.getApplication(appId)?.refresh();
}
/**
@@ -501,13 +511,16 @@ export class HelpersL5r5e {
});
// Item detail tooltips
this.popupManager(html.find(".l5r5e-tooltip"), async (event) => {
const item = await HelpersL5r5e.getEmbedItemByEvent(event, actor);
if (!item) {
return;
new L5r5ePopupManager(
html.find(".l5r5e-tooltip"),
async (event) => {
const item = await HelpersL5r5e.getEmbedItemByEvent(event, actor);
if (!item) {
return;
}
return await item.renderTextTemplate();
}
return await item.renderTextTemplate();
});
);
// Open actor sheet
html.find(".open-sheet-from-uuid").on("click", async (event) => {
@@ -526,52 +539,6 @@ export class HelpersL5r5e {
});
}
/**
* Do the Popup for the selected element
* @param {Selector} selector HTML Selector
* @param {function} callback Callback function(event), must return the html to display
*/
static popupManager(selector, callback) {
const popupPosition = (event, popup) => {
let left = +event.clientX + 60,
top = +event.clientY;
let maxY = window.innerHeight - popup.outerHeight();
if (top > maxY) {
top = maxY - 10;
}
let maxX = window.innerWidth - popup.outerWidth();
if (left > maxX) {
left -= popup.outerWidth() + 100;
}
return { left: left + "px", top: top + "px", visibility: "visible" };
};
selector
.on("mouseenter", async (event) => {
$(document.body).find("#l5r5e-tooltip-ct").remove();
const tpl = await callback(event);
if (!tpl) {
return;
}
$(document.body).append(
`<div id="l5r5e-tooltip-ct" class="l5r5e-tooltip l5r5e-tooltip-ct">${tpl}</div>`
);
})
.on("mousemove", (event) => {
const popup = $(document.body).find("#l5r5e-tooltip-ct");
if (popup) {
popup.css(popupPosition(event, popup));
}
})
.on("mouseleave", () => {
$(document.body).find("#l5r5e-tooltip-ct").remove();
}); // tooltips
}
/**
* Get a Item from a Actor Sheet
* @param {Event} event HTML Event

View File

@@ -1,6 +1,20 @@
import { L5r5eHtmlMultiSelectElement } from "./misc/l5r5e-multiselect.js";
export default class HooksL5r5e {
/**
* Do initialization
*/
static async init() {
// L5R conditions
if (game.settings.get(CONFIG.l5r5e.namespace, "show-all-status-effects")) {
// Add L5R conditions to foundry conditions (don't restrict users)
CONFIG.statusEffects.push(...CONFIG.l5r5e.conditions);
} else {
// L5R conditions only
CONFIG.statusEffects = CONFIG.l5r5e.conditions;
}
}
/**
* Do anything after initialization but before ready
*/
@@ -38,20 +52,15 @@ export default class HooksL5r5e {
}
});
// For some reasons, not always really ready, so wait a little
// For some reason, not always really ready, so wait a little
await new Promise((r) => setTimeout(r, 2000));
// Settings TN and EncounterType
if (game.user.isGM) {
new game.l5r5e.GmToolbox().render(true);
new game.l5r5e.GmToolbox().render(true);
}
// ***** UI *****
// Open Help dialog on clic on logo
$("#logo")
.on("click", () => new game.l5r5e.HelpDialog().render(true))
.prop("title", game.i18n.localize("l5r5e.logo.alt"));
// If any disclaimer "not translated by Edge"
const disclaimer = game.i18n.localize("l5r5e.global.edge_translation_disclaimer");
if (disclaimer !== "" && disclaimer !== "l5r5e.global.edge_translation_disclaimer") {
@@ -71,13 +80,15 @@ export default class HooksL5r5e {
}
}
}
game.settings.set(CONFIG.l5r5e.namespace, "all-compendium-references", Array.from(references));
game.settings.set(CONFIG.l5r5e.namespace, "all-compendium-references", references);
}
/**
* SidebarTab
*/
static renderSidebarTab(app, html, data) {
html = $(html); // basic patch for v13
switch (app.tabName) {
case "chat":
// Add DP on dice icon
@@ -114,23 +125,30 @@ export default class HooksL5r5e {
// Add title on button dice icon
html.find(".chat-control-icon")[0].title = game.i18n.localize("l5r5e.dice.dicepicker.title");
break;
}
}
case "settings":
// Add Changelog link
html.find("#game-details .system").append(
`<span><a href="${game.system.changelog}" target="_blank">Changelog</a>`
+ ` <a href="${game.i18n.localize("l5r5e.settings.wiki.link")}" target="_blank">${game.i18n.localize("l5r5e.settings.wiki.title")}</a>`
+ ` <a href="${game.i18n.localize("l5r5e.settings.custom-compendiums.link")}" target="_blank">${game.i18n.localize("l5r5e.settings.custom-compendiums.title")}</a>`
+ `</span>`
);
break;
}
static async activateSettings(app) {
const html = app.element
const pip = html.querySelector(".info .system .notification-pip");
html.querySelector(".info.system.l5r5e")?.remove();
const section = document.createElement("section");
section.className = "info system l5r5e";
const tpl = await foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}settings/logo.html`, {
SystemVersion: game.system.version
});
section.append(foundry.utils.parseHTML(tpl));
if ( pip ) section.querySelector(".system-info").insertAdjacentElement("beforeend", pip);
html.querySelector(".info").insertAdjacentElement("afterend", section);
}
/**
* Chat Message
*/
static renderChatMessage(message, html, data) {
html = $(html); // basic patch for v13
if (message.isRoll) {
// Add an extra CSS class to roll
html.addClass("roll");
@@ -161,7 +179,7 @@ export default class HooksL5r5e {
*/
static async renderCombatTracker(app, html, data) {
// Display Combat bar (only for GMs)
await this._gmCombatBar(app, html, data);
await this._gmCombatBar(app, $(html), data);
}
/**
@@ -174,6 +192,8 @@ export default class HooksL5r5e {
return;
}
html = $(html); // basic patch for v13
// *** Conf ***
const encounterTypeList = Object.keys(CONFIG.l5r5e.initiativeSkills);
const prepared = {
@@ -183,7 +203,7 @@ export default class HooksL5r5e {
};
// *** Template ***
const tpl = await renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/combat-tracker-bar.html`, {
const tpl = await foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}gm/combat-tracker-bar.html`, {
encounterType: game.settings.get(CONFIG.l5r5e.namespace, "initiative-encounter"),
encounterTypeList,
prepared,
@@ -229,6 +249,8 @@ export default class HooksL5r5e {
* Compendium display (Add filters)
*/
static async renderCompendium(app, html, data) {
html = $(html); // basic patch for v13
if (app.collection.documentName === "Item") {
const content = await app.collection.getDocuments();
const sourcesInThisCompendium = new Set([]);
@@ -253,7 +275,7 @@ export default class HooksL5r5e {
// Add additional data to the entries to make it faster to lookup.
// Add Ring/rank/rarity information
for (const document of content) {
const entry = entries.filter(`[data-document-id="${document.id}"]`);
const entry = entries.filter(`[data-entry-id="${document.id}"]`);
// Hide filter if only one value of this type is found in the compendium
const autoDisplayFilter = (props, documentData = null) => {
@@ -289,23 +311,23 @@ export default class HooksL5r5e {
// Add ring/rank/rarity information on the item in the compendium view
if (document.system?.ring || document.system?.rarity || document.system?.rank) {
const ringRarityRank = await renderTemplate(`${CONFIG.l5r5e.paths.templates}compendium/ring-rarity-rank.html`, document.system);
const ringRarityRank = await foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}compendium/ring-rarity-rank.html`, document.system);
entry.append(ringRarityRank);
}
}
// Setup filters
const officialContent = game.settings.get(CONFIG.l5r5e.namespace, "compendium-official-content-for-players");
const unofficialContent = game.settings.get(CONFIG.l5r5e.namespace, "compendium-unofficial-content-for-players");
const allCompendiumReferences = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references")
const officialContentSet = game.settings.get(CONFIG.l5r5e.namespace, "compendium-official-content-for-players");
const unofficialContentSet = game.settings.get(CONFIG.l5r5e.namespace, "compendium-unofficial-content-for-players");
const allCompendiumReferencesSet = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references")
const hideEmptySourcesFromPlayers = game.settings.get(CONFIG.l5r5e.namespace, "compendium-hide-empty-sources-from-players");
const unavailableSourceForPlayers = allCompendiumReferences.filter((element) => {
const unavailableSourceForPlayersSet = new Set([...allCompendiumReferencesSet].filter((element) => {
if (CONFIG.l5r5e.sourceReference[element]) {
return officialContent.length > 0 ? !officialContent.includes(element) : false;
return officialContentSet.size > 0 ? !officialContentSet.has(element) : false;
}
return unofficialContent.length > 0 ? !unofficialContent.includes(element) : false;
});
return unofficialContentSet.size > 0 ? !unofficialContentSet.has(element) : false;
}));
// Create filter function
const applyCompendiumFilter = () => {
@@ -325,7 +347,7 @@ export default class HooksL5r5e {
let shouldShow = true;
// Handle unavailable sources
if (unavailableSourceForPlayers.includes(lineSource)) {
if (unavailableSourceForPlayersSet.has(lineSource)) {
if (game.user.isGM) {
shouldShow &= true;
$(this)
@@ -372,7 +394,7 @@ export default class HooksL5r5e {
if (!filtersToShow[filterType]) {
return;
}
const filterTemplate = await renderTemplate(
const filterTemplate = await foundry.applications.handlebars.renderTemplate(
`${CONFIG.l5r5e.paths.templates}compendium/${templateFile}.html`,
templateData
);
@@ -397,33 +419,33 @@ export default class HooksL5r5e {
if (filtersToShow.source) {
// Build the source select
const selectableSources = allCompendiumReferences.map((reference) => ({
const selectableSourcesArray = [...allCompendiumReferencesSet].map((reference) => ({
value: reference,
label: CONFIG.l5r5e.sourceReference[reference]?.label ?? reference,
translate: true,
group: CONFIG.l5r5e.sourceReference[reference]?.type.split(",")[0] ?? "l5r5e.multiselect.sources_categories.others",
disabled: !sourcesInThisCompendium.has(reference) || (!game.user.isGM && unavailableSourceForPlayers.includes(reference))
disabled: !sourcesInThisCompendium.has(reference) || (!game.user.isGM && unavailableSourceForPlayersSet.has(reference))
}));
const filterSourcesBox = L5r5eHtmlMultiSelectElement.create({
name: "filter-sources",
options: selectableSources,
options: selectableSourcesArray,
localize: true,
});
header.append(filterSourcesBox.outerHTML);
$("l5r5e-multi-select").on("change", applyCompendiumFilter);
// If gm add an extra button to easily filter the content to see the same stuff as a player
if (game.user.isGM && unavailableSourceForPlayers.length > 0) {
if (game.user.isGM && unavailableSourceForPlayersSet.size > 0) {
const buttonHTML = `<button type="button" class="gm" data-tooltip="${game.i18n.localize('l5r5e.multiselect.player_filter_tooltip')}">`
+ game.i18n.localize('l5r5e.multiselect.player_filter_label')
+ '</button>'
const filterPlayerView = allCompendiumReferences
.filter((item) => !unavailableSourceForPlayers.includes(item))
const filterPlayerViewArray = [...allCompendiumReferencesSet]
.filter((item) => !unavailableSourceForPlayersSet.has(item))
.filter((item) => sourcesInThisCompendium.has(item));
$(buttonHTML).appendTo($(header).find("l5r5e-multi-select")).click(function() {
header.find("l5r5e-multi-select")[0].value = filterPlayerView;
header.find("l5r5e-multi-select")[0].value = filterPlayerViewArray;
});
}
}
@@ -544,4 +566,11 @@ export default class HooksL5r5e {
await game.user.assignHotbarMacro(macro, slot);
}
static async createCombatant(document, options, userId) {
console.log(document, options, userId);
new game.l5r5e.CombatActions().render(true);
}
}

View File

@@ -177,7 +177,7 @@ export class ItemL5r5e extends Item {
await game.l5r5e.HelpersL5r5e.refreshItemProperties(this);
}
const type = this.type.replace("_", "-"); // ex: item_pattern
const tpl = await renderTemplate(`${CONFIG.l5r5e.paths.templates}items/${type}/${type}-text.html`, sheetData);
const tpl = await foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}items/${type}/${type}-text.html`, sheetData);
if (!tpl) {
return null;
}

View File

@@ -45,7 +45,7 @@ export class ArmyCohortSheetL5r5e extends ItemSheetL5r5e {
const sheetData = await super.getData(options);
// Editors enrichment
sheetData.data.enrichedHtml.abilities = await TextEditor.enrichHTML(sheetData.data.system.abilities, {
sheetData.data.enrichedHtml.abilities = await foundry.applications.ux.TextEditor.implementation.enrichHTML(sheetData.data.system.abilities, {
async: true,
});

View File

@@ -2,7 +2,7 @@
* Extend the basic ItemSheet with some very simple modifications
* @extends {ItemSheet}
*/
export class BaseItemSheetL5r5e extends ItemSheet {
export class BaseItemSheetL5r5e extends foundry.appv1.sheets.ItemSheet {
/** @override */
static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, {
@@ -56,8 +56,8 @@ export class BaseItemSheetL5r5e extends ItemSheet {
sheetData.data.system.source_reference.source = game.i18n.localize(label_or_reference);
// Translate list of available references
const all_references = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references");
sheetData.source_references = all_references.map((reference) => {
const all_referencesSet = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references");
sheetData.source_references = [...all_referencesSet].map((reference) => {
const label_or_reference = CONFIG.l5r5e.sourceReference[reference]?.label ?? reference
return game.i18n.localize(label_or_reference)
})

View File

@@ -26,7 +26,7 @@ export class ItemSheetL5r5e extends BaseItemSheetL5r5e {
// Editors enrichment
sheetData.data.enrichedHtml = {
description: await TextEditor.enrichHTML(sheetData.data.system.description, { async: true }),
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(sheetData.data.system.description, { async: true }),
};
return sheetData;
@@ -37,31 +37,26 @@ export class ItemSheetL5r5e extends BaseItemSheetL5r5e {
* @private
*/
async _prepareProperties(sheetData) {
sheetData.data.propertiesList = [];
sheetData.data.propertiesList = await Promise.all((sheetData.data?.system?.properties || []).map(async (property) => {
if (Array.isArray(sheetData.data.system.properties)) {
const props = [];
for (const property of sheetData.data.system.properties) {
const gameProp = await game.l5r5e.HelpersL5r5e.getObjectGameOrPack({ id: property.id, type: "Item" });
if (gameProp) {
sheetData.data.propertiesList.push(gameProp);
props.push({ id: gameProp.id, name: gameProp.name });
} else {
// Item not found
console.warn(`L5R5E | IS | Unknown property id[${property.id}], name[${property.name}]`);
sheetData.data.propertiesList.push({
id: property.id,
name: property.name,
type: "property",
img: "systems/l5r5e/assets/icons/items/property.svg",
removed: true,
});
}
const gameProp = await game.l5r5e.HelpersL5r5e.getObjectGameOrPack({ id: property.id, type: "Item" });
if (gameProp) {
return gameProp;
}
sheetData.data.system.properties = props;
}
// Item not found
console.warn(`L5R5E | IS | Unknown property id[${property.id}], name[${property.name}]`);
return {
id: property.id,
name: property.name,
type: "property",
img: "systems/l5r5e/assets/icons/items/property.svg",
removed: true,
};
}));
}
/**
* Subscribe to events from the sheet.
* @param {jQuery} html HTML content of the sheet.
@@ -87,7 +82,7 @@ export class ItemSheetL5r5e extends BaseItemSheetL5r5e {
// "this.isEditable" fail for tooltips (undefined "this.document")
const isEditable = this.options.editable;
return [
new DragDrop({
new foundry.applications.ux.DragDrop.implementation({
dragSelector: ".property",
dropSelector: null,
permissions: { dragstart: isEditable, drop: isEditable },

View File

@@ -10,7 +10,7 @@ export class JournalL5r5e extends JournalEntry {
const data = (await this.sheet?.getData()) || this;
const pageData = data.pages[0];
const tpl = await renderTemplate(`${CONFIG.l5r5e.paths.templates}journal/journal-text.html`, {
const tpl = await foundry.applications.handlebars.renderTemplate(`${CONFIG.l5r5e.paths.templates}journal/journal-text.html`, {
data: pageData,
});
return tpl || null;

Some files were not shown because too many files have changed in this diff Show More