Manage spec/skills
This commit is contained in:
parent
06d91f11f1
commit
08f0aba1d8
BIN
fonts/MailartRubberstamp-Regular.woff
Normal file
BIN
fonts/MailartRubberstamp-Regular.woff
Normal file
Binary file not shown.
20
gulpfile.js
Normal file
20
gulpfile.js
Normal file
@ -0,0 +1,20 @@
|
||||
var gulp = require('gulp');
|
||||
|
||||
var postcss = require('gulp-postcss');
|
||||
|
||||
var autoprefixer = require('autoprefixer');
|
||||
var cssnext = require('cssnext');
|
||||
var precss = require('precss');
|
||||
|
||||
gulp.task('css', function () {
|
||||
|
||||
var processors = [
|
||||
autoprefixer,
|
||||
cssnext,
|
||||
precss
|
||||
];
|
||||
|
||||
return gulp.src('./postcss/*.css')
|
||||
.pipe(postcss(processors))
|
||||
.pipe(gulp.dest('./styles'));
|
||||
});
|
26
lang/en.json
26
lang/en.json
@ -20,7 +20,31 @@
|
||||
"goldcoin": "Gold coin",
|
||||
"lige": "Lige",
|
||||
"hurle": "Howl",
|
||||
"coin": "Coin"
|
||||
"coin": "Coin",
|
||||
"notes": "Notes",
|
||||
"bio": "Bio",
|
||||
"skills": "Skills",
|
||||
"traits": "Traits",
|
||||
"equipment": "Equipment",
|
||||
"physical": "Physical",
|
||||
"mental": "Mental",
|
||||
"social": "Social",
|
||||
"athletics": "Athletics",
|
||||
"driving": "Driving",
|
||||
"fencing": "Fencing",
|
||||
"brawling": "Brawling",
|
||||
"shooting": "Shooting",
|
||||
"anthropomecanology": "Anthropo-Mecanology",
|
||||
"ecrymology": "Ecrymology",
|
||||
"traumatology": "Traumatology",
|
||||
"traversology": "Traversology",
|
||||
"urbatechnology": "Urbatechnology",
|
||||
"quibbling": "Quibbling",
|
||||
"creativity": "Creativity",
|
||||
"loquacity": "Loquacity",
|
||||
"guile": "Guile",
|
||||
"performance" :"Performance",
|
||||
"skill": "Skill"
|
||||
}
|
||||
}
|
||||
}
|
27
lang/fr.json
27
lang/fr.json
@ -20,8 +20,31 @@
|
||||
"goldcoin": "Pièce d'or",
|
||||
"lige": "Lige",
|
||||
"hurle": "Hurle",
|
||||
"coin": "Sous"
|
||||
|
||||
"coin": "Sous",
|
||||
"notes": "Notes",
|
||||
"bio": "Bio",
|
||||
"skills": "Compétences",
|
||||
"traits": "Traits",
|
||||
"equipment": "Equipement",
|
||||
"physical": "Physiques",
|
||||
"mental": "Mentales",
|
||||
"social": "Sociales",
|
||||
"athletics": "Athlétisme",
|
||||
"driving": "Conduite",
|
||||
"fencing": "Escrime",
|
||||
"brawling": "Pugilat",
|
||||
"shooting": "Tir",
|
||||
"anthropomecanology": "Anthropo-Mécanologie",
|
||||
"ecrymology": "Écrymologie",
|
||||
"traumatology": "Traumatologie",
|
||||
"traversology": "Traversologie",
|
||||
"urbatechnology": "Urbatechnologie",
|
||||
"quibbling": "Argutie",
|
||||
"creativity": "Créativité",
|
||||
"loquacity": "Faconde",
|
||||
"guile": "Maraude",
|
||||
"performance" :"Représentation",
|
||||
"skill": "Compétence"
|
||||
}
|
||||
}
|
||||
}
|
@ -14,7 +14,7 @@ export class EcrymeActorSheet extends ActorSheet {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-ecryme", "sheet", "actor"],
|
||||
template: "systems/fvtt-ecryme/templates/actors/actor-sheet.hbs",
|
||||
width: 640,
|
||||
width: 860,
|
||||
height:680,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" }],
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||
@ -35,6 +35,9 @@ export class EcrymeActorSheet extends ActorSheet {
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
system: duplicate(this.object.system),
|
||||
limited: this.object.limited,
|
||||
skills: this.actor.prepareSkills(),
|
||||
system: duplicate(this.object.system),
|
||||
config: duplicate(game.system.ecryme.config),
|
||||
weapons: duplicate(this.actor.getWeapons()),
|
||||
archetype: duplicate(this.actor.getArchetype()),
|
||||
equipements: duplicate(this.actor.getEquipements()),
|
||||
@ -105,8 +108,9 @@ export class EcrymeActorSheet extends ActorSheet {
|
||||
} );
|
||||
|
||||
html.find('.roll-skill').click((event) => {
|
||||
let attrKey = $(event.currentTarget).data("attr-key")
|
||||
this.actor.rollAttribut(attrKey)
|
||||
let categKey = $(event.currentTarget).data("category-key")
|
||||
let skillKey = $(event.currentTarget).data("skill-key")
|
||||
this.actor.rollSkill(categKey, skillKey)
|
||||
});
|
||||
html.find('.roll-weapon').click((event) => {
|
||||
const armeId = $(event.currentTarget).data("arme-id")
|
||||
|
@ -89,6 +89,23 @@ export class EcrymeActor extends Actor {
|
||||
|
||||
return comp;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getSpecializations(skillKey) {
|
||||
return this.items.filter(it => it.type == "specialization" && it.system.skillkey == skillKey)
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
prepareSkills() {
|
||||
let skills = duplicate(this.system.skills)
|
||||
for (let categKey in skills) {
|
||||
let category = skills[categKey]
|
||||
for (let skillKey in category.skilllist) {
|
||||
let skill = category.skilllist[skillKey]
|
||||
skill.spec = this.getSpecializations(skillKey)
|
||||
}
|
||||
}
|
||||
return skills
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getWeapons() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || [])
|
||||
@ -255,14 +272,12 @@ export class EcrymeActor extends Actor {
|
||||
rollData.img = this.img
|
||||
rollData.isReroll = false
|
||||
|
||||
console.log("ROLLDATA", rollData)
|
||||
|
||||
return rollData
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
rollSkill(attrKey, skillKey) {
|
||||
let skill = this.system.skills[attrKey].skilllist[skillKey]
|
||||
rollSkill(categKey, skillKey) {
|
||||
let skill = this.system.skills[categKey].skilllist[skillKey]
|
||||
let rollData = this.getCommonRollData()
|
||||
rollData.skill = duplicate(skill)
|
||||
rollData.mode = "skill"
|
||||
@ -294,6 +309,7 @@ export class EcrymeActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async startRoll(rollData) {
|
||||
console.log("ROLLDATA", rollData)
|
||||
let rollDialog = await EcrymeRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
|
@ -43,7 +43,20 @@ export class EcrymeUtility {
|
||||
Handlebars.registerHelper('add', function (a, b) {
|
||||
return parseInt(a) + parseInt(b);
|
||||
})
|
||||
this.buildSkillConfig()
|
||||
}
|
||||
|
||||
/*-------------------------------------------- */
|
||||
static buildSkillConfig() {
|
||||
game.system.ecryme.config.skills = { }
|
||||
for (let categKey in game.data.template.Actor.templates.core.skills) {
|
||||
let category = game.data.template.Actor.templates.core.skills[categKey]
|
||||
for(let skillKey in category.skilllist) {
|
||||
let skill = duplicate(category.skilllist[skillKey])
|
||||
skill.categKey = categKey // Auto reference the category
|
||||
game.system.ecryme.config.skills[skillKey] = skill
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------- */
|
||||
|
@ -74,13 +74,10 @@ function welcomeMessage() {
|
||||
user: game.user.id,
|
||||
whisper: [game.user.id],
|
||||
content: `<div id="welcome-message-ecryme"><span class="rdd-roll-part">
|
||||
<strong>Bienvenu dans Ecryme, le JDR qui sent le souffre !</strong>
|
||||
<p>Le Livre de Base de Maléfices v4 est nécessaire pour jouer : https://arkhane-asylum.fr/en/ecryme/</p>
|
||||
<p>Maléfices et un jeu de rôle publié par Arkhane Asylum Publishing, tout les droits leur appartiennent.</p>
|
||||
<p>Système développé par LeRatierBretonnien avec l'aide de la Dame du Lac et Malik, support sur le <a href="https://discord.gg/pPSDNJk">Discord FR de Foundry</a>.</p>
|
||||
<p>Commandes : /tirage pour le tirage des tarots, /carte pour tirer une simple carte et /resume pour le résumé des PJs (MJ seulement)` });
|
||||
<strong>Bienvenu dans Ecryme !</strong>` });
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register world usage statistics
|
||||
function registerUsageCount(registerKey) {
|
||||
@ -121,7 +118,7 @@ Hooks.once("ready", function () {
|
||||
});
|
||||
}
|
||||
|
||||
registerUsageCount('fvtt-ecryme')
|
||||
registerUsageCount(game.system.id)
|
||||
welcomeMessage();
|
||||
EcrymeUtility.ready()
|
||||
EcrymeCharacterSummary.ready()
|
||||
|
1316
postcss/ecryme.css
Normal file
1316
postcss/ecryme.css
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
/* ==================== (A) Fonts ==================== */
|
||||
@font-face {
|
||||
font-family: "MailartRubberstamp";
|
||||
src: url('../fonts/MailartRubberstamp-Regular.otf') format("otf");
|
||||
src: url('../fonts/MailartRubberstamp-Regular.woff') format("woff");
|
||||
}
|
||||
|
||||
:root {
|
||||
@ -25,12 +25,12 @@
|
||||
|
||||
--actor-label-font-size: 0.8rem;
|
||||
--actor-label-font-weight: 700;
|
||||
--actor-label-color: #464331c4;
|
||||
--actor-label-color: rgba(70,67,49,0.76863);
|
||||
|
||||
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
|
||||
--debug-background-color-red: #ff000054;
|
||||
--debug-background-color-blue: #1d00ff54;
|
||||
--debug-background-color-green: #54ff0054;
|
||||
--debug-background-color-red: rgba(255,0,0,0.32941);
|
||||
--debug-background-color-blue: rgba(29,0,255,0.32941);
|
||||
--debug-background-color-green: rgba(84,255,0,0.32941);
|
||||
|
||||
--debug-box-shadow-red: inset 0 0 2px red;
|
||||
--debug-box-shadow-blue: inset 0 0 2px blue;
|
||||
@ -95,6 +95,7 @@ table {border: 1px solid #7a7971;}
|
||||
display: grid;
|
||||
grid-column: span 2 / span 2;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
grid-gap: 10px;
|
||||
gap: 10px;
|
||||
margin: 10px 0;
|
||||
padding: 0;
|
||||
@ -153,36 +154,24 @@ table {border: 1px solid #7a7971;}
|
||||
.flex-group-center,
|
||||
.flex-group-left,
|
||||
.flex-group-right {
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.flex-group-left {
|
||||
-webkit-box-pack: start;
|
||||
-ms-flex-pack: start;
|
||||
justify-content: flex-start;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.flex-group-right {
|
||||
-webkit-box-pack: end;
|
||||
-ms-flex-pack: end;
|
||||
justify-content: flex-end;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
@ -192,8 +181,6 @@ table {border: 1px solid #7a7971;}
|
||||
}
|
||||
|
||||
.flex-between {
|
||||
-webkit-box-pack: justify;
|
||||
-ms-flex-pack: justify;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
@ -203,35 +190,25 @@ table {border: 1px solid #7a7971;}
|
||||
|
||||
/* Styles limited to sheets */
|
||||
.fvtt-ecryme .sheet-header {
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0 0 210px;
|
||||
flex: 0 0 210px;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-ms-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
-webkit-box-pack: start;
|
||||
-ms-flex-pack: start;
|
||||
justify-content: flex-start;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.fvtt-ecryme .sheet-header .profile-img {
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0 0 128px;
|
||||
flex: 0 0 128px;
|
||||
width: 128px;
|
||||
height: auto;
|
||||
max-height:128px;
|
||||
margin-top: 0px;
|
||||
margin-right: 10px;
|
||||
-o-object-fit: cover;
|
||||
object-fit: cover;
|
||||
-o-object-position: 50% 0;
|
||||
object-position: 50% 0;
|
||||
border-width: 0px;
|
||||
}
|
||||
@ -272,8 +249,6 @@ table {border: 1px solid #7a7971;}
|
||||
}
|
||||
|
||||
.fvtt-ecryme .sheet-header .header-fields {
|
||||
-webkit-box-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
@ -293,8 +268,6 @@ table {border: 1px solid #7a7971;}
|
||||
}
|
||||
|
||||
.fvtt-ecryme .sheet-tabs {
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0;
|
||||
flex: 0;
|
||||
font-family: MailartRubberstamp;
|
||||
font-size: 2.2rem;
|
||||
@ -374,8 +347,6 @@ table {border: 1px solid #7a7971;}
|
||||
}
|
||||
|
||||
.fvtt-ecryme .items-list .item .item-image {
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0 0 24px;
|
||||
flex: 0 0 24px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
@ -389,8 +360,6 @@ table {border: 1px solid #7a7971;}
|
||||
}
|
||||
|
||||
.fvtt-ecryme .items-list .item-controls {
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0 0 86px;
|
||||
flex: 0 0 86px;
|
||||
text-align: right;
|
||||
}
|
||||
@ -459,7 +428,9 @@ select {
|
||||
section.sheet-body{padding: 0.25rem 0.5rem;}
|
||||
|
||||
.sheet header.sheet-header .profile-img {
|
||||
-o-object-fit: cover;
|
||||
object-fit: cover;
|
||||
-o-object-position: 50% 0;
|
||||
object-position: 50% 0;
|
||||
margin: 0.5rem 0 0.5rem 0.5rem;
|
||||
padding: 0;
|
||||
@ -745,7 +716,9 @@ ul, li {
|
||||
left: 4rem;
|
||||
}
|
||||
.control-icon.tokenhudicon {
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
height: -moz-fit-content;
|
||||
height: fit-content;
|
||||
min-width: 6rem;
|
||||
flex-basis: auto;
|
||||
@ -766,7 +739,7 @@ ul, li {
|
||||
/* ======================================== */
|
||||
.item-checkbox {
|
||||
height: 25px;
|
||||
border: 1px solid #736953a6;
|
||||
border: 1px solid rgba(115,105,83,0.65098);
|
||||
border-left: none;
|
||||
font-weight: 500;
|
||||
font-size: 1rem;
|
||||
@ -975,6 +948,7 @@ ul, li {
|
||||
border-radius: 0;
|
||||
background: rgba(30, 25, 20, 1);
|
||||
background-origin: padding-box;
|
||||
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
@ -983,6 +957,7 @@ ul, li {
|
||||
#controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover {
|
||||
background: rgba(72, 46, 28, 1);
|
||||
background-origin: padding-box;
|
||||
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
@ -995,6 +970,7 @@ ul, li {
|
||||
}
|
||||
|
||||
#hotbar #action-bar .macro {
|
||||
-o-border-image: url(img/ui/bg_control.jpg) 21 repeat;
|
||||
border-image: url(img/ui/bg_control.jpg) 21 repeat;
|
||||
border-image-slice: 6 6 6 6 fill;
|
||||
border-image-width: 6px 6px 6px 6px;
|
||||
@ -1008,6 +984,7 @@ ul, li {
|
||||
}
|
||||
|
||||
#players {
|
||||
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
@ -1021,6 +998,7 @@ ul, li {
|
||||
#navigation #scene-list .scene.nav-item {
|
||||
background: rgba(30, 25, 20, 1);
|
||||
background-origin: padding-box;
|
||||
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
@ -1029,6 +1007,7 @@ ul, li {
|
||||
#navigation #scene-list .scene.view, #navigation #scene-list .scene.context {
|
||||
background: rgba(72, 46, 28, 1);
|
||||
background-origin: padding-box;
|
||||
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
@ -1038,6 +1017,7 @@ ul, li {
|
||||
#navigation #nav-toggle {
|
||||
background: rgba(30, 25, 20, 1);
|
||||
background-origin: padding-box;
|
||||
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
border-image-width: 4px;
|
||||
border-image-outset: 0px;
|
||||
@ -1082,8 +1062,8 @@ ul, li {
|
||||
|
||||
.chat-card-button {
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
|
||||
background-color: #7d5d3b00;
|
||||
background: linear-gradient(to bottom, rgba(33,55,74,0.98824) 5%, rgba(21,40,51,0.67059) 100%);
|
||||
background-color: rgba(125,93,59,0);
|
||||
border-radius: 3px;
|
||||
border: 2px ridge #846109;
|
||||
display: inline-block;
|
||||
@ -1108,8 +1088,8 @@ ul, li {
|
||||
|
||||
.plus-minus-button {
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
|
||||
background-color: #7d5d3b00;
|
||||
background: linear-gradient(to bottom, rgba(33,55,74,0.98824) 5%, rgba(21,40,51,0.67059) 100%);
|
||||
background-color: rgba(125,93,59,0);
|
||||
border-radius: 2px;
|
||||
border: 1px ridge #846109;
|
||||
display: inline-block;
|
||||
@ -1241,8 +1221,8 @@ ul, li {
|
||||
.item-name-label-long {
|
||||
margin-top: 4px;
|
||||
flex-grow:2;
|
||||
max-width: 10rem;
|
||||
min-width: 10rem;
|
||||
max-width: 12rem;
|
||||
min-width: 12rem;
|
||||
}
|
||||
.item-name-label-short {
|
||||
flex-grow:1;
|
||||
|
@ -42,7 +42,7 @@
|
||||
],
|
||||
"title": "Ecryme, le Jeu de Rôles",
|
||||
"url": "https://www.uberwald.me/gitea/uberwald/fvtt-ecryme",
|
||||
"version": "10.0.3",
|
||||
"version": "10.0.4",
|
||||
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-ecryme/archive/fvtt-ecryme-v10.0.0.zip",
|
||||
"background": "systems/fvtt-ecryme/images/ui/accueil_01.webp"
|
||||
}
|
@ -157,7 +157,7 @@
|
||||
},
|
||||
"specialization": {
|
||||
"templates": ["common"],
|
||||
"skillname": ""
|
||||
"skillkey": ""
|
||||
},
|
||||
"scar": {
|
||||
"templates": ["common"],
|
||||
|
@ -34,120 +34,75 @@
|
||||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="main">Principal</a>
|
||||
<a class="item" data-tab="equipements">Equipement</a>
|
||||
<a class="item" data-tab="biodata">Biographie</a>
|
||||
<a class="item" data-tab="notes">Notes</a>
|
||||
<a class="item" data-tab="competences">{{localize "ECRY.ui.skills"}}</a>
|
||||
<a class="item" data-tab="traits">{{localize "ECRY.ui.traits"}}</a>
|
||||
<a class="item" data-tab="equipements">{{localize "ECRY.ui.equipment"}}</a>
|
||||
<a class="item" data-tab="biodata">{{localize "ECRY.ui.bio"}}</a>
|
||||
<a class="item" data-tab="notes">{{localize "ECRY.ui.notes"}}</a>
|
||||
</nav>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{!-- Skills Tab --}}
|
||||
<div class="tab main" data-group="primary" data-tab="main">
|
||||
<div class="tab competences" data-group="primary" data-tab="competences">
|
||||
|
||||
|
||||
<div class="grid grid-2col">
|
||||
<div class="grid grid-3col">
|
||||
|
||||
{{#each skills as |category categkey|}}
|
||||
<div>
|
||||
<ul class="stat-list alternate-list item-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Attributs</label></h3>
|
||||
<h3><label class="items-title-text">{{localize category.name}}</label></h3>
|
||||
</span>
|
||||
</li>
|
||||
{{#each system.attributs as |attr key|}}
|
||||
{{#each category.skilllist as |skill skillkey|}}
|
||||
<li class="item flexrow list-item">
|
||||
<span class="item-name-label-long">
|
||||
<a class="roll-attribut" data-attr-key="{{key}}">{{attr.label}}
|
||||
{{#if attr.iscard}}
|
||||
<i class="fa-solid fa-cards-blank"></i>
|
||||
{{else}}
|
||||
<i class="fa-solid fa-dice-d20"></i>
|
||||
{{/if}}
|
||||
<a class="roll-skill" data-category-key="{{categkey}}" data-skill-key="{{skillkey}}">
|
||||
<i class="fa-solid fa-dice-d6"></i>
|
||||
{{localize skill.name}}
|
||||
</a></span>
|
||||
<input type="text" class="item-field-label-short" name="system.attributs.{{key}}.value" value="{{attr.value}}" data-dtype="Number"/>
|
||||
{{#if attr.hasmax}}
|
||||
<input type="text" class="item-field-label-short" name="system.attributs.{{key}}.max" value="{{attr.max}}" data-dtype="Number"/>
|
||||
{{/if}}
|
||||
{{#if (eq key "physique")}}
|
||||
{{#if @root.phyMalus}}
|
||||
({{@root.phyMalus}})
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</li>
|
||||
<select class="item-field-label-short" type="text" name="system.skills.{{categkey}}.skilllist.{{skillkey}}.value" value="{{skill.value}}" data-dtype="Number">
|
||||
{{#select skill.value}}
|
||||
{{#each @root.config.skillLevel as |level key| }}
|
||||
<option value="{{level}}">{{level}}</option>
|
||||
{{/each}}
|
||||
|
||||
<li class="item flexrow list-item">
|
||||
<span class="item-field-label-long">Points de Destin</span>
|
||||
<input type="text" class="item-field-label-short" name="system.pointdestin" value="{{system.pointdestin}}" data-dtype="Number"/>
|
||||
</li>
|
||||
|
||||
{{#if isGM}}
|
||||
<li class="item flexrow list-item">
|
||||
<span class="item-field-label-long">Fluide (MJ)</span>
|
||||
<input type="text" class="item-field-label-short" name="system.fluide" value="{{system.fluide}}" data-dtype="Number"/>
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="item flexrow list-item">
|
||||
<span class="item-field-label-long">MPMB (MJ)</span>
|
||||
<input type="text" class="item-field-label-short" name="system.mpmb" value="{{system.mpmb}}" data-dtype="Number"/>
|
||||
</li>
|
||||
<li class="item flexrow list-item">
|
||||
<span class="item-field-label-long">MPMN (MJ)</span>
|
||||
<input type="text" class="item-field-label-short" name="system.mpmn" value="{{system.mpmn}}" data-dtype="Number"/>
|
||||
</li>
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<ul class="stat-list alternate-list item-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Armes</label></h3>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
{{#each armes as |arme key|}}
|
||||
<li class="item flexrow list-item">
|
||||
<span class="item-field-label-long"><a class="roll-arme" data-arme-id="{{arme._id}}">{{arme.name}}<i class="fa-solid fa-dice-d20"></i></a></span>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Elements biographiques</label></h3>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<ul class="ul-level1">
|
||||
{{#each skill.spec as |spec idx|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{spec._id}}" data-item-type="specialization">
|
||||
<a class="roll-spec" data-spec-id="{{spec._id}}">
|
||||
<i class="fa-solid fa-dice-d6"></i>
|
||||
{{spec.name}}
|
||||
</a>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="elementbio" title="Create Item"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{{#each elementsbio as |elem key|}}
|
||||
<li class="item list-item flexrow list-item-shadow" data-item-id="{{elem._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{elem.img}}" /></a>
|
||||
<span class="item-name-label">{{elem.name}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" data-type="specialization" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-add" data-type="specialization" title="Delete Item"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="tab traits" data-group="primary" data-tab="traits">
|
||||
</div>
|
||||
|
||||
{{!-- Equipement Tab --}}
|
||||
<div class="tab equipements" data-group="primary" data-tab="equipements">
|
||||
<div class="tab equipment" data-group="primary" data-tab="equipment">
|
||||
|
||||
<span class="item-name-label-header items-title-bg">
|
||||
<h3><label class="items-title-text">Equipements (saisie libre)</label></h3>
|
||||
@ -320,74 +275,6 @@
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Position vis-à-vis du fantastique</label>
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<input type="text" class="" name="system.biodata.fantastique" value="{{system.biodata.fantastique}}" data-dtype="String" />
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Tarots</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-medium">
|
||||
<label class="item-field-label-medium">Sens</label>
|
||||
</span>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each tarots as |tarot key|}}
|
||||
<li class="item flexrow list-item list-item-shadow" data-item-id="{{tarot._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{tarot.img}}" /></a>
|
||||
<span class="item-name-label">{{tarot.name}}</span>
|
||||
<span class="item-field-label-medium"><label>{{#if tarot.system.ispositif}}Positif{{else}}Négatif{{/if}}</label></span>
|
||||
<div class="item-filler"> </div>
|
||||
{{#if @root.isGM}}
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
{{#if isGM}}
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Tarot secret(MJ)</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-medium">
|
||||
<label class="item-field-label-medium">Sens</label>
|
||||
</span>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each tarotsCache as |tarot key|}}
|
||||
<li class="item flexrow list-item list-item-shadow" data-item-id="{{tarot._id}}">
|
||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||
src="{{tarot.img}}" /></a>
|
||||
<span class="item-name-label">{{tarot.name}}</span>
|
||||
<span class="item-field-label-medium"><label>{{#if tarot.system.ispositif}}Positif{{else}}Négatif{{/if}}</label></span>
|
||||
<div class="item-filler"> </div>
|
||||
{{#if @root.isGM}}
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab notes" data-group="primary" data-tab="notes">
|
||||
|
@ -8,33 +8,17 @@
|
||||
|
||||
<div class="flexcol">
|
||||
|
||||
{{#if attr}}
|
||||
{{#if skill}}
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">{{attr.label}} : </span>
|
||||
<span class="roll-dialog-label">{{localize skill.name}} : </span>
|
||||
<span class="roll-dialog-label">
|
||||
{{attr.value}}
|
||||
{{#if (eq attr.abbrev "physique")}}
|
||||
{{#if phyMalus}}
|
||||
({{phyMalus}})
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{skill.value}}
|
||||
</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="flexcol">
|
||||
<span class="roll-dialog-label">Rappel des élements biographiques : </span>
|
||||
<ul class="ul-level1 item-list alternate-list">
|
||||
{{#each elementsbio as |elem key|}}
|
||||
<li class="item flexrow">
|
||||
<span class="roll-dialog-label">{{elem.name}}</span>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Bonus/Malus biographique : </span>
|
||||
<span class="roll-dialog-label">Bonus/Malus : </span>
|
||||
<select id="bonusMalusPerso" name="bonusMalusPerso">
|
||||
{{#select bonusMalusPerso}}
|
||||
<option value="-3">-3</option>
|
||||
@ -48,22 +32,7 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Bonus/Malus de situation : </span>
|
||||
<select id="bonusMalusSituation" name="bonusMalusSituation">
|
||||
{{#select bonusMalusSituation}}
|
||||
<option value="-3">-3</option>
|
||||
<option value="-2">-2</option>
|
||||
<option value="-1">-1</option>
|
||||
<option value="0">0</option>
|
||||
<option value="1">+1</option>
|
||||
<option value="2">+2</option>
|
||||
<option value="3">+3</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
{{#if arme}}
|
||||
{{#if weapon}}
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Défense : </span>
|
||||
<select id="bonusMalusDef" name="bonusMalusDef">
|
||||
|
38
templates/items/item-specialization-sheet.hbs
Normal file
38
templates/items/item-specialization-sheet.hbs
Normal file
@ -0,0 +1,38 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{> systems/fvtt-ecryme/templates/items/partial-item-nav.hbs}}
|
||||
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{> systems/fvtt-ecryme/templates/items/partial-item-description.hbs}}
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
|
||||
<li class="flexrow">
|
||||
<label class="item-name-label-long">{{localize "ECRY.ui.skill"}}</label>
|
||||
<select class="item-field-label-medium" type="text" name="system.skillkey" value="{{system.skillkey}}" data-dtype="String">
|
||||
{{#select system.skillkey}}
|
||||
{{#each config.skills as |skill key| }}
|
||||
<option value="{{key}}">{{localize skill.name}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
@ -20,7 +20,7 @@
|
||||
<ul>
|
||||
|
||||
<li class="flexrow">
|
||||
<label class="item-name-label-long field-align-top">{{localize "ECRY.ui.traitType"}}</label>
|
||||
<label class="item-name-label-long">{{localize "ECRY.ui.traitType"}}</label>
|
||||
<select class="item-field-label-medium" type="text" name="system.traitype" value="{{system.traitype}}" data-dtype="String">
|
||||
{{#select system.traitype}}
|
||||
{{#each config.traitTypes as |type key| }}
|
||||
|
@ -20,7 +20,7 @@
|
||||
<ul>
|
||||
|
||||
<li class="flexrow">
|
||||
<label class="item-field-label-long">{{localize "ECRY.ui.effect"}}</label>
|
||||
<label class="item-name-label-long">{{localize "ECRY.ui.effect"}}</label>
|
||||
<input type="text" class="item-field-label-short" name="system.effect" value="{{system.effect}}" data-dtype="Number"/>
|
||||
</li>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user