Preparation fiche perso

This commit is contained in:
LeRatierBretonnien 2024-05-06 12:33:28 +02:00
parent 939923e5ed
commit af65209d23
27 changed files with 196 additions and 411 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -3,7 +3,7 @@ var gulp = require('gulp');
var postcss = require('gulp-postcss');
var autoprefixer = require('autoprefixer');
var cssnext = require('cssnext');
var cssnext = require('postcss-preset-env');
var precss = require('precss');
gulp.task('css', function () {

View File

@ -38,11 +38,12 @@ export class TeDeumActorPJSheet extends ActorSheet {
competences: this.actor.getCompetences(),
config: duplicate(game.system.tedeum.config),
armes: this.actor.getArmes(),
equipments: this.actor.getEquipments(),
subActors: duplicate(this.actor.getSubActors()),
caracList: this.actor.prepareCaracteristiques(),
providence: this.actor.prepareProvidence(),
arbreCompetences: this.actor.prepareArbreCompetences(),
equipements: this.actor.getEquipements(),
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
equipementlibre: await TextEditor.enrichHTML(this.object.system.equipementlibre, { async: true }),
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,

View File

@ -97,6 +97,56 @@ export class TeDeumActor extends Actor {
TeDeumUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
updateCarac(c, key) {
c.name = game.system.tedeum.config.caracteristiques[key].label
c.generalqualite = game.system.tedeum.config.descriptionValeur[c.value].qualite
c.qualite = game.system.tedeum.config.descriptionValeur[c.value][key]
c.dice = game.system.tedeum.config.descriptionValeur[c.value].dice
c.negativeDice = game.system.tedeum.config.descriptionValeur[c.value].negativeDice
}
/* -------------------------------------------- */
prepareCaracteristiques() {
let carac = foundry.utils.deepClone(this.system.caracteristiques)
for (let key in carac) {
let c = carac[key]
this.updateCarac(c, key)
}
return carac
}
/* -------------------------------------------- */
prepareProvidence() {
let providence = foundry.utils.deepClone(this.system.providence)
providence.name = "Providence"
providence.qualite = game.system.tedeum.config.providence[providence.value].labelM
providence.dice = game.system.tedeum.config.providence[providence.value].diceValue
return providence
}
/* -------------------------------------------- */
filterCompetencesByCarac(key) {
let comp = this.items.filter(item => item.type == 'competence' && item.system.caracteristique == key)
comp.forEach(c => {
if (c.system.isBase) {
c.system.score = this.system.caracteristiques[c.system.caracteristique].value
}
})
return foundry.utils.deepClone( comp || {} )
}
/* -------------------------------------------- */
prepareArbreCompetences() {
let arbre = foundry.utils.deepClone(this.system.caracteristiques)
for (let key in arbre) {
let c = arbre[key]
this.updateCarac(c, key)
c.competences = this.filterCompetencesByCarac(key)
}
return arbre
}
/* -------------------------------------------- */
getItemById(id) {
let item = this.items.find(item => item.id == id);
@ -193,31 +243,6 @@ export class TeDeumActor extends Actor {
return init + (subValue.total / 100)
}
/* -------------------------------------------- */
getSubActors() {
let subActors = [];
for (let id of this.system.subactors) {
subActors.push(duplicate(game.actors.get(id)))
}
return subActors;
}
/* -------------------------------------------- */
async addSubActor(subActorId) {
let subActors = duplicate(this.system.subactors);
subActors.push(subActorId);
await this.update({ 'system.subactors': subActors });
}
/* -------------------------------------------- */
async delSubActor(subActorId) {
let newArray = [];
for (let id of this.system.subactors) {
if (id != subActorId) {
newArray.push(id);
}
}
await this.update({ 'system.subactors': newArray });
}
/* -------------------------------------------- */
async deleteAllItemsByType(itemType) {
let items = this.items.filter(item => item.type == itemType);

View File

@ -35,18 +35,18 @@ export const TEDEUM_CONFIG = {
},
descriptionValeur: {
1: { qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" },
2: { qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Frustre", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" },
3: { qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" },
4: { qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
5: { qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
6: { qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
7: { qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
8: { qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
9: { qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
10: { qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
11: { qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
12: { qualite: "Admirabme", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" },
1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" },
2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Frustre", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" },
3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" },
4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
5: { valeur: 5, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
6: { valeur: 6, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
7: { valeur: 7, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
8: { valeur: 8, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
9: { valeur: 9, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
10: { valeur: 10, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
11: { valeur: 11, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
12: { valeur: 12, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" },
},
degatsArmure : {

View File

@ -160,16 +160,10 @@ export class TeDeumUtility {
/* -------------------------------------------- */
static async preloadHandlebarsTemplates() {
console.log("PRELOAD >>>>>")
const templatePaths = [
'systems/fvtt-te-deum/templates/actors/editor-notes-gm.hbs',
'systems/fvtt-te-deum/templates/items/partial-item-nav.hbs',
'systems/fvtt-te-deum/templates/items/partial-item-equipment.hbs',
'systems/fvtt-te-deum/templates/items/partial-item-description.hbs',
'systems/fvtt-te-deum/templates/dialogs/partial-common-roll-dialog.hbs',
'systems/fvtt-te-deum/templates/dialogs/partial-confront-dice-area.hbs',
'systems/fvtt-te-deum/templates/dialogs/partial-confront-bonus-area.hbs',
'systems/fvtt-te-deum/templates/actors/partial-impacts.hbs',
'systems/fvtt-te-deum/templates/items/partial-item-description.hbs'
]
return loadTemplates(templatePaths);
}

View File

@ -12,4 +12,4 @@ export class TeDeumCompetenceSchema extends foundry.abstract.TypeDataModel {
return schema;
}
}
}

View File

@ -5,8 +5,8 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
const schema = {};
schema.caracteristiques = new fields.SchemaField(
Object.values(SYSTEM.caracteristiques).reduce((obj, caracDef) => {
obj[caracDef.id] =new fields.SchemaField({
Object.values(game.system.tedeum.config.caracteristiques).reduce((obj, caracDef) => {
obj[caracDef.id] = new fields.SchemaField({
value: new fields.NumberField({ ...requiredInteger, initial: 1, min: 1, max: 12 }),
experience: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 10000 }),
});
@ -22,7 +22,7 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
});
schema.localisation = new fields.SchemaField(
Object.values(LOCALISATION).reduce((obj, loc) => {
Object.values(game.system.tedeum.config.LOCALISATION).reduce((obj, loc) => {
obj[loc.id] =new fields.SchemaField({
blessures: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 })
});
@ -40,9 +40,11 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
schema.description = new fields.HTMLField({required: true, blank: true});
schema.connaissances = new fields.HTMLField({required: true, blank: true});
schema.vetements = new fields.HTMLField({required: true, blank: true});
schema.descriptiongraces = new fields.HTMLField({required: true, blank: true});
schema.genre = new fields.StringField({required: true, choices: ["Homme", "Femme"], initial: "Femme"});
schema.age = new fields.StringField({ required: false, blank: true, initial: undefined });
schema.origine = new fields.StringField({ required: false, blank: true, initial: undefined });
schema.statutocial = new fields.StringField({ required: false, blank: true, initial: undefined });
schema.chargestitre = new fields.StringField({ required: false, blank: true, initial: undefined });
schema.charges = new fields.StringField({ required: false, blank: true, initial: undefined });
return schema;

View File

@ -1 +1 @@
MANIFEST-000014
MANIFEST-000022

View File

@ -1,8 +1,3 @@
2024/02/29-22:27:55.155956 7fd55ce006c0 Recovering log #12
2024/02/29-22:27:55.166972 7fd55ce006c0 Delete type=3 #10
2024/02/29-22:27:55.167027 7fd55ce006c0 Delete type=0 #12
2024/02/29-22:28:38.447774 7fd555a006c0 Level-0 table #17: started
2024/02/29-22:28:38.447798 7fd555a006c0 Level-0 table #17: 0 bytes OK
2024/02/29-22:28:38.454343 7fd555a006c0 Delete type=0 #15
2024/02/29-22:28:38.463769 7fd555a006c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
2024/02/29-22:28:38.463797 7fd555a006c0 Manual compaction at level-1 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
2024/05/06-06:55:13.182706 7f87a4a006c0 Recovering log #20
2024/05/06-06:55:13.193417 7f87a4a006c0 Delete type=3 #18
2024/05/06-06:55:13.193524 7f87a4a006c0 Delete type=0 #20

View File

@ -1,8 +1,8 @@
2024/02/29-22:04:33.948367 7fd557e006c0 Recovering log #8
2024/02/29-22:04:33.960203 7fd557e006c0 Delete type=3 #6
2024/02/29-22:04:33.960295 7fd557e006c0 Delete type=0 #8
2024/02/29-22:27:52.990776 7fd555a006c0 Level-0 table #13: started
2024/02/29-22:27:52.990820 7fd555a006c0 Level-0 table #13: 0 bytes OK
2024/02/29-22:27:53.023567 7fd555a006c0 Delete type=0 #11
2024/02/29-22:27:53.023779 7fd555a006c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
2024/02/29-22:27:53.023803 7fd555a006c0 Manual compaction at level-1 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
2024/05/05-20:14:18.376388 7f87a54006c0 Recovering log #16
2024/05/05-20:14:18.386554 7f87a54006c0 Delete type=3 #14
2024/05/05-20:14:18.386658 7f87a54006c0 Delete type=0 #16
2024/05/05-22:07:39.129357 7f879e4006c0 Level-0 table #21: started
2024/05/05-22:07:39.129390 7f879e4006c0 Level-0 table #21: 0 bytes OK
2024/05/05-22:07:39.175466 7f879e4006c0 Delete type=0 #19
2024/05/05-22:07:39.175815 7f879e4006c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)
2024/05/05-22:07:39.175892 7f879e4006c0 Manual compaction at level-1 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!zwC0H39ar5Pl1l92' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000076
MANIFEST-000084

View File

@ -1,7 +1,3 @@
2024/02/29-22:27:55.142370 7fd557e006c0 Recovering log #74
2024/02/29-22:27:55.153628 7fd557e006c0 Delete type=3 #72
2024/02/29-22:27:55.153680 7fd557e006c0 Delete type=0 #74
2024/02/29-22:28:38.441598 7fd555a006c0 Level-0 table #79: started
2024/02/29-22:28:38.441626 7fd555a006c0 Level-0 table #79: 0 bytes OK
2024/02/29-22:28:38.447661 7fd555a006c0 Delete type=0 #77
2024/02/29-22:28:38.454433 7fd555a006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2024/05/06-06:55:13.169191 7f879fe006c0 Recovering log #82
2024/05/06-06:55:13.180412 7f879fe006c0 Delete type=3 #80
2024/05/06-06:55:13.180524 7f879fe006c0 Delete type=0 #82

View File

@ -1,7 +1,7 @@
2024/02/29-22:04:33.935165 7fd556a006c0 Recovering log #70
2024/02/29-22:04:33.945327 7fd556a006c0 Delete type=3 #68
2024/02/29-22:04:33.945415 7fd556a006c0 Delete type=0 #70
2024/02/29-22:27:52.954004 7fd555a006c0 Level-0 table #75: started
2024/02/29-22:27:52.954056 7fd555a006c0 Level-0 table #75: 0 bytes OK
2024/02/29-22:27:52.990626 7fd555a006c0 Delete type=0 #73
2024/02/29-22:27:53.023766 7fd555a006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2024/05/05-20:14:18.363805 7f879f4006c0 Recovering log #78
2024/05/05-20:14:18.374315 7f879f4006c0 Delete type=3 #76
2024/05/05-20:14:18.374420 7f879f4006c0 Delete type=0 #78
2024/05/05-22:07:39.092489 7f879e4006c0 Level-0 table #83: started
2024/05/05-22:07:39.092519 7f879e4006c0 Level-0 table #83: 0 bytes OK
2024/05/05-22:07:39.129220 7f879e4006c0 Delete type=0 #81
2024/05/05-22:07:39.175791 7f879e4006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -3,7 +3,11 @@
font-family: "MailartRubberstamp";
src: url('../fonts/MailartRubberstamp-Regular.woff') format("woff");
}
@font-face {
font-family: "GreatPrimer";
src: url('../fonts/IM_FELL_Great_Primer_Roman.woff') format("woff");
}
:root {
/* =================== 1. ACTOR SHEET FONT STYLES =========== */
--window-header-title-font-size: 1.3rem;
@ -63,6 +67,7 @@
.window-app.sheet .window-content {
margin: 0;
padding: 0;
font-family: "GreatPrimer";
}
.strong-text{
font-weight: bold;
@ -285,7 +290,7 @@ table {border: 1px solid #7a7971;}
}
.fvtt-te-deum .sheet-header h1.charname input {
font-family: MailartRubberstamp;
font-family: "MailartRubberstamp";
font-size: 3rem;
width: 100%;
height: 100%;
@ -296,7 +301,7 @@ table {border: 1px solid #7a7971;}
-webkit-box-flex: 0;
-ms-flex: 0;
flex: 0;
font-family: MailartRubberstamp;
font-family: "MailartRubberstamp";
font-size: 2.2rem;
}
@ -305,6 +310,7 @@ table {border: 1px solid #7a7971;}
.fvtt-te-deum .sheet-body .tab .editor {
height: 100%;
font-size: 0.8rem;
font-family: "GreatPrimer";
}
.editor {
@ -343,6 +349,7 @@ table {border: 1px solid #7a7971;}
border-top: 1px solid #AAA;
border-bottom: 1px solid #AAA;
color: #000000;
font-family: "GreatPrimer";
}
.fvtt-te-deum .tabs .item {
@ -641,6 +648,13 @@ ul, li {
flex-grow: 0;
}
.comp-column-list {
column-count: 4;
}
.comp-li {
max-width: 6rem;
width: 6rem;
}
.description-label {
flex-grow: 2;
margin-left: 4px;
@ -1044,42 +1058,6 @@ ul, li {
border-image-outset: 0px;
}
/* Tooltip container */
.tooltip {
position: relative;
display: inline-block;
/*border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
}
/* Tooltip text */
.tooltip .tooltiptext {
text-align: left;
background: rgba(231, 229, 226, 0.9);
width: 150px;
padding: 3px 0;
font-size: 0.9rem;
/* Position the tooltip text */
top: 1px;
position: absolute;
z-index: 1;
/* Fade in tooltip */
visibility: hidden;
opacity: 0;
transition: opacity 0.3s;
}
.tooltip-nobottom {
border-bottom: unset; /* If you want dots under the hoverable text */
}
/* Show the tooltip text when you mouse over the tooltip container */
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}
.chat-card-button {
box-shadow: inset 0px 1px 0px 0px #a6827e;

View File

@ -3,7 +3,11 @@
font-family: "MailartRubberstamp";
src: url('../fonts/MailartRubberstamp-Regular.woff') format("woff");
}
@font-face {
font-family: "GreatPrimer";
src: url('../fonts/IM_FELL_Great_Primer_Roman.woff') format("woff");
}
:root {
/* =================== 1. ACTOR SHEET FONT STYLES =========== */
--window-header-title-font-size: 1.3rem;
@ -63,6 +67,7 @@
.window-app.sheet .window-content {
margin: 0;
padding: 0;
font-family: "GreatPrimer";
}
.strong-text{
font-weight: bold;
@ -96,6 +101,7 @@ table {border: 1px solid #7a7971;}
grid-column: span 2 / span 2;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-gap: 10px;
grid-gap: 10px;
gap: 10px;
margin: 10px 0;
padding: 0;
@ -260,7 +266,7 @@ table {border: 1px solid #7a7971;}
}
.fvtt-te-deum .sheet-header h1.charname input {
font-family: MailartRubberstamp;
font-family: "MailartRubberstamp";
font-size: 3rem;
width: 100%;
height: 100%;
@ -269,7 +275,7 @@ table {border: 1px solid #7a7971;}
.fvtt-te-deum .sheet-tabs {
flex: 0;
font-family: MailartRubberstamp;
font-family: "MailartRubberstamp";
font-size: 2.2rem;
}
@ -278,6 +284,7 @@ table {border: 1px solid #7a7971;}
.fvtt-te-deum .sheet-body .tab .editor {
height: 100%;
font-size: 0.8rem;
font-family: "GreatPrimer";
}
.editor {
@ -316,6 +323,7 @@ table {border: 1px solid #7a7971;}
border-top: 1px solid #AAA;
border-bottom: 1px solid #AAA;
color: #000000;
font-family: "GreatPrimer";
}
.fvtt-te-deum .tabs .item {
@ -612,6 +620,14 @@ ul, li {
flex-grow: 0;
}
.comp-column-list {
-moz-column-count: 4;
column-count: 4;
}
.comp-li {
max-width: 6rem;
width: 6rem;
}
.description-label {
flex-grow: 2;
margin-left: 4px;
@ -1024,42 +1040,6 @@ ul, li {
border-image-outset: 0px;
}
/* Tooltip container */
.tooltip {
position: relative;
display: inline-block;
/*border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
}
/* Tooltip text */
.tooltip .tooltiptext {
text-align: left;
background: rgba(231, 229, 226, 0.9);
width: 150px;
padding: 3px 0;
font-size: 0.9rem;
/* Position the tooltip text */
top: 1px;
position: absolute;
z-index: 1;
/* Fade in tooltip */
visibility: hidden;
opacity: 0;
transition: opacity 0.3s;
}
.tooltip-nobottom {
border-bottom: unset; /* If you want dots under the hoverable text */
}
/* Show the tooltip text when you mouse over the tooltip container */
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}
.chat-card-button {
box-shadow: inset 0px 1px 0px 0px #a6827e;

View File

@ -13,32 +13,6 @@
<h1 class="charname margin-right"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
<div class="flexrow">
<ul>
<li class="flexrow item" data-item-id="{{spleen.id}}">
<label class="item-name-label-medium">Spleen :</label>
<label class="item-name-label-long">{{spleen.name}}</label>
<div class="item-filler">&nbsp;</div>
{{#if spleen}}
<div class="item-controls item-controls-fixed-full">
<a class="item-control item-add" data-type="trait" title="Create Trait"><i class="fas fa-plus"></i></a>
<a class="item-control item-edit" data-type="trait" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-add" data-type="trait" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</li>
<li class="item flexrow" data-item-id="{{ideal.id}}">
<label class="item-name-label-medium">Ideal :</label>
<label class="item-name-label-long">{{ideal.name}}</label>
<div class="item-filler">&nbsp;</div>
{{#if ideal}}
<div class="item-controls item-controls-fixed-full">
<a class="item-control item-add" data-type="trait" title="Create Trait"><i class="fas fa-plus"></i></a>
<a class="item-control item-edit" data-type="trait" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-add" data-type="trait" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</li>
</ul>
</div>
</div>
@ -50,77 +24,78 @@
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
<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="combat">{{localize "ECRY.ui.healthcombat"}}</a>
{{#if hasCephaly}}
<a class="item" data-tab="cephaly">{{localize "ECRY.ui.cephaly"}}</a>
{{/if}}
<a class="item" data-tab="equipements">{{localize "ECRY.ui.equipment"}}</a>
<a class="item" data-tab="biodata">{{localize "ECRY.ui.bionotes"}}</a>
<a class="item" data-tab="principal">Carac&Santé</a>
<a class="item" data-tab="competences">Compétences</a>
<a class="item" data-tab="combat">Combat</a>
<a class="item" data-tab="equipements">Equipement</a>
<a class="item" data-tab="biodata">Bio&Notes</a>
</nav>
{{!-- Sheet Body --}}
<section class="sheet-body">
{{!-- Skills Tab --}}
<div class="tab principal" data-group="primary" data-tab="principal">
<div class="grid grid-2col">
<ul>
{{#each caracList as |char key|}}
<li class="flexrow">
<label class="item-field-label-medium">{{char.name}}</label>
<select type="text" class="input-numeric-short" name="system.caracteristiques.{{key}}.value"data-dtype="Number" />
{{selectOptions @root.config.descriptionValeur selected=char.value labelAttr="valeur"}}
</select>
<label class="">{{char.qualite}}</label>
<label class="">{{char.dice}}</label>
<label class="">{{char.negativeDice}}</label>
</li>
{{/each}}
</ul>
<ul>
<li class="flexrow">
<label class="item-field-label-medium">Providence</label>
<select type="text" class="input-numeric-short" name="system.providence.value" data-dtype="Number" />
{{selectOptions @root.config.providence selected=providence.value nameAttr="value" valueAttr="value" labelAttr="value"}}
</select>
<label class="item-field-label-long">{{providence.qualite}}</label>
<label class="item-field-label-short">{{providence.dice}}</label>
</li>
<li class="flexrow">
<label class="">Bienveillance</label>
<input class="input-numeric-short" type="text" name="system.bienveillance.value" data-dtype="Number" />
<label class="item-field-label-long"></label>
<label class="item-field-label-short"></label>
</li>
</ul>
</div>
</div>
{{!-- Skills Tab --}}
<div class="tab competences" data-group="primary" data-tab="competences">
<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 impact-title">
<h3><label class="items-title-text">{{localize category.name}} ({{valueAtIndex @root.impactsMalus
categkey}})</label></h3>
</span>
</li>
{{#each category.skilllist as |skill skillkey|}}
<li class="item flexrow list-item">
<span class="item-name-label-long">
<a class="roll-skill-confront" data-category-key="{{categkey}}" data-skill-key="{{skillkey}}">
<i class="fa-regular fa-swords"></i>
</a>
<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>
<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}}
{{/select}}
</select>
</li>
<li class="item flexrow list-item">
<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-category-key="{{categkey}}" data-skill-key="{{skillkey}}" 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-edit" data-type="specialization" title="Edit Item"><i
class="fas fa-edit"></i></a>
<a class="item-control item-delete" data-type="specialization" title="Delete Item"><i
class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{#each arbreCompetences as |carac key|}}
<ul>
<li class="flexrow">
<h3 class="item-field-label-medium" data-tooltip="Caracteristique">{{carac.name}}</h3>
<label class="">{{carac.value}}</label>
<label class="">{{carac.qualite}}</label>
<label class="">{{carac.dice}}</label>
<label class="">{{carac.negativeDice}}</label>
</li>
<ul class="comp-column-list">
{{#each carac.competences as |comp skillkey|}}
<li class="flexrow comp-li">
<label class="item-field-label-medium">{{comp.name}}</label>
<label class="item-field-label-medium">{{comp.system.score}}</label>
</li>
{{/each}}
</ul>
</div>
{{/each}}
</div>
</ul>
</ul>
{{/each}}
</div>
@ -208,12 +183,6 @@
<div class="tab combat" data-group="primary" data-tab="combat">
<div class="flexrow">
{{> systems/fvtt-ecryme/templates/actors/partial-impacts.hbs impacts=system.impacts.physical
impacttype="physical" impactMalus=impactsMalus.physical}}
{{> systems/fvtt-ecryme/templates/actors/partial-impacts.hbs impacts=system.impacts.mental
impacttype="mental" impactMalus=impactsMalus.mental}}
{{> systems/fvtt-ecryme/templates/actors/partial-impacts.hbs impacts=system.impacts.social
impacttype="social" impactMalus=impactsMalus.social}}
</div>
<ul class="item-list alternate-list">

View File

@ -1,138 +0,0 @@
<form class="{{cssClass}}" autocomplete="off">
{{!-- Sheet Header --}}
<header class="sheet-header">
<div class="header-fields">
<div class="flexrow">
<div class="profile-img-container">
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
</div>
<div class="flexcol">
<h1 class="charname margin-right"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
<div class="flexrow">
<ul>
<li class="flexrow item" data-item-id="{{spleen.id}}">
<label class="item-name-label-medium">Description :</label>
<textarea class="textarea-default" rows="3" name="system.base.description">{{system.base.description}}</textarea>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</header>
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
{{#if hasCephaly}}
<a class="item" data-tab="annency">{{localize "ECRY.ui.annency"}}</a>
{{/if}}
{{#if hasBoheme}}
<a class="item" data-tab="boheme">{{localize "ECRY.ui.boheme"}}</a>
{{/if}}
</nav>
{{!-- Sheet Body --}}
<section class="sheet-body">
{{#if hasCephaly}}
{{!-- Cephaly Tab --}}
<div class="tab annency" data-group="primary" data-tab="annency">
<div class="grid grid-2col">
<div>
<h3>{{localize "ECRY.ui.annency"}}</h3>
<ul class="stat-list alternate-list item-list">
<li class="item flexrow list-item">
<span class="item-name-label-short">
{{localize "ECRY.ui.iscollective"}}
</span>
<input type="checkbox" class="item-field-label-short" name="system.base.iscollective"
value="{{system.base.iscollective}}" {{checked system.base.iscollective}} />
<span class="item-name-label-short">
{{localize "ECRY.ui.ismultiple"}}
</span>
<input type="checkbox" class="item-field-label-short" name="system.base.ismultiple"
value="{{system.base.ismultiple}}" {{checked system.base.ismultiple}} />
</li>
</ul>
<h3>{{localize "ECRY.ui.characters"}}</h3>
<ul class="stat-list alternate-list item-list">
{{#each characters as |character id|}}
<li class="item flexrow " data-actor-id="{{character.id}}" >
<img class="item-name-img" src="{{character.img}}" />
<span class="item-name-label competence-name">{{character.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control actor-edit" title="Edit Actor"><i class="fas fa-edit"></i></a>
<a class="item-control actor-delete" title="Delete Actor"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div>
<h3>{{localize "ECRY.ui.location"}}</h3>
<ul class="stat-list alternate-list item-list">
{{#each system.base.location as |location index|}}
<li class="item flexrow list-item">
<span class="item-name-label-medium">
{{localize "ECRY.ui.location"}} {{index}}
</span>
<textarea class="textarea-default" rows="3" name="system.base.location.{{index}}">{{location}}</textarea>
</li>
{{/each}}
<li class="item flexrow list-item">
<span class="item-name-label-medium">
{{localize "ECRY.ui.enhancements"}}
</span>
<textarea class="textarea-default" rows="3" name="system.base.enhancements">{{system.base.enhancements}}</textarea>
</li>
</ul>
</div>
</div>
</div>
{{/if}}
{{#if hasBoheme}}
<div class="tab boheme" data-group="primary" data-tab="boheme">
<h3>{{localize "ECRY.ui.oniricform"}}</h3>
<ul class="stat-list alternate-list item-list">
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.name"}}</span>
<input type="text" class="item-field-label-long" name="system.boheme.name" value="{{system.boheme.name}}" data-dtype="String"/>
</li>
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.ideals"}}</span>
<input type="text" class="item-field-label-long" name="system.boheme.ideals" value="{{system.boheme.ideals}}" data-dtype="String"/>
</li>
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.politic"}}</span>
<input type="text" class="item-field-label-long" name="system.boheme.politic" value="{{system.boheme.politic}}" data-dtype="String"/>
</li>
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.description"}}</span>
<textarea class="textarea-default" rows="3" name="system.boheme.description">{{system.boheme.description}}</textarea>
</li>
</ul>
</div>
{{/if}}
</section>
</form>

View File

@ -1,17 +0,0 @@
<div class="impact-box">
<div class="impact-title">
<label class="items-title-text">{{localize (concat "ECRY.ui.impact" impacttype)}} ({{impactMalus}})</label>
</div>
<ul>
{{#each impacts as |value key|}}
<li class="flexrow" data-impact-type="{{../impacttype}}">
<span class="item-field-label-medium"><label>{{localize (concat "ECRY.ui." key)}}</label></span>
<a class="impact-modify" data-impact-modifier="+1" data-impact-type="{{../impacttype}}" data-impact-level="{{key}}"><i class="fas fa-plus-square"></i></a>
<span class="">{{value}}</span>
<a class="impact-modify" data-impact-modifier="-1" data-impact-type="{{../impacttype}}" data-impact-level="{{key}}"><i class="fas fa-minus-square"></i></a>
</li>
{{/each}}
</ul>
</div>