Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b407f6e8c0 | |||
| aecc15d8b9 | |||
| a2b712b78d |
@@ -1,6 +1,6 @@
|
||||
name: Release Creation
|
||||
|
||||
on:
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
@@ -8,45 +8,56 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: echo "💡 The ${{ gitea.repository }} repository will cloned to the runner."
|
||||
|
||||
#- uses: actions/checkout@v3
|
||||
- uses: RouxAntoine/checkout@v3.5.4
|
||||
- run: echo "💡 The ${{ gitea.repository }} repository will cloned to the runner."
|
||||
|
||||
# get part of the tag after the `v`
|
||||
- name: Extract tag version number
|
||||
id: get_version
|
||||
uses: battila7/get-version-action@v2
|
||||
#- uses: actions/checkout@v3
|
||||
- uses: https://github.com/RouxAntoine/checkout@v3.5.4
|
||||
|
||||
# Substitute the Manifest and Download URLs in the module.json
|
||||
- name: Substitute Manifest and Download Links For Versioned Ones
|
||||
id: sub_manifest_link_version
|
||||
uses: microsoft/variable-substitution@v1
|
||||
with:
|
||||
files: 'system.json'
|
||||
env:
|
||||
version: ${{steps.get_version.outputs.version-without-v}}
|
||||
url: https://www.uberwald.me/gitea/${{gitea.repository}}
|
||||
manifest: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/latest/system.json
|
||||
download: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-te-deum-${{github.event.release.tag_name}}.zip
|
||||
|
||||
# Create a zip file with all files required by the module to add to the release
|
||||
- run: |
|
||||
apt update -y
|
||||
apt install -y zip
|
||||
# get part of the tag after the `v`
|
||||
- name: Extract tag version number
|
||||
id: get_version
|
||||
uses: https://github.com/battila7/get-version-action@v2
|
||||
|
||||
- run: zip -r ./fvtt-te-deum-${{github.event.release.tag_name}}.zip system.json template.json README.md LICENSE.txt assets/ fonts/ images/ lang/ modules/ styles/ packs/ templates/ te-deum.mjs
|
||||
|
||||
- name: setup go
|
||||
uses: https://github.com/actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20.1'
|
||||
|
||||
- name: Use Go Action
|
||||
id: use-go-action
|
||||
uses: https://gitea.com/actions/release-action@main
|
||||
with:
|
||||
files: |-
|
||||
./fvtt-te-deum-${{github.event.release.tag_name}}.zip
|
||||
system.json
|
||||
api_key: '${{secrets.ALLOW_PUSH_RELEASE}}'
|
||||
# Substitute the Manifest and Download URLs in the module.json
|
||||
- name: Substitute Manifest and Download Links For Versioned Ones
|
||||
id: sub_manifest_link_version
|
||||
uses: https://github.com/microsoft/variable-substitution@v1
|
||||
with:
|
||||
files: "system.json"
|
||||
env:
|
||||
version: ${{steps.get_version.outputs.version-without-v}}
|
||||
url: https://www.uberwald.me/gitea/${{gitea.repository}}
|
||||
manifest: https://www.uberwald.me/gitea/public/fvtt-te-deum/releases/download/latest/system.json
|
||||
download: https://www.uberwald.me/gitea/public/fvtt-te-deum/releases/download/${{github.event.release.tag_name}}/fvtt-te-deum.zip
|
||||
|
||||
# Create a zip file with all files required by the module to add to the release
|
||||
- run: |
|
||||
apt update -y
|
||||
apt install -y zip
|
||||
|
||||
- run: zip -r ./fvtt-te-deum.zip system.json README.md LICENSE.txt assets/ fonts/ images/ lang/ modules/ styles/ packs/ templates/
|
||||
|
||||
- name: setup go
|
||||
uses: https://github.com/actions/setup-go@v4
|
||||
with:
|
||||
go-version: ">=1.20.1"
|
||||
|
||||
- name: Use Go Action
|
||||
id: use-go-action
|
||||
uses: https://gitea.com/actions/release-action@main
|
||||
with:
|
||||
files: |-
|
||||
./fvtt-te-deum.zip
|
||||
system.json
|
||||
api_key: "${{secrets.ALLOW_PUSH_RELEASE}}"
|
||||
|
||||
- name: Publish to Foundry server
|
||||
uses: https://github.com/djlechuck/foundryvtt-publish-package-action@v1
|
||||
with:
|
||||
token: ${{ secrets.FOUNDRYVTT_RELEASE_TOKEN }}
|
||||
id: 'fvtt-te-deum'
|
||||
version: ${{github.event.release.tag_name}}
|
||||
manifest: 'https://www.uberwald.me/gitea/public/fvtt-te-deum/releases/download/latest/system.json'
|
||||
notes: 'https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-te-deum.zip'
|
||||
compatibility-minimum: '13'
|
||||
compatibility-verified: '13'
|
||||
|
||||
469
less/actor-sheet.less
Normal file
469
less/actor-sheet.less
Normal file
@@ -0,0 +1,469 @@
|
||||
.editor {
|
||||
border: 2;
|
||||
height: 100%;
|
||||
padding: 0 3px;
|
||||
}
|
||||
|
||||
.medium-editor {
|
||||
border: 2;
|
||||
height: 240px;
|
||||
max-height: 240px;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
padding: 0 3px;
|
||||
|
||||
prose-mirror, .editor, .editor-content, .ProseMirror {
|
||||
overflow: hidden;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.small-editor {
|
||||
border: 2;
|
||||
height: 120px;
|
||||
max-height: 120px;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
padding: 0 3px;
|
||||
|
||||
prose-mirror, .editor, .editor-content, .ProseMirror {
|
||||
overflow: hidden;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.questionnaire-reponse {
|
||||
max-width: 42rem;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
.questionnaire-element {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
// Style unifié pour tous les inputs et selects (fiches acteur, item, roll dialogs)
|
||||
.fvtt-te-deum {
|
||||
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="image"]):not([type="file"]),
|
||||
select {
|
||||
background: rgba(248, 245, 238, 0.95);
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
border: 1px solid rgba(139, 115, 85, 0.35);
|
||||
border-radius: 3px;
|
||||
padding: 0.15rem 0.3rem;
|
||||
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
border-color: rgba(139, 115, 85, 0.65);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
|
||||
}
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
border-color: rgba(139, 115, 85, 0.85);
|
||||
box-shadow: 0 0 0 2px rgba(139, 115, 85, 0.2);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
color: rgba(19, 18, 18, 0.4);
|
||||
background: rgba(220, 216, 205, 0.6);
|
||||
border-color: rgba(139, 115, 85, 0.15);
|
||||
}
|
||||
}
|
||||
|
||||
textarea {
|
||||
background: rgba(248, 245, 238, 0.95);
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
border: 1px solid rgba(139, 115, 85, 0.35);
|
||||
border-radius: 3px;
|
||||
padding: 0.2rem 0.4rem;
|
||||
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
border-color: rgba(139, 115, 85, 0.65);
|
||||
}
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
border-color: rgba(139, 115, 85, 0.85);
|
||||
box-shadow: 0 0 0 2px rgba(139, 115, 85, 0.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fvtt-te-deum.window-app .window-content,
|
||||
.fvtt-te-deum.application .window-content,
|
||||
.fvtt-te-deum.window-app.sheet .window-content .sheet-body,
|
||||
.fvtt-te-deum.application.sheet .window-content .sheet-body {
|
||||
font-size: 0.8rem;
|
||||
background: rgba(226, 226, 222, 0.95);
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
}
|
||||
|
||||
// Améliorations pour les fiches d'items
|
||||
.item-form {
|
||||
.sheet-header {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(226, 226, 222, 0.95) 0%,
|
||||
rgba(240, 235, 225, 0.9) 100%
|
||||
);
|
||||
padding: 0.8rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
margin-bottom: 0.5rem;
|
||||
|
||||
h1.charname input {
|
||||
// Voir règles haute-spécificité charname ci-dessous
|
||||
}
|
||||
}
|
||||
|
||||
.sheet-body {
|
||||
ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
li.flexrow {
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
padding: 0.4rem 0.6rem;
|
||||
margin: 0.3rem 0;
|
||||
border-radius: 4px;
|
||||
border-left: 3px solid rgba(139, 115, 85, 0.3);
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
border-left-color: rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(196, 186, 166, 0.6) 0%,
|
||||
rgba(226, 226, 222, 0.5) 100%
|
||||
);
|
||||
padding: 0.4rem 0.6rem;
|
||||
margin: 0.8rem 0 0.4rem 0;
|
||||
border-radius: 4px;
|
||||
border-left: 4px solid rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
font-family: MailartRubberstamp;
|
||||
font-size: 1.1rem;
|
||||
color: #3d3a2e;
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Champ "name" — règles haute-spécificité (spec 0,6,2 / 0,7,2) pour surcharger les règles génériques d'input
|
||||
// Fiche acteur : font-size 3rem
|
||||
.fvtt-te-deum.application .window-content .sheet-header h1.charname input[name="name"],
|
||||
.fvtt-te-deum.window-app .window-content .sheet-header h1.charname input[name="name"] {
|
||||
font-family: "GreatPrimer";
|
||||
font-size: 3rem;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-bottom: 2px solid rgba(139, 115, 85, 0.4);
|
||||
color: rgba(50, 35, 15, 0.95);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
letter-spacing: 0.05em;
|
||||
transition: border-color 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
border-width: 2px;
|
||||
border-color: rgba(139, 115, 85, 0.7);
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border-bottom-color: rgba(139, 115, 85, 0.9);
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Fiche item : même style mais font-size plus petit
|
||||
.fvtt-te-deum.application .window-content .item-form .sheet-header h1.charname input[name="name"],
|
||||
.fvtt-te-deum.window-app .window-content .item-form .sheet-header h1.charname input[name="name"] {
|
||||
font-size: 1.6rem;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.fvtt-te-deum .sheet-body {
|
||||
padding: 0.25rem 0.5rem;
|
||||
|
||||
&:after {
|
||||
content: "";
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
.fvtt-te-deum nav {
|
||||
&.tabs {
|
||||
.item {
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
opacity: 1;
|
||||
color: rgba(29, 28, 31);
|
||||
padding: 0 0.25rem;
|
||||
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 2rem;
|
||||
width: 1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.select-diff {
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
.fvtt-te-deum.window-app.sheet .window-content .carac-value,
|
||||
.fvtt-te-deum.application.sheet .window-content .carac-value,
|
||||
.fvtt-te-deum.window-app.sheet .window-content .competence-xp,
|
||||
.fvtt-te-deum.application.sheet .window-content .competence-xp {
|
||||
margin: 0.05rem;
|
||||
flex-basis: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fvtt-te-deum h1,
|
||||
.fvtt-te-deum h2,
|
||||
.fvtt-te-deum h3,
|
||||
.fvtt-te-deum h4 {
|
||||
font-weight: bold;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
}
|
||||
|
||||
.fvtt-te-deum .malus-sante {
|
||||
font-size: 0.88rem;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.fvtt-te-deum .malus-sante-active {
|
||||
color: rgba(200, 80, 10, 0.95);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fvtt-te-deum ul,
|
||||
.fvtt-te-deum ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.fvtt-te-deum ul,
|
||||
.fvtt-te-deum li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.header-fields {
|
||||
li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.alterne-list {
|
||||
& > .list-item {
|
||||
&:hover {
|
||||
background: rgba(226, 226, 222, 0.4);
|
||||
transform: translateX(2px);
|
||||
}
|
||||
|
||||
&:nth-child(even) {
|
||||
background: rgba(240, 235, 225, 0.3);
|
||||
}
|
||||
|
||||
&:nth-child(odd) {
|
||||
background: rgba(250, 245, 235, 0.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.specialisation-label {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.carac-label,
|
||||
.attr-label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.list-item {
|
||||
margin: 0.125rem;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 0.3rem;
|
||||
padding: 0.3rem 0.4rem;
|
||||
flex: 1 1 5rem;
|
||||
border: 1px solid rgba(139, 115, 85, 0.15);
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
border-color: rgba(139, 115, 85, 0.3);
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
.list-item-shadow {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(170, 168, 167, 0.25) 0%,
|
||||
rgba(200, 195, 185, 0.2) 100%
|
||||
);
|
||||
flex-grow: 0;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
border-left: 3px solid rgba(139, 115, 85, 0.3);
|
||||
}
|
||||
|
||||
.list-item-shadow2 {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(87, 60, 32, 0.2) 0%,
|
||||
rgba(120, 90, 60, 0.15) 100%
|
||||
);
|
||||
flex-grow: 0;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
border-left: 3px solid rgba(87, 60, 32, 0.4);
|
||||
}
|
||||
|
||||
.item-display-show {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.item-display-hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.item-quantite {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
.list-item-margin1 {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
.list-item-margin2 {
|
||||
margin-left: 2rem;
|
||||
}
|
||||
|
||||
.list-item-margin3 {
|
||||
margin-left: 3rem;
|
||||
}
|
||||
|
||||
.list-item-margin4 {
|
||||
margin-left: 4rem;
|
||||
}
|
||||
|
||||
.sheet-competence-img {
|
||||
width: 24px;
|
||||
max-width: 24px;
|
||||
height: 24px;
|
||||
max-height: 24px;
|
||||
flex-grow: 0;
|
||||
margin-right: 0.25rem;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
}
|
||||
|
||||
.competence-column {
|
||||
flex-direction: column;
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
flex-grow: 0;
|
||||
flex-basis: 1;
|
||||
}
|
||||
|
||||
.competence-header {
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
font-weight: bold;
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.comp-li {
|
||||
max-width: 8rem;
|
||||
width: 8rem;
|
||||
}
|
||||
|
||||
.description-label {
|
||||
flex-grow: 2;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.status-header-label {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.roll-dialog-label {
|
||||
margin: 4px 0;
|
||||
min-width: 96px;
|
||||
}
|
||||
|
||||
.short-label {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.keyword-label {
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
|
||||
.item-sheet-label {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.item-text-long-line {
|
||||
flex-grow: 3;
|
||||
}
|
||||
|
||||
.score-label {
|
||||
flex-grow: 2;
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
.attribut-value,
|
||||
.carac-value {
|
||||
flex-grow: 0;
|
||||
flex-basis: 64px;
|
||||
margin-right: 4px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.sante-value,
|
||||
.competence-value {
|
||||
flex-grow: 0;
|
||||
flex-basis: 2rem;
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
||||
.description-value {
|
||||
flex-grow: 0;
|
||||
flex-basis: 4rem;
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
||||
.small-label {
|
||||
margin-top: 5px;
|
||||
}
|
||||
235
less/base.less
Normal file
235
less/base.less
Normal file
@@ -0,0 +1,235 @@
|
||||
.fvtt-te-deum.window-app,
|
||||
.fvtt-te-deum.application {
|
||||
text-align: justify;
|
||||
font-size: 16px;
|
||||
letter-spacing: 1px;
|
||||
|
||||
&.sheet {
|
||||
.window-content {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "GreatPrimer";
|
||||
|
||||
.sheet-header {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: rgba(226, 226, 222, 0.95);
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
&:hover {
|
||||
.tooltiptext {
|
||||
top: 2rem;
|
||||
left: 2rem;
|
||||
margin: 0;
|
||||
padding: 0.25rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fvtt-te-deum.sheet header.sheet-header h1 input,
|
||||
.window-app .window-header,
|
||||
.application .window-header,
|
||||
#actors .directory-list,
|
||||
#navigation #scene-list .scene.nav-item {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.fvtt-te-deum.sheet {
|
||||
nav {
|
||||
&.sheet-tabs,
|
||||
&.tabs {
|
||||
font-size: 0.8rem;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
height: 3rem;
|
||||
flex: 0 0 3rem;
|
||||
margin: 0;
|
||||
padding: 0 0 0 0.25rem;
|
||||
text-align: center;
|
||||
line-height: 1.5rem;
|
||||
border-top: 0 none;
|
||||
border-bottom: 0 none;
|
||||
background:
|
||||
linear-gradient(rgba(226, 226, 222, 0.5), rgba(226, 226, 222, 0.5)),
|
||||
url("../images/ui/frise_bottom_01.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
header {
|
||||
&.sheet-header {
|
||||
.profile-img {
|
||||
-o-object-fit: cover;
|
||||
object-fit: cover;
|
||||
-o-object-position: 50% 0;
|
||||
object-position: 50% 0;
|
||||
margin: 0.5rem 0 0.5rem 0.5rem;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.flex-compteurs {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.resource-content {
|
||||
width: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tab[data-tab] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
margin: 0.2rem;
|
||||
padding: 0.15rem;
|
||||
}
|
||||
}
|
||||
|
||||
.fvtt-te-deum.window-app input,
|
||||
.fvtt-te-deum.application input,
|
||||
.fvtt-te-deum .item-form,
|
||||
.fvtt-te-deum.sheet header.sheet-header .flex-group-center.flex-compteurs,
|
||||
.fvtt-te-deum.sheet header.sheet-header .flex-group-center.flex-fatigue,
|
||||
.fvtt-te-deum select,
|
||||
.fvtt-te-deum button,
|
||||
.item-checkbox,
|
||||
#sidebar,
|
||||
#players,
|
||||
#navigation #nav-toggle {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.window-header {
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
.strong-text {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fvtt-te-deum .tabs .item.active,
|
||||
.fvtt-te-deum .blessures-list li ul li:first-child:hover,
|
||||
.fvtt-te-deum a:hover {
|
||||
text-shadow: 1px 0px 0px #ff6600;
|
||||
}
|
||||
|
||||
.rollable:hover,
|
||||
.rollable:focus {
|
||||
color: #000;
|
||||
text-shadow: 0 0 10px red;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
li.folder > .folder-header h3 {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.fvtt-te-deum table {
|
||||
border: 1px solid #7a7971;
|
||||
}
|
||||
|
||||
.grid,
|
||||
.grid-2col {
|
||||
display: grid;
|
||||
grid-column: span 2 / span 2;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
grid-gap: 10px;
|
||||
grid-gap: 10px;
|
||||
gap: 10px;
|
||||
margin: 10px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.grid-3col {
|
||||
grid-column: span 3 / span 3;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-4col {
|
||||
grid-column: span 4 / span 4;
|
||||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-5col {
|
||||
grid-column: span 5 / span 5;
|
||||
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-6col {
|
||||
grid-column: span 5 / span 5;
|
||||
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-7col {
|
||||
grid-column: span 7 / span 7;
|
||||
grid-template-columns: repeat(7, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-8col {
|
||||
grid-column: span 8 / span 8;
|
||||
grid-template-columns: repeat(8, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-9col {
|
||||
grid-column: span 9 / span 9;
|
||||
grid-template-columns: repeat(9, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-10col {
|
||||
grid-column: span 10 / span 10;
|
||||
grid-template-columns: repeat(10, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-11col {
|
||||
grid-column: span 11 / span 11;
|
||||
grid-template-columns: repeat(11, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-12col {
|
||||
grid-column: span 12 / span 12;
|
||||
grid-template-columns: repeat(12, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.flex-group-center,
|
||||
.flex-group-left,
|
||||
.flex-group-right {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.flex-group-left {
|
||||
justify-content: flex-start;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.flex-group-right {
|
||||
justify-content: flex-end;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.table-create-actor {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.flex-between {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.flex-shrink {
|
||||
flex: "flex-shrink";
|
||||
}
|
||||
581
less/chat.less
Normal file
581
less/chat.less
Normal file
@@ -0,0 +1,581 @@
|
||||
.chat-message-header {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(226, 226, 222, 0.95) 0%,
|
||||
rgba(196, 186, 166, 0.9) 100%
|
||||
);
|
||||
font-size: 0.9rem;
|
||||
min-height: 26px;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-bottom: 2px solid rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
padding: 0.1rem 0.3rem;
|
||||
border-radius: 6px 6px 0 0;
|
||||
}
|
||||
|
||||
.chat-message .message-header .flavor-text,
|
||||
.chat-message .message-header .whisper-to {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.chat-result-text {
|
||||
font-weight: bold;
|
||||
font-family: GreatPrimer;
|
||||
font-size: 1.1rem;
|
||||
color: rgba(80, 50, 15, 0.95);
|
||||
padding: 0 0 0.1rem 0;
|
||||
line-height: 1.3;
|
||||
border-bottom: 1px solid rgba(139, 115, 85, 0.4);
|
||||
display: block;
|
||||
margin-bottom: 0.2rem;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
|
||||
.chat-actor-name {
|
||||
font-weight: bold;
|
||||
font-family: GreatPrimer;
|
||||
font-size: 1.1rem;
|
||||
color: rgba(80, 50, 15, 0.95);
|
||||
line-height: 1;
|
||||
letter-spacing: 0.03em;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.chat-actor-name-opposition {
|
||||
font-weight: bold;
|
||||
font-family: GreatPrimer;
|
||||
font-size: 1.1rem;
|
||||
color: rgba(80, 50, 15, 0.95);
|
||||
padding: 0.1rem 0.3rem;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
|
||||
.chat-result-success {
|
||||
color: #2d5016;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(144, 238, 144, 0.3),
|
||||
rgba(107, 186, 107, 0.25)
|
||||
);
|
||||
padding: 0.25rem 0.6rem;
|
||||
border-radius: 4px;
|
||||
border-left: 3px solid #4a7c2c;
|
||||
display: inline-block;
|
||||
margin: 0.15rem 0;
|
||||
box-shadow: 0 1px 3px rgba(45, 80, 22, 0.2);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.chat-result-failure {
|
||||
color: #7a1a1a;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(255, 160, 160, 0.3),
|
||||
rgba(205, 120, 120, 0.25)
|
||||
);
|
||||
padding: 0.25rem 0.6rem;
|
||||
border-radius: 4px;
|
||||
border-left: 3px solid #a82020;
|
||||
display: inline-block;
|
||||
margin: 0.15rem 0;
|
||||
box-shadow: 0 1px 3px rgba(122, 26, 26, 0.2);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.chat-img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.chat-command-img {
|
||||
border: 0px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
transition:
|
||||
transform 0.2s ease,
|
||||
box-shadow 0.2s ease;
|
||||
border-radius: 4px;
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.1);
|
||||
box-shadow: 0 3px 8px rgba(255, 102, 0, 0.4);
|
||||
}
|
||||
}
|
||||
|
||||
.chat-result-column {
|
||||
min-width: 70%;
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
.roll-dialog-header {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(226, 226, 222, 0.95) 0%,
|
||||
rgba(196, 186, 166, 0.9) 100%
|
||||
);
|
||||
min-height: 48px;
|
||||
padding: 0.4rem 0.6rem;
|
||||
border-radius: 6px 6px 0 0;
|
||||
border-bottom: 2px solid rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.5rem;
|
||||
|
||||
.actor-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid rgba(139, 115, 85, 0.5);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.dialog-roll-title {
|
||||
font-family: GreatPrimer;
|
||||
font-size: 1.1rem;
|
||||
margin: 0;
|
||||
color: #3d3a2e;
|
||||
text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
.actor-icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
padding: 1px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid rgba(139, 115, 85, 0.5);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
|
||||
flex-shrink: 0;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
|
||||
.padding-dice {
|
||||
padding-top: 0.2rem;
|
||||
padding-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
.dice-image {
|
||||
box-sizing: border-box;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.dice-image-reroll {
|
||||
background-color: rgba(115, 224, 115, 0.25);
|
||||
border-color: #011d33;
|
||||
box-sizing: border-box;
|
||||
border: 1px;
|
||||
border-radius: 0%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.chat-dice {
|
||||
width: 15%;
|
||||
height: 15%;
|
||||
font-size: 15px;
|
||||
padding: 10px;
|
||||
padding-bottom: 20px;
|
||||
padding-top: 0.2rem;
|
||||
padding-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
.div-center {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.chat-message {
|
||||
background: rgba(240, 235, 225, 0.95);
|
||||
font-size: 0.9rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
|
||||
&.whisper {
|
||||
background: rgba(220, 220, 210, 0.85);
|
||||
border: 2px solid #545469;
|
||||
box-shadow: 0 3px 10px rgba(84, 84, 105, 0.3);
|
||||
}
|
||||
|
||||
.chat-icon {
|
||||
border: 0;
|
||||
padding: 2px 6px 2px 2px;
|
||||
float: left;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
}
|
||||
|
||||
.ability-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
max-width: 32px;
|
||||
max-height: 32px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.small-ability-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
max-width: 16px;
|
||||
max-height: 16px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.combat-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
max-width: 24px;
|
||||
max-height: 24px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#sidebar-tabs {
|
||||
flex: 0 0 32px;
|
||||
box-sizing: border-box;
|
||||
margin: 0 0 5px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0);
|
||||
box-shadow: inset 0 0 2rem rgba(0, 0, 0, 0.5);
|
||||
|
||||
& > .item {
|
||||
&.active {
|
||||
border: 1px solid rgba(114, 98, 72, 1);
|
||||
background: rgba(30, 25, 20, 0.75);
|
||||
box-shadow: 0 0 6px inset rgba(114, 98, 72, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#controls .scene-control,
|
||||
#controls .control-tool {
|
||||
box-shadow: 0 0 3px #000;
|
||||
margin: 0 0 8px;
|
||||
border-radius: 0;
|
||||
background: rgba(30, 25, 20, 1);
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
}
|
||||
|
||||
#controls .scene-control.active,
|
||||
#controls .control-tool.active,
|
||||
#controls .scene-control:hover,
|
||||
#controls .control-tool:hover {
|
||||
background: rgba(72, 46, 28, 1);
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
box-shadow: 0 0 3px #ff6400;
|
||||
}
|
||||
|
||||
#hotbar {
|
||||
#action-bar {
|
||||
#macro-list {
|
||||
border: 1px solid rgba(72, 46, 28, 1);
|
||||
box-shadow: 2px 2px 5px #000000;
|
||||
}
|
||||
|
||||
.macro {
|
||||
border-image: url(img/ui/bg_control.jpg) 21 repeat;
|
||||
border-image-slice: 6 6 6 6 fill;
|
||||
border-image-width: 6px 6px 6px 6px;
|
||||
border-image-outset: 0px 0px 0px 0px;
|
||||
border-radius: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.bar-controls {
|
||||
background: rgba(30, 25, 20, 1);
|
||||
border: 1px solid rgba(72, 46, 28, 1);
|
||||
}
|
||||
}
|
||||
|
||||
#players {
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
background: rgba(30, 25, 20, 1);
|
||||
}
|
||||
|
||||
#navigation {
|
||||
#scene-list {
|
||||
.scene {
|
||||
&.nav-item {
|
||||
background: rgba(30, 25, 20, 1);
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
|
||||
&.active {
|
||||
background: rgba(72, 46, 28, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#nav-toggle {
|
||||
background: rgba(30, 25, 20, 1);
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
#navigation #scene-list .scene.view,
|
||||
#navigation #scene-list .scene.context {
|
||||
background: rgba(72, 46, 28, 1);
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
box-shadow: 0 0 3px #ff6400;
|
||||
}
|
||||
|
||||
.chat-card-button {
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(
|
||||
to bottom,
|
||||
rgba(33, 55, 74, 0.98824) 5%,
|
||||
rgba(21, 40, 51, 0.67059) 100%
|
||||
);
|
||||
background-color: rgba(125, 93, 59, 0);
|
||||
border-radius: 3px;
|
||||
border: 2px ridge #846109;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
color: #ffffff;
|
||||
font-size: 0.8rem;
|
||||
padding: 4px 12px 0px 12px;
|
||||
text-decoration: none;
|
||||
text-shadow: 0px 1px 0px #4d3534;
|
||||
position: relative;
|
||||
margin: 2px;
|
||||
|
||||
&:hover {
|
||||
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
&:active {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
.plus-minus-button {
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(
|
||||
to bottom,
|
||||
rgba(33, 55, 74, 0.98824) 5%,
|
||||
rgba(21, 40, 51, 0.67059) 100%
|
||||
);
|
||||
background-color: rgba(125, 93, 59, 0);
|
||||
border-radius: 2px;
|
||||
border: 1px ridge #846109;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
color: #ffffff;
|
||||
margin: 2px 2px 2px 2px;
|
||||
padding: 2px 2px 2px 2px;
|
||||
text-decoration: none;
|
||||
text-shadow: 0px 1px 0px #4d3534;
|
||||
position: relative;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.plus-minus-button:hover,
|
||||
.chat-card-button:hover {
|
||||
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
.plus-minus-button:active,
|
||||
.chat-card-button:active {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.plus-minus {
|
||||
font-size: 0.9rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ul-level1 {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
#pause {
|
||||
font-size: 2rem;
|
||||
|
||||
& > h3 {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
& > img {
|
||||
content: url(../images/ui/logo_tedeum_pause.webp);
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
top: -200px;
|
||||
left: calc(50% - 132px);
|
||||
}
|
||||
}
|
||||
|
||||
#logo {
|
||||
content: url(../images/ui/logo_tedeum_pause.webp);
|
||||
width: 100px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.dice-cell {
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.dice-formula,
|
||||
.dice-total {
|
||||
height: 54px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
// Améliorations esthétiques pour les messages de chat
|
||||
.chat-roll-details {
|
||||
background: rgba(255, 255, 255, 0.4);
|
||||
border-radius: 4px;
|
||||
padding: 0.4rem 0.5rem;
|
||||
margin: 0.25rem 0;
|
||||
border: 1px solid rgba(139, 115, 85, 0.25);
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding-left: 0.8rem;
|
||||
|
||||
li {
|
||||
padding: 0.05rem 0;
|
||||
line-height: 1.25;
|
||||
|
||||
strong {
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.chat-roll-result-section {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(255, 250, 240, 0.6),
|
||||
rgba(245, 240, 230, 0.5)
|
||||
);
|
||||
border-radius: 4px;
|
||||
padding: 0.35rem;
|
||||
margin: 0.2rem 0;
|
||||
border: 2px solid rgba(139, 115, 85, 0.3);
|
||||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
|
||||
.chat-total-result {
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
color: #3d3a2e;
|
||||
text-align: center;
|
||||
padding: 0.25rem;
|
||||
background: rgba(226, 226, 222, 0.5);
|
||||
border-radius: 4px;
|
||||
margin-bottom: 0.25rem;
|
||||
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
.chat-dice-formula {
|
||||
display: inline-block;
|
||||
background: rgba(139, 115, 85, 0.15);
|
||||
padding: 0.15rem 0.4rem;
|
||||
border-radius: 3px;
|
||||
font-family: monospace;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
color: #5a4a3a;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.chat-difficulty-badge {
|
||||
display: inline-block;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(180, 160, 130, 0.4),
|
||||
rgba(160, 140, 110, 0.35)
|
||||
);
|
||||
padding: 0.15rem 0.5rem;
|
||||
border-radius: 10px;
|
||||
font-weight: bold;
|
||||
border: 1px solid rgba(139, 115, 85, 0.4);
|
||||
color: #4a3a2a;
|
||||
font-size: 0.85em;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.chat-info-badge {
|
||||
display: inline-block;
|
||||
background: rgba(100, 149, 237, 0.15);
|
||||
padding: 0.15rem 0.4rem;
|
||||
border-radius: 3px;
|
||||
border-left: 2px solid rgba(70, 130, 180, 0.6);
|
||||
margin: 0.08rem 0;
|
||||
font-size: 0.8em;
|
||||
color: #2c4a6a;
|
||||
}
|
||||
|
||||
.chat-warning-badge {
|
||||
display: inline-block;
|
||||
background: rgba(255, 200, 100, 0.2);
|
||||
padding: 0.15rem 0.4rem;
|
||||
border-radius: 3px;
|
||||
border-left: 2px solid rgba(218, 165, 32, 0.7);
|
||||
margin: 0.08rem 0;
|
||||
font-size: 0.8em;
|
||||
color: #7a5a1a;
|
||||
}
|
||||
|
||||
.chat-actions-bar {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 0.3rem;
|
||||
padding: 0.4rem;
|
||||
background: rgba(226, 226, 222, 0.4);
|
||||
border-top: 1px solid rgba(139, 115, 85, 0.25);
|
||||
border-radius: 0 0 6px 6px;
|
||||
margin-top: 0.25rem;
|
||||
|
||||
a {
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.chat-negative-dice {
|
||||
display: inline-block;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(255, 100, 100, 0.2),
|
||||
rgba(220, 80, 80, 0.15)
|
||||
);
|
||||
padding: 0.2rem 0.5rem;
|
||||
border-radius: 4px;
|
||||
border: 2px solid rgba(178, 34, 34, 0.4);
|
||||
font-weight: bold;
|
||||
color: #8b0000;
|
||||
margin: 0.15rem 0;
|
||||
box-shadow: 0 1px 3px rgba(178, 34, 34, 0.2);
|
||||
}
|
||||
235
less/dialogs.less
Normal file
235
less/dialogs.less
Normal file
@@ -0,0 +1,235 @@
|
||||
.te-deum-roll-dialog {
|
||||
.window-header {
|
||||
border-radius: 10px 10px 0% 0%;
|
||||
}
|
||||
|
||||
.window-content {
|
||||
border-radius: 0% 0% 10px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.skill-roll-dialog {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(240, 235, 225, 0.98) 0%,
|
||||
rgba(250, 245, 235, 0.95) 100%
|
||||
);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
overflow: hidden;
|
||||
|
||||
.flexcol {
|
||||
padding: 0.6rem 0.8rem;
|
||||
gap: 0.4rem;
|
||||
}
|
||||
|
||||
.flexrow {
|
||||
margin: 0.3rem 0;
|
||||
padding: 0.4rem 0.5rem;
|
||||
background: rgba(255, 255, 255, 0.4);
|
||||
border-radius: 4px;
|
||||
border-left: 3px solid rgba(139, 115, 85, 0.3);
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
background: rgba(255, 255, 255, 0.6);
|
||||
border-left-color: rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
.roll-dialog-label {
|
||||
font-family: GreatPrimer;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
color: #3d3a2e;
|
||||
min-width: 140px;
|
||||
|
||||
&:first-child {
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div {
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.sheet-footer {
|
||||
padding: 0.5rem 0.8rem;
|
||||
gap: 0.5rem;
|
||||
border-top: 1px solid rgba(139, 115, 85, 0.3);
|
||||
margin-top: 0.5rem;
|
||||
|
||||
button {
|
||||
flex: 1;
|
||||
padding: 0.4rem 0.8rem;
|
||||
border-radius: 4px;
|
||||
font-family: "GreatPrimer";
|
||||
font-size: 0.9rem;
|
||||
cursor: pointer;
|
||||
border: 1px solid rgba(139, 115, 85, 0.5);
|
||||
background: linear-gradient(135deg, rgba(196, 186, 166, 0.8) 0%, rgba(226, 226, 222, 0.9) 100%);
|
||||
color: rgba(50, 35, 15, 0.95);
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
background: linear-gradient(135deg, rgba(196, 186, 166, 1) 0%, rgba(210, 205, 195, 1) 100%);
|
||||
border-color: rgba(139, 115, 85, 0.8);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.confront-dice {
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
.bonus-spec {
|
||||
max-width: 48px;
|
||||
}
|
||||
|
||||
.confront-bonus-container {
|
||||
position: relative;
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.pool-list {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.corps-combat-block {
|
||||
position: relative;
|
||||
width: 600px;
|
||||
height: 600px;
|
||||
}
|
||||
|
||||
.silhouette-combat-picture {
|
||||
width: 250px;
|
||||
max-width: 250px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.silhouette-combat-block {
|
||||
position: absolute;
|
||||
background: white;
|
||||
border-color: darkgray;
|
||||
border-style: ridge;
|
||||
border: 1;
|
||||
width: 180px;
|
||||
min-height: 84px;
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
font-size: 0.8rem;
|
||||
align-self: center;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.silhouette-combat-space {
|
||||
width: 60px;
|
||||
min-width: 60px;
|
||||
}
|
||||
|
||||
.center-content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.chat-message .message {
|
||||
font-family: "GreatPrimer";
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.fvtt-te-deum-character-creator {
|
||||
/*background: rgba(226, 226, 222, 0.95);*/
|
||||
font-family: "GreatPrimer";
|
||||
font-size: 0.9rem;
|
||||
|
||||
.field-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.form-group label {
|
||||
color: rgba(30, 25, 15, 0.9);
|
||||
}
|
||||
|
||||
.status-section {
|
||||
display: block;
|
||||
max-width: 34rem;
|
||||
}
|
||||
|
||||
.creator-finished-section {
|
||||
display: block;
|
||||
max-width: 34rem;
|
||||
text-align: center;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.stage-main-details {
|
||||
text-align: center;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.grace-texte {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.chat-welcome {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.item-name-label {
|
||||
min-width: 12rem;
|
||||
}
|
||||
|
||||
.compendium-sidebar .directory-item.compendium.locked .compendium-name {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.compendium-sidebar .directory-item.compendium .compendium-name {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.compendium-sidebar .directory-item.compendium:hover .compendium-name {
|
||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||
background: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
|
||||
.compendium-sidebar .directory-item.compendium .compendium-footer .source {
|
||||
display: inline-block;
|
||||
font-size: var(--font-size-12);
|
||||
padding: 1px 0.5rem 0 0.25rem;
|
||||
border-radius: 0 3px 0 0;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.tedeum-create-character {
|
||||
align-self: anchor-center;
|
||||
}
|
||||
|
||||
.message-chat-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.welcome-message-h3 {
|
||||
font-size: 1.2rem;
|
||||
text-align: center;
|
||||
margin-bottom: 0.5rem;
|
||||
color: darkred;
|
||||
}
|
||||
414
less/items.less
Normal file
414
less/items.less
Normal file
@@ -0,0 +1,414 @@
|
||||
.padd-right {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.padd-left {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.fortune-row {
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
padding: 0.3rem 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
|
||||
label {
|
||||
flex: 0 0 auto;
|
||||
min-width: unset;
|
||||
font-weight: 600;
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
}
|
||||
|
||||
input {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.stack-left {
|
||||
align-items: center;
|
||||
flex-shrink: 1;
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.packed-left {
|
||||
white-space: nowrap;
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.input-numeric-short {
|
||||
width: 52px;
|
||||
max-width: 52px;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
flex-basis: 52px;
|
||||
margin-right: 0.15rem;
|
||||
margin-left: 0.15rem;
|
||||
}
|
||||
|
||||
.abilities-table {
|
||||
align-content: flex-start;
|
||||
}
|
||||
|
||||
.tokenhudext {
|
||||
display: flex;
|
||||
flex: 0 !important;
|
||||
font-weight: 600;
|
||||
|
||||
&.left {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: 2.75rem;
|
||||
right: 4rem;
|
||||
}
|
||||
|
||||
&.right {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: 2.75rem;
|
||||
left: 4rem;
|
||||
}
|
||||
}
|
||||
|
||||
.control-icon {
|
||||
&.tokenhudicon {
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
height: -moz-fit-content;
|
||||
height: fit-content;
|
||||
min-width: 6rem;
|
||||
flex-basis: auto;
|
||||
padding: 0;
|
||||
line-height: 1rem;
|
||||
margin: 0.25rem;
|
||||
|
||||
&.right {
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#token-hud {
|
||||
.status-effects {
|
||||
&.active {
|
||||
z-index: 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.token-sheet {
|
||||
.window-content {
|
||||
.flexcol {
|
||||
.sheet-tabs {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-checkbox {
|
||||
height: 25px;
|
||||
border: 1px solid rgba(115, 105, 83, 0.65098);
|
||||
border-left: none;
|
||||
font-weight: 500;
|
||||
font-size: 1rem;
|
||||
color: black;
|
||||
padding-top: 5px;
|
||||
margin-right: 0px;
|
||||
width: 45px;
|
||||
position: relative;
|
||||
left: 0px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.skill-label {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
.skill-good-checkbox {
|
||||
max-height: 10px;
|
||||
max-width: 10px;
|
||||
}
|
||||
|
||||
.flex-actions-bar {
|
||||
flex-grow: 2;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
font-size: 1rem;
|
||||
background-color: #f5f5f5;
|
||||
background-position: 0px 35px;
|
||||
background-repeat: no-repeat;
|
||||
background: rgba(226, 226, 222, 0.95);
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
|
||||
&.collapsed {
|
||||
height: 470px !important;
|
||||
}
|
||||
|
||||
#sidebar-tabs {
|
||||
i {
|
||||
display: inline-block;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#sidebar-tabs > .collapsed,
|
||||
#chat-controls .chat-control-icon {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
.sidebar-tab {
|
||||
.directory-list {
|
||||
.entity {
|
||||
border-top: 1px rgba(0, 0, 0, 0.25);
|
||||
border-bottom: 0 none;
|
||||
padding: 0.25rem 0;
|
||||
|
||||
&:hover {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.status-small-label {
|
||||
font-size: 0.65rem;
|
||||
}
|
||||
|
||||
.no-grow {
|
||||
flex-grow: 1;
|
||||
max-width: 32px;
|
||||
}
|
||||
|
||||
.status-col-name {
|
||||
max-width: 72px;
|
||||
}
|
||||
|
||||
.img-no-border {
|
||||
max-width: 48px;
|
||||
max-height: 48px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.items-title-bg {
|
||||
margin-top: 6px;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(196, 186, 166, 0.6) 0%,
|
||||
rgba(226, 226, 222, 0.5) 100%
|
||||
);
|
||||
border-radius: 4px;
|
||||
padding: 0.3rem 0.5rem;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
border-left: 4px solid rgba(139, 115, 85, 0.6);
|
||||
|
||||
h3 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 1.15rem;
|
||||
font-weight: 600;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
}
|
||||
}
|
||||
|
||||
.item-name-label-header-long2 {
|
||||
flex-grow: 1;
|
||||
max-width: 14rem;
|
||||
min-width: 14rem;
|
||||
}
|
||||
|
||||
.impact-box {
|
||||
border-width: 2px;
|
||||
border-color: #000000;
|
||||
border-radius: 6px;
|
||||
border: 2px ridge #443307;
|
||||
margin: 4px;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.impact-title {
|
||||
font-size: bold;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.items-title-text {
|
||||
text-align: center;
|
||||
font-family: MailartRubberstamp;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.lock-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.item-sheet-img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border: 2px solid rgba(139, 115, 85, 0.4);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.item-name-img {
|
||||
flex-grow: 1;
|
||||
max-width: 2rem;
|
||||
min-width: 2rem;
|
||||
}
|
||||
|
||||
.item-field {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.item-field-xp {
|
||||
margin-top: 4px;
|
||||
min-width: 8rem;
|
||||
max-width: 8rem;
|
||||
}
|
||||
|
||||
.item-field-label-short {
|
||||
flex-grow: 1;
|
||||
max-width: 4rem;
|
||||
min-width: 4rem;
|
||||
}
|
||||
|
||||
.item-field-label-medium {
|
||||
flex-grow: 1;
|
||||
max-width: 6rem;
|
||||
min-width: 6rem;
|
||||
}
|
||||
|
||||
.item-field-label-long,
|
||||
.item-name-label-long {
|
||||
font-weight: 600;
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
min-width: 160px;
|
||||
}
|
||||
|
||||
.item-field-skill {
|
||||
flex-grow: 1;
|
||||
max-width: 6.8rem;
|
||||
min-width: 6.8rem;
|
||||
}
|
||||
|
||||
.item-field-label-long {
|
||||
flex-grow: 1;
|
||||
max-width: 10rem;
|
||||
min-width: 10rem;
|
||||
}
|
||||
|
||||
.item-field-title-long {
|
||||
flex-grow: 1;
|
||||
max-width: 12rem;
|
||||
min-width: 12rem;
|
||||
}
|
||||
|
||||
.item-field-label-long14 {
|
||||
flex-grow: 1;
|
||||
max-width: 14rem;
|
||||
min-width: 14rem;
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
font-size: 1.0rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.carac-box {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(226, 226, 222, 0.4) 0%,
|
||||
rgba(240, 235, 225, 0.3) 100%
|
||||
);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 0.45rem;
|
||||
padding: 0.3rem 0.5rem;
|
||||
border: 1px solid rgba(139, 115, 85, 0.2);
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
border-color: rgba(139, 115, 85, 0.4);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
}
|
||||
|
||||
.comp-box {
|
||||
max-width: 16rem;
|
||||
min-width: 16rem;
|
||||
width: 16rem;
|
||||
min-height: 1.6rem;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(250, 245, 235, 0.5) 0%,
|
||||
rgba(255, 255, 255, 0.3) 100%
|
||||
);
|
||||
padding: 0.25rem 0.4rem;
|
||||
margin: 0.15rem;
|
||||
border-radius: 3px;
|
||||
border-left: 2px solid rgba(139, 115, 85, 0.3);
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
background: rgba(226, 226, 222, 0.4);
|
||||
border-left-color: rgba(139, 115, 85, 0.6);
|
||||
transform: translateX(2px);
|
||||
}
|
||||
}
|
||||
|
||||
.item-control-end {
|
||||
align-self: flex-end;
|
||||
}
|
||||
|
||||
.alternate-list {
|
||||
margin-top: 4px;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.item-filler {
|
||||
flex-grow: 6;
|
||||
flex-shrink: 7;
|
||||
}
|
||||
|
||||
.item-controls-fixed {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
|
||||
.item-controls-fixed-full {
|
||||
min-width: 3rem;
|
||||
max-width: 3rem;
|
||||
}
|
||||
|
||||
.item-left-pad {
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.attribute-label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.flexrow-no-expand {
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.item-input-small {
|
||||
max-width: 16px;
|
||||
max-height: 12px;
|
||||
}
|
||||
|
||||
.character-summary-rollable {
|
||||
text-decoration: underline;
|
||||
}
|
||||
240
less/layout.less
Normal file
240
less/layout.less
Normal file
@@ -0,0 +1,240 @@
|
||||
.fvtt-te-deum.window-app.sheet .window-content,
|
||||
.fvtt-te-deum.application.sheet .window-content {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
// AppV2: le part wrapper et la section root du template doivent propager la hauteur
|
||||
// Uniquement pour les fiches (.sheet) — les autres fenêtres (dialogs) gardent un layout block normal
|
||||
.application.fvtt-te-deum.sheet .window-content > [data-application-part],
|
||||
.application.fvtt-te-deum.sheet .window-content > [data-application-part] > section {
|
||||
flex: 1 1 0;
|
||||
min-height: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fvtt-te-deum {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
|
||||
.sheet-header {
|
||||
flex: 0 0 auto;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
margin-bottom: 10px;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(226, 226, 222, 0.95) 0%,
|
||||
rgba(240, 235, 225, 0.9) 100%
|
||||
);
|
||||
padding: 0.3rem 0.8rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
|
||||
.profile-img {
|
||||
flex: 0 0 128px;
|
||||
width: 128px;
|
||||
height: auto;
|
||||
max-height: 128px;
|
||||
margin-top: 0px;
|
||||
margin-right: 10px;
|
||||
-o-object-fit: cover;
|
||||
object-fit: cover;
|
||||
-o-object-position: 50% 0;
|
||||
object-position: 50% 0;
|
||||
border-width: 0px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||
border: 2px solid rgba(139, 115, 85, 0.4);
|
||||
}
|
||||
|
||||
.header-fields {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
h1 {
|
||||
&.charname {
|
||||
height: 50px;
|
||||
padding: 0px;
|
||||
margin: 5px 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.header-identity-fields {
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
gap: 0.3rem;
|
||||
margin-top: 0.2rem;
|
||||
|
||||
input, select {
|
||||
flex: 1 1 auto;
|
||||
font-size: 0.75rem;
|
||||
height: 1.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
.header-identity-label {
|
||||
flex: 0 0 auto;
|
||||
font-size: 0.7rem;
|
||||
font-weight: 600;
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.sheet-tabs {
|
||||
flex: 0;
|
||||
font-family: "MailartRubberstamp";
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
.tox {
|
||||
.tox-editor-container {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.tox-edit-area {
|
||||
padding: 0 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.resource-label {
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.tabs {
|
||||
height: 40px;
|
||||
border-top: 1px solid rgba(139, 115, 85, 0.4);
|
||||
border-bottom: 1px solid rgba(139, 115, 85, 0.4);
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(226, 226, 222, 0.5) 0%,
|
||||
rgba(240, 235, 225, 0.3) 100%
|
||||
);
|
||||
color: #000000;
|
||||
font-family: "GreatPrimer";
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
|
||||
.item {
|
||||
line-height: 40px;
|
||||
font-weight: bold;
|
||||
padding: 0 1rem;
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
background: rgba(226, 226, 222, 0.6);
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
}
|
||||
|
||||
&.active {
|
||||
text-decoration: underline;
|
||||
text-shadow: none;
|
||||
background: rgba(196, 186, 166, 0.4);
|
||||
border-bottom: 3px solid rgba(139, 115, 85, 0.8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.items-list {
|
||||
list-style: none;
|
||||
margin: 1px 0;
|
||||
padding: 0;
|
||||
overflow-y: auto;
|
||||
|
||||
.item-header {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.item {
|
||||
height: 30px;
|
||||
line-height: 24px;
|
||||
padding: 1px 0;
|
||||
border-bottom: 1px solid #bbb;
|
||||
|
||||
.item-image {
|
||||
flex: 0 0 24px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.item-name {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.item-controls {
|
||||
flex: 0 0 86px;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.profile-img-container {
|
||||
margin-right: 0.2rem;
|
||||
max-width: 140px;
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
.button-img {
|
||||
vertical-align: baseline;
|
||||
width: 8%;
|
||||
height: 8%;
|
||||
max-height: 48px;
|
||||
border-width: 0px;
|
||||
border: 1px solid rgba(0, 0, 0, 0);
|
||||
|
||||
&:hover {
|
||||
color: rgba(255, 255, 128, 0.7);
|
||||
border: 1px solid rgba(255, 128, 0, 0.8);
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.button-effect-img {
|
||||
vertical-align: baseline;
|
||||
width: 16px;
|
||||
max-height: 16px;
|
||||
height: 16;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
.small-button-container {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border: 0;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.fvtt-te-deum .sheet-body {
|
||||
flex: 1 1 0;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
font-size: 0.8rem;
|
||||
font-family: "GreatPrimer";
|
||||
}
|
||||
|
||||
.fvtt-te-deum .sheet-body .tab {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
font-size: 0.8rem;
|
||||
font-family: "GreatPrimer";
|
||||
}
|
||||
|
||||
.fvtt-te-deum .sheet-body .tab .editor {
|
||||
height: 100%;
|
||||
font-size: 0.8rem;
|
||||
font-family: "GreatPrimer";
|
||||
}
|
||||
2078
less/tedeum.less
2078
less/tedeum.less
File diff suppressed because it is too large
Load Diff
30
less/variables.less
Normal file
30
less/variables.less
Normal file
@@ -0,0 +1,30 @@
|
||||
@font-face {
|
||||
font-family: "MailartRubberstamp";
|
||||
src: url("../fonts/MailartRubberstamp-Regular.woff") format("woff");
|
||||
font-family: "GreatPrimer";
|
||||
src: url("../fonts/IM_FELL_Great_Primer_Roman.woff") format("woff");
|
||||
}
|
||||
|
||||
// Variables LESS
|
||||
@window-header-title-font-size: 1.3rem;
|
||||
@window-header-title-font-weight: normal;
|
||||
@window-header-title-color: #f5f5f5;
|
||||
@major-button-font-size: 1.05rem;
|
||||
@major-button-font-weight: normal;
|
||||
@major-button-color: #dadada;
|
||||
@tab-header-font-size: 1rem;
|
||||
@tab-header-font-weight: 700;
|
||||
@tab-header-color: #403f3e;
|
||||
@tab-header-color-active: #4a0404;
|
||||
@actor-input-font-size: 0.8rem;
|
||||
@actor-input-font-weight: 500;
|
||||
@actor-input-color: black;
|
||||
@actor-label-font-size: 0.8rem;
|
||||
@actor-label-font-weight: 700;
|
||||
@actor-label-color: rgba(70, 67, 49, 0.76863);
|
||||
@debug-background-color-red: rgba(255, 0, 0, 0.32941);
|
||||
@debug-background-color-blue: rgba(29, 0, 255, 0.32941);
|
||||
@debug-background-color-green: rgba(84, 255, 0, 0.32941);
|
||||
@debug-box-shadow-red: inset 0 0 2px red;
|
||||
@debug-box-shadow-blue: inset 0 0 2px blue;
|
||||
@debug-box-shadow-green: inset 0 0 2px green;
|
||||
@@ -1,179 +1,227 @@
|
||||
/**
|
||||
* Extend the basic ActorSheet with some very simple modifications
|
||||
* @extends {ActorSheet}
|
||||
* Feuille de personnage Te Deum - AppV2
|
||||
*/
|
||||
|
||||
import { TeDeumUtility } from "../common/tedeum-utility.js";
|
||||
|
||||
const { HandlebarsApplicationMixin } = foundry.applications.api
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
|
||||
export class TeDeumActorPJSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ActorSheetV2) {
|
||||
|
||||
constructor(options = {}) {
|
||||
super(options)
|
||||
this._sheetMode = this.constructor.SHEET_MODES.PLAY
|
||||
}
|
||||
|
||||
static SHEET_MODES = { EDIT: 0, PLAY: 1 }
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-te-deum", "sheet", "actor"],
|
||||
template: "systems/fvtt-te-deum/templates/actors/actor-sheet.hbs",
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["fvtt-te-deum", "sheet", "actor"],
|
||||
position: {
|
||||
width: 860,
|
||||
height: 680,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" }],
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||
editScore: true
|
||||
});
|
||||
},
|
||||
form: {
|
||||
submitOnChange: true,
|
||||
closeOnSubmit: false,
|
||||
},
|
||||
window: {
|
||||
resizable: true,
|
||||
},
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||
actions: {
|
||||
editImage: TeDeumActorPJSheet.#onEditImage,
|
||||
toggleSheet: TeDeumActorPJSheet.#onToggleSheet,
|
||||
editItem: TeDeumActorPJSheet.#onEditItem,
|
||||
deleteItem: TeDeumActorPJSheet.#onDeleteItem,
|
||||
createItem: TeDeumActorPJSheet.#onCreateItem,
|
||||
createBlessure: TeDeumActorPJSheet.#onCreateBlessure,
|
||||
createCompetence: TeDeumActorPJSheet.#onCreateCompetence,
|
||||
equipItem: TeDeumActorPJSheet.#onEquipItem,
|
||||
modifyQuantity: TeDeumActorPJSheet.#onModifyQuantity,
|
||||
rollCompetence: TeDeumActorPJSheet.#onRollCompetence,
|
||||
rollArme: TeDeumActorPJSheet.#onRollArme,
|
||||
rollDegats: TeDeumActorPJSheet.#onRollDegats,
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
sheet: {
|
||||
template: "systems/fvtt-te-deum/templates/actors/actor-sheet.hbs",
|
||||
},
|
||||
}
|
||||
|
||||
tabGroups = { primary: "principal" }
|
||||
|
||||
get isEditMode() {
|
||||
return this._sheetMode === this.constructor.SHEET_MODES.EDIT
|
||||
}
|
||||
|
||||
get isPlayMode() {
|
||||
return this._sheetMode === this.constructor.SHEET_MODES.PLAY
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
|
||||
let formData = {
|
||||
/** @override */
|
||||
async _prepareContext() {
|
||||
const actor = this.document
|
||||
return {
|
||||
title: this.title,
|
||||
id: this.actor.id,
|
||||
type: this.actor.type,
|
||||
img: this.actor.img,
|
||||
name: this.actor.name,
|
||||
id: actor.id,
|
||||
type: actor.type,
|
||||
img: actor.img,
|
||||
name: actor.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
system: foundry.utils.duplicate(this.object.system),
|
||||
limited: this.object.limited,
|
||||
competences: this.actor.getCompetences(),
|
||||
system: foundry.utils.duplicate(actor.system),
|
||||
systemFields: actor.system.schema.fields,
|
||||
limited: actor.limited,
|
||||
competences: actor.getCompetences(),
|
||||
config: foundry.utils.duplicate(game.system.tedeum.config),
|
||||
armes: this.actor.getArmes(),
|
||||
caracList: this.actor.prepareCaracteristiques(),
|
||||
providence: this.actor.prepareProvidence(),
|
||||
arbreCompetences: this.actor.prepareArbreCompetences(),
|
||||
equipements: this.actor.getEquipements(),
|
||||
simples: this.actor.getSimples(),
|
||||
armures: this.actor.getArmures(),
|
||||
graces: this.actor.getGraces(),
|
||||
blessures: this.actor.getBlessures(),
|
||||
maladies: this.actor.getMaladies(),
|
||||
poisons: this.actor.getPoisons(),
|
||||
combat: this.actor.prepareCombat(),
|
||||
bonusDegats: this.actor.getBonusDegats(),
|
||||
nbActions: this.actor.getNbActions(),
|
||||
initiative: this.actor.getInitiative(),
|
||||
pointsArmuresLourdes: this.actor.getNbArmures(),
|
||||
nbArmuresLourdes: this.actor.getNbArmuresLourdesActuel(),
|
||||
santeModifier: this.actor.getSanteModifier(),
|
||||
educations: this.actor.getEducations(),
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }),
|
||||
equipmentfree: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.equipmentfree, { async: true }),
|
||||
notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }),
|
||||
histoire: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.histoire, { async: true }),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
isGM: game.user.isGM
|
||||
armes: actor.getArmes(),
|
||||
caracList: actor.prepareCaracteristiques(),
|
||||
providence: actor.prepareProvidence(),
|
||||
arbreCompetences: actor.prepareArbreCompetences(),
|
||||
equipements: actor.getEquipements(),
|
||||
simples: actor.getSimples(),
|
||||
armures: actor.getArmures(),
|
||||
graces: actor.getGraces(),
|
||||
blessures: actor.getBlessures(),
|
||||
maladies: actor.getMaladies(),
|
||||
poisons: actor.getPoisons(),
|
||||
combat: actor.prepareCombat(),
|
||||
bonusDegats: actor.getBonusDegats(),
|
||||
nbActions: actor.getNbActions(),
|
||||
initiative: actor.getInitiative(),
|
||||
pointsArmuresLourdes: actor.getNbArmures(),
|
||||
nbArmuresLourdes: actor.getNbArmuresLourdesActuel(),
|
||||
santeModifier: actor.getSanteModifier(),
|
||||
educations: actor.getEducations(),
|
||||
enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.description, { async: true }),
|
||||
enrichedEquipmentFree: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.equipmentfree, { async: true }),
|
||||
enrichedNotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.notes, { async: true }),
|
||||
enrichedHistoire: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.histoire, { async: true }),
|
||||
owner: actor.isOwner,
|
||||
isEditMode: this.isEditMode,
|
||||
isPlayMode: this.isPlayMode,
|
||||
isGM: game.user.isGM,
|
||||
}
|
||||
this.formData = 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;
|
||||
|
||||
html.bind("keydown", function (e) { // Ignore Enter in actores sheet
|
||||
if (e.keyCode === 13) return false;
|
||||
});
|
||||
|
||||
// Update Inventory Item
|
||||
html.find('.item-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item-id")
|
||||
let itemId = li.data("item-id")
|
||||
const item = this.actor.items.get(itemId);
|
||||
item.sheet.render(true);
|
||||
});
|
||||
// Delete Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item-id")
|
||||
TeDeumUtility.confirmDelete(this, li).catch("Error : No deletion confirmed")
|
||||
})
|
||||
html.find('.item-add').click(ev => {
|
||||
let dataType = $(ev.currentTarget).data("type")
|
||||
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouveau " + dataType, type: dataType }], { renderSheet: true })
|
||||
})
|
||||
html.find('.blessure-add').click(ev => {
|
||||
let dataType = $(ev.currentTarget).data("type")
|
||||
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + dataType, type: dataType, system: { typeBlessure: "estafilade", localisation: "corps", value: 0, appliquee: true, description: "" } }], { renderSheet: true })
|
||||
})
|
||||
html.find('.competence-add').click(ev => {
|
||||
let dataType = $(ev.currentTarget).data("type")
|
||||
let caracKey = $(ev.currentTarget).data("carac-key")
|
||||
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + dataType, type: dataType, system: { caracteristique: caracKey } }], { renderSheet: true })
|
||||
})
|
||||
|
||||
html.find('.subactor-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let actorId = li.data("actor-id");
|
||||
let actor = game.actors.get(actorId);
|
||||
actor.sheet.render(true);
|
||||
});
|
||||
|
||||
html.find('.subactor-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let actorId = li.data("actor-id");
|
||||
this.actor.delSubActor(actorId);
|
||||
});
|
||||
html.find('.quantity-minus').click(event => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
this.actor.incDecQuantity(li.data("item-id"), -1);
|
||||
});
|
||||
html.find('.quantity-plus').click(event => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
this.actor.incDecQuantity(li.data("item-id"), +1);
|
||||
});
|
||||
|
||||
html.find('.roll-competence').click((event) => {
|
||||
let compId = $(event.currentTarget).data("comp-id")
|
||||
this.actor.rollCompetence(compId)
|
||||
});
|
||||
html.find('.roll-arme').click((event) => {
|
||||
const armeId = $(event.currentTarget).data("arme-id")
|
||||
this.actor.rollArme(armeId)
|
||||
});
|
||||
html.find('.roll-degats').click((event) => {
|
||||
const armeId = $(event.currentTarget).data("arme-id")
|
||||
this.actor.rollDegatsArme(armeId)
|
||||
});
|
||||
|
||||
|
||||
html.find('.lock-unlock-sheet').click((event) => {
|
||||
this.options.editScore = !this.options.editScore;
|
||||
this.render(true);
|
||||
});
|
||||
html.find('.item-equip').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.equipItem(li.data("item-id"));
|
||||
this.render(true);
|
||||
});
|
||||
html.find('.update-field').change(ev => {
|
||||
const fieldName = $(ev.currentTarget).data("field-name");
|
||||
let value = Number(ev.currentTarget.value);
|
||||
this.actor.update({ [`${fieldName}`]: value });
|
||||
});
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @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;
|
||||
_onRender(context, options) {
|
||||
super._onRender(context, options)
|
||||
|
||||
// Tab navigation
|
||||
const nav = this.element.querySelector('nav.tabs[data-group]')
|
||||
if (nav) {
|
||||
const group = nav.dataset.group
|
||||
const activeTab = this.tabGroups[group] || "principal"
|
||||
nav.querySelectorAll('[data-tab]').forEach(link => {
|
||||
const tab = link.dataset.tab
|
||||
link.classList.toggle('active', tab === activeTab)
|
||||
link.addEventListener('click', event => {
|
||||
event.preventDefault()
|
||||
this.tabGroups[group] = tab
|
||||
this.render()
|
||||
})
|
||||
})
|
||||
this.element.querySelectorAll(`[data-group="${group}"][data-tab]`).forEach(content => {
|
||||
content.classList.toggle('active', content.dataset.tab === activeTab)
|
||||
})
|
||||
}
|
||||
|
||||
// Ignore Enter key in sheet inputs
|
||||
this.element.addEventListener('keydown', e => {
|
||||
if (e.keyCode === 13 && e.target.tagName !== 'TEXTAREA') e.preventDefault()
|
||||
})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
_updateObject(event, formData) {
|
||||
// Update the Actor
|
||||
return this.object.update(formData);
|
||||
// #region Static action handlers
|
||||
|
||||
static async #onEditImage(event) {
|
||||
const fp = new FilePicker({
|
||||
type: "image",
|
||||
current: this.document.img,
|
||||
callback: path => this.document.update({ img: path }),
|
||||
})
|
||||
fp.browse()
|
||||
}
|
||||
|
||||
static async #onToggleSheet(event) {
|
||||
this._sheetMode = this.isEditMode
|
||||
? this.constructor.SHEET_MODES.PLAY
|
||||
: this.constructor.SHEET_MODES.EDIT
|
||||
this.render()
|
||||
}
|
||||
|
||||
static async #onEditItem(event, target) {
|
||||
const li = target.closest("[data-item-id]")
|
||||
const item = this.actor.items.get(li?.dataset.itemId)
|
||||
if (item) item.sheet.render(true)
|
||||
}
|
||||
|
||||
static async #onDeleteItem(event, target) {
|
||||
const li = target.closest("[data-item-id]")
|
||||
await TeDeumUtility.confirmDelete(this, li)
|
||||
}
|
||||
|
||||
static async #onCreateItem(event, target) {
|
||||
const type = target.dataset.type
|
||||
await this.actor.createEmbeddedDocuments('Item', [{ name: "Nouveau " + type, type }], { renderSheet: true })
|
||||
}
|
||||
|
||||
static async #onCreateBlessure(event, target) {
|
||||
const type = target.dataset.type
|
||||
await this.actor.createEmbeddedDocuments('Item', [{
|
||||
name: "Nouvelle " + type, type,
|
||||
system: { typeBlessure: "estafilade", localisation: "corps", value: 0, appliquee: true, description: "" }
|
||||
}], { renderSheet: true })
|
||||
}
|
||||
|
||||
static async #onCreateCompetence(event, target) {
|
||||
const type = target.dataset.type
|
||||
const caracKey = target.dataset.caracKey
|
||||
await this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + type, type, system: { caracteristique: caracKey } }], { renderSheet: true })
|
||||
}
|
||||
|
||||
static async #onEquipItem(event, target) {
|
||||
const li = target.closest("[data-item-id]")
|
||||
if (!li?.dataset.itemId) return
|
||||
await this.actor.equipItem(li.dataset.itemId)
|
||||
}
|
||||
|
||||
static async #onModifyQuantity(event, target) {
|
||||
const li = target.closest("[data-item-id]")
|
||||
if (!li?.dataset.itemId) return
|
||||
const item = this.actor.items.get(li.dataset.itemId)
|
||||
if (!item) return
|
||||
const delta = parseInt(target.dataset.qty) || 0
|
||||
await this.actor.incDecQuantity(li.dataset.itemId, delta)
|
||||
}
|
||||
|
||||
static async #onRollCompetence(event, target) {
|
||||
const li = target.closest("[data-item-id]")
|
||||
if (!li?.dataset.itemId) return
|
||||
await this.actor.rollCompetence(li.dataset.itemId)
|
||||
}
|
||||
|
||||
static async #onRollArme(event, target) {
|
||||
const li = target.closest("[data-item-id]")
|
||||
if (!li?.dataset.itemId) return
|
||||
await this.actor.rollArme(li.dataset.itemId)
|
||||
}
|
||||
|
||||
static async #onRollDegats(event, target) {
|
||||
const li = target.closest("[data-item-id]")
|
||||
if (!li?.dataset.itemId) return
|
||||
await this.actor.rollDegatsArme(li.dataset.itemId)
|
||||
}
|
||||
|
||||
// #endregion
|
||||
}
|
||||
|
||||
@@ -785,8 +785,7 @@ export class TeDeumActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async startRoll(rollData) {
|
||||
console.log("startRoll", rollData)
|
||||
let rollDialog = await TeDeumRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
await TeDeumRollDialog.create(this, rollData)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -575,7 +575,7 @@ export class TeDeumCharacterCreator {
|
||||
for (let compName in this.competenceBonus) {
|
||||
let comp = actor.items.find( i => i.type == "competence" && i.name.toLowerCase() === compName.toLowerCase())
|
||||
if (comp) {
|
||||
updateComp.push({ _id: comp._id, "system.score": this.competenceBonus[compName].value })
|
||||
updateComp.push({ _id: comp._id, "system.score": comp.system.score + this.competenceBonus[compName].value })
|
||||
} else {
|
||||
toAdd.push( compName)
|
||||
}
|
||||
|
||||
@@ -17,7 +17,10 @@ export class TeDeumUtility {
|
||||
}
|
||||
|
||||
static installHooks() {
|
||||
Hooks.on('renderChatLog', (log, html, data) => TeDeumUtility.chatListeners(html));
|
||||
Hooks.on('renderChatMessageHTML', (message, html) => {
|
||||
TeDeumUtility.chatListeners(html);
|
||||
TeDeumUtility.onRenderChatMessage(message, html);
|
||||
});
|
||||
|
||||
Hooks.on("renderActorDirectory", (app, html, data) => {
|
||||
if (game.user.can('ACTOR_CREATE')) {
|
||||
@@ -144,6 +147,14 @@ export class TeDeumUtility {
|
||||
}
|
||||
return value
|
||||
})
|
||||
// Handle v12 removal of this helper
|
||||
Handlebars.registerHelper('select', function (selected, options) {
|
||||
const escapedValue = RegExp.escape(Handlebars.escapeExpression(selected));
|
||||
const rgx = new RegExp(' value=[\"\']' + escapedValue + '[\"\']');
|
||||
const html = options.fn(this);
|
||||
return html.replace(rgx, "$& selected");
|
||||
});
|
||||
|
||||
|
||||
// Load compendium data
|
||||
const competences = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences")
|
||||
@@ -175,7 +186,6 @@ export class TeDeumUtility {
|
||||
fetch(ECRYME_WELCOME_MESSAGE_URL)
|
||||
.then(response => response.text())
|
||||
.then(html => {
|
||||
console.log("Fetched welcome message:", html);
|
||||
ChatMessage.create({
|
||||
user: game.user.id,
|
||||
whisper: [game.user.id],
|
||||
@@ -309,16 +319,24 @@ export class TeDeumUtility {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */ /* -------------------------------------------- */
|
||||
/* -------------------------------------------- */
|
||||
static getTokenActorFromId(tokenId) {
|
||||
for (let scene of game.scenes) {
|
||||
const tokenDoc = scene.tokens.get(tokenId)
|
||||
if (tokenDoc) return tokenDoc.actor
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async appliquerDegats(rollData) {
|
||||
await this.processAttaqueMelee(rollData)
|
||||
let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
|
||||
if (defenderToken) {
|
||||
let actor = defenderToken.actor
|
||||
if (game.user.isGM || actor.isOwner) {
|
||||
await actor.appliquerDegats(rollData)
|
||||
let defenderActor = this.getTokenActorFromId(rollData.defenderTokenId)
|
||||
if (defenderActor) {
|
||||
if (game.user.isGM || defenderActor.isOwner) {
|
||||
await defenderActor.appliquerDegats(rollData)
|
||||
} else {
|
||||
// Send a socket message
|
||||
// Send a socket message — seul le premier MJ actif le traitera
|
||||
game.socket.emit("system.fvtt-te-deum", { name: "msg_apply_damage", data: { rollData } });
|
||||
}
|
||||
// Attaque naturelle avec dégats inférieur à -2
|
||||
@@ -351,19 +369,27 @@ export class TeDeumUtility {
|
||||
TeDeumUtility.appliquerDegats(rollData, messageId)
|
||||
}
|
||||
})
|
||||
$(html).on("click", '.chat-command-gain-xp', event => {
|
||||
$(html).on("click", '.chat-command-gain-xp', async event => {
|
||||
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "te-deum-rolldata")
|
||||
if (rollData) {
|
||||
let actor = TeDeumUtility.getActorFromRollData(rollData)
|
||||
actor.modifyXP(rollData.carac.key, 1)
|
||||
// Hide this button
|
||||
event.currentTarget.style.display = 'none';
|
||||
event.currentTarget.style.display = 'none'; // feedback immédiat local
|
||||
await message.setFlag("world", "te-deum-xp-used", true) // sync tous les clients
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static onRenderChatMessage(message, html) {
|
||||
if (message.getFlag("world", "te-deum-xp-used")) {
|
||||
const btn = html.querySelector('.chat-command-gain-xp');
|
||||
if (btn) btn.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async preloadHandlebarsTemplates() {
|
||||
|
||||
@@ -371,7 +397,17 @@ export class TeDeumUtility {
|
||||
'systems/fvtt-te-deum/templates/actors/editor-notes-gm.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/partial-item-nav.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/partial-item-description.hbs',
|
||||
'systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs'
|
||||
'systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-arme-sheet.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-armure-sheet.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-blessure-sheet.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-competence-sheet.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-education-sheet.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-equipement-sheet.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-grace-sheet.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-maladie-sheet.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-origine-sheet.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/item-simple-sheet.hbs',
|
||||
]
|
||||
return foundry.applications.handlebars.loadTemplates(templatePaths);
|
||||
}
|
||||
@@ -467,12 +503,12 @@ export class TeDeumUtility {
|
||||
}
|
||||
}
|
||||
if (msg.name == "msg_apply_damage") {
|
||||
if (game.user.isGM) {
|
||||
const firstGM = game.users.find(u => u.isGM && u.active)
|
||||
if (game.user === firstGM) {
|
||||
let rollData = msg.data.rollData
|
||||
let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
|
||||
if (defenderToken) {
|
||||
let actor = defenderToken.actor
|
||||
await actor.appliquerDegats(rollData)
|
||||
let defenderActor = TeDeumUtility.getTokenActorFromId(rollData.defenderTokenId)
|
||||
if (defenderActor) {
|
||||
await defenderActor.appliquerDegats(rollData)
|
||||
} else {
|
||||
ui.notifications.error("Impossible de trouver la cible de l'attaque, aucun degats appliqué")
|
||||
}
|
||||
@@ -867,7 +903,7 @@ export class TeDeumUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async confirmDelete(actorSheet, li) {
|
||||
let itemId = li.data("item-id");
|
||||
let itemId = li.dataset ? li.dataset.itemId : li.data("item-id");
|
||||
let msgTxt = "<p>Etes vous certain de supprimer cet item ?";
|
||||
let buttons = {
|
||||
delete: {
|
||||
@@ -875,7 +911,12 @@ export class TeDeumUtility {
|
||||
label: "Oui, aucun souci",
|
||||
callback: () => {
|
||||
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
|
||||
li.slideUp(200, () => actorSheet.render(false));
|
||||
if (li.slideUp) {
|
||||
li.slideUp(200, () => actorSheet.render(false));
|
||||
} else {
|
||||
li.style.display = "none";
|
||||
actorSheet.render(false);
|
||||
}
|
||||
}
|
||||
},
|
||||
cancel: {
|
||||
|
||||
@@ -1,102 +1,103 @@
|
||||
import { TeDeumUtility } from "../common/tedeum-utility.js";
|
||||
|
||||
export class TeDeumRollDialog extends Dialog {
|
||||
const { HandlebarsApplicationMixin } = foundry.applications.api
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class TeDeumRollDialog extends HandlebarsApplicationMixin(foundry.applications.api.ApplicationV2) {
|
||||
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["fvtt-te-deum", "te-deum-roll-dialog"],
|
||||
window: { title: "Lancer !", resizable: false },
|
||||
position: { width: 540 },
|
||||
actions: {
|
||||
roll: TeDeumRollDialog.#onRoll,
|
||||
cancel: TeDeumRollDialog.#onCancel,
|
||||
}
|
||||
}
|
||||
|
||||
static PARTS = {
|
||||
content: { template: "systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs" }
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
constructor(actor, rollData, options = {}) {
|
||||
super(options)
|
||||
this.actor = actor
|
||||
this.rollData = rollData
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async create(actor, rollData) {
|
||||
|
||||
let options = { classes: ["tedeum-roll-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
|
||||
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs', rollData);
|
||||
return new TeDeumRollDialog(actor, rollData, html, options);
|
||||
const dialog = new TeDeumRollDialog(actor, rollData)
|
||||
dialog.render(true)
|
||||
return dialog
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
constructor(actor, rollData, html, options, close = undefined) {
|
||||
let conf = {
|
||||
title: "Lancer !",
|
||||
content: html,
|
||||
buttons: {
|
||||
roll: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "Lancer",
|
||||
callback: () => { this.roll() }
|
||||
},
|
||||
cancel: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: "Annuler",
|
||||
callback: () => { this.close() }
|
||||
}
|
||||
},
|
||||
close: close
|
||||
}
|
||||
|
||||
super(conf, options);
|
||||
|
||||
this.actor = actor;
|
||||
this.rollData = rollData;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
roll() {
|
||||
TeDeumUtility.rollTeDeum(this.rollData)
|
||||
async _prepareContext() {
|
||||
return { ...this.rollData }
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async refreshDialog() {
|
||||
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs", this.rollData)
|
||||
this.data.content = content
|
||||
this.render(true)
|
||||
this.render()
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
static #onRoll(event, target) {
|
||||
TeDeumUtility.rollTeDeum(this.rollData)
|
||||
this.close()
|
||||
}
|
||||
|
||||
let dialog = this;
|
||||
function onLoad() {
|
||||
}
|
||||
$(function () { onLoad(); });
|
||||
/* -------------------------------------------- */
|
||||
static #onCancel(event, target) {
|
||||
this.close()
|
||||
}
|
||||
|
||||
html.find('#bonusMalusPerso').change((event) => {
|
||||
/* -------------------------------------------- */
|
||||
_onRender(context, options) {
|
||||
super._onRender(context, options)
|
||||
|
||||
const html = this.element
|
||||
|
||||
html.querySelector('#bonusMalusPerso')?.addEventListener('change', (event) => {
|
||||
this.rollData.bonusMalusPerso = Number(event.currentTarget.value)
|
||||
})
|
||||
html.find('#roll-allonge').change((event) => {
|
||||
html.querySelector('#roll-allonge')?.addEventListener('change', (event) => {
|
||||
this.rollData.allongeId = event.currentTarget.value
|
||||
})
|
||||
html.find('#roll-main-gauche').change((event) => {
|
||||
html.querySelector('#roll-main-gauche')?.addEventListener('change', (event) => {
|
||||
this.rollData.isMainGauche = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-difficulty').change((event) => {
|
||||
html.querySelector('#roll-difficulty')?.addEventListener('change', (event) => {
|
||||
this.rollData.difficulty = String(event.currentTarget.value) || "pardefaut"
|
||||
})
|
||||
html.find('#roll-attaque-ciblee').change((event) => {
|
||||
html.querySelector('#roll-attaque-ciblee')?.addEventListener('change', (event) => {
|
||||
this.rollData.attaqueCiblee = event.currentTarget.value || "0"
|
||||
})
|
||||
html.find('#roll-bonus-malus').change((event) => {
|
||||
html.querySelector('#roll-bonus-malus')?.addEventListener('change', (event) => {
|
||||
this.rollData.bonusMalus = event.currentTarget.value || "0"
|
||||
})
|
||||
html.find('#roll-enable-providence').change((event) => {
|
||||
html.querySelector('#roll-enable-providence')?.addEventListener('change', (event) => {
|
||||
this.rollData.enableProvidence = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-portee-tir').change((event) => {
|
||||
html.querySelector('#roll-portee-tir')?.addEventListener('change', (event) => {
|
||||
this.rollData.porteeTir = event.currentTarget.value
|
||||
this.rollData.difficulty = game.system.tedeum.config.ARME_PORTEES[this.rollData.porteeTir].difficulty
|
||||
this.rollData.porteeLabel = game.system.tedeum.config.ARME_PORTEES[this.rollData.porteeTir].label
|
||||
this.refreshDialog()
|
||||
})
|
||||
html.find('#roll-tir-viser').change((event) => {
|
||||
html.querySelector('#roll-tir-viser')?.addEventListener('change', (event) => {
|
||||
this.rollData.isViser = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-tir-mouvement').change((event) => {
|
||||
html.querySelector('#roll-tir-mouvement')?.addEventListener('change', (event) => {
|
||||
this.rollData.isMouvement = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-charge-a-pied').change((event) => {
|
||||
html.querySelector('#roll-charge-a-pied')?.addEventListener('change', (event) => {
|
||||
this.rollData.isChargeAPied = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-charge-a-cheval').change((event) => {
|
||||
html.querySelector('#roll-charge-a-cheval')?.addEventListener('change', (event) => {
|
||||
this.rollData.isChargeACheval = event.currentTarget.checked
|
||||
})
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,172 +1,154 @@
|
||||
import { TeDeumUtility } from "../common/tedeum-utility.js";
|
||||
|
||||
const { HandlebarsApplicationMixin } = foundry.applications.api
|
||||
|
||||
/**
|
||||
* Extend the basic ItemSheet with some very simple modifications
|
||||
* @extends {ItemSheet}
|
||||
* Feuille d'item Te Deum - AppV2
|
||||
*/
|
||||
export class TeDeumItemSheet extends foundry.appv1.sheets.ItemSheet {
|
||||
export class TeDeumItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-te-deum", "sheet", "item"],
|
||||
template: "systems/fvtt-te-deum/templates/item-sheet.hbs",
|
||||
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["fvtt-te-deum", "sheet", "item"],
|
||||
position: {
|
||||
width: 620,
|
||||
height: 580,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }]
|
||||
});
|
||||
},
|
||||
form: {
|
||||
submitOnChange: true,
|
||||
closeOnSubmit: false,
|
||||
},
|
||||
window: {
|
||||
resizable: true,
|
||||
},
|
||||
actions: {
|
||||
editImage: TeDeumItemSheet.#onEditImage,
|
||||
postItem: TeDeumItemSheet.#onPostItem,
|
||||
deleteSubitem: TeDeumItemSheet.#onDeleteSubitem,
|
||||
viewSubitem: TeDeumItemSheet.#onViewSubitem,
|
||||
},
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_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
|
||||
// Static PARTS pointing to the dynamic wrapper template
|
||||
static PARTS = {
|
||||
sheet: { template: "systems/fvtt-te-deum/templates/items/item-sheet.hbs" },
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
tabGroups = { primary: "description" }
|
||||
|
||||
let formData = {
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
async _prepareContext() {
|
||||
const item = this.document
|
||||
const TextEditor = foundry.applications.ux.TextEditor.implementation
|
||||
const enrich = async (val) => val !== undefined ? await TextEditor.enrichHTML(val ?? "", { async: true }) : ""
|
||||
const context = {
|
||||
title: this.title,
|
||||
id: this.id,
|
||||
type: this.object.type,
|
||||
img: this.object.img,
|
||||
name: this.object.name,
|
||||
id: item.id,
|
||||
type: item.type,
|
||||
img: item.img,
|
||||
name: item.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
system: foundry.utils.duplicate(this.object.system),
|
||||
system: foundry.utils.duplicate(item.system),
|
||||
systemFields: item.system.schema.fields,
|
||||
config: foundry.utils.duplicate(game.system.tedeum.config),
|
||||
competences: TeDeumUtility.getCompetencesForDropDown(),
|
||||
limited: this.object.limited,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }),
|
||||
notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }),
|
||||
isGM: game.user.isGM
|
||||
limited: item.limited,
|
||||
owner: item.isOwner,
|
||||
enrichedDescription: await enrich(item.system.description),
|
||||
enrichedTransmission: await enrich(item.system.transmission),
|
||||
enrichedSymptomes: await enrich(item.system.symptomes),
|
||||
enrichedComplications: await enrich(item.system.complications),
|
||||
enrichedVertus: await enrich(item.system.vertus),
|
||||
enrichedToxicite: await enrich(item.system.toxicite),
|
||||
isGM: game.user.isGM,
|
||||
itemPartialName: `systems/fvtt-te-deum/templates/items/item-${item.type}-sheet.hbs`,
|
||||
}
|
||||
|
||||
if (this.object.type == "education") {
|
||||
TeDeumUtility.prepareEducationContent(formData);
|
||||
if (item.type === "education") {
|
||||
TeDeumUtility.prepareEducationContent(context)
|
||||
}
|
||||
|
||||
this.options.editable = !(this.object.origin == "embeddedItem");
|
||||
return formData;
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_getHeaderButtons() {
|
||||
let buttons = super._getHeaderButtons();
|
||||
buttons.unshift({
|
||||
class: "post",
|
||||
icon: "fas fa-comment",
|
||||
onclick: ev => this.postItem()
|
||||
});
|
||||
return buttons
|
||||
return context
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
postItem() {
|
||||
let chatData = duplicate(this.item)
|
||||
/** @override */
|
||||
_onRender(context, options) {
|
||||
super._onRender(context, options)
|
||||
|
||||
// Tab navigation
|
||||
const nav = this.element.querySelector('nav.tabs[data-group]')
|
||||
if (nav) {
|
||||
const group = nav.dataset.group
|
||||
const activeTab = this.tabGroups[group] || "description"
|
||||
nav.querySelectorAll('[data-tab]').forEach(link => {
|
||||
const tab = link.dataset.tab
|
||||
link.classList.toggle('active', tab === activeTab)
|
||||
link.addEventListener('click', event => {
|
||||
event.preventDefault()
|
||||
this.tabGroups[group] = tab
|
||||
this.render()
|
||||
})
|
||||
})
|
||||
this.element.querySelectorAll(`[data-group="${group}"][data-tab]`).forEach(content => {
|
||||
content.classList.toggle('active', content.dataset.tab === activeTab)
|
||||
})
|
||||
}
|
||||
|
||||
// Ignore Enter key in inputs
|
||||
this.element.addEventListener('keydown', e => {
|
||||
if (e.keyCode === 13 && e.target.tagName !== 'TEXTAREA') e.preventDefault()
|
||||
})
|
||||
}
|
||||
|
||||
// #region Static action handlers
|
||||
|
||||
static async #onEditImage(event, target) {
|
||||
const fp = new FilePicker({
|
||||
type: "image",
|
||||
current: this.document.img,
|
||||
callback: path => this.document.update({ img: path }),
|
||||
})
|
||||
fp.browse()
|
||||
}
|
||||
|
||||
static async #onPostItem(event, target) {
|
||||
const chatData = foundry.utils.duplicate(this.item)
|
||||
if (this.actor) {
|
||||
chatData.actor = { id: this.actor.id };
|
||||
chatData.actor = { id: this.actor.id }
|
||||
}
|
||||
// Don't post any image for the item (which would leave a large gap) if the default image is used
|
||||
if (chatData.img.includes("/blank.png")) {
|
||||
chatData.img = null;
|
||||
if (chatData.img?.includes("/blank.png")) {
|
||||
chatData.img = null
|
||||
}
|
||||
// JSON object for easy creation
|
||||
chatData.jsondata = JSON.stringify(
|
||||
{
|
||||
compendium: "postedItem",
|
||||
payload: chatData,
|
||||
});
|
||||
|
||||
foundry.applications.handlebars.renderTemplate('systems/fvtt-te-deum/templates/post-item.html', chatData).then(html => {
|
||||
let chatOptions = TeDeumUtility.chatDataSetup(html);
|
||||
ChatMessage.create(chatOptions)
|
||||
});
|
||||
chatData.jsondata = JSON.stringify({ compendium: "postedItem", payload: chatData })
|
||||
const html = await foundry.applications.handlebars.renderTemplate(
|
||||
'systems/fvtt-te-deum/templates/post-item.html', chatData
|
||||
)
|
||||
ChatMessage.create(TeDeumUtility.chatDataSetup(html))
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async viewSubitem(ev) {
|
||||
let levelIndex = Number($(ev.currentTarget).parents(".item").data("level-index"))
|
||||
let choiceIndex = Number($(ev.currentTarget).parents(".item").data("choice-index"))
|
||||
let featureId = $(ev.currentTarget).parents(".item").data("feature-id")
|
||||
|
||||
let itemData = this.object.system.levels[levelIndex].choices[choiceIndex].features[featureId]
|
||||
|
||||
if (itemData.name != 'None') {
|
||||
let item = await Item.create(itemData, { temporary: true });
|
||||
item.system.origin = "embeddedItem";
|
||||
new TeDeumItemSheet(item).render(true);
|
||||
static async #onDeleteSubitem(event, target) {
|
||||
const field = target.dataset.type
|
||||
const idx = parseInt(target.dataset.index)
|
||||
const oldArray = this.document.system[field]
|
||||
if (Array.isArray(oldArray) && oldArray[idx]?.name !== 'None') {
|
||||
const newArray = oldArray.filter((_, i) => i !== idx)
|
||||
this.document.update({ [`system.${field}`]: newArray })
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async deleteSubitem(ev) {
|
||||
let field = $(ev.currentTarget).data('type');
|
||||
let idx = Number($(ev.currentTarget).data('index'));
|
||||
let oldArray = this.object.system[field];
|
||||
let itemData = this.object.system[field][idx];
|
||||
if (itemData.name != 'None') {
|
||||
let newArray = [];
|
||||
for (let i = 0; i < oldArray.length; i++) {
|
||||
if (i != idx) {
|
||||
newArray.push(oldArray[i]);
|
||||
}
|
||||
}
|
||||
this.object.update({ [`system.${field}`]: newArray });
|
||||
static async #onViewSubitem(event, target) {
|
||||
const li = target.closest(".item")
|
||||
const levelIndex = parseInt(li?.dataset.levelIndex)
|
||||
const choiceIndex = parseInt(li?.dataset.choiceIndex)
|
||||
const featureId = li?.dataset.featureId
|
||||
const itemData = this.document.system.levels?.[levelIndex]?.choices?.[choiceIndex]?.features?.[featureId]
|
||||
if (itemData?.name !== 'None') {
|
||||
const item = await Item.create(itemData, { temporary: true })
|
||||
item.system.origin = "embeddedItem"
|
||||
new TeDeumItemSheet(item).render(true)
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @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);
|
||||
});
|
||||
|
||||
html.find('.delete-subitem').click(ev => {
|
||||
this.deleteSubitem(ev);
|
||||
});
|
||||
|
||||
// Update Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let itemId = li.data("item-id");
|
||||
let itemType = li.data("item-type");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
get template() {
|
||||
let type = this.item.type;
|
||||
return `systems/fvtt-te-deum/templates/items/item-${type}-sheet.hbs`
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
_updateObject(event, formData) {
|
||||
return this.object.update(formData)
|
||||
}
|
||||
// #endregion
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
MANIFEST-000214
|
||||
MANIFEST-000245
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/04-21:26:37.933804 7f93eb7fe6c0 Recovering log #212
|
||||
2026/01/04-21:26:37.943801 7f93eb7fe6c0 Delete type=3 #210
|
||||
2026/01/04-21:26:37.943854 7f93eb7fe6c0 Delete type=0 #212
|
||||
2026/01/04-21:27:02.505234 7f93e9ffb6c0 Level-0 table #217: started
|
||||
2026/01/04-21:27:02.505262 7f93e9ffb6c0 Level-0 table #217: 0 bytes OK
|
||||
2026/01/04-21:27:02.512734 7f93e9ffb6c0 Delete type=0 #215
|
||||
2026/01/04-21:27:02.512909 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||
2026/02/28-09:14:40.938346 7f56f93fe6c0 Recovering log #243
|
||||
2026/02/28-09:14:40.993306 7f56f93fe6c0 Delete type=3 #241
|
||||
2026/02/28-09:14:40.993438 7f56f93fe6c0 Delete type=0 #243
|
||||
2026/02/28-11:53:47.481993 7f54e37ef6c0 Level-0 table #248: started
|
||||
2026/02/28-11:53:47.482026 7f54e37ef6c0 Level-0 table #248: 0 bytes OK
|
||||
2026/02/28-11:53:47.487859 7f54e37ef6c0 Delete type=0 #246
|
||||
2026/02/28-11:53:47.488058 7f54e37ef6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/12/20-18:12:56.443928 7f244d1ff6c0 Recovering log #208
|
||||
2025/12/20-18:12:56.494058 7f244d1ff6c0 Delete type=3 #206
|
||||
2025/12/20-18:12:56.494134 7f244d1ff6c0 Delete type=0 #208
|
||||
2025/12/20-18:36:44.261828 7f2436ffd6c0 Level-0 table #213: started
|
||||
2025/12/20-18:36:44.261865 7f2436ffd6c0 Level-0 table #213: 0 bytes OK
|
||||
2025/12/20-18:36:44.320648 7f2436ffd6c0 Delete type=0 #211
|
||||
2025/12/20-18:36:44.320833 7f2436ffd6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||
2026/02/27-17:11:33.828064 7f56f8bfd6c0 Recovering log #239
|
||||
2026/02/27-17:11:33.838170 7f56f8bfd6c0 Delete type=3 #237
|
||||
2026/02/27-17:11:33.838231 7f56f8bfd6c0 Delete type=0 #239
|
||||
2026/02/27-17:22:38.249017 7f54e37ef6c0 Level-0 table #244: started
|
||||
2026/02/27-17:22:38.249057 7f54e37ef6c0 Level-0 table #244: 0 bytes OK
|
||||
2026/02/27-17:22:38.255519 7f54e37ef6c0 Delete type=0 #242
|
||||
2026/02/27-17:22:38.255693 7f54e37ef6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/aides/MANIFEST-000245
Normal file
BIN
packs/aides/MANIFEST-000245
Normal file
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000317
|
||||
MANIFEST-000347
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/04-21:26:37.828637 7f93eb7fe6c0 Recovering log #315
|
||||
2026/01/04-21:26:37.839103 7f93eb7fe6c0 Delete type=3 #313
|
||||
2026/01/04-21:26:37.839200 7f93eb7fe6c0 Delete type=0 #315
|
||||
2026/01/04-21:27:02.452079 7f93e9ffb6c0 Level-0 table #320: started
|
||||
2026/01/04-21:27:02.452098 7f93e9ffb6c0 Level-0 table #320: 0 bytes OK
|
||||
2026/01/04-21:27:02.458511 7f93e9ffb6c0 Delete type=0 #318
|
||||
2026/01/04-21:27:02.458741 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
||||
2026/02/28-09:14:40.507166 7f56f8bfd6c0 Recovering log #345
|
||||
2026/02/28-09:14:40.569877 7f56f8bfd6c0 Delete type=3 #343
|
||||
2026/02/28-09:14:40.570013 7f56f8bfd6c0 Delete type=0 #345
|
||||
2026/02/28-11:53:47.420510 7f54e37ef6c0 Level-0 table #350: started
|
||||
2026/02/28-11:53:47.420538 7f54e37ef6c0 Level-0 table #350: 0 bytes OK
|
||||
2026/02/28-11:53:47.427480 7f54e37ef6c0 Delete type=0 #348
|
||||
2026/02/28-11:53:47.427767 7f54e37ef6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/12/20-18:12:56.039187 7f244d1ff6c0 Recovering log #311
|
||||
2025/12/20-18:12:56.089963 7f244d1ff6c0 Delete type=3 #309
|
||||
2025/12/20-18:12:56.090033 7f244d1ff6c0 Delete type=0 #311
|
||||
2025/12/20-18:36:43.701277 7f2436ffd6c0 Level-0 table #316: started
|
||||
2025/12/20-18:36:43.701303 7f2436ffd6c0 Level-0 table #316: 0 bytes OK
|
||||
2025/12/20-18:36:43.756264 7f2436ffd6c0 Delete type=0 #314
|
||||
2025/12/20-18:36:43.812180 7f2436ffd6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
||||
2026/02/27-17:11:33.742557 7f56f8bfd6c0 Recovering log #341
|
||||
2026/02/27-17:11:33.751671 7f56f8bfd6c0 Delete type=3 #339
|
||||
2026/02/27-17:11:33.751725 7f56f8bfd6c0 Delete type=0 #341
|
||||
2026/02/27-17:22:38.183980 7f54e37ef6c0 Level-0 table #346: started
|
||||
2026/02/27-17:22:38.184010 7f54e37ef6c0 Level-0 table #346: 0 bytes OK
|
||||
2026/02/27-17:22:38.189997 7f54e37ef6c0 Delete type=0 #344
|
||||
2026/02/27-17:22:38.202756 7f54e37ef6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/armes/MANIFEST-000347
Normal file
BIN
packs/armes/MANIFEST-000347
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000317
|
||||
MANIFEST-000348
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/04-21:26:37.843261 7f93ea7fc6c0 Recovering log #315
|
||||
2026/01/04-21:26:37.853735 7f93ea7fc6c0 Delete type=3 #313
|
||||
2026/01/04-21:26:37.853805 7f93ea7fc6c0 Delete type=0 #315
|
||||
2026/01/04-21:27:02.446245 7f93e9ffb6c0 Level-0 table #320: started
|
||||
2026/01/04-21:27:02.446262 7f93e9ffb6c0 Level-0 table #320: 0 bytes OK
|
||||
2026/01/04-21:27:02.452006 7f93e9ffb6c0 Delete type=0 #318
|
||||
2026/01/04-21:27:02.458726 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
||||
2026/02/28-09:14:40.573416 7f56f93fe6c0 Recovering log #346
|
||||
2026/02/28-09:14:40.630571 7f56f93fe6c0 Delete type=3 #344
|
||||
2026/02/28-09:14:40.630725 7f56f93fe6c0 Delete type=0 #346
|
||||
2026/02/28-11:53:47.408468 7f54e37ef6c0 Level-0 table #351: started
|
||||
2026/02/28-11:53:47.408492 7f54e37ef6c0 Level-0 table #351: 0 bytes OK
|
||||
2026/02/28-11:53:47.414369 7f54e37ef6c0 Delete type=0 #349
|
||||
2026/02/28-11:53:47.427738 7f54e37ef6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/12/20-18:12:56.095054 7f24377fe6c0 Recovering log #311
|
||||
2025/12/20-18:12:56.148579 7f24377fe6c0 Delete type=3 #309
|
||||
2025/12/20-18:12:56.148653 7f24377fe6c0 Delete type=0 #311
|
||||
2025/12/20-18:36:43.637340 7f2436ffd6c0 Level-0 table #316: started
|
||||
2025/12/20-18:36:43.637367 7f2436ffd6c0 Level-0 table #316: 0 bytes OK
|
||||
2025/12/20-18:36:43.701178 7f2436ffd6c0 Delete type=0 #314
|
||||
2025/12/20-18:36:43.812170 7f2436ffd6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
||||
2026/02/27-17:11:33.753908 7f56f9bff6c0 Recovering log #342
|
||||
2026/02/27-17:11:33.763888 7f56f9bff6c0 Delete type=3 #340
|
||||
2026/02/27-17:11:33.763941 7f56f9bff6c0 Delete type=0 #342
|
||||
2026/02/27-17:22:38.176835 7f54e37ef6c0 Level-0 table #347: started
|
||||
2026/02/27-17:22:38.176924 7f54e37ef6c0 Level-0 table #347: 0 bytes OK
|
||||
2026/02/27-17:22:38.183841 7f54e37ef6c0 Delete type=0 #345
|
||||
2026/02/27-17:22:38.202741 7f54e37ef6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/armures/MANIFEST-000348
Normal file
BIN
packs/armures/MANIFEST-000348
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000315
|
||||
MANIFEST-000346
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/04-21:26:37.813752 7f93eaffd6c0 Recovering log #313
|
||||
2026/01/04-21:26:37.823461 7f93eaffd6c0 Delete type=3 #311
|
||||
2026/01/04-21:26:37.823509 7f93eaffd6c0 Delete type=0 #313
|
||||
2026/01/04-21:27:02.440062 7f93e9ffb6c0 Level-0 table #318: started
|
||||
2026/01/04-21:27:02.440091 7f93e9ffb6c0 Level-0 table #318: 0 bytes OK
|
||||
2026/01/04-21:27:02.446167 7f93e9ffb6c0 Delete type=0 #316
|
||||
2026/01/04-21:27:02.458712 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
||||
2026/02/28-09:14:40.445424 7f56e3fff6c0 Recovering log #344
|
||||
2026/02/28-09:14:40.502194 7f56e3fff6c0 Delete type=3 #342
|
||||
2026/02/28-09:14:40.502321 7f56e3fff6c0 Delete type=0 #344
|
||||
2026/02/28-11:53:47.402111 7f54e37ef6c0 Level-0 table #349: started
|
||||
2026/02/28-11:53:47.402185 7f54e37ef6c0 Level-0 table #349: 0 bytes OK
|
||||
2026/02/28-11:53:47.408357 7f54e37ef6c0 Delete type=0 #347
|
||||
2026/02/28-11:53:47.427714 7f54e37ef6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/12/20-18:12:55.979585 7f244c9fe6c0 Recovering log #309
|
||||
2025/12/20-18:12:56.031769 7f244c9fe6c0 Delete type=3 #307
|
||||
2025/12/20-18:12:56.031837 7f244c9fe6c0 Delete type=0 #309
|
||||
2025/12/20-18:36:43.574310 7f2436ffd6c0 Level-0 table #314: started
|
||||
2025/12/20-18:36:43.574360 7f2436ffd6c0 Level-0 table #314: 0 bytes OK
|
||||
2025/12/20-18:36:43.637222 7f2436ffd6c0 Delete type=0 #312
|
||||
2025/12/20-18:36:43.812158 7f2436ffd6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
||||
2026/02/27-17:11:33.729701 7f56f93fe6c0 Recovering log #340
|
||||
2026/02/27-17:11:33.739927 7f56f93fe6c0 Delete type=3 #338
|
||||
2026/02/27-17:11:33.739998 7f56f93fe6c0 Delete type=0 #340
|
||||
2026/02/27-17:22:38.190111 7f54e37ef6c0 Level-0 table #345: started
|
||||
2026/02/27-17:22:38.190141 7f54e37ef6c0 Level-0 table #345: 0 bytes OK
|
||||
2026/02/27-17:22:38.196111 7f54e37ef6c0 Delete type=0 #343
|
||||
2026/02/27-17:22:38.202769 7f54e37ef6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/competences/MANIFEST-000346
Normal file
BIN
packs/competences/MANIFEST-000346
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000327
|
||||
MANIFEST-000358
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/04-21:26:37.858384 7f93eaffd6c0 Recovering log #325
|
||||
2026/01/04-21:26:37.868673 7f93eaffd6c0 Delete type=3 #323
|
||||
2026/01/04-21:26:37.868726 7f93eaffd6c0 Delete type=0 #325
|
||||
2026/01/04-21:27:02.458878 7f93e9ffb6c0 Level-0 table #330: started
|
||||
2026/01/04-21:27:02.458920 7f93e9ffb6c0 Level-0 table #330: 0 bytes OK
|
||||
2026/01/04-21:27:02.465606 7f93e9ffb6c0 Delete type=0 #328
|
||||
2026/01/04-21:27:02.485393 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||
2026/02/28-09:14:40.634961 7f56e3fff6c0 Recovering log #356
|
||||
2026/02/28-09:14:40.683602 7f56e3fff6c0 Delete type=3 #354
|
||||
2026/02/28-09:14:40.683765 7f56e3fff6c0 Delete type=0 #356
|
||||
2026/02/28-11:53:47.414491 7f54e37ef6c0 Level-0 table #361: started
|
||||
2026/02/28-11:53:47.414521 7f54e37ef6c0 Level-0 table #361: 0 bytes OK
|
||||
2026/02/28-11:53:47.420403 7f54e37ef6c0 Delete type=0 #359
|
||||
2026/02/28-11:53:47.427753 7f54e37ef6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/12/20-18:12:56.154781 7f244c9fe6c0 Recovering log #321
|
||||
2025/12/20-18:12:56.203650 7f244c9fe6c0 Delete type=3 #319
|
||||
2025/12/20-18:12:56.206209 7f244c9fe6c0 Delete type=0 #321
|
||||
2025/12/20-18:36:43.812286 7f2436ffd6c0 Level-0 table #326: started
|
||||
2025/12/20-18:36:43.812329 7f2436ffd6c0 Level-0 table #326: 0 bytes OK
|
||||
2025/12/20-18:36:43.867818 7f2436ffd6c0 Delete type=0 #324
|
||||
2025/12/20-18:36:44.048015 7f2436ffd6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||
2026/02/27-17:11:33.765979 7f56f93fe6c0 Recovering log #352
|
||||
2026/02/27-17:11:33.775426 7f56f93fe6c0 Delete type=3 #350
|
||||
2026/02/27-17:11:33.775496 7f56f93fe6c0 Delete type=0 #352
|
||||
2026/02/27-17:22:38.196266 7f54e37ef6c0 Level-0 table #357: started
|
||||
2026/02/27-17:22:38.196298 7f54e37ef6c0 Level-0 table #357: 0 bytes OK
|
||||
2026/02/27-17:22:38.202584 7f54e37ef6c0 Delete type=0 #355
|
||||
2026/02/27-17:22:38.202781 7f54e37ef6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/education/MANIFEST-000358
Normal file
BIN
packs/education/MANIFEST-000358
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000316
|
||||
MANIFEST-000347
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/04-21:26:37.873703 7f93ebfff6c0 Recovering log #314
|
||||
2026/01/04-21:26:37.885324 7f93ebfff6c0 Delete type=3 #312
|
||||
2026/01/04-21:26:37.885427 7f93ebfff6c0 Delete type=0 #314
|
||||
2026/01/04-21:27:02.433342 7f93e9ffb6c0 Level-0 table #319: started
|
||||
2026/01/04-21:27:02.433382 7f93e9ffb6c0 Level-0 table #319: 0 bytes OK
|
||||
2026/01/04-21:27:02.439918 7f93e9ffb6c0 Delete type=0 #317
|
||||
2026/01/04-21:27:02.458692 7f93e9ffb6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
||||
2026/02/28-09:14:40.690048 7f56f9bff6c0 Recovering log #345
|
||||
2026/02/28-09:14:40.753536 7f56f9bff6c0 Delete type=3 #343
|
||||
2026/02/28-09:14:40.753696 7f56f9bff6c0 Delete type=0 #345
|
||||
2026/02/28-11:53:47.440306 7f54e37ef6c0 Level-0 table #350: started
|
||||
2026/02/28-11:53:47.440331 7f54e37ef6c0 Level-0 table #350: 0 bytes OK
|
||||
2026/02/28-11:53:47.446262 7f54e37ef6c0 Delete type=0 #348
|
||||
2026/02/28-11:53:47.453090 7f54e37ef6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/12/20-18:12:56.214726 7f2437fff6c0 Recovering log #310
|
||||
2025/12/20-18:12:56.267981 7f2437fff6c0 Delete type=3 #308
|
||||
2025/12/20-18:12:56.268051 7f2437fff6c0 Delete type=0 #310
|
||||
2025/12/20-18:36:43.756462 7f2436ffd6c0 Level-0 table #315: started
|
||||
2025/12/20-18:36:43.756507 7f2436ffd6c0 Level-0 table #315: 0 bytes OK
|
||||
2025/12/20-18:36:43.812023 7f2436ffd6c0 Delete type=0 #313
|
||||
2025/12/20-18:36:43.812190 7f2436ffd6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
||||
2026/02/27-17:11:33.778709 7f56f8bfd6c0 Recovering log #341
|
||||
2026/02/27-17:11:33.788574 7f56f8bfd6c0 Delete type=3 #339
|
||||
2026/02/27-17:11:33.788626 7f56f8bfd6c0 Delete type=0 #341
|
||||
2026/02/27-17:22:38.202910 7f54e37ef6c0 Level-0 table #346: started
|
||||
2026/02/27-17:22:38.202969 7f54e37ef6c0 Level-0 table #346: 0 bytes OK
|
||||
2026/02/27-17:22:38.209282 7f54e37ef6c0 Delete type=0 #344
|
||||
2026/02/27-17:22:38.228524 7f54e37ef6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/graces/MANIFEST-000347
Normal file
BIN
packs/graces/MANIFEST-000347
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000316
|
||||
MANIFEST-000347
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/04-21:26:37.889654 7f93ea7fc6c0 Recovering log #314
|
||||
2026/01/04-21:26:37.899518 7f93ea7fc6c0 Delete type=3 #312
|
||||
2026/01/04-21:26:37.899583 7f93ea7fc6c0 Delete type=0 #314
|
||||
2026/01/04-21:27:02.472063 7f93e9ffb6c0 Level-0 table #319: started
|
||||
2026/01/04-21:27:02.472086 7f93e9ffb6c0 Level-0 table #319: 0 bytes OK
|
||||
2026/01/04-21:27:02.478114 7f93e9ffb6c0 Delete type=0 #317
|
||||
2026/01/04-21:27:02.485430 7f93e9ffb6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
||||
2026/02/28-09:14:40.758009 7f56f8bfd6c0 Recovering log #345
|
||||
2026/02/28-09:14:40.809385 7f56f8bfd6c0 Delete type=3 #343
|
||||
2026/02/28-09:14:40.809522 7f56f8bfd6c0 Delete type=0 #345
|
||||
2026/02/28-11:53:47.427947 7f54e37ef6c0 Level-0 table #350: started
|
||||
2026/02/28-11:53:47.427981 7f54e37ef6c0 Level-0 table #350: 0 bytes OK
|
||||
2026/02/28-11:53:47.434137 7f54e37ef6c0 Delete type=0 #348
|
||||
2026/02/28-11:53:47.453062 7f54e37ef6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/12/20-18:12:56.274845 7f24377fe6c0 Recovering log #310
|
||||
2025/12/20-18:12:56.318675 7f24377fe6c0 Delete type=3 #308
|
||||
2025/12/20-18:12:56.318757 7f24377fe6c0 Delete type=0 #310
|
||||
2025/12/20-18:36:43.935645 7f2436ffd6c0 Level-0 table #315: started
|
||||
2025/12/20-18:36:43.935673 7f2436ffd6c0 Level-0 table #315: 0 bytes OK
|
||||
2025/12/20-18:36:43.994623 7f2436ffd6c0 Delete type=0 #313
|
||||
2025/12/20-18:36:44.048051 7f2436ffd6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
||||
2026/02/27-17:11:33.790985 7f56e3fff6c0 Recovering log #341
|
||||
2026/02/27-17:11:33.800729 7f56e3fff6c0 Delete type=3 #339
|
||||
2026/02/27-17:11:33.800800 7f56e3fff6c0 Delete type=0 #341
|
||||
2026/02/27-17:22:38.215408 7f54e37ef6c0 Level-0 table #346: started
|
||||
2026/02/27-17:22:38.215437 7f54e37ef6c0 Level-0 table #346: 0 bytes OK
|
||||
2026/02/27-17:22:38.221481 7f54e37ef6c0 Delete type=0 #344
|
||||
2026/02/27-17:22:38.228550 7f54e37ef6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/maladies/MANIFEST-000347
Normal file
BIN
packs/maladies/MANIFEST-000347
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000253
|
||||
MANIFEST-000284
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/04-21:26:37.919630 7f93ebfff6c0 Recovering log #251
|
||||
2026/01/04-21:26:37.930006 7f93ebfff6c0 Delete type=3 #249
|
||||
2026/01/04-21:26:37.930066 7f93ebfff6c0 Delete type=0 #251
|
||||
2026/01/04-21:27:02.478265 7f93e9ffb6c0 Level-0 table #256: started
|
||||
2026/01/04-21:27:02.478296 7f93e9ffb6c0 Level-0 table #256: 0 bytes OK
|
||||
2026/01/04-21:27:02.485146 7f93e9ffb6c0 Delete type=0 #254
|
||||
2026/01/04-21:27:02.485444 7f93e9ffb6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
||||
2026/02/28-09:14:40.881498 7f56f9bff6c0 Recovering log #282
|
||||
2026/02/28-09:14:40.932289 7f56f9bff6c0 Delete type=3 #280
|
||||
2026/02/28-09:14:40.932424 7f56f9bff6c0 Delete type=0 #282
|
||||
2026/02/28-11:53:47.446364 7f54e37ef6c0 Level-0 table #287: started
|
||||
2026/02/28-11:53:47.446388 7f54e37ef6c0 Level-0 table #287: 0 bytes OK
|
||||
2026/02/28-11:53:47.452966 7f54e37ef6c0 Delete type=0 #285
|
||||
2026/02/28-11:53:47.453100 7f54e37ef6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/12/20-18:12:56.387036 7f2437fff6c0 Recovering log #247
|
||||
2025/12/20-18:12:56.440877 7f2437fff6c0 Delete type=3 #245
|
||||
2025/12/20-18:12:56.440965 7f2437fff6c0 Delete type=0 #247
|
||||
2025/12/20-18:36:43.994753 7f2436ffd6c0 Level-0 table #252: started
|
||||
2025/12/20-18:36:43.994783 7f2436ffd6c0 Level-0 table #252: 0 bytes OK
|
||||
2025/12/20-18:36:44.047877 7f2436ffd6c0 Delete type=0 #250
|
||||
2025/12/20-18:36:44.048061 7f2436ffd6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
||||
2026/02/27-17:11:33.815402 7f56f9bff6c0 Recovering log #278
|
||||
2026/02/27-17:11:33.825096 7f56f9bff6c0 Delete type=3 #276
|
||||
2026/02/27-17:11:33.825159 7f56f9bff6c0 Delete type=0 #278
|
||||
2026/02/27-17:22:38.221603 7f54e37ef6c0 Level-0 table #283: started
|
||||
2026/02/27-17:22:38.221636 7f54e37ef6c0 Level-0 table #283: 0 bytes OK
|
||||
2026/02/27-17:22:38.228408 7f54e37ef6c0 Delete type=0 #281
|
||||
2026/02/27-17:22:38.228561 7f54e37ef6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/scenes/MANIFEST-000284
Normal file
BIN
packs/scenes/MANIFEST-000284
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000317
|
||||
MANIFEST-000348
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/04-21:26:37.904069 7f93eaffd6c0 Recovering log #315
|
||||
2026/01/04-21:26:37.914574 7f93eaffd6c0 Delete type=3 #313
|
||||
2026/01/04-21:26:37.914647 7f93eaffd6c0 Delete type=0 #315
|
||||
2026/01/04-21:27:02.465731 7f93e9ffb6c0 Level-0 table #320: started
|
||||
2026/01/04-21:27:02.465755 7f93e9ffb6c0 Level-0 table #320: 0 bytes OK
|
||||
2026/01/04-21:27:02.471938 7f93e9ffb6c0 Delete type=0 #318
|
||||
2026/01/04-21:27:02.485413 7f93e9ffb6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
||||
2026/02/28-09:14:40.813470 7f56f93fe6c0 Recovering log #346
|
||||
2026/02/28-09:14:40.876043 7f56f93fe6c0 Delete type=3 #344
|
||||
2026/02/28-09:14:40.876176 7f56f93fe6c0 Delete type=0 #346
|
||||
2026/02/28-11:53:47.434224 7f54e37ef6c0 Level-0 table #351: started
|
||||
2026/02/28-11:53:47.434247 7f54e37ef6c0 Level-0 table #351: 0 bytes OK
|
||||
2026/02/28-11:53:47.440199 7f54e37ef6c0 Delete type=0 #349
|
||||
2026/02/28-11:53:47.453078 7f54e37ef6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2025/12/20-18:12:56.325650 7f244c9fe6c0 Recovering log #311
|
||||
2025/12/20-18:12:56.379165 7f244c9fe6c0 Delete type=3 #309
|
||||
2025/12/20-18:12:56.379237 7f244c9fe6c0 Delete type=0 #311
|
||||
2025/12/20-18:36:43.867925 7f2436ffd6c0 Level-0 table #316: started
|
||||
2025/12/20-18:36:43.867945 7f2436ffd6c0 Level-0 table #316: 0 bytes OK
|
||||
2025/12/20-18:36:43.935523 7f2436ffd6c0 Delete type=0 #314
|
||||
2025/12/20-18:36:44.048037 7f2436ffd6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
||||
2026/02/27-17:11:33.802695 7f56f93fe6c0 Recovering log #342
|
||||
2026/02/27-17:11:33.813017 7f56f93fe6c0 Delete type=3 #340
|
||||
2026/02/27-17:11:33.813086 7f56f93fe6c0 Delete type=0 #342
|
||||
2026/02/27-17:22:38.209394 7f54e37ef6c0 Level-0 table #347: started
|
||||
2026/02/27-17:22:38.209417 7f54e37ef6c0 Level-0 table #347: 0 bytes OK
|
||||
2026/02/27-17:22:38.215315 7f54e37ef6c0 Delete type=0 #345
|
||||
2026/02/27-17:22:38.228539 7f54e37ef6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
BIN
packs/simples/MANIFEST-000348
Normal file
BIN
packs/simples/MANIFEST-000348
Normal file
Binary file not shown.
371
styles/actor-sheet.css
Normal file
371
styles/actor-sheet.css
Normal file
@@ -0,0 +1,371 @@
|
||||
.editor {
|
||||
border: 2;
|
||||
height: 100%;
|
||||
padding: 0 3px;
|
||||
}
|
||||
.medium-editor {
|
||||
border: 2;
|
||||
height: 240px;
|
||||
max-height: 240px;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
padding: 0 3px;
|
||||
}
|
||||
.medium-editor prose-mirror,
|
||||
.medium-editor .editor,
|
||||
.medium-editor .editor-content,
|
||||
.medium-editor .ProseMirror {
|
||||
overflow: hidden;
|
||||
height: auto;
|
||||
}
|
||||
.small-editor {
|
||||
border: 2;
|
||||
height: 120px;
|
||||
max-height: 120px;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
padding: 0 3px;
|
||||
}
|
||||
.small-editor prose-mirror,
|
||||
.small-editor .editor,
|
||||
.small-editor .editor-content,
|
||||
.small-editor .ProseMirror {
|
||||
overflow: hidden;
|
||||
height: auto;
|
||||
}
|
||||
.questionnaire-reponse {
|
||||
max-width: 42rem;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
.questionnaire-element {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.fvtt-te-deum input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="image"]):not([type="file"]),
|
||||
.fvtt-te-deum select {
|
||||
background: rgba(248, 245, 238, 0.95);
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
border: 1px solid rgba(139, 115, 85, 0.35);
|
||||
border-radius: 3px;
|
||||
padding: 0.15rem 0.3rem;
|
||||
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
.fvtt-te-deum input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="image"]):not([type="file"]):hover,
|
||||
.fvtt-te-deum select:hover {
|
||||
border-color: rgba(139, 115, 85, 0.65);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
|
||||
}
|
||||
.fvtt-te-deum input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="image"]):not([type="file"]):focus,
|
||||
.fvtt-te-deum select:focus {
|
||||
outline: none;
|
||||
border-color: rgba(139, 115, 85, 0.85);
|
||||
box-shadow: 0 0 0 2px rgba(139, 115, 85, 0.2);
|
||||
}
|
||||
.fvtt-te-deum input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="image"]):not([type="file"]):disabled,
|
||||
.fvtt-te-deum select:disabled {
|
||||
color: rgba(19, 18, 18, 0.4);
|
||||
background: rgba(220, 216, 205, 0.6);
|
||||
border-color: rgba(139, 115, 85, 0.15);
|
||||
}
|
||||
.fvtt-te-deum textarea {
|
||||
background: rgba(248, 245, 238, 0.95);
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
border: 1px solid rgba(139, 115, 85, 0.35);
|
||||
border-radius: 3px;
|
||||
padding: 0.2rem 0.4rem;
|
||||
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
.fvtt-te-deum textarea:hover {
|
||||
border-color: rgba(139, 115, 85, 0.65);
|
||||
}
|
||||
.fvtt-te-deum textarea:focus {
|
||||
outline: none;
|
||||
border-color: rgba(139, 115, 85, 0.85);
|
||||
box-shadow: 0 0 0 2px rgba(139, 115, 85, 0.2);
|
||||
}
|
||||
.fvtt-te-deum.window-app .window-content,
|
||||
.fvtt-te-deum.application .window-content,
|
||||
.fvtt-te-deum.window-app.sheet .window-content .sheet-body,
|
||||
.fvtt-te-deum.application.sheet .window-content .sheet-body {
|
||||
font-size: 0.8rem;
|
||||
background: rgba(226, 226, 222, 0.95);
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
}
|
||||
.item-form .sheet-header {
|
||||
background: linear-gradient(135deg, rgba(226, 226, 222, 0.95) 0%, rgba(240, 235, 225, 0.9) 100%);
|
||||
padding: 0.8rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.item-form .sheet-body ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.item-form .sheet-body ul li.flexrow {
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
padding: 0.4rem 0.6rem;
|
||||
margin: 0.3rem 0;
|
||||
border-radius: 4px;
|
||||
border-left: 3px solid rgba(139, 115, 85, 0.3);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
.item-form .sheet-body ul li.flexrow:hover {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
border-left-color: rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.item-form .sheet-body h3 {
|
||||
background: linear-gradient(135deg, rgba(196, 186, 166, 0.6) 0%, rgba(226, 226, 222, 0.5) 100%);
|
||||
padding: 0.4rem 0.6rem;
|
||||
margin: 0.8rem 0 0.4rem 0;
|
||||
border-radius: 4px;
|
||||
border-left: 4px solid rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
font-family: MailartRubberstamp;
|
||||
font-size: 1.1rem;
|
||||
color: #3d3a2e;
|
||||
}
|
||||
.item-form .sheet-body input[type="checkbox"] {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.fvtt-te-deum.application .window-content .sheet-header h1.charname input[name="name"],
|
||||
.fvtt-te-deum.window-app .window-content .sheet-header h1.charname input[name="name"] {
|
||||
font-family: "GreatPrimer";
|
||||
font-size: 3rem;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-bottom: 2px solid rgba(139, 115, 85, 0.4);
|
||||
color: rgba(50, 35, 15, 0.95);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
letter-spacing: 0.05em;
|
||||
transition: border-color 0.2s ease;
|
||||
}
|
||||
.fvtt-te-deum.application .window-content .sheet-header h1.charname input[name="name"]:hover,
|
||||
.fvtt-te-deum.window-app .window-content .sheet-header h1.charname input[name="name"]:hover {
|
||||
border-width: 2px;
|
||||
border-color: rgba(139, 115, 85, 0.7);
|
||||
}
|
||||
.fvtt-te-deum.application .window-content .sheet-header h1.charname input[name="name"]:focus,
|
||||
.fvtt-te-deum.window-app .window-content .sheet-header h1.charname input[name="name"]:focus {
|
||||
border-bottom-color: rgba(139, 115, 85, 0.9);
|
||||
outline: none;
|
||||
}
|
||||
.fvtt-te-deum.application .window-content .item-form .sheet-header h1.charname input[name="name"],
|
||||
.fvtt-te-deum.window-app .window-content .item-form .sheet-header h1.charname input[name="name"] {
|
||||
font-size: 1.6rem;
|
||||
height: auto;
|
||||
}
|
||||
.fvtt-te-deum .sheet-body {
|
||||
padding: 0.25rem 0.5rem;
|
||||
}
|
||||
.fvtt-te-deum .sheet-body:after {
|
||||
content: "";
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
.fvtt-te-deum nav.tabs .item {
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
opacity: 1;
|
||||
color: rgba(29, 28, 31);
|
||||
padding: 0 0.25rem;
|
||||
}
|
||||
.fvtt-te-deum nav.tabs .item:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 2rem;
|
||||
width: 1px;
|
||||
}
|
||||
.select-diff {
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
width: 50px;
|
||||
}
|
||||
.fvtt-te-deum.window-app.sheet .window-content .carac-value,
|
||||
.fvtt-te-deum.application.sheet .window-content .carac-value,
|
||||
.fvtt-te-deum.window-app.sheet .window-content .competence-xp,
|
||||
.fvtt-te-deum.application.sheet .window-content .competence-xp {
|
||||
margin: 0.05rem;
|
||||
flex-basis: 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
.fvtt-te-deum h1,
|
||||
.fvtt-te-deum h2,
|
||||
.fvtt-te-deum h3,
|
||||
.fvtt-te-deum h4 {
|
||||
font-weight: bold;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
}
|
||||
.fvtt-te-deum .malus-sante {
|
||||
font-size: 0.88rem;
|
||||
font-weight: normal;
|
||||
}
|
||||
.fvtt-te-deum .malus-sante-active {
|
||||
color: rgba(200, 80, 10, 0.95);
|
||||
font-weight: bold;
|
||||
}
|
||||
.fvtt-te-deum ul,
|
||||
.fvtt-te-deum ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.fvtt-te-deum ul,
|
||||
.fvtt-te-deum li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.header-fields li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.alterne-list > .list-item:hover {
|
||||
background: rgba(226, 226, 222, 0.4);
|
||||
transform: translateX(2px);
|
||||
}
|
||||
.alterne-list > .list-item:nth-child(even) {
|
||||
background: rgba(240, 235, 225, 0.3);
|
||||
}
|
||||
.alterne-list > .list-item:nth-child(odd) {
|
||||
background: rgba(250, 245, 235, 0.2);
|
||||
}
|
||||
.specialisation-label {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.carac-label,
|
||||
.attr-label {
|
||||
font-weight: bold;
|
||||
}
|
||||
.list-item {
|
||||
margin: 0.125rem;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 0.3rem;
|
||||
padding: 0.3rem 0.4rem;
|
||||
flex: 1 1 5rem;
|
||||
border: 1px solid rgba(139, 115, 85, 0.15);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
.list-item:hover {
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
border-color: rgba(139, 115, 85, 0.3);
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
.list-item-shadow {
|
||||
background: linear-gradient(135deg, rgba(170, 168, 167, 0.25) 0%, rgba(200, 195, 185, 0.2) 100%);
|
||||
flex-grow: 0;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
border-left: 3px solid rgba(139, 115, 85, 0.3);
|
||||
}
|
||||
.list-item-shadow2 {
|
||||
background: linear-gradient(135deg, rgba(87, 60, 32, 0.2) 0%, rgba(120, 90, 60, 0.15) 100%);
|
||||
flex-grow: 0;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
border-left: 3px solid rgba(87, 60, 32, 0.4);
|
||||
}
|
||||
.item-display-show {
|
||||
display: block;
|
||||
}
|
||||
.item-display-hide {
|
||||
display: none;
|
||||
}
|
||||
.item-quantite {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
.list-item-margin1 {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
.list-item-margin2 {
|
||||
margin-left: 2rem;
|
||||
}
|
||||
.list-item-margin3 {
|
||||
margin-left: 3rem;
|
||||
}
|
||||
.list-item-margin4 {
|
||||
margin-left: 4rem;
|
||||
}
|
||||
.sheet-competence-img {
|
||||
width: 24px;
|
||||
max-width: 24px;
|
||||
height: 24px;
|
||||
max-height: 24px;
|
||||
flex-grow: 0;
|
||||
margin-right: 0.25rem;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
}
|
||||
.competence-column {
|
||||
flex-direction: column;
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
flex-grow: 0;
|
||||
flex-basis: 1;
|
||||
}
|
||||
.competence-header {
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
font-weight: bold;
|
||||
flex-grow: 0;
|
||||
}
|
||||
.comp-li {
|
||||
max-width: 8rem;
|
||||
width: 8rem;
|
||||
}
|
||||
.description-label {
|
||||
flex-grow: 2;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.status-header-label {
|
||||
margin-left: 2px;
|
||||
}
|
||||
.roll-dialog-label {
|
||||
margin: 4px 0;
|
||||
min-width: 96px;
|
||||
}
|
||||
.short-label {
|
||||
flex-grow: 1;
|
||||
}
|
||||
.keyword-label {
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
.item-sheet-label {
|
||||
flex-grow: 1;
|
||||
}
|
||||
.item-text-long-line {
|
||||
flex-grow: 3;
|
||||
}
|
||||
.score-label {
|
||||
flex-grow: 2;
|
||||
align-content: center;
|
||||
}
|
||||
.attribut-value,
|
||||
.carac-value {
|
||||
flex-grow: 0;
|
||||
flex-basis: 64px;
|
||||
margin-right: 4px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.sante-value,
|
||||
.competence-value {
|
||||
flex-grow: 0;
|
||||
flex-basis: 2rem;
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
.description-value {
|
||||
flex-grow: 0;
|
||||
flex-basis: 4rem;
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
.small-label {
|
||||
margin-top: 5px;
|
||||
}
|
||||
186
styles/base.css
Normal file
186
styles/base.css
Normal file
@@ -0,0 +1,186 @@
|
||||
.fvtt-te-deum.window-app,
|
||||
.fvtt-te-deum.application {
|
||||
text-align: justify;
|
||||
font-size: 16px;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
.fvtt-te-deum.window-app.sheet .window-content,
|
||||
.fvtt-te-deum.application.sheet .window-content {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "GreatPrimer";
|
||||
}
|
||||
.fvtt-te-deum.window-app.sheet .window-content .sheet-header,
|
||||
.fvtt-te-deum.application.sheet .window-content .sheet-header {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: rgba(226, 226, 222, 0.95);
|
||||
}
|
||||
.fvtt-te-deum.window-app.sheet .window-content .tooltip:hover .tooltiptext,
|
||||
.fvtt-te-deum.application.sheet .window-content .tooltip:hover .tooltiptext {
|
||||
top: 2rem;
|
||||
left: 2rem;
|
||||
margin: 0;
|
||||
padding: 0.25rem;
|
||||
}
|
||||
.fvtt-te-deum.sheet header.sheet-header h1 input,
|
||||
.window-app .window-header,
|
||||
.application .window-header,
|
||||
#actors .directory-list,
|
||||
#navigation #scene-list .scene.nav-item {
|
||||
font-size: 1rem;
|
||||
}
|
||||
.fvtt-te-deum.sheet nav.sheet-tabs,
|
||||
.fvtt-te-deum.sheet nav.tabs {
|
||||
font-size: 0.8rem;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
height: 3rem;
|
||||
flex: 0 0 3rem;
|
||||
margin: 0;
|
||||
padding: 0 0 0 0.25rem;
|
||||
text-align: center;
|
||||
line-height: 1.5rem;
|
||||
border-top: 0 none;
|
||||
border-bottom: 0 none;
|
||||
background: linear-gradient(rgba(226, 226, 222, 0.5), rgba(226, 226, 222, 0.5)), url("../images/ui/frise_bottom_01.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
.fvtt-te-deum.sheet header.sheet-header .profile-img {
|
||||
-o-object-fit: cover;
|
||||
object-fit: cover;
|
||||
-o-object-position: 50% 0;
|
||||
object-position: 50% 0;
|
||||
margin: 0.5rem 0 0.5rem 0.5rem;
|
||||
padding: 0;
|
||||
}
|
||||
.fvtt-te-deum.sheet header.sheet-header .flex-compteurs {
|
||||
text-align: right;
|
||||
}
|
||||
.fvtt-te-deum.sheet header.sheet-header .resource-content {
|
||||
width: 2rem;
|
||||
}
|
||||
.fvtt-te-deum.sheet .tab[data-tab] {
|
||||
padding: 0;
|
||||
}
|
||||
.fvtt-te-deum.sheet li {
|
||||
margin: 0.2rem;
|
||||
padding: 0.15rem;
|
||||
}
|
||||
.fvtt-te-deum.window-app input,
|
||||
.fvtt-te-deum.application input,
|
||||
.fvtt-te-deum .item-form,
|
||||
.fvtt-te-deum.sheet header.sheet-header .flex-group-center.flex-compteurs,
|
||||
.fvtt-te-deum.sheet header.sheet-header .flex-group-center.flex-fatigue,
|
||||
.fvtt-te-deum select,
|
||||
.fvtt-te-deum button,
|
||||
.item-checkbox,
|
||||
#sidebar,
|
||||
#players,
|
||||
#navigation #nav-toggle {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.window-header {
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
.strong-text {
|
||||
font-weight: bold;
|
||||
}
|
||||
.fvtt-te-deum .tabs .item.active,
|
||||
.fvtt-te-deum .blessures-list li ul li:first-child:hover,
|
||||
.fvtt-te-deum a:hover {
|
||||
text-shadow: 1px 0px 0px #ff6600;
|
||||
}
|
||||
.rollable:hover,
|
||||
.rollable:focus {
|
||||
color: #000;
|
||||
text-shadow: 0 0 10px red;
|
||||
cursor: pointer;
|
||||
}
|
||||
li.folder > .folder-header h3 {
|
||||
color: #aaa;
|
||||
}
|
||||
.fvtt-te-deum table {
|
||||
border: 1px solid #7a7971;
|
||||
}
|
||||
.grid,
|
||||
.grid-2col {
|
||||
display: grid;
|
||||
grid-column: span 2 / span 2;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
grid-gap: 10px;
|
||||
gap: 10px;
|
||||
margin: 10px 0;
|
||||
padding: 0;
|
||||
}
|
||||
.grid-3col {
|
||||
grid-column: span 3 / span 3;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
}
|
||||
.grid-4col {
|
||||
grid-column: span 4 / span 4;
|
||||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||
}
|
||||
.grid-5col {
|
||||
grid-column: span 5 / span 5;
|
||||
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||
}
|
||||
.grid-6col {
|
||||
grid-column: span 5 / span 5;
|
||||
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||
}
|
||||
.grid-7col {
|
||||
grid-column: span 7 / span 7;
|
||||
grid-template-columns: repeat(7, minmax(0, 1fr));
|
||||
}
|
||||
.grid-8col {
|
||||
grid-column: span 8 / span 8;
|
||||
grid-template-columns: repeat(8, minmax(0, 1fr));
|
||||
}
|
||||
.grid-9col {
|
||||
grid-column: span 9 / span 9;
|
||||
grid-template-columns: repeat(9, minmax(0, 1fr));
|
||||
}
|
||||
.grid-10col {
|
||||
grid-column: span 10 / span 10;
|
||||
grid-template-columns: repeat(10, minmax(0, 1fr));
|
||||
}
|
||||
.grid-11col {
|
||||
grid-column: span 11 / span 11;
|
||||
grid-template-columns: repeat(11, minmax(0, 1fr));
|
||||
}
|
||||
.grid-12col {
|
||||
grid-column: span 12 / span 12;
|
||||
grid-template-columns: repeat(12, minmax(0, 1fr));
|
||||
}
|
||||
.flex-group-center,
|
||||
.flex-group-left,
|
||||
.flex-group-right {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
}
|
||||
.flex-group-left {
|
||||
justify-content: flex-start;
|
||||
text-align: left;
|
||||
}
|
||||
.flex-group-right {
|
||||
justify-content: flex-end;
|
||||
text-align: right;
|
||||
}
|
||||
.flex-center {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
.table-create-actor {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.flex-between {
|
||||
justify-content: space-between;
|
||||
}
|
||||
.flex-shrink {
|
||||
flex: "flex-shrink";
|
||||
}
|
||||
466
styles/chat.css
Normal file
466
styles/chat.css
Normal file
@@ -0,0 +1,466 @@
|
||||
.chat-message-header {
|
||||
background: linear-gradient(135deg, rgba(226, 226, 222, 0.95) 0%, rgba(196, 186, 166, 0.9) 100%);
|
||||
font-size: 0.9rem;
|
||||
min-height: 26px;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-bottom: 2px solid rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
padding: 0.1rem 0.3rem;
|
||||
border-radius: 6px 6px 0 0;
|
||||
}
|
||||
.chat-message .message-header .flavor-text,
|
||||
.chat-message .message-header .whisper-to {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.chat-result-text {
|
||||
font-weight: bold;
|
||||
font-family: GreatPrimer;
|
||||
font-size: 1.1rem;
|
||||
color: rgba(80, 50, 15, 0.95);
|
||||
padding: 0 0 0.1rem 0;
|
||||
line-height: 1.3;
|
||||
border-bottom: 1px solid rgba(139, 115, 85, 0.4);
|
||||
display: block;
|
||||
margin-bottom: 0.2rem;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
.chat-actor-name {
|
||||
font-weight: bold;
|
||||
font-family: GreatPrimer;
|
||||
font-size: 1.1rem;
|
||||
color: rgba(80, 50, 15, 0.95);
|
||||
line-height: 1;
|
||||
letter-spacing: 0.03em;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.chat-actor-name-opposition {
|
||||
font-weight: bold;
|
||||
font-family: GreatPrimer;
|
||||
font-size: 1.1rem;
|
||||
color: rgba(80, 50, 15, 0.95);
|
||||
padding: 0.1rem 0.3rem;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
.chat-result-success {
|
||||
color: #2d5016;
|
||||
background: linear-gradient(135deg, rgba(144, 238, 144, 0.3), rgba(107, 186, 107, 0.25));
|
||||
padding: 0.25rem 0.6rem;
|
||||
border-radius: 4px;
|
||||
border-left: 3px solid #4a7c2c;
|
||||
display: inline-block;
|
||||
margin: 0.15rem 0;
|
||||
box-shadow: 0 1px 3px rgba(45, 80, 22, 0.2);
|
||||
font-weight: bold;
|
||||
}
|
||||
.chat-result-failure {
|
||||
color: #7a1a1a;
|
||||
background: linear-gradient(135deg, rgba(255, 160, 160, 0.3), rgba(205, 120, 120, 0.25));
|
||||
padding: 0.25rem 0.6rem;
|
||||
border-radius: 4px;
|
||||
border-left: 3px solid #a82020;
|
||||
display: inline-block;
|
||||
margin: 0.15rem 0;
|
||||
box-shadow: 0 1px 3px rgba(122, 26, 26, 0.2);
|
||||
font-weight: bold;
|
||||
}
|
||||
.chat-img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
.chat-command-img {
|
||||
border: 0px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.chat-command-img:hover {
|
||||
transform: scale(1.1);
|
||||
box-shadow: 0 3px 8px rgba(255, 102, 0, 0.4);
|
||||
}
|
||||
.chat-result-column {
|
||||
min-width: 70%;
|
||||
width: 70%;
|
||||
}
|
||||
.roll-dialog-header {
|
||||
background: linear-gradient(135deg, rgba(226, 226, 222, 0.95) 0%, rgba(196, 186, 166, 0.9) 100%);
|
||||
min-height: 48px;
|
||||
padding: 0.4rem 0.6rem;
|
||||
border-radius: 6px 6px 0 0;
|
||||
border-bottom: 2px solid rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.roll-dialog-header .actor-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid rgba(139, 115, 85, 0.5);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
.roll-dialog-header .dialog-roll-title {
|
||||
font-family: GreatPrimer;
|
||||
font-size: 1.1rem;
|
||||
margin: 0;
|
||||
color: #3d3a2e;
|
||||
text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.actor-icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
padding: 1px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid rgba(139, 115, 85, 0.5);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
|
||||
flex-shrink: 0;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
.padding-dice {
|
||||
padding-top: 0.2rem;
|
||||
padding-bottom: 0.2rem;
|
||||
}
|
||||
.dice-image {
|
||||
box-sizing: border-box;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
max-width: 100%;
|
||||
}
|
||||
.dice-image-reroll {
|
||||
background-color: rgba(115, 224, 115, 0.25);
|
||||
border-color: #011d33;
|
||||
box-sizing: border-box;
|
||||
border: 1px;
|
||||
border-radius: 0%;
|
||||
max-width: 100%;
|
||||
}
|
||||
.chat-dice {
|
||||
width: 15%;
|
||||
height: 15%;
|
||||
font-size: 15px;
|
||||
padding: 10px;
|
||||
padding-bottom: 20px;
|
||||
padding-top: 0.2rem;
|
||||
padding-bottom: 0.2rem;
|
||||
}
|
||||
.div-center {
|
||||
align-self: center;
|
||||
}
|
||||
.chat-message {
|
||||
background: rgba(240, 235, 225, 0.95);
|
||||
font-size: 0.9rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
}
|
||||
.chat-message.whisper {
|
||||
background: rgba(220, 220, 210, 0.85);
|
||||
border: 2px solid #545469;
|
||||
box-shadow: 0 3px 10px rgba(84, 84, 105, 0.3);
|
||||
}
|
||||
.chat-message .chat-icon {
|
||||
border: 0;
|
||||
padding: 2px 6px 2px 2px;
|
||||
float: left;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
.ability-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
max-width: 32px;
|
||||
max-height: 32px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
.small-ability-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
max-width: 16px;
|
||||
max-height: 16px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
.combat-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
max-width: 24px;
|
||||
max-height: 24px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
#sidebar-tabs {
|
||||
flex: 0 0 32px;
|
||||
box-sizing: border-box;
|
||||
margin: 0 0 5px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0);
|
||||
box-shadow: inset 0 0 2rem rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
#sidebar-tabs > .item.active {
|
||||
border: 1px solid #726248;
|
||||
background: rgba(30, 25, 20, 0.75);
|
||||
box-shadow: 0 0 6px inset #726248;
|
||||
}
|
||||
#controls .scene-control,
|
||||
#controls .control-tool {
|
||||
box-shadow: 0 0 3px #000;
|
||||
margin: 0 0 8px;
|
||||
border-radius: 0;
|
||||
background: #1e1914;
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
}
|
||||
#controls .scene-control.active,
|
||||
#controls .control-tool.active,
|
||||
#controls .scene-control:hover,
|
||||
#controls .control-tool:hover {
|
||||
background: #482e1c;
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
box-shadow: 0 0 3px #ff6400;
|
||||
}
|
||||
#hotbar #action-bar #macro-list {
|
||||
border: 1px solid #482e1c;
|
||||
box-shadow: 2px 2px 5px #000000;
|
||||
}
|
||||
#hotbar #action-bar .macro {
|
||||
-o-border-image: url(img/ui/bg_control.jpg) 21 repeat;
|
||||
border-image: url(img/ui/bg_control.jpg) 21 repeat;
|
||||
border-image-slice: 6 6 6 6 fill;
|
||||
border-image-width: 6px 6px 6px 6px;
|
||||
border-image-outset: 0px 0px 0px 0px;
|
||||
border-radius: 0px;
|
||||
}
|
||||
#hotbar .bar-controls {
|
||||
background: #1e1914;
|
||||
border: 1px solid #482e1c;
|
||||
}
|
||||
#players {
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
background: #1e1914;
|
||||
}
|
||||
#navigation #scene-list .scene.nav-item {
|
||||
background: #1e1914;
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
}
|
||||
#navigation #scene-list .scene.nav-item.active {
|
||||
background: #482e1c;
|
||||
}
|
||||
#navigation #nav-toggle {
|
||||
background: #1e1914;
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
}
|
||||
#navigation #scene-list .scene.view,
|
||||
#navigation #scene-list .scene.context {
|
||||
background: #482e1c;
|
||||
background-origin: padding-box;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
box-shadow: 0 0 3px #ff6400;
|
||||
}
|
||||
.chat-card-button {
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(to bottom, rgba(33, 55, 74, 0.98824) 5%, rgba(21, 40, 51, 0.67059) 100%);
|
||||
background-color: rgba(125, 93, 59, 0);
|
||||
border-radius: 3px;
|
||||
border: 2px ridge #846109;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
color: #ffffff;
|
||||
font-size: 0.8rem;
|
||||
padding: 4px 12px 0px 12px;
|
||||
text-decoration: none;
|
||||
text-shadow: 0px 1px 0px #4d3534;
|
||||
position: relative;
|
||||
margin: 2px;
|
||||
}
|
||||
.chat-card-button:hover {
|
||||
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||
background-color: red;
|
||||
}
|
||||
.chat-card-button:active {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
.plus-minus-button {
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(to bottom, rgba(33, 55, 74, 0.98824) 5%, rgba(21, 40, 51, 0.67059) 100%);
|
||||
background-color: rgba(125, 93, 59, 0);
|
||||
border-radius: 2px;
|
||||
border: 1px ridge #846109;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
color: #ffffff;
|
||||
margin: 2px 2px 2px 2px;
|
||||
padding: 2px 2px 2px 2px;
|
||||
text-decoration: none;
|
||||
text-shadow: 0px 1px 0px #4d3534;
|
||||
position: relative;
|
||||
margin: 0px;
|
||||
}
|
||||
.plus-minus-button:hover,
|
||||
.chat-card-button:hover {
|
||||
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||
background-color: red;
|
||||
}
|
||||
.plus-minus-button:active,
|
||||
.chat-card-button:active {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
.plus-minus {
|
||||
font-size: 0.9rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
.ul-level1 {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
#pause {
|
||||
font-size: 2rem;
|
||||
}
|
||||
#pause > h3 {
|
||||
color: #ccc;
|
||||
}
|
||||
#pause > img {
|
||||
content: url(../images/ui/logo_tedeum_pause.webp);
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
top: -200px;
|
||||
left: calc(50% - 132px);
|
||||
}
|
||||
#logo {
|
||||
content: url(../images/ui/logo_tedeum_pause.webp);
|
||||
width: 100px;
|
||||
height: 60px;
|
||||
}
|
||||
.dice-cell {
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
.dice-formula,
|
||||
.dice-total {
|
||||
height: 54px;
|
||||
position: relative;
|
||||
}
|
||||
.chat-roll-details {
|
||||
background: rgba(255, 255, 255, 0.4);
|
||||
border-radius: 4px;
|
||||
padding: 0.4rem 0.5rem;
|
||||
margin: 0.25rem 0;
|
||||
border: 1px solid rgba(139, 115, 85, 0.25);
|
||||
}
|
||||
.chat-roll-details ul {
|
||||
margin: 0;
|
||||
padding-left: 0.8rem;
|
||||
}
|
||||
.chat-roll-details ul li {
|
||||
padding: 0.05rem 0;
|
||||
line-height: 1.25;
|
||||
}
|
||||
.chat-roll-details ul li strong {
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
}
|
||||
.chat-roll-result-section {
|
||||
background: linear-gradient(135deg, rgba(255, 250, 240, 0.6), rgba(245, 240, 230, 0.5));
|
||||
border-radius: 4px;
|
||||
padding: 0.35rem;
|
||||
margin: 0.2rem 0;
|
||||
border: 2px solid rgba(139, 115, 85, 0.3);
|
||||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.chat-roll-result-section .chat-total-result {
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
color: #3d3a2e;
|
||||
text-align: center;
|
||||
padding: 0.25rem;
|
||||
background: rgba(226, 226, 222, 0.5);
|
||||
border-radius: 4px;
|
||||
margin-bottom: 0.25rem;
|
||||
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.chat-dice-formula {
|
||||
display: inline-block;
|
||||
background: rgba(139, 115, 85, 0.15);
|
||||
padding: 0.15rem 0.4rem;
|
||||
border-radius: 3px;
|
||||
font-family: monospace;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
color: #5a4a3a;
|
||||
font-weight: 600;
|
||||
}
|
||||
.chat-difficulty-badge {
|
||||
display: inline-block;
|
||||
background: linear-gradient(135deg, rgba(180, 160, 130, 0.4), rgba(160, 140, 110, 0.35));
|
||||
padding: 0.15rem 0.5rem;
|
||||
border-radius: 10px;
|
||||
font-weight: bold;
|
||||
border: 1px solid rgba(139, 115, 85, 0.4);
|
||||
color: #4a3a2a;
|
||||
font-size: 0.85em;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.chat-info-badge {
|
||||
display: inline-block;
|
||||
background: rgba(100, 149, 237, 0.15);
|
||||
padding: 0.15rem 0.4rem;
|
||||
border-radius: 3px;
|
||||
border-left: 2px solid rgba(70, 130, 180, 0.6);
|
||||
margin: 0.08rem 0;
|
||||
font-size: 0.8em;
|
||||
color: #2c4a6a;
|
||||
}
|
||||
.chat-warning-badge {
|
||||
display: inline-block;
|
||||
background: rgba(255, 200, 100, 0.2);
|
||||
padding: 0.15rem 0.4rem;
|
||||
border-radius: 3px;
|
||||
border-left: 2px solid rgba(218, 165, 32, 0.7);
|
||||
margin: 0.08rem 0;
|
||||
font-size: 0.8em;
|
||||
color: #7a5a1a;
|
||||
}
|
||||
.chat-actions-bar {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 0.3rem;
|
||||
padding: 0.4rem;
|
||||
background: rgba(226, 226, 222, 0.4);
|
||||
border-top: 1px solid rgba(139, 115, 85, 0.25);
|
||||
border-radius: 0 0 6px 6px;
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
.chat-actions-bar a {
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
.chat-actions-bar a:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
.chat-negative-dice {
|
||||
display: inline-block;
|
||||
background: linear-gradient(135deg, rgba(255, 100, 100, 0.2), rgba(220, 80, 80, 0.15));
|
||||
padding: 0.2rem 0.5rem;
|
||||
border-radius: 4px;
|
||||
border: 2px solid rgba(178, 34, 34, 0.4);
|
||||
font-weight: bold;
|
||||
color: #8b0000;
|
||||
margin: 0.15rem 0;
|
||||
box-shadow: 0 1px 3px rgba(178, 34, 34, 0.2);
|
||||
}
|
||||
191
styles/dialogs.css
Normal file
191
styles/dialogs.css
Normal file
@@ -0,0 +1,191 @@
|
||||
.te-deum-roll-dialog .window-header {
|
||||
border-radius: 10px 10px 0% 0%;
|
||||
}
|
||||
.te-deum-roll-dialog .window-content {
|
||||
border-radius: 0% 0% 10px 10px;
|
||||
}
|
||||
.skill-roll-dialog {
|
||||
background: linear-gradient(135deg, rgba(240, 235, 225, 0.98) 0%, rgba(250, 245, 235, 0.95) 100%);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
overflow: hidden;
|
||||
}
|
||||
.skill-roll-dialog .flexcol {
|
||||
padding: 0.6rem 0.8rem;
|
||||
gap: 0.4rem;
|
||||
}
|
||||
.skill-roll-dialog .flexrow {
|
||||
margin: 0.3rem 0;
|
||||
padding: 0.4rem 0.5rem;
|
||||
background: rgba(255, 255, 255, 0.4);
|
||||
border-radius: 4px;
|
||||
border-left: 3px solid rgba(139, 115, 85, 0.3);
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
.skill-roll-dialog .flexrow:hover {
|
||||
background: rgba(255, 255, 255, 0.6);
|
||||
border-left-color: rgba(139, 115, 85, 0.6);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.skill-roll-dialog .roll-dialog-label {
|
||||
font-family: GreatPrimer;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
color: #3d3a2e;
|
||||
min-width: 140px;
|
||||
}
|
||||
.skill-roll-dialog .roll-dialog-label:first-child {
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
font-weight: 700;
|
||||
}
|
||||
.skill-roll-dialog input[type="checkbox"] {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.skill-roll-dialog div {
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.skill-roll-dialog .sheet-footer {
|
||||
padding: 0.5rem 0.8rem;
|
||||
gap: 0.5rem;
|
||||
border-top: 1px solid rgba(139, 115, 85, 0.3);
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.skill-roll-dialog .sheet-footer button {
|
||||
flex: 1;
|
||||
padding: 0.4rem 0.8rem;
|
||||
border-radius: 4px;
|
||||
font-family: "GreatPrimer";
|
||||
font-size: 0.9rem;
|
||||
cursor: pointer;
|
||||
border: 1px solid rgba(139, 115, 85, 0.5);
|
||||
background: linear-gradient(135deg, rgba(196, 186, 166, 0.8) 0%, rgba(226, 226, 222, 0.9) 100%);
|
||||
color: rgba(50, 35, 15, 0.95);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
.skill-roll-dialog .sheet-footer button:hover {
|
||||
background: linear-gradient(135deg, #c4baa6 0%, #d2cdc3 100%);
|
||||
border-color: rgba(139, 115, 85, 0.8);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.confront-dice {
|
||||
border-width: 0px;
|
||||
}
|
||||
.bonus-spec {
|
||||
max-width: 48px;
|
||||
}
|
||||
.confront-bonus-container {
|
||||
position: relative;
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
color: black;
|
||||
}
|
||||
.pool-list {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.corps-combat-block {
|
||||
position: relative;
|
||||
width: 600px;
|
||||
height: 600px;
|
||||
}
|
||||
.silhouette-combat-picture {
|
||||
width: 250px;
|
||||
max-width: 250px;
|
||||
border: 0;
|
||||
}
|
||||
.silhouette-combat-block {
|
||||
position: absolute;
|
||||
background: white;
|
||||
border-color: darkgray;
|
||||
border-style: ridge;
|
||||
border: 1;
|
||||
width: 180px;
|
||||
min-height: 84px;
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
font-size: 0.8rem;
|
||||
align-self: center;
|
||||
overflow: visible;
|
||||
}
|
||||
.silhouette-combat-space {
|
||||
width: 60px;
|
||||
min-width: 60px;
|
||||
}
|
||||
.center-content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.chat-message .message {
|
||||
font-family: "GreatPrimer";
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.fvtt-te-deum-character-creator {
|
||||
/*background: rgba(226, 226, 222, 0.95);*/
|
||||
font-family: "GreatPrimer";
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.fvtt-te-deum-character-creator .field-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
.fvtt-te-deum-character-creator .form-group label {
|
||||
color: rgba(30, 25, 15, 0.9);
|
||||
}
|
||||
.fvtt-te-deum-character-creator .status-section {
|
||||
display: block;
|
||||
max-width: 34rem;
|
||||
}
|
||||
.fvtt-te-deum-character-creator .creator-finished-section {
|
||||
display: block;
|
||||
max-width: 34rem;
|
||||
text-align: center;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.fvtt-te-deum-character-creator .stage-main-details {
|
||||
text-align: center;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
.grace-texte {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
.chat-welcome {
|
||||
text-align: center;
|
||||
}
|
||||
.item-name-label {
|
||||
min-width: 12rem;
|
||||
}
|
||||
.compendium-sidebar .directory-item.compendium.locked .compendium-name {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.compendium-sidebar .directory-item.compendium .compendium-name {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.compendium-sidebar .directory-item.compendium:hover .compendium-name {
|
||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||
background: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.compendium-sidebar .directory-item.compendium .compendium-footer .source {
|
||||
display: inline-block;
|
||||
font-size: var(--font-size-12);
|
||||
padding: 1px 0.5rem 0 0.25rem;
|
||||
border-radius: 0 3px 0 0;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.tedeum-create-character {
|
||||
align-self: anchor-center;
|
||||
}
|
||||
.message-chat-center {
|
||||
text-align: center;
|
||||
}
|
||||
.welcome-message-h3 {
|
||||
font-size: 1.2rem;
|
||||
text-align: center;
|
||||
margin-bottom: 0.5rem;
|
||||
color: darkred;
|
||||
}
|
||||
324
styles/items.css
Normal file
324
styles/items.css
Normal file
@@ -0,0 +1,324 @@
|
||||
.padd-right {
|
||||
margin-right: 8px;
|
||||
}
|
||||
.padd-left {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.fortune-row {
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
padding: 0.3rem 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.fortune-row label {
|
||||
flex: 0 0 auto;
|
||||
min-width: unset;
|
||||
font-weight: 600;
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
}
|
||||
.fortune-row input {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
.stack-left {
|
||||
align-items: center;
|
||||
flex-shrink: 1;
|
||||
flex-grow: 0;
|
||||
}
|
||||
.packed-left {
|
||||
white-space: nowrap;
|
||||
flex-grow: 0;
|
||||
}
|
||||
.input-numeric-short {
|
||||
width: 52px;
|
||||
max-width: 52px;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
flex-basis: 52px;
|
||||
margin-right: 0.15rem;
|
||||
margin-left: 0.15rem;
|
||||
}
|
||||
.abilities-table {
|
||||
align-content: flex-start;
|
||||
}
|
||||
.tokenhudext {
|
||||
display: flex;
|
||||
flex: 0 !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
.tokenhudext.left {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: 2.75rem;
|
||||
right: 4rem;
|
||||
}
|
||||
.tokenhudext.right {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
top: 2.75rem;
|
||||
left: 4rem;
|
||||
}
|
||||
.control-icon.tokenhudicon {
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
height: -moz-fit-content;
|
||||
height: fit-content;
|
||||
min-width: 6rem;
|
||||
flex-basis: auto;
|
||||
padding: 0;
|
||||
line-height: 1rem;
|
||||
margin: 0.25rem;
|
||||
}
|
||||
.control-icon.tokenhudicon.right {
|
||||
margin-left: 8px;
|
||||
}
|
||||
#token-hud .status-effects.active {
|
||||
z-index: 2;
|
||||
}
|
||||
.token-sheet .window-content .flexcol .sheet-tabs {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.item-checkbox {
|
||||
height: 25px;
|
||||
border: 1px solid rgba(115, 105, 83, 0.65098);
|
||||
border-left: none;
|
||||
font-weight: 500;
|
||||
font-size: 1rem;
|
||||
color: black;
|
||||
padding-top: 5px;
|
||||
margin-right: 0px;
|
||||
width: 45px;
|
||||
position: relative;
|
||||
left: 0px;
|
||||
text-align: center;
|
||||
}
|
||||
.skill-label {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
.skill-good-checkbox {
|
||||
max-height: 10px;
|
||||
max-width: 10px;
|
||||
}
|
||||
.flex-actions-bar {
|
||||
flex-grow: 2;
|
||||
}
|
||||
#sidebar {
|
||||
font-size: 1rem;
|
||||
background-color: #f5f5f5;
|
||||
background-position: 0px 35px;
|
||||
background-repeat: no-repeat;
|
||||
background: rgba(226, 226, 222, 0.95);
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
}
|
||||
#sidebar.collapsed {
|
||||
height: 470px !important;
|
||||
}
|
||||
#sidebar #sidebar-tabs i {
|
||||
display: inline-block;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
#sidebar-tabs > .collapsed,
|
||||
#chat-controls .chat-control-icon {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
.sidebar-tab .directory-list .entity {
|
||||
border-top: 1px rgba(0, 0, 0, 0.25);
|
||||
border-bottom: 0 none;
|
||||
padding: 0.25rem 0;
|
||||
}
|
||||
.sidebar-tab .directory-list .entity:hover {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
cursor: pointer;
|
||||
}
|
||||
.status-small-label {
|
||||
font-size: 0.65rem;
|
||||
}
|
||||
.no-grow {
|
||||
flex-grow: 1;
|
||||
max-width: 32px;
|
||||
}
|
||||
.status-col-name {
|
||||
max-width: 72px;
|
||||
}
|
||||
.img-no-border {
|
||||
max-width: 48px;
|
||||
max-height: 48px;
|
||||
border: 0px;
|
||||
}
|
||||
.items-title-bg {
|
||||
margin-top: 6px;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: linear-gradient(135deg, rgba(196, 186, 166, 0.6) 0%, rgba(226, 226, 222, 0.5) 100%);
|
||||
border-radius: 4px;
|
||||
padding: 0.3rem 0.5rem;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
border-left: 4px solid rgba(139, 115, 85, 0.6);
|
||||
}
|
||||
.items-title-bg h3 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 1.15rem;
|
||||
font-weight: 600;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
}
|
||||
.item-name-label-header-long2 {
|
||||
flex-grow: 1;
|
||||
max-width: 14rem;
|
||||
min-width: 14rem;
|
||||
}
|
||||
.impact-box {
|
||||
border-width: 2px;
|
||||
border-color: #000000;
|
||||
border-radius: 6px;
|
||||
border: 2px ridge #443307;
|
||||
margin: 4px;
|
||||
padding: 4px;
|
||||
}
|
||||
.impact-title {
|
||||
font-size: bold;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
text-align: center;
|
||||
}
|
||||
.items-title-text {
|
||||
text-align: center;
|
||||
font-family: MailartRubberstamp;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.lock-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.item-sheet-img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border: 2px solid rgba(139, 115, 85, 0.4);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||
-o-object-fit: cover;
|
||||
object-fit: cover;
|
||||
}
|
||||
.item-name-img {
|
||||
flex-grow: 1;
|
||||
max-width: 2rem;
|
||||
min-width: 2rem;
|
||||
}
|
||||
.item-field {
|
||||
margin-top: 4px;
|
||||
}
|
||||
.item-field-xp {
|
||||
margin-top: 4px;
|
||||
min-width: 8rem;
|
||||
max-width: 8rem;
|
||||
}
|
||||
.item-field-label-short {
|
||||
flex-grow: 1;
|
||||
max-width: 4rem;
|
||||
min-width: 4rem;
|
||||
}
|
||||
.item-field-label-medium {
|
||||
flex-grow: 1;
|
||||
max-width: 6rem;
|
||||
min-width: 6rem;
|
||||
}
|
||||
.item-field-label-long,
|
||||
.item-name-label-long {
|
||||
font-weight: 600;
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
min-width: 160px;
|
||||
}
|
||||
.item-field-skill {
|
||||
flex-grow: 1;
|
||||
max-width: 6.8rem;
|
||||
min-width: 6.8rem;
|
||||
}
|
||||
.item-field-label-long {
|
||||
flex-grow: 1;
|
||||
max-width: 10rem;
|
||||
min-width: 10rem;
|
||||
}
|
||||
.item-field-title-long {
|
||||
flex-grow: 1;
|
||||
max-width: 12rem;
|
||||
min-width: 12rem;
|
||||
}
|
||||
.item-field-label-long14 {
|
||||
flex-grow: 1;
|
||||
max-width: 14rem;
|
||||
min-width: 14rem;
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
font-size: 1rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
.carac-box {
|
||||
background: linear-gradient(135deg, rgba(226, 226, 222, 0.4) 0%, rgba(240, 235, 225, 0.3) 100%);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 0.45rem;
|
||||
padding: 0.3rem 0.5rem;
|
||||
border: 1px solid rgba(139, 115, 85, 0.2);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
.carac-box:hover {
|
||||
border-color: rgba(139, 115, 85, 0.4);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.comp-box {
|
||||
max-width: 16rem;
|
||||
min-width: 16rem;
|
||||
width: 16rem;
|
||||
min-height: 1.6rem;
|
||||
background: linear-gradient(135deg, rgba(250, 245, 235, 0.5) 0%, rgba(255, 255, 255, 0.3) 100%);
|
||||
padding: 0.25rem 0.4rem;
|
||||
margin: 0.15rem;
|
||||
border-radius: 3px;
|
||||
border-left: 2px solid rgba(139, 115, 85, 0.3);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
.comp-box:hover {
|
||||
background: rgba(226, 226, 222, 0.4);
|
||||
border-left-color: rgba(139, 115, 85, 0.6);
|
||||
transform: translateX(2px);
|
||||
}
|
||||
.item-control-end {
|
||||
align-self: flex-end;
|
||||
}
|
||||
.alternate-list {
|
||||
margin-top: 4px;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.item-filler {
|
||||
flex-grow: 6;
|
||||
flex-shrink: 7;
|
||||
}
|
||||
.item-controls-fixed {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
.item-controls-fixed-full {
|
||||
min-width: 3rem;
|
||||
max-width: 3rem;
|
||||
}
|
||||
.item-left-pad {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.attribute-label {
|
||||
font-weight: bold;
|
||||
}
|
||||
.flexrow-no-expand {
|
||||
flex-grow: 0;
|
||||
}
|
||||
.item-input-small {
|
||||
max-width: 16px;
|
||||
max-height: 12px;
|
||||
}
|
||||
.character-summary-rollable {
|
||||
text-decoration: underline;
|
||||
}
|
||||
195
styles/layout.css
Normal file
195
styles/layout.css
Normal file
@@ -0,0 +1,195 @@
|
||||
.fvtt-te-deum.window-app.sheet .window-content,
|
||||
.fvtt-te-deum.application.sheet .window-content {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.application.fvtt-te-deum.sheet .window-content > [data-application-part],
|
||||
.application.fvtt-te-deum.sheet .window-content > [data-application-part] > section {
|
||||
flex: 1 1 0;
|
||||
min-height: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
.fvtt-te-deum {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
.fvtt-te-deum .sheet-header {
|
||||
flex: 0 0 auto;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
margin-bottom: 10px;
|
||||
background: linear-gradient(135deg, rgba(226, 226, 222, 0.95) 0%, rgba(240, 235, 225, 0.9) 100%);
|
||||
padding: 0.3rem 0.8rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
|
||||
border: 1px solid rgba(139, 115, 85, 0.3);
|
||||
}
|
||||
.fvtt-te-deum .sheet-header .profile-img {
|
||||
flex: 0 0 128px;
|
||||
width: 128px;
|
||||
height: auto;
|
||||
max-height: 128px;
|
||||
margin-top: 0px;
|
||||
margin-right: 10px;
|
||||
-o-object-fit: cover;
|
||||
object-fit: cover;
|
||||
-o-object-position: 50% 0;
|
||||
object-position: 50% 0;
|
||||
border-width: 0px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||
border: 2px solid rgba(139, 115, 85, 0.4);
|
||||
}
|
||||
.fvtt-te-deum .sheet-header .header-fields {
|
||||
flex: 1;
|
||||
}
|
||||
.fvtt-te-deum .sheet-header h1.charname {
|
||||
height: 50px;
|
||||
padding: 0px;
|
||||
margin: 5px 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.fvtt-te-deum .sheet-header .header-identity-fields {
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
gap: 0.3rem;
|
||||
margin-top: 0.2rem;
|
||||
}
|
||||
.fvtt-te-deum .sheet-header .header-identity-fields input,
|
||||
.fvtt-te-deum .sheet-header .header-identity-fields select {
|
||||
flex: 1 1 auto;
|
||||
font-size: 0.75rem;
|
||||
height: 1.6rem;
|
||||
}
|
||||
.fvtt-te-deum .sheet-header .header-identity-label {
|
||||
flex: 0 0 auto;
|
||||
font-size: 0.7rem;
|
||||
font-weight: 600;
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
white-space: nowrap;
|
||||
}
|
||||
.fvtt-te-deum .sheet-tabs {
|
||||
flex: 0;
|
||||
font-family: "MailartRubberstamp";
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
.fvtt-te-deum .tox .tox-editor-container {
|
||||
background: #fff;
|
||||
}
|
||||
.fvtt-te-deum .tox .tox-edit-area {
|
||||
padding: 0 8px;
|
||||
}
|
||||
.fvtt-te-deum .resource-label {
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.fvtt-te-deum .tabs {
|
||||
height: 40px;
|
||||
border-top: 1px solid rgba(139, 115, 85, 0.4);
|
||||
border-bottom: 1px solid rgba(139, 115, 85, 0.4);
|
||||
background: linear-gradient(180deg, rgba(226, 226, 222, 0.5) 0%, rgba(240, 235, 225, 0.3) 100%);
|
||||
color: #000000;
|
||||
font-family: "GreatPrimer";
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.fvtt-te-deum .tabs .item {
|
||||
line-height: 40px;
|
||||
font-weight: bold;
|
||||
padding: 0 1rem;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
.fvtt-te-deum .tabs .item:hover {
|
||||
background: rgba(226, 226, 222, 0.6);
|
||||
color: rgba(70, 67, 49, 0.9);
|
||||
}
|
||||
.fvtt-te-deum .tabs .item.active {
|
||||
text-decoration: underline;
|
||||
text-shadow: none;
|
||||
background: rgba(196, 186, 166, 0.4);
|
||||
border-bottom: 3px solid rgba(139, 115, 85, 0.8);
|
||||
}
|
||||
.fvtt-te-deum .items-list {
|
||||
list-style: none;
|
||||
margin: 1px 0;
|
||||
padding: 0;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.fvtt-te-deum .items-list .item-header {
|
||||
font-weight: bold;
|
||||
}
|
||||
.fvtt-te-deum .items-list .item {
|
||||
height: 30px;
|
||||
line-height: 24px;
|
||||
padding: 1px 0;
|
||||
border-bottom: 1px solid #bbb;
|
||||
}
|
||||
.fvtt-te-deum .items-list .item .item-image {
|
||||
flex: 0 0 24px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.fvtt-te-deum .items-list .item img {
|
||||
display: block;
|
||||
}
|
||||
.fvtt-te-deum .items-list .item-name {
|
||||
margin: 0;
|
||||
}
|
||||
.fvtt-te-deum .items-list .item-controls {
|
||||
flex: 0 0 86px;
|
||||
text-align: right;
|
||||
}
|
||||
.profile-img-container {
|
||||
margin-right: 0.2rem;
|
||||
max-width: 140px;
|
||||
width: 140px;
|
||||
}
|
||||
.button-img {
|
||||
vertical-align: baseline;
|
||||
width: 8%;
|
||||
height: 8%;
|
||||
max-height: 48px;
|
||||
border-width: 0px;
|
||||
border: 1px solid rgba(0, 0, 0, 0);
|
||||
}
|
||||
.button-img:hover {
|
||||
color: rgba(255, 255, 128, 0.7);
|
||||
border: 1px solid rgba(255, 128, 0, 0.8);
|
||||
cursor: pointer;
|
||||
}
|
||||
.button-effect-img {
|
||||
vertical-align: baseline;
|
||||
width: 16px;
|
||||
max-height: 16px;
|
||||
height: 16;
|
||||
border-width: 0;
|
||||
}
|
||||
.small-button-container {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border: 0;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
.fvtt-te-deum .sheet-body {
|
||||
flex: 1 1 0;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
font-size: 0.8rem;
|
||||
font-family: "GreatPrimer";
|
||||
}
|
||||
.fvtt-te-deum .sheet-body .tab {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
font-size: 0.8rem;
|
||||
font-family: "GreatPrimer";
|
||||
}
|
||||
.fvtt-te-deum .sheet-body .tab .editor {
|
||||
height: 100%;
|
||||
font-size: 0.8rem;
|
||||
font-family: "GreatPrimer";
|
||||
}
|
||||
1109
styles/tedeum.css
1109
styles/tedeum.css
File diff suppressed because it is too large
Load Diff
6
styles/variables.css
Normal file
6
styles/variables.css
Normal file
@@ -0,0 +1,6 @@
|
||||
@font-face {
|
||||
font-family: "MailartRubberstamp";
|
||||
src: url("../fonts/MailartRubberstamp-Regular.woff") format("woff");
|
||||
font-family: "GreatPrimer";
|
||||
src: url("../fonts/IM_FELL_Great_Primer_Roman.woff") format("woff");
|
||||
}
|
||||
42
system.json
42
system.json
@@ -151,6 +151,48 @@
|
||||
"version": "13.0.2",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-te-deum/releases/download/13.0.1/fvtt-te-deum-13.0.2.zip",
|
||||
"background": "systems/fvtt-te-deum/images/ui/tdeum_welcome_page_01.webp",
|
||||
"documentTypes": {
|
||||
"Actor": {
|
||||
"pj": {
|
||||
"htmlFields": ["description", "notes", "connaissances", "histoire", "vetements", "equipmentfree"]
|
||||
},
|
||||
"pnj": {
|
||||
"htmlFields": ["description", "notes", "connaissances", "histoire", "vetements", "equipmentfree"]
|
||||
}
|
||||
},
|
||||
"Item": {
|
||||
"arme": {
|
||||
"htmlFields": ["description"]
|
||||
},
|
||||
"competence": {
|
||||
"htmlFields": ["description"]
|
||||
},
|
||||
"armure": {
|
||||
"htmlFields": ["description"]
|
||||
},
|
||||
"equipement": {
|
||||
"htmlFields": ["description"]
|
||||
},
|
||||
"origine": {
|
||||
"htmlFields": ["description"]
|
||||
},
|
||||
"education": {
|
||||
"htmlFields": ["description"]
|
||||
},
|
||||
"grace": {
|
||||
"htmlFields": ["description"]
|
||||
},
|
||||
"blessure": {
|
||||
"htmlFields": ["description"]
|
||||
},
|
||||
"maladie": {
|
||||
"htmlFields": ["transmission", "symptomes", "complications", "description"]
|
||||
},
|
||||
"simple": {
|
||||
"htmlFields": ["vertus", "toxicite", "description"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"flags": {
|
||||
"hotReload": {
|
||||
"extensions": [
|
||||
|
||||
22
template.json.BACKUP
Normal file
22
template.json.BACKUP
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"Actor": {
|
||||
"types": ["pj", "pnj"],
|
||||
"htmlFields": ["description", "equipmentfree", "histoire"],
|
||||
"pj": {},
|
||||
"pnj": {}
|
||||
},
|
||||
"Item": {
|
||||
"types": ["arme", "competence", "armure", "grace", "equipement", "origine", "education", "blessure", "maladie", "simple"],
|
||||
"htmlFields": ["description", "transmission", "symptomes", "vertus", "toxicité"],
|
||||
"blessure": {},
|
||||
"maladie": {},
|
||||
"arme": {},
|
||||
"competence": {},
|
||||
"armure": {},
|
||||
"equipement": {},
|
||||
"origine": {},
|
||||
"education": {},
|
||||
"grace": {},
|
||||
"debouche": {}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
|
||||
{{!-- Sheet Header --}}
|
||||
<header class="sheet-header">
|
||||
@@ -6,24 +6,31 @@
|
||||
<div class="flexrow">
|
||||
|
||||
<div class="profile-img-container">
|
||||
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="profile-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
</div>
|
||||
|
||||
<div class="flexcol">
|
||||
<h1 class="charname margin-right"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
|
||||
<div class="flexrow">
|
||||
<div class="flexrow header-identity-fields">
|
||||
<label class="header-identity-label">Origine sociale</label>
|
||||
<input type="text" name="system.statutocial" value="{{system.statutocial}}" data-dtype="String" />
|
||||
<label class="header-identity-label">Genre</label>
|
||||
<select type="text" name="system.genre" data-dtype="String">
|
||||
{{selectOptions @root.config.genre selected=system.genre}}
|
||||
</select>
|
||||
<label class="header-identity-label">Religion</label>
|
||||
<input type="text" name="system.religion" value="{{system.religion}}" data-dtype="String" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<nav class="tabs" data-group="primary">
|
||||
<a class="item" data-tab="principal">Carac&Santé</a>
|
||||
<a class="item" data-tab="competences">Compétences</a>
|
||||
<a class="item" data-tab="combat">Combat</a>
|
||||
@@ -57,7 +64,7 @@
|
||||
</ul>
|
||||
|
||||
<div>
|
||||
<h4>Malus de santé : {{santeModifier}} niveaux</h4>
|
||||
<h4 class="malus-sante {{#if santeModifier}}malus-sante-active{{/if}}">Malus de santé : {{santeModifier}} niveaux</h4>
|
||||
</div>
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
@@ -66,13 +73,13 @@
|
||||
<h3><label class="item-field-label-long">Blessures</label></h3>
|
||||
</span>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control blessure-add" data-type="blessure" title="Ajouter une Blessure"><i class="fas fa-plus"></i></a>
|
||||
<a class="item-control blessure-add" data-action="createBlessure" data-type="blessure" title="Ajouter une Blessure"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
{{#each blessures as |blessure key|}}
|
||||
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{blessure._id}}">
|
||||
<a class="item-edit item-name-img" title="Editer Item"><img class="sheet-competence-img"
|
||||
<a class="item-edit item-name-img" data-action="editItem" title="Editer Item"><img class="sheet-competence-img"
|
||||
src="{{blessure.img}}" /></a>
|
||||
<span class="item-field-label-medium">
|
||||
{{blessure.name}}
|
||||
@@ -88,8 +95,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -104,7 +111,7 @@
|
||||
</li>
|
||||
{{#each maladies as |maladie key|}}
|
||||
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{maladie._id}}">
|
||||
<a class="item-edit item-name-img" title="Editer Item"><img class="sheet-competence-img"
|
||||
<a class="item-edit item-name-img" data-action="editItem" title="Editer Item"><img class="sheet-competence-img"
|
||||
src="{{maladie.img}}" /></a>
|
||||
<span class="item-field-label-medium">
|
||||
{{maladie.name}}
|
||||
@@ -114,14 +121,14 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
{{#each poisons as |poison key|}}
|
||||
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{poison._id}}">
|
||||
<a class="item-edit item-name-img" title="Editer Item"><img class="sheet-competence-img"
|
||||
<a class="item-edit item-name-img" data-action="editItem" title="Editer Item"><img class="sheet-competence-img"
|
||||
src="{{poison.img}}" /></a>
|
||||
<span class="item-field-label-medium">
|
||||
{{poison.name}}
|
||||
@@ -131,8 +138,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -182,21 +189,21 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="grace" title="Créer une Grâce"><i
|
||||
<a class="item-control item-add" data-action="createItem" data-type="grace" title="Créer une Grâce"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each graces as |grace key|}}
|
||||
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{grace._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
<a class="item-edit item-name-img" data-action="editItem" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{grace.img}}" /></a>
|
||||
<span class="item-field-label-long" data-tooltip="{{grace.system.effet}}">
|
||||
{{grace.name}}
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -211,7 +218,7 @@
|
||||
|
||||
{{#each arbreCompetences as |carac key|}}
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
<li class="flexrow items-title-bg">
|
||||
<img class="sheet-competence-img" src="systems/fvtt-te-deum/images/icons/{{key}}.webp" />
|
||||
<h3 class="item-field-label-long14" data-tooltip="Caracteristique">{{carac.name}} : {{carac.qualite}}</h3>
|
||||
<label class="item-field item-field-label-short">{{carac.value}}</label>
|
||||
@@ -226,7 +233,7 @@
|
||||
</label>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control competence-add" data-type="competence" data-carac-key="{{key}}"
|
||||
<a class="item-control competence-add" data-action="createCompetence" data-type="competence" data-carac-key="{{key}}"
|
||||
title="Ajouter une Compétence"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
@@ -234,14 +241,14 @@
|
||||
{{#each carac.competences as |comp skillkey|}}
|
||||
<li class="flexrow carac-box comp-box item-id" data-item-id="{{comp.id}}">
|
||||
<label class="item-left-pad item-field item-field-label-long">
|
||||
<a class="roll-competence" data-comp-id="{{comp.id}}">{{comp.name}} {{comp.system.formula}} </a>
|
||||
<a class="roll-competence" data-action="rollCompetence">{{comp.name}} {{comp.system.formula}} </a>
|
||||
</label>
|
||||
<span> </span>
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
{{#if comp.system.isBase}}
|
||||
<span class="item-control"><i class="fa-solid fa-trash-slash"></i></span>
|
||||
{{else}}
|
||||
<a class="item-control item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -274,26 +281,25 @@
|
||||
</li>
|
||||
{{#each armes as |arme key|}}
|
||||
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{arme._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
<a class="item-edit item-name-img" data-action="editItem" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{arme.img}}" /></a>
|
||||
<span class="item-field-label-long">
|
||||
<a class="roll-arme" data-arme-id="{{arme._id}}">
|
||||
<a class="roll-arme" data-action="rollArme">
|
||||
{{arme.name}}
|
||||
</a>
|
||||
</span>
|
||||
<span class="item-field-label-medium">{{upperFirst arme.system.typeArme}}</span>
|
||||
<span class="item-field-label-medium">{{upperFirst arme.system.competence}}</span>
|
||||
<span class="item-field-label-medium"><a class="roll-degats"
|
||||
data-arme-id="{{arme._id}}">{{arme.system.degats}}</a></span>
|
||||
<span class="item-field-label-medium"><a class="roll-degats" data-action="rollDegats">{{arme.system.degats}}</a></span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed-full">
|
||||
<a class="item-control item-equip" title="Equiper" {{#unless arme.system.equipe}}style="color:gray;"
|
||||
<a class="item-control item-equip" data-action="equipItem" title="Equiper" {{#unless arme.system.equipe}}style="color:gray;"
|
||||
{{/unless}}>
|
||||
<i class="fas fa-shield-alt"></i>
|
||||
</a>
|
||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'arme"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -301,13 +307,13 @@
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header-long2">
|
||||
<h3><label class="item-name-label-header-long2">Armures</label></h3>
|
||||
<span class="item-field-label-long">
|
||||
<h3><label class="item-field-label-long">Armures</label></h3>
|
||||
</span>
|
||||
</li>
|
||||
{{#each armures as |armure key|}}
|
||||
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{armure._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
<a class="item-edit item-name-img" data-action="editItem" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{armure.img}}" /></a>
|
||||
<span class="item-name-label-long2">
|
||||
{{armure.name}}
|
||||
@@ -315,12 +321,12 @@
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed-full">
|
||||
<a class="item-control item-equip" title="Equiper" {{#unless armure.system.equipe}}style="color:gray;"
|
||||
<a class="item-control item-equip" data-action="equipItem" title="Equiper" {{#unless armure.system.equipe}}style="color:gray;"
|
||||
{{/unless}}>
|
||||
<i class="fas fa-shield-alt"></i>
|
||||
</a>
|
||||
<a class="item-control item-edit" title="Editer l'armure"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'armure"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer l'armure"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'armure"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -357,26 +363,29 @@
|
||||
{{!-- Equipement Tab --}}
|
||||
<div class="tab equipements" data-group="primary" data-tab="equipements">
|
||||
|
||||
<div class="form-group">
|
||||
<div class="flexrow fortune-row">
|
||||
{{#each system.fortune as |fortune key|}}
|
||||
<div class="flexrow">
|
||||
<label class="item-field item-field-label-medium">{{upperFirst key}}</label>
|
||||
<input type="text" class="input-numeric-short" name="system.fortune.{{key}}" value="{{fortune}}"
|
||||
data-dtype="Number" />
|
||||
</div>
|
||||
<label class="item-field item-field-label-medium">{{upperFirst key}}</label>
|
||||
<input type="text" class="input-numeric-short" name="system.fortune.{{key}}" value="{{fortune}}"
|
||||
data-dtype="Number" />
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
<span class="item-name-label-header items-title-bg">
|
||||
<h3><label class="items-title-text">Zone libre</label></h3>
|
||||
</span>
|
||||
<ul class="item-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-field-title-long">
|
||||
<h3><label class="item-field-label-long">Zone libre</label></h3>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="form-group small-editor">
|
||||
{{editor equipmentfree target="system.equipmentfree" button=true owner=owner editable=editable}}
|
||||
{{formInput systemFields.equipmentfree enriched=enrichedEquipmentFree value=system.equipmentfree name="system.equipmentfree" toggled=true}}
|
||||
</div>
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-field-label-long">
|
||||
<span class="item-name-img"></span>
|
||||
<span class="item-name-label">
|
||||
<h3><label class="item-field-label-long">Equipements</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-medium">
|
||||
@@ -384,22 +393,22 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="equipement" title="Créer un équipement"><i
|
||||
<a class="item-control item-add" data-action="createItem" data-type="equipement" title="Créer un équipement"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
{{#each equipements as |equip key|}}
|
||||
<li class="item list-item flexrow list-item-shadow item-id" data-item-id="{{equip._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
<a class="item-edit item-name-img" data-action="editItem" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{equip.img}}" /></a>
|
||||
<span class="item-name-label">{{equip.name}}</span>
|
||||
<span class="item-field-label-medium">{{equip.system.prix}} {{monnaie equip.system.monnaie}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer un équipement"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer un équipement"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer un équipement"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer un équipement"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -408,7 +417,8 @@
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-field-label-long">
|
||||
<span class="item-name-img"></span>
|
||||
<span class="item-name-label">
|
||||
<h3><label class="item-field-label-long">Simples</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-medium">
|
||||
@@ -416,20 +426,20 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="simple" title="Créer une simple"><i class="fas fa-plus"></i></a>
|
||||
<a class="item-control item-add" data-action="createItem" data-type="simple" title="Créer une simple"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each simples as |simple key|}}
|
||||
<li class="item list-item flexrow list-item-shadow item-id" data-item-id="{{simple._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
<a class="item-edit item-name-img" data-action="editItem" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{simple.img}}" /></a>
|
||||
<span class="item-name-label">{{simple.name}}</span>
|
||||
<span class="item-field-label-medium">{{simple.system.prix}} {{monnaie simple.system.monnaie}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer une simple"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer une simple"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer une simple"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer une simple"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -443,17 +453,6 @@
|
||||
<div class="grid grid-2col">
|
||||
<div>
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">Genre</label>
|
||||
<select type="text" class="" name="system.genre" value="{{system.genre}}" data-dtype="String" />
|
||||
{{selectOptions @root.config.genre selected=system.genre}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">Lieu de naissance</label>
|
||||
<input type="text" class="" name="system.lieunaissance" value="{{system.lieunaissance}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">Age</label>
|
||||
<input type="text" class="" name="system.age" value="{{system.age}}" data-dtype="String" />
|
||||
@@ -468,8 +467,8 @@
|
||||
<div>
|
||||
<ul>
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">Origine sociale</label>
|
||||
<input type="text" class="" name="system.statutocial" value="{{system.statutocial}}"
|
||||
<label class="item-name-label-medium">Lieu de naissance</label>
|
||||
<input type="text" class="" name="system.lieunaissance" value="{{system.lieunaissance}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
@@ -477,10 +476,6 @@
|
||||
<input type="text" class="" name="system.chargestitre" value="{{system.chargestitre}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="item-name-label-medium">Religion</label>
|
||||
<input type="text" class="" name="system.religion" value="{{system.religion}}" data-dtype="String" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -499,15 +494,15 @@
|
||||
</li>
|
||||
{{#each educations as |education key|}}
|
||||
<li class="item list-item flexrow list-item-shadow item-id" data-item-id="{{education._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
<a class="item-edit item-name-img" data-action="editItem" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{education.img}}" /></a>
|
||||
<span class="item-name-label">{{ education.name}}</span>
|
||||
<span class="item-name-label">{{getEducationEtape education.system.etape}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer une éducation"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-edit" data-action="editItem" title="Editer une éducation"><i class="fas fa-edit"></i></a>
|
||||
{{#if @root.isGM}}
|
||||
<a class="item-control item-delete" title="Supprimer une éducation"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer une éducation"><i class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
</li>
|
||||
@@ -515,26 +510,25 @@
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<span class="item-name-label-header items-title-bg">
|
||||
<h3><label class="items-title-text">Background</label></h3>
|
||||
</span>
|
||||
<div class="items-title-bg">
|
||||
<h3>Background</h3>
|
||||
</div>
|
||||
<div class="form-group editor">
|
||||
{{editor description target="system.description" button=true owner=owner
|
||||
editable=editable}}
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
</div>
|
||||
<hr>
|
||||
<span class="item-name-label-header items-title-bg">
|
||||
<h3><label class="items-title-text">Notes</label></h3>
|
||||
</span>
|
||||
<div class="items-title-bg">
|
||||
<h3>Notes</h3>
|
||||
</div>
|
||||
<div class="form-group editor">
|
||||
{{editor notes target="system.notes" button=true owner=owner editable=editable}}
|
||||
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
|
||||
</div>
|
||||
<hr>
|
||||
<span class="item-name-label-header items-title-bg">
|
||||
<h3><label class="items-title-text">Histoire</label></h3>
|
||||
</span>
|
||||
<div class="items-title-bg">
|
||||
<h3>Histoire</h3>
|
||||
</div>
|
||||
<div class="form-group editor">
|
||||
{{editor histoire target="system.histoire" button=true owner=owner editable=editable}}
|
||||
{{formInput systemFields.histoire enriched=enrichedHistoire value=system.histoire name="system.histoire" toggled=true}}
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
@@ -542,4 +536,4 @@
|
||||
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,4 +1,4 @@
|
||||
<form class="skill-roll-dialog">
|
||||
<section class="skill-roll-dialog">
|
||||
<header class="roll-dialog-header">
|
||||
{{#if img}}
|
||||
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
@@ -175,4 +175,9 @@
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<footer class="sheet-footer flexrow">
|
||||
<button type="button" data-action="roll"><i class="fas fa-check"></i> Lancer</button>
|
||||
<button type="button" data-action="cancel"><i class="fas fa-times"></i> Annuler</button>
|
||||
</footer>
|
||||
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -136,4 +136,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -75,4 +75,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -35,4 +35,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -41,4 +41,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -167,4 +167,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -34,4 +34,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -19,7 +19,9 @@
|
||||
<strong>Effet</strong> : {{system.effet}}
|
||||
</div>
|
||||
<hr>
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
<div class="form-group editor">
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
@@ -39,4 +41,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -23,25 +23,27 @@
|
||||
<strong>Complications</strong> : {{system.complications}}
|
||||
</div>
|
||||
<hr>
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
<div class="form-group editor">
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
|
||||
<h4 class="item-name-label-long">Transmission</h4>
|
||||
<textarea name="system.transmission" rows="6" data-dtype="String">
|
||||
{{{system.transmission}}}
|
||||
</textarea>
|
||||
<div class="form-group editor">
|
||||
{{formInput systemFields.transmission enriched=enrichedTransmission value=system.transmission name="system.transmission" toggled=true}}
|
||||
</div>
|
||||
|
||||
<h4 class="item-name-label-long">Symptômes</h4>
|
||||
<textarea name="system.symptomes" rows="6" data-dtype="String">
|
||||
{{{system.symptomes}}}
|
||||
</textarea>
|
||||
<div class="form-group editor">
|
||||
{{formInput systemFields.symptomes enriched=enrichedSymptomes value=system.symptomes name="system.symptomes" toggled=true}}
|
||||
</div>
|
||||
|
||||
<h4 class="item-name-label-long">Complications</h4>
|
||||
<textarea name="system.complications" rows="6" data-dtype="String">
|
||||
{{{system.complications}}}
|
||||
</textarea>
|
||||
<div class="form-group editor">
|
||||
{{formInput systemFields.complications enriched=enrichedComplications value=system.complications name="system.complications" toggled=true}}
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
@@ -73,4 +75,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -46,4 +46,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
2
templates/items/item-sheet.hbs
Normal file
2
templates/items/item-sheet.hbs
Normal file
@@ -0,0 +1,2 @@
|
||||
{{!-- Wrapper dynamique : inclut le partial du bon type d'item --}}
|
||||
{{> (lookup . 'itemPartialName')}}
|
||||
@@ -1,6 +1,6 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<section class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<img class="item-sheet-img" src="{{img}}" data-action="editImage" title="{{name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
@@ -20,20 +20,22 @@
|
||||
<strong>Toxicité</strong> : {{system.toxicite}}
|
||||
</div>
|
||||
<hr>
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
<div class="form-group editor">
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
|
||||
<h4 class="item-name-label-long">🌿 Vertus médicinales</h4>
|
||||
<textarea name="system.vertus" rows="6" data-dtype="String">
|
||||
{{{system.vertus}}}
|
||||
</textarea>
|
||||
<div class="form-group editor">
|
||||
{{formInput systemFields.vertus enriched=enrichedVertus value=system.vertus name="system.vertus" toggled=true}}
|
||||
</div>
|
||||
|
||||
<h4 class="item-name-label-long">☠️ Toxicité</h4>
|
||||
<textarea name="system.toxicite" rows="6" data-dtype="String">
|
||||
{{{system.toxicite}}}
|
||||
</textarea>
|
||||
<div class="form-group editor">
|
||||
{{formInput systemFields.toxicite enriched=enrichedToxicite value=system.toxicite name="system.toxicite" toggled=true}}
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
@@ -68,4 +70,4 @@
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</section>
|
||||
@@ -1,3 +1,5 @@
|
||||
<div class="tab description" data-group="primary" data-tab="description">
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
<div class="form-group editor">
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user