Initial import

This commit is contained in:
LeRatierBretonnien 2022-12-26 20:46:03 +01:00
parent ad7757da76
commit e3677e9739
7 changed files with 94 additions and 133 deletions

View File

@ -7,7 +7,7 @@ import { HeritiersRollDialog } from "./heritiers-roll-dialog.js";
export class HeritiersCommands { export class HeritiersCommands {
static init() { static init() {
if (!game.system.hawkmoon.commands) { if (!game.system.lesheritiers.commands) {
//const HeritiersCommands = new HeritiersCommands() //const HeritiersCommands = new HeritiersCommands()
//HeritiersCommands.registerCommand({ path: ["/char"], func: (content, msg, params) => HeritiersCommands.createChar(msg), descr: "Create a new character" }); //HeritiersCommands.registerCommand({ path: ["/char"], func: (content, msg, params) => HeritiersCommands.createChar(msg), descr: "Create a new character" });
//game.system.mournblade.commands = HeritiersCommands //game.system.mournblade.commands = HeritiersCommands

View File

@ -2,6 +2,11 @@
export const HERITIERS_CONFIG = { export const HERITIERS_CONFIG = {
competenceCategorie : { competenceCategorie : {
"utile": "Utile",
"futile": "Futile"
},
competenceProfil : {
"aventurier": "Aventurier", "aventurier": "Aventurier",
"roublard": "Roublard", "roublard": "Roublard",
"combattant": "Combattant", "combattant": "Combattant",

View File

@ -62,6 +62,7 @@ export class HeritiersItemSheet extends ItemSheet {
limited: this.object.limited, limited: this.object.limited,
options: this.options, options: this.options,
owner: this.document.isOwner, owner: this.document.isOwner,
config: game.system.lesheritiers.config,
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}), description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
mr: (this.object.type == 'specialisation'), mr: (this.object.type == 'specialisation'),
isGM: game.user.isGM isGM: game.user.isGM

View File

@ -17,6 +17,7 @@ import { HeritiersCombat } from "./heritiers-combat.js";
import { HeritiersItem } from "./heritiers-item.js"; import { HeritiersItem } from "./heritiers-item.js";
import { HeritiersAutomation } from "./heritiers-automation.js"; import { HeritiersAutomation } from "./heritiers-automation.js";
import { HeritiersTokenHud } from "./heritiers-hud.js"; import { HeritiersTokenHud } from "./heritiers-hud.js";
import { HERITIERS_CONFIG } from "./heritiers-config.js";
/* -------------------------------------------- */ /* -------------------------------------------- */
/* Foundry VTT Initialization */ /* Foundry VTT Initialization */
@ -47,9 +48,10 @@ Hooks.once("init", async function () {
CONFIG.Combat.documentClass = HeritiersCombat CONFIG.Combat.documentClass = HeritiersCombat
CONFIG.Actor.documentClass = HeritiersActor CONFIG.Actor.documentClass = HeritiersActor
CONFIG.Item.documentClass = HeritiersItem CONFIG.Item.documentClass = HeritiersItem
game.system.hawkmoon = { game.system.lesheritiers = {
HeritiersUtility, HeritiersUtility,
HeritiersAutomation HeritiersAutomation,
config: HERITIERS_CONFIG
} }
/* -------------------------------------------- */ /* -------------------------------------------- */

View File

@ -1,23 +1,27 @@
/* ==================== (A) Fonts ==================== */ /* ==================== (A) Fonts ==================== */
/* ==================== (A) Fonts ==================== */ /* ==================== (A) Fonts ==================== */
@font-face { @font-face {
font-family: "Charlemagne"; font-family: Charlemagne;
src: url('../assets/fonts/CharlemagneStd-Bold.otf') format("otf"); src: url('../assets/fonts/CharlemagneStd-Bold.otf') format("otf");
} }
@font-face {
font-family: GismondaFG;
src: url('../assets/fonts/GismondaFG.woff') format("woff");
}
:root { :root {
/* =================== 1. ACTOR SHEET FONT STYLES =========== */ /* =================== 1. ACTOR SHEET FONT STYLES =========== */
--window-header-font-family: Charlemagne; --window-header-font-family: GismondaFG;
--window-header-title-font-size: 1.1rem; --window-header-title-font-size: 1.1rem;
--window-header-title-font-weight: normal; --window-header-title-font-weight: normal;
--window-header-title-color: #f5f5f5; --window-header-title-color: #f5f5f5;
--major-button-font-family: Charlemagne; --major-button-font-family: GismondaFG;
--major-button-font-size: 1.05rem; --major-button-font-size: 1.05rem;
--major-button-font-weight: normal; --major-button-font-weight: normal;
--major-button-color: #dadada; --major-button-color: #dadada;
--tab-header-font-family: Charlemagne; --tab-header-font-family: GismondaFG;
--tab-header-font-size: 1.0rem; --tab-header-font-size: 1.0rem;
--tab-header-font-weight: 700; --tab-header-font-weight: 700;
--tab-header-color: #403f3e; --tab-header-color: #403f3e;
@ -44,7 +48,7 @@
/*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/ /*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/
/* Global styles & Font */ /* Global styles & Font */
.window-app { .window-app {
font-family: Charlemagne; font-family: GismondaFG;
text-align: justify; text-align: justify;
font-size: 12px; font-size: 12px;
letter-spacing: 1px; letter-spacing: 1px;
@ -53,19 +57,20 @@
} }
/* Fonts */ /* Fonts */
.window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item { .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item {
font-family: "Charlemagne"; font-family: GismondaFG;
font-size: 0.8rem; font-size: 0.8rem;
} /* For title, sidebar character and scene */ } /* For title, sidebar character and scene */
.sheet header.sheet-header h1 input { .sheet header.sheet-header h1 input {
font-family: "Charlemagne"; font-family: GismondaFG;
font-size: 0.8rem; font-size: 0.8rem;
color: lightgray; color: rgb(41, 38, 38);
} }
.sheet nav.sheet-tabs { .sheet nav.sheet-tabs {
font-family: "Charlemagne"; font-family: "GismondaFG";
font-size: 0.8rem; font-size: 0.8rem;
color: #151c1f; color: #151c1f;
} /* For nav and title */ } /* For nav and title */
.window-app input, .fvtt-les-heritiers .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue, select, button, .item-checkbox, #sidebar, #players, #navigation #nav-toggle { .window-app input, .fvtt-les-heritiers .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue, select, button, .item-checkbox, #sidebar, #players, #navigation #nav-toggle {
font-size: 0.8rem; font-size: 0.8rem;
} }
@ -73,7 +78,7 @@
background-color: rgb(68, 25, 25); background-color: rgb(68, 25, 25);
} }
.fvtt-les-heritiers .sheet-header input, .fvtt-les-heritiers .sheet-header select { .fvtt-les-heritiers .sheet-header input, .fvtt-les-heritiers .sheet-header select {
color: lightgray; color: rgb(41, 38, 38);
} }
.window-header{ .window-header{
background: rgba(0,0,0,0.75); background: rgba(0,0,0,0.75);
@ -236,13 +241,13 @@ table {border: 1px solid #7a7971;}
-ms-flex-pack: start; -ms-flex-pack: start;
justify-content: flex-start; justify-content: flex-start;
margin-bottom: 10px; margin-bottom: 10px;
background-image: url("../assets/ui/hawkmoon_background_01.png"); background-image: url("../assets/ui/fiche_background_simple_01.webp");
} }
.background-sheet-header { .background-sheet-header {
background-image: url("../assets/ui/hawkmoon_background_01.png"); background-image: url("../assets/ui/fiche_background_simple_01.webp");
background-blend-mode: soft-light; background-blend-mode: soft-light;
color: lightgray; color: rgb(41, 38, 38);
} }
.fvtt-les-heritiers .sheet-header .profile-img { .fvtt-les-heritiers .sheet-header .profile-img {
@ -298,8 +303,8 @@ table {border: 1px solid #7a7971;}
border-bottom: 0; border-bottom: 0;
font-weight: bold; font-weight: bold;
font-size: 2rem; font-size: 2rem;
font-family: "Charlemagne"; font-family: GismondaFG;
color: lightgray; color: rgb(41, 38, 38);
} }
.fvtt-les-heritiers .sheet-header h1.charname input { .fvtt-les-heritiers .sheet-header h1.charname input {
@ -307,9 +312,9 @@ table {border: 1px solid #7a7971;}
height: 100%; height: 100%;
margin: 0; margin: 0;
font-weight: bold; font-weight: bold;
font-family: "Charlemagne"; font-family: GismondaFG;
font-size: 2rem; font-size: 2rem;
color: lightgray; color: rgb(41, 38, 38);
} }
.fvtt-les-heritiers .sheet-tabs { .fvtt-les-heritiers .sheet-tabs {
@ -371,6 +376,7 @@ table {border: 1px solid #7a7971;}
.fvtt-les-heritiers .tabs .item { .fvtt-les-heritiers .tabs .item {
/*line-height: 40px;*/ /*line-height: 40px;*/
font-weight: bold; font-weight: bold;
font-family: GismondaFG;
} }
.fvtt-les-heritiers .tabs .item.active { .fvtt-les-heritiers .tabs .item.active {
@ -423,7 +429,7 @@ table {border: 1px solid #7a7971;}
/* Sheet */ /* Sheet */
.window-app.sheet .window-content .sheet-header{ .window-app.sheet .window-content .sheet-header{
/*background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/ /*background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/
background: url("../assets/ui/pc_sheet_bg.webp"); background: url("../assets/ui/fiche_background_simple_01.webp");
background-repeat: repeat; background-repeat: repeat;
} }
@ -438,7 +444,7 @@ table {border: 1px solid #7a7971;}
.window-app .window-content, .window-app.sheet .window-content .sheet-body{ .window-app .window-content, .window-app.sheet .window-content .sheet-body{
font-size: 0.8rem; font-size: 0.8rem;
background: url("../assets/ui/pc_sheet_bg.webp"); background: url("../assets/ui/fiche_background_simple_01.webp");
background-repeat: repeat-y; background-repeat: repeat-y;
color: black; color: black;
} }
@ -467,8 +473,8 @@ table {border: 1px solid #7a7971;}
border-top: 0 none; border-top: 0 none;
border-bottom: 0 none; border-bottom: 0 none;
/*background-color:#2e5561;*/ /*background-color:#2e5561;*/
color: #151c1f; color: #cbdaa3;
/*background-image: url("../assets/ui/hawkmoon_background_02.png");*/ background-image: url("../assets/ui/bandeau_01.webp");
} }
/* background: rgb(245,245,240) url("../images/ui/fond4.webp") repeat left top;*/ /* background: rgb(245,245,240) url("../images/ui/fond4.webp") repeat left top;*/
@ -1410,6 +1416,12 @@ ul, li {
min-width: 8rem; min-width: 8rem;
} }
.item-field-label-long2 { .item-field-label-long2 {
padding-top: 6px;
flex-grow:1;
max-width: 14rem;
min-width: 14rem;
}
.item-field-label-long3 {
padding-top: 6px; padding-top: 6px;
flex-grow:1; flex-grow:1;
max-width: 20rem; max-width: 20rem;

View File

@ -215,21 +215,27 @@
}, },
"types": [ "types": [
"talenfeet", "talenfeet",
"avantage",
"desavangate",
"capacitenaturelle", "capacitenaturelle",
"pouvoir", "pouvoir",
"atoutfeerique", "atoutfeerique",
"competence", "competence",
"protection", "arme",
"monnaie", "monnaie",
"equipement", "equipement",
"artefact",
"ressource",
"contact" "contact"
], ],
"fee": { "fee": {
"feetype": 0, "feetype": 0,
"description": "" "description": ""
}, },
"avantage": {
"description": ""
},
"desavantage": {
"description": ""
},
"capacitenaturelle": { "capacitenaturelle": {
"description": "" "description": ""
}, },
@ -244,32 +250,9 @@
"profil": "", "profil": "",
"niveau": 0, "niveau": 0,
"predilection": false, "predilection": false,
"specialites": "", "specialites": [],
"description": "" "description": ""
}, },
"historique": {
"bonusmalus": "",
"templates": [
"base"
]
},
"profil": {
"exemples": "",
"attribut1": "",
"attribut2": "",
"attribut3": "",
"competences": "",
"talentsinitie": "",
"prerequisaguerri": "",
"talentsaguerri": "",
"prerequismaitre": "",
"talentsmaitre": "",
"celluleinfo": "",
"equipement": "",
"templates": [
"base"
]
},
"equipement": { "equipement": {
"templates": [ "templates": [
"base", "base",
@ -294,37 +277,11 @@
"basequip" "basequip"
] ]
}, },
"protection": {
"protection": 0,
"adversitepoids" :0,
"templates": [
"base",
"basequip"
]
},
"monnaie": { "monnaie": {
"templates": [ "templates": [
"base", "base",
"basequip" "basequip"
] ]
},
"artefact": {
"complexite": 0,
"branche": "",
"branche2": "none",
"dureerealisation": "",
"tempsroute": "",
"effetdejeu": "",
"defautcourant": "",
"autrescarac": "",
"avantagespossibles": "",
"avantages": "",
"competences": "",
"templates": [
"base",
"basequip"
]
} }
} }
} }

View File

@ -11,78 +11,62 @@
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="flexrow item"> <li class="flexrow item">
<label class="generic-label item-field-label-long">Niveau </label> <label class="generic-label item-field-label-long2">Catégorie </label>
<select class="status-small-label color-class-common item-field-label-long" type="text"
name="system.categorie" value="{{system.categorie}}" data-dtype="string">
{{#select system.categorie}}
{{#each config.competenceCategorie as |categ cKey|}}
<option value="{{cKey}}">{{categ}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Profil </label>
<select class="status-small-label color-class-common item-field-label-long" type="text"
name="system.profil" value="{{system.profil}}" data-dtype="string">
{{#select system.profil}}
{{#each config.competenceProfil as |profil pKey|}}
<option value="{{pKey}}">{{profil}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Compétence de Prédilection ? </label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.predilection" {{checked system.predilection}}/>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Niveau </label>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short" <input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.niveau" value="{{system.niveau}}" data-dtype="Number" /> name="system.niveau" value="{{system.niveau}}" data-dtype="Number" />
</li> </li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">Attribut 1 </label>
<select class="status-small-label color-class-common item-field-label-long" type="text"
name="system.attribut1" value="{{system.attribut1}}" data-dtype="string">
{{#select system.attribut1}}
{{#each attributs as |attrLabel attrKey|}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">Attribut 2 </label>
<select class="status-small-label color-class-common item-field-label-long" type="text"
name="system.attribut2" value="{{system.attribut2}}" data-dtype="string">
<option value="none">Aucun</option>
{{#select system.attribut2}}
{{#each attributs as |attrLabel attrKey|}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">Attribut 3 </label>
<select class="status-small-label color-class-common item-field-label-long" type="text"
name="system.attribut3" value="{{system.attribut3}}" data-dtype="string">
<option value="none">Aucun</option>
{{#select system.attribut3}}
{{#each attributs as |attrLabel attrKey|}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow item"> <li class="flexrow item">
<h3>Prédilections</h3> <h3>Spécialités</h3>
</li> </li>
<li class="flexrow item"> <li class="flexrow item">
<ul> <ul>
{{#each system.predilections as |predilection key|}} {{#each system.specialites as |specialite key|}}
<li class="prediction-item item flexrow" data-prediction-index="{{key}}"> <li class="specialite-item item flexrow" data-specialite-index="{{key}}">
<input type="text" class="padd-right color-class-common edit-predilection" value="{{predilection.name}}" <input type="text" class="padd-right color-class-common edit-specialite" value="{{specialite.name}}"
data-dtype="String" /> data-dtype="String" />
</li> </li>
<li class="prediction-item item flexrow" data-prediction-index="{{key}}"> <li class="specialite-item item flexrow" data-specialite-index="{{key}}">
<textarea row="4" type="text" class="padd-right color-class-common edit-predilection-description" <textarea row="4" type="text" class="padd-right color-class-common edit-specialite-description"
data-dtype="String">{{predilection.description}}</textarea> data-dtype="String">{{specialite.description}}</textarea>
</li>
<li class="prediction-item item flexrow" data-prediction-index="{{key}}">
<label class="generic-label">Acquise ? <input class="predilection-acquise" type="checkbox" {{checked
predilection.acquise}} /></label>
<label class="generic-label">Maitrise ? <input class="predilection-maitrise" type="checkbox" {{checked
predilection.maitrise}} /></label>
<label class="generic-label">Utilisée ? <input class="predilection-used" type="checkbox" {{checked
predilection.used}} /></label>
<a class="item-control delete-prediction" title="Supprimer une predilection"><i
class="fas fa-trash"></i></a>
</li> </li>
<hr> <hr>
{{/each}} {{/each}}
</ul> </ul>
<li class="flexrow item"> <li class="flexrow item">
<button id="add-predilection" class="chat-card-button">Ajouter une prédilection</button> <button id="add-specialite" class="chat-card-button">Ajouter une Spécialité</button>
</li> </li>
</ul> </ul>
</div> </div>