copy from gods

This commit is contained in:
François-Xavier Guillois
2023-05-30 15:01:27 +02:00
parent d8ab796808
commit cb71f649f1
15 changed files with 793 additions and 304 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

+322 -6
View File
@@ -14,22 +14,338 @@
/* custom styles */
body.system-totem img#logo {
content: url("/systems/totem/assets/images/ui/logo_totem_foundry.webp");
content: url("/systems/totem/assets/images/ui/logo_gods_foundry.webp");
height:auto;
}
/* Customize the chat roll area! */
#chat-form textarea {
/*background: url(systems/totem/assets/images/ui/box_background.png) repeat;
font-family: monospace;
background: url(/systems/totem/assets/images/ui/box_background.webp) repeat;
/*font-family: monospace;
font-size: 14px;
color: black; */
}
/* Customize the chat history area! */
#chat-log .message {
/*background: url(systems/totem/assets/images/ui/box_background.png) repeat;
color: #191813; */
background: url(/systems/totem/assets/images/ui/box_background.webp) repeat;
/*color: #191813; */
}
img {
border:none;
}
ul.unstyled {
list-style-type: none;
padding:0;
margin:0;
}
ul.unstyled li {
padding:0;
margin:0;
}
.padding-with-frieze {
margin: 0 23% !important;
}
.padding-with-frieze li {
max-width:100%;
}
.w-full {
width:100%;
}
/* ----------------------------------------- */
/* Sheet Structure */
/* ----------------------------------------- */
.system-totem .window-content {
background: url(/systems/totem/assets/images/ui/box_background.webp);
padding: 0;
overflow-y: hidden;
}
.actor.sheet form .form {
display: grid;
/*grid:
"sidebar header" 75px
"sidebar nav" minmax(min-content, max-content)
"sidebar content" 1fr/230px 1fr;*/
grid-template-columns: minmax(230px,1fr) 3fr;
grid-template-rows: 1fr;
align-items: flex-start;
height: 100%;
}
.actor.sheet .form aside {
display: flex;
grid-row: span 1 / span 1;
flex-direction: column;
justify-content: space-between;
align-items: center;
background-image: url(/systems/totem/assets/images/ui/barre_lateral.webp);
background-repeat: no-repeat;
background-position: bottom center;
height: 100%;
}
.actor.sheet .form main {
grid-row: span 1 / span 1;
}
.system-totem .char-header {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
flex: 0 0 100%;
height: 102px;
}
.system-totem .char-level {
background: url(/systems/totem/assets/images/ui/gods_navig_top.webp);
height: 56px;
background-size: cover;
width: 100%;
display:flex;
justify-content: space-around;
align-items: flex-end;
}
.system-totem .sheet.actor .sheet-body {
height: calc(100% - 35px);
overflow: hidden;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
}
.system-totem .sheet.actor form {
width: 100%;
height: 100%;
overflow: hidden;
}
.system-totem .sheet.actor form input[type=text], .system-totem .sheet.actor form input[type=number] {
width: calc(100% - 2px);
height: calc(100% - 2px);
background: none;
padding: 0;
margin: 1px 0;
color: #333;
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 {
border: 1px solid black;
box-shadow: 0 0 10px #00005a;
}
.system-totem .sheet.actor form select {
font-size: var(--font-size-10);
height: 18px;
background: rgba(255, 255, 255, 0.5);
}
.system-totem .sheet.actor form label {
display: block;
}
.system-totem .sheet.actor form .mce-panel span {
display: inherit;
}
.system-totem .sheet.actor form.editable .rollable:hover {
color: #000;
text-shadow: 0 0 10px #00005a;
cursor: pointer;
}
.system-totem .sheet.actor form .sheet-tabs {
font-weight: 500;
height: 30px;
}
.system-totem .sheet.actor form .sheet-tabs > .list-row {
line-height: 24px;
padding-top: 3px;
font-size: var(--font-size-12);
text-align: center;
}
.system-totem .sheet.actor form .sheet-tabs > .list-row:last-of-type {
padding-right: 4px;
}
.system-totem .sheet.actor form .sheet-tabs > .list-row.active {
color: #000;
font-weight: 700;
}
.system-totem .sheet.actor form .tab {
flex: 1;
overflow: hidden;
}
.system-totem .sheet.actor form .tag-legacy {
float: left;
margin: 0 2px 2px 0;
padding: 0 3px;
font-size: var(--font-size-10);
line-height: 16px;
border: 1px solid #999;
border-radius: 3px;
white-space: normal;
font-weight: 500;
}
/* ---------------------------------------- */
/* Actor Sheet */
/* ---------------------------------------- */
.system-totem .sheet.actor {
min-width: 650px;
min-height: 450px;
}
.system-totem .sheet.actor .sidebar {
width: 230px;
min-height:518px;
}
.system-totem .sheet.actor .floatright {
float: right;
}
.system-totem .sheet.actor .sheet-upper {
height: 268px;
}
.system-totem .sheet.actor .sheet-upper .sheet-header {
height: 48px;
}
.system-totem .sheet.actor .sheet-upper .sheet-profile, .system-totem .sheet.actor .sheet-upper .sheet-showcase {
height: 220px;
}
.system-totem .sheet.actor .sheet-content {
padding:4px;
}
.system-totem .sheet.actor .sheet-sidebar {
height: calc(100% - 48px);
display: flex;
flex-direction: column;
flex-wrap: nowrap;
overflow-x: hidden;
overflow-y: auto;
}
.system-totem .sheet.actor .sheet-sidebar > * {
flex: 1;
}
.system-totem .sheet.actor .sheet-sidebar .sidebar-summary {
overflow-y: hidden;
}
.system-totem .sheet.actor.npc-sheet .sheet-upper {
height: 220px;
}
.system-totem .sheet.actor.npc-sheet .sheet-upper .sheet-showcase {
height: 172px;
}
.system-totem .sheet.actor.npc-sheet .sheet-lower {
height: calc(100% - 220px - 32px);
}
.system-totem .sheet.actor.npc-sheet section.sheet-body {
height: calc(100% - 48px);
}
.system-totem .sheet.actor .sheet-navigation {
border-top: 1px solid var(--secondary-background);
border-bottom: 1px solid var(--primary-background);
}
.system-totem .sheet.actor .sheet-navigation .sheet-tabs > .list-row {
border-radius: 5px 5px 0 0;
}
.system-totem .sheet.actor .sheet-navigation .sheet-tabs > .list-row.active {
border: 1px solid #666;
border-bottom: none;
/* box-shadow: 0 0 10px inset #ff6400;
*/
background: var(--primary-background);
color: #fff;
text-shadow: none;
}
.system-totem .sheet.actor .sheet-header {
border-bottom: 1px solid var(--primary-background);
}
.system-totem .sheet.actor .sheet-header h1 {
margin: 0;
border: none;
}
.system-totem .sheet.actor .sheet-header h1.charname {
flex-basis: 50%;
}
.system-totem .sheet.actor .sheet-header .editsheet {
flex: 3;
font-size: 0.625rem;
text-align: center;
margin-top: 3px;
}
.system-totem .sheet.actor .sheet-header .charlevel {
flex: 0 0 150px;
display: flex;
align-items: center;
text-align: right;
}
.system-totem .sheet.actor .sheet-header .charlevel > * {
flex: 1;
}
.system-totem .sheet.actor .sheet-header .charlevel .level {
font-family: var(--serif-condensed);
font-weight: 700;
align-items: center;
color: #444;
display: flex;
justify-content: end;
}
.system-totem .sheet.actor .sheet-header .charlevel .level input {
flex-basis: 1.5rem;
margin-left: 0.1em;
text-align: center;
}
.system-totem .sheet.actor .sheet-header .charlevel .xpbar {
width: 100%;
flex: 0 0 8px;
background: #666;
border: 1px solid #000;
border-radius: 3px;
}
.system-totem .sheet.actor .sheet-header .charlevel .xpbar .bar {
height: 4px;
margin: 1px;
display: block;
background: #afebff;
border: 1px solid #000;
border-radius: 2px;
}
.system-totem .sheet.actor .sheet-header .charlevel .experience {
flex: 0 0 16px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
justify-content: flex-end;
}
.system-totem .sheet.actor .sheet-header .charlevel .experience > * {
flex: 1;
}
.system-totem .sheet.actor .sheet-header .charlevel .experience > input[type=text], .system-totem .sheet.actor .sheet-header .charlevel .experience > input[type=number] {
flex: 1;
text-align: right;
height: 16px;
}
.actor.sheet nav.sheet-navigation {
display: inline-flex;
justify-content: flex-end;
align-items: center;
height: 30px;
background: var(--secondary);
background: url(../assets/sheet/border-pattern.webp) repeat-x top, url(../assets/sheet/border-pattern.webp) repeat-x bottom, var(--secondary);
transition: all 0.1s ease-out;
box-shadow: 0 -1px 1px rgb(0 0 0 / 25%);
border-top: 1px solid rgba(255, 255, 255, 0.1);
border-bottom: 1px solid rgba(255, 255, 255, 0.5);
width:95%;
position: relative;
}
.actor.sheet nav.sheet-navigation .item {
height: 24px;
width: 24px;
border-radius: 50%;
z-index: 1;
transition: all 0.1s ease-out;
}
+120 -63
View File
@@ -1,11 +1,17 @@
{
"TOTEM.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.",
"GAME_MODES": {
"heroic": { "name": "Héroique"},
"epic": { "name": "Epique"},
"legendary": { "name": "Légendaire"}
},
"TOTEM.roll_tool": "Lanceur de dés",
"TOTEM.roll_dice": "Jeter les dés",
"TOTEM.level": "Niveau",
"TOTEM.experience": "Expérience",
"TOTEM.reputation": "Réputation",
"TOTEM.pool": "Réserve",
"TOTEM.pools": "Réserves",
"TOTEM.self_control": "Sang-Froid",
@@ -20,19 +26,22 @@
"TOTEM.penalty":"Malus",
"TOTEM.reroll":"Relance",
"TOTEM.specialty":"Spécialité",
"TOTEM.technique":"Technique",
"TOTEM.techniques":"Techniques",
"TOTEM.difficulty":"Difficulté",
"TOTEM.help":"Entraide",
"TOTEM.tooling":"Matériel",
"TOTEM.tooling":"Equipement",
"TOTEM.vigor_ability":"Vigueur",
"TOTEM.health_ability":"Santé",
"TOTEM.precision_ability":"Précision",
"TOTEM.reflexes_ability":"Réflexes",
"TOTEM.knowledge_ability":"Savoir",
"TOTEM.perception_ability":"Perception",
"TOTEM.will_ability":"Volonté",
"TOTEM.empathy_ability":"Empathie",
"ABILITIES": {
"strength": { "name": "Puissance"},
"constitution": { "name": "Résistance"},
"precision":{ "name": "Précision"},
"reflexes":{ "name": "Réflexes"},
"knowledge":{ "name": "Connaissance"},
"perception":{ "name": "Perception"},
"will":{ "name": "Volonté"},
"empathy":{ "name": "Empathie"}
},
"TOTEM.effect_treate": "Create Effect",
"TOTEM.effect_toggle": "Toggle Effect",
@@ -47,56 +56,104 @@
"TOTEM.skill_level.master": "Maître",
"TOTEM.skill_level.legend": "Légende",
"TOTEM.totems.human": "l'Humain",
"TOTEM.totems.scavenger": "le Prédateur",
"TOTEM.totems.symbiote": "le Symbiote",
"TOTEM.totems.parasite": "le Parasite",
"TOTEM.totems.builder": "le Bâtisseur",
"TOTEM.totems.horde": "la Horde",
"TOTEM.totems.hive": "la Ruche",
"TOTEM.totems.solitary": "le Solitaire",
"TOTEM.totems.adapted": "l'Adapté",
"TOTEM.ability_category.physical": "Physiques",
"TOTEM.ability_category.manual": "Manuelles",
"TOTEM.ability_category.mental": "Mentales",
"TOTEM.ability_category.social": "Sociales",
"TOTEM.skill_category.man": "L'Homme",
"TOTEM.skill_category.animal": "L'Animal",
"TOTEM.skill_category.machine": "La Machine",
"TOTEM.skill_category.weapon": "L'Arme",
"TOTEM.skill_category.survival": "La Survie",
"TOTEM.skill_category.earth": "La Terre",
"TOTEM.skills.arts":"Arts",
"TOTEM.skills.civilization":"Civilisation",
"TOTEM.skills.psychology":"Psychologie",
"TOTEM.skills.rumors":"Rumeurs",
"TOTEM.skills.healing":"Soins",
"TOTEM.skills.animalism":"Animalisme",
"TOTEM.skills.dissection":"Dissection",
"TOTEM.skills.wildlife":"Faune",
"TOTEM.skills.repulsion":"Répulsion",
"TOTEM.skills.tracks":"Traces",
"TOTEM.skills.crafting":"Artisanat",
"TOTEM.skills.diy":"Bricolage",
"TOTEM.skills.mecanical":"Mécanique",
"TOTEM.skills.driving":"Pilotage",
"TOTEM.skills.technology":"Technologie",
"TOTEM.skills.firearms":"Armes à feu",
"TOTEM.skills.archery":"Armes de tir",
"TOTEM.skills.armory":"Armurerie",
"TOTEM.skills.throwing":"Armes de jet",
"TOTEM.skills.melee":"Mêlée",
"TOTEM.skills.feed":"Alimentation",
"TOTEM.skills.atletics":"Atlétisme",
"TOTEM.skills.brawling":"Corps à corps",
"TOTEM.skills.stealth":"Furtivité",
"TOTEM.skills.alertness":"Vigilance",
"TOTEM.skills.environment":"Environnement",
"TOTEM.skills.flora":"Flote",
"TOTEM.skills.road":"Route",
"TOTEM.skills.toxics":"Toxiques",
"TOTEM.skills.remains":"Vestiges"
"INSTINCTS": {
"architect": { "name": "L'Architecte"},
"sword": { "name": "L'épée"},
"flail": { "name": "Le fléau"},
"man": { "name": "L'Homme"},
"keeper": { "name": "Le Gardien"},
"hand": { "name": "La Main"},
"mask": { "name": "Le Masque"},
"void": { "name": "Le Néant"},
"bone": { "name": "L'Os"},
"traveller": { "name": "Le Voyageur"}
},
"ABILITY_CATEGORIES": {
"physical": { "name": "Physique"},
"manual": { "name": "Manuel"},
"mental": { "name": "Mental"},
"social": { "name": "Social"}
},
"SKILLS_CATEGORIES": {
"man": { "name": "L'Homme" },
"animal": { "name": "L'Animal" },
"tool": { "name": "L'Outil" },
"weapon": { "name": "L'Arme" },
"survival": { "name": "Les Terres Sauvages" },
"world": { "name": "L'Inconnu" }
},
"SKILLS": {
"arts": { "name": "Arts"},
"civilization": { "name": "Civilisations"},
"psychology": { "name": "Relationnel"},
"rumors": { "name": "Cité"},
"healing": { "name": "Soins"},
"animalism": { "name": "Animalisme"},
"riding": { "name": "Monture"},
"wildlife": { "name": "Faune"},
"territory": { "name": "Territoire"},
"tracks": { "name": "Pistage"},
"crafting": { "name": "Artisanat"},
"manipulation": { "name": "Adresse"},
"mecanisms": { "name": "Mécanismes"},
"runes": { "name": "Runes"},
"armory": { "name": "Armurerie"},
"shield": { "name": "Bouclier"},
"close": { "name": "Corps-à-corps"},
"archery": { "name": "Tir"},
"throwing": { "name": "Lancer"},
"melee": { "name": "Mêlée"},
"atletics": { "name": "Atlétisme"},
"stealth": { "name": "Discrétion"},
"alertness": { "name": "Vigilance"},
"flora": { "name": "Flore"},
"road": { "name": "Voyage"},
"burst": { "name": "Eclat"},
"moons": { "name": "Lunes"},
"myths": { "name": "Mythes"},
"pantheons": { "name": "Panthéons"},
"rituals": { "name": "Rituels"}
},
"TOTEM.sexes.male":"Masculin",
"TOTEM.sexes.female":"Féminin",
"SIGNS": {
"wolf":{
"name":"Le Loup",
"description":""
},
"child":{
"name":"L'Enfant",
"description":""
},
"tree":{
"name":"L'Arbre",
"description":""
},
"specter":{
"name":"Le Spectre",
"description":""
},
"whirlwind":{
"name":"Le Tourbillon",
"description":""
},
"vulture":{
"name":"Le Vautour",
"description":""
},
"ship":{
"name":"Le Navire",
"description":""
},
"sword":{
"name":"Le Glaive",
"description":""
},
"cat":{
"name":"Le Chat",
"description":""
}
}
}
+44 -14
View File
@@ -5,24 +5,27 @@ export const TOTEM = {};
* @type {Object}
*/
TOTEM.SkillLevels = {
1:{ "label":"TOTEM.skill_level.beginner", "dicePool":1, "reroll":0},
2:{ "label":"TOTEM.skill_level.proficient", "dicePool":1, "reroll":1},
3:{ "label":"TOTEM.skill_level.expert", "dicePool":2, "reroll":1},
4:{ "label":"TOTEM.skill_level.master", "dicePool":2, "reroll":2},
5:{ "label":"TOTEM.skill_level.legend", "dicePool":3, "reroll":2},
5:{ "label":"TOTEM.skill_level.archmaster", "dicePool":3, "reroll":2},
5:{ "label":"TOTEM.skill_level.legend", "dicePool":3, "reroll":3},
}
TOTEM.TotemNumbers = {
1:{ "label":"TOTEM.totems.human", "key":"human"},
2:{ "label":"TOTEM.totems.scavenger", "key":"scavenger"},
3:{ "label":"TOTEM.totems.symbiote", "key":"symbiote"},
4:{ "label":"TOTEM.totems.parasite", "key":"parasite"},
5:{ "label":"TOTEM.totems.builder", "key":"builder"},
6:{ "label":"TOTEM.totems.horde", "key":"horde"},
7:{ "label":"TOTEM.totems.hive", "key":"hive"},
8:{ "label":"TOTEM.totems.solitary", "key":"solitary"},
9:{ "label":"TOTEM.totems.adapted", "key":"adapted"}
TOTEM.Instincts = {
1:{ "key":"architect"},
2:{ "key":"sword"},
3:{ "key":"flail"},
4:{ "key":"man"},
5:{ "key":"keeper"},
6:{ "key":"hand"},
7:{ "key":"mask"},
8:{ "key":"void"},
9:{ "key":"bone"},
0:{ "key":"traveller"}
}
@@ -49,7 +52,7 @@ TOTEM.skillCategories = {
"label":"TOTEM.skill_category.animal"
},
"tool": {
"label":"TOTEM.skill_category.machine"
"label":"TOTEM.skill_category.tool"
},
"weapon": {
"label":"TOTEM.skill_category.weapon"
@@ -58,6 +61,33 @@ TOTEM.skillCategories = {
"label":"TOTEM.skill_category.survival"
},
"world": {
"label":"TOTEM.skill_category.earth"
"label":"TOTEM.skill_category.world"
}
}
}
TOTEM.sexes = {"male": "TOTEM.sexes.male", "female": "TOTEM.sexes.female"};
TOTEM.signs = {"wolf":"SIGNS.wolf.name","child": "SIGNS.child.name" ,
"tree": "SIGNS.tree.name" ,
"specter": "SIGNS.specter.name" ,
"whirlwind": "SIGNS.whirlwind.name" ,
"vulture": "SIGNS.vulture.name" ,
"ship": "SIGNS.ship.name" ,
"sword": "SIGNS.sword.name" ,
"cat": "SIGNS.cat.name" }
TOTEM.origins = {"aon":"Aon",
"avhorae": "Avhorae" ,
"babel": "Babel",
"soleil_noir": "Empire du Soleil Noir",
"fakhar": "Fakhar",
"horde": "Horde",
"khashan": "Khashan",
"ool": "Ool",
"shattered_kingdoms": "Royaumes divisés",
"saeth": "Saeth",
"tegee": "Tégée (Thalos)",
"tuuhle": "Tuuhle",
"vaelor": "Vaelor",
"valdheim": "Valdheim"
}
+9 -16
View File
@@ -6,10 +6,15 @@
export const preloadHandlebarsTemplates = async function() {
return loadTemplates([
// Actor partials.
"systems/totem/templates/actor/parts/actor-spells.html",
"systems/totem/templates/actor/parts/actor-features.html",
// "systems/totem/templates/actor/parts/actor-skills.html",
"systems/totem/templates/actor/parts/actor-spells.html",
"systems/totem/templates/actor/parts/actor-id.hbs",
"systems/totem/templates/actor/parts/actor-instincts.hbs",
"systems/totem/templates/actor/parts/character-features.hbs",
"systems/totem/templates/actor/parts/character-header.hbs",
"systems/totem/templates/actor/parts/actor-items.html",
"systems/totem/templates/actor/parts/actor-effects.html",
@@ -27,20 +32,8 @@ export const registerHandlebarsHelpers = function () {
return str.toLowerCase();
});
// Ifis not equal
Handlebars.registerHelper('ifne', function (v1, v2, options) {
if (v1 !== v2) return options.fn(this);
else return options.inverse(this);
});
// if equal
Handlebars.registerHelper('ife', function (v1, v2, options) {
if (v1 === v2) return options.fn(this);
else return options.inverse(this);
});
// if equal
Handlebars.registerHelper('ifgt', function (v1, v2, options) {
if (v1 > v2) return options.fn(this);
else return options.inverse(this);
// search translation with variables
Handlebars.registerHelper('smarttl', function (arrayLabel,objectLabel, options) {
return game.i18n.localize(arrayLabel +"."+objectLabel+".name");
});
}
+96 -115
View File
@@ -12,89 +12,100 @@
"value": 0,
"min": 0,
"max": 2
} ,
"deadlyWound": {
"value": 0,
"min": 0,
"max": 2
},
"totem":0,
"activity": ""
"instinct":0,
"identity": {
"height": 0,
"weight": 0,
"sign": "",
"age": 15,
"origin": ""
},
"stories": {
"biography": ""
}
}
},
"character": {
"templates": ["base"],
"attributes": {
"level": {
"label":"TOTEM.level",
"value": 1
"value": 1,
"max":10
},
"xp": {
"value": 0,
"max":0
},
"reputation": {
"value": 0,
"max":0
},
"self_control": {
"label":"TOTEM.self_control",
"value": 0,
"min": 0,
"max": 5
},
"effort": {
"label":"TOTEM.effort",
"value": 0,
"min": 0,
"max": 5
},
"group": {
"label":"TOTEM.group",
"value": 0,
"min": 0,
"max": 5
}
},
"abilities": {
"vig": {
"label":"TOTEM.vigor_ability",
"strength": {
"value": 0,
"min": 0,
"max": 5,
"category": "physical"
},
"vie": {
"label":"TOTEM.health_ability",
"constitution": {
"value": 0,
"min": 0,
"max": 5,
"category": "physical"
},
"pre": {
"label":"TOTEM.precision_ability",
"precision": {
"value": 0,
"min": 0,
"max": 5,
"category": "manual"
},
"ref": {
"label":"TOTEM.reflexes_ability",
"reflexes": {
"value": 0,
"min": 0,
"max": 5,
"category": "manual"
},
"sav": {
"label":"TOTEM.knowledge_ability",
"knowledge": {
"value": 0,
"min": 0,
"max": 5,
"category": "mental"
},
"per": {
"label":"TOTEM.perception_ability",
"perception": {
"value": 0,
"min": 0,
"max": 5,
"category": "mental"
},
"vol": {
"label":"TOTEM.will_ability",
"will": {
"value": 0,
"min": 0,
"max": 5,
"category": "social"
},
"emp": {
"label":"TOTEM.empathy_ability",
"empathy": {
"value": 0,
"min": 0,
"max": 5,
@@ -103,31 +114,27 @@
},
"skills": {
"arts": {
"label":"TOTEM.skills.arts",
"value": 0,
"min": 0,
"max": 5,
"category": "man",
"rarity":1
"rarity":0
},
"civilization": {
"label":"TOTEM.skills.civilization",
"value": 0,
"min": 0,
"max": 5,
"category": "man",
"rarity":2
"rarity":0
},
"psychology": {
"label":"TOTEM.skills.psychology",
"value": 0,
"min": 0,
"max": 5,
"category": "man",
"rarity":1
"rarity":0
},
"rumors": {
"label":"TOTEM.skills.rumors",
"value": 0,
"min": 0,
"max": 5,
@@ -135,23 +142,20 @@
"rarity":0
},
"healing": {
"label":"TOTEM.skills.healing",
"value": 0,
"min": 0,
"max": 5,
"category": "man",
"rarity":1
"rarity":0
},
"animalism": {
"label":"TOTEM.skills.animalism",
"value": 0,
"min": 0,
"max": 5,
"category": "animal",
"rarity":1
},
"dissection": {
"label":"TOTEM.skills.dissection",
"riding": {
"value": 0,
"min": 0,
"max": 5,
@@ -159,15 +163,13 @@
"rarity":2
},
"wildlife": {
"label":"TOTEM.skills.wildlife",
"value": 0,
"min": 0,
"max": 5,
"category": "animal",
"rarity":1
"rarity":0
},
"repulsion": {
"label":"TOTEM.skills.repulsion",
"territory": {
"value": 0,
"min": 0,
"max": 5,
@@ -175,7 +177,6 @@
"rarity":0
},
"tracks": {
"label":"TOTEM.skills.tracks",
"value": 0,
"min": 0,
"max": 5,
@@ -183,71 +184,62 @@
"rarity":0
},
"crafting": {
"label":"TOTEM.skills.crafting",
"value": 0,
"min": 0,
"max": 5,
"category": "tool",
"rarity":2
},
"diy": {
"label":"TOTEM.skills.diy",
"value": 0,
"min": 0,
"max": 5,
"category": "tool",
"rarity":0
},
"mecanical": {
"label":"TOTEM.skills.mecanical",
"value": 0,
"min": 0,
"max": 5,
"category": "tool",
"rarity":2
},
"driving": {
"label":"TOTEM.skills.driving",
"value": 0,
"min": 0,
"max": 5,
"category": "tool",
"rarity":1
},
"technology": {
"label":"TOTEM.skills.technology",
"manipulation": {
"value": 0,
"min": 0,
"max": 5,
"category": "tool",
"rarity":0
},
"mecanisms": {
"value": 0,
"min": 0,
"max": 5,
"category": "tool",
"rarity":2
},
"firearms": {
"label":"TOTEM.skills.firearms",
"runes": {
"value": 0,
"min": 0,
"max": 5,
"category": "tool",
"rarity":1
},
"armory": {
"value": 0,
"min": 0,
"max": 5,
"category": "tool",
"rarity":2
},
"shield": {
"value": 0,
"min": 0,
"max": 5,
"category": "weapon",
"rarity":2
"rarity":1
},
"archery": {
"label":"TOTEM.skills.archery",
"value": 0,
"min": 0,
"max": 5,
"category": "weapon",
"rarity":0
},
"armory": {
"label":"TOTEM.skills.armory",
"close": {
"value": 0,
"min": 0,
"max": 5,
"category": "weapon",
"rarity":2
"rarity":0
},
"throwing": {
"label":"TOTEM.skills.throwing",
"value": 0,
"min": 0,
"max": 5,
@@ -255,15 +247,13 @@
"rarity":0
},
"melee": {
"label":"TOTEM.skills.melee",
"value": 0,
"min": 0,
"max": 5,
"category": "weapon",
"rarity":0
},
"feed": {
"label":"TOTEM.skills.feed",
"alertness": {
"value": 0,
"min": 0,
"max": 5,
@@ -271,15 +261,13 @@
"rarity":0
},
"atletics": {
"label":"TOTEM.skills.atletics",
"value": 0,
"min": 0,
"max": 5,
"category": "survival",
"rarity":0
},
"brawling": {
"label":"TOTEM.skills.brawling",
"flora": {
"value": 0,
"min": 0,
"max": 5,
@@ -287,60 +275,53 @@
"rarity":0
},
"stealth": {
"label":"TOTEM.skills.stealth",
"value": 0,
"min": 0,
"max": 5,
"category": "survival",
"rarity":0
},
"alertness": {
"label":"TOTEM.skills.alertness",
"value": 0,
"min": 0,
"max": 5,
"category": "survival",
"rarity":0
},
"environment": {
"label":"TOTEM.skills.environment",
"value": 0,
"min": 0,
"max": 5,
"category": "world",
"rarity":0
},
"flora": {
"label":"TOTEM.skills.flora",
"value": 0,
"min": 0,
"max": 5,
"category": "world",
"rarity":0
},
"road": {
"label":"TOTEM.skills.road",
"value": 0,
"min": 0,
"max": 5,
"category": "world",
"category": "survival",
"rarity":0
},
"toxics": {
"label":"TOTEM.skills.toxics",
"burst": {
"value": 0,
"min": 0,
"max": 5,
"category": "world",
"rarity":0
"rarity":2
},
"remains": {
"label":"TOTEM.skills.remains",
"moons": {
"value": 0,
"min": 0,
"max": 5,
"category": "world",
"rarity":0
"rarity":1
},
"myths": {
"value": 0,
"min": 0,
"max": 5,
"category": "world",
"rarity":1
},
"pantheons": {
"value": 0,
"min": 0,
"max": 5,
"category": "world",
"rarity":1
},
"rituals": {
"value": 0,
"min": 0,
"max": 5,
"category": "world",
"rarity":2
}
}
},
@@ -384,7 +365,7 @@
}
},
"Item": {
"types": ["item", "feature", "spell"],
"types": ["item", "weapons", "defense", "ritual", "technique"],
"templates": {
"base": {
"description": ""
+78 -90
View File
@@ -1,99 +1,87 @@
<form class="{{cssClass}} {{actor.type}} flexcol" autocomplete="off">
{{!-- Sheet Header --}}
<header class="sheet-header">
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="100" width="100"/>
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name"/></h1>
{{!-- The grid classes are defined in scss/global/_grid.scss. To use,
use both the "grid" and "grid-Ncol" class where "N" can be any number
from 1 to 12 and will create that number of columns. --}}
<div class="resources grid grid-4col">
{{#each system.attributes as |attribute att|}}
<div class="resource flex-group-center">
<label for="system.attributes.level.value" class="resource-label">{{ localize attribute.label }}</label>
<div class="resource-content flexrow flex-center flex-between">
<input type="text" name="system.attributes.{{att}}.value" value="{{attribute.value}}" data-dtype="Number"/>
</div>
</div>
{{/each}}
<div class="form">
<aside>
<img class="logo" src="systems/totem/assets/images/ui/logo.webp" height="56" width="230" alt="logo TOTEM" />
<div class="sidebar" data-group="dashboard" data-tab="sidebar">
<!--ID -->
{{> "systems/totem/templates/actor/parts/actor-id.hbs"}}
</div>
</div>
</header>
</aside>
<main>
<!-- HEADER -->
{{> "systems/totem/templates/actor/parts/character-header.hbs"}}
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
{{!-- Default tab is specified in actor-sheet.mjs --}}
<a class="item" data-tab="features">Statistiques</a>
<a class="item" data-tab="description">Background</a>
<a class="item" data-tab="items">Matos</a>
<a class="item" data-tab="spells">Totem</a>
<a class="item" data-tab="effects">Santé</a>
</nav>
<!-- SHEET NAVIGATION -->
<nav class="sheet-navigation sheet-tabs tabs flex-group-end" data-group="primary">
<a class="item" data-tab="character" title="{{localize "GODS.tab_character_label"}}">
<i class="fas fa-address-card"></i>
</a>
{{!-- Sheet Body --}}
<section class="sheet-body">
<a class="item" data-tab="instincts" title="{{localize "GODS.tab_instincts_label"}}">
<i class="fas fa-star"></i>
</a>
{{!-- Owned Features Tab --}}
<div class="tab features" data-group="primary" data-tab="features">
<h3>Caractéristiques</h3>
<section class="grid grid-4col">
{{#each config.abilityCategories as |abilityCategory ackey|}}
<div>
<h4 class="align-center">{{ localize abilityCategory.label }}</h4>
{{#each @root.system.abilities as |ability key|}}
{{#ife ability.category ackey }}
<div class="ability flexcol flex-group-center items-center">
<label for="system.abilities.{{key}}.value" class="resource-label rollable flexlarge align-left" data-label="{{ability.label}}">{{ability.label}}</label>
<input type="text" name="system.abilities.{{key}}.value" value="{{ability.value}}" data-dtype="Number"/>
</div>
{{/ife}}
{{/each}}
<a class="item" data-tab="gods" title="{{localize "GODS.tab_gods_label"}}">
<i class="fas fa-wand-magic-sparkles"></i>
</a>
<a class="item" data-tab="equipment" title="{{localize "GODS.tab_equipment_label"}}">
<i class="fas fa-hammer"></i>
</a>
<a class="item" data-tab="stories" title="{{localize "GODS.tab_stories_label"}}">
<i class="fas fa-hand-paper"></i>
</a>
<a class="item" data-tab="combat" title="{{localize "GODS.tab_combat_label"}}">
<i class="fas fa-medal"></i>
</a>
<a class="manage-tabs" data-action="manage-tabs" title="{{localize "GODS.tab_options"}}">
<i class="fas fa-fw fa-ellipsis-v"></i>
</a>
</nav>
<!-- BODY -->
<section class="sheet-body">
<section class="sheet-content">
<div class="tab character character-pane active" data-group="primary" data-tab="character">
<!-- Character -->
{{> "systems/totem/templates/actor/parts/character-features.hbs"}}
</div>
{{/each}}
</section>
<h3>Compétences</h3>
<div class="grid grid-cols-3">
{{#each config.skillCategories as |skillCategory sckey|}}
<div class="col">
<h4>{{ localize skillCategory.label }}</h4>
{{#each @root.system.skills as |skill skey|}}
{{#ife skill.category sckey }}
<div class="ability flexrow flex-group-center">
<label style="flex:80%;" for="system.skills.{{skey}}.value" class="resource-label rollable flexlarge align-left" data-roll="+@skills.{{skey}}d10" data-label="{{skill.label}}">{{ localize skill.label}} ({{skill.rarity}})</label>
<input type="text" name="system.skills.{{skey}}.value" value="{{skill.value}}" data-dtype="Number"/>
</div>
{{/ife}}
{{/each}}
</div>
{{/each}}
<div class="tab instincts" data-group="primary" data-tab="instincts">
<h3>Instincts</h3>
<!-- Rituals -->
{{> "systems/totem/templates/actor/parts/actor-instincts.hbs"}}
</div>
<div class="tab gods" data-group="primary" data-tab="gods">
<h3>Dieux</h3>
<!-- Rituals -->
{{> "systems/totem/templates/actor/parts/actor-spells.html"}}
</div>
<div class="tab equipment" data-group="primary" data-tab="equipment">
<h3>Equipement</h3>
<!-- Rituals -->
{{> "systems/totem/templates/actor/parts/actor-items.html"}}
</div>
<div class="tab combat" data-group="primary" data-tab="combat">
<h3>Combat</h3>
<!-- effects -->
{{> "systems/totem/templates/actor/parts/actor-effects.html"}}
</div>
<div class="tab stories" data-group="primary" data-tab="stories">
<h3>Histoire</h3>
<section class="biography-details">
<label class="details-label">Bio</label>
{{editor system.stories.biography target="system.stories.biography" button=true owner=owner editable=editable}}
</section>
</div>
</div>
{{!-- Biography Tab --}}
<div class="tab biography" data-group="primary" data-tab="description">
{{!-- If you want TinyMCE editors to output inline rolls when rendered, you need to pass the actor's roll data to the rollData property. --}}
{{editor system.biography target="system.biography" rollData=rollData button=true owner=owner editable=editable}}
</div>
{{!-- Owned Items Tab --}}
<div class="tab items" data-group="primary" data-tab="items">
{{> "systems/totem/templates/actor/parts/actor-items.html"}}
</div>
{{!-- Owned Spells Tab --}}
<div class="tab spells" data-group="primary" data-tab="spells">
{{> "systems/totem/templates/actor/parts/actor-spells.html"}}
</div>
{{!-- Active Effects Tab --}}
<div class="tab effects flexcol" data-group="primary" data-tab="effects">
{{> "systems/totem/templates/actor/parts/actor-effects.html"}}
</div>
</section>
</section>
</section>
</main>
</div>
</form>
+48
View File
@@ -0,0 +1,48 @@
<ul class="padding-with-frieze unstyled">
<li>
<div class="flexrow flex-group-center items-center">
<label for="system.identity.age" class="resource-label flexlarge align-left">Age</label>
<input type="number" name="system.identity.age" value="{{ system.identity.age }}" data-dtype="Number"/>
<span>cm</span>
</div>
</li>
<li>
<div class="flexrow flex-group-center items-center">
<label for="system.identity.height" class="resource-label flexlarge align-left">Taille</label>
<input type="number" name="system.identity.height" value="{{ system.identity.height }}" data-dtype="Number"/>
<span>cm</span>
</div>
</li>
<li>
<div class="flexrow flex-group-center items-center">
<label for="system.identity.weigth" class="resource-label flexlarge align-left">Poids</label>
<input type="number" name="system.identity.weigth" value="{{ system.identity.weigth }}" data-dtype="Number"/>
<span>kgs</span>
</div>
</li>
<li>
<div class="flexcol flex-group-center items-center w-full">
<label for="system.identity.gender" class="resource-label flexlarge align-left">Sexe</label>
<select name="system.identity.gender" class="w-full">
{{selectOptions config.sexes selected=system.identity.gender localize=true}}
</select>
</div>
</li>
<li>
<div class="flexcol flex-group-center items-center w-full">
<label for="system.identity.sign" class="resource-label flexlarge align-left">Signe astro.</label>
<select name="system.identity.sign" class="w-full">
{{selectOptions config.signs selected=system.identity.sign localize=true}}
</select>
</div>
</li>
<li>
<div class="flexcol flex-group-center items-center w-full">
<label for="system.identity.origin" class="resource-label flexlarge align-left">Origine</label>
<select name="system.identity.origin" class="w-full">
{{selectOptions config.origins selected=system.identity.origin localize=true}}
</select>
</div>
</li>
</ul>
+23
View File
@@ -0,0 +1,23 @@
<ol class="items-list">
<li class="item flexrow items-header">
<div class="item-name">Principes</div>
</li>
<li class="item flexrow items-header">
<div class="item-name">Interdits</div>
</li>
{{#each gear as |item id|}}
<li class="item flexrow" data-item-id="{{item._id}}">
<div class="item-name">
<div class="item-image">
<a class="rollable" data-roll-type="item"><img src="{{item.img}}" title="{{item.name}}" width="24" height="24"/></a>
</div>
<h4>{{item.name}}</h4>
</div>
<div class="item-formula item-prop">{{item.system.formula}}</div>
<div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
@@ -0,0 +1,34 @@
<!-- Character -->
<h3>Caractéristiques</h3>
<div class="grid grid-4col">
{{#each config.abilityCategories as |abilityCategory ackey|}}
<div>
<h4 class="align-center">{{ smarttl "ABILITY_CATEGORIES" ackey }}</h4>
{{#each @root.system.abilities as |ability key|}}
{{#if (eq ability.category ackey) }}
<div class="ability flexcol flex-group-center items-center">
<label for="system.abilities.{{key}}.value" class="resource-label rollable flexlarge align-left" data-label="{{ smarttl "ABILITIES" key }}">{{ smarttl "ABILITIES" key }}</label>
<input type="text" name="system.abilities.{{key}}.value" value="{{ability.value}}" data-dtype="Number"/>
</div>
{{/if}}
{{/each}}
</div>
{{/each}}
</div>
<h3>Compétences</h3>
<div class="grid grid-cols-3">
{{#each config.skillCategories as |skillCategory sckey|}}
<div class="col">
<h4>{{ smarttl "SKILLS_CATEGORIES" sckey }}</h4>
{{#each @root.system.skills as |skill skey|}}
{{#if (eq skill.category sckey) }}
<div class="ability flexrow flex-group-center">
<label style="flex:80%;" for="system.skills.{{skey}}.value" class="resource-label rollable flexlarge align-left" data-roll="+@skills.{{skey}}d10" data-label="{{ smarttl "SKILLS" skey }}">{{ smarttl "SKILLS" skey }} ({{skill.rarity}})</label>
<input type="text" name="system.skills.{{skey}}.value" value="{{skill.value}}" data-dtype="Number"/>
</div>
{{/if}}
{{/each}}
</div>
{{/each}}
</div>
@@ -0,0 +1,19 @@
<!-- HEADER -->
<header class="char-header">
<section class="char-details">
<h1 class="char-name">
<input name="name" type="text" value="{{actor.name}}" placeholder="{{localize "GODS.CharacterNamePlaceholder"}}" spellcheck="false" />
</h1>
</section>
<section class="char-level">
<div class="reputation">
<label>total {{ data.attributes.reputation.max }}</label>
<input name="system.attributes.reputation.value" type="text" value="{{data.attributes.reputation.value }}" data-dtype="Number" placeholder="1000" size="4" />
</div>
<div class="experience">
<input name="system.details.xp.value" type="text" value="{{data.attributes.xp.value}}" data-dtype="Number" data-allow-delta placeholder="0" size="4" />
<label>total {{data.attributes.xp.max}}</label>
</div>
</section>
</header>