Préparation ajout empoignade
actor.rollArme prend maintenant une arme (ou structure) plutôt que des noms l'empoignade sera une pseudo arme, comme le corps à corps # Conflicts: # module/actor-sheet.js
This commit is contained in:
parent
ab9f6f0017
commit
9bc4b9a3ca
@ -344,8 +344,16 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
// Roll Weapon1
|
// Roll Weapon1
|
||||||
html.find('.arme-label a').click(async event => {
|
html.find('.arme-label a').click(async event => {
|
||||||
let armeName = event.currentTarget.text;
|
let armeName = event.currentTarget.text;
|
||||||
let competenceName = event.currentTarget.attributes['data-competence-name'].value;
|
let compName = event.currentTarget.attributes['data-competence-name'].value;
|
||||||
this.actor.rollArme(competenceName, armeName);
|
let arme = this.actor.data.find(it =>
|
||||||
|
it.name == armeName &&
|
||||||
|
RdDItemArme.isArme(it) &&
|
||||||
|
((compName ?? it.data.competence) == it.data.competence)
|
||||||
|
);
|
||||||
|
if (!arme) {
|
||||||
|
arme = { name: armeName, data: { competence: compName } };
|
||||||
|
}
|
||||||
|
this.actor.rollArme(arme);
|
||||||
});
|
});
|
||||||
// Initiative pour l'arme
|
// Initiative pour l'arme
|
||||||
html.find('.arme-initiative a').click(async event => {
|
html.find('.arme-initiative a').click(async event => {
|
||||||
@ -441,6 +449,7 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
html.find('.lock-unlock-controls').click(async event => {
|
html.find('.lock-unlock-controls').click(async event => {
|
||||||
|
console.log("CONTROLS", this.options.hideControls)
|
||||||
this.options.hideControls = !this.options.hideControls;
|
this.options.hideControls = !this.options.hideControls;
|
||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
@ -560,7 +569,7 @@ export class RdDActorSheet extends ActorSheet {
|
|||||||
async _onSplitItem(item, split) {
|
async _onSplitItem(item, split) {
|
||||||
if (split >= 1 && split < Misc.data(item).data.quantite) {
|
if (split >= 1 && split < Misc.data(item).data.quantite) {
|
||||||
await item.diminuerQuantite(split);
|
await item.diminuerQuantite(split);
|
||||||
const itemData = duplicate( Misc.data(item));
|
const itemData = duplicate(Misc.data(item));
|
||||||
itemData.data.quantite = split;
|
itemData.data.quantite = split;
|
||||||
await this.actor.createEmbeddedDocuments('Item', [itemData])
|
await this.actor.createEmbeddedDocuments('Item', [itemData])
|
||||||
}
|
}
|
||||||
|
@ -3117,11 +3117,9 @@ export class RdDActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
rollArme(compName, armeName = undefined) {
|
rollArme(arme) {
|
||||||
let arme = armeName ? this.data.items.find(it => Misc.data(it).name == armeName && RdDItemArme.isArme(it)) : undefined;
|
let competence = Misc.data(this.getCompetence(arme.data.competence));
|
||||||
let competence = Misc.data(this.getCompetence(compName));
|
if (arme || (competence.type == 'competencecreature' && competence.data.iscombat)) {
|
||||||
|
|
||||||
if (arme || armeName || (competence.type == 'competencecreature' && competence.data.iscombat)) {
|
|
||||||
RdDCombat.createUsingTarget(this)?.attaque(competence, arme);
|
RdDCombat.createUsingTarget(this)?.attaque(competence, arme);
|
||||||
} else {
|
} else {
|
||||||
this.rollCompetence(competence.name);
|
this.rollCompetence(competence.name);
|
||||||
|
@ -189,6 +189,6 @@ export class RdDItemArme extends Item {
|
|||||||
if (actorData) {
|
if (actorData) {
|
||||||
mergeObject(mainsNues.data, actorData, { overwrite: false });
|
mergeObject(mainsNues.data, actorData, { overwrite: false });
|
||||||
}
|
}
|
||||||
return mainsNues
|
return mainsNues;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { Misc } from "./misc.js";
|
||||||
|
|
||||||
export class RdDHotbar {
|
export class RdDHotbar {
|
||||||
|
|
||||||
@ -67,15 +68,14 @@ export class RdDHotbar {
|
|||||||
let actor;
|
let actor;
|
||||||
if (speaker.token) actor = game.actors.tokens[speaker.token];
|
if (speaker.token) actor = game.actors.tokens[speaker.token];
|
||||||
if (!actor) actor = game.actors.get(speaker.actor);
|
if (!actor) actor = game.actors.get(speaker.actor);
|
||||||
let item = actor ? actor.items.find(i => i.name === itemName && i.type == itemType) : null;
|
|
||||||
if (!item) return ui.notifications.warn(`Impossible de trouver l'objet de cette macro`);
|
|
||||||
|
|
||||||
item = item.data;
|
let item = Misc.data(actor?.items.find(it => it.name === itemName && it.type == itemType));
|
||||||
|
if (!item) return ui.notifications.warn(`Impossible de trouver l'objet de cette macro`);
|
||||||
|
|
||||||
// Trigger the item roll
|
// Trigger the item roll
|
||||||
switch (item.type) {
|
switch (item.type) {
|
||||||
case "arme":
|
case "arme":
|
||||||
return actor.rollArme(item.data.competence, itemName);
|
return actor.rollArme(item);
|
||||||
case "competence":
|
case "competence":
|
||||||
return actor.rollCompetence( itemName );
|
return actor.rollCompetence( itemName );
|
||||||
}
|
}
|
||||||
|
@ -53,8 +53,7 @@ export class RdDTokenHud {
|
|||||||
await RdDTokenHud._configureSubMenu(controlIconTarget, 'systems/foundryvtt-reve-de-dragon/templates/hud-actor-attaque.html', hudData,
|
await RdDTokenHud._configureSubMenu(controlIconTarget, 'systems/foundryvtt-reve-de-dragon/templates/hud-actor-attaque.html', hudData,
|
||||||
(event) => {
|
(event) => {
|
||||||
let armeIndex = event.currentTarget.attributes['data-arme-id'].value;
|
let armeIndex = event.currentTarget.attributes['data-arme-id'].value;
|
||||||
let arme = armesList[armeIndex];
|
actor.rollArme(armesList[armeIndex]);
|
||||||
actor.rollArme(arme.data.competence, arme.name);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user