4 Commits

Author SHA1 Message Date
8a5d1cc1d8 Sync robot enc
All checks were successful
Release Creation / build (release) Successful in 1m8s
2025-10-18 18:03:30 +02:00
99d9cb435f Fix robot stuff
All checks were successful
Release Creation / build (release) Successful in 57s
2025-10-16 20:00:03 +02:00
f57b016b46 Cosmetic fixes
All checks were successful
Release Creation / build (release) Successful in 51s
2025-10-15 22:19:35 +02:00
09907dbbf7 Cosmetic fixes 2025-10-15 22:19:20 +02:00
26 changed files with 296 additions and 103 deletions

View File

@@ -343,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;
}
@@ -1123,6 +1125,12 @@ i.fvtt-ftl-nomad {
.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);
@@ -1301,6 +1309,7 @@ i.fvtt-ftl-nomad {
}
.fvtt-ftl-nomad .robot-main .robot-pc .robot-left {
min-width: 180px;
max-width: 180px;
display: flex;
flex-direction: column;
}
@@ -1315,6 +1324,14 @@ i.fvtt-ftl-nomad {
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;
@@ -1326,12 +1343,26 @@ i.fvtt-ftl-nomad {
.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: 400px;
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;
@@ -1462,6 +1493,12 @@ i.fvtt-ftl-nomad {
.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);
@@ -1682,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;
@@ -1774,6 +1815,12 @@ i.fvtt-ftl-nomad {
.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);
@@ -2110,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);

View File

@@ -304,6 +304,15 @@
"Gargantuan": "Gargantuan"
},
"FIELDS": {
"enc": {
"label": "Enc",
"value": {
"label": "Enc Curr."
},
"max": {
"label": "Enc Max"
}
},
"brain": {
"label": "Brain"
},

View File

@@ -49,7 +49,19 @@ export default class FTLNomadRobot extends foundry.abstract.TypeDataModel {
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() {

View File

@@ -1 +1 @@
MANIFEST-000086
MANIFEST-000099

View File

@@ -1,14 +1,7 @@
2025/10/15-13:50:39.028219 7f189f7fe6c0 Recovering log #84
2025/10/15-13:50:39.038979 7f189f7fe6c0 Delete type=3 #82
2025/10/15-13:50:39.039047 7f189f7fe6c0 Delete type=0 #84
2025/10/15-15:26:39.732570 7f189e7fc6c0 Level-0 table #89: started
2025/10/15-15:26:39.736109 7f189e7fc6c0 Level-0 table #89: 12073 bytes OK
2025/10/15-15:26:39.742312 7f189e7fc6c0 Delete type=0 #87
2025/10/15-15:26:39.748688 7f189e7fc6c0 Manual compaction at level-0 from '!folders!AuBtSOj1mJmh88qx' @ 72057594037927935 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at '!items!zoE4ITyfl3od6hYD' @ 721 : 1
2025/10/15-15:26:39.748706 7f189e7fc6c0 Compacting 1@0 + 1@1 files
2025/10/15-15:26:39.753893 7f189e7fc6c0 Generated table #90@0: 316 keys, 126470 bytes
2025/10/15-15:26:39.753929 7f189e7fc6c0 Compacted 1@0 + 1@1 files => 126470 bytes
2025/10/15-15:26:39.760361 7f189e7fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/10/15-15:26:39.760492 7f189e7fc6c0 Delete type=2 #73
2025/10/15-15:26:39.760637 7f189e7fc6c0 Delete type=2 #89
2025/10/15-15:26:39.774069 7f189e7fc6c0 Manual compaction at level-0 from '!items!zoE4ITyfl3od6hYD' @ 721 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at (end)
2025/10/18-17:56:08.077097 7f7b75bfa6c0 Recovering log #97
2025/10/18-17:56:08.086491 7f7b75bfa6c0 Delete type=3 #95
2025/10/18-17:56:08.086541 7f7b75bfa6c0 Delete type=0 #97
2025/10/18-18:03:15.510704 7f7b6f3ff6c0 Level-0 table #102: started
2025/10/18-18:03:15.510749 7f7b6f3ff6c0 Level-0 table #102: 0 bytes OK
2025/10/18-18:03:15.548325 7f7b6f3ff6c0 Delete type=0 #100
2025/10/18-18:03:15.624002 7f7b6f3ff6c0 Manual compaction at level-0 from '!folders!AuBtSOj1mJmh88qx' @ 72057594037927935 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/10/15-10:02:54.141015 7f189f7fe6c0 Recovering log #80
2025/10/15-10:02:54.151620 7f189f7fe6c0 Delete type=3 #78
2025/10/15-10:02:54.151691 7f189f7fe6c0 Delete type=0 #80
2025/10/15-10:23:16.651592 7f189e7fc6c0 Level-0 table #85: started
2025/10/15-10:23:16.651628 7f189e7fc6c0 Level-0 table #85: 0 bytes OK
2025/10/15-10:23:16.657926 7f189e7fc6c0 Delete type=0 #83
2025/10/15-10:23:16.664228 7f189e7fc6c0 Manual compaction at level-0 from '!folders!AuBtSOj1mJmh88qx' @ 72057594037927935 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at (end)
2025/10/16-19:48:48.571698 7f18a4ffa6c0 Recovering log #93
2025/10/16-19:48:48.582163 7f18a4ffa6c0 Delete type=3 #91
2025/10/16-19:48:48.582233 7f18a4ffa6c0 Delete type=0 #93
2025/10/16-19:50:49.674486 7f189e7fc6c0 Level-0 table #98: started
2025/10/16-19:50:49.674520 7f189e7fc6c0 Level-0 table #98: 0 bytes OK
2025/10/16-19:50:49.681475 7f189e7fc6c0 Delete type=0 #96
2025/10/16-19:50:49.691929 7f189e7fc6c0 Manual compaction at level-0 from '!folders!AuBtSOj1mJmh88qx' @ 72057594037927935 : 1 .. '!items!zv9dwgL3p7ThQn7j' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000064
MANIFEST-000077

View File

@@ -1,14 +1,7 @@
2025/10/15-13:50:39.042685 7f18a4ffa6c0 Recovering log #62
2025/10/15-13:50:39.052767 7f18a4ffa6c0 Delete type=3 #60
2025/10/15-13:50:39.052843 7f18a4ffa6c0 Delete type=0 #62
2025/10/15-15:26:39.665250 7f189e7fc6c0 Level-0 table #67: started
2025/10/15-15:26:39.668457 7f189e7fc6c0 Level-0 table #67: 12881 bytes OK
2025/10/15-15:26:39.674498 7f189e7fc6c0 Delete type=0 #65
2025/10/15-15:26:39.688322 7f189e7fc6c0 Manual compaction at level-0 from '!actors!0FQ6XaRi24OorI21' @ 72057594037927935 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at '!folders!HobFutlnH6HPTEfT' @ 93 : 1
2025/10/15-15:26:39.688334 7f189e7fc6c0 Compacting 1@0 + 1@1 files
2025/10/15-15:26:39.692347 7f189e7fc6c0 Generated table #68@0: 78 keys, 62826 bytes
2025/10/15-15:26:39.692380 7f189e7fc6c0 Compacted 1@0 + 1@1 files => 62826 bytes
2025/10/15-15:26:39.698356 7f189e7fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/10/15-15:26:39.698484 7f189e7fc6c0 Delete type=2 #51
2025/10/15-15:26:39.698645 7f189e7fc6c0 Delete type=2 #67
2025/10/15-15:26:39.709845 7f189e7fc6c0 Manual compaction at level-0 from '!folders!HobFutlnH6HPTEfT' @ 93 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at (end)
2025/10/18-17:56:08.089616 7f7b6ffff6c0 Recovering log #75
2025/10/18-17:56:08.099835 7f7b6ffff6c0 Delete type=3 #73
2025/10/18-17:56:08.099933 7f7b6ffff6c0 Delete type=0 #75
2025/10/18-18:03:15.586602 7f7b6f3ff6c0 Level-0 table #80: started
2025/10/18-18:03:15.586654 7f7b6f3ff6c0 Level-0 table #80: 0 bytes OK
2025/10/18-18:03:15.623769 7f7b6f3ff6c0 Delete type=0 #78
2025/10/18-18:03:15.624032 7f7b6f3ff6c0 Manual compaction at level-0 from '!actors!0FQ6XaRi24OorI21' @ 72057594037927935 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/10/15-10:02:54.154455 7f18a4ffa6c0 Recovering log #58
2025/10/15-10:02:54.164920 7f18a4ffa6c0 Delete type=3 #56
2025/10/15-10:02:54.164970 7f18a4ffa6c0 Delete type=0 #58
2025/10/15-10:23:16.644379 7f189e7fc6c0 Level-0 table #63: started
2025/10/15-10:23:16.644413 7f189e7fc6c0 Level-0 table #63: 0 bytes OK
2025/10/15-10:23:16.651461 7f189e7fc6c0 Delete type=0 #61
2025/10/15-10:23:16.664216 7f189e7fc6c0 Manual compaction at level-0 from '!actors!3pydTJsM73Z4o0V6' @ 72057594037927935 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at (end)
2025/10/16-19:48:48.588685 7f189f7fe6c0 Recovering log #71
2025/10/16-19:48:48.599841 7f189f7fe6c0 Delete type=3 #69
2025/10/16-19:48:48.599924 7f189f7fe6c0 Delete type=0 #71
2025/10/16-19:50:49.586198 7f189e7fc6c0 Level-0 table #76: started
2025/10/16-19:50:49.586239 7f189e7fc6c0 Level-0 table #76: 0 bytes OK
2025/10/16-19:50:49.598518 7f189e7fc6c0 Delete type=0 #74
2025/10/16-19:50:49.610365 7f189e7fc6c0 Manual compaction at level-0 from '!actors!0FQ6XaRi24OorI21' @ 72057594037927935 : 1 .. '!folders!vRnrOJqSMlxbSgyX' @ 0 : 0; will stop at (end)

Binary file not shown.

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

View File

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

View File

@@ -19,6 +19,7 @@
.robot-left {
min-width: 180px;
max-width: 180px;
display: flex;
flex-direction: column;
@@ -33,6 +34,17 @@
border: none;
}
}
.robot-cost {
label {
min-width: 3rem;
max-width: 3rem;
}
input {
min-width: 6rem;
max-width: 6rem;
}
}
}
.robot-right {
@@ -45,13 +57,28 @@
input {
font-family: var(--font-title);
font-size: calc(var(--font-size-standard) * 1.4);
width: 400px;
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 {
@@ -198,6 +225,12 @@
}
.section-editor {
min-height: 10rem;
.editor {
min-height: 10rem;
}
.editor-content {
min-height: 10rem;
}
}
.biodata {

View File

@@ -68,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;
@@ -173,6 +179,12 @@
.section-editor {
min-height: 10rem;
.editor {
min-height: 10rem;
}
.editor-content {
min-height: 10rem;
}
}
.biodata {

View File

@@ -33,7 +33,6 @@
border: none;
}
}
}
.vehicle-right {
@@ -136,8 +135,15 @@
.field-label {
margin-left: 8px;
}
.section-editor {
.section-editor {
min-height: 10rem;
.editor {
min-height: 10rem;
}
.editor-content {
min-height: 10rem;
}
}
.biodata {
@@ -145,17 +151,16 @@
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 {

View File

@@ -113,7 +113,14 @@
rootId=partId
disabled=isPlayMode
}}
{{formField systemFields.credits value=system.credits rootId=partId}}
<span class="character-credit">
{{formField
systemFields.credits
value=system.credits
rootId=partId
disabled=isPlayMode
}}
</span>
</fieldset>
</div>

View File

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

View File

@@ -6,11 +6,16 @@
<fieldset>
<legend>Tech Age</legend>
<div class="flexrow">
{{formField systemFields.techAge value=system.techAge localize=true}}
{{formField
systemFields.techAge
value=system.techAge
localize=true
disabled=isPlayMode
}}
</div>
</fieldset>
<fieldset>
<!-- <fieldset>
<legend>{{localize "FTLNOMAD.Label.damages"}}</legend>
<div class="text-center">
<textarea
@@ -21,7 +26,7 @@
data-tooltip="{{localize 'FTLNOMAD.Tooltip.damages'}}"
>{{system.damages}}</textarea>
</div>
</fieldset>
</fieldset> -->
<fieldset class="section-editor">
<legend>{{localize "FTLNOMAD.Label.description"}}</legend>

View File

@@ -3,6 +3,7 @@
<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
@@ -13,7 +14,19 @@
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">
@@ -67,21 +80,41 @@
}}
</div>
<div class="flexrow">
{{#if isEncumbered}}
{{formField
systemFields.cost
value=system.cost
localize=true
disabled=isPlayMode
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}}
&nbsp;
{{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">
{{formField
systemFields.brain
value=system.brain
localize=true
classes="robot-brain"
disabled=isPlayMode
}}
<textarea
cols="64"
rows="2"
name="system.brain"
data-tooltip="{{localize 'FTLNOMAD.Tooltip.brain'}}"
{{#if isPlayMode}}disabled{{/if}}>{{system.brain}}</textarea>
</div>
</fieldset>

View File

@@ -58,20 +58,13 @@
<fieldset class="capacity">
<legend>{{localize "FTLNOMAD.Label.capacity"}}</legend>
<div class="flexrow">
<div class="flexrow hull-field">
{{formField
systemFields.hullType
value=system.hullType
localize=true
disabled=isPlayMode
}}
{{formField
systemFields.travelMultiplier
value=system.travelMultiplier
localize=true
disabled=isPlayMode
}}
</div>
<div class="flexrow-guns">
@@ -87,6 +80,14 @@
localize=true
disabled=isPlayMode
}}
{{formField
systemFields.travelMultiplier
value=system.travelMultiplier
localize=true
disabled=isPlayMode
}}
</div>
</fieldset>

View File

@@ -6,7 +6,12 @@
<fieldset>
<legend>{{localize "FTLNOMAD.Label.techAge"}}</legend>
<div class="flexrow">
{{formField systemFields.techAge value=system.techAge localize=true}}
{{formField
systemFields.techAge
value=system.techAge
localize=true
disabled=isPlayMode
}}
&nbsp;
{{formField
systemFields.cost