Upgrade item sheets
This commit is contained in:
parent
df8995f8b7
commit
9775ec9fa1
BIN
assets/lf_logo_01.webp
Normal file
BIN
assets/lf_logo_01.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 623 KiB |
BIN
assets/lf_logo_small_01.webp
Normal file
BIN
assets/lf_logo_small_01.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 70 KiB |
@ -1,5 +1,5 @@
|
|||||||
:root {
|
:root {
|
||||||
--font-size-standard: 0.8125rem;
|
--font-size-standard: 1rem;
|
||||||
--background-image-base: url("../assets/parchment.jpg");
|
--background-image-base: url("../assets/parchment.jpg");
|
||||||
--font-secondary: "Amiri", serif;
|
--font-secondary: "Amiri", serif;
|
||||||
--logo-standard: url("../assets/lethal-fantasy-logo.webp");
|
--logo-standard: url("../assets/lethal-fantasy-logo.webp");
|
||||||
@ -31,7 +31,7 @@ i.lethalfantasy {
|
|||||||
}
|
}
|
||||||
.application.dialog.lethalfantasy {
|
.application.dialog.lethalfantasy {
|
||||||
font-family: var(--font-primary);
|
font-family: var(--font-primary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
background-image: var(--background-image-base);
|
background-image: var(--background-image-base);
|
||||||
}
|
}
|
||||||
.application.dialog.lethalfantasy button:hover {
|
.application.dialog.lethalfantasy button:hover {
|
||||||
@ -53,16 +53,28 @@ i.lethalfantasy {
|
|||||||
}
|
}
|
||||||
.lethalfantasy .character-sheet-common label {
|
.lethalfantasy .character-sheet-common label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
}
|
}
|
||||||
.lethalfantasy .item-sheet-common .form-fields {
|
.lethalfantasy .item-sheet-common .form-fields {
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .item-sheet-common label {
|
.lethalfantasy .item-sheet-common label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .item-sheet-common .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .item-sheet-common .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
.lethalfantasy .character-content {
|
.lethalfantasy .character-content {
|
||||||
font-family: var(--font-primary);
|
font-family: var(--font-primary);
|
||||||
font-size: calc(var(--font-size-standard) * 1);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
@ -88,32 +100,32 @@ i.lethalfantasy {
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
.lethalfantasy .character-content fieldset {
|
.lethalfantasy .character-content fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .character-content .form-fields input,
|
.lethalfantasy .character-content .form-fields input,
|
||||||
.lethalfantasy .character-content .form-fields select {
|
.lethalfantasy .character-content .form-fields select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .character-content .form-fields select {
|
.lethalfantasy .character-content .form-fields select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .character-content legend {
|
.lethalfantasy .character-content legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .character-content label {
|
.lethalfantasy .character-content label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
}
|
}
|
||||||
.lethalfantasy .character-main {
|
.lethalfantasy .character-main {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -433,26 +445,26 @@ i.lethalfantasy {
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
.lethalfantasy .opponent-content fieldset {
|
.lethalfantasy .opponent-content fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .opponent-content .form-fields input,
|
.lethalfantasy .opponent-content .form-fields input,
|
||||||
.lethalfantasy .opponent-content .form-fields select {
|
.lethalfantasy .opponent-content .form-fields select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .opponent-content .form-fields select {
|
.lethalfantasy .opponent-content .form-fields select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .opponent-content legend {
|
.lethalfantasy .opponent-content legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
@ -547,26 +559,26 @@ i.lethalfantasy {
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
.lethalfantasy .skill-content fieldset {
|
.lethalfantasy .skill-content fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .skill-content .form-fields input,
|
.lethalfantasy .skill-content .form-fields input,
|
||||||
.lethalfantasy .skill-content .form-fields select {
|
.lethalfantasy .skill-content .form-fields select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .skill-content .form-fields select {
|
.lethalfantasy .skill-content .form-fields select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .skill-content legend {
|
.lethalfantasy .skill-content legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
@ -575,9 +587,21 @@ i.lethalfantasy {
|
|||||||
}
|
}
|
||||||
.lethalfantasy .skill-content label {
|
.lethalfantasy .skill-content label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .skill-content .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .skill-content .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
.lethalfantasy .skill-content .header {
|
.lethalfantasy .skill-content .header {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@ -596,7 +620,7 @@ i.lethalfantasy {
|
|||||||
.lethalfantasy .skill-content input[type="checkbox"]:checked::after {
|
.lethalfantasy .skill-content input[type="checkbox"]:checked::after {
|
||||||
color: rgba(0, 0, 0, 0.1);
|
color: rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content {
|
.lethalfantasy .gift-content {
|
||||||
font-family: var(--font-primary);
|
font-family: var(--font-primary);
|
||||||
font-size: calc(var(--font-size-standard) * 1);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
color: var(--color-dark-1);
|
color: var(--color-dark-1);
|
||||||
@ -604,131 +628,82 @@ i.lethalfantasy {
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content input:disabled,
|
.lethalfantasy .gift-content input:disabled,
|
||||||
.lethalfantasy .gifts-content select:disabled {
|
.lethalfantasy .gift-content select:disabled {
|
||||||
background-color: rgba(0, 0, 0, 0.2);
|
background-color: rgba(0, 0, 0, 0.2);
|
||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
color: var(--color-dark-3);
|
color: var(--color-dark-3);
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content input,
|
.lethalfantasy .gift-content input,
|
||||||
.lethalfantasy .gifts-content select {
|
.lethalfantasy .gift-content select {
|
||||||
background-color: rgba(0, 0, 0, 0.1);
|
background-color: rgba(0, 0, 0, 0.1);
|
||||||
border-color: var(--color-dark-6);
|
border-color: var(--color-dark-6);
|
||||||
color: var(--color-dark-2);
|
color: var(--color-dark-2);
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content input[name="name"] {
|
.lethalfantasy .gift-content input[name="name"] {
|
||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content fieldset {
|
.lethalfantasy .gift-content fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content .form-fields input,
|
.lethalfantasy .gift-content .form-fields input,
|
||||||
.lethalfantasy .gifts-content .form-fields select {
|
.lethalfantasy .gift-content .form-fields select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content .form-fields select {
|
.lethalfantasy .gift-content .form-fields select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content legend {
|
.lethalfantasy .gift-content legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content .form-fields {
|
.lethalfantasy .gift-content .form-fields {
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content label {
|
.lethalfantasy .gift-content label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content .path-name {
|
.lethalfantasy .gift-content .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .gift-content .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
|
.lethalfantasy .gift-content .header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content .path-name .control {
|
.lethalfantasy .gift-content .header img {
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-name img {
|
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content .path-main {
|
.lethalfantasy .gift-content input[type="checkbox"] {
|
||||||
display: grid;
|
font-size: var(--font-size-14);
|
||||||
grid-template-columns: 2fr 2fr 1fr;
|
width: 20px;
|
||||||
/* Optionnel : supprimer le margin-right sur la dernière colonne si vous avez besoin d'un espacement précis */
|
padding-top: 0;
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content .path-main .profil {
|
.lethalfantasy .gift-content input[type="checkbox"]:checked {
|
||||||
display: grid;
|
background-color: rgba(0, 0, 0, 0.1);
|
||||||
grid-template-columns: repeat(2, 1fr);
|
|
||||||
}
|
}
|
||||||
.lethalfantasy .gifts-content .path-main .profil-gauche,
|
.lethalfantasy .gift-content input[type="checkbox"]:checked::after {
|
||||||
.lethalfantasy .gifts-content .path-main .profil-droite {
|
color: rgba(0, 0, 0, 0.1);
|
||||||
flex: 1;
|
|
||||||
/* Chaque colonne prend la moitié de l'espace disponible */
|
|
||||||
padding: 10px;
|
|
||||||
/* Espacement intérieur */
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-main .profil-gauche {
|
|
||||||
margin-right: 10px;
|
|
||||||
/* Espace entre les deux colonnes */
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-main .profil-droite {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-main .biens prose-mirror {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-main .langues prose-mirror {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-main .description {
|
|
||||||
grid-column: span 3;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-main .description prose-mirror.inactive {
|
|
||||||
min-height: 40px;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-main .description prose-mirror.active {
|
|
||||||
min-height: 150px;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-talents {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(5, 1fr);
|
|
||||||
gap: 10px;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-talents .talent {
|
|
||||||
background-color: #f0f0f0;
|
|
||||||
padding: 5px;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-talents .talent .header {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-talents .talent .header .name {
|
|
||||||
font-family: var(--font-secondary);
|
|
||||||
font-size: calc(var(--font-size-standard) * 1.5);
|
|
||||||
padding-left: 20px;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-talents .talent .header .controls {
|
|
||||||
font-size: calc(var(--font-size-standard) * 0.8);
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-talents .talent .progression {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
.lethalfantasy .gifts-content .path-talents .talent .description {
|
|
||||||
font-size: calc(var(--font-size-standard) * 1);
|
|
||||||
}
|
}
|
||||||
.lethalfantasy .weapon-content {
|
.lethalfantasy .weapon-content {
|
||||||
font-family: var(--font-primary);
|
font-family: var(--font-primary);
|
||||||
@ -754,26 +729,26 @@ i.lethalfantasy {
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
.lethalfantasy .weapon-content fieldset {
|
.lethalfantasy .weapon-content fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .weapon-content .form-fields input,
|
.lethalfantasy .weapon-content .form-fields input,
|
||||||
.lethalfantasy .weapon-content .form-fields select {
|
.lethalfantasy .weapon-content .form-fields select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .weapon-content .form-fields select {
|
.lethalfantasy .weapon-content .form-fields select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .weapon-content legend {
|
.lethalfantasy .weapon-content legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
@ -782,9 +757,21 @@ i.lethalfantasy {
|
|||||||
}
|
}
|
||||||
.lethalfantasy .weapon-content label {
|
.lethalfantasy .weapon-content label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .weapon-content .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .weapon-content .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
.lethalfantasy .weapon-content .header {
|
.lethalfantasy .weapon-content .header {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@ -819,26 +806,26 @@ i.lethalfantasy {
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
.lethalfantasy .armor-content fieldset {
|
.lethalfantasy .armor-content fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .armor-content .form-fields input,
|
.lethalfantasy .armor-content .form-fields input,
|
||||||
.lethalfantasy .armor-content .form-fields select {
|
.lethalfantasy .armor-content .form-fields select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .armor-content .form-fields select {
|
.lethalfantasy .armor-content .form-fields select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .armor-content legend {
|
.lethalfantasy .armor-content legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
@ -847,9 +834,21 @@ i.lethalfantasy {
|
|||||||
}
|
}
|
||||||
.lethalfantasy .armor-content label {
|
.lethalfantasy .armor-content label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .armor-content .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .armor-content .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
.lethalfantasy .armor-content .header {
|
.lethalfantasy .armor-content .header {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@ -884,26 +883,26 @@ i.lethalfantasy {
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
.lethalfantasy .spell-content fieldset {
|
.lethalfantasy .spell-content fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .spell-content .form-fields input,
|
.lethalfantasy .spell-content .form-fields input,
|
||||||
.lethalfantasy .spell-content .form-fields select {
|
.lethalfantasy .spell-content .form-fields select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .spell-content .form-fields select {
|
.lethalfantasy .spell-content .form-fields select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .spell-content legend {
|
.lethalfantasy .spell-content legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
@ -912,9 +911,21 @@ i.lethalfantasy {
|
|||||||
}
|
}
|
||||||
.lethalfantasy .spell-content label {
|
.lethalfantasy .spell-content label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .spell-content .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .spell-content .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
.lethalfantasy .spell-content .header {
|
.lethalfantasy .spell-content .header {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@ -925,10 +936,6 @@ i.lethalfantasy {
|
|||||||
.lethalfantasy .spell-content label {
|
.lethalfantasy .spell-content label {
|
||||||
flex: 10%;
|
flex: 10%;
|
||||||
}
|
}
|
||||||
.lethalfantasy .spell-content input[name="system.consequenceA"],
|
|
||||||
.lethalfantasy .spell-content input[name="system.consequenceB"] {
|
|
||||||
font-size: calc(var(--font-size-standard) * 1.2);
|
|
||||||
}
|
|
||||||
.lethalfantasy .vulnerability-content {
|
.lethalfantasy .vulnerability-content {
|
||||||
font-family: var(--font-primary);
|
font-family: var(--font-primary);
|
||||||
font-size: calc(var(--font-size-standard) * 1);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
@ -953,26 +960,26 @@ i.lethalfantasy {
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
.lethalfantasy .vulnerability-content fieldset {
|
.lethalfantasy .vulnerability-content fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .vulnerability-content .form-fields input,
|
.lethalfantasy .vulnerability-content .form-fields input,
|
||||||
.lethalfantasy .vulnerability-content .form-fields select {
|
.lethalfantasy .vulnerability-content .form-fields select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .vulnerability-content .form-fields select {
|
.lethalfantasy .vulnerability-content .form-fields select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .vulnerability-content legend {
|
.lethalfantasy .vulnerability-content legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
@ -981,9 +988,21 @@ i.lethalfantasy {
|
|||||||
}
|
}
|
||||||
.lethalfantasy .vulnerability-content label {
|
.lethalfantasy .vulnerability-content label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .vulnerability-content .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .vulnerability-content .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
.lethalfantasy .vulnerability-content .header {
|
.lethalfantasy .vulnerability-content .header {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@ -1026,26 +1045,26 @@ i.lethalfantasy {
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
.lethalfantasy .save-content fieldset {
|
.lethalfantasy .save-content fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .save-content .form-fields input,
|
.lethalfantasy .save-content .form-fields input,
|
||||||
.lethalfantasy .save-content .form-fields select {
|
.lethalfantasy .save-content .form-fields select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .save-content .form-fields select {
|
.lethalfantasy .save-content .form-fields select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
}
|
}
|
||||||
.lethalfantasy .save-content legend {
|
.lethalfantasy .save-content legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
@ -1054,9 +1073,21 @@ i.lethalfantasy {
|
|||||||
}
|
}
|
||||||
.lethalfantasy .save-content label {
|
.lethalfantasy .save-content label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .save-content .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .save-content .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
.lethalfantasy .save-content .header {
|
.lethalfantasy .save-content .header {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@ -1105,6 +1136,160 @@ i.lethalfantasy {
|
|||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.2);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .equipment-content {
|
||||||
|
font-family: var(--font-primary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
color: var(--color-dark-1);
|
||||||
|
background-image: var(--background-image-base);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content input:disabled,
|
||||||
|
.lethalfantasy .equipment-content select:disabled {
|
||||||
|
background-color: rgba(0, 0, 0, 0.2);
|
||||||
|
border-color: transparent;
|
||||||
|
color: var(--color-dark-3);
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content input,
|
||||||
|
.lethalfantasy .equipment-content select {
|
||||||
|
background-color: rgba(0, 0, 0, 0.1);
|
||||||
|
border-color: var(--color-dark-6);
|
||||||
|
color: var(--color-dark-2);
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content input[name="name"] {
|
||||||
|
height: 50px;
|
||||||
|
margin-right: 10px;
|
||||||
|
font-family: var(--font-secondary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
font-weight: bold;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content fieldset {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content .form-fields input,
|
||||||
|
.lethalfantasy .equipment-content .form-fields select {
|
||||||
|
text-align: center;
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content .form-fields select {
|
||||||
|
font-family: var(--font-secondary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content legend {
|
||||||
|
font-family: var(--font-secondary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
|
font-weight: bold;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content .form-fields {
|
||||||
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content label {
|
||||||
|
font-family: var(--font-secondary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
flex: 50%;
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content .header {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content .header img {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
.lethalfantasy .equipment-content label {
|
||||||
|
flex: 10%;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content {
|
||||||
|
font-family: var(--font-primary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
color: var(--color-dark-1);
|
||||||
|
background-image: var(--background-image-base);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content input:disabled,
|
||||||
|
.lethalfantasy .shield-content select:disabled {
|
||||||
|
background-color: rgba(0, 0, 0, 0.2);
|
||||||
|
border-color: transparent;
|
||||||
|
color: var(--color-dark-3);
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content input,
|
||||||
|
.lethalfantasy .shield-content select {
|
||||||
|
background-color: rgba(0, 0, 0, 0.1);
|
||||||
|
border-color: var(--color-dark-6);
|
||||||
|
color: var(--color-dark-2);
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content input[name="name"] {
|
||||||
|
height: 50px;
|
||||||
|
margin-right: 10px;
|
||||||
|
font-family: var(--font-secondary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
font-weight: bold;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content fieldset {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content .form-fields input,
|
||||||
|
.lethalfantasy .shield-content .form-fields select {
|
||||||
|
text-align: center;
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content .form-fields select {
|
||||||
|
font-family: var(--font-secondary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content legend {
|
||||||
|
font-family: var(--font-secondary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
|
font-weight: bold;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content .form-fields {
|
||||||
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content label {
|
||||||
|
font-family: var(--font-secondary);
|
||||||
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
|
flex: 50%;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content .align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content .shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content .header {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content .header img {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
.lethalfantasy .shield-content label {
|
||||||
|
flex: 10%;
|
||||||
|
}
|
||||||
.application.dialog.lethalfantasy {
|
.application.dialog.lethalfantasy {
|
||||||
color: var(--color-dark-1);
|
color: var(--color-dark-1);
|
||||||
}
|
}
|
||||||
|
269
lang/en.json
269
lang/en.json
@ -12,7 +12,8 @@
|
|||||||
"gift": "Gift",
|
"gift": "Gift",
|
||||||
"vulnerability": "Vulnerability",
|
"vulnerability": "Vulnerability",
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
"equipment": "Equipment"
|
"equipment": "Equipment" ,
|
||||||
|
"shield": "Shield"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -47,7 +48,26 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Skill": {
|
"Skill": {
|
||||||
|
"Category": {
|
||||||
|
"layperson": "Layperson",
|
||||||
|
"professional": "Professional",
|
||||||
|
"weapon": "Weapon",
|
||||||
|
"armor": "Armor",
|
||||||
|
"resist": "Resist"
|
||||||
|
},
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
|
"category": {
|
||||||
|
"label": "Category"
|
||||||
|
},
|
||||||
|
"bonus" :{
|
||||||
|
"label": "Bonus"
|
||||||
|
},
|
||||||
|
"base": {
|
||||||
|
"label": "Base"
|
||||||
|
},
|
||||||
|
"cost": {
|
||||||
|
"label": "Cost"
|
||||||
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"label": "Description"
|
"label": "Description"
|
||||||
}
|
}
|
||||||
@ -55,6 +75,12 @@
|
|||||||
},
|
},
|
||||||
"Equipment": {
|
"Equipment": {
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
|
"cost": {
|
||||||
|
"label": "Cost"
|
||||||
|
},
|
||||||
|
"money": {
|
||||||
|
"label": "Money unit"
|
||||||
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"label": "Description"
|
"label": "Description"
|
||||||
}
|
}
|
||||||
@ -62,46 +88,239 @@
|
|||||||
},
|
},
|
||||||
"Gift": {
|
"Gift": {
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
|
"cost": {
|
||||||
|
"label": "Cost"
|
||||||
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"label": "Description"
|
"label": "Description"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Weapon": {
|
"Weapon": {
|
||||||
|
"WeaponType": {
|
||||||
|
"melee": "Melee",
|
||||||
|
"ranged": "Ranged"
|
||||||
|
},
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
"category": {
|
"weaponType": {
|
||||||
"label": "Category"
|
"label": "Type"
|
||||||
|
},
|
||||||
|
"damageType": {
|
||||||
|
"typeP": {
|
||||||
|
"label": "Piercing"
|
||||||
|
},
|
||||||
|
"typeB": {
|
||||||
|
"label": "Bashing"
|
||||||
|
},
|
||||||
|
"typeS": {
|
||||||
|
"label": "Slashing"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"damage": {
|
||||||
|
"damageS": {
|
||||||
|
"label": "Small"
|
||||||
|
},
|
||||||
|
"damageM": {
|
||||||
|
"label": "Medium"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hands": {
|
||||||
|
"label": "Hands"
|
||||||
|
},
|
||||||
|
"defenseMax": {
|
||||||
|
"label": "Defense max"
|
||||||
|
},
|
||||||
|
"secondsToAttack": {
|
||||||
|
"label": "Seconds to attack"
|
||||||
|
},
|
||||||
|
"speed": {
|
||||||
|
"simpleAim": {
|
||||||
|
"label": "Simple aim"
|
||||||
|
},
|
||||||
|
"carefulAim": {
|
||||||
|
"label": "Careful aim"
|
||||||
|
},
|
||||||
|
"focusedAim": {
|
||||||
|
"label": "Focused aim"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defense": {
|
||||||
|
"label": "Defense"
|
||||||
|
},
|
||||||
|
"range": {
|
||||||
|
"pointBlank": {
|
||||||
|
"label": "Point blank"
|
||||||
|
},
|
||||||
|
"short": {
|
||||||
|
"label": "Short"
|
||||||
|
},
|
||||||
|
"medium": {
|
||||||
|
"label": "Medium"
|
||||||
|
},
|
||||||
|
"long": {
|
||||||
|
"label": "Long"
|
||||||
|
},
|
||||||
|
"extreme": {
|
||||||
|
"label": "Extreme"
|
||||||
|
},
|
||||||
|
"outOfSkill": {
|
||||||
|
"label": "Out of skill"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"load": {
|
||||||
|
"label": "Load"
|
||||||
|
},
|
||||||
|
"cost": {
|
||||||
|
"label": "Cost"
|
||||||
|
},
|
||||||
|
"money": {
|
||||||
|
"label": "Money unit"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Armor": {
|
"Armor": {
|
||||||
"FIELDS": {
|
|
||||||
"category": {
|
|
||||||
"label": "Category"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Category": {
|
"Category": {
|
||||||
"sommaire": "Armures sommaires",
|
"light": "Light",
|
||||||
"legere": "Armures légères",
|
"medium": "Medium",
|
||||||
"guerre": "Armures de guerre"
|
"heavy": "Heavy"
|
||||||
|
},
|
||||||
|
"FIELDS": {
|
||||||
|
"armortype": {
|
||||||
|
"label": "Category"
|
||||||
|
},
|
||||||
|
"defense": {
|
||||||
|
"label": "Defense"
|
||||||
|
},
|
||||||
|
"movementreduction": {
|
||||||
|
"label": "Movement reduction"
|
||||||
|
},
|
||||||
|
"hp": {
|
||||||
|
"label": "HP"
|
||||||
|
},
|
||||||
|
"damagereduction": {
|
||||||
|
"label": "Damage reduction"
|
||||||
|
},
|
||||||
|
"load": {
|
||||||
|
"label": "Load"
|
||||||
|
},
|
||||||
|
"cost": {
|
||||||
|
"label": "Cost"
|
||||||
|
},
|
||||||
|
"money": {
|
||||||
|
"label": "Money unit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Shield": {
|
||||||
|
"FIELDS": {
|
||||||
|
"defense": {
|
||||||
|
"label": "Defense"
|
||||||
|
},
|
||||||
|
"movementreduction": {
|
||||||
|
"label": "Movement reduction"
|
||||||
|
},
|
||||||
|
"hp": {
|
||||||
|
"label": "HP"
|
||||||
|
},
|
||||||
|
"standing": {
|
||||||
|
"min":{
|
||||||
|
"label": "Min"
|
||||||
|
},
|
||||||
|
"max":{
|
||||||
|
"label": "Max"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"crouching": {
|
||||||
|
"min":{
|
||||||
|
"label": "Min"
|
||||||
|
},
|
||||||
|
"max":{
|
||||||
|
"label": "Max"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"destruction": {
|
||||||
|
"bashing": {
|
||||||
|
"label": "Bashing"
|
||||||
|
},
|
||||||
|
"slashing": {
|
||||||
|
"label": "Slashing"
|
||||||
|
},
|
||||||
|
"piercing": {
|
||||||
|
"label": "Piercing"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autodestruction": {
|
||||||
|
"bashing": {
|
||||||
|
"label": "Bashing"
|
||||||
|
},
|
||||||
|
"slashing": {
|
||||||
|
"label": "Slashing"
|
||||||
|
},
|
||||||
|
"piercing": {
|
||||||
|
"label": "Piercing"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"damagereduction": {
|
||||||
|
"label": "Damage reduction"
|
||||||
|
},
|
||||||
|
"load": {
|
||||||
|
"label": "Load"
|
||||||
|
},
|
||||||
|
"cost": {
|
||||||
|
"label": "Cost"
|
||||||
|
},
|
||||||
|
"money": {
|
||||||
|
"label": "Money unit"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Spell": {
|
"Spell": {
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
"description": {
|
"description": {
|
||||||
"label": "Description"
|
"label": "Description"
|
||||||
|
},
|
||||||
|
"components": {
|
||||||
|
"verbal": {
|
||||||
|
"label": "Verbal"
|
||||||
|
},
|
||||||
|
"somatic": {
|
||||||
|
"label": "Somatic"
|
||||||
|
},
|
||||||
|
"material": {
|
||||||
|
"label": "Material"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"level": {
|
||||||
|
"label": "Level"
|
||||||
|
},
|
||||||
|
"cost" : {
|
||||||
|
"label": "Cost"
|
||||||
|
},
|
||||||
|
"castingTime": {
|
||||||
|
"label": "Casting time"
|
||||||
|
},
|
||||||
|
"range": {
|
||||||
|
"label": "Range"
|
||||||
|
},
|
||||||
|
"duration": {
|
||||||
|
"label": "Duration"
|
||||||
|
},
|
||||||
|
"areaAffected": {
|
||||||
|
"label": "Area affected"
|
||||||
|
},
|
||||||
|
"savingThrow": {
|
||||||
|
"label": "Saving throw"
|
||||||
|
},
|
||||||
|
"extraAetherPoints": {
|
||||||
|
"label": "Extra aether points"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"Range": {
|
|
||||||
"na": "-",
|
|
||||||
"contact": "Contact",
|
|
||||||
"proche": "Proche",
|
|
||||||
"loin": "Loin",
|
|
||||||
"distant": "Distant"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Vulneravility": {
|
"Vulnerability": {
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
|
"cost": {
|
||||||
|
"label": "Cost"
|
||||||
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"label": "Description"
|
"label": "Description"
|
||||||
}
|
}
|
||||||
@ -109,14 +328,24 @@
|
|||||||
},
|
},
|
||||||
"Save": {
|
"Save": {
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
|
"value": {
|
||||||
|
"label": "Value"
|
||||||
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"label": "Description"
|
"label": "Description"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Money": {
|
||||||
|
"Tinbits": "Tin Bits",
|
||||||
|
"Coppers": "Copper",
|
||||||
|
"Silvers": "Silver",
|
||||||
|
"Golds": "Gold",
|
||||||
|
"Platinums": "Platinum"
|
||||||
|
},
|
||||||
"Label": {
|
"Label": {
|
||||||
"description": "Description",
|
"description": "Description",
|
||||||
"biens": "Biens",
|
"total": "Total",
|
||||||
"langues": "Langues",
|
"langues": "Langues",
|
||||||
"profil": "Profil",
|
"profil": "Profil",
|
||||||
"details": "Détails",
|
"details": "Détails",
|
||||||
|
@ -44,9 +44,11 @@ Hooks.once("init", function () {
|
|||||||
gift: models.LethalFantasyGift,
|
gift: models.LethalFantasyGift,
|
||||||
weapon: models.LethalFantasyWeapon,
|
weapon: models.LethalFantasyWeapon,
|
||||||
armor: models.LethalFantasyArmor,
|
armor: models.LethalFantasyArmor,
|
||||||
|
shield: models.LethalFantasyShield,
|
||||||
spell: models.LethalFantasySpell,
|
spell: models.LethalFantasySpell,
|
||||||
save: models.LethalFantasySave,
|
save: models.LethalFantasySave,
|
||||||
vulnerability: models.LethalFantasyVulnerability
|
vulnerability: models.LethalFantasyVulnerability,
|
||||||
|
equipment: models.LethalFantasyEquipment
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register sheet application classes
|
// Register sheet application classes
|
||||||
@ -62,6 +64,8 @@ Hooks.once("init", function () {
|
|||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasyWeaponSheet, { types: ["weapon"], makeDefault: true })
|
Items.registerSheet("lethalFantasy", applications.LethalFantasyWeaponSheet, { types: ["weapon"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasySpellSheet, { types: ["spell"], makeDefault: true })
|
Items.registerSheet("lethalFantasy", applications.LethalFantasySpellSheet, { types: ["spell"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasyArmorSheet, { types: ["armor"], makeDefault: true })
|
Items.registerSheet("lethalFantasy", applications.LethalFantasyArmorSheet, { types: ["armor"], makeDefault: true })
|
||||||
|
Items.registerSheet("lethalFantasy", applications.LethalFantasyShieldSheet, { types: ["shield"], makeDefault: true })
|
||||||
|
Items.registerSheet("lethalFantasy", applications.LethalFantasyEquipmentSheet, { types: ["equipment"], makeDefault: true })
|
||||||
|
|
||||||
// Other Document Configuration
|
// Other Document Configuration
|
||||||
CONFIG.ChatMessage.documentClass = documents.LethalFantasyChatMessage
|
CONFIG.ChatMessage.documentClass = documents.LethalFantasyChatMessage
|
||||||
@ -69,26 +73,6 @@ Hooks.once("init", function () {
|
|||||||
// Dice system configuration
|
// Dice system configuration
|
||||||
CONFIG.Dice.rolls.push(documents.LethalFantasyRoll)
|
CONFIG.Dice.rolls.push(documents.LethalFantasyRoll)
|
||||||
|
|
||||||
// Register system settings
|
|
||||||
game.settings.register("lethalFantasy", "displayOpponentMalus", {
|
|
||||||
name: "TENEBRIS.Setting.displayOpponentMalus",
|
|
||||||
hint: "TENEBRIS.Setting.displayOpponentMalusHint",
|
|
||||||
scope: "world",
|
|
||||||
config: true,
|
|
||||||
type: Boolean,
|
|
||||||
default: true,
|
|
||||||
})
|
|
||||||
|
|
||||||
game.settings.register("lethalFantasy", "fortune", {
|
|
||||||
name: "TENEBRIS.Setting.fortune",
|
|
||||||
hint: "TENEBRIS.Setting.fortuneHint",
|
|
||||||
scope: "world",
|
|
||||||
config: true,
|
|
||||||
type: Number,
|
|
||||||
default: 0,
|
|
||||||
requiresReload: true,
|
|
||||||
})
|
|
||||||
|
|
||||||
game.settings.register("lethalFantasy", "worldKey", {
|
game.settings.register("lethalFantasy", "worldKey", {
|
||||||
name: "Unique world key",
|
name: "Unique world key",
|
||||||
scope: "world",
|
scope: "world",
|
||||||
@ -100,9 +84,6 @@ Hooks.once("init", function () {
|
|||||||
// Activate socket handler
|
// Activate socket handler
|
||||||
game.socket.on(`system.${SYSTEM.id}`, handleSocketEvent)
|
game.socket.on(`system.${SYSTEM.id}`, handleSocketEvent)
|
||||||
|
|
||||||
// Pre-localize configuration objects
|
|
||||||
// TODO : encore d'actualité ?
|
|
||||||
// preLocalizeConfig()
|
|
||||||
|
|
||||||
initControlButtons()
|
initControlButtons()
|
||||||
|
|
||||||
@ -121,7 +102,7 @@ Hooks.once("init", function () {
|
|||||||
applications.LethalFantasyManager.askRollForAll(type, target, title, avantage)
|
applications.LethalFantasyManager.askRollForAll(type, target, title, avantage)
|
||||||
})
|
})
|
||||||
|
|
||||||
console.info("CTHULHU TENEBRIS | System Initialized")
|
console.info("LETHAL FANTASY | System Initialized")
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -146,7 +127,7 @@ Hooks.once("ready", function () {
|
|||||||
console.info("LETHAL FANTASY | Ready")
|
console.info("LETHAL FANTASY | Ready")
|
||||||
game.system.applicationManager = new applications.LethalFantasyManager()
|
game.system.applicationManager = new applications.LethalFantasyManager()
|
||||||
if (game.user.isGM) {
|
if (game.user.isGM) {
|
||||||
game.system.applicationManager.render(true)
|
//game.system.applicationManager.render(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!SYSTEM.DEV_MODE) {
|
if (!SYSTEM.DEV_MODE) {
|
||||||
|
@ -8,4 +8,5 @@ export { default as LethalFantasySaveSheet } from "./sheets/save-sheet.mjs"
|
|||||||
export { default as LethalFantasyArmorSheet } from "./sheets/armor-sheet.mjs"
|
export { default as LethalFantasyArmorSheet } from "./sheets/armor-sheet.mjs"
|
||||||
export { default as LethalFantasySpellSheet } from "./sheets/spell-sheet.mjs"
|
export { default as LethalFantasySpellSheet } from "./sheets/spell-sheet.mjs"
|
||||||
export { default as LethalFantasyEquipmentSheet } from "./sheets/equipment-sheet.mjs"
|
export { default as LethalFantasyEquipmentSheet } from "./sheets/equipment-sheet.mjs"
|
||||||
|
export { default as LethalFantasyShieldSheet } from "./sheets/shield-sheet.mjs"
|
||||||
export { default as LethalFantasyManager } from "./manager.mjs"
|
export { default as LethalFantasyManager } from "./manager.mjs"
|
||||||
|
@ -13,8 +13,6 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
contentClasses: ["character-content"],
|
contentClasses: ["character-content"],
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
deleteVoieMajeure: LethalFantasyCharacterSheet.#onDeleteVoieMajeure,
|
|
||||||
deleteVoieMineure: LethalFantasyCharacterSheet.#onDeleteVoieMineure,
|
|
||||||
createEquipment: LethalFantasyCharacterSheet.#onCreateEquipment,
|
createEquipment: LethalFantasyCharacterSheet.#onCreateEquipment,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -25,7 +23,7 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
template: "systems/fvtt-lethal-fantasy/templates/character-main.hbs",
|
template: "systems/fvtt-lethal-fantasy/templates/character-main.hbs",
|
||||||
},
|
},
|
||||||
tabs: {
|
tabs: {
|
||||||
template: "templates/generic/tab-navigation.hbs",
|
template: "systems/fvtt-lethal-fantasy/templates/generic/tab-navigation.hbs",
|
||||||
},
|
},
|
||||||
items: {
|
items: {
|
||||||
template: "systems/fvtt-lethal-fantasy/templates/character-items.hbs",
|
template: "systems/fvtt-lethal-fantasy/templates/character-items.hbs",
|
||||||
@ -46,8 +44,8 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
*/
|
*/
|
||||||
#getTabs() {
|
#getTabs() {
|
||||||
const tabs = {
|
const tabs = {
|
||||||
items: { id: "items", group: "sheet", icon: "fa-solid fa-shapes", label: "TENEBRIS.Character.Label.details" },
|
items: { id: "items", group: "sheet", icon: "fa-solid fa-shapes", label: "LETHALFANTASY.Character.Label.details" },
|
||||||
biography: { id: "biography", group: "sheet", icon: "fa-solid fa-book", label: "TENEBRIS.Character.Label.biography" },
|
biography: { id: "biography", group: "sheet", icon: "fa-solid fa-book", label: "LETHALFANTASY.Character.Label.biography" },
|
||||||
}
|
}
|
||||||
for (const v of Object.values(tabs)) {
|
for (const v of Object.values(tabs)) {
|
||||||
v.active = this.tabGroups[v.group] === v.id
|
v.active = this.tabGroups[v.group] === v.id
|
||||||
@ -62,105 +60,17 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
context.tabs = this.#getTabs()
|
context.tabs = this.#getTabs()
|
||||||
|
|
||||||
context.tooltipsCaracteristiques = {
|
context.tooltipsCaracteristiques = {
|
||||||
rob: this._generateTooltip("save", "rob"),
|
|
||||||
dex: this._generateTooltip("save", "dex"),
|
|
||||||
int: this._generateTooltip("save", "int"),
|
|
||||||
per: this._generateTooltip("save", "per"),
|
|
||||||
vol: this._generateTooltip("save", "vol"),
|
|
||||||
dmax: this._generateTooltip("other", "dmax"),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
context.tooltipsRessources = {
|
context.tooltipsRessources = {
|
||||||
san: this._generateTooltip("resource", "san"),
|
|
||||||
oeil: this._generateTooltip("resource", "oeil"),
|
|
||||||
verbe: this._generateTooltip("resource", "verbe"),
|
|
||||||
bourse: this._generateTooltip("resource", "bourse"),
|
|
||||||
magie: this._generateTooltip("resource", "magie"),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
context.rollType = {
|
context.rollType = {
|
||||||
saveRob: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "save",
|
|
||||||
rollTarget: "rob",
|
|
||||||
tooltip: this._generateTooltip("save", "rob"),
|
|
||||||
},
|
|
||||||
saveDex: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "save",
|
|
||||||
rollTarget: "dex",
|
|
||||||
tooltip: this._generateTooltip("save", "dex"),
|
|
||||||
},
|
|
||||||
saveInt: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "save",
|
|
||||||
rollTarget: "int",
|
|
||||||
tooltip: this._generateTooltip("save", "int"),
|
|
||||||
},
|
|
||||||
savePer: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "save",
|
|
||||||
rollTarget: "per",
|
|
||||||
tooltip: this._generateTooltip("save", "per"),
|
|
||||||
drag: true,
|
|
||||||
},
|
|
||||||
saveVol: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "save",
|
|
||||||
rollTarget: "vol",
|
|
||||||
tooltip: this._generateTooltip("save", "vol"),
|
|
||||||
drag: true,
|
|
||||||
},
|
|
||||||
resourceSan: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "resource",
|
|
||||||
rollTarget: "san",
|
|
||||||
tooltip: this._generateTooltip("resource", "san"),
|
|
||||||
drag: true,
|
|
||||||
},
|
|
||||||
resourceOeil: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "resource",
|
|
||||||
rollTarget: "oeil",
|
|
||||||
tooltip: this._generateTooltip("resource", "oeil"),
|
|
||||||
drag: true,
|
|
||||||
},
|
|
||||||
resourceVerbe: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "resource",
|
|
||||||
rollTarget: "verbe",
|
|
||||||
tooltip: this._generateTooltip("resource", "verbe"),
|
|
||||||
drag: true,
|
|
||||||
},
|
|
||||||
resourceBourse: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "resource",
|
|
||||||
rollTarget: "bourse",
|
|
||||||
tooltip: this._generateTooltip("resource", "bourse"),
|
|
||||||
drag: true,
|
|
||||||
},
|
|
||||||
resourceMagie: {
|
|
||||||
action: "roll",
|
|
||||||
rollType: "resource",
|
|
||||||
rollTarget: "magie",
|
|
||||||
tooltip: this._generateTooltip("resource", "magie"),
|
|
||||||
drag: true,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
|
|
||||||
_generateTooltip(type, target) {
|
_generateTooltip(type, target) {
|
||||||
if (type === ROLL_TYPE.SAVE) {
|
|
||||||
const progres = this.document.system.caracteristiques[target].progression.progres
|
|
||||||
? game.i18n.localize("TENEBRIS.Label.hasProgressed")
|
|
||||||
: game.i18n.localize("TENEBRIS.Label.noProgress")
|
|
||||||
return `${game.i18n.localize("TENEBRIS.Label.experience")} : ${this.document.system.caracteristiques[target].progression.experience} <br> ${progres}`
|
|
||||||
} else if (type === ROLL_TYPE.RESOURCE) {
|
|
||||||
return `${game.i18n.localize("TENEBRIS.Label.maximum")} : ${this.document.system.ressources[target].max} <br> ${game.i18n.localize("TENEBRIS.Label.experience")} : ${this.document.system.ressources[target].experience}`
|
|
||||||
} else if (type === "other") {
|
|
||||||
return `${game.i18n.localize("TENEBRIS.Label.experience")} : ${this.document.system.dmax.experience}`
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
@ -172,9 +82,6 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
break
|
break
|
||||||
case "items":
|
case "items":
|
||||||
context.tab = context.tabs.items
|
context.tab = context.tabs.items
|
||||||
const talents = await this._prepareTalents()
|
|
||||||
context.talents = talents
|
|
||||||
context.talentsAppris = talents.filter((talent) => talent.appris)
|
|
||||||
context.weapons = doc.itemTypes.weapon
|
context.weapons = doc.itemTypes.weapon
|
||||||
context.armors = doc.itemTypes.armor
|
context.armors = doc.itemTypes.armor
|
||||||
context.spells = doc.itemTypes.spell
|
context.spells = doc.itemTypes.spell
|
||||||
@ -183,40 +90,12 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
case "biography":
|
case "biography":
|
||||||
context.tab = context.tabs.biography
|
context.tab = context.tabs.biography
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(doc.system.description, { async: true })
|
context.enrichedDescription = await TextEditor.enrichHTML(doc.system.description, { async: true })
|
||||||
context.enrichedLangues = await TextEditor.enrichHTML(doc.system.langues, { async: true })
|
|
||||||
context.enrichedNotes = await TextEditor.enrichHTML(doc.system.notes, { async: true })
|
context.enrichedNotes = await TextEditor.enrichHTML(doc.system.notes, { async: true })
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Prepares the talents for the character sheet.
|
|
||||||
*
|
|
||||||
* @returns {Array} An array of talents with their properties.
|
|
||||||
*/
|
|
||||||
async _prepareTalents() {
|
|
||||||
const talents = await Promise.all(
|
|
||||||
this.document.itemTypes.talent.map(async (talent) => {
|
|
||||||
const pathName = await talent.system.getPathName()
|
|
||||||
return {
|
|
||||||
id: talent.id,
|
|
||||||
uuid: talent.uuid,
|
|
||||||
name: talent.name,
|
|
||||||
img: talent.img,
|
|
||||||
path: `Obtenu par ${pathName}`,
|
|
||||||
description: talent.system.improvedDescription,
|
|
||||||
progression: talent.system.progression,
|
|
||||||
niveau: talent.system.niveau,
|
|
||||||
appris: talent.system.appris,
|
|
||||||
details: talent.system.details,
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
talents.sort((a, b) => b.appris - a.appris || a.name.localeCompare(b.name, game.i18n.lang))
|
|
||||||
return talents
|
|
||||||
}
|
|
||||||
|
|
||||||
// #region Drag-and-Drop Workflow
|
// #region Drag-and-Drop Workflow
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -244,43 +123,6 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
await this.document.addPath(item)
|
await this.document.addPath(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
// #region Actions
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Suppression de la voie majeure
|
|
||||||
* @param {Event} event The initiating click event.
|
|
||||||
* @param {HTMLElement} target The current target of the event listener.
|
|
||||||
*/
|
|
||||||
static async #onDeleteVoieMajeure(event, target) {
|
|
||||||
const proceed = await foundry.applications.api.DialogV2.confirm({
|
|
||||||
content: game.i18n.localize("TENEBRIS.Dialog.suppressionTalents"),
|
|
||||||
rejectClose: false,
|
|
||||||
modal: true,
|
|
||||||
})
|
|
||||||
if (!proceed) return
|
|
||||||
const path = this.document.items.get(this.document.system.voies.majeure.id)
|
|
||||||
if (!path) return
|
|
||||||
await this.document.deletePath(path, true)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Suppression de la voie mineure
|
|
||||||
* @param {Event} event The initiating click event.
|
|
||||||
* @param {HTMLElement} target The current target of the event listener.
|
|
||||||
*/
|
|
||||||
static async #onDeleteVoieMineure(event, target) {
|
|
||||||
const proceed = await foundry.applications.api.DialogV2.confirm({
|
|
||||||
content: game.i18n.localize("TENEBRIS.Dialog.suppressionTalents"),
|
|
||||||
rejectClose: false,
|
|
||||||
modal: true,
|
|
||||||
})
|
|
||||||
if (!proceed) return
|
|
||||||
const path = this.document.items.get(this.document.system.voies.mineure.id)
|
|
||||||
if (!path) return
|
|
||||||
await this.document.deletePath(path, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new attack item directly from the sheet and embeds it into the document.
|
* Creates a new attack item directly from the sheet and embeds it into the document.
|
||||||
@ -290,11 +132,11 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
static #onCreateEquipment(event, target) {
|
static #onCreateEquipment(event, target) {
|
||||||
// Création d'une armure
|
// Création d'une armure
|
||||||
if (event.shiftKey) {
|
if (event.shiftKey) {
|
||||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("TENEBRIS.Label.newArmor"), type: "armor" }])
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("LETHALFANTASY.Label.newArmor"), type: "armor" }])
|
||||||
}
|
}
|
||||||
// Création d'une arme
|
// Création d'une arme
|
||||||
else {
|
else {
|
||||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("TENEBRIS.Label.newWeapon"), type: "weapon" }])
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("LETHALFANTASY.Label.newWeapon"), type: "weapon" }])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ export default class LethalFantasyGiftSheet extends LethalFantasyItemSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.improvedDescription, { async: true })
|
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
27
module/applications/sheets/shield-sheet.mjs
Normal file
27
module/applications/sheets/shield-sheet.mjs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import LethalFantasyItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class LethalFantasyShieldSheet extends LethalFantasyItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
classes: ["shield"],
|
||||||
|
position: {
|
||||||
|
width: 620,
|
||||||
|
},
|
||||||
|
window: {
|
||||||
|
contentClasses: ["shield-content"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
main: {
|
||||||
|
template: "systems/fvtt-lethal-fantasy/templates/shield.hbs",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
async _prepareContext() {
|
||||||
|
const context = await super._prepareContext()
|
||||||
|
return context
|
||||||
|
}
|
||||||
|
}
|
@ -5,7 +5,7 @@ export default class LethalFantasyWeaponSheet extends LethalFantasyItemSheet {
|
|||||||
static DEFAULT_OPTIONS = {
|
static DEFAULT_OPTIONS = {
|
||||||
classes: ["weapon"],
|
classes: ["weapon"],
|
||||||
position: {
|
position: {
|
||||||
width: 400,
|
width: 620,
|
||||||
},
|
},
|
||||||
window: {
|
window: {
|
||||||
contentClasses: ["weapon-content"],
|
contentClasses: ["weapon-content"],
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
export const CATEGORY = Object.freeze({
|
export const TYPE = Object.freeze({
|
||||||
sommaire: { id: "sommaire", label: "LETHALFANTASY.Armor.Category.sommaire" },
|
light: { id: "light", label: "LETHALFANTASY.Armor.Category.light" },
|
||||||
legere: { id: "legere", label: "LETHALFANTASY.Armor.Category.legere" },
|
medium: { id: "medium", label: "LETHALFANTASY.Armor.Category.medium" },
|
||||||
guerre: { id: "guerre", label: "LETHALFANTASY.Armor.Category.guerre" },
|
heavy: { id: "medium", label: "LETHALFANTASY.Armor.Category.heavy" }
|
||||||
})
|
})
|
||||||
|
51
module/config/equipment.mjs
Normal file
51
module/config/equipment.mjs
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
export const CATEGORY = Object.freeze({
|
||||||
|
essentialkit: {
|
||||||
|
id: "essentialkit",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.EssentialKit",
|
||||||
|
},
|
||||||
|
classkit: {
|
||||||
|
id: "classkit",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.ClassKit",
|
||||||
|
},
|
||||||
|
clothing: {
|
||||||
|
id: "clothing",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.Clothing",
|
||||||
|
},
|
||||||
|
music: {
|
||||||
|
id: "music",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.Music",
|
||||||
|
},
|
||||||
|
sleeping: {
|
||||||
|
id: "sleeping",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.Sleeping",
|
||||||
|
},
|
||||||
|
landtransport: {
|
||||||
|
id: "landtransport",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.LandTransport",
|
||||||
|
},
|
||||||
|
watertransport: {
|
||||||
|
id: "watertransport",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.WaterTransport",
|
||||||
|
},
|
||||||
|
mount: {
|
||||||
|
id: "mount",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.Mount",
|
||||||
|
},
|
||||||
|
light: {
|
||||||
|
id: "light",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.Light",
|
||||||
|
},
|
||||||
|
loadbearing: {
|
||||||
|
id: "loadbearing",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.LoadBearing",
|
||||||
|
},
|
||||||
|
misc: {
|
||||||
|
id: "misc",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.Misc",
|
||||||
|
},
|
||||||
|
fooddrink: {
|
||||||
|
id: "fooddrink",
|
||||||
|
label: "LETHALFANTASY.EquipmentCategories.FoodDrink",
|
||||||
|
},
|
||||||
|
|
||||||
|
})
|
@ -3,6 +3,7 @@ import * as WEAPON from "./weapon.mjs"
|
|||||||
import * as ARMOR from "./armor.mjs"
|
import * as ARMOR from "./armor.mjs"
|
||||||
import * as SPELL from "./spell.mjs"
|
import * as SPELL from "./spell.mjs"
|
||||||
import * as SKILL from "./skill.mjs"
|
import * as SKILL from "./skill.mjs"
|
||||||
|
import * as EQUIPMENT from "./equipment.mjs"
|
||||||
|
|
||||||
export const SYSTEM_ID = "fvtt-lethal-fantasy"
|
export const SYSTEM_ID = "fvtt-lethal-fantasy"
|
||||||
export const DEV_MODE = false
|
export const DEV_MODE = false
|
||||||
@ -81,8 +82,10 @@ export const SYSTEM = {
|
|||||||
SKILL_CATEGORY: SKILL.CATEGORY,
|
SKILL_CATEGORY: SKILL.CATEGORY,
|
||||||
WEAPON_CATEGORY: WEAPON.CATEGORY,
|
WEAPON_CATEGORY: WEAPON.CATEGORY,
|
||||||
WEAPON_DAMAGE: WEAPON.DAMAGE,
|
WEAPON_DAMAGE: WEAPON.DAMAGE,
|
||||||
ARMOR_CATEGORY: ARMOR.CATEGORY,
|
ARMOR_TYPE: ARMOR.TYPE,
|
||||||
|
EQUIPMENT_CATEGORY: EQUIPMENT.CATEGORY,
|
||||||
SPELL_RANGE: SPELL.RANGE,
|
SPELL_RANGE: SPELL.RANGE,
|
||||||
|
WEAPON_TYPE: WEAPON.WEAPON_TYPE,
|
||||||
MONEY,
|
MONEY,
|
||||||
ASCII,
|
ASCII,
|
||||||
ROLL_TYPE,
|
ROLL_TYPE,
|
||||||
|
@ -21,6 +21,11 @@ export const CATEGORY = Object.freeze({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
export const WEAPON_TYPE = {
|
||||||
|
"melee": "LETHALFANTASY.Weapon.WeaponType.melee",
|
||||||
|
"ranged": "LETHALFANTASY.Weapon.WeaponType.ranged"
|
||||||
|
}
|
||||||
|
|
||||||
export const DAMAGE = Object.freeze({
|
export const DAMAGE = Object.freeze({
|
||||||
UN: "1",
|
UN: "1",
|
||||||
D4: "d4",
|
D4: "d4",
|
||||||
|
@ -4,6 +4,8 @@ export { default as LethalFantasyWeapon } from "./weapon.mjs"
|
|||||||
export { default as LethalFantasySpell } from "./spell.mjs"
|
export { default as LethalFantasySpell } from "./spell.mjs"
|
||||||
export { default as LethalFantasySkill } from "./skill.mjs"
|
export { default as LethalFantasySkill } from "./skill.mjs"
|
||||||
export { default as LethalFantasyArmor } from "./armor.mjs"
|
export { default as LethalFantasyArmor } from "./armor.mjs"
|
||||||
|
export { default as LethalFantasyShield } from "./shield.mjs"
|
||||||
export { default as LethalFantasyGift } from "./gift.mjs"
|
export { default as LethalFantasyGift } from "./gift.mjs"
|
||||||
export { default as LethalFantasyVulnerability } from "./vulnerability.mjs"
|
export { default as LethalFantasyVulnerability } from "./vulnerability.mjs"
|
||||||
export { default as LethalFantasySave } from "./save.mjs"
|
export { default as LethalFantasySave } from "./save.mjs"
|
||||||
|
export { default as LethalFantasyEquipment } from "./equipment.mjs"
|
||||||
|
@ -3,13 +3,17 @@ export default class LethalFantasyArmor extends foundry.abstract.TypeDataModel {
|
|||||||
static defineSchema() {
|
static defineSchema() {
|
||||||
const fields = foundry.data.fields
|
const fields = foundry.data.fields
|
||||||
const schema = {}
|
const schema = {}
|
||||||
|
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||||
|
|
||||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||||
schema.category = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.ARMOR_CATEGORY })
|
schema.armortype = new fields.StringField({ required: true, initial: "light", choices: SYSTEM.ARMOR_TYPE })
|
||||||
schema.protection = new fields.StringField({
|
schema.defense = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: -50 })
|
||||||
required: true,
|
schema.movementreduction = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
initial: ""
|
schema.hp = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
})
|
schema.damagereduction = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
|
||||||
|
schema.load = new fields.StringField({ required: true, initial: "L" })
|
||||||
|
|
||||||
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
schema.money = new fields.StringField({ required: true, initial: "tinbit", choices: SYSTEM.MONEY })
|
schema.money = new fields.StringField({ required: true, initial: "tinbit", choices: SYSTEM.MONEY })
|
||||||
|
|
||||||
|
@ -7,11 +7,12 @@ export default class LethalFantasyEquipment extends foundry.abstract.TypeDataMod
|
|||||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||||
|
|
||||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||||
schema.category = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_CATEGORY })
|
schema.category = new fields.StringField({ required: true, initial: "tinbit", choices: SYSTEM.EQUIPMENT_CATEGORIES })
|
||||||
schema.damages = new fields.StringField({
|
|
||||||
required: true,
|
schema.load = new fields.StringField({ required: true, initial: "L" })
|
||||||
initial: ""
|
schema.hi = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
})
|
schema.medium = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
schema.lo = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
schema.money = new fields.StringField({ required: true, initial: "tinbit", choices: SYSTEM.MONEY })
|
schema.money = new fields.StringField({ required: true, initial: "tinbit", choices: SYSTEM.MONEY })
|
||||||
|
|
||||||
@ -21,7 +22,4 @@ export default class LethalFantasyEquipment extends foundry.abstract.TypeDataMod
|
|||||||
/** @override */
|
/** @override */
|
||||||
static LOCALIZATION_PREFIXES = ["LETHALFANTASY.Equipment"]
|
static LOCALIZATION_PREFIXES = ["LETHALFANTASY.Equipment"]
|
||||||
|
|
||||||
get weaponCategory() {
|
|
||||||
return game.i18n.localize(CATEGORY[this.category].label)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
41
module/models/shield.mjs
Normal file
41
module/models/shield.mjs
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
import { SYSTEM } from "../config/system.mjs"
|
||||||
|
export default class LethalFantasyShield extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields
|
||||||
|
const schema = {}
|
||||||
|
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||||
|
|
||||||
|
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||||
|
schema.defense = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: -50 })
|
||||||
|
schema.movementreduction = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
schema.standing = new fields.SchemaField({
|
||||||
|
min: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
max: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
})
|
||||||
|
schema.crouching = new fields.SchemaField({
|
||||||
|
min: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
max: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
})
|
||||||
|
|
||||||
|
schema.destruction = new fields.SchemaField({
|
||||||
|
bashing: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
slashing: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
piercing: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
})
|
||||||
|
schema.autodestruction = new fields.SchemaField({
|
||||||
|
bashing: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
slashing: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
piercing: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
})
|
||||||
|
|
||||||
|
schema.load = new fields.StringField({ required: true, initial: "L" })
|
||||||
|
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
|
schema.money = new fields.StringField({ required: true, initial: "tinbit", choices: SYSTEM.MONEY })
|
||||||
|
|
||||||
|
return schema
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static LOCALIZATION_PREFIXES = ["LETHALFANTASY.Shield"]
|
||||||
|
|
||||||
|
}
|
@ -21,4 +21,47 @@ export default class LethalFantasySkill extends foundry.abstract.TypeDataModel {
|
|||||||
get skillCategory() {
|
get skillCategory() {
|
||||||
return game.i18n.localize(CATEGORY[this.category].label)
|
return game.i18n.localize(CATEGORY[this.category].label)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prepareDerivedData() {
|
||||||
|
super.prepareDerivedData();
|
||||||
|
this.skillTotal = this.computeBase();
|
||||||
|
}
|
||||||
|
|
||||||
|
computeBase() {
|
||||||
|
let actor = this.parent?.actor;
|
||||||
|
if (!actor) {
|
||||||
|
return `${this.base } + ${ String(this.bonus)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Split the base value per stat : WIS,DEX,STR,INT,CHA (example)
|
||||||
|
const base = this.base;
|
||||||
|
let baseSplit = base.split(",");
|
||||||
|
let baseSplitLength = baseSplit.length;
|
||||||
|
if ( baseSplitLength > 0) {
|
||||||
|
// Select the max stat value from the parent actor
|
||||||
|
let maxStat = 0;
|
||||||
|
for (let i = 0; i < baseSplitLength; i++) {
|
||||||
|
const stat = baseSplit[i];
|
||||||
|
const statValue = actor.system.characteristics[stat.toLowerCase()]?.value || 0;
|
||||||
|
if (statValue > maxStat) {
|
||||||
|
maxStat = statValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return maxStat;
|
||||||
|
} else {
|
||||||
|
// Split with + calculate the total
|
||||||
|
baseSplit = base.split("+");
|
||||||
|
baseSplitLength = baseSplit.length;
|
||||||
|
if ( baseSplitLength > 0) {
|
||||||
|
let total = 0;
|
||||||
|
for (let i = 0; i < baseSplitLength; i++) {
|
||||||
|
const stat = baseSplit[i];
|
||||||
|
const statValue = actor.system.characteristics[stat.toLowerCase()]?.value || 0;
|
||||||
|
total += statValue;
|
||||||
|
}
|
||||||
|
return total
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return `${this.base } + ${ String(this.bonus)}`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,19 @@ export default class LethalFantasySpell extends foundry.abstract.TypeDataModel {
|
|||||||
max: 20,
|
max: 20,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
schema.components = new fields.SchemaField({
|
||||||
|
verbal: new fields.BooleanField(),
|
||||||
|
somatic: new fields.BooleanField(),
|
||||||
|
material: new fields.BooleanField(),
|
||||||
|
})
|
||||||
|
schema.castingTime = new fields.StringField({ required: true, initial: "" })
|
||||||
|
schema.range = new fields.StringField({ required: true, initial: "" })
|
||||||
|
schema.areaAffected = new fields.StringField({ required: true, initial: "" })
|
||||||
|
schema.duration = new fields.StringField({ required: true, initial: "" })
|
||||||
|
schema.savingThrow = new fields.StringField({ required: true, initial: "" })
|
||||||
|
schema.extraAetherPoints = new fields.StringField({ required: true, initial: "" })
|
||||||
|
|
||||||
return schema
|
return schema
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,11 +7,38 @@ export default class LethalFantasySkill extends foundry.abstract.TypeDataModel {
|
|||||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||||
|
|
||||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||||
schema.category = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_CATEGORY })
|
schema.weaponType = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_TYPE })
|
||||||
schema.damages = new fields.StringField({
|
schema.damageType = new fields.SchemaField({
|
||||||
required: true,
|
typeP: new fields.BooleanField(),
|
||||||
initial: ""
|
typeB: new fields.BooleanField(),
|
||||||
|
typeS: new fields.BooleanField()
|
||||||
})
|
})
|
||||||
|
schema.damage = new fields.SchemaField({
|
||||||
|
damageS: new fields.StringField({required: true, initial: ""}),
|
||||||
|
damageM: new fields.StringField({required: true, initial: ""})
|
||||||
|
})
|
||||||
|
schema.hands = new fields.StringField({ required: true, initial: "1", choices: ["1", "2"] })
|
||||||
|
|
||||||
|
schema.defenseMax = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
schema.secondsToAttack = new fields.StringField({required: true, initial: ""})
|
||||||
|
|
||||||
|
schema.speed = new fields.SchemaField({
|
||||||
|
simpleAim: new fields.StringField({required: true, initial: ""}),
|
||||||
|
carefulAim: new fields.StringField({required: true, initial: ""}),
|
||||||
|
focusedAim: new fields.StringField({required: true, initial: ""})
|
||||||
|
})
|
||||||
|
|
||||||
|
schema.defense = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
schema.range = new fields.SchemaField({
|
||||||
|
pointBlank: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
short: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
medium: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
long: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
extreme: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 }),
|
||||||
|
outOfSkill: new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
|
})
|
||||||
|
|
||||||
|
schema.load = new fields.StringField({ required: true, initial: "L" })
|
||||||
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
schema.cost = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
schema.money = new fields.StringField({ required: true, initial: "tinbit", choices: SYSTEM.MONEY })
|
schema.money = new fields.StringField({ required: true, initial: "tinbit", choices: SYSTEM.MONEY })
|
||||||
|
|
||||||
|
16
styles/equipment.less
Normal file
16
styles/equipment.less
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
.equipment-content {
|
||||||
|
.sheet-common();
|
||||||
|
.item-sheet-common();
|
||||||
|
|
||||||
|
.header {
|
||||||
|
display: flex;
|
||||||
|
img {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
flex: 10%;
|
||||||
|
}
|
||||||
|
}
|
@ -12,6 +12,8 @@
|
|||||||
@import "vulnerability.less";
|
@import "vulnerability.less";
|
||||||
@import "save.less";
|
@import "save.less";
|
||||||
@import "chat.less";
|
@import "chat.less";
|
||||||
|
@import "equipment.less";
|
||||||
|
@import "shield.less";
|
||||||
}
|
}
|
||||||
|
|
||||||
@import "roll.less";
|
@import "roll.less";
|
||||||
|
@ -1,94 +1,26 @@
|
|||||||
.gifts-content {
|
.gift-content {
|
||||||
.sheet-common();
|
.sheet-common();
|
||||||
.item-sheet-common();
|
.item-sheet-common();
|
||||||
|
|
||||||
.path-name {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
|
||||||
.control {
|
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
img {
|
img {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.path-main {
|
input[type="checkbox"] {
|
||||||
display: grid;
|
font-size: var(--font-size-14);
|
||||||
grid-template-columns: 2fr 2fr 1fr;
|
width: 20px;
|
||||||
|
padding-top: 0;
|
||||||
.profil {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(2, 1fr);
|
|
||||||
}
|
|
||||||
|
|
||||||
.profil-gauche,
|
|
||||||
.profil-droite {
|
|
||||||
flex: 1; /* Chaque colonne prend la moitié de l'espace disponible */
|
|
||||||
padding: 10px; /* Espacement intérieur */
|
|
||||||
}
|
|
||||||
|
|
||||||
.profil-gauche {
|
|
||||||
margin-right: 10px; /* Espace entre les deux colonnes */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Optionnel : supprimer le margin-right sur la dernière colonne si vous avez besoin d'un espacement précis */
|
|
||||||
.profil-droite {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.biens {
|
|
||||||
prose-mirror {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.langues {
|
|
||||||
prose-mirror {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.description {
|
|
||||||
prose-mirror.inactive {
|
|
||||||
min-height: 40px;
|
|
||||||
}
|
|
||||||
prose-mirror.active {
|
|
||||||
min-height: 150px;
|
|
||||||
}
|
|
||||||
grid-column: span 3;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.path-talents {
|
input[type="checkbox"]:checked {
|
||||||
display: grid;
|
background-color: rgba(0, 0, 0, 0.1);
|
||||||
grid-template-columns: repeat(5, 1fr);
|
}
|
||||||
gap: 10px;
|
|
||||||
.talent {
|
input[type="checkbox"]:checked::after {
|
||||||
background-color: #f0f0f0;
|
color: rgba(0, 0, 0, 0.1);
|
||||||
padding: 5px;
|
|
||||||
border-radius: 5px;
|
|
||||||
.header {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
.name {
|
|
||||||
font-family: var(--font-secondary);
|
|
||||||
font-size: calc(var(--font-size-standard) * 1.5);
|
|
||||||
padding-left: 20px;
|
|
||||||
}
|
|
||||||
.controls {
|
|
||||||
font-size: calc(var(--font-size-standard) * 0.8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.progression {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
.description {
|
|
||||||
font-size: calc(var(--font-size-standard) * 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
:root {
|
:root {
|
||||||
--font-size-standard: 0.8125rem;
|
--font-size-standard: 1.0rem;
|
||||||
--background-image-base: url("../assets/parchment.jpg");
|
--background-image-base: url("../assets/parchment.jpg");
|
||||||
--font-secondary: "Amiri", serif;
|
--font-secondary: "Amiri", serif;
|
||||||
--logo-standard: url("../assets/lethal-fantasy-logo.webp");
|
--logo-standard: url("../assets/lethal-fantasy-logo.webp");
|
||||||
@ -35,7 +35,7 @@ i.lethalfantasy {
|
|||||||
|
|
||||||
.application.dialog.lethalfantasy {
|
.application.dialog.lethalfantasy {
|
||||||
font-family: var(--font-primary);
|
font-family: var(--font-primary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.2);
|
font-size: calc(var(--font-size-standard) * 1.0);
|
||||||
background-image: var(--background-image-base);
|
background-image: var(--background-image-base);
|
||||||
button:hover {
|
button:hover {
|
||||||
background: var(--color-dark-6);
|
background: var(--color-dark-6);
|
||||||
|
@ -24,13 +24,13 @@
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 2);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset {
|
fieldset {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 5px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,17 +38,17 @@
|
|||||||
input,
|
input,
|
||||||
select {
|
select {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.0);
|
||||||
}
|
}
|
||||||
select {
|
select {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
legend {
|
legend {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
@ -57,7 +57,7 @@
|
|||||||
.character-sheet-common {
|
.character-sheet-common {
|
||||||
label {
|
label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +68,21 @@
|
|||||||
|
|
||||||
label {
|
label {
|
||||||
font-family: var(--font-secondary);
|
font-family: var(--font-secondary);
|
||||||
font-size: calc(var(--font-size-standard) * 1.6);
|
font-size: calc(var(--font-size-standard) * 1.0);
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.align-top {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 0.1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
/*border-color: black;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2%;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.shift-right {
|
||||||
|
margin-left: 2rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
16
styles/shield.less
Normal file
16
styles/shield.less
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
.shield-content {
|
||||||
|
.sheet-common();
|
||||||
|
.item-sheet-common();
|
||||||
|
|
||||||
|
.header {
|
||||||
|
display: flex;
|
||||||
|
img {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
flex: 10%;
|
||||||
|
}
|
||||||
|
}
|
@ -14,8 +14,5 @@
|
|||||||
flex: 10%;
|
flex: 10%;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[name="system.consequenceA"], input[name="system.consequenceB"] {
|
|
||||||
font-size: calc(var(--font-size-standard) * 1.2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -38,7 +38,9 @@
|
|||||||
"save": { "htmlFields": ["description"] },
|
"save": { "htmlFields": ["description"] },
|
||||||
"weapon": { "htmlFields": ["description"] },
|
"weapon": { "htmlFields": ["description"] },
|
||||||
"armor": { "htmlFields": ["description"] },
|
"armor": { "htmlFields": ["description"] },
|
||||||
"spell": { "htmlFields": ["description"] }
|
"shield": { "htmlFields": ["description"] },
|
||||||
|
"spell": { "htmlFields": ["description"] },
|
||||||
|
"equipment": { "htmlFields": ["description"] }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"grid": {
|
"grid": {
|
||||||
|
@ -4,14 +4,21 @@
|
|||||||
{{formInput fields.name value=source.name}}
|
{{formInput fields.name value=source.name}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{formField systemFields.category value=system.category localize=true}}
|
{{formField systemFields.armortype value=system.armortype localize=true}}
|
||||||
{{formField systemFields.valeur value=system.valeur}}
|
{{formField systemFields.defense value=system.defense}}
|
||||||
{{formField systemFields.malus value=system.malus}}
|
{{formField systemFields.movementreduction value=system.movementreduction}}
|
||||||
|
{{formField systemFields.hp value=system.hp}}
|
||||||
|
{{formField systemFields.damagereduction value=system.damagereduction}}
|
||||||
|
{{formField systemFields.load value=system.load}}
|
||||||
|
|
||||||
|
{{formField systemFields.cost value=system.cost}}
|
||||||
|
{{formField systemFields.money value=system.money localize=true}}
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "TENEBRIS.Label.description"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||||
{{formInput
|
{{formInput
|
||||||
systemFields.description
|
systemFields.description
|
||||||
enriched=enrichedDescription
|
enriched=description
|
||||||
value=system.description
|
value=system.description
|
||||||
name="system.description"
|
name="system.description"
|
||||||
toggled="false"
|
toggled="false"
|
||||||
|
14
templates/equipment.hbs
Normal file
14
templates/equipment.hbs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<section>
|
||||||
|
<div class="header">
|
||||||
|
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||||
|
{{formInput fields.name value=source.name}}
|
||||||
|
</div>
|
||||||
|
{{formField systemFields.cost value=system.cost}}
|
||||||
|
{{formField systemFields.money value=system.money localize=true}}
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||||
|
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
</section>
|
@ -3,14 +3,10 @@
|
|||||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||||
{{formInput fields.name value=source.name}}
|
{{formInput fields.name value=source.name}}
|
||||||
</div>
|
</div>
|
||||||
{{formField systemFields.appris value=system.appris}}
|
{{formField systemFields.cost value=system.cost}}
|
||||||
{{formField systemFields.progression value=system.progression}}
|
|
||||||
{{#if canProgress}}
|
|
||||||
{{formField systemFields.niveau value=system.niveau }}
|
|
||||||
{{/if}}wwww
|
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "TENEBRIS.Label.description"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
13
templates/save.hbs
Normal file
13
templates/save.hbs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<section>
|
||||||
|
<div class="header">
|
||||||
|
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||||
|
{{formInput fields.name value=source.name}}
|
||||||
|
</div>
|
||||||
|
{{formField systemFields.value value=system.value}}
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||||
|
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
</section>
|
59
templates/shield.hbs
Normal file
59
templates/shield.hbs
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<section>
|
||||||
|
<div class="header">
|
||||||
|
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||||
|
{{formInput fields.name value=source.name}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<div class="align-top">
|
||||||
|
{{formField systemFields.defense value=system.defense}}
|
||||||
|
{{formField systemFields.movementreduction value=system.movementreduction}}
|
||||||
|
|
||||||
|
<label>Standing</label>
|
||||||
|
<div class="shift-right">
|
||||||
|
{{formField systemFields.standing.fields.min value=system.standing.min}}
|
||||||
|
{{formField systemFields.standing.fields.max value=system.standing.min}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label>Crouching</label>
|
||||||
|
<div class="shift-right">
|
||||||
|
{{formField systemFields.crouching.fields.min value=system.crouching.min}}
|
||||||
|
{{formField systemFields.crouching.fields.max value=system.crouching.min}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="align-top">
|
||||||
|
<label>Destruction</label>
|
||||||
|
<div class="shift-right">
|
||||||
|
{{formField systemFields.destruction.fields.bashing value=system.destruction.bashing}}
|
||||||
|
{{formField systemFields.destruction.fields.slashing value=system.destruction.slashing}}
|
||||||
|
{{formField systemFields.destruction.fields.piercing value=system.destruction.piercing}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label>Auto-Destruction</label>
|
||||||
|
<div class="shift-right">
|
||||||
|
{{formField systemFields.autodestruction.fields.bashing value=system.autodestruction.bashing}}
|
||||||
|
{{formField systemFields.autodestruction.fields.slashing value=system.autodestruction.slashing}}
|
||||||
|
{{formField systemFields.autodestruction.fields.piercing value=system.autodestruction.piercing}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{formField systemFields.load value=system.load}}
|
||||||
|
|
||||||
|
{{formField systemFields.cost value=system.cost}}
|
||||||
|
{{formField systemFields.money value=system.money localize=true}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||||
|
{{formInput
|
||||||
|
systemFields.description
|
||||||
|
enriched=description
|
||||||
|
value=system.description
|
||||||
|
name="system.description"
|
||||||
|
toggled="false"
|
||||||
|
}}
|
||||||
|
</fieldset>
|
||||||
|
</section>
|
@ -3,7 +3,15 @@
|
|||||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||||
{{formInput fields.name value=source.name}}
|
{{formInput fields.name value=source.name}}
|
||||||
</div>
|
</div>
|
||||||
|
{{formField systemFields.category value=system.category localize=true}}
|
||||||
|
{{formField systemFields.base value=system.base}}
|
||||||
{{formField systemFields.bonus value=system.bonus}}
|
{{formField systemFields.bonus value=system.bonus}}
|
||||||
|
{{formField systemFields.cost value=system.cost}}
|
||||||
|
|
||||||
|
<div class="total flexrow">
|
||||||
|
<legend>{{localize "LETHALFANTASY.Label.total"}}</legend>
|
||||||
|
{{system.skillTotal}}
|
||||||
|
</div>
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||||
|
@ -4,16 +4,26 @@
|
|||||||
{{formInput fields.name value=source.name}}
|
{{formInput fields.name value=source.name}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{formField systemFields.preparation value=system.preparation}}
|
{{formField systemFields.level value=system.level}}
|
||||||
{{formField systemFields.cible value=system.cible}}
|
{{formField systemFields.cost value=system.cost}}
|
||||||
{{formField systemFields.portee value=system.portee localize=true}}
|
|
||||||
{{formField systemFields.duree value=system.duree}}
|
<label>Components</label>
|
||||||
{{formField systemFields.consequenceA value=system.consequenceA}}
|
<div class="shift-right">
|
||||||
{{formField systemFields.consequenceB value=system.consequenceB}}
|
{{formField systemFields.components.fields.verbal value=system.components.verbal}}
|
||||||
|
{{formField systemFields.components.fields.somatic value=system.components.somatic}}
|
||||||
|
{{formField systemFields.components.fields.material value=system.components.material}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{formField systemFields.castingTime value=system.castingTime}}
|
||||||
|
{{formField systemFields.range value=system.range}}
|
||||||
|
{{formField systemFields.areaAffected value=system.areaAffected}}
|
||||||
|
{{formField systemFields.duration value=system.duration}}
|
||||||
|
{{formField systemFields.savingThrow value=system.savingThrow}}
|
||||||
|
{{formField systemFields.extraAetherPoints value=system.extraAetherPoints}}
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "TENEBRIS.Label.description"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
</section>
|
</section>
|
@ -3,15 +3,11 @@
|
|||||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||||
{{formInput fields.name value=source.name}}
|
{{formInput fields.name value=source.name}}
|
||||||
</div>
|
</div>
|
||||||
{{formField systemFields.appris value=system.appris}}
|
{{formField systemFields.cost value=system.cost}}
|
||||||
{{formField systemFields.progression value=system.progression}}
|
|
||||||
{{#if canProgress}}
|
|
||||||
{{formField systemFields.niveau value=system.niveau }}
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "TENEBRIS.Label.description"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
</section>
|
</section>
|
@ -2,18 +2,73 @@
|
|||||||
<div class="header">
|
<div class="header">
|
||||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||||
{{formInput fields.name value=source.name}}
|
{{formInput fields.name value=source.name}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<div class="align-top">
|
||||||
|
|
||||||
|
{{formField systemFields.weaponType value=system.weaponType localize=true}}
|
||||||
|
|
||||||
|
<label>Damage Type</label>
|
||||||
|
<div class="shift-right">
|
||||||
|
{{formField systemFields.damageType.fields.typeP value=system.standing.typeP}}
|
||||||
|
{{formField systemFields.damageType.fields.typeB value=system.standing.typeB}}
|
||||||
|
{{formField systemFields.damageType.fields.typeS value=system.standing.typeS}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label>Damage</label>
|
||||||
|
<div class="shift-right">
|
||||||
|
{{formField systemFields.damage.fields.damageS value=system.standing.damageS}}
|
||||||
|
{{formField systemFields.damage.fields.damageM value=system.standing.damageM}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{formField systemFields.hands value=system.hands localize=true}}
|
||||||
|
|
||||||
|
{{#if (eq system.weaponType "melee")}}
|
||||||
|
{{formField systemFields.defenseMax value=system.defenseMax}}
|
||||||
|
{{formField systemFields.secondsToAttack value=system.secondsToAttack}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq system.weaponType "ranged")}}
|
||||||
|
<label>Speed</label>
|
||||||
|
<div class="shift-right">
|
||||||
|
{{formField systemFields.speed.fields.simpleAim value=system.speed.simpleAim}}
|
||||||
|
{{formField systemFields.speed.fields.carefulAim value=system.speed.carefulAim}}
|
||||||
|
{{formField systemFields.speed.fields.focusedAim value=system.speed.focusedAim}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
<div class="align-top">
|
||||||
|
{{#if (eq system.weaponType "ranged")}}
|
||||||
|
|
||||||
|
{{formField systemFields.defense value=system.defense}}
|
||||||
|
|
||||||
|
<label>Range</label>
|
||||||
|
<div class="shift-right">
|
||||||
|
{{formField systemFields.range.fields.pointBlank value=system.range.pointBlank}}
|
||||||
|
{{formField systemFields.range.fields.short value=system.range.short}}
|
||||||
|
{{formField systemFields.range.fields.medium value=system.range.medium}}
|
||||||
|
{{formField systemFields.range.fields.long value=system.range.long}}
|
||||||
|
{{formField systemFields.range.fields.extreme value=system.range.extreme}}
|
||||||
|
{{formField systemFields.range.fields.outOfSkill value=system.range.outOfSkill}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{formField systemFields.load value=system.load}}
|
||||||
|
|
||||||
|
{{formField systemFields.cost value=system.cost}}
|
||||||
|
{{formField systemFields.money value=system.money localize=true}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{{formField systemFields.categorie value=system.categorie localize=true}}
|
|
||||||
{{formField systemFields.degats value=system.degats}}
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "TENEBRIS.Label.description"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||||
{{formInput
|
{{formInput
|
||||||
systemFields.description
|
systemFields.description
|
||||||
enriched=enrichedDescription
|
enriched=description
|
||||||
value=system.description
|
value=system.description
|
||||||
name="system.description"
|
name="system.description"
|
||||||
toggled=true
|
toggled=true
|
||||||
}}
|
}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</section>
|
</section>
|
Loading…
x
Reference in New Issue
Block a user