forked from public/foundryvtt-reve-de-dragon
Macros pour le corps à corps
Cas particulier car 3 utilisations possibles, et pas d'armes
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
import { RdDItemCompetence } from "./item-competence.js";
|
||||
import { RdDItemArme } from "./item-arme.js";
|
||||
import { RdDItemCompetenceCreature } from "./item-competencecreature.js";
|
||||
import { TYPES } from "./item.js";
|
||||
|
||||
@ -6,9 +6,9 @@ export class RdDHotbar {
|
||||
|
||||
static async createItemMacro(item, slot, armeCompetence = undefined) {
|
||||
const itemName = item.name;
|
||||
let macroName = itemName + RdDHotbar.$macroNameSuffix(armeCompetence);
|
||||
let command = `game.system.rdd.RdDHotbar.rollMacro("${itemName}", "${item.type}", "${armeCompetence}");`
|
||||
let macro = game.macros.contents.find(m => (m.name === itemName) && (m.command === command));
|
||||
let macroName = itemName + RdDHotbar.$macroNameSuffix(armeCompetence);
|
||||
if (!macro) {
|
||||
macro = await Macro.create({
|
||||
name: macroName,
|
||||
@ -20,12 +20,15 @@ export class RdDHotbar {
|
||||
await game.user.assignHotbarMacro(macro, slot);
|
||||
}
|
||||
|
||||
static $macroNameSuffix(armeCompetence){
|
||||
switch(armeCompetence) {
|
||||
static $macroNameSuffix(armeCompetence) {
|
||||
switch (armeCompetence) {
|
||||
case 'unemain': return ' (1 main)';
|
||||
case 'deuxmains': return ' (2 main)';
|
||||
case 'deuxmains': return ' (2 main)';
|
||||
case 'tir': return ' (tir)';
|
||||
case 'lancer': return ' (lancer)';
|
||||
case 'pugilat': return ' (pugilat)';
|
||||
case 'empoignade': return ' (empoignade)';
|
||||
|
||||
}
|
||||
return ''
|
||||
}
|
||||
@ -37,21 +40,17 @@ export class RdDHotbar {
|
||||
// Les armes peuvent avoir plusieurs usages
|
||||
if (item.system.competence != '') {
|
||||
if (item.system.unemain) {
|
||||
await this.createItemMacro(item, slot, 'unemain')
|
||||
slot++
|
||||
await this.createItemMacro(item, slot++, 'unemain')
|
||||
}
|
||||
if (item.system.deuxmains) {
|
||||
await this.createItemMacro(item, slot, 'deuxmains')
|
||||
slot++
|
||||
await this.createItemMacro(item, slot++, 'deuxmains')
|
||||
}
|
||||
}
|
||||
if (item.system.lancer != '') {
|
||||
await this.createItemMacro(item, slot, 'lancer')
|
||||
slot++
|
||||
await this.createItemMacro(item, slot++, 'lancer')
|
||||
}
|
||||
if (item.system.tir != '') {
|
||||
await this.createItemMacro(item, slot, 'lancer')
|
||||
slot++
|
||||
await this.createItemMacro(item, slot++, 'lancer')
|
||||
}
|
||||
}
|
||||
return
|
||||
@ -61,10 +60,15 @@ export class RdDHotbar {
|
||||
return
|
||||
default:
|
||||
case TYPES.competence:
|
||||
if (RdDItemCompetence.isCompetenceArme(item)) {
|
||||
ui.notifications.info(`La compétence de ${item.name} est une compétence d'arme, choisissez plutôt de créer la macro depuis l'onglet combat`);
|
||||
await this.createItemMacro(item, slot++, 'competence')
|
||||
if (item.isCorpsACorps()) {
|
||||
await this.createItemMacro(item, slot++, 'pugilat')
|
||||
await this.createItemMacro(item, slot++, 'empoignade')
|
||||
}
|
||||
if (item.isCompetenceArme()) {
|
||||
ui.notifications.info(`${item.name} est une compétence d'arme, la macro n'est pas liée à un arme.<br>
|
||||
Créez la macro depuis l'arme ou l'onglet combat pour garder les automatisations de combat.`);
|
||||
}
|
||||
await this.createItemMacro(item, slot, 'competence')
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -115,6 +119,14 @@ export class RdDHotbar {
|
||||
case TYPES.arme:
|
||||
return actor.rollArme(item, categorieArme);
|
||||
case TYPES.competence:
|
||||
if (item.isCorpsACorps()) {
|
||||
switch (categorieArme) {
|
||||
case 'pugilat':
|
||||
return actor.rollArme(RdDItemArme.mainsNues(actor), 'competence');
|
||||
case 'empoignade':
|
||||
return actor.rollArme(RdDItemArme.empoignade(actor), 'competence');
|
||||
}
|
||||
}
|
||||
return actor.rollCompetence(item);
|
||||
case TYPES.competencecreature:
|
||||
return item.system.iscombat && !item.system.isparade
|
||||
|
Reference in New Issue
Block a user