ajout du handicap de rareté

This commit is contained in:
rwanoux
2024-11-20 12:08:03 +01:00
parent 6568eb067f
commit 80277f822f
14 changed files with 160 additions and 83 deletions
+4 -6
View File
@@ -156,17 +156,14 @@ export class TraitSelector extends Application {
}
async validateTraits(html) {
let checks = html.find("input.trait-selector");
let val = html.find("input.trait-value");
for (let inp of [...checks, val]) {
for (let inp of checks) {
if (this.targetItem.system.traits[inp.dataset.trait]) {
if (inp.type == "checkbox") {
inp.checked = true
}
if (inp.type == "value") {
inp.value = this.targetItem.system.traits[inp.dataset.trait].value
}
}
}
}
await this.render(true)
}
async onChangeInput(ev) {
@@ -195,5 +192,6 @@ export class TraitSelector extends Application {
} else {
el.closest("label").querySelector('.trait-selector').checked = false;
}
this.render(true)
}
}
+4 -3
View File
@@ -224,8 +224,8 @@ VERMINE.traits = {
description: "Lobjet a une portée utile ou maximale de(n) mètres.Les armes de distance disposent de plusieurs Portées, qui peuvent être fixes ou modifiées par la Vigueur de lattaquant, notamment pour les armes de tir ou de lancer.",
value: 1
},
"pratique.": {
name: "Pratique.",
"pratique": {
name: "Pratique",
description: "Le matériel offre une prise en main exceptionnelle, une maniabilité étonnante, une simplicité dusage remarquable.Utiliser un tel matériel pour une action adéquate accorde un Bonus de 2D au lieu de 1D.Rechercher ce Trait sur un matériel compte comme deux critères de Rareté à lui seul.De plus les réparations, améliorations et fabrications de matériel avec ce Trait souffrent de(I) Handicap en plus de ceux applicables normalement.",
value: 0
},
@@ -251,4 +251,5 @@ VERMINE.damageTypes = [
"lame",
"feu",
"balle"
]
];
+20 -18
View File
@@ -442,30 +442,13 @@ export class VermineCombatTracker extends CombatTracker {
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("[data-attitude]").click(this._setStatut.bind(this));
html.find("[data-control='rollInitiative']").click(this.rollVermineInitiative.bind(this))
}
async rollVermineInitiative(ev) {
ev.preventDefault();
ev.stopPropagation();
const btn = ev.currentTarget;
const li = btn.closest(".combatant");
const combat = this.viewed;
const combatant = combat.combatants.get(li.dataset.combatantId);
console.log(combatant)
}
/**
@@ -489,4 +472,23 @@ export class VermineCombatTracker extends CombatTracker {
}
}
}
export class VermineCombatant extends Combatant {
constructor(data, context) {
super(data, context);
this.setDefaultAttitude();
console.log(this)
}
setDefaultAttitude() {
this.attitude = this.token.flags.world?.attitude || "active"
}
_getInitiativeFormula() {
console.log(this);
return String(CONFIG.Combat.initiative.formula || game.system.initiative);
}
}
+20
View File
@@ -41,6 +41,8 @@ export const preloadHandlebarsTemplates = async function () {
//items partials
"systems/vermine2047/templates/item/partials/damages.html",
"systems/vermine2047/templates/item/partials/traits.html",
"systems/vermine2047/templates/item/partials/header.hbs",
"systems/vermine2047/templates/item/partials/physicalItems.hbs",
]);
};
@@ -84,6 +86,24 @@ export const registerHandlebarsHelpers = function () {
Handlebars.registerHelper('toLowerCase', function (str) {
return str.toLowerCase();
});
Handlebars.registerHelper('romanNumber', function (numb) {
switch (numb) {
case 0:
return '';
case 1:
return 'I';
case 2:
return 'II';
case 3:
return 'III';
case 4:
return 'IV';
case 5:
return 'V';
default:
throw new Error('Le handicap rareté doit être comprise entre 0 et 5');
}
});
// search translation with variables
Handlebars.registerHelper('smarttl', function (arrayLabel, objectLabel, options) {