diff --git a/css/fvtt-hellborn.css b/css/fvtt-hellborn.css index a17600e..5d60b5d 100644 --- a/css/fvtt-hellborn.css +++ b/css/fvtt-hellborn.css @@ -15,13 +15,17 @@ --font-title: "SupernaturalKnight"; --logo-standard: url("../assets/ui/pentagram_logo.webp"); --title-color: #f0443c; - --background-box: ##e0dcdc; + --background-box: #e0dcdc; --color-success: #0f7a0f; --color-failure: darkred; --color-warning: darkorange; --color-critical-success: #1527cc; --color-critical-failure: #8d20e7; } +body { + --color-light-1: rgba(182, 178, 178, 0.6); + --color-warm-1: #f0443c; +} #logo { content: var(--logo-standard); width: 100px; @@ -82,7 +86,7 @@ i.fvtt-hellborn { font-family: var(--font-secondary); font-size: calc(var(--font-size-standard) * 1); } -.fvtt-hellborn .creature-sheet-common label { +.fvtt-hellborn .enemy-sheet-common label { font-family: var(--font-secondary); font-size: calc(var(--font-size-standard) * 1); } @@ -322,6 +326,9 @@ i.fvtt-hellborn { min-width: 4rem; max-width: 4rem; } +.fvtt-hellborn .tab.character-status .main-div .counters .spaced-left { + margin-left: 0.8rem; +} .fvtt-hellborn .tab.character-status .main-div .counters input { min-width: 2.5rem; max-width: 2.5rem; @@ -490,10 +497,6 @@ i.fvtt-hellborn { display: flex; flex-direction: row; } -.fvtt-hellborn .tab.character-equipment .main-div .limboes .limboes-layout { - display: flex; - flex-direction: column; -} .fvtt-hellborn .tab.character-equipment .main-div .limboes .limboes-line { display: flex; flex-direction: row; @@ -504,13 +507,18 @@ i.fvtt-hellborn { align-items: center; gap: 4px; margin-left: 4px; - min-width: 14rem; - max-width: 14rem; + min-width: 6rem; + max-width: 6rem; +} +.fvtt-hellborn .tab.character-equipment .main-div .limboes .ammo-quantity { + text-align: left; + max-width: 3rem; + min-width: 3rem; } .fvtt-hellborn .tab.character-equipment .main-div .limboes input { text-align: left; - min-width: 6rem; - max-width: 6rem; + min-width: 8rem; + max-width: 8rem; } .fvtt-hellborn .tab.character-equipment .main-div .weapons { display: grid; @@ -972,7 +980,7 @@ i.fvtt-hellborn { .fvtt-hellborn .tab.vehicle-equipment prose-mirror.active { min-height: 150px; } -.fvtt-hellborn .creature-content { +.fvtt-hellborn .enemy-content { font-family: var(--font-primary); font-size: calc(var(--font-size-standard) * 1); color: var(--color-dark-1); @@ -981,19 +989,19 @@ i.fvtt-hellborn { background-size: 100% 100%; overflow: scroll; } -.fvtt-hellborn .creature-content input:disabled, -.fvtt-hellborn .creature-content select:disabled { +.fvtt-hellborn .enemy-content input:disabled, +.fvtt-hellborn .enemy-content select:disabled { background-color: rgba(0, 0, 0, 0.2); border-color: transparent; color: var(--color-dark-3); } -.fvtt-hellborn .creature-content input, -.fvtt-hellborn .creature-content select { +.fvtt-hellborn .enemy-content input, +.fvtt-hellborn .enemy-content select { background-color: rgba(0, 0, 0, 0.1); border-color: var(--color-dark-6); color: var(--color-dark-2); } -.fvtt-hellborn .creature-content input[name="name"] { +.fvtt-hellborn .enemy-content input[name="name"] { height: 40px; margin-right: 10px; font-family: var(--font-title); @@ -1002,669 +1010,373 @@ i.fvtt-hellborn { border: none; margin-top: 4px; } -.fvtt-hellborn .creature-content fieldset { +.fvtt-hellborn .enemy-content fieldset { margin-bottom: 4px; border-radius: 4px; } -.fvtt-hellborn .creature-content .form-fields input, -.fvtt-hellborn .creature-content .form-fields select { +.fvtt-hellborn .enemy-content .form-fields input, +.fvtt-hellborn .enemy-content .form-fields select { text-align: center; font-size: calc(var(--font-size-standard) * 1); } -.fvtt-hellborn .creature-content .form-fields select { +.fvtt-hellborn .enemy-content .form-fields select { font-family: var(--font-secondary); font-size: calc(var(--font-size-standard) * 1); } -.fvtt-hellborn .creature-content legend { +.fvtt-hellborn .enemy-content legend { font-family: var(--font-secondary); font-size: calc(var(--font-size-standard) * 1.2); font-weight: bold; letter-spacing: 1px; } -.fvtt-hellborn .creature-content label { +.fvtt-hellborn .enemy-content label { font-family: var(--font-secondary); font-size: calc(var(--font-size-standard) * 1); } .fvtt-hellborn .sheet-tabs { background-color: var(--color-light-1); } -.fvtt-hellborn .creature-main { - background-color: var(--color-light-1); +.fvtt-hellborn .enemy-main { + /*background-color: var(--color-light-1);*/ display: flex; } -.fvtt-hellborn .creature-main .creature-pc { +.fvtt-hellborn .enemy-main .enemy-pc { display: flex; gap: 4px; flex: 1; } -.fvtt-hellborn .creature-main .creature-pc .creature-left { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-left { min-width: 180px; display: flex; flex-direction: column; } -.fvtt-hellborn .creature-main .creature-pc .creature-left .creature-left-image { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-left .enemy-left-image { display: flex; justify-content: center; align-items: center; padding-bottom: 8px; } -.fvtt-hellborn .creature-main .creature-pc .creature-left .creature-left-image .creature-img { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-left .enemy-left-image .enemy-img { height: 140px; width: auto; border: none; } -.fvtt-hellborn .creature-main .creature-pc .creature-left .creature-hp { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-left .enemy-hp { gap: 2px; align-items: center; } -.fvtt-hellborn .creature-main .creature-pc .creature-left .creature-hp input { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-left .enemy-hp input { flex: none; width: 2.5rem; margin-left: 2px; margin-right: 4px; } -.fvtt-hellborn .creature-main .creature-pc .creature-left .creature-hp .hp-separator { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-left .enemy-hp .hp-separator { font-size: calc(var(--font-size-standard) * 1.2); display: flex; align-items: center; justify-content: center; } -.fvtt-hellborn .creature-main .creature-pc .creature-left .creature-dv .form-fields, -.fvtt-hellborn .creature-main .creature-pc .creature-left .creature-dmax .form-fields { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-left .enemy-dv .form-fields, +.fvtt-hellborn .enemy-main .enemy-pc .enemy-left .enemy-dmax .form-fields { flex: none; } -.fvtt-hellborn .creature-main .creature-pc .creature-left .creature-dmax-edit input { - display: flex; - width: 60px; - font-size: calc(var(--font-size-standard) * 1.4); - align-items: center; - justify-content: center; - padding: 0 5px 0 5px; - text-align: center; -} -.fvtt-hellborn .creature-main .creature-pc .creature-right { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-right { display: flex; flex-direction: column; gap: 5px; } -.fvtt-hellborn .creature-main .creature-pc .creature-right .creature-spec label { - max-width: 8rem; +.fvtt-hellborn .enemy-main .enemy-pc .enemy-right .enemy-definition .form-group { + display: flex; + align-items: center; + margin-bottom: 4px; } -.fvtt-hellborn .creature-main .creature-pc .creature-right .creature-spec select { - max-width: 10rem; +.fvtt-hellborn .enemy-main .enemy-pc .enemy-right .enemy-definition .splitted { + display: flex; + flex-direction: row; + gap: 4px; } -.fvtt-hellborn .creature-main .creature-pc .creature-right .creature-spec input { - max-width: 6rem; +.fvtt-hellborn .enemy-main .enemy-pc .enemy-right .enemy-definition label { + max-width: 5rem; + min-width: 5rem; } -.fvtt-hellborn .creature-main .creature-pc .creature-right .creature-spec .dice-2d6 { - max-width: 1.5rem; +.fvtt-hellborn .enemy-main .enemy-pc .enemy-right .enemy-definition input { + text-align: left; + min-width: 18rem; + max-width: 18rem; + margin-bottom: auto; } -.fvtt-hellborn .creature-main .creature-pc .creature-right .creature-spec .rollable:hover, -.fvtt-hellborn .creature-main .creature-pc .creature-right .creature-spec .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; +.fvtt-hellborn .enemy-main .enemy-pc .enemy-right .enemy-definition .trait { + min-width: 7rem; + max-width: 7rem; + margin-right: 1rem; + margin-bottom: auto; } -.fvtt-hellborn .creature-main .creature-pc .creature-right .creature-name { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-right .enemy-name { display: flex; } -.fvtt-hellborn .creature-main .creature-pc .creature-right .creature-name input { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-right .enemy-name input { font-family: var(--font-title); font-size: var(--font-size-title); width: 400px; } -.fvtt-hellborn .creature-main .creature-pc .creature-right label { +.fvtt-hellborn .enemy-main .enemy-pc .enemy-right label { min-width: 120px; } -.fvtt-hellborn .creature-main .creature-pc-play { +.fvtt-hellborn .enemy-main .enemy-pc-play { min-width: 500px; } -.fvtt-hellborn .creature-main .creature-pc-edit { +.fvtt-hellborn .enemy-main .enemy-pc-edit { min-width: 500px; } -.fvtt-hellborn .creature-main .creature-skills { - background-color: var(--color-light-1); +.fvtt-hellborn .enemy-main .enemy-stats { + /*background-color: var(--color-light-1);*/ display: flex; flex-direction: column; gap: 5px; flex: 1; } -.fvtt-hellborn .creature-main .creature-skills .creature-skill { +.fvtt-hellborn .enemy-main .enemy-stats .enemy-stat { display: flex; align-items: center; } -.fvtt-hellborn .creature-main .creature-skills .creature-skill .icon-skill { +.fvtt-hellborn .enemy-main .enemy-stats .enemy-stat .icon-stat { width: 24px; height: 24px; margin-right: 4px; } -.fvtt-hellborn .creature-main .creature-skills .creature-skill .rollable:hover, -.fvtt-hellborn .creature-main .creature-skills .creature-skill .rollable:focus { +.fvtt-hellborn .enemy-main .enemy-stats .enemy-stat .rollable:hover, +.fvtt-hellborn .enemy-main .enemy-stats .enemy-stat .rollable:focus { text-shadow: 0 0 8px var(--color-shadow-primary); cursor: pointer; } -.fvtt-hellborn .creature-main .creature-skills .creature-skill .rollable { - min-width: 4.5rem; - max-width: 4.5rem; +.fvtt-hellborn .enemy-main .enemy-stats .enemy-stat .rollable { + min-width: 3.5rem; + max-width: 3.5rem; } -.fvtt-hellborn .creature-main .creature-skills .creature-skill .char-text { - margin-left: 0.5rem; +.fvtt-hellborn .enemy-main .enemy-stats .enemy-stat input { + min-width: 2.5rem; + max-width: 2.5rem; } -.fvtt-hellborn .creature-main .creature-skills .creature-skill .d100 { - flex: 0; - max-width: 0.6rem; +.fvtt-hellborn .enemy-main .enemy-stats-play { + min-width: 120px; } -.fvtt-hellborn .creature-main .creature-skills .creature-skill .form-group { - flex: 0; - padding-left: 5px; +.fvtt-hellborn .enemy-main .enemy-stats-edit { + min-width: 120px; } -.fvtt-hellborn .creature-main .creature-skills .creature-skill .form-group .form-fields { - font-size: 1.1rem; - flex: none; - width: 40px; -} -.fvtt-hellborn .creature-main .creature-skill-play { - min-width: 225px; -} -.fvtt-hellborn .creature-main .creature-skill-edit { - min-width: 225px; -} -.fvtt-hellborn .creature-biography { - background-color: var(--color-light-1); -} -.fvtt-hellborn .creature-biography prose-mirror.inactive { - min-height: 40px; -} -.fvtt-hellborn .creature-biography prose-mirror.active { - min-height: 150px; -} -.fvtt-hellborn .creature-biography .field-label { - margin-left: 8px; -} -.fvtt-hellborn .creature-biography .rank { - display: grid; - grid-template-columns: repeat(5, 1fr); - gap: 8px; -} -.fvtt-hellborn .creature-biography .rank label { - min-width: 6rem; -} -.fvtt-hellborn .creature-biography .rank input { - max-width: 4rem; -} -.fvtt-hellborn .creature-biography .biodata { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 8px; -} -.fvtt-hellborn .creature-biography .biodata label { - min-width: 12rem; -} -.fvtt-hellborn .creature-biography .resources { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 8px; -} -.fvtt-hellborn .creature-biography .resources label { - min-width: 8rem; -} -.fvtt-hellborn .creature-biography .features, -.fvtt-hellborn .creature-biography .biodata { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 8px; -} -.fvtt-hellborn .creature-biography .features label, -.fvtt-hellborn .creature-biography .biodata label { - min-width: 3rem; -} -.fvtt-hellborn .creature-biography .features .feature, -.fvtt-hellborn .creature-biography .biodata .feature { - display: flex; - align-items: center; - gap: 4px; - min-width: 18rem; - max-width: 18rem; -} -.fvtt-hellborn .tab.creature-skills { - background-color: var(--color-light-1); +.fvtt-hellborn .tab.enemy-traits .main-div { + /*background-color: var(--color-light-1);*/ display: grid; grid-template-columns: 1fr; } -.fvtt-hellborn .tab.creature-skills legend a { +.fvtt-hellborn .tab.enemy-traits .main-div legend a { font-size: calc(var(--font-size-standard) * 1.4); padding-left: 5px; } -.fvtt-hellborn .tab.creature-skills .skills { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 4px; -} -.fvtt-hellborn .tab.creature-skills .skills .skill { +.fvtt-hellborn .tab.enemy-traits .main-div .mortality { display: flex; align-items: center; gap: 4px; margin-left: 4px; - min-width: 12.3rem; - max-width: 12.3rem; -} -.fvtt-hellborn .tab.creature-skills .skills .skill .rollable:hover, -.fvtt-hellborn .tab.creature-skills .skills .skill .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; -} -.fvtt-hellborn .tab.creature-skills .skills .skill .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; -} -.fvtt-hellborn .tab.creature-skills .skills .skill .score { - min-width: 1.2rem; - max-width: 1.2rem; -} -.fvtt-hellborn .tab.creature-skills .skills .skill .name { - min-width: 10rem; - max-width: 10rem; -} -.fvtt-hellborn .tab.creature-skills .skills .skill .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; -} -.fvtt-hellborn .tab.creature-status { - background-color: var(--color-light-1); - display: grid; - grid-template-columns: 1fr; -} -.fvtt-hellborn .tab.creature-status legend a { - font-size: calc(var(--font-size-standard) * 1.4); - padding-left: 5px; -} -.fvtt-hellborn .tab.creature-status .bonds { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; -} -.fvtt-hellborn .tab.creature-status .bonds .bond { - display: flex; - align-items: center; - gap: 4px; - min-width: 18rem; - max-width: 18rem; -} -.fvtt-hellborn .tab.creature-status .bonds .bond .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; -} -.fvtt-hellborn .tab.creature-status .bonds .bond .name { min-width: 12rem; max-width: 12rem; } -.fvtt-hellborn .tab.creature-status .bonds .bond .type { - min-width: 6rem; - max-width: 6rem; -} -.fvtt-hellborn .tab.creature-status .bonds .bond .level { - min-width: 2rem; - max-width: 2rem; -} -.fvtt-hellborn .tab.creature-status .bonds .bond .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; -} -.fvtt-hellborn .tab.creature-status .motivations { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; -} -.fvtt-hellborn .tab.creature-status .motivations .motivation { - display: flex; - align-items: center; - gap: 4px; - min-width: 14rem; - max-width: 14rem; -} -.fvtt-hellborn .tab.creature-status .motivations .motivation .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; -} -.fvtt-hellborn .tab.creature-status .motivations .motivation .name { - min-width: 12rem; - max-width: 12rem; -} -.fvtt-hellborn .tab.creature-status .motivations .motivation .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; -} -.fvtt-hellborn .tab.creature-status .mentaldisorders { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; -} -.fvtt-hellborn .tab.creature-status .mentaldisorders .mentaldisorder { - display: flex; - align-items: center; - gap: 4px; - min-width: 18rem; - max-width: 18rem; -} -.fvtt-hellborn .tab.creature-status .mentaldisorders .mentaldisorder .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; -} -.fvtt-hellborn .tab.creature-status .mentaldisorders .mentaldisorder .name { - min-width: 14rem; - max-width: 14rem; -} -.fvtt-hellborn .tab.creature-status .mentaldisorders .mentaldisorder .cured { +.fvtt-hellborn .tab.enemy-traits .main-div .mortality label { min-width: 5rem; max-width: 5rem; } -.fvtt-hellborn .tab.creature-status .mentaldisorders .mentaldisorder .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; -} -.fvtt-hellborn .tab.creature-status .injuries { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; -} -.fvtt-hellborn .tab.creature-status .injuries .injury { +.fvtt-hellborn .tab.enemy-traits .main-div .counters { display: flex; + direction: column; align-items: center; gap: 4px; - min-width: 16rem; - max-width: 16rem; + margin-left: 4px; } -.fvtt-hellborn .tab.creature-status .injuries .injury .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; +.fvtt-hellborn .tab.enemy-traits .main-div .counters .characteristics-label { + color: grey; + font-size: small; } -.fvtt-hellborn .tab.creature-status .injuries .injury .name { - min-width: 14rem; - max-width: 14rem; -} -.fvtt-hellborn .tab.creature-status .injuries .injury .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; -} -.fvtt-hellborn .tab.creature-traits { - background-color: var(--color-light-1); - display: grid; - grid-template-columns: 1fr; -} -.fvtt-hellborn .tab.creature-traits legend a { - font-size: calc(var(--font-size-standard) * 1.4); - padding-left: 5px; -} -.fvtt-hellborn .tab.creature-traits .traits { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; -} -.fvtt-hellborn .tab.creature-traits .traits .trait { - display: flex; - align-items: center; - gap: 4px; - min-width: 13rem; - max-width: 13rem; -} -.fvtt-hellborn .tab.creature-traits .traits .trait .rollable:hover, -.fvtt-hellborn .tab.creature-traits .traits .trait .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; -} -.fvtt-hellborn .tab.creature-traits .traits .trait .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; -} -.fvtt-hellborn .tab.creature-traits .traits .trait .damage { - min-width: 6rem; - max-width: 6rem; -} -.fvtt-hellborn .tab.creature-traits .traits .trait .name { - min-width: 10rem; - max-width: 10rem; -} -.fvtt-hellborn .tab.creature-traits .traits .trait .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; -} -.fvtt-hellborn .tab.creature-traits .abilities { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; -} -.fvtt-hellborn .tab.creature-traits .abilities .ability { - display: flex; - align-items: center; - gap: 4px; - min-width: 13rem; - max-width: 13rem; -} -.fvtt-hellborn .tab.creature-traits .abilities .ability .rollable:hover, -.fvtt-hellborn .tab.creature-traits .abilities .ability .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; -} -.fvtt-hellborn .tab.creature-traits .abilities .ability .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; -} -.fvtt-hellborn .tab.creature-traits .abilities .ability .damage { - min-width: 6rem; - max-width: 6rem; -} -.fvtt-hellborn .tab.creature-traits .abilities .ability .name { - min-width: 10rem; - max-width: 10rem; -} -.fvtt-hellborn .tab.creature-traits .abilities .ability .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; -} -.fvtt-hellborn .tab.creature-traits .psionics { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; -} -.fvtt-hellborn .tab.creature-traits .psionics .psionic { - display: flex; - align-items: center; - gap: 4px; - min-width: 13rem; - max-width: 13rem; -} -.fvtt-hellborn .tab.creature-traits .psionics .psionic .rollable:hover, -.fvtt-hellborn .tab.creature-traits .psionics .psionic .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; -} -.fvtt-hellborn .tab.creature-traits .psionics .psionic .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; -} -.fvtt-hellborn .tab.creature-traits .psionics .psionic .damage { - min-width: 6rem; - max-width: 6rem; -} -.fvtt-hellborn .tab.creature-traits .psionics .psionic .name { - min-width: 10rem; - max-width: 10rem; -} -.fvtt-hellborn .tab.creature-traits .psionics .psionic .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; -} -.fvtt-hellborn .tab.creature-equipment { - background-color: var(--color-light-1); - display: grid; - grid-template-columns: 1fr; -} -.fvtt-hellborn .tab.creature-equipment legend a { - font-size: calc(var(--font-size-standard) * 1.4); - padding-left: 5px; -} -.fvtt-hellborn .tab.creature-equipment .encumbrance { - display: grid; - grid-template-columns: repeat(4, 1fr); - gap: 4px; -} -.fvtt-hellborn .tab.creature-equipment .encumbrance input { +.fvtt-hellborn .tab.enemy-traits .main-div .counters label { + min-width: 4rem; max-width: 4rem; } -.fvtt-hellborn .tab.creature-equipment .encumbrance .encumbered { - color: red; - font-weight: bold; +.fvtt-hellborn .tab.enemy-traits .main-div .counters .spaced-left { + margin-left: 0.8rem; } -.fvtt-hellborn .tab.creature-equipment .implants { +.fvtt-hellborn .tab.enemy-traits .main-div .counters input { + min-width: 2.5rem; + max-width: 2.5rem; +} +.fvtt-hellborn .tab.enemy-traits .main-div .traits { display: grid; - grid-template-columns: repeat(2, 1fr); + grid-template-columns: repeat(1, 1fr); gap: 4px; } -.fvtt-hellborn .tab.creature-equipment .implants .implant { +.fvtt-hellborn .tab.enemy-traits .main-div .traits .trait { display: flex; align-items: center; gap: 4px; - min-width: 13rem; - max-width: 13rem; + margin-left: 4px; + min-width: 20rem; + max-width: 20rem; } -.fvtt-hellborn .tab.creature-equipment .implants .implant .rollable:hover, -.fvtt-hellborn .tab.creature-equipment .implants .implant .rollable:focus { +.fvtt-hellborn .tab.enemy-traits .main-div .traits .trait .rollable:hover, +.fvtt-hellborn .tab.enemy-traits .main-div .traits .trait .rollable:focus { text-shadow: 0 0 8px var(--color-shadow-primary); cursor: pointer; } -.fvtt-hellborn .tab.creature-equipment .implants .implant .controls { +.fvtt-hellborn .tab.enemy-traits .main-div .traits .trait .controls { font-size: 0.7rem; min-width: 1.8rem; max-width: 1.8rem; } -.fvtt-hellborn .tab.creature-equipment .implants .implant .damage { - min-width: 6rem; - max-width: 6rem; +.fvtt-hellborn .tab.enemy-traits .main-div .traits .trait .flavor { + min-width: 24rem; + max-width: 24rem; } -.fvtt-hellborn .tab.creature-equipment .implants .implant .name { +.fvtt-hellborn .tab.enemy-traits .main-div .traits .trait .role { + min-width: 5rem; + max-width: 5rem; +} +.fvtt-hellborn .tab.enemy-traits .main-div .traits .trait .level { + min-width: 4rem; + max-width: 4rem; +} +.fvtt-hellborn .tab.enemy-traits .main-div .traits .trait .name { min-width: 10rem; max-width: 10rem; } -.fvtt-hellborn .tab.creature-equipment .implants .implant .item-img { +.fvtt-hellborn .tab.enemy-traits .main-div .traits .trait .item-img { width: 24px; height: 24px; margin: 4px 0 0 0; } -.fvtt-hellborn .tab.creature-equipment .weapons { +.fvtt-hellborn .tab.enemy-traits .main-div .weapons { display: grid; - grid-template-columns: repeat(2, 1fr); + grid-template-columns: repeat(1, 1fr); gap: 4px; } -.fvtt-hellborn .tab.creature-equipment .weapons .weapon { +.fvtt-hellborn .tab.enemy-traits .main-div .weapons .weapon { display: flex; align-items: center; gap: 4px; min-width: 13rem; max-width: 13rem; } -.fvtt-hellborn .tab.creature-equipment .weapons .weapon .rollable:hover, -.fvtt-hellborn .tab.creature-equipment .weapons .weapon .rollable:focus { +.fvtt-hellborn .tab.enemy-traits .main-div .weapons .weapon .rollable:hover, +.fvtt-hellborn .tab.enemy-traits .main-div .weapons .weapon .rollable:focus { text-shadow: 0 0 8px var(--color-shadow-primary); cursor: pointer; } -.fvtt-hellborn .tab.creature-equipment .weapons .weapon .controls { +.fvtt-hellborn .tab.enemy-traits .main-div .weapons .weapon .controls { font-size: 0.7rem; min-width: 1.8rem; max-width: 1.8rem; } -.fvtt-hellborn .tab.creature-equipment .weapons .weapon .damage { +.fvtt-hellborn .tab.enemy-traits .main-div .weapons .weapon .properties { + min-width: 21rem; + max-width: 21rem; +} +.fvtt-hellborn .tab.enemy-traits .main-div .weapons .weapon .type { + min-width: 4rem; + max-width: 4rem; +} +.fvtt-hellborn .tab.enemy-traits .main-div .weapons .weapon .damage { min-width: 6rem; max-width: 6rem; } -.fvtt-hellborn .tab.creature-equipment .weapons .weapon .name { - min-width: 10rem; - max-width: 10rem; +.fvtt-hellborn .tab.enemy-traits .main-div .weapons .weapon .name { + min-width: 12rem; + max-width: 12rem; } -.fvtt-hellborn .tab.creature-equipment .weapons .weapon .item-img { +.fvtt-hellborn .tab.enemy-traits .main-div .weapons .weapon .item-img { width: 24px; height: 24px; margin: 4px 0 0 0; } -.fvtt-hellborn .tab.creature-equipment .armors { +.fvtt-hellborn .tab.enemy-biography .main-div { + /*background-color: var(--color-light-1);*/ display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; + grid-template-columns: 1fr; } -.fvtt-hellborn .tab.creature-equipment .armors .armor { +.fvtt-hellborn .tab.enemy-biography .main-div legend a { + font-size: calc(var(--font-size-standard) * 1.4); + padding-left: 5px; +} +.fvtt-hellborn .tab.enemy-biography .main-div .splitted-text { display: flex; - align-items: center; + flex-direction: row; gap: 4px; - min-width: 13rem; - max-width: 13rem; } -.fvtt-hellborn .tab.creature-equipment .armors .armor .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; +.fvtt-hellborn .tab.enemy-biography .main-div .splitted-text fieldset { + width: 100%; } -.fvtt-hellborn .tab.creature-equipment .armors .armor .protection { - min-width: 6rem; - max-width: 6rem; -} -.fvtt-hellborn .tab.creature-equipment .armors .armor .name { - min-width: 10rem; - max-width: 10rem; -} -.fvtt-hellborn .tab.creature-equipment .armors .armor .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; -} -.fvtt-hellborn .tab.creature-equipment .equipments { +.fvtt-hellborn .tab.enemy-biography .main-div .deals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; } -.fvtt-hellborn .tab.creature-equipment .equipments .equipment { +.fvtt-hellborn .tab.enemy-biography .main-div .deals .deal { display: flex; align-items: center; gap: 4px; - min-width: 13rem; - max-width: 13rem; + margin-left: 4px; + min-width: 12rem; + max-width: 12rem; } -.fvtt-hellborn .tab.creature-equipment .equipments .equipment .rollable:hover, -.fvtt-hellborn .tab.creature-equipment .equipments .equipment .rollable:focus { +.fvtt-hellborn .tab.enemy-biography .main-div .deals .deal .rollable:hover, +.fvtt-hellborn .tab.enemy-biography .main-div .deals .deal .rollable:focus { text-shadow: 0 0 8px var(--color-shadow-primary); cursor: pointer; } -.fvtt-hellborn .tab.creature-equipment .equipments .equipment .controls { +.fvtt-hellborn .tab.enemy-biography .main-div .deals .deal .controls { font-size: 0.7rem; min-width: 1.8rem; max-width: 1.8rem; } -.fvtt-hellborn .tab.creature-equipment .equipments .equipment .name { +.fvtt-hellborn .tab.enemy-biography .main-div .deals .deal .name { min-width: 10rem; max-width: 10rem; } -.fvtt-hellborn .tab.creature-equipment .equipments .equipment .item-img { +.fvtt-hellborn .tab.enemy-biography .main-div .deals .deal .item-img { width: 24px; height: 24px; margin: 4px 0 0 0; } -.fvtt-hellborn .tab.creature-equipment prose-mirror.inactive { +.fvtt-hellborn .tab.enemy-biography .main-div .biodata { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 4px; +} +.fvtt-hellborn .tab.enemy-biography .main-div .biodata .experience { + display: flex; + flex-direction: row; + align-items: center; + gap: 4px; + margin-left: 4px; +} +.fvtt-hellborn .tab.enemy-biography .main-div .biodata .form-group { + display: flex; + flex-direction: row; + align-items: center; + gap: 4px; + margin-left: 4px; + min-width: 14rem; + max-width: 14rem; +} +.fvtt-hellborn .tab.enemy-biography .main-div .biodata .form-group label { + min-width: 6rem; + max-width: 6rem; +} +.fvtt-hellborn .tab.enemy-biography .main-div .biodata input { + text-align: left; + min-width: 8rem; + max-width: 8rem; +} +.fvtt-hellborn .tab.enemy-biography .main-div prose-mirror.inactive { min-height: 40px; } -.fvtt-hellborn .tab.creature-equipment prose-mirror.active { +.fvtt-hellborn .tab.enemy-biography .main-div prose-mirror.active { min-height: 150px; } .fvtt-hellborn .weapon-content { @@ -2557,6 +2269,18 @@ i.fvtt-hellborn { font-size: calc(var(--font-size-standard) * 2); color: var(--color-dark-1); } +.item-to-chat ul { + list-style-type: none; + padding: 0; + margin: 0; + justify-content: center; + align-items: center; +} +.item-to-chat ul li { + margin: 0 10px; + font-family: var(--font-primary); + font-size: calc(var(--font-size-standard) * 1); +} .dice-roll { flex-direction: column; } diff --git a/fvtt-hellborn.mjs b/fvtt-hellborn.mjs index 161281c..742c4f1 100644 --- a/fvtt-hellborn.mjs +++ b/fvtt-hellborn.mjs @@ -33,8 +33,7 @@ Hooks.once("init", function () { CONFIG.Actor.documentClass = documents.HellbornActor CONFIG.Actor.dataModels = { character: models.HellbornCharacter, - vehicle: models.HellbornVehicle, - creature: models.HellbornCreature + enemy: models.HellbornEnemy, } CONFIG.Item.documentClass = documents.HellbornItem @@ -53,8 +52,7 @@ Hooks.once("init", function () { // Register sheet application classes foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet) foundry.documents.collections.Actors.registerSheet("fvtt-hellborn", applications.HellbornCharacterSheet , { types: ["character"], makeDefault: true }) - foundry.documents.collections.Actors.registerSheet("fvtt-hellborn", applications.HellbornVehicleSheet, { types: ["vehicle"], makeDefault: true }) - foundry.documents.collections.Actors.registerSheet("fvtt-hellborn", applications.HellbornCreatureSheet, { types: ["creature"], makeDefault: true }) + foundry.documents.collections.Actors.registerSheet("fvtt-hellborn", applications.HellbornEnemySheet, { types: ["enemy"], makeDefault: true }) foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet) foundry.documents.collections.Items.registerSheet("fvtt-hellborn", applications.HellbornWeaponSheet, { types: ["weapon"], makeDefault: true }) diff --git a/lang/en.json b/lang/en.json index 3a80ca9..ac83257 100644 --- a/lang/en.json +++ b/lang/en.json @@ -19,6 +19,19 @@ } } }, + "Enemy": { + "FIELDS": { + "description": { + "label": "Description" + }, + "notes": { + "label": "Notes" + }, + "flavorText": { + "label": "Flavor Text" + } + } + }, "Character": { "FIELDS": { "mortality": { @@ -641,8 +654,7 @@ "TYPES": { "Actor": { "character": "Character", - "creature": "Creature", - "vehicle": "Vehicle" + "enemy": "Enemy" }, "Item": { "armor": "Armor", @@ -651,7 +663,7 @@ "malefica": "Malefica", "perk": "Perk", "ritual": "Ritual", - "species-trait": "Species Trait", + "species-trait": "Trait", "tarot": "Tarot", "weapon": "Weapon" } diff --git a/module/applications/_module.mjs b/module/applications/_module.mjs index cec277c..7710978 100644 --- a/module/applications/_module.mjs +++ b/module/applications/_module.mjs @@ -1,8 +1,7 @@ export { default as HellbornWeaponSheet } from "./sheets/weapon-sheet.mjs" -export { default as HellbornVehicleSheet } from "./sheets/vehicle-sheet.mjs" export { default as HellbornCharacterSheet } from "./sheets/character-sheet.mjs" export { default as HellbornEquipmentSheet } from "./sheets/equipment-sheet.mjs" -export { default as HellbornCreatureSheet } from "./sheets/creature-sheet.mjs" +export { default as HellbornEnemySheet } from "./sheets/enemy-sheet.mjs" export { default as HellbornRitualSheet } from "./sheets/ritual-sheet.mjs" export { default as HellbornItemSheet } from "./sheets/base-item-sheet.mjs" export { default as HellbornSpeciesTraitSheet } from "./sheets/species-trait-sheet.mjs" diff --git a/module/applications/sheets/base-actor-sheet.mjs b/module/applications/sheets/base-actor-sheet.mjs index 3a15aea..e702a9a 100644 --- a/module/applications/sheets/base-actor-sheet.mjs +++ b/module/applications/sheets/base-actor-sheet.mjs @@ -34,6 +34,7 @@ export default class HellbornActorSheet extends HandlebarsApplicationMixin(found edit: HellbornActorSheet.#onItemEdit, delete: HellbornActorSheet.#onItemDelete, updateCheckboxArray: HellbornActorSheet.#onUpdateCheckboxArray, + toChat: HellbornActorSheet.#toChat, }, } @@ -138,7 +139,7 @@ export default class HellbornActorSheet extends HandlebarsApplicationMixin(found * @param {DragEvent} event The originating DragEvent * @protected */ - _onDragOver(event) {} + _onDragOver(event) { } async _onDropItem(item) { console.log("Dropped item", item) @@ -193,9 +194,31 @@ export default class HellbornActorSheet extends HandlebarsApplicationMixin(found let dataPath = `system.mortality.${arrayName}` let tab = foundry.utils.duplicate(this.document.system.mortality[arrayName]) tab[arrayIdx] = target.checked - this.actor.update( { [dataPath]: tab } ) - // Dump - console.log("Array name", arrayName, arrayIdx, target.checked, dataPath) + this.actor.update({ [dataPath]: tab }) + } + + static async #toChat(event, target) { + const itemUuid = target.getAttribute("data-item-uuid") + const item = fromUuidSync(itemUuid) + if (!item) return + let content = "" + if (item.type === "perk") { + content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-hellborn/templates/chat-perk.hbs", item.toObject()) + } + if (item.type === "malefica") { + content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-hellborn/templates/chat-malefica.hbs", item.toObject()) + } + if (item.type === "ritual") { + content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-hellborn/templates/chat-ritual.hbs", item.toObject()) + } + const chatData = { + user: game.user.id, + speaker: ChatMessage.getSpeaker({ actor: this.actor }), + content: content, + type: CONST.CHAT_MESSAGE_TYPES.OTHER, + } + ChatMessage.create(chatData, { renderSheet: false }) + } /** diff --git a/module/applications/sheets/character-sheet.mjs b/module/applications/sheets/character-sheet.mjs index 6ba81fb..8609ac9 100644 --- a/module/applications/sheets/character-sheet.mjs +++ b/module/applications/sheets/character-sheet.mjs @@ -124,7 +124,6 @@ export default class HellbornCharacterSheet extends HellbornActorSheet { context.enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.notes, { async: true }) break } - console.log("context", context) return context } diff --git a/module/applications/sheets/deal-sheet.mjs b/module/applications/sheets/deal-sheet.mjs index 0e948d7..9ad0041 100644 --- a/module/applications/sheets/deal-sheet.mjs +++ b/module/applications/sheets/deal-sheet.mjs @@ -22,7 +22,7 @@ export default class HellbornDealSheet extends HellbornItemSheet { /** @override */ async _prepareContext() { const context = await super._prepareContext() - context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true }) + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }) return context } } diff --git a/module/applications/sheets/creature-sheet.mjs b/module/applications/sheets/enemy-sheet.mjs similarity index 60% rename from module/applications/sheets/creature-sheet.mjs rename to module/applications/sheets/enemy-sheet.mjs index d39b91a..7dcc151 100644 --- a/module/applications/sheets/creature-sheet.mjs +++ b/module/applications/sheets/enemy-sheet.mjs @@ -1,35 +1,34 @@ import HellbornActorSheet from "./base-actor-sheet.mjs" -export default class HellbornCreatureSheet extends HellbornActorSheet { +export default class HellbornEnemySheet extends HellbornActorSheet { /** @override */ static DEFAULT_OPTIONS = { - classes: ["creature"], + classes: ["enemy"], position: { width: 860, height: 620, }, window: { - contentClasses: ["creature-content"], + contentClasses: ["enemy-content"], }, actions: { - createTrait: HellbornCreatureSheet.#onCreateTrait, - createAbility: HellbornCreatureSheet.#onCreateAbility + createTrait: HellbornEnemySheet.#onCreateTrait, }, } /** @override */ static PARTS = { main: { - template: "systems/fvtt-hellborn/templates/creature-main.hbs", + template: "systems/fvtt-hellborn/templates/enemy-main.hbs", }, tabs: { template: "templates/generic/tab-navigation.hbs", }, traits: { - template: "systems/fvtt-hellborn/templates/creature-sheet-trait.hbs", + template: "systems/fvtt-hellborn/templates/enemy-trait.hbs", }, biography: { - template: "systems/fvtt-hellborn/templates/creature-biography.hbs", + template: "systems/fvtt-hellborn/templates/enemy-biography.hbs", }, } @@ -59,9 +58,6 @@ export default class HellbornCreatureSheet extends HellbornActorSheet { const context = await super._prepareContext() context.tabs = this.#getTabs() - context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true }) - context.enrichedNotes = await TextEditor.enrichHTML(this.document.system.notes, { async: true }) - return context } @@ -73,15 +69,15 @@ export default class HellbornCreatureSheet extends HellbornActorSheet { break case "traits": context.tab = context.tabs.traits - context.abilities = doc.itemTypes["creature-ability"] - context.abilities.sort((a, b) => a.name.localeCompare(b.name)) - context.traits = doc.itemTypes["creature-trait"] + context.traits = doc.itemTypes["species-trait"] context.traits.sort((a, b) => a.name.localeCompare(b.name)) + context.weapons = doc.itemTypes.weapon + context.weapons.sort((a, b) => a.name.localeCompare(b.name)) break case "biography": context.tab = context.tabs.biography - context.enrichedDescription = await TextEditor.enrichHTML(doc.system.description, { async: true }) - context.enrichedNotes = await TextEditor.enrichHTML(doc.system.notes, { async: true }) + 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 @@ -93,11 +89,7 @@ export default class HellbornCreatureSheet extends HellbornActorSheet { * @param {HTMLElement} target The current target of the event listener. */ static #onCreateTrait(event, target) { - this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("HELLBORN.Label.newTrait"), type: "creature-trait" }]) - } - - static #onCreateAbility(event, target) { - this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("HELLBORN.Label.newAbility"), type: "creature-ability" }]) + this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("HELLBORN.Label.newTrait"), type: "trait" }]) } /** @@ -117,27 +109,21 @@ export default class HellbornCreatureSheet extends HellbornActorSheet { async _onRoll(event, target) { const rollType = $(event.currentTarget).data("roll-type") let item - let formula - let roll switch (rollType) { - case "skill": - let skillId = $(event.currentTarget).data("skill-id"); - item = this.actor.system.skills[skillId]; - await this.document.system.roll(rollType, item) + case "stat": + { + let statId = $(event.currentTarget).data("stat-id"); + item = this.actor.system.stats[statId]; + await this.document.system.roll(rollType, item) + } break - case "creature-damage": - formula = this.actor.system.damage - // Rolll the damage - roll = new Roll(formula) - await roll.evaluate() - roll.toMessage( { flavor: `${this.actor.name} : Damage roll` }) - break - case "creature-number": - formula = this.actor.system.numberAppearing - // Rolll the damage - roll = new Roll(formula) - await roll.evaluate() - roll.toMessage({flavor: `${this.actor.name} : Number Appearing roll`}) + case "weapon": + case "damage": + { + let li = $(event.currentTarget).parents(".item"); + item = this.actor.items.get(li.data("item-id")); + await this.document.system.roll(rollType, item) + } break default: throw new Error(`Unknown roll type ${rollType}`) diff --git a/module/applications/sheets/equipment-sheet.mjs b/module/applications/sheets/equipment-sheet.mjs index 0b76e6b..c803626 100644 --- a/module/applications/sheets/equipment-sheet.mjs +++ b/module/applications/sheets/equipment-sheet.mjs @@ -22,7 +22,7 @@ export default class HellbornEquipmentSheet extends HellbornItemSheet { /** @override */ async _prepareContext() { const context = await super._prepareContext() - context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true }) + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }) return context } } diff --git a/module/applications/sheets/malefica-sheet.mjs b/module/applications/sheets/malefica-sheet.mjs index bf456f4..2858856 100644 --- a/module/applications/sheets/malefica-sheet.mjs +++ b/module/applications/sheets/malefica-sheet.mjs @@ -22,7 +22,7 @@ export default class HellbornMaleficaSheet extends HellbornItemSheet { /** @override */ async _prepareContext() { const context = await super._prepareContext() - context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true }) + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }) return context } } diff --git a/module/applications/sheets/perk-sheet.mjs b/module/applications/sheets/perk-sheet.mjs index 748a0f0..e30b182 100644 --- a/module/applications/sheets/perk-sheet.mjs +++ b/module/applications/sheets/perk-sheet.mjs @@ -22,7 +22,7 @@ export default class HellbornPerkSheet extends HellbornItemSheet { /** @override */ async _prepareContext() { const context = await super._prepareContext() - context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true }) + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }) return context } } diff --git a/module/applications/sheets/ritual-sheet.mjs b/module/applications/sheets/ritual-sheet.mjs index 4a89ff8..6a77516 100644 --- a/module/applications/sheets/ritual-sheet.mjs +++ b/module/applications/sheets/ritual-sheet.mjs @@ -22,6 +22,8 @@ export default class HellbornRitualSheet extends HellbornItemSheet { /** @override */ async _prepareContext() { const context = await super._prepareContext() + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }) + return context } } diff --git a/module/applications/sheets/species-trait-sheet.mjs b/module/applications/sheets/species-trait-sheet.mjs index ee3334a..1261767 100644 --- a/module/applications/sheets/species-trait-sheet.mjs +++ b/module/applications/sheets/species-trait-sheet.mjs @@ -22,7 +22,7 @@ export default class HellbornSpeciesTraitSheet extends HellbornItemSheet { /** @override */ async _prepareContext() { const context = await super._prepareContext() - context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true }) + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }) return context } } diff --git a/module/applications/sheets/vehicle-sheet.mjs b/module/applications/sheets/vehicle-sheet.mjs deleted file mode 100644 index 4f7b272..0000000 --- a/module/applications/sheets/vehicle-sheet.mjs +++ /dev/null @@ -1,134 +0,0 @@ -import HellbornActorSheet from "./base-actor-sheet.mjs" - -export default class HellbornVehicleSheet extends HellbornActorSheet { - /** @override */ - static DEFAULT_OPTIONS = { - classes: ["vehicle"], - position: { - width: 680, - height: 540, - }, - window: { - contentClasses: ["vehicle-content"], - }, - actions: { - createEquipment: HellbornVehicleSheet.#onCreateEquipment, - createWeapon: HellbornVehicleSheet.#onCreateWeapon, - }, - } - - /** @override */ - static PARTS = { - main: { - template: "systems/fvtt-hellborn/templates/vehicle-main.hbs", - }, - tabs: { - template: "templates/generic/tab-navigation.hbs", - }, - equipment: { - template: "systems/fvtt-hellborn/templates/vehicle-equipment.hbs", - }, - description: { - template: "systems/fvtt-hellborn/templates/vehicle-description.hbs", - }, - } - - /** @override */ - tabGroups = { - sheet: "equipment", - } - - /** - * Prepare an array of form header tabs. - * @returns {Record>} - */ - #getTabs() { - const tabs = { - equipment: { id: "equipment", group: "sheet", icon: "fa-solid fa-shapes", label: "HELLBORN.Label.equipment" }, - description: { id: "description", group: "sheet", icon: "fa-solid fa-book", label: "HELLBORN.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 TextEditor.enrichHTML(this.document.system.description, { async: true }) - context.enrichedNotes = await TextEditor.enrichHTML(this.document.system.notes, { async: true }) - - return context - } - - _generateTooltip(type, target) { - } - - /** @override */ - async _preparePartContext(partId, context) { - const doc = this.document - switch (partId) { - case "main": - break - case "equipment": - context.tab = context.tabs.equipment - context.weapons = doc.itemTypes.weapon - context.weapons.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 TextEditor.enrichHTML(doc.system.description, { async: true }) - context.enrichedNotes = await TextEditor.enrichHTML(doc.system.notes, { async: true }) - break - } - return context - } - - /** - * Creates a new attack item directly from the sheet and embeds it into the document. - * @param {Event} event The initiating click event. - * @param {HTMLElement} target The current target of the event listener. - */ - static #onCreateEquipment(event, target) { - this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("HELLBORN.Label.newEquipment"), type: "equipment" }]) - } - - static #onCreateWeapon(event, target) { - this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("HELLBORN.Label.newWeapon"), type: "weapon" }]) - } - - async _onRoll(event, target) { - const rollType = $(event.currentTarget).data("roll-type") - let item - let li - switch (rollType) { - 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) - } - } - -} diff --git a/module/applications/sheets/weapon-sheet.mjs b/module/applications/sheets/weapon-sheet.mjs index 70aeaa0..7814bbd 100644 --- a/module/applications/sheets/weapon-sheet.mjs +++ b/module/applications/sheets/weapon-sheet.mjs @@ -18,4 +18,10 @@ export default class HellbornWeaponSheet extends HellbornItemSheet { template: "systems/fvtt-hellborn/templates/weapon.hbs", }, } + + async _prepareContext() { + const context = await super._prepareContext() + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }) + return context + } } diff --git a/module/config/system.mjs b/module/config/system.mjs index 79764be..8ebcbbe 100644 --- a/module/config/system.mjs +++ b/module/config/system.mjs @@ -92,7 +92,7 @@ export const WEAPON_TYPES = { export const AMMO_TYPES = { "blessed": { id: "blessed", label: "Blessed" }, - "hollow-points": { id: "hollow-points", label: "Hollow Points" }, + "hollow-points": { id: "hollow-points", label: "Hollow" }, "incendiary": { id: "incendiary", label: "Incendiary" }, "poisoned": { id: "poisoned", label: "Poisoned" }, "rubber": { id: "rubber", label: "Rubber" }, diff --git a/module/models/_module.mjs b/module/models/_module.mjs index 7036bcd..56b7dd2 100644 --- a/module/models/_module.mjs +++ b/module/models/_module.mjs @@ -1,5 +1,4 @@ -export { default as HellbornCreature } from "./creature.mjs" -export { default as HellbornVehicle } from "./vehicle.mjs" +export { default as HellbornEnemy } from "./enemy.mjs" export { default as HellbornCharacter } from "./character.mjs" export { default as HellbornEquipment } from "./equipment.mjs" export { default as HellbornRitual } from "./ritual.mjs" diff --git a/module/models/character.mjs b/module/models/character.mjs index 5690fcd..f3dfee4 100644 --- a/module/models/character.mjs +++ b/module/models/character.mjs @@ -58,9 +58,17 @@ export default class HellbornActor extends foundry.abstract.TypeDataModel { schema.limboes = new fields.StringField({ required: true, nullable: false, initial: "" }) schema.ammo = new fields.StringField({ required: true, nullable: false, initial: "" }) - schema.ammoList = new fields.SchemaField( - Object.values(SYSTEM.AMMO_TYPES).reduce((obj, stat) => { - obj[stat.id] = new fields.StringField({ required: true, nullable: false, initial: "" }) + + const ammoField = (label) => { + const schema = { + label: new fields.StringField({ required: true, initial: label }), + value: new fields.StringField({ required: true, initial: "" }), + } + return new fields.SchemaField(schema, { label }) + } + schema.ammoArray = new fields.SchemaField( + Object.values(SYSTEM.AMMO_TYPES).reduce((obj, ammo) => { + obj[ammo.id] = ammoField(ammo.label) return obj }, {}), ) diff --git a/module/models/creature.mjs b/module/models/creature.mjs deleted file mode 100644 index c5aa003..0000000 --- a/module/models/creature.mjs +++ /dev/null @@ -1,56 +0,0 @@ -import { SYSTEM } from "../config/system.mjs" -import HellbornRoll from "../documents/roll.mjs" - -export default class HellbornCreature extends foundry.abstract.TypeDataModel { - static defineSchema() { - const fields = foundry.data.fields - const requiredInteger = { required: true, nullable: false, integer: true } - const schema = {} - - - schema.terrain = new fields.StringField({ required: true, nullable: false, initial: "cave", choices: SYSTEM.CREATURE_TERRAIN_TYPES }) - schema.niche = new fields.StringField({ required: true, nullable: false, initial: "prey", choices: SYSTEM.CREATURE_NICHES }) - schema.size = new fields.StringField({ required: true, nullable: false, initial: "small", choices: SYSTEM.CREATURE_SIZES }) - - schema.numberAppearing = new fields.StringField({ required: true, initial: "1d6" }) - schema.health = new fields.SchemaField({ - staminaValue: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }), - staminaMax: new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 }), - }) - schema.damage = new fields.StringField({ required: true, initial: "1d6" }) - - schema.description = new fields.HTMLField({ required: true, textSearch: true }) - schema.notes = new fields.HTMLField({ required: true, textSearch: true }) - - return schema - } - - /** @override */ - static LOCALIZATION_PREFIXES = ["HELLBORN.Creature"] - - isEncumbered() { - return false - } - - async roll(rollType, rollItem) { - let opponentTarget - const hasTarget = opponentTarget !== undefined - - let roll = await HellbornRoll.prompt({ - rollType, - rollItem, - actorId: this.parent.id, - actorName: this.parent.name, - actorImage: this.parent.img, - traits: this.parent.items.filter(i => i.type === "creature-trait" && i.system.isAdvantage), - abilities: this.parent.items.filter(i => i.type === "creature-ability" && i.system.isAdvantage), - isEncumbered: this.isEncumbered(), - hasTarget, - target: opponentTarget - }) - if (!roll) return null - - await roll.toMessage({}, { rollMode: roll.options.rollMode }) - } - -} diff --git a/module/models/enemy.mjs b/module/models/enemy.mjs new file mode 100644 index 0000000..2c0fdc5 --- /dev/null +++ b/module/models/enemy.mjs @@ -0,0 +1,80 @@ +import { SYSTEM } from "../config/system.mjs" +import HellbornRoll from "../documents/roll.mjs" + +export default class HellbornEnemy extends foundry.abstract.TypeDataModel { + + static defineSchema() { + const fields = foundry.data.fields + const requiredInteger = { required: true, nullable: false, integer: true } + const schema = {} + + const statField = (label) => { + const schema = { + label: new fields.StringField({ required: true, initial: label }), + value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }), + + } + return new fields.SchemaField(schema, { label }) + } + + schema.stats = new fields.SchemaField( + Object.values(SYSTEM.STATS).reduce((obj, stat) => { + obj[stat.id] = statField(stat.label) + return obj + }, {}), + ) + schema.flavorText = new fields.StringField({ required: true, initial: "", textSearch: true }) + + schema.trauma = new fields.SchemaField({ + current: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }), + max: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }), + }) + + schema.darkness = new fields.SchemaField({ + current: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }), + max: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }), + value: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }), + }) + + schema.defense = new fields.SchemaField({ + base: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }), + bonus: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }), + total: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }), + resistance: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }), + }) + + schema.movement = new fields.SchemaField({ + base: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }), + reduce: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }), + }) + + + schema.description = new fields.HTMLField({ required: true, textSearch: true }) + schema.notes = new fields.HTMLField({ required: true, textSearch: true }) + + return schema + } + + /** @override */ + static LOCALIZATION_PREFIXES = ["HELLBORN.Enemy"] + + async roll(rollType, rollItem) { + let opponentTarget + const hasTarget = opponentTarget !== undefined + + let roll = await HellbornRoll.prompt({ + rollType, + rollItem, + actorId: this.parent.id, + actorName: this.parent.name, + actorImage: this.parent.img, + traits: this.parent.items.filter(i => i.type === "trait"), + hasTarget, + target: opponentTarget + }) + if (!roll) return null + + await roll.toMessage({}, { rollMode: roll.options.rollMode }) + } + +} diff --git a/module/models/vehicle.mjs b/module/models/vehicle.mjs deleted file mode 100644 index 64f425a..0000000 --- a/module/models/vehicle.mjs +++ /dev/null @@ -1,55 +0,0 @@ -import { SYSTEM } from "../config/system.mjs" -import HellbornRoll from "../documents/roll.mjs" - -export default class HellbornVehicle extends foundry.abstract.TypeDataModel { - static defineSchema() { - const fields = foundry.data.fields - const requiredInteger = { required: true, nullable: false, integer: true } - const schema = {} - - schema.agility = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) - schema.armor = new fields.StringField({ required: true, initial: "" }) - schema.cargo = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) - schema.crew = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 }) - 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.tonnage = new fields.NumberField({ required: true, initial: 1, min: 0 }) - schema.damages = new fields.StringField({ required: true, initial: "" }) - - schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 }) - - schema.description = new fields.HTMLField({ required: true, textSearch: true }) - schema.notes = new fields.HTMLField({ required: true, textSearch: true }) - - return schema - } - - /** @override */ - static LOCALIZATION_PREFIXES = ["HELLBORN.Vehicle"] - - isEncumbered() { - return false - } - - async roll(rollType, rollItem) { - let opponentTarget - const hasTarget = opponentTarget !== undefined - - let roll = await HellbornRoll.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 }) - } - -} diff --git a/styles/character.less b/styles/character.less index 1622da6..3306d1e 100644 --- a/styles/character.less +++ b/styles/character.less @@ -191,6 +191,9 @@ min-width: 4rem; max-width: 4rem; } + .spaced-left{ + margin-left: 0.8rem; + } input { min-width: 2.5rem; max-width: 2.5rem; @@ -368,10 +371,6 @@ .limboes { display: flex; flex-direction: row; - .limboes-layout { - display: flex; - flex-direction: column; - } .limboes-line { display: flex; flex-direction: row; @@ -382,13 +381,18 @@ align-items: center; gap: 4px; margin-left: 4px; - min-width: 14rem; - max-width: 14rem; + min-width: 6rem; + max-width: 6rem; + } + .ammo-quantity { + text-align: left; + max-width: 3rem; + min-width: 3rem; } input { text-align: left; - min-width: 6rem; - max-width: 6rem; + min-width: 8rem; + max-width: 8rem; } } diff --git a/styles/creature.less b/styles/creature.less deleted file mode 100644 index c67740c..0000000 --- a/styles/creature.less +++ /dev/null @@ -1,700 +0,0 @@ -.creature-content { - .sheet-common(); - .creature-sheet-common(); - overflow: scroll; -} - -.sheet-tabs { - background-color: var(--color-light-1); -} - -.creature-main { - background-color: var(--color-light-1); - display: flex; - - .creature-pc { - display: flex; - gap: 4px; - flex: 1; - - .creature-left { - min-width: 180px; - display: flex; - flex-direction: column; - - .creature-left-image { - display: flex; - justify-content: center; - align-items: center; - padding-bottom: 8px; - .creature-img { - height: 140px; - width: auto; - border: none; - } - } - - .creature-hp { - gap: 2px; - align-items: center; - input { - flex: none; - width: 2.5rem; - margin-left: 2px; - margin-right: 4px; - } - .hp-separator { - font-size: calc(var(--font-size-standard) * 1.2); - display: flex; - align-items: center; - justify-content: center; - } - } - - .creature-dv, - .creature-dmax { - .form-fields { - flex: none; - } - } - .creature-dmax-edit { - input { - display: flex; - width: 60px; - font-size: calc(var(--font-size-standard) * 1.4); - align-items: center; - justify-content: center; - padding: 0 5px 0 5px; - text-align: center; - } - } - } - - .creature-right { - display: flex; - flex-direction: column; - gap: 5px; - - .creature-spec { - label { - max-width: 8rem; - } - select { - max-width: 10rem; - } - input { - max-width: 6rem; - } - .dice-2d6 { - max-width: 1.5rem; - } - .rollable:hover, - .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; - } - .rollable { - } - } - - .creature-name { - display: flex; - input { - font-family: var(--font-title); - font-size: var(--font-size-title); - width: 400px; - } - } - label { - min-width: 120px; - } - } - } - - .creature-pc-play { - min-width: 500px; - } - - .creature-pc-edit { - min-width: 500px; - } - - .creature-skills { - background-color: var(--color-light-1); - display: flex; - flex-direction: column; - gap: 5px; - flex: 1; - - .creature-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; - } - } - } - } - - .creature-skill-play { - min-width: 225px; - } - - .creature-skill-edit { - min-width: 225px; - } -} - -.creature-biography { - background-color: var(--color-light-1); - prose-mirror.inactive { - min-height: 40px; - } - prose-mirror.active { - min-height: 150px; - } - .field-label { - margin-left: 8px; - } - - .rank { - display: grid; - grid-template-columns: repeat(5, 1fr); - gap: 8px; - label { - min-width: 6rem; - } - input { - max-width: 4rem; - } - } - - .biodata { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 8px; - label { - min-width: 12rem; - } - } - - .resources { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 8px; - label { - min-width: 8rem; - } - } - - .features, - .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.creature-skills { - 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; - } - } - .skills { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 4px; - .skill { - display: flex; - align-items: center; - gap: 4px; - margin-left: 4px; - min-width: 12.3rem; - max-width: 12.3rem; - .rollable:hover, - .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; - } - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .score { - min-width: 1.2rem; - max-width: 1.2rem; - } - .name { - min-width: 10rem; - max-width: 10rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } -} - -.tab.creature-status { - background-color: var(--color-light-1); - display: grid; - grid-template-columns: 1fr; - legend { - a { - font-size: calc(var(--font-size-standard) * 1.4); - padding-left: 5px; - } - } - - .bonds { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .bond { - display: flex; - align-items: center; - gap: 4px; - min-width: 18rem; - max-width: 18rem; - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .name { - min-width: 12rem; - max-width: 12rem; - } - .type { - min-width: 6rem; - max-width: 6rem; - } - .level { - min-width: 2rem; - max-width: 2rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } - - .motivations { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .motivation { - display: flex; - align-items: center; - gap: 4px; - min-width: 14rem; - max-width: 14rem; - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .name { - min-width: 12rem; - max-width: 12rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } - - .mentaldisorders { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .mentaldisorder { - display: flex; - align-items: center; - gap: 4px; - min-width: 18rem; - max-width: 18rem; - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .name { - min-width: 14rem; - max-width: 14rem; - } - .cured { - min-width: 5rem; - max-width: 5rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } - - .injuries { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .injury { - display: flex; - align-items: center; - gap: 4px; - min-width: 16rem; - max-width: 16rem; - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .name { - min-width: 14rem; - max-width: 14rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } -} - -.tab.creature-traits { - 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; - } - } - - .traits { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .trait { - display: flex; - align-items: center; - gap: 4px; - min-width: 13rem; - max-width: 13rem; - .rollable:hover, - .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; - } - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .damage { - min-width: 6rem; - max-width: 6rem; - } - .name { - min-width: 10rem; - max-width: 10rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } - - .abilities { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .ability { - display: flex; - align-items: center; - gap: 4px; - min-width: 13rem; - max-width: 13rem; - .rollable:hover, - .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; - } - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .damage { - min-width: 6rem; - max-width: 6rem; - } - .name { - min-width: 10rem; - max-width: 10rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } - - .psionics { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .psionic { - display: flex; - align-items: center; - gap: 4px; - min-width: 13rem; - max-width: 13rem; - .rollable:hover, - .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; - } - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .damage { - min-width: 6rem; - max-width: 6rem; - } - .name { - min-width: 10rem; - max-width: 10rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } - -} - -.tab.creature-equipment { - 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; - } - } - .encumbrance { - display: grid; - grid-template-columns: repeat(4, 1fr); - gap: 4px; - input { - max-width: 4rem; - } - .encumbered { - color: red; - font-weight: bold; - } - } - - .implants { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .implant { - display: flex; - align-items: center; - gap: 4px; - min-width: 13rem; - max-width: 13rem; - .rollable:hover, - .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; - } - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .damage { - min-width: 6rem; - max-width: 6rem; - } - .name { - min-width: 10rem; - max-width: 10rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } - - - .weapons { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .weapon { - display: flex; - align-items: center; - gap: 4px; - min-width: 13rem; - max-width: 13rem; - .rollable:hover, - .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; - } - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .damage { - min-width: 6rem; - max-width: 6rem; - } - .name { - min-width: 10rem; - max-width: 10rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } - - .armors { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - .armor { - display: flex; - align-items: center; - gap: 4px; - min-width: 13rem; - max-width: 13rem; - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .protection { - min-width: 6rem; - max-width: 6rem; - } - .name { - min-width: 10rem; - max-width: 10rem; - } - .item-img { - width: 24px; - height: 24px; - 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: 13rem; - .rollable:hover, - .rollable:focus { - text-shadow: 0 0 8px var(--color-shadow-primary); - cursor: pointer; - } - .controls { - font-size: 0.7rem; - min-width: 1.8rem; - max-width: 1.8rem; - } - .name { - min-width: 10rem; - max-width: 10rem; - } - .item-img { - width: 24px; - height: 24px; - margin: 4px 0 0 0; - } - } - } - - prose-mirror.inactive { - min-height: 40px; - } - prose-mirror.active { - min-height: 150px; - } -} diff --git a/styles/enemy.less b/styles/enemy.less new file mode 100644 index 0000000..afbc222 --- /dev/null +++ b/styles/enemy.less @@ -0,0 +1,379 @@ +.enemy-content { + .sheet-common(); + .enemy-sheet-common(); + overflow: scroll; +} + +.sheet-tabs { + background-color: var(--color-light-1); +} + +.enemy-main { + /*background-color: var(--color-light-1);*/ + display: flex; + + .enemy-pc { + display: flex; + gap: 4px; + flex: 1; + + .enemy-left { + min-width: 180px; + display: flex; + flex-direction: column; + + .enemy-left-image { + display: flex; + justify-content: center; + align-items: center; + padding-bottom: 8px; + .enemy-img { + height: 140px; + width: auto; + border: none; + } + } + + .enemy-hp { + gap: 2px; + align-items: center; + input { + flex: none; + width: 2.5rem; + margin-left: 2px; + margin-right: 4px; + } + .hp-separator { + font-size: calc(var(--font-size-standard) * 1.2); + display: flex; + align-items: center; + justify-content: center; + } + } + + .enemy-dv, + .enemy-dmax { + .form-fields { + flex: none; + } + } + } + + .enemy-right { + display: flex; + flex-direction: column; + gap: 5px; + + .enemy-definition { + .form-group { + display: flex; + align-items: center; + margin-bottom: 4px; + } + .splitted { + display: flex; + flex-direction: row; + gap: 4px; + } + label { + max-width: 5rem; + min-width: 5rem; + } + input { + text-align: left; + min-width: 18rem; + max-width: 18rem; + margin-bottom: auto; + } + .trait { + min-width: 7rem; + max-width: 7rem; + margin-right: 1rem; + margin-bottom: auto; + } + } + .enemy-name { + display: flex; + input { + font-family: var(--font-title); + font-size: var(--font-size-title); + width: 400px; + } + } + label { + min-width: 120px; + } + } + } + + .enemy-pc-play { + min-width: 500px; + } + + .enemy-pc-edit { + min-width: 500px; + } + + .enemy-stats { + /*background-color: var(--color-light-1);*/ + display: flex; + flex-direction: column; + gap: 5px; + flex: 1; + + .enemy-stat { + display: flex; + align-items: center; + .icon-stat { + 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: 3.5rem; + max-width: 3.5rem; + } + input { + min-width: 2.5rem; + max-width: 2.5rem; + } + } + } + + .enemy-stats-play { + min-width: 120px; + } + + .enemy-stats-edit { + min-width: 120px; + } +} + +.tab.enemy-traits .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; + } + } + .mortality { + display: flex; + align-items: center; + gap: 4px; + margin-left: 4px; + min-width: 12rem; + max-width: 12rem; + label { + min-width: 5rem; + max-width: 5rem; + } + } + + .counters { + display: flex; + direction: column; + align-items: center; + gap: 4px; + margin-left: 4px; + .characteristics-label{ + color: grey; + font-size:small; + } + label { + min-width: 4rem; + max-width: 4rem; + } + .spaced-left{ + margin-left: 0.8rem; + } + input { + min-width: 2.5rem; + max-width: 2.5rem; + } + } + .traits { + display: grid; + grid-template-columns: repeat(1, 1fr); + gap: 4px; + .trait { + display: flex; + align-items: center; + gap: 4px; + margin-left: 4px; + min-width: 20rem; + max-width: 20rem; + .rollable:hover, + .rollable:focus { + text-shadow: 0 0 8px var(--color-shadow-primary); + cursor: pointer; + } + .controls { + font-size: 0.7rem; + min-width: 1.8rem; + max-width: 1.8rem; + } + .flavor { + min-width: 24rem; + max-width: 24rem; + } + .role { + min-width: 5rem; + max-width: 5rem; + } + .level { + min-width: 4rem; + max-width: 4rem; + } + .name { + min-width: 10rem; + max-width: 10rem; + } + .item-img { + width: 24px; + height: 24px; + margin: 4px 0 0 0; + } + } + } + .weapons { + display: grid; + grid-template-columns: repeat(1, 1fr); + gap: 4px; + .weapon { + display: flex; + align-items: center; + gap: 4px; + min-width: 13rem; + max-width: 13rem; + .rollable:hover, + .rollable:focus { + text-shadow: 0 0 8px var(--color-shadow-primary); + cursor: pointer; + } + .controls { + font-size: 0.7rem; + min-width: 1.8rem; + max-width: 1.8rem; + } + .properties { + min-width: 21rem; + max-width: 21rem; + } + .type { + min-width: 4rem; + max-width: 4rem; + } + .damage { + min-width: 6rem; + max-width: 6rem; + } + .name { + min-width: 12rem; + max-width: 12rem; + } + .item-img { + width: 24px; + height: 24px; + margin: 4px 0 0 0; + } + } + } + +} + +.tab.enemy-biography .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; + } + } + .splitted-text { + display: flex; + flex-direction: row; + gap: 4px; + fieldset { + width: 100%; + } + } + .deals { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 4px; + .deal { + display: flex; + align-items: center; + gap: 4px; + margin-left: 4px; + min-width: 12rem; + max-width: 12rem; + .rollable:hover, + .rollable:focus { + text-shadow: 0 0 8px var(--color-shadow-primary); + cursor: pointer; + } + .controls { + font-size: 0.7rem; + min-width: 1.8rem; + max-width: 1.8rem; + } + .name { + min-width: 10rem; + max-width: 10rem; + } + .item-img { + width: 24px; + height: 24px; + margin: 4px 0 0 0; + } + } + } + .biodata { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 4px; + .experience { + display: flex; + flex-direction: row; + align-items: center; + gap: 4px; + margin-left: 4px; + } + .form-group { + label { + min-width: 6rem; + max-width: 6rem; + } + display: flex; + flex-direction: row; + align-items: center; + gap: 4px; + margin-left: 4px; + min-width: 14rem; + max-width: 14rem; + } + input { + text-align: left; + min-width: 8rem; + max-width: 8rem; + } + } + + prose-mirror.inactive { + min-height: 40px; + } + prose-mirror.active { + min-height: 150px; + } +} diff --git a/styles/fvtt-hellborn.less b/styles/fvtt-hellborn.less index 35e9e4b..b7ddc3c 100644 --- a/styles/fvtt-hellborn.less +++ b/styles/fvtt-hellborn.less @@ -5,7 +5,7 @@ @import "mixins.less"; @import "character.less"; @import "vehicle.less"; - @import "creature.less"; + @import "enemy.less"; @import "weapon.less"; @import "equipment.less"; @import "armor.less"; diff --git a/styles/global.less b/styles/global.less index ccc2c5f..244bc8c 100644 --- a/styles/global.less +++ b/styles/global.less @@ -7,7 +7,7 @@ --font-title: "SupernaturalKnight"; --logo-standard: url("../assets/ui/pentagram_logo.webp"); --title-color: #f0443c; - --background-box: ##e0dcdc; + --background-box: #e0dcdc; --color-success: rgb(15, 122, 15); --color-failure: darkred; --color-warning: darkorange; @@ -15,6 +15,10 @@ --color-critical-failure: rgb(141, 32, 231); } +body { + --color-light-1: rgba(182, 178, 178, 0.6); + --color-warm-1:#f0443c; +} #logo { content: var(--logo-standard); diff --git a/styles/mixins.less b/styles/mixins.less index 2764e49..7d625b0 100644 --- a/styles/mixins.less +++ b/styles/mixins.less @@ -69,7 +69,7 @@ } } -.creature-sheet-common { +.enemy-sheet-common { label { font-family: var(--font-secondary); font-size: calc(var(--font-size-standard) * 1.0); diff --git a/styles/roll.less b/styles/roll.less index e63f158..319ca0f 100644 --- a/styles/roll.less +++ b/styles/roll.less @@ -54,6 +54,21 @@ color: var(--color-dark-1); } +.item-to-chat { + ul { + list-style-type: none; + padding: 0; + margin: 0; + justify-content: center; + align-items: center; + li { + margin: 0 10px; + font-family: var(--font-primary); + font-size: calc(var(--font-size-standard) * 1); + } + } +} + &.dice-roll { flex-direction: column; @@ -71,7 +86,7 @@ border: 0px; } .intro-chat { - color:var(--color-dark-1); + color: var(--color-dark-1); border-radius: 20px; display: flex; flex-direction: row; @@ -92,10 +107,10 @@ li { margin: 0 10px; font-family: var(--font-primary); - font-size: calc(var(--font-size-standard) * 1.0); + font-size: calc(var(--font-size-standard) * 1); } .nudge-roll { - font-size: calc(var(--font-size-standard) * 1.0); + font-size: calc(var(--font-size-standard) * 1); margin-left: 4rem; display: none; } diff --git a/system.json b/system.json index 161f33e..c0d3be9 100644 --- a/system.json +++ b/system.json @@ -34,8 +34,7 @@ "documentTypes": { "Actor": { "character": { "htmlFields": ["backstory", "notes", "appearance", "scars", "likes", "dislikes", "fears", "vices", "goals", "ammbitions", "values", "bonds"] }, - "monster": { "htmlFields": ["description", "notes"] }, - "vehicle": { "htmlFields": ["description", "notes"] } + "enemy": { "htmlFields": ["description", "notes"] } }, "Item": { "perk": { "htmlFields": ["description"] }, diff --git a/templates/character-biography.hbs b/templates/character-biography.hbs index b0a70e4..443abdd 100644 --- a/templates/character-biography.hbs +++ b/templates/character-biography.hbs @@ -4,11 +4,14 @@
{{localize "HELLBORN.Label.experience"}}
- {{formField systemFields.experience.fields.current value=system.experience.current type="number" rootId=partId disabled=isPlayMode}} +
+
{{formField systemFields.experience.fields.total value=system.experience.total type="number" rootId=partId disabled=isPlayMode}} +
+
{{formField systemFields.experience.fields.training value=system.experience.training type="number" rootId=partId disabled=isPlayMode}}
diff --git a/templates/character-equipment.hbs b/templates/character-equipment.hbs index 451b952..ea33666 100644 --- a/templates/character-equipment.hbs +++ b/templates/character-equipment.hbs @@ -87,20 +87,24 @@
Limboes and Ammo -
- {{formField systemFields.limboes value=system.limboes rootId=partId disabled=isPlayMode}} - {{formField systemFields.ammo value=system.ammo rootId=partId disabled=isPlayMode}} -
-
- {{#each system.ammoList as |ammo key|}}
- {{upperFirst key}} - + + Limboes +
+ +
+ + Ammo +
+ + {{#each system.ammoArray as |ammo key|}} +
+ + {{upperFirst ammo.label}}
{{/each}}
-
diff --git a/templates/character-maleficas.hbs b/templates/character-maleficas.hbs index 188867c..52f8b7b 100644 --- a/templates/character-maleficas.hbs +++ b/templates/character-maleficas.hbs @@ -12,8 +12,8 @@ -
- {{item.name}} + {{upperFirst item.system.domain}} {{getRomanLevel item.system.level}} @@ -40,8 +40,8 @@ -
- {{item.name}} + {{upperFirst item.system.ingredients}} {{upperFirst item.system.difficulty}} diff --git a/templates/character-status.hbs b/templates/character-status.hbs index df28ecb..e1967f3 100644 --- a/templates/character-status.hbs +++ b/templates/character-status.hbs @@ -9,14 +9,14 @@ {{formInput systemFields.trauma.fields.current value=system.trauma.current}} / {{formInput systemFields.trauma.fields.max value=system.trauma.max}} - {{formInput systemFields.darkness.fields.current value=system.darkness.current}} / + {{formInput systemFields.darkness.fields.current value=system.darkness.current}} / {{formInput systemFields.darkness.fields.max value=system.darkness.max}} {{formInput systemFields.darkness.fields.value value=system.darkness.value}} - {{formInput systemFields.defense.fields.base value=system.defense.base}} + {{formInput systemFields.defense.fields.base value=system.defense.base}} {{formInput systemFields.defense.fields.bonus value=system.defense.bonus }} {{formInput systemFields.defense.fields.total value=system.defense.total}} {{formInput systemFields.defense.fields.resistance value=system.defense.resistance}} - {{formInput systemFields.movement.fields.base value=system.movement.base}} + {{formInput systemFields.movement.fields.base value=system.movement.base}} {{formInput systemFields.movement.fields.reduce value=system.defense.reduce }}
@@ -42,8 +42,8 @@ -
- {{item.name}} + {{upperFirst item.system.flavorText}} {{upperFirst item.system.role}} diff --git a/templates/chat-malefica.hbs b/templates/chat-malefica.hbs new file mode 100644 index 0000000..4b31345 --- /dev/null +++ b/templates/chat-malefica.hbs @@ -0,0 +1,14 @@ +
+
+
    +
  • Malefica : {{name}}
  • +
  • Domain : {{system.domain}}
  • +
  • Level : {{system.level}}
  • +
  • Time : {{system.time}}
  • +
  • Range : {{system.range}}
  • +
  • Target : {{system.target}}
  • +
  • {{{system.description}}}
  • +
+
+ +
\ No newline at end of file diff --git a/templates/chat-message.hbs b/templates/chat-message.hbs index 6415c69..073ba93 100644 --- a/templates/chat-message.hbs +++ b/templates/chat-message.hbs @@ -1,8 +1,8 @@ -{{!log 'chat-message' this}}
+ {{actorName}}
    diff --git a/templates/chat-perk.hbs b/templates/chat-perk.hbs new file mode 100644 index 0000000..de5a196 --- /dev/null +++ b/templates/chat-perk.hbs @@ -0,0 +1,12 @@ +
    +
    +
      +
    • Perk : {{name}}
    • +
    • {{system.flavorText}}
    • +
    • Role : {{system.role}}
    • +
    • Level : {{system.level}}
    • +
    • {{{system.description}}}
    • +
    +
    + +
    \ No newline at end of file diff --git a/templates/chat-ritual.hbs b/templates/chat-ritual.hbs new file mode 100644 index 0000000..ba5ec5d --- /dev/null +++ b/templates/chat-ritual.hbs @@ -0,0 +1,14 @@ +
    +
    +
      +
    • Ritual : {{name}}
    • +
    • Difficulty : {{system.difficulty}}
    • +
    • Threshold : {{system.threshold}}
    • +
    • Limit : {{system.limit}}
    • +
    • Ingredients : {{system.ingredients}}
    • +
    • N. Attempts : {{system.nbAttempts}}
    • +
    • {{{system.description}}}
    • +
    +
    + +
    \ No newline at end of file diff --git a/templates/creature-ability.hbs b/templates/creature-ability.hbs deleted file mode 100644 index 170aeb1..0000000 --- a/templates/creature-ability.hbs +++ /dev/null @@ -1,17 +0,0 @@ -
    -
    - - {{formInput fields.name value=source.name}} -
    - -
    - {{formField systemFields.isAdvantage value=system.isAdvantage}} -
    - -
    - {{localize "HELLBORN.Label.description"}} - {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" - toggled=true}} -
    - -
    \ No newline at end of file diff --git a/templates/creature-main.hbs b/templates/creature-main.hbs deleted file mode 100644 index 80e7106..0000000 --- a/templates/creature-main.hbs +++ /dev/null @@ -1,103 +0,0 @@ -
    - {{!log "creature-main" this}} -
    - {{localize "HELLBORN.Label.creature"}} -
    -
    -
    - -
    -
    - {{localize "HELLBORN.Label.Stamina"}} -
    - Curr. {{formField systemFields.health.fields.staminaValue value=system.health.staminaValue}} - Max {{formField systemFields.health.fields.staminaMax value=system.health.staminaMax rootId=partId}} -
    -
    - -
    -
    -
    - {{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}} - - - -
    - -
    - {{localize "HELLBORN.Label.Details"}} - {{formField systemFields.terrain value=system.terrain rootId=partId disabled=isPlayMode localize=true}} - {{formField systemFields.niche value=system.niche rootId=partId disabled=isPlayMode localize=true}} - {{formField systemFields.size value=system.size rootId=partId disabled=isPlayMode localize=true}} -
    - - {{formField systemFields.numberAppearing value=system.numberAppearing rootId=partId disabled=isPlayMode - localize=true}} -
    -
    - - {{formField systemFields.damage value=system.damage rootId=partId disabled=isPlayMode localize=true}} -
    -
    - -
    -
    -
    - -
    - {{localize "HELLBORN.Label.skills"}} -
    - - - {{formInput systemFields.skills.fields.combat.fields.value value=system.skills.combat.value rootId=partId - disabled=isPlayMode type="number" }} -
    -
    - - - {{formInput systemFields.skills.fields.knowledge.fields.value value=system.skills.knowledge.value - rootId=partId disabled=isPlayMode type="number"}} -
    -
    - - - {{formInput systemFields.skills.fields.social.fields.value value=system.skills.social.value - rootId=partId disabled=isPlayMode type="number"}} -
    -
    - - - {{formInput systemFields.skills.fields.physical.fields.value value=system.skills.physical.value - rootId=partId disabled=isPlayMode type="number"}} -
    -
    - - - {{formInput systemFields.skills.fields.stealth.fields.value value=system.skills.stealth.value - rootId=partId disabled=isPlayMode type="number"}} -
    -
    - - - {{formInput systemFields.skills.fields.vehicles.fields.value value=system.skills.vehicles.value - rootId=partId disabled=isPlayMode type="number"}} -
    -
    - - - {{formInput systemFields.skills.fields.technology.fields.value value=system.skills.technology.value - rootId=partId disabled=isPlayMode type="number"}} -
    -
    - - - -
    \ No newline at end of file diff --git a/templates/creature-sheet-trait.hbs b/templates/creature-sheet-trait.hbs deleted file mode 100644 index 2befb30..0000000 --- a/templates/creature-sheet-trait.hbs +++ /dev/null @@ -1,50 +0,0 @@ -
    - -
    - {{localize "HELLBORN.Label.traits"}}{{#if isEditMode}} - {{/if}} - -
    - {{#each traits as |item|}} -
    - -
    - {{item.name}} -
    -
    - - -
    -
    - {{/each}} -
    -
    - -
    - {{localize "HELLBORN.Label.abilities"}}{{#if isEditMode}} - {{/if}} - -
    - {{#each abilities as |item|}} - {{!log 'armor' this}} -
    - -
    - {{item.name}} -
    -
    - - -
    -
    - {{/each}} -
    -
    - -
    \ No newline at end of file diff --git a/templates/creature-biography.hbs b/templates/enemy-biography.hbs similarity index 100% rename from templates/creature-biography.hbs rename to templates/enemy-biography.hbs diff --git a/templates/enemy-main.hbs b/templates/enemy-main.hbs new file mode 100644 index 0000000..e1b44f1 --- /dev/null +++ b/templates/enemy-main.hbs @@ -0,0 +1,57 @@ +
    +
    + {{localize "HELLBORN.Label.character"}} +
    +
    +
    + +
    + +
    +
    +
    + {{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}} + + + +
    + +
    + {{formField systemFields.flavorText value=system.flavorText rootId=partId disabled=isPlayMode}} +
    + +
    +
    +
    + +
    + {{localize "HELLBORN.Label.stats"}} +
    + + {{formInput systemFields.stats.fields.flesh.fields.value value=system.stats.flesh.value rootId=partId disabled=isPlayMode type="number" }} +
    +
    + + {{formInput systemFields.stats.fields.skin.fields.value value=system.stats.skin.value rootId=partId disabled=isPlayMode type="number" }} +
    +
    + + {{formInput systemFields.stats.fields.heart.fields.value value=system.stats.heart.value rootId=partId disabled=isPlayMode type="number" }} +
    +
    + + {{formInput systemFields.stats.fields.mind.fields.value value=system.stats.mind.value rootId=partId disabled=isPlayMode type="number" }} +
    +
    + + {{formInput systemFields.stats.fields.soul.fields.value value=system.stats.soul.value rootId=partId disabled=isPlayMode type="number" }} +
    +
    + +
    \ No newline at end of file diff --git a/templates/enemy-trait.hbs b/templates/enemy-trait.hbs new file mode 100644 index 0000000..c7dd039 --- /dev/null +++ b/templates/enemy-trait.hbs @@ -0,0 +1,87 @@ +
    +
    + +
    + {{localize "HELLBORN.Label.characteristics"}} +
    +
    +
    + {{formInput systemFields.trauma.fields.current value=system.trauma.current}} + + + {{formInput systemFields.darkness.fields.value value=system.darkness.value}} + {{formInput systemFields.defense.fields.base value=system.defense.base}} + {{formInput systemFields.movement.fields.base value=system.movement.base}} +
    + +
    + Curr. + Curr. + Base + Base +
    +
    +
    +
    + +
    + {{localize "HELLBORN.Label.traits"}}{{#if isEditMode}} + {{/if}} + +
    + {{#each traits as |item|}} +
    + + + + + +
    + + +
    +
    + {{/each}} +
    +
    + +
    + {{localize "HELLBORN.Label.weapons"}}{{#if isEditMode}} + {{/if}} + +
    + {{#each weapons as |item|}} +
    + + + +
    + {{item.name}} +
    + {{upperFirst item.system.weaponType}} + {{upperFirst item.system.properties}} + + + + {{item.system.damage}} + +
    + + +
    +
    + {{/each}} +
    +
    + +
    +
    \ No newline at end of file diff --git a/templates/vehicle-description.hbs b/templates/vehicle-description.hbs deleted file mode 100644 index b53aa4b..0000000 --- a/templates/vehicle-description.hbs +++ /dev/null @@ -1,19 +0,0 @@ -
    - -
    - {{localize "HELLBORN.Label.damages"}} - -
    - -
    - {{localize "HELLBORN.Label.description"}} - {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} -
    - -
    - {{localize "HELLBORN.Label.notes"}} - {{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}} -
    - -
    \ No newline at end of file diff --git a/templates/vehicle-equipment.hbs b/templates/vehicle-equipment.hbs deleted file mode 100644 index ddfb75b..0000000 --- a/templates/vehicle-equipment.hbs +++ /dev/null @@ -1,54 +0,0 @@ -
    - -
    - {{localize "HELLBORN.Label.weapons"}}{{#if isEditMode}} - {{/if}} - -
    - {{#each weapons as |item|}} - {{!log 'weapon' this}} - - {{/each}} -
    -
    - -
    - {{localize "HELLBORN.Label.equipment"}}{{#if isEditMode}} - {{/if}} - -
    - {{#each equipments as |item|}} - {{!log 'armor' this}} -
    - -
    - {{item.name}} -
    -
    - - -
    -
    - {{/each}} -
    -
    - -
    \ No newline at end of file diff --git a/templates/vehicle-main.hbs b/templates/vehicle-main.hbs deleted file mode 100644 index 3937e09..0000000 --- a/templates/vehicle-main.hbs +++ /dev/null @@ -1,54 +0,0 @@ -
    - -
    - {{localize "HELLBORN.Label.vehicle"}} -
    -
    -
    - -
    -
    - {{localize "HELLBORN.Label.Agility"}} -
    - {{formField systemFields.agility value=system.agility localize=true}} -
    -
    - -
    - -
    -
    - {{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}} - - - -
    - -
    - {{localize "HELLBORN.Label.capacity"}} -
    - {{formField systemFields.armor value=system.armor localize=true}} - {{formField systemFields.force value=system.force localize=true}} -
    -
    - {{formField systemFields.range value=system.range localize=true}} - {{formField systemFields.speed value=system.speed localize=true}} -
    -
    - -
    - {{localize "HELLBORN.Label.cargo"}} -
    - {{formField systemFields.crew value=system.crew localize=true}} - {{formField systemFields.cargo value=system.cargo localize=true}} - {{formField systemFields.tonnage value=system.tonnage localize=true}} -
    -
    - -
    -
    -
    - -
    \ No newline at end of file