Compare commits
7 Commits
12.0.43
...
9fa8a2e6f3
Author | SHA1 | Date | |
---|---|---|---|
9fa8a2e6f3 | |||
da7f87fd45 | |||
6aba92900c | |||
4939e5564e | |||
40be65a94e | |||
633638a9ab | |||
88a3464eed |
@ -1,4 +1,11 @@
|
|||||||
# 12.0
|
# 12.0
|
||||||
|
## 12.0.44 - Les errements d'Astrobazzarh, suite
|
||||||
|
- on peut de nouveau dormir et se réveiller reposé
|
||||||
|
- les possessions utilisent maintenant correctement le rêve actuel
|
||||||
|
- les sorts variables ne causent plus de soucis de voie pour le lancement de sorts
|
||||||
|
- les acteurs ayant un sort avec un coût de rêve entier ne sont plus considérés
|
||||||
|
comme pouvant avoir un rêve variable
|
||||||
|
|
||||||
## 12.0.42 - Les errements d'Astrobazzarh
|
## 12.0.42 - Les errements d'Astrobazzarh
|
||||||
- Correction de différentes automatisations de combat incorrectes
|
- Correction de différentes automatisations de combat incorrectes
|
||||||
- Correction des jets `@roll[vue/-2]` qui tentaient de chercher une compétence -2 (à cause des armes à 1/2 mains)
|
- Correction des jets `@roll[vue/-2]` qui tentaient de chercher une compétence -2 (à cause des armes à 1/2 mains)
|
||||||
|
@ -243,7 +243,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
await this.resetInfoSommeil()
|
await this.resetInfoSommeil()
|
||||||
ChatMessage.create(message);
|
ChatMessage.create(message);
|
||||||
this.sheet.render(true);
|
setTimeout(() => this.sheet.render(), 20)
|
||||||
}
|
}
|
||||||
|
|
||||||
async _recuperationSante(message) {
|
async _recuperationSante(message) {
|
||||||
@ -299,7 +299,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
ChatMessage.create(message);
|
ChatMessage.create(message);
|
||||||
}
|
}
|
||||||
await this.resetInfoSommeil();
|
await this.resetInfoSommeil();
|
||||||
this.sheet.render(true);
|
setTimeout(() => this.sheet.render(), 20)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -442,10 +442,9 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
message.content += 'Vous ne trouvez pas le sommeil';
|
message.content += 'Vous ne trouvez pas le sommeil';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let jetsReve = [];
|
let dormi = await this.$dormirDesHeures(message, heures, options);
|
||||||
let dormi = await this.dormirDesHeures(jetsReve, message, heures, options);
|
if (dormi.jetsReve.length > 0) {
|
||||||
if (jetsReve.length > 0) {
|
message.content += `Vous récupérez ${dormi.jetsReve.map(it => it < 0 ? '0 (réveil)' : it).reduce(Misc.joining("+"))} Points de rêve. `;
|
||||||
message.content += `Vous récupérez ${jetsReve.map(it => it < 0 ? '0 (réveil)' : it).reduce(Misc.joining("+"))} Points de rêve. `;
|
|
||||||
}
|
}
|
||||||
if (dormi.etat == 'eveil') {
|
if (dormi.etat == 'eveil') {
|
||||||
await this.reveilReveDeDragon(message, dormi.heures);
|
await this.reveilReveDeDragon(message, dormi.heures);
|
||||||
@ -461,7 +460,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
await this.dormirChateauDormant();
|
await this.dormirChateauDormant();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.sheet.render(true);
|
setTimeout(() => this.sheet.render(), 20)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -472,18 +471,18 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async dormirDesHeures(jetsReve, message, heures, options) {
|
async $dormirDesHeures(message, heures, options) {
|
||||||
const dormi = { heures: 0, etat: 'dort' };
|
const dormi = { heures: 0, etat: 'dort', jetsReve: [] };
|
||||||
for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) {
|
for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) {
|
||||||
await this._recupererEthylisme(message);
|
await this.$recupererEthylisme(message);
|
||||||
if (options.grisReve) {
|
if (options.grisReve) {
|
||||||
await this.recupererFatigue(message);
|
await this.$recupererFatigue(message);
|
||||||
}
|
}
|
||||||
else if (!this.system.sommeil?.insomnie) {
|
else if (!this.system.sommeil?.insomnie) {
|
||||||
await this.recupererFatigue(message);
|
await this.$recupererFatigue(message);
|
||||||
dormi.etat = await this.jetRecuperationReve(jetsReve, message);
|
await this.$jetRecuperationReve(dormi, message);
|
||||||
if (dormi.etat == 'dort' && EffetsDraconiques.isDonDoubleReve(this)) {
|
if (dormi.etat == 'dort' && EffetsDraconiques.isDonDoubleReve(this)) {
|
||||||
dormi.etat = await this.jetRecuperationReve(jetsReve, message);
|
dormi.etat = await this.$jetRecuperationReve(dormi, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -491,35 +490,36 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async jetRecuperationReve(jetsReve, message) {
|
async $jetRecuperationReve(dormi, message) {
|
||||||
if (this.getReveActuel() < this.system.reve.seuil.value) {
|
if (this.getReveActuel() < this.system.reve.seuil.value) {
|
||||||
let reve = await RdDDice.rollTotal("1dr");
|
const reve = await RdDDice.rollTotal("1dr")
|
||||||
if (reve >= 7) {
|
if (reve >= 7) {
|
||||||
// Rêve de Dragon !
|
// Rêve de Dragon !
|
||||||
message.content += `Vous faites un <strong>Rêve de Dragon</strong> de ${reve} Points de rêve qui vous réveille! `;
|
message.content += `Vous faites un <strong>Rêve de Dragon</strong> de ${reve} Points de rêve qui vous réveille! `;
|
||||||
await this.combattreReveDeDragon(reve);
|
await this.combattreReveDeDragon(reve);
|
||||||
jetsReve.push(-1);
|
dormi.jetsReve.push(-1);
|
||||||
return 'eveil';
|
dormi.etat = 'eveil'
|
||||||
|
return
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!ReglesOptionnelles.isUsing("recuperation-reve")) {
|
if (!ReglesOptionnelles.isUsing("recuperation-reve")) {
|
||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: `Pas de récupération de rêve (${reve} points ignorés)`
|
content: `Pas de récupération de rêve (${reve} points ignorés)`
|
||||||
});
|
})
|
||||||
jetsReve.push(0);
|
dormi.jetsReve.push(0)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
await this.reveActuelIncDec(reve);
|
await this.reveActuelIncDec(reve)
|
||||||
jetsReve.push(reve);
|
dormi.jetsReve.push(reve)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 'dort';
|
dormi.etat = 'dort'
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _recupererEthylisme(message) {
|
async $recupererEthylisme(message) {
|
||||||
if (!ReglesOptionnelles.isUsing("recuperation-ethylisme")) { return; }
|
if (!ReglesOptionnelles.isUsing("recuperation-ethylisme")) { return; }
|
||||||
let value = Math.min(Number.parseInt(this.system.compteurs.ethylisme.value) + 1, 1);
|
let value = Math.min(Number.parseInt(this.system.compteurs.ethylisme.value) + 1, 1);
|
||||||
if (value <= 0) {
|
if (value <= 0) {
|
||||||
@ -549,18 +549,15 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async recupererFatigue(message) {
|
async $recupererFatigue(message) {
|
||||||
if (ReglesOptionnelles.isUsing("appliquer-fatigue")) {
|
if (ReglesOptionnelles.isUsing("appliquer-fatigue")) {
|
||||||
let fatigue = this.system.sante.fatigue.value;
|
let fatigue = this.system.sante.fatigue.value
|
||||||
const fatigueMin = this.getFatigueMin();
|
const fatigueMin = this.getFatigueMin()
|
||||||
if (fatigue <= fatigueMin) {
|
if (fatigue <= fatigueMin) {
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
fatigue = Math.max(fatigueMin, this._calculRecuperationSegment(fatigue));
|
fatigue = Math.max(fatigueMin, this._calculRecuperationSegment(fatigue))
|
||||||
setTimeout( // On attend un peu pour que le message de récupération de r
|
await this.update({ 'system.sante.fatigue.value': fatigue });
|
||||||
async () => {
|
|
||||||
await this.update({ 'system.sante.fatigue.value': fatigue });
|
|
||||||
}, 200);
|
|
||||||
if (fatigue == 0) {
|
if (fatigue == 0) {
|
||||||
message.content += "Vous êtes complêtement reposé. ";
|
message.content += "Vous êtes complêtement reposé. ";
|
||||||
}
|
}
|
||||||
|
@ -56,6 +56,10 @@ export class RdDItemSort extends Item {
|
|||||||
return voies.map(voie => RdDItemCompetence.getVoieDraconic(competencesDraconic, voie))
|
return voies.map(voie => RdDItemCompetence.getVoieDraconic(competencesDraconic, voie))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static getBestDraconicSort(competencesDraconic, sort) {
|
||||||
|
return RdDItemSort.getDraconicsSort(competencesDraconic, sort).sort(Misc.descending(it => it.system.niveau)).find(it=>true)
|
||||||
|
}
|
||||||
|
|
||||||
static getOrdreCode(code) {
|
static getOrdreCode(code) {
|
||||||
return (VOIES_DRACONIC.find(it => it.code == code)?.ordre ?? '?')
|
return (VOIES_DRACONIC.find(it => it.code == code)?.ordre ?? '?')
|
||||||
}
|
}
|
||||||
@ -92,7 +96,7 @@ export class RdDItemSort extends Item {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static isCoutVariable(sort) {
|
static isCoutVariable(sort) {
|
||||||
return sort && (sort.system.ptreve.toLowerCase() == "variable" || sort.system.ptreve.indexOf("+") >= 0);
|
return sort && !Number.isInteger(sort.system.ptreve) && (sort.system.ptreve.toLowerCase() == "variable" || sort.system.ptreve.indexOf("+") >= 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -104,8 +104,8 @@ export class RdDPossession {
|
|||||||
rollData.selectedCarac = carac.reve
|
rollData.selectedCarac = carac.reve
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rollData.selectedCarac = rollingActor.system.carac.reve
|
|
||||||
rollData.forceCarac = { 'reve-actuel': { label: "Rêve Actuel", value: rollingActor.getReveActuel() } }
|
rollData.forceCarac = { 'reve-actuel': { label: "Rêve Actuel", value: rollingActor.getReveActuel() } }
|
||||||
|
rollData.selectedCarac = rollData.forceCarac['reve-actuel']
|
||||||
rollData.competence.system.defaut_carac = 'reve-actuel'
|
rollData.competence.system.defaut_carac = 'reve-actuel'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -279,7 +279,7 @@ export class RdDRoll extends Dialog {
|
|||||||
|
|
||||||
async setSelectedSort(sort) {
|
async setSelectedSort(sort) {
|
||||||
this.rollData.selectedSort = sort; // Update the selectedCarac
|
this.rollData.selectedSort = sort; // Update the selectedCarac
|
||||||
this.rollData.competence = RdDItemCompetence.getVoieDraconic(this.rollData.draconicList, sort.system.draconic);
|
this.rollData.competence = RdDItemSort.getBestDraconicSort(this.rollData.draconicList, sort)
|
||||||
this.rollData.bonus = RdDItemSort.getCaseBonus(sort, this.rollData.tmr.coord);
|
this.rollData.bonus = RdDItemSort.getCaseBonus(sort, this.rollData.tmr.coord);
|
||||||
this.rollData.diffLibre = RdDItemSort.getDifficulte(sort, -7);
|
this.rollData.diffLibre = RdDItemSort.getDifficulte(sort, -7);
|
||||||
RdDItemSort.setCoutReveReel(sort);
|
RdDItemSort.setCoutReveReel(sort);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npx vite build",
|
"build": "npx vite build",
|
||||||
|
"run": "npx vite serve",
|
||||||
"packCompendiumsToDist": "node ./tools/packCompendiumsToDist.mjs",
|
"packCompendiumsToDist": "node ./tools/packCompendiumsToDist.mjs",
|
||||||
"packCompendiumsToPublic": "node ./tools/packCompendiumsToPublic.mjs",
|
"packCompendiumsToPublic": "node ./tools/packCompendiumsToPublic.mjs",
|
||||||
"unpackCompendiumsFromPublic": "node ./tools/unpackCompendiumsFromPublic.mjs"
|
"unpackCompendiumsFromPublic": "node ./tools/unpackCompendiumsFromPublic.mjs"
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"id": "foundryvtt-reve-de-dragon",
|
"id": "foundryvtt-reve-de-dragon",
|
||||||
"title": "Rêve de Dragon",
|
"title": "Rêve de Dragon",
|
||||||
"version": "12.0.42",
|
"version": "12.0.44",
|
||||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/12.0.42/rddsystem.zip",
|
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/12.0.44/rddsystem.zip",
|
||||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/12.0.42/system.json",
|
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/12.0.44/system.json",
|
||||||
"changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
|
"changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "11",
|
"minimum": "11",
|
||||||
|
Reference in New Issue
Block a user