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