Compare commits
	
		
			9 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c180365a61 | |||
| ace607d05c | |||
| 8a5d1cc1d8 | |||
| 99d9cb435f | |||
| f57b016b46 | |||
| 09907dbbf7 | |||
| e65f0a1670 | |||
| 941db9436f | |||
| 0874507025 | 
							
								
								
									
										1
									
								
								assets/icons/icon_robot.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/icons/icon_robot.svg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(255, 255, 255, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite><feGaussianBlur in="composite" stdDeviation="15" result="blur"></feGaussianBlur><feOffset dx="0" dy="0" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" style="" transform="translate(0,0)"><path d="M265.344 18.563v302.863h-18.69V18.59c-61.403 3.005-115.44 34.412-149.238 81.336l35.022 60.658a46.633 46.633 0 0 1 12.11-1.598c25.747 0 46.62 20.872 46.62 46.62 0 22.556-16.02 41.37-37.3 45.687v174.084c13.712 21.43 27.6 41.98 40.712 60.754V369.01h122.838v117.117c13.11-18.773 27-39.324 40.713-60.754V251.294c-21.282-4.317-37.302-23.13-37.302-45.688 0-25.747 20.873-46.62 46.62-46.62 4.19 0 8.25.562 12.113 1.6l35.13-60.847c-33.74-47-87.758-78.375-149.346-81.175zM426.03 117.47l-29.74 51.52c10.824 8.537 17.782 21.76 17.782 36.615 0 22.54-15.995 41.343-37.254 45.68V395.38c9.833-16.237 19.31-32.676 28.014-48.927 27.3-50.976 46.564-100.37 46.564-132.36 0-35.127-9.22-68.104-25.365-96.622zm-339.973.157c-16.196 28.486-25.46 61.408-25.46 96.465 0 31.992 19.267 81.385 46.567 132.36 8.704 16.253 18.182 32.694 28.016 48.933v-144.1c-21.26-4.336-37.254-23.14-37.254-45.68 0-14.856 6.957-28.08 17.783-36.617l-29.653-51.36zm127.213 270.07V488.98h85.46V387.696h-85.46z" fill="#7ed321" fill-opacity="1" filter="url(#shadow-1)" stroke="#ffffff" stroke-opacity="1" stroke-width="8"></path></g></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 1.7 KiB  | 
@@ -118,6 +118,22 @@ i.fvtt-ftl-nomad {
 | 
			
		||||
  min-width: 5rem;
 | 
			
		||||
  max-width: 5rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-sheet-common label {
 | 
			
		||||
  font-family: var(--font-secondary);
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-sheet-common .form-group {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: row;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  margin-bottom: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-sheet-common .form-group label {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  margin-right: 8px;
 | 
			
		||||
  min-width: 5rem;
 | 
			
		||||
  max-width: 5rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .creature-sheet-common label {
 | 
			
		||||
  font-family: var(--font-secondary);
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1);
 | 
			
		||||
@@ -327,24 +343,26 @@ i.fvtt-ftl-nomad {
 | 
			
		||||
  min-width: 5.2rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .character-main .character-pc .character-right .encumbrance {
 | 
			
		||||
  display: grid;
 | 
			
		||||
  grid-template-columns: repeat(3, 1fr);
 | 
			
		||||
  display: flex;
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .character-main .character-pc .character-right .encumbrance .form-group {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: row;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  margin-bottom: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .character-main .character-pc .character-right .encumbrance label {
 | 
			
		||||
  min-width: 4rem;
 | 
			
		||||
  max-width: 4rem;
 | 
			
		||||
  min-width: 3rem;
 | 
			
		||||
  max-width: 3rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .character-main .character-pc .character-right .encumbrance input {
 | 
			
		||||
  max-width: 3rem;
 | 
			
		||||
  min-width: 3rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .character-main .character-pc .character-right .encumbrance .character-credit input {
 | 
			
		||||
  max-width: 9rem;
 | 
			
		||||
  min-width: 9rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .character-main .character-pc .character-right .character-name {
 | 
			
		||||
  display: flex;
 | 
			
		||||
}
 | 
			
		||||
@@ -1104,6 +1122,15 @@ i.fvtt-ftl-nomad {
 | 
			
		||||
.fvtt-ftl-nomad .vehicle-description .field-label {
 | 
			
		||||
  margin-left: 8px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .vehicle-description .section-editor {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .vehicle-description .section-editor .editor {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .vehicle-description .section-editor .editor-content {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .vehicle-description .biodata {
 | 
			
		||||
  display: grid;
 | 
			
		||||
  grid-template-columns: repeat(2, 1fr);
 | 
			
		||||
@@ -1202,6 +1229,374 @@ i.fvtt-ftl-nomad {
 | 
			
		||||
.fvtt-ftl-nomad .tab.vehicle-equipment .main-div prose-mirror.active {
 | 
			
		||||
  min-height: 150px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content {
 | 
			
		||||
  font-family: var(--font-primary);
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1);
 | 
			
		||||
  color: var(--color-dark-1);
 | 
			
		||||
  background-color: var(--color-light-1);
 | 
			
		||||
  /*background-image: var(--background-image-base);*/
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-size: 100% 100%;
 | 
			
		||||
  overflow: scroll;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content input:disabled,
 | 
			
		||||
.fvtt-ftl-nomad .robot-content select:disabled {
 | 
			
		||||
  background-color: rgba(0, 0, 0, 0.2);
 | 
			
		||||
  border-color: transparent;
 | 
			
		||||
  color: var(--color-dark-3);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content input,
 | 
			
		||||
.fvtt-ftl-nomad .robot-content select {
 | 
			
		||||
  background-color: rgba(0, 0, 0, 0.1);
 | 
			
		||||
  border-color: var(--color-dark-6);
 | 
			
		||||
  color: var(--color-dark-2);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content input[name="name"] {
 | 
			
		||||
  height: 40px;
 | 
			
		||||
  margin-right: 10px;
 | 
			
		||||
  font-family: var(--font-title);
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1.2);
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  border: none;
 | 
			
		||||
  margin-top: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content fieldset {
 | 
			
		||||
  margin-bottom: 4px;
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content .form-fields input,
 | 
			
		||||
.fvtt-ftl-nomad .robot-content .form-fields select {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content .form-fields select {
 | 
			
		||||
  font-family: var(--font-secondary);
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content legend {
 | 
			
		||||
  font-family: var(--font-secondary);
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1.2);
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  letter-spacing: 1px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content label {
 | 
			
		||||
  font-family: var(--font-secondary);
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content .form-group {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: row;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  margin-bottom: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-content .form-group label {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  margin-right: 8px;
 | 
			
		||||
  min-width: 5rem;
 | 
			
		||||
  max-width: 5rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .sheet-tabs {
 | 
			
		||||
  background-color: var(--color-light-1);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main {
 | 
			
		||||
  background-color: var(--color-light-1);
 | 
			
		||||
  display: flex;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
  flex: 1;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-left {
 | 
			
		||||
  min-width: 180px;
 | 
			
		||||
  max-width: 180px;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-left .robot-left-image {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  padding-bottom: 8px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-left .robot-left-image .robot-img {
 | 
			
		||||
  height: 140px;
 | 
			
		||||
  width: auto;
 | 
			
		||||
  border: none;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-left .robot-cost label {
 | 
			
		||||
  min-width: 3rem;
 | 
			
		||||
  max-width: 3rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-left .robot-cost input {
 | 
			
		||||
  min-width: 6rem;
 | 
			
		||||
  max-width: 6rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  gap: 5px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-name {
 | 
			
		||||
  display: flex;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-name input {
 | 
			
		||||
  font-family: var(--font-title);
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1.4);
 | 
			
		||||
  width: 380px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-brain {
 | 
			
		||||
  min-width: 25rem;
 | 
			
		||||
  max-width: 25rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-brain textarea {
 | 
			
		||||
  min-width: 23rem;
 | 
			
		||||
  max-width: 23rem;
 | 
			
		||||
  background-color: rgba(0, 0, 0, 0.2);
 | 
			
		||||
  color: var(--color-dark-3);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .main-stats {
 | 
			
		||||
  min-width: 25rem;
 | 
			
		||||
  max-width: 25rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .main-stats .encumbered {
 | 
			
		||||
  color: red;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .cargo label,
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .capacity label {
 | 
			
		||||
  min-width: 4rem;
 | 
			
		||||
  max-width: 4rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .cargo input,
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .capacity input {
 | 
			
		||||
  max-width: 6rem;
 | 
			
		||||
  margin-right: 0.5rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .cargo .cargo-content,
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .capacity .cargo-content {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-infos {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-infos label {
 | 
			
		||||
  min-width: 120px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-infos .robot-hp {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  gap: 2px;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-infos .robot-hp .robot-hp-value .form-fields input {
 | 
			
		||||
  flex: none;
 | 
			
		||||
  width: 50px;
 | 
			
		||||
  margin-left: 4px;
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1.4);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-infos .robot-hp .robot-hp-max {
 | 
			
		||||
  clear: both;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: row;
 | 
			
		||||
  flex-wrap: wrap;
 | 
			
		||||
  margin: 3px 0;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-infos .robot-hp .robot-hp-max input {
 | 
			
		||||
  width: 50px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1.4);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc .robot-right .robot-infos .robot-hp .hp-separator {
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1.2);
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills {
 | 
			
		||||
  background-color: var(--color-light-1);
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  gap: 5px;
 | 
			
		||||
  flex: 1;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills .robot-skill {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills .robot-skill .icon-skill {
 | 
			
		||||
  width: 24px;
 | 
			
		||||
  height: 24px;
 | 
			
		||||
  margin-right: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills .robot-skill .rollable:hover,
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills .robot-skill .rollable:focus {
 | 
			
		||||
  text-shadow: 0 0 8px var(--color-shadow-primary);
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills .robot-skill .rollable {
 | 
			
		||||
  min-width: 4.5rem;
 | 
			
		||||
  max-width: 4.5rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills .robot-skill .char-text {
 | 
			
		||||
  margin-left: 0.5rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills .robot-skill .d100 {
 | 
			
		||||
  flex: 0;
 | 
			
		||||
  max-width: 0.6rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills .robot-skill .form-group {
 | 
			
		||||
  flex: 0;
 | 
			
		||||
  padding-left: 5px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skills .robot-skill .form-group .form-fields {
 | 
			
		||||
  font-size: 1.1rem;
 | 
			
		||||
  flex: none;
 | 
			
		||||
  width: 40px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skill-play {
 | 
			
		||||
  min-width: 225px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-skill-edit {
 | 
			
		||||
  min-width: 225px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc-play {
 | 
			
		||||
  min-width: 500px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-main .robot-pc-edit {
 | 
			
		||||
  min-width: 500px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description {
 | 
			
		||||
  background-color: var(--color-light-1);
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description .text-center {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  align-content: center;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description prose-mirror.inactive {
 | 
			
		||||
  min-height: 40px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description prose-mirror.active {
 | 
			
		||||
  min-height: 150px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description .field-label {
 | 
			
		||||
  margin-left: 8px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description .robot-brain input {
 | 
			
		||||
  min-width: 32rem;
 | 
			
		||||
  max-width: 32rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description .section-editor {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description .section-editor .editor {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description .section-editor .editor-content {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description .biodata {
 | 
			
		||||
  display: grid;
 | 
			
		||||
  grid-template-columns: repeat(2, 1fr);
 | 
			
		||||
  gap: 8px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description .biodata label {
 | 
			
		||||
  min-width: 3rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .robot-description .biodata .feature {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
  min-width: 18rem;
 | 
			
		||||
  max-width: 18rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div {
 | 
			
		||||
  background-color: var(--color-light-1);
 | 
			
		||||
  display: grid;
 | 
			
		||||
  grid-template-columns: 1fr;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div legend a {
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1.4);
 | 
			
		||||
  padding-left: 5px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .weapons {
 | 
			
		||||
  display: grid;
 | 
			
		||||
  grid-template-columns: repeat(2, 1fr);
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .weapons .weapon {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
  min-width: 13rem;
 | 
			
		||||
  max-width: 13srem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .weapons .weapon .rollable:hover,
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .weapons .weapon .rollable:focus {
 | 
			
		||||
  text-shadow: 0 0 8px var(--color-shadow-primary);
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .weapons .weapon .controls {
 | 
			
		||||
  min-width: 2rem;
 | 
			
		||||
  max-width: 2rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .weapons .weapon .damage {
 | 
			
		||||
  min-width: 5rem;
 | 
			
		||||
  max-width: 5rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .weapons .weapon .name {
 | 
			
		||||
  min-width: 8rem;
 | 
			
		||||
  max-width: 8rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .weapons .weapon .item-img {
 | 
			
		||||
  width: 32px;
 | 
			
		||||
  height: 32px;
 | 
			
		||||
  margin: 4px 0 0 0;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .equipments {
 | 
			
		||||
  display: grid;
 | 
			
		||||
  grid-template-columns: repeat(3, 1fr);
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .equipments .equipment {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
  min-width: 13rem;
 | 
			
		||||
  max-width: 13srem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .equipments .equipment .rollable:hover,
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .equipments .equipment .rollable:focus {
 | 
			
		||||
  text-shadow: 0 0 8px var(--color-shadow-primary);
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .equipments .equipment .controls {
 | 
			
		||||
  min-width: 2rem;
 | 
			
		||||
  max-width: 2rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .equipments .equipment .damage {
 | 
			
		||||
  min-width: 5rem;
 | 
			
		||||
  max-width: 5rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .equipments .equipment .name {
 | 
			
		||||
  min-width: 8rem;
 | 
			
		||||
  max-width: 8rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div .equipments .equipment .item-img {
 | 
			
		||||
  width: 32px;
 | 
			
		||||
  height: 32px;
 | 
			
		||||
  margin: 4px 0 0 0;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div prose-mirror.inactive {
 | 
			
		||||
  min-height: 40px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .tab.robot-equipment .main-div prose-mirror.active {
 | 
			
		||||
  min-height: 150px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .starship-content {
 | 
			
		||||
  font-family: var(--font-primary);
 | 
			
		||||
  font-size: calc(var(--font-size-standard) * 1);
 | 
			
		||||
@@ -1324,6 +1719,10 @@ i.fvtt-ftl-nomad {
 | 
			
		||||
  text-shadow: 0 0 8px var(--color-shadow-primary);
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .starship-main .starship-pc .starship-right .capacity .hull-field select {
 | 
			
		||||
  min-width: 10rem;
 | 
			
		||||
  max-width: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .starship-main .starship-pc .starship-right .capacity label {
 | 
			
		||||
  margin-left: 0.2rem;
 | 
			
		||||
  max-width: 7rem;
 | 
			
		||||
@@ -1335,6 +1734,11 @@ i.fvtt-ftl-nomad {
 | 
			
		||||
  align-self: center;
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .starship-main .starship-pc .starship-right .capacity .flexrow-guns .starship-guns-label {
 | 
			
		||||
  min-width: 7.4rem;
 | 
			
		||||
  max-width: 7.4rem;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .starship-main .starship-pc .starship-right .capacity input {
 | 
			
		||||
  max-width: 5rem;
 | 
			
		||||
}
 | 
			
		||||
@@ -1408,6 +1812,15 @@ i.fvtt-ftl-nomad {
 | 
			
		||||
.fvtt-ftl-nomad .starship-description .field-label {
 | 
			
		||||
  margin-left: 8px;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .starship-description .section-editor {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .starship-description .section-editor .editor {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .starship-description .section-editor .editor-content {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .starship-description .biodata {
 | 
			
		||||
  display: grid;
 | 
			
		||||
  grid-template-columns: repeat(2, 1fr);
 | 
			
		||||
@@ -1744,6 +2157,15 @@ i.fvtt-ftl-nomad {
 | 
			
		||||
.fvtt-ftl-nomad .creature-biography .rank input {
 | 
			
		||||
  max-width: 4rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .creature-biography .section-editor {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .creature-biography .section-editor .editor {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .creature-biography .section-editor .editor-content {
 | 
			
		||||
  min-height: 10rem;
 | 
			
		||||
}
 | 
			
		||||
.fvtt-ftl-nomad .creature-biography .biodata {
 | 
			
		||||
  display: grid;
 | 
			
		||||
  grid-template-columns: repeat(2, 1fr);
 | 
			
		||||
 
 | 
			
		||||
@@ -43,14 +43,15 @@ Hooks.once("init", function () {
 | 
			
		||||
    character: models.FTLNomadCharacter,
 | 
			
		||||
    vehicle: models.FTLNomadVehicle,
 | 
			
		||||
    creature: models.FTLNomadCreature,
 | 
			
		||||
    starship: models.FTLNomadStarship
 | 
			
		||||
    starship: models.FTLNomadStarship,
 | 
			
		||||
    robot: models.FTLNomadRobot
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  CONFIG.Item.documentClass = documents.FTLNomadItem
 | 
			
		||||
  CONFIG.Item.dataModels = {
 | 
			
		||||
    psionic: models.FTLNomadPsionic,
 | 
			
		||||
    weapon: models.FTLNomadWeapon,
 | 
			
		||||
    armor:  models.FTLNomadArmor,
 | 
			
		||||
    armor: models.FTLNomadArmor,
 | 
			
		||||
    talent: models.FTLNomadTalent,
 | 
			
		||||
    language: models.FTLNomadLanguage,
 | 
			
		||||
    equipment: models.FTLNomadEquipment,
 | 
			
		||||
@@ -61,10 +62,11 @@ Hooks.once("init", function () {
 | 
			
		||||
 | 
			
		||||
  // Register sheet application classes
 | 
			
		||||
  foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet)
 | 
			
		||||
  foundry.documents.collections.Actors.registerSheet("fvtt-ftl-nomad", applications.FTLNomadCharacterSheet , { types: ["character"], makeDefault: true })
 | 
			
		||||
  foundry.documents.collections.Actors.registerSheet("fvtt-ftl-nomad", applications.FTLNomadCharacterSheet, { types: ["character"], makeDefault: true })
 | 
			
		||||
  foundry.documents.collections.Actors.registerSheet("fvtt-ftl-nomad", applications.FTLNomadVehicleSheet, { types: ["vehicle"], makeDefault: true })
 | 
			
		||||
  foundry.documents.collections.Actors.registerSheet("fvtt-ftl-nomad", applications.FTLNomadCreatureSheet, { types: ["creature"], makeDefault: true })
 | 
			
		||||
  foundry.documents.collections.Actors.registerSheet("fvtt-ftl-nomad", applications.FTLNomadStarshipSheet, { types: ["starship"], makeDefault: true })
 | 
			
		||||
  foundry.documents.collections.Actors.registerSheet("fvtt-ftl-nomad", applications.FTLNomadRobotSheet, { types: ["robot"], makeDefault: true })
 | 
			
		||||
 | 
			
		||||
  foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet)
 | 
			
		||||
  foundry.documents.collections.Items.registerSheet("fvtt-ftl-nomad", applications.FTLNomadPsionicSheet, { types: ["psionic"], makeDefault: true })
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										101
									
								
								lang/en.json
									
									
									
									
									
								
							
							
						
						
									
										101
									
								
								lang/en.json
									
									
									
									
									
								
							@@ -292,6 +292,90 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "Robot": {
 | 
			
		||||
      "Size": {
 | 
			
		||||
        "Tiny": "Tiny",
 | 
			
		||||
        "Small": "Small",
 | 
			
		||||
        "Medium": "Medium",
 | 
			
		||||
        "Large": "Large",
 | 
			
		||||
        "Huge": "Huge",
 | 
			
		||||
        "Giant": "Giant",
 | 
			
		||||
        "Titanic": "Titanic",
 | 
			
		||||
        "Gargantuan": "Gargantuan"
 | 
			
		||||
      },
 | 
			
		||||
      "FIELDS": {
 | 
			
		||||
        "enc": {
 | 
			
		||||
          "label": "Enc",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "label": "Enc Curr."
 | 
			
		||||
          },
 | 
			
		||||
          "max": {
 | 
			
		||||
            "label": "Enc Max"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "brain": {
 | 
			
		||||
          "label": "Brain"
 | 
			
		||||
        },
 | 
			
		||||
        "cost": {
 | 
			
		||||
          "label": "Cost"
 | 
			
		||||
        },
 | 
			
		||||
        "techAge": {
 | 
			
		||||
          "label": "Tech Age"
 | 
			
		||||
        },
 | 
			
		||||
        "damage": {
 | 
			
		||||
          "label": "Damage"
 | 
			
		||||
        },
 | 
			
		||||
        "robotSize": {
 | 
			
		||||
          "label": "Size"
 | 
			
		||||
        },
 | 
			
		||||
        "speed": {
 | 
			
		||||
          "label": "Speed"
 | 
			
		||||
        },
 | 
			
		||||
        "durability": {
 | 
			
		||||
          "label": "Durability"
 | 
			
		||||
        },
 | 
			
		||||
        "protection": {
 | 
			
		||||
          "label": "Protection"
 | 
			
		||||
        },
 | 
			
		||||
        "characteristics:": {
 | 
			
		||||
          "char": {
 | 
			
		||||
            "label": "Charisma"
 | 
			
		||||
          },
 | 
			
		||||
          "con": {
 | 
			
		||||
            "label": "Constitution"
 | 
			
		||||
          },
 | 
			
		||||
          "dex": {
 | 
			
		||||
            "label": "Dexterity"
 | 
			
		||||
          },
 | 
			
		||||
          "int": {
 | 
			
		||||
            "label": "Intelligence"
 | 
			
		||||
          },
 | 
			
		||||
          "pow": {
 | 
			
		||||
            "label": "Power"
 | 
			
		||||
          },
 | 
			
		||||
          "str": {
 | 
			
		||||
            "label": "Strength"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "damageBonus": {
 | 
			
		||||
          "label": "Dmg.Bonus"
 | 
			
		||||
        },
 | 
			
		||||
        "resources": {
 | 
			
		||||
          "hand": {
 | 
			
		||||
            "label": "Hand"
 | 
			
		||||
          },
 | 
			
		||||
          "permanentRating": {
 | 
			
		||||
            "label": "Permanent Rating"
 | 
			
		||||
          },
 | 
			
		||||
          "storage": {
 | 
			
		||||
            "label": "Storage"
 | 
			
		||||
          },
 | 
			
		||||
          "stowed": {
 | 
			
		||||
            "label": "Stowed"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "CreatureAbility": {
 | 
			
		||||
      "FIELDS": {
 | 
			
		||||
        "description": {
 | 
			
		||||
@@ -351,8 +435,11 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "Label": {
 | 
			
		||||
      "robot": "Robot",
 | 
			
		||||
      "techAge": "Tech Age",
 | 
			
		||||
      "mainStats": "Main Stats",
 | 
			
		||||
      "formula": "Formula",
 | 
			
		||||
      "damages": "Damages",
 | 
			
		||||
      "damages": "Damage",
 | 
			
		||||
      "modifications": "Modifications",
 | 
			
		||||
      "abilities": "Abilities",
 | 
			
		||||
      "Details": "Details",
 | 
			
		||||
@@ -408,6 +495,7 @@
 | 
			
		||||
      "max": "Max",
 | 
			
		||||
      "maximum": "Maximum",
 | 
			
		||||
      "modifier": "Modifier",
 | 
			
		||||
      "numericModifier": "Additionnal Modifier",
 | 
			
		||||
      "multiplier": "Multiplier",
 | 
			
		||||
      "newArmor": "New Armor",
 | 
			
		||||
      "newWeapon": "New Weapon",
 | 
			
		||||
@@ -512,6 +600,9 @@
 | 
			
		||||
        "Carrier": "Carrier"
 | 
			
		||||
      },
 | 
			
		||||
      "FIELDS": {
 | 
			
		||||
        "techAge": {
 | 
			
		||||
          "label": "Tech Age"
 | 
			
		||||
        },
 | 
			
		||||
        "monthlyCost": {
 | 
			
		||||
          "label": "Monthly Cost"
 | 
			
		||||
        },
 | 
			
		||||
@@ -590,7 +681,7 @@
 | 
			
		||||
      "addPsionic" : "Add Psionic",
 | 
			
		||||
      "addCreatureAbility" : "Add Creature Ability",
 | 
			
		||||
      "addCreatureTrait" : "Add Creature Trait",
 | 
			
		||||
      "damages": "Enter current damages suffered"
 | 
			
		||||
      "damages": "Enter current damage suffered"
 | 
			
		||||
    },
 | 
			
		||||
    "Vehicle": {
 | 
			
		||||
      "FIELDS": {
 | 
			
		||||
@@ -626,6 +717,9 @@
 | 
			
		||||
        },
 | 
			
		||||
        "notes": {
 | 
			
		||||
          "label": "Notes"
 | 
			
		||||
        },
 | 
			
		||||
        "techAge": {
 | 
			
		||||
          "label": "Tech Age"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
@@ -687,7 +781,8 @@
 | 
			
		||||
      "character": "Character",
 | 
			
		||||
      "creature": "Creature",
 | 
			
		||||
      "starship": "Starship",
 | 
			
		||||
      "vehicle": "Vehicle"
 | 
			
		||||
      "vehicle": "Vehicle",
 | 
			
		||||
      "robot": "Robot"
 | 
			
		||||
    },
 | 
			
		||||
    "Item": {
 | 
			
		||||
      "armor": "Armor",
 | 
			
		||||
 
 | 
			
		||||
@@ -11,4 +11,4 @@ export { default as FTLNomadImplantSheet } from "./sheets/implant-sheet.mjs"
 | 
			
		||||
export { default as FTLNomadStarshipSheet } from "./sheets/starship-sheet.mjs"
 | 
			
		||||
export { default as FTLNomadCreatureTraitSheet } from "./sheets/creature-trait-sheet.mjs"
 | 
			
		||||
export { default as FTLNomadCreatureAbilitySheet } from "./sheets/creature-ability-sheet.mjs"
 | 
			
		||||
 | 
			
		||||
export { default as FTLNomadRobotSheet } from "./sheets/robot-sheet.mjs"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										174
									
								
								module/applications/sheets/robot-sheet.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										174
									
								
								module/applications/sheets/robot-sheet.mjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,174 @@
 | 
			
		||||
import FTLNomadActorSheet from "./base-actor-sheet.mjs"
 | 
			
		||||
 | 
			
		||||
export default class FTLNomadRobotSheet extends FTLNomadActorSheet {
 | 
			
		||||
  /** @override */
 | 
			
		||||
  static DEFAULT_OPTIONS = {
 | 
			
		||||
    classes: ["robot"],
 | 
			
		||||
    position: {
 | 
			
		||||
      width: 860,
 | 
			
		||||
      height: 620,
 | 
			
		||||
    },
 | 
			
		||||
    window: {
 | 
			
		||||
      contentClasses: ["robot-content"],
 | 
			
		||||
    },
 | 
			
		||||
    actions: {
 | 
			
		||||
      createEquipment: FTLNomadRobotSheet.#onCreateEquipment,
 | 
			
		||||
      createArmor: FTLNomadRobotSheet.#onCreateArmor,
 | 
			
		||||
      createWeapon: FTLNomadRobotSheet.#onCreateWeapon,
 | 
			
		||||
      createTalent: FTLNomadRobotSheet.#onCreateTalent,
 | 
			
		||||
      createImplant: FTLNomadRobotSheet.#onCreateImplant,
 | 
			
		||||
      createPsionic: FTLNomadRobotSheet.#onCreatePsionic,
 | 
			
		||||
      createLanguage: FTLNomadRobotSheet.#onCreateLanguage
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /** @override */
 | 
			
		||||
  static PARTS = {
 | 
			
		||||
    main: {
 | 
			
		||||
      template: "systems/fvtt-ftl-nomad/templates/robot-main.hbs",
 | 
			
		||||
    },
 | 
			
		||||
    tabs: {
 | 
			
		||||
      template: "templates/generic/tab-navigation.hbs",
 | 
			
		||||
    },
 | 
			
		||||
    equipment: {
 | 
			
		||||
      template: "systems/fvtt-ftl-nomad/templates/robot-equipment.hbs",
 | 
			
		||||
    },
 | 
			
		||||
    description: {
 | 
			
		||||
      template: "systems/fvtt-ftl-nomad/templates/robot-description.hbs",
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /** @override */
 | 
			
		||||
  tabGroups = {
 | 
			
		||||
    sheet: "equipment",
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Prepare an array of form header tabs.
 | 
			
		||||
   * @returns {Record<string, Partial<ApplicationTab>>}
 | 
			
		||||
   */
 | 
			
		||||
  #getTabs() {
 | 
			
		||||
    const tabs = {
 | 
			
		||||
      equipment: { id: "equipment", group: "sheet", icon: "fa-solid fa-shapes", label: "FTLNOMAD.Label.equipment" },
 | 
			
		||||
      description: {
 | 
			
		||||
        id: "description", group: "sheet", icon: "fa-solid fa-book", label: "FTLNOMAD.Label.description"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    for (const v of Object.values(tabs)) {
 | 
			
		||||
      v.active = this.tabGroups[v.group] === v.id
 | 
			
		||||
      v.cssClass = v.active ? "active" : ""
 | 
			
		||||
    }
 | 
			
		||||
    return tabs
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /** @override */
 | 
			
		||||
  async _prepareContext() {
 | 
			
		||||
    const context = await super._prepareContext()
 | 
			
		||||
    context.tabs = this.#getTabs()
 | 
			
		||||
 | 
			
		||||
    context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
 | 
			
		||||
    context.enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.notes, { async: true })
 | 
			
		||||
 | 
			
		||||
    return context
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /** @override */
 | 
			
		||||
  async _preparePartContext(partId, context) {
 | 
			
		||||
    const doc = this.document
 | 
			
		||||
    switch (partId) {
 | 
			
		||||
      case "equipment":
 | 
			
		||||
        context.tab = context.tabs.equipment
 | 
			
		||||
        context.weapons = doc.itemTypes.weapon
 | 
			
		||||
        context.weapons.sort((a, b) => a.name.localeCompare(b.name))
 | 
			
		||||
        context.armors = doc.itemTypes.armor
 | 
			
		||||
        context.armors.sort((a, b) => a.name.localeCompare(b.name))
 | 
			
		||||
        context.equipments = doc.itemTypes.equipment
 | 
			
		||||
        context.equipments.sort((a, b) => a.name.localeCompare(b.name))
 | 
			
		||||
        break
 | 
			
		||||
      case "description":
 | 
			
		||||
        context.tab = context.tabs.description
 | 
			
		||||
        context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(doc.system.description, { async: true })
 | 
			
		||||
        context.enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(doc.system.notes, { async: true })
 | 
			
		||||
        break
 | 
			
		||||
    }
 | 
			
		||||
    return context
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  static #onCreateEquipment(event, target) {
 | 
			
		||||
    this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newEquipment"), type: "equipment" }])
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static #onCreateWeapon(event, target) {
 | 
			
		||||
    this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newWeapon"), type: "weapon" }])
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static #onCreateArmor(event, target) {
 | 
			
		||||
    this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newArmor"), type: "armor" }])
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static #onCreateTalent(event, target) {
 | 
			
		||||
    this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newTalent"), type: "talent" }])
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static #onCreateImplant(event, target) {
 | 
			
		||||
    this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newImplant"), type: "implant" }])
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static #onCreatePsionic(event, target) {
 | 
			
		||||
    this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newPsionic"), type: "psionic" }])
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static #onCreateLanguage(event, target) {
 | 
			
		||||
    this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newLanguage"), type: "language" }])
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Handles the roll action triggered by user interaction.
 | 
			
		||||
   *
 | 
			
		||||
   * @param {PointerEvent} event The event object representing the user interaction.
 | 
			
		||||
   * @param {HTMLElement} target The target element that triggered the roll.
 | 
			
		||||
   *
 | 
			
		||||
   * @returns {Promise<void>} A promise that resolves when the roll action is complete.
 | 
			
		||||
   *
 | 
			
		||||
   * @throws {Error} Throws an error if the roll type is not recognized.
 | 
			
		||||
   *
 | 
			
		||||
   * @description This method checks the current mode (edit or not) and determines the type of roll
 | 
			
		||||
   * (save, resource, or damage) based on the target element's data attributes. It retrieves the
 | 
			
		||||
   * corresponding value from the document's system and performs the roll.
 | 
			
		||||
   */
 | 
			
		||||
  async _onRoll(event, target) {
 | 
			
		||||
    const rollType = $(event.currentTarget).data("roll-type")
 | 
			
		||||
    let item
 | 
			
		||||
    let li
 | 
			
		||||
    switch (rollType) {
 | 
			
		||||
      case "skill":
 | 
			
		||||
        let skillId = $(event.currentTarget).data("skill-id");
 | 
			
		||||
        item = this.actor.system.skills[skillId];
 | 
			
		||||
        break
 | 
			
		||||
      case "weapon":
 | 
			
		||||
      case "damage":
 | 
			
		||||
        li = $(event.currentTarget).parents(".item");
 | 
			
		||||
        item = this.actor.items.get(li.data("item-id"));
 | 
			
		||||
        break
 | 
			
		||||
      default:
 | 
			
		||||
        throw new Error(`Unknown roll type ${rollType}`)
 | 
			
		||||
    }
 | 
			
		||||
    await this.document.system.roll(rollType, item)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async _onDrop(event) {
 | 
			
		||||
    if (!this.isEditable || !this.isEditMode) return
 | 
			
		||||
    const data = TextEditor.getDragEventData(event)
 | 
			
		||||
 | 
			
		||||
    // Handle different data types
 | 
			
		||||
    switch (data.type) {
 | 
			
		||||
      case "Item":
 | 
			
		||||
        const item = await fromUuid(data.uuid)
 | 
			
		||||
        return super._onDropItem(item)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -41,6 +41,13 @@ export const TECH_AGES = {
 | 
			
		||||
  "cosmic": { id: "cosmic", label: "FTLNOMAD.TechAge.Cosmic", level: 13 }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const ROBOT_SIZES = {
 | 
			
		||||
  "tiny": { id: "tiny", label: "FTLNOMAD.Robot.Size.Tiny" },
 | 
			
		||||
  "small": { id: "small", label: "FTLNOMAD.Robot.Size.Small" },
 | 
			
		||||
  "medium": { id: "medium", label: "FTLNOMAD.Robot.Size.Medium" },
 | 
			
		||||
  "large": { id: "large", label: "FTLNOMAD.Robot.Size.Large" },
 | 
			
		||||
  "giant": { id: "giant", label: "FTLNOMAD.Robot.Size.Giant" }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const WEAPON_TYPES = {
 | 
			
		||||
  "melee": { id: "melee", label: "FTLNOMAD.Weapon.Types.Melee" },
 | 
			
		||||
@@ -72,6 +79,16 @@ export const ATTACK_MODIFIERS = {
 | 
			
		||||
  "aware": -1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const DAMAGE_MODIFIER_CHOICES = [
 | 
			
		||||
  { id: "-3", label: "-3", value: "-3" },
 | 
			
		||||
  { id: "-2", label: "-2", value: "-2" },
 | 
			
		||||
  { id: "-1", label: "-1", value: "-1" },
 | 
			
		||||
  { id: "0", label: "0", value: "0" },
 | 
			
		||||
  { id: "1", label: "+1", value: "1" },
 | 
			
		||||
  { id: "2", label: "+2", value: "2" },
 | 
			
		||||
  { id: "3", label: "+3", value: "3" }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
export const TRIAGE_RESULTS = {
 | 
			
		||||
  "none": { id: "none", dice: 0, label: "FTLNOMAD.TriageResults.None" },
 | 
			
		||||
  "death": { id: "death", dice: 3, label: "FTLNOMAD.TriageResults.Death" },
 | 
			
		||||
@@ -127,6 +144,20 @@ export const MODIFIER_CHOICES = {
 | 
			
		||||
  "impossible6": { id: "impossible6", label: "FTLNOMAD.Label.Impossible6", value: "-6" }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const NUMERIC_MODIFIER_CHOICES = {
 | 
			
		||||
  "-5": { label: "-5", value: -5 },
 | 
			
		||||
  "-4": { label: "-4", value: -4 },
 | 
			
		||||
  "-3": { label: "-3", value: -3 },
 | 
			
		||||
  "-2": { label: "-2", value: -2 },
 | 
			
		||||
  "-1": { label: "-1", value: -1 },
 | 
			
		||||
  "0": { label: "0", value: 0 },
 | 
			
		||||
  "+1": { label: "+1", value: 1 },
 | 
			
		||||
  "+2": { label: "+2", value: 2 },
 | 
			
		||||
  "+3": { label: "+3", value: 3 },
 | 
			
		||||
  "+4": { label: "+4", value: 4 },
 | 
			
		||||
  "+5": { label: "+5", value: 5 }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const STARSHIP_HULL = {
 | 
			
		||||
  "pod": { id: "pod", label: "FTLNOMAD.Starship.Hull.Pod" },
 | 
			
		||||
  "micro": { id: "micro", label: "FTLNOMAD.Starship.Hull.Micro" },
 | 
			
		||||
@@ -146,6 +177,7 @@ export const STARSHIP_HULL = {
 | 
			
		||||
export const SYSTEM = {
 | 
			
		||||
  id: SYSTEM_ID,
 | 
			
		||||
  MODIFIER_CHOICES,
 | 
			
		||||
  NUMERIC_MODIFIER_CHOICES,
 | 
			
		||||
  ATTACK_MODIFIERS,
 | 
			
		||||
  TECH_AGES,
 | 
			
		||||
  WEAPON_TYPES,
 | 
			
		||||
@@ -156,5 +188,7 @@ export const SYSTEM = {
 | 
			
		||||
  CREATURE_NICHES,
 | 
			
		||||
  STARSHIP_HULL,
 | 
			
		||||
  SKILLS,
 | 
			
		||||
  ROBOT_SIZES,
 | 
			
		||||
  DAMAGE_MODIFIER_CHOICES,
 | 
			
		||||
  ASCII
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -62,10 +62,14 @@ export default class FTLNomadRoll extends Roll {
 | 
			
		||||
 | 
			
		||||
  static updateFullFormula(options) {
 | 
			
		||||
    let fullFormula
 | 
			
		||||
    let mod = options.rollItem?.value || 0
 | 
			
		||||
    fullFormula = `${options.formula} + ${options.skillModifier}D + ${mod} + ${options.rangeModifier}D + ${options.numericModifier}D`
 | 
			
		||||
    if (options.rollType === "damage") {
 | 
			
		||||
      fullFormula = `${options.formula} + ${options.damageModifier}D6 `
 | 
			
		||||
    } else {
 | 
			
		||||
      let mod = options.rollItem?.value || 0
 | 
			
		||||
      fullFormula = `${options.formula} + ${options.skillModifier}D + ${mod} + ${options.rangeModifier}D + ${options.numericModifier}D + ${options.numericModifierSelect}`
 | 
			
		||||
    }
 | 
			
		||||
    // Replace all the "+ -" with "-"
 | 
			
		||||
    fullFormula = fullFormula.replace(/\+\s*-/g, "- ")
 | 
			
		||||
    fullFormula = fullFormula.replace(/\+\s*\-/g, "- ")
 | 
			
		||||
    $('#roll-dialog-full-formula').text(fullFormula)
 | 
			
		||||
    options.fullFormula = fullFormula
 | 
			
		||||
  }
 | 
			
		||||
@@ -112,6 +116,7 @@ export default class FTLNomadRoll extends Roll {
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    const choiceModifier = SYSTEM.MODIFIER_CHOICES
 | 
			
		||||
    const choiceNumericModifier = SYSTEM.NUMERIC_MODIFIER_CHOICES
 | 
			
		||||
    let choiceRangeModifier = {}
 | 
			
		||||
    let rangeModifier = 0
 | 
			
		||||
    if (options.weapon) {
 | 
			
		||||
@@ -119,16 +124,18 @@ export default class FTLNomadRoll extends Roll {
 | 
			
		||||
      let range = SYSTEM.WEAPON_RANGE[options.weapon.system.rangeType]
 | 
			
		||||
      for (let [key, value] of Object.entries(range.range)) {
 | 
			
		||||
        choiceRangeModifier[key] = { label: `${key} (${value}D)`, value: value }
 | 
			
		||||
        if (!rangeModifier && value) {
 | 
			
		||||
          rangeModifier = value
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    const choiceDamageModifier = SYSTEM.DAMAGE_MODIFIER_CHOICES
 | 
			
		||||
    let damageModifier = "0"
 | 
			
		||||
 | 
			
		||||
    let modifier = "0"
 | 
			
		||||
    let numericModifierSelect = 0
 | 
			
		||||
    options.skillModifier = 0
 | 
			
		||||
    options.numericModifier = 0
 | 
			
		||||
    options.numericModifierSelect = 0
 | 
			
		||||
    options.rangeModifier = rangeModifier
 | 
			
		||||
    options.damageModifier = damageModifier
 | 
			
		||||
    let fullFormula = `${formula} + ${options.rollItem.value}`
 | 
			
		||||
    if (options.isEncumbered) {
 | 
			
		||||
      fullFormula += ` - 1D`
 | 
			
		||||
@@ -148,11 +155,15 @@ export default class FTLNomadRoll extends Roll {
 | 
			
		||||
      rollModes,
 | 
			
		||||
      fieldRollMode,
 | 
			
		||||
      choiceModifier,
 | 
			
		||||
      choiceNumericModifier,
 | 
			
		||||
      choiceRangeModifier,
 | 
			
		||||
      choiceDamageModifier,
 | 
			
		||||
      rangeModifier,
 | 
			
		||||
      damageModifier,
 | 
			
		||||
      formula,
 | 
			
		||||
      hasTarget: options.hasTarget,
 | 
			
		||||
      modifier,
 | 
			
		||||
      numericModifierSelect,
 | 
			
		||||
    }
 | 
			
		||||
    const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-ftl-nomad/templates/roll-dialog.hbs", dialogContext)
 | 
			
		||||
 | 
			
		||||
@@ -183,6 +194,14 @@ export default class FTLNomadRoll extends Roll {
 | 
			
		||||
          options.skillModifier = Number(event.target.value)
 | 
			
		||||
          FTLNomadRoll.updateFullFormula(options)
 | 
			
		||||
        })
 | 
			
		||||
        $(".roll-numeric-modifier").change(event => {
 | 
			
		||||
          options.numericModifierSelect = Number(event.target.value)
 | 
			
		||||
          FTLNomadRoll.updateFullFormula(options)
 | 
			
		||||
        })
 | 
			
		||||
        $(".roll-damage-modifier").change(event => {
 | 
			
		||||
          options.damageModifier = Number(event.target.value)
 | 
			
		||||
          FTLNomadRoll.updateFullFormula(options)
 | 
			
		||||
        })
 | 
			
		||||
        $(".roll-skill-range-modifier").change(event => {
 | 
			
		||||
          options.rangeModifier = Number(event.target.value)
 | 
			
		||||
          FTLNomadRoll.updateFullFormula(options)
 | 
			
		||||
@@ -213,8 +232,10 @@ export default class FTLNomadRoll extends Roll {
 | 
			
		||||
    options.numericModifier = Number(rollData.numericModifier) || 0
 | 
			
		||||
    options.skillModifier = Number(rollData.skillModifier) || 0
 | 
			
		||||
    options.rangeModifier = Number(rollData.rangeModifier) || 0
 | 
			
		||||
    options.numericModifierSelect = Number(rollData.numericModifierSelect) || 0
 | 
			
		||||
    options.finalModifier = options.numericModifier + options.skillModifier + options.rangeModifier
 | 
			
		||||
    let mod = options.rollItem?.value || 0
 | 
			
		||||
    mod += options.numericModifierSelect
 | 
			
		||||
 | 
			
		||||
    // Build the dice formula
 | 
			
		||||
    let diceFormula = "2d6"
 | 
			
		||||
@@ -229,17 +250,22 @@ export default class FTLNomadRoll extends Roll {
 | 
			
		||||
      // Replace the D6 by the correct number of D6
 | 
			
		||||
      damageFormula = damageFormula.replace(/(\d*)d6/gi, (match, p1) => {
 | 
			
		||||
        let numDice = Number(p1) || 1
 | 
			
		||||
        numDice += Math.abs(options.skillModifier)
 | 
			
		||||
        return `${numDice}d6`
 | 
			
		||||
        let damageModifier = Number(options.damageModifier)
 | 
			
		||||
        let postArg = ""
 | 
			
		||||
        if (damageModifier && damageModifier !== 0) {
 | 
			
		||||
          postArg = (damageModifier > 0) ? `kh${numDice}` : `kl${numDice}`
 | 
			
		||||
          numDice += Math.abs(damageModifier)
 | 
			
		||||
        }
 | 
			
		||||
        return `${numDice}d6${postArg} + ${mod}`
 | 
			
		||||
      })
 | 
			
		||||
      diceFormula = damageFormula
 | 
			
		||||
    } else {
 | 
			
		||||
      diceFormula = `${2 + Math.abs(options.finalModifier)}D6`
 | 
			
		||||
    }
 | 
			
		||||
    if (options.finalModifier > 0) {
 | 
			
		||||
      diceFormula += `kh2 + ${mod}`
 | 
			
		||||
    } else {
 | 
			
		||||
      diceFormula += `kl2 + ${mod}`
 | 
			
		||||
      if (options.finalModifier > 0) {
 | 
			
		||||
        diceFormula += `kh2 + ${mod}`
 | 
			
		||||
      } else {
 | 
			
		||||
        diceFormula += `kl2 + ${mod}`
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    console.log("FTLNomadRoll | Rolling ", diceFormula, options, rollData)
 | 
			
		||||
 
 | 
			
		||||
@@ -11,4 +11,4 @@ export { default as FTLNomadImplant } from "./implant.mjs"
 | 
			
		||||
export { default as FTLNomadStarship } from "./starship.mjs"
 | 
			
		||||
export { default as FTLNomadCreatureTrait } from "./creature-trait.mjs"
 | 
			
		||||
export { default as FTLNomadCreatureAbility } from "./creature-ability.mjs"
 | 
			
		||||
 | 
			
		||||
export { default as FTLNomadRobot } from "./robot.mjs"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										96
									
								
								module/models/robot.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								module/models/robot.mjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
import { SYSTEM } from "../config/system.mjs"
 | 
			
		||||
import FTLNomadRoll from "../documents/roll.mjs"
 | 
			
		||||
 | 
			
		||||
export default class FTLNomadRobot extends foundry.abstract.TypeDataModel {
 | 
			
		||||
  static defineSchema() {
 | 
			
		||||
    const fields = foundry.data.fields
 | 
			
		||||
    const requiredInteger = { required: true, nullable: false, integer: true }
 | 
			
		||||
    const schema = {}
 | 
			
		||||
 | 
			
		||||
    schema.description = new fields.HTMLField({ required: true, textSearch: true })
 | 
			
		||||
    schema.notes = new fields.HTMLField({ required: true, textSearch: true })
 | 
			
		||||
    schema.name = new fields.StringField({ required: true, nullable: false, initial: "" })
 | 
			
		||||
 | 
			
		||||
    schema.techAge = new fields.StringField({ required: true, choices: SYSTEM.TECH_AGES, initial: "lateatomic" })
 | 
			
		||||
    schema.robotSize = new fields.StringField({ required: true, choices: SYSTEM.ROBOT_SIZES, initial: "medium" })
 | 
			
		||||
    schema.durability = new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 })
 | 
			
		||||
    schema.protection = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
 | 
			
		||||
    schema.brain = new fields.StringField({ required: true, nullable: false, initial: "" })
 | 
			
		||||
    schema.speed = new fields.StringField({ required: true, nullable: false, initial: "" })
 | 
			
		||||
 | 
			
		||||
    // Carac
 | 
			
		||||
    const skillField = (label) => {
 | 
			
		||||
      const schema = {
 | 
			
		||||
        value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 5 }),
 | 
			
		||||
        label: new fields.StringField({ required: true, nullable: false, initial: label })
 | 
			
		||||
      }
 | 
			
		||||
      return new fields.SchemaField(schema, { label })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    schema.skills = new fields.SchemaField(
 | 
			
		||||
      Object.values(SYSTEM.SKILLS).reduce((obj, characteristic) => {
 | 
			
		||||
        obj[characteristic.id] = skillField(characteristic.label)
 | 
			
		||||
        return obj
 | 
			
		||||
      }, {}),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    schema.enc = new fields.SchemaField({
 | 
			
		||||
      value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
 | 
			
		||||
      max: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    schema.cost = new fields.StringField({ required: true, initial: "0" })
 | 
			
		||||
 | 
			
		||||
    return schema
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /** @override */
 | 
			
		||||
  static LOCALIZATION_PREFIXES = ["FTLNOMAD.Robot"]
 | 
			
		||||
 | 
			
		||||
  prepareDerivedData() {
 | 
			
		||||
    super.prepareDerivedData();
 | 
			
		||||
    let encMax = this.durability + (2 * this.skills.physical.value)
 | 
			
		||||
    if (encMax !== this.enc.max) {
 | 
			
		||||
      this.enc.max = encMax
 | 
			
		||||
    }
 | 
			
		||||
    let enc = 0
 | 
			
		||||
    for (let i of this.parent.items) {
 | 
			
		||||
      if (i.system?.enc) {
 | 
			
		||||
        enc += i.system.enc
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (enc !== this.enc.value) {
 | 
			
		||||
      this.enc.value = enc
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  isEncumbered() {
 | 
			
		||||
    return this.enc.value > this.enc.max
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /** */
 | 
			
		||||
  /**
 | 
			
		||||
   * Rolls a dice for a character.
 | 
			
		||||
   * @param {("save"|"resource|damage")} rollType The type of the roll.
 | 
			
		||||
   * @param {number} rollItem The target value for the roll. Which caracteristic or resource. If the roll is a damage roll, this is the id of the item.
 | 
			
		||||
   * @returns {Promise<null>} - A promise that resolves to null if the roll is cancelled.
 | 
			
		||||
   */
 | 
			
		||||
  async roll(rollType, rollItem) {
 | 
			
		||||
    let opponentTarget
 | 
			
		||||
    const hasTarget = opponentTarget !== undefined
 | 
			
		||||
 | 
			
		||||
    let roll = await FTLNomadRoll.prompt({
 | 
			
		||||
      rollType,
 | 
			
		||||
      rollItem,
 | 
			
		||||
      actorId: this.parent.id,
 | 
			
		||||
      actorName: this.parent.name,
 | 
			
		||||
      actorImage: this.parent.img,
 | 
			
		||||
      isEncumbered: this.isEncumbered(),
 | 
			
		||||
      hasTarget,
 | 
			
		||||
      target: opponentTarget
 | 
			
		||||
    })
 | 
			
		||||
    if (!roll) return null
 | 
			
		||||
 | 
			
		||||
    await roll.toMessage({}, { rollMode: roll.options.rollMode })
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -15,9 +15,10 @@ export default class FTLNomadStarship extends foundry.abstract.TypeDataModel {
 | 
			
		||||
    schema.cargo = new fields.StringField({ required: true, initial: "" })
 | 
			
		||||
    schema.guns = new fields.StringField({ required: true, initial: "1d6" })
 | 
			
		||||
    schema.travelMultiplier = new fields.StringField({ required: true, initial: "" })
 | 
			
		||||
    schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
 | 
			
		||||
    schema.monthlyCost = new fields.NumberField({ required: true, initial: 0, min: 0 })
 | 
			
		||||
    schema.cost = new fields.StringField({ required: true, initial: "0" })
 | 
			
		||||
    schema.monthlyCost = new fields.StringField({ required: true, initial: "0" })
 | 
			
		||||
    schema.damages = new fields.StringField({ required: true, initial: "" })
 | 
			
		||||
    schema.techAge = new fields.StringField({ required: true, choices: SYSTEM.TECH_AGES, initial: "lateatomic" })
 | 
			
		||||
 | 
			
		||||
    schema.description = new fields.HTMLField({ required: true, textSearch: true })
 | 
			
		||||
    schema.modifications = new fields.HTMLField({ required: true, textSearch: true })
 | 
			
		||||
 
 | 
			
		||||
@@ -14,11 +14,11 @@ export default class FTLNomadVehicle extends foundry.abstract.TypeDataModel {
 | 
			
		||||
    schema.force = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 })
 | 
			
		||||
    schema.range = new fields.StringField({ required: true, initial: "1d6" })
 | 
			
		||||
    schema.speed = new fields.StringField({ required: true, initial: "1d6" })
 | 
			
		||||
    schema.techAge = new fields.StringField({ required: true, initial: "1d6" })
 | 
			
		||||
    schema.techAge = new fields.StringField({ required: true, choices: SYSTEM.TECH_AGES, initial: "lateatomic" })
 | 
			
		||||
    schema.tonnage = new fields.StringField({ required: true, initial: "" })
 | 
			
		||||
    schema.damages = new fields.StringField({ required: true, initial: "" })
 | 
			
		||||
 | 
			
		||||
    schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
 | 
			
		||||
    schema.cost = new fields.StringField({ required: true, initial: "0" })
 | 
			
		||||
 | 
			
		||||
    schema.description = new fields.HTMLField({ required: true, textSearch: true })
 | 
			
		||||
    schema.notes = new fields.HTMLField({ required: true, textSearch: true })
 | 
			
		||||
 
 | 
			
		||||
@@ -8,14 +8,14 @@ export default class FTLNomadWeapon extends foundry.abstract.TypeDataModel {
 | 
			
		||||
 | 
			
		||||
    schema.description = new fields.HTMLField({ required: true, textSearch: true })
 | 
			
		||||
 | 
			
		||||
    schema.techAge = new fields.StringField({ required: true, choices: SYSTEM.TECH_AGES, initial : "lateatomic" })
 | 
			
		||||
    schema.techAge = new fields.StringField({ required: true, choices: SYSTEM.TECH_AGES, initial: "lateatomic" })
 | 
			
		||||
    schema.weaponType = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_TYPES })
 | 
			
		||||
    schema.rangeType = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_RANGE })
 | 
			
		||||
 | 
			
		||||
    schema.damage = new fields.StringField({required: true, initial: "1d6"})
 | 
			
		||||
    schema.damage = new fields.StringField({ required: true, initial: "1d6" })
 | 
			
		||||
    schema.magazine = new fields.NumberField({ required: true, initial: 1, min: 0 })
 | 
			
		||||
 | 
			
		||||
    schema.range =  new fields.SchemaField({
 | 
			
		||||
    schema.range = new fields.SchemaField({
 | 
			
		||||
      close: new fields.NumberField({ ...requiredInteger, initial: 0 }),
 | 
			
		||||
      near: new fields.NumberField({ ...requiredInteger, initial: 0 }),
 | 
			
		||||
      far: new fields.NumberField({ ...requiredInteger, initial: 0 }),
 | 
			
		||||
@@ -23,7 +23,7 @@ export default class FTLNomadWeapon extends foundry.abstract.TypeDataModel {
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    schema.enc = new fields.NumberField({ required: true, initial: 1, min: 0 })
 | 
			
		||||
    schema.aspect = new fields.StringField({ required: true, initial: ""})
 | 
			
		||||
    schema.aspect = new fields.StringField({ required: true, initial: "" })
 | 
			
		||||
 | 
			
		||||
    schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
 | 
			
		||||
    schema.ammoCost = new fields.NumberField({ required: true, initial: 0, min: 0 })
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/ftl-nomad-items/000090.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/ftl-nomad-items/000090.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1 +1 @@
 | 
			
		||||
MANIFEST-000051
 | 
			
		||||
MANIFEST-000107
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
2025/08/26-08:04:22.211637 7f99c9ffb6c0 Recovering log #48
 | 
			
		||||
2025/08/26-08:04:22.223370 7f99c9ffb6c0 Delete type=3 #46
 | 
			
		||||
2025/08/26-08:04:22.223498 7f99c9ffb6c0 Delete type=0 #48
 | 
			
		||||
2025/08/26-08:13:33.915174 7f99c8ff96c0 Level-0 table #54: started
 | 
			
		||||
2025/08/26-08:13:33.915296 7f99c8ff96c0 Level-0 table #54: 0 bytes OK
 | 
			
		||||
2025/08/26-08:13:33.948896 7f99c8ff96c0 Delete type=0 #52
 | 
			
		||||
2025/08/26-08:13:33.949217 7f99c8ff96c0 Manual compaction at level-0 from '!folders!AuBtSOj1mJmh88qx' @ 72057594037927935 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at (end)
 | 
			
		||||
2025/10/27-20:06:28.536125 7f2a23fff6c0 Recovering log #105
 | 
			
		||||
2025/10/27-20:06:28.547660 7f2a23fff6c0 Delete type=3 #103
 | 
			
		||||
2025/10/27-20:06:28.547796 7f2a23fff6c0 Delete type=0 #105
 | 
			
		||||
2025/10/27-20:07:11.806730 7f2a213ff6c0 Level-0 table #110: started
 | 
			
		||||
2025/10/27-20:07:11.806798 7f2a213ff6c0 Level-0 table #110: 0 bytes OK
 | 
			
		||||
2025/10/27-20:07:11.813240 7f2a213ff6c0 Delete type=0 #108
 | 
			
		||||
2025/10/27-20:07:11.813543 7f2a213ff6c0 Manual compaction at level-0 from '!folders!AuBtSOj1mJmh88qx' @ 72057594037927935 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at (end)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,7 @@
 | 
			
		||||
2025/08/25-21:48:36.909732 7f99c9ffb6c0 Delete type=3 #1
 | 
			
		||||
2025/08/25-21:56:45.440471 7f99c8ff96c0 Level-0 table #49: started
 | 
			
		||||
2025/08/25-21:56:45.440527 7f99c8ff96c0 Level-0 table #49: 0 bytes OK
 | 
			
		||||
2025/08/25-21:56:45.504826 7f99c8ff96c0 Delete type=0 #47
 | 
			
		||||
2025/08/25-21:56:45.558056 7f99c8ff96c0 Manual compaction at level-0 from '!folders!AuBtSOj1mJmh88qx' @ 72057594037927935 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at '!items!zv9dwgL3p7ThQn7j' @ 385 : 1
 | 
			
		||||
2025/08/25-21:56:45.558080 7f99c8ff96c0 Compacting 1@0 + 0@1 files
 | 
			
		||||
2025/08/25-21:56:45.590210 7f99c8ff96c0 Generated table #50@0: 285 keys, 111653 bytes
 | 
			
		||||
2025/08/25-21:56:45.590298 7f99c8ff96c0 Compacted 1@0 + 0@1 files => 111653 bytes
 | 
			
		||||
2025/08/25-21:56:45.648076 7f99c8ff96c0 compacted to: files[ 0 1 0 0 0 0 0 ]
 | 
			
		||||
2025/08/25-21:56:45.648259 7f99c8ff96c0 Delete type=2 #44
 | 
			
		||||
2025/08/25-21:56:45.801444 7f99c8ff96c0 Manual compaction at level-0 from '!items!zv9dwgL3p7ThQn7j' @ 385 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at (end)
 | 
			
		||||
2025/10/27-20:03:18.716726 7f2a22ffd6c0 Recovering log #101
 | 
			
		||||
2025/10/27-20:03:18.728612 7f2a22ffd6c0 Delete type=3 #99
 | 
			
		||||
2025/10/27-20:03:18.728755 7f2a22ffd6c0 Delete type=0 #101
 | 
			
		||||
2025/10/27-20:06:09.635606 7f2a213ff6c0 Level-0 table #106: started
 | 
			
		||||
2025/10/27-20:06:09.635675 7f2a213ff6c0 Level-0 table #106: 0 bytes OK
 | 
			
		||||
2025/10/27-20:06:09.644064 7f2a213ff6c0 Delete type=0 #104
 | 
			
		||||
2025/10/27-20:06:09.658912 7f2a213ff6c0 Manual compaction at level-0 from '!folders!AuBtSOj1mJmh88qx' @ 72057594037927935 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at (end)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								packs/ftl-nomad-items/MANIFEST-000107
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/ftl-nomad-items/MANIFEST-000107
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/ftl-nomad-vehicles/000068.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/ftl-nomad-vehicles/000068.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/ftl-nomad-vehicles/000087.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/ftl-nomad-vehicles/000087.log
									
									
									
									
									
										Normal file
									
								
							@@ -1 +1 @@
 | 
			
		||||
MANIFEST-000029
 | 
			
		||||
MANIFEST-000085
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
2025/08/26-08:04:22.229470 7f99caffd6c0 Recovering log #26
 | 
			
		||||
2025/08/26-08:04:22.240597 7f99caffd6c0 Delete type=3 #24
 | 
			
		||||
2025/08/26-08:04:22.240743 7f99caffd6c0 Delete type=0 #26
 | 
			
		||||
2025/08/26-08:13:33.840012 7f99c8ff96c0 Level-0 table #32: started
 | 
			
		||||
2025/08/26-08:13:33.840112 7f99c8ff96c0 Level-0 table #32: 0 bytes OK
 | 
			
		||||
2025/08/26-08:13:33.862575 7f99c8ff96c0 Delete type=0 #30
 | 
			
		||||
2025/08/26-08:13:33.949166 7f99c8ff96c0 Manual compaction at level-0 from '!actors!3pydTJsM73Z4o0V6' @ 72057594037927935 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at (end)
 | 
			
		||||
2025/10/27-20:06:28.555946 7f2a227fc6c0 Recovering log #83
 | 
			
		||||
2025/10/27-20:06:28.567241 7f2a227fc6c0 Delete type=3 #81
 | 
			
		||||
2025/10/27-20:06:28.567394 7f2a227fc6c0 Delete type=0 #83
 | 
			
		||||
2025/10/27-20:07:11.791873 7f2a213ff6c0 Level-0 table #88: started
 | 
			
		||||
2025/10/27-20:07:11.791940 7f2a213ff6c0 Level-0 table #88: 0 bytes OK
 | 
			
		||||
2025/10/27-20:07:11.799353 7f2a213ff6c0 Delete type=0 #86
 | 
			
		||||
2025/10/27-20:07:11.813499 7f2a213ff6c0 Manual compaction at level-0 from '!actors!0FQ6XaRi24OorI21' @ 72057594037927935 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at (end)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,7 @@
 | 
			
		||||
2025/08/25-21:48:36.994202 7f99ca7fc6c0 Delete type=3 #1
 | 
			
		||||
2025/08/25-21:56:45.505125 7f99c8ff96c0 Level-0 table #27: started
 | 
			
		||||
2025/08/25-21:56:45.505238 7f99c8ff96c0 Level-0 table #27: 0 bytes OK
 | 
			
		||||
2025/08/25-21:56:45.557727 7f99c8ff96c0 Delete type=0 #25
 | 
			
		||||
2025/08/25-21:56:45.648499 7f99c8ff96c0 Manual compaction at level-0 from '!actors!3pydTJsM73Z4o0V6' @ 72057594037927935 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at '!folders!vRnrOJqSMlxbSgyX' @ 92 : 1
 | 
			
		||||
2025/08/25-21:56:45.648514 7f99c8ff96c0 Compacting 1@0 + 0@1 files
 | 
			
		||||
2025/08/25-21:56:45.676577 7f99c8ff96c0 Generated table #28@0: 51 keys, 49087 bytes
 | 
			
		||||
2025/08/25-21:56:45.676616 7f99c8ff96c0 Compacted 1@0 + 0@1 files => 49087 bytes
 | 
			
		||||
2025/08/25-21:56:45.736809 7f99c8ff96c0 compacted to: files[ 0 1 0 0 0 0 0 ]
 | 
			
		||||
2025/08/25-21:56:45.736931 7f99c8ff96c0 Delete type=2 #22
 | 
			
		||||
2025/08/25-21:56:45.801488 7f99c8ff96c0 Manual compaction at level-0 from '!folders!vRnrOJqSMlxbSgyX' @ 92 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at (end)
 | 
			
		||||
2025/10/27-20:03:18.738218 7f2a23fff6c0 Recovering log #79
 | 
			
		||||
2025/10/27-20:03:18.749460 7f2a23fff6c0 Delete type=3 #77
 | 
			
		||||
2025/10/27-20:03:18.749597 7f2a23fff6c0 Delete type=0 #79
 | 
			
		||||
2025/10/27-20:06:09.651196 7f2a213ff6c0 Level-0 table #84: started
 | 
			
		||||
2025/10/27-20:06:09.651261 7f2a213ff6c0 Level-0 table #84: 0 bytes OK
 | 
			
		||||
2025/10/27-20:06:09.658656 7f2a213ff6c0 Delete type=0 #82
 | 
			
		||||
2025/10/27-20:06:09.658955 7f2a213ff6c0 Manual compaction at level-0 from '!actors!0FQ6XaRi24OorI21' @ 72057594037927935 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at (end)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								packs/ftl-nomad-vehicles/MANIFEST-000085
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/ftl-nomad-vehicles/MANIFEST-000085
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/ftl-nomad-vehicles/lost/000043.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/ftl-nomad-vehicles/lost/000043.log
									
									
									
									
									
										Normal file
									
								
							@@ -123,23 +123,27 @@
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .encumbrance {
 | 
			
		||||
        display: grid;
 | 
			
		||||
        grid-template-columns: repeat(3, 1fr);
 | 
			
		||||
        display: flex;
 | 
			
		||||
        gap: 4px;
 | 
			
		||||
        .form-group {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-direction: row;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          margin-bottom: 4px;
 | 
			
		||||
        }
 | 
			
		||||
        label {
 | 
			
		||||
          min-width: 4rem;
 | 
			
		||||
          max-width: 4rem;
 | 
			
		||||
          min-width: 3rem;
 | 
			
		||||
          max-width: 3rem;
 | 
			
		||||
        }
 | 
			
		||||
        input {
 | 
			
		||||
          max-width: 3rem;
 | 
			
		||||
          min-width: 3rem;
 | 
			
		||||
        }
 | 
			
		||||
        .character-credit {
 | 
			
		||||
          input {
 | 
			
		||||
            max-width: 9rem;
 | 
			
		||||
            min-width: 9rem;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .character-name {
 | 
			
		||||
 
 | 
			
		||||
@@ -201,6 +201,16 @@
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .section-editor {
 | 
			
		||||
    min-height: 10rem;
 | 
			
		||||
    .editor {
 | 
			
		||||
      min-height: 10rem;
 | 
			
		||||
    }
 | 
			
		||||
    .editor-content {
 | 
			
		||||
      min-height: 10rem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .biodata {
 | 
			
		||||
    display: grid;
 | 
			
		||||
    grid-template-columns: repeat(2, 1fr);
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,7 @@
 | 
			
		||||
  @import "mixins.less";
 | 
			
		||||
  @import "character.less";
 | 
			
		||||
  @import "vehicle.less";
 | 
			
		||||
  @import "robot.less";
 | 
			
		||||
  @import "starship.less";
 | 
			
		||||
  @import "creature.less";
 | 
			
		||||
  @import "weapon.less";
 | 
			
		||||
 
 | 
			
		||||
@@ -61,7 +61,6 @@
 | 
			
		||||
    font-family: var(--font-secondary);
 | 
			
		||||
    font-size: calc(var(--font-size-standard) * 1);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.vehicle-sheet-common {
 | 
			
		||||
@@ -103,6 +102,27 @@
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.robot-sheet-common {
 | 
			
		||||
  label {
 | 
			
		||||
    font-family: var(--font-secondary);
 | 
			
		||||
    font-size: calc(var(--font-size-standard) * 1);
 | 
			
		||||
  }
 | 
			
		||||
  .form-group {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: row;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    margin-bottom: 4px;
 | 
			
		||||
 | 
			
		||||
    label {
 | 
			
		||||
      font-weight: bold;
 | 
			
		||||
      margin-right: 8px;
 | 
			
		||||
      min-width: 5rem;
 | 
			
		||||
      max-width: 5rem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.creature-sheet-common {
 | 
			
		||||
  label {
 | 
			
		||||
    font-family: var(--font-secondary);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										339
									
								
								styles/robot.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										339
									
								
								styles/robot.less
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,339 @@
 | 
			
		||||
.robot-content {
 | 
			
		||||
  .sheet-common();
 | 
			
		||||
  .robot-sheet-common();
 | 
			
		||||
  overflow: scroll;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.sheet-tabs {
 | 
			
		||||
  background-color: var(--color-light-1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.robot-main {
 | 
			
		||||
  background-color: var(--color-light-1);
 | 
			
		||||
  display: flex;
 | 
			
		||||
 | 
			
		||||
  .robot-pc {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    gap: 4px;
 | 
			
		||||
    flex: 1;
 | 
			
		||||
 | 
			
		||||
    .robot-left {
 | 
			
		||||
      min-width: 180px;
 | 
			
		||||
      max-width: 180px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      flex-direction: column;
 | 
			
		||||
 | 
			
		||||
      .robot-left-image {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        padding-bottom: 8px;
 | 
			
		||||
        .robot-img {
 | 
			
		||||
          height: 140px;
 | 
			
		||||
          width: auto;
 | 
			
		||||
          border: none;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .robot-cost {
 | 
			
		||||
        label {
 | 
			
		||||
          min-width: 3rem;
 | 
			
		||||
          max-width: 3rem;
 | 
			
		||||
        }
 | 
			
		||||
        input {
 | 
			
		||||
          min-width: 6rem;
 | 
			
		||||
          max-width: 6rem;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .robot-right {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      flex-direction: column;
 | 
			
		||||
      gap: 5px;
 | 
			
		||||
 | 
			
		||||
      .robot-name {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        input {
 | 
			
		||||
          font-family: var(--font-title);
 | 
			
		||||
          font-size: calc(var(--font-size-standard) * 1.4);
 | 
			
		||||
          width: 380px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .robot-brain {
 | 
			
		||||
        min-width: 25rem;
 | 
			
		||||
        max-width: 25rem;
 | 
			
		||||
        textarea {
 | 
			
		||||
          min-width: 23rem;
 | 
			
		||||
          max-width: 23rem;
 | 
			
		||||
          background-color: rgba(0, 0, 0, 0.2);
 | 
			
		||||
          color: var(--color-dark-3);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .main-stats {
 | 
			
		||||
        min-width: 25rem;
 | 
			
		||||
        max-width: 25rem;
 | 
			
		||||
        .encumbered {
 | 
			
		||||
          color: red;
 | 
			
		||||
          font-weight: bold;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      .cargo,
 | 
			
		||||
      .capacity {
 | 
			
		||||
        label {
 | 
			
		||||
          min-width: 4rem;
 | 
			
		||||
          max-width: 4rem;
 | 
			
		||||
        }
 | 
			
		||||
        input {
 | 
			
		||||
          max-width: 6rem;
 | 
			
		||||
          margin-right: 0.5rem;
 | 
			
		||||
        }
 | 
			
		||||
        .cargo-content {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          gap: 4px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .robot-infos {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
        gap: 4px;
 | 
			
		||||
 | 
			
		||||
        label {
 | 
			
		||||
          min-width: 120px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .robot-hp {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          gap: 2px;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          .robot-hp-value {
 | 
			
		||||
            .form-fields input {
 | 
			
		||||
              flex: none;
 | 
			
		||||
              width: 50px;
 | 
			
		||||
              margin-left: 4px;
 | 
			
		||||
              font-size: calc(var(--font-size-standard) * 1.4);
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
          .robot-hp-max {
 | 
			
		||||
            clear: both;
 | 
			
		||||
            display: flex;
 | 
			
		||||
            flex-direction: row;
 | 
			
		||||
            flex-wrap: wrap;
 | 
			
		||||
            margin: 3px 0;
 | 
			
		||||
            align-items: center;
 | 
			
		||||
            input {
 | 
			
		||||
              width: 50px;
 | 
			
		||||
              text-align: center;
 | 
			
		||||
              font-size: calc(var(--font-size-standard) * 1.4);
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
          .hp-separator {
 | 
			
		||||
            font-size: calc(var(--font-size-standard) * 1.2);
 | 
			
		||||
            display: flex;
 | 
			
		||||
            align-items: center;
 | 
			
		||||
            justify-content: center;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .robot-skills {
 | 
			
		||||
    background-color: var(--color-light-1);
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: column;
 | 
			
		||||
    gap: 5px;
 | 
			
		||||
    flex: 1;
 | 
			
		||||
 | 
			
		||||
    .robot-skill {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      .icon-skill {
 | 
			
		||||
        width: 24px;
 | 
			
		||||
        height: 24px;
 | 
			
		||||
        margin-right: 4px;
 | 
			
		||||
      }
 | 
			
		||||
      .rollable:hover,
 | 
			
		||||
      .rollable:focus {
 | 
			
		||||
        text-shadow: 0 0 8px var(--color-shadow-primary);
 | 
			
		||||
        cursor: pointer;
 | 
			
		||||
      }
 | 
			
		||||
      .rollable {
 | 
			
		||||
        min-width: 4.5rem;
 | 
			
		||||
        max-width: 4.5rem;
 | 
			
		||||
      }
 | 
			
		||||
      .char-text {
 | 
			
		||||
        margin-left: 0.5rem;
 | 
			
		||||
      }
 | 
			
		||||
      .d100 {
 | 
			
		||||
        flex: 0;
 | 
			
		||||
        max-width: 0.6rem;
 | 
			
		||||
      }
 | 
			
		||||
      .form-group {
 | 
			
		||||
        flex: 0;
 | 
			
		||||
        padding-left: 5px;
 | 
			
		||||
        .form-fields {
 | 
			
		||||
          font-size: 1.1rem;
 | 
			
		||||
          flex: none;
 | 
			
		||||
          width: 40px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .robot-skill-play {
 | 
			
		||||
    min-width: 225px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .robot-skill-edit {
 | 
			
		||||
    min-width: 225px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .robot-pc-play {
 | 
			
		||||
    min-width: 500px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .robot-pc-edit {
 | 
			
		||||
    min-width: 500px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.robot-description {
 | 
			
		||||
  .text-center {
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    align-content: center;
 | 
			
		||||
  }
 | 
			
		||||
  background-color: var(--color-light-1);
 | 
			
		||||
  prose-mirror.inactive {
 | 
			
		||||
    min-height: 40px;
 | 
			
		||||
  }
 | 
			
		||||
  prose-mirror.active {
 | 
			
		||||
    min-height: 150px;
 | 
			
		||||
  }
 | 
			
		||||
  .field-label {
 | 
			
		||||
    margin-left: 8px;
 | 
			
		||||
  }
 | 
			
		||||
  .robot-brain {
 | 
			
		||||
    input {
 | 
			
		||||
      min-width: 32rem;
 | 
			
		||||
      max-width: 32rem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .section-editor {
 | 
			
		||||
    min-height: 10rem;
 | 
			
		||||
    .editor {
 | 
			
		||||
      min-height: 10rem;
 | 
			
		||||
    }
 | 
			
		||||
    .editor-content {
 | 
			
		||||
      min-height: 10rem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .biodata {
 | 
			
		||||
    display: grid;
 | 
			
		||||
    grid-template-columns: repeat(2, 1fr);
 | 
			
		||||
    gap: 8px;
 | 
			
		||||
    label {
 | 
			
		||||
      min-width: 3rem;
 | 
			
		||||
    }
 | 
			
		||||
    .feature {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      gap: 4px;
 | 
			
		||||
      min-width: 18rem;
 | 
			
		||||
      max-width: 18rem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tab.robot-equipment .main-div {
 | 
			
		||||
  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;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .weapons {
 | 
			
		||||
    display: grid;
 | 
			
		||||
    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: 32px;
 | 
			
		||||
        height: 32px;
 | 
			
		||||
        margin: 4px 0 0 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .equipments {
 | 
			
		||||
    display: grid;
 | 
			
		||||
    grid-template-columns: repeat(3, 1fr);
 | 
			
		||||
    gap: 4px;
 | 
			
		||||
    .equipment {
 | 
			
		||||
      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: 32px;
 | 
			
		||||
        height: 32px;
 | 
			
		||||
        margin: 4px 0 0 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  prose-mirror.inactive {
 | 
			
		||||
    min-height: 40px;
 | 
			
		||||
  }
 | 
			
		||||
  prose-mirror.active {
 | 
			
		||||
    min-height: 150px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -42,7 +42,6 @@
 | 
			
		||||
          max-width: 4rem;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .starship-right {
 | 
			
		||||
@@ -69,6 +68,12 @@
 | 
			
		||||
          text-shadow: 0 0 8px var(--color-shadow-primary);
 | 
			
		||||
          cursor: pointer;
 | 
			
		||||
        }
 | 
			
		||||
        .hull-field {
 | 
			
		||||
          select {
 | 
			
		||||
            min-width: 10rem;
 | 
			
		||||
            max-width: 10rem;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        label {
 | 
			
		||||
          margin-left: 0.2rem;
 | 
			
		||||
          max-width: 7rem;
 | 
			
		||||
@@ -79,6 +84,11 @@
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          align-self: center;
 | 
			
		||||
          gap: 4px;
 | 
			
		||||
          .starship-guns-label {
 | 
			
		||||
            min-width: 7.4rem;
 | 
			
		||||
            max-width: 7.4rem;
 | 
			
		||||
            font-weight: bold;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        input {
 | 
			
		||||
          max-width: 5rem;
 | 
			
		||||
@@ -99,10 +109,8 @@
 | 
			
		||||
        select {
 | 
			
		||||
          max-width: 5rem;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      .starship-infos {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
@@ -169,23 +177,31 @@
 | 
			
		||||
    margin-left: 8px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .section-editor {
 | 
			
		||||
    min-height: 10rem;
 | 
			
		||||
    .editor {
 | 
			
		||||
      min-height: 10rem;
 | 
			
		||||
    }
 | 
			
		||||
    .editor-content {
 | 
			
		||||
      min-height: 10rem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .biodata {
 | 
			
		||||
    display: grid;
 | 
			
		||||
    grid-template-columns: repeat(2, 1fr);
 | 
			
		||||
    gap: 8px;
 | 
			
		||||
    label {
 | 
			
		||||
      min-width: 3.0rem;
 | 
			
		||||
      min-width: 3rem;
 | 
			
		||||
    }
 | 
			
		||||
    .feature {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        gap: 4px;
 | 
			
		||||
        min-width: 18rem;
 | 
			
		||||
        max-width: 18rem;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      gap: 4px;
 | 
			
		||||
      min-width: 18rem;
 | 
			
		||||
      max-width: 18rem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tab.starship-equipment {
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,6 @@
 | 
			
		||||
          border: none;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .vehicle-right {
 | 
			
		||||
@@ -137,23 +136,31 @@
 | 
			
		||||
    margin-left: 8px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .section-editor {
 | 
			
		||||
    min-height: 10rem;
 | 
			
		||||
    .editor {
 | 
			
		||||
      min-height: 10rem;
 | 
			
		||||
    }
 | 
			
		||||
    .editor-content {
 | 
			
		||||
      min-height: 10rem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .biodata {
 | 
			
		||||
    display: grid;
 | 
			
		||||
    grid-template-columns: repeat(2, 1fr);
 | 
			
		||||
    gap: 8px;
 | 
			
		||||
    label {
 | 
			
		||||
      min-width: 3.0rem;
 | 
			
		||||
      min-width: 3rem;
 | 
			
		||||
    }
 | 
			
		||||
    .feature {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        gap: 4px;
 | 
			
		||||
        min-width: 18rem;
 | 
			
		||||
        max-width: 18rem;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      gap: 4px;
 | 
			
		||||
      min-width: 18rem;
 | 
			
		||||
      max-width: 18rem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tab.vehicle-equipment .main-div {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
  "id": "fvtt-ftl-nomad",
 | 
			
		||||
  "title": "Faster Than Light : Nomad",
 | 
			
		||||
  "description": "Faster Than Light : Nomad is a system for Foundry VTT, based on the FTL system. It is a system for playing in a universe of space opera, where the players are the crew of a spaceship, traveling from planet to planet, from system to system, in search of adventure and fortune.",
 | 
			
		||||
  "manifest": "https://www.uberwald.me/gitea/public/fvtt-ftl-nomad/raw/branch/main/system.json",
 | 
			
		||||
  "manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-ftl-nomad/releases/download/latest/system.json",
 | 
			
		||||
  "download": "#{DOWNLOAD}#",
 | 
			
		||||
  "url": "https://www.uberwald.me/gitea/public/fvtt-ftl-nomad",
 | 
			
		||||
  "license": "LICENSE",
 | 
			
		||||
@@ -37,7 +37,8 @@
 | 
			
		||||
      "character": { "htmlFields": ["description", "notes"] },
 | 
			
		||||
      "creature": { "htmlFields": ["description", "notes"] },
 | 
			
		||||
      "vehicle": { "htmlFields": ["description", "notes"] },
 | 
			
		||||
      "starship": { "htmlFields": ["description", "notes"] }
 | 
			
		||||
      "starship": { "htmlFields": ["description", "notes"] },
 | 
			
		||||
      "robot": { "htmlFields": ["description", "notes"] }
 | 
			
		||||
    },
 | 
			
		||||
    "Item": {
 | 
			
		||||
      "talent": { "htmlFields": ["description"] },
 | 
			
		||||
 
 | 
			
		||||
@@ -1,109 +1,265 @@
 | 
			
		||||
<section class="character-main character-main-{{ifThen isPlayMode 'play' 'edit'}}">
 | 
			
		||||
<section
 | 
			
		||||
  class="character-main character-main-{{ifThen isPlayMode 'play' 'edit'}}"
 | 
			
		||||
>
 | 
			
		||||
  {{!log "character-main" this}}
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.character"}}</legend>
 | 
			
		||||
    <div class="character-pc character-pc-{{ifThen isPlayMode 'play' 'edit'}}">
 | 
			
		||||
      <div class="character-left">
 | 
			
		||||
        <div class="character-left-image">
 | 
			
		||||
          <img class="character-img" src="{{actor.img}}" data-edit="img" data-action="editImage"
 | 
			
		||||
            data-tooltip="{{actor.name}}" />
 | 
			
		||||
          <img
 | 
			
		||||
            class="character-img"
 | 
			
		||||
            src="{{actor.img}}"
 | 
			
		||||
            data-edit="img"
 | 
			
		||||
            data-action="editImage"
 | 
			
		||||
            data-tooltip="{{actor.name}}"
 | 
			
		||||
          />
 | 
			
		||||
        </div>
 | 
			
		||||
        <fieldset class="character-hp">
 | 
			
		||||
          <legend>{{localize "FTLNOMAD.Label.Stamina"}}</legend>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField systemFields.health.fields.staminaValue value=system.health.staminaValue}}
 | 
			
		||||
            {{formField systemFields.health.fields.staminaMax value=system.health.staminaMax rootId=partId disabled=true}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.health.fields.staminaValue
 | 
			
		||||
              value=system.health.staminaValue
 | 
			
		||||
            }}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.health.fields.staminaMax
 | 
			
		||||
              value=system.health.staminaMax
 | 
			
		||||
              rootId=partId
 | 
			
		||||
              disabled=true
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField systemFields.health.fields.wounds value=system.health.wounds }}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.health.fields.wounds
 | 
			
		||||
              value=system.health.wounds
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="character-right">
 | 
			
		||||
        <div class="character-name">
 | 
			
		||||
          {{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}}
 | 
			
		||||
          <a class="control" data-action="toggleSheet" data-tooltip="FTLNOMAD.ToggleSheet" data-tooltip-direction="UP">
 | 
			
		||||
          {{formInput
 | 
			
		||||
            fields.name
 | 
			
		||||
            value=source.name
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          <a
 | 
			
		||||
            class="control"
 | 
			
		||||
            data-action="toggleSheet"
 | 
			
		||||
            data-tooltip="FTLNOMAD.ToggleSheet"
 | 
			
		||||
            data-tooltip-direction="UP"
 | 
			
		||||
          >
 | 
			
		||||
            <i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
 | 
			
		||||
          </a>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <fieldset class="character-spec">
 | 
			
		||||
          {{formField systemFields.concept value=system.concept rootId=partId disabled=isPlayMode}}
 | 
			
		||||
          {{formField systemFields.species value=system.species rootId=partId disabled=isPlayMode}}
 | 
			
		||||
          {{formField systemFields.archetype value=system.archetype rootId=partId disabled=isPlayMode}}
 | 
			
		||||
          {{formField
 | 
			
		||||
            systemFields.concept
 | 
			
		||||
            value=system.concept
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          {{formField
 | 
			
		||||
            systemFields.species
 | 
			
		||||
            value=system.species
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          {{formField
 | 
			
		||||
            systemFields.archetype
 | 
			
		||||
            value=system.archetype
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          <div class="hero-armor">
 | 
			
		||||
            {{formField systemFields.heroPoints value=system.heroPoints rootId=partId }}
 | 
			
		||||
            {{formField systemFields.armor.fields.value value=system.armor.value rootId=partId disabled=isPlayMode}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.heroPoints
 | 
			
		||||
              value=system.heroPoints
 | 
			
		||||
              rootId=partId
 | 
			
		||||
            }}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.armor.fields.value
 | 
			
		||||
              value=system.armor.value
 | 
			
		||||
              rootId=partId
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
        <fieldset class="encumbrance">
 | 
			
		||||
        {{#if isEncumbered}}
 | 
			
		||||
          {{formField systemFields.enc.fields.value value=system.enc.value rootId=partId disabled=true classes="encumbered"}}
 | 
			
		||||
        {{else }}
 | 
			
		||||
          {{formField systemFields.enc.fields.value value=system.enc.value rootId=partId disabled=true}}
 | 
			
		||||
        {{/if}}
 | 
			
		||||
        {{formField systemFields.enc.fields.max value=system.enc.max rootId=partId disabled=isPlayMode}}
 | 
			
		||||
        {{formField systemFields.credits value=system.credits rootId=partId }}
 | 
			
		||||
      </fieldset>
 | 
			
		||||
          {{#if isEncumbered}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.enc.fields.value
 | 
			
		||||
              value=system.enc.value
 | 
			
		||||
              rootId=partId
 | 
			
		||||
              disabled=true
 | 
			
		||||
              classes="encumbered"
 | 
			
		||||
            }}
 | 
			
		||||
          {{else}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.enc.fields.value
 | 
			
		||||
              value=system.enc.value
 | 
			
		||||
              rootId=partId
 | 
			
		||||
              disabled=true
 | 
			
		||||
            }}
 | 
			
		||||
          {{/if}}
 | 
			
		||||
          {{formField
 | 
			
		||||
            systemFields.enc.fields.max
 | 
			
		||||
            value=system.enc.max
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          <span class="character-credit">
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.credits
 | 
			
		||||
              value=system.credits
 | 
			
		||||
              rootId=partId
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </span>
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset class="character-skills character-skills-{{ifThen isPlayMode 'play' 'edit'}}">
 | 
			
		||||
  <fieldset
 | 
			
		||||
    class="character-skills character-skills-{{ifThen
 | 
			
		||||
        isPlayMode
 | 
			
		||||
        'play'
 | 
			
		||||
        'edit'
 | 
			
		||||
      }}"
 | 
			
		||||
  >
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.skills"}}</legend>
 | 
			
		||||
    <div class="character-skill">
 | 
			
		||||
      <img src="systems/fvtt-ftl-nomad/assets/icons/icon_combat.svg" class="icon-skill" />
 | 
			
		||||
      <label class="rollable" data-roll-type="skill" data-skill-id="combat">{{localize
 | 
			
		||||
        "FTLNOMAD.Label.combat"}}</label>
 | 
			
		||||
      {{formInput systemFields.skills.fields.combat.fields.value value=system.skills.combat.value rootId=partId disabled=isPlayMode type="number" }}
 | 
			
		||||
      <img
 | 
			
		||||
        src="systems/fvtt-ftl-nomad/assets/icons/icon_combat.svg"
 | 
			
		||||
        class="icon-skill"
 | 
			
		||||
      />
 | 
			
		||||
      <label
 | 
			
		||||
        class="rollable"
 | 
			
		||||
        data-roll-type="skill"
 | 
			
		||||
        data-skill-id="combat"
 | 
			
		||||
      >{{localize "FTLNOMAD.Label.combat"}}</label>
 | 
			
		||||
      {{formInput
 | 
			
		||||
        systemFields.skills.fields.combat.fields.value
 | 
			
		||||
        value=system.skills.combat.value
 | 
			
		||||
        rootId=partId
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
        type="number"
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="character-skill">
 | 
			
		||||
      <img src="systems/fvtt-ftl-nomad/assets/icons/icon_knowledge.svg" class="icon-skill" />
 | 
			
		||||
      <label class="rollable" data-roll-type="skill" data-skill-id="knowledge">{{localize
 | 
			
		||||
        "FTLNOMAD.Label.knowledge"}}</label>
 | 
			
		||||
      {{formInput systemFields.skills.fields.knowledge.fields.value value=system.skills.knowledge.value
 | 
			
		||||
      rootId=partId disabled=isPlayMode  type="number"}}
 | 
			
		||||
      <img
 | 
			
		||||
        src="systems/fvtt-ftl-nomad/assets/icons/icon_knowledge.svg"
 | 
			
		||||
        class="icon-skill"
 | 
			
		||||
      />
 | 
			
		||||
      <label
 | 
			
		||||
        class="rollable"
 | 
			
		||||
        data-roll-type="skill"
 | 
			
		||||
        data-skill-id="knowledge"
 | 
			
		||||
      >{{localize "FTLNOMAD.Label.knowledge"}}</label>
 | 
			
		||||
      {{formInput
 | 
			
		||||
        systemFields.skills.fields.knowledge.fields.value
 | 
			
		||||
        value=system.skills.knowledge.value
 | 
			
		||||
        rootId=partId
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
        type="number"
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="character-skill">
 | 
			
		||||
      <img src="systems/fvtt-ftl-nomad/assets/icons/icon_social.svg" class="icon-skill" />
 | 
			
		||||
      <label class="rollable" data-roll-type="skill" data-skill-id="social">{{localize
 | 
			
		||||
        "FTLNOMAD.Label.social"}}</label>
 | 
			
		||||
      {{formInput systemFields.skills.fields.social.fields.value value=system.skills.social.value
 | 
			
		||||
      rootId=partId disabled=isPlayMode  type="number"}}
 | 
			
		||||
      <img
 | 
			
		||||
        src="systems/fvtt-ftl-nomad/assets/icons/icon_social.svg"
 | 
			
		||||
        class="icon-skill"
 | 
			
		||||
      />
 | 
			
		||||
      <label
 | 
			
		||||
        class="rollable"
 | 
			
		||||
        data-roll-type="skill"
 | 
			
		||||
        data-skill-id="social"
 | 
			
		||||
      >{{localize "FTLNOMAD.Label.social"}}</label>
 | 
			
		||||
      {{formInput
 | 
			
		||||
        systemFields.skills.fields.social.fields.value
 | 
			
		||||
        value=system.skills.social.value
 | 
			
		||||
        rootId=partId
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
        type="number"
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="character-skill">
 | 
			
		||||
      <img src="systems/fvtt-ftl-nomad/assets/icons/icon_physical.svg" class="icon-skill" />
 | 
			
		||||
      <label class="rollable" data-roll-type="skill" data-skill-id="physical">{{localize
 | 
			
		||||
        "FTLNOMAD.Label.physical"}}</label>
 | 
			
		||||
      {{formInput systemFields.skills.fields.physical.fields.value value=system.skills.physical.value
 | 
			
		||||
      rootId=partId disabled=isPlayMode  type="number"}}
 | 
			
		||||
      <img
 | 
			
		||||
        src="systems/fvtt-ftl-nomad/assets/icons/icon_physical.svg"
 | 
			
		||||
        class="icon-skill"
 | 
			
		||||
      />
 | 
			
		||||
      <label
 | 
			
		||||
        class="rollable"
 | 
			
		||||
        data-roll-type="skill"
 | 
			
		||||
        data-skill-id="physical"
 | 
			
		||||
      >{{localize "FTLNOMAD.Label.physical"}}</label>
 | 
			
		||||
      {{formInput
 | 
			
		||||
        systemFields.skills.fields.physical.fields.value
 | 
			
		||||
        value=system.skills.physical.value
 | 
			
		||||
        rootId=partId
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
        type="number"
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="character-skill">
 | 
			
		||||
      <img src="systems/fvtt-ftl-nomad/assets/icons/icon_stealth.svg" class="icon-skill" />
 | 
			
		||||
      <label class="rollable" data-roll-type="skill" data-skill-id="stealth">{{localize
 | 
			
		||||
        "FTLNOMAD.Label.stealth"}}</label>
 | 
			
		||||
      {{formInput systemFields.skills.fields.stealth.fields.value value=system.skills.stealth.value
 | 
			
		||||
      rootId=partId disabled=isPlayMode  type="number"}}
 | 
			
		||||
      <img
 | 
			
		||||
        src="systems/fvtt-ftl-nomad/assets/icons/icon_stealth.svg"
 | 
			
		||||
        class="icon-skill"
 | 
			
		||||
      />
 | 
			
		||||
      <label
 | 
			
		||||
        class="rollable"
 | 
			
		||||
        data-roll-type="skill"
 | 
			
		||||
        data-skill-id="stealth"
 | 
			
		||||
      >{{localize "FTLNOMAD.Label.stealth"}}</label>
 | 
			
		||||
      {{formInput
 | 
			
		||||
        systemFields.skills.fields.stealth.fields.value
 | 
			
		||||
        value=system.skills.stealth.value
 | 
			
		||||
        rootId=partId
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
        type="number"
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="character-skill">
 | 
			
		||||
      <img src="systems/fvtt-ftl-nomad/assets/icons/icon_vehicles.svg" class="icon-skill" />
 | 
			
		||||
      <label class="rollable" data-roll-type="skill" data-skill-id="vehicles">{{localize
 | 
			
		||||
        "FTLNOMAD.Label.vehicles"}}</label>
 | 
			
		||||
      {{formInput systemFields.skills.fields.vehicles.fields.value value=system.skills.vehicles.value
 | 
			
		||||
      rootId=partId disabled=isPlayMode  type="number"}}
 | 
			
		||||
      <img
 | 
			
		||||
        src="systems/fvtt-ftl-nomad/assets/icons/icon_vehicles.svg"
 | 
			
		||||
        class="icon-skill"
 | 
			
		||||
      />
 | 
			
		||||
      <label
 | 
			
		||||
        class="rollable"
 | 
			
		||||
        data-roll-type="skill"
 | 
			
		||||
        data-skill-id="vehicles"
 | 
			
		||||
      >{{localize "FTLNOMAD.Label.vehicles"}}</label>
 | 
			
		||||
      {{formInput
 | 
			
		||||
        systemFields.skills.fields.vehicles.fields.value
 | 
			
		||||
        value=system.skills.vehicles.value
 | 
			
		||||
        rootId=partId
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
        type="number"
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="character-skill">
 | 
			
		||||
      <img src="systems/fvtt-ftl-nomad/assets/icons/icon_technology.svg" class="icon-skill" />
 | 
			
		||||
      <label class="rollable" data-roll-type="skill" data-skill-id="technology">{{localize
 | 
			
		||||
        "FTLNOMAD.Label.technology"}}</label>
 | 
			
		||||
      {{formInput systemFields.skills.fields.technology.fields.value value=system.skills.technology.value
 | 
			
		||||
      rootId=partId disabled=isPlayMode  type="number"}}
 | 
			
		||||
      <img
 | 
			
		||||
        src="systems/fvtt-ftl-nomad/assets/icons/icon_technology.svg"
 | 
			
		||||
        class="icon-skill"
 | 
			
		||||
      />
 | 
			
		||||
      <label
 | 
			
		||||
        class="rollable"
 | 
			
		||||
        data-roll-type="skill"
 | 
			
		||||
        data-skill-id="technology"
 | 
			
		||||
      >{{localize "FTLNOMAD.Label.technology"}}</label>
 | 
			
		||||
      {{formInput
 | 
			
		||||
        systemFields.skills.fields.technology.fields.value
 | 
			
		||||
        value=system.skills.technology.value
 | 
			
		||||
        rootId=partId
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
        type="number"
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</section>
 | 
			
		||||
@@ -8,43 +8,44 @@
 | 
			
		||||
      <ul>
 | 
			
		||||
 | 
			
		||||
        {{#if (eq rollType "skill")}}
 | 
			
		||||
        <li><strong>{{localize "FTLNOMAD.Label.skillRoll"}}</strong></li>
 | 
			
		||||
          <li><strong>{{localize "FTLNOMAD.Label.skillRoll"}}</strong></li>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        {{#if (eq rollType "damage")}}
 | 
			
		||||
        <li class="result-success">Weapon Damage</li>
 | 
			
		||||
        <li><strong>{{weapon.name}}</strong></li>
 | 
			
		||||
          <li class="result-success">Weapon Damage</li>
 | 
			
		||||
          <li><strong>{{weapon.name}}</strong></li>
 | 
			
		||||
        {{else}}
 | 
			
		||||
        {{#if weapon}}
 | 
			
		||||
        <li><strong>Weapon : {{weapon.name}}</strong></li>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
          {{#if weapon}}
 | 
			
		||||
            <li><strong>Weapon : {{weapon.name}}</strong></li>
 | 
			
		||||
            <li><strong>Aspects : {{weapon.system.aspect}}</strong></li>
 | 
			
		||||
          {{/if}}
 | 
			
		||||
        {{/if}}
 | 
			
		||||
 | 
			
		||||
        <li><strong>{{localize rollItem.label}} : {{fullFormula}}</strong></li>
 | 
			
		||||
 | 
			
		||||
        {{#if (eq rollType "damage")}}
 | 
			
		||||
        {{else}}
 | 
			
		||||
        {{#if isEncumbered}}
 | 
			
		||||
        <li class="red-warning">Encumbered : -1D</li>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
        <li>{{localize "FTLNOMAD.Label.modifier"}} : {{skillModifier}}D {{rangeModifier}}D {{numericModifier}}D</li>
 | 
			
		||||
        {{#if (eq rollType "damage")}}{{else}}
 | 
			
		||||
          {{#if isEncumbered}}
 | 
			
		||||
            <li class="red-warning">Encumbered : -1D</li>
 | 
			
		||||
          {{/if}}
 | 
			
		||||
          <li>{{localize "FTLNOMAD.Label.modifier"}}
 | 
			
		||||
            :
 | 
			
		||||
            {{skillModifier}}D
 | 
			
		||||
            {{rangeModifier}}D
 | 
			
		||||
            {{numericModifier}}D</li>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
 | 
			
		||||
        {{#if (eq rollType "damage")}}{{else}}
 | 
			
		||||
          {{#if isSuccess}}
 | 
			
		||||
            <li class="result-success">
 | 
			
		||||
              {{localize "FTLNOMAD.Label.success"}}
 | 
			
		||||
            </li>
 | 
			
		||||
          {{/if}}
 | 
			
		||||
 | 
			
		||||
        {{#if (eq rollType "damage")}}
 | 
			
		||||
        {{else}}
 | 
			
		||||
        {{#if isSuccess}}
 | 
			
		||||
        <li class="result-success">
 | 
			
		||||
          {{localize "FTLNOMAD.Label.success"}}
 | 
			
		||||
        </li>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
 | 
			
		||||
        {{#if isFailure}}
 | 
			
		||||
        <li class="result-failure">
 | 
			
		||||
          {{localize "FTLNOMAD.Label.failure"}}
 | 
			
		||||
        </li>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
          {{#if isFailure}}
 | 
			
		||||
            <li class="result-failure">
 | 
			
		||||
              {{localize "FTLNOMAD.Label.failure"}}
 | 
			
		||||
            </li>
 | 
			
		||||
          {{/if}}
 | 
			
		||||
        {{/if}}
 | 
			
		||||
 | 
			
		||||
      </ul>
 | 
			
		||||
@@ -52,18 +53,22 @@
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  {{#if isDamage}}
 | 
			
		||||
  <div>
 | 
			
		||||
    {{#if (and isGM hasTarget)}}
 | 
			
		||||
    {{{localize "FTLNOMAD.Roll.displayArmor" targetName=targetName targetArmor=targetArmor
 | 
			
		||||
    realDamage=realDamage}}}
 | 
			
		||||
    {{/if}}
 | 
			
		||||
  </div>
 | 
			
		||||
    <div>
 | 
			
		||||
      {{#if (and isGM hasTarget)}}
 | 
			
		||||
        {{{localize
 | 
			
		||||
          "FTLNOMAD.Roll.displayArmor"
 | 
			
		||||
          targetName=targetName
 | 
			
		||||
          targetArmor=targetArmor
 | 
			
		||||
          realDamage=realDamage
 | 
			
		||||
        }}}
 | 
			
		||||
      {{/if}}
 | 
			
		||||
    </div>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
  {{#unless isPrivate}}
 | 
			
		||||
  <div class="dice-result">
 | 
			
		||||
    <h4 class="dice-total">{{total}}</h4>
 | 
			
		||||
    <div class="dice-formula">{{formula}}</div>
 | 
			
		||||
    {{{tooltip}}}
 | 
			
		||||
  </div>
 | 
			
		||||
    <div class="dice-result">
 | 
			
		||||
      <h4 class="dice-total">{{total}}</h4>
 | 
			
		||||
      <div class="dice-formula">{{formula}}</div>
 | 
			
		||||
      {{{tooltip}}}
 | 
			
		||||
    </div>
 | 
			
		||||
  {{/unless}}
 | 
			
		||||
</div>
 | 
			
		||||
@@ -1,18 +1,33 @@
 | 
			
		||||
<section class="tab creature-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
 | 
			
		||||
<section
 | 
			
		||||
  class="tab creature-{{tab.id}} {{tab.cssClass}}"
 | 
			
		||||
  data-tab="{{tab.id}}"
 | 
			
		||||
  data-group="{{tab.group}}"
 | 
			
		||||
>
 | 
			
		||||
 | 
			
		||||
<div class="main-div">
 | 
			
		||||
  <div class="main-div">
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.description"}}</legend>
 | 
			
		||||
    {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description"
 | 
			
		||||
    toggled=true}}
 | 
			
		||||
  </fieldset>
 | 
			
		||||
    <fieldset class="section-editor">
 | 
			
		||||
      <legend>{{localize "FTLNOMAD.Label.description"}}</legend>
 | 
			
		||||
      {{formInput
 | 
			
		||||
        systemFields.description
 | 
			
		||||
        enriched=enrichedDescription
 | 
			
		||||
        value=system.description
 | 
			
		||||
        name="system.description"
 | 
			
		||||
        toggled=true
 | 
			
		||||
      }}
 | 
			
		||||
    </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.notes"}}</legend>
 | 
			
		||||
    {{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
 | 
			
		||||
  </fieldset>
 | 
			
		||||
    <fieldset class="section-editor">
 | 
			
		||||
      <legend>{{localize "FTLNOMAD.Label.notes"}}</legend>
 | 
			
		||||
      {{formInput
 | 
			
		||||
        systemFields.notes
 | 
			
		||||
        enriched=enrichedNotes
 | 
			
		||||
        value=system.notes
 | 
			
		||||
        name="system.notes"
 | 
			
		||||
        toggled=true
 | 
			
		||||
      }}
 | 
			
		||||
    </fieldset>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
</section>
 | 
			
		||||
							
								
								
									
										53
									
								
								templates/robot-description.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								templates/robot-description.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
<section
 | 
			
		||||
  class="tab robot-{{tab.id}} {{tab.cssClass}}"
 | 
			
		||||
  data-tab="{{tab.id}}"
 | 
			
		||||
  data-group="{{tab.group}}"
 | 
			
		||||
>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>Tech Age</legend>
 | 
			
		||||
    <div class="flexrow">
 | 
			
		||||
      {{formField
 | 
			
		||||
        systemFields.techAge
 | 
			
		||||
        value=system.techAge
 | 
			
		||||
        localize=true
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <!-- <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.damages"}}</legend>
 | 
			
		||||
    <div class="text-center">
 | 
			
		||||
      <textarea
 | 
			
		||||
        class="form-control"
 | 
			
		||||
        cols="64"
 | 
			
		||||
        rows="5"
 | 
			
		||||
        name="system.damages"
 | 
			
		||||
        data-tooltip="{{localize 'FTLNOMAD.Tooltip.damages'}}"
 | 
			
		||||
      >{{system.damages}}</textarea>
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset> -->
 | 
			
		||||
 | 
			
		||||
  <fieldset class="section-editor">
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.description"}}</legend>
 | 
			
		||||
    {{formInput
 | 
			
		||||
      systemFields.description
 | 
			
		||||
      enriched=enrichedDescription
 | 
			
		||||
      value=system.description
 | 
			
		||||
      name="system.description"
 | 
			
		||||
      toggled=true
 | 
			
		||||
    }}
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset class="section-editor">
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.notes"}}</legend>
 | 
			
		||||
    {{formInput
 | 
			
		||||
      systemFields.notes
 | 
			
		||||
      enriched=enrichedNotes
 | 
			
		||||
      value=system.notes
 | 
			
		||||
      name="system.notes"
 | 
			
		||||
      toggled=true
 | 
			
		||||
    }}
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
</section>
 | 
			
		||||
							
								
								
									
										107
									
								
								templates/robot-equipment.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								templates/robot-equipment.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,107 @@
 | 
			
		||||
<section
 | 
			
		||||
  class="tab robot-{{tab.id}} {{tab.cssClass}}"
 | 
			
		||||
  data-tab="{{tab.id}}"
 | 
			
		||||
  data-group="{{tab.group}}"
 | 
			
		||||
>
 | 
			
		||||
  <div class="main-div">
 | 
			
		||||
    <fieldset>
 | 
			
		||||
      <legend>{{localize "FTLNOMAD.Label.weapons"}}{{#if isEditMode}}
 | 
			
		||||
          <a
 | 
			
		||||
            class="action"
 | 
			
		||||
            data-tooltip="{{localize 'FTLNOMAD.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 item"
 | 
			
		||||
            data-item-id="{{item.id}}"
 | 
			
		||||
            data-item-uuid="{{item.uuid}}"
 | 
			
		||||
            data-drag="true"
 | 
			
		||||
          >
 | 
			
		||||
            <img
 | 
			
		||||
              class="item-img"
 | 
			
		||||
              src="{{item.img}}"
 | 
			
		||||
              data-tooltip="{{item.name}}"
 | 
			
		||||
            />
 | 
			
		||||
            <div
 | 
			
		||||
              class="name"
 | 
			
		||||
              data-roll-type="weapon"
 | 
			
		||||
              data-tooltip="{{{item.system.description}}}"
 | 
			
		||||
            >
 | 
			
		||||
              {{item.name}}
 | 
			
		||||
            </div>
 | 
			
		||||
            <a
 | 
			
		||||
              class="damage rollable"
 | 
			
		||||
              data-item-id="{{item.id}}"
 | 
			
		||||
              data-action="roll"
 | 
			
		||||
              data-roll-type="damage"
 | 
			
		||||
              data-roll-value="{{item.system.damage}}"
 | 
			
		||||
            >{{localize "FTLNOMAD.Label.damageShort"}}
 | 
			
		||||
              :
 | 
			
		||||
              {{item.system.damage}}</a>
 | 
			
		||||
            <div class="controls">
 | 
			
		||||
              <a
 | 
			
		||||
                data-tooltip="{{localize 'FTLNOMAD.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 'FTLNOMAD.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 "FTLNOMAD.Label.equipment"}}{{#if isEditMode}}
 | 
			
		||||
          <a
 | 
			
		||||
            class="action"
 | 
			
		||||
            data-tooltip="{{localize 'FTLNOMAD.Tooltip.addEquipment'}}"
 | 
			
		||||
            data-tooltip-direction="UP"
 | 
			
		||||
          ><i class="fas fa-plus" data-action="createEquipment"></i></a>{{/if}}
 | 
			
		||||
      </legend>
 | 
			
		||||
      <div class="equipments">
 | 
			
		||||
        {{#each equipments as |item|}}
 | 
			
		||||
          {{!log 'armor' this}}
 | 
			
		||||
          <div
 | 
			
		||||
            class="equipment"
 | 
			
		||||
            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 'FTLNOMAD.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 'FTLNOMAD.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>
 | 
			
		||||
  </div>
 | 
			
		||||
</section>
 | 
			
		||||
							
								
								
									
										258
									
								
								templates/robot-main.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										258
									
								
								templates/robot-main.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,258 @@
 | 
			
		||||
<section class="robot-main robot-main-{{ifThen isPlayMode 'play' 'edit'}}">
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.robot"}}</legend>
 | 
			
		||||
    <div class="robot-pc robot-pc-{{ifThen isPlayMode 'play' 'edit'}}">
 | 
			
		||||
 | 
			
		||||
      <div class="robot-left">
 | 
			
		||||
        <div class="robot-left-image">
 | 
			
		||||
          <img
 | 
			
		||||
            class="robot-img"
 | 
			
		||||
            src="{{actor.img}}"
 | 
			
		||||
            data-edit="img"
 | 
			
		||||
            data-action="editImage"
 | 
			
		||||
            data-tooltip="{{actor.name}}"
 | 
			
		||||
          />
 | 
			
		||||
        </div>
 | 
			
		||||
        <div>
 | 
			
		||||
          <fieldset class="robot-cost">
 | 
			
		||||
            <legend>Cost</legend>
 | 
			
		||||
            <div class="flexrow">
 | 
			
		||||
              {{formField
 | 
			
		||||
                systemFields.cost
 | 
			
		||||
                value=system.cost
 | 
			
		||||
                localize=true
 | 
			
		||||
                disabled=isPlayMode
 | 
			
		||||
              }}
 | 
			
		||||
            </div>
 | 
			
		||||
          </fieldset>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="robot-right">
 | 
			
		||||
        <div class="robot-name">
 | 
			
		||||
          {{formInput
 | 
			
		||||
            fields.name
 | 
			
		||||
            value=source.name
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          <a
 | 
			
		||||
            class="control"
 | 
			
		||||
            data-action="toggleSheet"
 | 
			
		||||
            data-tooltip="FTLNOMAD.ToggleSheet"
 | 
			
		||||
            data-tooltip-direction="UP"
 | 
			
		||||
          >
 | 
			
		||||
            <i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
 | 
			
		||||
          </a>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <fieldset class="main-stats">
 | 
			
		||||
          <legend>{{localize "FTLNOMAD.Label.mainStats"}}</legend>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.robotSize
 | 
			
		||||
              value=system.robotSize
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
             
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.protection
 | 
			
		||||
              value=system.protection
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.speed
 | 
			
		||||
              value=system.speed
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
             
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.durability
 | 
			
		||||
              value=system.durability
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
          {{#if isEncumbered}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.enc.fields.value
 | 
			
		||||
              value=system.enc.value
 | 
			
		||||
              rootId=partId
 | 
			
		||||
              disabled=true
 | 
			
		||||
              classes="encumbered"
 | 
			
		||||
            }}
 | 
			
		||||
          {{else}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.enc.fields.value
 | 
			
		||||
              value=system.enc.value
 | 
			
		||||
              rootId=partId
 | 
			
		||||
              disabled=true
 | 
			
		||||
            }}
 | 
			
		||||
          {{/if}}
 | 
			
		||||
            
 | 
			
		||||
          {{formField
 | 
			
		||||
            systemFields.enc.fields.max
 | 
			
		||||
            value=system.enc.max
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          </div>
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
        <fieldset class="robot-brain">
 | 
			
		||||
          <legend>Brain</legend>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            <textarea
 | 
			
		||||
              cols="64"
 | 
			
		||||
              rows="2"
 | 
			
		||||
              name="system.brain"
 | 
			
		||||
              data-tooltip="{{localize 'FTLNOMAD.Tooltip.brain'}}"
 | 
			
		||||
              {{#if isPlayMode}}disabled{{/if}}>{{system.brain}}</textarea>
 | 
			
		||||
          </div>
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <fieldset
 | 
			
		||||
        class="robot-skills robot-skills-{{ifThen isPlayMode 'play' 'edit'}}"
 | 
			
		||||
      >
 | 
			
		||||
        <legend>{{localize "FTLNOMAD.Label.skills"}}</legend>
 | 
			
		||||
        <div class="robot-skill">
 | 
			
		||||
          <img
 | 
			
		||||
            src="systems/fvtt-ftl-nomad/assets/icons/icon_combat.svg"
 | 
			
		||||
            class="icon-skill"
 | 
			
		||||
          />
 | 
			
		||||
          <label
 | 
			
		||||
            class="rollable"
 | 
			
		||||
            data-roll-type="skill"
 | 
			
		||||
            data-skill-id="combat"
 | 
			
		||||
          >{{localize "FTLNOMAD.Label.combat"}}</label>
 | 
			
		||||
          {{formInput
 | 
			
		||||
            systemFields.skills.fields.combat.fields.value
 | 
			
		||||
            value=system.skills.combat.value
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
            type="number"
 | 
			
		||||
          }}
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="robot-skill">
 | 
			
		||||
          <img
 | 
			
		||||
            src="systems/fvtt-ftl-nomad/assets/icons/icon_knowledge.svg"
 | 
			
		||||
            class="icon-skill"
 | 
			
		||||
          />
 | 
			
		||||
          <label
 | 
			
		||||
            class="rollable"
 | 
			
		||||
            data-roll-type="skill"
 | 
			
		||||
            data-skill-id="knowledge"
 | 
			
		||||
          >{{localize "FTLNOMAD.Label.knowledge"}}</label>
 | 
			
		||||
          {{formInput
 | 
			
		||||
            systemFields.skills.fields.knowledge.fields.value
 | 
			
		||||
            value=system.skills.knowledge.value
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
            type="number"
 | 
			
		||||
          }}
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="robot-skill">
 | 
			
		||||
          <img
 | 
			
		||||
            src="systems/fvtt-ftl-nomad/assets/icons/icon_social.svg"
 | 
			
		||||
            class="icon-skill"
 | 
			
		||||
          />
 | 
			
		||||
          <label
 | 
			
		||||
            class="rollable"
 | 
			
		||||
            data-roll-type="skill"
 | 
			
		||||
            data-skill-id="social"
 | 
			
		||||
          >{{localize "FTLNOMAD.Label.social"}}</label>
 | 
			
		||||
          {{formInput
 | 
			
		||||
            systemFields.skills.fields.social.fields.value
 | 
			
		||||
            value=system.skills.social.value
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
            type="number"
 | 
			
		||||
          }}
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="robot-skill">
 | 
			
		||||
          <img
 | 
			
		||||
            src="systems/fvtt-ftl-nomad/assets/icons/icon_physical.svg"
 | 
			
		||||
            class="icon-skill"
 | 
			
		||||
          />
 | 
			
		||||
          <label
 | 
			
		||||
            class="rollable"
 | 
			
		||||
            data-roll-type="skill"
 | 
			
		||||
            data-skill-id="physical"
 | 
			
		||||
          >{{localize "FTLNOMAD.Label.physical"}}</label>
 | 
			
		||||
          {{formInput
 | 
			
		||||
            systemFields.skills.fields.physical.fields.value
 | 
			
		||||
            value=system.skills.physical.value
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
            type="number"
 | 
			
		||||
          }}
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="robot-skill">
 | 
			
		||||
          <img
 | 
			
		||||
            src="systems/fvtt-ftl-nomad/assets/icons/icon_stealth.svg"
 | 
			
		||||
            class="icon-skill"
 | 
			
		||||
          />
 | 
			
		||||
          <label
 | 
			
		||||
            class="rollable"
 | 
			
		||||
            data-roll-type="skill"
 | 
			
		||||
            data-skill-id="stealth"
 | 
			
		||||
          >{{localize "FTLNOMAD.Label.stealth"}}</label>
 | 
			
		||||
          {{formInput
 | 
			
		||||
            systemFields.skills.fields.stealth.fields.value
 | 
			
		||||
            value=system.skills.stealth.value
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
            type="number"
 | 
			
		||||
          }}
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="robot-skill">
 | 
			
		||||
          <img
 | 
			
		||||
            src="systems/fvtt-ftl-nomad/assets/icons/icon_vehicles.svg"
 | 
			
		||||
            class="icon-skill"
 | 
			
		||||
          />
 | 
			
		||||
          <label
 | 
			
		||||
            class="rollable"
 | 
			
		||||
            data-roll-type="skill"
 | 
			
		||||
            data-skill-id="vehicles"
 | 
			
		||||
          >{{localize "FTLNOMAD.Label.vehicles"}}</label>
 | 
			
		||||
          {{formInput
 | 
			
		||||
            systemFields.skills.fields.vehicles.fields.value
 | 
			
		||||
            value=system.skills.vehicles.value
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
            type="number"
 | 
			
		||||
          }}
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="robot-skill">
 | 
			
		||||
          <img
 | 
			
		||||
            src="systems/fvtt-ftl-nomad/assets/icons/icon_technology.svg"
 | 
			
		||||
            class="icon-skill"
 | 
			
		||||
          />
 | 
			
		||||
          <label
 | 
			
		||||
            class="rollable"
 | 
			
		||||
            data-roll-type="skill"
 | 
			
		||||
            data-skill-id="technology"
 | 
			
		||||
          >{{localize "FTLNOMAD.Label.technology"}}</label>
 | 
			
		||||
          {{formInput
 | 
			
		||||
            systemFields.skills.fields.technology.fields.value
 | 
			
		||||
            value=system.skills.technology.value
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
            type="number"
 | 
			
		||||
          }}
 | 
			
		||||
        </div>
 | 
			
		||||
      </fieldset>
 | 
			
		||||
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
</section>
 | 
			
		||||
@@ -3,56 +3,121 @@
 | 
			
		||||
  <fieldSet>
 | 
			
		||||
 | 
			
		||||
    {{#if (eq rollType "skill")}}
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.skill"}}</legend>
 | 
			
		||||
      <legend>{{localize "FTLNOMAD.Label.skill"}}</legend>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 | 
			
		||||
    {{#if (eq rollType "damage")}}
 | 
			
		||||
    <div class="dialog-skill">Damage : {{weapon.system.damage}}</div>
 | 
			
		||||
    <div class="dialog-skill">Weapon : {{weapon.name}}</div>
 | 
			
		||||
      <div class="dialog-skill">Damage : {{weapon.system.damage}}</div>
 | 
			
		||||
      <div class="dialog-skill">Weapon : {{weapon.name}}</div>
 | 
			
		||||
    {{else}}
 | 
			
		||||
    <div class="dialog-skill">{{localize rollItem.label}} : 2d6+{{rollItem.value}}</div>
 | 
			
		||||
      <div class="dialog-skill">{{localize rollItem.label}}
 | 
			
		||||
        : 2d6+{{rollItem.value}}</div>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 | 
			
		||||
    {{#if (eq rollType "weapon")}}
 | 
			
		||||
    <div class="dialog-skill">Weapon : {{weapon.name}}</div>
 | 
			
		||||
      <div class="dialog-skill">Weapon : {{weapon.name}}</div>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 | 
			
		||||
    {{#if isEncumbered}}
 | 
			
		||||
    <div class="dialog-skill red-warning">Encumbered : -1D</div>
 | 
			
		||||
      <div class="dialog-skill red-warning">Encumbered : -1D</div>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 | 
			
		||||
  </fieldSet>
 | 
			
		||||
 | 
			
		||||
  <fieldSet class="dialog-modifier">
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.modifier"}}</legend>
 | 
			
		||||
 | 
			
		||||
    <select name="modifier" class="roll-skill-modifier">
 | 
			
		||||
      {{selectOptions choiceModifier selected=modifier localize=true}}
 | 
			
		||||
    </select>
 | 
			
		||||
    {{#if (eq rollType "damage")}}
 | 
			
		||||
      <legend>Damage advantages/disadvantages</legend>
 | 
			
		||||
      <select name="damageModifier" class="roll-damage-modifier">
 | 
			
		||||
        {{selectOptions
 | 
			
		||||
          choiceDamageModifier
 | 
			
		||||
          selected=damageModifier
 | 
			
		||||
          localize=true
 | 
			
		||||
        }}
 | 
			
		||||
      </select>
 | 
			
		||||
    {{else}}
 | 
			
		||||
      <legend>{{localize "FTLNOMAD.Label.modifier"}}</legend>
 | 
			
		||||
      <select name="modifier" class="roll-skill-modifier">
 | 
			
		||||
        {{selectOptions choiceModifier selected=modifier localize=true}}
 | 
			
		||||
      </select>
 | 
			
		||||
      <label>{{localize "FTLNOMAD.Label.numericModifier"}}</label>
 | 
			
		||||
      <select name="numericModifierSelect" class="roll-numeric-modifier">
 | 
			
		||||
        {{selectOptions choiceNumericModifier selected=numericModifierSelect}}
 | 
			
		||||
      </select>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 | 
			
		||||
    {{#if (eq rollType "weapon")}}
 | 
			
		||||
    <select name="range-modifier" class="roll-skill-range-modifier">
 | 
			
		||||
      {{selectOptions choiceRangeModifier selected=rangeModifier}}
 | 
			
		||||
    </select>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li>Two Attacks : <input type="checkbox" name="isAiming" data-field="two-attacks" class="select-combat-option">
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>Aiming : <input type="checkbox" data-field="aiming" class="select-combat-option"></li>
 | 
			
		||||
      <li>Dim Lightning : <input type="checkbox" data-field="dim" class="select-combat-option"></li>
 | 
			
		||||
      <li>Darkness : <input type="checkbox" data-field="darkness" class="select-combat-option"></li>
 | 
			
		||||
      <li>Target Prone/Obscured : <input type="checkbox" data-field="prone" class="select-combat-option"></li>
 | 
			
		||||
      <li>Target Cover : <input type="checkbox" data-field="cover" class="select-combat-option"></li>
 | 
			
		||||
      <li>1/2 Auto Fire Recoil : <input type="checkbox" data-field="recoil-first" class="select-combat-option"></li>
 | 
			
		||||
      <li>2+ Auto Fire Recoil : <input type="checkbox" data-field="recoil-third" class="select-combat-option"></li>
 | 
			
		||||
      <li>Target Aware : <input type="checkbox" data-field="aware" class="select-combat-option"></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
      <select name="range-modifier" class="roll-skill-range-modifier">
 | 
			
		||||
        {{selectOptions choiceRangeModifier selected=rangeModifier}}
 | 
			
		||||
      </select>
 | 
			
		||||
      <ul>
 | 
			
		||||
        <li>Two Attacks :
 | 
			
		||||
          <input
 | 
			
		||||
            type="checkbox"
 | 
			
		||||
            name="isAiming"
 | 
			
		||||
            data-field="two-attacks"
 | 
			
		||||
            class="select-combat-option"
 | 
			
		||||
          />
 | 
			
		||||
        </li>
 | 
			
		||||
        <li>Aiming :
 | 
			
		||||
          <input
 | 
			
		||||
            type="checkbox"
 | 
			
		||||
            data-field="aiming"
 | 
			
		||||
            class="select-combat-option"
 | 
			
		||||
          /></li>
 | 
			
		||||
        <li>Dim Lightning :
 | 
			
		||||
          <input
 | 
			
		||||
            type="checkbox"
 | 
			
		||||
            data-field="dim"
 | 
			
		||||
            class="select-combat-option"
 | 
			
		||||
          /></li>
 | 
			
		||||
        <li>Darkness :
 | 
			
		||||
          <input
 | 
			
		||||
            type="checkbox"
 | 
			
		||||
            data-field="darkness"
 | 
			
		||||
            class="select-combat-option"
 | 
			
		||||
          /></li>
 | 
			
		||||
        <li>Target Prone/Obscured :
 | 
			
		||||
          <input
 | 
			
		||||
            type="checkbox"
 | 
			
		||||
            data-field="prone"
 | 
			
		||||
            class="select-combat-option"
 | 
			
		||||
          /></li>
 | 
			
		||||
        <li>Target Cover :
 | 
			
		||||
          <input
 | 
			
		||||
            type="checkbox"
 | 
			
		||||
            data-field="cover"
 | 
			
		||||
            class="select-combat-option"
 | 
			
		||||
          /></li>
 | 
			
		||||
        <li>1/2 Auto Fire Recoil :
 | 
			
		||||
          <input
 | 
			
		||||
            type="checkbox"
 | 
			
		||||
            data-field="recoil-first"
 | 
			
		||||
            class="select-combat-option"
 | 
			
		||||
          /></li>
 | 
			
		||||
        <li>2+ Auto Fire Recoil :
 | 
			
		||||
          <input
 | 
			
		||||
            type="checkbox"
 | 
			
		||||
            data-field="recoil-third"
 | 
			
		||||
            class="select-combat-option"
 | 
			
		||||
          /></li>
 | 
			
		||||
        <li>Target Aware :
 | 
			
		||||
          <input
 | 
			
		||||
            type="checkbox"
 | 
			
		||||
            data-field="aware"
 | 
			
		||||
            class="select-combat-option"
 | 
			
		||||
          /></li>
 | 
			
		||||
      </ul>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 | 
			
		||||
  </fieldSet>
 | 
			
		||||
 | 
			
		||||
  <fieldSet class="dialog-formula">
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.formula"}}</legend>
 | 
			
		||||
    <label name="fullFormula" id="roll-dialog-full-formula">{{fullFormula}}</label>
 | 
			
		||||
    <label
 | 
			
		||||
      name="fullFormula"
 | 
			
		||||
      id="roll-dialog-full-formula"
 | 
			
		||||
    >{{fullFormula}}</label>
 | 
			
		||||
  </fieldSet>
 | 
			
		||||
 | 
			
		||||
  <fieldSet>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,24 +1,78 @@
 | 
			
		||||
<section class="tab starship-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
 | 
			
		||||
<section
 | 
			
		||||
  class="tab starship-{{tab.id}} {{tab.cssClass}}"
 | 
			
		||||
  data-tab="{{tab.id}}"
 | 
			
		||||
  data-group="{{tab.group}}"
 | 
			
		||||
>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.techAge"}}</legend>
 | 
			
		||||
    <div class="flexrow">
 | 
			
		||||
      {{formField
 | 
			
		||||
        systemFields.techAge
 | 
			
		||||
        value=system.techAge
 | 
			
		||||
        localize=true
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
      }}
 | 
			
		||||
       
 | 
			
		||||
      {{formField
 | 
			
		||||
        systemFields.cost
 | 
			
		||||
        value=system.cost
 | 
			
		||||
        localize=true
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
      }}
 | 
			
		||||
       
 | 
			
		||||
      {{formField
 | 
			
		||||
        systemFields.monthlyCost
 | 
			
		||||
        value=system.monthlyCost
 | 
			
		||||
        localize=true
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.damages"}}</legend>
 | 
			
		||||
    <textarea class="form-control" cols="66" rows="5" name="system.damages"
 | 
			
		||||
      data-tooltip="{{localize "FTLNOMAD.Tooltip.damages"}}">{{system.damages}}</textarea>
 | 
			
		||||
    <textarea
 | 
			
		||||
      class="form-control"
 | 
			
		||||
      cols="66"
 | 
			
		||||
      rows="5"
 | 
			
		||||
      name="system.damages"
 | 
			
		||||
      data-tooltip="{{localize 'FTLNOMAD.Tooltip.damages'}}"
 | 
			
		||||
    >{{system.damages}}</textarea>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
  <fieldset class="section-editor">
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.description"}}</legend>
 | 
			
		||||
    {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
 | 
			
		||||
    {{formInput
 | 
			
		||||
      systemFields.description
 | 
			
		||||
      enriched=enrichedDescription
 | 
			
		||||
      value=system.description
 | 
			
		||||
      name="system.description"
 | 
			
		||||
      toggled=true
 | 
			
		||||
    }}
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
  <fieldset class="section-editor">
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.modifications"}}</legend>
 | 
			
		||||
    {{formInput systemFields.modifications enriched=enrichedModifications value=system.modifications name="system.modifications" toggled=true}}
 | 
			
		||||
    {{formInput
 | 
			
		||||
      systemFields.modifications
 | 
			
		||||
      enriched=enrichedModifications
 | 
			
		||||
      value=system.modifications
 | 
			
		||||
      name="system.modifications"
 | 
			
		||||
      toggled=true
 | 
			
		||||
    }}
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
  <fieldset class="section-editor">
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.notes"}}</legend>
 | 
			
		||||
    {{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
 | 
			
		||||
    {{formInput
 | 
			
		||||
      systemFields.notes
 | 
			
		||||
      enriched=enrichedNotes
 | 
			
		||||
      value=system.notes
 | 
			
		||||
      name="system.notes"
 | 
			
		||||
      toggled=true
 | 
			
		||||
    }}
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
</section>
 | 
			
		||||
@@ -1,52 +1,106 @@
 | 
			
		||||
<section class="tab vehicle-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
 | 
			
		||||
<section
 | 
			
		||||
  class="tab vehicle-{{tab.id}} {{tab.cssClass}}"
 | 
			
		||||
  data-tab="{{tab.id}}"
 | 
			
		||||
  data-group="{{tab.group}}"
 | 
			
		||||
>
 | 
			
		||||
  <div class="main-div">
 | 
			
		||||
 | 
			
		||||
    <!-- <div class="weapons">
 | 
			
		||||
    <fieldset>
 | 
			
		||||
      <legend>{{localize "FTLNOMAD.Label.weapons"}}{{#if isEditMode}}
 | 
			
		||||
        <a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addWeapon"}}" data-tooltip-direction="UP"><i
 | 
			
		||||
            class="fas fa-plus" data-action="createWeapon"></i></a>{{/if}}
 | 
			
		||||
          <a
 | 
			
		||||
            class="action"
 | 
			
		||||
            data-tooltip="{{localize ' FTLNOMAD.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 item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
 | 
			
		||||
          <img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
 | 
			
		||||
          <div class="name rollable" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
 | 
			
		||||
            {{item.name}}
 | 
			
		||||
          {{!log 'weapon' this}}
 | 
			
		||||
          <div
 | 
			
		||||
            class="weapon item"
 | 
			
		||||
            data-item-id="{{item.id}}"
 | 
			
		||||
            data-item-uuid="{{item.uuid}}"
 | 
			
		||||
            data-drag="true"
 | 
			
		||||
          >
 | 
			
		||||
            <img
 | 
			
		||||
              class="item-img"
 | 
			
		||||
              src="{{item.img}}"
 | 
			
		||||
              data-tooltip="{{item.name}}"
 | 
			
		||||
            />
 | 
			
		||||
            <div
 | 
			
		||||
              class="name rollable"
 | 
			
		||||
              data-roll-type="weapon"
 | 
			
		||||
              data-tooltip="{{{item.system.description}}}"
 | 
			
		||||
            >
 | 
			
		||||
              {{item.name}}
 | 
			
		||||
            </div>
 | 
			
		||||
            <a
 | 
			
		||||
              class="damage rollable"
 | 
			
		||||
              data-item-id="{{item.id}}"
 | 
			
		||||
              data-action="roll"
 | 
			
		||||
              data-roll-type="damage"
 | 
			
		||||
              data-roll-value="{{item.system.damage}}"
 | 
			
		||||
            >{{localize "FTLNOMAD.Label.damageShort"}}
 | 
			
		||||
              :
 | 
			
		||||
              {{item.system.damage}}</a>
 | 
			
		||||
            <div class="controls">
 | 
			
		||||
              <a
 | 
			
		||||
                data-tooltip="{{localize 'FTLNOMAD.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 'FTLNOMAD.Delete'}}"
 | 
			
		||||
                data-action="delete"
 | 
			
		||||
                data-item-id="{{item.id}}"
 | 
			
		||||
                data-item-uuid="{{item.uuid}}"
 | 
			
		||||
              ><i class="fas fa-trash"></i></a>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <a class="damage rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage"
 | 
			
		||||
            data-roll-value="{{item.system.damage}}">{{localize "FTLNOMAD.Label.damageShort"}} :
 | 
			
		||||
            {{item.system.damage}}</a>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
            <a data-tooltip="{{localize 'FTLNOMAD.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 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
 | 
			
		||||
              data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        {{/each}}
 | 
			
		||||
      </div>
 | 
			
		||||
    </fieldset>
 | 
			
		||||
    </fieldset> -->
 | 
			
		||||
 | 
			
		||||
    <fieldset>
 | 
			
		||||
      <legend>{{localize "FTLNOMAD.Label.equipment"}}{{#if isEditMode}}
 | 
			
		||||
        <a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addEquipment"}}" data-tooltip-direction="UP"><i
 | 
			
		||||
            class="fas fa-plus" data-action="createEquipment"></i></a>{{/if}}
 | 
			
		||||
          <a
 | 
			
		||||
            class="action"
 | 
			
		||||
            data-tooltip="{{localize ' FTLNOMAD.Tooltip.addEquipment'}}"
 | 
			
		||||
            data-tooltip-direction="UP"
 | 
			
		||||
          ><i class="fas fa-plus" data-action="createEquipment"></i></a>{{/if}}
 | 
			
		||||
      </legend>
 | 
			
		||||
      <div class="equipments">
 | 
			
		||||
        {{#each equipments as |item|}}
 | 
			
		||||
        {{!log 'armor' this}}
 | 
			
		||||
        <div class="equipment" 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}}
 | 
			
		||||
          {{!log 'armor' this}}
 | 
			
		||||
          <div
 | 
			
		||||
            class="equipment"
 | 
			
		||||
            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 'FTLNOMAD.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 'FTLNOMAD.Delete'}}"
 | 
			
		||||
                data-action="delete"
 | 
			
		||||
                data-item-id="{{item.id}}"
 | 
			
		||||
                data-item-uuid="{{item.uuid}}"
 | 
			
		||||
              ><i class="fas fa-trash"></i></a>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="controls">
 | 
			
		||||
            <a data-tooltip="{{localize 'FTLNOMAD.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 'FTLNOMAD.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>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,45 +1,93 @@
 | 
			
		||||
<section class="starship-main starship-main-{{ifThen isPlayMode 'play' 'edit'}}">
 | 
			
		||||
<section
 | 
			
		||||
  class="starship-main starship-main-{{ifThen isPlayMode 'play' 'edit'}}"
 | 
			
		||||
>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.starship"}}</legend>
 | 
			
		||||
    <div class="starship-pc starship-pc-{{ifThen isPlayMode 'play' 'edit'}}">
 | 
			
		||||
      <div class="starship-left">
 | 
			
		||||
        <div class="starship-left-image">
 | 
			
		||||
          <img class="starship-img" src="{{actor.img}}" data-edit="img" data-action="editImage"
 | 
			
		||||
            data-tooltip="{{actor.name}}" />
 | 
			
		||||
          <img
 | 
			
		||||
            class="starship-img"
 | 
			
		||||
            src="{{actor.img}}"
 | 
			
		||||
            data-edit="img"
 | 
			
		||||
            data-action="editImage"
 | 
			
		||||
            data-tooltip="{{actor.name}}"
 | 
			
		||||
          />
 | 
			
		||||
        </div>
 | 
			
		||||
        <fieldset class="spec">
 | 
			
		||||
          {{formField systemFields.agility value=system.agility localize=true}}
 | 
			
		||||
          {{formField systemFields.armor value=system.armor localize=true}}
 | 
			
		||||
          {{formField systemFields.endurance value=system.endurance localize=true}}
 | 
			
		||||
          {{formField
 | 
			
		||||
            systemFields.agility
 | 
			
		||||
            value=system.agility
 | 
			
		||||
            localize=true
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          {{formField
 | 
			
		||||
            systemFields.armor
 | 
			
		||||
            value=system.armor
 | 
			
		||||
            localize=true
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          {{formField
 | 
			
		||||
            systemFields.endurance
 | 
			
		||||
            value=system.endurance
 | 
			
		||||
            localize=true
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="starship-right">
 | 
			
		||||
        <div class="starship-name">
 | 
			
		||||
          {{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}}
 | 
			
		||||
          <a class="control" data-action="toggleSheet" data-tooltip="FTLNOMAD.ToggleSheet"
 | 
			
		||||
            data-tooltip-direction="UP">
 | 
			
		||||
          {{formInput
 | 
			
		||||
            fields.name
 | 
			
		||||
            value=source.name
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          <a
 | 
			
		||||
            class="control"
 | 
			
		||||
            data-action="toggleSheet"
 | 
			
		||||
            data-tooltip="FTLNOMAD.ToggleSheet"
 | 
			
		||||
            data-tooltip-direction="UP"
 | 
			
		||||
          >
 | 
			
		||||
            <i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
 | 
			
		||||
          </a>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <fieldset class="capacity ">
 | 
			
		||||
        <fieldset class="capacity">
 | 
			
		||||
          <legend>{{localize "FTLNOMAD.Label.capacity"}}</legend>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField systemFields.hullType value=system.hullType localize=true}}
 | 
			
		||||
            {{formField systemFields.cost value=system.cost- localize=true}}
 | 
			
		||||
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField systemFields.travelMultiplier value=system.travelMultiplier localize=true}}
 | 
			
		||||
            {{formField systemFields.monthlyCost value=system.monthlyCost localize=true}}
 | 
			
		||||
          <div class="flexrow hull-field">
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.hullType
 | 
			
		||||
              value=system.hullType
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <div class="flexrow-guns rollable" data-roll-type="starship-guns">
 | 
			
		||||
            <i class="fa-regular fa-dice dice-2d6"></i>
 | 
			
		||||
            {{formField systemFields.guns value=system.guns localize=true}}
 | 
			
		||||
          <div class="flexrow-guns">
 | 
			
		||||
            <a
 | 
			
		||||
              class="rollable starship-guns-label"
 | 
			
		||||
              data-roll-type="starship-guns"
 | 
			
		||||
            >
 | 
			
		||||
              <i class="fa-regular fa-dice dice-2d6"></i>Guns
 | 
			
		||||
            </a>
 | 
			
		||||
            {{formInput
 | 
			
		||||
              systemFields.guns
 | 
			
		||||
              value=system.guns
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.travelMultiplier
 | 
			
		||||
              value=system.travelMultiplier
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
        </fieldset>
 | 
			
		||||
@@ -47,8 +95,18 @@
 | 
			
		||||
        <fieldset class="cargo">
 | 
			
		||||
          <legend>{{localize "FTLNOMAD.Label.cargo"}}</legend>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField systemFields.crew value=system.crew localize=true}}
 | 
			
		||||
            {{formField systemFields.cargo value=system.cargo localize=true}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.crew
 | 
			
		||||
              value=system.crew
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.cargo
 | 
			
		||||
              value=system.cargo
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,21 +1,67 @@
 | 
			
		||||
<section class="tab vehicle-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
 | 
			
		||||
 | 
			
		||||
<section
 | 
			
		||||
  class="tab vehicle-{{tab.id}} {{tab.cssClass}}"
 | 
			
		||||
  data-tab="{{tab.id}}"
 | 
			
		||||
  data-group="{{tab.group}}"
 | 
			
		||||
>
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.damages"}}</legend>
 | 
			
		||||
    <div class="text-center">
 | 
			
		||||
      <textarea class="form-control " cols="64" rows="5" name="system.damages"
 | 
			
		||||
      data-tooltip="{{localize "FTLNOMAD.Tooltip.damages"}}">{{system.damages}}</textarea>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.techAge"}}</legend>
 | 
			
		||||
    <div class="flexrow">
 | 
			
		||||
      {{formField
 | 
			
		||||
        systemFields.techAge
 | 
			
		||||
        value=system.techAge
 | 
			
		||||
        localize=true
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
      }}
 | 
			
		||||
       
 | 
			
		||||
      {{formField
 | 
			
		||||
        systemFields.cost
 | 
			
		||||
        value=system.cost
 | 
			
		||||
        localize=true
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
      }}
 | 
			
		||||
       
 | 
			
		||||
      {{formField
 | 
			
		||||
        systemFields.monthlyCost
 | 
			
		||||
        value=system.monthlyCost
 | 
			
		||||
        localize=true
 | 
			
		||||
        disabled=isPlayMode
 | 
			
		||||
      }}
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.description"}}</legend>
 | 
			
		||||
    {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.damages"}}</legend>
 | 
			
		||||
    <div class="text-center">
 | 
			
		||||
      <textarea
 | 
			
		||||
        class="form-control"
 | 
			
		||||
        cols="64"
 | 
			
		||||
        rows="5"
 | 
			
		||||
        name="system.damages"
 | 
			
		||||
        data-tooltip="{{localize 'FTLNOMAD.Tooltip.damages'}}"
 | 
			
		||||
      >{{system.damages}}</textarea>
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
  <fieldset class="section-editor">
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.description"}}</legend>
 | 
			
		||||
    {{formInput
 | 
			
		||||
      systemFields.description
 | 
			
		||||
      enriched=enrichedDescription
 | 
			
		||||
      value=system.description
 | 
			
		||||
      name="system.description"
 | 
			
		||||
      toggled=true
 | 
			
		||||
    }}
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset class="section-editor">
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.notes"}}</legend>
 | 
			
		||||
    {{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
 | 
			
		||||
    {{formInput
 | 
			
		||||
      systemFields.notes
 | 
			
		||||
      enriched=enrichedNotes
 | 
			
		||||
      value=system.notes
 | 
			
		||||
      name="system.notes"
 | 
			
		||||
      toggled=true
 | 
			
		||||
    }}
 | 
			
		||||
  </fieldset>
 | 
			
		||||
 | 
			
		||||
</section>
 | 
			
		||||
@@ -1,54 +1,107 @@
 | 
			
		||||
<section class="tab vehicle-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
 | 
			
		||||
<div class="main-div">
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.weapons"}}{{#if isEditMode}}
 | 
			
		||||
      <a class="action" data-tooltip="{{localize "FTLNOMAD.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 item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
 | 
			
		||||
        <img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
 | 
			
		||||
        <div class="name rollable" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
 | 
			
		||||
          {{item.name}}
 | 
			
		||||
        </div>
 | 
			
		||||
        <a class="damage rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage"
 | 
			
		||||
          data-roll-value="{{item.system.damage}}">{{localize "FTLNOMAD.Label.damageShort"}} :
 | 
			
		||||
          {{item.system.damage}}</a>
 | 
			
		||||
        <div class="controls">
 | 
			
		||||
          <a data-tooltip="{{localize 'FTLNOMAD.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 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
 | 
			
		||||
            data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        </div>
 | 
			
		||||
<section
 | 
			
		||||
  class="tab vehicle-{{tab.id}} {{tab.cssClass}}"
 | 
			
		||||
  data-tab="{{tab.id}}"
 | 
			
		||||
  data-group="{{tab.group}}"
 | 
			
		||||
>
 | 
			
		||||
  <div class="main-div">
 | 
			
		||||
    <fieldset>
 | 
			
		||||
      <legend>{{localize "FTLNOMAD.Label.weapons"}}{{#if isEditMode}}
 | 
			
		||||
          <a
 | 
			
		||||
            class="action"
 | 
			
		||||
            data-tooltip="{{localize 'FTLNOMAD.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 item"
 | 
			
		||||
            data-item-id="{{item.id}}"
 | 
			
		||||
            data-item-uuid="{{item.uuid}}"
 | 
			
		||||
            data-drag="true"
 | 
			
		||||
          >
 | 
			
		||||
            <img
 | 
			
		||||
              class="item-img"
 | 
			
		||||
              src="{{item.img}}"
 | 
			
		||||
              data-tooltip="{{item.name}}"
 | 
			
		||||
            />
 | 
			
		||||
            <div
 | 
			
		||||
              class="name"
 | 
			
		||||
              data-roll-type="weapon"
 | 
			
		||||
              data-tooltip="{{{item.system.description}}}"
 | 
			
		||||
            >
 | 
			
		||||
              {{item.name}}
 | 
			
		||||
            </div>
 | 
			
		||||
            <a
 | 
			
		||||
              class="damage rollable"
 | 
			
		||||
              data-item-id="{{item.id}}"
 | 
			
		||||
              data-action="roll"
 | 
			
		||||
              data-roll-type="damage"
 | 
			
		||||
              data-roll-value="{{item.system.damage}}"
 | 
			
		||||
            >{{localize "FTLNOMAD.Label.damageShort"}}
 | 
			
		||||
              :
 | 
			
		||||
              {{item.system.damage}}</a>
 | 
			
		||||
            <div class="controls">
 | 
			
		||||
              <a
 | 
			
		||||
                data-tooltip="{{localize 'FTLNOMAD.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 'FTLNOMAD.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>
 | 
			
		||||
      {{/each}}
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
    </fieldset>
 | 
			
		||||
 | 
			
		||||
  <fieldset>
 | 
			
		||||
    <legend>{{localize "FTLNOMAD.Label.equipment"}}{{#if isEditMode}}
 | 
			
		||||
      <a class="action" data-tooltip="{{localize "FTLNOMAD.Tooltip.addEquipment"}}" data-tooltip-direction="UP"><i
 | 
			
		||||
          class="fas fa-plus" data-action="createEquipment"></i></a>{{/if}}
 | 
			
		||||
    </legend>
 | 
			
		||||
    <div class="equipments">
 | 
			
		||||
      {{#each equipments as |item|}}
 | 
			
		||||
      {{!log 'armor' this}}
 | 
			
		||||
      <div class="equipment" 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 'FTLNOMAD.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 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
 | 
			
		||||
            data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
 | 
			
		||||
        </div>
 | 
			
		||||
    <fieldset>
 | 
			
		||||
      <legend>{{localize "FTLNOMAD.Label.equipment"}}{{#if isEditMode}}
 | 
			
		||||
          <a
 | 
			
		||||
            class="action"
 | 
			
		||||
            data-tooltip="{{localize 'FTLNOMAD.Tooltip.addEquipment'}}"
 | 
			
		||||
            data-tooltip-direction="UP"
 | 
			
		||||
          ><i class="fas fa-plus" data-action="createEquipment"></i></a>{{/if}}
 | 
			
		||||
      </legend>
 | 
			
		||||
      <div class="equipments">
 | 
			
		||||
        {{#each equipments as |item|}}
 | 
			
		||||
          {{!log 'armor' this}}
 | 
			
		||||
          <div
 | 
			
		||||
            class="equipment"
 | 
			
		||||
            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 'FTLNOMAD.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 'FTLNOMAD.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>
 | 
			
		||||
      {{/each}}
 | 
			
		||||
    </div>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
</div>
 | 
			
		||||
    </fieldset>
 | 
			
		||||
  </div>
 | 
			
		||||
</section>
 | 
			
		||||
@@ -5,13 +5,23 @@
 | 
			
		||||
    <div class="vehicle-pc vehicle-pc-{{ifThen isPlayMode 'play' 'edit'}}">
 | 
			
		||||
      <div class="vehicle-left">
 | 
			
		||||
        <div class="vehicle-left-image">
 | 
			
		||||
          <img class="vehicle-img" src="{{actor.img}}" data-edit="img" data-action="editImage"
 | 
			
		||||
            data-tooltip="{{actor.name}}" />
 | 
			
		||||
          <img
 | 
			
		||||
            class="vehicle-img"
 | 
			
		||||
            src="{{actor.img}}"
 | 
			
		||||
            data-edit="img"
 | 
			
		||||
            data-action="editImage"
 | 
			
		||||
            data-tooltip="{{actor.name}}"
 | 
			
		||||
          />
 | 
			
		||||
        </div>
 | 
			
		||||
        <fieldset>
 | 
			
		||||
          <legend>{{localize "FTLNOMAD.Label.Agility"}}</legend>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField systemFields.agility value=system.agility localize=true}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.agility
 | 
			
		||||
              value=system.agility
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
@@ -19,31 +29,75 @@
 | 
			
		||||
 | 
			
		||||
      <div class="vehicle-right">
 | 
			
		||||
        <div class="vehicle-name">
 | 
			
		||||
          {{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}}
 | 
			
		||||
          <a class="control" data-action="toggleSheet" data-tooltip="FTLNOMAD.ToggleSheet"
 | 
			
		||||
            data-tooltip-direction="UP">
 | 
			
		||||
          {{formInput
 | 
			
		||||
            fields.name
 | 
			
		||||
            value=source.name
 | 
			
		||||
            rootId=partId
 | 
			
		||||
            disabled=isPlayMode
 | 
			
		||||
          }}
 | 
			
		||||
          <a
 | 
			
		||||
            class="control"
 | 
			
		||||
            data-action="toggleSheet"
 | 
			
		||||
            data-tooltip="FTLNOMAD.ToggleSheet"
 | 
			
		||||
            data-tooltip-direction="UP"
 | 
			
		||||
          >
 | 
			
		||||
            <i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
 | 
			
		||||
          </a>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <fieldset class="capacity ">
 | 
			
		||||
        <fieldset class="capacity">
 | 
			
		||||
          <legend>{{localize "FTLNOMAD.Label.capacity"}}</legend>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField systemFields.armor value=system.armor localize=true}}
 | 
			
		||||
            {{formField systemFields.force value=system.force localize=true}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.armor
 | 
			
		||||
              value=system.armor
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.force
 | 
			
		||||
              value=system.force
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="flexrow">
 | 
			
		||||
            {{formField systemFields.range value=system.range localize=true}}
 | 
			
		||||
            {{formField systemFields.speed value=system.speed localize=true}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.range
 | 
			
		||||
              value=system.range
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.speed
 | 
			
		||||
              value=system.speed
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
        <fieldset class="cargo">
 | 
			
		||||
          <legend>{{localize "FTLNOMAD.Label.cargo"}}</legend>
 | 
			
		||||
          <div class="cargo-content">
 | 
			
		||||
            {{formField systemFields.crew value=system.crew localize=true}}
 | 
			
		||||
            {{formField systemFields.cargo value=system.cargo localize=true}}
 | 
			
		||||
            {{formField systemFields.tonnage value=system.tonnage localize=true}}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.crew
 | 
			
		||||
              value=system.crew
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.cargo
 | 
			
		||||
              value=system.cargo
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
            {{formField
 | 
			
		||||
              systemFields.tonnage
 | 
			
		||||
              value=system.tonnage
 | 
			
		||||
              localize=true
 | 
			
		||||
              disabled=isPlayMode
 | 
			
		||||
            }}
 | 
			
		||||
          </div>
 | 
			
		||||
        </fieldset>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user