attitudes

This commit is contained in:
François-Xavier Guillois
2023-08-25 15:35:43 +02:00
parent 641d2a892a
commit c57c355066
5 changed files with 225 additions and 10 deletions
+71
View File
@@ -421,4 +421,75 @@ export class VermineCombat extends Combat {
}
super._onDelete()*/
}
}
export class VermineCombatTracker extends CombatTracker {
get template() {
return "systems/vermine2047/templates/combat-tracker.hbs";
}
async getData(options) {
const context = await super.getData(options);
if (!context.hasCombat) {
return context;
}
for (let [i, combatant] of context.combat.turns.entries()) {
context.turns[i].hasActed = combatant.getFlag("world", "hasActed");
context.turns[i].isPlayer = combatant.actor.type == "player";
context.turns[i].isNpc = combatant.actor.type == "npc";
}
return context;
}
/* -------------------------------------------- */
get template() {
return "systems/gods-system/templates/combat/tracker.hbs";
}
async getData(options) {
const context = await super.getData(options);
if (!context.hasCombat) {
return context;
}
for (let [i, combatant] of context.combat.turns.entries()) {
context.turns[i].attitude = combatant.getFlag("world", "attitude");
context.turns[i].isPlayer = combatant.actor.type == "character";
context.turns[i].isNpc = combatant.actor.type == "npc";
context.turns[i].isCreature = combatant.actor.type == "creature";
}
return context;
}
activateListeners(html) {
super.activateListeners(html);
html.find(".status").click(this._setStatut.bind(this));
}
/**
* @description Use to put an attitude to an actor
* @param {*} event
*/
async _setStatut(event) {
event.preventDefault();
event.stopPropagation();
const btn = event.currentTarget;
const li = btn.closest(".combatant");
const combat = this.viewed;
const combatant = combat.combatants.get(li.dataset.combatantId);
if ($(btn).hasClass('offensive'))
await combatant.setFlag("world", "attitude", "offensive");
else if ($(btn).hasClass('active'))
await combatant.setFlag("world", "attitude", "active");
else if ($(btn).hasClass('passive'))
await combatant.setFlag("world", "attitude", "passive");
else
await combatant.setFlag("world", "attitude", null);
}
}