Initial import
95
README.md
@ -1,97 +1,2 @@
|
|||||||
# fvtt-yggdrasill
|
# fvtt-yggdrasill
|
||||||
|
|
||||||
Système FoundryVTT non-officiel pour le JDR Yggdrasill de 7ièmeCercle.
|
|
||||||
Nécessite le Live de Base pour jouer
|
|
||||||
|
|
||||||
Yggdrasill est la propriété de 7ième Cercle
|
|
||||||
|
|
||||||
|
|
||||||
## Getting started
|
|
||||||
|
|
||||||
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
|
|
||||||
|
|
||||||
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
|
|
||||||
|
|
||||||
## Add your files
|
|
||||||
|
|
||||||
- [ ] [Create](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
|
|
||||||
- [ ] [Add files using the command line](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
|
|
||||||
|
|
||||||
```
|
|
||||||
cd existing_repo
|
|
||||||
git remote add origin https://gitlab.com/LeRatierBretonnien/fvtt-yggdrasill.git
|
|
||||||
git branch -M main
|
|
||||||
git push -uf origin main
|
|
||||||
```
|
|
||||||
|
|
||||||
## Integrate with your tools
|
|
||||||
|
|
||||||
- [ ] [Set up project integrations](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://gitlab.com/LeRatierBretonnien/fvtt-yggdrasill/-/settings/integrations)
|
|
||||||
|
|
||||||
## Collaborate with your team
|
|
||||||
|
|
||||||
- [ ] [Invite team members and collaborators](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/user/project/members/)
|
|
||||||
- [ ] [Create a new merge request](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
|
|
||||||
- [ ] [Automatically close issues from merge requests](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
|
|
||||||
- [ ] [Enable merge request approvals](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
|
|
||||||
- [ ] [Automatically merge when pipeline succeeds](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
|
|
||||||
|
|
||||||
## Test and Deploy
|
|
||||||
|
|
||||||
Use the built-in continuous integration in GitLab.
|
|
||||||
|
|
||||||
- [ ] [Get started with GitLab CI/CD](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/ci/quick_start/index.html)
|
|
||||||
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/user/application_security/sast/)
|
|
||||||
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
|
|
||||||
- [ ] [Use pull-based deployments for improved Kubernetes management](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/user/clusters/agent/)
|
|
||||||
- [ ] [Set up protected environments](https://gitlab.com/-/experiment/new_project_readme_content:e9b9d4db949afc8ae6f4fc2d4f22147a?https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
# Editing this README
|
|
||||||
|
|
||||||
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com) for this template.
|
|
||||||
|
|
||||||
## Suggestions for a good README
|
|
||||||
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
|
|
||||||
|
|
||||||
## Name
|
|
||||||
Choose a self-explaining name for your project.
|
|
||||||
|
|
||||||
## Description
|
|
||||||
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
|
|
||||||
|
|
||||||
## Badges
|
|
||||||
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
|
|
||||||
|
|
||||||
## Visuals
|
|
||||||
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
|
|
||||||
|
|
||||||
## Support
|
|
||||||
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
|
|
||||||
|
|
||||||
## Roadmap
|
|
||||||
If you have ideas for releases in the future, it is a good idea to list them in the README.
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
State if you are open to contributions and what your requirements are for accepting them.
|
|
||||||
|
|
||||||
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
|
|
||||||
|
|
||||||
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
|
|
||||||
|
|
||||||
## Authors and acknowledgment
|
|
||||||
Show your appreciation to those who have contributed to the project.
|
|
||||||
|
|
||||||
## License
|
|
||||||
For open source projects, say how it is licensed.
|
|
||||||
|
|
||||||
## Project status
|
|
||||||
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
|
|
||||||
|
|
||||||
|
BIN
fonts/CaslonAntique.ttf
Normal file
BIN
fonts/Fondamento.ttf
Normal file
BIN
fonts/MedievalSharp.ttf
Normal file
BIN
fonts/vinque_rg.ttf
Normal file
6
images/icons/.directory
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Dolphin]
|
||||||
|
SortRole=creationtime
|
||||||
|
Timestamp=2021,4,13,9,23,48.267
|
||||||
|
Version=4
|
||||||
|
ViewMode=1
|
||||||
|
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
BIN
images/icons/icon_carac_ame.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
images/icons/icon_carac_corps.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
images/icons/icon_carac_esprit.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
images/icons/icon_carac_secondaire.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
images/icons/icon_echec_critique.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
images/icons/icon_reussite_critique.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
images/icons/icon_skill.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
images/icons/icone_arme_2mains.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
images/icons/icone_arme_courte.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
images/icons/icone_arme_hast.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
images/icons/icone_arme_longue.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
images/icons/icone_lancer.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
images/icons/icone_tir.png
Normal file
After Width: | Height: | Size: 20 KiB |
60
images/icons/locked.svg
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 74.999964 74.999964"
|
||||||
|
version="1.1"
|
||||||
|
id="svg3"
|
||||||
|
sodipodi:docname="locked.svg"
|
||||||
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||||
|
<metadata
|
||||||
|
id="metadata9">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs7" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="3840"
|
||||||
|
inkscape:window-height="2066"
|
||||||
|
id="namedview5"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="11.84917"
|
||||||
|
inkscape:cx="66.242132"
|
||||||
|
inkscape:cy="3.3681778"
|
||||||
|
inkscape:window-x="-11"
|
||||||
|
inkscape:window-y="-11"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg3"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
units="px" />
|
||||||
|
<path
|
||||||
|
id="Sélection #1"
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-width="0.43031"
|
||||||
|
d="m 17.920882,31.968974 c -0.275398,-1.686814 -0.02152,-6.407314 0.253883,-8.175887 1.613662,-10.314528 8.033886,-24.37275369 20.400992,-23.77462269 11.489274,0.5551 17.423247,13.45579069 19.041212,23.34431269 0.309823,1.919182 0.619646,6.773077 0.322733,8.606197 0,0 4.303099,0 4.303099,0 0,0 0,43.030993 0,43.030993 0,0 -49.485638,0 -49.485638,0 0,0 0,-43.030993 0,-43.030993 0,0 5.163719,0 5.163719,0 z m 36.146031,0 c 0,-7.517513 -1.080078,-14.703688 -5.38748,-21.085184 C 46.23097,7.2562774 43.124132,4.5453244 38.575757,4.4334444 26.699204,4.1451364 21.810883,19.614778 21.793671,29.387115 c 0,0 0,2.581859 0,2.581859 0,0 32.273242,0 32.273242,0 z"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:#1a1a1a;stroke-opacity:1;opacity:1" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
BIN
images/icons/tchat_attaque_réussie.webp
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
images/icons/tchat_attaque_échouée.webp
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
images/icons/tchat_dégâts_infligés.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
images/icons/tchat_réussite_critique.webp
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
images/icons/tchat_sort_réussi.webp
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
images/icons/tchat_sort_échoué.webp
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
images/icons/tchat_échec_critique.webp
Normal file
After Width: | Height: | Size: 17 KiB |
64
images/icons/unlocked.svg
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="26.240078"
|
||||||
|
height="24.137722"
|
||||||
|
viewBox="0 0 82.000206 75.430344"
|
||||||
|
version="1.1"
|
||||||
|
id="svg3"
|
||||||
|
sodipodi:docname="unlocked.svg"
|
||||||
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||||
|
<metadata
|
||||||
|
id="metadata9">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs7" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1818"
|
||||||
|
inkscape:window-height="1345"
|
||||||
|
id="namedview5"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="9.407583"
|
||||||
|
inkscape:cx="32.22484"
|
||||||
|
inkscape:cy="24.325892"
|
||||||
|
inkscape:window-x="630"
|
||||||
|
inkscape:window-y="276"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg3"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
units="px"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0" />
|
||||||
|
<path
|
||||||
|
id="Sélection #1"
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-width="0.430321"
|
||||||
|
d="m 41.525985,32.183078 c -0.757365,-3.180073 0.619662,-10.938762 1.600794,-14.200596 1.097319,-3.636213 2.990736,-7.836147 5.422046,-10.7580268 1.36842,-1.639523 3.63191,-3.85998 5.45647,-4.957299 2.39689,-1.44587897 5.38332,-2.17312097 8.1761,-2.03541897 9.56174,0.460444 15.50017,9.83713977 17.88845,18.18106577 1.04138,3.636213 1.32539,5.723271 1.4717,9.467064 0.0645,0.933797 0.50347,2.891758 0,3.614697 -0.667,0.890765 -2.86164,0.688514 -3.86859,0.688514 0,-7.620987 -1.35551,-15.23767 -5.99007,-21.516054 -2.30652,-3.1198278 -5.46077,-5.8308508 -9.50149,-6.0072828 -4.9573,-0.21516 -8.35253,2.543198 -11.09798,6.4376038 -4.39788,6.239655 -5.684541,13.615359 -5.684541,21.085733 0,0 4.303211,0 4.303211,0 0,0 0,43.032105 0,43.032105 0,0 -49.4869245,0 -49.4869245,0 0,0 0,-43.032105 0,-43.032105 0,0 41.3108245,0 41.3108245,0 z"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:0.5" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
BIN
images/ui/banner_01.png
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
images/ui/fond1.webp
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
images/ui/fond2.webp
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
images/ui/fond3.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
images/ui/fond4.webp
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
images/ui/header_sheet.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
images/ui/logo_complet.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
images/ui/sheet_background.webp
Normal file
After Width: | Height: | Size: 182 KiB |
BIN
images/ui/texture_feuille_perso_onglets.webp
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
images/ui/texture_feuille_perso_principale.webp
Normal file
After Width: | Height: | Size: 361 KiB |
BIN
images/ui/ygg_logo_3.png
Normal file
After Width: | Height: | Size: 48 KiB |
220
modules/yggdrasill-actor-sheet.js
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
/**
|
||||||
|
* Extend the basic ActorSheet with some very simple modifications
|
||||||
|
* @extends {ActorSheet}
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { YggdrasillUtility } from "./yggdrasill-utility.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
export class YggdrasillActorSheet extends ActorSheet {
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static get defaultOptions() {
|
||||||
|
|
||||||
|
return mergeObject(super.defaultOptions, {
|
||||||
|
classes: ["yggdrasill", "sheet", "actor"],
|
||||||
|
template: "systems/fvtt-yggdrasill/templates/actor-sheet.html",
|
||||||
|
width: 640,
|
||||||
|
height: 720,
|
||||||
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||||
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||||
|
editScore: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getData() {
|
||||||
|
const objectData = YggdrasillUtility.data(this.object);
|
||||||
|
|
||||||
|
let formData = {
|
||||||
|
title: this.title,
|
||||||
|
id: objectData.id,
|
||||||
|
type: objectData.type,
|
||||||
|
img: objectData.img,
|
||||||
|
name: objectData.name,
|
||||||
|
editable: this.isEditable,
|
||||||
|
cssClass: this.isEditable ? "editable" : "locked",
|
||||||
|
data: foundry.utils.deepClone(YggdrasillUtility.templateData(this.object)),
|
||||||
|
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
||||||
|
limited: this.object.limited,
|
||||||
|
isEpuise: this.actor.isEpuise(),
|
||||||
|
isBlesse: this.actor.isBlesse(),
|
||||||
|
isMeurtri: this.actor.isMeurtri(),
|
||||||
|
competencesGenerales: this.actor.getCompetencesGenerales(),
|
||||||
|
competencesMartiales: this.actor.getCompetencesMartiales(),
|
||||||
|
competencesMagiques: this.actor.getCompetencesMagiques(),
|
||||||
|
dons: this.actor.getDons(),
|
||||||
|
faiblesses: this.actor.getFaiblesses(),
|
||||||
|
blessures: this.actor.getBlessures(),
|
||||||
|
armes: this.actor.getArmes(),
|
||||||
|
armures: this.actor.getArmures(),
|
||||||
|
prouessesMartiales: this.actor.getProuessesMartiales(),
|
||||||
|
equipements: this.actor.getToutEquipements(),
|
||||||
|
effetsmagiques: this.actor.getEffetsMagiques(),
|
||||||
|
effetsRunes: this.actor.getEffetsDeRunes(),
|
||||||
|
encTotal: this.actor.getEncTotal(),
|
||||||
|
protectionTotal: this.actor.getProtectionTotal(),
|
||||||
|
monnaies: this.actor.getMonnaies(),
|
||||||
|
sortsSejdr:this.actor.getSortsSejdr(),
|
||||||
|
sortsGaldr:this.actor.getSortsGaldr(),
|
||||||
|
runes: this.actor.getRunes(),
|
||||||
|
optionsDMDP: YggdrasillUtility.createDirectSortedOptionList(-10, +10),
|
||||||
|
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||||
|
optionsFuror: YggdrasillUtility.createDirectOptionList(0, 15),
|
||||||
|
options: this.options,
|
||||||
|
owner: this.document.isOwner,
|
||||||
|
editScore: this.options.editScore,
|
||||||
|
isGM: game.user.isGM
|
||||||
|
}
|
||||||
|
// Dynamic update some fields
|
||||||
|
this.updateDM(formData.data);
|
||||||
|
this.updateDP(formData.data);
|
||||||
|
|
||||||
|
console.log("YGG : ", formData);
|
||||||
|
return formData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
updateDM( data ) {
|
||||||
|
let dm = data.caracsecondaire.defensemen;
|
||||||
|
dm.total = dm.max + Number(dm.bonusmalus);
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
updateDP( data ) {
|
||||||
|
let dp = data.caracsecondaire.defensephy;
|
||||||
|
dp.total = dp.max + Number(dp.bonusmalus);
|
||||||
|
dp.total += (dp.bouclierequipe) ? 3 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
// Everything below here is only needed if the sheet is editable
|
||||||
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
|
// Update Inventory Item
|
||||||
|
html.find('.item-edit').click(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
const item = this.actor.getOwnedItem(li.data("item-id"));
|
||||||
|
item.sheet.render(true);
|
||||||
|
});
|
||||||
|
// Delete Inventory Item
|
||||||
|
html.find('.item-delete').click(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
YggdrasillUtility.confirmDelete(this, li);
|
||||||
|
});
|
||||||
|
|
||||||
|
html.find('#isEpuise').click(event => {
|
||||||
|
this.actor.toggleEpuise( );
|
||||||
|
} );
|
||||||
|
|
||||||
|
html.find('.munition-moins').click(event => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const item = this.actor.getOwnedItem(li.data("item-id"));
|
||||||
|
this.actor.decrementeMunition( item );
|
||||||
|
} );
|
||||||
|
html.find('.munition-plus').click(event => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const item = this.actor.getOwnedItem(li.data("item-id"));
|
||||||
|
this.actor.incrementeMunition( item );
|
||||||
|
} );
|
||||||
|
html.find('.equipement-moins').click(event => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
this.actor.decrementeQuantite( li.data("item-id") );
|
||||||
|
} );
|
||||||
|
html.find('.equipement-plus').click(event => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
this.actor.incrementeQuantite( li.data("item-id") );
|
||||||
|
} );
|
||||||
|
|
||||||
|
html.find('.combat-label a').click((event) => {
|
||||||
|
let combatName = event.currentTarget.attributes.name.value;
|
||||||
|
this.actor.rollCombat(combatName);
|
||||||
|
});
|
||||||
|
html.find('.magie-label a').click((event) => {
|
||||||
|
let magieName = event.currentTarget.attributes.name.value;
|
||||||
|
this.actor.rollMagie(magieName);
|
||||||
|
});
|
||||||
|
html.find('.competence-label a').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const competenceId = li.data("item-id");
|
||||||
|
this.actor.rollCompetence(competenceId);
|
||||||
|
});
|
||||||
|
html.find('.technique-label a').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const techniqueId = li.data("item-id");
|
||||||
|
this.checkTechnique(techniqueId);
|
||||||
|
});
|
||||||
|
html.find('.sort-sejdr').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const sortId = li.data("item-id");
|
||||||
|
this.actor.rollSort(sortId, "sejdr");
|
||||||
|
});
|
||||||
|
html.find('.sort-galdr').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const sortId = li.data("item-id");
|
||||||
|
this.actor.rollSort(sortId, "galdr");
|
||||||
|
});
|
||||||
|
html.find('.sort-rune').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const sortId = li.data("item-id");
|
||||||
|
this.actor.rollSort(sortId, "rune");
|
||||||
|
});
|
||||||
|
|
||||||
|
html.find('.arme-label a').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const armeId = li.data("arme-id");
|
||||||
|
this.actor.rollArme(armeId);
|
||||||
|
});
|
||||||
|
html.find('.carac-roll').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
let categ = li.data("carac-categ");
|
||||||
|
let carac = li.data("carac-key");
|
||||||
|
this.actor.rollCarac(categ, carac);
|
||||||
|
});
|
||||||
|
html.find('.weapon-damage').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const weapon = this.actor.getOwnedItem(li.data("item-id"));
|
||||||
|
this.actor.rollDamage(weapon, 'damage');
|
||||||
|
});
|
||||||
|
html.find('.competence-base').change((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
const compId = li.data("item-id");
|
||||||
|
this.actor.updateCompetence(compId, parseInt(event.target.value));
|
||||||
|
});
|
||||||
|
html.find('.lock-unlock-sheet').click((event) => {
|
||||||
|
this.options.editScore = !this.options.editScore;
|
||||||
|
this.render(true);
|
||||||
|
});
|
||||||
|
html.find('.item-link a').click((event) => {
|
||||||
|
const itemId = $(event.currentTarget).data("item-id");
|
||||||
|
const item = this.actor.getOwnedItem(itemId);
|
||||||
|
item.sheet.render(true);
|
||||||
|
});
|
||||||
|
html.find('.item-equip').click(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
this.actor.equiperObject( li.data("item-id") );
|
||||||
|
this.render(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
setPosition(options = {}) {
|
||||||
|
const position = super.setPosition(options);
|
||||||
|
const sheetBody = this.element.find(".sheet-body");
|
||||||
|
const bodyHeight = position.height - 192;
|
||||||
|
sheetBody.css("height", bodyHeight);
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
_updateObject(event, formData) {
|
||||||
|
// Update the Actor
|
||||||
|
return this.object.update(formData);
|
||||||
|
}
|
||||||
|
}
|
758
modules/yggdrasill-actor.js
Normal file
@ -0,0 +1,758 @@
|
|||||||
|
/* -------------------------------------------- */
|
||||||
|
import { YggdrasillUtility } from "./yggdrasill-utility.js";
|
||||||
|
import { YggdrasillRoll } from "./yggdrasill-roll-dialog.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
const statusEffects = [
|
||||||
|
{ yggdrasill: true, id: 'epuise', label: 'Epuisé', icon: 'icons/svg/stoned.svg' },
|
||||||
|
{ yggdrasill: true, id: 'blesse', label: 'Blessé', icon: 'icons/svg/blood.svg' },
|
||||||
|
{ yggdrasill: true, id: 'meurtri', label: 'Meurtri', icon: 'icons/svg/falling.svg' }
|
||||||
|
]
|
||||||
|
const armeCategorieToCompetence = { "lutte": "Lutte", "improvisee": "Armes Improvisées", "courte":"Armes courtes", "longue": "Armes longues", "deuxmains": "Armes à deux mains",
|
||||||
|
"hast": "Armes d'Hast", "tir": "Armes de tir", "jet": "Lancer" }
|
||||||
|
const attackMode = {
|
||||||
|
"classique": {
|
||||||
|
"categName": "corps",
|
||||||
|
"caracName": "agilite",
|
||||||
|
"malus": 0,
|
||||||
|
"protection": 0,
|
||||||
|
"bonusdegats": 0,
|
||||||
|
"label": "Attaque Classique",
|
||||||
|
"description": "Attaque classique"
|
||||||
|
},
|
||||||
|
"force": {
|
||||||
|
"categName": "corps",
|
||||||
|
"caracName": "puissance",
|
||||||
|
"malus": 0,
|
||||||
|
"protection": 0,
|
||||||
|
"bonusdegats": "puissance;1",
|
||||||
|
"label": "Attaque en Force",
|
||||||
|
"description": "Attaque en Force : Malus: 0, +PUI en dégats"
|
||||||
|
},
|
||||||
|
"devastatrice": {
|
||||||
|
"categName": "corps",
|
||||||
|
"caracName": "puissance",
|
||||||
|
"malus": "puissance;1",
|
||||||
|
"bonusdegats": "puissance;3",
|
||||||
|
"protection": 0,
|
||||||
|
"label": "Attaque Dévastatrice",
|
||||||
|
"description": "Attaque Dévastratrice : Malus -PUI, +PUI*3 en dégats"
|
||||||
|
},
|
||||||
|
"precise": {
|
||||||
|
"categName": "esprit",
|
||||||
|
"caracName": "perception",
|
||||||
|
"malus": "0",
|
||||||
|
"bonusdegats": 0,
|
||||||
|
"protection": "perception;1",
|
||||||
|
"label": "Attaque Précise",
|
||||||
|
"description": "Attaque précise : Malus : 0, protection réduite de -PER"
|
||||||
|
},
|
||||||
|
"visee": {
|
||||||
|
"categName": "esprit",
|
||||||
|
"caracName": "perception",
|
||||||
|
"malus": "perception;1",
|
||||||
|
"bonusdegats": 0,
|
||||||
|
"protection": "perception;3",
|
||||||
|
"label": "Attaque Visée",
|
||||||
|
"description": "Attaque visée : Malus : -PER, protection réduite de -PER"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const tirMode = {
|
||||||
|
"pose": {
|
||||||
|
"categName": "corps",
|
||||||
|
"caracName": "agilite",
|
||||||
|
"malus": 0,
|
||||||
|
"protection": 0,
|
||||||
|
"bonusdegats": 0,
|
||||||
|
"label": "Tir posé",
|
||||||
|
"description": "Tir posé"
|
||||||
|
},
|
||||||
|
"arrettir": {
|
||||||
|
"categName": "ame",
|
||||||
|
"caracName": "instinct",
|
||||||
|
"malus": 0,
|
||||||
|
"protection": 0,
|
||||||
|
"bonusdegats": "instinct;1",
|
||||||
|
"label": "Tir d'Arrêt (Tir)",
|
||||||
|
"description": "Tir d'Arrêt (Tir) : Malus: 0, +INS en dégats"
|
||||||
|
},
|
||||||
|
"arretjet": {
|
||||||
|
"categName": "corps",
|
||||||
|
"caracName": "puissance",
|
||||||
|
"malus": 0,
|
||||||
|
"protection": 0,
|
||||||
|
"bonusdegats": "puissance;1",
|
||||||
|
"label": "Tir d'Arrêt (Jet)",
|
||||||
|
"description": "Tir d'Arrêt (Jet) : Malus: 0, +PUI en dégats"
|
||||||
|
},
|
||||||
|
"impacttir": {
|
||||||
|
"categName": "ame",
|
||||||
|
"caracName": "instinct",
|
||||||
|
"malus": "instinct;1",
|
||||||
|
"protection": 0,
|
||||||
|
"bonusdegats": "instinct;3",
|
||||||
|
"label": "Tir d'Impact (Tir)",
|
||||||
|
"description": "Tir d'Impact (Tir) : Malus: -INS, +INS*3 en dégats"
|
||||||
|
},
|
||||||
|
"impactjet": {
|
||||||
|
"categName": "corps",
|
||||||
|
"caracName": "puissance",
|
||||||
|
"malus": "puissance;1",
|
||||||
|
"protection": 0,
|
||||||
|
"bonusdegats": "puissance;3",
|
||||||
|
"label": "Attaque d'Impact (Jet)",
|
||||||
|
"description": "Attaque d'Impact (Jet) : Malus: -PUI, +PUI*3 en dégats"
|
||||||
|
},
|
||||||
|
"precision": {
|
||||||
|
"categName": "esprit",
|
||||||
|
"caracName": "perception",
|
||||||
|
"malus": "0",
|
||||||
|
"bonusdegats": 0,
|
||||||
|
"protection": "perception;1",
|
||||||
|
"label": "Tir de Précision",
|
||||||
|
"description": "Tir de Précision : Malus : 0, protection réduite de -PER"
|
||||||
|
},
|
||||||
|
"vise": {
|
||||||
|
"categName": "esprit",
|
||||||
|
"caracName": "perception",
|
||||||
|
"malus": "perception;1",
|
||||||
|
"bonusdegats": 0,
|
||||||
|
"protection": "perception;3",
|
||||||
|
"label": "Tir Visée",
|
||||||
|
"description": "Tir visée : Malus : -PER, protection réduite de -PER"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Extend the base Actor entity by defining a custom roll data structure which is ideal for the Simple system.
|
||||||
|
* @extends {Actor}
|
||||||
|
*/
|
||||||
|
export class YggdrasillActor extends Actor {
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/**
|
||||||
|
* Override the create() function to provide additional SoS functionality.
|
||||||
|
*
|
||||||
|
* This overrided create() function adds initial items
|
||||||
|
* Namely: Basic skills, money,
|
||||||
|
*
|
||||||
|
* @param {Object} data Barebones actor data which this function adds onto.
|
||||||
|
* @param {Object} options (Unused) Additional options which customize the creation workflow.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
static async create(data, options) {
|
||||||
|
|
||||||
|
// Case of compendium global import
|
||||||
|
if (data instanceof Array) {
|
||||||
|
return super.create(data, options);
|
||||||
|
}
|
||||||
|
// If the created actor has items (only applicable to duplicated actors) bypass the new actor creation logic
|
||||||
|
if (data.items) {
|
||||||
|
let actor = super.create(data, options);
|
||||||
|
return actor;
|
||||||
|
}
|
||||||
|
|
||||||
|
const competencesGen = await YggdrasillUtility.loadCompendium("fvtt-yggdrasill.competences-generales");
|
||||||
|
const competencesMar = await YggdrasillUtility.loadCompendium("fvtt-yggdrasill.competences-martiales");
|
||||||
|
const competencesMag = await YggdrasillUtility.loadCompendium("fvtt-yggdrasill.competences-magiques");
|
||||||
|
const competences = competencesGen.concat(competencesMar).concat(competencesMag);
|
||||||
|
data.items = competences.map(i => i.toObject());
|
||||||
|
|
||||||
|
return super.create(data, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
prepareBaseData() {
|
||||||
|
if ( this.type == "personnage") {
|
||||||
|
this.computeCaracSecondaire();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async prepareData() {
|
||||||
|
if ( this.type == "personnage") {
|
||||||
|
this.computeCaracSecondaire();
|
||||||
|
if (this.data.data.furor.value == 0)
|
||||||
|
await this.setEpuise();
|
||||||
|
else
|
||||||
|
await this.cleanEpuise();
|
||||||
|
if ( this.data.data.caracsecondaire.pv.value < (this.data.data.caracsecondaire.pv.max/4) )
|
||||||
|
await this.setMeurtri();
|
||||||
|
else
|
||||||
|
await this.cleanMeurtri();
|
||||||
|
if ( this.data.data.caracsecondaire.pv.value < (this.data.data.caracsecondaire.pv.max/2) )
|
||||||
|
await this.setBlesse();
|
||||||
|
else
|
||||||
|
await this.cleanBlesse();
|
||||||
|
}
|
||||||
|
super.prepareData();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
_preUpdate(changed, options, user) {
|
||||||
|
if ( changed.data?.caracsecondaire?.pv?.value ) {
|
||||||
|
if ( changed.data.caracsecondaire.pv.value < 0 )
|
||||||
|
changed.data.caracsecondaire.pv.value = 0;
|
||||||
|
if ( changed.data.caracsecondaire.pv.value > this.data.data.caracsecondaire.pv.max )
|
||||||
|
changed.data.caracsecondaire.pv.value = this.data.data.caracsecondaire.pv.max;
|
||||||
|
}
|
||||||
|
if ( changed.data?.furor?.value ) {
|
||||||
|
if ( changed.data.furor.value < 0 )
|
||||||
|
changed.data.furor.value = 0;
|
||||||
|
if ( changed.data.furor.value > this.data.data.furor.max )
|
||||||
|
changed.data.furor.value = this.data.data.furor.max;
|
||||||
|
}
|
||||||
|
super._preUpdate(changed, options, user);
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getCompetences() {
|
||||||
|
let comp = this.data.items.filter( item => item.type == 'competence');
|
||||||
|
return comp;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
compareName( a, b) {
|
||||||
|
if ( a.name < b.name ) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if ( a.name > b.name ) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getInitiativeScore() {
|
||||||
|
return this.data.data.caracsecondaire.reaction.max;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getCompetencesGenerales() {
|
||||||
|
let comp = this.data.items.filter( item => item.type == 'competence' && item.data.data.categorie == 'generale');
|
||||||
|
return comp.sort( this.compareName );
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getCompetencesMartiales() {
|
||||||
|
let comp = this.data.items.filter( item => item.type == 'competence' && item.data.data.categorie == 'martiale');
|
||||||
|
return comp.sort( this.compareName );
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getCompetencesMagiques() {
|
||||||
|
let comp = this.data.items.filter( item => item.type == 'competence' && item.data.data.categorie == 'magique');
|
||||||
|
return comp.sort( this.compareName );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getDons( ) {
|
||||||
|
let dons = this.data.items.filter( item => item.type == 'don');
|
||||||
|
return dons.sort( this.compareName );
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getEffetsMagiques( ) {
|
||||||
|
let effets = this.data.items.filter( item => item.type == 'effetmagique');
|
||||||
|
return effets.sort( this.compareName );
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getEffetsDeRunes( ) {
|
||||||
|
let effets = this.data.items.filter( item => item.type == 'effetderune');
|
||||||
|
return effets.sort( this.compareName );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getMonnaies( ) {
|
||||||
|
let monnaies = this.data.items.filter( item => item.type == 'monnaie');
|
||||||
|
return monnaies.sort( this.compareName );
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getFaiblesses( ) {
|
||||||
|
let faib = this.data.items.filter( item => item.type == 'faiblesse');
|
||||||
|
return faib.sort( this.compareName );
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getBlessures( ) {
|
||||||
|
return this.data.items.filter( item => item.type == 'blessure');
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getToutEquipements() {
|
||||||
|
return this.data.items.filter( item => item.type == 'equipement' || item.type == 'armure' || item.type == 'armecc' || item.type == 'armedist');
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getArmes() {
|
||||||
|
return this.data.items.filter( item => (item.type == 'armecc' || item.type == 'armedist') && item.data.data.equipe );
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getArmures() {
|
||||||
|
return this.data.items.filter( item => item.type == 'armure' && item.data.data.equipe );
|
||||||
|
}
|
||||||
|
getProuessesMartiales() {
|
||||||
|
let prouesse = this.data.items.filter( item => item.type == 'prouesse' );
|
||||||
|
return prouesse.sort( this.compareName );
|
||||||
|
}
|
||||||
|
getSortsSejdr() {
|
||||||
|
let sort = this.data.items.filter( item => item.type == 'sortsejdr' );
|
||||||
|
return sort.sort( this.compareName );
|
||||||
|
}
|
||||||
|
getSortsGaldr() {
|
||||||
|
let sort = this.data.items.filter( item => item.type == 'sortgaldr' );
|
||||||
|
return sort.sort( this.compareName );
|
||||||
|
}
|
||||||
|
getRunes() {
|
||||||
|
let sort = this.data.items.filter( item => item.type == 'rune' );
|
||||||
|
return sort.sort( this.compareName );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async setEpuise( ) {
|
||||||
|
await this.update({ 'data.status.epuise': true});
|
||||||
|
this.data.data.status.epuise = true;
|
||||||
|
/*let effect = this.getEffectByLabel('Epuisé');
|
||||||
|
if ( !effect ) {
|
||||||
|
let effect = statusEffects.find( ef => ef.id == 'epuise');
|
||||||
|
await this.createEmbeddedDocuments("ActiveEffect", [ effect ] );
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async cleanEpuise() {
|
||||||
|
await this.update({ 'data.status.epuise': false});
|
||||||
|
this.data.data.status.epuise = false;
|
||||||
|
/*let effect = this.getEffectByLabel('Epuisé');
|
||||||
|
if ( effect ) {
|
||||||
|
await this.deleteEmbeddedDocuments("ActiveEffect", [ effect.id ]);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async toggleEpuise( ) {
|
||||||
|
if ( this.data.data.status.epuise ) {
|
||||||
|
await this.cleanEpuise();
|
||||||
|
} else {
|
||||||
|
await this.setEpuise();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
isEpuise() {
|
||||||
|
return this.data.data.status.epuise;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async setBlesse( ) {
|
||||||
|
await this.update({ 'data.status.blesse': true} );
|
||||||
|
this.data.data.status.blesse = true;
|
||||||
|
console.log("BLESSSE !!!!");
|
||||||
|
/*let effect = this.getEffectByLabel('Blessé');
|
||||||
|
if ( !effect ) {
|
||||||
|
let effect = statusEffects.find( ef => ef.id == 'blesse');
|
||||||
|
await this.createEmbeddedDocuments("ActiveEffect", [ effect ] );
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async cleanBlesse() {
|
||||||
|
await this.update({ 'data.status.blesse': false} );
|
||||||
|
this.data.data.status.blesse = false;
|
||||||
|
/*let effect = this.getEffectByLabel('Blessé');
|
||||||
|
if ( effect ) {
|
||||||
|
await this.deleteEmbeddedDocuments("ActiveEffect", [ effect.id ]);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
isBlesse() {
|
||||||
|
return this.data.data.status.blesse;
|
||||||
|
//return this.getEffectByLabel('Blessé');
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async setMeurtri( ) {
|
||||||
|
await this.setBlesse();
|
||||||
|
await this.update({ 'data.status.meurtri': true});
|
||||||
|
this.data.data.status.meurtri = true;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async cleanMeurtri() {
|
||||||
|
await this.update({ 'data.status.meurtri': false});
|
||||||
|
this.data.data.status.meurtri = false;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
isMeurtri() {
|
||||||
|
return this.data.data.status.meurtri;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async decrementFuror( nbFuror) {
|
||||||
|
await this.update( { 'data.furor.value': this.data.data.furor.value - nbFuror } );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getCurrentFuror() {
|
||||||
|
return this.data.data.furor.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getActiveEffects(matching = it => true) {
|
||||||
|
let array = Array.from(this.getEmbeddedCollection("ActiveEffect").values());
|
||||||
|
return Array.from(this.getEmbeddedCollection("ActiveEffect").values()).filter(it => matching(it));
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getEffectByLabel(label) {
|
||||||
|
return this.getActiveEffects().find(it => it.data.label == label);
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getEffectById(id) {
|
||||||
|
return this.getActiveEffects().find(it => it.id == id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getCarac( caracName ) {
|
||||||
|
for( let key in this.data.data.carac) {
|
||||||
|
let categ = this.data.data.carac[key];
|
||||||
|
for( let carac in categ.carac) {
|
||||||
|
if (carac.toLowerCase() == caracName.toLowerCase() ) {
|
||||||
|
return deepClone(categ.carac[carac]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
computeCaracSecondaire( ) {
|
||||||
|
if ( this.type == "personnage") {
|
||||||
|
let basecorps = this.data.data.carac.corps.carac;
|
||||||
|
let sumcorps = basecorps.puissance.value + basecorps.agilite.value + basecorps.vigueur.value
|
||||||
|
let baseesprit = this.data.data.carac.esprit.carac;
|
||||||
|
let sumesprit = baseesprit.intellect.value + baseesprit.perception.value + baseesprit.tenacite.value
|
||||||
|
let baseame = this.data.data.carac.ame.carac;
|
||||||
|
let sumame = baseame.charisme.value + baseame.communication.value + baseame.instinct.value
|
||||||
|
|
||||||
|
let newPV = (sumcorps*3) + (sumesprit *2) + sumame;
|
||||||
|
if ( newPV != this.data.data.caracsecondaire.pv.max) {
|
||||||
|
this.data.data.caracsecondaire.pv.max = newPV;
|
||||||
|
this.update( { 'data.caracsecondaire.pv.max': newPV });
|
||||||
|
}
|
||||||
|
|
||||||
|
this.data.data.caracsecondaire.reaction.value = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
||||||
|
this.data.data.caracsecondaire.reaction.max = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
||||||
|
|
||||||
|
this.data.data.caracsecondaire.defensephy.value = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
||||||
|
this.data.data.caracsecondaire.defensephy.max = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
||||||
|
|
||||||
|
this.data.data.caracsecondaire.defensemen.value = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
||||||
|
this.data.data.caracsecondaire.defensemen.max = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
||||||
|
|
||||||
|
this.data.data.caracsecondaire.deplacement.value = basecorps.agilite.value + basecorps.vigueur.value;
|
||||||
|
this.data.data.caracsecondaire.deplacement.max = basecorps.agilite.value + basecorps.vigueur.value;
|
||||||
|
|
||||||
|
this.data.data.caracsecondaire.capaenc.value = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
||||||
|
this.data.data.caracsecondaire.capaenc.max = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async equiperObject( equipementId ) {
|
||||||
|
let item = this.data.items.find( item => item.id == equipementId );
|
||||||
|
if (item && item.data.data) {
|
||||||
|
let update = { _id: item.id, "data.equipe": !item.data.data.equipe };
|
||||||
|
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async updateCompetence( compId, niveau) {
|
||||||
|
let comp = this.data.items.find( item => item.type == 'competence' && item.id == compId);
|
||||||
|
console.log("Comp updated!!!!", compId, niveau);
|
||||||
|
if (comp) {
|
||||||
|
const update = { _id: comp.id, 'data.niveau': niveau };
|
||||||
|
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Compétence inconnue", compId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
buildListeActionsCombat( ) {
|
||||||
|
let armes = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rollAttribute( attrkey, subAttrKey = 'defaut') {
|
||||||
|
let attr = duplicate(this.data.data.attributs[attrkey]);
|
||||||
|
let subAttr = duplicate(this.data.data.attributs[attrkey].values[subAttrKey] );
|
||||||
|
console.log("ATTR : ", attr, subAttr);
|
||||||
|
if ( attr ) {
|
||||||
|
subAttr.label = subAttr.label || "";
|
||||||
|
let title = `Attribut : ${attr.label} ${subAttr.label} : ${subAttr.value}`;
|
||||||
|
let rollData = {
|
||||||
|
mode: "attribut",
|
||||||
|
alias: this.name,
|
||||||
|
actorImg: this.img,
|
||||||
|
actorId: this.id,
|
||||||
|
attr: attr,
|
||||||
|
valuePhysique: this.data.data.attributs["physique"].values["defaut"].value,
|
||||||
|
subAttr: subAttr,
|
||||||
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
|
title: title,
|
||||||
|
isBlesse: this.data.data.etat.etat == "blesse",
|
||||||
|
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||||
|
bonusMalus: 0,
|
||||||
|
optionsSR: YggdrasillUtility.buildSROptions( ),
|
||||||
|
sr: 0
|
||||||
|
}
|
||||||
|
let rollDialog = await YggdrasillRoll.create( this, rollData);
|
||||||
|
console.log(rollDialog);
|
||||||
|
rollDialog.render( true );
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Attribut non trouvée");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rollCarac( categName, caracName) {
|
||||||
|
let carac = duplicate(this.data.data.carac[categName].carac[caracName]);
|
||||||
|
console.log("CARAC : ", carac, this.data.data.carac);
|
||||||
|
if ( carac) {
|
||||||
|
let rollData = {
|
||||||
|
mode: "carac",
|
||||||
|
alias: this.name,
|
||||||
|
actorImg: this.img,
|
||||||
|
actorId: this.id,
|
||||||
|
img: `systems/fvtt-yggdrasill/images/icons/icon_carac_${categName}.png`,
|
||||||
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
|
title: `Caractéristique ${carac.label} : ${carac.value}`,
|
||||||
|
selectedCarac: carac,
|
||||||
|
isEpuise: this.isEpuise(),
|
||||||
|
isBlesse: this.isBlesse(),
|
||||||
|
isMeurtri: this.isMeurtri(),
|
||||||
|
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||||
|
bonusMalus: 0,
|
||||||
|
optionsFuror: YggdrasillUtility.buildListOptions(0, this.getCurrentFuror() ),
|
||||||
|
furorUsage: 0,
|
||||||
|
optionsSR: YggdrasillUtility.buildSROptions( ),
|
||||||
|
sr: 0
|
||||||
|
}
|
||||||
|
let rollDialog = await YggdrasillRoll.create( this, rollData);
|
||||||
|
console.log(rollDialog);
|
||||||
|
rollDialog.render( true );
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Caractéristique non trouvée");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rollCompetence( competenceId ) {
|
||||||
|
let competence = this.data.items.find( item => item.type == 'competence' && item.id == competenceId);
|
||||||
|
if ( competence) {
|
||||||
|
let rollData = {
|
||||||
|
mode: "competence",
|
||||||
|
alias: this.name,
|
||||||
|
actorImg: this.img,
|
||||||
|
actorId: this.id,
|
||||||
|
img: competence.img,
|
||||||
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
|
title: `Compétence ${competence.name} : ${competence.data.data.niveau}`,
|
||||||
|
competence: duplicate(competence),
|
||||||
|
isEpuise: this.isEpuise(),
|
||||||
|
isBlesse: this.isBlesse(),
|
||||||
|
isMeurtri: this.isMeurtri(),
|
||||||
|
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||||
|
bonusMalus: 0,
|
||||||
|
optionsFuror: YggdrasillUtility.buildListOptions(0, this.getCurrentFuror() ),
|
||||||
|
furorUsage: 0,
|
||||||
|
optionsSR: YggdrasillUtility.buildSROptions( ),
|
||||||
|
sr: 0
|
||||||
|
}
|
||||||
|
let rollDialog = await YggdrasillRoll.create( this, rollData);
|
||||||
|
console.log(rollDialog);
|
||||||
|
rollDialog.render( true );
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Compétence non trouvée");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getAttaqueData( mode ) {
|
||||||
|
let attackData = duplicate(attackMode[mode]);
|
||||||
|
if ( attackData){
|
||||||
|
attackData.mode = mode;
|
||||||
|
attackData.carac = duplicate(this.data.data.carac[attackData.categName].carac[attackData.caracName]);
|
||||||
|
if ( attackData.malus != 0) {
|
||||||
|
let malusTab = attackData.malus.split(';');
|
||||||
|
attackData.malus = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||||
|
}
|
||||||
|
if ( attackData.protection != 0) {
|
||||||
|
let malusTab = attackData.protection.split(';');
|
||||||
|
attackData.protection = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||||
|
}
|
||||||
|
if ( attackData.bonusdegats != 0) {
|
||||||
|
let malusTab = attackData.bonusdegats.split(';');
|
||||||
|
attackData.bonusdegats = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return attackData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getTirData( mode) {
|
||||||
|
let attackData = duplicate( tirMode[mode] );
|
||||||
|
if ( attackData){
|
||||||
|
attackData.mode = mode;
|
||||||
|
attackData.carac = duplicate(this.data.data.carac[attackData.categName].carac[attackData.caracName]);
|
||||||
|
if ( attackData.malus != 0) {
|
||||||
|
let malusTab = attackData.malus.split(';');
|
||||||
|
attackData.malus = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||||
|
}
|
||||||
|
if ( attackData.protection != 0) {
|
||||||
|
let malusTab = attackData.protection.split(';');
|
||||||
|
attackData.protection = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||||
|
}
|
||||||
|
if ( attackData.bonusdegats != 0) {
|
||||||
|
let malusTab = attackData.bonusdegats.split(';');
|
||||||
|
attackData.bonusdegats = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return attackData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rollSort( sortId, magie) {
|
||||||
|
let sort = this.data.items.find( item => item.id == sortId);
|
||||||
|
let competence = this.data.items.find( item => item.type == 'competence' && item.name.toLowerCase().includes(magie));
|
||||||
|
console.log("SORT :", sortId, sort, competence );
|
||||||
|
|
||||||
|
let carac;
|
||||||
|
if ( magie == "sejdr") {
|
||||||
|
carac = duplicate(this.data.data.carac.ame.carac.instinct);
|
||||||
|
} else if ( magie == "rune") {
|
||||||
|
carac = duplicate(this.data.data.carac.ame.carac.communication);
|
||||||
|
} else {
|
||||||
|
carac = duplicate(this.data.data.carac.ame.carac.charisme);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( sort && competence) {
|
||||||
|
|
||||||
|
let rollData = {
|
||||||
|
mode: magie,
|
||||||
|
alias: this.name,
|
||||||
|
actorImg: this.img,
|
||||||
|
actorId: this.id,
|
||||||
|
img: sort.img,
|
||||||
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
|
title: magie + " - " + sort.name,
|
||||||
|
selectedCarac: carac,
|
||||||
|
agiliteCarac: duplicate(this.data.data.carac.corps.carac.agilite),
|
||||||
|
instinctCarac: duplicate(this.data.data.carac.ame.carac.instinct),
|
||||||
|
sort: duplicate(sort),
|
||||||
|
competence: duplicate(competence),
|
||||||
|
dureeGaldr: "1d5a",
|
||||||
|
nbCibles: "1",
|
||||||
|
zoneGaldr: "INS10cm3",
|
||||||
|
bonusdefense: 0,
|
||||||
|
isEpuise: this.isEpuise(),
|
||||||
|
isBlesse: this.isBlesse(),
|
||||||
|
isMeurtri: this.isMeurtri(),
|
||||||
|
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||||
|
optionsBD: YggdrasillUtility.buildListOptions(0, +6),
|
||||||
|
bonusMalus: 0,
|
||||||
|
optionsFuror: YggdrasillUtility.buildListOptions(0, this.getCurrentFuror() ),
|
||||||
|
furorUsage: 0,
|
||||||
|
optionsSR: YggdrasillUtility.buildSROptions( ),
|
||||||
|
sr: 14,
|
||||||
|
puissanceRune: 1,
|
||||||
|
optionsPuissanceRune: YggdrasillUtility.buildListOptions(1, 15),
|
||||||
|
supportRune: "peau",
|
||||||
|
}
|
||||||
|
let rollDialog = await YggdrasillRoll.create( this, rollData);
|
||||||
|
console.log(rollDialog);
|
||||||
|
rollDialog.render( true );
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Sortilège ou Compétence non trouvée !", sort, compName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rollArme( armeId ) {
|
||||||
|
let arme = this.data.items.find( item => item.id == armeId);
|
||||||
|
let compName = armeCategorieToCompetence[arme.data.data.categorie];
|
||||||
|
let competence = this.data.items.find( item => item.type == 'competence' && item.name == compName);
|
||||||
|
console.log("ARME :", armeId, arme, competence );
|
||||||
|
|
||||||
|
if ( arme && competence) {
|
||||||
|
|
||||||
|
let attackDef
|
||||||
|
if (arme.type == 'armecc') {
|
||||||
|
attackDef = this.getAttaqueData("classique");
|
||||||
|
} else {
|
||||||
|
attackDef = this.getTirData("pose");
|
||||||
|
}
|
||||||
|
|
||||||
|
let rollData = {
|
||||||
|
mode: arme.type,
|
||||||
|
attackDef: attackDef,
|
||||||
|
alias: this.name,
|
||||||
|
actorImg: this.img,
|
||||||
|
actorId: this.id,
|
||||||
|
img: competence.img,
|
||||||
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
|
title: "Attaque !",
|
||||||
|
selectedCarac: duplicate(this.data.data.carac.corps.carac.agilite),
|
||||||
|
arme: duplicate(arme),
|
||||||
|
competence: duplicate(competence),
|
||||||
|
bonusdefense: 0,
|
||||||
|
isEpuise: this.isEpuise(),
|
||||||
|
isBlesse: this.isBlesse(),
|
||||||
|
isMeurtri: this.isMeurtri(),
|
||||||
|
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||||
|
optionsBD: YggdrasillUtility.buildListOptions(0, +6),
|
||||||
|
bonusMalus: 0,
|
||||||
|
optionsFuror: YggdrasillUtility.buildListOptions(0, this.getCurrentFuror() ),
|
||||||
|
furorUsage: 0,
|
||||||
|
optionsSR: YggdrasillUtility.buildSROptions( ),
|
||||||
|
sr: 14
|
||||||
|
}
|
||||||
|
let rollDialog = await YggdrasillRoll.create( this, rollData);
|
||||||
|
console.log(rollDialog);
|
||||||
|
rollDialog.render( true );
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Arme ou Compétence Martiale non trouvée !", arme, compName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getEncTotal( ) {
|
||||||
|
let encTotal = 0;
|
||||||
|
for( let item of this.data.items) {
|
||||||
|
if (item.type == "equipement" || item.type == "armecc"
|
||||||
|
|| item.type == "armedist" || item.type == "armure" || item.type == "monnaie") {
|
||||||
|
encTotal += item.data.data.enc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return encTotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getProtectionTotal( ) {
|
||||||
|
let protectionTotal = 0;
|
||||||
|
for( let item of this.data.items) {
|
||||||
|
if (item.type == "armure" && item.data.data.equipe) {
|
||||||
|
protectionTotal += Number(item.data.data.protection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return protectionTotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async incrementeQuantite( objetId ) {
|
||||||
|
let objetQ = this.data.items.find( item => item.id == objetId );
|
||||||
|
if (objetQ) {
|
||||||
|
let newQ = objetQ.data.data.quantite + 1;
|
||||||
|
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'data.quantite': newQ }]); // pdates one EmbeddedEntity
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async decrementeQuantite( objetId ) {
|
||||||
|
let objetQ = this.data.items.find( item => item.id == objetId );
|
||||||
|
if (objetQ) {
|
||||||
|
let newQ = objetQ.data.data.quantite - 1;
|
||||||
|
newQ = (newQ <= 0) ? 0 : newQ;
|
||||||
|
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'data.quantite': newQ }]); // pdates one EmbeddedEntity
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
46
modules/yggdrasill-combat.js
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import { YggdrasillUtility } from "./yggdrasill-utility.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
export class YggdrasillCombat extends Combat {
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rollInitiative(ids, formula = undefined, messageOptions = {} ) {
|
||||||
|
ids = typeof ids === "string" ? [ids] : ids;
|
||||||
|
const currentId = this.combatant._id;
|
||||||
|
for (let cId = 0; cId < ids.length; cId++) {
|
||||||
|
const c = this.combatants.get(ids[cId]);
|
||||||
|
let initBonus = c.actor ? c.actor.getInitiativeScore() : 0;
|
||||||
|
//console.log("Init for ", initBonus);
|
||||||
|
const roll = c.getInitiativeRoll("1d10+"+initBonus);
|
||||||
|
if ( !roll.total) {
|
||||||
|
roll.evaluate( {async: false});
|
||||||
|
}
|
||||||
|
if (roll.total <= 0) roll.total = 0;
|
||||||
|
//console.log("Compute init for", roll.total);
|
||||||
|
let id = c._id || c.id;
|
||||||
|
await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: roll.total }]);
|
||||||
|
|
||||||
|
// Send a chat message
|
||||||
|
let rollMode = messageOptions.rollMode || game.settings.get("core", "rollMode");
|
||||||
|
let messageData = mergeObject(
|
||||||
|
{
|
||||||
|
speaker: {
|
||||||
|
scene: canvas.scene._id,
|
||||||
|
actor: c.actor ? c.actor._id : null,
|
||||||
|
token: c.token._id,
|
||||||
|
alias: c.token.name,
|
||||||
|
sound: CONFIG.sounds.dice,
|
||||||
|
},
|
||||||
|
flavor: `${c.token.name} a fait son jet d'Initiative (1d10+${initBonus})
|
||||||
|
<br>
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
messageOptions
|
||||||
|
);
|
||||||
|
roll.toMessage(messageData, { rollMode, create: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
123
modules/yggdrasill-figurant-sheet.js
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
/**
|
||||||
|
* Extend the basic ActorSheet with some very simple modifications
|
||||||
|
* @extends {ActorSheet}
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { YggdrasillUtility } from "./yggdrasill-utility.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
export class YggdrasillFigurantSheet extends ActorSheet {
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static get defaultOptions() {
|
||||||
|
|
||||||
|
return mergeObject(super.defaultOptions, {
|
||||||
|
classes: ["yggdrasill", "sheet", "actor"],
|
||||||
|
template: "systems/fvtt-yggdrasill/templates/figurant-sheet.html",
|
||||||
|
width: 640,
|
||||||
|
height: 720,
|
||||||
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||||
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||||
|
editScore: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getData() {
|
||||||
|
const objectData = YggdrasillUtility.data(this.object);
|
||||||
|
|
||||||
|
let formData = {
|
||||||
|
title: this.title,
|
||||||
|
id: objectData.id,
|
||||||
|
type: objectData.type,
|
||||||
|
img: objectData.img,
|
||||||
|
name: objectData.name,
|
||||||
|
editable: this.isEditable,
|
||||||
|
cssClass: this.isEditable ? "editable" : "locked",
|
||||||
|
data: foundry.utils.deepClone(YggdrasillUtility.templateData(this.object)),
|
||||||
|
limited: this.object.limited,
|
||||||
|
equipements: this.actor.getToutEquipements(),
|
||||||
|
effetsmagiques: this.actor.getEffetsMagiques(),
|
||||||
|
encTotal: this.actor.getEncTotal(),
|
||||||
|
monnaies: this.actor.getMonnaies(),
|
||||||
|
optionsAttr: new Array(21).fill('option'),
|
||||||
|
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||||
|
options: this.options,
|
||||||
|
owner: this.document.isOwner,
|
||||||
|
editScore: this.options.editScore,
|
||||||
|
isGM: game.user.isGM
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("FIGURANT : ", formData);
|
||||||
|
return formData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
// Everything below here is only needed if the sheet is editable
|
||||||
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
|
// Update Inventory Item
|
||||||
|
html.find('.item-edit').click(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
const item = this.actor.getOwnedItem(li.data("item-id"));
|
||||||
|
item.sheet.render(true);
|
||||||
|
});
|
||||||
|
// Delete Inventory Item
|
||||||
|
html.find('.item-delete').click(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
YggdrasillUtility.confirmDelete(this, li);
|
||||||
|
});
|
||||||
|
|
||||||
|
html.find('.equipement-moins').click(event => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
this.actor.decrementeQuantite( li.data("item-id") );
|
||||||
|
} );
|
||||||
|
html.find('.equipement-plus').click(event => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
this.actor.incrementeQuantite( li.data("item-id") );
|
||||||
|
} );
|
||||||
|
|
||||||
|
html.find('.attribut-roll').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item");
|
||||||
|
let attrKey = li.data("attr-key");
|
||||||
|
let attrSubKey = $(event.currentTarget).data("attr-sub-key");
|
||||||
|
this.actor.rollAttribute(attrKey, attrSubKey);
|
||||||
|
});
|
||||||
|
html.find('.lock-unlock-sheet').click((event) => {
|
||||||
|
this.options.editScore = !this.options.editScore;
|
||||||
|
this.render(true);
|
||||||
|
});
|
||||||
|
html.find('.item-link a').click((event) => {
|
||||||
|
const itemId = $(event.currentTarget).data("item-id");
|
||||||
|
const item = this.actor.getOwnedItem(itemId);
|
||||||
|
item.sheet.render(true);
|
||||||
|
});
|
||||||
|
html.find('.item-equip').click(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
this.actor.equiperObject( li.data("item-id") );
|
||||||
|
this.render(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
setPosition(options = {}) {
|
||||||
|
const position = super.setPosition(options);
|
||||||
|
const sheetBody = this.element.find(".sheet-body");
|
||||||
|
const bodyHeight = position.height - 192;
|
||||||
|
sheetBody.css("height", bodyHeight);
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
_updateObject(event, formData) {
|
||||||
|
// Update the Actor
|
||||||
|
return this.object.update(formData);
|
||||||
|
}
|
||||||
|
}
|
101
modules/yggdrasill-item-sheet.js
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
import { YggdrasillUtility } from "./yggdrasill-utility.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extend the basic ItemSheet with some very simple modifications
|
||||||
|
* @extends {ItemSheet}
|
||||||
|
*/
|
||||||
|
export class YggdrasillItemSheet extends ItemSheet {
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static get defaultOptions() {
|
||||||
|
return mergeObject(super.defaultOptions, {
|
||||||
|
classes: ["fvtt-yggdrasill", "sheet", "item"],
|
||||||
|
template: "systems/fvtt-yggdrasill/templates/item-sheet.html",
|
||||||
|
width: 550,
|
||||||
|
height: 550
|
||||||
|
//tabs: [{navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description"}]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
_getHeaderButtons() {
|
||||||
|
let buttons = super._getHeaderButtons();
|
||||||
|
// Add "Post to chat" button
|
||||||
|
// We previously restricted this to GM and editable items only. If you ever find this comment because it broke something: eh, sorry!
|
||||||
|
buttons.unshift(
|
||||||
|
{
|
||||||
|
class: "post",
|
||||||
|
icon: "fas fa-comment",
|
||||||
|
onclick: ev => {}
|
||||||
|
})
|
||||||
|
return buttons
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
setPosition(options={}) {
|
||||||
|
const position = super.setPosition(options);
|
||||||
|
const sheetBody = this.element.find(".sheet-body");
|
||||||
|
const bodyHeight = position.height - 192;
|
||||||
|
sheetBody.css("height", bodyHeight);
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async getData() {
|
||||||
|
const objectData = YggdrasillUtility.data(this.object);
|
||||||
|
|
||||||
|
let formData = {
|
||||||
|
title: this.title,
|
||||||
|
id: objectData.id,
|
||||||
|
type: objectData.type,
|
||||||
|
img: objectData.img,
|
||||||
|
name: objectData.name,
|
||||||
|
editable: this.isEditable,
|
||||||
|
cssClass: this.isEditable ? "editable" : "locked",
|
||||||
|
data: foundry.utils.deepClone(YggdrasillUtility.templateData(this.object)),
|
||||||
|
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||||
|
optionsNiveaux4: YggdrasillUtility.buildListOptions(1, 5),
|
||||||
|
limited: this.object.limited,
|
||||||
|
options: this.options,
|
||||||
|
owner: this.document.isOwner,
|
||||||
|
isGM: game.user.isGM
|
||||||
|
}
|
||||||
|
return formData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
// Everything below here is only needed if the sheet is editable
|
||||||
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
|
// Update Inventory Item
|
||||||
|
html.find('.item-edit').click(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
const item = this.object.options.actor.getOwnedItem(li.data("item-id"));
|
||||||
|
item.sheet.render(true);
|
||||||
|
});
|
||||||
|
// Update Inventory Item
|
||||||
|
html.find('.item-delete').click(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
this.object.options.actor.deleteOwnedItem( li.data("item-id") ).then( this.render(true));
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
get template()
|
||||||
|
{
|
||||||
|
let type = this.item.type;
|
||||||
|
return `systems/fvtt-yggdrasill/templates/item-${type}-sheet.html`;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/** @override */
|
||||||
|
_updateObject(event, formData) {
|
||||||
|
return this.object.update(formData);
|
||||||
|
}
|
||||||
|
}
|
100
modules/yggdrasill-main.js
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
/**
|
||||||
|
* YggDrasill system
|
||||||
|
* Author: Uberwald
|
||||||
|
* Software License: Prop
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
// Import Modules
|
||||||
|
import { YggdrasillActor } from "./yggdrasill-actor.js";
|
||||||
|
import { YggdrasillItemSheet } from "./yggdrasill-item-sheet.js";
|
||||||
|
import { YggdrasillActorSheet } from "./yggdrasill-actor-sheet.js";
|
||||||
|
import { YggdrasillFigurantSheet } from "./yggdrasill-figurant-sheet.js";
|
||||||
|
import { YggdrasillUtility } from "./yggdrasill-utility.js";
|
||||||
|
import { YggdrasillCombat } from "./yggdrasill-combat.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/* Foundry VTT Initialization */
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
|
/************************************************************************************/
|
||||||
|
Hooks.once("init", async function () {
|
||||||
|
console.log(`Initializing Yggdrasill`);
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
// preload handlebars templates
|
||||||
|
YggdrasillUtility.preloadHandlebarsTemplates();
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
// Set an initiative formula for the system
|
||||||
|
CONFIG.Combat.initiative = {
|
||||||
|
formula: "1d20",
|
||||||
|
decimals: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
game.socket.on("system.fvtt-yggdrasill", data => {
|
||||||
|
YggdrasillUtility.onSocketMesssage(data);
|
||||||
|
});
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
// Define custom Entity classes
|
||||||
|
CONFIG.Actor.documentClass = YggdrasillActor;
|
||||||
|
CONFIG.Combat.documentClass = YggdrasillCombat;
|
||||||
|
CONFIG.Yggdrasill = {
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
// Register sheet application classes
|
||||||
|
Actors.unregisterSheet("core", ActorSheet);
|
||||||
|
Actors.registerSheet("fvtt-yggdrasill", YggdrasillActorSheet, { types: ["personnage"], makeDefault: true });
|
||||||
|
Actors.registerSheet("fvtt-yggdrasill", YggdrasillFigurantSheet, { types: ["figurant"], makeDefault: false });
|
||||||
|
Items.unregisterSheet("core", ItemSheet);
|
||||||
|
Items.registerSheet("fvtt-yggdrasill", YggdrasillItemSheet, { makeDefault: true });
|
||||||
|
|
||||||
|
// Init/registers
|
||||||
|
Hooks.on('renderChatLog', (log, html, data) => {
|
||||||
|
//YggdrasillUtility.registerChatCallbacks(html);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
function welcomeMessage() {
|
||||||
|
//ChatUtility.removeMyChatMessageContaining('<div id="welcome-message-sos">');
|
||||||
|
ChatMessage.create({
|
||||||
|
user: game.user.id,
|
||||||
|
whisper: [game.user.id],
|
||||||
|
content: `<div id="welcome-message-yggdrasill"><span class="rdd-roll-part">Bienvenue !</div>
|
||||||
|
` });
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/* Foundry VTT Initialization */
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
Hooks.once("ready", function () {
|
||||||
|
|
||||||
|
// User warning
|
||||||
|
if (!game.user.isGM && game.user.character == undefined) {
|
||||||
|
ui.notifications.info("Attention ! Vous n'est connecté à aucun personnage");
|
||||||
|
ChatMessage.create({
|
||||||
|
content: "<b>WARNING</b> Le joueur " + game.user.name + " n'est pas connecté à un personnage !",
|
||||||
|
user: game.user._id
|
||||||
|
});
|
||||||
|
}
|
||||||
|
welcomeMessage();
|
||||||
|
});
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/* Foundry VTT Initialization */
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
Hooks.on("chatMessage", (html, content, msg) => {
|
||||||
|
if (content[0] == '/') {
|
||||||
|
let regExp = /(\S+)/g;
|
||||||
|
let commands = content.toLowerCase().match(regExp);
|
||||||
|
console.log(commands);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
207
modules/yggdrasill-roll-dialog.js
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
import { YggdrasillUtility } from "./yggdrasill-utility.js";
|
||||||
|
const dureeGaldrSD = { "1d5a": 3, "1d10t": 6, "1d10m": 9, "1d10h": 12, "1d5j": 15};
|
||||||
|
const ciblesGaldrSD = { "1": 3, "2_4": 6, "5_9": 9, "10_49": 12, "50plus": 15};
|
||||||
|
const zonesciblesGaldrSD = { "INS10cm3": 3, "INS50cm3": 6, "INS1m3": 9, "INS5m3": 12, "INS10m3": 15};
|
||||||
|
|
||||||
|
export class YggdrasillRoll extends Dialog {
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async create(actor, rollData ) {
|
||||||
|
|
||||||
|
let html
|
||||||
|
let h = 440;
|
||||||
|
if ( rollData.mode == "competence") {
|
||||||
|
html = await renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-competence.html', rollData);
|
||||||
|
h = 340;
|
||||||
|
} else if (rollData.mode == "carac") {
|
||||||
|
html = await renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-carac.html', rollData);
|
||||||
|
h = 320;
|
||||||
|
} else if (rollData.mode == "attribut") {
|
||||||
|
html = await renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-attribut.html', rollData);
|
||||||
|
h = 320;
|
||||||
|
} else if (rollData.mode == "armecc") {
|
||||||
|
html = await renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-armecc.html', rollData);
|
||||||
|
} else if (rollData.mode == "sejdr") {
|
||||||
|
html = await renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-sejdr.html', rollData);
|
||||||
|
} else if (rollData.mode == "rune") {
|
||||||
|
html = await renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-rune.html', rollData);
|
||||||
|
} else if (rollData.mode == "galdr") {
|
||||||
|
html = await renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-galdr.html', rollData);
|
||||||
|
} else {
|
||||||
|
html = await renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-armetir.html', rollData);
|
||||||
|
}
|
||||||
|
let options = { classes: ["yggdrasilldialog"], width: 600, height: h, 'z-index': 99999 };
|
||||||
|
return new YggdrasillRoll(actor, rollData, html, options );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
constructor(actor, rollData, html, options, close = undefined) {
|
||||||
|
let conf = {
|
||||||
|
title: (rollData.mode == "competence") ? "Compétence" : "Caractéristique",
|
||||||
|
content: html,
|
||||||
|
buttons: {
|
||||||
|
roll: {
|
||||||
|
icon: '<i class="fas fa-check"></i>',
|
||||||
|
label: "Lancer le Test",
|
||||||
|
callback: () => { this.roll() }
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
icon: '<i class="fas fa-times"></i>',
|
||||||
|
label: "Annuler",
|
||||||
|
callback: () => { this.close() }
|
||||||
|
} },
|
||||||
|
default: "Roll",
|
||||||
|
close: close
|
||||||
|
}
|
||||||
|
|
||||||
|
super(conf, options);
|
||||||
|
|
||||||
|
this.actor = actor;
|
||||||
|
this.rollData = rollData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
roll () {
|
||||||
|
if ( this.rollData.mode == "attribut") {
|
||||||
|
YggdrasillUtility.rollAttribute(this.rollData)
|
||||||
|
} else {
|
||||||
|
YggdrasillUtility.rollYggdrasill( this.rollData )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
updateGaldrSR( ) {
|
||||||
|
let sdDuree = Number(dureeGaldrSD[this.rollData.dureeGaldr]);
|
||||||
|
let sdVar = 0;
|
||||||
|
if ( this.rollData.sort.data.voie == "illusion") {
|
||||||
|
sdVar = Number(zonesciblesGaldrSD[this.rollData.zoneGaldr]);
|
||||||
|
} else {
|
||||||
|
sdVar = Number(ciblesGaldrSD[this.rollData.nbCibles]);
|
||||||
|
}
|
||||||
|
let SR = Number(this.rollData.sort.data.sd) + sdDuree + sdVar;
|
||||||
|
$("#srTotal").text(SR);
|
||||||
|
this.rollData.sr = SR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
updateRuneSR() {
|
||||||
|
let support = 0;
|
||||||
|
|
||||||
|
this.rollData.dureeRune = 6 - this.rollData.agiliteCarac.value;
|
||||||
|
if ( this.rollData.supportRune == "peau") {
|
||||||
|
support = 3;
|
||||||
|
this.rollData.echelleDuree = "Actions";
|
||||||
|
}
|
||||||
|
if ( this.rollData.supportRune == "tissu") {
|
||||||
|
support = 6;
|
||||||
|
this.rollData.echelleDuree = "Tours";
|
||||||
|
}
|
||||||
|
if ( this.rollData.supportRune == "cuir") {
|
||||||
|
support = 9;
|
||||||
|
this.rollData.echelleDuree = "Minutes";
|
||||||
|
}
|
||||||
|
if ( this.rollData.supportRune == "bois") {
|
||||||
|
support = 12;
|
||||||
|
this.rollData.echelleDuree = "Heures";
|
||||||
|
}
|
||||||
|
if ( this.rollData.supportRune == "pierremetal") {
|
||||||
|
support = 15;
|
||||||
|
this.rollData.echelleDuree = "Jours";
|
||||||
|
}
|
||||||
|
let SR = this.rollData.puissanceRune + (Number(this.rollData.sort.data.niveau)*3) + support;
|
||||||
|
$("#srTotal").text(SR);
|
||||||
|
$("#runeDuree").text( this.rollData.dureeRune + " " + this.rollData.echelleDuree);
|
||||||
|
$("#runeDureeVie").text( this.rollData.puissanceRune + " " + this.rollData.echelleDuree);
|
||||||
|
this.rollData.sr = SR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
activateListeners(html) {
|
||||||
|
super.activateListeners(html);
|
||||||
|
|
||||||
|
var dialog = this;
|
||||||
|
function onLoad() {
|
||||||
|
if (dialog.rollData.mode == "competence") {
|
||||||
|
let carac = dialog.actor.getCarac( "Puissance" );
|
||||||
|
dialog.rollData.selectedCarac = carac;
|
||||||
|
} else if (dialog.rollData.mode == "armecc" || dialog.rollData.mode == "armedist" ) {
|
||||||
|
$("#caracName").text(dialog.rollData.selectedCarac.label);
|
||||||
|
$("#attackDescr").text(dialog.rollData.attackDef.description);
|
||||||
|
} else if ( dialog.rollData.mode == "sejdr" || dialog.rollData.mode == "rune" || dialog.rollData.mode == "galdr" ) {
|
||||||
|
$("#caracName").text(dialog.rollData.selectedCarac.label);
|
||||||
|
}
|
||||||
|
if (dialog.rollData.mode == "rune" ) {
|
||||||
|
dialog.updateRuneSR();
|
||||||
|
}
|
||||||
|
if (dialog.rollData.mode == "galdr" ) {
|
||||||
|
dialog.updateGaldrSR();
|
||||||
|
}
|
||||||
|
if (dialog.rollData.mode == "attribut") {
|
||||||
|
$("#attrValue").text("2d10+"+dialog.rollData.subAttr.value);
|
||||||
|
} else {
|
||||||
|
$("#caracValue").text(dialog.rollData.selectedCarac.value+"d10");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$(function () { onLoad(); });
|
||||||
|
|
||||||
|
html.find('#caracName').change((event) => {
|
||||||
|
let caracKey = event.currentTarget.value;
|
||||||
|
let carac = this.actor.getCarac( caracKey );
|
||||||
|
this.rollData.selectedCarac = carac;
|
||||||
|
$("#caracValue").text(carac.value+"d10");
|
||||||
|
});
|
||||||
|
|
||||||
|
html.find('#typeAttack').change((event) => {
|
||||||
|
let attackType = event.currentTarget.value;
|
||||||
|
let attackDef
|
||||||
|
if ( this.rollData.mode == 'armecc')
|
||||||
|
attackDef = this.actor.getAttaqueData( attackType);
|
||||||
|
else
|
||||||
|
attackDef = this.actor.getTirData( attackType);
|
||||||
|
this.rollData.attackDef = attackDef;
|
||||||
|
this.rollData.selectedCarac = attackDef.carac;
|
||||||
|
$("#caracValue").text(attackDef.carac.value+"d10");
|
||||||
|
$("#caracName").text(attackDef.carac.label);
|
||||||
|
$("#attackDescr").text(attackDef.description);
|
||||||
|
$("#malus").text(attackDef.malus);
|
||||||
|
});
|
||||||
|
|
||||||
|
html.find('#supportRune').change((event) => {
|
||||||
|
this.rollData.supportRune = event.currentTarget.value;
|
||||||
|
this.updateRuneSR();
|
||||||
|
});
|
||||||
|
html.find('#puissanceRune').change((event) => {
|
||||||
|
this.rollData.puissanceRune = Number(event.currentTarget.value);
|
||||||
|
this.updateRuneSR();
|
||||||
|
});
|
||||||
|
|
||||||
|
html.find('#dureeGaldr').change((event) => {
|
||||||
|
this.rollData.dureeGaldr = event.currentTarget.value;
|
||||||
|
this.updateGaldrSR();
|
||||||
|
});
|
||||||
|
html.find('#nbCibles').change((event) => {
|
||||||
|
this.rollData.nbCibles = event.currentTarget.value;
|
||||||
|
this.updateGaldrSR();
|
||||||
|
});
|
||||||
|
html.find('#zoneGaldr').change((event) => {
|
||||||
|
this.rollData.zoneGaldr = event.currentTarget.value;
|
||||||
|
this.updateGaldrSR();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
html.find('#bonusMalus').change((event) => {
|
||||||
|
this.rollData.bonusMalus = Number(event.currentTarget.value);
|
||||||
|
});
|
||||||
|
html.find('#furorUsage').change((event) => {
|
||||||
|
this.rollData.furorUsage = Number(event.currentTarget.value);
|
||||||
|
});
|
||||||
|
html.find('#sr').change((event) => {
|
||||||
|
this.rollData.sr = Number(event.currentTarget.value);
|
||||||
|
});
|
||||||
|
html.find('#bonusdefense').change((event) => {
|
||||||
|
this.rollData.bonusdefense = Number(event.currentTarget.value);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
362
modules/yggdrasill-utility.js
Normal file
@ -0,0 +1,362 @@
|
|||||||
|
/* -------------------------------------------- */
|
||||||
|
//import { YggdrasillCombat } from "./yggdrasill-combat.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
const dureeGaldrText = { "1d5a": "Actions", "1d10t": "Tours", "1d10m": "Minutes", "1d10h": "Heures", "1d5j": "Jours"};
|
||||||
|
const ciblesGaldrText = { "1": "1", "2_4": "2 à 4", "5_9": "5 à 9", "10_49": "10 à 49", "50plus": "50 et plus"};
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
export class YggdrasillUtility {
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async preloadHandlebarsTemplates() {
|
||||||
|
|
||||||
|
const templatePaths = [
|
||||||
|
'systems/fvtt-yggdrasill/templates/actor-sheet.html',
|
||||||
|
'systems/fvtt-yggdrasill/templates/editor-notes-gm.html',
|
||||||
|
'systems/fvtt-yggdrasill/templates/hud-actor-attaque.html',
|
||||||
|
'systems/fvtt-yggdrasill/templates/hud-actor-sort.html'
|
||||||
|
]
|
||||||
|
return loadTemplates(templatePaths);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static templateData(it) {
|
||||||
|
return YggdrasillUtility.data(it)?.data ?? {}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static data(it) {
|
||||||
|
if (it instanceof Actor || it instanceof Item || it instanceof Combatant) {
|
||||||
|
return it.data;
|
||||||
|
}
|
||||||
|
return it;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static createDirectSortedOptionList( min, max) {
|
||||||
|
let options = [];
|
||||||
|
for(let i=min; i<=max; i++) {
|
||||||
|
options.push( {value:i, text: `${i}` } );
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static createDirectOptionList( min, max) {
|
||||||
|
let options = {};
|
||||||
|
for(let i=min; i<=max; i++) {
|
||||||
|
options[`${i}`] = `${i}`;
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static buildListOptions(min, max) {
|
||||||
|
let options = ""
|
||||||
|
for (let i = min; i <= max; i++) {
|
||||||
|
options += `<option value="${i}">${i}</option>`
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static buildSROptions( ) {
|
||||||
|
let options = ""
|
||||||
|
options += `<option value="0">Aucun</option>`
|
||||||
|
options += `<option value="5">Très Simple (5)</option>`
|
||||||
|
options += `<option value="7">Simple (7)</option>`
|
||||||
|
options += `<option value="10">Aisé (10)</option>`
|
||||||
|
options += `<option value="14">Moyen (14)</option>`
|
||||||
|
options += `<option value="19">Difficile (19)</option>`
|
||||||
|
options += `<option value="25">Trés Difficile (25)</option>`
|
||||||
|
options += `<option value="32">Exceptionnel (32)</option>`
|
||||||
|
options += `<option value="40">Légendaire (40)</option>`
|
||||||
|
options += `<option value="49">Divin (49)</option>`
|
||||||
|
return options;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static onSocketMesssage( msg ) {
|
||||||
|
if( !game.user.isGM ) return; // Only GM
|
||||||
|
|
||||||
|
if (msg.name == 'msg_attack' ) {
|
||||||
|
this.performAttack( msg.data );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async loadCompendiumData(compendium) {
|
||||||
|
const pack = game.packs.get(compendium);
|
||||||
|
return await pack?.getDocuments() ?? [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async loadCompendium(compendium, filter = item => true) {
|
||||||
|
let compendiumData = await YggdrasillUtility.loadCompendiumData(compendium);
|
||||||
|
return compendiumData.filter(filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async rollAttribute( rollData ) {
|
||||||
|
// Init stuff
|
||||||
|
let isCritical = false;
|
||||||
|
let isFailure = false;
|
||||||
|
let isSuccess = false;
|
||||||
|
let marge = 0;
|
||||||
|
let niveau = rollData.subAttr.value;
|
||||||
|
|
||||||
|
// Bonus/Malus total
|
||||||
|
rollData.finalBM = rollData.bonusMalus;
|
||||||
|
// Gestion cas blessé (malus de -3)
|
||||||
|
if ( rollData.isBlesse) { // Cas blesse : malus de -3
|
||||||
|
rollData.finalBM -= 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
let myRoll = new Roll("2d10+"+niveau+"+"+rollData.finalBM).roll( { async: false} );
|
||||||
|
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode") );
|
||||||
|
|
||||||
|
// Compute total SR
|
||||||
|
rollData.srFinal = rollData.sr;
|
||||||
|
if ( rollData.srFinal > 0 ) {
|
||||||
|
isCritical = myRoll.total >= rollData.srFinal*2;
|
||||||
|
isSuccess = myRoll.total >= rollData.srFinal;
|
||||||
|
marge = myRoll.total - rollData.srFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (myRoll.dice[0].results[0].result == 1 && myRoll.dice[0].results[1].result == 1) {
|
||||||
|
isFailure = true;
|
||||||
|
}
|
||||||
|
// Dégats
|
||||||
|
if ( isSuccess && rollData.subAttr.degats ) {
|
||||||
|
rollData.degatsExplain = `Marge(${marge}) + Physique(${rollData.valuePhysique}) + 1d10`;
|
||||||
|
rollData.rollDegats = new Roll("1d10+"+marge+"+"+rollData.valuePhysique).roll( { async: false} );
|
||||||
|
await this.showDiceSoNice(rollData.rollDegats, game.settings.get("core", "rollMode") );
|
||||||
|
rollData.degats = rollData.rollDegats.total;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stockage resultats
|
||||||
|
rollData.isFailure = isFailure;
|
||||||
|
rollData.isSuccess = isSuccess;
|
||||||
|
rollData.isCritical = isCritical;
|
||||||
|
rollData.marge = marge;
|
||||||
|
rollData.roll = myRoll
|
||||||
|
|
||||||
|
console.log("ROLLLL ATTR!!!!", rollData);
|
||||||
|
|
||||||
|
this.createChatWithRollMode( rollData.alias, {
|
||||||
|
content: await renderTemplate(`systems/fvtt-yggdrasill/templates/chat-generic-result.html`, rollData)
|
||||||
|
});
|
||||||
|
//myRoll.toMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async rollYggdrasill( rollData ) {
|
||||||
|
let sumDice = ( rollData.isEpuise | rollData.isMeurtri | rollData.isBlesse) ? 1 : 2;
|
||||||
|
|
||||||
|
// Init stuff
|
||||||
|
let isCritical = false;
|
||||||
|
let isFailure = false;
|
||||||
|
let isSuccess = false;
|
||||||
|
let marge = 0;
|
||||||
|
let nbDice = rollData.selectedCarac.value;
|
||||||
|
let niveauCompetence = 0;
|
||||||
|
|
||||||
|
// Select niveau de competence/arme/carac
|
||||||
|
if ( rollData.mode != "carac" ) {
|
||||||
|
niveauCompetence = rollData.competence.data.niveau;
|
||||||
|
} else {
|
||||||
|
niveauCompetence = rollData.selectedCarac.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bonus/Malus total
|
||||||
|
rollData.finalBM = rollData.bonusMalus;
|
||||||
|
if ( rollData.attackDef) {
|
||||||
|
rollData.finalBM -= rollData.attackDef.malus;
|
||||||
|
}
|
||||||
|
if ( rollData.sort && rollData.sort.data.malus ) {
|
||||||
|
rollData.finalBM += rollData.sort.data.malus;
|
||||||
|
}
|
||||||
|
// Gestion cas blessé (malus de -3)
|
||||||
|
if ( rollData.isBlesse) { // Cas blesse : malus de -3
|
||||||
|
rollData.finalBM -= 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sumDice > nbDice) sumDice = nbDice;
|
||||||
|
let myRoll = new Roll(nbDice+"d10x10kh"+sumDice+"+"+rollData.furorUsage+"d10+"+niveauCompetence+"+"+rollData.finalBM).roll( { async: false} );
|
||||||
|
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode") );
|
||||||
|
|
||||||
|
// Compute total SR
|
||||||
|
rollData.srFinal = rollData.sr;
|
||||||
|
if ( rollData.bonusdefense ) {
|
||||||
|
rollData.srFinal += rollData.bonusdefense;
|
||||||
|
}
|
||||||
|
if ( rollData.srFinal > 0 ) {
|
||||||
|
isCritical = myRoll.total >= rollData.srFinal*2;
|
||||||
|
isSuccess = myRoll.total >= rollData.srFinal;
|
||||||
|
marge = myRoll.total - rollData.srFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
rollData.rawDices = duplicate(myRoll.dice[0].results);
|
||||||
|
if (nbDice == 1 && myRoll.dice[0].results[0].result == 1) {
|
||||||
|
isFailure = true;
|
||||||
|
}
|
||||||
|
if (nbDice == 2 && myRoll.dice[0].results[0].result == 1 && myRoll.dice[0].results[1].result == 1) {
|
||||||
|
isFailure = true;
|
||||||
|
}
|
||||||
|
if (nbDice >= 3 ) {
|
||||||
|
let nbOnes = myRoll.dice[0].results.filter( dice => dice.result == 1);
|
||||||
|
isFailure = nbOnes.length >= 3;
|
||||||
|
}
|
||||||
|
if ( rollData.furorUsage > 0 ) {
|
||||||
|
let actor = game.actors.get(rollData.actorId);
|
||||||
|
actor.decrementFuror( rollData.furorUsage);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dégats
|
||||||
|
if ( isSuccess && (rollData.mode == "armecc" || rollData.mode == "armedist") ) {
|
||||||
|
rollData.degatsExplain = `Marge(${marge}) + Degats Arme(${rollData.arme.data.degat}) + Bonus Attaque(${rollData.attackDef.bonusdegats})`;
|
||||||
|
rollData.degats = marge + rollData.arme.data.degat + rollData.attackDef.bonusdegats;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stockage resultats
|
||||||
|
rollData.sumDice = sumDice;
|
||||||
|
rollData.isFailure = isFailure;
|
||||||
|
rollData.isSuccess = isSuccess;
|
||||||
|
rollData.isCritical = isCritical;
|
||||||
|
rollData.marge = marge;
|
||||||
|
rollData.roll = myRoll
|
||||||
|
|
||||||
|
// Specific GALDR
|
||||||
|
if ( rollData.sort?.type == "sortgaldr" && rollData.isSuccess) {
|
||||||
|
let galdrRoll = new Roll( rollData.dureeGaldr.substring(0, rollData.dureeGaldr.length - 1) ).roll( { async: false} );
|
||||||
|
await this.showDiceSoNice(galdrRoll, game.settings.get("core", "rollMode") );
|
||||||
|
rollData.dureeGaldrText = galdrRoll.total + " " + dureeGaldrText[rollData.dureeGaldr];
|
||||||
|
if ( rollData.sort.data.voie == "illusion") {
|
||||||
|
let volume = rollData.zoneGaldr.substring(3, rollData.zoneGaldr.length);
|
||||||
|
rollData.zoneGaldrText = rollData.instinctCarac.value + " x " + volume;
|
||||||
|
} else {
|
||||||
|
rollData.ciblesGaldrText = ciblesGaldrText[rollData.nbCibles];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("ROLLLL!!!!", rollData);
|
||||||
|
|
||||||
|
this.createChatWithRollMode( rollData.alias, {
|
||||||
|
content: await renderTemplate(`systems/fvtt-yggdrasill/templates/chat-generic-result.html`, rollData)
|
||||||
|
});
|
||||||
|
//myRoll.toMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static getUsers(filter) {
|
||||||
|
return game.users.filter(filter).map(user => user.data._id);
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static getWhisperRecipients(rollMode, name) {
|
||||||
|
switch (rollMode) {
|
||||||
|
case "blindroll": return this.getUsers(user => user.isGM);
|
||||||
|
case "gmroll": return this.getWhisperRecipientsAndGMs(name);
|
||||||
|
case "selfroll": return [game.user.id];
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static getWhisperRecipientsAndGMs(name) {
|
||||||
|
return ChatMessage.getWhisperRecipients(name)
|
||||||
|
.concat(ChatMessage.getWhisperRecipients('GM'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static blindMessageToGM(chatOptions) {
|
||||||
|
let chatGM = duplicate(chatOptions);
|
||||||
|
chatGM.whisper = this.getUsers(user => user.isGM);
|
||||||
|
chatGM.content = "Message aveugle de " + game.user.name + "<br>" + chatOptions.content;
|
||||||
|
console.log("blindMessageToGM", chatGM);
|
||||||
|
game.socket.emit("system.foundryvtt-yggdrasill", { msg: "msg_gm_chat_message", data: chatGM });
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static createChatMessage(name, rollMode, chatOptions) {
|
||||||
|
switch (rollMode) {
|
||||||
|
case "blindroll": // GM only
|
||||||
|
if (!game.user.isGM) {
|
||||||
|
this.blindMessageToGM(chatOptions);
|
||||||
|
|
||||||
|
chatOptions.whisper = [game.user.id];
|
||||||
|
chatOptions.content = "Message envoyé en aveugle au Gardien";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
chatOptions.whisper = this.getUsers(user => user.isGM);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
chatOptions.whisper = this.getWhisperRecipients(rollMode, name);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
chatOptions.alias = chatOptions.alias || name;
|
||||||
|
ChatMessage.create(chatOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static createChatWithRollMode(name, chatOptions) {
|
||||||
|
this.createChatMessage(name, game.settings.get("core", "rollMode"), chatOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async confirmDelete(actorSheet, li) {
|
||||||
|
let itemId = li.data("item-id");
|
||||||
|
let msgTxt = "<p>Etes vous certain de souhaiter supprimer cet item ?";
|
||||||
|
let buttons = {
|
||||||
|
delete: {
|
||||||
|
icon: '<i class="fas fa-check"></i>',
|
||||||
|
label: "Oui, à supprimer",
|
||||||
|
callback: () => {
|
||||||
|
actorSheet.actor.deleteEmbeddedDocuments( "Item", [itemId] );
|
||||||
|
li.slideUp(200, () => actorSheet.render(false));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
icon: '<i class="fas fa-times"></i>',
|
||||||
|
label: "Annuler"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
msgTxt += "</p>";
|
||||||
|
let d = new Dialog({
|
||||||
|
title: "Confirmer la suppression",
|
||||||
|
content: msgTxt,
|
||||||
|
buttons: buttons,
|
||||||
|
default: "cancel"
|
||||||
|
});
|
||||||
|
d.render(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async showDiceSoNice(roll, rollMode) {
|
||||||
|
if (game.modules.get("dice-so-nice")?.active) {
|
||||||
|
if (game.dice3d) {
|
||||||
|
let whisper = null;
|
||||||
|
let blind = false;
|
||||||
|
rollMode = rollMode ?? game.settings.get("core", "rollMode");
|
||||||
|
switch (rollMode) {
|
||||||
|
case "blindroll": //GM only
|
||||||
|
blind = true;
|
||||||
|
case "gmroll": //GM + rolling player
|
||||||
|
whisper = this.getUsers(user => user.isGM);
|
||||||
|
break;
|
||||||
|
case "roll": //everybody
|
||||||
|
whisper = this.getUsers(user => user.active);
|
||||||
|
break;
|
||||||
|
case "selfroll":
|
||||||
|
whisper = [game.user.id];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
await game.dice3d.showForRoll(roll, game.user, true, whisper, blind);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
7
packs/.directory
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[Dolphin]
|
||||||
|
SortOrder=1
|
||||||
|
SortRole=modificationtime
|
||||||
|
Timestamp=2021,9,21,17,43,45.19
|
||||||
|
Version=4
|
||||||
|
ViewMode=1
|
||||||
|
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
21
packs/armes.db
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{"name":"Casque","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":3,"enc":2,"valeur":2,"description":"<p>Le modèle le plus fréquent comporte un nasal et des « lunettes » qui protègent les yeux. Sur une base de bol en métal, des lamelles de renforts sont rivetées afin d’assurer la rigidité de l’ensemble. L’intérieur est doublé de cuir et de tissu afin d’amortir les chocs.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"8MoqC7EIc3SXtdsN"}
|
||||||
|
{"_id":"8aaaIqx6uT1sJ0RO","name":"Lance","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"jet","equipe":false,"degat":8,"solidite":11,"enc":4,"portee":"5/10/15/30","valeur":4,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||||
|
{"name":"Cuir lamellé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":6,"enc":3,"valeur":2,"description":"<p>Des lamelles de cuir plus rigides sont collées et cousues sur la version précédente. La poitrine, le ventre, les omoplates et les coudes sont particulièrement renforcés. Des pièces semi-rigides, bombées, enserrent parfois les épaules.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"B2yc8LDKTRl0Hjxt"}
|
||||||
|
{"name":"Hache de guerre","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"longue","equipe":false,"degat":9,"solidite":10,"enc":2,"valeur":1,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"BwmkCCiJWME4CpB0"}
|
||||||
|
{"name":"Epaullières de fourrure","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":1,"valeur":0.6,"description":"<p>Il s’agit d’un grand morceau de peau encerclant les épaules et le cou. En général, cette fourrure est fixée sur une cape. En plus de la protection qu’elle apporte, sa nature (loup, ours, vison, etc.. ) donne une indication sur le statut du guerrier.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"C2mzwxiCPJWoY8kc"}
|
||||||
|
{"name":"Epée courte","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"longue","equipe":false,"degat":5,"solidite":11,"enc":0,"valeur":2,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"FGIja8vhUOeGNC4x"}
|
||||||
|
{"name":"Longue hache","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"deuxmains","equipe":false,"degat":14,"solidite":12,"enc":3,"valeur":3,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"GqAbMhROpATanmH3"}
|
||||||
|
{"name":"Hache de jet","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"jet","equipe":false,"degat":4,"solidite":8,"enc":0,"portee":"3/6/9/15","valeur":0.3,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"IZRpi8jq9erpiyoy"}
|
||||||
|
{"_id":"MkEW9Ma5m9nlE0nr","name":"Poignard","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"jet","equipe":false,"degat":3,"solidite":9,"enc":2,"portee":"3/6/9/12","valeur":0.4,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||||
|
{"name":"Cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":4,"enc":1,"valeur":1,"description":"<p>La veste devient plus épaisse et doublée de tissu. Des pièces de métal, des rivets plats en cuivre, en bronze ou en fer apportent une protection supplémentaire aux zones les plus exposées. Le col monte parfois jusque sous le menton.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"P6dSkefY97UqdDj9"}
|
||||||
|
{"name":"Arc de chasse","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"tir","equipe":false,"degat":6,"solidite":8,"enc":2,"portee":"10/20/40/80","valeur":1,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"PsqO2GFVTFIeyCmQ"}
|
||||||
|
{"name":"Bracelets de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":1,"enc":0,"valeur":0.3,"description":"<p>Ils protègent l’avant-bras, du dessus de la main jusqu’au coude. Souvent gravés de motifs décoratifs, ils se composent de lamelles de cuir rigidifiées et nouées à l’aide de gros lacets.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"RgYAFOOAh7GGzBaF"}
|
||||||
|
{"name":"Jambières de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":1,"valeur":0.4,"description":"<p>Nouées autour des cuisses ou des mollets, elles protègent le combattant des coups visant ses jambes. Ici aussi, les artisans essaient souvent d’orner ces pièces d’armure de décorations ciselées dans la matière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"SpTt7wfW9qBKJDxX"}
|
||||||
|
{"name":"Veste de cuir","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":0,"valeur":0.3,"description":"<p>Il s’agit autant d’un vêtement courant que d’une armure. La veste recouvre le torse, le ventre et les hanches. Certaines possèdent des manches, courtes ou longues. Le cuir souple et fin ne restreint guère la liberté de mouvement.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"WrJ7Q4e556LDolbu"}
|
||||||
|
{"name":"Hachette","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"courte","equipe":false,"degat":4,"solidite":8,"enc":0,"valeur":0.3,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"fjIHt6jNRAM25L9q"}
|
||||||
|
{"name":"Arc de guerre","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"tir","equipe":false,"degat":7,"solidite":10,"enc":2,"portee":"10/30/50/100","valeur":2,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"jSrZnzjI0QVWuXw8"}
|
||||||
|
{"name":"Javeline","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"jet","equipe":false,"degat":6,"solidite":7,"enc":2,"portee":"5/10/20/40","valeur":0.4,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"m6PjnSO3ACnzU0ie"}
|
||||||
|
{"name":"Cotte de mailles","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":9,"enc":5,"valeur":8,"description":"<p>Composée de centaines d’anneaux de fer rivetés, la cotte de mailles protège les mêmes parties du corps qu’une veste. Elle ne descend jamais sur les jambes car cela restreint trop la mobilité des combattants. Ceux-ci enfilent dessous une chemise molletonnée ou une fine veste de cuir.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"n9eKutLHJZoBYFAD"}
|
||||||
|
{"name":"Epée à deux mains","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"deuxmains","equipe":false,"degat":12,"solidite":14,"enc":3,"valeur":5,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ptcBNQhYLwWkBkc0"}
|
||||||
|
{"name":"Epée longue","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"longue","equipe":false,"degat":7,"solidite":11,"enc":1,"valeur":4,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"rpY7aUxJelvsozvh"}
|
||||||
|
{"name":"Fronde","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"tir","equipe":false,"degat":4,"solidite":12,"enc":0,"portee":"10/20/30/40","valeur":0.1,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"x3aMYeKa73GxJ1Ge"}
|
8
packs/armures.db
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{"name":"Bracelets de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":1,"enc":0,"valeur":0.3,"description":"<p>Ils protègent l’avant-bras, du dessus de la main jusqu’au coude. Souvent gravés de motifs décoratifs, ils se composent de lamelles de cuir rigidifiées et nouées à l’aide de gros lacets.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"4YGPuZ813BWQaNbq"}
|
||||||
|
{"name":"Cuir lamellé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":6,"enc":3,"valeur":2,"description":"<p>Des lamelles de cuir plus rigides sont collées et cousues sur la version précédente. La poitrine, le ventre, les omoplates et les coudes sont particulièrement renforcés. Des pièces semi-rigides, bombées, enserrent parfois les épaules.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"9WReqm0CdcCGnsNc"}
|
||||||
|
{"name":"Veste de cuir","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":0,"valeur":0.3,"description":"<p>Il s’agit autant d’un vêtement courant que d’une armure. La veste recouvre le torse, le ventre et les hanches. Certaines possèdent des manches, courtes ou longues. Le cuir souple et fin ne restreint guère la liberté de mouvement.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"JP6OeUflKfg4WiyJ"}
|
||||||
|
{"name":"Cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":4,"enc":1,"valeur":1,"description":"<p>La veste devient plus épaisse et doublée de tissu. Des pièces de métal, des rivets plats en cuivre, en bronze ou en fer apportent une protection supplémentaire aux zones les plus exposées. Le col monte parfois jusque sous le menton.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"MFH09YNp4uGL8eCE"}
|
||||||
|
{"name":"Epaullières de fourrure","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":1,"valeur":0.6,"description":"<p>Il s’agit d’un grand morceau de peau encerclant les épaules et le cou. En général, cette fourrure est fixée sur une cape. En plus de la protection qu’elle apporte, sa nature (loup, ours, vison, etc.. ) donne une indication sur le statut du guerrier.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"NK7IF0Cr4oOPCZVq"}
|
||||||
|
{"name":"Jambières de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":1,"valeur":0.4,"description":"<p>Nouées autour des cuisses ou des mollets, elles protègent le combattant des coups visant ses jambes. Ici aussi, les artisans essaient souvent d’orner ces pièces d’armure de décorations ciselées dans la matière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"WergjG9QE8SxlAGr"}
|
||||||
|
{"name":"Casque","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":3,"enc":2,"valeur":2,"description":"<p>Le modèle le plus fréquent comporte un nasal et des « lunettes » qui protègent les yeux. Sur une base de bol en métal, des lamelles de renforts sont rivetées afin d’assurer la rigidité de l’ensemble. L’intérieur est doublé de cuir et de tissu afin d’amortir les chocs.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ozRBKdYJtbnk87gO"}
|
||||||
|
{"name":"Cotte de mailles","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":9,"enc":5,"valeur":8,"description":"<p>Composée de centaines d’anneaux de fer rivetés, la cotte de mailles protège les mêmes parties du corps qu’une veste. Elle ne descend jamais sur les jambes car cela restreint trop la mobilité des combattants. Ceux-ci enfilent dessous une chemise molletonnée ou une fine veste de cuir.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"qUXBrstsh5Oo8FEx"}
|
15
packs/blessures.db
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{"name":"Mâchoire fracturée","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>L’attaque ennemie frappe de plein fouet le menton du héros. Il est secoué pour le reste du tour de combat : il ne peut plus attaquer et le joueur réalise un test de Vigueur (SR14). Un échec signifie que le personnage reste en mode défensif pour un nombre de tours de combat égal à la Marge d’échec. (COM –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"4rM9IvDuijsjbAhI"}
|
||||||
|
{"name":"Plaie ouverte","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Une entaille impressionnante marque le corps du guerrier. Le sang ruisselle sur son armure. Cette blessure n’a d’autre conséquence que de laisser une profonde cicatrice une fois guérie.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"612Bu2S3wZNbwVWQ"}
|
||||||
|
{"name":"Thorax enfoncé","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le coup puissant brise une côte au personnage et lui coupe le souffle. Le joueur réalise un test de Vigueur (SR19). En cas d’échec, le héros ne peut plus agir durant les 1D5 prochains tours de combat. Tous ses prochains tests voient leur Seuil de réussite augmenter d’un cran jusqu’à ce qu’il reçoive les premiers soins. (VIG –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"6g8s2WEVslxtkYfr"}
|
||||||
|
{"name":"Tranché !","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le coup vient de trancher net ou d’écraser un doigt, une oreille, le nez, etc… du personnage. (AGI –1 ou CHA –1 selon la zone touchée)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"C0TbA8csIRCJ19cq"}
|
||||||
|
{"name":"Épaule démise","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros ploie sous le coup et ne peut plus attaquer pour le reste de ce tour de combat. (AGI –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ETFQOOA2Xv0De20a"}
|
||||||
|
{"name":"Tripes à l’air","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le joueur réussit un test de Vigueur (SR 25) ou le héros s’effondre au sol. Toutes ses caractéristiques sont diminuées d’un point.</p>\n<p>(PUI –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"G3d6LNALEbusBHjc"}
|
||||||
|
{"name":"Cuisse perforée","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le joueur réussit un test de Vigueur (SR 19) ou le héros tombe au sol. (DEP –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"HiA6u1b0oxl2p57p"}
|
||||||
|
{"name":"Vilaine entaille","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Hémorragie, le héros perd 2 PV par tour. (VIG –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"JRtmZKDmrryeWrle"}
|
||||||
|
{"name":"Front ouvert","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Du sang ruisselle sur les yeux du héros. Un bruit sourd résonne dans son crâne. Tous les tests des caractéristiques d’Esprit(Intellect, Perception, Tenacité) se font avec un dé de moins.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"PJeCqE0LxDeIx6nb"}
|
||||||
|
{"name":"Côtes cassées","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le joueur réalise un test de Ténacité (SR 19) à chaque tour. En cas d’échec, le personnage ne peut entreprendre qu’une seule action pour ce tour. (PUI –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"WBL5ZcUaQsemB7aZ"}
|
||||||
|
{"name":"Poignet brisé","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Lancer 1D10 : 1à 5 poignet droit, 6 à 10, poignet gauche. Le choc cause une violente douleur. Le joueur réalise un test d’Agilité (SR 19) ou lâche ce qu’il tient dans cette main. (AGI –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"dYSPyehGJHMFARav"}
|
||||||
|
{"name":"Amputé !","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>L’attaque ennemie vient de broyer ou de trancher net la main, le pied, le bras ou la jambe du personnage. Il perd 4PV supplémentaires à chaque tour de combat jusqu’à ce que quelqu’un parvienne à stopper l’hémorragie. Toutes ses caractéristiques sont réduites de 1 point. (AGI et PUI –1 pour le bras ou la main, DEP –2 et PUI –1 pour la jambe ou le pied)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"i6rs3dVKJk1ASMCp"}
|
||||||
|
{"name":"Jambe cassée","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le joueur réalise un test d’Agilité (SR 25) ou le personnage chute au sol. (DEP –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"i907ohXib2WVtPS3"}
|
||||||
|
{"name":"Arcade ouverte","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>L’orbite fracturée, la paupière gonflée, le personnage ne voit plus rien de ce côté. La difficulté de tous ses tests de Perception est augmentée d’un cran. (PER –1).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"jL0d1tdsx6WzJNWJ"}
|
||||||
|
{"name":"Hémorragie interne","type":"blessure","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le joueur réussit un test de Vigueur (SR 19) ou le héros sombre dans l’inconscience. Il perd 2PV par tour. (VIG –1)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"swTZ43FJRWkqjR75"}
|
30
packs/competences-generales.db
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{"name":"Superstition","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le monde regorge de signes divins, de détails naturels qui reflètent le sens caché des choses. Le personnage sait repérer et interpréter ces éléments. Il s’agit en général d’y voir des conditions favorables ou défavorables pour le moment présent, mais aussi des messages d’avertissement envoyés par les dieux. Les habitants de la Scandia sont des gens très superstitieux et ils tendent à voir partout des présages significatifs. Le Meneur de Jeu pourra en profiter pour glisser quelques indices obscurs sur la situation actuelle des héros qui, dans l’idéal, révèleront leur plein sens une fois qu’il sera trop tard.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"26CQEICWZs8Gw4Xi"}
|
||||||
|
{"name":"Intimidation","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Par l’intermédiaire de la menace verbale ou physique, le personnage peut contraindre quelqu’un à lui obéir. Une tentative d’Intimidation nécessite un test en opposition. La cible tente de résister grâce à sa Ténacité et à sa Défense mentale.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"3vspCnDuVMqQDuPe"}
|
||||||
|
{"name":"Négociation","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Il s’agit de la capacité à mener une discussion vers un compromis acceptable par les deux parties. Négociation est une compétence utile aux diplomates de la Scandia, mais aussi aux marchands qui peuvent mener à bien leur marchandage lors de l’achat et de la vente de leurs produits.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"4k4NLNlEG7jZEPK6"}
|
||||||
|
{"name":"Jeu","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>le personnage connaît les règles et sait pratiquer la plupart des jeux prisés par les habitants de la Scandia, comme les jeux de dés ou le <em>hnefatafl</em>. Cette compétence s’utilise généralement avec des tests en opposition mettant en concurrence les niveaux de maîtrise respectifs des joueurs. Mais elle permet également de tricher. Dans ce cas, les autres participants peuvent tenter un test en opposition de Perception + Vigilance. Si le tricheur est démasqué, attendezvous à des conséquences… musclées.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"6OMBvnSFqVHqd36u"}
|
||||||
|
{"name":"Artisanat","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":true,"categorie":"generale","specialisation":"","description":"<p>Cette compétence regroupe l’ensemble des activités manuelles permettant de confectionner les objets du quotidien. La plupart des habitants de la Scandia pratiquent plus ou moins ces techniques et se révèlent autonomes lorsqu’il s’agit de fabriquer ou de réparer des ustensiles basiques. Un niveau Confirmé permet d’exercer son artisanat en professionnel et de gagner sa vie avec cette activité. Les meilleurs artisans bénéficient d’une renommée et d’une considération importantes. L’utilisation de cette compétence correspond en général à un test étendu. Spécialisations possibles : cordonnerie, ferronnerie, chaudronnerie, charpenterie, tissage, tannerie, corderie, taille de pierre, poterie, sellerie, etc…</p>\n<p>Il existe cependant deux spécialisations qui méritent que l’on s’y attarde, tant elles occupent une place importante dans la société des Terres du Nord.</p>\n<p><strong>Construction navale : </strong>cette spécialisation permet de mener à bien la construction des différents types de navires sillonnant les flots de la Scandia. Le personnage maîtrise aussi bien les secrets de l’architecture navale que les techniques de la charpenterie de marine, mais il sait tout autant diriger les artisans qui vont réaliser le bateau selon ses instructions. Les meilleurs dans ce domaine sont très recherchés par tous les jarls et souverains des Royaumes Nordiques.</p>\n<p><strong>Forge : </strong>l’art de la forge nécessite des connaissances spécifiques dont certaines confinent au secret transmis uniquement d’un maître à son disciple. Un personnage Novice sait fabriquer des objets usuels, simples, utiles au quotidien (clous, têtes d’outils, anneaux…) Une fois atteint le niveau Confirmé, il peut commencer à forger des pièces plus complexes (fer pour les chevaux, serrures, ferrures d’ornements, etc…) ainsi que des armes et des armures. Si certains exercent leur profession de manière itinérante, un forgeron doit tout de même disposer d’un atelier et d’outils appropriés afin de pouvoir mettre en oeuvre sa compétence. Un forgeron pratique l’un des métiers les plus respectés parmi les artisans.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"947IgofSqazA1CoD"}
|
||||||
|
{"name":"Survie","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage se sent à l’aise dans les milieux naturels et sait comment y vivre en harmonie avec la nature. Cette compétence permet de trouver de quoi se nourrir et s’abreuver, un endroit pour s’abriter, de faire du feu et de se protéger des conditions climatiques extrêmes comme le froid d’une nuit d’hiver. La Survie recouvre également la chasse et le pistage, mais aussi le sens de l’orientation et les premiers soins.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"9AHUm9FLajXTkEZJ"}
|
||||||
|
{"name":"Traditions","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Grâce à cette compétence, le personnage se souvient des règles, des coutumes et des lois qui ont cours dans la région, voire la cité, où il se trouve. Si le système juridique reste assez semblable dans toute la Scandia, il existe souvent quelques variations locales dans l’application des peines encourues pour un même crime. De même, les us et coutumes de certains endroits changent subtilement par rapport aux habitudes des héros et peuvent provoquer des situations des plus embarrassantes. Un personnage Expert dans cette compétence peut endosser le rôle de crieur des lois lors d’un thing.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"CIfheBgF5plSgqYT"}
|
||||||
|
{"name":"Séduction","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>C’est la capacité d’un personnage à se présenter à son avantage, en mettant en avant ses charmes physiques, intellectuels ou artistiques. Un test réussi permet d’attirer à soi tous les regards. Le personnage tente de plaire physiquement, sexuellement ou intellectuellement à une personne ou à tout son entourage.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"KhL25OFMkmmktssG"}
|
||||||
|
{"name":"Esquive","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage anticipe les attaques portées contre lui et se met hors de portée des coups ou des projectiles qui le visent. Bien qu’elle s’avère surtout utile en combat, cette compétence sert également à éviter une collision qui menace le héros, comme un attelage lancé au galop vers lui, ou un éboulement de gros rochers. Que l’esquive soit réussie ou pas, le personnage se retrouve toujours à terre, à quelques pas de sa position initiale (le joueur choisit la direction).</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"MLCAKgi8wRLwlINc"}
|
||||||
|
{"name":"Commerce","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Il s’agit de la connaissance des lois de l’offre et de la demande. Le négociant sait évaluer les choses lors d’un troc, ou d’une transaction s’il utilise de la monnaie. Il connaît également les points d’approvisionnement pour les différentes marchandises produites dans la Scandia, et les endroits où il a le plus de chance d’en tirer le meilleur profit. Les dates et les lieux où se déroulent les foires annuelles n’ont pas de secret pour lui. Enfin, cette compétence gère tout l’aspect intendance de cette activité.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"OlELPb9hGkbQNnff"}
|
||||||
|
{"name":"Chercher","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence entre en jeu lorsque le personnage fouille un endroit particulier. Elle permet de révéler les éléments cachés dans le décor ou les indices dissimulés. Contrairement à la compétence Vigilance, Chercher nécessite une démarche active de la part du héros.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"QysZVyRFax7P0mko"}
|
||||||
|
{"name":"Médecine","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence correspond à la connaissance de l’ensemble des pratiques médicales de la Scandia. Elle permet d’établir un diagnostic, de soigner les maladies les plus courantes, de traiter les blessures, de réduire une fracture, d’accompagner un accouchement, mais aussi de déterminer les causes probables d’une mort inexpliquée. Les premiers soins sont quant à eux couverts par la compétence Survie, mais un personnage plus compétent en Médecine peut dans ce cas substituer cette discipline à un test de Survie.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"SEeAKWRSKO0HWt6Q"}
|
||||||
|
{"name":"Herboristerie","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Il s’agit de la connaissance des plantes, des herbes et des produits naturels permettant de concocter des remèdes, mais aussi des teintures ou encore des poisons de toutes sortes. Un personnage versé dans cette discipline sait également reconnaître les plantes rencontrées en pleine nature, ainsi que déterminer l’endroit où il a le plus de chance de trouver une espèce spécifique.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"SHnTbcIm0JZN7UqU"}
|
||||||
|
{"name":"Natation","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence représente l’aptitude à se mouvoir à la surface de l’eau et à y demeurer en cas de chute depuis un navire. Le Meneur de Jeu peut appliquer un malus au test de Natation égal à la valeur de protection de l’armure portée par l’infortuné. Le nageur peut également se déplacer sous l’eau ou plonger depuis les hauteurs vertigineuses des falaises avec de bonnes chances de réussite.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"VcfHyyT169aId8Td"}
|
||||||
|
{"name":"Langues","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":true,"categorie":"generale","specialisation":"","description":"<p>Tous les personnages parlent couramment le norrois (<em>dansk tunga</em>), la langue commune aux différents royaumes de la Scandia. Chaque spécialisation dans cette compétence correspond à une langue particulière et étrangère, ou à un patois local issu d’une autre racine linguistique comme le finnois parlé par les tribus sames. Il est toujours possible de comprendre un dialecte tiré du norrois en réussissant, généralement, un test d’Intellect contre un Seuil de Réussite Moyen (14). Exemples de spécialisation : saxon, finnois, balte, germain…</p>","niveau":0,"niveauunrequis":true},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ZhIYWUKuDV5hyuUA"}
|
||||||
|
{"name":"Discrétion","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage sait se déplacer en silence, tout en profitant du moindre couvert afin de passer inaperçu. Cette compétence permet également de se cacher efficacement ou de camoufler un objet sur soi ou dans le décor environnant.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"cKowAJGvHnY0GSOZ"}
|
||||||
|
{"name":"Art","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":true,"categorie":"generale","specialisation":"","description":"<p>Choisissez le domaine de prédilection du personnage. Il peut s’agir d’un simple don naturel, d’une activité professionnelle (pour un scalde), d’un loisir… Cette compétence permet de créer une oeuvre d’art originale ou d’en reproduire une existante. Spécialisations possibles : orfèvrerie, chant, musique, danse, gravure, poésie déclamée, flatterie, peinture, etc…</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"fcTMIpIMVc1cQASZ"}
|
||||||
|
{"name":"Larcins","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence recouvre les activités des filous des terres du Nord. Elle permet de crocheter une serrure, mais aussi de couper une bourse ou de subtiliser discrètement des clefs. Dans ce deuxième cas, Larcins s’emploie dans un test en opposition contre la Perception et la Vigilance de la cible.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ggoWPfYoTx7QG5ae"}
|
||||||
|
{"name":"Navigation","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage est capable de manoeuvrer un navire et de diriger un équipage. Il a appris à retrouver les points de repères nécessaires à une traversée des mers de la Scandia. Il connaît les routes les plus fréquentées et les caractéristiques des principaux ports. Mais il sait également observer les courants, la position du soleil et des étoiles, le vol des oiseaux et toutes ces indications naturelles qui lui permettent de tracer une route sûre vers sa destination.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"i1G5Ngzw4fXhq6xg"}
|
||||||
|
{"name":"Eloquence","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage sait se montrer convaincant et persuasif. Il présente ses arguments de la manière la plus pertinente lors d’une discussion afin de rallier ses interlocuteurs à son point de vue. Parfois, il peut également proférer les plus gros mensonges et les rendre crédibles pour obtenir ce qu’il désire par un baratin approprié.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"lmHbsWc8ycnslgkF"}
|
||||||
|
{"name":"Attelage","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage connaît les bons gestes pour mener un attelage. Il sait également l’entretenir et s’occuper des animaux qui le tractent. En été, il dirige un chariot à roues. En hiver, il peut prendre les rênes d’un traîneau.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"m6a2b7wVywjQINmJ"}
|
||||||
|
{"name":"Chevaucher","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage sait monter à cheval ou sur tout autre type d’animal domestique entraîné pour la monte (mule, poney, renne). Grâce à cette compétence, il est également capable d’en prendre soin, ainsi que de dresser un animal en vue d’en faire une monture convenable. Il n’est pas nécessaire d’effectuer de test de Chevaucher dans le cas d’un simple voyage sans encombre. Par contre, le niveau de maîtrise dans cette compétence devient important lorsque le cavalier se lance dans une manoeuvre plus complexe (poursuite au galop, saut au-dessus d’une faille, etc…)</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"m70AYttl5gkjyzsW"}
|
||||||
|
{"name":"Tactique","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Il s’agit de la connaissance des techniques de combat de masse, qu’il s’agisse d’un groupe d’une dizaine de combattants ou de toute une armée. Le personnage sait établir des plans pour mener une opération militaire, livrer une bataille et commander ses hommes pour en tirer le meilleur. Lors d’un affrontement, les deux chefs effectuent un test opposé de Tactique. Au cours du premier tour de combat, les guerriers sous les ordres du vainqueur bénéficient d’un bonus sur tous leurs tests égal à la marge de réussite de leur leader.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ndksq4VT0PFKVZ3z"}
|
||||||
|
{"name":"Sagas","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>De nombreux mythes et tout autant de récits fabuleux circulent dans toute la Scandia. Ces légendes parlent des dieux, du monde, mais aussi des grands héros qui foulèrent (ou foulent encore) le sol de Midgardr, de leurs nombreux exploits ou de leur destin tragique. Si les scaldes ont l’apanage de leur transmission et leur mise en scène grâce à leurs prestations, la plupart des habitants des Terres du Nord en connaît certaines, plus ou moins précisément. Chaque saga développe une leçon édifiante pour ceux qui savent écouter. Un test de Sagas permet au héros de se souvenir d’une anecdote tirée d’une telle histoire et se rapportant à un lieu, un objet, un nom, une situation ou autre qui l’interpelle. Il faut bien se rappeler que les légendes de la Scandia se fondent toujours sur une part importante de vérité.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"nk0Y1XY8jwSAfEdv"}
|
||||||
|
{"name":"Vigilance","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence correspond à une capacité inconsciente et seul le Meneur de Jeu peut demander qu’un joueur réalise un test y faisant appel, voire l’effectuer lui-même derrière son écran. Elle représente l’attention permanente que le héros porte à son environnement. Elle lui permet de noter les détails inhabituels ou pertinents et bien souvent, agit un peu comme une sorte de sixième sens. Bien entendu, le Meneur de Jeu peut appliquer un handicap conséquent si le personnage est particulièrement inattentif (distrait par les formes girondes d’une demoiselle, ivre mort…)</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"oRwBrQCRoiuFhx4W"}
|
||||||
|
{"name":"Savoir","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":true,"categorie":"generale","specialisation":"","description":"<p>cette compétence englobe toutes les connaissances accumulées par les habitants de la Scandia. Le joueur doit préciser dans quel domaine son personnage excelle. Il est possible de tenter un test de « culture générale », dans ce cas, le Meneur de Jeu demandera un simple test d’Intellect dont le Seuil de Réussite est fixé par la trivialité de l’information recherchée. Spécialisations possibles : divinités (Ases et Vanes), géographie, politique de la Scandia, histoire locale, créatures et monstres, <em>álfar</em>, etc…</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ojXyl13ujEZKXjPJ"}
|
||||||
|
{"name":"Mouvement","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence regroupe les activités physiques classiques. Le personnage y fait appel lorsqu’il tente de réaliser des sauts (en hauteur ou en longueur) ou se lance dans des courses à pied (sprint, poursuite ou course d’endurance).</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"p5RLyGhIM9nZbmUI"}
|
||||||
|
{"name":"Acrobatie","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage maîtrise parfaitement son corps. Souple et musclé, il peut tenter des manoeuvres hasardeuses (comme bondir d’un snekkjar à un autre au milieu d’une bataille navale) avec de bonnes chances de succès. De plus, un test d’Acrobatie réussi permet de réduire de moitié la perte de Points de Vie lors d’une chute.</p>\n<p>Le Seuil de Réussite du test est Moyen (14) pour une chute de sept à neuf mètres de haut. Modifiez le SR d’un niveau par tranche de deux mètres en plus ou en moins. Ainsi, une chute depuis une falaise de 12 mètres de hauteur nécessite un test Très Difficile (25).</p>\n<p>Enfin, un héros Confirmé dans cette compétence peut exercer la profession d’acrobate et se produire devant un public pour gagner sa vie.</p>\n<p>En outre, la compétence d’Acrobatie intervient dans tous les tests nécessitant un bon équilibre. Ici, le personnage se montre particulièrement stable sur ses jambes et sait gérer à la perfection les situations où il risque de chuter au sol. Cette compétence est très utile pour les marins ou les voyageurs qui doivent traverser la Scandia en hiver. En effet, la compétence Acrobatie permet de se servir de skis de bois ou de patins taillés dans de l’os, avec des bâtons, accessoires utilisés à la mauvaise saison pour se déplacer sur les routes enneigées ou les étendues d’eau glacées. Dans des conditions normales, aucun test n’est requis. Mais si le personnage tente de réaliser des manoeuvres risquées, c’est une toute autre histoire…</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"r9eRqhZd8dlQhzV0"}
|
||||||
|
{"name":"Empathie","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Il s’agit de la capacité à ressentir l’état émotionnel des personnes qui vous entourent. Cette compétence fait appel à un mélange de connaissance de la nature humaine et d’intuition. Elle permet également de deviner si votre interlocuteur vous ment ou non.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"tCwSZBmeFVFzs3xN"}
|
||||||
|
{"name":"Escalade","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence permet de s’attaquer à des parois plus ou moins verticales, mais également de grimper le long d’un tronc d’arbre, d’un mat ou à une corde. Le Meneur de Jeu peut modifier le Seuil de Réussite initial en fonction des conditions extérieures : un handicap pour un vent violent, de la pluie et des prises glissantes, une forte houle sur un navire… Ou un bonus si les prises sont nombreuses et que le personnage dispose d’un matériel adéquat (piolet, corde…).</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ylqZMDyXujUlSorr"}
|
3
packs/competences-magiques.db
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{"name":"Galdr","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"magique","specialisation":"","description":"<p>Le <em>galdr</em> utilise la puissance divine de la voix pour la magie. Tout pratiquant de la magie peut l’utiliser. Il n’est pas besoin d’avoir une belle voix ou de chanter juste, mais de lancer des incantations.</p>","niveau":0,"niveauunrequis":true},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"RAhkadJOfEnVBLpy"}
|
||||||
|
{"name":"Runes","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"magique","specialisation":"","description":"<p>Cette compétence permet de lire et de connaître le sens de chacune des vingt-quatre runes. Mais surtout elles donnent des indications occultes sur la réalité du monde et permettent de lancer des sorts de protection, malédiction et guérison, à ceux qui savent s’en servir.</p>","niveau":0,"niveauunrequis":true},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"UoWkSxLdXhZQinnc"}
|
||||||
|
{"name":"Sejdr","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"magique","specialisation":"","description":"<p>Il s’agit là de l’antique art magique enseigné à Odhinn même, par Freyja, la sorcellerie. Les femmes sont plus nombreuses à en pratiquer certains sorts car ils sont liés à des travaux considérés comme purement féminins (filer de la laine, mettre des vêtements de cérémonie pour les visions, chevaucher un autre personnage). Certains hommes pratiquent le Sejdr sans s’en soucier, d’autres sélectionnent les sorts les moins compromettants et les complètent avec les Runes ou le Galdr.</p>","niveau":0,"niveauunrequis":true},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"mIBiTKqfqiiepeyz"}
|
8
packs/competences-martiales.db
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{"_id":"6IqVsJsYPrbxUJZX","name":"Armes de tir","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icone_tir.png","data":{"isspecialisation":false,"categorie":"martiale","specialisation":"","description":"<p>L’arc est tout autant une arme de chasse que de guerre. De nombreux guerriers pratique le tir à l’arc, au moins comme un loisir. Certains clans forment des frondeurs qui harcèlent l’ennemi sur le champ de bataille et traquent le gibier en temps de paix.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||||
|
{"_id":"F6FRcn4jVEWrZnKn","name":"Lutte","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"martiale","specialisation":"","description":"<p>Simple bagarre désordonnée ou corps à corps maîtrisé, le personnage compétent en Lutte sait utiliser ses armes naturelles (poings, coudes, tête, pieds, genoux) pour blesser son adversaire. Cette compétence regroupe aussi les techniques de saisie et de projection au sol.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||||
|
{"_id":"LdLtuijFf7RLyxSt","name":"Armes courtes","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icone_arme_courte.png","data":{"isspecialisation":false,"categorie":"martiale","specialisation":"","description":"<p>Il s’agit de toutes les armes de petite taille comparables à un poignard ou à une hachette. Elles ne demandent qu’une seule main pour les manier et compensent leur faible allonge et leur manque de puissance par une capacité accrue à pouvoir être dissimulées sur soi.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||||
|
{"name":"Armes Improvisées","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"martiale","specialisation":"","description":"<p>Le personnage est capable d’utiliser n’importe quel objet de son environnement pour le transformer en arme. Bien entendu, cette arme improvisée demeure bien moins efficace, mais, comme le dit amèrement Sborg le manchot, il vaut mieux parer un coup de hache avec un banc de bois qu’avec le bras. Selon la nature et la taille de l’objet utilisé, le Meneur de Jeu détermine avec quelle facilité le héros peut le manier et donc le Seuil de Réussite de ses tests de combat.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"FlVcb0fLdot8uz7o":3},"flags":{"core":{"sourceId":"Compendium.fvtt-yggdrasill.competences-martiales.8O30XW6VFVcQ63iK"}},"_id":"OmBa5YdDFNb3Brmm"}
|
||||||
|
{"_id":"XTxZwJFi2oP629SE","name":"Lancer","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icone_lancer.png","data":{"isspecialisation":false,"categorie":"martiale","specialisation":"","description":"<p>Cette compétence permet de projeter efficacement une arme vers une cible. Elle regroupe l’utilisation des poignards, hachettes de lancer, javelines et javelots. Dans le cas de projectiles improvisés, telles des pierres ou un tabouret, ou afin de lancer une arme non prévue pour cet emploi (épée, hache lourde, etc…), le Meneur de Jeu applique au test le handicap qu’il juge le plus adapté.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||||
|
{"_id":"aYCTPTRPBudsE6yQ","name":"Armes à deux mains","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icone_arme_2mains.png","data":{"isspecialisation":false,"categorie":"martiale","specialisation":"","description":"<p>Cette compétence regroupe les armes lourdes nécessitant une prise ferme pour les manier efficacement. Il s’agit essentiellement de la grande hache prisée par les berserkir,mais aussi de certaines épées comme les modèles brandis par les guerriers germaniques.</p>\n<p>Un combattant doté d’une Puissance supérieure ou égale à quatre peut manier une telle arme d’une seule main, sans subir de pénalité.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||||
|
{"_id":"hjkxUhKBclupLiVl","name":"Armes longues","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icone_arme_longue.png","data":{"isspecialisation":false,"categorie":"martiale","specialisation":"","description":"<p>Cette compétence regroupe l’ensemble des épées et des haches qui composent l’arsenal classique des guerriers. Il ne faut normalement qu’une seule main pour brandir ces armes, auquel cas le combattant se munit généralement d’un bouclier. Mais leur manche est assez long pour permettre de les saisir à deux mains afin de gagner de la puissance en attaque (voir à ce sujet le chapitre Combat, page 123).</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||||
|
{"_id":"mJSWXawEGARKlNja","name":"Armes d'Hast","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icone_arme_hast.png","data":{"isspecialisation":false,"categorie":"martiale","specialisation":"","description":"<p>Un personnage entraîné à cette compétence manie avec dextérité des armes longues constituées d’un fer fixé à l’extrémité d’une longue hampe. Dans la Scandia, cela correspond uniquement à la lance.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
30
packs/dons.db
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{"name":"Inspiré","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage possède une âme d’artiste. Il réalise des oeuvres magnifiques promptes à fasciner ceux qui en sont les spectateurs.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"1EVz9C1fDUBafPHj"}
|
||||||
|
{"name":"Initié","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage a reçu le don de la compréhension des énergies divines qui circulent dans Midgardr. Il peut pratiquer la magie, <em>Galdr</em>, <em>Sejdr</em> et Runes selon son approche (scalde, <em>völva</em> ou <em>thulr</em>).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"1eUaZZhOVemXWAqN"}
|
||||||
|
{"name":"Avenant","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage bénéficie d’un beau visage et d’un corps parfait. Ce don intervient lorsque l’apparence physique compte plus que l’aspect relationnel, comme pour faire une bonne première impression par exemple.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"4CFvql6HLT1xGxg2"}
|
||||||
|
{"name":"Discret","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage sait se montrer silencieux, se fondre dans une foule ou faire en sorte que personne ne remarque sa présence quand il cherche à se cacher.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"4M3G1iAOKXr2k2oA"}
|
||||||
|
{"name":"Masque de Loki","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros bénéficie d’un don inné pour jouer la comédie ou mentir à l’insu de tous. Il peut ainsi avancer n’importe quel argument, endosser une autre personnalité, avec un naturel déconcertant.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"5Vq9m4tAG1iy8eUX"}
|
||||||
|
{"name":"Montagnard","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros est très à l’aise dans ce type de terrain accidenté. Il connaît bien les ressources naturelles de ce milieu et maîtrise toutes les ficelles de l’escalade en montagne.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"5XsedjekRP4qbAgS"}
|
||||||
|
{"name":"Empathie","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est très sensible aux états émotionnels des autres. Il décèle facilement leurs humeurs et parfois sent instinctivement si on tente de lui mentir.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"5bgHSRdhXTzlF7VV"}
|
||||||
|
{"name":"Agile","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros est très souple et maîtrise parfaitement ses mouvements. Ce don s’avère très utile pour toute activité physique nécessitant une grande coordination.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"5ckEVSbFK7ASNgzh"}
|
||||||
|
{"name":"Erudit","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros possède une grande culture générale et une vaste connaissance de la Scandia. Il connaît de nombreuses anecdotes au sujet de ses légendes, de son histoire et de sa géographie, de ses personnalités, etc.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"89RvrAgkZ4HXDpjL"}
|
||||||
|
{"name":"Meneur d'hommes","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros sait commander, imposer le respect et son autorité. Dans le doute, les autres se tournent généralement vers lui pour prendre une décision.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"C7gjCmoKdniE0W2k"}
|
||||||
|
{"name":"Guerrier-fauve","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage a reçu le don d’Odhinn. Il est capable d’atteindre l’état de transe de combat accordé par le Père des Dieux. Le joueur sélectionne à la création du héros son type : <em>berserkr</em>, <em>ulfhedinn</em> ou <em>svinfylkingar</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ErmFxZzgC5PidoAq"}
|
||||||
|
{"name":"Homme des bois","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est particulièrement à son aise au milieu des étendues sauvages de la Scandia. Il ne se perd jamais et sait survivre même seul au milieu d’une forêt.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"EzjdLUS78GaVt8Go"}
|
||||||
|
{"name":"Don de Freyr/Freyja","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est un séducteur. Il choisit ses mots, ses attitudes et se compose une façade propre à s’attirer la sympathie, voire l’amour, des autres.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"Gw1OOSmra8wGkEy6"}
|
||||||
|
{"name":"Cavalier","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est particulièrement à l’aise avec les chevaux. Il monte très bien et sait parfaitement s’occuper de ces animaux ou reconnaître sans erreur une rosse d’une bonne bête.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"Jfh06WL3tBk5KDYa"}
|
||||||
|
{"name":"Bénédiction du Destin","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage jouit d’une chance insolente. Lorsque le hasard s’en mêle (lors d’un jeu de dés par exemple), ce don intervient. De plus, le héros ne perd jamais au tirage de la courte paille.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"Ks5JxLz6TBna7ZAa"}
|
||||||
|
{"name":"Affinité","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage se montre particulièrement sensible à l’une des formes de la magie (Galdr, Sejdr ou Runes). Le joueur sélectionne son domaine de prédilection à la création du héros.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"LhjzEpZa6CbMm3EX"}
|
||||||
|
{"name":"Adroit","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est très habile de ses mains. Dès qu’il confectionne une pièce d’artisanat, son don révèle toute son ampleur.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"S9rUy4jOnHu361bB"}
|
||||||
|
{"name":"Mémoire parfaite","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage n’oublie presque rien. Il est capable de se souvenir du moindre élément d’une scène vécue plusieurs mois en arrière. Avec le temps, les détails s’estompent à peine, mais les informations les plus importantes pour lui demeurent intactes dans sa mémoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"U6q6wxiorGztRbDw"}
|
||||||
|
{"name":"Colosse","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est un géant parmi les siens, doté d’une force peu commune. Qu’il s’agisse d’intimider ses interlocuteurs ou d’effectuer un travail de force intense, il est l’homme de la situation.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"YhD3jJrBrwjesjGt"}
|
||||||
|
{"name":"Frère de Mimir","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est capable d’une très grande sagesse. Face à une situation requérant une analyse pertinente ou nécessitant de prendre du recul pour trancher un dilemme, il trouve souvent la solution la plus sage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"YzXXzf6HNkegHMCw"}
|
||||||
|
{"name":"Sens aiguisés","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est en permanence aux aguets et maîtrise parfaitement ses cinq sens. Difficile de le surprendre ou de tromper sa vigilance.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"brUjZicO5FTMmW3b"}
|
||||||
|
{"name":"Corps de Fer","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros se montre très résistant aux coups. Il bénéficie d’un dé à dix faces supplémentaire lorsqu’il doit encaisser un choc.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"fZydabucwcAbCXtn"}
|
||||||
|
{"name":"Bagarreur","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros aime se battre et lutter à mains nues. Il possède une bonne technique et une aisance naturelle dans ce genre de situation qui lui permettent de faire la différence au moment critique.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"fuWVfxRJprayekbb"}
|
||||||
|
{"name":"Brave","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros démontre à chaque occasion l’étendue de son courage. Peu de choses sont capables de faire naître la peur dans son coeur.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"iboxr76kIASd86CA"}
|
||||||
|
{"name":"Ambidextre","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est aussi à l’aise de la main droite que de la main gauche. Il ne subit jamais de pénalité pour l’utilisation de sa mauvaise main.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"l8wcSShiNKmd1c31"}
|
||||||
|
{"name":"Elu de Njördr","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est particulièrement à l’aise sur les étendues marines de la Scandia. C’est un marin né, guidé par la main du dieu de la mer.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"qk59f66taLzlEKdG"}
|
||||||
|
{"name":"Guidé par Thorr","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le bras du personnage semble animé par l’énergie du dieu de la foudre. Au combat, il se montre capable de frapper des coups terribles.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"tFplCXljN4M3s5Ps"}
|
||||||
|
{"name":"Réfléchi","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage aime les jeux d’esprit, les énigmes et tout ce qui lui demande de faire appel à son intellect.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"unpGkTRlwfOYHicL"}
|
||||||
|
{"name":"Eloquent","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros possède le don des mots. Il sait présenter ses arguments, les enrober et rallier ainsi l’avis des autres au sien.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"uxxw1PZGyPpsIAFy"}
|
||||||
|
{"name":"Robuste","type":"don","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est très résistant aux conditions extérieures. Le froid, la chaleur, la faim le gênent moins que les autres. Il se montre également bien plus endurant face aux maladies et aux toxines, dont l’alcool.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"wnIXKyfqCWT0r4iT"}
|
141
packs/equipement.db
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
{"_id":"0tELaPFZgkeTUeVn","name":"Choux","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"13r1wd6cgXjFmLVz","name":"Coupe de stéatite (x3)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"1CU7PDbwFm0y46z5","name":"Orge (un baril)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"1QSmYMmezxlSDpV4","name":"Poisson, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"26qXhUnX8p4CnLw9","name":"Manteau de laine de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_5sjuseujvx","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Mobilier","children":[],"icon":""}},"_id":"2HDg5x1B6Omb8gs4"}
|
||||||
|
{"_id":"2HYY4yy35vzfqz72","name":"Pièce de cuir, l mètre","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":9,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_t9iszt166h","color":"#000000"}}}
|
||||||
|
{"_id":"327OOJrKRd7NKgNL","name":"Tenture de laine","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_t9iszt166h","color":"#000000"}}}
|
||||||
|
{"_id":"33i3WbjTwhVWn1So","name":"Atelier","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":"<p>Valeur: 20 à 200 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_2dc832wxenw","folderPath":["temp_acdsme7ylj5"],"color":"#000000","fontColor":"#FFFFFF","name":"Bijoux","children":[],"icon":""}},"_id":"3PEEUA7MzzF5lFlU"}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_gnm0v0yf2u6","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Aliments","children":[],"icon":""}},"_id":"3afWJZxVGmPhgP1k"}
|
||||||
|
{"_id":"3kr6lyWw1kFL4N4x","name":"Miel, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_w8bf2nzl2s8","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"La vaisselle","children":[],"icon":""}},"_id":"3oPYpGJ7FOWDdh3D"}
|
||||||
|
{"_id":"4zkfxhI72tpuBrsL","name":"Sous-vêtements ordinaires","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_t9iszt166h","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Tissu et étoffes (sur 1m de large)","children":[],"icon":""}},"_id":"5E3S0zBbWHyQKPn7"}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_oahtnyiva7l","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Boissons","children":[],"icon":""}},"_id":"6ow1DT8atibTpn1h"}
|
||||||
|
{"_id":"7npRSPR2f6TNWvuA","name":"Pantalon de laine ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"8FVFMvAGInCPnzdx","name":"Manteau de fourrure de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":100,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"8UWvEarTdm7LfqZO","name":"Coffre, petit","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":15,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"_id":"8vuNliBIjv23W1n2","name":"Peigne en ivoire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":"<p>Valeur 1 à 5</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_pkkqe51byki","color":"#000000"}}}
|
||||||
|
{"_id":"9CDleiQYZMkwerXA","name":"Lait de chèvre, le litre","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_oahtnyiva7l","color":"#000000"}}}
|
||||||
|
{"_id":"9Lw55zY9hc1AciAf","name":"Assiette en métal (x1)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"9Z4lAU1MAoFEhRGA","name":"Liqueur de fruit, le litre","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_oahtnyiva7l","color":"#000000"}}}
|
||||||
|
{"_id":"ADaIZtYULHGoHUES","name":"Lit, une place","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":18,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"_id":"BvxuVsbQDwF3Ny3G","name":"Crustacés, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"Bwwy8VLldvLZEyy8","name":"Cape ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"C1gdZIL23Vq6Zkq5","name":"Toque de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"C39NOMnrE4OjXkVP","name":"Broche / Fibule","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":"<p>Valeur 10 à 500</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_2dc832wxenw","color":"#000000"}}}
|
||||||
|
{"_id":"CeDdM0rnH1QdVgw0","name":"Faucon","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"CiATDRvBmNJapqup","name":"Gibier, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":4,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"CnPyIGoIDBzVwqhG","name":"Robe de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"EE6mvK4m89bdHObk","name":"Pantalon de laine de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":50,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"F7hNAs9pt5pa0LGE","name":"Tapis, grand","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":40,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_t9iszt166h","color":"#000000"}}}
|
||||||
|
{"_id":"Fw4RGCZHbzMuCzRF","name":"Robe de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":40,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"GPFidCQc0S13FdHE","name":"Sous-vêtements de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"GSIvMs8y9ZvMcsAp","name":"Bracelet","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":"<p>Valeur 10 à 500</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_2dc832wxenw","color":"#000000"}}}
|
||||||
|
{"_id":"Hja27eYCh6syrlUu","name":"Bourse en cuir","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_pkkqe51byki","color":"#000000"}}}
|
||||||
|
{"_id":"I7aGba8inXDCcySz","name":"Coupe de métal (x1)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"IqZKtzf2UdsFnKT4","name":"Corne à boire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":"<p>Valeur : de 1 à 6 selon la richesse des ornements</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"IznrAUNX7wFV6zqs","name":"Robe ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"JU9h51Gx53V7ZWjA","name":"Champignons (1kg)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":4,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"KGK6ObRi4G103oNi","name":"Mouton","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":4,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"LMaeG4XfHrvFW01k","name":"Peigne en os","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_pkkqe51byki","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_pkkqe51byki","folderPath":["temp_acdsme7ylj5"],"color":"#000000","fontColor":"#FFFFFF","name":"Accessoires","children":[],"icon":""}},"_id":"LYxHKZyTJLot4WFj"}
|
||||||
|
{"_id":"M6UjMat7CgtLcEMO","name":"Plat en métal orné","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"MKcOk2ggk7pCT4yW","name":"Chien de chasse","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"MliproAyUflmBBzV","name":"Pantalon de laine de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"MzNsW6lBKZjYXVpv","name":"Chemise de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"N6I8La2TW7MqSSzJ","name":"Chaise","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":3,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"_id":"N8yMCMvOgdfPUOtl","name":"Chien de garde","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":15,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"NgUKY0DTFzr3RGvm","name":"Bottes ordinaires","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"OALDPOroXaPGWvi4","name":"Banc","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"_id":"OPkFl1zey13Xf5z3","name":"Maison, petite","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":"<p>Valeur: 20 à 100 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||||
|
{"_id":"OTUrSnL6VY1tigYu","name":"Pommes (x6)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"P56HkU0jwQ0r4gKL","name":"Outre de peau","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||||
|
{"_id":"QKEm2GD9po7isD2f","name":"Boeuf, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":3,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"R1OR5lEPJTp2138y","name":"Traineau","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":80,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||||
|
{"_id":"RC1edSEL6ZWozzK4","name":"Navets (x4)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"RgTsBPqqJp7OaWoQ","name":"Fruits de mer, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"RioKblxq3kMNUEOU","name":"Châtaignes (x12)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"RluyTd6yL72DXh8F","name":"Bottes de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":50,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"Rp9J5pZTV4iqY9hP","name":"Toque ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"SM9u8JqJLyY37zaG","name":"Ceinture de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"TYEmFbXXjVJUd5yS","name":"Chien de guerre","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"TdqihJVxoiXva6hh","name":"Tapis, petit","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":16,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_t9iszt166h","color":"#000000"}}}
|
||||||
|
{"_id":"TtG3xNUBtZndkwGf","name":"Manteau de laine ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":16,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"U3H907FCP9Yt84U9","name":"Bière","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_oahtnyiva7l","color":"#000000"}}}
|
||||||
|
{"_id":"UDCH7wjMIZ7w9ojk","name":"Oeufs (x12)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"VtPK00W34pRDTqqP","name":"Chat","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"XwxZ7o8qCtXMvM6H","name":"Besace","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":"<p>Valeur 2 à 5</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_pkkqe51byki","color":"#000000"}}}
|
||||||
|
{"_id":"YTTr04oWOtTpqMSn","name":"Coffre, grand","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_3mky1xz4s5a","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Matériel de voyage","children":[],"icon":""}},"_id":"YkBXKz3eMPwnZzdy"}
|
||||||
|
{"_id":"Yzp6xG4TvdqekMbS","name":"Tabouret","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"_id":"aTXpAI60TC9iPNW2","name":"Noix (x12)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"b7KxnGQYSch0R3LR","name":"Oie, la pièce (Copy)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"bBYQWKsP2obNVY3g","name":"Toque de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"bVyPX9mly7ZKGmpi","name":"Lanterne","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":12,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_xbkwrebbs7","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Animaux","children":[],"icon":""}},"_id":"bc4G5zHvyo85bTY4"}
|
||||||
|
{"_id":"cG0unabjBznqJ9Vh","name":"Manteau de laine de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":50,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"d6VS7jZtf6R8YCWB","name":"Table, grande","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":35,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"_id":"dvGLoVfRpJpnNOpn","name":"Panier en osier","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_pkkqe51byki","color":"#000000"}}}
|
||||||
|
{"_id":"e8xG2FLZdXS7STTV","name":"Sous-vêtements de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"eAajHJZdd1isu09E","name":"Cuillère (x10)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"edMLOkQNyYKN4W0A","name":"Pantalon de cuir de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"ehAcU3jZ1LXgqSN9","name":"Sel, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":3,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"f2pfjWwdEdjPc9Cv","name":"Vin, le litre","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":15,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_oahtnyiva7l","color":"#000000"}}}
|
||||||
|
{"_id":"fws1RBO2zlE4mJjv","name":"Porc, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"g66LGP2FRcBqr7aX","name":"Maison, grande","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":50,"quantite":0,"description":"<p>Valeur: 50 à 200 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||||
|
{"_id":"hMiS8qZqZLuNVYwn","name":"Vache","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"hR7B4XmjMteL6j8f","name":"Oie","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"hYtpS1SKt9KSznaw","name":"Pantalon de cuir ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":40,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"htOfMXqgrdmuPba9","name":"Cape de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"hxyf9UAM2mFo4Y1X","name":"Manteau de fourrure ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":60,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"hzCkSuejnIwSlinu","name":"Chemise de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":4,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"iWSZe7OdkUP01jMZ","name":"Ceinture ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"isYjaijArl555G5C","name":"Bottes de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"jP7pH91TuzeceatW","name":"Manteau de fourrure de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"jZ5pN6URDCuamJgX","name":"Lit, deux place","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"_id":"jopc64f9KWuv8r95","name":"Plat en terre cuite","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"kdCUOEfnHDsYKHMw","name":"Cabane","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":"<p>Valeur: 10 à 20 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||||
|
{"_id":"lFQkKvb4Z0qofIwE","name":"Baies (1 kg)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"mAiWbe4NhPssSLlL","name":"Cheval de selle","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":100,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"meAJhZtTbYX9m6m0","name":"Poulet, la pièce","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"mmMUrQpu2ymLBvcZ","name":"Prunes (x12)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"mnbHG7RKmkkKm8Kx","name":"Cheval de guerre","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":200,"quantite":0,"description":"<p>Valeur 200 à 1000</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"nFEsKXSvM9wV0Ngd","name":"Marmite de métal","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":4,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"nFYHkXhohlKlcqkm","name":"Baril","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_acdsme7ylj5","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Les accessoires et les bijoux","children":[],"icon":""}},"_id":"nGvpVBeJJ39gGS4Q"}
|
||||||
|
{"_id":"oKO6FnSAvjSUfLV5","name":"Hydromel, le litre","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_oahtnyiva7l","color":"#000000"}}}
|
||||||
|
{"_id":"ouNRAKkVsmMCCWyD","name":"Boeuf","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":12,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"pFN0rWRGYZwGXRLF","name":"Patins (la paire)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":20,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_4l2xub2vumf","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Immobilier","children":[],"icon":""}},"_id":"pGsJfVKlckIwyJEA"}
|
||||||
|
{"_id":"pKWRurpOKpiKOnZK","name":"Table, petite","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"_id":"pTKzL6maJA8UrBTS","name":"Couteau","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"pgjOZ9n6hvsCtgKP","name":"Ail, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"q5oqxEVSoeilJKFE","name":"Cape de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"qyTSpUEkyp1disvy","name":"Cochon","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"rGKUHrDbvkoHPTve","name":"Pot en terre cuite","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"rOfDlaQ7ykgl7akP","name":"Pièce de lin (5 mètres)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":3,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_t9iszt166h","color":"#000000"}}}
|
||||||
|
{"_id":"rvoBKpk1z9Xx6liD","name":"Amadou","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||||
|
{"_id":"sGCFCe2IsHrZfF67","name":"Collier","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":10,"quantite":0,"description":"<p>Valeur 10 à 1000</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_2dc832wxenw","color":"#000000"}}}
|
||||||
|
{"_id":"tj5GitQXME3twMZA","name":"Ferme","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":100,"quantite":0,"description":"<p>Valeur: 100 à 500 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||||
|
{"_id":"u6x3iKoK1dFVSkmR","name":"Assiettes en terre cuite (x6)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||||
|
{"_id":"uhn3xaweehPUZ50g","name":"Lait de vache, le litre","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_oahtnyiva7l","color":"#000000"}}}
|
||||||
|
{"_id":"unHM416bSKzKQnEz","name":"Maison longue","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":50,"quantite":0,"description":"<p>Valeur: 50 à 10 000 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||||
|
{"_id":"v2yQffSyG2Hv3PaX","name":"Poulet (x2)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"vLedwJH0DQKCaXfx","name":"Pantalon de cuir de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":70,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"vdDSkS9Y3VEkoMtd","name":"Grand sac","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":6,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||||
|
{"_id":"vmLtI5hpuKxUIoRR","name":"Petit sac","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||||
|
{"_id":"vuJAvNle5EkZB7Nx","name":"Blé (un baril)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"wGNKXkawnjjKSMhL","name":"Chemise ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":8,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"wIPiowsoKpN6O2i4","name":"Pièce de chanvre (5 mètres)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.K7VwQEbx4MfPwHnD"},"cf":{"id":"temp_t9iszt166h","color":"#000000"}}}
|
||||||
|
{"_id":"wWj2mtvC00EEqw0T","name":"Pièce de laine (5 mètres)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_t9iszt166h","color":"#000000"}}}
|
||||||
|
{"_id":"xId7XdABXbPFlMZu","name":"Mouton, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":3,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||||
|
{"_id":"xSuvtLVKnW7JX9pe","name":"Corde, 10m","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||||
|
{"_id":"xqd7mgmosQP917Ie","name":"Ceinture de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||||
|
{"_id":"xru0AoOx7lNrv85V","name":"Anneau","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":"<p>Valeur 5 à 100</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_2dc832wxenw","color":"#000000"}}}
|
||||||
|
{"_id":"y40ksr6degZlMlmC","name":"Brasero","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":6,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||||
|
{"_id":"ySguJYdBGBke5u7w","name":"Taureau","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||||
|
{"_id":"yplvVkz4sl0stgvj","name":"Palais","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":50000,"quantite":0,"description":"<p>Valeur: 50 000 à 500 000 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||||
|
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Les vêtements","children":[],"icon":""}},"_id":"zC0kHoqZ9lkQFgI6"}
|
26
packs/faiblesses.db
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{"name":"Curieux","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage ne résiste jamais à l’envie d’aller fourrer son nez là où il ne devrait pas. Cette faiblesse risque surtout de lui attirer des ennuis immédiats.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"0EoL2kcGdYiYS8lY"}
|
||||||
|
{"name":"Froid","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>L’attitude du personnage est constamment distante et il livre très peu de lui-même dans ses relations. Ses capacités de séduction et la sympathie qu’il exprime en sont grandement réduites, même s’il est en fait une personne aux qualités humaines incontestables.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"1gfJBHwAxzkAGAFR"}
|
||||||
|
{"name":"Sang chaud","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros ne refuse jamais un défi et s’emporte aisément dès qu’il se sent insulté ou provoqué.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"AMLKS21jqeT1lkhl"}
|
||||||
|
{"name":"Imberbe","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage, masculin forcément, n’a pas un poil de barbe ce qui fait émettre des doutes sur sa virilité. Les femmes préfèrent la compagnie d’autres hommes, ses compatriotes médisent sur son courage (et ses qualités dans la couche de ses compagnes).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"FJeYGwFKZJCiJY8B"}
|
||||||
|
{"name":"Handicapé","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros souffre d’un handicap physique.</p>\n<p>Par exemple : pied bot (Dep –1), borgne (malus de –2 aux tests de Perception), manchot (malus de –3 aux tests requérant l’usage des deux mains, unijambiste (Dep /2), bossu</p>\n<p>(Dep –1)… Le Meneur de Jeu et le joueur décident ensemble des pénalités pour d’autres handicaps que ceux-ci. De plus, les autres regardent le personnage avec pitié ou mépris.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"FTrOC09uBM0GPfJT"}
|
||||||
|
{"name":"Malédiction de Loki","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est doté d’une malchance incroyable. Il perd à tous les jeux de hasard et, dès qu’une mouette survole le groupe au sein duquel il se trouve, c’est toujours son vêtement (au mieux) qui est souillé.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"GTo2Ng1tcaGTSag6"}
|
||||||
|
{"name":"Téméraire","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage fonce tête baissée face au danger, sans mesurer les risques encourus. Il refuse de considérer les possibilités d’échec de ses actions.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"GWuGrjWED9tBSOTs"}
|
||||||
|
{"name":"Mysogyne / Misandre","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage doute des capacités des membres du sexe opposé. Il n’est pas forcément agressif, plus souvent condescendant voire méprisant.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"GsA81bkzTk78lK43"}
|
||||||
|
{"name":"Peur","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est effrayé par un élément banal en Scandia. En sa présence, il se sent très mal à l’aise (exemples : la nuit, les loups, les femmes, le feu, la mer…)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"IzbiqK0jjzqUjDL5"}
|
||||||
|
{"name":"Rigide","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Jamais le héros ne trahira sa parole donnée ou celui qu’il reconnaît comme son chef. Même si on lui démontre l’inanité d’un tel serment.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"LIsqpa6pRjQ6qCu0"}
|
||||||
|
{"name":"Etrange","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros dégage une aura qui met mal à l’aise ses interlocuteurs, dérange les animaux domestiques voire incommode les enfants placés en sa présence.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"O5nGHtIpr45rEKaU"}
|
||||||
|
{"name":"Paillard","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros ne recherche rien de plus que la satisfaction de la bonne chère, de la boisson et des caresses des femmes. Il ne résiste jamais à l’occasion d’un festin ou d’une nuit de plaisir.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"PVazq0Ro9b6ySkXo"}
|
||||||
|
{"name":"Faible","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage s’épuise vite et parfois ses muscles le trahissent, l’empêchant de déployer toute sa (maigre) puissance physique.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"Rl0yjJnzu98MRMWW"}
|
||||||
|
{"name":"Hors-la-loi","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage a été banni d’une contrée ou d’un royaume de la Scandia. S’il y retourne, et qu’on le reconnaît, il risque d’être mis à mort sans autre forme de procès.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"UXDEkGVFYNiZnuex"}
|
||||||
|
{"name":"Distrait","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage a du mal à se concentrer sur un sujet précis. Il est toujours dans la lune et il est facile de le surprendre dans ses rêveries.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.GlmdPHwslAkGoIiq"}},"_id":"WCeztw68ftzZCJ0i"}
|
||||||
|
{"name":"Rancunier","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage n’oublie jamais une offense, réelle ou supposée. Il se montre odieux avec ceux qu’il juge associés à cette humiliation.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"Zu5m6MKjkBAjrQTL"}
|
||||||
|
{"name":"Ivrogne","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage est un incorrigible buveur. Il ne rate jamais une occasion de boire plus que de raison et peut-être de trop parler.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"cIhYNGxUTEemdhkY"}
|
||||||
|
{"name":"Impétueux","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage refuse de remettre au lendemain ce qu’il doit accomplir. Dans toute situation, il a tendance à agir avant de réfléchir et ne sait pas faire preuve de patience.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"f5nR7bVExIk3JlDy"}
|
||||||
|
{"name":"Interdit","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le héros suit un code personnel et rigide. Jamais il ne le transgressera. Le joueur détermine celui-ci au départ, en accord avec le Meneur de Jeu. Exemples : ne jamais attaquer un ennemi désarmé, ne jamais laisser passer une insulte, ne jamais attaquer un ennemi par surprise, ne jamais manger de viande autre que celle de l’ours…</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"gqeDYlO9vTO22OO6"}
|
||||||
|
{"name":"Vendetta","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage poursuit une vendetta personnelle ou familiale. Il mettra tout en oeuvre, quitte à s’aliéner de nouveaux ennemis, pour venger son honneur.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"gutAzYjGfdppEdmv"}
|
||||||
|
{"name":"Cruel","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage aime voir souffrir les autres et ne ressent aucune compassion. Ses relations sociales en sont amoindries dès que les gens comptent sur lui pour les aider.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"hLFi8fvndJrRUpHM"}
|
||||||
|
{"name":"Arrogant","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage ne rate pas une occasion d’afficher son mépris envers tous ceux qu’il considère comme inférieurs à lui. C’est-à-dire presque tout le monde.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"kl2kNT8D9LI2gMxB"}
|
||||||
|
{"name":"Souffreteux","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage souffre d’une constitution faible et tombe plus souvent malade que les autres habitants de la Scandia. Il résiste très mal aux effets de l’alcool.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"mOZWF8kOjoadGBNj"}
|
||||||
|
{"name":"Amnésique","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage n’a aucun souvenir de son passé. Il a pu subir un choc, physique ou mental, et perdre ainsi la mémoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"qrErZOTAd0Gzk6eF"}
|
||||||
|
{"name":"Naïf","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage croit facilement tout ce qu’on lui raconte. Il a tendance à faire confiance facilement, même au premier venu.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"vbBtUVmSLVWsV0vV"}
|
||||||
|
{"name":"Brute","type":"faiblesse","img":"icons/svg/item-bag.svg","data":{"description":"<p>Le personnage n’a aucune manière et gère ses relations avec les autres selon un simple rapport de force.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"xf1RAsIzBXQgbLq2"}
|
5
packs/galdr-charme.db
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{"name":"Charmer les animaux","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"charme","sd":9,"description":"<p>Le mage met en confiance les animaux, et peut sans problème les côtoyer. Cela comprend aussi bien les animaux domestiqués que les sauvages. Néanmoins, cela ne préserve pas les compagnons du mage au cas où l’animal est sauvage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"7VeQIQHxvw233Jzt"}
|
||||||
|
{"name":"Charmer les humains","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"charme","sd":12,"description":"<p>La mage charme les humains, et peut les convaincre sans peine de faire quelque chose sans danger pour lui. L’humain charmé ne fera rien de contraire à sa mannhelgr (voir page 147. Il n’attentera pas à sa propre vie, à sa famille ou son clan, ne trahira pas, ne se prêtera pas à des actes qu’il juge dégradants.)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"UQNMV5TJONQ4yj5E"}
|
||||||
|
{"name":"Charmer les Créatures","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"charme","sd":15,"description":"<p>Le mage met en confiance les créatures surnaturelles (<em>troll,alfar, dvergar, landvaettir</em>), sauf les créatures légendaires uniques. Le mage doit être seul et la présence de l’un de ses compagnons brise le charme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"azui4IfUxX7pZKCr"}
|
||||||
|
{"name":"Séduire","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"charme","sd":6,"description":"<p>Le mage sait séduire, charmer les personnes du sexe opposé. Il n’aura aucun mal à les attirer dans sa couche. Il peut également repousser, éteindre les désirs exprimés par autrui pour sa personne ou pour un autre homme. Il peut aussi faire naître une idylle entre deux autres personnes, ou y mettre fin.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"mAuy1ci08xhyDIy2"}
|
||||||
|
{"name":"Sommeil","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"charme","sd":3,"description":"<p>Le mage peut endormir quelqu’un ou le tirer d’un sommeil magique. Cela peut-être quelqu’un dans son lit mais également le garde à la porte du palais ou le compagnon d’aventure qui s’endort au beau milieu de son tour de garde, victime d’un sort. Rien ne pourra réveiller la personne endormie, sauf la fin du sort.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"xw2gPhCxDVpkJnxL"}
|
5
packs/galdr-illusions.db
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{"name":"Toucher","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"illusion","sd":15,"description":"<p>Le mage rend son Illusion tangible. Elle devient donc crédible car n’importe quelle personne a la sensation de la toucher. Ce Domaine est toujours accompagné d’un autre, prinicpalement la Vue. Pour réussir maintenant son Test de Résistance, il faut ajouter le score en Galdr du mage comme malus au jet de dés.</p>\n<p>Donner l’impression qu’une Illusion est palpable ne veut pas dire qu’elle l’est réellement, c’est-à-dire, qu’il est impossible de retenir une chute de pierre ou de bloquer l’écoulement d’un riviére.</p>\n<p>Par contre, si les victimes de l’Illusion la croient réelle, alors ils en subiront les effets ou agiront en conséquence. Une Illusion de porte bloquera l’entrée, ou alors une Illusion d’un garde armé, ou d’un kraken, blessera les victimes.</p>\n<p>Tous les dégâts infligés par une Illusion restent virtuels et personne ne peut mourir de cette manière. Si jamais, une victime atteint 0 Point de Vie, elle tombe dans l’inconscience et se réveillera au bout de 1D10 Minutes indemne.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"89NwqZV3Qn9xWeO0"}
|
||||||
|
{"name":"Vue","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"illusion","sd":6,"description":"<p>Le mage peut créer un objet, un animal, ou un être humain, de n’importe quelle forme. Il est nécessaire que le mage ait déjà vu cet objet, animal, humain, pour pouvoir le reproduire dans son Illusion (guerrier à l’air agressif, bateau chargé, cheval qui rue, coffre fermé, etc) .</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"oYVF1N7dY6F51Okw"}
|
||||||
|
{"name":"Ouïe","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"illusion","sd":3,"description":"<p>Le mage peut créer un son, et le faire provenir d’où il le désire. Il est nécessaire que le mage ait déjà entendu ce son lui-même pour pouvoir le reproduire (cri de femme, hurlement de loup, cailloux qui dévalent une pente, feuilles froissées, galop de cheval, etc).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"qSRAOCbczthA2avT"}
|
||||||
|
{"name":"Goût","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"illusion","sd":12,"description":"<p>La mage peut créer l’illusion d’un goût qu’il a déjà expérimenté. Ce goût ne peut en aucun cas être dangereux pour la victime du sort. On peut créer l’illusion du goût d’un poison. La victime le reconnaîtra peut-être, et peutêtre sera-t-elle effrayée à cette idée, mais elle ne peut mourir d’un empoisonnement. Par contre quelqu’un qui dévore un aliment périmé en lui trouvant le goût de la nourriture fraîche souffrira de troubles digestifs voire d’une intoxication alimentaire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"quq0OOxf2AQhXgVW"}
|
||||||
|
{"name":"Odorat","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"illusion","sd":9,"description":"<p>Le mage peut créer une odeur reconnaissable, forte ou légère, de n’importe quelle origine. Il faut que ce soit une odeur connue du mage et qu’il se souvienne de l’effet qu’elle produit pour la dupliquer (fumée d’incendie, odeur de cuisine, parfum d’une femme, etc)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"sH7HaKggOEaBVzn3"}
|
5
packs/galdr-maledictions.db
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{"name":"Action ou Maladie Majeure","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"malediction","sd":12,"description":"<p>Les maladies provoquées sont graves et peuvent entraîner la mort si elles ne sont pas soignées à temps (voir Blessures et Guérison page 132). La malédiction peut aussi entraîner une disgrace auprès du roi ou du jarl, l’incapacité à obtenir des enfants viables avec son épouse, perte de biens, etc.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"1smXvw2EcuTkytDv"}
|
||||||
|
{"name":"Action où maladie mineure","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"malediction","sd":3,"description":"<p>Elles n’entraînent pas de maladie durable, et ne peuvent avoir de conséquences graves et définitives. Elles sont ponctuelles. (exemples de contraintes : oublier de se rendre à un endroit, échec d’une requête mineure au thing, échec d’un accord commercial mineur, perte momentanée des cheveux, impuissance momentanée, insomnies, etc)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"M1EJMGljCDBwsMDG"}
|
||||||
|
{"name":"Malédiction majeure","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"malediction","sd":15,"description":"<p>Elle entraîne généralement, l’exil, la ruine ou la mort de la victime ou d’un être qui lui est cher (frère, fils, femme). Mais elle reste rarement impunie. Gare au retour de bâton.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"cwhw7aopqzcqFkK7"}
|
||||||
|
{"name":"Malédiction mineure","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"malediction","sd":9,"description":"<p>Là, les effets commencent à avoir un impact durable sur la victime. Malchance au jeu, mauvais mariage, ne jamais être reconnu selon sa renommée.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"hzGMzeyw93hkPNph"}
|
||||||
|
{"name":"Action où maladie modérée","type":"sortgaldr","img":"icons/svg/item-bag.svg","data":{"voie":"malediction","sd":6,"description":"<p>Les maladies provoquées se trouvent dans la partie Blessures et Guérison, page 135. Quand aux actions, elles sont encore limitées dans le temps et ne peuvent être infamantes ou provoquer mort, ou bannissement. (exemples : oublier de se présenter à son propre mariage, attraper la dysenterie, ne pas être reconnu selon sa renommée durant une semaine, faire tourner le lait en entrant dans les maisons, être haï temporairement des animaux, etc.)</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"yKLS6KQafucspg3R"}
|
8
packs/poisons.db
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{"name":"Amanite tue-mouches","type":"poison","img":"icons/svg/item-bag.svg","data":{"categorie":"moderee","type":"Ingestion","description":"<p>La victime est prise de terribles maux d’estomac.</p>\n<p>Ceux-ci s’accompagnent de troubles neurologiques (tremblements, difficulté de concentration…) qui durent de 2 à</p>\n<p>11 heures (1D10+1 heures). Ce poison n’est pas mortel en soi, mais il handicape gravement celui qui souffre des symptômes mentionnés. Tant que le personnage est sous l’effet de la toxine, il subit un malus de –9 à toutes ses actions. De plus, il perd aussitôt 1D10PV.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"8lGlSw9Hkqbx1MDE"}
|
||||||
|
{"name":"Arsenic","type":"poison","img":"icons/svg/item-bag.svg","data":{"categorie":"moderee","type":"Ingestion","description":"<p>On peut facilement mélanger cette substance à la nourriture ou à la boisson. La victime présente des signes de maladie intestinale aigüe : vomissements, diarrhées, déshydratation importante, abominables douleurs de ventre.</p>\n<p>La mort survient en quelques heures. Les symptômes peuvent aisément être confondus avec ceux de la dysenterie et faire croire à une mort naturelle.</p>\n<p>Un test de Vigueur réussi permet de résister à ces effets, mais le personnage est tout de même malade pendant 1D10 heures. Ce test subit un malus de –3 par dose absorbée. Le personnage empoisonné perd 1D10PV toutes les dix minutes. Seul un antidote efficace peut alors le sauver. Certaines personnes s’immunisent à l’arsenic en ingérant progressivement des doses infinitésimales mais de plus en plus fortes. Dans ce cas, le personnage peut conserver 3D10 lors de son test de Vigueur, au lieu des 2D10 habituels.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"FpmcG59NJsneO2ao"}
|
||||||
|
{"name":"Toxines naturelles","type":"poison","img":"icons/svg/item-bag.svg","data":{"categorie":"mineure","type":"Ingestion, contact où injection","description":"<p>Certains animaux, de nombreuses plantes sécrètent une forme de venin. Ces substances peuvent être utilisées brutes ou transformées par un expert de la pharmacopée de la Scandia. Les caractéristiques données ci-dessus correspondent à une toxine standard. Vous pouvez les faire varier afin de refléter toutes sortes d’autres substances du même type.</p>\n<p>En général, on observe une réaction locale sur la zone touchée. La peau enfle et rougit pour un poison de contact, des maux de ventre pour une ingestion et des crampes musculaires pour une toxine injectée. Souvent, ces symptômes s’accompagnent de fièvre. Dans les cas les plus graves, le venin provoque une paralysie progressive et la mort de la victime en quelques heures ou quelques minutes.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"GdcyFo0f9E4uhGwh"}
|
||||||
|
{"name":"Aconit","type":"poison","img":"icons/svg/item-bag.svg","data":{"categorie":"majeure","type":"Ingestion","description":"<p>Le personnage subit une baisse importante de sa température corporelle. Il est pris de vomissements, d’une paralysie progressive et meurt d’un arrêt cardiaque au bout de (Vigueur +2) heures. Seul un antidote adapté, administré avant l’échéance fatale peut sauver le personnage. Toutefois, même dans ce cas, il se retrouve alors avec seulement la moitié de ses Points de Vie. Seule une guérison naturelle peut l’aider à retrouver son total de départ.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"JnCe5OxVNapcbqvj"}
|
||||||
|
{"name":"Somnifère","type":"poison","img":"icons/svg/item-bag.svg","data":{"categorie":"mineure","type":"Ingestion où injection","description":"<p>Catégorie : mineur (SR10) ou modéré (SR14) selon le dosage</p>\n<p> </p>\n<p>Il en existe de nombreuses variétés, la plupart sont d’origine végétale. Toutes rendent la victime somnolente. Sa vigilance baisse et une dose suffit à le plonger lentement dans le sommeil.</p>\n<p>Un personnage atteint qui rate son test de Vigueur s’endort pour une période d’environ quatre heure par dose utilisée.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"MZkMUc1veqZvNthv"}
|
||||||
|
{"name":"Amanite phalloïde","type":"poison","img":"icons/svg/item-bag.svg","data":{"categorie":"majeure","type":"Ingestion","description":"<p>Lette puissante toxine, facile à trouver et à préparer, détruit le foie et les reins de sa victime. La souffrance est intolérable, la victime se tord de douleur jusqu’à l’échéance fatale.</p>\n<p>La mort survient en (Vigueur) heures. Seul un antidote adapté, administré dans la première heure peut sauver le personnage. Toutefois, même dans ce cas, il se retrouve alors avec seulement la moitié de ses Points de Vie. Seule une guérison naturelle peut l’aider à retrouver son total de départ.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"QvtpWX7vZ1am8zMP"}
|
||||||
|
{"name":"Gui","type":"poison","img":"icons/svg/item-bag.svg","data":{"categorie":"moderee","type":"Ingestion","description":"<p>L’empoisonnement est lié à l’absorption des fruits. Il se traduit par des troubles digestifs sans gravité dans la plupart des cas (malus de –5 à toutes les actions et perte de 1D10PV). Ces symptômes disparaissent au bout de (7 – Vigueur) jours.</p>\n<p>Cependant, si une trop grande quantité de baies est ingérée, il apparaît alors des complications cardiaques qui se révèlent parfois mortelles. Le personnage doit réaliser un second test de Vigueur à la suite du premier. Si celui-ci résulte également en un échec, la mort survient en (Vigueur) heures.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"gjVFTXyx70MLAPoM"}
|
||||||
|
{"name":"Belladone","type":"poison","img":"icons/svg/item-bag.svg","data":{"categorie":"majeure","type":"Ingestion","description":"<p>La victime souffre d’une paralysie respiratoire majeure. La mort survient en moins d’une heure (Vigueur x10 minutes). Seul un antidote adapté, administré avant l’échéance fatale peut sauver le personnage. Toutefois, même dans ce cas, il se retrouve alors avec seulement la moitié de ses Points de Vie. Seule une guérison naturelle peut l’aider à retrouver son total de départ.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"rMGHu9grQeuvSl6n"}
|
54
packs/prouesses-martiales.db
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{"name":"Féroce comme l’ours niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-6,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+5, +10, +15 ou +20). En outre, il rajoute immédiatement de 1 à 4 dés à sa réserve de furor (selon le niveau de prouesse utilisé). Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.CecbSkY2QPsZjT9X"}},"_id":"1NgxXWCVuFNQ6pis"}
|
||||||
|
{"name":"Inspiré par Odhinn niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":2,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-6,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +3/+6/+9/+12 (selon le niveau de la prouesse). Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.Ggr706SVOvQplR07"}},"_id":"1jPd0WmLB7iOZCgw"}
|
||||||
|
{"name":"Grêle mortelle niv. 2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le personnage libère plusieurs projectiles dans le même tir, de deux à quatre selon le niveau de la prouesse (il encoche plusieurs flèches, il saisit deux javelots dans la même main, etc…) Il ne peut cependant viser qu’une seule cible. En cas de réussite, les dégâts infligés sont désormais égaux à (Marge de Réussite + potentiel de l’arme) x Nombre de projectiles.</p>\n<p>La valeur de protection de la victime s’applique contre chaque trait. On retire donc (Protection x Nombre de projectiles) au montant total des dégâts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.iu2pLSJfPe8dtSdS"}},"_id":"3GMFpDNQtt7AOrS7"}
|
||||||
|
{"name":"Ni d’estoc, ni de taille","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":3,"armes":"armes longues","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le héros dépense une action pour parer une attaque adverse. Durant le restant de ce tour de combat, il peut réaliser une seconde parade sans que cela ne lui demande de sacrifier une nouvelle action. Cette seconde défense fait partie d’un enchaînement entamé avec la première. Aussi, il effectue son test sans prendre en compte de modificateur d’action supplémentaire (mais avec le malus de prouesse de –9). Cette seconde parade n’apparaît pas dans le décompte des actions pour ce tour. Cette défense ne permet que de se garder d’un coup. Il est impossible d’enchaîner une contre-attaque ensuite.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.JmzUmkOVEYdhRN4k"}},"_id":"3qnqodZhPbOQdzmH"}
|
||||||
|
{"name":"Inspiré par Odhinn niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":4,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-12,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +3/+6/+9/+12 (selon le niveau de la prouesse). Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.fX09Ank6h2uN6ExH"}},"_id":"5JrBAoHl1Vh1Xz6y"}
|
||||||
|
{"name":"Entre les yeux","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Expert\"","modificateur":-12,"description":"<p>Le héros réalise un tir très précis et particulièrement mortel. Si le projectile atteint la cible, celle-ci perd immédiatement la moitié des Points de Vie qui lui reste. Les figurants sont tués sur le coup.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.cZj3CfZTbG2NlpDf"}},"_id":"5bVAc6dFgOSqFGpk"}
|
||||||
|
{"name":"A toi !","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":2,"armes":"Esquive","prerequis":"Niveau de compétence \"Confirmé\"","modificateur":-6,"description":"<p>Le personnage doit se trouver au contact de plusieurs adversaires. Il dépense une action pour réaliser une esquive face à un coup qui menace de l’atteindre. S’il la réussit, il reste sur place, sans chuter, et laisse juste passer l’attaque sans qu’elle l’atteigne. Par contre, celle-ci touche automatiquement un autre de ses adversaires qui subit la moitié des dégâts normaux.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.cxV1XLmQVgnIwP7H"}},"_id":"88SDaHJqIovht0u8"}
|
||||||
|
{"name":"Briser le bouclier","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes à deux mains","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le héros frappe de toutes ses forces le bouclier de l’adversaire. S’il atteint sa cible, il détruit automatiquement cette pièce d’équipement. Le bouclier devient inutilisable et le défenseur voit sa protection diminuer d’autant.</p>\n<p>Le défenseur ne peut pas parer ce coup, juste l’esquiver.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.2IFHvihXIH7csSuc"}},"_id":"9kqFH6n1xEegwW5u"}
|
||||||
|
{"name":"Rapide comme la foudre","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":1,"armes":"","prerequis":"Mouvement \"Novice\"","modificateur":-3,"description":"<p>Le personnage change brusquement de rythme dans le combat et modifie sa position pour prendre l’avantage sur son adversaire. Le joueur dépense une action et réalise un test de Mouvement contre un Seuil de Réussite Moyen (14) plus la Défense physique (ou le Conflit/défensif) d’un ennemi qui détient l’initiative sur lui (sans oublier le malus de –3 lié à la prouesse). En cas de succès, dès l’action suivante, le héros échange son rang d’initiative avec celui de son adversaire. Cette nouvelle valeur est utilisée pour tous le reste du combat, contre cet ennemi comme contre d’autres.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.puZXhty1LvcDozTi"}},"_id":"AvQ0eT5ySDz7GUDS"}
|
||||||
|
{"name":"Féroce comme l’ours niv.1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-3,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+5, +10, +15 ou +20). En outre, il rajoute immédiatement de 1 à 4 dés à sa réserve de furor (selon le niveau de prouesse utilisé). Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.h8lItxjvYlXPRf3U"}},"_id":"BlrwSdiYuC11aNhe"}
|
||||||
|
{"name":"Feinte de corps","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":1,"armes":"Toutes les armes de mêlée","prerequis":"","modificateur":-3,"description":"<p>Le personnage effectue une parade et tente de se dégager de la trajectoire de l’attaque ennemie. S’il réussit son coup, la prochaine action de l’adversaire est modifiée par un malus supplémentaire de –3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.BNCXoUQF5Alk1QeC"}},"_id":"Ckoaunbtt2vb7pQ4"}
|
||||||
|
{"name":"Sonner","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"toutes les armes de mêlée","prerequis":"compétence martiale \"Novice\"","modificateur":-3,"description":"<p>Le personnage assène un déluge de coups violents sur son adversaire. Le dessein de l’attaquant consiste à désorienter l’ennemi. Si le coup porte, la victime subit des dégâts normaux. En outre, elle doit immédiatement réussir un test de Ténacité contre un SR Aisé (10) avec un malus égal au montant des dégâts subis. En cas d’échec, la cible passe en mode défensif (pour les figurants, il s’agit d’un test de Résistance Mentale défensif contre ce même SR). Elle ne peut donc plus contre-attaquer pour le restant de ce tour de combat.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.OBej7jVy0MEV4zfT"}},"_id":"CshFNho3CdQi6PSz"}
|
||||||
|
{"name":"Grêle mortelle niv. 3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le personnage libère plusieurs projectiles dans le même tir, de deux à quatre selon le niveau de la prouesse (il encoche plusieurs flèches, il saisit deux javelots dans la même main, etc…) Il ne peut cependant viser qu’une seule cible. En cas de réussite, les dégâts infligés sont désormais égaux à (Marge de Réussite + potentiel de l’arme) x Nombre de projectiles.</p>\n<p>La valeur de protection de la victime s’applique contre chaque trait. On retire donc (Protection x Nombre de projectiles) au montant total des dégâts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.w0c4ZQzRxmIPNhsR"}},"_id":"DKMvBiQGZT6vc8Yu"}
|
||||||
|
{"name":"Fendre le casque","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"armes longues, armes à deux mains, armes d'Hast, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le personnage sacrifie sa garde pour atteindre l’ennemi d’un coup vicieux à la tête. La Valeur de sa Défense Physique est réduite de deux points (DP -2) pour le reste du tour de combat. S’il réussit son attaque, calculez normalement les dégâts. Le casque est fendu et la valeur de protection de l’armure ennemie est réduite d’autant. En outre, la victime doit réussir un test de Vigueur contre un Seuil de Réussite Aisé (10) assorti d’un malus égal au total des dégâts subis. Si elle échoue, elle est sonnée et passe en mode défensif pour le restant de ce tour de combat (les figurants réalisent un test de Physique + 2D10 contre ce même SR).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.z0aG1e121dTRKfx4"}},"_id":"DZHfTAZPCpCtcbuo"}
|
||||||
|
{"name":"Par le Bras de Thor ! niv.1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"armes longues, armes à deux mains, armes d’Hast, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-3,"description":"<p>Le personnage invoque le nom du dieu du tonnerre et foudroie son adversaire d’un coup implacable. S’il réussit son attaque, calculez normalement les dégâts. Cependant, lancer autant de dés à dix faces que le niveau de la prouesse et ajouter le résultat au montant initial des dégâts. Notez que le joueur peut posséder cette prouesse à différents niveaux, mais doit acheter chacun d’eux séparément.</p>\n<p>Ainsi, il lui en coûte 4 points afin de maîtriser « Par le bras de Thor ! » aux niveaux 1 et 3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.gNqSpCAu7URoY6qp"}},"_id":"Dk9Jef17ImwNwzEe"}
|
||||||
|
{"name":"Vider les mains","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes courtes, armes longues","prerequis":"armes courtes \"Expert\", armes longues \"Confirmé\"","modificateur":-6,"description":"<p>Le héros enchaîne une série de mouvements et de feintes puis vient frapper violemment le fer ennemi. L’adversaire qui, en réaction, rate une esquive ou une parade, ou n’agit pas, lâche son arme aussitôt. Celle-ci chute à quelques pas de là, 1D5 mètres, dans une direction du choix de l’attaquant.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.oWnmb3qQG1YJeYUo"}},"_id":"HzRqAG5R1eBNomR3"}
|
||||||
|
{"name":"Prise de l'ours","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"lutte","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le héros empoigne son adversaire avec force et l’écrase entre ses bras puissants. La victime peut essayer de se libérer en remportant un test en opposition de Puissance. Il doit consacrer une action à chaque tentative. Tant que la prise est maintenue, l’attaquant inflige automatiquement une perte de (PUI x2) Points de Vie à sa victime, au début de chaque tour de combat. Il ne peut rien faire d’autre durant cette période.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.NN8GvBAJ4v5vsOjQ"}},"_id":"IMFOGClhabJoq7Ve"}
|
||||||
|
{"name":"Les crocs du loup niv. 3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"","prerequis":"ulfhedinn, lance","modificateur":-9,"description":"<p>Le héros harcèle son adversaire de coups de lance et le maintient à sa distance. Le joueur réalise, pour une seule action, selon le niveau utilisé, un, deux, trois ou quatre tests d’attaque, assortis du malus de prouesse adé-143</p>\n<p>Les Règles - Les Prouesses Martiales quat. Chaque coup porté efficacement inflige un total de points de dégâts égal à (Puissance + dégâts de la lance + niveau de la prouesse). La Marge de Réussite n’est pas prise en compte ici.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.KeIYySNmxe44jWNY"}},"_id":"IOl9Y6D0aUtenxYj"}
|
||||||
|
{"name":"Projectile humain","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"lutte","prerequis":"niveau de compétence martiale \"Expert\"","modificateur":-9,"description":"<p>Le personnage doit avoir réussi et maintenu une Prise de l’ours dans le tour de combat précédent. Il peut alors jeter sa victime jusqu’à une distance égale à sa Puissance en mètres. Celle-ci subit (PUI x2) points de dégâts dans la manoeuvre. Si d’autres ennemis sont pris pour cibles, ceux-ci perdent ce même nombre de Points de Vie et doivent réussir un test d’Agilité contre un Seuil de Réussite Moyen (14) ou chuter au sol (un test de Physique +2D10 pour les figurants). Ce test de réaction ne nécessite pas la dépense d’une action.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.PfCyTKhaVHFPHkVN"}},"_id":"Ijvn821SrhVwvsUp"}
|
||||||
|
{"name":"Féroce comme l’ours niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-12,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+5, +10, +15 ou +20). En outre, il rajoute immédiatement de 1 à 4 dés à sa réserve de furor (selon le niveau de prouesse utilisé). Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.Uku9HUiulLnarqGS"}},"_id":"KC3OieZmASsU0lVC"}
|
||||||
|
{"name":"Par le Bras de Thor ! niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"armes longues, armes à deux mains, armes d’Hast, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-9,"description":"<p>Le personnage invoque le nom du dieu du tonnerre et foudroie son adversaire d’un coup implacable. S’il réussit son attaque, calculez normalement les dégâts. Cependant, lancer autant de dés à dix faces que le niveau de la prouesse et ajouter le résultat au montant initial des dégâts. Notez que le joueur peut posséder cette prouesse à différents niveaux, mais doit acheter chacun d’eux séparément.</p>\n<p>Ainsi, il lui en coûte 4 points afin de maîtriser « Par le bras de Thor ! » aux niveaux 1 et 3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.Lnt8agsqELbAurHc"}},"_id":"OquECCNx5uwrl1Fb"}
|
||||||
|
{"name":"Inspiré par Odhinn niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":1,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-9,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +3/+6/+9/+12 (selon le niveau de la prouesse). Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.3ZFsfhb1ecJoOR0F"}},"_id":"QxcdyEgbahougYZn"}
|
||||||
|
{"name":"Assomer","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"toutes les armes de mêlée","prerequis":"compétence martiale (Confirmé)","modificateur":-6,"description":"<p>Le personnage vise la tête de son adversaire et tente de lui asséner un coup puissant, mais contrôlé. Il essaie alors de le plonger dans l’inconscience, sans doute dans le but de le capturer. Si le coup porte, la victime ne subit que la moitié des dégâts infligés, mais elle doit réaliser un test de Vigueur contre un SR Moyen (14), avec un malus égal à la Marge de réussite de l’attaque (les figurants lancent simplement 2D10+Physique). En cas d’échec, elle sombre dans l’inconscience pour 1D10 minutes.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.2iT4jtabFR8l4J3p"}},"_id":"Sk891Y3X5A2VkVik"}
|
||||||
|
{"name":"Par le Bras de Thor ! niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes longues, armes à deux mains, armes d’Hast, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-6,"description":"<p>Le personnage invoque le nom du dieu du tonnerre et foudroie son adversaire d’un coup implacable. S’il réussit son attaque, calculez normalement les dégâts. Cependant, lancer autant de dés à dix faces que le niveau de la prouesse et ajouter le résultat au montant initial des dégâts. Notez que le joueur peut posséder cette prouesse à différents niveaux, mais doit acheter chacun d’eux séparément.</p>\n<p>Ainsi, il lui en coûte 4 points afin de maîtriser « Par le bras de Thor ! » aux niveaux 1 et 3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.vUZfeTnfGCda48fl"}},"_id":"TVh39qy45QMDTAM4"}
|
||||||
|
{"name":"Comme des lapins !","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"toutes les armes de mêlée","prerequis":"niveau de compétence martiale \"Expert\"","modificateur":-6,"description":"<p>Le personnage doit faire face à plusieurs adversaires.</p>\n<p>Tous ne doivent être que des Figurants. Le joueur choisit sa cible principale parmi eux. Si l’attaque est réussie et qu’elle suffit à mettre hors de combat sa victime, il peut immédiatement porter un nouveau coup contre un autre ennemi à portée. Il s’agit d’une action supplémentaire. Aussi, chaque attaque au-delà de la première se voit assortie du modificateur normal d’action supplémentaire, en plus de celui associé à cette prouesse (-6). Si cette deuxième attaque suffit également pour se débarrasser de ce deuxième PNJ, le héros peut poursuivre cet enchaînement jusqu’à ce qu’il décide volontairement de l’interrompre, qu’il n’ait plus d’adversaire à portée ou ne puisse abattre sa cible d’un seul coup.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.wLGDcGtp6SVvcd9R"}},"_id":"U61cOHJKIFCiDMFN"}
|
||||||
|
{"name":"Hurlement sanguinaire","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":1,"armes":"","prerequis":"Intimidation \"Novice\"","modificateur":-3,"description":"<p>Le héros se jette en hurlant sur son adversaire.</p>\n<p>Il réalise aussitôt un test de Charisme + Intimidation contre un Seuil de Réussite Moyen (14) augmenté de la Défense Mentale de sa cible (ou de Magique/passif pour un figurant). Ce test ne nécessite pas la dépense d’une action et s’effectue juste avant l’attaque. En cas de succès, la Défense Physique adverse (ou la valeur de Conflit/défensif pour un figurant) est diminuée de la valeur de Charisme du héros (minimum zéro) pour le reste de ce combat.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.iFilzbwBPSJ4o3DL"}},"_id":"UMWA50UawodpJlUz"}
|
||||||
|
{"name":"Venez à moi","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes longues, armes à deux mains, armes d'Hast","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le héros doit faire face à plusieurs adversaires.</p>\n<p>S’il réussit son attaque, il peut répartir, à sa guise, le montant total des dégâts entre tous les défenseurs. Pour le test d’attaque, prenez en compte la valeur de Défense Physique la plus élevée parmi eux.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.Byc0UdIt4DC3xPgh"}},"_id":"Ut8cD4HCOLbckDOk"}
|
||||||
|
{"name":"Défense de fer !","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":2,"armes":"armes courtes, armes longues","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le héros doit faire face à plusieurs adversaires.</p>\n<p>Il dépense une seule action pour parer deux attaques le prenant pour cible, et venant de deux ennemis différents, dans la même ronde. Le joueur effectue chaque test de parade avec un éventuel modificateur d’action supplémentaire, en plus du malus de prouesse égal à –6.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.l8VcA1kHO6ihOOmb"}},"_id":"X1A74BSyckHKNd1h"}
|
||||||
|
{"name":"Ralliez-vous à moi","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":2,"armes":"","prerequis":"Tactique \"Confirmé","modificateur":-6,"description":"<p>Le héros rameute ses troupes. Sur le champ de bataille, il sonne du cor, bat le rappel et regroupe ses hommes autour de lui. Le joueur réalise un test de Intellect + Tactique + modificateurs. En cas de réussite, tous les alliés à portée de voix du héros bénéficient d’un bonus de +5 à toutes leurs actions lors de ce tour de combat. Luimême ne peut entreprendre aucune autre action que cette prouesse durant ce laps de temps.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.3IdAT7lgv1jWMimg"}},"_id":"YpBHYe3xepEpw0wX"}
|
||||||
|
{"name":"Coup de bouclier","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"armes courtes, armes longues","prerequis":"armes improvisées \"Novice\"","modificateur":-3,"description":"<p>Le personnage doit être équipé d’un bouclier.</p>\n<p>S’il vient de réussir une parade, il porte immédiatement une violente riposte à l’aide d’un coup de bouclier contre son adversaire. Cette contre-attaque nécessite la dépense d’une action et reste donc sujette au malus d’action supplémentaire. Il faut également prendre en compte le malus de prouesse (-3). S’il réussit son test d’Armes improvisées, il inflige à sa victime ( PUI + MR + 5) points de dégât.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.LubJ6Axsth382qR3"}},"_id":"aRJ877Zm4dwhVbWC"}
|
||||||
|
{"name":"Saut du lynx","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":1,"armes":"","prerequis":"Esquive \"Confirmé\"","modificateur":-3,"description":"<p>Le héros se jette de côté et réalise une roulade parfaite. Il se retrouve automatiquement sur ses pieds à la fin de cette manoeuvre. Lorsqu’il se relève, il est de nouveau au contact de son adversaire et peut poursuivre le combat au corps à corps.</p>\n<p>Si le héros utilise cette prouesse afin d’échapper à un projectile, il parcourt alors une distance égale à la moitié de sa valeur de Déplacement (DEP/2), dans la direction de son choix.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.i5Jk0FRdb9EGiYCP"}},"_id":"aZJR34ut5YrjHbKo"}
|
||||||
|
{"name":"Inspiré par Odhinn niv.1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":1,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-3,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +3/+6/+9/+12 (selon le niveau de la prouesse). Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.TDXq78vjN11q9kyH"}},"_id":"bOltcp27yH4a4Wy3"}
|
||||||
|
{"name":"Coup de tête","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes courtes, armes longues, armes à deux mains","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le héros est engagé dans un corps à corps et vient de réussir une action de parade. Il peut immédiatement dépenser une action afin de riposter à l’aide d’un coup de tête violent sur le visage de son adversaire. Il utilise pour cela la compétence martiale Lutte. En cas de réussite, il inflige (valeur de Puissance + Marge) points de dégâts (ajoutez à ce montant la valeur de protection de son casque s’il en porte un). De plus, sa victime subit un modificateur supplémentaire de +3 à sa prochaine action. Par contre, en cas d’échec critique, le héros perd automatiquement, sans prendre en compte ses protections éventuelles, cinq Points de Vie (-5PV). Mais en cas de réussite critique, si l’adversaire porte un casque, celui-ci est fracassé et ne le protège plus. Sinon, doublez les dégâts infligés.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.kcf3eFEjH5Nzey1W"}},"_id":"ebX4aouh6WEZ1aSy"}
|
||||||
|
{"name":"Blocage niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":3,"armes":"Toues les armes de mêlée","prerequis":"","modificateur":-9,"description":"<p>Le personnage réalise une parade puissante et bloque l’arme adverse. S’il réussit son test, l’adversaire ne peut pas attaquer lors de sa prochaine action, durant ce tour de combat ou le suivant. Celui-ci peut utiliser cette action pour réaliser autre chose, mais pas une attaque. Si le héros échoue, il réduit tout de même les dégâts occasionnés par cette attaque de 2, 4 ou 6 points selon le niveau de la prouesse.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.P1JhWufOzDRRYr0k"}},"_id":"jHuBo6ctHP4Bf847"}
|
||||||
|
{"name":"Par le Bras de Thor ! niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"armes longues, armes à deux mains, armes d’Hast, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-12,"description":"<p>Le personnage invoque le nom du dieu du tonnerre et foudroie son adversaire d’un coup implacable. S’il réussit son attaque, calculez normalement les dégâts. Cependant, lancer autant de dés à dix faces que le niveau de la prouesse et ajouter le résultat au montant initial des dégâts. Notez que le joueur peut posséder cette prouesse à différents niveaux, mais doit acheter chacun d’eux séparément.</p>\n<p>Ainsi, il lui en coûte 4 points afin de maîtriser « Par le bras de Thor ! » aux niveaux 1 et 3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.mJvV6wQkQgZI9whn"}},"_id":"jyYqashGfvA6xZ1g"}
|
||||||
|
{"name":"Grêle mortelle niv. 4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-12,"description":"<p>Le personnage libère plusieurs projectiles dans le même tir, de deux à quatre selon le niveau de la prouesse (il encoche plusieurs flèches, il saisit deux javelots dans la même main, etc…) Il ne peut cependant viser qu’une seule cible. En cas de réussite, les dégâts infligés sont désormais égaux à (Marge de Réussite + potentiel de l’arme) x Nombre de projectiles.</p>\n<p>La valeur de protection de la victime s’applique contre chaque trait. On retire donc (Protection x Nombre de projectiles) au montant total des dégâts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.ax6CM5b124XYYzpj"}},"_id":"ktYtIwpVQZi6HWy5"}
|
||||||
|
{"name":"Mur de fer","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":3,"armes":"armes courtes, armes longues","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le héros balaie l’espace devant lui avec son arme, créant un véritable rempart de métal entre son adversaire et lui. S’il réussit sa parade, il ne dépense pas son action. En cas d’échec, l’action est dépensée normalement.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.qqGx5kl4T8h18g7j"}},"_id":"lEkuO0ZlXnJ4FQAB"}
|
||||||
|
{"name":"La charge du sanglier niv. 4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"","prerequis":"svinfylkingar, épée et bouclier","modificateur":-12,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-3, -6, -9 ou –12).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +5 / +10 / +15 / + 20, pour les niveaux 1 à 4.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + niveau de la prouesse) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.V7RytyyTlbVN5cS4"}},"_id":"ld0X2wPgUxBateYG"}
|
||||||
|
{"name":"Blocage niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":4,"armes":"Toues les armes de mêlée","prerequis":"","modificateur":-12,"description":"<p>Le personnage réalise une parade puissante et bloque l’arme adverse. S’il réussit son test, l’adversaire ne peut pas attaquer lors de sa prochaine action, durant ce tour de combat ou le suivant. Celui-ci peut utiliser cette action pour réaliser autre chose, mais pas une attaque. Si le héros échoue, il réduit tout de même les dégâts occasionnés par cette attaque de 2, 4 ou 6 points selon le niveau de la prouesse.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.v3Exgy3nlA6xzwMq"}},"_id":"mZJhrKyrhZ7L4tfB"}
|
||||||
|
{"name":"Impact !","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le héros projette son arme de jet avec toute sa force ou vise un point précis pour déséquilibrer sa cible. Sous l’impact, lorsque celle-ci est touchée, elle se retrouve projetée de PUI mètres en arrière et chute au sol si elle rate un test d’Agilité contre un Seuil de Réussite Moyen (14) assorti d’un malus égal à la totalité des points de dégâts subis (un test de Physique +2D10 pour les figurants).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.TYpltLw2F1w0jotr"}},"_id":"nHktQbVo5szIXJh0"}
|
||||||
|
{"name":"Charge impétueuse","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"toutes les armes de mêlée","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-3,"description":"<p>Le héros doit effectuer un déplacement afin d’engager sa cible. Si l’attaque porte, ajoutez la valeur normale de Déplacement du personnage aux dégâts infligés. S’il a passé l’action précédente à courir ou sprinter vers sa cible, et réussi son test de mouvement, ces bonus aux dégâts passent respectivement à DEP x2 (course) ou DEP x3 (sprint).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.C07wu8D2KjCfNGDG"}},"_id":"o0h9ehFsQbKEwYLz"}
|
||||||
|
{"name":"Féroce comme l’ours niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-9,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+5, +10, +15 ou +20). En outre, il rajoute immédiatement de 1 à 4 dés à sa réserve de furor (selon le niveau de prouesse utilisé). Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.H6SjgKSMheB2jnDi"}},"_id":"rKTHXXIcmuB9GIUQ"}
|
||||||
|
{"name":"Les crocs du loup niv. 2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"","prerequis":"ulfhedinn, lance","modificateur":-6,"description":"<p>Le héros harcèle son adversaire de coups de lance et le maintient à sa distance. Le joueur réalise, pour une seule action, selon le niveau utilisé, un, deux, trois ou quatre tests d’attaque, assortis du malus de prouesse adé-143</p>\n<p>Les Règles - Les Prouesses Martiales quat. Chaque coup porté efficacement inflige un total de points de dégâts égal à (Puissance + dégâts de la lance + niveau de la prouesse). La Marge de Réussite n’est pas prise en compte ici.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.FTn8bwwuUHshCzRe"}},"_id":"rRw6V0w1xeYigd8n"}
|
||||||
|
{"name":"Pas encore mort !","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":4,"armes":"","prerequis":"Ténacité supérieure où égale à 3","modificateur":-12,"description":"<p>Le héros atteint le stade « Mort », il peut, à chaque nouveau tour de combat, effectuer un test de Ténacité contre un Seuil de Réussite de base Moyen (14). Il applique à son test les différents modificateurs habituels de combat, mais pas les malus de blessure, seulement celui dû à la prouesse (-12). De plus, s’il est épuisé, il ne garde normalement qu’un seul dé. S’il réussit son test, le personnage peut agir normalement ce tour-ci. Il ne subit plus de pertes de Points de Vie supplémentaires tant qu’il bénéficie de cet effet. Dès qu’il échoue, ou dès que le combat se termine, le héros s’écroule et trépasse.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.UKI3ScyfZah6DRAn"}},"_id":"rWul7HjBYCmqCtin"}
|
||||||
|
{"name":"Soumets-toi","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"lutte, armes à deux mains","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le personnage exploite le déséquilibre de l’adversaire pour le jeter au sol. Si la cible ne peut parer ou esquiver cette attaque, elle est projetée à terre, aux pieds du héros. Par contre, elle ne subit que la moitié des dégâts normaux.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.f5jNRmufSJhBJN5Z"}},"_id":"sR0g8c3IRWgnvxo4"}
|
||||||
|
{"name":"Désarçonner","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes à deux mains, armes d'Hast, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le personnage place un coup puissant afin de faire tomber un adversaire du haut de sa monture. Calculez normalement les dégâts infligés. La victime doit réussir un test de Vigueur + Chevaucher contre un Seuil de Réussite Moyen (14) assorti d’un malus égal au total des dégâts subis (un test de Physique + 2D10 pour les figurants). En cas d’échec, elle chute lourdement au sol et devra consacrer sa prochaine action à se relever ou accepter de combattre au sol.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.KuzoIUkgpTB98IFf"}},"_id":"tVhIgg3TUWiqyEP1"}
|
||||||
|
{"name":"Rugissement de Fenrir","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":3,"armes":"","prerequis":"Intimidation \"Confirmé\", guerrier-fauve, thulr","modificateur":-9,"description":"<p>Le joueur dépense une action pour réaliser un test d’Intimidation. Le héros pousse un rugissement féroce qui résonne sur le champ de bataille comme un appel funeste. Tous les adversaires à portée de voix doivent effectuer un test en opposition de Ténacité + Défense Mentale (ou Mystique/passif) contre un Seuil de Réussite égal au résultat du test du personnage. En cas d’échec, ils subissent un modificateur égal à la valeur de Charisme du héros à toute action entreprise contre lui pour toute la durée du combat.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.x1HNJDfypuNntbzh"}},"_id":"u5Qddc8Y2MnHhWBg"}
|
||||||
|
{"name":"Aucun abri sûr","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-3,"description":"<p>Le héros peut attaquer une cible retranchée derrière un obstacle, tant qu’il est conscient de sa présence et que l’impact de son projectile peut raisonnablement traverser cette barrière. Ainsi, une flèche passe à travers un mur d’osier tressé ou de bois fin. Une hachette peut éclater la paroi d’un tonneau dans lequel se cache un ennemi. En cas de succès, la cible est atteinte par le trait, mais ne subit que la moitié des points de dégât normaux sans prendre en compte la valeur de protection de l’obstacle.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.2lMMNwfsnkUyb04X"}},"_id":"valjps0vpm5a1aHn"}
|
||||||
|
{"name":"Blocage niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":2,"armes":"Toues les armes de mêlée","prerequis":"","modificateur":-6,"description":"<p>Le personnage réalise une parade puissante et bloque l’arme adverse. S’il réussit son test, l’adversaire ne peut pas attaquer lors de sa prochaine action, durant ce tour de combat ou le suivant. Celui-ci peut utiliser cette action pour réaliser autre chose, mais pas une attaque. Si le héros échoue, il réduit tout de même les dégâts occasionnés par cette attaque de 2, 4 ou 6 points selon le niveau de la prouesse.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.yZDAs2kpGPXVfQmO"}},"_id":"vksayDqJ7SY9gJKm"}
|
||||||
|
{"name":"La charge du sanglier niv. 1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"","prerequis":"svinfylkingar, épée et bouclier","modificateur":-3,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-3, -6, -9 ou –12).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +5 / +10 / +15 / + 20, pour les niveaux 1 à 4.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + niveau de la prouesse) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.JobfUGWOUMx34HXU"}},"_id":"vw9afhYxPUwDRgkO"}
|
||||||
|
{"name":"Les crocs du loup niv. 4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"","prerequis":"ulfhedinn, lance","modificateur":-12,"description":"<p>Le héros harcèle son adversaire de coups de lance et le maintient à sa distance. Le joueur réalise, pour une seule action, selon le niveau utilisé, un, deux, trois ou quatre tests d’attaque, assortis du malus de prouesse adé-143</p>\n<p>Les Règles - Les Prouesses Martiales quat. Chaque coup porté efficacement inflige un total de points de dégâts égal à (Puissance + dégâts de la lance + niveau de la prouesse). La Marge de Réussite n’est pas prise en compte ici.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.qO1cu7cOaayNDILY"}},"_id":"w2VQ7lGrE63mYvDJ"}
|
||||||
|
{"name":"La charge du sanglier niv. 3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"","prerequis":"svinfylkingar, épée et bouclier","modificateur":-9,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-3, -6, -9 ou –12).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +5 / +10 / +15 / + 20, pour les niveaux 1 à 4.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + niveau de la prouesse) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.pHa44BsEo5XlnnHE"}},"_id":"xyh5Gd9vLjiQ5s1K"}
|
||||||
|
{"name":"Franchir la ligne ennemie","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"toutes les armes de mêlée","prerequis":"niveau de compétence martiale \"Expert\"","modificateur":-9,"description":"<p>Le personnage doit effectuer une charge contre au moins trois adversaires groupés. Pour le test d’attaque, prenez en compte la valeur de Défense Physique (ou le Conflit défensif pour des figurants) la plus élevée parmi eux. Si le héros réussit son coup, calculez normalement les dégâts et désignez une seule cible parmi les défenseurs. Le personnage se retrouve à la fin de son action derrière ses ennemis, à une distance égale à la moitié de sa valeur de Déplacement (DEP/2) du personnage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.3TRMLKH3eLYoeMPu"}},"_id":"yPx8m1KZID0zJC3C"}
|
||||||
|
{"name":"La charge du sanglier niv. 2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"","prerequis":"svinfylkingar, épée et bouclier","modificateur":-6,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-3, -6, -9 ou –12).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +5 / +10 / +15 / + 20, pour les niveaux 1 à 4.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + niveau de la prouesse) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.xzVV440ASSuXJBC6"}},"_id":"z0cF4dWHmUAg0KvV"}
|
24
packs/runes.db
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{"name":"Bjarken","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":3,"description":"<p>Domaine : Cette rune est celle de la naissance et de la fertilité.</p>\n<p>Effet positif : Lorsque la rune est présente lors d’un accouchement, elle accorde sa puissance en bonus à tous les tests de Vigueur, aussi bien pour la mère que pour le nouveau-né.</p>\n<p>Effet négatif : Lorsque la rune est présente lors d’un accouchement, tout test de Vigueur aura un malus de valeur de la puissance de la rune, aussi bien pour la mère que pour le nouveau-né.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"1liPVSmnGY35OTxz"}
|
||||||
|
{"name":"Ansuz","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":3,"description":"<p>Domaine : Cette rune est celle d’Odhinn, de l’inspiration magique.</p>\n<p>Effet positif : Tout personnage porteur de cette rune bénéficie d’un bonus équivalent à sa puissance pour tous ses tests de Résistance Magique</p>\n<p>Effet négatif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"4HodP3OKZYTeh6fi"}
|
||||||
|
{"name":"Nauthr","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":4,"description":"<p>Domaine : Cette rune provoque le tourment.</p>\n<p>Effet négatif : Tout personnage porteur de cette rune souffrira d’un malus à tous ses tests impliquant la Défense Mentale.</p>\n<p>Effet positif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"9OijZ6IG6VS6zSJD"}
|
||||||
|
{"name":"Isa","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":3,"description":"<p>Domaine : C’est la rune de la stagnation</p>\n<p>Effet négatif : Toute personne porteuse de cette rune aura comme malus sa puissance à son test d’Initiative ou de Réaction. Il faut noter qu’un score d’Initiative négatif est toujours égal à zéro.</p>\n<p>Effet positif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"ADn3pES8mnlm8BuO"}
|
||||||
|
{"name":"Kaun","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":1,"description":"<p>Domaine : Cette rune est celle de la création, de l’artisanat.</p>\n<p>Effet positif : Tout porteur de cette rune a pour bonus sa puissance lorsqu’il tente un test de compétence Artisanat.</p>\n<p>Effet négatif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"Cze73YCkAlGaG83X"}
|
||||||
|
{"name":"Reith","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":1,"description":"<p>Domaine : Cette rune est la rune du voyage et des déplacements.</p>\n<p>Effet positif : Toute personne porteuse de cette rune n’est jamais perdue et aura comme bonus à ses tests d’Orientation et de Navigation la puissance de la rune.</p>\n<p>Effet négatif : Toute personne porteuse de cette rune est facilement perdue et aura comme malus à ses tests d’Orientation et de Navigation la puissance de la rune.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"IFFb1Ib8K0rv8w9P"}
|
||||||
|
{"name":"Uruz","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":3,"description":"<p>Domaine : Cette rune gère la force vitale et la santé.</p>\n<p>Effet positif : Toute personne porteuse de cette rune regagne par heure, la puissance de la rune en points de vie, sans pouvoir dépasser son maximum de Santé.</p>\n<p>Effet négatif : Toute personne porteuse de cette rune perd par heure, la puissance de la rune en points de vie.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"IwCOt0gGtyPSO4CQ"}
|
||||||
|
{"name":"Algiz","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":2,"description":"<p>Domaine : Cette rune est celle de la protection contre les énergies maléfiques.</p>\n<p>Effet positif : Toute personne porteuse de cette rune aura comme bonus sa puissance à tous ses tests concernant la Défense Mentale (DM).</p>\n<p>Effet négatif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"JzOkY1qKyrUnOLuM"}
|
||||||
|
{"name":"Thurz","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":4,"description":"<p>Domaine : Cette rune négative représente les Géants du</p>\n<p>Givre et le conflit destructeur.</p>\n<p>Effet négatif : Tout personnage porteur de cette rune provoque l’antipathie de tous ceux qu’il rencontre. Cela peut aller facilement jusqu’à l’affrontement. Le personnage a un malus à tous ses tests de caractéristique Charisme et Communication égal à la puissance de la rune.</p>\n<p>Effet positif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"KtPExY1zNUnFMaqk"}
|
||||||
|
{"_id":"QCRImMAspu8u6D38","name":"Iwaz","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":5,"description":"<p>Domaine : Iwaz est la rune représentant Yggdrasill.</p>\n<p>Effet positif : Tout personnage porteur de cette rune aura comme bonus la puissance de la rune Iwaz, à ses tests de Vigueur, pour guérir de n’importe quelle maladie.</p>\n<p>Effet négatif : Aucun</p>","cible":"","domaine":"","zonecible":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{}}
|
||||||
|
{"name":"Gebô","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":3,"description":"<p>Domaine : Cette rune est celle des sacrifices aux dieux. Effet positif : Tout porteur de cette rune aura pour bonus sa puissance, à ses tests de Sejdr.</p>\n<p>Effet négatif : Tout porteur de cette rune aura pour malus sa puissance, à ses tests de Sejdr</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"Tdg3vVEEOMKPgR6u"}
|
||||||
|
{"name":"Sôl","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":1,"description":"<p>Domaine : Cette rune est la rune de la Victoire</p>\n<p>Effet positif : Toute personne porteuse de cette rune aura comme bonus sa puissance à tous ses tests de Tactique.</p>\n<p>Effet négatif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"VrL5tguN5Zuq9Umh"}
|
||||||
|
{"name":"Hagall","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":4,"description":"<p>Domaine : Cette rune provoque maladie, faiblesse physique.</p>\n<p>Effet négatif : Tout personnage porteur de cette rune, aura pour malus sa puissance, dès qu’il tente le moindre test de Vigueur.</p>\n<p>Effet positif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"aCFdcU61Be6T7SyE"}
|
||||||
|
{"name":"Mathr","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":3,"description":"<p>Domaine : cette rune est celle de l’Homme et de son intelligence. Effet positif : Toute personne porteuse de cette rune aura comme bonus la puissance de cette dernière à ses tests d’Intellect. Effet négatif : Toute personne porteuse de cette rune aura comme malus la puissance de cette dernière à ses tests d’Intellect.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"aTf4T9dWNKHHosJZ"}
|
||||||
|
{"name":"Ingvi","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":2,"description":"<p>Domaine : Cette rune est celle de la sérénité, de la tranquillité. Effet positif : Tout porteur de la rune peut dormir sur ses deux oreilles, car si on tente de le surprendre pendant son sommeil, il aura droit à un bonus équivalent à la puissance de la rune, à son test de Vigilance.</p>\n<p>Effet négatif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"aavx4EkJEmFVWp8M"}
|
||||||
|
{"name":"Tiwaz","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":1,"description":"<p>Domaine : Cette rune est celle du dieu Tyr, la justice et la loi.</p>\n<p>Effet positif : Toute personne porteuse de cette rune aura comme bonus sa puissance à tous ses tests d’Éloquence devant le <em>thing</em>.</p>\n<p>Effet négatif : Toute personne porteuse de cette rune aura comme malus sa puissance à tous ses tests d’Éloquence devant le <em>thing</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"bBXulqmq3yeejTl2"}
|
||||||
|
{"name":"Dagaz","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":3,"description":"<p>Domaine : Dagaz est le rune du jour opposé à la nuit.</p>\n<p>Effet positif : Tout porteur de la rune aura un bonus équivalent à la puissance de celle-ci, à ses tests de Perception pendant la nuit.</p>\n<p>Effet négatif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"i1yMYjG2PaFumtWt"}
|
||||||
|
{"name":"Fehu","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":2,"description":"<p>Domaine : Cette rune concerne les biens. Elle entraîne l’accroissement des richesses.</p>\n<p>Effet positif : Lorsque le porteur de cette rune tente une transaction commerciale, il a comme bonus à tous ses tests de Négociation, la puissance de la rune.</p>\n<p>Effet négatif : Toute personne portant cette rune, aura comme malus, la puissance de la rune à ses tests de Négociation en ce qui concerne le commerce, ou des tractations portant sur les biens.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"i6tB3f5WgPpfw8E7"}
|
||||||
|
{"name":"Jerá","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":2,"description":"<p>Domaine : Jerá est la rune de la diplomatie</p>\n<p>Effet positif : Tout personnage porteur de cette rune aura comme bonus sa puissance à ses tests de Diplomatie.</p>\n<p>Effet négatif : Tout personnage porteur de cette rune aura comme malus sa puissance à ses tests de Diplomatie.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"lMymIhfU1P3b03Y6"}
|
||||||
|
{"name":"Lôgr","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":4,"description":"<p>Domaine : Lôgr est la rune des rêves prémonitoires</p>\n<p>Effet positif : Lorsqu’il le désire le porteur de cette rune pourra faire un rêve prémonitoire, équivalent au sort de niveau 3 du Sejdr, sans être mage pour autant. La puissance de la rune remplace la compétence Sejdr lors du test (INS+Puissance de la rune).</p>\n<p>Effet négatif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"nPBl6vUs6kfZDiD6"}
|
||||||
|
{"_id":"qs4yVTSOVvk6kmSs","name":"Ehwaz","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":5,"description":"<p>Domaine : Cette rune est celle de Freyr.</p>\n<p>Effet positif : L’association de cette rune avec une autre positive, cumule sa puissance au bonus de cette dernière.</p>\n<p>Effet négatif : Aucun</p>","cible":"","domaine":"","zonecible":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{}}
|
||||||
|
{"name":"Othal","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":3,"description":"<p>Domaine : Othal est la rune de la propriété foncière.</p>\n<p>Effet positif : Toute personne noble porteuse de cette rune aura, si elle se trouve sur ses terres, un bonus à tous ses tests de Charisme, équivalent à la puissance de la rune.</p>\n<p>Effet négatif : Toute personne noble porteuse de cette rune aura, si elle se trouve sur ses terres, un malus à tous ses tests de Charisme, équivalent à la puissance de la rune.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"rM83k35sfSm34PkU"}
|
||||||
|
{"name":"Perth","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":3,"description":"<p>Domaine : Cette rune permet de détecter la magie. Elle donne la possibilité de faire un test dans ce sens.</p>\n<p>Effet positif : Toute personne porteuse de cette rune aura comme bonus sa puissance à ses tests de Perception concernant tout ce qui a rapport avec la magie.</p>\n<p>Effet négatif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"vwcLoROqTtWBPHsS"}
|
||||||
|
{"name":"Wunjô","type":"rune","img":"icons/svg/item-bag.svg","data":{"niveau":2,"description":"<p>Domaine : Cette rune est celle de la séduction amoureuse et du plaisir</p>\n<p>Effet positif : Tout personnage tentant un test de Séduction, s’il est porteur de cette rune, obtient un bonus équivalent à la puissance de la rune.</p>\n<p>Effet négatif : Aucun</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"yvuFuIz4ormI3u3u"}
|
5
packs/sejdr-divination.db
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{"name":"Dormir sur le tertre","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Divination","preparation":"1 heure","niveau":4,"malus":-12,"duree":"Une nuit","zone":"Le tertre","description":"<p>Effet : Le mage entre pendant la nuit en contact avec l’âme du mort et est capable de lui poser quelques questions. Le mort ne répondra à ces questions que s’il le désire et en fonction de la marge de réussite. Ce sort se nomme aussi « charme extorqué aux morts ».</p>\n<table style=\"width: 46.7118%; height: 96px;\" border=\"1\">\n<tbody>\n<tr style=\"height: 16px;\">\n<td style=\"width: 36.5266%; height: 16px;\">MR</td>\n<td style=\"width: 62.5044%; height: 16px;\">Nombre de questions</td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 36.5266%; height: 16px;\">0 - 5</td>\n<td style=\"width: 62.5044%; height: 16px;\">1</td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 36.5266%; height: 16px;\">6 - 10</td>\n<td style=\"width: 62.5044%; height: 16px;\">2</td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 36.5266%; height: 16px;\">11 - 15</td>\n<td style=\"width: 62.5044%; height: 16px;\">3</td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 36.5266%; height: 16px;\">16 - 25</td>\n<td style=\"width: 62.5044%; height: 16px;\">4</td>\n</tr>\n<tr style=\"height: 16px;\">\n<td style=\"width: 36.5266%; height: 16px;\">26+</td>\n<td style=\"width: 62.5044%; height: 16px;\">5</td>\n</tr>\n</tbody>\n</table>\n<p> </p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"2bXfwlqnbTGnKeny"}
|
||||||
|
{"name":"Songes divinatoires","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Divination","preparation":"1 heure","niveau":3,"malus":-9,"duree":"Une nuit","zone":"Lui-même","description":"<p>Le mage fait un rêve concernant un sujet précis. Ce rêve lui apporte des images floues et vagues de cet avenir. Ce rêve peut survenir soit dans son sommeil soit durant une transe provoquée par le battement d’un tambour ou la rotation d’une quenouille.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"SUYZTMKzdpTyg4PS"}
|
||||||
|
{"name":"Prophétie","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Divination","preparation":"3 heures","niveau":3,"malus":-9,"duree":"Le temps de préparation","zone":"Le clan","description":"<p>Le mage, s’installe sur un haut siège de bois recouvert de fourrure, réservé à cet usage. Ses pieds ne doivent pas toucher terre. Il est nécessaire qu’il soit revêtu de ses vêtements de cérémonie et porte ses attributs. Entré en transe et grâce à ce sort, il peut sentir si l’avenir du clan est menacé. En général, ce sort permet de donner des « directions » à prendre afin de, peut-être, éviter le pire. Ces informations sont transmises sous formes d’images fugaces et floues que le personnage devra interpréter.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"ZU0ELhyFDyTIB2lg"}
|
||||||
|
{"name":"Ce que murmurent les os","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Divination","preparation":"3 Tours","niveau":2,"malus":-6,"duree":"Instantané","zone":"N/A","description":"<p>Effet : Le mage lance les os contenus dans sa bourse sur le sol en psalmodiant. En les examinant, il a une vague idée, par interprétation des ossements, de ce que l’avenir proche réserve. Il a droit à quelques détails succincts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"kiMV10ca6rOA2nRc"}
|
||||||
|
{"name":"Sinistres présages","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Divination","preparation":"1 Action","niveau":1,"malus":-3,"duree":"Instantané","zone":"Un événement","description":"<p>Zone : Un événement (Vol d’oiseaux, croassements d’un corbeau, tourbillon dans une rivière, cheval qui bronche, éternuements irrépressibles, ..)</p>\n<p>Effet : Le mage a un pressentiment Bon ou Mauvais sur l’avenir proche.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"tPQecgG9jaT3zmDk"}
|
18
packs/sejdr-guerison.db
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{"name":"Baume de récupération totale","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"12 heures","niveau":5,"malus":-15,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Ce sort permet de créer des baumes qui se conservent très longtemps, des mois voire des années, à condition d’être bien conditionnées à l’abri de la lumière et dans des pots étanches.</p>\n<p>Une dose de ce baume appliquée sur une personne blessée prend 1D10 Minutes pour agir. Au bout de ce laps de temps, la personne se retrouve au maximum de ses Points de Vie, de sa Réserve de dés, toute hémorragies est arrêtée. Le nombre de doses qu’un mage peut créer à chaque fois qu’il lance ce sort dépend de sa Marge de Réussite.</p>\n<p> </p>\n<table style=\"user-select: text; width: 273px; border-right: 1px solid #7a7971; border-left: 1px solid #7a7971; border-image: initial; color: #191813; font-family: Vinque; font-size: 16px; letter-spacing: 1px; text-align: justify;\" border=\"1\">\n<tbody style=\"box-sizing: border-box; user-select: text;\">\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">MR</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">Nombre de doses</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">0 - 5</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">1</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">6 - 10</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">2</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">11 - 15</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">3</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">16 - 25</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">4</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">26+</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">5</td>\n</tr>\n</tbody>\n</table>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"1LklBTpkRHN0vgkG"}
|
||||||
|
{"name":"Annulation d’un envoûtement mineur sur une personne","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 heures","niveau":4,"malus":-12,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Le mage doit réussir un Test en opposition à la puissance de l’envoûtement. Cet envoûtement doit obligatoirement être Mineur et sur une personne. Si le Test est réussi, la personne est libérée définitivement de l’envoûtement.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"2nda3xReEZqUPJ1q"}
|
||||||
|
{"name":"Protection contre les envoûtements","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"5 Tours","niveau":1,"malus":-3,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le mage accorde à une personne de son choix, un bonus contre toutes tentatives d’envoûtement de tout types de magie (Sejdr, Galdr ou Runes). Ce bonus est équivalent à la DM du mage et il viendra s’ajouter à chaque fois que la personne doit réussir un Test contre un envoûtement et ce, pendant toute la durée du sort.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"DagSbvjXoq9nOqe2"}
|
||||||
|
{"name":"Préparation de baumes, onguents","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 heures","niveau":2,"malus":-6,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Ce sort permet de créer des baumes et des onguents. Ces baumes se conservent très longtemps, des mois, des années, à condition d’être bien conditionnés à l’abri de la lumière et dans des pots étanches.</p>\n<p>Dés que l’on applique une dose du baume ou de l’onguent sur une personne ayant une blessure, celle-ci regagne de suite 2D10 Points de vie sans pouvoir dépasser son maximum.</p>\n<p>Le nombre de doses qu’un mage peut créer à chaque fois qu’il lance ce sort dépend de sa Marge de Réussite.</p>\n<p> </p>\n<table style=\"width: 52.9485%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 48.8453%;\">MR</td>\n<td style=\"width: 50.1743%;\">Nombre de doses</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">0 - 5</td>\n<td style=\"width: 50.1743%;\">1</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">6 - 10</td>\n<td style=\"width: 50.1743%;\">2</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">11 - 15</td>\n<td style=\"width: 50.1743%;\">3</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">16 - 25</td>\n<td style=\"width: 50.1743%;\">4</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">26+</td>\n<td style=\"width: 50.1743%;\">5</td>\n</tr>\n</tbody>\n</table>\n<p> </p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"FH05D8YIkS71fLAL"}
|
||||||
|
{"name":"Sortir de l’épuisement","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"2 Actions","niveau":2,"malus":-6,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : La personne ciblée par ce sort regagne instantanément 1 dé dans sa réserve de dés, lui permettant ainsi de sortir de son d’Epuisement. Si le bénéficiaire du sort ne faisait rien pendant le Tour ou il regagne son dé en réserve, il devra attendre le début du Tour suivant pour agir.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"GBCDzzWiugijeEDf"}
|
||||||
|
{"name":"Stabilisation","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"1 Action","niveau":1,"malus":-3,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Lorsque le mage lance ce sort, il permet à un personnage dans le coma (entre 0 et son Seuil de Mort) de revenir instantanément à 1 point de vie. Par contre, ce sort ne permet pas d’arrêter les hémorragies.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"LunMlfgQuibLnuxU"}
|
||||||
|
{"name":"Guérison des maladies modérées","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Tours","niveau":3,"malus":-9,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Si le mage réussit son sort contre un SR équivalent à la Virulence de la maladie modérée. Il permet de guérir instantanément le malade (voir le chapitre sur les maladie page 135). Ce sort ne permet pas de soigner les effets de la maladie déjà subis par le malade.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"OuMwU1kvkx2MQGJ8"}
|
||||||
|
{"name":"Annulation d’envoûtement mineur sur un objet","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 heures","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"Un objet","description":"<p>Effet : Le mage doit réussir un Test en opposition à la puissance de l’envoûtement. Cet envoûtement doit obligatoirement être Mineur et sur un objet qui se lie à une personne. Si le Test est réussi, la personne est libérée de l’envoûtement. Précisons bien que l’objet est toujours envoûté et si une personne s’empare par la suite de l’objet, elle risque fort d’être vicitme de l’envoûtement. Le temps durant lequel l’objet envoûté est inoffensif dépend de la Marge de Réussite du mage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"SXqKl03fyEztAisz"}
|
||||||
|
{"name":"Regagner des Dés de Réserve / Faire perdre des Dés de Réserve","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Actions","niveau":3,"malus":-9,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Le mage permet à une personne de son choix de récupérer autant de dés de réserve qu’il a en INS. Ce gain de dés ne permet pas de dépasser son maximum. Par contre, si la personne ciblée par le sort était en Épuisement, elle sort de suite de cette état. Si le bénéficiaire du sort ne faisait rien pendant le Tour où il regagne ses dés en réserve, il devra attendre le début du Tour suivant pour agir.</p>\n<p>Effet inverse : Si le mage réussit son sort, la victime aura droit à un Test de Résistance avec comme SR le résultat du sort du mage. En cas d’échec, la victime perd instantanément un nombre de dés de réserve équivalent à l’INS du mage. Cependant, aucune victime de ce sort ne peut tomber en Épuisement, il lui restera donc au moins un dé dans sa réserve quel que soit le nombre de dés perdus.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"ViDD3KUwJSLQWaDO"}
|
||||||
|
{"name":"Guérison des maladies graves","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Tours","niveau":4,"malus":-15,"duree":"Instantané","zone":"Une personne","description":"<p><br />Effet : Si le mage réussit son sort contre un SR équivalent à la Virulence de la maladie grave, il guérit instantanément le malade (voir le chapitre sur les maladies page 135). Ce sort ne permet pas de soigner les effets de la maladie déjà subis par le malade.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"byw6UNhU614nIZIU"}
|
||||||
|
{"name":"Guérison des maladies mineures","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Tours","niveau":1,"malus":-3,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Si le mage réussit son sort contre un SR équivalent à la Virulence de la maladie mineure. Il permet de guérir instantanément le malade (voir le chapitre sur les maladie page 135). Ce sort ne permet pas de soigner les effets de la maladie déjà subis par le malade.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"dn2cqQ04MMvDaGts"}
|
||||||
|
{"name":"Soigner Empoisonnement","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Tours","niveau":3,"malus":-9,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Si le mage réussit son Test contre un SR équivalent à la Virulence du Poison. La victime est totalement purifiée, le mage ayant détruit toute trace d’empoisonnement. Ce sort ne permet pas de guérir la victime si elle a déjà subi des effets du poison (Perte de vie, de Caractéristique,...).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"gP4PB4GU77FQKn0m"}
|
||||||
|
{"name":"Récupération totale","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"4 Tours","niveau":4,"malus":-12,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Le mage permet à une personne de son choix de revenir à son score maximal de Point de Vie. Ce sort ne guérit pas des hémorragies, des effets de blessures graves...</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"iJpRWsZeo1w2suaz"}
|
||||||
|
{"name":"Préparation de potion","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 heures","niveau":3,"malus":-9,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Ce sort permet de créer une potion. Ces potions se conservent très longtemps, des mois voire des années, à condition d’être bien conditionnées. Dès qu’une personne boit la potion, elle regagne instantanément un certain nombre de points de Vie. Le nombre de D10 lancé pour regagner des Points de Vie est égal à l’INS du mage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"nyf7ta5p3hozS8TR"}
|
||||||
|
{"name":"Libérer de la peur / Créer la peur","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Actions","niveau":1,"malus":-3,"duree":"Instantané / Spécial","zone":"Une personne","description":"<p>Effet : Ce sort, s’il est réussi, permet à un joueur sous l’emprise de la Peur de refaire un Test de Peur avec un bonus équivalent à la compétence Sejdr du mage.</p>\n<p>Effet inverse : La cible doit voir le mage lorsqu’il lance ce sort. Si le mage réussit son Test la victime peut faire un Test REF + DM en opposition avec le résultat du mage comme</p>\n<p>SR. Si la victime échoue, elle ne pense qu’à une seule chose, s’éloigner le plus loin et le plus rapidement possible du mage. Pour connaître la durée du sort, il suffit de consulter la table des durées.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"o3rC2x0lzFJMy1nk"}
|
||||||
|
{"name":"Les mains qui soignent / Celui qui blesse","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"2 Actions","niveau":1,"malus":-3,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Le mage fait regagner 1D10 points de vie à une personne de son choix. À aucun moment, ce sort ne permet de dépasser son maximum de Points de vie.</p>\n<p>Effet inverse : Le mage, s’il réussit son test, fait perdre 1D10 points de vie à une personne de son choix. On ne tient pas compte des Protections du type armure, casque...</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"sOtMvidJPLvLQ2QJ"}
|
||||||
|
{"name":"Soins modérés / Blessures modérées","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"2 Actions","niveau":3,"malus":-9,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Le mage fait regagner à une personne de son choix, un nombre de D10 points de vie équivalent à son INS. À aucun moment, ce sort ne permet de dépasser son maximum de Points de vie.</p>\n<p>Effet inverse : Le mage s’il réussit son Test tente de blesser une personne de son choix. La cible tente à son tour un Test de résistance TEN + DM contre un SR équivalent au résultat du mage. En cas d’échec, le mage lui inflige INS x D10 de dommages en ignorant les armures, casques...</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"wfFGKdhbgnFvpNkN"}
|
||||||
|
{"name":"Stabilisation des hémorragies","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"1 Action","niveau":2,"malus":-6,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Le mage en lançant ce sort stoppe toutes les hémorragies que subissait une personne. Cela ne fait pas gagner de Points de vie à la personne, mais à partir de l’instant ou le sort est lancé, elle ne perd plus de Points de vie à cause des hémorragies.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"wwrc9bTXY8xizVi2"}
|
12
packs/sejdr-maitrise-des-elements.db
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{"name":"Invoquer la pluie","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"1 heure","niveau":1,"malus":-3,"duree":"voir Tableau","zone":"INS x 100m2 au sol","description":"<p>Effet : Si et seulement si le temps le permet, c’est-à-dire que des nuages lourds sont présents dans le ciel, alors le mage est capable de faire tomber la pluie. Ou au contraire d’arrêter les chutes de pluie.</p>\n<p>Le mage a la possibilité de légère modification du climat qui reste toujours dans la norme, en aucun cas le mage est capable de faire tomber des pluies diluviennes.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"0hZBqEZ1QGm1jHYw"}
|
||||||
|
{"name":"Maîtriser les vents légers","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"1 Action","niveau":1,"malus":-3,"duree":"voir Tableau","zone":"INS x 10m3","description":"<p>Effet : Dans la zone du sort, le mage lève ou fait baisser des vents légers. Pendant toute la durée du sort, le mage peut modifier l’intensité des vents de INS x 10km/h en plus ou en moins ainsi que leur direction. En sachant que la vitesse limite maximale des vents est de INS x 10km/h. Si le mage essaye d’augmenter des vents au-delà de cette vitesse le sort reste sans effet.</p>\n<p>Pendant toute la durée du sort, le mage décide à chaque début de Tour quelle vitesse et direction auront les vents dans la zone de son sort.</p>\n<p>Au plus fort de la vitesse des vents, tout objet, projectile pris dans la zone aura un malus pour toucher sa cible équivalent à l’INS du mage.</p>\n<p>Ce sort peut être lancé en Extérieur et en Intérieur.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"1eWHk4ijKNCk1lh9"}
|
||||||
|
{"name":"Ouvrir le lit d’un fleuve","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"3 Tours","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"INS x 100m3","description":"<p>Effet : Le mage est capable d’ouvrir le lit d’un fleuve afin de permettre le passage. Il a une totale maîtrise sur la zone d’effet du sort et ce pendant toute sa durée. Précisons bien que ce sort ne stoppe pas le courant du fleuve et que si le mage tente de séparer entièrement le lit celui-ci, la puissance du fleuve brisera le sortilège afin de poursuivre son écoulement naturel.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"4LzK1ZJltuWdpyGt"}
|
||||||
|
{"name":"Maîtriser les vents violents","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"2 Tours","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"INS x 100m3","description":"<p>Effet : Dans la zone du sort, le mage créé des vents violents. Pendant toute la dure du sort, le mage peut modifier l’intensité de ces vents de INS x 50km/h en plus ou en moins ainsi que leur direction. En sachant que la vitesse limite maximale des vents est de INS x 50km/h. Si le mage essaye d’augmenter des vents au-delà de cette vitesse, le sort reste sans effet.</p>\n<p>Pendant toute la durée du sort, le mage décide à chaque début de Tour quelle vitesse et direction auront les vents dans la zone de son sort.</p>\n<p>Au plus fort de la vitesse des vents, toute personne prise dans la zone, à l’exception du mage, subit sans tenir compte des protections une perte de INS Points de Vie par Tour en raison des vents violents, chutes et petits objets projetés. Il est impossible de viser avec des armes de jets ou de traits quiconque à l’intérieur de la zone. Tout déplacement à l’intérieure de la zone nécessite un Test de PUI + Mouvement contre un SR équivalent à la vitesse des vents pendant ce Tour divisé par 10. Si ce Test échoue, la personne se retrouve plaquée au sol pour cette action ou collée contre un obstacle. Toute action de combat au corps à corps ou de mêlée à l’intérieur de la zone subit un malus équivalent à la vitesse des vents pendant ce Tour divisé par 10.</p>\n<p>Ce sort peut être lancé en extérieur et en intérieur.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"ASzp1M7Lf3lmfEka"}
|
||||||
|
{"name":"Ouvrir le lit d'une rivière","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"3 Tours","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"INS x 10m3","description":"<p>Effet : Le mage est capable d’ouvrir le lit d’une rivière afin de permettre son passage. Il a une totale maîtrise sur la zone d’effet du sort et ce pendant toute sa durée. Précisons bien que ce sort ne stoppe pas le courant de la rivière et que si le mage tente de séparer entièrement le lit de celle-ci, la puissance de la rivière brisera le sortilège afin de continuer son écoulement naturel.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"E5zeaECuXYcQvoWC"}
|
||||||
|
{"name":"Glissement de terrain","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"10 minutes","niveau":4,"malus":-12,"duree":"Variable","zone":"INS x 100m3","description":"<p> </p>\n<p>Effet : Le mage fait appel aux forces de la terre pour faire glisser / tomber une paroi de colline, un flanc de falaise, de la boue ou de la neige,... Les dégâts qu’occasionnent ce glissement de terrain dépendent de la nature du glissement.</p>\n<p>Pour les personnes et la perte de Point de Vie, on ne tient pas compte des protections. Pour les structures, on ne s’occupe que de celles en bois et qu’à la fin du sort pour connaître leur état. Les structures de pierre ne sont pas atteintes par les glissements de terrain. La durée du sort dépend de la nature du glissement et on compte en Tour.</p>\n<table style=\"width: 98.8506%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 14.7059%;\">Nature</td>\n<td style=\"width: 12.7451%;\">Durée</td>\n<td style=\"width: 25.9348%;\">Personne</td>\n<td style=\"width: 45.2576%;\">Structure</td>\n</tr>\n<tr>\n<td style=\"width: 14.7059%;\">Boue</td>\n<td style=\"width: 12.7451%;\">9</td>\n<td style=\"width: 25.9348%;\">1D5/T</td>\n<td style=\"width: 45.2576%;\">Idem</td>\n</tr>\n<tr>\n<td style=\"width: 14.7059%;\">Neige</td>\n<td style=\"width: 12.7451%;\">7</td>\n<td style=\"width: 25.9348%;\">1D10/T</td>\n<td style=\"width: 45.2576%;\">Légèrement endommagée (portes et fenêtres brisées)</td>\n</tr>\n<tr>\n<td style=\"width: 14.7059%;\">Terre</td>\n<td style=\"width: 12.7451%;\">5</td>\n<td style=\"width: 25.9348%;\">2D10/T</td>\n<td style=\"width: 45.2576%;\">Endommagée (Paroi détruite)</td>\n</tr>\n<tr>\n<td style=\"width: 14.7059%;\">Pierre</td>\n<td style=\"width: 12.7451%;\">3</td>\n<td style=\"width: 25.9348%;\">3D10/T</td>\n<td style=\"width: 45.2576%;\">Détruite</td>\n</tr>\n</tbody>\n</table>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"FGlhv3ME8WEN2j4h"}
|
||||||
|
{"name":"Détourner le lit d’une rivière ou d’un fleuve","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"2 heures","niveau":4,"malus":-12,"duree":"Voir tableau","zone":"Une rivière","description":"<p>Effet : Le mage peut grâce à ce puissant sort dévier le cours d’une rivière ou d’un fleuve. Le mage décide dans quelle direction doit partir l’écoulement du fleuve ou de la rivière.</p>\n<p>Par la suite, le fleuve ou la rivière trouvera un nouveau chemin naturel et ce pendant toute la durée du sort. Ainsi, il est possible, par exemple, de dévier une rivière en plaine qui au lieu de passer sur la droite d’un village, passera au gré du mage soit par le village lui-même, soit par sa gauche.</p>\n<p>Le tableau ci-dessous aidera a gérer, en terme de jeu, les effets dévastateurs d’un tel sort. Pour les personnes, il indique les dégâts que prend une victime prise dans le détournement du fleuve ou de la rivière. Les dommages sont calculés en Tour, et représentent aussi bien la noyade que les chocs violents contre les débris transportés par le fleuve ou la rivière. On ne tient pas compte des éventuelles protections. Pour les Structures, ce tableau décrit leur état une fois le fleuve (ou la rivière) passé.</p>\n<p> </p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td> </td>\n<td>Personne</td>\n<td>Structure bois</td>\n<td>Structure pierre</td>\n</tr>\n<tr>\n<td>Rivière</td>\n<td>1D10</td>\n<td>Abimée*</td>\n<td>Indemne</td>\n</tr>\n<tr>\n<td>Fleuve</td>\n<td>2D10</td>\n<td>Détruite</td>\n<td>\n<p><span style=\"background-color: rgba(255, 255, 255, 0.2);\">Abimée*</span></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p>* Par abimée, on entend une structure qui a perdu ses portes, ses fenêtres et peut-être même une paroi.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"GoVpo8a46UlLHne4"}
|
||||||
|
{"name":"Maîtriser le brouillard","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"4 Minutes","niveau":1,"malus":-3,"duree":"voir Tableau","zone":"INS x 200m3","description":"<p>Effet : Grâce à ce sort, un mage peut se faire lever ou se dissiper un Brouillard. La densité de ce brouillard dépend de la volonté du Mage, il peut varier d’une simple brume à un brouillard épais où la visibilité est quasi nulle.</p>\n<p>Les dimensions de la nappe de brouillard sont à la discrétion du mage. Il peut très bien créer une large bande de brume comme un cercle enveloppant un bateau. Ce sort ne peut être lancé qu’en extérieur et la nappe de brouillard ne se déplace pas avec le mage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"MjBp9KQptUR094UC"}
|
||||||
|
{"name":"Maîtriser la pluie","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"1 heure","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"INS x 100m2 au sol","description":"<p>Effet : Idem que le sort Invoquer la pluie, sauf que dans ce cas le mage n’est plus soumis aux conditions météorologiques pour faire tomber la pluie Il peut désormais invoquer ou dissiper les nuages nécessaires à la pluie.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"f3iwjaKvJIXsJrjI"}
|
||||||
|
{"name":"Créer obscurité / lever obscurité","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"4 Actions","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"INS x 10m3","description":"<p>Effet : Le mage est capable de créer une zone de INS x 10m3 dans laquelle il est maître de l’intensité lumineuse. Il peut varier cette intensité, pendant toute la durée du sort, allant à volonté d’une nuit noire sans lune à un après-midi d’été sans nuages et vice-versa. Le mage est toujours au centre de la zone affectée par ce sort même s’il se déplace. Les torches et autres moyens de s’éclairer fonctionnent normalement à l’intérieur de la zone du sort. Ce sort peut être lancé en intérieur comme en extérieur.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"fKdVTZUys5csOPyP"}
|
||||||
|
{"name":"Créer une tempête de neige","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"2 Tours","niveau":4,"malus":-12,"duree":"voir Tableau","zone":"INS x 500m2 au sol","description":"<p>Effet : Le mage lève une violente tempête de neige sur toute la zone du sort. Ce sort cumul plusieurs effets : des vents violents (voir le sort : Maîtriser les vents violents pour les effets), un froid intense qui fait perdre sans tenir compte des protections une perte de INS Points de Vie par Tour, ainsi que la neige qui rend toute visibilité impossible.</p>\n<p>Il suffit de quelques minutes pour recouvrir de neige glacée un groupe d’aventuriers, de quelques heures pour recouvrir une maison ou de jours pour engloutir sous cette neige un petit village. La quantité de neige tombée dépend de la durée du sort et de l’unité de temps du sort :</p>\n<p> </p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>Unité de temps</td>\n<td>Neige en cms</td>\n</tr>\n<tr>\n<td>Par Action</td>\n<td>INS cms</td>\n</tr>\n<tr>\n<td>Par Tour</td>\n<td>INS x 5cms</td>\n</tr>\n<tr>\n<td>Par Minute</td>\n<td>INS x 20cms</td>\n</tr>\n<tr>\n<td>Par Heure</td>\n<td>INS x 40cms</td>\n</tr>\n<tr>\n<td>Par journée</td>\n<td>INS x 60cms</td>\n</tr>\n</tbody>\n</table>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"fbtAbKAjzB8k2gJE"}
|
||||||
|
{"name":"Créer / Calmer un tremblement de terre","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"2 heures","niveau":5,"malus":-15,"duree":"Voir tableau","zone":"INS x 200m2 au sol","description":"<p>Effet : Ce sort crée un terrible et dévastateur tremblement de terre qui affecte toute la zone déterminée par le mage. Le tableau ci-dessous aidera à gérer, en termes de jeu, les effets dévastateurs d’un tel sort. Pour les personnes, il indique les dégâtss que prend une victime prise dans la zone de turbulences. Les dommages sont calculés en Tours, et représentent aussi bien les chocs violents contre les débris et les chutes de la personne. On ne tient pas compte des éventuelles protections. Pour les Structures, ce tableau décrit leur état une fois le tremblement de terre terminé.</p>\n<p>Les dégâts occasionnés par un tremblement de terre dépendent beaucoup de la zone dans lequel il se situe.</p>\n<p> </p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td> </td>\n<td>Personne</td>\n<td>Bois</td>\n<td>Pierre</td>\n</tr>\n<tr>\n<td>Plaine désertique</td>\n<td>1D2</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Plaine densité faible</td>\n<td>1D5</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Plaine densité moyenne</td>\n<td>1D10</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Plaine densité forte</td>\n<td>2d10</td>\n<td>A*</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Colline désertique</td>\n<td>1D5</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Colline densité faible</td>\n<td>1D10</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Colline densité moyenne</td>\n<td>2D10</td>\n<td>D</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Colline densité forte</td>\n<td>3D10</td>\n<td>D</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Montagne désertique</td>\n<td>1D10</td>\n<td>D</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Montagne densité faible</td>\n<td>2D10</td>\n<td>D</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Montagne densité moyenne</td>\n<td>3D10</td>\n<td>D</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Montagne densité forte</td>\n<td>4D10</td>\n<td>D</td>\n<td>D</td>\n</tr>\n</tbody>\n</table>\n<p>I= Indemne - A = Abimée - D = Détruite</p>\n<p>* Par abimée, on entend une structure qui a perdu ses portes, ses fenêtres et peut-être même une paroi.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"tsuOVAHU0W0R6acd"}
|
4
packs/sejdr-maledictions.db
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{"name":"Pris de folie","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Malédictions","preparation":"3 Actions","niveau":4,"malus":-12,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le mage avance à reculons à l’intérieur du cercle qu’il a tracé. Il psalmodie sans cesse le nom de la victime qui se sent immédiatement prise de panique, contrainte de s’enfuir, sans comprendre ce qui lui arrive. Dans sa fuite, elle tuera ou tentera de tuer toute personne rencontrée quelle qu’elle soit.</p>\n<p>La victime a droit à un Test de Résistance, TEN + DM contre SR équivalent au score du sort lancé par le mage. Si ce Test échoue, elle entrera dans un état de Furor aveugle, ne différenciant plus amis ou ennemis. Même épuisée, la victime continuera à combattre jusqu’à la fin du sort ou l’inconscience.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"5FdmWeZINya8lbm3"}
|
||||||
|
{"name":"La chevauchée de la mara","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Malédictions","preparation":"3 heures","niveau":5,"malus":-15,"duree":"voir Tableau","zone":"Une personne","description":"<p>Le mage s’allonge dans ses vêtements de cérémonie, son bâton à la main. Il laisse son hamr quitter son corps, et chevauchant en esprit son stafr, il parvient jusqu’à la victime endormie. Il est nécessaire qu’elle dorme. Alors il quitte son bâton, et la « chevauche », c’est-à-dire qu’il s’assied sur sa poitrine, gênant sa respiration et provoquant de mauvais rêves. La victime doit faire un jet de TEN +DM contre un</p>\n<p>SR équivalent au score du sort lancé. S’il est réussi, elle se réveille complètement épuisée (1Dé en réserve), les cheveux emmêlés de façon inhabituelle.</p>\n<p>Si la victime échoue, son destin est entre les mains du mage qui décide dans quel état se réveille la victime ou si elle se réveille. Le mage choisit l’état de santé (Blessé, Meurtri, Inconscient ou Mort) dans lequel il laisse sa victime. La victime à son réveil n’a plus plus qu’un seul Dé en réserve et le nombre de Point de Vie correspond à son état de Santé.</p>\n<p>La mara peut aussi décider de chevaucher un cheval attaché que l’on retrouve au matin, épuisé et couvert d’écume.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"5zzRsBQwjHbHTR4C"}
|
||||||
|
{"name":"Faire naître la confusion","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Malédictions","preparation":"3 Actions","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Par ce sort, le mage trouble l’esprit d’une personne au point qu’elle perde tout intérêt dans ce qu’elle était en train de faire. La victime peut quitter un champ de bataille, son foyer, la cérémonie de son propre mariage sans un mot d’explication, dans le plus parfait mutisme. Elle erre alors sans comprendre ce qu’elle fait, durant toute la durée du sort.</p>\n<p>La victime a droit à un Test de Résistance, TEN + DM contre SR équivalent au score du sort lancé par le mage. Si ce Test échoue, elle subira les effets du sort. La victime errera sans but, se désintéressant de ce qui l’entoure.</p>\n<p>Une fois le sort terminé, la victime ne gardera pas de souvenirs de cette période et aura l’impression de sortir du sommeil.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"E8QTLdPDxOywN5Kk"}
|
||||||
|
{"name":"Rêves sinistres","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Malédictions","preparation":"3 Actions","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le Mage agite une peau de chèvre noire en chantonnant un sejdhlaeti, qui intègre le nom de la victime.</p>\n<p>Puis, à la fin de la préparation, il laisse retomber la peau sur sa tête et ferme les yeux. Sa victime ressent alors une soudaine pesanteur dans ses membres, et une forte lassitude puis une envie incontrôlable de fermer les yeux à son tour et de s’abandonner à un sommeil agité de rêves sinistres et menaçants. Il se s’agit pas d’un sommeil réparateur, mais d’une forme de transe induite.</p>\n<p>La victime a droit à un Test de Résistance, TEN + DM contre SR, équivalent au score du sort lancé par le mage. Si ce Test échoue, la victime s’endort sur place pendant toute la durée du sort. La douleur d’une simple gifle suffit à la faire sortir de ce sommeil ; par contre, les bruits extérieurs, aussi forts soient-ils, sont sans effet sur le sommeil.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"yccrNbXwA6j5BsjS"}
|
11
packs/sejdr-transmission-des-forces.db
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{"name":"Amélioration de la Défense Physique d’autrui / Abaissement de la défense Physique","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"2 Tours","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le mage augmente la DP d’une valeur égale à son INS. La durée dépend de sa marge de réussite (voir Tableau). Ce bonus à la DP s’additionne avec n’importe quel autre Bonus (magique, Bouclier,...).</p>\n<p>Effet inverse : Si le mage réussit son Test, il baissera la DP d’une cible de son choix, d’une valeur égale à son INS.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"6juBCfGgXhXiO4yq"}
|
||||||
|
{"name":"Renforcement de protections / Abaissement de protections","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"2 Actions","niveau":1,"malus":-3,"duree":"voir Tableau","zone":"Une protection sauf bouclier","description":"<p>Effet : Le mage augmente la valeur de protection d’une armure, d’un casque ou de n’importe quelle Protection sauf d’un bouclier. Cet augmentation est égale à la valeur du Mage en INS.</p>\n<p>Effet inverse : Le mage s’il réussit son Test en tenant compte de la DM de son adversaire, baisse la valeur de protection d’une armure, d’un casque,... de son choix. Cette baisse est égale à la valeur du Mage en INS.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"F47UUVM4ddF8HqSS"}
|
||||||
|
{"name":"Augmentation de la Réserve de dés d’autrui","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"3 Tours","niveau":4,"malus":-12,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le mage permet à une personne de son choix de dépasser son maximum de Réserve de dés. Il rajoute à cette réserve un nombre de dés équivalent à l’INS du mage. Pour bénéficier de ce sort la personne doit posséder toute sa réserve de dés au moment ou le mage lance ce sort. À aucun moment, ce sort ne permet de sortir d’un Epuisement et de régénérer sa réserve de dés.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"SgFbyMICyAEy4KHN"}
|
||||||
|
{"name":"Augmentation de la santé","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"2 Tours","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"Lui-même","description":"<p>Effet : Le mage peut dépasser ses limites en Points de Vie. Il lance un nombre de D10 équivalent à son INS, l’addition de ces D10 donne la valeur que le mage peut se rajouter en Points de vie (on ne rejette pas les 10). La durée dépend de sa marge de réussite (voir Tableau). À aucun moment ce sort ne permet de guérir le mage et il doit être en bonne santé (maximum en PV) pour bénéficier de ce sort. Par contre, les Points de vie supplémentaires sont considérés comme un bonus et ne viennent pas modifier l’Echelle de vie.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"UMJBINUD7ABjNgKa"}
|
||||||
|
{"name":"Augmentation de la Réserve de dés","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"3 Tours","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"Lui-même","description":"<p>Effet : Le mage peut dépasser son maximum de Réserve de dés. Il rajoute à cette réserve un nombre de dés équivalent à son INS+1. Pour avoir les effets bénéfiques de ce sort le mage doit posséder toute sa réserve de dés au moment ou il lance ce sort. À aucun moment, ce sort ne permet de sortir d’un Epuisement et de régénérer sa réserve de dés.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"YOakGbnIOyVxiHiI"}
|
||||||
|
{"name":"Amélioration des protections","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"2 Tours","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"Une protection sauf bouclier","description":"<p>Effet : Le mage augmente la valeur de protection d’une armure, d’un casque ou de n’importe quelle Protection sauf d’un bouclier. Cet augmentation est égale à la valeur de la compétence Sejdr du Mage. Le mage ne peut appliquer ce bonus que sur une seule Protection. La durée de ce bonus dépend de la marge de réussite (voir Tableau).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"gQ1ho6Zt2nRtiEOg"}
|
||||||
|
{"name":"Augmentation de la Santé d’autrui","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"3 Tours","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le mage permet à une personne de son choix de dépasser ses limites en Points de Vie. Il lance un nombre de D10 équivalent à son INS, l’addition de ces D10 donne la valeur que le mage peut se rajouter aux Points de vie de la personne <strong>(on ne rejette pas les 10</strong>). La durée dépend de sa marge de réussite (voir Tableau). À aucun moment ce sort ne permet de guérir un individu. La cible de ce sort doit être en bonne santé (maximum en PV) pour en bénéficier. Par contre, les Points de vie supplémentaires sont considérés comme un bonus et ne viennent pas modifier l’Echelle de vie.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"pAUhX8nE6X7vI5ku"}
|
||||||
|
{"name":"Renforcement des armes / Armes émoussées","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"3 Tours","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"Une arme","description":"<p>Effet : La mage augmente les dégâts d’une arme de son choix d’une valeur égale à son INS. La durée dépend de sa marge de réussite (voir Tableau).</p>\n<p>Effet inverse : Le mage, une fois le Test réussi, baisse le potentiel de dégâts d’une arme d’une valeur égale à son INS.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"pnfu3Cb8vYbzzmR1"}
|
||||||
|
{"name":"Amélioration de la Défense Physique","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"3 Actions","niveau":1,"malus":-3,"duree":"voir Tableau","zone":"Lui-même","description":"<p>Effet : Le mage augmente sa DP d’une valeur égale a son INS. La durée dépend de sa marge de réussite (voir Tableau). Ce bonus à la DP s’additionne avec n’importe quel autre Bonus (magique, Bouclier,...).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"szy1ushODNbzta5O"}
|
||||||
|
{"name":"Amélioration des armes","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"3 Tours","niveau":4,"malus":-12,"duree":"voir Tableau","zone":"Une arme","description":"<p>Effet : La mage augmente les dégâts d’une arme de son choix d’une valeur égale à sa compétence Sejdr. La durée dépend de sa marge de réussite (voir Tableau).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"vRet5kbrSNiHQJJU"}
|
||||||
|
{"name":"Augmentation de la Défense physique","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"3 Tours","niveau":4,"malus":-12,"duree":"voir Tableau","zone":"Un nombre de personnes équivalent à l'INS du mage","description":"<p>Effet : Le mage répartit sur une seule ou autant de personnes qu’il a en INS la totalité des points dans sa compétences Sejdr. Ces points viennent se rajouter à la DP des personnes visées pendant toute la durée du sort.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"z0m7sFpYBQJeMQtM"}
|
1189
styles/simple.css
Normal file
155
system.json
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
{
|
||||||
|
"name": "fvtt-yggdrasill",
|
||||||
|
"title": "Yggdrasill",
|
||||||
|
"description": "Système Yggdrasill pour FoundryVTT",
|
||||||
|
"version": "1.1.0",
|
||||||
|
"manifestPlusVersion": "1.0.0",
|
||||||
|
"minimumCoreVersion": "0.8.0",
|
||||||
|
"compatibleCoreVersion": "9",
|
||||||
|
"templateVersion": 37,
|
||||||
|
"author": "Uberwald",
|
||||||
|
"esmodules": [ "modules/yggdrasill-main.js" ],
|
||||||
|
"styles": ["styles/simple.css"],
|
||||||
|
"background" : "images/ui/yggdrasill_map.webp",
|
||||||
|
"media": [
|
||||||
|
],
|
||||||
|
"packs": [
|
||||||
|
{
|
||||||
|
"label": "Compétences Générales",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "competences-generales",
|
||||||
|
"path": "packs/competences-generales.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Compétences Martiales",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "competences-martiales",
|
||||||
|
"path": "packs/competences-martiales.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Compétences Magiques",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "competences-magiques",
|
||||||
|
"path": "packs/competences-magiques.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Prouesses Martiales",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "prouesses-martiales",
|
||||||
|
"path": "packs/prouesses-martiales.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Dons",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "dons",
|
||||||
|
"path": "packs/dons.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Faiblesses",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "faiblesses",
|
||||||
|
"path": "packs/faiblesses.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Blessures",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "blessures",
|
||||||
|
"path": "packs/blessures.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Armes",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "armes",
|
||||||
|
"path": "packs/armes.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Armures",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "armures",
|
||||||
|
"path": "packs/armures.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Runes",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "runes",
|
||||||
|
"path": "packs/runes.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Sejdr - Transmission des Forces",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "sejdr-transmission-des-forces",
|
||||||
|
"path": "packs/sejdr-transmission-des-forces.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Sejdr - Malédictions",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "sejdr-maledictions",
|
||||||
|
"path": "packs/sejdr-maledictions.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Sejdr - Maîtrise des Elements",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "sejdr-maitrise-des-elements",
|
||||||
|
"path": "packs/sejdr-maitrise-des-elements.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Sejdr - Guérison",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "sejdr-guerison",
|
||||||
|
"path": "packs/sejdr-guerison.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Sejdr - Divination",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "sejdr-divination",
|
||||||
|
"path": "packs/sejdr-divination.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Poisons",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "poisons",
|
||||||
|
"path": "packs/poisons.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Galdr - Malédictions",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "galdr-maledictions",
|
||||||
|
"path": "packs/galdr-maledictions.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Galdr - Illusions",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "galdr-illusions",
|
||||||
|
"path": "packs/galdr-illusions.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Galdr - Charme",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "galdr-charme",
|
||||||
|
"path": "packs/galdr-charme.db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Equipement",
|
||||||
|
"entity": "Item",
|
||||||
|
"name": "equipement",
|
||||||
|
"path": "packs/equipement.db"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"library": false,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "fr",
|
||||||
|
"name": "French",
|
||||||
|
"path": "lang/fr.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gridDistance": 5,
|
||||||
|
"gridUnits": "m",
|
||||||
|
"primaryTokenAttribute": "",
|
||||||
|
"secondaryTokenAttribute": "",
|
||||||
|
"socket": true,
|
||||||
|
"url": "https://www.uberwald.me/data/files/yggdrasill",
|
||||||
|
"manifest": "https://www.uberwald.me/data/files/yggdrasill/system.json",
|
||||||
|
"download": "https://www.uberwald.me/data/files/yggdrasill/fvtt-yggdrasill.zip",
|
||||||
|
"license": "LICENSE.txt"
|
||||||
|
}
|
347
template.json
Normal file
@ -0,0 +1,347 @@
|
|||||||
|
{
|
||||||
|
"Actor": {
|
||||||
|
"types": ["personnage", "figurant"],
|
||||||
|
"templates": {
|
||||||
|
"biodata": {
|
||||||
|
"biodata": {
|
||||||
|
"nom": "",
|
||||||
|
"archetype": "",
|
||||||
|
"profession": "",
|
||||||
|
"royaume": "",
|
||||||
|
"age": 0,
|
||||||
|
"taille": 0,
|
||||||
|
"poids": 0,
|
||||||
|
"don": "",
|
||||||
|
"faiblesse": "",
|
||||||
|
"pointlegende": 0,
|
||||||
|
"renomee": 0,
|
||||||
|
"description": "",
|
||||||
|
"notes": "",
|
||||||
|
"tiragerunes": "",
|
||||||
|
"gmnotes": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"carac": {
|
||||||
|
"carac": {
|
||||||
|
"corps":{
|
||||||
|
"label": "Corps",
|
||||||
|
"carac": {
|
||||||
|
"puissance": {
|
||||||
|
"value": 0,
|
||||||
|
"label": "Puissance",
|
||||||
|
"categorie": "corps",
|
||||||
|
"abbrev": "pui"
|
||||||
|
},
|
||||||
|
"vigueur": {
|
||||||
|
"value": 0,
|
||||||
|
"label": "Vigueur",
|
||||||
|
"categorie": "corps",
|
||||||
|
"abbrev": "vig"
|
||||||
|
},
|
||||||
|
"agilite": {
|
||||||
|
"value": 0,
|
||||||
|
"label": "Agilité",
|
||||||
|
"categorie": "corps",
|
||||||
|
"abbrev": "agi"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"esprit": {
|
||||||
|
"label": "Esprit",
|
||||||
|
"carac": {
|
||||||
|
"intellect": {
|
||||||
|
"value": 0,
|
||||||
|
"label": "Intellect",
|
||||||
|
"categorie": "esprit",
|
||||||
|
"abbrev": "int"
|
||||||
|
},
|
||||||
|
"perception": {
|
||||||
|
"value": 0,
|
||||||
|
"label": "Perception",
|
||||||
|
"categorie": "esprit",
|
||||||
|
"abbrev": "per"
|
||||||
|
},
|
||||||
|
"tenacite": {
|
||||||
|
"value": 0,
|
||||||
|
"label": "Tenacité",
|
||||||
|
"categorie": "esprit",
|
||||||
|
"abbrev": "ten"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ame": {
|
||||||
|
"label": "Ame",
|
||||||
|
"carac": {
|
||||||
|
"charisme": {
|
||||||
|
"value": 0,
|
||||||
|
"label": "Charisme",
|
||||||
|
"categorie": "ame",
|
||||||
|
"abbrev": "cha"
|
||||||
|
},
|
||||||
|
"communication": {
|
||||||
|
"value": 0,
|
||||||
|
"label": "Communication",
|
||||||
|
"categorie": "ame",
|
||||||
|
"abbrev": "com"
|
||||||
|
},
|
||||||
|
"instinct": {
|
||||||
|
"value": 0,
|
||||||
|
"label": "Instinct",
|
||||||
|
"categorie": "ame",
|
||||||
|
"abbrev": "ins"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"furor": {
|
||||||
|
"furor": {
|
||||||
|
"value": 1,
|
||||||
|
"max": 1,
|
||||||
|
"label": "Furor"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xp": {
|
||||||
|
"xp": {
|
||||||
|
"total": 1,
|
||||||
|
"current": 1,
|
||||||
|
"label": "XP"
|
||||||
|
},
|
||||||
|
"renommee": {
|
||||||
|
"value": 1,
|
||||||
|
"label": "Renommée"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"caracsecondaire": {
|
||||||
|
"status":{
|
||||||
|
"epuise": false,
|
||||||
|
"blesse": false,
|
||||||
|
"meurtri": false
|
||||||
|
},
|
||||||
|
"caracsecondaire": {
|
||||||
|
"reaction": {
|
||||||
|
"value": 0,
|
||||||
|
"max": 0,
|
||||||
|
"label": "Réaction",
|
||||||
|
"abbrev": "rea"
|
||||||
|
},
|
||||||
|
"defensephy": {
|
||||||
|
"value": 0,
|
||||||
|
"bonusmalus": 0,
|
||||||
|
"bouclierequipe": false,
|
||||||
|
"max": 0,
|
||||||
|
"label": "Défense Physique",
|
||||||
|
"abbrev": "dp"
|
||||||
|
},
|
||||||
|
"defensemen": {
|
||||||
|
"value": 0,
|
||||||
|
"bonusmalus": 0,
|
||||||
|
"max": 0,
|
||||||
|
"label": "Défense Mentale",
|
||||||
|
"abbrev": "dm"
|
||||||
|
},
|
||||||
|
"deplacement": {
|
||||||
|
"value": 0,
|
||||||
|
"max": 0,
|
||||||
|
"label": "Déplacement",
|
||||||
|
"abbrev": "dep"
|
||||||
|
},
|
||||||
|
"capaenc": {
|
||||||
|
"value": 0,
|
||||||
|
"max": 0,
|
||||||
|
"label": "Capacité d'Encombrement",
|
||||||
|
"abbrev": "cpe"
|
||||||
|
},
|
||||||
|
"pv": {
|
||||||
|
"value": 10,
|
||||||
|
"max": 10,
|
||||||
|
"min":0,
|
||||||
|
"label": "Points de Vie",
|
||||||
|
"abbrev": "pv"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"personnage": {
|
||||||
|
"templates": [ "biodata", "carac", "caracsecondaire", "furor" ]
|
||||||
|
},
|
||||||
|
"figurant": {
|
||||||
|
"biodata" : {
|
||||||
|
"age": 0,
|
||||||
|
"taille": "",
|
||||||
|
"description": "",
|
||||||
|
"poids": 0,
|
||||||
|
"notes": ""
|
||||||
|
},
|
||||||
|
"attributs": {
|
||||||
|
"conflit": {
|
||||||
|
"values": {
|
||||||
|
"offensif": {
|
||||||
|
"label": "Offensif",
|
||||||
|
"value": 0,
|
||||||
|
"degats": true
|
||||||
|
},
|
||||||
|
"defensif": {
|
||||||
|
"label": "Défensif",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollable": false,
|
||||||
|
"label": "Conflit"
|
||||||
|
},
|
||||||
|
"relationnel": {
|
||||||
|
"values": {
|
||||||
|
"defaut": {
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollable": true,
|
||||||
|
"label": "Relationnel"
|
||||||
|
},
|
||||||
|
"physique": {
|
||||||
|
"values": {
|
||||||
|
"defaut": {
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollable": true,
|
||||||
|
"label": "Physique"
|
||||||
|
},
|
||||||
|
"mental": {
|
||||||
|
"values": {
|
||||||
|
"defaut": {
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollable": true,
|
||||||
|
"label": "Mental"
|
||||||
|
},
|
||||||
|
"mystique": {
|
||||||
|
"values": {
|
||||||
|
"actif": {
|
||||||
|
"label": "Actif",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"passif": {
|
||||||
|
"label": "Passif",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollable": false,
|
||||||
|
"label": "Mystique"
|
||||||
|
},
|
||||||
|
"vitalite": {
|
||||||
|
"values": {
|
||||||
|
"defaut": {
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollable": false,
|
||||||
|
"label": "Vitalité"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"etat": {
|
||||||
|
"etat": "fringant"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Item": {
|
||||||
|
"types": ["competence", "don", "faiblesse", "blessure", "maladie", "poison", "sort", "prouesse", "armecc", "sortsejdr", "sortgaldr", "rune", "armedist", "armure", "equipement", "effetmagique", "monnaie" ],
|
||||||
|
"effetmagique": {
|
||||||
|
"origine": "",
|
||||||
|
"effet": ""
|
||||||
|
},
|
||||||
|
"don": {
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"faiblesse": {
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"competence": {
|
||||||
|
"isspecialisation": false,
|
||||||
|
"categorie": "",
|
||||||
|
"specialisation":"",
|
||||||
|
"description": 0,
|
||||||
|
"niveau": 0,
|
||||||
|
"niveauunrequis": false
|
||||||
|
},
|
||||||
|
"blessure": {
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"maladie": {
|
||||||
|
"categorie": "",
|
||||||
|
"periode": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"poison": {
|
||||||
|
"categorie": "",
|
||||||
|
"type": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"prouesse": {
|
||||||
|
"categorie": "",
|
||||||
|
"niveau": 0,
|
||||||
|
"armes": "",
|
||||||
|
"prerequis": "",
|
||||||
|
"modificateur": 0,
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"sortsejdr": {
|
||||||
|
"forme": "",
|
||||||
|
"preparation": "",
|
||||||
|
"niveau": 0,
|
||||||
|
"malus": 0,
|
||||||
|
"duree": "",
|
||||||
|
"zone": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"sortgaldr": {
|
||||||
|
"voie": "",
|
||||||
|
"sd": 0,
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"rune": {
|
||||||
|
"niveau": 0,
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"armecc": {
|
||||||
|
"categorie": "",
|
||||||
|
"equipe": false,
|
||||||
|
"degat": 0,
|
||||||
|
"solidite": 0,
|
||||||
|
"enc": 0,
|
||||||
|
"valeur": 0,
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"armedist": {
|
||||||
|
"categorie": "",
|
||||||
|
"equipe": false,
|
||||||
|
"degat": 0,
|
||||||
|
"solidite": 0,
|
||||||
|
"enc": 0,
|
||||||
|
"portee": "",
|
||||||
|
"valeur": 0,
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"armure": {
|
||||||
|
"categorie": "",
|
||||||
|
"equipe": false,
|
||||||
|
"protection": "",
|
||||||
|
"enc": 0,
|
||||||
|
"valeur": 0,
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"equipement": {
|
||||||
|
"equipe": false,
|
||||||
|
"enc": 0,
|
||||||
|
"valeur": 0,
|
||||||
|
"quantite": 0,
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"monnaie": {
|
||||||
|
"quantite": 0,
|
||||||
|
"enc": 0,
|
||||||
|
"description": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
529
templates/actor-sheet.html
Normal file
@ -0,0 +1,529 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{!-- Sheet Header --}}
|
||||||
|
<header class="sheet-header">
|
||||||
|
<div class="header-fields">
|
||||||
|
<div class="flexrow">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Tab Navigation --}}
|
||||||
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
|
<a class="item" data-tab="principal">Caractéristiques</a>
|
||||||
|
<a class="item" data-tab="competence">Compétences</a>
|
||||||
|
<a class="item" data-tab="combat">Combat</a>
|
||||||
|
<a class="item" data-tab="sorts">Sorts</a>
|
||||||
|
<a class="item" data-tab="equipement">Equipement</a>
|
||||||
|
<a class="item" data-tab="description">Description</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
{{!-- Carac Tab --}}
|
||||||
|
<div class="tab items" data-group="primary" data-tab="principal">
|
||||||
|
<span><a class="lock-unlock-sheet"><img class="small-button-container"
|
||||||
|
src="systems/fvtt-yggdrasill/images/icons/{{#if editScore}}unlocked.svg{{else}}locked.svg{{/if}}" alt="Editable/Vérouillé"
|
||||||
|
>{{#if editScore}}Editable{{else}}Vérouillé{{/if}}</a>
|
||||||
|
</span>
|
||||||
|
<div class="grid grid-2col">
|
||||||
|
<div class="">
|
||||||
|
<span class="generic-label"><h3>Caractéristiques</h3></span>
|
||||||
|
<ul>
|
||||||
|
{{#each data.carac as |categ keycateg|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{keycateg}}">
|
||||||
|
<!-- <img class="sheet-competence-img" src="{{categ.img}}"/> -->
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{keycateg}}"><h4>{{categ.label}}</h2></span>
|
||||||
|
</li>
|
||||||
|
{{#each categ.carac as |mycarac keycarac|}}
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow list-item" data-carac-categ="{{keycateg}}" data-carac-key="{{keycarac}}">
|
||||||
|
<img class="sheet-competence-img" src="systems/fvtt-yggdrasill/images/icons/icon_carac_{{keycateg}}.png"/>
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}"><a class="carac-roll">{{mycarac.label}}</a></span>
|
||||||
|
<select class="carac-base flexrow" type="text" name="data.carac.{{keycateg}}.carac.{{keycarac}}.value" value="{{mycarac.value}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
|
{{#select mycarac.value}}
|
||||||
|
<option value="1">1</option>
|
||||||
|
<option value="2">2</option>
|
||||||
|
<option value="3">3</option>
|
||||||
|
<option value="4">4</option>
|
||||||
|
<option value="5">5</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<span class="generic-label"><h3>Furor</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="">
|
||||||
|
<input type="text" id="input-furor" name="data.furor.value" value="{{data.furor.value}}" data-dtype="Number"/>
|
||||||
|
{{#if isGM}}
|
||||||
|
<span class="pv-label flexrow tooltip tooltip-nobottom">/
|
||||||
|
<input type="text" id="max-furor" name="data.furor.max" value="{{data.furor.max}}" data-dtype="Number"/>
|
||||||
|
</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="pv-label flexrow tooltip tooltip-nobottom"> / {{data.furor.max}}</span>
|
||||||
|
{{/if}}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="generic-label"><h3>Blessures</h3></span>
|
||||||
|
<ul>
|
||||||
|
{{#each blessures as |blessure key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{blessure.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{blessure.img}}"/>
|
||||||
|
<span class="competence-label">{{blessure.name}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="generic-label"><h3>Sorts/Rune actifs</h3></span>
|
||||||
|
<ul>
|
||||||
|
{{#each effetsmagiques as |effetmagique key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{effetmagique.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{effetmagique.img}}"/>
|
||||||
|
<span class="competence-label">{{effetmagique.name}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="">
|
||||||
|
<span class="generic-label"><h3>Dons</h3></span>
|
||||||
|
<ul>
|
||||||
|
{{#each dons as |don key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{don.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{don.img}}"/>
|
||||||
|
<span class="competence-label">{{don.name}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
<span class="generic-label"><h3>Faiblesses</h3></span>
|
||||||
|
<ul>
|
||||||
|
{{#each faiblesses as |faiblesse key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{faiblesse.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{faiblesse.img}}"/>
|
||||||
|
<span class="competence-label">{{faiblesse.name}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
<span class="generic-label"><h3>Secondaires</h3></span>
|
||||||
|
<ul>
|
||||||
|
{{#each data.caracsecondaire as |caracsec key|}}
|
||||||
|
{{#if (ne key "pv")}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{caracsec.id}}">
|
||||||
|
<img class="sheet-competence-img" src="systems/fvtt-yggdrasill/images/icons/icon_carac_secondaire.png"/>
|
||||||
|
<span class="secondaire-label flexrow tooltip tooltip-nobottom" name="{{key}}">{{caracsec.label}}</span>
|
||||||
|
|
||||||
|
<div class="secondaire-label">
|
||||||
|
{{#if (eq key "reaction")}}
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">{{caracsec.max}}</span>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq key "deplacement")}}
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">{{caracsec.max}}</span>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq key "capaenc")}}
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">{{caracsec.max}}</span>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq key "defensephy")}}
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow list-item"><span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">Base : {{caracsec.max}}</span></li>
|
||||||
|
<li class="item flexrow list-item">
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">B/M</span>
|
||||||
|
<select class="carac-base flexrow" type="text" name="data.caracsecondaire.{{key}}.bonusmalus" value="{{caracsec.bonusmalus}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
|
{{#select caracsec.bonusmalus}}
|
||||||
|
{{#each @root.optionsDMDP as |option key| }}
|
||||||
|
<option value="{{option.value}}">{{option.text}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item">
|
||||||
|
<span>Bouclier ?</span>
|
||||||
|
<span class="attribute-value checkbox"><input type="checkbox" name="data.caracsecondaire.{{key}}.bouclierequipe" {{checked caracsec.bouclierequipe}}/></span>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item">
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-total">Total : {{caracsec.total}}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq key "defensemen")}}
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow list-item"><span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">Base : {{caracsec.max}}</span></li>
|
||||||
|
<li class="item flexrow list-item">
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">B/M</span>
|
||||||
|
<select class="carac-base flexrow" type="text" name="data.caracsecondaire.{{key}}.bonusmalus" value="{{caracsec.bonusmalus}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
|
{{#select caracsec.bonusmalus}}
|
||||||
|
{{#each @root.optionsDMDP as |option key| }}
|
||||||
|
<option value="{{option.value}}">{{option.text}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item">
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-total">Total : {{caracsec.total}}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="generic-label"><h3>Points de Vie</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="">
|
||||||
|
<input class="input-pv" type="text" id="input-pv" name="data.caracsecondaire.pv.value" value="{{data.caracsecondaire.pv.value}}" data-dtype="Number"/>
|
||||||
|
<span class="pv-label flexrow tooltip tooltip-nobottom" name="{{key}}-total"> / {{data.caracsecondaire.pv.max}}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="generic-label"><h4>Epuisé :
|
||||||
|
<input type="checkbox" id="isEpuise" name="data.status.epuise" {{checked data.status.epuise}}/></h3>
|
||||||
|
</span>
|
||||||
|
<span class="generic-label"><h4>Blessé :
|
||||||
|
<input type="checkbox" id="isBlesse" name="data.status.blesse" {{checked data.status.blesse}}/></h3>
|
||||||
|
</span>
|
||||||
|
<span class="generic-label"><h4>Meurtri :
|
||||||
|
<input type="checkbox" id="isMeurtri" name="data.status.meurtri" {{checked data.status.meurtri}}/></h3>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Skills Tab --}}
|
||||||
|
<div class="tab competence" data-group="primary" data-tab="competence">
|
||||||
|
<div class="flexrow">
|
||||||
|
<span><a class="lock-unlock-sheet"><img class="small-button-container"
|
||||||
|
src="systems/fvtt-yggdrasill/images/icons/{{#if editScore}}unlocked.svg{{else}}locked.svg{{/if}}" alt="Editable/Vérouillé"
|
||||||
|
>{{#if editScore}}Editable{{else}}Vérouillé{{/if}}</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="grid grid-2col">
|
||||||
|
<div>
|
||||||
|
<ul class="item-list alterne-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<span class=""></span>
|
||||||
|
<span class="generic-label">Compétences Générales</span>
|
||||||
|
<span class="generic-label">Niveau</span>
|
||||||
|
<span class=""></span>
|
||||||
|
</li>
|
||||||
|
{{#each competencesGenerales as |competence key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{competence.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{competence.img}}"/>
|
||||||
|
<span class="competence-label"><a>{{competence.name}}</a></span>
|
||||||
|
<div>
|
||||||
|
{{#if competence.data.data.isspecialisation}}
|
||||||
|
<span class="specialisation-label">({{competence.data.data.specialisation}})</span>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
<select class="competence-base flexrow" type="text" skillname="{{competence.name}}" value="{{competence.data.data.niveau}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
|
{{selectOptions @root.optionsBase selected=competence.data.data.niveau localize=false}}
|
||||||
|
</select>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul class="item-list alterne-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<span class=""></span>
|
||||||
|
<span class="generic-label">Compétences Martiales</span>
|
||||||
|
<span class="generic-label">Niveau</span>
|
||||||
|
<span class=""></span>
|
||||||
|
</li>
|
||||||
|
{{#each competencesMartiales as |competence key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{competence.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{competence.img}}"/>
|
||||||
|
<span class="competence-label"><a>{{competence.name}}</a></span>
|
||||||
|
<select class="competence-base flexrow" type="text" skillname="{{competence.name}}" value="{{competence.data.data.niveau}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
|
{{selectOptions @root.optionsBase selected=competence.data.data.niveau localize=false}}
|
||||||
|
</select>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
<ul class="item-list alterne-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<span class=""></span>
|
||||||
|
<span class="generic-label">Compétences Magiques</span>
|
||||||
|
<span class="generic-label">Niveau</span>
|
||||||
|
<span class=""></span>
|
||||||
|
</li>
|
||||||
|
{{#each competencesMagiques as |competence key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{competence.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{competence.img}}"/>
|
||||||
|
<span class="competence-label"><a>{{competence.name}}</a></span>
|
||||||
|
<select class="competence-base flexrow" type="text" skillname="{{competence.name}}" value="{{competence.data.data.niveau}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
|
{{selectOptions @root.optionsBase selected=competence.data.data.niveau localize=false}}
|
||||||
|
</select>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Combat Tab --}}
|
||||||
|
<div class="tab combat" data-group="primary" data-tab="combat">
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<hr><span class="generic-label"><h3>Armes</h3></span>
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
<li class="stat flexrow" >
|
||||||
|
<span class="stat-label flexrow">Nom</span>
|
||||||
|
<span class="stat-label flexrow">Catégorie</span>
|
||||||
|
<span class="stat-label flexrow">Dégats</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each armes as |arme key|}}
|
||||||
|
<li class="item stat flexrow list-item" data-arme-id="{{arme.id}}" data-item-id="{{arme.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{arme.img}}"/>
|
||||||
|
<span class="stat-label arme-label flexrow tooltip tooltip-nobottom"><a name="{{arme.name}}">{{arme.name}}</a></span>
|
||||||
|
<span class="stat-label combat-label"> {{arme.data.data.categorie}}</span>
|
||||||
|
<span class="stat-label combat-label"> {{arme.data.data.degat}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-equip" title="Worn">{{#if arme.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<hr><span class="generic-label"><h3>Prouesses Martiales</h3></span>
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
<li class="stat flexrow" >
|
||||||
|
<span class="stat-label flexrow">Nom</span>
|
||||||
|
<span class="stat-label flexrow">Categorie?</span>
|
||||||
|
<span class="stat-label flexrow">Niveau</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each prouessesMartiales as |prouesse key|}}
|
||||||
|
<li class="item stat flexrow list-item" data-item-id="{{prouesse.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{prouesse.img}}"/>
|
||||||
|
<span class="stat-label combat-label flexrow tooltip tooltip-nobottom">{{prouesse.name}}</a></span>
|
||||||
|
<span class="stat-label combat-label">{{prouesse.data.data.categorie}}</span>
|
||||||
|
<span class="stat-label combat-label">{{prouesse.data.data.niveau}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div><h4>Armures (Protection Totale : {{protectionTotal}}) </h4></div>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="stat flexrow" >
|
||||||
|
<span class="stat-label flexrow">Nom</span>
|
||||||
|
<span class="stat-label flexrow">Catégorie</span>
|
||||||
|
<span class="stat-label flexrow">Protection</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each armures as |armure key|}}
|
||||||
|
<li class="item stat flexrow list-item" data-armure-id="{{armure.id}}" data-item-id="{{armure.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{armure.img}}"/>
|
||||||
|
<span class="stat-label combat-label flexrow tooltip tooltip-nobottom"><a name="{{armure.name}}">{{armure.name}}</a></span>
|
||||||
|
<span class="stat-label combat-label"> {{armure.data.data.categorie}}</span>
|
||||||
|
<span class="stat-label combat-label"> {{armure.data.data.protection}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-equip" title="Worn">{{#if armure.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Sort Tab --}}
|
||||||
|
<div class="tab sorts" data-group="primary" data-tab="sorts">
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
<span class="generic-label">Sorts Sejdr</span>
|
||||||
|
<ul class="item-list alterne-list">
|
||||||
|
{{#each sortsSejdr as |sort key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{sort.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{sort.img}}"/>
|
||||||
|
<span class="sort-label"><a class="sort-sejdr">{{sort.name}}</a></span>
|
||||||
|
<span class="sort-difficulty">{{sort.data.data.forme}}</span>
|
||||||
|
<span class="sort-difficulty">{{sort.data.data.niveau}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
<span class="generic-label">Sorts Galdr</span>
|
||||||
|
<ul class="item-list alterne-list">
|
||||||
|
{{#each sortsGaldr as |sort key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{sort.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{sort.img}}"/>
|
||||||
|
<span class="sort-label"><a class="sort-galdr">{{sort.name}}</a></span>
|
||||||
|
<span class="sort-difficulty">{{sort.data.data.domaine}}</span>
|
||||||
|
<span class="sort-difficulty">{{sort.data.data.duree}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
<span class="generic-label">Runes</span>
|
||||||
|
<ul class="item-list alterne-list">
|
||||||
|
{{#each runes as |sort key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{sort.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{sort.img}}"/>
|
||||||
|
<span class="sort-label"><a class="sort-rune">{{sort.name}}</a></span>
|
||||||
|
<span class="sort-difficulty">{{sort.data.data.cible}}</span>
|
||||||
|
<span class="sort-difficulty">{{sort.data.data.niveau}}</span>
|
||||||
|
<span class="sort-difficulty">{{sort.data.data.domaine}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Equipement Tab --}}
|
||||||
|
<div class="tab equipement" data-group="primary" data-tab="equipement">
|
||||||
|
<div><h4>Argent</h4></div>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each monnaies as |monnaie key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{monnaie.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{monnaie.img}}"/>
|
||||||
|
<span class="generic-label">{{monnaie.name}}</span>
|
||||||
|
<span class="generic-label">{{monnaie.data.data.quantite}}
|
||||||
|
(<a class="equipement-moins plus-moins-button"> -</a>/<a class="equipement-plus plus-moins-button">+</a>)
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
<div><h4>Equipement (Encombrement total : {{encTotal}})</h4></div>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item">
|
||||||
|
<span class="equipement-label">Nom</span>
|
||||||
|
<span class="equipement-label">Quantité</span>
|
||||||
|
<span class="equipement-label">Enc.</span>
|
||||||
|
<span class="equipement-label">+/-</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<span class="equipement-label"> </span>
|
||||||
|
<span class="equipement-label"> </span>
|
||||||
|
<span class="equipement-label"> </span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each equipements as |equipement key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{equipement.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{equipement.img}}"/>
|
||||||
|
<span class="equipement-label">{{equipement.name}}</span>
|
||||||
|
<span class="equipement-label">{{equipement.data.data.quantite}}</span>
|
||||||
|
<span class="equipement-label">{{equipement.data.data.enc}}</span>
|
||||||
|
<span class="equipement-label">
|
||||||
|
(<a class="equipement-moins plus-moins-button">-</a>/<a class="equipement-plus plus-moins-button">+</a>)
|
||||||
|
</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-equip" title="Worn">{{#if equipement.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{!-- Biography Tab --}}
|
||||||
|
<div class="tab description" data-group="primary" data-tab="description">
|
||||||
|
<article class="flexcol">
|
||||||
|
<h3>Expérience et Renommée : </h3>
|
||||||
|
<div class="form-group editor">
|
||||||
|
<span class="equipement-label">XP : </span>
|
||||||
|
<input type="text" name="data.xp.xp.current" value="{{data.xp.xp.current}}" data-dtype="Number"/>
|
||||||
|
<input type="text" name="data.xp.xp.total" value="{{data.xp.xp.total}}" data-dtype="Number"/>
|
||||||
|
<span class="equipement-label">Renommée : </span>
|
||||||
|
<input type="text" name="data.xp.renommee.value" value="{{data.xp.renommee.value}}" data-dtype="Number"/>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<h3>Biographie : </h3>
|
||||||
|
<div class="form-group editor">
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<h3>Notes : </h3>
|
||||||
|
<div class="form-group editor">
|
||||||
|
{{editor content=data.notes target="data.notes" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<h3>Tirage des Runes: </h3>
|
||||||
|
<div class="form-group editor">
|
||||||
|
{{editor content=data.tiragerunes target="data.tiragerunes" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
{{>"systems/fvtt-yggdrasill/templates/editor-notes-gm.html"}}
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
||||||
|
|
105
templates/chat-generic-result.html
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
<div class="chat-message-header">
|
||||||
|
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
||||||
|
<h4 class=chat-actor-name>{{alias}}</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
|
||||||
|
<h3>
|
||||||
|
{{#if (eq mode "attribut")}}
|
||||||
|
Jet de {{attr.label}} {{subAttr.label}} (2d10+{{subAttr.value}})
|
||||||
|
{{else}}
|
||||||
|
{{#if (eq mode "competence")}}
|
||||||
|
Jet de {{selectedCarac.label}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||||
|
{{else}}
|
||||||
|
{{#if (eq mode "armecc")}}
|
||||||
|
Attaque au corps à Corps {{attackDef.label}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||||
|
{{else}}
|
||||||
|
{{#if (eq mode "armedist")}}
|
||||||
|
Attaque à Distance {{attackDef.label}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||||
|
{{else}}
|
||||||
|
{{#if (eq mode "sejdr")}}
|
||||||
|
Lancer du Sort {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||||
|
{{else}}
|
||||||
|
{{#if (eq mode "rune")}}
|
||||||
|
Gravure de la Rune {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||||
|
{{else}}
|
||||||
|
{{#if (eq mode "galdr")}}
|
||||||
|
Lancer du Domaine {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||||
|
{{else}}
|
||||||
|
Jet de {{selectedCarac.label}} ({{selectedCarac.value}}d10)
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li>Dés :
|
||||||
|
{{#each rawDices as |dice key|}}
|
||||||
|
{{dice.result}}
|
||||||
|
{{/each}}
|
||||||
|
</li>
|
||||||
|
{{#if sumDice}}
|
||||||
|
<li>Nombre de dés additionnés : {{sumDice}}</li>
|
||||||
|
{{/if}}
|
||||||
|
<li>Bonus/Malus Final : {{finalBM}}</li>
|
||||||
|
{{#if sr}}
|
||||||
|
<li>Seuil de Réussite final : {{srFinal}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if furorUsage}}
|
||||||
|
<li>Furor : {{furorUsage}}</li>
|
||||||
|
{{/if}}
|
||||||
|
<li><h3>Total : {{roll.total}}</h3></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{{#if dureeGaldrText}}
|
||||||
|
<div>
|
||||||
|
Durée du Sort : {{dureeGaldrText}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if zoneGaldrText}}
|
||||||
|
<div>
|
||||||
|
Volume Max de l'Illusion : {{zoneGaldrText}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if ciblesGaldrText}}
|
||||||
|
<div>
|
||||||
|
Nombre de Cibles : {{ciblesGaldrText}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
|
||||||
|
{{#if degats}}
|
||||||
|
<div>
|
||||||
|
Degats : {{degats}} ({{degatsExplain}})
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if attackDef.protection}}
|
||||||
|
<div>
|
||||||
|
Annuation de Protection du Défenseur : {{attackDef.protection}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if isCritical}}
|
||||||
|
<div class="chat-message-header">
|
||||||
|
<img class="chat-icon" src="systems/fvtt-yggdrasill/images/icons/icon_reussite_critique.png" alt="critique" />
|
||||||
|
Réussite Critique !
|
||||||
|
{{/if}}
|
||||||
|
{{#if isFailure}}
|
||||||
|
<img class="chat-icon" src="systems/fvtt-yggdrasill/images/icons/icon_echec_critique.png" alt="echec" />
|
||||||
|
Echec Critique !
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</div>
|
6
templates/editor-notes-gm.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{{#if data.isGM}}
|
||||||
|
<h3>GM Notes : </h3>
|
||||||
|
<div class="form-group editor">
|
||||||
|
{{editor content=data.gmnotes target="data.gmnotes" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
165
templates/figurant-sheet.html
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{!-- Sheet Header --}}
|
||||||
|
<header class="sheet-header">
|
||||||
|
<div class="header-fields">
|
||||||
|
<div class="flexrow">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Tab Navigation --}}
|
||||||
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
|
<a class="item" data-tab="principal">Attributs</a>
|
||||||
|
<a class="item" data-tab="equipement">Equipement</a>
|
||||||
|
<a class="item" data-tab="description">Description</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
{{!-- Carac Tab --}}
|
||||||
|
<div class="tab items" data-group="primary" data-tab="principal">
|
||||||
|
<span><a class="lock-unlock-sheet"><img class="small-button-container"
|
||||||
|
src="systems/fvtt-yggdrasill/images/icons/{{#if editScore}}unlocked.svg{{else}}locked.svg{{/if}}" alt="Editable/Vérouillé"
|
||||||
|
>{{#if editScore}}Editable{{else}}Vérouillé{{/if}}</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div class="grid grid-2col">
|
||||||
|
<div class="">
|
||||||
|
<span class="generic-label"><h3>Attributs</h3></span>
|
||||||
|
<ul>
|
||||||
|
{{#each data.attributs as |attr key|}}
|
||||||
|
<li class="item flexrow list-item" data-attr-key="{{key}}">
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}">
|
||||||
|
{{#if attr.rollable}}
|
||||||
|
<a class="attribut-roll">{{attr.label}}</a>
|
||||||
|
{{else}}
|
||||||
|
{{attr.label}}
|
||||||
|
{{/if}}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
{{#each attr.values as |value index|}}
|
||||||
|
{{#if value.label}}
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{index}}"><a class="attribut-roll" data-attr-sub-key="{{index}}">{{value.label}}</a></span>
|
||||||
|
{{/if}}
|
||||||
|
<select class="carac-base flexrow" type="text" name="data.attributs.{{key}}.values.{{index}}.value" value="{{value.value}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
|
{{#select value.value}}
|
||||||
|
{{#each @root.optionsAttr as |option index|}}
|
||||||
|
<option value="{{index}}">{{index}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="">
|
||||||
|
<span class="generic-label"><h3>Etat</h3></span>
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow list-item" data-attr-key="etat">
|
||||||
|
<span class="stat-label flexrow tooltip tooltip-nobottom" name="etat">Etat : </span>
|
||||||
|
<select class="carac-base flexrow" type="text" name="data.etat.etat" value="{{data.etat.etat}}" data-dtype="String" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
|
{{#select data.etat.etat}}
|
||||||
|
<option value="fringant">Fringant</option>
|
||||||
|
<option value="blesse">Blessé</option>
|
||||||
|
<option value="mort">Mort</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="generic-label"><h3>Sorts/Rune actifs</h3></span>
|
||||||
|
<ul>
|
||||||
|
{{#each effetsmagiques as |effetmagique key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{effetmagique.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{effetmagique.img}}"/>
|
||||||
|
<span class="competence-label">{{effetmagique.name}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{!-- Equipement Tab --}}
|
||||||
|
<div class="tab equipement" data-group="primary" data-tab="equipement">
|
||||||
|
<div><h4>Argent</h4></div>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each monnaies as |monnaie key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{monnaie.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{monnaie.img}}"/>
|
||||||
|
<span class="generic-label">{{monnaie.name}}</span>
|
||||||
|
<span class="generic-label">{{monnaie.data.data.quantite}}
|
||||||
|
(<a class="equipement-moins plus-moins-button"> -</a>/<a class="equipement-plus plus-moins-button">+</a>)
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
<div><h4>Equipement (Encombrement total : {{encTotal}})</h4></div>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item">
|
||||||
|
<span class="equipement-label">Nom</span>
|
||||||
|
<span class="equipement-label">Quantité</span>
|
||||||
|
<span class="equipement-label">Enc.</span>
|
||||||
|
<span class="equipement-label">+/-</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<span class="equipement-label"> </span>
|
||||||
|
<span class="equipement-label"> </span>
|
||||||
|
<span class="equipement-label"> </span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each equipements as |equipement key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{equipement.id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{equipement.img}}"/>
|
||||||
|
<span class="equipement-label">{{equipement.name}}</span>
|
||||||
|
<span class="equipement-label">{{equipement.data.data.quantite}}</span>
|
||||||
|
<span class="equipement-label">{{equipement.data.data.enc}}</span>
|
||||||
|
<span class="equipement-label">
|
||||||
|
(<a class="equipement-moins plus-moins-button">-</a>/<a class="equipement-plus plus-moins-button">+</a>)
|
||||||
|
</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-equip" title="Worn">{{#if equipement.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{!-- Biography Tab --}}
|
||||||
|
<div class="tab description" data-group="primary" data-tab="description">
|
||||||
|
<article class="flexcol">
|
||||||
|
<h3>Biographie : </h3>
|
||||||
|
<div class="form-group editor">
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<h3>Notes : </h3>
|
||||||
|
<div class="form-group editor">
|
||||||
|
{{editor content=data.notes target="data.notes" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
||||||
|
|
12
templates/hud-actor-attaque.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<div class="control-icon rdd-combat ">
|
||||||
|
<img class="vadentis-hud-togglebutton" src="systems/foundryvtt-vadentis/images/icons/icone_item_armes_cac.webp" width="36" height="36" title="Attaque"/>
|
||||||
|
<div class="vadentis-hud-list tokenhudext left">
|
||||||
|
{{#each armes as |arme key|}}
|
||||||
|
{{#if arme.data.equipee}}
|
||||||
|
<div class="control-icon tokenhudicon vadentis-hud-menu vadentis-attaque" data-combatant-id="{{../combatant._id}}" data-arme-id="{{arme._id}}" title="{{arme.name}}">
|
||||||
|
<label>C:{{arme.name}}</label>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
10
templates/hud-actor-sort.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<div class="control-icon vadentis-sort ">
|
||||||
|
<img class="vadentis-hud-togglebutton" src="systems/foundryvtt-vadentis/images/icons/icone_item_sorts_élémentaires.webp" width="36" height="36" title="Sorts"/>
|
||||||
|
<div class="vadentis-hud-list tokenhudext right">
|
||||||
|
{{#each sorts as |sort key|}}
|
||||||
|
<div class="control-icon tokenhudicon vadentis-hud-menu vadentis-attaque" data-combatant-id="{{../combatant._id}}" data-sort-id="{{sort._id}}" title="{{sort.name}}">
|
||||||
|
<label>S:{{sort.name}}</label>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
39
templates/item-armecc-sheet.html
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||||
|
{{#select data.categorie}}
|
||||||
|
<option value="lutte">Lutte</option>
|
||||||
|
<option value="improvisee">Improvisée</option>
|
||||||
|
<option value="courte">Courte</option>
|
||||||
|
<option value="longue">Longue</option>
|
||||||
|
<option value="deuxmains">A Deux Mains</option>
|
||||||
|
<option value="hast">Hast</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Equipée ?</label>
|
||||||
|
<label class="attribute-value checkbox"><input type="checkbox" name="data.equipe" {{checked data.equipe}}/></label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Degat</label><input type="text" name="data.degat" value="{{data.degat}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Solidité</label><input type="text" name="data.solidite" value="{{data.solidite}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="data.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
36
templates/item-armedist-sheet.html
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||||
|
{{#select data.categorie}}
|
||||||
|
<option value="jet">Jet</option>
|
||||||
|
<option value="tir">Tir</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Equipée ?</label>
|
||||||
|
<label class="attribute-value checkbox"><input type="checkbox" name="data.equipe" {{checked data.equipe}}/></label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Degat</label><input type="text" name="data.degat" value="{{data.degat}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Solidité</label><input type="text" name="data.solidite" value="{{data.solidite}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="data.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Portée</label><input type="text" name="data.portee" value="{{data.portee}}" data-dtype="String"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
34
templates/item-armure-sheet.html
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||||
|
{{#select data.categorie}}
|
||||||
|
<option value="armure">Armure</option>
|
||||||
|
<option value="piecearmure">Pièce d'Armure</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Equipée ?</label>
|
||||||
|
<label class="attribute-value checkbox"><input type="checkbox" name="data.equipe" {{checked data.equipe}}/></label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Protection</label><input type="text" name="data.protection" value="{{data.protection}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="data.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
18
templates/item-blessure-sheet.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
41
templates/item-competence-sheet.html
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||||
|
{{#select data.categorie}}
|
||||||
|
<option value="generale">Générale</option>
|
||||||
|
<option value="magique">Magique</option>
|
||||||
|
<option value="martiale">Martiale</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Niveau</label>
|
||||||
|
<select class="competence-malus flexrow" type="text" name="data.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||||
|
{{selectOptions @root.optionsBase selected=data.niveau localize=false}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Spécialisation ?</label>
|
||||||
|
<label class="attribute-value checkbox"><input type="checkbox" name="data.isspecialisation" {{checked data.isspecialisation}}/></label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Spécialisation</label><input type="text" name="data.specialisation" value="{{data.specialisation}}" data-dtype="String"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Niveau 1 requis ?</label>
|
||||||
|
<label class="attribute-value checkbox"><input type="checkbox" name="data.niveauunrequis" {{checked data.niveauunrequis}}/></label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
18
templates/item-don-sheet.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
18
templates/item-effetderune-sheet.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
24
templates/item-effetmagique-sheet.html
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow">
|
||||||
|
<label class="generic-label">Origine</label>
|
||||||
|
<input type="text" name="data.origine" value="{{data.origine}}" data-dtype="String"/>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Effet</label>
|
||||||
|
{{editor content=data.effet target="data.effet" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
25
templates/item-equipement-sheet.html
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Equipée ?</label>
|
||||||
|
<label class="attribute-value checkbox"><input type="checkbox" name="data.equipe" {{checked data.equipe}}/></label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="data.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
18
templates/item-faiblesse-sheet.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
31
templates/item-maladie-sheet.html
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||||
|
{{#select data.categorie}}
|
||||||
|
<option value="mineure">Mineure</option>
|
||||||
|
<option value="moderee">Modérée</option>
|
||||||
|
<option value="majeure">Majeure</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Periode</label><input type="text" name="data.periode" value="{{data.periode}}" data-dtype="String"/>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
22
templates/item-monnaie-sheet.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Quantité</label><input type="text" name="data.quantite" value="{{data.quantite}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
30
templates/item-poison-sheet.html
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||||
|
{{#select data.categorie}}
|
||||||
|
<option value="mineure">Mineure</option>
|
||||||
|
<option value="moderee">Modérée</option>
|
||||||
|
<option value="majeure">Majeure</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Type</label><input type="text" name="data.type" value="{{data.type}}" data-dtype="String"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
40
templates/item-prouesse-sheet.html
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||||
|
{{#select data.categorie}}
|
||||||
|
<option value="attaque">Attaque</option>
|
||||||
|
<option value="defensive">Défensive</option>
|
||||||
|
<option value="utilitaire">Utilitaire</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow">
|
||||||
|
<label class="generic-label">Niveau</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||||
|
{{#select data.niveau}}
|
||||||
|
{{{optionsNiveaux4}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Armes</label><input type="text" name="data.armes" value="{{data.armes}}" data-dtype="String"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Prérequis</label><input type="text" name="data.prerequis" value="{{data.prerequis}}" data-dtype="String"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Modificateur</label><input type="text" name="data.modificateur" value="{{data.modificateur}}" data-dtype="Number"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
31
templates/item-rune-sheet.html
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Cible</label><input type="text" name="data.cible" value="{{data.cible}}" data-dtype="String"/></li>
|
||||||
|
<li class="flexrow">
|
||||||
|
<label class="generic-label">Niveau</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||||
|
{{#select data.niveau}}
|
||||||
|
{{{optionsNiveaux4}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Domaine</label><input type="text" name="data.domaine" value="{{data.domaine}}" data-dtype="String"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Zone/Cible</label><input type="text" name="data.zonecible" value="{{data.zonecible}}" data-dtype="String"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
31
templates/item-sortgaldr-sheet.html
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow">
|
||||||
|
<label class="generic-label">Voie</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.voie" value="{{data.voie}}" data-dtype="String">
|
||||||
|
{{#select data.voie}}
|
||||||
|
<option value="malediction">Malédictions</option>
|
||||||
|
<option value="illusion">Illusions</option>
|
||||||
|
<option value="charme">Charme</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">SD</label><input type="text" name="data.sd" value="{{data.sd}}" data-dtype="Number"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
33
templates/item-sortsejdr-sheet.html
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
<div class="tab" data-group="primary">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow"><label class="generic-label">Domaine</label><input type="text" name="data.forme" value="{{data.forme}}" data-dtype="String"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Préparation</label><input type="text" name="data.preparation" value="{{data.preparation}}" data-dtype="String"/></li>
|
||||||
|
<li class="flexrow">
|
||||||
|
<label class="generic-label">Niveau</label>
|
||||||
|
<select class="competence-base flexrow" type="text" name="data.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||||
|
{{#select data.niveau}}
|
||||||
|
{{{optionsNiveaux4}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Malus</label><input type="text" name="data.malus" value="{{data.malus}}" data-dtype="Number"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Durée</label><input type="text" name="data.duree" value="{{data.duree}}" data-dtype="String"/></li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Zone</label><input type="text" name="data.zone" value="{{data.zone}}" data-dtype="String"/></li>
|
||||||
|
</ul>
|
||||||
|
<label class="generic-label">Description</label>
|
||||||
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
85
templates/roll-dialog-armecc.html
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<form class="skill-roll-dialog">
|
||||||
|
<h2 class="dialog-roll-title">{{title}}</h2>
|
||||||
|
|
||||||
|
<div class="floxrow">
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Type d'attaque : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="typeAttack" name="attackDef.typeAttack" value="" data-dtype="String">
|
||||||
|
{{#select attackDef.typeAttack}}
|
||||||
|
<option value="classique">Attaque classique</option>
|
||||||
|
<option value="force">Attaque en force</option>
|
||||||
|
<option value="devastatrice">Attaque dévastatrice</option>
|
||||||
|
<option value="precise">Attaque Précise</option>
|
||||||
|
<option value="visee">Attaque Visée</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Effet : </span>
|
||||||
|
<span class="competence-base flexrow" id="attackDescr">TEST</span>
|
||||||
|
<span class="competence-base flexrow" id="dummy01"> </span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Caractéristique : </span>
|
||||||
|
<span class="competence-base flexrow" id="caracName">TEST</span>
|
||||||
|
<span class="competence-base flexrow" id="caracValue">TEST</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Compétence : </span>
|
||||||
|
<span class="competence-base flexrow" id="compName">{{competence.name}}</span>
|
||||||
|
<span class="competence-base flexrow" id="compNiveau">{{competence.data.niveau}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Malus d'Attaque : </span>
|
||||||
|
<span class="competence-base flexrow" id="malus">{{attackData.malus}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Bonus/Malus : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="bonusMalus" name="bonusMalus" value="bonusMalus" data-dtype="Number">
|
||||||
|
{{#select bonusMalus}}
|
||||||
|
{{{optionsBonusMalus}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isEpuise" name="isEpuise" {{checked isEpuise}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Blessé (-3) : <input type="checkbox" id="isBlesse" name="isBlesse" {{checked isBlesse}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isMeurtri" name="isMeurtri" {{checked isMeurtri}} disabled/></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Furor à utiliser: </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="furorUsage" name="furorUsage" value="furorUsage" data-dtype="Number">
|
||||||
|
{{#select furorUsage}}
|
||||||
|
{{{optionsFuror}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Seuil de Réussite : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="sr" name="sr" value="sr" data-dtype="Number">
|
||||||
|
{{#select sr}}
|
||||||
|
{{{optionsSR}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Défense Physique du défenseur : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="bonusdefense" name="bonusdefense" value="{{bonusdefense}}" data-dtype="Number">
|
||||||
|
{{#select bonusdefense}}
|
||||||
|
{{{optionsBD}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
87
templates/roll-dialog-armetir.html
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<form class="skill-roll-dialog">
|
||||||
|
<h2 class="dialog-roll-title">{{title}}</h2>
|
||||||
|
|
||||||
|
<div class="floxrow">
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Type d'attaque : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="typeAttack" name="attackDef.typeAttack" value="" data-dtype="String">
|
||||||
|
{{#select attackDef.typeAttack}}
|
||||||
|
<option value="pose">Tir posé</option>
|
||||||
|
<option value="arrettir">Tir d'Arrêt (Tir)</option>
|
||||||
|
<option value="arretjet">Tir d'Arrêt (Jet/Lancer)</option>
|
||||||
|
<option value="impacttir">Tir d'Impact (Tir)</option>
|
||||||
|
<option value="impactjet">Tir d'Impact (Jet/Lancer)</option>
|
||||||
|
<option value="precision">Tir de précision</option>
|
||||||
|
<option value="vise">Tir visé</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Effet : </span>
|
||||||
|
<span class="competence-base flexrow" id="attackDescr">TEST</span>
|
||||||
|
<span class="competence-base flexrow" id="dummy01"> </span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Caractéristique : </span>
|
||||||
|
<span class="competence-base flexrow" id="caracName">TEST</span>
|
||||||
|
<span class="competence-base flexrow" id="caracValue">TEST</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Compétence : </span>
|
||||||
|
<span class="competence-base flexrow" id="compName">{{competence.name}}</span>
|
||||||
|
<span class="competence-base flexrow" id="compNiveau">{{competence.data.niveau}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Malus d'Attaque : </span>
|
||||||
|
<span class="competence-base flexrow" id="malus">{{attackData.malus}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Bonus/Malus : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="bonusMalus" name="bonusMalus" value="bonusMalus" data-dtype="Number">
|
||||||
|
{{#select bonusMalus}}
|
||||||
|
{{{optionsBonusMalus}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isEpuise" name="isEpuise" {{checked isEpuise}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Blessé (-3) : <input type="checkbox" id="isBlesse" name="isBlesse" {{checked isBlesse}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isMeurtri" name="isMeurtri" {{checked isMeurtri}} disabled/></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Furor à utiliser: </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="furorUsage" name="furorUsage" value="furorUsage" data-dtype="Number">
|
||||||
|
{{#select furorUsage}}
|
||||||
|
{{{optionsFuror}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Seuil de Réussite : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="sr" name="sr" value="sr" data-dtype="Number">
|
||||||
|
{{#select sr}}
|
||||||
|
{{{optionsSR}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Défense Physique du défenseur : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="bonusdefense" name="bonusdefense" value="{{bonusdefense}}" data-dtype="Number">
|
||||||
|
{{#select bonusdefense}}
|
||||||
|
{{{optionsBD}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
32
templates/roll-dialog-attribut.html
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<form class="skill-roll-dialog">
|
||||||
|
<h2 class="dialog-roll-title">{{title}}</h2>
|
||||||
|
|
||||||
|
<div class="floxrow">
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Attribut : </span>
|
||||||
|
<span class="competence-base flexrow" >{{attr.label}} {{#if subAttr.label}} - {{subAttr.label}}{{/if}}</span>
|
||||||
|
<span class="competence-base flexrow" > </span>
|
||||||
|
<span class="competence-base flexrow" id="attrValue">TEST</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Bonus/Malus : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="bonusMalus" name="bonusMalus" value="bonusMalus" data-dtype="Number">
|
||||||
|
{{#select bonusMalus}}
|
||||||
|
{{{optionsBonusMalus}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Seuil de Réussite : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="sr" name="sr" value="sr" data-dtype="Number">
|
||||||
|
{{#select sr}}
|
||||||
|
{{{optionsSR}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
47
templates/roll-dialog-carac.html
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<form class="skill-roll-dialog">
|
||||||
|
<h2 class="dialog-roll-title">{{title}}</h2>
|
||||||
|
|
||||||
|
<div class="floxrow">
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Caractéristique : </span>
|
||||||
|
<span class="competence-base flexrow" >{{selectedCarac.label}} </span>
|
||||||
|
<span class="competence-base flexrow" > </span>
|
||||||
|
<span class="competence-base flexrow" id="caracValue">TEST</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Bonus/Malus : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="bonusMalus" name="bonusMalus" value="bonusMalus" data-dtype="Number">
|
||||||
|
{{#select bonusMalus}}
|
||||||
|
{{{optionsBonusMalus}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isEpuise" name="isEpuise" {{checked isEpuise}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Blessé (-3) : <input type="checkbox" id="isBlesse" name="isBlesse" {{checked isBlesse}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isMeurtri" name="isMeurtri" {{checked isMeurtri}} disabled/></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Furor à utiliser: </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="furorUsage" name="furorUsage" value="furorUsage" data-dtype="Number">
|
||||||
|
{{#select furorUsage}}
|
||||||
|
{{{optionsFuror}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Seuil de Réussite : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="sr" name="sr" value="sr" data-dtype="Number">
|
||||||
|
{{#select sr}}
|
||||||
|
{{{optionsSR}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
68
templates/roll-dialog-competence.html
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<form class="skill-roll-dialog">
|
||||||
|
<h2 class="dialog-roll-title">{{title}}</h2>
|
||||||
|
|
||||||
|
<div class="floxrow">
|
||||||
|
{{#if competence.data.data.isspecialisation}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Spécialisation : </span>
|
||||||
|
<span class="competence-base flexrow" >{{competence.data.specialisation}}</span>
|
||||||
|
<span class="competence-base flexrow" > </span>
|
||||||
|
<span class="competence-base flexrow" > </span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Caractéristique : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="caracName" name="caracName" value="" data-dtype="Number">
|
||||||
|
{{#select caracName}}
|
||||||
|
<option value="puissance">Puissance</option>
|
||||||
|
<option value="vigueur">Vigueur</option>
|
||||||
|
<option value="agilite">Agilité</option>
|
||||||
|
<option value="intellect">Intellect</option>
|
||||||
|
<option value="perception">Perception</option>
|
||||||
|
<option value="tenacite">Tenacité</option>
|
||||||
|
<option value="charisme">Charisme</option>
|
||||||
|
<option value="communication">Communication</option>
|
||||||
|
<option value="instinct">Instinct</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
<span class="competence-base flexrow" > </span>
|
||||||
|
<span class="competence-base flexrow" id="caracValue">TEST</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Bonus/Malus : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="bonusMalus" name="bonusMalus" value="bonusMalus" data-dtype="Number">
|
||||||
|
{{#select bonusMalus}}
|
||||||
|
{{{optionsBonusMalus}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isEpuise" name="isEpuise" {{checked isEpuise}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Blessé (-3) : <input type="checkbox" id="isBlesse" name="isBlesse" {{checked isBlesse}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isMeurtri" name="isMeurtri" {{checked isMeurtri}} disabled/></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Furor à utiliser: </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="furorUsage" name="furorUsage" value="furorUsage" data-dtype="Number">
|
||||||
|
{{#select furorUsage}}
|
||||||
|
{{{optionsFuror}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Seuil de Réussite : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="sr" name="sr" value="sr" data-dtype="Number">
|
||||||
|
{{#select sr}}
|
||||||
|
{{{optionsSR}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
88
templates/roll-dialog-galdr.html
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<form class="skill-roll-dialog">
|
||||||
|
<h2 class="dialog-roll-title">{{title}} - SD {{sort.data.sd}}</h2>
|
||||||
|
|
||||||
|
<div class="floxrow">
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Caractéristique : </span>
|
||||||
|
<span class="competence-base flexrow" id="caracName">TEST</span>
|
||||||
|
<span class="competence-base flexrow" id="caracValue">TEST</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Compétence : </span>
|
||||||
|
<span class="competence-base flexrow" id="compName">{{competence.name}}</span>
|
||||||
|
<span class="competence-base flexrow" id="compNiveau">{{competence.data.niveau}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Durée</span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="dureeGaldr" name="dureeGaldr" value="" data-dtype="String">
|
||||||
|
{{#select dureeGaldr}}
|
||||||
|
<option value="1d5a">1d5 Actions</option>
|
||||||
|
<option value="1d10t">1d10 Tours</option>
|
||||||
|
<option value="1d10m">1d10 Minutes</option>
|
||||||
|
<option value="1d10h">1d10 Heures</option>
|
||||||
|
<option value="1d5j">1d5 journées</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
{{#if (eq sort.data.voie "illusion")}}
|
||||||
|
<span class="competence-base flexrow" >Zone</span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="zoneGaldr" name="zoneGaldr" value="zoneGaldr" data-dtype="Number">
|
||||||
|
{{#select zoneGaldr}}
|
||||||
|
<option value="INS10cm3">INS x 10 cm3 (chat, balle, épée, ...)</option>
|
||||||
|
<option value="INS50cm3">INS x 50 cm3 (tabouret, enfant, ...)</option>
|
||||||
|
<option value="INS1m3">INS x 1 m3 (homme, 2 enfants, ...)</option>
|
||||||
|
<option value="INS5m3">INS x 5 m3 (charrette, 2 cavaliers, ...)</option>
|
||||||
|
<option value="INS10m3">INS x 10 m3 (maison, kraken, bateau, ...)</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
{{else}}
|
||||||
|
<span class="competence-base flexrow" >Nombre de cibles </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="nbCibles" name="nbCibles" value="nbCibles" data-dtype="Number">
|
||||||
|
{{#select nbCibles}}
|
||||||
|
<option value="1">1</option>
|
||||||
|
<option value="2_4">2 à 4</option>
|
||||||
|
<option value="5_9">5 à 9</option>
|
||||||
|
<option value="10_49">10 à 49</option>
|
||||||
|
<option value="50plus">50 et +</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Bonus/Malus : </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="bonusMalus" name="bonusMalus" value="bonusMalus" data-dtype="Number">
|
||||||
|
{{#select bonusMalus}}
|
||||||
|
{{{optionsBonusMalus}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isEpuise" name="isEpuise" {{checked isEpuise}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Blessé (-3) : <input type="checkbox" id="isBlesse" name="isBlesse" {{checked isBlesse}} disabled/></span>
|
||||||
|
<span class="competence-base flexrow">Epuisé (1d) : <input type="checkbox" id="isMeurtri" name="isMeurtri" {{checked isMeurtri}} disabled/></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Furor à utiliser: </span>
|
||||||
|
<select class="competence-base flexrow" type="text" id="furorUsage" name="furorUsage" value="furorUsage" data-dtype="Number">
|
||||||
|
{{#select furorUsage}}
|
||||||
|
{{{optionsFuror}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="competence-base flexrow" >Seuil de Réussite Total : </span>
|
||||||
|
<span class="competence-base flexrow" id="srTotal">14</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|