forked from public/fvtt-cthulhu-eternal
		
	Update sheets and fix basic bugs
This commit is contained in:
		| @@ -0,0 +1 @@ | ||||
| ,morr,arioch,04.12.2024 14:13,file:///home/morr/.config/libreoffice/4; | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/docs/Colours used in R20 Sheets (version 3).xlsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/docs/Colours used in R20 Sheets (version 3).xlsx
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								assets/docs/Cthulhu Eternal Skills Per Era.xlsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/docs/Cthulhu Eternal Skills Per Era.xlsx
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								assets/fonts/georama.woff2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/fonts/georama.woff2
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -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); | ||||
| } | ||||
|   | ||||
| @@ -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.
										
									
								
							
							
								
								
									
										139
									
								
								lang/en.json
									
									
									
									
									
								
							
							
						
						
									
										139
									
								
								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 <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" | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 = { | ||||
|   | ||||
| @@ -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"] | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -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({ | ||||
|   | ||||
| @@ -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 | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -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 }) | ||||
|      | ||||
|   | ||||
| @@ -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); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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"; | ||||
|   | ||||
| @@ -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"); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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; | ||||
|   } | ||||
| @@ -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> | ||||
| @@ -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> | ||||
| @@ -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> | ||||
| @@ -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> | ||||
|   | ||||
							
								
								
									
										10
									
								
								templates/protagonist-biography.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								templates/protagonist-biography.hbs
									
									
									
									
									
										Normal 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> | ||||
							
								
								
									
										60
									
								
								templates/protagonist-equipment.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								templates/protagonist-equipment.hbs
									
									
									
									
									
										Normal 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> | ||||
							
								
								
									
										79
									
								
								templates/protagonist-main.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								templates/protagonist-main.hbs
									
									
									
									
									
										Normal 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> | ||||
							
								
								
									
										22
									
								
								templates/protagonist-skills.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								templates/protagonist-skills.hbs
									
									
									
									
									
										Normal 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> | ||||
| @@ -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> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user