Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8576d25c2c | |||
| e54f998d29 | |||
| 7eee4fab7e | |||
| 9013229c20 | |||
| da9a69b916 |
1
assets/icons/icon_combat.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(255, 255, 255, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite><feGaussianBlur in="composite" stdDeviation="15" result="blur"></feGaussianBlur><feOffset dx="0" dy="0" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" style="" transform="translate(0,0)"><path d="M221.6 28.53c-5.2.1-10.6 2.18-15.8 6.35-7.7 6.03-14.4 16.44-17.8 29.58-3.3 13.14-2.5 26.2 1.1 36.24 3.6 9.9 9.4 16.4 16.6 18.9 6 2.1 12.6 1.3 19-2.6 2.3-13.6 9.9-24.28 21.3-31.6.1-.19.1-.38.2-.58 3.3-13.15 2.5-26.2-1.1-36.2-3.6-9.95-9.4-16.46-16.6-18.97-2.3-.78-4.6-1.16-6.9-1.12zm212.5 49.31c-3.2.72-11 3.44-18.7 7.15-8.7 4.14-17.4 8.86-22.4 11.5l-.9.45-.9.25c-38.1 10.61-57.5 17.91-88.3 23.21-2.2 6.1-6 12.5-11.3 19h-.1v.1c-6.2 7.4-12.4 14.7-18.7 21.9 45.8-8.5 78.8-16.7 132.7-38l4.1-1.6 3.9 2.3c5.5 3.4 13.4 5.8 19.6 6.3 3.1.3 5.8 0 7.4-.4 1.4-.4 1.4-.7 1.4-.6 5.4-11.9 7.3-24.4 5.5-33.8-1.7-8.89-5.7-14.64-13.3-17.76zM272.2 96.08c-8.9-.1-20.1 4.32-27.6 15.62-5.9 29.5-26.7 50.1-57.2 62.6l-6.8-16.6c12.7-5.2 22.6-11.2 30.1-18.6-3.1-.2-6.3-.9-9.4-2-10.4-3.7-18.6-11.6-24.1-21.4-14.6 2.8-22.6 6.3-32.8 14.6-4.1 36.5 6.8 67.5 27.6 96.6 41.7-25.4 73.7-60.5 105.7-98.9 8.2-10.2 10-17.6 9.5-21.9-.6-4.2-2.7-6.73-7.2-8.58-2.2-.91-4.9-1.42-7.8-1.44zM131.5 185.5c-1.7 23.2-.7 48.5-1 75v3.8l-2.7 2.6C75.51 317.5 33.9 400.5 20.36 495.7h40.62c9.12-41.2 17.47-82.3 34.69-115.7 18.23-35.3 47.83-62 96.23-67.5l4.8-.6 3.1 3.7c38.2 45.7 75.3 103.9 85.9 180.1h39.6c-6.3-88.4-46.8-156.5-97.1-229-9.8-14.1-10.2-29.8-6.5-44.9.9-3.8 2.1-7.7 3.4-11.7-15.5 13.6-32.3 26-51 36.7l-6.9 3.9-4.7-6.2c-14-18.2-24.8-37.8-31-59z" fill="#21d121" fill-opacity="1" stroke="#0f0101" stroke-opacity="1" stroke-width="8" filter="url(#shadow-1)"></path></g></svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
1
assets/icons/icon_knowledge.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(255, 255, 255, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite><feGaussianBlur in="composite" stdDeviation="15" result="blur"></feGaussianBlur><feOffset dx="0" dy="0" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" style="" transform="translate(0,0)"><path d="M104 37.25V215.1c3.6 9.9 10 14.1 20.9 17 11.4 2.9 27.1 3.1 43.9 3.1 16.8 0 34.6-.1 51.4 3.6 9.5 2.1 18.7 5.7 26.8 11.2V55.43c-7.2-9.9-15.9-13.69-27.3-15.09-12.2-1.49-27.3.55-42.9 2.83-15.7 2.28-31.9 4.81-47.7 2.88-8.7-1.07-17.3-3.87-25.1-8.8zm304 0c-7.8 4.93-16.4 7.73-25.1 8.8-15.8 1.93-32-.6-47.7-2.88-15.6-2.28-30.7-4.32-42.9-2.83-11.4 1.4-20.1 5.19-27.3 15.09V250c8.1-5.5 17.3-9.1 26.8-11.2 16.8-3.7 34.6-3.6 51.4-3.6 16.8 0 32.5-.2 43.9-3.1 10.9-2.9 17.3-7.1 20.9-17V37.25zM130.8 80.03h89.4v18h-89.4v-18zm161 0h89.4v18h-89.4v-18zm-161 44.47h89.4v18h-89.4v-18zm161 0h89.4v18h-89.4v-18zm-161 46.8h89.4v18h-89.4v-18zm161 0h89.4v18h-89.4v-18zM96 249c-17.3 0-29.19 7.3-37.77 18.9C49.66 279.4 45 295.7 45 312s4.66 32.6 13.23 44.1C66.81 367.7 78.7 375 96 375c22 0 35.7-7.1 44.4-14 8.6-6.9 11.5-13 11.5-13l2.5-5h203.2l2.5 5s2.9 6.1 11.5 13c8.7 6.9 22.4 14 44.4 14 17.3 0 29.2-7.3 37.8-18.9 8.5-11.5 13.2-27.8 13.2-44.1s-4.7-32.6-13.2-44.1c-8.6-11.6-20.5-18.9-37.8-18.9-22 0-35.7 7.1-44.4 14-8.6 6.9-11.5 13-11.5 13l-2.5 5H154.4l-2.5-5s-2.9-6.1-11.5-13c-8.7-6.9-22.4-14-44.4-14zm4.6 21.9c.9 0 1.9 0 2.9.1 13.5 1.2 28.2 8.9 44.1 24h216.8c15.9-15.1 30.6-22.8 44.1-24 14.2-1.2 26.6 5.8 33.1 16.2 13.1 20.9 7 53.9-20.6 72.3l-10-15c20.4-13.6 22.3-36.6 15.4-47.7-3.5-5.6-8.1-8.6-16.4-7.8-8.2.7-20.6 6.3-35.6 21.4l-2.7 2.6H140.3l-2.7-2.6c-15-15.1-27.4-20.7-35.6-21.4-8.26-.8-12.9 2.2-16.37 7.8-6.92 11.1-4.99 34.1 15.37 47.7l-9.99 15c-27.65-18.4-33.72-51.4-20.64-72.3 5.72-9.1 15.9-15.6 27.92-16.3h2.31zM169 361v126h30V361h-30zm48 0v126h30V361h-30zm48 0v126h30V361h-30zm48 0v126h30V361h-30z" fill="#21d121" fill-opacity="1" stroke="#0f0101" stroke-opacity="1" stroke-width="8" filter="url(#shadow-1)"></path></g></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
1
assets/icons/icon_physical.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(255, 255, 255, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite><feGaussianBlur in="composite" stdDeviation="15" result="blur"></feGaussianBlur><feOffset dx="0" dy="0" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" style="" transform="translate(0,0)"><path d="M165.906 18.688C15.593 59.28-42.187 198.55 92.72 245.375h-1.095c.635.086 1.274.186 1.906.28 8.985 3.077 18.83 5.733 29.532 7.94C173.36 273.35 209.74 321.22 212.69 368c-33.514 23.096-59.47 62.844-59.47 62.844L179.5 469.53 138.28 493h81.97c-40.425-40.435-11.76-85.906 36.125-85.906 48.54 0 73.945 48.112 36.156 85.906h81.126l-40.375-23.47 26.283-38.686s-26.376-40.4-60.282-63.406c3.204-46.602 39.5-94.167 89.595-113.844 10.706-2.207 20.546-4.86 29.53-7.938.633-.095 1.273-.195 1.908-.28h-1.125c134.927-46.82 77.163-186.094-73.157-226.69-40.722 39.37 6.54 101.683 43.626 56.877 36.9 69.08 8.603 127.587-72.28 83.406-11.88 24.492-34.213 41.374-60.688 41.374-26.703 0-49.168-17.167-60.97-42-81.774 45.38-110.512-13.372-73.437-82.78 37.09 44.805 84.35-17.508 43.626-56.876zm90.79 35.92c-27.388 0-51.33 27.556-51.33 63.61 0 36.056 23.942 62.995 51.33 62.995 27.387 0 51.327-26.94 51.327-62.994 0-36.058-23.94-63.61-51.328-63.61z" fill="#21d121" fill-opacity="1" stroke="#0f0101" stroke-opacity="1" stroke-width="8" filter="url(#shadow-1)"></path></g></svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
1
assets/icons/icon_social.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(255, 255, 255, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite><feGaussianBlur in="composite" stdDeviation="15" result="blur"></feGaussianBlur><feOffset dx="0" dy="0" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" style="" transform="translate(0,0)"><path d="M494 61.363l-82.58 77.934 78.994 132.96 3.586-4.458V61.362zM18 62.5v225.893c4.48.582 9.863.903 15.295.96 11.87.125 21.654-.65 27.15-1.144L113.1 154.974 18 62.5zm389.154 104.86l-7.04 4.556c-.15.097-5.362 3.336-6.893 4.29l-10.605 6.42.15.09c-4.914 3.057-6.28 3.917-11.857 7.38-2.83 1.757-2.9 1.798-5.584 3.465-20.29-10.907-42.306-19.29-67.998-25.882-32.312 9.762-66.542 23.888-100.722 37.142 14.19 17.087 29.96 22.651 45.845 22.85 18.42.23 37.25-7.78 50.218-16.754l7.4-5.12 7.426 10.73 115.453 83.33 45.112-29.987-60.906-102.51zM126.477 170.1L81.11 284.887 97.76 297.69l30.795-34.905 2.467-2.795 3.72-.232c1.5-.094 2.98-.138 4.44-.13 10.212.066 19.342 2.716 26.19 8.76 5.072 4.472 8.444 10.426 10.4 17.32l2.28-.142c11.995-.75 22.802 1.725 30.63 8.63 7.827 6.907 11.63 17.323 12.38 29.32l.07 1.08c6.44 1.216 12.205 3.752 16.893 7.888 7.828 6.906 11.63 17.32 12.38 29.317l.197 3.12c.642.202 1.275.424 1.9.658l2.033-2.853 5.47-7.678 2.813-3.95 7.33 5.223 59.428 42.336c6.464-1.594 10.317-4.075 12.46-7.086 2.147-3.012 3.233-7.47 2.624-14.107l-71.258-51.03-7.318-5.24 5.19-7.246 6.67-9.365 7.33 5.223 80.335 57.226c6.464-1.593 10.32-4.074 12.463-7.085 2.144-3.01 3.23-7.457 2.625-14.082l-92.398-65.55-7.34-5.21 10.414-14.68 7.343 5.208 92.414 65.565c6.47-1.594 10.327-4.075 12.473-7.088 2.148-3.015 3.233-7.476 2.62-14.125l-110.44-79.71c-14.655 8.688-33.402 15.648-53.557 15.396-23.587-.295-48.817-11.566-67.377-40.05a9 9 0 0 1 4.343-13.327c13.014-4.945 26.163-10.17 39.343-15.354l-92.056-6.834zm12.902 107.62l-47.564 53.91c.927 6.746 3.04 10.942 5.887 13.454 2.847 2.512 7.275 4.085 14.084 4.164l47.563-53.908c-.927-6.747-3.04-10.945-5.887-13.457-2.847-2.512-7.274-4.084-14.084-4.162zm43.308 25.81l-53.713 60.88c.926 6.747 3.04 10.945 5.886 13.457 2.85 2.51 7.275 4.083 14.085 4.16l53.713-60.878c-.926-6.748-3.04-10.944-5.887-13.457-2.846-2.512-7.273-4.085-14.083-4.164zm29.34 38.286l-47.56 53.91c.927 6.746 3.04 10.943 5.887 13.456 2.848 2.512 7.275 4.083 14.084 4.162L232 359.44c-.927-6.75-3.04-10.947-5.887-13.46-2.847-2.512-7.274-4.083-14.084-4.162zm24.702 39.137l-38.794 44.28c.925 6.76 3.038 10.962 5.888 13.476 2.845 2.51 7.267 4.082 14.067 4.163l38.796-44.28c-.926-6.758-3.04-10.96-5.89-13.476-2.844-2.51-7.266-4.08-14.066-4.162zm35.342 4.79c1.694 4.62 2.673 9.74 3.014 15.192l.232 3.704-8.277 9.448 26.724 19.037c6.464-1.594 10.316-4.075 12.46-7.086 2.145-3.01 3.233-7.464 2.628-14.093l-36.78-26.2z" fill="#21d121" fill-opacity="1" stroke="#0f0101" stroke-opacity="1" stroke-width="8" filter="url(#shadow-1)"></path></g></svg>
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
1
assets/icons/icon_stealth.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(255, 255, 255, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite><feGaussianBlur in="composite" stdDeviation="15" result="blur"></feGaussianBlur><feOffset dx="0" dy="0" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" style="" transform="translate(0,0)"><path d="M254.07 19.707c-56.303 28.998-106.297 107.317-122.64 168.707 32.445 2.11 58.63 12.963 78.638 30.848l9.334-10.198c-13.336-13.056-30.596-23.9-52.994-34.707 12.68-31.542 32.01-79.29 56.598-82.07 9.62-1.088 19.92 4.722 31.13 21.068 35.08-58.334 68.394 18.705 87.727 61.002-21.94 11.897-39.132 22.82-52.63 36.024l8.68 9.76c19.68-17.732 45.72-29.358 78.55-31.673C358.24 127.335 311.515 50.14 254.07 19.707zM219.617 144.57c-8.894 0-16.103 3.952-16.103 8.826 0 4.875 7.21 8.827 16.103 8.827 8.894 0 16.106-3.95 16.106-8.827 0-4.874-7.212-8.826-16.106-8.826zm68.965 0c-8.894 0-16.105 3.952-16.105 8.826 0 4.875 7.21 8.827 16.105 8.827 8.894 0 16.106-3.95 16.106-8.827 0-4.874-7.212-8.826-16.106-8.826zm-118.894 70.88c-2.19 3.672-4.343 7.497-6.444 11.52-25.587 48.98-43.26 123.643-43.896 223.48 32.776 18.89 64.322 31.324 95.707 36.988-35.5-24.36-60.375-80.893-60.375-146.754 0-45.97 12.12-87.39 31.51-116.506-5.098-3.372-10.583-6.29-16.502-8.727zm168.933.35c-5.852 2.477-11.27 5.412-16.298 8.764 19.24 29.095 31.254 70.354 31.254 116.12 0 65.82-24.844 122.322-60.306 146.707 30.88-5.598 62.44-17.812 95.656-36.947-.638-99.57-18.31-174.163-43.9-223.177-2.088-4.002-4.228-7.81-6.405-11.467zm-97.665 23.61c7.026 22.543 9.128 45.086.98 67.63h-41.552v18.513c10.057-3.24 20.25-5.39 30.502-6.594.066 50.215 1.313 96.574 19.82 145.435l4.193 11.074 4.485-10.962c19.48-47.615 18.045-95.297 17.933-145.024 10.257 1.333 20.463 3.4 30.545 6.07v-18.515h-41.374c-6.888-22.544-5.932-45.087.803-67.63h-26.335z" fill="#21d121" fill-opacity="1" stroke="#0f0101" stroke-opacity="1" stroke-width="8" filter="url(#shadow-1)"></path></g></svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
1
assets/icons/icon_technology.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(255, 255, 255, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite><feGaussianBlur in="composite" stdDeviation="15" result="blur"></feGaussianBlur><feOffset dx="0" dy="0" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" style="" transform="translate(0,0)"><path d="M228.844 32.22v114.218h17.687V32.218h-17.686zm-108.25.624c-15.507 0-28.094 12.586-28.094 28.093C92.5 76.444 105.087 89 120.594 89c12.655 0 23.34-8.372 26.844-19.875h44.937v77.313h17.688v-95H147.03c-3.888-10.837-14.262-18.593-26.436-18.593zm193.25 0c-15.507 0-28.063 12.586-28.063 28.093 0 12.124 7.677 22.45 18.44 26.376v59.124h17.655V87.844c11.596-3.452 20.063-14.193 20.063-26.906 0-15.508-12.587-28.094-28.094-28.094zM266.124 92.5v53.938h17.657V92.5h-17.655zm188.532 4.03c-15.507 0-28.094 12.588-28.094 28.095 0 13.083 8.948 24.074 21.063 27.188v27.468h-92.938v17.657h110.624v-46.342c10.223-4.192 17.407-14.233 17.407-25.97 0-15.507-12.557-28.094-28.064-28.094zM30.187 123.657v17.688H96.75v55.594h62.814V179.28h-45.126v-55.624h-84.25zm147.032 40.47v159.718h159.81v-159.72H177.22zm17.56 15.655h17.657v78.595l32.407 32.406h75.28v17.658H237.5l-2.594-2.594-10.75-10.75c-1.033 7.385-7.36 13.062-15.03 13.062-8.392 0-15.19-6.796-15.19-15.187 0-7.682 5.696-13.98 13.095-15l-9.655-9.658-2.594-2.593V179.78zm54.94.157h17.686v55.313h52.53l.002 17.688H249.72v-73zM53.124 217.375V307.344c-11.49 3.512-19.844 14.198-19.844 26.844 0 15.505 12.557 28.093 28.064 28.093s28.093-12.587 28.093-28.092c0-12.195-7.79-22.564-18.656-26.438v-72.72h88.782v-17.655H53.124zm301.563 0v17.656h53.968v-17.655h-53.97zm99.968 21.97c-10.898 0-20.342 6.21-25 15.28h-74.97l.002 17.688H427c2.325 13.168 13.824 23.187 27.656 23.187 15.507 0 28.063-12.588 28.063-28.094 0-15.507-12.557-28.062-28.064-28.062zm-349.062 15.28v17.688h53.97v-17.688h-53.97zm17.156 36.47v84.217c-11.498 3.513-19.875 14.2-19.875 26.844 0 15.506 12.587 28.094 28.094 28.094 15.506 0 28.06-12.588 28.06-28.094 0-12.194-7.766-22.564-18.624-26.437v-66.94h19.156v-17.686H122.75zm231.938 0v17.686h45.156v95.283c-11.323 3.624-19.53 14.26-19.53 26.78-.002 15.506 12.585 28.063 28.092 28.063 15.507 0 28.063-12.557 28.063-28.062 0-12.32-7.935-22.778-18.97-26.563V291.095h-62.814zM192.375 341.53v54.033h17.688V341.53h-17.688zm36.47 0v86.564c-11.013 3.794-18.94 14.233-18.94 26.53 0 15.506 12.588 28.095 28.095 28.095s28.063-12.59 28.063-28.095c0-12.53-8.203-23.14-19.532-26.75V341.53h-17.686zm37.28 0v54.033h17.688l-.032-54.032h-17.655zm38.094 0v140.064h17.655V341.53H304.22z" fill="#21d121" fill-opacity="1" stroke="#0f0101" stroke-opacity="1" stroke-width="8" filter="url(#shadow-1)"></path></g></svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
1
assets/icons/icon_vehicles.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(255, 255, 255, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite><feGaussianBlur in="composite" stdDeviation="15" result="blur"></feGaussianBlur><feOffset dx="0" dy="0" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" style="" transform="translate(0,0)"><path d="M18.313 17.78v62.095L170.22 231.75 43 211.625s64.877 30.418 116.344 54.438l-47.375 23.25L279.687 355c-3.582-3.086-7.13-6.347-10.594-9.813-39.543-39.54-54.888-88.3-34.28-108.906 20.605-20.604 69.362-5.26 108.905 34.282 3.355 3.356 6.53 6.754 9.53 10.22l-64.938-167.813L265 162.187c-24.094-51.623-55.03-117.532-55.03-117.532l19.468 122.875L79.655 17.78H18.312zm425.312 243.345l-43.406 46.938-23.595 5.875-33.594-18.344-50.06 50.094 18.31 33.562-5.874 23.563-46.03 42.562 80.093 14.03 28.717 28.72 13.188-13.22-51.5-51.53L469 471.625l-48.656-140.25 52.28 52.28 13.22-13.217-27.97-27.97-14.25-81.343zM392.062 357.5c69.03 70.208 33.083 106.35-37.218 37.22l37.22-37.22z" fill="#21d121" fill-opacity="1" stroke="#0f0101" stroke-opacity="1" stroke-width="8" filter="url(#shadow-1)"></path></g></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -32,7 +32,7 @@ Hooks.once("init", function () {
|
||||
|
||||
CONFIG.Actor.documentClass = documents.FTLNomadActor
|
||||
CONFIG.Actor.dataModels = {
|
||||
protagonist: models.FTLNomadCharacter,
|
||||
character: models.FTLNomadCharacter,
|
||||
vehicle: models.FTLNomadVehicle,
|
||||
creature: models.FTLNomadCreature,
|
||||
starship: models.FTLNomadStarship
|
||||
|
||||
965
lang/en.json
@@ -66,6 +66,7 @@ export default class FTLNomadActorSheet extends HandlebarsApplicationMixin(found
|
||||
actor: this.document,
|
||||
system: this.document.system,
|
||||
source: this.document.toObject(),
|
||||
isEncumbered: this.document.system.isEncumbered(),
|
||||
enrichedDescription: await TextEditor.enrichHTML(this.document.system.description, { async: true }),
|
||||
isEditMode: this.isEditMode,
|
||||
isPlayMode: this.isPlayMode,
|
||||
|
||||
@@ -12,45 +12,39 @@ export default class FTLNomadCharacterSheet extends FTLNomadActorSheet {
|
||||
contentClasses: ["character-content"],
|
||||
},
|
||||
actions: {
|
||||
setBP: FTLNomadCharacterSheet.#onSetBP,
|
||||
createGear: FTLNomadCharacterSheet.#onCreateGear,
|
||||
createEquipment: FTLNomadCharacterSheet.#onCreateEquipment,
|
||||
createArmor: FTLNomadCharacterSheet.#onCreateArmor,
|
||||
createWeapon: FTLNomadCharacterSheet.#onCreateWeapon,
|
||||
createBond: FTLNomadCharacterSheet.#onCreateBond,
|
||||
createInjury: FTLNomadCharacterSheet.#onCreateInjury,
|
||||
createMentalDisorder: FTLNomadCharacterSheet.#onCreateMentalDisorder,
|
||||
createMotivation: FTLNomadCharacterSheet.#onCreateMotivation,
|
||||
createSkill: FTLNomadCharacterSheet.#onCreateSkill,
|
||||
createRitual: FTLNomadCharacterSheet.#onCreateRitual,
|
||||
createTome: FTLNomadCharacterSheet.#onCreateTome,
|
||||
createTalent: FTLNomadCharacterSheet.#onCreateTalent,
|
||||
createImplant: FTLNomadCharacterSheet.#onCreateImplant,
|
||||
createPsionic: FTLNomadCharacterSheet.#onCreatePsionic,
|
||||
createLanguage: FTLNomadCharacterSheet.#onCreateLanguage
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/protagonist-main.hbs",
|
||||
template: "systems/fvtt-ftl-nomad/templates/character-main.hbs",
|
||||
},
|
||||
tabs: {
|
||||
template: "templates/generic/tab-navigation.hbs",
|
||||
},
|
||||
skills: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/protagonist-skills.hbs",
|
||||
},
|
||||
status: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/protagonist-status.hbs",
|
||||
talents: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/character-talents.hbs",
|
||||
},
|
||||
equipment: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/protagonist-equipment.hbs",
|
||||
template: "systems/fvtt-ftl-nomad/templates/character-equipment.hbs",
|
||||
},
|
||||
biography: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/protagonist-biography.hbs",
|
||||
template: "systems/fvtt-ftl-nomad/templates/character-biography.hbs",
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
tabGroups = {
|
||||
sheet: "skills",
|
||||
sheet: "talents",
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -59,8 +53,7 @@ export default class FTLNomadCharacterSheet extends FTLNomadActorSheet {
|
||||
*/
|
||||
#getTabs() {
|
||||
const tabs = {
|
||||
skills: { id: "skills", group: "sheet", icon: "fa-solid fa-shapes", label: "FTLNOMAD.Label.skills" },
|
||||
status: { id: "status", group: "sheet", icon: "fa-solid fa-file-waveform", label: "FTLNOMAD.Label.status" },
|
||||
talents: { id: "talents", group: "sheet", icon: "fa-solid fa-compass", label: "FTLNOMAD.Label.talents" },
|
||||
equipment: { id: "equipment", group: "sheet", icon: "fa-solid fa-shapes", label: "FTLNOMAD.Label.equipment" },
|
||||
biography: { id: "biography", group: "sheet", icon: "fa-solid fa-book", label: "FTLNOMAD.Label.biography" },
|
||||
}
|
||||
@@ -78,15 +71,6 @@ export default class FTLNomadCharacterSheet extends FTLNomadActorSheet {
|
||||
|
||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
||||
context.enrichedNotes = await TextEditor.enrichHTML(this.document.system.notes, { async: true })
|
||||
|
||||
context.tooltipsCharacteristic = {
|
||||
str: game.i18n.localize("FTLNOMAD.Characteristic.Str"),
|
||||
dex: game.i18n.localize("FTLNOMAD.Characteristic.Dex"),
|
||||
con: game.i18n.localize("FTLNOMAD.Characteristic.Con"),
|
||||
int: game.i18n.localize("FTLNOMAD.Characteristic.Int"),
|
||||
pow: game.i18n.localize("FTLNOMAD.Characteristic.Pow"),
|
||||
cha: game.i18n.localize("FTLNOMAD.Characteristic.Cha")
|
||||
}
|
||||
|
||||
return context
|
||||
}
|
||||
@@ -97,10 +81,16 @@ export default class FTLNomadCharacterSheet extends FTLNomadActorSheet {
|
||||
switch (partId) {
|
||||
case "main":
|
||||
break
|
||||
case "skills":
|
||||
context.tab = context.tabs.skills
|
||||
context.skills = doc.itemTypes.skill
|
||||
context.skills.sort((a, b) => a.name.localeCompare(b.name))
|
||||
case "talents":
|
||||
context.tab = context.tabs.talents
|
||||
context.talents = doc.itemTypes.talent
|
||||
context.talents.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.implants = doc.itemTypes.implant
|
||||
context.implants.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.psionics = doc.itemTypes.psionic
|
||||
context.psionics.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.languages = doc.itemTypes.language
|
||||
context.languages.sort((a, b) => a.name.localeCompare(b.name))
|
||||
break
|
||||
case "equipment":
|
||||
context.tab = context.tabs.equipment
|
||||
@@ -108,23 +98,8 @@ export default class FTLNomadCharacterSheet extends FTLNomadActorSheet {
|
||||
context.weapons.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.armors = doc.itemTypes.armor
|
||||
context.armors.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.gears = doc.itemTypes.gear
|
||||
context.gears.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.rituals = doc.itemTypes.ritual
|
||||
context.rituals.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.tomes = doc.itemTypes.tome
|
||||
context.tomes.sort((a, b) => a.name.localeCompare(b.name))
|
||||
break
|
||||
case "status":
|
||||
context.tab = context.tabs.status
|
||||
context.injuries = doc.itemTypes.injury
|
||||
context.injuries.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.mentaldisorders = doc.itemTypes.mentaldisorder
|
||||
context.mentaldisorders.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.motivations = doc.itemTypes.motivation
|
||||
context.motivations.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.bonds = doc.itemTypes.bond
|
||||
context.bonds.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 "biography":
|
||||
context.tab = context.tabs.biography
|
||||
@@ -135,16 +110,8 @@ export default class FTLNomadCharacterSheet extends FTLNomadActorSheet {
|
||||
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 #onSetBP(event, target) {
|
||||
this.document.system.setBP()
|
||||
}
|
||||
|
||||
static #onCreateGear(event, target) {
|
||||
|
||||
static #onCreateEquipment(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newGear"), type: "gear" }])
|
||||
}
|
||||
|
||||
@@ -156,33 +123,22 @@ export default class FTLNomadCharacterSheet extends FTLNomadActorSheet {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newArmor"), type: "armor" }])
|
||||
}
|
||||
|
||||
static #onCreateBond(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newBond"), type: "bond" }])
|
||||
static #onCreateTalent(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newTalent"), type: "talent" }])
|
||||
}
|
||||
|
||||
static #onCreateInjury(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newInjury"), type: "injury" }])
|
||||
static #onCreateImplant(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newImplant"), type: "implant" }])
|
||||
}
|
||||
|
||||
static #onCreateMentalDisorder(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newMentalDisorder"), type: "mentaldisorder" }])
|
||||
static #onCreatePsionic(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newPsionic"), type: "psionic" }])
|
||||
}
|
||||
|
||||
static #onCreateMotivation(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newMotivation"), type: "motivation" }])
|
||||
}
|
||||
|
||||
static #onCreateSkill(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newSkill"), type: "skill" }])
|
||||
}
|
||||
|
||||
static #onCreateRitual(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newRitual"), type: "ritual" }])
|
||||
}
|
||||
|
||||
static #onCreateTome(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newTome"), type: "tome" }])
|
||||
static #onCreateLanguage(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newLanguage"), type: "language" }])
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handles the roll action triggered by user interaction.
|
||||
@@ -202,35 +158,16 @@ export default class FTLNomadCharacterSheet extends FTLNomadActorSheet {
|
||||
const rollType = $(event.currentTarget).data("roll-type")
|
||||
let item
|
||||
let li
|
||||
// Debug : console.log(">>>>", event, target, rollType)
|
||||
// Deprecated : if (this.isEditMode) return
|
||||
switch (rollType) {
|
||||
case "resource":
|
||||
item = foundry.utils.duplicate(this.actor.system.resources)
|
||||
item.name = game.i18n.localize(`FTLNOMAD.Label.Resources`)
|
||||
item.targetScore = item.permanentRating
|
||||
break
|
||||
case "char":
|
||||
let charId = $(event.currentTarget).data("char-id")
|
||||
item = foundry.utils.duplicate(this.actor.system.characteristics[charId])
|
||||
item.name = game.i18n.localize(`FTLNOMAD.Label.${charId}Long`)
|
||||
item.targetScore = item.value * 5
|
||||
break
|
||||
case "skill":
|
||||
li = $(event.currentTarget).parents(".item");
|
||||
item = this.actor.items.get(li.data("item-id"));
|
||||
let skillId = $(event.currentTarget).data("skill-id");
|
||||
item = this.actor.system.skills[skillId];
|
||||
break
|
||||
case "weapon":
|
||||
case "damage":
|
||||
li = $(event.currentTarget).parents(".item");
|
||||
item = this.actor.items.get(li.data("item-id"));
|
||||
item.damageBonus = this.actor.system.damageBonus
|
||||
break
|
||||
case "san":
|
||||
item = foundry.utils.duplicate(this.actor.system.san)
|
||||
item.name = game.i18n.localize("FTLNOMAD.Label.SAN")
|
||||
item.targetScore = item.value
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unknown roll type ${rollType}`)
|
||||
}
|
||||
|
||||
@@ -3,19 +3,17 @@ import FTLNomadActorSheet from "./base-actor-sheet.mjs"
|
||||
export default class FTLNomadCreatureSheet extends FTLNomadActorSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["npc"],
|
||||
classes: ["creature"],
|
||||
position: {
|
||||
width: 860,
|
||||
height: 620,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["npc-content"],
|
||||
contentClasses: ["creature-content"],
|
||||
},
|
||||
actions: {
|
||||
createArmor: FTLNomadCreatureSheet.#onCreateArmor,
|
||||
createWeapon: FTLNomadCreatureSheet.#onCreateWeapon,
|
||||
createSkill: FTLNomadCreatureSheet.#onCreateSkill,
|
||||
|
||||
createTrait: FTLNomadCreatureSheet.#onCreateTrait,
|
||||
createAbility: FTLNomadCreatureSheet.#onCreateAbility
|
||||
},
|
||||
}
|
||||
|
||||
@@ -27,8 +25,8 @@ export default class FTLNomadCreatureSheet extends FTLNomadActorSheet {
|
||||
tabs: {
|
||||
template: "templates/generic/tab-navigation.hbs",
|
||||
},
|
||||
skills: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/creature-skills.hbs",
|
||||
traits: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/creature-trait.hbs",
|
||||
},
|
||||
biography: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/creature-biography.hbs",
|
||||
@@ -37,7 +35,7 @@ export default class FTLNomadCreatureSheet extends FTLNomadActorSheet {
|
||||
|
||||
/** @override */
|
||||
tabGroups = {
|
||||
sheet: "skills",
|
||||
sheet: "traits",
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -46,7 +44,7 @@ export default class FTLNomadCreatureSheet extends FTLNomadActorSheet {
|
||||
*/
|
||||
#getTabs() {
|
||||
const tabs = {
|
||||
skills: { id: "skills", group: "sheet", icon: "fa-solid fa-shapes", label: "FTLNOMAD.Label.skills" },
|
||||
traits: { id: "traits", group: "sheet", icon: "fa-solid fa-shapes", label: "FTLNOMAD.Label.traits" },
|
||||
biography: { id: "biography", group: "sheet", icon: "fa-solid fa-book", label: "FTLNOMAD.Label.biography" },
|
||||
}
|
||||
for (const v of Object.values(tabs)) {
|
||||
@@ -63,7 +61,7 @@ export default class FTLNomadCreatureSheet extends FTLNomadActorSheet {
|
||||
|
||||
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,14 +71,12 @@ export default class FTLNomadCreatureSheet extends FTLNomadActorSheet {
|
||||
switch (partId) {
|
||||
case "main":
|
||||
break
|
||||
case "skills":
|
||||
context.tab = context.tabs.skills
|
||||
context.skills = doc.itemTypes.skill
|
||||
context.skills.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.weapons = doc.itemTypes.weapon
|
||||
context.weapons.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.armors = doc.itemTypes.armor
|
||||
context.armors.sort((a, b) => a.name.localeCompare(b.name))
|
||||
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.sort((a, b) => a.name.localeCompare(b.name))
|
||||
break
|
||||
case "biography":
|
||||
context.tab = context.tabs.biography
|
||||
@@ -96,16 +92,12 @@ export default class FTLNomadCreatureSheet extends FTLNomadActorSheet {
|
||||
* @param {Event} event The initiating click event.
|
||||
* @param {HTMLElement} target The current target of the event listener.
|
||||
*/
|
||||
static #onCreateWeapon(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newWeapon"), type: "weapon" }])
|
||||
static #onCreateTrait(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newTrait"), type: "creaturetrait" }])
|
||||
}
|
||||
|
||||
static #onCreateArmor(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newArmor"), type: "armor" }])
|
||||
}
|
||||
|
||||
static #onCreateSkill(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newSkill"), type: "skill" }])
|
||||
static #onCreateAbility(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newAbility"), type: "creatureability" }])
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -125,30 +117,31 @@ export default class FTLNomadCreatureSheet extends FTLNomadActorSheet {
|
||||
async _onRoll(event, target) {
|
||||
const rollType = $(event.currentTarget).data("roll-type")
|
||||
let item
|
||||
let li
|
||||
// Debug : console.log(">>>>", event, target, rollType)
|
||||
// Deprecated : if (this.isEditMode) return
|
||||
let formula
|
||||
let roll
|
||||
switch (rollType) {
|
||||
case "char":
|
||||
let charId = $(event.currentTarget).data("char-id")
|
||||
item = foundry.utils.duplicate(this.actor.system.characteristics[charId])
|
||||
item.name = game.i18n.localize(`FTLNOMAD.Label.${charId}Long`)
|
||||
item.targetScore = item.value * 5
|
||||
break
|
||||
case "skill":
|
||||
li = $(event.currentTarget).parents(".item");
|
||||
item = this.actor.items.get(li.data("item-id"));
|
||||
let skillId = $(event.currentTarget).data("skill-id");
|
||||
item = this.actor.system.skills[skillId];
|
||||
await this.document.system.roll(rollType, item)
|
||||
break
|
||||
case "weapon":
|
||||
case "damage":
|
||||
li = $(event.currentTarget).parents(".item");
|
||||
item = this.actor.items.get(li.data("item-id"));
|
||||
item.damageBonus = this.actor.system.damageBonus
|
||||
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`})
|
||||
break
|
||||
default:
|
||||
throw new Error(`Unknown roll type ${rollType}`)
|
||||
}
|
||||
await this.document.system.roll(rollType, item)
|
||||
}
|
||||
|
||||
async _onDrop(event) {
|
||||
@@ -162,5 +155,4 @@ export default class FTLNomadCreatureSheet extends FTLNomadActorSheet {
|
||||
return super._onDropItem(item)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,17 +3,15 @@ import FTLNomadActorSheet from "./base-actor-sheet.mjs"
|
||||
export default class FTLNomadStarshipSheet extends FTLNomadActorSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["vehicle"],
|
||||
classes: ["starship"],
|
||||
position: {
|
||||
width: 680,
|
||||
height: 540,
|
||||
height: 640,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["vehicle-content"],
|
||||
contentClasses: ["starship-content"],
|
||||
},
|
||||
actions: {
|
||||
createGear: FTLNomadStarshipSheet.#onCreateGear,
|
||||
createWeapon: FTLNomadStarshipSheet.#onCreateWeapon,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -25,9 +23,6 @@ export default class FTLNomadStarshipSheet extends FTLNomadActorSheet {
|
||||
tabs: {
|
||||
template: "templates/generic/tab-navigation.hbs",
|
||||
},
|
||||
equipment: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/starship-equipment.hbs",
|
||||
},
|
||||
description: {
|
||||
template: "systems/fvtt-ftl-nomad/templates/starship-description.hbs",
|
||||
},
|
||||
@@ -35,7 +30,7 @@ export default class FTLNomadStarshipSheet extends FTLNomadActorSheet {
|
||||
|
||||
/** @override */
|
||||
tabGroups = {
|
||||
sheet: "equipment",
|
||||
sheet: "description",
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -44,7 +39,6 @@ export default class FTLNomadStarshipSheet extends FTLNomadActorSheet {
|
||||
*/
|
||||
#getTabs() {
|
||||
const tabs = {
|
||||
equipment: { id: "equipment", group: "sheet", icon: "fa-solid fa-shapes", label: "FTLNOMAD.Label.equipment" },
|
||||
description: { id: "description", group: "sheet", icon: "fa-solid fa-book", label: "FTLNOMAD.Label.description" },
|
||||
}
|
||||
for (const v of Object.values(tabs)) {
|
||||
@@ -61,6 +55,7 @@ export default class FTLNomadStarshipSheet extends FTLNomadActorSheet {
|
||||
|
||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
||||
context.enrichedNotes = await TextEditor.enrichHTML(this.document.system.notes, { async: true })
|
||||
context.enrichedModifications = await TextEditor.enrichHTML(this.document.system.modifications, { async: true })
|
||||
|
||||
return context
|
||||
}
|
||||
@@ -74,11 +69,6 @@ export default class FTLNomadStarshipSheet extends FTLNomadActorSheet {
|
||||
switch (partId) {
|
||||
case "main":
|
||||
break
|
||||
case "equipment":
|
||||
context.tab = context.tabs.equipment
|
||||
context.weapons = doc.itemTypes.weapon
|
||||
context.gears = doc.itemTypes.gear
|
||||
break
|
||||
case "description":
|
||||
context.tab = context.tabs.description
|
||||
context.enrichedDescription = await TextEditor.enrichHTML(doc.system.description, { async: true })
|
||||
@@ -88,17 +78,22 @@ export default class FTLNomadStarshipSheet extends FTLNomadActorSheet {
|
||||
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 #onCreateGear(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newGear"), type: "gear" }])
|
||||
}
|
||||
|
||||
static #onCreateWeapon(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newWeapon"), type: "weapon" }])
|
||||
async _onRoll(event, target) {
|
||||
const rollType = $(event.currentTarget).data("roll-type")
|
||||
let item
|
||||
let formula
|
||||
let roll
|
||||
switch (rollType) {
|
||||
case "starship-guns":
|
||||
formula = this.actor.system.guns
|
||||
// Rolll the damage
|
||||
roll = new Roll(formula)
|
||||
await roll.evaluate()
|
||||
roll.toMessage( { flavor: `Starship ${this.actor.name} : Guns Damage` })
|
||||
break
|
||||
default:
|
||||
throw new Error(`Unknown roll type ${rollType}`)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ export default class FTLNomadVehicleSheet extends FTLNomadActorSheet {
|
||||
contentClasses: ["vehicle-content"],
|
||||
},
|
||||
actions: {
|
||||
createGear: FTLNomadVehicleSheet.#onCreateGear,
|
||||
createEquipment: FTLNomadVehicleSheet.#onCreateEquipment,
|
||||
createWeapon: FTLNomadVehicleSheet.#onCreateWeapon,
|
||||
},
|
||||
}
|
||||
@@ -77,7 +77,9 @@ export default class FTLNomadVehicleSheet extends FTLNomadActorSheet {
|
||||
case "equipment":
|
||||
context.tab = context.tabs.equipment
|
||||
context.weapons = doc.itemTypes.weapon
|
||||
context.gears = doc.itemTypes.gear
|
||||
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
|
||||
@@ -93,8 +95,8 @@ export default class FTLNomadVehicleSheet extends FTLNomadActorSheet {
|
||||
* @param {Event} event The initiating click event.
|
||||
* @param {HTMLElement} target The current target of the event listener.
|
||||
*/
|
||||
static #onCreateGear(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newGear"), type: "gear" }])
|
||||
static #onCreateEquipment(event, target) {
|
||||
this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("FTLNOMAD.Label.newEquipment"), type: "equipment" }])
|
||||
}
|
||||
|
||||
static #onCreateWeapon(event, target) {
|
||||
|
||||
@@ -20,7 +20,7 @@ export const SKILLS = {
|
||||
"social": { id: "social", label: "FTLNOMAD.Skill.Social" },
|
||||
"physical": { id: "physical", label: "FTLNOMAD.Skill.Physical" },
|
||||
"stealth": { id: "stealth", label: "FTLNOMAD.Skill.Stealth" },
|
||||
"vehicles": { id: "vehicle", label: "FTLNOMAD.Skill.Vehicles" },
|
||||
"vehicles": { id: "vehicles", label: "FTLNOMAD.Skill.Vehicles" },
|
||||
"technology": { id: "technology", label: "FTLNOMAD.Skill.Technology" }
|
||||
}
|
||||
|
||||
@@ -50,11 +50,26 @@ export const WEAPON_TYPES = {
|
||||
"grenade": { id: "grenade", label: "FTLNOMAD.Weapon.Types.Grenade" },
|
||||
"vehicle": { id: "vehicle", label: "FTLNOMAD.Weapon.Types.Vehicle" }
|
||||
}
|
||||
|
||||
export const WEAPON_RANGE = {
|
||||
"melee": { id: "melee", label: "FTLNOMAD.Weapon.Range.Melee" },
|
||||
"handgun": { id: "handgun", label: "FTLNOMAD.Weapon.Range.Handgun" },
|
||||
"rifle": { id: "rifle", label: "FTLNOMAD.Weapon.Range.Rifle" },
|
||||
"longrange": { id: "longrange", label: "FTLNOMAD.Weapon.Range.LongRange" }
|
||||
"handgun": { id: "handgun", label: "FTLNOMAD.Weapon.Range.Handgun", range: {close: 0, near:0, far:-2} },
|
||||
"assault": { id: "assault", label: "FTLNOMAD.Weapon.Range.Assault", range: {close: -2, near:0, far:-1, distant: -2} },
|
||||
"rifle": { id: "rifle", label: "FTLNOMAD.Weapon.Range.Rifle", range: {close: -3, near:0, far:0, distant: -1} },
|
||||
"melee": { id: "melee", label: "FTLNOMAD.Weapon.Range.Melee", range: {close: 0} },
|
||||
"heavyweapon": { id: "heavyweapon", label: "FTLNOMAD.Weapon.Range.HeavyWeapon", range: {near:-1, far:0, distant: 0} },
|
||||
"thrownweapon": { id: "thrownweapon", label: "FTLNOMAD.Weapon.Range.ThrownWeapon", range: {close: 0, near:-1} }
|
||||
}
|
||||
|
||||
export const ATTACK_MODIFIERS = {
|
||||
"two-attacks": -1,
|
||||
"aiming": 1,
|
||||
"dim": -1,
|
||||
"darkness": -2,
|
||||
"prone": -1,
|
||||
"cover": -2,
|
||||
"recoil-first": -1,
|
||||
"recoil-third": -2,
|
||||
"aware": -1
|
||||
}
|
||||
|
||||
export const TRIAGE_RESULTS = {
|
||||
@@ -98,18 +113,42 @@ export const CREATURE_SIZES = {
|
||||
"titanic": { id: "titanic", label: "FTLNOMAD.Creature.Size.Titanic" }
|
||||
}
|
||||
|
||||
export const MODIFIER_CHOICES = {
|
||||
"easy": { id: "easy", label: "FTLNOMAD.Label.Easy", value :"1" },
|
||||
"moderate": { id: "moderate", label: "FTLNOMAD.Label.Moderate", value: "0" },
|
||||
"difficult": { id: "difficult", label: "FTLNOMAD.Label.Difficult", value: "-1" },
|
||||
"formidable": { id: "formidable", label: "FTLNOMAD.Label.Formidable", value: "-2" },
|
||||
"impossible": { id: "impossible", label: "FTLNOMAD.Label.Impossible", value: "-4" }
|
||||
}
|
||||
|
||||
export const STARSHIP_HULL = {
|
||||
"pod": { id: "pod", label: "FTLNOMAD.Starship.Hull.Pod" },
|
||||
"micro": { id: "micro", label: "FTLNOMAD.Starship.Hull.Micro" },
|
||||
"small": { id: "small", label: "FTLNOMAD.Starship.Hull.Small" },
|
||||
"scout": { id: "scout", label: "FTLNOMAD.Starship.Hull.Scout" },
|
||||
"picket": { id: "picket", label: "FTLNOMAD.Starship.Hull.Picket" },
|
||||
"destroyer": { id: "destroyer", label: "FTLNOMAD.Starship.Hull.Destroyer" },
|
||||
"cruiser": { id: "cruiser", label: "FTLNOMAD.Starship.Hull.Cruiser" },
|
||||
"battleship": { id: "battleship", label: "FTLNOMAD.Starship.Hull.Battleship" },
|
||||
"carrier": { id: "carrier", label: "FTLNOMAD.Starship.Hull.Carrier" }
|
||||
}
|
||||
|
||||
/**
|
||||
* Include all constant definitions within the SYSTEM global export
|
||||
* @type {Object}
|
||||
*/
|
||||
export const SYSTEM = {
|
||||
id: SYSTEM_ID,
|
||||
MODIFIER_CHOICES,
|
||||
ATTACK_MODIFIERS,
|
||||
TECH_AGES,
|
||||
WEAPON_TYPES,
|
||||
WEAPON_RANGE,
|
||||
TRIAGE_RESULTS,
|
||||
CREATURE_TERRAIN_TYPES,
|
||||
CREATURE_SIZES,
|
||||
CREATURE_NICHES,
|
||||
STARSHIP_HULL,
|
||||
SKILLS,
|
||||
ASCII
|
||||
}
|
||||
|
||||
@@ -40,14 +40,6 @@ export default class FTLNomadRoll extends Roll {
|
||||
return this.options.help
|
||||
}
|
||||
|
||||
get gene() {
|
||||
return this.options.gene
|
||||
}
|
||||
|
||||
get modifier() {
|
||||
return this.options.modifier
|
||||
}
|
||||
|
||||
get resultType() {
|
||||
return this.options.resultType
|
||||
}
|
||||
@@ -68,41 +60,15 @@ export default class FTLNomadRoll extends Roll {
|
||||
return this.options.weapon
|
||||
}
|
||||
|
||||
get isLowWP() {
|
||||
return this.options.isLowWP
|
||||
}
|
||||
|
||||
get isZeroWP() {
|
||||
return this.options.isZeroWP
|
||||
}
|
||||
|
||||
get isExhausted() {
|
||||
return this.options.isExhausted
|
||||
}
|
||||
|
||||
get isNudgedRoll() {
|
||||
return this.options.isNudgedRoll
|
||||
}
|
||||
|
||||
get wpCost() {
|
||||
return this.options.wpCost
|
||||
}
|
||||
|
||||
static updateResourceDialog(options) {
|
||||
let rating = 0
|
||||
if (options.rollItem.enableHand) {
|
||||
rating += options.rollItem.hand
|
||||
static updateFullFormula(options) {
|
||||
let fullFormula
|
||||
if ( options.numericModifier >= 0) {
|
||||
fullFormula = `${options.formula} + ${options.rollItem.value} + ${options.numericModifier}D`
|
||||
} else {
|
||||
fullFormula = `${options.formula} + ${options.rollItem.value} - ${Math.abs(options.numericModifier)}D`
|
||||
}
|
||||
if (options.rollItem.enableStowed) {
|
||||
rating += options.rollItem.stowed
|
||||
}
|
||||
if (options.rollItem.enableStorage) {
|
||||
rating += options.rollItem.storage
|
||||
}
|
||||
let multiplier = Number($(`.roll-skill-multiplier`).val())
|
||||
options.initialScore = rating
|
||||
options.percentScore = rating * multiplier
|
||||
$(".resource-score").text(`${rating} (${options.percentScore}%)`)
|
||||
$('#roll-dialog-full-formula').text(fullFormula)
|
||||
options.fullFormula = fullFormula
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -120,84 +86,25 @@ export default class FTLNomadRoll extends Roll {
|
||||
* @returns {Promise<Object|null>} The roll result or null if the dialog was cancelled.
|
||||
*/
|
||||
static async prompt(options = {}) {
|
||||
let formula = "1d100"
|
||||
let hasModifier = true
|
||||
let hasMultiplier = false
|
||||
options.isNudge = true
|
||||
let formula = "2d6"
|
||||
|
||||
switch (options.rollType) {
|
||||
case "skill":
|
||||
console.log(options.rollItem)
|
||||
options.initialScore = options.rollItem.system.computeScore()
|
||||
break
|
||||
case "san":
|
||||
case "char":
|
||||
options.initialScore = options.rollItem.targetScore
|
||||
options.isNudge = (options.rollType !== "san")
|
||||
break
|
||||
case "resource":
|
||||
hasModifier = false
|
||||
hasMultiplier = true
|
||||
options.initialScore = options.rollItem.targetScore
|
||||
options.totalRating = options.rollItem.targetScore
|
||||
options.percentScore = options.rollItem.targetScore * 5
|
||||
options.rollItem.enableHand = true
|
||||
options.rollItem.enableStowed = true
|
||||
options.rollItem.enableStorage = true
|
||||
options.isNudge = false
|
||||
break
|
||||
case "damage":
|
||||
let formula = options.rollItem.system.damage
|
||||
if ( options.rollItem.system.weaponType === "melee" || options.rollItem.system.weaponType === "unarmed") {
|
||||
formula += ` + ${options.rollItem.damageBonus}`
|
||||
}
|
||||
let damageRoll = new Roll(formula)
|
||||
await damageRoll.evaluate()
|
||||
await damageRoll.toMessage({
|
||||
flavor: `${options.rollItem.name} - Damage Roll`
|
||||
});
|
||||
let isLethal = false
|
||||
options.isNudge = false
|
||||
if (options.rollItem.system.lethality > 0) {
|
||||
let lethalityRoll = new Roll("1d100")
|
||||
await lethalityRoll.evaluate()
|
||||
isLethal = (lethalityRoll.total <= options.rollItem.system.lethality)
|
||||
await lethalityRoll.toMessage({
|
||||
flavor: `${options.rollItem.name} - Lethality Roll : ${lethalityRoll.total} <= ${options.rollItem.system.lethality} => ${isLethal}`
|
||||
});
|
||||
}
|
||||
return
|
||||
case "weapon":
|
||||
let era = game.settings.get("fvtt-ftl-nomad", "settings-era")
|
||||
if (era !== options.rollItem.system.settings) {
|
||||
ui.notifications.error(game.i18n.localize("FTLNOMAD.Notifications.WrongEra"))
|
||||
console.log("WP Wrong Era", era, options.rollItem.system.weaponType)
|
||||
return
|
||||
}
|
||||
if (!SYSTEM.WEAPON_SKILL_MAPPING[era] || !SYSTEM.WEAPON_SKILL_MAPPING[era][options.rollItem.system.weaponType]) {
|
||||
ui.notifications.error(game.i18n.localize("FTLNOMAD.Notifications.NoWeaponType"))
|
||||
console.log("WP Not found", era, options.rollItem.system.weaponType)
|
||||
return
|
||||
}
|
||||
options.weapon = options.rollItem
|
||||
if (options.rollItem.system.hasDirectSkill) {
|
||||
let skillName = options.rollItem.name
|
||||
options.rollItem = {type: "skill", name: skillName, system: {base: 0, bonus: options.weapon.system.directSkillValue} }
|
||||
options.initialScore = options.weapon.system.directSkillValue
|
||||
} else {
|
||||
let skillName = game.i18n.localize(SYSTEM.WEAPON_SKILL_MAPPING[era][options.rollItem.system.weaponType])
|
||||
let actor = game.actors.get(options.actorId)
|
||||
options.rollItem = actor.items.find(i => i.type === "skill" && i.name.toLowerCase() === skillName.toLowerCase())
|
||||
if (!options.rollItem) {
|
||||
ui.notifications.error(game.i18n.localize("FTLNOMAD.Notifications.NoWeaponSkill"))
|
||||
return
|
||||
}
|
||||
options.initialScore = options.rollItem.system.computeScore()
|
||||
console.log("WEAPON", skillName, era, options.rollItem)
|
||||
}
|
||||
let actor = game.actors.get(options.actorId)
|
||||
options.weapon = foundry.utils.duplicate(options.rollItem)
|
||||
options.rollItem = actor.system.skills.combat
|
||||
break
|
||||
default:
|
||||
options.initialScore = 50
|
||||
break
|
||||
}
|
||||
|
||||
@@ -209,37 +116,53 @@ export default class FTLNomadRoll extends Roll {
|
||||
})
|
||||
|
||||
const choiceModifier = SYSTEM.MODIFIER_CHOICES
|
||||
const choiceMultiplier = SYSTEM.MULTIPLIER_CHOICES
|
||||
let choiceRangeModifier = {}
|
||||
let rangeModifier = 0
|
||||
if ( options.weapon) {
|
||||
// Build the range modifiers
|
||||
let range = SYSTEM.WEAPON_RANGE[options.weapon.system.rangeType]
|
||||
for (let [key, value] of Object.entries(range.range)) {
|
||||
choiceRangeModifier[key] = { label: `${key} (${value}D)`, value: value }
|
||||
if (!rangeModifier && value) {
|
||||
rangeModifier = value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let modifier = "+0"
|
||||
let multiplier = "5"
|
||||
let modifier = "0"
|
||||
options.numericModifier = rangeModifier
|
||||
let fullFormula = `${formula} + ${options.rollItem.value}`
|
||||
if (options.isEncumbered) {
|
||||
options.numericModifier += -1
|
||||
fullFormula += ` - ${options.numericModifier}D`
|
||||
} else {
|
||||
options.numericModifier += 0
|
||||
fullFormula += ` + ${options.numericModifier}D`
|
||||
}
|
||||
options.fullFormula = fullFormula
|
||||
options.formula = formula
|
||||
|
||||
let dialogContext = {
|
||||
actorId: options.actorId,
|
||||
actorName: options.actorName,
|
||||
rollType: options.rollType,
|
||||
rollItem: foundry.utils.duplicate(options.rollItem), // Object only, no class
|
||||
fullFormula,
|
||||
weapon: options?.weapon,
|
||||
initialScore: options.initialScore,
|
||||
targetScore: options.initialScore,
|
||||
isLowWP: options.isLowWP,
|
||||
isZeroWP: options.isZeroWP,
|
||||
isExhausted: options.isExhausted,
|
||||
enableHand: options.rollItem.enableHand,
|
||||
enableStowed: options.rollItem.enableStowed,
|
||||
enableStorage: options.rollItem.enableStorage,
|
||||
isEncumbered: options.isEncumbered,
|
||||
talents: options.talents,
|
||||
rollModes,
|
||||
fieldRollMode,
|
||||
choiceModifier,
|
||||
choiceMultiplier,
|
||||
choiceRangeModifier,
|
||||
rangeModifier,
|
||||
formula,
|
||||
hasTarget: options.hasTarget,
|
||||
hasModifier,
|
||||
hasMultiplier,
|
||||
modifier,
|
||||
multiplier
|
||||
}
|
||||
const content = await renderTemplate("systems/fvtt-ftl-nomad/templates/roll-dialog.hbs", dialogContext)
|
||||
|
||||
const title = CthulhuEternalRoll.createTitle(options.rollType, options.rollTarget)
|
||||
const title = FTLNomadRoll.createTitle(options.rollType, options.rollTarget)
|
||||
const label = game.i18n.localize("FTLNOMAD.Roll.roll")
|
||||
const rollContext = await foundry.applications.api.DialogV2.wait({
|
||||
window: { title: title },
|
||||
@@ -258,24 +181,27 @@ export default class FTLNomadRoll extends Roll {
|
||||
},
|
||||
],
|
||||
actions: {
|
||||
"selectHand": (event, button, dialog) => {
|
||||
options.rollItem.enableHand = !options.rollItem.enableHand
|
||||
this.updateResourceDialog(options)
|
||||
},
|
||||
"selectStowed": (event, button, dialog) => {
|
||||
options.rollItem.enableStowed = !options.rollItem.enableStowed
|
||||
this.updateResourceDialog(options)
|
||||
},
|
||||
"selectStorage": (event, button, dialog) => {
|
||||
options.rollItem.enableStorage = !options.rollItem.enableStorage
|
||||
this.updateResourceDialog(options)
|
||||
}
|
||||
},
|
||||
rejectClose: false, // Click on Close button will not launch an error
|
||||
render: (event, dialog) => {
|
||||
$(".roll-skill-multiplier").change(event => {
|
||||
options.multiplier = Number(event.target.value)
|
||||
this.updateResourceDialog(options)
|
||||
$(".roll-skill-modifier").change(event => {
|
||||
options.numericModifier += Number(event.target.value)
|
||||
FTLNomadRoll.updateFullFormula(options)
|
||||
})
|
||||
$(".roll-skill-range-modifier").change(event => {
|
||||
options.numericModifier += Number(event.target.value)
|
||||
FTLNomadRoll.updateFullFormula(options)
|
||||
})
|
||||
$(".select-combat-option").change(event => {
|
||||
console.log(event)
|
||||
let field = $(event.target).data("field")
|
||||
let modifier = SYSTEM.ATTACK_MODIFIERS[field]
|
||||
if ( event.target.checked) {
|
||||
options.numericModifier += modifier
|
||||
} else {
|
||||
options.numericModifier -= modifier
|
||||
}
|
||||
FTLNomadRoll.updateFullFormula(options)
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -285,25 +211,19 @@ export default class FTLNomadRoll extends Roll {
|
||||
|
||||
let rollData = foundry.utils.mergeObject(foundry.utils.duplicate(options), rollContext)
|
||||
rollData.rollMode = rollContext.visibility
|
||||
|
||||
// Update target score
|
||||
console.log("Rolldata", rollData, options)
|
||||
if (options.rollType === "resource") {
|
||||
rollData.targetScore = options.initialScore * Number(rollContext.multiplier)
|
||||
} else {
|
||||
rollData.targetScore = Math.min(Math.max(options.initialScore + Number(rollData.modifier), 0), 100)
|
||||
if (rollData.isLowWP || rollData.isExhausted) {
|
||||
rollData.targetScore -= 20
|
||||
}
|
||||
if (rollData.isZeroWP) {
|
||||
rollData.targetScore = 0
|
||||
}
|
||||
rollData.targetScore = Math.min(Math.max(rollData.targetScore, 0), 100)
|
||||
}
|
||||
rollData.targetScore = 8
|
||||
|
||||
if (Hooks.call("fvtt-ftl-nomad.preRoll", options, rollData) === false) return
|
||||
|
||||
let diceFormula = `${2+Math.abs(options.numericModifier)}D6`
|
||||
if ( options.numericModifier > 0 ) {
|
||||
diceFormula += `kh2 + ${options.rollItem.value}`
|
||||
} else {
|
||||
diceFormula += `kl2 + ${options.rollItem.value}`
|
||||
}
|
||||
|
||||
const roll = new this(formula, options.data, rollData)
|
||||
const roll = new this(diceFormula, options.data, rollData)
|
||||
await roll.evaluate()
|
||||
|
||||
roll.displayRollResult(roll, options, rollData)
|
||||
@@ -317,34 +237,15 @@ export default class FTLNomadRoll extends Roll {
|
||||
|
||||
// Compute the result quality
|
||||
let resultType = "failure"
|
||||
let dec = Math.floor(this.total / 10)
|
||||
let unit = this.total - (dec * 10)
|
||||
if (this.total <= rollData.targetScore) {
|
||||
if (this.total >= 8) {
|
||||
resultType = "success"
|
||||
// Detect if decimal == unit in the dire total result
|
||||
if (dec === unit || this.total === 1) {
|
||||
resultType = "successCritical"
|
||||
}
|
||||
} else {
|
||||
// Detect if decimal == unit in the dire total result
|
||||
if (dec === unit || this.total === 100) {
|
||||
resultType = "failureCritical"
|
||||
}
|
||||
}
|
||||
|
||||
this.options.resultType = resultType
|
||||
if (this.options.isNudgedRoll) {
|
||||
this.options.isSuccess = resultType === "success" || resultType === "successCritical"
|
||||
this.options.isFailure = resultType === "failure" || resultType === "failureCritical"
|
||||
this.options.isCritical = false
|
||||
} else {
|
||||
this.options.isSuccess = resultType === "success" || resultType === "successCritical"
|
||||
this.options.isFailure = resultType === "failure" || resultType === "failureCritical"
|
||||
this.options.isCritical = resultType === "successCritical" || resultType === "failureCritical"
|
||||
}
|
||||
this.options.isLowWP = rollData.isLowWP
|
||||
this.options.isZeroWP = rollData.isZeroWP
|
||||
this.options.isExhausted = rollData.isExhausted
|
||||
this.options.isSuccess = resultType === "success"
|
||||
this.options.isFailure = resultType === "failure"
|
||||
this.options.isEncumbered = rollData.isEncumbered
|
||||
this.options.rollData = foundry.utils.duplicate(rollData)
|
||||
}
|
||||
|
||||
@@ -361,10 +262,6 @@ export default class FTLNomadRoll extends Roll {
|
||||
return `${game.i18n.localize("FTLNOMAD.Label.titleSkill")}`
|
||||
case "weapon":
|
||||
return `${game.i18n.localize("FTLNOMAD.Label.titleWeapon")}`
|
||||
case "char":
|
||||
return `${game.i18n.localize("FTLNOMAD.Label.titleCharacteristic")}`
|
||||
case "san":
|
||||
return `${game.i18n.localize("FTLNOMAD.Label.titleSAN")}`
|
||||
default:
|
||||
return game.i18n.localize("FTLNOMAD.Label.titleStandard")
|
||||
}
|
||||
@@ -407,6 +304,8 @@ export default class FTLNomadRoll extends Roll {
|
||||
cardData.diceTotal = this.dice.reduce((t, d) => t + d.total, 0)
|
||||
cardData.isGM = game.user.isGM
|
||||
cardData.formula = this.formula
|
||||
cardData.fullFormula = this.options.fullFormula
|
||||
cardData.numericModifier = this.options.numericModifier
|
||||
cardData.total = this.total
|
||||
cardData.actorId = this.actorId
|
||||
cardData.actingCharName = this.actorName
|
||||
@@ -418,11 +317,7 @@ export default class FTLNomadRoll extends Roll {
|
||||
cardData.realDamage = this.realDamage
|
||||
cardData.isPrivate = isPrivate
|
||||
cardData.weapon = this.weapon
|
||||
cardData.isLowWP = this.isLowWP
|
||||
cardData.isZeroWP = this.isZeroWP
|
||||
cardData.isExhausted = this.isExhausted
|
||||
cardData.isNudgedRoll = this.isNudgedRoll
|
||||
cardData.wpCost = this.wpCost
|
||||
cardData.isEncumbered = this.isEncumbered
|
||||
|
||||
cardData.cssClass = cardData.css.join(" ")
|
||||
cardData.tooltip = isPrivate ? "" : await this.getTooltip()
|
||||
|
||||
@@ -18,6 +18,7 @@ export default class FTLNomadProtagonist extends foundry.abstract.TypeDataModel
|
||||
const skillField = (label) => {
|
||||
const schema = {
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 5 }),
|
||||
label: new fields.StringField({ required: true, nullable: false, initial: label })
|
||||
}
|
||||
return new fields.SchemaField(schema, { label })
|
||||
}
|
||||
@@ -34,7 +35,7 @@ export default class FTLNomadProtagonist extends foundry.abstract.TypeDataModel
|
||||
schema.health = new fields.SchemaField({
|
||||
staminaValue: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }),
|
||||
staminaMax: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }),
|
||||
wounds: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }),
|
||||
wounds: new fields.NumberField({ ...requiredInteger, initial:0, min: 0 }),
|
||||
triageResults: new fields.StringField({ required: true, nullable: false, initial: "none", choices: SYSTEM.TRIAGE_RESULTS })
|
||||
})
|
||||
|
||||
@@ -43,6 +44,10 @@ export default class FTLNomadProtagonist extends foundry.abstract.TypeDataModel
|
||||
max: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
})
|
||||
|
||||
schema.armor = new fields.SchemaField({
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
})
|
||||
|
||||
schema.credits = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
schema.rank = new fields.SchemaField({
|
||||
experienced: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 5 }),
|
||||
@@ -55,6 +60,7 @@ export default class FTLNomadProtagonist extends foundry.abstract.TypeDataModel
|
||||
schema.biodata = new fields.SchemaField({
|
||||
age: new fields.NumberField({ ...requiredInteger, initial: 15, min: 6 }),
|
||||
height: new fields.NumberField({ ...requiredInteger, initial: 170, min: 50 }),
|
||||
weight: new fields.NumberField({ ...requiredInteger, initial: 70, min: 1 }),
|
||||
gender: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
home: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
birthplace: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
@@ -70,9 +76,37 @@ export default class FTLNomadProtagonist extends foundry.abstract.TypeDataModel
|
||||
|
||||
prepareDerivedData() {
|
||||
super.prepareDerivedData();
|
||||
|
||||
|
||||
let encMax = 10 + (2*this.skills.physical.value)
|
||||
if (encMax !== this.enc.max) {
|
||||
this.enc.max = encMax
|
||||
}
|
||||
let enc = 0
|
||||
let armor = 0
|
||||
for (let i of this.parent.items) {
|
||||
if (i.system?.enc) {
|
||||
enc += i.system.enc
|
||||
}
|
||||
if ( i.system?.protection) {
|
||||
armor += i.system.protection
|
||||
}
|
||||
}
|
||||
if (enc !== this.enc.value) {
|
||||
this.enc.value = enc
|
||||
}
|
||||
if (armor !== this.armor.value) {
|
||||
this.armor.value = armor
|
||||
}
|
||||
let staminaMax = 14 + (3*this.skills.physical.value)
|
||||
if (staminaMax !== this.health.staminaMax) {
|
||||
this.health.staminaMax = staminaMax
|
||||
}
|
||||
}
|
||||
|
||||
isEncumbered() {
|
||||
return this.enc.value > this.enc.max
|
||||
}
|
||||
|
||||
/** */
|
||||
/**
|
||||
* Rolls a dice for a character.
|
||||
@@ -84,12 +118,14 @@ export default class FTLNomadProtagonist extends foundry.abstract.TypeDataModel
|
||||
let opponentTarget
|
||||
const hasTarget = opponentTarget !== undefined
|
||||
|
||||
let roll = await CthulhuEternalRoll.prompt({
|
||||
let roll = await FTLNomadRoll.prompt({
|
||||
rollType,
|
||||
rollItem,
|
||||
actorId: this.parent.id,
|
||||
actorName: this.parent.name,
|
||||
actorImage: this.parent.img,
|
||||
talents: this.parent.items.filter(i => i.type === "talent" && i.system.isAdvantage),
|
||||
isEncumbered: this.isEncumbered(),
|
||||
hasTarget,
|
||||
target: opponentTarget
|
||||
})
|
||||
|
||||
@@ -7,9 +7,11 @@ export default class FTLNomadCreature extends foundry.abstract.TypeDataModel {
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
const schema = {}
|
||||
|
||||
// Carac
|
||||
const skillField = (label) => {
|
||||
const schema = {
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 5 }),
|
||||
label: new fields.StringField({ required: true, nullable: false, initial: label }),
|
||||
enabled: new fields.BooleanField({ required: true, initial: true }),
|
||||
}
|
||||
return new fields.SchemaField(schema, { label })
|
||||
@@ -42,32 +44,29 @@ export default class FTLNomadCreature extends foundry.abstract.TypeDataModel {
|
||||
/** @override */
|
||||
static LOCALIZATION_PREFIXES = ["FTLNOMAD.Creature"]
|
||||
|
||||
/** */
|
||||
/**
|
||||
* Rolls a dice for a character.
|
||||
* @param {("save"|"resource|damage")} rollType The type of the roll.
|
||||
* @param {number} rollItem The target value for the roll. Which caracteristic or resource. If the roll is a damage roll, this is the id of the item.
|
||||
* @returns {Promise<null>} - A promise that resolves to null if the roll is cancelled.
|
||||
*/
|
||||
async roll(rollType, rollItem) {
|
||||
let opponentTarget
|
||||
const hasTarget = opponentTarget !== undefined
|
||||
|
||||
let roll = await CthulhuEternalRoll.prompt({
|
||||
rollType,
|
||||
rollItem,
|
||||
isLowWP: false,
|
||||
isZeroWP: false,
|
||||
isExhausted: false,
|
||||
actorId: this.parent.id,
|
||||
actorName: this.parent.name,
|
||||
actorImage: this.parent.img,
|
||||
hasTarget,
|
||||
target: opponentTarget
|
||||
})
|
||||
if (!roll) return null
|
||||
|
||||
await roll.toMessage({}, { rollMode: roll.options.rollMode })
|
||||
}
|
||||
|
||||
isEncumbered() {
|
||||
return false
|
||||
}
|
||||
|
||||
async roll(rollType, rollItem) {
|
||||
let opponentTarget
|
||||
const hasTarget = opponentTarget !== undefined
|
||||
|
||||
let roll = await FTLNomadRoll.prompt({
|
||||
rollType,
|
||||
rollItem,
|
||||
actorId: this.parent.id,
|
||||
actorName: this.parent.name,
|
||||
actorImage: this.parent.img,
|
||||
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 })
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,7 +17,8 @@ export default class FTLNomadStarship extends foundry.abstract.TypeDataModel {
|
||||
schema.travelMultiplier = new fields.NumberField({ required: true, initial: 1, min: 0 })
|
||||
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
schema.monthlyCost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
|
||||
schema.damages = new fields.StringField({ required: true, initial: "" })
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.modifications = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.notes = new fields.HTMLField({ required: true, textSearch: true })
|
||||
@@ -28,4 +29,8 @@ export default class FTLNomadStarship extends foundry.abstract.TypeDataModel {
|
||||
/** @override */
|
||||
static LOCALIZATION_PREFIXES = ["FTLNOMAD.Starship"]
|
||||
|
||||
isEncumbered() {
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ export default class FTLNomadVehicle extends foundry.abstract.TypeDataModel {
|
||||
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 })
|
||||
|
||||
@@ -28,4 +29,8 @@ export default class FTLNomadVehicle extends foundry.abstract.TypeDataModel {
|
||||
/** @override */
|
||||
static LOCALIZATION_PREFIXES = ["FTLNOMAD.Vehicle"]
|
||||
|
||||
isEncumbered() {
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -39,11 +39,9 @@
|
||||
align-items: center;
|
||||
input {
|
||||
flex: none;
|
||||
width: 2rem;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.damage-bonus {
|
||||
font-size: calc(var(--font-size-standard) * 0.8);
|
||||
width: 2.5rem;
|
||||
margin-left: 2px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.hp-separator {
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
@@ -59,7 +57,7 @@
|
||||
flex: none;
|
||||
}
|
||||
}
|
||||
.character-dmax-edit {
|
||||
/*.character-dmax-edit {
|
||||
input {
|
||||
display: flex;
|
||||
width: 60px;
|
||||
@@ -69,7 +67,7 @@
|
||||
padding: 0 5px 0 5px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
.character-right {
|
||||
@@ -77,6 +75,19 @@
|
||||
flex-direction: column;
|
||||
gap: 5px;
|
||||
|
||||
.character-spec {
|
||||
label {
|
||||
max-width: 6rem;
|
||||
}
|
||||
.hero-armor {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
input {
|
||||
max-width: 3rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
.character-name {
|
||||
display: flex;
|
||||
input {
|
||||
@@ -85,87 +96,6 @@
|
||||
width: 400px;
|
||||
}
|
||||
}
|
||||
.san {
|
||||
align-content: flex-start;
|
||||
input {
|
||||
min-width: 2.2rem;
|
||||
max-width: 2.2rem;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
select {
|
||||
min-width: 6rem;
|
||||
max-width: 6rem;
|
||||
}
|
||||
.rollable:hover,
|
||||
.rollable:focus {
|
||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||
cursor: pointer;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.button {
|
||||
min-width: 4rem;
|
||||
max-width: 4rem;
|
||||
}
|
||||
.san-checkbox {
|
||||
min-width: 1rem;
|
||||
max-width: 1rem;
|
||||
}
|
||||
.label-short-field {
|
||||
font-size: 0.9rem;
|
||||
max-width: 3rem;
|
||||
min-width: 3rem;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.label-recovery {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.label-field {
|
||||
font-size: 0.9rem;
|
||||
max-width: 6rem;
|
||||
min-width: 6rem;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.label-bp {
|
||||
flex-grow: 1;
|
||||
max-width: 3rem;
|
||||
min-width: 3rem;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.label-insanity {
|
||||
flex-grow: 1;
|
||||
margin-left: 4px;
|
||||
max-width: 8rem;
|
||||
min-width: 8rem;
|
||||
}
|
||||
.spacing {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.d100 {
|
||||
flex: 0;
|
||||
}
|
||||
}
|
||||
.willpower {
|
||||
input {
|
||||
min-width: 2.4rem;
|
||||
max-width: 2.4rem;
|
||||
}
|
||||
input[type="checkbox"] {
|
||||
min-width: 1rem;
|
||||
max-width: 1rem;
|
||||
}
|
||||
.label-field {
|
||||
flex-grow: 1;
|
||||
margin-left: 4px;
|
||||
max-width: 5rem;
|
||||
min-width: 5rem;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.checkbox {
|
||||
flex-grow: 0;
|
||||
min-width: 1rem;
|
||||
max-width: 1rem;
|
||||
}
|
||||
}
|
||||
label {
|
||||
min-width: 120px;
|
||||
}
|
||||
@@ -177,27 +107,32 @@
|
||||
}
|
||||
|
||||
.character-pc-edit {
|
||||
min-width: 650px;
|
||||
min-width: 500px;
|
||||
}
|
||||
|
||||
.character-characteristics {
|
||||
.character-skills {
|
||||
background-color: var(--color-light-1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 5px;
|
||||
flex: 1;
|
||||
|
||||
.character-characteristic {
|
||||
.character-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: 3rem;
|
||||
max-width: 3rem;
|
||||
min-width: 4.5rem;
|
||||
max-width: 4.5rem;
|
||||
}
|
||||
.char-text {
|
||||
margin-left: 0.5rem;
|
||||
@@ -218,12 +153,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
.character-characteristic-play {
|
||||
.character-skill-play {
|
||||
min-width: 225px;
|
||||
}
|
||||
|
||||
.character-characteristic-edit {
|
||||
min-width: 400px;
|
||||
.character-skill-edit {
|
||||
min-width: 225px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -239,12 +174,24 @@
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.adapted {
|
||||
.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: 20rem;
|
||||
min-width: 12rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -455,6 +402,127 @@
|
||||
}
|
||||
}
|
||||
|
||||
.tab.character-talents {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
.talents {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.talent {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.languages {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.language {
|
||||
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.character-equipment {
|
||||
background-color: var(--color-light-1);
|
||||
display: grid;
|
||||
@@ -465,6 +533,56 @@
|
||||
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);
|
||||
@@ -500,9 +618,10 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.armors {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.armor {
|
||||
display: flex;
|
||||
@@ -510,23 +629,18 @@
|
||||
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;
|
||||
}
|
||||
.protection {
|
||||
min-width: 5rem;
|
||||
max-width: 5rem;
|
||||
min-width: 6rem;
|
||||
max-width: 6rem;
|
||||
}
|
||||
.name {
|
||||
min-width: 8rem;
|
||||
max-width: 8rem;
|
||||
min-width: 10rem;
|
||||
max-width: 10rem;
|
||||
}
|
||||
.item-img {
|
||||
width: 24px;
|
||||
@@ -536,11 +650,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
.gears {
|
||||
.equipments {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 4px;
|
||||
.gear {
|
||||
.equipment {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
@@ -568,70 +682,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.rituals {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.ritual {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 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;
|
||||
}
|
||||
.name {
|
||||
min-width: 17rem;
|
||||
max-width: 17rem;
|
||||
}
|
||||
.item-img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tomes {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.tome {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 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;
|
||||
}
|
||||
.name {
|
||||
min-width: 17rem;
|
||||
max-width: 17rem;
|
||||
}
|
||||
.item-img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
prose-mirror.inactive {
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
@@ -39,11 +39,9 @@
|
||||
align-items: center;
|
||||
input {
|
||||
flex: none;
|
||||
width: 2rem;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.damage-bonus {
|
||||
font-size: calc(var(--font-size-standard) * 0.8);
|
||||
width: 2.5rem;
|
||||
margin-left: 2px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.hp-separator {
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
@@ -77,6 +75,28 @@
|
||||
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 {
|
||||
@@ -85,87 +105,6 @@
|
||||
width: 400px;
|
||||
}
|
||||
}
|
||||
.san {
|
||||
align-content: flex-start;
|
||||
input {
|
||||
min-width: 2.2rem;
|
||||
max-width: 2.2rem;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
select {
|
||||
min-width: 6rem;
|
||||
max-width: 6rem;
|
||||
}
|
||||
.rollable:hover,
|
||||
.rollable:focus {
|
||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||
cursor: pointer;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.button {
|
||||
min-width: 4rem;
|
||||
max-width: 4rem;
|
||||
}
|
||||
.san-checkbox {
|
||||
min-width: 1rem;
|
||||
max-width: 1rem;
|
||||
}
|
||||
.label-short-field {
|
||||
font-size: 0.9rem;
|
||||
max-width: 3rem;
|
||||
min-width: 3rem;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.label-recovery {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.label-field {
|
||||
font-size: 0.9rem;
|
||||
max-width: 6rem;
|
||||
min-width: 6rem;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.label-bp {
|
||||
flex-grow: 1;
|
||||
max-width: 3rem;
|
||||
min-width: 3rem;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.label-insanity {
|
||||
flex-grow: 1;
|
||||
margin-left: 4px;
|
||||
max-width: 8rem;
|
||||
min-width: 8rem;
|
||||
}
|
||||
.spacing {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.d100 {
|
||||
flex: 0;
|
||||
}
|
||||
}
|
||||
.willpower {
|
||||
input {
|
||||
min-width: 2.4rem;
|
||||
max-width: 2.4rem;
|
||||
}
|
||||
input[type="checkbox"] {
|
||||
min-width: 1rem;
|
||||
max-width: 1rem;
|
||||
}
|
||||
.label-field {
|
||||
flex-grow: 1;
|
||||
margin-left: 4px;
|
||||
max-width: 5rem;
|
||||
min-width: 5rem;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.checkbox {
|
||||
flex-grow: 0;
|
||||
min-width: 1rem;
|
||||
max-width: 1rem;
|
||||
}
|
||||
}
|
||||
label {
|
||||
min-width: 120px;
|
||||
}
|
||||
@@ -177,27 +116,32 @@
|
||||
}
|
||||
|
||||
.creature-pc-edit {
|
||||
min-width: 650px;
|
||||
min-width: 500px;
|
||||
}
|
||||
|
||||
.creature-characteristics {
|
||||
.creature-skills {
|
||||
background-color: var(--color-light-1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 5px;
|
||||
flex: 1;
|
||||
|
||||
.creature-characteristic {
|
||||
.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: 3rem;
|
||||
max-width: 3rem;
|
||||
min-width: 4.5rem;
|
||||
max-width: 4.5rem;
|
||||
}
|
||||
.char-text {
|
||||
margin-left: 0.5rem;
|
||||
@@ -218,12 +162,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
.creature-characteristic-play {
|
||||
.creature-skill-play {
|
||||
min-width: 225px;
|
||||
}
|
||||
|
||||
.creature-characteristic-edit {
|
||||
min-width: 400px;
|
||||
.creature-skill-edit {
|
||||
min-width: 225px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -239,12 +183,24 @@
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.adapted {
|
||||
.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: 20rem;
|
||||
min-width: 12rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -285,79 +241,6 @@
|
||||
padding-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.armors {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 4px;
|
||||
.armor {
|
||||
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;
|
||||
}
|
||||
.protection {
|
||||
min-width: 5rem;
|
||||
max-width: 5rem;
|
||||
}
|
||||
.name {
|
||||
min-width: 8rem;
|
||||
max-width: 8rem;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.skills {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
@@ -528,7 +411,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
.tab.creature-equipment {
|
||||
.tab.creature-traits {
|
||||
background-color: var(--color-light-1);
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
@@ -539,11 +422,248 @@
|
||||
}
|
||||
}
|
||||
|
||||
.gears {
|
||||
.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;
|
||||
.gear {
|
||||
.equipment {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
@@ -571,70 +691,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.rituals {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.ritual {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 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;
|
||||
}
|
||||
.name {
|
||||
min-width: 17rem;
|
||||
max-width: 17rem;
|
||||
}
|
||||
.item-img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tomes {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.tome {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 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;
|
||||
}
|
||||
.name {
|
||||
min-width: 17rem;
|
||||
max-width: 17rem;
|
||||
}
|
||||
.item-img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
prose-mirror.inactive {
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
border: none;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
color: var(--color-dark-2);
|
||||
width: 4rem;
|
||||
width: 10rem;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
.spec {
|
||||
label {
|
||||
max-width: 5rem;
|
||||
}
|
||||
input {
|
||||
max-width: 3rem;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.starship-right {
|
||||
@@ -50,6 +59,42 @@
|
||||
}
|
||||
}
|
||||
|
||||
.capacity {
|
||||
.dice-2d6 {
|
||||
max-width: 1.5rem;
|
||||
margin-left: 0.2rem;
|
||||
}
|
||||
.rollable:hover,
|
||||
.rollable:focus {
|
||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||
cursor: pointer;
|
||||
}
|
||||
label {
|
||||
margin-left: 0.2rem;
|
||||
max-width: 10rem;
|
||||
}
|
||||
input {
|
||||
max-width: 4rem;
|
||||
}
|
||||
select {
|
||||
max-width: 5rem;
|
||||
}
|
||||
}
|
||||
.cargo {
|
||||
label {
|
||||
margin-left: 0.2rem;
|
||||
max-width: 10rem;
|
||||
}
|
||||
input {
|
||||
max-width: 4rem;
|
||||
}
|
||||
select {
|
||||
max-width: 5rem;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
.starship-infos {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -100,11 +145,11 @@
|
||||
}
|
||||
|
||||
.starship-pc-edit {
|
||||
min-width: 650px;
|
||||
min-width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
.starship-biography {
|
||||
.starship-description {
|
||||
background-color: var(--color-light-1);
|
||||
prose-mirror.inactive {
|
||||
min-height: 40px;
|
||||
|
||||
@@ -50,6 +50,17 @@
|
||||
}
|
||||
}
|
||||
|
||||
.cargo,
|
||||
.capacity {
|
||||
label {
|
||||
max-width: 5rem;
|
||||
}
|
||||
input {
|
||||
max-width: 3.5rem;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.vehicle-infos {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -100,11 +111,11 @@
|
||||
}
|
||||
|
||||
.vehicle-pc-edit {
|
||||
min-width: 650px;
|
||||
min-width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
.vehicle-biography {
|
||||
.vehicle-description {
|
||||
background-color: var(--color-light-1);
|
||||
prose-mirror.inactive {
|
||||
min-height: 40px;
|
||||
@@ -179,11 +190,12 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.gears {
|
||||
|
||||
.equipments {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 4px;
|
||||
.gear {
|
||||
.equipment {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"download": "#{DOWNLOAD}#",
|
||||
"url": "https://www.uberwald.me/gitea/public/fvtt-ftl-nomad",
|
||||
"license": "LICENSE",
|
||||
"version": "12.0.0",
|
||||
"version": "12.0.1",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Uberwald",
|
||||
@@ -59,5 +59,5 @@
|
||||
},
|
||||
"primaryTokenAttribute": "hp",
|
||||
"socket": true,
|
||||
"background": "systems/fvtt-ftl-nomad/assets/ui/background_01.webp"
|
||||
"background": "systems/fvtt-ftl-nomad/assets/ui/ftl_nomad_background_01.webp"
|
||||
}
|
||||
|
||||
@@ -1,72 +1,26 @@
|
||||
<section class="tab protagonist-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.resources"}}</legend>
|
||||
<div class="resources">
|
||||
{{formField systemFields.resources.fields.permanentRating value=system.resources.permanentRating name="system.resources.permanentRating" localize=true}}
|
||||
<div>
|
||||
<span class="label-field">{{localize "FTLNOMAD.Label.resourceChecks"}}</span>
|
||||
{{#each system.resources.checks as |check idx|}}
|
||||
<input class="san-checkbox" type="checkbox" data-action="updateCheckResource" data-index="{{@index}}"
|
||||
data-name="checks" {{#if check}} checked {{/if}} {{#if (gte @index @root.system.resources.nbValidChecks)}} disabled {{/if}}>
|
||||
{{/each}}
|
||||
</div>
|
||||
<button class="resource-roll rollable" data-roll-type="resource"><img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />Resource roll</button>
|
||||
{{formField systemFields.resources.fields.hand value=system.resources.hand name="system.resources.hand" localize=true disabled=true}}
|
||||
{{formField systemFields.resources.fields.stowed value=system.resources.stowed name="system.resources.stowed" localize=true disabled=true}}
|
||||
{{formField systemFields.resources.fields.storage value=system.resources.storage name="system.resources.storage" localize=true disabled=true}}
|
||||
</div>
|
||||
<fieldset class="rank">
|
||||
<legend>Rank</legend>
|
||||
{{formField systemFields.rank.fields.experienced value=system.rank.experienced type="number" rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.rank.fields.expert value=system.rank.expert type="number" rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.rank.fields.veteran value=system.rank.veteran type="number" rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.rank.fields.elite value=system.rank.elite type="number" rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.rank.fields.legend value=system.rank.legend type="number" rootId=partId disabled=isPlayMode}}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<fieldset class="biodata">
|
||||
<legend>{{localize "FTLNOMAD.Label.biodata"}}</legend>
|
||||
<div class="adapted">
|
||||
{{formField systemFields.biodata.fields.adaptedToViolence value=system.biodata.adaptedToViolence name="system.biodata.adaptedToViolence" localize=true}}
|
||||
{{formField systemFields.biodata.fields.adaptedToHelplessness value=system.biodata.adaptedToHelplessness name="system.biodata.adaptedToHelplessness" localize=true}}
|
||||
</div>
|
||||
<div class="biodata">
|
||||
{{formField systemFields.biodata.fields.harshness value=system.biodata.harshness name="system.biodata.harshness" localize=true}}
|
||||
{{formField systemFields.biodata.fields.age value=system.biodata.age name="system.biodata.age" localize=true classes="field-label"}}
|
||||
{{formField systemFields.biodata.fields.gender value=system.biodata.gender name="system.biodata.gender" localize=true classes="field-label"}}
|
||||
{{formField systemFields.biodata.fields.height value=system.biodata.height name="system.biodata.height" localize=true classes="field-label"}}
|
||||
{{formField systemFields.biodata.fields.eyes value=system.biodata.eyes name="system.biodata.eyes" localize=true classes="field-label"}}
|
||||
{{formField systemFields.biodata.fields.hair value=system.biodata.hair name="system.biodata.hair" localize=true classes="field-label"}}
|
||||
{{formField systemFields.biodata.fields.home value=system.biodata.home name="system.biodata.home" localize=true classes="field-label"}}
|
||||
{{formField systemFields.biodata.fields.birthplace value=system.biodata.birthplace name="system.biodata.birthplace" localize=true classes="field-label"}}
|
||||
</div>
|
||||
{{formField systemFields.biodata.fields.gender value=system.biodata.gender rootId=partId disabled=isPlayMode classes="short"}}
|
||||
{{formField systemFields.biodata.fields.age value=system.biodata.age rootId=partId disabled=isPlayMode classes="short"}}
|
||||
{{formField systemFields.biodata.fields.height value=system.biodata.height rootId=partId disabled=isPlayMode classes="short"}}
|
||||
{{formField systemFields.biodata.fields.weight value=system.biodata.weight rootId=partId disabled=isPlayMode classes="short"}}
|
||||
{{formField systemFields.biodata.fields.eyes value=system.biodata.eyes rootId=partId disabled=isPlayMode classes="short"}}
|
||||
{{formField systemFields.biodata.fields.hair value=system.biodata.hair rootId=partId disabled=isPlayMode classes="short"}}
|
||||
{{formField systemFields.biodata.fields.home value=system.biodata.home rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.biodata.fields.birthplace value=system.biodata.birthplace rootId=partId disabled=isPlayMode}}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.distinguishingFeatures"}}</legend>
|
||||
<div class="features">
|
||||
<div class="feature">
|
||||
<label>{{localize "FTLNOMAD.Label.strShort"}}</label>
|
||||
{{formInput systemFields.characteristics.fields.str.fields.feature value=system.characteristics.str.feature localize=true}}
|
||||
</div>
|
||||
<div class="feature">
|
||||
<label>{{localize "FTLNOMAD.Label.dexShort"}}</label>
|
||||
{{formInput systemFields.characteristics.fields.dex.fields.feature value=system.characteristics.dex.feature localize=true}}
|
||||
</div>
|
||||
<div class="feature">
|
||||
<label>{{localize "FTLNOMAD.Label.conShort"}}</label>
|
||||
{{formInput systemFields.characteristics.fields.con.fields.feature value=system.characteristics.con.feature localize=true}}
|
||||
</div>
|
||||
<div class="feature">
|
||||
<label>{{localize "FTLNOMAD.Label.intShort"}}</label>
|
||||
{{formInput systemFields.characteristics.fields.int.fields.feature value=system.characteristics.int.feature localize=true}}
|
||||
</div>
|
||||
<div class="feature">
|
||||
<label>{{localize "FTLNOMAD.Label.powShort"}}</label>
|
||||
{{formInput systemFields.characteristics.fields.pow.fields.feature value=system.characteristics.pow.feature localize=true}}
|
||||
</div>
|
||||
<div class="feature">
|
||||
<label>{{localize "FTLNOMAD.Label.chaShort"}}</label>
|
||||
{{formInput systemFields.characteristics.fields.cha.fields.feature value=system.characteristics.cha.feature localize=true}}
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
@@ -76,4 +30,5 @@
|
||||
<legend>{{localize "FTLNOMAD.Label.notes"}}</legend>
|
||||
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
</section>
|
||||
@@ -1,4 +1,14 @@
|
||||
<section class="tab protagonist-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
|
||||
<fieldset class="encumbrance">
|
||||
{{#if isEncumbered}}
|
||||
{{formField systemFields.enc.fields.value value=system.enc.value rootId=partId disabled=true classes="encumbered"}}
|
||||
{{else }}
|
||||
{{formField systemFields.enc.fields.value value=system.enc.value rootId=partId disabled=true}}
|
||||
{{/if}}
|
||||
{{formField systemFields.enc.fields.max value=system.enc.max rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.credits value=system.credits rootId=partId }}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.weapons"}}{{#if isEditMode}}
|
||||
@@ -7,16 +17,15 @@
|
||||
</legend>
|
||||
<div class="weapons">
|
||||
{{#each weapons as |item|}}
|
||||
{{!log 'weapon' this}}
|
||||
<div class="weapon item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
|
||||
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<i class="fa-regular fa-dice"></i>
|
||||
<div class="name rollable" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<i class="fa-regular fa-dice"></i>
|
||||
<a class="damage rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage"
|
||||
data-roll-value="{{item.system.damage}}">
|
||||
{{localize "FTLNOMAD.Label.damageShort"}} :
|
||||
@@ -39,8 +48,7 @@
|
||||
</legend>
|
||||
<div class="armors">
|
||||
{{#each armors as |item|}}
|
||||
{{!log 'armor' this}}
|
||||
<div class="armor" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<div class="armor item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
@@ -58,14 +66,48 @@
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.gears"}}{{#if isEditMode}}
|
||||
<legend>{{localize "FTLNOMAD.Label.implants"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addTalent"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createImplant"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="implants">
|
||||
{{#each implants as |item|}}
|
||||
{{!log 'weapon' this}}
|
||||
<div class="implant item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
|
||||
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<div class="name" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<a class="damage rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage"
|
||||
data-roll-value="{{item.system.damage}}">
|
||||
{{#if item.system.isAdvantage}}
|
||||
<i data-tooltip="Provides advantage" class="fas fa-circle-chevron-up"></i>
|
||||
{{else}}
|
||||
{{/if}}
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.equipments"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addGear"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createGear"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="gears">
|
||||
{{#each gears as |item|}}
|
||||
<div class="equipments">
|
||||
{{#each equipments as |item|}}
|
||||
{{!log 'armor' this}}
|
||||
<div class="gear" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<div class="equipment" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
@@ -81,55 +123,4 @@
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
{{#if (count tomes)}}
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.Tomes"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize "FTLNOMAD.Tooltip.addTome"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createTome"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="tomes">
|
||||
{{#each tomes as |item|}}
|
||||
<div class="tome" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
{{/if}}
|
||||
|
||||
{{#if (count rituals)}}
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.Rituals"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize "FTLNOMAD.Tooltip.addRitual"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createRitual"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="rituals">
|
||||
{{#each rituals as |item|}}
|
||||
<div class="ritual" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
{{/if}}
|
||||
|
||||
|
||||
</section>
|
||||
@@ -1,98 +1,40 @@
|
||||
<section class="protagonist-main protagonist-main-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
{{!log "protagonist-main" this}}
|
||||
|
||||
<section class="character-main character-main-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
{{!log "character-main" this}}
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.protagonist"}}</legend>
|
||||
<div class="protagonist-pc protagonist-pc-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
<div class="protagonist-left">
|
||||
<div class="protagonist-left-image">
|
||||
<img class="protagonist-img" src="{{actor.img}}" data-edit="img" data-action="editImage"
|
||||
<legend>{{localize "FTLNOMAD.Label.character"}}</legend>
|
||||
<div class="character-pc character-pc-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
<div class="character-left">
|
||||
<div class="character-left-image">
|
||||
<img class="character-img" src="{{actor.img}}" data-edit="img" data-action="editImage"
|
||||
data-tooltip="{{actor.name}}" />
|
||||
</div>
|
||||
<fieldset class="protagonist-hp">
|
||||
<legend>{{localize "FTLNOMAD.Label.HP"}}</legend>
|
||||
<fieldset class="character-hp">
|
||||
<legend>{{localize "FTLNOMAD.Label.Stamina"}}</legend>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.hp.fields.value value=system.hp.value}}
|
||||
<span class="hp-separator">/</span>
|
||||
{{formField systemFields.hp.fields.max value=system.hp.max rootId=partId disabled=true}}
|
||||
{{formField systemFields.health.fields.staminaValue value=system.health.staminaValue}}
|
||||
{{formField systemFields.health.fields.staminaMax value=system.health.staminaMax rootId=partId disabled=true}}
|
||||
</div>
|
||||
<div class="flexrow ">
|
||||
{{formField systemFields.damageBonus value=system.damageBonus classes="damage-bonus"}}
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.health.fields.wounds value=system.health.wounds }}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
<div class="protagonist-right">
|
||||
<div class="protagonist-name">
|
||||
<div class="character-right">
|
||||
<div class="character-name">
|
||||
{{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}}
|
||||
<a class="control" data-action="toggleSheet" data-tooltip="FTLNOMAD.ToggleSheet"
|
||||
data-tooltip-direction="UP">
|
||||
<a class="control" data-action="toggleSheet" data-tooltip="FTLNOMAD.ToggleSheet" data-tooltip-direction="UP">
|
||||
<i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<fieldset class="san">
|
||||
<legend>{{localize "FTLNOMAD.Label.SAN"}}</legend>
|
||||
<div class="flexrow">
|
||||
|
||||
<label class="label-field rollable" data-roll-type="san" ><img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
{{localize "FTLNOMAD.Label.current"}}</label>
|
||||
{{formInput systemFields.san.fields.value value=system.san.value}}
|
||||
|
||||
<span class="label-field label-recovery">{{localize "FTLNOMAD.Label.recovery"}}</span>
|
||||
{{formInput systemFields.san.fields.recovery value=system.san.recovery disabled=true}}
|
||||
|
||||
<span class="label-bp" data-tooltip='{{localize "FTLNOMAD.Tooltip.sanBPShort"}}'>{{localize
|
||||
"FTLNOMAD.Label.sanBPShort"}}</span>
|
||||
{{formInput systemFields.san.fields.breakingPoint value=system.san.breakingPoint disabled=true}}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="label-short-field">{{localize "FTLNOMAD.Label.max"}}</span>
|
||||
{{formInput systemFields.san.fields.max value=system.san.max rootId=partId disabled=true}}
|
||||
</div>
|
||||
|
||||
<span class="label-insanity" >
|
||||
{{localize "FTLNOMAD.Label.tempInsanity"}}
|
||||
</span>
|
||||
{{formInput systemFields.san.fields.insanity value=system.san.insanity localize=true}}
|
||||
|
||||
{{#if (not isPlayMode)}}
|
||||
<button data-action="setBP" class="button" data-tooltip="{{localize "FTLNOMAD.Tooltip.setBP"}}">{{localize "FTLNOMAD.Label.setBP"}}</button>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
|
||||
<span class="label-field">{{localize "FTLNOMAD.Label.violence"}}</span>
|
||||
{{#each system.san.violence as |violence idx|}}
|
||||
<input class="san-checkbox" type="checkbox" data-action="updateCheckboxArray" data-index="{{@index}}"
|
||||
data-name="violence" {{#if violence}} checked {{/if}}>
|
||||
{{/each}}
|
||||
|
||||
<span class="label-field">{{localize "FTLNOMAD.Label.helplessness"}}</span>
|
||||
{{#each system.san.helplessness as |helplessness idx|}}
|
||||
<input class="san-checkbox" type="checkbox" data-action="updateCheckboxArray" data-index="{{@index}}"
|
||||
data-name="helplessness" {{#if helplessness}} checked {{/if}}>
|
||||
{{/each}}
|
||||
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="willpower">
|
||||
<legend>{{localize "FTLNOMAD.Label.willpower"}}</legend>
|
||||
<div class="flexrow">
|
||||
<label class="label-field">{{localize "FTLNOMAD.Label.current"}}</label>
|
||||
{{formInput systemFields.wp.fields.value value=system.wp.value}}
|
||||
<label class="label-field">{{localize "FTLNOMAD.Label.max"}}</label>
|
||||
{{formInput systemFields.wp.fields.max value=system.wp.max rootId=partId disabled=true}}
|
||||
<label class="label-field">{{localize "FTLNOMAD.Label.exhausted"}}</label>
|
||||
{{formInput systemFields.wp.fields.exhausted value=system.wp.exhausted classes="checkbox"}}
|
||||
<fieldset class="character-spec">
|
||||
{{formField systemFields.concept value=system.concept rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.species value=system.species rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.archetype value=system.archetype rootId=partId disabled=isPlayMode}}
|
||||
<div class="hero-armor">
|
||||
{{formField systemFields.heroPoints value=system.heroPoints rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.armor.fields.value value=system.armor.value rootId=partId disabled=isPlayMode}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
@@ -100,56 +42,58 @@
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="protagonist-characteristics protagonist-characteristics-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
<legend>{{localize "FTLNOMAD.Label.characteristics"}}</legend>
|
||||
<div class="protagonist-characteristic" >
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="str" data-tooltip="{{system.characteristics.str.feature}}">{{localize
|
||||
"FTLNOMAD.Label.strShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.str.fields.value value=system.characteristics.str.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.str.value 5}}</label>
|
||||
<fieldset class="character-skills character-skills-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
<legend>{{localize "FTLNOMAD.Label.skills"}}</legend>
|
||||
<div class="character-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_combat.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="combat">{{localize
|
||||
"FTLNOMAD.Label.combat"}}</label>
|
||||
{{formInput systemFields.skills.fields.combat.fields.value value=system.skills.combat.value rootId=partId disabled=isPlayMode type="number" }}
|
||||
</div>
|
||||
<div class="protagonist-characteristic">
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="dex" data-tooltip="{{system.characteristics.dex.feature}}">{{localize
|
||||
"FTLNOMAD.Label.dexShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.dex.fields.value value=system.characteristics.dex.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.dex.value 5}}</label>
|
||||
<div class="character-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_knowledge.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="knowledge">{{localize
|
||||
"FTLNOMAD.Label.knowledge"}}</label>
|
||||
{{formInput systemFields.skills.fields.knowledge.fields.value value=system.skills.knowledge.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="protagonist-characteristic" >
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="con" data-tooltip="{{system.characteristics.con.feature}}">{{localize
|
||||
"FTLNOMAD.Label.conShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.con.fields.value value=system.characteristics.con.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.con.value 5}}</label>
|
||||
<div class="character-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_social.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="social">{{localize
|
||||
"FTLNOMAD.Label.social"}}</label>
|
||||
{{formInput systemFields.skills.fields.social.fields.value value=system.skills.social.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="protagonist-characteristic" >
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="int" data-tooltip="{{system.characteristics.int.feature}}">{{localize
|
||||
"FTLNOMAD.Label.intShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.int.fields.value value=system.characteristics.int.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.int.value 5}}</label>
|
||||
<div class="character-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_physical.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="physical">{{localize
|
||||
"FTLNOMAD.Label.physical"}}</label>
|
||||
{{formInput systemFields.skills.fields.physical.fields.value value=system.skills.physical.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="protagonist-characteristic" >
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="pow" data-tooltip="{{system.characteristics.pow.feature}}">{{localize
|
||||
"FTLNOMAD.Label.powShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.pow.fields.value value=system.characteristics.pow.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.pow.value 5}}</label>
|
||||
<div class="character-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_stealth.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="stealth">{{localize
|
||||
"FTLNOMAD.Label.stealth"}}</label>
|
||||
{{formInput systemFields.skills.fields.stealth.fields.value value=system.skills.stealth.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="protagonist-characteristic" >
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="cha" data-tooltip="{{system.characteristics.cha.feature}}">{{localize
|
||||
"FTLNOMAD.Label.chaShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.cha.fields.value value=system.characteristics.cha.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.cha.value 5}}</label>
|
||||
<div class="character-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_vehicles.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="vehicles">{{localize
|
||||
"FTLNOMAD.Label.vehicles"}}</label>
|
||||
{{formInput systemFields.skills.fields.vehicles.fields.value value=system.skills.vehicles.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="character-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_technology.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="technology">{{localize
|
||||
"FTLNOMAD.Label.technology"}}</label>
|
||||
{{formInput systemFields.skills.fields.technology.fields.value value=system.skills.technology.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
@@ -1,25 +0,0 @@
|
||||
<section class="tab protagonist-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
{{log this}}
|
||||
<fieldset>
|
||||
<legend data-tooltip="{{localize "FTLNOMAD.Tooltip.skills"}}" data-tooltip-direction="UP">{{localize "FTLNOMAD.Label.skills"}}</legend>
|
||||
<div class="skills">
|
||||
{{#each skills as |item|}}
|
||||
<div class="skill item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<div class="name rollable" data-roll-type="skill" data-tooltip="{{{item.description}}}" data-tooltip-direction="UP">{{item.name}}
|
||||
</div>
|
||||
<div class="score" >
|
||||
{{item.system.skillTotal}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
</section>
|
||||
@@ -1,95 +0,0 @@
|
||||
<section class="tab protagonist-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.bonds"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize "FTLNOMAD.Tooltip.addBond"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createBond"></i></a>{{/if}}</legend>
|
||||
<div class="bonds">
|
||||
{{#each bonds as |item|}}
|
||||
{{!log 'weapon' this}}
|
||||
<div class="bond" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" >
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="type">
|
||||
{{upperFirst item.system.bondType}}
|
||||
</div>
|
||||
<div class="level">
|
||||
{{item.system.value}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.injuries"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize "FTLNOMAD.Tooltip.addInjury"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createInjury"></i></a>{{/if}}</legend>
|
||||
<div class="injuries">
|
||||
{{#each injuries as |item|}}
|
||||
<div class="injury" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.mentaldisorders"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize "FTLNOMAD.Tooltip.addMentalDisorder"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createMentalDisorder"></i></a>{{/if}}</legend>
|
||||
<div class="mentaldisorders">
|
||||
{{#each mentaldisorders as |item|}}
|
||||
{{!log 'armor' this}}
|
||||
<div class="mentaldisorder" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="cured">
|
||||
{{#if item.system.cured}}
|
||||
{{localize 'FTLNOMAD.Label.Cured'}}
|
||||
{{else}}
|
||||
{{localize 'FTLNOMAD.Label.Uncured'}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.motivations"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize "FTLNOMAD.Tooltip.addMotivation"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createMotivation"></i></a>{{/if}}</legend>
|
||||
<div class="motivations">
|
||||
{{#each motivations as |item|}}
|
||||
{{!log 'armor' this}}
|
||||
<div class="motivation" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</section>
|
||||
106
templates/character-talents.hbs
Normal file
@@ -0,0 +1,106 @@
|
||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.talents"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addTalent"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createTalent"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="talents">
|
||||
{{#each talents as |item|}}
|
||||
{{!log 'weapon' this}}
|
||||
<div class="talent item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
|
||||
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<div class="name" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<a class="damage rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage"
|
||||
data-roll-value="{{item.system.damage}}">
|
||||
{{#if item.system.isAdvantage}}
|
||||
<i data-tooltip="Provides advantage" class="fas fa-circle-chevron-up"></i>
|
||||
{{else}}
|
||||
{{/if}}
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.psionics"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addImplant"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createPsionic"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="psionics">
|
||||
{{#each psionics as |item|}}
|
||||
{{!log 'weapon' this}}
|
||||
<div class="psionic item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
|
||||
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<div class="name" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<a class="damage rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage"
|
||||
data-roll-value="{{item.system.damage}}">
|
||||
{{#if item.system.isAdvantage}}
|
||||
<i data-tooltip="Provides advantage" class="fas fa-circle-chevron-up"></i>
|
||||
{{else}}
|
||||
{{/if}}
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.languages"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addLanguage"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createLanguage"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="languages">
|
||||
{{#each languages as |item|}}
|
||||
{{!log 'weapon' this}}
|
||||
<div class="language item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
|
||||
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<div class="name" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<a class="damage rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage"
|
||||
data-roll-value="{{item.system.damage}}">
|
||||
{{#if item.system.isAdvantage}}
|
||||
<i data-tooltip="Provides advantage" class="fas fa-circle-chevron-up"></i>
|
||||
{{else}}
|
||||
{{/if}}
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
</section>
|
||||
@@ -6,74 +6,39 @@
|
||||
</div>
|
||||
<div class="intro-right">
|
||||
<ul>
|
||||
{{#if (eq rollType "char")}}
|
||||
<li><strong>{{localize "FTLNOMAD.Label.charRoll"}}</strong></li>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq rollType "skill")}}
|
||||
<li><strong>{{localize "FTLNOMAD.Label.skillRoll"}}</strong></li>
|
||||
{{/if}}
|
||||
|
||||
{{#if isNudgedRoll}}
|
||||
<li><strong>{{localize "FTLNOMAD.Label.nudgedRoll"}} : {{wpCost}} WP spent</strong></li>
|
||||
{{/if}}
|
||||
|
||||
{{#if weapon}}
|
||||
<li><strong>Weapon : {{weapon.name}}</strong></li>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq rollType "resource")}}
|
||||
<li><strong>{{rollItem.name}} : {{initialScore}}</strong></li>
|
||||
{{else}}
|
||||
<li><strong>{{rollItem.name}} : {{initialScore}}%</strong></li>
|
||||
<li><strong>{{localize rollItem.label}} : {{fullFormula}}</strong></li>
|
||||
|
||||
{{#if isEncumbered}}
|
||||
<li class="red-warning">Encumbered : -1D</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if isZeroWP}}
|
||||
<li class="red-warning">Zero WP : Automatic failure (ie 0%)</li>
|
||||
{{else}}
|
||||
{{#if isLowWP}}
|
||||
<li class="orange-warning">Low WP : -20%</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if isExhausted}}
|
||||
<li class="orange-warning">Exhausted : -20%</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq rollType "resource")}}
|
||||
<li>{{localize "FTLNOMAD.Label.multiplier"}} : {{multiplier}}</li>
|
||||
{{else}}
|
||||
<li>{{localize "FTLNOMAD.Label.modifier"}} : {{modifier}}%</li>
|
||||
{{/if}}
|
||||
<li>{{localize "FTLNOMAD.Label.modifier"}} : {{numericModifier}}D</li>
|
||||
|
||||
<li>{{localize "FTLNOMAD.Label.targetScore"}} : {{targetScore}}%</li>
|
||||
{{#if isSuccess}}
|
||||
{{#if isCritical}}
|
||||
<li class="result-critical-success">{{localize "FTLNOMAD.Label.criticalSuccess"}}</li>
|
||||
{{else}}
|
||||
<li class="result-success">
|
||||
{{localize "FTLNOMAD.Label.success"}}
|
||||
{{#if isNudge}}
|
||||
<a class="nudge-roll"><i class="fa-solid fa-circle-sort-down"></i></a>
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if isFailure}}
|
||||
{{#if isCritical}}
|
||||
<li class="result-critical-failure">{{localize "FTLNOMAD.Label.criticalFailure"}}</li>
|
||||
{{else}}
|
||||
<li class="result-failure">
|
||||
{{localize "FTLNOMAD.Label.failure"}}
|
||||
{{#if isNudge}}
|
||||
<a class="nudge-roll"><i class="fa-solid fa-circle-sort-down"></i></a>
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#if isDamage}}
|
||||
<div>
|
||||
{{#if (and isGM hasTarget)}}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
<section class="tab creature-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description"
|
||||
toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.notes"}}</legend>
|
||||
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<section class="creature-main creature-main-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
{{!log "creature-main" this}}
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.creature"}}</legend>
|
||||
<div class="creature-pc creature-pc-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
@@ -7,89 +8,96 @@
|
||||
<img class="creature-img" src="{{actor.img}}" data-edit="img" data-action="editImage"
|
||||
data-tooltip="{{actor.name}}" />
|
||||
</div>
|
||||
<fieldset class="creature-hp">
|
||||
<legend>{{localize "FTLNOMAD.Label.Stamina"}}</legend>
|
||||
<div class="flexrow">
|
||||
Curr. {{formField systemFields.health.fields.staminaValue value=health.staminaValue}}
|
||||
Max {{formField systemFields.health.fields.staminaMax value=system.health.staminaMax rootId=partId}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
<div class="creature-right">
|
||||
<div class="creature-name">
|
||||
{{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}}
|
||||
<a class="control" data-action="toggleSheet" data-tooltip="FTLNOMAD.ToggleSheet"
|
||||
data-tooltip-direction="UP">
|
||||
<a class="control" data-action="toggleSheet" data-tooltip="FTLNOMAD.ToggleSheet" data-tooltip-direction="UP">
|
||||
<i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
|
||||
</a>
|
||||
</div>
|
||||
<fieldset class="creature-hp">
|
||||
<legend>{{localize "FTLNOMAD.Label.HP"}}</legend>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.hp.fields.value value=system.hp.value}}
|
||||
<span class="hp-separator">/</span>
|
||||
{{formField systemFields.hp.fields.max value=system.hp.max }}
|
||||
</div>
|
||||
<div class="flexrow ">
|
||||
{{formField systemFields.damageBonus value=system.damageBonus classes="damage-bonus"}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="willpower">
|
||||
<legend>{{localize "FTLNOMAD.Label.willpower"}}</legend>
|
||||
<div class="flexrow">
|
||||
<label class="label-field">{{localize "FTLNOMAD.Label.current"}}</label>
|
||||
{{formInput systemFields.wp.fields.value value=system.wp.value}}
|
||||
<label class="label-field">{{localize "FTLNOMAD.Label.max"}}</label>
|
||||
{{formInput systemFields.wp.fields.max value=system.wp.max rootId=partId }}
|
||||
<label class="label-field">{{localize "FTLNOMAD.Label.exhausted"}}</label>
|
||||
{{formInput systemFields.wp.fields.exhausted value=system.wp.exhausted classes="checkbox"}}
|
||||
<fieldset class="creature-spec">
|
||||
<legend>{{localize "FTLNOMAD.Label.Details"}}</legend>
|
||||
{{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}}
|
||||
<div class="flexrow rollable" data-roll-type="creature-number">
|
||||
<i class="fa-regular fa-dice dice-2d6"></i>
|
||||
{{formField systemFields.numberAppearing value=system.numberAppearing rootId=partId disabled=isPlayMode
|
||||
localize=true}}
|
||||
</div>
|
||||
<div class="flexrow rollable" data-roll-type="creature-damage">
|
||||
<i class="fa-regular fa-dice dice-2d6"></i>
|
||||
{{formField systemFields.damage value=system.damage rootId=partId disabled=isPlayMode localize=true}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="creature-characteristics creature-characteristics-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
<legend>{{localize "FTLNOMAD.Label.characteristics"}}</legend>
|
||||
<div class="creature-characteristic" >
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="str" data-tooltip="{{system.characteristics.str.feature}}">{{localize
|
||||
"FTLNOMAD.Label.strShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.str.fields.value value=system.characteristics.str.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.str.value 5}}</label>
|
||||
<fieldset class="creature-skills creature-skills-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||
<legend>{{localize "FTLNOMAD.Label.skills"}}</legend>
|
||||
<div class="creature-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_combat.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="combat">{{localize
|
||||
"FTLNOMAD.Label.combat"}}</label>
|
||||
{{formInput systemFields.skills.fields.combat.fields.value value=system.skills.combat.value rootId=partId
|
||||
disabled=isPlayMode type="number" }}
|
||||
</div>
|
||||
<div class="creature-characteristic">
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="dex" data-tooltip="{{system.characteristics.dex.feature}}">{{localize
|
||||
"FTLNOMAD.Label.dexShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.dex.fields.value value=system.characteristics.dex.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.dex.value 5}}</label>
|
||||
<div class="creature-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_knowledge.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="knowledge">{{localize
|
||||
"FTLNOMAD.Label.knowledge"}}</label>
|
||||
{{formInput systemFields.skills.fields.knowledge.fields.value value=system.skills.knowledge.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="creature-characteristic" >
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="con" data-tooltip="{{system.characteristics.con.feature}}">{{localize
|
||||
"FTLNOMAD.Label.conShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.con.fields.value value=system.characteristics.con.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.con.value 5}}</label>
|
||||
<div class="creature-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_social.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="social">{{localize
|
||||
"FTLNOMAD.Label.social"}}</label>
|
||||
{{formInput systemFields.skills.fields.social.fields.value value=system.skills.social.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="creature-characteristic" >
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="int" data-tooltip="{{system.characteristics.int.feature}}">{{localize
|
||||
"FTLNOMAD.Label.intShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.int.fields.value value=system.characteristics.int.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.int.value 5}}</label>
|
||||
<div class="creature-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_physical.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="physical">{{localize
|
||||
"FTLNOMAD.Label.physical"}}</label>
|
||||
{{formInput systemFields.skills.fields.physical.fields.value value=system.skills.physical.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="creature-characteristic" >
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="rollable" data-roll-type="char" data-char-id="pow" data-tooltip="{{system.characteristics.pow.feature}}">{{localize
|
||||
"FTLNOMAD.Label.powShort"}}</label>
|
||||
{{formField systemFields.characteristics.fields.pow.fields.value value=system.characteristics.pow.value
|
||||
rootId=partId disabled=isPlayMode }}
|
||||
<label class="char-text">{{mul system.characteristics.pow.value 5}}</label>
|
||||
<div class="creature-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_stealth.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="stealth">{{localize
|
||||
"FTLNOMAD.Label.stealth"}}</label>
|
||||
{{formInput systemFields.skills.fields.stealth.fields.value value=system.skills.stealth.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="creature-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_vehicles.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="vehicles">{{localize
|
||||
"FTLNOMAD.Label.vehicles"}}</label>
|
||||
{{formInput systemFields.skills.fields.vehicles.fields.value value=system.skills.vehicles.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
<div class="creature-skill">
|
||||
<img src="systems/fvtt-ftl-nomad/assets/icons/icon_technology.svg" class="icon-skill" />
|
||||
<label class="rollable" data-roll-type="skill" data-skill-id="technology">{{localize
|
||||
"FTLNOMAD.Label.technology"}}</label>
|
||||
{{formInput systemFields.skills.fields.technology.fields.value value=system.skills.technology.value
|
||||
rootId=partId disabled=isPlayMode type="number"}}
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
|
||||
|
||||
</section>
|
||||
@@ -1,57 +0,0 @@
|
||||
<section class="tab creature-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.weapons"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addWeapon"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createWeapon"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="weapons">
|
||||
{{#each weapons as |item|}}
|
||||
{{!log 'weapon' this}}
|
||||
<div class="weapon item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
|
||||
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<div class="name rollable" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<a class="damage rollable" data-item-id="{{item.id}}" data-action="roll" data-roll-type="damage"
|
||||
data-roll-value="{{item.system.damage}}">
|
||||
{{localize "FTLNOMAD.Label.damageShort"}} :
|
||||
{{item.system.damage}}</a>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend data-tooltip="{{localize "FTLNOMAD.Tooltip.skills"}}" data-tooltip-direction="UP">{{localize "FTLNOMAD.Label.skills"}}</legend>
|
||||
<div class="skills">
|
||||
{{#each skills as |item|}}
|
||||
<div class="skill item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<div class="name rollable" data-roll-type="skill" data-tooltip="{{{item.description}}}" data-tooltip-direction="UP">{{item.name}}
|
||||
</div>
|
||||
<div class="score" >
|
||||
{{item.system.skillTotal}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
</section>
|
||||
@@ -1,21 +1,50 @@
|
||||
<section>
|
||||
<div class="header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
|
||||
<section class="tab creature-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
|
||||
<fieldset>
|
||||
{{formField systemFields.isAdvantage value=system.isAdvantage}}
|
||||
<legend>{{localize "FTLNOMAD.Label.traits"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addTrait"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createTrait"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="traits">
|
||||
{{#each traits as |item|}}
|
||||
<div class="trait item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.description"}}</legend>
|
||||
{{formInput
|
||||
systemFields.description
|
||||
enriched=description
|
||||
value=system.description
|
||||
name="system.description"
|
||||
toggled="false"
|
||||
}}
|
||||
<legend>{{localize "FTLNOMAD.Label.abilities"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addAbility"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createAbility"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="abilities">
|
||||
{{#each abilities as |item|}}
|
||||
{{!log 'armor' this}}
|
||||
<div class="ability" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Edit'}}" data-action="edit" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'FTLNOMAD.Delete'}}" data-action="delete" data-item-id="{{item.id}}"
|
||||
data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</section>
|
||||
@@ -1,57 +1,53 @@
|
||||
<div class="fvtt-cthulhu-eternal-roll-dialog">
|
||||
<div class="fvtt-ftl-nomad-roll-dialog">
|
||||
|
||||
<fieldSet>
|
||||
|
||||
{{#if (eq rollType "skill")}}
|
||||
<legend>{{localize "FTLNOMAD.Label.skill"}}</legend>
|
||||
{{/if}}
|
||||
{{#if (eq rollType "char")}}
|
||||
<legend>{{localize "FTLNOMAD.Label.characteristic"}}</legend>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq rollType "resource")}}
|
||||
<legend>{{localize "FTLNOMAD.Label.resourceRating"}}</legend>
|
||||
<div class="dialog-skill">{{rollItem.name}} : <span class="resource-score">{{initialScore}} ({{mul initialScore 5}}%)</span></div>
|
||||
<div class="dialog-skill">{{localize "FTLNOMAD.Label.Hand"}} : {{rollItem.hand}} <input type="checkbox" data-action="selectHand" {{checked rollItem.enableHand}}></div>
|
||||
<div class="dialog-skill">{{localize "FTLNOMAD.Label.Stowed"}} : {{rollItem.stowed}} <input type="checkbox" data-action="selectStowed" {{checked rollItem.enableStowed}}></div>
|
||||
<div class="dialog-skill">{{localize "FTLNOMAD.Label.Storage"}} : {{rollItem.storage}} <input type="checkbox" data-action="selectStorage" {{checked rollItem.enableStorage}}></div>
|
||||
{{else}}
|
||||
<div class="dialog-skill">{{rollItem.name}} : {{initialScore}}%</div>
|
||||
{{/if}}
|
||||
<div class="dialog-skill">{{localize rollItem.label}} : 2d6+{{rollItem.value}}</div>
|
||||
|
||||
{{#if weapon}}
|
||||
<div class="dialog-skill">Weapon : {{weapon.name}}</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if isZeroWP}}
|
||||
<div class="dialog-skill red-warning">Zero WP : Automatic failure (ie 0%)</div>
|
||||
{{else}}
|
||||
{{#if isLowWP}}
|
||||
<div class="dialog-skill orange-warning">Low WP : -20%</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if isExhausted}}
|
||||
<div class="dialog-skill orange-warning">Exhausted : -20%</div>
|
||||
{{#if isEncumbered}}
|
||||
<div class="dialog-skill red-warning">Encumbered : -1D</div>
|
||||
{{/if}}
|
||||
|
||||
</fieldSet>
|
||||
|
||||
{{#if hasModifier}}
|
||||
<fieldSet class="dialog-modifier">
|
||||
<legend>{{localize "FTLNOMAD.Label.modifier"}}</legend>
|
||||
<select name="modifier" class="roll-skill-modifier">
|
||||
{{selectOptions choiceModifier selected=modifier}}
|
||||
</select>
|
||||
</fieldSet>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasMultiplier}}
|
||||
<fieldSet class="dialog-modifier">
|
||||
<legend>{{localize "FTLNOMAD.Label.multiplier"}}</legend>
|
||||
<select name="multiplier" class="roll-skill-modifier roll-skill-multiplier">
|
||||
{{selectOptions choiceMultiplier selected=multiplier}}
|
||||
<select name="modifier" class="roll-skill-modifier">
|
||||
{{selectOptions choiceModifier selected=modifier localize=true}}
|
||||
</select>
|
||||
|
||||
{{#if weapon}}
|
||||
<select name="range-modifier" class="roll-skill-range-modifier">
|
||||
{{selectOptions choiceRangeModifier selected=rangeModifier}}
|
||||
</select>
|
||||
<ul>
|
||||
<li>Two Attacks : <input type="checkbox" name="isAiming" data-field="two-attacks" class="select-combat-option"></li>
|
||||
<li>Aiming : <input type="checkbox" data-field="aiming" class="select-combat-option"></li>
|
||||
<li>Dim Lightning : <input type="checkbox" data-field="dim" class="select-combat-option"></li>
|
||||
<li>Darkness : <input type="checkbox" data-field="darkness" class="select-combat-option"></li>
|
||||
<li>Target Prone/Obscured : <input type="checkbox" data-field="prone" class="select-combat-option"></li>
|
||||
<li>Target Cover : <input type="checkbox" data-field="cover" class="select-combat-option"></li>
|
||||
<li>1/2 Auto Fire Recoil : <input type="checkbox" data-field="recoil-first" class="select-combat-option"></li>
|
||||
<li>2+ Auto Fire Recoil : <input type="checkbox" data-field="recoil-third" class="select-combat-option"></li>
|
||||
<li>Target Aware : <input type="checkbox" data-field="aware" class="select-combat-option"></li>
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
||||
</fieldSet>
|
||||
|
||||
<fieldSet class="dialog-formula">
|
||||
<legend>{{localize "FTLNOMAD.Label.formula"}}</legend>
|
||||
<label name="fullFormula" id="roll-dialog-full-formula" >{{fullFormula}}</label>
|
||||
</fieldSet>
|
||||
{{/if}}
|
||||
|
||||
<fieldSet>
|
||||
<legend>{{localize "FTLNOMAD.Label.rollView"}}</legend>
|
||||
@@ -59,4 +55,5 @@
|
||||
{{selectOptions rollModes selected=visibility}}
|
||||
</select>
|
||||
</fieldSet>
|
||||
|
||||
</div>
|
||||
24
templates/starship-description.hbs
Normal file
@@ -0,0 +1,24 @@
|
||||
<section class="tab starship-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.damages"}}</legend>
|
||||
<textarea class="form-control" rows="5" name="system.damages"
|
||||
data-tooltip="{{localize "FTLNOMAD.Tooltip.damages"}}">{{system.damages}}</textarea>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<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.modifications"}}</legend>
|
||||
{{formInput systemFields.modifications enriched=enrichedModifications value=system.modifications name="system.modifications" toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.notes"}}</legend>
|
||||
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
</section>
|
||||
@@ -8,13 +8,10 @@
|
||||
<img class="starship-img" src="{{actor.img}}" data-edit="img" data-action="editImage"
|
||||
data-tooltip="{{actor.name}}" />
|
||||
</div>
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.HP"}}</legend>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.hp.fields.value value=system.hp.value}}
|
||||
/
|
||||
{{formField systemFields.hp.fields.max value=system.hp.max rootId=partId disabled=true}}
|
||||
</div>
|
||||
<fieldset class="spec">
|
||||
{{formField systemFields.agility value=system.agility localize=true}}
|
||||
{{formField systemFields.armor value=system.armor localize=true}}
|
||||
{{formField systemFields.endurance value=system.endurance localize=true}}
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
@@ -28,20 +25,29 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<fieldset class="speed">
|
||||
<legend>{{localize "FTLNOMAD.Label.Speed"}}</legend>
|
||||
<fieldset class="capacity ">
|
||||
<legend>{{localize "FTLNOMAD.Label.capacity"}}</legend>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.surfaceSpeed value=system.surfaceSpeed localize=true}}
|
||||
{{formField systemFields.airSpeed value=system.airSpeed localize=true}}
|
||||
|
||||
{{formField systemFields.hullType value=system.hullType localize=true}}
|
||||
<div class="flexrow rollable" data-roll-type="starship-guns">
|
||||
<i class="fa-regular fa-dice dice-2d6"></i>
|
||||
{{formField systemFields.guns value=system.guns localize=true}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.cost value=system.cost localize=true}}
|
||||
{{formField systemFields.monthlyCost value=system.monthlyCost localize=true}}
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.travelMultiplier value=system.travelMultiplier localize=true}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="armr ">
|
||||
<legend>{{localize "FTLNOMAD.Label.armor"}}</legend>
|
||||
<fieldset class="cargo">
|
||||
<legend>{{localize "FTLNOMAD.Label.cargo"}}</legend>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.armor value=system.armor localize=true}}
|
||||
{{formField systemFields.crew value=system.crew localize=true}}
|
||||
{{formField systemFields.cargo value=system.cargo localize=true}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
<section class="tab vehicle-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.damages"}}</legend>
|
||||
<textarea class="form-control" rows="5" name="system.damages"
|
||||
data-tooltip="{{localize "FTLNOMAD.Tooltip.damages"}}">{{system.damages}}</textarea>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
@@ -9,4 +15,5 @@
|
||||
<legend>{{localize "FTLNOMAD.Label.notes"}}</legend>
|
||||
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
</section>
|
||||
@@ -28,14 +28,14 @@
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.gears"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addGear"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createGear"></i></a>{{/if}}
|
||||
<legend>{{localize "FTLNOMAD.Label.equipment"}}{{#if isEditMode}}
|
||||
<a class="action" data-tooltip="{{localize " FTLNOMAD.Tooltip.addEquipment"}}" data-tooltip-direction="UP"><i
|
||||
class="fas fa-plus" data-action="createEquipment"></i></a>{{/if}}
|
||||
</legend>
|
||||
<div class="gears">
|
||||
{{#each gears as |item|}}
|
||||
<div class="equipments">
|
||||
{{#each equipments as |item|}}
|
||||
{{!log 'armor' this}}
|
||||
<div class="gear" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<div class="equipment" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
|
||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
|
||||
@@ -9,11 +9,9 @@
|
||||
data-tooltip="{{actor.name}}" />
|
||||
</div>
|
||||
<fieldset>
|
||||
<legend>{{localize "FTLNOMAD.Label.HP"}}</legend>
|
||||
<legend>{{localize "FTLNOMAD.Label.Agility"}}</legend>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.hp.fields.value value=system.hp.value}}
|
||||
/
|
||||
{{formField systemFields.hp.fields.max value=system.hp.max rootId=partId disabled=true}}
|
||||
{{formField systemFields.agility value=system.agility localize=true}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
@@ -28,20 +26,24 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
<fieldset class="speed">
|
||||
<legend>{{localize "FTLNOMAD.Label.Speed"}}</legend>
|
||||
<fieldset class="capacity ">
|
||||
<legend>{{localize "FTLNOMAD.Label.capacity"}}</legend>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.surfaceSpeed value=system.surfaceSpeed localize=true}}
|
||||
{{formField systemFields.airSpeed value=system.airSpeed localize=true}}
|
||||
|
||||
{{formField systemFields.armor value=system.armor localize=true}}
|
||||
{{formField systemFields.force value=system.force localize=true}}
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.range value=system.range localize=true}}
|
||||
{{formField systemFields.speed value=system.speed localize=true}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="armr ">
|
||||
<legend>{{localize "FTLNOMAD.Label.armor"}}</legend>
|
||||
<fieldset class="cargo">
|
||||
<legend>{{localize "FTLNOMAD.Label.cargo"}}</legend>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.armor value=system.armor localize=true}}
|
||||
{{formField systemFields.crew value=system.crew localize=true}}
|
||||
{{formField systemFields.cargo value=system.cargo localize=true}}
|
||||
{{formField systemFields.tonnage value=system.tonnage localize=true}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||