forked from public/fvtt-yggdrasill
Compare commits
4 Commits
fvtt-yggdr
...
fix/v10-fu
Author | SHA1 | Date | |
---|---|---|---|
8d56fed614 | |||
63d1c5847b | |||
866a079c69 | |||
fa0b989c86 |
@ -14,8 +14,8 @@ export class YggdrasillActorSheet extends ActorSheet {
|
|||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
classes: ["yggdrasill", "sheet", "actor"],
|
classes: ["yggdrasill", "sheet", "actor"],
|
||||||
template: "systems/fvtt-yggdrasill/templates/actor-sheet.html",
|
template: "systems/fvtt-yggdrasill/templates/actor-sheet.html",
|
||||||
width: 640,
|
width: 680,
|
||||||
height: 720,
|
height: 740,
|
||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||||
editScore: false
|
editScore: false
|
||||||
@ -23,7 +23,7 @@ export class YggdrasillActorSheet extends ActorSheet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getData() {
|
async getData() {
|
||||||
const objectData = duplicate(this.object)
|
const objectData = duplicate(this.object)
|
||||||
|
|
||||||
let formData = {
|
let formData = {
|
||||||
@ -63,7 +63,11 @@ export class YggdrasillActorSheet extends ActorSheet {
|
|||||||
optionsCarac: YggdrasillUtility.createDirectOptionList(0, 20),
|
optionsCarac: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||||
optionsDMDP: YggdrasillUtility.createDirectSortedOptionList(-10, +10),
|
optionsDMDP: YggdrasillUtility.createDirectSortedOptionList(-10, +10),
|
||||||
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||||
optionsFuror: YggdrasillUtility.createDirectOptionList(0, 15),
|
optionsFuror: YggdrasillUtility.createDirectOptionList(0, 15),
|
||||||
|
tiragerunes: await TextEditor.enrichHTML(this.object.system.tiragesrunes, {async: true}),
|
||||||
|
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
||||||
|
notes: await TextEditor.enrichHTML(this.object.system.notes, {async: true}),
|
||||||
|
gmnotes: await TextEditor.enrichHTML(this.object.system.biodata.gmnotes, {async: true}),
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
|
@ -193,18 +193,18 @@ export class YggdrasillActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
_preUpdate(changed, options, user) {
|
_preUpdate(changed, options, user) {
|
||||||
if ( changed.data?.caracsecondaire?.pv?.value ) {
|
if ( changed.system?.caracsecondaire?.pv?.value ) {
|
||||||
if ( changed.data.caracsecondaire.pv.value < 0 )
|
if ( changed.system.caracsecondaire.pv.value < 0 )
|
||||||
changed.data.caracsecondaire.pv.value = 0;
|
changed.system.caracsecondaire.pv.value = 0;
|
||||||
if ( changed.data.caracsecondaire.pv.value > this.system.caracsecondaire.pv.max )
|
if ( changed.system.caracsecondaire.pv.value > this.system.caracsecondaire.pv.max )
|
||||||
changed.data.caracsecondaire.pv.value = this.system.caracsecondaire.pv.max;
|
changed.system.caracsecondaire.pv.value = this.system.caracsecondaire.pv.max;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( changed.data?.furor?.value ) {
|
if ( changed.system?.furor?.value ) {
|
||||||
if ( changed.data.furor.value < 0 )
|
if ( changed.system.furor.value < 0 )
|
||||||
changed.data.furor.value = 0;
|
changed.system.furor.value = 0;
|
||||||
if ( changed.data.furor.value > this.system.furor.max )
|
if ( changed.system.furor.value > this.system.furor.max )
|
||||||
changed.data.furor.value = this.system.furor.max;
|
changed.system.furor.value = this.system.furor.max;
|
||||||
}
|
}
|
||||||
super._preUpdate(changed, options, user);
|
super._preUpdate(changed, options, user);
|
||||||
}
|
}
|
||||||
@ -448,19 +448,41 @@ export class YggdrasillActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.system.caracsecondaire.reaction.value = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
this.system.caracsecondaire.reaction.value = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
||||||
this.system.caracsecondaire.reaction.max = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
let newReac = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
||||||
|
if ( newReac != this.system.caracsecondaire.reaction.max) {
|
||||||
|
this.system.caracsecondaire.reaction.max = newReac
|
||||||
|
this.update( { 'system.caracsecondaire.reaction.max': newReac });
|
||||||
|
}
|
||||||
|
|
||||||
this.system.caracsecondaire.defensephy.value = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
this.system.caracsecondaire.defensephy.value = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
||||||
this.system.caracsecondaire.defensephy.max = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
let newDef = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
||||||
|
if ( newDef != this.system.caracsecondaire.defensephy.max) {
|
||||||
|
this.system.caracsecondaire.defensephy.max = newDef
|
||||||
|
this.update( { 'system.caracsecondaire.defensephy.max': newDef });
|
||||||
|
}
|
||||||
|
|
||||||
this.system.caracsecondaire.defensemen.value = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
this.system.caracsecondaire.defensemen.value = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
||||||
this.system.caracsecondaire.defensemen.max = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
newDef = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
||||||
|
if ( newDef != this.system.caracsecondaire.defensemen.max) {
|
||||||
|
this.system.caracsecondaire.defensemen.max = newDef
|
||||||
|
this.update( { 'system.caracsecondaire.defensemen.max': newDef });
|
||||||
|
}
|
||||||
|
|
||||||
this.system.caracsecondaire.deplacement.value = basecorps.agilite.value + basecorps.vigueur.value;
|
this.system.caracsecondaire.deplacement.value = basecorps.agilite.value + basecorps.vigueur.value;
|
||||||
this.system.caracsecondaire.deplacement.max = basecorps.agilite.value + basecorps.vigueur.value;
|
let depl = basecorps.agilite.value + basecorps.vigueur.value;
|
||||||
|
if ( depl != this.system.caracsecondaire.deplacement.max) {
|
||||||
|
this.system.caracsecondaire.deplacement.max = depl
|
||||||
|
this.update( { 'system.caracsecondaire.deplacement.max': depl });
|
||||||
|
}
|
||||||
|
|
||||||
this.system.caracsecondaire.capaenc.value = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
this.system.caracsecondaire.capaenc.value = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
||||||
this.system.caracsecondaire.capaenc.max = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
let enc = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
||||||
|
if ( enc != this.system.caracsecondaire.capaenc.max ) {
|
||||||
|
this.system.caracsecondaire.capaenc.max = enc
|
||||||
|
this.update( { 'system.caracsecondaire.capaenc.max': enc });
|
||||||
|
}
|
||||||
|
|
||||||
|
//console.log("CARAC SEC", this.system.caracsecondaire)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ export class YggdrasillFigurantSheet extends ActorSheet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getData() {
|
async getData() {
|
||||||
const objectData = duplicate(this.object)
|
const objectData = duplicate(this.object)
|
||||||
|
|
||||||
let formData = {
|
let formData = {
|
||||||
@ -42,6 +42,8 @@ export class YggdrasillFigurantSheet extends ActorSheet {
|
|||||||
monnaies: this.actor.getMonnaies(),
|
monnaies: this.actor.getMonnaies(),
|
||||||
optionsAttr: new Array(41).fill('option'),
|
optionsAttr: new Array(41).fill('option'),
|
||||||
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||||
|
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
||||||
|
notes: await TextEditor.enrichHTML(this.object.system.notes, {async: true}),
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
|
@ -56,6 +56,7 @@ export class YggdrasillItemSheet extends ItemSheet {
|
|||||||
data: foundry.utils.deepClone(this.object.system),
|
data: foundry.utils.deepClone(this.object.system),
|
||||||
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||||
optionsNiveaux4: YggdrasillUtility.buildListOptions(1, 5),
|
optionsNiveaux4: YggdrasillUtility.buildListOptions(1, 5),
|
||||||
|
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
||||||
limited: this.object.limited,
|
limited: this.object.limited,
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
|
@ -87,12 +87,14 @@ export class YggdrasillUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async specificYggRoll( nbDice ) {
|
static async specificYggRoll( nbDice ) {
|
||||||
|
return specificYggRoll(nbDice, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static async specificYggRoll( nbDice, isFurorUsage ) {
|
||||||
let rawDices = []
|
let rawDices = []
|
||||||
let rolls = []
|
let rolls = []
|
||||||
let maxTab = []
|
let maxTab = []
|
||||||
|
let maxTabMaxIndex = isFurorUsage ? nbDice : 2;
|
||||||
maxTab[0] = {idx: 0, value: 0}
|
|
||||||
maxTab[1] = {idx: 0, value: 0}
|
|
||||||
|
|
||||||
for (let i=0; i<nbDice; i++) {
|
for (let i=0; i<nbDice; i++) {
|
||||||
rolls[i] = new Roll("1d10x10").roll( {async: false}) //+sumDice+"+"+rollData.furorUsage+"d10+"+niveauCompetence+"+"+rollData.finalBM).roll( { async: false} );
|
rolls[i] = new Roll("1d10x10").roll( {async: false}) //+sumDice+"+"+rollData.furorUsage+"d10+"+niveauCompetence+"+"+rollData.finalBM).roll( { async: false} );
|
||||||
@ -102,19 +104,17 @@ export class YggdrasillUtility {
|
|||||||
this.showDiceSoNice(rolls[i], game.settings.get("core", "rollMode") );
|
this.showDiceSoNice(rolls[i], game.settings.get("core", "rollMode") );
|
||||||
}
|
}
|
||||||
rawDices.push({ 'result': rolls[i].total});
|
rawDices.push({ 'result': rolls[i].total});
|
||||||
|
|
||||||
if ( rolls[i].total > maxTab[0].value) {
|
|
||||||
if ( nbDice > 1 && maxTab[0].value > maxTab[1].value) {
|
|
||||||
maxTab[1].value = maxTab[0].value
|
|
||||||
}
|
|
||||||
maxTab[0].value = rolls[i].total
|
|
||||||
} else {
|
|
||||||
if ( nbDice > 1 && rolls[i].total > maxTab[1].value) {
|
|
||||||
maxTab[1].value = rolls[i].total
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return { rawDices: rawDices, maxTab: maxTab, rolls: rolls}
|
|
||||||
|
rolls.sort((a,b) => a.total-b.total);
|
||||||
|
rolls.reverse();
|
||||||
|
|
||||||
|
for (let i=0; i<maxTabMaxIndex; i++) {
|
||||||
|
maxTab[i] = {idx: 0, value: 0};
|
||||||
|
if (rolls[i].total != undefined) maxTab[i].value = rolls[i].total;
|
||||||
|
}
|
||||||
|
|
||||||
|
return { rawDices: rawDices, maxTab: maxTab, rolls: rolls }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -218,7 +218,7 @@ export class YggdrasillUtility {
|
|||||||
console.log("RES", results, nbDice, sumDice)
|
console.log("RES", results, nbDice, sumDice)
|
||||||
|
|
||||||
if ( rollData.furorUsage > 0 ) {
|
if ( rollData.furorUsage > 0 ) {
|
||||||
results = await this.specificYggRoll( rollData.furorUsage )
|
results = await this.specificYggRoll( rollData.furorUsage, true )
|
||||||
rollData.furorRawDices = results.rawDices
|
rollData.furorRawDices = results.rawDices
|
||||||
rollData.furorMaxTab = results.maxTab
|
rollData.furorMaxTab = results.maxTab
|
||||||
rollData.furorRolls = results.rolls
|
rollData.furorRolls = results.rolls
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"title": "Yggdrasill",
|
"title": "Yggdrasill",
|
||||||
"description": "Système non-officiel Yggdrasill (7ième Cercle) pour FoundryVTT",
|
"description": "Système non-officiel Yggdrasill (7ième Cercle) pour FoundryVTT",
|
||||||
"version": "10.0.0",
|
"version": "10.0.3",
|
||||||
"esmodules": [
|
"esmodules": [
|
||||||
"modules/yggdrasill-main.js"
|
"modules/yggdrasill-main.js"
|
||||||
],
|
],
|
||||||
@ -196,7 +196,7 @@
|
|||||||
"socket": true,
|
"socket": true,
|
||||||
"url": "https://www.uberwald.me/gitea/public/fvtt-yggdrasill/",
|
"url": "https://www.uberwald.me/gitea/public/fvtt-yggdrasill/",
|
||||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-yggdrasill/raw/branch/v10/system.json",
|
"manifest": "https://www.uberwald.me/gitea/public/fvtt-yggdrasill/raw/branch/v10/system.json",
|
||||||
"download": "https://www.uberwald.me/gitea/public/fvtt-yggdrasill/archive/fvtt-yggdrasill-10.0.0.zip",
|
"download": "https://www.uberwald.me/gitea/public/fvtt-yggdrasill/archive/fvtt-yggdrasill-10.0.3.zip",
|
||||||
"license": "LICENSE.txt",
|
"license": "LICENSE.txt",
|
||||||
"id": "fvtt-yggdrasill",
|
"id": "fvtt-yggdrasill",
|
||||||
"authors": [
|
"authors": [
|
||||||
|
Reference in New Issue
Block a user