v10: pinaillages mineurs #642

Merged
uberwald merged 5 commits from VincentVk/foundryvtt-reve-de-dragon:v10 into v10 2023-04-21 23:08:11 +02:00
3 changed files with 22 additions and 29 deletions
Showing only changes of commit f541849306 - Show all commits

View File

@ -335,15 +335,10 @@ export class RdDActor extends RdDBaseActor {
hasArmeeMeleeEquipee() { // Return true si l'acteur possède au moins 1 arme de mêlée équipée hasArmeeMeleeEquipee() { // Return true si l'acteur possède au moins 1 arme de mêlée équipée
return this.itemTypes['arme'].find(it => it.system.equipe && it.system.competence != "") return this.itemTypes['arme'].find(it => it.system.equipe && it.system.competence != "")
} }
isEmpoignadeEnCours() {
return this.items.find(it => it.type == "empoignade" && it.system.pointsemp > 0)
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async roll() { async roll() {
if (this.isEmpoignadeEnCours()) { RdDEmpoignade.checkEmpoignadeEnCours(this)
ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.")
}
const carac = mergeObject(duplicate(this.system.carac), const carac = mergeObject(duplicate(this.system.carac),
{ {
@ -2071,10 +2066,7 @@ export class RdDActor extends RdDBaseActor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollUnSort(coord) { async rollUnSort(coord) {
if (this.isEmpoignadeEnCours()) { RdDEmpoignade.checkEmpoignadeEnCours(this)
ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.")
}
if (EffetsDraconiques.isSortImpossible(this)) { if (EffetsDraconiques.isSortImpossible(this)) {
ui.notifications.error("Une queue ou un souffle vous empèche de lancer de sort!"); ui.notifications.error("Une queue ou un souffle vous empèche de lancer de sort!");
return; return;
@ -2214,10 +2206,7 @@ export class RdDActor extends RdDBaseActor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollCarac(caracName, jetResistance = undefined) { async rollCarac(caracName, jetResistance = undefined) {
if (this.isEmpoignadeEnCours()) { RdDEmpoignade.checkEmpoignadeEnCours(this)
ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.")
}
let selectedCarac = this.getCaracByName(caracName) let selectedCarac = this.getCaracByName(caracName)
await this._openRollDialog({ await this._openRollDialog({
name: 'jet-' + caracName, name: 'jet-' + caracName,
@ -2285,10 +2274,7 @@ export class RdDActor extends RdDBaseActor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollCompetence(idOrName, options = { tryTarget: true }) { async rollCompetence(idOrName, options = { tryTarget: true }) {
if (this.isEmpoignadeEnCours()) { RdDEmpoignade.checkEmpoignadeEnCours(this)
ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.")
}
let rollData = { let rollData = {
carac: this.system.carac, carac: this.system.carac,
competence: this.getCompetence(idOrName) competence: this.getCompetence(idOrName)
@ -2369,10 +2355,7 @@ export class RdDActor extends RdDBaseActor {
} }
async rollCaracCompetence(caracName, compName, diff, options = { title: "" }) { async rollCaracCompetence(caracName, compName, diff, options = { title: "" }) {
if (this.isEmpoignadeEnCours()) { RdDEmpoignade.checkEmpoignadeEnCours(this)
ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.")
}
const competence = this.getCompetence(compName); const competence = this.getCompetence(compName);
await this._openRollDialog({ await this._openRollDialog({
name: 'jet-competence', name: 'jet-competence',
@ -2393,10 +2376,7 @@ export class RdDActor extends RdDBaseActor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollTache(id, options = {}) { async rollTache(id, options = {}) {
if (this.isEmpoignadeEnCours()) { RdDEmpoignade.checkEmpoignadeEnCours(this)
ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.")
}
const tacheData = this.getTache(id) const tacheData = this.getTache(id)
const compData = this.getCompetence(tacheData.system.competence) const compData = this.getCompetence(tacheData.system.competence)
compData.system.defaut_carac = tacheData.system.carac; // Patch ! compData.system.defaut_carac = tacheData.system.carac; // Patch !

View File

@ -756,9 +756,7 @@ export class RdDCombat {
RdDEmpoignade.onAttaqueEmpoignade(this.attacker, this.defender) RdDEmpoignade.onAttaqueEmpoignade(this.attacker, this.defender)
return; return;
} }
if ( this.attacker.isEmpoignadeEnCours() ) { RdDEmpoignade.checkEmpoignadeEnCours(this.attacker)
ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.")
}
let rollData = this._prepareAttaque(competence, arme); let rollData = this._prepareAttaque(competence, arme);
console.log("RdDCombat.attaque >>>", rollData); console.log("RdDCombat.attaque >>>", rollData);

View File

@ -15,6 +15,21 @@ export class RdDEmpoignade {
static init() { static init() {
} }
/* -------------------------------------------- */
static checkEmpoignadeEnCours(actor) {
// TODO: autoriser la perception? la comédie/séduction?
if (RdDEmpoignade.isEmpoignadeEnCours(actor)) {
ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.")
return true;
}
return false;
}
/* -------------------------------------------- */
static isEmpoignadeEnCours(actor) {
return actor.itemTypes['empoignade'].find(it => it.system.pointsemp > 0)
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static getEmpoignadeById(actor, id) { static getEmpoignadeById(actor, id) {
let emp = actor.itemTypes['empoignade'].find(it => it.system.empoignadeid == id) let emp = actor.itemTypes['empoignade'].find(it => it.system.empoignadeid == id)