Manage ers
BIN
assets/fonts/BebasNeue-Regular.ttf
Normal file
BIN
assets/fonts/CarterOne-Regular.ttf
Normal file
BIN
assets/fonts/Excelsior-Normal.ttf
Normal file
BIN
assets/fonts/Georama-Regular.ttf
Normal file
BIN
assets/fonts/IMFell.ttf
Normal file
BIN
assets/fonts/Luminari-Regular.ttf
Normal file
BIN
assets/fonts/Megrim-Regular.ttf
Normal file
BIN
assets/fonts/P22-Operina.ttf
Normal file
BIN
assets/fonts/RozhaOne-Regular.ttf
Normal file
BIN
assets/fonts/SairaStencilOne-Regular.ttf
Normal file
BIN
assets/fonts/Seabreed.ttf
Normal file
BIN
assets/fonts/SigmarOne-Regular.ttf
Normal file
BIN
assets/fonts/SpectralSC-Regular.ttf
Normal file
BIN
assets/fonts/Tangerine-Regular.ttf
Normal file
BIN
assets/fonts/Teko-Regular.ttf
Normal file
BIN
assets/fonts/Top-Secret.ttf
Normal file
BIN
assets/fonts/Trajan-Pro-Regular.ttf
Normal file
BIN
assets/fonts/UncialAntiqua-Regular.ttf
Normal file
BIN
assets/fonts/Volkhov-Regular.ttf
Normal file
BIN
assets/fonts/armalite.ttf
Normal file
BIN
assets/fonts/dominican.ttf
Normal file
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
BIN
assets/ui/cover_ageofrevolution.webp
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
assets/ui/cover_ageofsail.webp
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
assets/ui/cover_classical.webp
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
assets/ui/cover_cold_war.webp
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
assets/ui/cover_future.webp
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
assets/ui/cover_jazzage.webp
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
assets/ui/cover_medieval.webp
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
assets/ui/cover_modern.webp
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
assets/ui/cover_victorian.webp
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
assets/ui/cover_ww1.webp
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
assets/ui/cover_ww2.webp
Normal file
After Width: | Height: | Size: 49 KiB |
@ -1,6 +1,86 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Georama";
|
font-family: "Georama";
|
||||||
src: url("../assets/fonts/georama.woff2") format("woff2");
|
src: url("../assets/fonts/Georama-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Tangerine";
|
||||||
|
src: url("../assets/fonts/Tangerine-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "TrajanPro";
|
||||||
|
src: url("../assets/fonts/Trajan-Pro-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Teko";
|
||||||
|
src: url("../assets/fonts/Teko-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "P22Operina";
|
||||||
|
src: url("../assets/fonts/P22-Operina.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "SpectralSC";
|
||||||
|
src: url("../assets/fonts/SpectralSC-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "RozhaOne";
|
||||||
|
src: url("../assets/fonts/RozhaOne-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Megrim";
|
||||||
|
src: url("../assets/fonts/Megrim-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Volkhov";
|
||||||
|
src: url("../assets/fonts/Volkhov-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "IMFell";
|
||||||
|
src: url("../assets/fonts/IMFell.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Dominican";
|
||||||
|
src: url("../assets/fonts/dominican.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "UncialAntiqua";
|
||||||
|
src: url("../assets/fonts/UncialAntiqua-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Luminari";
|
||||||
|
src: url("../assets/fonts/Luminari-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "SairaStencilOne";
|
||||||
|
src: url("../assets/fonts/SairaStencilOne-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Armalite";
|
||||||
|
src: url("../assets/fonts/armalite.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "CarterOne";
|
||||||
|
src: url("../assets/fonts/CarterOne-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "SigmarOne";
|
||||||
|
src: url("../assets/fonts/SigmarOne-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Excelsior";
|
||||||
|
src: url("../assets/fonts/Excelsior-Normal.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "TopSecret";
|
||||||
|
src: url("../assets/fonts/Top-Secret.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "BebasNeue";
|
||||||
|
src: url("../assets/fonts/BebasNeue-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Seabreed";
|
||||||
|
src: url("../assets/fonts/Seabreed.ttf") format("truetype");
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Broadway";
|
font-family: "Broadway";
|
||||||
@ -26,18 +106,21 @@
|
|||||||
--font-size-standard: 0.9rem;
|
--font-size-standard: 0.9rem;
|
||||||
--background-image-base: linear-gradient(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.8)), url("../assets/ui/jazzage_background_main.webp");
|
--background-image-base: linear-gradient(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.8)), url("../assets/ui/jazzage_background_main.webp");
|
||||||
/*--background-image-base: url("../assets/ui/jazzage_background_main.webp");*/
|
/*--background-image-base: url("../assets/ui/jazzage_background_main.webp");*/
|
||||||
--font-primary: "Georama";
|
--font-primary: "RozhaOne";
|
||||||
--font-secondary: "Georama";
|
--font-secondary: "RozhaOne";
|
||||||
--font-title: "Broadway";
|
--font-title: "Broadway";
|
||||||
--logo-standard: url("../assets/logos/reanimated-ce-logo.webp");
|
--logo-standard: url("../assets/logos/reanimated-ce-logo.webp");
|
||||||
--color-success: darkgreen;
|
--color-success: darkgreen;
|
||||||
--color-failure: darkred;
|
--color-failure: darkred;
|
||||||
--color-critical-success: lightgreen;
|
--color-critical-success: lightgreen;
|
||||||
--color-critical-failure: lightcoral;
|
--color-critical-failure: lightcoral;
|
||||||
|
--img-icon-color-filter: brightness(0) saturate(100%) invert(52%) sepia(9%) saturate(2368%) hue-rotate(360deg) brightness(86%) contrast(84%);
|
||||||
}
|
}
|
||||||
.era-icon-color {
|
.item .thumbnail,
|
||||||
|
.item-img {
|
||||||
/*filter: invert(90%) sepia(10%) saturate(1215%) hue-rotate(55deg) brightness(93%) contrast(89%);*/
|
/*filter: invert(90%) sepia(10%) saturate(1215%) hue-rotate(55deg) brightness(93%) contrast(89%);*/
|
||||||
/*filter: invert(48%) sepia(79%) saturate(2476%) hue-rotate(86deg) brightness(118%) contrast(119%);*/
|
/*filter: invert(48%) sepia(79%) saturate(2476%) hue-rotate(86deg) brightness(118%) contrast(119%);*/
|
||||||
|
filter: var(--img-icon-color-filter);
|
||||||
}
|
}
|
||||||
#logo {
|
#logo {
|
||||||
content: var(--logo-standard);
|
content: var(--logo-standard);
|
||||||
@ -213,6 +296,31 @@ i.fvtt-cthulhu-eternal {
|
|||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.4);
|
||||||
width: 400px;
|
width: 400px;
|
||||||
}
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .san input {
|
||||||
|
min-width: 2.2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .san .san-checkbox {
|
||||||
|
min-width: 1rem;
|
||||||
|
max-width: 1rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .san .label-field {
|
||||||
|
flex-grow: 0;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .san .spacing {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .willpower input {
|
||||||
|
min-width: 2.2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .willpower .label-field {
|
||||||
|
flex-grow: 0;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .willpower .checkbox {
|
||||||
|
min-width: 1rem;
|
||||||
|
max-width: 1rem;
|
||||||
|
}
|
||||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos {
|
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@ -296,6 +404,39 @@ i.fvtt-cthulhu-eternal {
|
|||||||
.fvtt-cthulhu-eternal .protagonist-biography prose-mirror.active {
|
.fvtt-cthulhu-eternal .protagonist-biography prose-mirror.active {
|
||||||
min-height: 150px;
|
min-height: 150px;
|
||||||
}
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-biography .field-label {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-biography .biodata {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-biography .motivations {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-biography .motivations .motivation {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
min-width: 14rem;
|
||||||
|
max-width: 14rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-biography .motivations .motivation .controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-biography .motivations .motivation .name {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .protagonist-biography .motivations .motivation .item-img {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin: 4px 0 0 0;
|
||||||
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-skills {
|
.fvtt-cthulhu-eternal .tab.protagonist-skills {
|
||||||
background-color: var(--color-light-1);
|
background-color: var(--color-light-1);
|
||||||
display: grid;
|
display: grid;
|
||||||
@ -335,6 +476,98 @@ i.fvtt-cthulhu-eternal {
|
|||||||
height: 32px;
|
height: 32px;
|
||||||
margin: 4px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status {
|
||||||
|
background-color: var(--color-light-1);
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status legend a {
|
||||||
|
font-size: calc(var(--font-size-standard) * 1.4);
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds .bond {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
min-width: 16rem;
|
||||||
|
max-width: 16rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds .bond .controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds .bond .name {
|
||||||
|
min-width: 12rem;
|
||||||
|
max-width: 12rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds .bond .type {
|
||||||
|
min-width: 4rem;
|
||||||
|
max-width: 4rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds .bond .level {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds .bond .item-img {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin: 4px 0 0 0;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .mentaldisorders {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .mentaldisorders .mentaldisorder {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
min-width: 16rem;
|
||||||
|
max-width: 16rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .mentaldisorders .mentaldisorder .controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .mentaldisorders .mentaldisorder .name {
|
||||||
|
min-width: 14rem;
|
||||||
|
max-width: 14rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .mentaldisorders .mentaldisorder .item-img {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin: 4px 0 0 0;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .injuries {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .injuries .injury {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
min-width: 16rem;
|
||||||
|
max-width: 16rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .injuries .injury .controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .injuries .injury .name {
|
||||||
|
min-width: 14rem;
|
||||||
|
max-width: 14rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-status .injuries .injury .item-img {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin: 4px 0 0 0;
|
||||||
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-equipment {
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment {
|
||||||
background-color: var(--color-light-1);
|
background-color: var(--color-light-1);
|
||||||
display: grid;
|
display: grid;
|
||||||
@ -346,18 +579,37 @@ i.fvtt-cthulhu-eternal {
|
|||||||
}
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons {
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon {
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
min-width: 13rem;
|
||||||
|
max-width: 13srem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon .rollable:hover,
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon .rollable:focus {
|
||||||
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon .controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon .damage {
|
||||||
|
min-width: 5rem;
|
||||||
|
max-width: 5rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon .name {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
}
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon .item-img {
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon .item-img {
|
||||||
width: 50px;
|
width: 32px;
|
||||||
height: 50px;
|
height: 32px;
|
||||||
margin: 5px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors {
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors {
|
||||||
display: grid;
|
display: grid;
|
||||||
@ -368,11 +620,30 @@ i.fvtt-cthulhu-eternal {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
min-width: 13rem;
|
||||||
|
max-width: 13srem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors .armor .rollable:hover,
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors .armor .rollable:focus {
|
||||||
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors .armor .controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors .armor .protection {
|
||||||
|
min-width: 5rem;
|
||||||
|
max-width: 5rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors .armor .name {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
}
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors .armor .item-img {
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors .armor .item-img {
|
||||||
width: 50px;
|
width: 32px;
|
||||||
height: 50px;
|
height: 32px;
|
||||||
margin: 5px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears {
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears {
|
||||||
display: grid;
|
display: grid;
|
||||||
@ -383,11 +654,30 @@ i.fvtt-cthulhu-eternal {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
min-width: 13rem;
|
||||||
|
max-width: 13srem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears .gear .rollable:hover,
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears .gear .rollable:focus {
|
||||||
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears .gear .controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears .gear .damage {
|
||||||
|
min-width: 5rem;
|
||||||
|
max-width: 5rem;
|
||||||
|
}
|
||||||
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears .gear .name {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
}
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears .gear .item-img {
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears .gear .item-img {
|
||||||
width: 50px;
|
width: 32px;
|
||||||
height: 50px;
|
height: 32px;
|
||||||
margin: 5px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
.fvtt-cthulhu-eternal .tab.protagonist-equipment prose-mirror.inactive {
|
.fvtt-cthulhu-eternal .tab.protagonist-equipment prose-mirror.inactive {
|
||||||
min-height: 40px;
|
min-height: 40px;
|
||||||
|
@ -85,7 +85,9 @@ Hooks.once("init", function () {
|
|||||||
game.socket.on(`system.${SYSTEM.id}`, handleSocketEvent)
|
game.socket.on(`system.${SYSTEM.id}`, handleSocketEvent)
|
||||||
|
|
||||||
setupTextEnrichers()
|
setupTextEnrichers()
|
||||||
|
CthulhuEternalUtils.registerSettings()
|
||||||
CthulhuEternalUtils.registerHandlebarsHelpers()
|
CthulhuEternalUtils.registerHandlebarsHelpers()
|
||||||
|
CthulhuEternalUtils.setupCSSRootVariables()
|
||||||
|
|
||||||
// Gestion des jets de dés depuis les journaux
|
// Gestion des jets de dés depuis les journaux
|
||||||
document.addEventListener("click", (event) => {
|
document.addEventListener("click", (event) => {
|
||||||
|
62
lang/en.json
@ -29,10 +29,38 @@
|
|||||||
"WW2": "World War 2",
|
"WW2": "World War 2",
|
||||||
"ColdWar": "Cold War",
|
"ColdWar": "Cold War",
|
||||||
"Victorian": "Victorian",
|
"Victorian": "Victorian",
|
||||||
"AgeOfSail": "Age of Sail"
|
"AgeOfSail": "Age of Sail",
|
||||||
|
"PostApo": "Post-Apocalyptic"
|
||||||
},
|
},
|
||||||
"Protagonist": {
|
"Protagonist": {
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
|
"biodata": {
|
||||||
|
"harshness": {
|
||||||
|
"label": "Harshness"
|
||||||
|
},
|
||||||
|
"age": {
|
||||||
|
"label": "Age"
|
||||||
|
},
|
||||||
|
"gender": {
|
||||||
|
"label": "Gender"
|
||||||
|
},
|
||||||
|
"hair": {
|
||||||
|
"label": "Hair"
|
||||||
|
},
|
||||||
|
"eyes": {
|
||||||
|
"label": "Eyes"
|
||||||
|
},
|
||||||
|
"height": {
|
||||||
|
"label": "Height"
|
||||||
|
},
|
||||||
|
"home": {
|
||||||
|
"label": "Home"
|
||||||
|
},
|
||||||
|
"birthplace": {
|
||||||
|
"label": "Birthplace"
|
||||||
|
},
|
||||||
|
"label": "Biodata"
|
||||||
|
},
|
||||||
"characteristics:": {
|
"characteristics:": {
|
||||||
"str": {
|
"str": {
|
||||||
"label": "Strength"
|
"label": "Strength"
|
||||||
@ -57,6 +85,12 @@
|
|||||||
},
|
},
|
||||||
"Skill": {
|
"Skill": {
|
||||||
"Unnatural": "Unnatural",
|
"Unnatural": "Unnatural",
|
||||||
|
"Melee": "Melee Weapons",
|
||||||
|
"Firearms": "Firearms",
|
||||||
|
"Athletics": "Athletics",
|
||||||
|
"UnarmedCombat": "Unarmed Combat",
|
||||||
|
"RangedWeapons": "Ranged Weapons",
|
||||||
|
"FirearmsBeams": "Firearms / Beam Weapons",
|
||||||
"FIELDS": {
|
"FIELDS": {
|
||||||
"settings": {
|
"settings": {
|
||||||
"label": "Settings era"
|
"label": "Settings era"
|
||||||
@ -243,8 +277,6 @@
|
|||||||
"gear": "Gear",
|
"gear": "Gear",
|
||||||
"damage": "Damage",
|
"damage": "Damage",
|
||||||
"resource": "Resource",
|
"resource": "Resource",
|
||||||
"newArmor": "New Armor",
|
|
||||||
"newWeapon": "New Weapon",
|
|
||||||
"armor": "Armor",
|
"armor": "Armor",
|
||||||
"malus": "Malus",
|
"malus": "Malus",
|
||||||
"experience": "Experience",
|
"experience": "Experience",
|
||||||
@ -272,7 +304,29 @@
|
|||||||
"criticalSuccess": "Critical Success",
|
"criticalSuccess": "Critical Success",
|
||||||
"criticalFailure": "Critical Failure",
|
"criticalFailure": "Critical Failure",
|
||||||
"Characteristic": "Characteristic",
|
"Characteristic": "Characteristic",
|
||||||
"targetScore": "Target Score"
|
"targetScore": "Target Score",
|
||||||
|
"gears": "Gears",
|
||||||
|
"armors": "Armors",
|
||||||
|
"motivations": "Motivations",
|
||||||
|
"mentalDisorders": "Mental Disorders",
|
||||||
|
"bonds": "Bonds",
|
||||||
|
"arcane": "Arcane",
|
||||||
|
"archetypes": "Archetypes",
|
||||||
|
"bondType": "Bond Type",
|
||||||
|
"injuries": "Injuries",
|
||||||
|
"damageShort": "Dmg",
|
||||||
|
"status": "Status",
|
||||||
|
"mentaldisorders": "Mental Disorders",
|
||||||
|
"newBond": "New Bond",
|
||||||
|
"newMotivation": "New Motivation",
|
||||||
|
"newMentalDisorder": "New Mental Disorder",
|
||||||
|
"newWeapon": "New Weapon",
|
||||||
|
"newArmor": "New Armor",
|
||||||
|
"newInjury": "New Injury",
|
||||||
|
"newGear": "New Gear",
|
||||||
|
"newArcane": "New Arcane",
|
||||||
|
"newArchetype": "New Archetype",
|
||||||
|
"newSkill": "New Skill"
|
||||||
},
|
},
|
||||||
"Edit": "Edit",
|
"Edit": "Edit",
|
||||||
"Delete": "Delete",
|
"Delete": "Delete",
|
||||||
|
@ -5,14 +5,21 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
|
|||||||
static DEFAULT_OPTIONS = {
|
static DEFAULT_OPTIONS = {
|
||||||
classes: ["protagonist"],
|
classes: ["protagonist"],
|
||||||
position: {
|
position: {
|
||||||
width: 840,
|
width: 848,
|
||||||
height: 620,
|
height: 620,
|
||||||
},
|
},
|
||||||
window: {
|
window: {
|
||||||
contentClasses: ["protagonist-content"],
|
contentClasses: ["protagonist-content"],
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
createEquipment: CthulhuEternalProtagonistSheet.#onCreateEquipment,
|
createGear: CthulhuEternalProtagonistSheet.#onCreateGear,
|
||||||
|
createArmor: CthulhuEternalProtagonistSheet.#onCreateArmor,
|
||||||
|
createWeapon: CthulhuEternalProtagonistSheet.#onCreateWeapon,
|
||||||
|
createBond: CthulhuEternalProtagonistSheet.#onCreateBond,
|
||||||
|
createInjury: CthulhuEternalProtagonistSheet.#onCreateInjury,
|
||||||
|
createMentalDisorder: CthulhuEternalProtagonistSheet.#onCreateMentalDisorder,
|
||||||
|
createMotivation: CthulhuEternalProtagonistSheet.#onCreateMotivation,
|
||||||
|
createSkill: CthulhuEternalProtagonistSheet.#onCreateSkill
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27,6 +34,9 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
|
|||||||
skills: {
|
skills: {
|
||||||
template: "systems/fvtt-cthulhu-eternal/templates/protagonist-skills.hbs",
|
template: "systems/fvtt-cthulhu-eternal/templates/protagonist-skills.hbs",
|
||||||
},
|
},
|
||||||
|
status: {
|
||||||
|
template: "systems/fvtt-cthulhu-eternal/templates/protagonist-status.hbs",
|
||||||
|
},
|
||||||
equipment: {
|
equipment: {
|
||||||
template: "systems/fvtt-cthulhu-eternal/templates/protagonist-equipment.hbs",
|
template: "systems/fvtt-cthulhu-eternal/templates/protagonist-equipment.hbs",
|
||||||
},
|
},
|
||||||
@ -47,6 +57,7 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
|
|||||||
#getTabs() {
|
#getTabs() {
|
||||||
const tabs = {
|
const tabs = {
|
||||||
skills: { id: "skills", group: "sheet", icon: "fa-solid fa-shapes", label: "CTHULHUETERNAL.Label.skills" },
|
skills: { id: "skills", group: "sheet", icon: "fa-solid fa-shapes", label: "CTHULHUETERNAL.Label.skills" },
|
||||||
|
status: { id: "status", group: "sheet", icon: "fa-solid fa-file-waveform", label: "CTHULHUETERNAL.Label.status" },
|
||||||
equipment: { id: "equipment", group: "sheet", icon: "fa-solid fa-shapes", label: "CTHULHUETERNAL.Label.equipment" },
|
equipment: { id: "equipment", group: "sheet", icon: "fa-solid fa-shapes", label: "CTHULHUETERNAL.Label.equipment" },
|
||||||
biography: { id: "biography", group: "sheet", icon: "fa-solid fa-book", label: "CTHULHUETERNAL.Label.biography" },
|
biography: { id: "biography", group: "sheet", icon: "fa-solid fa-book", label: "CTHULHUETERNAL.Label.biography" },
|
||||||
}
|
}
|
||||||
@ -104,8 +115,15 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
|
|||||||
context.armors = doc.itemTypes.armor
|
context.armors = doc.itemTypes.armor
|
||||||
context.gears = doc.itemTypes.gear
|
context.gears = doc.itemTypes.gear
|
||||||
break
|
break
|
||||||
|
case "status":
|
||||||
|
context.tab = context.tabs.status
|
||||||
|
context.injuries = doc.itemTypes.injury
|
||||||
|
context.mentaldisorders = doc.itemTypes.mentaldisorder
|
||||||
|
context.bonds = doc.itemTypes.bond
|
||||||
|
break
|
||||||
case "biography":
|
case "biography":
|
||||||
context.tab = context.tabs.biography
|
context.tab = context.tabs.biography
|
||||||
|
context.motivations = doc.itemTypes.motivation
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(doc.system.description, { async: true })
|
context.enrichedDescription = await TextEditor.enrichHTML(doc.system.description, { async: true })
|
||||||
context.enrichedNotes = await TextEditor.enrichHTML(doc.system.notes, { async: true })
|
context.enrichedNotes = await TextEditor.enrichHTML(doc.system.notes, { async: true })
|
||||||
break
|
break
|
||||||
@ -118,15 +136,36 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
|
|||||||
* @param {Event} event The initiating click event.
|
* @param {Event} event The initiating click event.
|
||||||
* @param {HTMLElement} target The current target of the event listener.
|
* @param {HTMLElement} target The current target of the event listener.
|
||||||
*/
|
*/
|
||||||
static #onCreateEquipment(event, target) {
|
static #onCreateGear(event, target) {
|
||||||
// Création d'une armure
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newGear"), type: "gear" }])
|
||||||
if (event.shiftKey) {
|
|
||||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newArmor"), type: "armor" }])
|
|
||||||
}
|
}
|
||||||
// Création d'une arme
|
|
||||||
else {
|
static #onCreateWeapon(event, target) {
|
||||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newWeapon"), type: "weapon" }])
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newWeapon"), type: "weapon" }])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static #onCreateArmor(event, target) {
|
||||||
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newArmor"), type: "armor" }])
|
||||||
|
}
|
||||||
|
|
||||||
|
static #onCreateBond(event, target) {
|
||||||
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newBond"), type: "bond" }])
|
||||||
|
}
|
||||||
|
|
||||||
|
static #onCreateInjury(event, target) {
|
||||||
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newInjury"), type: "injury" }])
|
||||||
|
}
|
||||||
|
|
||||||
|
static #onCreateMentalDisorder(event, target) {
|
||||||
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newMentalDisorder"), type: "mentaldisorder" }])
|
||||||
|
}
|
||||||
|
|
||||||
|
static #onCreateMotivation(event, target) {
|
||||||
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newMotivation"), type: "motivation" }])
|
||||||
|
}
|
||||||
|
|
||||||
|
static #onCreateSkill(event, target) {
|
||||||
|
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("CTHULHUETERNAL.Label.newSkill"), type: "skill" }])
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -5,21 +5,6 @@ import * as BOND from "./bond.mjs"
|
|||||||
|
|
||||||
export const SYSTEM_ID = "fvtt-cthulhu-eternal"
|
export const SYSTEM_ID = "fvtt-cthulhu-eternal"
|
||||||
|
|
||||||
export const AVAILABLE_SETTINGS = {
|
|
||||||
common: "CTHULHUETERNAL.Settings.Common",
|
|
||||||
modern: "CTHULHUETERNAL.Settings.Modern",
|
|
||||||
jazz: "CTHULHUETERNAL.Settings.Jazz",
|
|
||||||
future: "CTHULHUETERNAL.Settings.Future",
|
|
||||||
coldwar: "CTHULHUETERNAL.Settings.ColdWar",
|
|
||||||
ww2: "CTHULHUETERNAL.Settings.WW2",
|
|
||||||
ww1: "CTHULHUETERNAL.Settings.WW1",
|
|
||||||
victorian: "CTHULHUETERNAL.Settings.Victorian",
|
|
||||||
revolution: "CTHULHUETERNAL.Settings.Revolution",
|
|
||||||
medieval: "CTHULHUETERNAL.Settings.Medieval",
|
|
||||||
ageofsail: "CTHULHUETERNAL.Settings.AgeOfSail",
|
|
||||||
classical: "CTHULHUETERNAL.Settings.Classical"
|
|
||||||
}
|
|
||||||
|
|
||||||
export const ASCII = `
|
export const ASCII = `
|
||||||
▄████▄ ▄▄▄█████▓ ██░ ██ █ ██ ██▓ ██░ ██ █ ██ ▓█████▄▄▄█████▓▓█████ ██▀███ ███▄ █ ▄▄▄ ██▓
|
▄████▄ ▄▄▄█████▓ ██░ ██ █ ██ ██▓ ██░ ██ █ ██ ▓█████▄▄▄█████▓▓█████ ██▀███ ███▄ █ ▄▄▄ ██▓
|
||||||
▒██▀ ▀█ ▓ ██▒ ▓▒▓██░ ██▒ ██ ▓██▒▓██▒ ▓██░ ██▒ ██ ▓██▒ ▓█ ▀▓ ██▒ ▓▒▓█ ▀ ▓██ ▒ ██▒ ██ ▀█ █ ▒████▄ ▓██▒
|
▒██▀ ▀█ ▓ ██▒ ▓▒▓██░ ██▒ ██ ▓██▒▓██▒ ▓██░ ██▒ ██ ▓██▒ ▓█ ▀▓ ██▒ ▓▒▓█ ▀ ▓██ ▒ ██▒ ██ ▀█ █ ▒████▄ ▓██▒
|
||||||
@ -31,10 +16,155 @@ export const ASCII = `
|
|||||||
░ ░ ░ ░░ ░ ░░░ ░ ░ ░ ░ ░ ░░ ░ ░░░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ▒ ░ ░
|
░ ░ ░ ░░ ░ ░░░ ░ ░ ░ ░ ░ ░░ ░ ░░░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ▒ ░ ░
|
||||||
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
|
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
|
||||||
░
|
░
|
||||||
|
|
||||||
|
|
||||||
`
|
`
|
||||||
|
|
||||||
|
|
||||||
|
export const AVAILABLE_SETTINGS = {
|
||||||
|
modern: "CTHULHUETERNAL.Settings.Modern",
|
||||||
|
jazz: "CTHULHUETERNAL.Settings.Jazz",
|
||||||
|
future: "CTHULHUETERNAL.Settings.Future",
|
||||||
|
coldwar: "CTHULHUETERNAL.Settings.ColdWar",
|
||||||
|
ww2: "CTHULHUETERNAL.Settings.WW2",
|
||||||
|
ww1: "CTHULHUETERNAL.Settings.WW1",
|
||||||
|
victorian: "CTHULHUETERNAL.Settings.Victorian",
|
||||||
|
revolution: "CTHULHUETERNAL.Settings.Revolution",
|
||||||
|
medieval: "CTHULHUETERNAL.Settings.Medieval",
|
||||||
|
ageofsail: "CTHULHUETERNAL.Settings.AgeOfSail",
|
||||||
|
classical: "CTHULHUETERNAL.Settings.Classical",
|
||||||
|
postapo: "CTHULHUETERNAL.Settings.PostApo"
|
||||||
|
}
|
||||||
|
|
||||||
|
export const ERA_CSS = {
|
||||||
|
jazz: { primaryFont: "RozhaOne", secondaryFont: "RozhaOne", titleFont: "Broadway", imgFilter: "brightness(0) saturate(100%) invert(52%) sepia(9%) saturate(2368%) hue-rotate(360deg) brightness(86%) contrast(84%)" },
|
||||||
|
modern: { primaryFont: "Georama", secondaryFont: "Georama", titleFont: "Georama", imgFilter: "brightness(0) saturate(100%) invert(92%) sepia(11%) saturate(1214%) hue-rotate(51deg) brightness(93%) contrast(86%)" },
|
||||||
|
future: { primaryFont: "Megrim", secondaryFont: "Megrim", titleFont: "Seabreed", imgFilter: "brightness(0) saturate(100%) invert(83%) sepia(30%) saturate(588%) hue-rotate(168deg) brightness(105%) contrast(103%)" },
|
||||||
|
victorian: { primaryFont: "Volkhov", secondaryFont: "Volkhov", titleFont: "Excelsior", imgFilter: "brightness(0) saturate(100%) invert(100%) sepia(59%) saturate(1894%) hue-rotate(337deg) brightness(88%) contrast(98%)" },
|
||||||
|
coldwar: { primaryFont: "BebasNeue", secondaryFont: "BebasNeue", titleFont: "TopSecret", imgFilter: "brightness(0) saturate(100%) invert(81%) sepia(14%) saturate(2508%) hue-rotate(202deg) brightness(99%) contrast(105%)"},
|
||||||
|
revolution: { primaryFont: "IMFell", secondaryFont: "IMFell", titleFont: "Dominican", imgFilter: "brightness(0) saturate(100%) invert(81%) sepia(25%) saturate(386%) hue-rotate(7deg) brightness(101%) contrast(84%)" },
|
||||||
|
medieval: { primaryFont: "UncialAntiqua", secondaryFont: "UncialAntiqua", titleFont: "Luminari", imgFilter: "brightness(0) saturate(100%) invert(93%) sepia(46%) saturate(354%) hue-rotate(321deg) brightness(93%) contrast(87%)"},
|
||||||
|
ww2: { primaryFont: "SairaStencilOne", secondaryFont: "SairaStencilOne", titleFont: "Armalite", imgFilter: "brightness(0) saturate(100%) invert(95%) sepia(9%) saturate(1471%) hue-rotate(342deg) brightness(103%) contrast(107%)"},
|
||||||
|
ww1: { primaryFont: "CarterOne", secondaryFont: "CarterOne", titleFont: "SigmarOne", imgFilter: "brightness(0) saturate(100%) invert(90%) sepia(38%) saturate(341%) hue-rotate(21deg) brightness(105%) contrast(105%)"},
|
||||||
|
ageofsail: { primaryFont: "Tangerine", secondaryFont: "Tangerine", titleFont: "P22Operina", imgFilter: "brightness(0) saturate(100%) invert(43%) sepia(74%) saturate(3154%) hue-rotate(336deg) brightness(95%) contrast(83%)" },
|
||||||
|
classical: { primaryFont: "SpectralSC", secondaryFont: "SpectralSC", titleFont: "TrajanPro", imgFilter: "brightness(0) saturate(100%) invert(52%) sepia(32%) saturate(7492%) hue-rotate(265deg) brightness(89%) contrast(95%)" },
|
||||||
|
postapo: { primaryFont: "Teko", secondaryFont: "Teko", titleFont: "Teko", imgFilter: "brightness(0) saturate(100%) invert(44%) sepia(55%) saturate(2341%) hue-rotate(329deg) brightness(122%) contrast(103%))" }
|
||||||
|
}
|
||||||
|
|
||||||
|
export const RESOURCE_RATING = {
|
||||||
|
jazz: {
|
||||||
|
0: {name: "Penury", description: "CTHULHUETERNAL.Resource.Penury", income: 0, assets: "CTHULHUETERNAL.Resource.NoAssets"},
|
||||||
|
4: {name: "Poor", description: "CTHULHUETERNAL.Resource.Poor", income: 700, assets: "CTHULHUETERNAL.Resource.PoorJazz"},
|
||||||
|
8: {name: "Average", description: "CTHULHUETERNAL.Resource.Average", income: 3000, assets: "CTHULHUETERNAL.Resource.AverageJazz"},
|
||||||
|
12: {name: "Above Average", description: "CTHULHUETERNAL.Resource.AboveAverage", income: 5000, assets: "CTHULHUETERNAL.Resource.AboveAverageJazz"},
|
||||||
|
16: {name: "Well Off", description: "CTHULHUETERNAL.Resource.WellOff", income: 10000, assets: "CTHULHUETERNAL.Resource.WellOffJazz"},
|
||||||
|
18: {name: "Rich", description: "CTHULHUETERNAL.Resource.Rich", income: 15000, assets: "CTHULHUETERNAL.Resource.RichJazz"},
|
||||||
|
19: {name: "Very Rich", description: "CTHULHUETERNAL.Resource.VeryRich", income: 50000, assets: "CTHULHUETERNAL.Resource.VeryRichJazz"},
|
||||||
|
20: {name: "Super Rich", description: "CTHULHUETERNAL.Resource.SuperRich", income: 100000, assets: "CTHULHUETERNAL.Resource.SuperRichJazz"}
|
||||||
|
},
|
||||||
|
modern: {
|
||||||
|
0: {name: "Penury", description: "CTHULHUETERNAL.Resource.Penury", income: 0, assets: "CTHULHUETERNAL.Resource.NoAssets"},
|
||||||
|
4: {name: "Poor", description: "CTHULHUETERNAL.Resource.Poor", income: 20000, assets: "CTHULHUETERNAL.Resource.PoorModern"},
|
||||||
|
8: {name: "Average", description: "CTHULHUETERNAL.Resource.Average", income: 50000, assets: "CTHULHUETERNAL.Resource.AverageModern"},
|
||||||
|
12: {name: "Above Average", description: "CTHULHUETERNAL.Resource.AboveAverage", income: 100000, assets: "CTHULHUETERNAL.Resource.AboveAverageModern"},
|
||||||
|
16: {name: "Well Off", description: "CTHULHUETERNAL.Resource.WellOff", income: 150000, assets: "CTHULHUETERNAL.Resource.WellOffModern"},
|
||||||
|
18: {name: "Rich", description: "CTHULHUETERNAL.Resource.Rich", income: 20000, assets: "CTHULHUETERNAL.Resource.RichModern"},
|
||||||
|
19: {name: "Very Rich", description: "CTHULHUETERNAL.Resource.VeryRich", income: 500000, assets: "CTHULHUETERNAL.Resource.VeryRichModern"},
|
||||||
|
20: {name: "Super Rich", description: "CTHULHUETERNAL.Resource.SuperRich", income: 1000000, assets: "CTHULHUETERNAL.Resource.SuperRichModern"}
|
||||||
|
},
|
||||||
|
victorian: {
|
||||||
|
0: {name: "Penury", description: "CTHULHUETERNAL.Resource.Penury", income: 0, assets: "CTHULHUETERNAL.Resource.NoAssets"},
|
||||||
|
4: {name: "Poor", description: "CTHULHUETERNAL.Resource.Poor", income: 30, assets: "CTHULHUETERNAL.Resource.PoorVictorian"},
|
||||||
|
8: {name: "Average", description: "CTHULHUETERNAL.Resource.Average", income: 90, assets: "CTHULHUETERNAL.Resource.AverageVictorian"},
|
||||||
|
12: {name: "Above Average", description: "CTHULHUETERNAL.Resource.AboveAverage", income: 400, assets: "CTHULHUETERNAL.Resource.AboveAverageVictorian"},
|
||||||
|
16: {name: "Well Off", description: "CTHULHUETERNAL.Resource.WellOff", income: 1500, assets: "CTHULHUETERNAL.Resource.WellOffVictorian"},
|
||||||
|
18: {name: "Rich", description: "CTHULHUETERNAL.Resource.Rich", income: 5000, assets: "CTHULHUETERNAL.Resource.RichVictorian"},
|
||||||
|
19: {name: "Very Rich", description: "CTHULHUETERNAL.Resource.VeryRich", income: 40000, assets: "CTHULHUETERNAL.Resource.VeryRichVictorian"},
|
||||||
|
20: {name: "Super Rich", description: "CTHULHUETERNAL.Resource.SuperRich", income: 200000, assets: "CTHULHUETERNAL.Resource.SuperRichVictorian"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const MENTAL_ILLNESS_CURE_SKILL = {
|
||||||
|
jazz: "CTHULHUETERNAL.Skill.Psychoanalyze",
|
||||||
|
modern: "CTHULHUETERNAL.Skill.Psychoanalyze",
|
||||||
|
victorian: "CTHULHUETERNAL.Skill.Reassure",
|
||||||
|
}
|
||||||
|
|
||||||
|
export const WEAPON_SKILL_MAPPING = {
|
||||||
|
modern: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"rangedfirearm": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
jazz: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"rangedfirearm": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
victorian: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"rangedfirearm": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
coldwar: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"rangedfirearm": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
ww1: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"rangedfirearm": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
ww2: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"rangedfirearm": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
future: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.FirearmsBeams",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"rangedfirearm": "CTHULHUETERNAL.Skill.FirearmsBeams",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
revolution: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.RangedWeapons",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"rangedfirearm": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
ageofsail: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.RangedWeapons",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"rangedfirearm": "CTHULHUETERNAL.Skill.Firearms",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
medieval: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.RangedWeapons",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
},
|
||||||
|
classical: {
|
||||||
|
"melee": "CTHULHUETERNAL.Skill.Melee",
|
||||||
|
"rangedprimitive": "CTHULHUETERNAL.Skill.RangedWeapons",
|
||||||
|
"rangedthrown": "CTHULHUETERNAL.Skill.Athletics",
|
||||||
|
"unarmed": "CTHULHUETERNAL.Skill.UnarmedCombat"
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Include all constant definitions within the SYSTEM global export
|
* Include all constant definitions within the SYSTEM global export
|
||||||
* @type {Object}
|
* @type {Object}
|
||||||
@ -45,7 +175,11 @@ export const SYSTEM = {
|
|||||||
HARSHNESS: PROTAGONIST.HARSHNESS,
|
HARSHNESS: PROTAGONIST.HARSHNESS,
|
||||||
WEAPON_TYPE: WEAPON.WEAPON_TYPE,
|
WEAPON_TYPE: WEAPON.WEAPON_TYPE,
|
||||||
WEAPON_SUBTYPE: WEAPON.WEAPON_SUBTYPE,
|
WEAPON_SUBTYPE: WEAPON.WEAPON_SUBTYPE,
|
||||||
|
WEAPON_SKILL_MAPPING,
|
||||||
BOND_TYPE: BOND.BOND_TYPE,
|
BOND_TYPE: BOND.BOND_TYPE,
|
||||||
AVAILABLE_SETTINGS,
|
AVAILABLE_SETTINGS,
|
||||||
|
RESOURCE_RATING,
|
||||||
|
MENTAL_ILLNESS_CURE_SKILL,
|
||||||
|
ERA_CSS,
|
||||||
ASCII
|
ASCII
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ export const defaultItemImg = {
|
|||||||
skill: "systems/fvtt-cthulhu-eternal/assets/icons/icon_skill.svg",
|
skill: "systems/fvtt-cthulhu-eternal/assets/icons/icon_skill.svg",
|
||||||
archetype: "systems/fvtt-cthulhu-eternal/assets/icons/icon_archetype.svg",
|
archetype: "systems/fvtt-cthulhu-eternal/assets/icons/icon_archetype.svg",
|
||||||
bond: "systems/fvtt-cthulhu-eternal/assets/icons/icon_bond.svg",
|
bond: "systems/fvtt-cthulhu-eternal/assets/icons/icon_bond.svg",
|
||||||
mentaldisorder: "systems/fvtt-cthulhu-eternal/assets/icons/icon_mentaldisorder.svg",
|
mentaldisorder: "systems/fvtt-cthulhu-eternal/assets/icons/icon_mental_disorder.svg",
|
||||||
arcane: "systems/fvtt-cthulhu-eternal/assets/icons/icon_arcane.svg",
|
arcane: "systems/fvtt-cthulhu-eternal/assets/icons/icon_arcane.svg",
|
||||||
injury: "systems/fvtt-cthulhu-eternal/assets/icons/icon_injury.svg",
|
injury: "systems/fvtt-cthulhu-eternal/assets/icons/icon_injury.svg",
|
||||||
motivation: "systems/fvtt-cthulhu-eternal/assets/icons/icon_motivation.svg",
|
motivation: "systems/fvtt-cthulhu-eternal/assets/icons/icon_motivation.svg",
|
||||||
|
@ -130,6 +130,8 @@ export default class CthulhuEternalRoll extends Roll {
|
|||||||
rollItem: foundry.utils.duplicate(options.rollItem), // Object only, no class
|
rollItem: foundry.utils.duplicate(options.rollItem), // Object only, no class
|
||||||
initialScore: options.initialScore,
|
initialScore: options.initialScore,
|
||||||
targetScore: options.initialScore,
|
targetScore: options.initialScore,
|
||||||
|
isLowWP: options.isLowWP,
|
||||||
|
isZeroWP: options.isZeroWP,
|
||||||
rollModes,
|
rollModes,
|
||||||
fieldRollMode,
|
fieldRollMode,
|
||||||
choiceModifier,
|
choiceModifier,
|
||||||
@ -167,23 +169,22 @@ export default class CthulhuEternalRoll extends Roll {
|
|||||||
// If the user cancels the dialog, exit
|
// If the user cancels the dialog, exit
|
||||||
if (rollContext === null) return
|
if (rollContext === null) return
|
||||||
|
|
||||||
const rollData = {
|
let rollData = foundry.utils.mergeObject(foundry.utils.duplicate(options), rollContext)
|
||||||
rollType: options.rollType,
|
rollData.rollMode = rollContext.visibility
|
||||||
rollItem: options.rollItem,
|
rollData.targetName = targetName
|
||||||
actorId: options.actorId,
|
rollData.targetArmor = targetArmor
|
||||||
actorName: options.actorName,
|
rollData.targetMalus = targetMalus
|
||||||
actorImage: options.actorImage,
|
|
||||||
rollMode: rollContext.visibility,
|
|
||||||
hasTarget: options.hasTarget,
|
|
||||||
initialScore: options.initialScore,
|
|
||||||
targetName,
|
|
||||||
targetArmor,
|
|
||||||
targetMalus,
|
|
||||||
...rollContext,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update target score
|
// Update target score
|
||||||
|
console.log(rollData)
|
||||||
rollData.targetScore = Math.min( Math.max(options.initialScore + Number(rollData.modifier), 0), 100)
|
rollData.targetScore = Math.min( Math.max(options.initialScore + Number(rollData.modifier), 0), 100)
|
||||||
|
if ( rollData.isLowWP ) {
|
||||||
|
rollData.targetScore -= 20
|
||||||
|
}
|
||||||
|
if ( rollData.isZeroWP ) {
|
||||||
|
rollData.targetScore = 0
|
||||||
|
}
|
||||||
|
rollData.targetScore = Math.min( Math.max(rollData.targetScore, 0), 100)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A hook event that fires before the roll is made.
|
* A hook event that fires before the roll is made.
|
||||||
@ -270,32 +271,25 @@ export default class CthulhuEternalRoll extends Roll {
|
|||||||
* @property {string} tooltip - The tooltip text for the chat card.
|
* @property {string} tooltip - The tooltip text for the chat card.
|
||||||
*/
|
*/
|
||||||
async _getChatCardData(isPrivate) {
|
async _getChatCardData(isPrivate) {
|
||||||
const cardData = {
|
let cardData = foundry.utils.duplicate(this.options)
|
||||||
css: [SYSTEM.id, "dice-roll"],
|
cardData.css = [SYSTEM.id, "dice-roll"]
|
||||||
data: this.data,
|
cardData.data = this.data
|
||||||
diceTotal: this.dice.reduce((t, d) => t + d.total, 0),
|
cardData.diceTotal = this.dice.reduce((t, d) => t + d.total, 0)
|
||||||
isGM: game.user.isGM,
|
cardData.isGM = game.user.isGM
|
||||||
rollItem: this.options.rollItem,
|
cardData.formula = this.formula
|
||||||
initialScore: this.options.initialScore,
|
cardData.total = this.total
|
||||||
targetScore: this.options.targetScore,
|
cardData.actorId = this.actorId
|
||||||
rollType: this.options.rollType,
|
cardData.actingCharName = this.actorName
|
||||||
modifier: this.options.modifier,
|
cardData.actingCharImg = this.actorImage
|
||||||
formula: this.formula,
|
cardData.resultType = this.resultType
|
||||||
total: this.total,
|
cardData.hasTarget = this.hasTarget
|
||||||
isSuccess: this.options.isSuccess,
|
cardData.targetName = this.targetName
|
||||||
isFailure: this.options.isFailure,
|
cardData.targetArmor = this.targetArmor
|
||||||
isCritical: this.options.isCritical,
|
cardData.realDamage = this.realDamage
|
||||||
actorId: this.actorId,
|
cardData.isPrivate = isPrivate
|
||||||
actingCharName: this.actorName,
|
|
||||||
actingCharImg: this.actorImage,
|
|
||||||
resultType: this.resultType,
|
|
||||||
hasTarget: this.hasTarget,
|
|
||||||
targetName: this.targetName,
|
|
||||||
targetArmor: this.targetArmor,
|
|
||||||
realDamage: this.realDamage,
|
|
||||||
isPrivate: isPrivate,
|
|
||||||
}
|
|
||||||
console.log(cardData)
|
console.log(cardData)
|
||||||
|
|
||||||
cardData.cssClass = cardData.css.join(" ")
|
cardData.cssClass = cardData.css.join(" ")
|
||||||
cardData.tooltip = isPrivate ? "" : await this.getTooltip()
|
cardData.tooltip = isPrivate ? "" : await this.getTooltip()
|
||||||
return cardData
|
return cardData
|
||||||
|
@ -5,7 +5,7 @@ export default class CthulhuEternalArchetype extends foundry.abstract.TypeDataMo
|
|||||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||||
const schema = {}
|
const schema = {}
|
||||||
|
|
||||||
schema.settings = new fields.StringField({ required: true, initial: "common", choices: SYSTEM.AVAILABLE_SETTINGS })
|
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||||
|
|
||||||
schema.description = new fields.HTMLField({
|
schema.description = new fields.HTMLField({
|
||||||
required: false,
|
required: false,
|
||||||
|
@ -6,7 +6,7 @@ export default class CthulhuEternalArmor 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.settings = new fields.StringField({ required: true, initial: "common", choices: SYSTEM.AVAILABLE_SETTINGS })
|
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||||
schema.protection = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
schema.protection = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
schema.resourceLevel = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
schema.resourceLevel = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ export default class CthulhuEternalGHear 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.settings = new fields.StringField({ required: true, initial: "common", choices: SYSTEM.AVAILABLE_SETTINGS })
|
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||||
schema.resourceLevel = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
schema.resourceLevel = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
|
|
||||||
return schema
|
return schema
|
||||||
|
@ -142,6 +142,15 @@ export default class CthulhuEternalProtagonist extends foundry.abstract.TypeData
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
isLowWP() {
|
||||||
|
return this.wp.value <= 2
|
||||||
|
}
|
||||||
|
|
||||||
|
isZeroWP() {
|
||||||
|
return this.wp.value === 0
|
||||||
|
}
|
||||||
|
|
||||||
/** */
|
/** */
|
||||||
/**
|
/**
|
||||||
* Rolls a dice for a character.
|
* Rolls a dice for a character.
|
||||||
@ -168,6 +177,8 @@ export default class CthulhuEternalProtagonist extends foundry.abstract.TypeData
|
|||||||
let roll = await CthulhuEternalRoll.prompt({
|
let roll = await CthulhuEternalRoll.prompt({
|
||||||
rollType,
|
rollType,
|
||||||
rollItem,
|
rollItem,
|
||||||
|
isLowWP: this.isLowWP(),
|
||||||
|
isZeroWP: this.isZeroWP(),
|
||||||
actorId: this.parent.id,
|
actorId: this.parent.id,
|
||||||
actorName: this.parent.name,
|
actorName: this.parent.name,
|
||||||
actorImage: this.parent.img,
|
actorImage: this.parent.img,
|
||||||
|
@ -6,9 +6,9 @@ export default class CthulhuEternalSkill 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.settings = new fields.StringField({ required: true, initial: "common", choices: SYSTEM.AVAILABLE_SETTINGS })
|
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||||
|
|
||||||
schema.base = new fields.StringField({ required: true, initial: "WIS" })
|
schema.base = new fields.StringField({ required: true, initial: "0" })
|
||||||
schema.bonus = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
schema.bonus = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||||
schema.diceEvolved = new fields.BooleanField({ required: true, initial: true })
|
schema.diceEvolved = new fields.BooleanField({ required: true, initial: true })
|
||||||
schema.rollFailed = new fields.BooleanField({ required: true, initial: false })
|
schema.rollFailed = new fields.BooleanField({ required: true, initial: false })
|
||||||
|
@ -7,7 +7,7 @@ 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.settings = new fields.StringField({ required: true, initial: "common", choices: SYSTEM.AVAILABLE_SETTINGS })
|
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||||
|
|
||||||
schema.weaponType = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_TYPE })
|
schema.weaponType = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_TYPE })
|
||||||
schema.damage = new fields.StringField({required: true, initial: "1d6"})
|
schema.damage = new fields.StringField({required: true, initial: "1d6"})
|
||||||
|
@ -1,6 +1,19 @@
|
|||||||
|
|
||||||
export class CthulhuEternalUtils {
|
export class CthulhuEternalUtils {
|
||||||
|
|
||||||
|
static registerSettings() {
|
||||||
|
game.settings.register("fvtt-cthulhu-eternal", "settings-era", {
|
||||||
|
name: game.i18n.localize("CHTUHLUETERNAL.Settings.era"),
|
||||||
|
hint: game.i18n.localize("CHTUHLUETERNAL.Settings.eraHint"),
|
||||||
|
default: true,
|
||||||
|
scope: "world",
|
||||||
|
type: String,
|
||||||
|
choices: SYSTEM.AVAILABLE_SETTINGS,
|
||||||
|
config: true,
|
||||||
|
onChange: _ => window.location.reload()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
static registerHandlebarsHelpers() {
|
static registerHandlebarsHelpers() {
|
||||||
|
|
||||||
Handlebars.registerHelper('isNull', function (val) {
|
Handlebars.registerHelper('isNull', function (val) {
|
||||||
@ -153,4 +166,17 @@ export class CthulhuEternalUtils {
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static setupCSSRootVariables() {
|
||||||
|
const era = game.settings.get("fvtt-cthulhu-eternal", "settings-era")
|
||||||
|
|
||||||
|
let eraCSS = SYSTEM.ERA_CSS[era];
|
||||||
|
if (!eraCSS) eraCSS = SYSTEM.ERA_CSS["jazz"];
|
||||||
|
|
||||||
|
document.documentElement.style.setProperty('--font-primary', eraCSS.primaryFont);
|
||||||
|
document.documentElement.style.setProperty('--font-secondary', eraCSS.secondaryFont);
|
||||||
|
document.documentElement.style.setProperty('--font-title', eraCSS.titleFont);
|
||||||
|
document.documentElement.style.setProperty('--img-icon-color-filter', eraCSS.imgFilter);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,107 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Georama";
|
font-family: "Georama";
|
||||||
src: url("../assets/fonts/georama.woff2") format("woff2");
|
src: url("../assets/fonts/Georama-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Tangerine";
|
||||||
|
src: url("../assets/fonts/Tangerine-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "TrajanPro";
|
||||||
|
src: url("../assets/fonts/Trajan-Pro-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Teko";
|
||||||
|
src: url("../assets/fonts/Teko-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "P22Operina";
|
||||||
|
src: url("../assets/fonts/P22-Operina.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "SpectralSC";
|
||||||
|
src: url("../assets/fonts/SpectralSC-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "RozhaOne";
|
||||||
|
src: url("../assets/fonts/RozhaOne-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Megrim";
|
||||||
|
src: url("../assets/fonts/Megrim-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Volkhov";
|
||||||
|
src: url("../assets/fonts/Volkhov-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "IMFell";
|
||||||
|
src: url("../assets/fonts/IMFell.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Dominican";
|
||||||
|
src: url("../assets/fonts/dominican.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "UncialAntiqua";
|
||||||
|
src: url("../assets/fonts/UncialAntiqua-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Luminari";
|
||||||
|
src: url("../assets/fonts/Luminari-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "SairaStencilOne";
|
||||||
|
src: url("../assets/fonts/SairaStencilOne-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Armalite";
|
||||||
|
src: url("../assets/fonts/armalite.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "CarterOne";
|
||||||
|
src: url("../assets/fonts/CarterOne-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "SigmarOne";
|
||||||
|
src: url("../assets/fonts/SigmarOne-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Excelsior";
|
||||||
|
src: url("../assets/fonts/Excelsior-Normal.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "TopSecret";
|
||||||
|
src: url("../assets/fonts/Top-Secret.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "BebasNeue";
|
||||||
|
src: url("../assets/fonts/BebasNeue-Regular.ttf") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Seabreed";
|
||||||
|
src: url("../assets/fonts/Seabreed.ttf") format("truetype");
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
|
@ -3,19 +3,22 @@
|
|||||||
--background-image-base: linear-gradient(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.8)),
|
--background-image-base: linear-gradient(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.8)),
|
||||||
url("../assets/ui/jazzage_background_main.webp");
|
url("../assets/ui/jazzage_background_main.webp");
|
||||||
/*--background-image-base: url("../assets/ui/jazzage_background_main.webp");*/
|
/*--background-image-base: url("../assets/ui/jazzage_background_main.webp");*/
|
||||||
--font-primary: "Georama";
|
--font-primary: "RozhaOne";
|
||||||
--font-secondary: "Georama";
|
--font-secondary: "RozhaOne";
|
||||||
--font-title: "Broadway";
|
--font-title: "Broadway";
|
||||||
--logo-standard: url("../assets/logos/reanimated-ce-logo.webp");
|
--logo-standard: url("../assets/logos/reanimated-ce-logo.webp");
|
||||||
--color-success: darkgreen;
|
--color-success: darkgreen;
|
||||||
--color-failure: darkred;
|
--color-failure: darkred;
|
||||||
--color-critical-success: lightgreen;
|
--color-critical-success: lightgreen;
|
||||||
--color-critical-failure: lightcoral;
|
--color-critical-failure: lightcoral;
|
||||||
|
--img-icon-color-filter: brightness(0) saturate(100%) invert(52%) sepia(9%) saturate(2368%) hue-rotate(360deg) brightness(86%) contrast(84%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.era-icon-color {
|
.item .thumbnail,
|
||||||
|
.item-img {
|
||||||
/*filter: invert(90%) sepia(10%) saturate(1215%) hue-rotate(55deg) brightness(93%) contrast(89%);*/
|
/*filter: invert(90%) sepia(10%) saturate(1215%) hue-rotate(55deg) brightness(93%) contrast(89%);*/
|
||||||
/*filter: invert(48%) sepia(79%) saturate(2476%) hue-rotate(86deg) brightness(118%) contrast(119%);*/
|
/*filter: invert(48%) sepia(79%) saturate(2476%) hue-rotate(86deg) brightness(118%) contrast(119%);*/
|
||||||
|
filter: var(--img-icon-color-filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
#logo {
|
#logo {
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
background-color: var(--color-light-1);
|
background-color: var(--color-light-1);
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
|
|
||||||
.protagonist-pc {
|
.protagonist-pc {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
@ -67,7 +66,36 @@
|
|||||||
width: 400px;
|
width: 400px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.san {
|
||||||
|
input {
|
||||||
|
min-width: 2.2rem;
|
||||||
|
}
|
||||||
|
.san-checkbox {
|
||||||
|
min-width: 1rem;
|
||||||
|
max-width: 1rem;
|
||||||
|
}
|
||||||
|
.label-field {
|
||||||
|
flex-grow: 0;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.spacing {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.willpower {
|
||||||
|
input {
|
||||||
|
min-width: 2.2rem;
|
||||||
|
}
|
||||||
|
.label-field {
|
||||||
|
flex-grow: 0;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.checkbox {
|
||||||
|
min-width: 1rem;
|
||||||
|
max-width: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
.protagonist-infos {
|
.protagonist-infos {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@ -154,7 +182,6 @@
|
|||||||
.protagonist-characteristic-edit {
|
.protagonist-characteristic-edit {
|
||||||
min-width: 400px;
|
min-width: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.protagonist-biography {
|
.protagonist-biography {
|
||||||
@ -165,6 +192,39 @@
|
|||||||
prose-mirror.active {
|
prose-mirror.active {
|
||||||
min-height: 150px;
|
min-height: 150px;
|
||||||
}
|
}
|
||||||
|
.field-label {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
.biodata {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
.motivations {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 4px;
|
||||||
|
.motivation {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
min-width: 14rem;
|
||||||
|
max-width: 14rem;
|
||||||
|
.controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
|
}
|
||||||
|
.item-img {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin: 4px 0 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.protagonist-skills {
|
.tab.protagonist-skills {
|
||||||
@ -209,6 +269,101 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tab.protagonist-status {
|
||||||
|
background-color: var(--color-light-1);
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
legend {
|
||||||
|
a {
|
||||||
|
font-size: calc(var(--font-size-standard) * 1.4);
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bonds {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 4px;
|
||||||
|
.bond {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
min-width: 16rem;
|
||||||
|
max-width: 16rem;
|
||||||
|
.controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
min-width: 12rem;
|
||||||
|
max-width: 12rem;
|
||||||
|
}
|
||||||
|
.type {
|
||||||
|
min-width: 4rem;
|
||||||
|
max-width: 4rem;
|
||||||
|
}
|
||||||
|
.level {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.item-img {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin: 4px 0 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.mentaldisorders {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 4px;
|
||||||
|
.mentaldisorder {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
min-width: 16rem;
|
||||||
|
max-width: 16rem;
|
||||||
|
.controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
min-width: 14rem;
|
||||||
|
max-width: 14rem;
|
||||||
|
}
|
||||||
|
.item-img {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin: 4px 0 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.injuries {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 4px;
|
||||||
|
.injury {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
min-width: 16rem;
|
||||||
|
max-width: 16rem;
|
||||||
|
.controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
min-width: 14rem;
|
||||||
|
max-width: 14rem;
|
||||||
|
}
|
||||||
|
.item-img {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin: 4px 0 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.tab.protagonist-equipment {
|
.tab.protagonist-equipment {
|
||||||
background-color: var(--color-light-1);
|
background-color: var(--color-light-1);
|
||||||
display: grid;
|
display: grid;
|
||||||
@ -221,16 +376,35 @@
|
|||||||
}
|
}
|
||||||
.weapons {
|
.weapons {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
.weapon {
|
.weapon {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
min-width: 13rem;
|
||||||
|
max-width: 13srem;
|
||||||
|
.rollable:hover,
|
||||||
|
.rollable:focus {
|
||||||
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.damage {
|
||||||
|
min-width: 5rem;
|
||||||
|
max-width: 5rem;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
|
}
|
||||||
.item-img {
|
.item-img {
|
||||||
width: 50px;
|
width: 32px;
|
||||||
height: 50px;
|
height: 32px;
|
||||||
margin: 5px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -242,10 +416,29 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
min-width: 13rem;
|
||||||
|
max-width: 13srem;
|
||||||
|
.rollable:hover,
|
||||||
|
.rollable:focus {
|
||||||
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.protection {
|
||||||
|
min-width: 5rem;
|
||||||
|
max-width: 5rem;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
|
}
|
||||||
.item-img {
|
.item-img {
|
||||||
width: 50px;
|
width: 32px;
|
||||||
height: 50px;
|
height: 32px;
|
||||||
margin: 5px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -257,10 +450,29 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
min-width: 13rem;
|
||||||
|
max-width: 13srem;
|
||||||
|
.rollable:hover,
|
||||||
|
.rollable:focus {
|
||||||
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.controls {
|
||||||
|
min-width: 2rem;
|
||||||
|
max-width: 2rem;
|
||||||
|
}
|
||||||
|
.damage {
|
||||||
|
min-width: 5rem;
|
||||||
|
max-width: 5rem;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
|
}
|
||||||
.item-img {
|
.item-img {
|
||||||
width: 50px;
|
width: 32px;
|
||||||
height: 50px;
|
height: 32px;
|
||||||
margin: 5px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<section>
|
<section>
|
||||||
<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 era-icon-color" 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>
|
||||||
|
|
||||||
|
@ -2,13 +2,43 @@
|
|||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "CTHULHUETERNAL.Label.biodata"}}</legend>
|
<legend>{{localize "CTHULHUETERNAL.Label.biodata"}}</legend>
|
||||||
{{formInput systemFields.biodata.fields.harshness value=system.biodata.harshness name="system.biodata.harshness" localize=true}}
|
<div class="biodata">
|
||||||
|
{{formField systemFields.biodata.fields.harshness value=system.biodata.harshness name="system.biodata.harshness" localize=true}}
|
||||||
|
{{formField systemFields.biodata.fields.age value=system.biodata.age name="system.biodata.age" localize=true classes="field-label"}}
|
||||||
|
{{formField systemFields.biodata.fields.gender value=system.biodata.gender name="system.biodata.gender" localize=true classes="field-label"}}
|
||||||
|
{{formField systemFields.biodata.fields.height value=system.biodata.height name="system.biodata.height" localize=true classes="field-label"}}
|
||||||
|
{{formField systemFields.biodata.fields.eyes value=system.biodata.eyes name="system.biodata.eyes" localize=true classes="field-label"}}
|
||||||
|
{{formField systemFields.biodata.fields.hair value=system.biodata.hair name="system.biodata.hair" localize=true classes="field-label"}}
|
||||||
|
{{formField systemFields.biodata.fields.gender value=system.biodata.gender name="system.biodata.gender" localize=true classes="field-label"}}
|
||||||
|
{{formField systemFields.biodata.fields.birthplace value=system.biodata.birthplace name="system.biodata.birthplace" localize=true classes="field-label"}}
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{localize "CTHULHUETERNAL.Label.motivations"}}{{#if isEditMode}}
|
||||||
|
<a class="action" data-tooltip="{{localize "CTHULHUETERNAL.Tooltip.addMotivation"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createMotivation"></i></a>{{/if}}</legend>
|
||||||
|
<div class="motivations">
|
||||||
|
{{#each motivations as |item|}}
|
||||||
|
{{!log 'armor' this}}
|
||||||
|
<div class="motivation" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||||
|
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||||
|
{{item.name}}
|
||||||
|
</div>
|
||||||
|
<div class="controls">
|
||||||
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||||
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
||||||
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
|
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "CTHULHUETERNAL.Label.notes"}}</legend>
|
<legend>{{localize "CTHULHUETERNAL.Label.notes"}}</legend>
|
||||||
{{formInput systemFields.notes enriched=notes value=system.notes name="system.notes" toggled=true}}
|
{{formInput systemFields.notes enriched=notes value=system.notes name="system.notes" toggled=true}}
|
||||||
|
@ -2,25 +2,28 @@
|
|||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "CTHULHUETERNAL.Label.weapons"}}{{#if isEditMode}}
|
<legend>{{localize "CTHULHUETERNAL.Label.weapons"}}{{#if isEditMode}}
|
||||||
<a class="action" data-tooltip="{{localize "CTHULHUETERNAL.Tooltip.addWeapon"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createEquipment"></i></a>{{/if}}</legend>
|
<a class="action" data-tooltip="{{localize "CTHULHUETERNAL.Tooltip.addWeapon"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createWeapon"></i></a>{{/if}}</legend>
|
||||||
<div class="weapons">
|
<div class="weapons">
|
||||||
{{#each weapons as |item|}}
|
{{#each weapons as |item|}}
|
||||||
{{!log 'weapon' this}}
|
{{!log 'weapon' this}}
|
||||||
<div class="weapon" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true" data-drag-type="damage">
|
<div class="weapon" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true" data-drag-type="damage">
|
||||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
<div class="name rollable" data-tooltip="{{{item.system.description}}}">
|
||||||
{{item.name}}
|
{{item.name}}
|
||||||
</div>
|
</div>
|
||||||
<a class="rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage" data-roll-value="{{item.system.degats}}">{{localize "CTHULHUETERNAL.Label.damage"}} : {{item.system.damage}}</a>
|
<a class="damage rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage" data-roll-value="{{item.system.damage}}">{{localize "CTHULHUETERNAL.Label.damageShort"}} : {{item.system.damage}}</a>
|
||||||
{{#if @root.isEditMode}}
|
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||||
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{localize "CTHULHUETERNAL.Label.armors"}}{{#if isEditMode}}
|
||||||
|
<a class="action" data-tooltip="{{localize "CTHULHUETERNAL.Tooltip.addArmor"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createArmor"></i></a>{{/if}}</legend>
|
||||||
<div class="armors">
|
<div class="armors">
|
||||||
{{#each armors as |item|}}
|
{{#each armors as |item|}}
|
||||||
{{!log 'armor' this}}
|
{{!log 'armor' this}}
|
||||||
@ -29,7 +32,7 @@
|
|||||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||||
{{item.name}}
|
{{item.name}}
|
||||||
</div>
|
</div>
|
||||||
{{localize "CTHULHUETERNAL.Label.armor"}} : {{item.system.protection}}
|
<span class="protection">{{localize "CTHULHUETERNAL.Label.armor"}} : {{item.system.protection}}</span>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||||
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||||
@ -37,7 +40,11 @@
|
|||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{localize "CTHULHUETERNAL.Label.gears"}}{{#if isEditMode}}
|
||||||
|
<a class="action" data-tooltip="{{localize "CTHULHUETERNAL.Tooltip.addGear"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createGear"></i></a>{{/if}}</legend>
|
||||||
<div class="gears">
|
<div class="gears">
|
||||||
{{#each gears as |item|}}
|
{{#each gears as |item|}}
|
||||||
{{!log 'armor' this}}
|
{{!log 'armor' this}}
|
||||||
@ -46,7 +53,6 @@
|
|||||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||||
{{item.name}}
|
{{item.name}}
|
||||||
</div>
|
</div>
|
||||||
{{localize "CTHULHUETERNAL.Label.gear"}} : {{item.system.protection}}
|
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||||
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||||
|
@ -29,44 +29,47 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<fieldset>
|
<fieldset class="san">
|
||||||
<legend>{{localize "CTHULHUETERNAL.Label.SAN"}}</legend>
|
<legend>{{localize "CTHULHUETERNAL.Label.SAN"}}</legend>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
{{localize "CTHULHUETERNAL.Label.current"}} {{formField systemFields.san.fields.value
|
<span class="label-field">{{localize "CTHULHUETERNAL.Label.current"}}</span>
|
||||||
value=system.san.value}}
|
{{formField systemFields.san.fields.value value=system.san.value}}
|
||||||
{{localize "CTHULHUETERNAL.Label.max"}} {{formField systemFields.san.fields.max value=system.san.max
|
<span class="label-field">{{localize "CTHULHUETERNAL.Label.max"}}</span>
|
||||||
rootId=partId disabled=true}}
|
{{formField systemFields.san.fields.max value=system.san.max rootId=partId disabled=true}}
|
||||||
{{localize "CTHULHUETERNAL.Label.recovery"}} {{formField systemFields.san.fields.recovery
|
<span class="label-field">{{localize "CTHULHUETERNAL.Label.recovery"}}</span>
|
||||||
value=system.san.recovery disabled=true}}
|
{{formField systemFields.san.fields.recovery value=system.san.recovery disabled=true}}
|
||||||
<span data-tooltip='{{localize "CTHULHUETERNAL.Tooltip.sanBP"}}'>{{localize "CTHULHUETERNAL.Label.breakingPoint"}}</span> {{formField systemFields.san.fields.breakingPoint
|
<span class="label-field" data-tooltip='{{localize "CTHULHUETERNAL.Tooltip.sanBP"}}'>{{localize
|
||||||
value=system.san.breakingPoint disabled=true}}
|
"CTHULHUETERNAL.Label.breakingPoint"}}</span>
|
||||||
|
{{formField systemFields.san.fields.breakingPoint value=system.san.breakingPoint disabled=true}}
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
{{localize "CTHULHUETERNAL.Label.violence"}}
|
{{localize "CTHULHUETERNAL.Label.violence"}}
|
||||||
{{#each system.san.violence as |violence idx|}}
|
{{#each system.san.violence as |violence idx|}}
|
||||||
<input type="checkbox" data-action="updateCheckboxArray" data-index="{{@index}}" data-name="violence" {{#if
|
<input class="san-checkbox" type="checkbox" data-action="updateCheckboxArray" data-index="{{@index}}"
|
||||||
violence}} checked {{/if}}>
|
data-name="violence" {{#if violence}} checked {{/if}}>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
<span class="spacing"></span>
|
||||||
<div class="flexrow">
|
|
||||||
{{localize "CTHULHUETERNAL.Label.helplessness"}}
|
{{localize "CTHULHUETERNAL.Label.helplessness"}}
|
||||||
{{#each system.san.helplessness as |helplessness idx|}}
|
{{#each system.san.helplessness as |helplessness idx|}}
|
||||||
<input type="checkbox" data-action="updateCheckboxArray" data-index="{{@index}}" data-name="helplessness"
|
<input class="san-checkbox" type="checkbox" data-action="updateCheckboxArray" data-index="{{@index}}"
|
||||||
{{#if helplessness}} checked {{/if}}>
|
data-name="helplessness" {{#if helplessness}} checked {{/if}}>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
|
||||||
|
<fieldset class="willpower">
|
||||||
<legend>{{localize "CTHULHUETERNAL.Label.willpower"}}</legend>
|
<legend>{{localize "CTHULHUETERNAL.Label.willpower"}}</legend>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
{{localize "CTHULHUETERNAL.Label.current"}}{{formField systemFields.wp.fields.value value=system.wp.value}}
|
<span class="label-field">{{localize "CTHULHUETERNAL.Label.current"}}</span>
|
||||||
{{localize "CTHULHUETERNAL.Label.max"}}{{formField systemFields.wp.fields.max value=system.wp.max rootId=partId disabled=true}}
|
{{formField systemFields.wp.fields.value value=system.wp.value}}
|
||||||
{{localize "CTHULHUETERNAL.Label.exhausted"}}{{formField systemFields.wp.fields.exhausted value=system.wp.exhausted }}
|
<span class="label-field">{{localize "CTHULHUETERNAL.Label.max"}}</span>
|
||||||
|
{{formField systemFields.wp.fields.max value=system.wp.max rootId=partId disabled=true}}
|
||||||
|
<span class="label-field">{{localize "CTHULHUETERNAL.Label.exhausted"}}</span>
|
||||||
|
{{formField systemFields.wp.fields.exhausted value=system.wp.exhausted classes=checkbox}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@ -74,37 +77,43 @@
|
|||||||
<fieldset class="protagonist-characteristics protagonist-characteristics-{{ifThen isPlayMode 'play' 'edit'}}">
|
<fieldset class="protagonist-characteristics protagonist-characteristics-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||||
<legend>{{localize "CTHULHUETERNAL.Label.characteristics"}}</legend>
|
<legend>{{localize "CTHULHUETERNAL.Label.characteristics"}}</legend>
|
||||||
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
||||||
<label class="rollable" data-roll-type="char" data-char-id="str">{{localize "CTHULHUETERNAL.Label.strShort"}}</label>
|
<label class="rollable" data-roll-type="char" data-char-id="str">{{localize
|
||||||
|
"CTHULHUETERNAL.Label.strShort"}}</label>
|
||||||
{{formField systemFields.characteristics.fields.str.fields.value value=system.characteristics.str.value
|
{{formField systemFields.characteristics.fields.str.fields.value value=system.characteristics.str.value
|
||||||
rootId=partId disabled=isPlayMode }}
|
rootId=partId disabled=isPlayMode }}
|
||||||
{{mul system.characteristics.str.value 5}}
|
{{mul system.characteristics.str.value 5}}
|
||||||
</div>
|
</div>
|
||||||
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
||||||
<label class="rollable" data-roll-type="char" data-char-id="dex">{{localize "CTHULHUETERNAL.Label.dexShort"}}</label>
|
<label class="rollable" data-roll-type="char" data-char-id="dex">{{localize
|
||||||
|
"CTHULHUETERNAL.Label.dexShort"}}</label>
|
||||||
{{formField systemFields.characteristics.fields.dex.fields.value value=system.characteristics.dex.value
|
{{formField systemFields.characteristics.fields.dex.fields.value value=system.characteristics.dex.value
|
||||||
rootId=partId disabled=isPlayMode }}
|
rootId=partId disabled=isPlayMode }}
|
||||||
{{mul system.characteristics.dex.value 5}}
|
{{mul system.characteristics.dex.value 5}}
|
||||||
</div>
|
</div>
|
||||||
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
||||||
<label class="rollable" data-roll-type="char" data-char-id="con">{{localize "CTHULHUETERNAL.Label.conShort"}}</label>
|
<label class="rollable" data-roll-type="char" data-char-id="con">{{localize
|
||||||
|
"CTHULHUETERNAL.Label.conShort"}}</label>
|
||||||
{{formField systemFields.characteristics.fields.con.fields.value value=system.characteristics.con.value
|
{{formField systemFields.characteristics.fields.con.fields.value value=system.characteristics.con.value
|
||||||
rootId=partId disabled=isPlayMode }}
|
rootId=partId disabled=isPlayMode }}
|
||||||
{{mul system.characteristics.con.value 5}}
|
{{mul system.characteristics.con.value 5}}
|
||||||
</div>
|
</div>
|
||||||
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
||||||
<label class="rollable" data-roll-type="char" data-char-id="int">{{localize "CTHULHUETERNAL.Label.intShort"}}</label>
|
<label class="rollable" data-roll-type="char" data-char-id="int">{{localize
|
||||||
|
"CTHULHUETERNAL.Label.intShort"}}</label>
|
||||||
{{formField systemFields.characteristics.fields.int.fields.value value=system.characteristics.int.value
|
{{formField systemFields.characteristics.fields.int.fields.value value=system.characteristics.int.value
|
||||||
rootId=partId disabled=isPlayMode }}
|
rootId=partId disabled=isPlayMode }}
|
||||||
{{mul system.characteristics.int.value 5}}
|
{{mul system.characteristics.int.value 5}}
|
||||||
</div>
|
</div>
|
||||||
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
||||||
<label class="rollable" data-roll-type="char" data-char-id="pow">{{localize "CTHULHUETERNAL.Label.powShort"}}</label>
|
<label class="rollable" data-roll-type="char" data-char-id="pow">{{localize
|
||||||
|
"CTHULHUETERNAL.Label.powShort"}}</label>
|
||||||
{{formField systemFields.characteristics.fields.pow.fields.value value=system.characteristics.pow.value
|
{{formField systemFields.characteristics.fields.pow.fields.value value=system.characteristics.pow.value
|
||||||
rootId=partId disabled=isPlayMode }}
|
rootId=partId disabled=isPlayMode }}
|
||||||
{{mul system.characteristics.pow.value 5}}
|
{{mul system.characteristics.pow.value 5}}
|
||||||
</div>
|
</div>
|
||||||
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
<div class="protagonist-characteristic" data-drag="true" data-drag-type="characteristic">
|
||||||
<label class="rollable" data-roll-type="char" data-char-id="cha">{{localize "CTHULHUETERNAL.Label.chaShort"}}</label>
|
<label class="rollable" data-roll-type="char" data-char-id="cha">{{localize
|
||||||
|
"CTHULHUETERNAL.Label.chaShort"}}</label>
|
||||||
{{formField systemFields.characteristics.fields.cha.fields.value value=system.characteristics.cha.value
|
{{formField systemFields.characteristics.fields.cha.fields.value value=system.characteristics.cha.value
|
||||||
rootId=partId disabled=isPlayMode }}
|
rootId=partId disabled=isPlayMode }}
|
||||||
{{mul system.characteristics.cha.value 5}}
|
{{mul system.characteristics.cha.value 5}}
|
||||||
|
68
templates/protagonist-status.hbs
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<section class="tab protagonist-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{localize "CTHULHUETERNAL.Label.bonds"}}{{#if isEditMode}}
|
||||||
|
<a class="action" data-tooltip="{{localize "CTHULHUETERNAL.Tooltip.addBond"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createBond"></i></a>{{/if}}</legend>
|
||||||
|
<div class="bonds">
|
||||||
|
{{#each bonds as |item|}}
|
||||||
|
{{!log 'weapon' this}}
|
||||||
|
<div class="bond" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" >
|
||||||
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||||
|
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||||
|
{{item.name}}
|
||||||
|
</div>
|
||||||
|
<div class="type">
|
||||||
|
{{item.system.bondType}}
|
||||||
|
</div>
|
||||||
|
<div class="level">
|
||||||
|
{{item.system.value}}
|
||||||
|
</div>
|
||||||
|
<div class="controls">
|
||||||
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||||
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{localize "CTHULHUETERNAL.Label.injuries"}}{{#if isEditMode}}
|
||||||
|
<a class="action" data-tooltip="{{localize "CTHULHUETERNAL.Tooltip.addInjury"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createInjury"></i></a>{{/if}}</legend>
|
||||||
|
<div class="injuries">
|
||||||
|
{{#each injuries as |item|}}
|
||||||
|
<div class="injury" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||||
|
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||||
|
{{item.name}}
|
||||||
|
</div>
|
||||||
|
<div class="controls">
|
||||||
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||||
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{localize "CTHULHUETERNAL.Label.mentaldisorders"}}{{#if isEditMode}}
|
||||||
|
<a class="action" data-tooltip="{{localize "CTHULHUETERNAL.Tooltip.addMentalDisorder"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createMentalDisorder"></i></a>{{/if}}</legend>
|
||||||
|
<div class="mentaldisorders">
|
||||||
|
{{#each mentaldisorders as |item|}}
|
||||||
|
{{!log 'armor' this}}
|
||||||
|
<div class="mentaldisorder" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||||
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||||
|
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||||
|
{{item.name}}
|
||||||
|
</div>
|
||||||
|
<div class="controls">
|
||||||
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||||
|
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
</section>
|
@ -8,6 +8,13 @@
|
|||||||
<legend>{{localize "CTHULHUETERNAL.Label.characteristic"}}</legend>
|
<legend>{{localize "CTHULHUETERNAL.Label.characteristic"}}</legend>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="dialog-skill">{{rollItem.name}} : {{initialScore}}%</div>
|
<div class="dialog-skill">{{rollItem.name}} : {{initialScore}}%</div>
|
||||||
|
{{#if isZeroWP}}
|
||||||
|
<div class="dialog-skill">Zero WP : Automatic failure (ie 0%)</div>
|
||||||
|
{{else}}
|
||||||
|
{{#if isLowWP}}
|
||||||
|
<div class="dialog-skill">Low WP : -20%</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
</fieldSet>
|
</fieldSet>
|
||||||
|
|
||||||
<fieldSet class="dialog-modifier">
|
<fieldSet class="dialog-modifier">
|
||||||
|