Update sheets and fix basic bugs

This commit is contained in:
LeRatierBretonnien 2024-12-04 15:16:33 +01:00
parent 1cc3a0bc21
commit eaba806fec
33 changed files with 453 additions and 696 deletions

View File

@ -0,0 +1 @@
,morr,arioch,04.12.2024 14:13,file:///home/morr/.config/libreoffice/4;

Binary file not shown.

BIN
assets/fonts/georama.woff2 Normal file

Binary file not shown.

View File

@ -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);
}

View File

@ -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

Binary file not shown.

View File

@ -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 <br> {save}",
"resource": "Jet de ressource <br> {resource}",
"damage": "Jet de dégâts <br> {item}",
"attack": "Jet d'attaque <br> {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}. <br>Dégâts réels : {realDamage}"
"roll": "Lancer"
},
"Tooltip": {
"learnedTalents": "Les talents appris sont en gras",
"saveIntroTextTooltip": "Caractéristique : {value} <br> Aide : {aide} <br> Gêne : {gene} <br> 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"
}
}
}

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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 = {

View File

@ -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"]
}

View File

@ -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({

View File

@ -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
}
}

View File

@ -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 })

View File

@ -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);
}
}
}

View File

@ -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 {

View File

@ -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";

View File

@ -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");
}

View File

@ -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);

View File

@ -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;
}

View File

@ -1,14 +0,0 @@
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
<fieldset>
<legend>{{localize "TENEBRIS.Character.Label.description"}}</legend>
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
</fieldset>
<fieldset>
<legend>{{localize "TENEBRIS.Character.Label.langues"}}</legend>
{{formInput systemFields.langues enriched=enrichedLangues value=system.langues name="system.langues" toggled=true}}
</fieldset>
<fieldset>
<legend>{{localize "TENEBRIS.Character.Label.notes"}}</legend>
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
</fieldset>
</section>

View File

@ -1,103 +0,0 @@
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
<fieldset>
<legend data-tooltip="{{localize "TENEBRIS.Tooltip.learnedTalents"}}" data-tooltip-direction="UP">{{localize "TENEBRIS.Label.talents"}}</legend>
<div class="talents">
{{#if @root.isEditMode}}
{{#each talents as |item|}}
{{!log "path-talent" this}}
<div class="talent {{#if item.appris}}appris{{/if}}" 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.description}}}<br><br>{{item.path}}" data-tooltip-direction="UP">{{item.name}}
{{#if item.progression}}<span data-tooltip="{{localize 'TENEBRIS.Label.progressionPossible'}}"> (P)</span>{{/if}}
{{#if (and item.progression (gt item.niveau 1))}}{{localize 'TENEBRIS.Label.level'}} {{item.niveau}}{{/if}}
</div>
<div class="controls">
<a data-tooltip="{{localize 'TENEBRIS.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 'TENEBRIS.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
</div>
</div>
{{/each}}
{{else}}
{{#each talentsAppris as |item|}}
{{!log "path-talent appris" this}}
<div class="talent" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-tooltip="{{{item.description}}}<br><br>{{item.path}}">
{{#if (ne item.img "icons/svg/item-bag.svg")}}
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
{{/if}}
{{item.name}} {{item.details}}
</div>
{{/each}}
{{/if}}
</div>
</fieldset>
<fieldset>
<legend>{{localize "TENEBRIS.Label.equipement"}}{{#if isEditMode}}<a class="action" data-tooltip="{{localize "TENEBRIS.Tooltip.addEquipment"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createEquipment"></i></a>{{/if}}</legend>
<div class="weapons">
{{#each weapons as |item|}}
{{!log 'weapon' this}}
<div class="weapon" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true" data-drag-type="damage">
{{#if (ne item.img "icons/svg/item-bag.svg")}}
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
{{/if}}
<div class="name" data-tooltip="{{{item.system.description}}}">
{{item.name}}
</div>
<a {{#if (ne item.system.degats "1")}}class="rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage" data-roll-value="{{item.system.degats}}"{{/if}}>{{localize "TENEBRIS.Label.degats"}} : {{item.system.degats}}</a>
{{#if @root.isEditMode}}
<div class="controls">
<a data-tooltip="{{localize 'TENEBRIS.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 'TENEBRIS.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</div>
{{/each}}
</div>
<div class="armors">
{{#each armors as |item|}}
{{!log 'armor' this}}
<div class="armor" 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>
{{localize "TENEBRIS.Label.armor"}} : {{item.system.valeur}} {{localize "TENEBRIS.Label.malus"}} : {{item.system.malus}}
{{#if @root.isEditMode}}
<div class="controls">
<a data-tooltip="{{localize 'TENEBRIS.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 'TENEBRIS.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</div>
{{/each}}
</div>
</fieldset>
<fieldset>
<legend>{{localize "TENEBRIS.Label.biens"}}</legend>
{{formInput systemFields.biens enriched=enrichedBiens value=system.biens name="system.biens" toggled=true }}
</fieldset>
{{#if (or isEditMode (and isPlayMode hasSpells))}}
<fieldset>
<legend>{{localize "TENEBRIS.Label.spells"}}{{#if isEditMode}}<a class="action" data-tooltip="{{localize "TENEBRIS.Tooltip.addSpell"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createSpell"></i></a>{{/if}}</legend>
<div class="spells">
{{#each spells as |item|}}
{{!log 'weapon' this}}
<div class="spell" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true" data-drag-type="spell">
<div class="name" data-tooltip="{{{item.system.description}}}">
{{item.name}}
</div>
{{#if @root.isEditMode}}
<div class="controls">
<a data-tooltip="{{localize 'TENEBRIS.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 'TENEBRIS.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</div>
{{/each}}
</div>
</fieldset>
{{/if}}
</section>

View File

@ -1,187 +0,0 @@
<section class="character-main character-main-{{ifThen isPlayMode 'play' 'edit'}}">
{{!log "character-main" this}}
<fieldset>
<legend>{{localize "TENEBRIS.Character.Label.personnage"}}</legend>
<div class="character-personnage character-personnage-{{ifThen isPlayMode 'play' 'edit'}}">
<div class="character-gauche">
<div class="character-gauche-image">
<img class="character-img" src="{{actor.img}}" data-edit="img" data-action="editImage" data-tooltip="{{actor.name}}" />
</div>
<div class="character-dv">
{{formField systemFields.dv value=system.dv rootId=partId disabled=isPlayMode classes="character-dv"}}
</div>
<div class="character-dmax" data-tooltip="{{tooltipsCaracteristiques.dmax}}">
{{formField systemFields.dmax.fields.valeur value=system.dmax.valeur rootId=partId disabled=isPlayMode classes="character-dmax"}}
{{#if isEditMode}}
<div class="character-dmax-edit">
<div data-tooltip="{{localize "TENEBRIS.Label.experienceDetail" detail='Dégâts max'}}">{{formInput systemFields.dmax.fields.experience value=system.dmax.experience}}</div>
</div>
{{/if}}
</div>
</div>
<div class="character-droite">
<div class="character-name">
{{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}}
<a class="control" data-action="toggleSheet" data-tooltip="TENEBRIS.ToggleSheet" data-tooltip-direction="UP">
<i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
</a>
</div>
<div class="character-infos">
{{#if isEditMode}}
<div class="character-voie-majeure">
{{formField systemFields.voies.fields.majeure.fields.nom value=system.voies.majeure.nom rootId=partId disabled=true}}
{{#if system.hasVoieMajeure}}
<div class="controls">
<a class="control" data-action="edit" data-item-id="{{actor.system.voies.majeure.id}}" data-tooltip="{{localize 'TENEBRIS.Edit'}}"><i class="fas fa-edit"></i></a>
{{#if (not system.hasVoieMineure)}}
<a class="control" data-action="deleteVoieMajeure" data-tooltip="{{localize 'TENEBRIS.Delete'}}"><i class="fas fa-trash"></i></a>
{{/if}}
</div>
{{/if}}
</div>
<div class="character-voie-mineure">
{{formField systemFields.voies.fields.mineure.fields.nom value=system.voies.mineure.nom rootId=partId disabled=true}}
{{#if system.hasVoieMineure}}
<div class="controls">
<a class="control" data-action="edit" data-item-id="{{actor.system.voies.majeure.id}}" data-tooltip="{{localize 'TENEBRIS.Edit'}}"><i class="fas fa-edit"></i></a>
<a class="control" data-action="deleteVoieMineure" data-tooltip="{{localize 'TENEBRIS.Delete'}}"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</div>
{{else}}
<div class="character-voie-majeure">
{{formField systemFields.voies.fields.majeure.fields.nom value=system.voies.majeure.nom rootId=partId disabled=true}}
</div>
{{#if system.hasVoieMineure}}
<div class="character-voie-mineure">
{{formField systemFields.voies.fields.mineure.fields.nom value=system.voies.mineure.nom rootId=partId disabled=true}}
</div>
{{/if}}
{{/if}}
<div class="character-commanditaire">
{{formField systemFields.commanditaire value=system.commanditaire rootId=partId disabled=isPlayMode classes="character-commanditaire"}}
</div>
<div class="character-pv">
<div class="character-pv-value">
{{formField systemFields.pv.fields.value value=system.pv.value}}
</div>
<div class="pv-separator">/</div>
<div class="character-pv-max">
{{formInput systemFields.pv.fields.max value=system.pv.max rootId=partId disabled=isPlayMode}}
</div>
</div>
</div>
</div>
</div>
</fieldset>
<fieldset class="character-caracteristiques character-caracteristiques-{{ifThen isPlayMode 'play' 'edit'}}">
<legend>{{localize "TENEBRIS.Character.Label.caracteristiques"}}</legend>
<div class="character-caracteristique" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCaracteristiques.rob}}" style="font-size: small;"></i>
{{formField systemFields.caracteristiques.fields.rob.fields.valeur value=system.caracteristiques.rob.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.saveRob}}
{{#if isEditMode}}
<div class="experience">
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.caracteristiques.fields.rob.fields.progression.fields.experience value=system.caracteristiques.rob.progression.experience}}</div>
<div class="experience-progress" data-tooltip="{{localize "TENEBRIS.Label.progress"}}">{{formInput systemFields.caracteristiques.fields.rob.fields.progression.fields.progres value=system.caracteristiques.rob.progression.progres}}</div>
</div>
{{/if}}
</div>
<div class="character-caracteristique" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCaracteristiques.dex}}" style="font-size: small;"></i>
{{formField systemFields.caracteristiques.fields.dex.fields.valeur value=system.caracteristiques.dex.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.saveDex}}
{{#if isEditMode}}
<div class="experience">
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.caracteristiques.fields.dex.fields.progression.fields.experience value=system.caracteristiques.dex.progression.experience}}</div>
<div class="experience-progress" data-tooltip="{{localize "TENEBRIS.Label.progress"}}">{{formInput systemFields.caracteristiques.fields.dex.fields.progression.fields.progres value=system.caracteristiques.dex.progression.progres}}</div>
</div>
{{/if}}
</div>
<div class="character-caracteristique" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCaracteristiques.int}}" style="font-size: small;"></i>
{{formField systemFields.caracteristiques.fields.int.fields.valeur value=system.caracteristiques.int.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.saveInt}}
{{#if isEditMode}}
<div class="experience">
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.caracteristiques.fields.int.fields.progression.fields.experience value=system.caracteristiques.int.progression.experience}}</div>
<div class="experience-progress" data-tooltip="{{localize "TENEBRIS.Label.progress"}}">{{formInput systemFields.caracteristiques.fields.int.fields.progression.fields.progres value=system.caracteristiques.int.progression.progres}}</div>
</div>
{{/if}}
</div>
<div class="character-caracteristique" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCaracteristiques.per}}" style="font-size: small;"></i>
{{formField systemFields.caracteristiques.fields.per.fields.valeur value=system.caracteristiques.per.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.savePer}}
{{#if isEditMode}}
<div class="experience">
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.caracteristiques.fields.per.fields.progression.fields.experience value=system.caracteristiques.per.progression.experience}}</div>
<div class="experience-progress" data-tooltip="{{localize "TENEBRIS.Label.progress"}}">{{formInput systemFields.caracteristiques.fields.per.fields.progression.fields.progres value=system.caracteristiques.per.progression.progres}}</div>
</div>
{{/if}}
</div>
<div class="character-caracteristique" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCaracteristiques.vol}}" style="font-size: small;"></i>
{{formField systemFields.caracteristiques.fields.vol.fields.valeur value=system.caracteristiques.vol.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.saveVol}}
{{#if isEditMode}}
<div class="experience">
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.caracteristiques.fields.vol.fields.progression.fields.experience value=system.caracteristiques.vol.progression.experience}}</div>
<div class="experience-progress" data-tooltip="{{localize "TENEBRIS.Label.progress"}}">{{formInput systemFields.caracteristiques.fields.vol.fields.progression.fields.progres value=system.caracteristiques.vol.progression.progres}}</div>
</div>
{{/if}}
</div>
</fieldset>
<fieldset class="character-ressources character-ressources-{{ifThen isPlayMode 'play' 'edit'}}">
<legend>{{localize "TENEBRIS.Character.Label.ressources"}}</legend>
<div class="character-ressource" data-drag="true" data-drag-type="resource">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsRessources.san}}" style="font-size: small;"></i>
{{formField systemFields.ressources.fields.san.fields.valeur value=system.ressources.san.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.resourceSan}}
{{#if isEditMode}}
<div class="character-ressource-edit">
{{formInput systemFields.ressources.fields.san.fields.max value=system.ressources.san.max}}
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.ressources.fields.san.fields.experience value=system.ressources.san.experience}}</div>
</div>
{{/if}}
</div>
<div class="character-ressource" data-drag="true" data-drag-type="resource">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsRessources.oeil}}" style="font-size: small;"></i>
{{formField systemFields.ressources.fields.oeil.fields.valeur value=system.ressources.oeil.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.resourceOeil}}
{{#if isEditMode}}
<div class="character-ressource-edit">
{{formInput systemFields.ressources.fields.oeil.fields.max value=system.ressources.oeil.max}}
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.ressources.fields.oeil.fields.experience value=system.ressources.oeil.experience}}</div>
</div>
{{/if}}
</div>
<div class="character-ressource" data-drag="true" data-drag-type="resource">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsRessources.verbe}}" style="font-size: small;"></i>
{{formField systemFields.ressources.fields.verbe.fields.valeur value=system.ressources.verbe.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.resourceVerbe}}
{{#if isEditMode}}
<div class="character-ressource-edit">
{{formInput systemFields.ressources.fields.verbe.fields.max value=system.ressources.verbe.max}}
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.ressources.fields.verbe.fields.experience value=system.ressources.verbe.experience}}</div>
</div>
{{/if}}
</div>
<div class="character-ressource" data-drag="true" data-drag-type="resource">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsRessources.bourse}}" style="font-size: small;"></i>
{{formField systemFields.ressources.fields.bourse.fields.valeur value=system.ressources.bourse.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.resourceBourse}}
{{#if isEditMode}}
<div class="character-ressource-edit">
{{formInput systemFields.ressources.fields.bourse.fields.max value=system.ressources.bourse.max}}
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.ressources.fields.bourse.fields.experience value=system.ressources.bourse.experience}}</div>
</div>
{{/if}}
</div>
<div class="character-ressource" data-drag="true" data-drag-type="resource">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsRessources.magie}}" style="font-size: small;"></i>
{{formField systemFields.ressources.fields.magie.fields.valeur value=system.ressources.magie.valeur rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.resourceMagie}}
{{#if isEditMode}}
<div class="character-ressource-edit">
{{formInput systemFields.ressources.fields.magie.fields.max value=system.ressources.magie.max}}
<div data-tooltip="{{localize "TENEBRIS.Label.experience"}}">{{formInput systemFields.ressources.fields.magie.fields.experience value=system.ressources.magie.experience}}</div>
</div>
{{/if}}
</div>
</fieldset>
</section>

View File

@ -3,7 +3,6 @@
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
{{formInput fields.name value=source.name}}
</div>
{{formField systemFields.cost value=system.cost}}
<fieldset>
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>

View File

@ -0,0 +1,10 @@
<section class="tab protagonist-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
<fieldset>
<legend>{{localize "CTHULHUETERNAL.Character.Label.description"}}</legend>
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
</fieldset>
<fieldset>
<legend>{{localize "CTHULHUETERNAL.Character.Label.notes"}}</legend>
{{formInput systemFields.notes enriched=notes value=system.notes name="system.notes" toggled=true}}
</fieldset>
</section>

View File

@ -0,0 +1,60 @@
<section class="tab protagonist-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
<fieldset>
<legend>{{localize "CTHULHUETERNAL.Label.weapon"}}{{#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>
<div class="weapons">
{{#each weapons as |item|}}
{{!log 'weapon' this}}
<div class="weapon" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true" data-drag-type="damage">
{{#if (ne item.img "icons/svg/item-bag.svg")}}
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
{{/if}}
<div class="name" data-tooltip="{{{item.system.description}}}">
{{item.name}}
</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>
{{#if @root.isEditMode}}
<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>
{{/if}}
</div>
{{/each}}
</div>
<div class="armors">
{{#each armors as |item|}}
{{!log 'armor' this}}
<div class="armor" 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>
{{localize "CTHULHUETERNAL.Label.armor"}} : {{item.system.protection}}
<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>
<div class="gears">
{{#each gears as |item|}}
{{!log 'armor' this}}
<div class="gear" 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>
{{localize "CTHULHUETERNAL.Label.gear"}} : {{item.system.protection}}
<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>

View File

@ -0,0 +1,79 @@
<section class="protagonist-main protagonist-main-{{ifThen isPlayMode 'play' 'edit'}}">
{{!log "protagonist-main" this}}
<fieldset>
<legend>{{localize "CTHULHUETERNAL.Label.protagonist"}}</legend>
<div class="protagonist-pc protagonist-pc-{{ifThen isPlayMode 'play' 'edit'}}">
<div class="protagonist-left">
<div class="protagonist-left-image">
<img class="protagonist-img" src="{{actor.img}}" data-edit="img" data-action="editImage"
data-tooltip="{{actor.name}}" />
</div>
</div>
<div class="protagonist-right">
<div class="protagonist-name">
{{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}}
<a class="control" data-action="toggleSheet" data-tooltip="CTHULHUETERNAL.ToggleSheet"
data-tooltip-direction="UP">
<i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
</a>
</div>
<div class="protagonist-infos">
<div class="protagonist-hp">
<div class="protagonist-hp-value">
{{formField systemFields.hp.fields.value value=system.hp.value}}
</div>
<div class="hp-separator">/</div>
<div class="protagonist-hp-max">
{{formInput systemFields.hp.fields.max value=system.hp.max rootId=partId disabled=isPlayMode}}
</div>
</div>
</div>
</div>
</div>
</fieldset>
<fieldset class="protagonist-characteristics protagonist-characteristics-{{ifThen isPlayMode 'play' 'edit'}}">
<legend>{{localize "CTHULHUETERNAL.Label.characteristics"}}</legend>
<div class="protagonist-characteristic" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCharacteristic.str}}"
style="font-size: small;"></i>
{{formField systemFields.characteristics.fields.str.fields.value value=system.characteristics.str.value
rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.str}}
</div>
<div class="protagonist-characteristic" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCharacteristic.dex}}"
style="font-size: small;"></i>
{{formField systemFields.characteristics.fields.dex.fields.value value=system.characteristics.dex.value
rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.dex}}
</div>
<div class="protagonist-characteristic" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCharacteristic.dex}}"
style="font-size: small;"></i>
{{formField systemFields.characteristics.fields.con.fields.value value=system.characteristics.con.value
rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.con}}
</div>
<div class="protagonist-characteristic" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCharacteristic.int}}"
style="font-size: small;"></i>
{{formField systemFields.characteristics.fields.int.fields.value value=system.characteristics.int.value
rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.int}}
</div>
<div class="protagonist-characteristic" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCharacteristic.pow}}"
style="font-size: small;"></i>
{{formField systemFields.characteristics.fields.pow.fields.value value=system.characteristics.pow.value
rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.pow}}
</div>
<div class="protagonist-characteristic" data-drag="true" data-drag-type="save">
<i class="fa fa-question-circle" aria-hidden="true" data-tooltip="{{tooltipsCharacteristic.cha}}"
style="font-size: small;"></i>
{{formField systemFields.characteristics.fields.cha.fields.value value=system.characteristics.cha.value
rootId=partId disabled=isPlayMode classes="rollable" dataset=rollType.cha}}
</div>
</fieldset>
<fieldset class="protagonist-resources protagonist-resources-{{ifThen isPlayMode 'play' 'edit'}}">
</fieldset>
</section>

View File

@ -0,0 +1,22 @@
<section class="tab protagonist-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
{{log this}}
<fieldset>
<legend data-tooltip="{{localize "CTHULHUETERNAL.Tooltip.skills"}}" data-tooltip-direction="UP">{{localize "CTHULHUETERNAL.Label.skills"}}</legend>
<div class="skills">
{{#each skills as |item|}}
<div class="skill " 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.description}}}<br><br>{{item.path}}" data-tooltip-direction="UP">{{item.name}}
<span data-tooltip="{{localize 'CTHULHUETERNAL.Label.progressionPossible'}}">{{item.system.skillTotal}}</span>
</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>

View File

@ -6,6 +6,9 @@
{{formField systemFields.settings value=system.settings localize=true}}
{{formField systemFields.weaponType value=system.weaponType localize=true}}
{{#if (eq system.weaponType "rangedfirearm")}}
{{formField systemFields.weaponSubtype value=system.weaponSubtype localize=true}}
{{/if}}
{{formField systemFields.damage value=system.damage}}
{{formField systemFields.baseRange value=system.baseRange}}
@ -13,6 +16,8 @@
{{formField systemFields.lethality value=system.lethality}}
{{formField systemFields.killRadius value=system.killRadius}}
{{formField systemFields.armorPiercing value=system.armorPiercing}}
{{formField systemFields.resourceLevel value=system.resourceLevel}}
<fieldset>