Compare commits

..

9 Commits

24 changed files with 635 additions and 74 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
assets/icons/erudit.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

BIN
assets/icons/gentleman.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
assets/icons/profil.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
assets/icons/roublard.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

@@ -40,8 +40,10 @@ export class HeritiersActorSheet extends ActorSheet {
skills: this.actor.getSkills(),
utileSkills :this.actor.organizeUtileSkills(),
futileSkills :this.actor.organizeFutileSkills(),
contacts: this.actor.organizeContacts(),
armes: duplicate(this.actor.getWeapons()),
monnaies: duplicate(this.actor.getMonnaies()),
pouvoirs: duplicate(this.actor.getPouvoirs()),
fee: duplicate(this.actor.getFee() || {} ),
protections: duplicate(this.actor.getArmors()),
combat: this.actor.getCombatValues(),
@@ -50,9 +52,13 @@ export class HeritiersActorSheet extends ActorSheet {
atouts: duplicate(this.actor.getAtouts()),
capacites: duplicate(this.actor.getCapacites()),
desavantages: duplicate(this.actor.getDesavantages()),
profils: duplicate(this.actor.getProfils()),
pvMalus: this.actor.getPvMalus(),
initiative: this.actor.getFlag("world", "last-initiative") || -1,
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
revesetranges: await TextEditor.enrichHTML(this.object.system.biodata.revesetranges, {async: true}),
secretsdecouverts: await TextEditor.enrichHTML(this.object.system.biodata.secretsdecouverts, {async: true}),
questions: await TextEditor.enrichHTML(this.object.system.biodata.questions, {async: true}),
habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}),
options: this.options,
owner: this.document.isOwner,
@@ -135,6 +141,16 @@ export class HeritiersActorSheet extends ActorSheet {
let compId = li.data("item-id")
this.actor.rollCompetence(compId)
})
html.find('.roll-attaque-arme').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")
this.actor.rollAttaqueArme(armeId)
})
html.find('.roll-pouvoir').click((event) => {
const li = $(event.currentTarget).parents(".item")
let pouvoirId = li.data("item-id")
this.actor.rollPouvoir(pouvoirId)
})
html.find('.item-add').click((event) => {
const itemType = $(event.currentTarget).data("type")

View File

@@ -39,7 +39,12 @@ export class HeritiersActor extends Actor {
if (data.type == 'personnage') {
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
data.items = skills.map(i => i.toObject())
data.items = []
for (let skill of skills) {
if (skill.system.categorie == "utile") {
data.items.push(skill.toObject())
}
}
}
if (data.type == 'creature') {
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.skills-creatures")
@@ -104,7 +109,7 @@ export class HeritiersActor extends Actor {
/* ----------------------- --------------------- */
getEquipments() {
return this.items.filter(item => item.type == "equipement")
return this.items.filter(item => item.type == "equipement" || item.type == "accessoire")
}
getAvantages() {
return this.items.filter(item => item.type == "avantage")
@@ -133,6 +138,14 @@ export class HeritiersActor extends Actor {
getFee() {
return this.items.find(item => item.type == "fee")
}
getProfils() {
return this.items.filter(item => item.type == "profil")
}
getPouvoirs() {
let pouvoirs = this.items.filter(item => item.type == "pouvoir") || []
HeritiersUtility.sortArrayObjectsByName(pouvoirs)
return pouvoirs
}
/* -------------------------------------------- */
getSkills() {
let comp = []
@@ -145,6 +158,18 @@ export class HeritiersActor extends Actor {
return HeritiersUtility.sortByName(comp)
}
/* -------------------------------------------- */
prepareUtileSkill(item) {
let specList = []
if (item.system.categorie == "utile") {
for (let spec of item.system.specialites) {
specList.push(spec.name)
}
}
item.nbSpec = specList.length
item.specList = specList.toString()
}
/* -------------------------------------------- */
organizeUtileSkills() {
let comp = {}
@@ -154,12 +179,28 @@ export class HeritiersActor extends Actor {
for (let item of this.items) {
if (item.type == "competence") {
if (item.system.categorie == "utile") {
this.prepareUtileSkill(item)
comp[item.system.profil].push(item)
}
}
}
for (let key in comp) {
HeritiersUtility.sortArrayObjectsByName(comp[key])
}
return comp
}
/* -------------------------------------------- */
organizeContacts() {
let contactList = {}
for (let item of this.items) {
if (item.type == "contact") {
let c = contactList[item.system.contacttype] || { label: game.system.lesheritiers.config.contactType[item.system.contacttype], list: [] }
c.list.push(item)
contactList[item.system.contacttype] = c
}
}
return contactList
}
/* -------------------------------------------- */
organizeFutileSkills() {
@@ -171,6 +212,7 @@ export class HeritiersActor extends Actor {
}
}
}
HeritiersUtility.sortArrayObjectsByName(comp)
return HeritiersUtility.sortByName(comp)
}
@@ -463,15 +505,18 @@ export class HeritiersActor extends Actor {
rollData.tricherie = this.getTricherie()
rollData.heritage = this.getHeritages()
rollData.useTricherie = false
rollData.useSpecialite = false
rollData.useHeritage = false
rollData.pvMalus = this.getPvMalus()
if (compId) {
rollData.competence = duplicate(this.items.get(compId) || {})
this.prepareUtileSkill(rollData.competence)
rollData.actionImg = rollData.competence?.img
}
if (compName) {
rollData.competence = duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
this.prepareUtileSkill(rollData.competence)
rollData.actionImg = rollData.competence?.img
}
return rollData
@@ -479,7 +524,7 @@ export class HeritiersActor extends Actor {
/* -------------------------------------------- */
async rollInitiative() {
let rollData = this.getCommonRollData(undefined, "Art de la guerre")
rollData.mode = "init"
rollData.mode = "init"
if (this.system.caracteristiques["san"].value > this.system.caracteristiques["per"].value) {
rollData.caracKey = "san"
} else {
@@ -489,11 +534,11 @@ export class HeritiersActor extends Actor {
let rollDialog = await HeritiersRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollCarac(key, isInit = false) {
let rollData = this.getCommonRollData()
rollData.mode = "carac"
rollData.mode = "carac"
rollData.carac = this.system.caracteristiques[key]
rollData.caracKey = key
let rollDialog = await HeritiersRollDialog.create(this, rollData)
@@ -508,7 +553,43 @@ export class HeritiersActor extends Actor {
let rollDialog = await HeritiersRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollAttaqueArme(armeId) {
let arme = this.items.get(armeId)
if (arme) {
let competenceName = "Tir"
let key = "prec"
if (arme.system.categorie == "blanche" || arme.system.categorie == "improvise") {
competenceName = "Mêlée"
key = "agi"
}
let rollData = this.getCommonRollData(undefined, competenceName)
rollData.carac = this.system.caracteristiques[key]
rollData.caracKey = key
rollData.arme = duplicate(arme)
rollData.mode = "arme"
let rollDialog = await HeritiersRollDialog.create(this, rollData)
rollDialog.render(true)
}
}
/* -------------------------------------------- */
async rollPouvoir(pouvoirId) {
let pouvoir = this.items.get(pouvoirId)
if (pouvoir) {
let rollData = this.getCommonRollData(undefined, undefined)
if ( pouvoir.system.feeriemasque != "autre") {
rollData.pouvoirBase = duplicate(this.system.rang[pouvoir.system.feeriemasque.toLowerCase()])
rollData.pouvoirBase.label = "Féerie"
rollData.carac = duplicate(this.system.caracteristiques[pouvoir.system.carac])
rollData.caracKey = pouvoir.system.carac
}
rollData.pouvoir = duplicate(pouvoir)
rollData.mode = "pouvoir"
let rollDialog = await HeritiersRollDialog.create(this, rollData)
rollDialog.render(true)
}
}
/* -------------------------------------------- */
async rollArmeOffensif(armeId) {
let arme = this.items.get(armeId)

View File

@@ -8,7 +8,7 @@ export const HERITIERS_CONFIG = {
"prec": "Précision",
"esp": "Esprit",
"per": "Perception",
"pres": "Présence",
"pres": "Prestance",
"san": "Sang-Froid"
},
@@ -16,6 +16,13 @@ export const HERITIERS_CONFIG = {
"utile": "Utile",
"futile": "Futile"
},
contactType: {
contact: "Contact",
allie: "Allié",
ennemi: "Ennemi",
interet: "Personne d'interêt"
},
competenceProfil : {
"aventurier": "Aventurier",
@@ -27,7 +34,8 @@ export const HERITIERS_CONFIG = {
},
baseTestPouvoir: {
"feerie": "Féerie",
"Masque": "Masque"
"masque": "Masque",
"autre": "Autre"
},
resistancePouvoir: {
"aucune": "Aucune",

View File

@@ -15,8 +15,9 @@ export const defaultItemImg = {
arme: "systems/fvtt-les-heritiers/assets/icons/weapon.webp",
accessoire: "systems/fvtt-les-heritiers/assets/icons/item.webp",
protection: "systems/fvtt-les-heritiers/assets/icons/armor.webp",
fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp"
fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp",
profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp",
equipement: "systems/fvtt-les-heritiers/assets/icons/equipement.webp",
}
/**

View File

@@ -90,6 +90,9 @@ export class HeritiersRollDialog extends Dialog {
html.find('#useTricherie').change((event) => {
this.rollData.useTricherie = event.currentTarget.checked
})
html.find('#useSpecialite').change((event) => {
this.rollData.useSpecialite = event.currentTarget.checked
})
html.find('#useHeritage').change((event) => {
this.rollData.useHeritage = event.currentTarget.checked
})

View File

@@ -55,6 +55,21 @@ export class HeritiersUtility {
return 0;
})
}
/* -------------------------------------------- */
static sortArrayObjectsByName(myArray) {
myArray.sort((a, b) => {
let fa = a.name.toLowerCase();
let fb = b.name.toLowerCase();
if (fa < fb) {
return -1;
}
if (fa > fb) {
return 1;
}
return 0;
})
}
/* -------------------------------------------- */
static getSkills() {
@@ -345,16 +360,15 @@ export class HeritiersUtility {
//console.log("BEFORE COMP", rollData)
if (rollData.competence) {
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.carac.value}+${rollData.competence.system.niveau}+${rollData.bonusMalusContext}+${compmod}`
let specBonus = (rollData.useSpecialite) ? 1 : 0
rollData.diceFormula += `+${rollData.carac.value}+${rollData.competence.system.niveau}+${specBonus}+${rollData.bonusMalusContext}+${compmod}`
} else if (rollData.pouvoirBase) {
rollData.diceFormula += `+${rollData.pouvoirBase.value}+${rollData.bonusMalusContext}`
} else {
rollData.diceFormula += `+${rollData.carac.value}+${rollData.bonusMalusContext}`
}
rollData.diceFormula += `+${rollData.pvMalus}`
if (rollData.arme && rollData.arme.type == "arme") {
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
}
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = myRoll
@@ -366,6 +380,17 @@ export class HeritiersUtility {
actor.setFlag("world", "last-initiative", rollData.finalResult)
}
// Compute damages, cf p 187
if (rollData.arme && rollData.isSuccess) {
rollData.degatsArme = rollData.arme.system.degats + rollData.marge
if (rollData.arme.system.categorie == "lourde" ) {
rollData.degatsArme += actor.system.caracteristiques.for.value
}
if (rollData.arme.system.categorie == "blanche" || rollData.arme.system.categorie == "improvise" ) {
rollData.degatsArme += Math.max(0, actor.system.caracteristiques.for.value - 2)
}
}
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
}, rollData)

File diff suppressed because one or more lines are too long

View File

@@ -647,7 +647,12 @@ ul, li {
margin: 4px 0;
padding-top: 7px;
}
.roll-style {
background-color: rgba(56, 32, 32, 0.4);
border-radius: 0.25rem;
padding-left: 0.25rem;
margin-right: 0.25rem;
}
.short-label {
flex-grow: 1;
}
@@ -1426,6 +1431,10 @@ ul, li {
max-width: 14rem;
min-width: 14rem;
}
.item-field-label-long2-img {
max-width: 16rem;
min-width: 16rem;
}
.item-field-label-long3 {
padding-top: 6px;
flex-grow:1;

View File

@@ -1,7 +1,7 @@
{
"id": "fvtt-les-heritiers",
"description": "Les Héritiers pour FoundryVTT",
"version": "10.0.14",
"version": "10.0.22",
"authors": [
{
"name": "Uberwald/LeRatierBretonnien",
@@ -19,7 +19,7 @@
"gridUnits": "m",
"license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/raw/branch/master/system.json",
"download": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/archive/fvtt-les-heritiers-10.0.14.zip",
"download": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/archive/fvtt-les-heritiers-10.0.22.zip",
"languages": [
{
"lang": "fr",

View File

@@ -9,13 +9,20 @@
"biodata": {
"name": "",
"activite":"",
"profilmajeur": "",
"profilmineur": "",
"nomhumain": "",
"activites": "",
"fortune": 0,
"traitscaracteres": "",
"tailledemasquee": "",
"taillemasquee": "",
"poidsmasquee": "",
"poidsdemasquee": "",
"apparencemasquee": "",
"apparencedemasquee": "",
"titrefamille": "",
"langues": "",
"factionfeerique": "",
"typetaille": "",
"age": 0,
"poids": "",
"taille": "",
@@ -23,6 +30,9 @@
"sexe": "",
"yeux": "",
"description": "",
"revesetranges": "",
"secretsdecouverts": "",
"questions": "",
"habitat": "",
"notes": "",
"statut": "",
@@ -87,8 +97,8 @@
"max": 1
},
"pres": {
"label": "Présence",
"labelnorm": "presence",
"label": "Prestance",
"labelnorm": "prestance",
"abbrev": "pre",
"kind": "mental",
"value": 1,
@@ -233,15 +243,17 @@
"competence",
"arme",
"protection",
"equipement",
"accessoire",
"contact",
"profil"
],
"profil": {
"profiltype": "majeur",
"description": ""
},
"contact": {
"feetype": 0,
"contacttype": "",
"description": ""
},
"fee": {
@@ -281,6 +293,8 @@
"activation": "",
"istest": false,
"feeriemasque": "feerie",
"zoneffet": "",
"testautre": "",
"carac": "pre",
"duree": "",
"cibles": "",

View File

@@ -62,10 +62,12 @@
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="competences">Compétences</a>
<a class="item" data-tab="fee">Fée</a>
<a class="item" data-tab="combat">Combat</a>
<a class="item" data-tab="equipement">Equipement</a>
<a class="item" data-tab="fee">Fée</a>
<a class="item" data-tab="biodata">Bio&Notes</a>
<a class="item" data-tab="contact">Contacts</a>
<a class="item" data-tab="biodata">Bio</a>
<a class="item" data-tab="notes">Notes</a>
</nav>
{{!-- Sheet Body --}}
@@ -90,9 +92,9 @@
</li>
{{#each skillList as |skill key|}}
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
<span class="item-field-label-long"><a class="roll-competence item-field-label-short"
<span class="item-field-label-long roll-style"><a class="roll-competence item-field-label-short"
data-attr-key="tochoose">{{skill.name}}</a></span>
<select class="item-field-label-short" type="text"
<select class="item-field-label-short edit-item-data" type="text"
data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number">
{{#select skill.system.niveau}}
{{> systems/fvtt-les-heritiers/templates/partial-list-niveau.html}}
@@ -101,12 +103,11 @@
<input type="checkbox" class="item-field-label-short" name="skill.system.predilection" {{checked skill.system.predilection}}/>
{{#each skill.system.specialites as |specialite key|}}
<span class="item-field-label-long2">{{specialite.name}}</span>
{{/each}}
<span class="item-field-label-long2">{{skill.specList}}</span>
<div class="item-controls item-controls-fixed">
<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}}
@@ -127,7 +128,7 @@
</li>
{{#each futileSkills as |skill key|}}
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
<span class="item-field-label-long2"><a class="roll-competence item-field-label-short"
<span class="item-field-label-long2 roll-style"><a class="roll-competence item-field-label-short"
data-attr-key="tochoose">{{skill.name}}</a></span>
<select class="item-field-label-short" type="text"
@@ -207,9 +208,6 @@
<span class="item-field-label-short">
<label class="short-label">Attaque</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Défense</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Dégats</label>
</span>
@@ -225,11 +223,11 @@
<span class="item-name-label competence-name">{{arme.name}}</span>
<span class="item-field-label-short">
<button class="roll-arme-offensif button-sheet-roll">Attaquer</button>
<button class="roll-attaque-arme button-sheet-roll">Attaquer</button>
</span>
<span class="item-field-label-short">
<button class="roll-arme-degats button-sheet-roll">{{arme.system.totalDegats}}</button>
{{arme.system.degats}}
</span>
<div class="item-filler">&nbsp;</div>
@@ -382,6 +380,48 @@
</ul>
</div>
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header item-field-label-long2-img">
<h3><label class="items-title-text">Pouvoirs</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">Masque</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Type</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Niveau</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
</div>
</li>
{{#each pouvoirs as |pouvoir key|}}
<li class="item flexrow " data-item-id="{{pouvoir._id}}" data-item-type="pouvoir">
<img class="item-name-img" src="{{pouvoir.img}}" />
{{#if pouvoir.system.istest}}
<span class="item-field-label-long2 roll-style"><a class="roll-pouvoir">{{pouvoir.name}}</a></span>
{{else}}
<span class="item-field-label-long2">{{pouvoir.name}}</span>
{{/if}}
<span class="item-field-label-medium">{{upperFirst pouvoir.system.masquetype}}</span>
<span class="item-field-label-medium">{{upperFirst pouvoir.system.pouvoirtype}}</span>
<span class="item-field-label-medium">{{upperFirst pouvoir.system.niveau}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<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}}
</ul>
</div>
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
@@ -411,15 +451,124 @@
</div>
{{!-- Equipement Tab --}}
<div class="tab equipement" data-group="primary" data-tab="equipement">
<div class="sheet-box color-bg-archetype">
<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">Equipements</label></h3>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="equipement" title="Créer un équipement"><i class="fas fa-plus"></i></a>
</div>
</div>
</li>
{{#each equipements as |equip key|}}
<li class="item flexrow " data-item-id="{{equip._id}}" data-item-type="equipement">
<img class="item-name-img" src="{{equip.img}}" />
<span class="item-field-label-long2">{{equip.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<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}}
</ul>
</div>
</div>
{{!-- Contact Tab --}}
<div class="tab contact" data-group="primary" data-tab="contact">
{{#each contacts as |contactList idx|}}
<div class="sheet-box color-bg-archetype">
<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">{{contactList.label}}</label></h3>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
</div>
</li>
{{#each contactList.list as |contact key|}}
<li class="item flexrow " data-item-id="{{contact._id}}" data-item-type="contact">
<img class="item-name-img" src="{{contact.img}}" />
<span class="item-field-label-long2">{{contact.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<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}}
</ul>
</div>
{{/each}}
</div>
{{!-- Biography Tab --}}
<div class="tab biodata" data-group="primary" data-tab="biodata">
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header item-field-label-long2-img">
<h3><label class="items-title-text">Profils</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">Type</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
</div>
</li>
{{#each profils as |profil key|}}
<li class="item flexrow " data-item-id="{{profil._id}}" data-item-type="profil">
<img class="item-name-img" src="{{profil.img}}" />
<span class="item-field-label-long2">{{profil.name}}</span>
<span class="item-field-label-medium">{{upperFirst profil.system.profiltype}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<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}}
</ul>
</div>
<div class="flexrow">
<ul>
<li class="flexrow item">
<label class="item-field-label-long2">Nom humain</label> <input type="text" class="" name="system.biodata.nomhumain" value="{{system.biodata.nomhumain}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="item-field-label-long2">Activités</label> <input type="text" class="" name="system.biodata.activites" value="{{system.biodata.activites}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="item-field-label-long2">Apparence masquée</label> <input type="text" class="" name="system.biodata.apparencemasquee" value="{{system.biodata.apparencemasquee}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="item-field-label-long2">Apparence démasquée</label> <input type="text" class="" name="system.biodata.apparencedemasquee" value="{{system.biodata.apparencedemasquee}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="item-field-label-long2">Titre et Famille</label> <input type="text" class="" name="system.biodata.titrefamille" value="{{system.biodata.titrefamille}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="item-field-label-long2">Factions féériques</label> <input type="text" class="" name="system.biodata.factionfeerique" value="{{system.biodata.factionfeerique}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="item-field-label-long2">Traits de caractères dominants</label> <input type="text" class="" name="system.biodata.traitscaracteres" value="{{system.biodata.traitscaracteres}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="item-field-label-long2">Langues</label> <input type="text" class="" name="system.biodata.langues" value="{{system.biodata.langues}}" data-dtype="String" />
</li>
</ul>
</div>
@@ -427,7 +576,12 @@
<div>
<ul>
<li class="flexrow item">
<label class="generic-label">Sexe</label>
<label class="generic-label">Fortune</label>
<input type="text" class="" name="system.biodata.fortune" value="{{system.biodata.fortune}}"
data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label">Genre</label>
<input type="text" class="" name="system.biodata.sex" value="{{system.biodata.sex}}"
data-dtype="String" />
</li>
@@ -441,18 +595,18 @@
<div>
<ul>
<li class="item flexrow">
<label class="generic-label">Taille</label>
<input type="text" class="" name="system.biodata.size" value="{{system.biodata.size}}"
<label class="generic-label">Taille Masquée</label>
<input type="text" class="" name="system.biodata.taillemasquee" value="{{system.biodata.taillemasquee}}"
data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">Cheveux</label>
<input type="text" class="" name="system.biodata.hair" value="{{system.biodata.hair}}"
<label class="generic-label">Taille Démasquée</label>
<input type="text" class="" name="system.biodata.tailledemasquee" value="{{system.biodata.tailledemasquee}}"
data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label">Expérience</label>
<input type="text" class="" name="system.experience.value" value="{{system.experience.value}}"
<label class="generic-label">Type de taille</label>
<input type="text" class="" name="system.experience.typetaille" value="{{system.experience.typetaille}}"
data-dtype="String" />
</li>
@@ -462,31 +616,45 @@
<div>
<ul>
<li class="item flexrow">
<label class="generic-label">Yeux</label>
<input type="text" class="" name="system.biodata.eyes" value="{{system.biodata.eyes}}"
<label class="generic-label">Poids Masqué</label>
<input type="text" class="" name="system.biodata.poidsmasquee" value="{{system.biodata.poidsmasquee}}"
data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label">Main préférée</label>
<input type="text" class="" name="system.biodata.preferredhand" value="{{system.biodata.preferredhand}}"
data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label">Poids</label>
<input type="text" class="" name="system.biodata.weight" value="{{system.biodata.weight}}"
<li class="item flexrow">
<label class="generic-label">Poids Démasqué</label>
<input type="text" class="" name="system.biodata.poidsdemasquee" value="{{system.biodata.poidsdemasquee}}"
data-dtype="String" />
</li>
</ul>
</div>
</div>
</div>
<div class="tab notes" data-group="primary" data-tab="notes">
<span>
<h3>Description</h3>
<h3>Historique</h3>
</span>
<div class="medium-editor item-text-long-line">
{{editor description target="system.biodata.description" button=true owner=owner editable=editable}}
</div>
<span>
<h3>Rêves étranges</h3>
</span>
<div class="medium-editor item-text-long-line">
{{editor revesetranges target="system.biodata.revesetranges" button=true owner=owner editable=editable}}
</div>
<span>
<h3>Secrets découverts</h3>
</span>
<div class="medium-editor item-text-long-line">
{{editor secretsdecouverts target="system.biodata.secretsdecouverts" button=true owner=owner editable=editable}}
</div>
<span>
<h3>Questions en suspens</h3>
</span>
<div class="medium-editor item-text-long-line">
{{editor questions target="system.biodata.questions" button=true owner=owner editable=editable}}
</div>
</div>

View File

@@ -18,20 +18,35 @@
<div>
<ul>
<li class="hawkmoon-roll">Caractéristique : {{carac.label}} ({{carac.value}})</li>
<li class="heritiers-roll">Caractéristique : {{carac.label}} ({{carac.value}})</li>
{{#if competence}}
<li>Compétence : {{competence.name}} ({{competence.system.niveau}})</li>
{{#if useSpecialite}}
<li>Bonus de spécialité +1</li>
{{/if}}
{{/if}}
{{#if arme}}
<li>Attaque avec : {{arme.name}}</li>
{{/if}}
{{#if pouvoir}}
<li>Pouvoir : {{pouvoir.name}}</li>
<li>Effet : {{pouvoir.system.effet}}</li>
{{/if}}
<li>Formule : {{diceFormula}}</li>
<li>Résultat du dé : {{diceResult}}</li>
<li>Résultat du dé : {{diceResult}} </li>
<li>Total : {{finalResult}} (Marge : {{marge}})</li>
<li>Total : {{finalResult}}</li>
{{#if sdValue}}
{{#if isSuccess}}
<li class="chat-success">Succés...
{{#if arme}}
<li>Dégats : {{degatsArme}}</li>
{{/if}}
</li>
{{else}}
<li class="chat-failure">Echec...</li>
@@ -40,6 +55,9 @@
{{#if isCriticalSuccess}}
<li class="chat-success">Réussite Critique !!!</li>
{{#if arme}}
<li>Vous pouvez augmenter les dégats de +2 ou bien bénéficier d'une Aubaine.</li>
{{/if}}
{{/if}}
{{#if isCriticalFailure}}
<li class="chat-failure">Echec Critique !!!</li>

View File

@@ -11,17 +11,21 @@
<div class="tab details" data-group="primary" data-tab="details">
<ul class="item-list alternate-list">
<li class="flexrow item">
<li class="flexrow item">
<label class="generic-label item-field-label-long">Type : </label>
<select class="item-field-label-long" type="text" name="system.contacttype" value="{{system.contacttype}}" data-dtype="String">
{{#select system.contacttype}}
<option value="contact">Contact</option>
<option value="allie">Allié</option>
<option value="ennemi">Ennemis</option>
<option value="interet">Personne d'interêt</option>
{{/select}}
</select>
<label class="generic-label item-field-label-long">Niveau : </label>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">Niveau : </label>
<select class="item-field-label-long" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number">
{{#select system.niveau}}
<option value="1">1</option>

View File

@@ -0,0 +1,40 @@
<form class="{{cssClass}}" autocomplete="off">
{{> systems/fvtt-les-heritiers/templates/partial-item-header.html}}
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.html}}
{{!-- Sheet Body --}}
<section class="sheet-body">
{{> systems/fvtt-les-heritiers/templates/partial-item-description.html}}
<div class="tab details" data-group="primary" data-tab="details">
<ul class="item-list alternate-list">
<li class="flexrow item">
<label class="generic-label item-field-label-long">Lieu : </label>
<input type="text" class="item-field-label-long" name="system.lieu"
value="{{system.lieu}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">Prix : </label>
<input type="text" class="item-field-label-short" name="system.prix"
value="{{system.prix}}" data-dtype="Number" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">Quantité : </label>
<input type="text" class="item-field-label-short" name="system.quantite"
value="{{system.quantite}}" data-dtype="Number" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">Equipé ? : </label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.equipped" {{checked system.equipped}}/>
</li>
</div>
</section>
</form>

View File

@@ -73,17 +73,25 @@
</select>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">+ Carac </label>
<select class="status-small-label color-class-common item-field-label-long" type="text"
name="system.carac" value="{{system.carac}}" data-dtype="string">
{{#select system.carac}}
{{#each config.caracList as |categ cKey|}}
<option value="{{cKey}}">{{categ}}</option>
{{/each}}
{{/select}}
</select>
</li>
{{#if (eq system.feeriemasque "autre")}}
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Jet </label>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3" name="system.testautre" value="{{system.testautre}}" data-dtype="String" />
</li>
{{else}}
<li class="flexrow item">
<label class="generic-label item-field-label-long2">+ Carac </label>
<select class="status-small-label color-class-common item-field-label-long" type="text"
name="system.carac" value="{{system.carac}}" data-dtype="string">
{{#select system.carac}}
{{#each config.caracList as |categ cKey|}}
<option value="{{cKey}}">{{categ}}</option>
{{/each}}
{{/select}}
</select>
</li>
{{/if}}
{{/if}}
<li class="flexrow item">
@@ -91,6 +99,11 @@
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
name="system.cibles" value="{{system.cibles}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Durée </label>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3" name="system.duree" value="{{system.duree}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Effet </label>
@@ -124,6 +137,13 @@
</li>
{{/if}}
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Zone d'effet </label>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
name="system.zoneeffet" value="{{system.zoneeffet}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Virulence (ie Poison) ? </label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"

View File

@@ -12,8 +12,15 @@
<div class="tab details" data-group="primary" data-tab="details">
<ul class="item-list alternate-list">
<li class="flexrow item">
<label class="generic-label item-field-label-long">Type : </label>
<select class="item-field-label-long" type="text" name="system.profiltype" value="{{system.profiltype}}" data-dtype="String">
{{#select system.profiltype}}
<option value="mineur">Mineur</option>
<option value="majeur">Majeur</option>
{{/select}}
</select>
</li>
</ul>
</div>

View File

@@ -31,6 +31,32 @@
<span class="roll-dialog-label">{{competence.name}}</span>
<span class="small-label roll-dialog-label">{{competence.system.niveau}}</span>
</div>
{{#if competence.nbSpec}}
<div class="flexrow">
<span class="roll-dialog-label">Spécialités : {{competence.specList}}</span>
</div>
<div class="flexrow">
<span class="roll-dialog-label">Bonus de spécialité ?</span>
<input type="checkbox" class="item-field-label-short" id="useSpecialite" {{checked useSpecialite}}/>
</div>
{{/if}}
{{/if}}
{{#if pouvoir}}
<div class="flexrow">
<span class="roll-dialog-label">Pouvoir : </span>
<span class="small-label roll-dialog-label">{{pouvoir.name}}</span>
</div>
<div class="flexrow">
<span class="roll-dialog-label">Activation : </span>
<span class="small-label roll-dialog-label">{{pouvoir.system.activation}}</span>
</div>
{{#if pouvoirBase}}
<div class="flexrow">
<span class="roll-dialog-label">{{pouvoirBase.label}} : </span>
<span class="small-label roll-dialog-label">{{pouvoirBase.value}}</span>
</div>
{{/if}}
{{/if}}
<div class="flexrow">