diff --git a/assets/docs/.~lock.Colours used in R20 Sheets (version 3).xlsx# b/assets/docs/.~lock.Colours used in R20 Sheets (version 3).xlsx#
new file mode 100644
index 0000000..a62ea75
--- /dev/null
+++ b/assets/docs/.~lock.Colours used in R20 Sheets (version 3).xlsx#
@@ -0,0 +1 @@
+,morr,arioch,04.12.2024 14:13,file:///home/morr/.config/libreoffice/4;
\ No newline at end of file
diff --git a/assets/docs/Colours used in R20 Sheets (version 3).xlsx b/assets/docs/Colours used in R20 Sheets (version 3).xlsx
new file mode 100644
index 0000000..d506b7f
Binary files /dev/null and b/assets/docs/Colours used in R20 Sheets (version 3).xlsx differ
diff --git a/assets/docs/Cthulhu Eternal Skills Per Era.xlsx b/assets/docs/Cthulhu Eternal Skills Per Era.xlsx
new file mode 100644
index 0000000..e942ee3
Binary files /dev/null and b/assets/docs/Cthulhu Eternal Skills Per Era.xlsx differ
diff --git a/assets/docs/Cthulhu_Eternal/en/Cthulhu_Eternal_SRD_-_Modern_Age_v1.1_REL.docx b/assets/docs/Cthulhu_Eternal/en/Cthulhu_Eternal_SRD_-_Modern_Age_v1.1_REL.docx
new file mode 100644
index 0000000..cbf3b7b
Binary files /dev/null and b/assets/docs/Cthulhu_Eternal/en/Cthulhu_Eternal_SRD_-_Modern_Age_v1.1_REL.docx differ
diff --git a/assets/docs/Cthulhu_Eternal/fr/Cthulhu_Eternal_SRD_-_Modern_Age_v1.1_REL.docx b/assets/docs/Cthulhu_Eternal/fr/Cthulhu_Eternal_SRD_-_Modern_Age_v1.1_REL.docx
new file mode 100644
index 0000000..a35d717
Binary files /dev/null and b/assets/docs/Cthulhu_Eternal/fr/Cthulhu_Eternal_SRD_-_Modern_Age_v1.1_REL.docx differ
diff --git a/assets/fonts/georama.woff2 b/assets/fonts/georama.woff2
new file mode 100644
index 0000000..5e91440
Binary files /dev/null and b/assets/fonts/georama.woff2 differ
diff --git a/css/fvtt-cthulhu-eternal.css b/css/fvtt-cthulhu-eternal.css
index 797cd44..8f4cb63 100644
--- a/css/fvtt-cthulhu-eternal.css
+++ b/css/fvtt-cthulhu-eternal.css
@@ -1,7 +1,8 @@
:root {
--font-size-standard: 1rem;
--background-image-base: url("../assets/parchment.jpg");
- --font-secondary: "Amiri", serif;
+ --font-primary: "Georama";
+ --font-secondary: "Georama";
--logo-standard: url("../assets/logos/reanimated-ce-logo.webp");
}
#logo {
@@ -51,7 +52,7 @@ i.lethalfantasy {
background-repeat: no-repeat;
background-size: 100% 100%;
}
-.fvtt-cthulhu-eternal .character-sheet-common label {
+.fvtt-cthulhu-eternal .protagonist-sheet-common label {
font-family: var(--font-secondary);
font-size: calc(var(--font-size-standard) * 1.2);
}
@@ -75,7 +76,7 @@ i.lethalfantasy {
.fvtt-cthulhu-eternal .item-sheet-common .shift-right {
margin-left: 2rem;
}
-.fvtt-cthulhu-eternal .character-content {
+.fvtt-cthulhu-eternal .protagonist-content {
font-family: var(--font-primary);
font-size: calc(var(--font-size-standard) * 1);
color: var(--color-dark-1);
@@ -84,19 +85,19 @@ i.lethalfantasy {
background-size: 100% 100%;
overflow: scroll;
}
-.fvtt-cthulhu-eternal .character-content input:disabled,
-.fvtt-cthulhu-eternal .character-content select:disabled {
+.fvtt-cthulhu-eternal .protagonist-content input:disabled,
+.fvtt-cthulhu-eternal .protagonist-content select:disabled {
background-color: rgba(0, 0, 0, 0.2);
border-color: transparent;
color: var(--color-dark-3);
}
-.fvtt-cthulhu-eternal .character-content input,
-.fvtt-cthulhu-eternal .character-content select {
+.fvtt-cthulhu-eternal .protagonist-content input,
+.fvtt-cthulhu-eternal .protagonist-content select {
background-color: rgba(0, 0, 0, 0.1);
border-color: var(--color-dark-6);
color: var(--color-dark-2);
}
-.fvtt-cthulhu-eternal .character-content input[name="name"] {
+.fvtt-cthulhu-eternal .protagonist-content input[name="name"] {
height: 50px;
margin-right: 10px;
font-family: var(--font-secondary);
@@ -104,58 +105,58 @@ i.lethalfantasy {
font-weight: bold;
border: none;
}
-.fvtt-cthulhu-eternal .character-content fieldset {
+.fvtt-cthulhu-eternal .protagonist-content fieldset {
margin-bottom: 5px;
border-radius: 5px;
}
-.fvtt-cthulhu-eternal .character-content .form-fields input,
-.fvtt-cthulhu-eternal .character-content .form-fields select {
+.fvtt-cthulhu-eternal .protagonist-content .form-fields input,
+.fvtt-cthulhu-eternal .protagonist-content .form-fields select {
text-align: center;
font-size: calc(var(--font-size-standard) * 1);
}
-.fvtt-cthulhu-eternal .character-content .form-fields select {
+.fvtt-cthulhu-eternal .protagonist-content .form-fields select {
font-family: var(--font-secondary);
font-size: calc(var(--font-size-standard) * 1);
}
-.fvtt-cthulhu-eternal .character-content legend {
+.fvtt-cthulhu-eternal .protagonist-content legend {
font-family: var(--font-secondary);
font-size: calc(var(--font-size-standard) * 1.2);
font-weight: bold;
letter-spacing: 1px;
}
-.fvtt-cthulhu-eternal .character-content label {
+.fvtt-cthulhu-eternal .protagonist-content label {
font-family: var(--font-secondary);
font-size: calc(var(--font-size-standard) * 1.2);
}
-.fvtt-cthulhu-eternal .character-main {
+.fvtt-cthulhu-eternal .protagonist-main {
display: flex;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc {
display: flex;
gap: 10px;
flex: 1;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-gauche {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left {
min-width: 180px;
display: flex;
flex-direction: column;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-gauche .character-gauche-image {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-left-image {
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-gauche .character-gauche-image .character-img {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-left-image .protagonist-img {
height: 140px;
width: auto;
border: none;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-gauche .character-dv .form-fields,
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-gauche .character-dmax .form-fields {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-dv .form-fields,
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-dmax .form-fields {
flex: none;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-gauche .character-dmax-edit input {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-dmax-edit input {
display: flex;
width: 60px;
font-size: calc(var(--font-size-standard) * 1.4);
@@ -164,55 +165,37 @@ i.lethalfantasy {
padding: 0 5px 0 5px;
text-align: center;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right {
display: flex;
flex-direction: column;
gap: 5px;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-name {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-name {
display: flex;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-name input {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-name input {
width: 400px;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos {
display: flex;
flex-direction: column;
gap: 10px;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos label {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos label {
min-width: 120px;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-voie-majeure,
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-voie-mineure {
- display: flex;
-}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-voie-majeure input,
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-voie-mineure input {
- width: 280px;
-}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-voie-majeure .controls,
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-voie-mineure .controls {
- padding-left: 5px;
-}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-commanditaire {
- display: flex;
-}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-commanditaire input {
- width: 280px;
-}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-pv {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp {
display: flex;
gap: 2px;
align-items: center;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-pv .character-pv-value .form-fields input {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp .protagonist-hp-value .form-fields input {
flex: none;
width: 50px;
margin-left: 10px;
font-size: calc(var(--font-size-standard) * 1.4);
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-pv .character-pv-max {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp .protagonist-hp-max {
clear: both;
display: flex;
flex-direction: row;
@@ -220,53 +203,53 @@ i.lethalfantasy {
margin: 3px 0;
align-items: center;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-pv .character-pv-max input {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp .protagonist-hp-max input {
width: 50px;
text-align: center;
font-size: calc(var(--font-size-standard) * 1.4);
}
-.fvtt-cthulhu-eternal .character-main .character-personnage .character-droite .character-infos .character-pv .pv-separator {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp .hp-separator {
font-size: calc(var(--font-size-standard) * 1.2);
display: flex;
align-items: center;
justify-content: center;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage-play {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc-play {
min-width: 500px;
}
-.fvtt-cthulhu-eternal .character-main .character-personnage-edit {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc-edit {
min-width: 650px;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics {
display: flex;
flex-direction: column;
gap: 5px;
flex: 1;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic {
display: flex;
align-items: center;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .rollable:hover,
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .rollable:focus {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .rollable:hover,
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .rollable:focus {
text-shadow: 0 0 8px var(--color-shadow-primary);
cursor: pointer;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .form-group {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .form-group {
flex: 1;
padding-left: 5px;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .form-group .form-fields {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .form-group .form-fields {
flex: none;
width: 70px;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .experience {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .experience {
display: flex;
align-items: center;
gap: 10px;
margin-left: 10px;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .experience input {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .experience input {
display: flex;
width: 70px;
font-size: calc(var(--font-size-standard) * 1.4);
@@ -274,54 +257,54 @@ i.lethalfantasy {
justify-content: center;
padding: 0 5px 0 5px;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .experience input[type="number"] {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .experience input[type="number"] {
text-align: center;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .experience input[type="checkbox"] {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .experience input[type="checkbox"] {
width: 20px;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .experience input[type="checkbox"]:checked {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .experience input[type="checkbox"]:checked {
background-color: rgba(0, 0, 0, 0.1);
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques .character-caracteristique .experience input[type="checkbox"]:checked::after {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .experience input[type="checkbox"]:checked::after {
color: rgba(0, 0, 0, 0.1);
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques-play {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristic-play {
min-width: 225px;
}
-.fvtt-cthulhu-eternal .character-main .character-caracteristiques-edit {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristic-edit {
min-width: 400px;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources {
display: flex;
flex-direction: column;
gap: 5px;
flex: 1;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources .character-ressource {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources .protagonist-resource {
display: flex;
align-items: center;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources .character-ressource .rollable:hover,
-.fvtt-cthulhu-eternal .character-main .character-ressources .character-ressource .rollable:focus {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources .protagonist-resource .rollable:hover,
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources .protagonist-resource .rollable:focus {
text-shadow: 0 0 8px var(--color-shadow-primary);
cursor: pointer;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources .character-ressource .form-group {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources .protagonist-resource .form-group {
flex: 1;
padding-left: 5px;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources .character-ressource .form-group .form-fields {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources .protagonist-resource .form-group .form-fields {
flex: none;
width: 70px;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources .character-ressource .character-ressource-edit {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources .protagonist-resource .protagonist-resource-edit {
display: flex;
align-items: center;
gap: 10px;
margin-left: 10px;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources .character-ressource .character-ressource-edit input {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources .protagonist-resource .protagonist-resource-edit input {
display: flex;
width: 70px;
font-size: calc(var(--font-size-standard) * 1.4);
@@ -329,95 +312,107 @@ i.lethalfantasy {
justify-content: center;
padding: 0 5px 0 5px;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources .character-ressource .character-ressource-edit input[type="number"] {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources .protagonist-resource .protagonist-resource-edit input[type="number"] {
text-align: center;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources .character-ressource .character-ressource-edit select {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources .protagonist-resource .protagonist-resource-edit select {
font-family: var(--font-secondary);
font-size: calc(var(--font-size-standard) * 1.5);
text-align: center;
width: 75px;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources-play {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources-play {
min-width: 235px;
}
-.fvtt-cthulhu-eternal .character-main .character-ressources-edit {
+.fvtt-cthulhu-eternal .protagonist-main .protagonist-resources-edit {
min-width: 400px;
}
-.fvtt-cthulhu-eternal .character-biography prose-mirror.inactive {
+.fvtt-cthulhu-eternal .protagonist-biography prose-mirror.inactive {
min-height: 40px;
}
-.fvtt-cthulhu-eternal .character-biography prose-mirror.active {
+.fvtt-cthulhu-eternal .protagonist-biography prose-mirror.active {
min-height: 150px;
}
-.fvtt-cthulhu-eternal .tab.character-items {
+.fvtt-cthulhu-eternal .tab.protagonist-skills {
display: grid;
grid-template-columns: 1fr;
}
-.fvtt-cthulhu-eternal .tab.character-items legend a {
+.fvtt-cthulhu-eternal .tab.protagonist-skills legend a {
font-size: calc(var(--font-size-standard) * 1.4);
padding-left: 5px;
}
-.fvtt-cthulhu-eternal .tab.character-items .talents {
+.fvtt-cthulhu-eternal .tab.protagonist-skills .skills {
display: grid;
- grid-template-columns: repeat(5, 1fr);
+ grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
-.fvtt-cthulhu-eternal .tab.character-items .talents .talent {
+.fvtt-cthulhu-eternal .tab.protagonist-skills .skills .skill {
display: flex;
align-items: center;
gap: 10px;
}
-.fvtt-cthulhu-eternal .tab.character-items .talents .talent .item-img {
+.fvtt-cthulhu-eternal .tab.protagonist-skills .skills .skill .item-img {
width: 50px;
height: 50px;
+ margin: 5px 0 0 0;
}
-.fvtt-cthulhu-eternal .tab.character-items .weapons {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment {
+ display: grid;
+ grid-template-columns: 1fr;
+}
+.fvtt-cthulhu-eternal .tab.protagonist-equipment legend a {
+ font-size: calc(var(--font-size-standard) * 1.4);
+ padding-left: 5px;
+}
+.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
}
-.fvtt-cthulhu-eternal .tab.character-items .weapons .weapon {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon {
display: flex;
align-items: center;
gap: 10px;
}
-.fvtt-cthulhu-eternal .tab.character-items .weapons .weapon .item-img {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment .weapons .weapon .item-img {
width: 50px;
height: 50px;
margin: 5px 0 0 0;
}
-.fvtt-cthulhu-eternal .tab.character-items .armors {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
-.fvtt-cthulhu-eternal .tab.character-items .armors .armor {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors .armor {
display: flex;
align-items: center;
gap: 10px;
}
-.fvtt-cthulhu-eternal .tab.character-items .armors .armor .item-img {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment .armors .armor .item-img {
width: 50px;
height: 50px;
margin: 5px 0 0 0;
}
-.fvtt-cthulhu-eternal .tab.character-items .spells {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
-.fvtt-cthulhu-eternal .tab.character-items .spells .spell {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears .gear {
display: flex;
+ align-items: center;
gap: 10px;
}
-.fvtt-cthulhu-eternal .tab.character-items .appris {
- font-weight: bold;
+.fvtt-cthulhu-eternal .tab.protagonist-equipment .gears .gear .item-img {
+ width: 50px;
+ height: 50px;
+ margin: 5px 0 0 0;
}
-.fvtt-cthulhu-eternal .tab.character-items prose-mirror.inactive {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment prose-mirror.inactive {
min-height: 40px;
}
-.fvtt-cthulhu-eternal .tab.character-items prose-mirror.active {
+.fvtt-cthulhu-eternal .tab.protagonist-equipment prose-mirror.active {
min-height: 150px;
}
.fvtt-cthulhu-eternal .skill-content {
@@ -1274,22 +1269,3 @@ input[name="selectAvantages"] {
font-size: calc(var(--font-size-standard) * 1.2);
text-shadow: 0 0 10px var(--color-shadow-primary);
}
-#lethalfantasy-application-manager {
- display: flex;
- font-family: var(--font-primary);
- font-size: calc(var(--font-size-standard) * 1);
- color: var(--color-dark-1);
- background-image: var(--background-image-base);
- background-repeat: no-repeat;
- background-size: 100% 100%;
-}
-#lethalfantasy-application-manager .lethalfantasy-table {
- margin: 1rem;
- background: none;
- padding: 0;
- margin: 0;
- text-align: center;
-}
-#lethalfantasy-application-manager .lethalfantasy-table .player {
- font-size: calc(var(--font-size-standard) * 1);
-}
diff --git a/cthulhu-eternal.mjs b/cthulhu-eternal.mjs
index c96e996..011fdb3 100644
--- a/cthulhu-eternal.mjs
+++ b/cthulhu-eternal.mjs
@@ -33,7 +33,7 @@ Hooks.once("init", function () {
CONFIG.Actor.documentClass = documents.CthulhuEternalActor
CONFIG.Actor.dataModels = {
- character: models.CthulhuEternalProtagonist
+ protagonist: models.CthulhuEternalProtagonist
}
CONFIG.Item.documentClass = documents.CthulhuEternalItem
diff --git a/fonts/catfranken-deutsch.ttf b/fonts/catfranken-deutsch.ttf
deleted file mode 100644
index 05937f5..0000000
Binary files a/fonts/catfranken-deutsch.ttf and /dev/null differ
diff --git a/lang/en.json b/lang/en.json
index 0ab8168..2e95382 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -7,12 +7,12 @@
"skill": "Skill",
"weapon": "Weapon",
"armor": "Armor",
- "injuty": "Spell",
- "gift": "Gift",
- "vulnerability": "Vulnerability",
- "save": "Save",
- "equipment": "Equipment" ,
- "shield": "Shield"
+ "injury": "Injury",
+ "gear": "Gear",
+ "motivation": "Motivation",
+ "mentaldisorder": "MentalDisorder",
+ "bond": "Bond" ,
+ "arcane": "Arcane"
}
},
"CTHULHUETERNAL": {
@@ -90,7 +90,17 @@
"Weapon": {
"WeaponType": {
"melee": "Melee",
- "ranged": "Ranged"
+ "rangedprimitive": "Ranged Primitive",
+ "rangedthrown": "Ranged Thrown",
+ "rangedfirearm": "Ranged Firearm",
+ "unarmed": "Unarmed"
+ },
+ "WeaponSubtype": {
+ "basicfirearm": "Basic Firearm",
+ "pistol": "Pistol",
+ "shotgun": "Shotgun",
+ "submachinegun": "Submachinegun",
+ "riflecarabine": "Rifle/Carabine"
},
"FIELDS": {
"settings": {
@@ -99,6 +109,9 @@
"weaponType": {
"label": "Type"
},
+ "weaponSubtype": {
+ "label": "Firearm Subtype"
+ },
"damage": {
"label": "Damage"
},
@@ -119,6 +132,9 @@
},
"resourceLevel": {
"label": "Resource level"
+ },
+ "armorPiercing": {
+ "label": "Armor piercing"
}
}
},
@@ -177,113 +193,40 @@
"community": "Community"
},
"Label": {
+ "protagonist": "Protagonist",
+ "characteristics": "Characteristics",
"description": "Description",
"total": "Total",
- "langues": "Langues",
- "profil": "Profil",
- "details": "Détails",
- "talents": "Talents",
- "progressionPossible": "Progression possible",
- "equipement": "Equipement",
- "spells" : "Sortilèges",
- "level": "Niveau",
- "degats": "Dégâts",
- "ressource": "Ressource",
- "sauvegarde": "Sauvegarde",
- "newArmor": "Nouvelle armure",
- "newWeapon": "Nouvelle arme",
- "armor": "Armure",
+ "skills": "Skills",
+ "gear": "Gear",
+ "damage": "Damage",
+ "resource": "Resource",
+ "newArmor": "New Armor",
+ "newWeapon": "New Weapon",
+ "armor": "Armor",
"malus": "Malus",
- "jet": "Jet de ",
- "progress": "Progression",
- "hasProgressed": "A progressé dans la caractéristique",
- "noProgress": "N'a pas progressé dans la caractéristique",
- "experience": "Expérience",
- "experienceDetail": "Expérience {detail}",
- "maximum": "Maximum"
- },
- "Edit": "Editer",
- "Delete": "Supprimer",
- "ToggleSheet": "Changer de mode",
- "Warning": {
- "dejaDeuxVoies": "Vous avez déjà choisi deux voies",
- "dejaVoieMajeure": "Vous avez déjà choisi cette voie comme voie majeure",
- "voieMajeureAjoutee": "Voie majeure ajoutée",
- "voieMineureAjoutee": "Voie mineure ajoutée",
- "voieMajeureSupprimee": "Voie majeure supprimée",
- "voieMineureSupprimee": "Voie mineure supprimée",
- "plusDeRessource": "Vous n'avez plus de ressource {ressource}"
+ "experience": "Experience",
+ "maximum": "Maximum",
+ "equipment": "Equipment",
+ "biography": "Biography"
},
+ "Edit": "Edit",
+ "Delete": "Delete",
+ "ToggleSheet": "Toggle Sheet",
+ "Warning": { },
"Dialog": {
- "ajoutVoieMajeure": "Ajouter une voie majeure va automatiquement remplacer les caractéristiques, les ressources, les langues et les biens. Continuer ?",
- "ajoutVoieMajeureTitre": "Ajout d'une voie majeure",
- "ajoutVoieMineureTitre": "Ajout d'une voie mineure",
- "suppressionTalents": "Supprimer cette voie va supprimer les talents associés. Continuer ?",
- "talentDansVoie": "Ce talent est présent dans la voie {path}. Voulez-vous vraiment le supprimer ?",
- "titleSave": "Jet de sauvegarde",
- "titleResource": "Jet de ressource",
- "titleDamage": "Jet de dégâts",
- "titleAttack": "Jet d'attaque",
- "titleStandard": "Jet standard"
},
"Roll": {
- "save": "Jet de sauvegarde
{save}",
"resource": "Jet de ressource
{resource}",
"damage": "Jet de dégâts
{item}",
"attack": "Jet d'attaque
{item}",
- "roll": "Lancer",
- "aide": "Aider",
- "gene": "Gêner",
- "adversite": "Adversité",
- "avantagesDesavantages": "Avantages et désavantages",
- "normal": "Normal",
- "avantage": "Avec avantage",
- "desavantage": "Avec désavantage",
- "doubleAvantage": "Avec double avantage",
- "doubleDesavantage": "Avec double désavantage",
- "visibilite": "Visibilité du lancer",
- "success": "Réussite",
- "failure": "Echec",
- "resourceLost": "Ressource perdue",
- "displayArmor": "{targetName} a une armure de {targetArmor}.
Dégâts réels : {realDamage}"
+ "roll": "Lancer"
},
"Tooltip": {
- "learnedTalents": "Les talents appris sont en gras",
- "saveIntroTextTooltip": "Caractéristique : {value}
Aide : {aide}
Gêne : {gene}
Modificateur : {modificateur}",
- "addAttack": "Ajouter une attaque",
- "addEquipment": "Ajouter une arme, Shift + Click pour ajouter une armure",
- "addSpell": "Ajouter un sortilège"
},
"Setting": {
- "displayOpponentMalus": "Afficher le malus d'adversité",
- "displayOpponentMalusHint": "Affiche le malus d'adversité pour les joueurs.",
- "fortune": "Roue de Fortune",
- "fortuneHint": "Valeur de la roue de Fortune. Nombre de joueurs + 1 en début de partie."
},
"Chat": {
- "askFortune": "{name} veut utiliser un point de Fortune !",
- "askRollForAll": "Jet de {value}",
- "askRollForOne": "Jet de {value} pour {name}"
- },
- "Fortune": {
- "title": "Roue de Fortune"
- },
- "Manager": {
- "title": "Gestionnaire de Personnages",
- "player": "Utilisateur",
- "character": "Personnage",
- "rob": "Robustesse",
- "dex": "Dextérité",
- "int": "Intelligence",
- "per": "Perception",
- "vol": "Volonté",
- "pv": "Points de Vie",
- "san": "Santé Mentale",
- "oeil": "Œil",
- "verbe": "Verbe",
- "bourse": "Bourse",
- "magie": "Magie",
- "roll": "Faire le jet"
}
}
}
diff --git a/module/applications/sheets/base-actor-sheet.mjs b/module/applications/sheets/base-actor-sheet.mjs
index f29cde4..15b272a 100644
--- a/module/applications/sheets/base-actor-sheet.mjs
+++ b/module/applications/sheets/base-actor-sheet.mjs
@@ -32,8 +32,7 @@ export default class CthulhuEternalActorSheet extends HandlebarsApplicationMixin
editImage: CthulhuEternalActorSheet.#onEditImage,
toggleSheet: CthulhuEternalActorSheet.#onToggleSheet,
edit: CthulhuEternalActorSheet.#onItemEdit,
- delete: CthulhuEternalActorSheet.#onItemDelete,
- createSpell: CthulhuEternalActorSheet.#onCreateSpell,
+ delete: CthulhuEternalActorSheet.#onItemDelete
},
}
@@ -109,7 +108,9 @@ export default class CthulhuEternalActorSheet extends HandlebarsApplicationMixin
* @param {DragEvent} event The originating DragEvent
* @protected
*/
- async _onDrop(event) {}
+ async _onDrop(event) {
+ }
+
/**
* Define whether a user is able to begin a dragstart workflow for a given drag selector
@@ -128,7 +129,7 @@ export default class CthulhuEternalActorSheet extends HandlebarsApplicationMixin
* @protected
*/
_canDragDrop(selector) {
- return this.isEditable && this.document.isOwner
+ return true //this.isEditable && this.document.isOwner
}
/**
@@ -203,6 +204,7 @@ export default class CthulhuEternalActorSheet extends HandlebarsApplicationMixin
_onDragOver(event) {}
async _onDropItem(item) {
+ console.log("Dropped item", item)
let itemData = item.toObject()
await this.document.createEmbeddedDocuments("Item", [itemData], { renderSheet: false })
}
@@ -272,20 +274,8 @@ export default class CthulhuEternalActorSheet extends HandlebarsApplicationMixin
*/
static async #onItemDelete(event, target) {
const itemUuid = target.getAttribute("data-item-uuid")
- const talent = await fromUuid(itemUuid)
- await talent.deleteDialog()
- }
-
- /**
- * Handles the creation of a new attack item.
- *
- * @param {Event} event The event that triggered the creation of the attack.
- * @param {Object} target The target object where the attack will be created.
- * @private
- * @static
- */
- static #onCreateSpell(event, target) {
- const item = this.document.createEmbeddedDocuments("Item", [{ name: "Nouveau sortilège", type: "spell" }])
+ const item = await fromUuid(itemUuid)
+ await item.deleteDialog()
}
// #endregion
diff --git a/module/applications/sheets/protagonist-sheet.mjs b/module/applications/sheets/protagonist-sheet.mjs
index adf62c2..7d79dcd 100644
--- a/module/applications/sheets/protagonist-sheet.mjs
+++ b/module/applications/sheets/protagonist-sheet.mjs
@@ -19,22 +19,25 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
/** @override */
static PARTS = {
main: {
- template: "systems/fvtt-cthulhu-eternal/templates/character-main.hbs",
+ template: "systems/fvtt-cthulhu-eternal/templates/protagonist-main.hbs",
},
tabs: {
- template: "systems/fvtt-cthulhu-eternal/templates/generic/tab-navigation.hbs",
+ template: "templates/generic/tab-navigation.hbs",
},
- items: {
- template: "systems/fvtt-cthulhu-eternal/templates/character-items.hbs",
+ skills: {
+ template: "systems/fvtt-cthulhu-eternal/templates/protagonist-skills.hbs",
+ },
+ equipment: {
+ template: "systems/fvtt-cthulhu-eternal/templates/protagonist-equipment.hbs",
},
biography: {
- template: "systems/fvtt-cthulhu-eternal/templates/character-biography.hbs",
+ template: "systems/fvtt-cthulhu-eternal/templates/protagonist-biography.hbs",
},
}
/** @override */
tabGroups = {
- sheet: "items",
+ sheet: "skills",
}
/**
@@ -43,8 +46,9 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
*/
#getTabs() {
const tabs = {
- items: { id: "items", group: "sheet", icon: "fa-solid fa-shapes", label: "CTHULHUETERNAL.Character.Label.details" },
- biography: { id: "biography", group: "sheet", icon: "fa-solid fa-book", label: "CTHULHUETERNAL.Character.Label.biography" },
+ skills: { id: "skills", group: "sheet", icon: "fa-solid fa-shapes", label: "CTHULHUETERNAL.Label.skills" },
+ 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" },
}
for (const v of Object.values(tabs)) {
v.active = this.tabGroups[v.group] === v.id
@@ -58,13 +62,25 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
const context = await super._prepareContext()
context.tabs = this.#getTabs()
- context.tooltipsCaracteristiques = {
+ context.tooltipsCharacteristic = {
+ str: game.i18n.localize("CTHULHUETERNAL.Characteristic.Str"),
+ dex: game.i18n.localize("CTHULHUETERNAL.Characteristic.Dex"),
+ con: game.i18n.localize("CTHULHUETERNAL.Characteristic.Con"),
+ int: game.i18n.localize("CTHULHUETERNAL.Characteristic.Int"),
+ pow: game.i18n.localize("CTHULHUETERNAL.Characteristic.Pow"),
+ cha: game.i18n.localize("CTHULHUETERNAL.Characteristic.Cha")
}
context.tooltipsRessources = {
}
context.rollType = {
+ str: "characteristic",
+ dex: "characteristic",
+ con: "characteristic",
+ int: "characteristic",
+ pow: "characteristic",
+ cha: "characteristic"
}
return context
}
@@ -77,14 +93,16 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
const doc = this.document
switch (partId) {
case "main":
- context.enrichedBiens = await TextEditor.enrichHTML(doc.system.biens, { async: true })
break
- case "items":
- context.tab = context.tabs.items
+ case "skills":
+ context.tab = context.tabs.skills
+ context.skills = doc.itemTypes.skill
+ break
+ case "equipment":
+ context.tab = context.tabs.equipment
context.weapons = doc.itemTypes.weapon
context.armors = doc.itemTypes.armor
- context.spells = doc.itemTypes.spell
- context.hasSpells = context.spells.length > 0
+ context.gears = doc.itemTypes.gear
break
case "biography":
context.tab = context.tabs.biography
@@ -95,34 +113,6 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
return context
}
- // #region Drag-and-Drop Workflow
-
- /**
- * Callback actions which occur when a dragged element is dropped on a target.
- * @param {DragEvent} event The originating DragEvent
- * @protected
- */
- async _onDrop(event) {
- if (!this.isEditable || !this.isEditMode) return
- const data = TextEditor.getDragEventData(event)
-
- // Handle different data types
- switch (data.type) {
- case "Item":
- const item = await fromUuid(data.uuid)
- if (!["path", "weapon", "armor", "spell"].includes(item.type)) return
- if (item.type === "path") return this.#onDropPathItem(item)
- if (item.type === "weapon") return super._onDropItem(item)
- if (item.type === "armor") return this._onDropItem(item)
- if (item.type === "spell") return this._onDropItem(item)
- }
- }
-
- async #onDropPathItem(item) {
- await this.document.addPath(item)
- }
-
-
/**
* Creates a new attack item directly from the sheet and embeds it into the document.
* @param {Event} event The initiating click event.
@@ -169,5 +159,18 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
}
await this.document.system.roll(rollType, rollTarget)
}
+
+ async _onDrop(event) {
+ if (!this.isEditable || !this.isEditMode) return
+ const data = TextEditor.getDragEventData(event)
+
+ // Handle different data types
+ switch (data.type) {
+ case "Item":
+ const item = await fromUuid(data.uuid)
+ return super._onDropItem(item)
+ }
+ }
+
// #endregion
}
diff --git a/module/config/system.mjs b/module/config/system.mjs
index ec09f43..3d55653 100644
--- a/module/config/system.mjs
+++ b/module/config/system.mjs
@@ -39,6 +39,7 @@ export const SYSTEM = {
id: SYSTEM_ID,
CHARACTERISTICS: PROTAGONIST.CHARACTERISTICS,
WEAPON_TYPE: WEAPON.WEAPON_TYPE,
+ WEAPON_SUBTYPE: WEAPON.WEAPON_SUBTYPE,
BOND_TYPE: BOND.BOND_TYPE,
AVAILABLE_SETTINGS,
ASCII
diff --git a/module/config/weapon.mjs b/module/config/weapon.mjs
index d910a07..4f6cd87 100644
--- a/module/config/weapon.mjs
+++ b/module/config/weapon.mjs
@@ -1,6 +1,17 @@
export const WEAPON_TYPE = {
"melee": "CTHULHUETERNAL.Weapon.WeaponType.melee",
- "ranged": "CTHULHUETERNAL.Weapon.WeaponType.ranged"
+ "rangedprimitive": "CTHULHUETERNAL.Weapon.WeaponType.rangedprimitive",
+ "rangedthrown": "CTHULHUETERNAL.Weapon.WeaponType.rangedthrown",
+ "rangedfirearm": "CTHULHUETERNAL.Weapon.WeaponType.rangedfirearm",
+ "unarmed": "CTHULHUETERNAL.Weapon.WeaponType.unarmed"
+}
+
+export const WEAPON_SUBTYPE = {
+ "basicfirearm": "CTHULHUETERNAL.Weapon.WeaponSubtype.basicfirearm",
+ "pistol": "CTHULHUETERNAL.Weapon.WeaponSubtype.pistol",
+ "shotgun": "CTHULHUETERNAL.Weapon.WeaponSubtype.shotgun",
+ "submachinegun": "CTHULHUETERNAL.Weapon.WeaponSubtype.submachinegun",
+ "riflecarabine": "CTHULHUETERNAL.Weapon.WeaponSubtype.riflecarabine",
}
export const WEAPON_RANGE_UNIT = {
diff --git a/module/models/gear.mjs b/module/models/gear.mjs
index 536f441..fe2541c 100644
--- a/module/models/gear.mjs
+++ b/module/models/gear.mjs
@@ -1,6 +1,6 @@
import { SYSTEM } from "../config/system.mjs"
-export default class CthulhuEternalEquipment extends foundry.abstract.TypeDataModel {
+export default class CthulhuEternalGHear extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields
const schema = {}
@@ -14,6 +14,6 @@ export default class CthulhuEternalEquipment extends foundry.abstract.TypeDataMo
}
/** @override */
- static LOCALIZATION_PREFIXES = ["CTHULHUETERNAL.Equipment"]
+ static LOCALIZATION_PREFIXES = ["CTHULHUETERNAL.Gear"]
}
diff --git a/module/models/protagonist.mjs b/module/models/protagonist.mjs
index fcf4a73..50de78f 100644
--- a/module/models/protagonist.mjs
+++ b/module/models/protagonist.mjs
@@ -35,6 +35,7 @@ export default class CthulhuEternalProtagonist extends foundry.abstract.TypeData
schema.hp = new fields.SchemaField({
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
max: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
+ stunned: new fields.BooleanField({ required: true, initial: false })
})
schema.san = new fields.SchemaField({
diff --git a/module/models/skill.mjs b/module/models/skill.mjs
index 3bcf004..124cb1c 100644
--- a/module/models/skill.mjs
+++ b/module/models/skill.mjs
@@ -27,39 +27,21 @@ export default class LethalFantasySkill extends foundry.abstract.TypeDataModel {
computeBase() {
let actor = this.parent?.actor;
+ if (Number(this.base)) {
+ return Number(this.base) + this.bonus;
+ }
if (!actor) {
- return `${this.base } + ${ String(this.bonus)}`;
+ return `${this.base} + ${ String(this.bonus)}`;
}
// Split the base value per stat : WIS,DEX,STR,INT,CHA (example)
- const base = this.base;
- let baseSplit = base.split(",");
- let baseSplitLength = baseSplit.length;
- if ( baseSplitLength > 0) {
- // Select the max stat value from the parent actor
- let maxStat = 0;
- for (let i = 0; i < baseSplitLength; i++) {
- const stat = baseSplit[i];
- const statValue = actor.system.characteristics[stat.toLowerCase()]?.value || 0;
- if (statValue > maxStat) {
- maxStat = statValue;
- }
- }
- return maxStat;
- } else {
- // Split with + calculate the total
- baseSplit = base.split("+");
- baseSplitLength = baseSplit.length;
- if ( baseSplitLength > 0) {
- let total = 0;
- for (let i = 0; i < baseSplitLength; i++) {
- const stat = baseSplit[i];
- const statValue = actor.system.characteristics[stat.toLowerCase()]?.value || 0;
- total += statValue;
- }
- return total
- }
+ let base = this.base.toLowerCase();
+ let char = actor.system.characteristics[base];
+ if (!char) {
+ ui.notifications.error(`The characteristic ${base} is wrong for actor ${actor.name}`);
+ return `${this.base } + ${ String(this.bonus)}`;
}
- return `${this.base } + ${ String(this.bonus)}`;
+ let charValue = char.value;
+ return charValue + this.bonus
}
}
diff --git a/module/models/weapon.mjs b/module/models/weapon.mjs
index d935d94..925bca4 100644
--- a/module/models/weapon.mjs
+++ b/module/models/weapon.mjs
@@ -15,6 +15,8 @@ export default class LethalFantasySkill extends foundry.abstract.TypeDataModel {
schema.rangeUnit = new fields.StringField({ required: true, initial: "yard", choices: SYSTEM.WEAPON_RANGE_UNIT })
schema.lethality = new fields.NumberField({ required: true, initial: 0, min: 0 })
schema.killRadius = new fields.NumberField({ required: true, initial: 0, min: 0 })
+ schema.armorPiercing = new fields.NumberField({ required: true, initial: 0, min: 0 })
+ schema.weaponSubtype = new fields.StringField({ required: true, initial: "basicfirearm", choices: SYSTEM.WEAPON_SUBTYPE })
schema.resourceLevel = new fields.NumberField({ required: true, initial: 0, min: 0 })
diff --git a/styles/application-manager.less b/styles/application-manager.less
deleted file mode 100644
index 2a23875..0000000
--- a/styles/application-manager.less
+++ /dev/null
@@ -1,21 +0,0 @@
-#lethalfantasy-application-manager {
- display: flex;
-
- font-family: var(--font-primary);
- font-size: calc(var(--font-size-standard) * 1);
- color: var(--color-dark-1);
- background-image: var(--background-image-base);
- background-repeat: no-repeat;
- background-size: 100% 100%;
-
- .lethalfantasy-table {
- margin: 1rem;
- background: none;
- padding: 0;
- margin: 0;
- text-align: center;
- .player {
- font-size: calc(var(--font-size-standard) * 1);
- }
- }
-}
diff --git a/styles/fonts.less b/styles/fonts.less
index f107ab0..cd35c40 100644
--- a/styles/fonts.less
+++ b/styles/fonts.less
@@ -1,6 +1,6 @@
@font-face {
- font-family: "Cat Franken";
- src: url("../fonts/catfranken-deutsch.ttf") format("truetype");
+ font-family: "Georama";
+ src: url("../assets/fonts/georama.woff2") format("woff2");
}
@font-face {
diff --git a/styles/fvtt-cthulhu-eternal.less b/styles/fvtt-cthulhu-eternal.less
index 3ff7ad1..9ec96a3 100644
--- a/styles/fvtt-cthulhu-eternal.less
+++ b/styles/fvtt-cthulhu-eternal.less
@@ -2,7 +2,7 @@
.fvtt-cthulhu-eternal {
@import "mixins.less";
- @import "character.less";
+ @import "protagonist.less";
@import "skill.less";
@import "injury.less";
@import "weapon.less";
@@ -16,4 +16,3 @@
}
@import "roll.less";
-@import "application-manager.less";
diff --git a/styles/global.less b/styles/global.less
index ac46270..8140c62 100644
--- a/styles/global.less
+++ b/styles/global.less
@@ -1,7 +1,8 @@
:root {
--font-size-standard: 1.0rem;
--background-image-base: url("../assets/parchment.jpg");
- --font-secondary: "Amiri", serif;
+ --font-primary: "Georama";
+ --font-secondary: "Georama";
--logo-standard: url("../assets/logos/reanimated-ce-logo.webp");
}
diff --git a/styles/mixins.less b/styles/mixins.less
index c9d4ed1..00758e9 100644
--- a/styles/mixins.less
+++ b/styles/mixins.less
@@ -54,7 +54,7 @@
}
}
-.character-sheet-common {
+.protagonist-sheet-common {
label {
font-family: var(--font-secondary);
font-size: calc(var(--font-size-standard) * 1.2);
diff --git a/styles/character.less b/styles/protagonist.less
similarity index 80%
rename from styles/character.less
rename to styles/protagonist.less
index 99e4864..bae1a1d 100644
--- a/styles/character.less
+++ b/styles/protagonist.less
@@ -1,41 +1,41 @@
-.character-content {
+.protagonist-content {
.sheet-common();
- .character-sheet-common();
+ .protagonist-sheet-common();
overflow: scroll;
}
-.character-main {
+.protagonist-main {
display: flex;
- .character-personnage {
+ .protagonist-pc {
display: flex;
gap: 10px;
flex: 1;
- .character-gauche {
+ .protagonist-left {
min-width: 180px;
display: flex;
flex-direction: column;
- .character-gauche-image {
+ .protagonist-left-image {
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
- .character-img {
+ .protagonist-img {
height: 140px;
width: auto;
border: none;
}
}
- .character-dv,
- .character-dmax {
+ .protagonist-dv,
+ .protagonist-dmax {
.form-fields {
flex: none;
}
}
- .character-dmax-edit {
+ .protagonist-dmax-edit {
input {
display: flex;
width: 60px;
@@ -48,19 +48,19 @@
}
}
- .character-droite {
+ .protagonist-right {
display: flex;
flex-direction: column;
gap: 5px;
- .character-name {
+ .protagonist-name {
display: flex;
input {
width: 400px;
}
}
- .character-infos {
+ .protagonist-infos {
display: flex;
flex-direction: column;
gap: 10px;
@@ -69,29 +69,11 @@
min-width: 120px;
}
- .character-voie-majeure,
- .character-voie-mineure {
- display: flex;
- input {
- width: 280px;
- }
- .controls {
- padding-left: 5px;
- }
- }
-
- .character-commanditaire {
- display: flex;
- input {
- width: 280px;
- }
- }
-
- .character-pv {
+ .protagonist-hp {
display: flex;
gap: 2px;
align-items: center;
- .character-pv-value {
+ .protagonist-hp-value {
.form-fields input {
flex: none;
width: 50px;
@@ -99,7 +81,7 @@
font-size: calc(var(--font-size-standard) * 1.4);
}
}
- .character-pv-max {
+ .protagonist-hp-max {
clear: both;
display: flex;
flex-direction: row;
@@ -112,7 +94,7 @@
font-size: calc(var(--font-size-standard) * 1.4);
}
}
- .pv-separator {
+ .hp-separator {
font-size: calc(var(--font-size-standard) * 1.2);
display: flex;
align-items: center;
@@ -123,21 +105,21 @@
}
}
- .character-personnage-play {
+ .protagonist-pc-play {
min-width: 500px;
}
- .character-personnage-edit {
+ .protagonist-pc-edit {
min-width: 650px;
}
- .character-caracteristiques {
+ .protagonist-characteristics {
display: flex;
flex-direction: column;
gap: 5px;
flex: 1;
- .character-caracteristique {
+ .protagonist-characteristic {
display: flex;
align-items: center;
.rollable:hover,
@@ -182,21 +164,21 @@
}
}
- .character-caracteristiques-play {
+ .protagonist-characteristic-play {
min-width: 225px;
}
- .character-caracteristiques-edit {
+ .protagonist-characteristic-edit {
min-width: 400px;
}
- .character-ressources {
+ .protagonist-resources {
display: flex;
flex-direction: column;
gap: 5px;
flex: 1;
- .character-ressource {
+ .protagonist-resource {
display: flex;
align-items: center;
.rollable:hover,
@@ -213,7 +195,7 @@
width: 70px;
}
}
- .character-ressource-edit {
+ .protagonist-resource-edit {
display: flex;
align-items: center;
gap: 10px;
@@ -239,16 +221,16 @@
}
}
- .character-ressources-play {
+ .protagonist-resources-play {
min-width: 235px;
}
- .character-ressources-edit {
+ .protagonist-resources-edit {
min-width: 400px;
}
}
-.character-biography {
+.protagonist-biography {
prose-mirror.inactive {
min-height: 40px;
}
@@ -257,7 +239,7 @@
}
}
-.tab.character-items {
+.tab.protagonist-skills {
display: grid;
grid-template-columns: 1fr;
legend {
@@ -266,20 +248,32 @@
padding-left: 5px;
}
}
- .talents {
+ .skills {
display: grid;
- grid-template-columns: repeat(5, 1fr);
+ grid-template-columns: repeat(3, 1fr);
gap: 10px;
- .talent {
+ .skill {
display: flex;
align-items: center;
gap: 10px;
.item-img {
width: 50px;
height: 50px;
+ margin: 5px 0 0 0;
}
}
}
+}
+
+.tab.protagonist-equipment {
+ display: grid;
+ grid-template-columns: 1fr;
+ legend {
+ a {
+ font-size: calc(var(--font-size-standard) * 1.4);
+ padding-left: 5px;
+ }
+ }
.weapons {
display: grid;
grid-template-columns: repeat(4, 1fr);
@@ -310,19 +304,22 @@
}
}
}
- .spells {
+ .gears {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
- .spell {
+ .gear {
display: flex;
+ align-items: center;
gap: 10px;
+ .item-img {
+ width: 50px;
+ height: 50px;
+ margin: 5px 0 0 0;
+ }
}
}
- .appris {
- font-weight: bold;
- }
prose-mirror.inactive {
min-height: 40px;
}
diff --git a/templates/character-biography.hbs b/templates/character-biography.hbs
deleted file mode 100644
index 42fc382..0000000
--- a/templates/character-biography.hbs
+++ /dev/null
@@ -1,14 +0,0 @@
-