from totem to vermine - v0.0.12

This commit is contained in:
François-Xavier Guillois
2023-06-06 11:06:04 +02:00
parent d388c3ba4b
commit 2b5e639e9e
110 changed files with 369 additions and 9675 deletions
-25
View File
@@ -1,25 +0,0 @@
MIT License
Copyright (c) 2020 Asacolips Projects / Foundry Mods
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
This license does not apply to the compendium content listed in this software's
"packs" directory. See the README for licensing information for the compendium
packs.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+1 -43
View File
@@ -1,43 +1 @@
# Totem System # Vermine 2047 System
![Foundry v10](https://img.shields.io/badge/foundry-v10-green)
This system is a totem system that you can use as a starting point for building your own custom systems. It's similar to Simple World-building, but has examples of creating attributes in code rather than dynamically through the UI.
## Usage
Before installing this system, you should rename any files that have `totem` in their filename to use whatever machine-safe name your system needs, such as `adnd2e` if you were building a system for 2nd edition Advanced Dungeons & Dragons. In addition, you should search through the files for `totem` and `Totem` and do the same for those, replacing them with appropriate names for your system.
### System Generator
This project is also available as generator that can be run with npm: https://www.npmjs.com/package/generator-foundry
### Vue 3 Totem
Alternatively, there's another build of this system that supports using Vue 3 components (ES module build target) for character sheet templates.
Head over to the [Vue3Totem System](https://gitlab.com/asacolips-projects/foundry-mods/vue3totem) repo if you're interested in using Vue!
### Tutorial
For much more information on how to use this system as a starting point for making your own, see the [full tutorial on the Foundry Wiki](https://foundryvtt.wiki/en/development/guides/SD-tutorial)!
## Sheet Layout
This system includes a handful of helper CSS classes to help you lay out your sheets if you're not comfortable diving into CSS fully. Those are:
* `flexcol`: Included by Foundry itself, this lays out the child elements of whatever element you place this on vertically.
* `flexrow`: Included by Foundry itself, this lays out the child elements of whatever element you place this on horizontally.
* `flex-center`: When used on something that's using flexrow or flexcol, this will center the items and text.
* `flex-between`: When used on something that's using flexrow or flexcol, this will attempt to place space between the items. Similar to "justify" in word processors.
* `flex-group-center`: Add a border, padding, and center all items.
* `flex-group-left`: Add a border, padding, and left align all items.
* `flex-group-right`: Add a border, padding, and right align all items.
* `grid`: When combined with the `grid-Ncol` classes, this will lay out child elements in a grid.
* `grid-Ncol`: Replace `N` with any number from 1-12, such as `grid-3col`. When combined with `grid`, this will layout child elements in a grid with a number of columns equal to the number specified.
## Compiling the CSS
This repo includes both CSS for the theme and SCSS source files. If you're new to CSS, it's probably easier to just work in those files directly and delete the SCSS directory. If you're interested in using a CSS preprocessor to add support for nesting, variables, and more, you can run `npm install` in this directory to install the dependencies for the scss compiler. After that, just run `npm run gulp` to compile the SCSS and start a process that watches for new changes.
![image](http://mattsmith.in/images/totem.png)
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.
+40 -40
View File
@@ -236,17 +236,17 @@
text-align: center; text-align: center;
} }
/* Styles limited to totem sheets */ /* Styles limited to vermine2047 sheets */
.totem { .vermine2047 {
/* ----------------------------------------- */ /* ----------------------------------------- */
/* Items Lists */ /* Items Lists */
/* ----------------------------------------- */ /* ----------------------------------------- */
/* Example style for Totem (can be removed if not needed) */ /* Example style for Vermine 2047 (can be removed if not needed) */
} }
.totem .item-form { .vermine2047 .item-form {
font-family: "Roboto", sans-serif; font-family: "Roboto", sans-serif;
} }
.totem .sheet-header { .vermine2047 .sheet-header {
-webkit-box-flex: 0; -webkit-box-flex: 0;
-ms-flex: 0 auto; -ms-flex: 0 auto;
flex: 0 auto; flex: 0 auto;
@@ -265,57 +265,57 @@
justify-content: flex-start; justify-content: flex-start;
margin-bottom: 10px; margin-bottom: 10px;
} }
.totem .sheet-header .profile-img { .vermine2047 .sheet-header .profile-img {
-webkit-box-flex: 0; -webkit-box-flex: 0;
-ms-flex: 0 0 100px; -ms-flex: 0 0 100px;
flex: 0 0 100px; flex: 0 0 100px;
height: 100px; height: 100px;
margin-right: 10px; margin-right: 10px;
} }
.totem .sheet-header .header-fields { .vermine2047 .sheet-header .header-fields {
-webkit-box-flex: 1; -webkit-box-flex: 1;
-ms-flex: 1; -ms-flex: 1;
flex: 1; flex: 1;
} }
.totem .sheet-header h1.charname { .vermine2047 .sheet-header h1.charname {
height: 50px; height: 50px;
padding: 0px; padding: 0px;
margin: 5px 0; margin: 5px 0;
border-bottom: 0; border-bottom: 0;
} }
.totem .sheet-header h1.charname input { .vermine2047 .sheet-header h1.charname input {
width: 100%; width: 100%;
height: 100%; height: 100%;
margin: 0; margin: 0;
} }
.totem .sheet-tabs { .vermine2047 .sheet-tabs {
-webkit-box-flex: 0; -webkit-box-flex: 0;
-ms-flex: 0; -ms-flex: 0;
flex: 0; flex: 0;
} }
.totem .sheet-body, .vermine2047 .sheet-body,
.totem .sheet-body .tab, .vermine2047 .sheet-body .tab,
.totem .sheet-body .tab .editor { .vermine2047 .sheet-body .tab .editor {
height: 100%; height: 100%;
} }
.totem .sheet-body .editor { .vermine2047 .sheet-body .editor {
min-height:75px; min-height:75px;
margin-bottom:1rem; margin-bottom:1rem;
} }
.totem editor:hover .editor-edit { .vermine2047 editor:hover .editor-edit {
display: block; display: block;
} }
.totem .tox .tox-editor-container { .vermine2047 .tox .tox-editor-container {
background: #fff; background: #fff;
} }
.totem .tox .tox-edit-area { .vermine2047 .tox .tox-edit-area {
padding: 0 8px; padding: 0 8px;
} }
.totem .resource-label { .vermine2047 .resource-label {
font-weight: bold; font-weight: bold;
} }
.totem .items-header { .vermine2047 .items-header {
height: 28px; height: 28px;
margin: 2px 0; margin: 2px 0;
padding: 0; padding: 0;
@@ -326,11 +326,11 @@
border: 2px groove #eeede0; border: 2px groove #eeede0;
font-weight: bold; font-weight: bold;
} }
.totem .items-header > * { .vermine2047 .items-header > * {
font-size: 14px; font-size: 14px;
text-align: center; text-align: center;
} }
.totem .items-header .item-name { .vermine2047 .items-header .item-name {
font-weight: bold; font-weight: bold;
padding-left: 5px; padding-left: 5px;
text-align: left; text-align: left;
@@ -338,7 +338,7 @@
display: -ms-flexbox; display: -ms-flexbox;
display: flex; display: flex;
} }
.totem .items-list { .vermine2047 .items-list {
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
@@ -346,12 +346,12 @@
scrollbar-width: thin; scrollbar-width: thin;
color: #444; color: #444;
} }
.totem .items-list .item-list { .vermine2047 .items-list .item-list {
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.totem .items-list .item-name { .vermine2047 .items-list .item-name {
-webkit-box-flex: 2; -webkit-box-flex: 2;
-ms-flex: 2; -ms-flex: 2;
flex: 2; flex: 2;
@@ -366,12 +366,12 @@
display: -ms-flexbox; display: -ms-flexbox;
display: flex; display: flex;
} }
.totem .items-list .item-name h3, .totem .items-list .item-name h4 { .vermine2047 .items-list .item-name h3, .vermine2047 .items-list .item-name h4 {
margin: 0; margin: 0;
white-space: nowrap; white-space: nowrap;
overflow-x: hidden; overflow-x: hidden;
} }
.totem .items-list .item-controls { .vermine2047 .items-list .item-controls {
display: -webkit-box; display: -webkit-box;
display: -ms-flexbox; display: -ms-flexbox;
display: flex; display: flex;
@@ -382,25 +382,25 @@
-ms-flex-pack: end; -ms-flex-pack: end;
justify-content: flex-end; justify-content: flex-end;
} }
.totem .items-list .item-controls a { .vermine2047 .items-list .item-controls a {
font-size: 12px; font-size: 12px;
text-align: center; text-align: center;
margin: 0 6px; margin: 0 6px;
} }
.totem .items-list .item { .vermine2047 .items-list .item {
-webkit-box-align: center; -webkit-box-align: center;
-ms-flex-align: center; -ms-flex-align: center;
align-items: center; align-items: center;
padding: 0 2px; padding: 0 2px;
border-bottom: 1px solid #c9c7b8; border-bottom: 1px solid #c9c7b8;
} }
.totem .items-list .item:last-child { .vermine2047 .items-list .item:last-child {
border-bottom: none; border-bottom: none;
} }
.totem .items-list .item .item-name { .vermine2047 .items-list .item .item-name {
color: #191813; color: #191813;
} }
.totem .items-list .item .item-name .item-image { .vermine2047 .items-list .item .item-name .item-image {
-webkit-box-flex: 0; -webkit-box-flex: 0;
-ms-flex: 0 0 30px; -ms-flex: 0 0 30px;
flex: 0 0 30px; flex: 0 0 30px;
@@ -409,13 +409,13 @@
border: none; border: none;
margin-right: 5px; margin-right: 5px;
} }
.totem .items-list .item-prop { .vermine2047 .items-list .item-prop {
text-align: center; text-align: center;
border-left: 1px solid #c9c7b8; border-left: 1px solid #c9c7b8;
border-right: 1px solid #c9c7b8; border-right: 1px solid #c9c7b8;
font-size: 12px; font-size: 12px;
} }
.totem .items-list .items-header { .vermine2047 .items-list .items-header {
height: 28px; height: 28px;
margin: 2px 0; margin: 2px 0;
padding: 0; padding: 0;
@@ -426,29 +426,29 @@
border: 2px groove #eeede0; border: 2px groove #eeede0;
font-weight: bold; font-weight: bold;
} }
.totem .items-list .items-header > * { .vermine2047 .items-list .items-header > * {
font-size: 12px; font-size: 12px;
text-align: center; text-align: center;
} }
.totem .items-list .items-header .item-name { .vermine2047 .items-list .items-header .item-name {
padding-left: 5px; padding-left: 5px;
text-align: left; text-align: left;
} }
.totem .item-formula { .vermine2047 .item-formula {
-webkit-box-flex: 0; -webkit-box-flex: 0;
-ms-flex: 0 0 200px; -ms-flex: 0 0 200px;
flex: 0 0 200px; flex: 0 0 200px;
padding: 0 8px; padding: 0 8px;
} }
.totem .effects .item .effect-source, .vermine2047 .effects .item .effect-source,
.totem .effects .item .effect-duration, .vermine2047 .effects .item .effect-duration,
.totem .effects .item .effect-controls { .vermine2047 .effects .item .effect-controls {
text-align: center; text-align: center;
border-left: 1px solid #c9c7b8; border-left: 1px solid #c9c7b8;
border-right: 1px solid #c9c7b8; border-right: 1px solid #c9c7b8;
font-size: 12px; font-size: 12px;
} }
.totem .effects .item .effect-controls { .vermine2047 .effects .item .effect-controls {
border: none; border: none;
} }
+56 -45
View File
@@ -18,14 +18,14 @@
} }
/* custom styles */ /* custom styles */
body.system-totem img#logo { body.system-vermine2047 img#logo {
content: url("/systems/totem/assets/images/ui/logo_gods_foundry.webp"); content: url("/systems/vermine2047/assets/images/ui/logo_vermine_foundry.webp");
height:auto; height:auto;
} }
/* Customize the chat roll area! */ /* Customize the chat roll area! */
#chat-form textarea { #chat-form textarea {
background: url(/systems/totem/assets/images/ui/box_background.webp) repeat; background: url(/systems/vermine2047/assets/images/ui/box_background.webp) repeat;
/*font-family: monospace; /*font-family: monospace;
font-size: 14px; font-size: 14px;
color: black; */ color: black; */
@@ -33,7 +33,7 @@ body.system-totem img#logo {
/* Customize the chat history area! */ /* Customize the chat history area! */
#chat-log .message { #chat-log .message {
background: url(/systems/totem/assets/images/ui/box_background.webp) repeat; background: url(/systems/vermine2047/assets/images/ui/box_background.webp) repeat;
/*color: #191813; */ /*color: #191813; */
} }
@@ -72,14 +72,14 @@ ul.unstyled li {
/* ----------------------------------------- */ /* ----------------------------------------- */
/* Sheet Structure */ /* Sheet Structure */
/* ----------------------------------------- */ /* ----------------------------------------- */
.system-totem .window-content { .system-vermine2047 .window-content {
background: url(/systems/totem/assets/images/ui/box_background.webp); background: url(/systems/vermine2047/assets/images/ui/box_background.webp);
padding: 0; padding: 0;
overflow-y: hidden; overflow-y: hidden;
} }
.system-totem .dialog .window-content { .system-vermine2047 .dialog .window-content {
background: url(/systems/totem/assets/images/ui/fond_chat_box.webp); background: url(/systems/vermine2047/assets/images/ui/fond_chat_box.webp);
padding: 0; padding: 0;
overflow-y: hidden; overflow-y: hidden;
} }
@@ -98,7 +98,7 @@ ul.unstyled li {
.actor.sheet .form aside { .actor.sheet .form aside {
grid-row: span 1 / span 1; grid-row: span 1 / span 1;
background-image: url(/systems/totem/assets/images/ui/barre_lateral.webp); background-image: url(/systems/vermine2047/assets/images/ui/barre_laterale.webp);
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: bottom center; background-position: bottom center;
height: 100%; height: 100%;
@@ -137,13 +137,20 @@ ul.unstyled li {
font-family: "DistressBlack", sans-serif; font-family: "DistressBlack", sans-serif;
font-size: 2em; font-size: 2em;
text-transform: uppercase; text-transform: uppercase;
}
.actor.sheet .form .characteristics h4 {
font-size:1.25rem;
}
.actor.sheet .form .tab.stories h4 {
margin-top:0.875rem; margin-top:0.875rem;
} }
.system-totem .char-header { .system-vermine2047 .char-header {
font-family: "DistressBlack", sans-serif; font-family: "DistressBlack", sans-serif;
} }
.system-totem .char-header section { .system-vermine2047 .char-header section {
display:flex; display:flex;
flex-direction: column; flex-direction: column;
align-items: flex-start; align-items: flex-start;
@@ -151,11 +158,15 @@ ul.unstyled li {
} }
.system-totem .char-header h1.char-name { .system-vermine2047 .char-header h1.char-name {
border-bottom: none;; border-bottom: none;
} }
.system-totem .sheet.actor .sheet-body { .system-vermine2047 .char-vermine2047 {
font-size:1.5rem;
}
.system-vermine2047 .sheet.actor .sheet-body {
height: calc(100% - 35px); height: calc(100% - 35px);
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
@@ -165,12 +176,12 @@ ul.unstyled li {
max-height: 688px; max-height: 688px;
padding-bottom:1rem; padding-bottom:1rem;
} }
.system-totem .sheet.actor form { .system-vermine2047 .sheet.actor form {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
} }
.system-totem .sheet.actor form input[type=text], .system-totem .sheet.actor form input[type=number] { .system-vermine2047 .sheet.actor form input[type=text], .system-vermine2047 .sheet.actor form input[type=number] {
width: calc(100% - 2px); width: calc(100% - 2px);
height: calc(100% - 2px); height: calc(100% - 2px);
background: none; background: none;
@@ -179,48 +190,48 @@ ul.unstyled li {
color: #333; color: #333;
border: 1px solid transparent; border: 1px solid transparent;
} }
.system-totem .sheet.actor form input[type=text]:hover:not(:disabled), .system-totem .sheet.actor form input[type=text]:focus, .system-totem .sheet.actor form input[type=number]:hover:not(:disabled), .system-totem .sheet.actor form input[type=number]:focus { .system-vermine2047 .sheet.actor form input[type=text]:hover:not(:disabled), .system-vermine2047 .sheet.actor form input[type=text]:focus, .system-vermine2047 .sheet.actor form input[type=number]:hover:not(:disabled), .system-vermine2047 .sheet.actor form input[type=number]:focus {
border: 1px solid black; border: 1px solid black;
box-shadow: 0 0 10px #00005a; box-shadow: 0 0 10px #00005a;
} }
.system-totem .sheet.actor form select { .system-vermine2047 .sheet.actor form select {
font-size: var(--font-size-10); font-size: var(--font-size-10);
height: 18px; height: 18px;
background: rgba(255, 255, 255, 0.5); background: rgba(255, 255, 255, 0.5);
} }
.system-totem .sheet.actor form label { .system-vermine2047 .sheet.actor form label {
display: block; display: block;
} }
.system-totem .sheet.actor form .mce-panel span { .system-vermine2047 .sheet.actor form .mce-panel span {
display: inherit; display: inherit;
} }
.system-totem .sheet.actor form.editable .rollable:hover { .system-vermine2047 .sheet.actor form.editable .rollable:hover {
color: #000; color: #000;
text-shadow: 0 0 10px #00005a; text-shadow: 0 0 10px #00005a;
cursor: pointer; cursor: pointer;
} }
.system-totem .sheet.actor form .sheet-tabs { .system-vermine2047 .sheet.actor form .sheet-tabs {
font-weight: 500; font-weight: 500;
height: 30px; height: 30px;
} }
.system-totem .sheet.actor form .sheet-tabs > .list-row { .system-vermine2047 .sheet.actor form .sheet-tabs > .list-row {
line-height: 24px; line-height: 24px;
padding-top: 3px; padding-top: 3px;
font-size: var(--font-size-12); font-size: var(--font-size-12);
text-align: center; text-align: center;
} }
.system-totem .sheet.actor form .sheet-tabs > .list-row:last-of-type { .system-vermine2047 .sheet.actor form .sheet-tabs > .list-row:last-of-type {
padding-right: 4px; padding-right: 4px;
} }
.system-totem .sheet.actor form .sheet-tabs > .list-row.active { .system-vermine2047 .sheet.actor form .sheet-tabs > .list-row.active {
color: #000; color: #000;
font-weight: 700; font-weight: 700;
} }
.system-totem .sheet.actor form .tab { .system-vermine2047 .sheet.actor form .tab {
flex: 1; flex: 1;
overflow: hidden; overflow: hidden;
} }
.system-totem .sheet.actor form .tag-legacy { .system-vermine2047 .sheet.actor form .tag-legacy {
float: left; float: left;
margin: 0 2px 2px 0; margin: 0 2px 2px 0;
padding: 0 3px; padding: 0 3px;
@@ -235,32 +246,32 @@ ul.unstyled li {
/* ---------------------------------------- */ /* ---------------------------------------- */
/* Actor Sheet */ /* Actor Sheet */
/* ---------------------------------------- */ /* ---------------------------------------- */
.system-totem .sheet.actor { .system-vermine2047 .sheet.actor {
min-width: 690px; min-width: 690px;
min-height: 800px; min-height: 800px;
} }
.system-totem .sheet.actor .sidebar { .system-vermine2047 .sheet.actor .sidebar {
width: 230px; width: 230px;
min-height:518px; min-height:518px;
} }
.system-totem .sheet.actor .floatright { .system-vermine2047 .sheet.actor .floatright {
float: right; float: right;
} }
.system-totem .sheet.actor .sheet-upper { .system-vermine2047 .sheet.actor .sheet-upper {
height: 268px; height: 268px;
} }
.system-totem .sheet.actor .sheet-upper .sheet-header { .system-vermine2047 .sheet.actor .sheet-upper .sheet-header {
height: 48px; height: 48px;
} }
.system-totem .sheet.actor .sheet-upper .sheet-profile, .system-totem .sheet.actor .sheet-upper .sheet-showcase { .system-vermine2047 .sheet.actor .sheet-upper .sheet-profile, .system-vermine2047 .sheet.actor .sheet-upper .sheet-showcase {
height: 220px; height: 220px;
} }
.system-totem .sheet.actor .sheet-content { .system-vermine2047 .sheet.actor .sheet-content {
padding:4px; padding:4px;
} }
.system-totem .sheet.actor .sheet-sidebar { .system-vermine2047 .sheet.actor .sheet-sidebar {
height: calc(100% - 48px); height: calc(100% - 48px);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -268,32 +279,32 @@ ul.unstyled li {
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
} }
.system-totem .sheet.actor .sheet-sidebar > * { .system-vermine2047 .sheet.actor .sheet-sidebar > * {
flex: 1; flex: 1;
} }
.system-totem .sheet.actor .sheet-sidebar .sidebar-summary { .system-vermine2047 .sheet.actor .sheet-sidebar .sidebar-summary {
overflow-y: hidden; overflow-y: hidden;
} }
.system-totem .sheet.actor.npc-sheet .sheet-upper { .system-vermine2047 .sheet.actor.npc-sheet .sheet-upper {
height: 220px; height: 220px;
} }
.system-totem .sheet.actor.npc-sheet .sheet-upper .sheet-showcase { .system-vermine2047 .sheet.actor.npc-sheet .sheet-upper .sheet-showcase {
height: 172px; height: 172px;
} }
.system-totem .sheet.actor.npc-sheet .sheet-lower { .system-vermine2047 .sheet.actor.npc-sheet .sheet-lower {
height: calc(100% - 220px - 32px); height: calc(100% - 220px - 32px);
} }
.system-totem .sheet.actor.npc-sheet section.sheet-body { .system-vermine2047 .sheet.actor.npc-sheet section.sheet-body {
height: calc(100% - 48px); height: calc(100% - 48px);
} }
.system-totem .sheet.actor .sheet-navigation { .system-vermine2047 .sheet.actor .sheet-navigation {
border-top: 1px solid var(--secondary-background); border-top: 1px solid var(--secondary-background);
border-bottom: 1px solid var(--primary-background); border-bottom: 1px solid var(--primary-background);
} }
.system-totem .sheet.actor .sheet-navigation .sheet-tabs > .list-row { .system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs > .list-row {
border-radius: 5px 5px 0 0; border-radius: 5px 5px 0 0;
} }
.system-totem .sheet.actor .sheet-navigation .sheet-tabs > .list-row.active { .system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs > .list-row.active {
border: 1px solid #666; border: 1px solid #666;
border-bottom: none; border-bottom: none;
/* box-shadow: 0 0 10px inset #ff6400; /* box-shadow: 0 0 10px inset #ff6400;
@@ -325,6 +336,6 @@ ul.unstyled li {
transition: all 0.1s ease-out; transition: all 0.1s ease-out;
} }
.system-totem .sheet.actor form nav.sheet-navigation.sheet-tabs { .system-vermine2047 .sheet.actor form nav.sheet-navigation.sheet-tabs {
height:54px; height:54px;
} }
-55
View File
@@ -1,55 +0,0 @@
const gulp = require('gulp');
const prefix = require('gulp-autoprefixer');
const sourcemaps = require('gulp-sourcemaps');
const sass = require('gulp-sass')(require('sass'));
/* ----------------------------------------- */
/* Compile Sass
/* ----------------------------------------- */
// Small error handler helper function.
function handleError(err) {
console.log(err.toString());
this.emit('end');
}
const SYSTEM_SCSS = ["scss/**/*.scss"];
function compileScss() {
// Configure options for sass output. For example, 'expanded' or 'nested'
let options = {
outputStyle: 'expanded'
};
return gulp.src(SYSTEM_SCSS)
.pipe(sourcemaps.init())
.pipe(
sass(options)
.on('error', handleError)
)
.pipe(prefix({
cascade: false
}))
.pipe(sourcemaps.write())
.pipe(gulp.dest("./css"))
}
const css = gulp.series(compileScss);
/* ----------------------------------------- */
/* Watch Updates
/* ----------------------------------------- */
function watchUpdates() {
gulp.watch(SYSTEM_SCSS, css);
}
/* ----------------------------------------- */
/* Export Tasks
/* ----------------------------------------- */
exports.default = gulp.series(
compileScss,
watchUpdates
);
exports.build = gulp.series(
compileScss
);
exports.css = css;
+17 -17
View File
@@ -1,13 +1,13 @@
{ {
"TOTEM.WorldSettings.GameMode.Name":"Choix du mode de jeu", "VERMINE.WorldSettings.GameMode.Name":"Choix du mode de jeu",
"TOTEM.WorldSettings.GameMode.Hint":"À limage de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de lunivers.", "VERMINE.WorldSettings.GameMode.Hint":"À limage de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de lunivers.",
"GAME_MODES": { "GAME_MODES": {
"heroic": { "name": "Héroique"}, "heroic": { "name": "Héroique"},
"epic": { "name": "Epique"}, "epic": { "name": "Epique"},
"legendary": { "name": "Légendaire"} "legendary": { "name": "Légendaire"}
}, },
"TOTEM.roll_tool": "Lanceur de dés", "VERMINE.roll_tool": "Lanceur de dés",
"TOTEM.roll_dice": "Jeter les dés", "VERMINE.roll_dice": "Jeter les dés",
"IDENTITY": { "IDENTITY": {
"name": "Nom", "name": "Nom",
"height": "Taille", "height": "Taille",
@@ -24,7 +24,7 @@
"relations": "Relations", "relations": "Relations",
"notes": "Notes" "notes": "Notes"
}, },
"TOTEM": { "VERMINE": {
"stats": "Statistiques", "stats": "Statistiques",
"level": "Niveau", "level": "Niveau",
"experience": "Expérience", "experience": "Expérience",
@@ -85,18 +85,18 @@
"empathy":{ "name": "Empathie"} "empathy":{ "name": "Empathie"}
}, },
"TOTEM.effect_treate": "Create Effect", "VERMINE.effect_treate": "Create Effect",
"TOTEM.effect_toggle": "Toggle Effect", "VERMINE.effect_toggle": "Toggle Effect",
"TOTEM.effect_edit": "Edit Effect", "VERMINE.effect_edit": "Edit Effect",
"TOTEM.effect_delete": "Delete Effect", "VERMINE.effect_delete": "Delete Effect",
"TOTEM.Add": "Add", "VERMINE.Add": "Add",
"TOTEM.skill_level.beginner": "Débutant", "VERMINE.skill_level.beginner": "Débutant",
"TOTEM.skill_level.proficient": "Confirmé", "VERMINE.skill_level.proficient": "Confirmé",
"TOTEM.skill_level.expert": "Expert", "VERMINE.skill_level.expert": "Expert",
"TOTEM.skill_level.master": "Maître", "VERMINE.skill_level.master": "Maître",
"TOTEM.skill_level.legend": "Légende", "VERMINE.skill_level.legend": "Légende",
"TOTEMS": { "TOTEMS": {
"human": { "name": "L'Humain", "number":1}, "human": { "name": "L'Humain", "number":1},
@@ -158,6 +158,6 @@
"ruins": { "name": "Vestiges"} "ruins": { "name": "Vestiges"}
}, },
"TOTEM.sexes.male":"Masculin", "VERMINE.sexes.male":"Masculin",
"TOTEM.sexes.female":"Féminin" "VERMINE.sexes.female":"Féminin"
} }
View File
View File
+2 -2
View File
@@ -2,7 +2,7 @@
* Extend the base Actor document by defining a custom roll data structure which is ideal for the Simple system. * Extend the base Actor document by defining a custom roll data structure which is ideal for the Simple system.
* @extends {Actor} * @extends {Actor}
*/ */
export class TotemActor extends Actor { export class VermineActor extends Actor {
/** @override */ /** @override */
prepareData() { prepareData() {
@@ -31,7 +31,7 @@ export class TotemActor extends Actor {
prepareDerivedData() { prepareDerivedData() {
const actorData = this; const actorData = this;
const systemData = actorData.system; const systemData = actorData.system;
const flags = actorData.flags.totem || {}; const flags = actorData.flags.vermine2047 || {};
// Make separate methods for each Actor type (character, npc, etc.) to keep // Make separate methods for each Actor type (character, npc, etc.) to keep
// things organized. // things organized.
+1 -1
View File
@@ -2,7 +2,7 @@
* Extend the basic Item with some very simple modifications. * Extend the basic Item with some very simple modifications.
* @extends {Item} * @extends {Item}
*/ */
export class TotemItem extends Item { export class VermineItem extends Item {
/** /**
* Augment the basic Item data model with additional dynamic data. * Augment the basic Item data model with additional dynamic data.
*/ */
+6 -6
View File
@@ -4,13 +4,13 @@ import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/eff
* Extend the basic ActorSheet with some very simple modifications * Extend the basic ActorSheet with some very simple modifications
* @extends {ActorSheet} * @extends {ActorSheet}
*/ */
export class TotemActorSheet extends ActorSheet { export class VermineActorSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return mergeObject(super.defaultOptions, {
classes: ["totem", "sheet", "actor"], classes: ["vermine2047", "sheet", "actor"],
template: "systems/totem/templates/actor/actor-sheet.html", template: "systems/vermine2047/templates/actor/actor-sheet.html",
height: 820, height: 820,
width: 690, width: 690,
resizable: false, resizable: false,
@@ -20,7 +20,7 @@ export class TotemActorSheet extends ActorSheet {
/** @override */ /** @override */
get template() { get template() {
return `systems/totem/templates/actor/actor-${this.actor.type}-sheet.html`; return `systems/vermine2047/templates/actor/actor-${this.actor.type}-sheet.html`;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -39,7 +39,7 @@ export class TotemActorSheet extends ActorSheet {
// Add the actor's data to context.data for easier access, as well as flags. // Add the actor's data to context.data for easier access, as well as flags.
context.system = actorData.system; context.system = actorData.system;
context.flags = actorData.flags; context.flags = actorData.flags;
context.config = CONFIG.TOTEM; context.config = CONFIG.VERMINE;
// Prepare character data and items. // Prepare character data and items.
if (actorData.type == 'character') { if (actorData.type == 'character') {
@@ -176,7 +176,7 @@ export class TotemActorSheet extends ActorSheet {
context.traumas = traumas; context.traumas = traumas;
context.backgrounds = backgrounds; context.backgrounds = backgrounds;
context.rumors = rumors; context.rumors = rumors;
console.log("context", context); // console.log("context", context);
} }
+8 -8
View File
@@ -1,18 +1,18 @@
import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs"; import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs";
import { TotemActorSheet } from "./actor-sheet.mjs"; import { VermineActorSheet } from "./actor-sheet.mjs";
import { getRollBox } from "../system/dialogs.mjs"; import { getRollBox } from "../system/dialogs.mjs";
/** /**
* Extend the basic ActorSheet with some very simple modifications * Extend the basic ActorSheet with some very simple modifications
* @extends {TotemActorSheet} * @extends {VermineActorSheet}
*/ */
export class TotemCharacterSheet extends TotemActorSheet { export class VermineCharacterSheet extends VermineActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return mergeObject(super.defaultOptions, {
classes: ["totem", "sheet", "actor"], classes: ["vermine2047", "sheet", "actor"],
template: "systems/totem/templates/actor/actor-sheet.html", template: "systems/vermine2047/templates/actor/actor-sheet.html",
width: 600, width: 600,
height: 600, height: 600,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }] tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }]
@@ -21,7 +21,7 @@ export class TotemCharacterSheet extends TotemActorSheet {
/** @override */ /** @override */
get template() { get template() {
return `systems/totem/templates/actor/actor-character-sheet.html`; return `systems/vermine2047/templates/actor/actor-character-sheet.html`;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -40,7 +40,7 @@ export class TotemCharacterSheet extends TotemActorSheet {
// Add the actor's data to context.data for easier access, as well as flags. // Add the actor's data to context.data for easier access, as well as flags.
context.system = actorData.system; context.system = actorData.system;
context.flags = actorData.flags; context.flags = actorData.flags;
context.config = CONFIG.TOTEM; context.config = CONFIG.VERMINE;
// Prepare character data and items. // Prepare character data and items.
if (actorData.type == 'character') { if (actorData.type == 'character') {
@@ -221,7 +221,7 @@ export class TotemCharacterSheet extends TotemActorSheet {
/*const label = game.i18n.localize(dataset.label) ? `[ability] ${game.i18n.localize(dataset.label)}` : ''; /*const label = game.i18n.localize(dataset.label) ? `[ability] ${game.i18n.localize(dataset.label)}` : '';
console.log($(element).attr('for')); console.log($(element).attr('for'));
const NoD = this.actor.system.skills[$(element).attr('for').split('.')[2]]?.value || 0 const NoD = this.actor.system.skills[$(element).attr('for').split('.')[2]]?.value || 0
return game.totem.TotemRoll.roll(this.actor.id, label, NoD, 0, {});*/ return game.vermine2047.VermineRoll.roll(this.actor.id, label, NoD, 0, {});*/
let data = { let data = {
actorId: this.actor.id, actorId: this.actor.id,
label: game.i18n.localize(dataset.label) label: game.i18n.localize(dataset.label)
+6 -6
View File
@@ -1,17 +1,17 @@
import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs"; import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs";
import { TotemActorSheet } from "./actor-sheet.mjs"; import { VermineActorSheet } from "./actor-sheet.mjs";
/** /**
* Extend the basic ActorSheet with some very simple modifications * Extend the basic ActorSheet with some very simple modifications
* @extends {ActorSheet} * @extends {ActorSheet}
*/ */
export class TotemCreatureSheet extends ActorSheet { export class VermineCreatureSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return mergeObject(super.defaultOptions, {
classes: ["totem", "sheet", "actor"], classes: ["vermine2047", "sheet", "actor"],
template: "systems/totem/templates/actor/actor-sheet.html", template: "systems/vermine2047/templates/actor/actor-sheet.html",
width: 600, width: 600,
height: 600, height: 600,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }] tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }]
@@ -20,7 +20,7 @@ export class TotemCreatureSheet extends ActorSheet {
/** @override */ /** @override */
get template() { get template() {
return `systems/totem/templates/actor/actor-${this.actor.type}-sheet.html`; return `systems/vermine2047/templates/actor/actor-${this.actor.type}-sheet.html`;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -39,7 +39,7 @@ export class TotemCreatureSheet extends ActorSheet {
// Add the actor's data to context.data for easier access, as well as flags. // Add the actor's data to context.data for easier access, as well as flags.
context.system = actorData.system; context.system = actorData.system;
context.flags = actorData.flags; context.flags = actorData.flags;
context.config = CONFIG.TOTEM; context.config = CONFIG.VERMINE;
// Prepare character data and items. // Prepare character data and items.
if (actorData.type == 'character') { if (actorData.type == 'character') {
+3 -3
View File
@@ -2,12 +2,12 @@
* Extend the basic ItemSheet with some very simple modifications * Extend the basic ItemSheet with some very simple modifications
* @extends {ItemSheet} * @extends {ItemSheet}
*/ */
export class TotemItemSheet extends ItemSheet { export class VermineItemSheet extends ItemSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return mergeObject(super.defaultOptions, {
classes: ["totem", "sheet", "item"], classes: ["vermine2047", "sheet", "item"],
width: 520, width: 520,
height: 480, height: 480,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }] tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }]
@@ -16,7 +16,7 @@ export class TotemItemSheet extends ItemSheet {
/** @override */ /** @override */
get template() { get template() {
const path = "systems/totem/templates/item"; const path = "systems/vermine2047/templates/item";
// Return a single sheet for all item types. // Return a single sheet for all item types.
// return `${path}/item-sheet.html`; // return `${path}/item-sheet.html`;
+7 -7
View File
@@ -1,17 +1,17 @@
import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs"; import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs";
import { TotemActorSheet } from "./actor-sheet.mjs"; import { VermineActorSheet } from "./actor-sheet.mjs";
/** /**
* Extend the basic ActorSheet with some very simple modifications * Extend the basic ActorSheet with some very simple modifications
* @extends {TotemActorSheet} * @extends {VermineActorSheet}
*/ */
export class TotemNpcSheet extends TotemActorSheet { export class VermineNpcSheet extends VermineActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return mergeObject(super.defaultOptions, {
classes: ["totem", "sheet", "actor"], classes: ["vermine2047", "sheet", "actor"],
template: "systems/totem/templates/actor/actor-sheet.html", template: "systems/vermine2047/templates/actor/actor-sheet.html",
width: 600, width: 600,
height: 600, height: 600,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }] tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }]
@@ -20,7 +20,7 @@ export class TotemNpcSheet extends TotemActorSheet {
/** @override */ /** @override */
get template() { get template() {
return `systems/totem/templates/actor/actor-${this.actor.type}-sheet.html`; return `systems/vermine2047/templates/actor/actor-${this.actor.type}-sheet.html`;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -39,7 +39,7 @@ export class TotemNpcSheet extends TotemActorSheet {
// Add the actor's data to context.data for easier access, as well as flags. // Add the actor's data to context.data for easier access, as well as flags.
context.system = actorData.system; context.system = actorData.system;
context.flags = actorData.flags; context.flags = actorData.flags;
context.config = CONFIG.TOTEM; context.config = CONFIG.VERMINE;
// Prepare character data and items. // Prepare character data and items.
if (actorData.type == 'character') { if (actorData.type == 'character') {
+24 -24
View File
@@ -1,4 +1,4 @@
export const TOTEM = {}; export const VERMINE = {};
/** /**
* The set of Ability Scores used within the sytem. * The set of Ability Scores used within the sytem.
@@ -6,16 +6,16 @@ export const TOTEM = {};
*/ */
TOTEM.SkillLevels = { VERMINE.SkillLevels = {
1:{ "label":"TOTEM.skill_level.beginner", "dicePool":1, "reroll":0}, 1:{ "label":"VERMINE.skill_level.beginner", "dicePool":1, "reroll":0},
2:{ "label":"TOTEM.skill_level.proficient", "dicePool":1, "reroll":1}, 2:{ "label":"VERMINE.skill_level.proficient", "dicePool":1, "reroll":1},
3:{ "label":"TOTEM.skill_level.expert", "dicePool":2, "reroll":1}, 3:{ "label":"VERMINE.skill_level.expert", "dicePool":2, "reroll":1},
4:{ "label":"TOTEM.skill_level.master", "dicePool":2, "reroll":2}, 4:{ "label":"VERMINE.skill_level.master", "dicePool":2, "reroll":2},
5:{ "label":"TOTEM.skill_level.archmaster", "dicePool":3, "reroll":2}, 5:{ "label":"VERMINE.skill_level.archmaster", "dicePool":3, "reroll":2},
5:{ "label":"TOTEM.skill_level.legend", "dicePool":3, "reroll":3}, 5:{ "label":"VERMINE.skill_level.legend", "dicePool":3, "reroll":3},
} }
TOTEM.Instincts = { VERMINE.Instincts = {
1:{ "key":"architect"}, 1:{ "key":"architect"},
2:{ "key":"sword"}, 2:{ "key":"sword"},
3:{ "key":"flail"}, 3:{ "key":"flail"},
@@ -29,45 +29,45 @@ TOTEM.Instincts = {
} }
TOTEM.abilityCategories = { VERMINE.abilityCategories = {
"physical": { "physical": {
"label":"TOTEM.ability_category.physical" "label":"VERMINE.ability_category.physical"
}, },
"manual": { "manual": {
"label":"TOTEM.ability_category.manual" "label":"VERMINE.ability_category.manual"
}, },
"mental": { "mental": {
"label":"TOTEM.ability_category.mental" "label":"VERMINE.ability_category.mental"
}, },
"social": { "social": {
"label":"TOTEM.ability_category.social" "label":"VERMINE.ability_category.social"
} }
} }
TOTEM.skillCategories = { VERMINE.skillCategories = {
"man": { "man": {
"label":"TOTEM.skill_category.man" "label":"VERMINE.skill_category.man"
}, },
"animal": { "animal": {
"label":"TOTEM.skill_category.animal" "label":"VERMINE.skill_category.animal"
}, },
"tool": { "tool": {
"label":"TOTEM.skill_category.tool" "label":"VERMINE.skill_category.tool"
}, },
"weapon": { "weapon": {
"label":"TOTEM.skill_category.weapon" "label":"VERMINE.skill_category.weapon"
}, },
"survival": { "survival": {
"label":"TOTEM.skill_category.survival" "label":"VERMINE.skill_category.survival"
}, },
"world": { "world": {
"label":"TOTEM.skill_category.world" "label":"VERMINE.skill_category.world"
} }
} }
TOTEM.sexes = {"male": "TOTEM.sexes.male", "female": "TOTEM.sexes.female"}; VERMINE.sexes = {"male": "VERMINE.sexes.male", "female": "VERMINE.sexes.female"};
TOTEM.totems = {"human":"TOTEMS.human.name", VERMINE.totems = {"human":"TOTEMS.human.name",
"predator": "TOTEMS.predator.name" , "predator": "TOTEMS.predator.name" ,
"scavenger": "TOTEMS.scavenger.name" , "scavenger": "TOTEMS.scavenger.name" ,
"symbiote": "TOTEMS.symbiote.name" , "symbiote": "TOTEMS.symbiote.name" ,
@@ -78,7 +78,7 @@ TOTEM.totems = {"human":"TOTEMS.human.name",
"loner": "TOTEMS.loner.name", "loner": "TOTEMS.loner.name",
"adapted": "TOTEMS.adapted.name" } "adapted": "TOTEMS.adapted.name" }
TOTEM.origins = {"aon":"Aon", VERMINE.origins = {"aon":"Aon",
"avhorae": "Avhorae" , "avhorae": "Avhorae" ,
"babel": "Babel", "babel": "Babel",
"soleil_noir": "Empire du Soleil Noir", "soleil_noir": "Empire du Soleil Noir",
+4 -4
View File
@@ -36,13 +36,13 @@
} }
export const getRollBox = async function(data) { export const getRollBox = async function(data) {
let html = await renderTemplate('systems/totem/templates/roll.hbs', data); let html = await renderTemplate('systems/vermine2047/templates/roll.hbs', data);
let ui = new Dialog({ let ui = new Dialog({
title: game.i18n.localize("TOTEM.roll_tool"), title: game.i18n.localize("VERMINE.roll_tool"),
content: html, content: html,
buttons: { buttons: {
roll: { roll: {
label: game.i18n.localize('TOTEM.roll_dice'), label: game.i18n.localize('VERMINE.roll_dice'),
callback: (html) => { callback: (html) => {
let form = html.find('#dice-pool-form'); let form = html.find('#dice-pool-form');
if (!form[0].checkValidity()) { if (!form[0].checkValidity()) {
@@ -88,7 +88,7 @@
if (formData.helped !== undefined && formData.helped == 1){ if (formData.helped !== undefined && formData.helped == 1){
NoD += 1; NoD += 1;
} }
return game.totem.TotemRoll.roll(data.actorId, data.label, NoD, Reroll, data); return game.vermine2047.VermineRoll.roll(data.actorId, data.label, NoD, Reroll, data);
} }
}, },
close: { close: {
+28 -28
View File
@@ -1,8 +1,8 @@
import { TOTEM } from "./config.mjs"; import { VERMINE } from "./config.mjs";
import { getActorSkillScore,updateActorSkillScore } from "./functions.mjs"; import { getActorSkillScore,updateActorSkillScore } from "./functions.mjs";
import { CombatResultDialog } from "./dialogs.mjs"; import { CombatResultDialog } from "./dialogs.mjs";
export class TotemFight { export class VermineFight {
async performTest(enemyAchievement, enemyConservation, skillKey, skill, params, actor) { async performTest(enemyAchievement, enemyConservation, skillKey, skill, params, actor) {
const dicePool = (params.spleen != undefined || params.purpose != undefined) ? '5' : '4'; const dicePool = (params.spleen != undefined || params.purpose != undefined) ? '5' : '4';
@@ -32,7 +32,7 @@ export class TotemFight {
bonusText += bonus; bonusText += bonus;
let targetText = game.i18n.format('TOTEM.Selected') + ' : ' + game.i18n.format(skillKey) + " " + skill + bonusText; let targetText = game.i18n.format('VERMINE.Selected') + ' : ' + game.i18n.format(skillKey) + " " + skill + bonusText;
if (params.specialization != undefined){ if (params.specialization != undefined){
targetText += " (S)"; targetText += " (S)";
} }
@@ -41,10 +41,10 @@ export class TotemFight {
if (params.purpose != undefined){ if (params.purpose != undefined){
discardedRoll = r.terms[0].results.shift(); discardedRoll = r.terms[0].results.shift();
dicePoolHint = ' - ' + game.i18n.format('TOTEM.PurposeTrait'); dicePoolHint = ' - ' + game.i18n.format('VERMINE.PurposeTrait');
} else if (params.spleen != undefined){ } else if (params.spleen != undefined){
discardedRoll = r.terms[0].results.pop(); discardedRoll = r.terms[0].results.pop();
dicePoolHint = ' - ' + game.i18n.format('TOTEM.SpleenTrait'); dicePoolHint = ' - ' + game.i18n.format('VERMINE.SpleenTrait');
} }
const discardedRollText = (discardedRoll.result != undefined) ? '<div class="discarded-roll">' + discardedRoll.result + '</div>' : ""; const discardedRollText = (discardedRoll.result != undefined) ? '<div class="discarded-roll">' + discardedRoll.result + '</div>' : "";
@@ -53,11 +53,11 @@ export class TotemFight {
diceString += '<li class="roll die d6 die-'+ i +'">' + result + '</li>'; diceString += '<li class="roll die d6 die-'+ i +'">' + result + '</li>';
} }
let hintText = game.i18n.format('TOTEM.ConfrontationHint'); let hintText = game.i18n.format('VERMINE.ConfrontationHint');
// Build a dynamic html using the variables from above. // Build a dynamic html using the variables from above.
const html = ` const html = `
<div class="totem roll confrontation"> <div class="vermine2047 roll confrontation">
<div class="dice-roll"> <div class="dice-roll">
<div class="dice-result"> <div class="dice-result">
<div class="dice-formula"> <div class="dice-formula">
@@ -76,8 +76,8 @@ export class TotemFight {
</div>` + </div>` +
`<p class="step1-text" id="step1">` + hintText + `</p> `<p class="step1-text" id="step1">` + hintText + `</p>
<div class="row"> <div class="row">
<a class="inline-block button add-to-achievement">` + game.i18n.format('TOTEM.Achievement') + `</a> <a class="inline-block button add-to-achievement">` + game.i18n.format('VERMINE.Achievement') + `</a>
<a class="inline-block button add-to-conservation">` + game.i18n.format('TOTEM.Conservation') + `</a> <a class="inline-block button add-to-conservation">` + game.i18n.format('VERMINE.Conservation') + `</a>
<a class="inline-block button reset"><i class="fa-solid fa-rotate-right"></i></a> <a class="inline-block button reset"><i class="fa-solid fa-rotate-right"></i></a>
<a class="inline-block button resolve"><i class="fa-solid fa-check"></i></a> <a class="inline-block button resolve"><i class="fa-solid fa-check"></i></a>
</div> </div>
@@ -119,24 +119,24 @@ export class TotemFight {
static instance = null; static instance = null;
static get() { static get() {
if (!TotemFight.instance) if (!VermineFight.instance)
TotemFight.instance = new TotemFight(); VermineFight.instance = new VermineFight();
return TotemFight.instance; return VermineFight.instance;
} }
// data injected to char data // data injected to char data
static previousValues = { static previousValues = {
dicePool: 4, dicePool: 4,
skills: TOTEM.skillsList, skills: VERMINE.skillsList,
cskills: TOTEM.cskills, cskills: VERMINE.cskills,
cephalic: false, cephalic: false,
achievementReroll: TOTEM.achievementReroll, achievementReroll: VERMINE.achievementReroll,
conservationReroll: TOTEM.conservationReroll conservationReroll: VERMINE.conservationReroll
}; };
static rollerTemplate = 'systems/totem/templates/fight.html'; static rollerTemplate = 'systems/vermine2047/templates/fight.html';
static CombatResultTemplate = 'systems/totem/templates/fight-result.html'; static CombatResultTemplate = 'systems/vermine2047/templates/fight-result.html';
static async chatMessageHandler(message, html, data) { static async chatMessageHandler(message, html, data) {
// console.log("accès au fin du fin", message._id); // console.log("accès au fin du fin", message._id);
@@ -225,15 +225,15 @@ export class TotemFight {
if (actor == null && externalData.speakerId != undefined && externalData.speakerId != null){ if (actor == null && externalData.speakerId != undefined && externalData.speakerId != null){
// on récupère le speakerId, et de là l'objet actor // on récupère le speakerId, et de là l'objet actor
actor = game.actors.get(externalData.speakerId); actor = game.actors.get(externalData.speakerId);
TotemFight.previousValues['speakerName'] = actor.name; VermineFight.previousValues['speakerName'] = actor.name;
TotemFight.previousValues['speakerImg'] = actor.img; VermineFight.previousValues['speakerImg'] = actor.img;
} else { } else {
TotemFight.previousValues['speakerName'] = "Anonyme"; VermineFight.previousValues['speakerName'] = "Anonyme";
} }
// get the data // get the data
let charData = (externalData) => { let charData = (externalData) => {
let o = Object.assign({ _template: TotemFight.rollerTemplate }, {...TotemFight.previousValues, ...externalData}); let o = Object.assign({ _template: VermineFight.rollerTemplate }, {...VermineFight.previousValues, ...externalData});
return o; return o;
}; };
let data = charData(externalData); let data = charData(externalData);
@@ -243,11 +243,11 @@ export class TotemFight {
let html = await renderTemplate(data._template, data); let html = await renderTemplate(data._template, data);
let ui = new Dialog({ let ui = new Dialog({
title: game.i18n.localize("TOTEM.FightTool"), title: game.i18n.localize("VERMINE.FightTool"),
content: html, content: html,
buttons: { buttons: {
roll: { roll: {
label: game.i18n.localize('TOTEM.Roll4Fight'), label: game.i18n.localize('VERMINE.Roll4Fight'),
callback: (html) => { callback: (html) => {
let form = html.find('#dice-pool-form'); let form = html.find('#dice-pool-form');
if (!form[0].checkValidity()) { if (!form[0].checkValidity()) {
@@ -298,7 +298,7 @@ export class TotemFight {
updateActorSkillScore(actor, skillKey, 'spent', newSpentScore); updateActorSkillScore(actor, skillKey, 'spent', newSpentScore);
} }
return TotemFight.get().performTest(enemyAchievement + enemySkill, enemyConservation + enemySkill, skillKey, skill, params, actor); return VermineFight.get().performTest(enemyAchievement + enemySkill, enemyConservation + enemySkill, skillKey, skill, params, actor);
} }
}, },
cancel: { cancel: {
@@ -321,7 +321,7 @@ export class TotemFight {
} }
} }
export class TotemCombat extends Combat { export class VermineCombat extends Combat {
_encounterCheck(){ _encounterCheck(){
console.log('encounter combat object', this); console.log('encounter combat object', this);
} }
@@ -365,7 +365,7 @@ export class TotemCombat extends Combat {
}); });
if (combatant.type != 'character'){ if (combatant.type != 'character'){
let warningDialogHTML = await renderTemplate('systems/totem/templates/dialogs/warning.html', { let warningDialogHTML = await renderTemplate('systems/vermine2047/templates/dialogs/warning.html', {
warningText: "Seuls les PJs peuvent initier des confrontations. Relancer l'opération au tour du PJ actif." warningText: "Seuls les PJs peuvent initier des confrontations. Relancer l'opération au tour du PJ actif."
}); });
Dialog.prompt({ Dialog.prompt({
@@ -379,7 +379,7 @@ export class TotemCombat extends Combat {
} else { } else {
// étape 2 : on envoie les infos // étape 2 : on envoie les infos
let fightingActor = game.actors.get(combatant.actorId); let fightingActor = game.actors.get(combatant.actorId);
TotemFight.ui({ VermineFight.ui({
speakerId: combatant.actorId, speakerId: combatant.actorId,
speakerWeapons: fightingActor.items.filter(item => item.type == 'weapon'), speakerWeapons: fightingActor.items.filter(item => item.type == 'weapon'),
speakerExperience:fightingActor.system.attributes.experience.value, speakerExperience:fightingActor.system.attributes.experience.value,
+8 -8
View File
@@ -1,7 +1,7 @@
import { TOTEM } from './config.mjs' import { VERMINE } from './config.mjs'
/** /**
* renvoie le score d'une compétence d'un actor existant * renvoie le score d'une compétence d'un actor existant
* @param {TotemActor} * @param {VermineActor}
* @return {number||null} Data for rendering or null * @return {number||null} Data for rendering or null
*/ */
export function getActorSkillScore(actor, skillLabel, property = "value") { export function getActorSkillScore(actor, skillLabel, property = "value") {
@@ -27,15 +27,15 @@ export function getActorSkillScore(actor, skillLabel, property = "value") {
/** /**
* renvoie le type d'une compétence * renvoie le type d'une compétence
* @param {TotemActor} * @param {VermineActor}
* @return {string||null} Data for rendering or null * @return {string||null} Data for rendering or null
*/ */
export function getSkillTypeFromLabel(skillLabel) { export function getSkillTypeFromLabel(skillLabel) {
let returnedValue = null; let returnedValue = null;
for(let i in TOTEM.skills){ for(let i in VERMINE.skills){
for(let j in TOTEM.skills[i].data){ for(let j in VERMINE.skills[i].data){
if (TOTEM.skills[i].data[j].label == skillLabel){ if (VERMINE.skills[i].data[j].label == skillLabel){
returnedValue = j; returnedValue = j;
} }
} }
@@ -46,7 +46,7 @@ export function getSkillTypeFromLabel(skillLabel) {
/** /**
* met à jour le score d'une compétence d'un actor existant * met à jour le score d'une compétence d'un actor existant
* @param {TotemActor} * @param {VermineActor}
* @return {boolean} bool * @return {boolean} bool
*/ */
export function updateActorSkillScore(selectedActor, skillLabel, property = "value", updatedValue) { export function updateActorSkillScore(selectedActor, skillLabel, property = "value", updatedValue) {
@@ -84,7 +84,7 @@ export function updateActorSkillScore(selectedActor, skillLabel, property = "val
/** /**
* réinitialise toutes les dépenses d'usure * réinitialise toutes les dépenses d'usure
* @param {TotemActor} * @param {VermineActor}
* @return {boolean} bool * @return {boolean} bool
*/ */
export function resetActorSkillUsure(selectedActor) { export function resetActorSkillUsure(selectedActor) {
+13 -13
View File
@@ -8,21 +8,21 @@
// Actor partials. // Actor partials.
"systems/totem/templates/actor/parts/actor-spells.html", "systems/vermine2047/templates/actor/parts/actor-spells.html",
"systems/totem/templates/actor/parts/actor-features.html", "systems/vermine2047/templates/actor/parts/actor-features.html",
"systems/totem/templates/actor/parts/actor-spells.html", "systems/vermine2047/templates/actor/parts/actor-spells.html",
"systems/totem/templates/actor/parts/actor-id.hbs", "systems/vermine2047/templates/actor/parts/actor-id.hbs",
"systems/totem/templates/actor/parts/actor-totem.hbs", "systems/vermine2047/templates/actor/parts/actor-totem.hbs",
"systems/totem/templates/actor/parts/character-features.hbs", "systems/vermine2047/templates/actor/parts/character-features.hbs",
"systems/totem/templates/actor/parts/character-header.hbs", "systems/vermine2047/templates/actor/parts/character-header.hbs",
"systems/totem/templates/actor/parts/actor-items.html", "systems/vermine2047/templates/actor/parts/actor-items.html",
"systems/totem/templates/actor/parts/actor-weapons.hbs", "systems/vermine2047/templates/actor/parts/actor-weapons.hbs",
"systems/totem/templates/actor/parts/actor-defenses.hbs", "systems/vermine2047/templates/actor/parts/actor-defenses.hbs",
"systems/totem/templates/actor/parts/actor-stories.hbs", "systems/vermine2047/templates/actor/parts/actor-stories.hbs",
"systems/totem/templates/actor/parts/actor-effects.html", "systems/vermine2047/templates/actor/parts/actor-effects.html",
// additional templates // additional templates
"systems/totem/templates/roll.hbs", "systems/vermine2047/templates/roll.hbs",
]); ]);
}; };
+11 -11
View File
@@ -5,19 +5,19 @@ export const registerHooks = function () {
*/ */
Hooks.once("ready", async () => { Hooks.once("ready", async () => {
console.info("Totem | System Initialized."); console.info("Vermine 2047 | System Initialized.");
}); });
// changement de la pause // changement de la pause
/*Hooks.on("renderPause", async function () { /*Hooks.on("renderPause", async function () {
if ($("#pause").attr("class") !== "paused") return; if ($("#pause").attr("class") !== "paused") return;
$(".paused img").attr("src", 'systems/totem/assets/images/ui/vermine_pause.webp'); $(".paused img").attr("src", 'systems/vermine2047/assets/images/ui/vermine_pause.webp');
$(".paused img").css({ "opacity": 1}); $(".paused img").css({ "opacity": 1});
$("#pause.paused figcaption").text("Communauté endormie..."); $("#pause.paused figcaption").text("Communauté endormie...");
});*/ });*/
// Hooks.on('renderChatLog', (log, html, data) => TotemFight.chatListeners(html)); // Hooks.on('renderChatLog', (log, html, data) => VermineFight.chatListeners(html));
// Hooks.on('renderChatMessage', (message, html, data) => TotemFight.chatMessageHandler(message, html, data)); // Hooks.on('renderChatMessage', (message, html, data) => VermineFight.chatMessageHandler(message, html, data));
/** /**
* Create a macro when dropping an entity on the hotbar * Create a macro when dropping an entity on the hotbar
@@ -35,11 +35,11 @@ export const registerHooks = function () {
Hooks.on('getSceneControlButtons', (controls) => { Hooks.on('getSceneControlButtons', (controls) => {
/*controls.find((c) => c.name === 'token').tools.push({ /*controls.find((c) => c.name === 'token').tools.push({
name: 'Dice Roller', name: 'Dice Roller',
title: game.i18n.localize("TOTEM.RollTool"), title: game.i18n.localize("VERMINE.RollTool"),
icon: 'fas fa-dice-d6', icon: 'fas fa-dice-d6',
button: true, button: true,
onClick() { onClick() {
TotemRoll.ui(); VermineRoll.ui();
} }
});*/ });*/
}); });
@@ -51,15 +51,15 @@ export const registerHooks = function () {
Hooks.on("preCreateActor", function (actor) { Hooks.on("preCreateActor", function (actor) {
// console.log('pre create actor', actor); // console.log('pre create actor', actor);
if (actor.img == "icons/svg/mystery-man.svg") { if (actor.img == "icons/svg/mystery-man.svg") {
// actor.updateSource({"img": `systems/totem/icons/actors/${actor.type}.webp`}); // actor.updateSource({"img": `systems/vermine2047/icons/actors/${actor.type}.webp`});
// item.updateSource({"img": `systems/totem/icons/competence.webp`}); // item.updateSource({"img": `systems/vermine2047/icons/competence.webp`});
} }
}); });
Hooks.on("preCreateItem", function (item) { Hooks.on("preCreateItem", function (item) {
if (item.img == "icons/svg/item-bag.svg") { if (item.img == "icons/svg/item-bag.svg") {
item.updateSource({"img": `systems/totem/icons/items/${item.type}.webp`}); item.updateSource({"img": `systems/vermine2047/icons/items/${item.type}.webp`});
// item.updateSource({"img": `systems/totem/icons/competence.webp`}); // item.updateSource({"img": `systems/vermine2047/icons/competence.webp`});
} }
}); });
@@ -98,7 +98,7 @@ export const registerHooks = function () {
}, },
shouldDisplayToChat: false, shouldDisplayToChat: false,
iconClass: "fa-dice-d6", iconClass: "fa-dice-d6",
description: "Roll Totem check" description: "Roll Vermine 2047 check"
})); }));
});*/ });*/
+1 -1
View File
@@ -1,4 +1,4 @@
export class TotemRoll { export class VermineRoll {
static roll(actorId, label, NoD, Reroll = 0, params = {}){ static roll(actorId, label, NoD, Reroll = 0, params = {}){
const actor = game.actors.get(actorId); const actor = game.actors.get(actorId);
+3 -3
View File
@@ -1,7 +1,7 @@
export const registerSettings = function () { export const registerSettings = function () {
game.settings.register("totem", "game-mode", { game.settings.register("vermine2047", "game-mode", {
name: game.i18n.localize("TOTEM.WorldSettings.GameMode.Name"), name: game.i18n.localize("VERMINE.WorldSettings.GameMode.Name"),
hint: game.i18n.localize("TOTEM.WorldSettings.GameMode.Hint"), hint: game.i18n.localize("VERMINE.WorldSettings.GameMode.Hint"),
scope: "system", scope: "system",
config: true, config: true,
type: String, type: String,
+21 -21
View File
@@ -2,21 +2,21 @@ import { registerHooks } from "./system/hooks.mjs";
import { registerSettings } from "./system/settings.mjs"; import { registerSettings } from "./system/settings.mjs";
// Import document classes. // Import document classes.
import { TotemActor } from "./documents/actor.mjs"; import { VermineActor } from "./documents/actor.mjs";
import { TotemCharacterSheet } from "./sheets/character-sheet.mjs"; import { VermineCharacterSheet } from "./sheets/character-sheet.mjs";
import { TotemNpcSheet } from "./sheets/npc-sheet.mjs"; import { VermineNpcSheet } from "./sheets/npc-sheet.mjs";
import { TotemCreatureSheet } from "./sheets/creature-sheet.mjs"; import { VermineCreatureSheet } from "./sheets/creature-sheet.mjs";
import { TotemItem } from "./documents/item.mjs"; import { VermineItem } from "./documents/item.mjs";
import { TotemItemSheet } from "./sheets/item-sheet.mjs"; import { VermineItemSheet } from "./sheets/item-sheet.mjs";
import { TotemRoll } from "./system/roll.mjs"; import { VermineRoll } from "./system/roll.mjs";
import { TotemCombat } from "./system/fight.mjs"; import { VermineCombat } from "./system/fight.mjs";
// Import helper/utility classes and constants. // Import helper/utility classes and constants.
import { preloadHandlebarsTemplates, registerHandlebarsHelpers } from "./system/handlebars-manager.mjs"; import { preloadHandlebarsTemplates, registerHandlebarsHelpers } from "./system/handlebars-manager.mjs";
import { TOTEM } from "./system/config.mjs"; import { VERMINE } from "./system/config.mjs";
/* -------------------------------------------- */ /* -------------------------------------------- */
/* Init Hook */ /* Init Hook */
@@ -26,15 +26,15 @@ Hooks.once('init', async function() {
// Add utility classes to the global game object so that they're more easily // Add utility classes to the global game object so that they're more easily
// accessible in global contexts. // accessible in global contexts.
game.totem = { game.vermine2047 = {
TotemActor, VermineActor,
TotemItem, VermineItem,
TotemRoll, VermineRoll,
TotemCombat VermineCombat
}; };
// Add custom constants for configuration. // Add custom constants for configuration.
CONFIG.TOTEM = TOTEM; CONFIG.VERMINE = VERMINE;
/** /**
* Set an initiative formula for the system * Set an initiative formula for the system
@@ -46,27 +46,27 @@ Hooks.once('init', async function() {
}; };
// Define custom Document classes // Define custom Document classes
CONFIG.Actor.documentClass = TotemActor; CONFIG.Actor.documentClass = VermineActor;
CONFIG.Item.documentClass = TotemItem; CONFIG.Item.documentClass = VermineItem;
// Register sheet application classes // Register sheet application classes
Actors.unregisterSheet("core", ActorSheet); Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet('totem', TotemCharacterSheet, { Actors.registerSheet('vermine2047', VermineCharacterSheet, {
types: ['character'], types: ['character'],
makeDefault: true, makeDefault: true,
}); });
Actors.registerSheet('totem', TotemNpcSheet, { Actors.registerSheet('vermine2047', VermineNpcSheet, {
types: ['npc'], types: ['npc'],
makeDefault: true, makeDefault: true,
}); });
Actors.registerSheet('totem', TotemCreatureSheet, { Actors.registerSheet('vermine2047', VermineCreatureSheet, {
types: ['creature'], types: ['creature'],
makeDefault: true, makeDefault: true,
}); // Register vehicle Sheet }); // Register vehicle Sheet
Items.unregisterSheet("core", ItemSheet); Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("totem", TotemItemSheet, { makeDefault: true }); Items.registerSheet("vermine2047", VermineItemSheet, { makeDefault: true });
registerHandlebarsHelpers(); // Register Handlebars helpers registerHandlebarsHelpers(); // Register Handlebars helpers
registerHooks(); // register Hooks registerHooks(); // register Hooks
-9171
View File
File diff suppressed because it is too large Load Diff
-24
View File
@@ -1,24 +0,0 @@
{
"name": "totem",
"version": "1.0.0",
"description": "CSS compiler for the Totem system",
"scripts": {
"build": "gulp build",
"compile": "gulp css",
"watch": "gulp",
"gulp": "gulp"
},
"browserslist": [
"last 3 versions"
],
"author": "John Doe",
"license": "MIT",
"private": true,
"devDependencies": {
"gulp": "^4.0.2",
"gulp-autoprefixer": "^8.0.0",
"gulp-sass": "^5.1.0",
"gulp-sourcemaps": "^3.0.0",
"sass": "^1.53.0"
}
}
+9 -9
View File
@@ -1,8 +1,8 @@
{ {
"id": "totem", "id": "vermine2047",
"title": "Totem", "title": "Vermine 2047",
"description": "The Totem system for FoundryVTT!", "description": "The Vermine 2047 system for FoundryVTT!",
"version": "0.0.11", "version": "0.0.12",
"compatibility": { "compatibility": {
"minimum": 10, "minimum": 10,
"verified": "10.287", "verified": "10.287",
@@ -11,8 +11,8 @@
"authors": [{ "authors": [{
"name": "François-Xavier Guillois" "name": "François-Xavier Guillois"
}], }],
"esmodules": ["module/totem.mjs"], "esmodules": ["module/vermine2047.mjs"],
"styles": ["css/style.css", "css/totem.css"], "styles": ["css/style.css", "css/vermine2047.css"],
"scripts": [], "scripts": [],
"packs": [], "packs": [],
"languages": [ "languages": [
@@ -26,9 +26,9 @@
"gridUnits": "ft", "gridUnits": "ft",
"primaryTokenAttribute": "health", "primaryTokenAttribute": "health",
"secondaryTokenAttribute": "power", "secondaryTokenAttribute": "power",
"url": "https://gitlab.com/init-status/fvtt_systems/totem", "url": "https://gitlab.com/init-status/fvtt_systems/vermine2047",
"manifest": "https://gitlab.com/init-status/fvtt_systems/totem/-/raw/main/system.json", "manifest": "https://gitlab.com/init-status/fvtt_systems/vermine2047/-/raw/main/system.json",
"download": "https://gitlab.com/api/v4/projects/44983384/repository/archive.zip", "download": "https://gitlab.com/api/v4/projects/46618912/repository/archive.zip",
"license": "LICENSE.txt", "license": "LICENSE.txt",
"changelog": "CHANGELOG.md" "changelog": "CHANGELOG.md"
} }
+1 -1
View File
@@ -25,7 +25,7 @@
"identity": { "identity": {
"height": 0, "height": 0,
"weight": 0, "weight": 0,
"totem": "", "vermine2047": "",
"age": 15, "age": 15,
"profile": "", "profile": "",
"origin": "", "origin": "",
+16 -16
View File
@@ -1,38 +1,38 @@
<form class="{{cssClass}} {{actor.type}} flexcol" autocomplete="off"> <form class="{{cssClass}} {{actor.type}} flexcol" autocomplete="off">
<div class="form"> <div class="form">
<aside> <aside>
<img class="logo mx-auto" src="systems/totem/assets/images/ui/logo.webp" width="200" alt="logo Vermine" /> <img class="logo mx-auto" src="systems/vermine2047/assets/images/ui/logo.webp" width="200" alt="logo Vermine" />
<div class="sidebar" data-group="dashboard" data-tab="sidebar"> <div class="sidebar" data-group="dashboard" data-tab="sidebar">
<!--ID --> <!--ID -->
{{> "systems/totem/templates/actor/parts/actor-id.hbs"}} {{> "systems/vermine2047/templates/actor/parts/actor-id.hbs"}}
</div> </div>
</aside> </aside>
<main> <main>
<!-- HEADER --> <!-- HEADER -->
{{> "systems/totem/templates/actor/parts/character-header.hbs"}} {{> "systems/vermine2047/templates/actor/parts/character-header.hbs"}}
<!-- SHEET NAVIGATION --> <!-- SHEET NAVIGATION -->
<nav class="sheet-navigation sheet-tabs tabs flex-group-end" data-group="primary"> <nav class="sheet-navigation sheet-tabs tabs flex-group-end" data-group="primary">
<a class="item" data-tab="character" title="{{localize "TOTEM.tab_character_label"}}"> <a class="item" data-tab="character" title="{{localize "VERMINE.tab_character_label"}}">
<i class="fas fa-address-card"></i> <i class="fas fa-address-card"></i>
</a> </a>
<a class="item" data-tab="totem" title="{{localize "TOTEM.tab_instincts_label"}}"> <a class="item" data-tab="vermine2047" title="{{localize "VERMINE.tab_instincts_label"}}">
<i class="fas fa-star"></i> <i class="fas fa-star"></i>
</a> </a>
<a class="item" data-tab="equipment" title="{{localize "TOTEM.tab_equipment_label"}}"> <a class="item" data-tab="equipment" title="{{localize "VERMINE.tab_equipment_label"}}">
<i class="fas fa-hammer"></i> <i class="fas fa-hammer"></i>
</a> </a>
<a class="item" data-tab="stories" title="{{localize "TOTEM.tab_stories_label"}}"> <a class="item" data-tab="stories" title="{{localize "VERMINE.tab_stories_label"}}">
<i class="fas fa-hand-paper"></i> <i class="fas fa-hand-paper"></i>
</a> </a>
<a class="item" data-tab="combat" title="{{localize "TOTEM.tab_combat_label"}}"> <a class="item" data-tab="combat" title="{{localize "VERMINE.tab_combat_label"}}">
<i class="fas fa-medal"></i> <i class="fas fa-medal"></i>
</a> </a>
<!--a class="manage-tabs" data-action="manage-tabs" title="{{localize "TOTEM.tab_options"}}"> <!--a class="manage-tabs" data-action="manage-tabs" title="{{localize "VERMINE.tab_options"}}">
<i class="fas fa-fw fa-ellipsis-v"></i> <i class="fas fa-fw fa-ellipsis-v"></i>
</a--> </a-->
</nav> </nav>
@@ -42,26 +42,26 @@
<section class="sheet-content"> <section class="sheet-content">
<div class="tab character character-pane active" data-group="primary" data-tab="character"> <div class="tab character character-pane active" data-group="primary" data-tab="character">
<!-- Character --> <!-- Character -->
{{> "systems/totem/templates/actor/parts/character-features.hbs"}} {{> "systems/vermine2047/templates/actor/parts/character-features.hbs"}}
</div> </div>
<div class="tab totem" data-group="primary" data-tab="totem"> <div class="tab vermine2047" data-group="primary" data-tab="totem">
<h3>Totem</h3> <h3>Vermine 2047</h3>
{{> "systems/totem/templates/actor/parts/actor-totem.hbs"}} {{> "systems/vermine2047/templates/actor/parts/actor-totem.hbs"}}
</div> </div>
<div class="tab equipment" data-group="primary" data-tab="equipment"> <div class="tab equipment" data-group="primary" data-tab="equipment">
<h3>Equipement</h3> <h3>Equipement</h3>
<!-- Rituals --> <!-- Rituals -->
{{> "systems/totem/templates/actor/parts/actor-items.html"}} {{> "systems/vermine2047/templates/actor/parts/actor-items.html"}}
</div> </div>
<div class="tab combat" data-group="primary" data-tab="combat"> <div class="tab combat" data-group="primary" data-tab="combat">
<h3>Combat</h3> <h3>Combat</h3>
<!-- effects --> <!-- effects -->
{{> "systems/totem/templates/actor/parts/actor-effects.html"}} {{> "systems/vermine2047/templates/actor/parts/actor-effects.html"}}
</div> </div>
<div class="tab stories" data-group="primary" data-tab="stories"> <div class="tab stories" data-group="primary" data-tab="stories">
<h3>Histoire</h3> <h3>Histoire</h3>
{{> "systems/totem/templates/actor/parts/actor-stories.hbs"}} {{> "systems/vermine2047/templates/actor/parts/actor-stories.hbs"}}
</div> </div>
</section> </section>
+2 -2
View File
@@ -63,12 +63,12 @@
{{!-- Owned Items Tab --}} {{!-- Owned Items Tab --}}
<div class="tab items" data-group="primary" data-tab="items"> <div class="tab items" data-group="primary" data-tab="items">
{{> "systems/totem/templates/actor/parts/actor-items.html"}} {{> "systems/vermine2047/templates/actor/parts/actor-items.html"}}
</div> </div>
{{!-- Active Effects Tab --}} {{!-- Active Effects Tab --}}
<div class="tab effects flexcol" data-group="primary" data-tab="effects"> <div class="tab effects flexcol" data-group="primary" data-tab="effects">
{{> "systems/totem/templates/actor/parts/actor-effects.html"}} {{> "systems/vermine2047/templates/actor/parts/actor-effects.html"}}
</div> </div>
</section> </section>

Some files were not shown because too many files have changed in this diff Show More