Gestion des signes draconiques #455

Closed
vincent.vandeme wants to merge 233 commits from v1.4-signes-draconiques into master
4 changed files with 13 additions and 12 deletions
Showing only changes of commit 38b58cd4b0 - Show all commits

View File

@ -151,11 +151,11 @@ export class RdDItemCompetence extends Item {
static computeEconomieXPTronc(competences) { static computeEconomieXPTronc(competences) {
return competenceTroncs.map( return competenceTroncs.map(
list => list.map(name => RdDItemCompetence.findCompetence(competences, name)) list => list.map(name => RdDItemCompetence.findCompetence(competences, name))
// calcul du coût xp jusqu'au niveau 0 maximum // calcul du coût xp jusqu'au niveau 0 maximum
.map(it => RdDItemCompetence.computeDeltaXP(it?.data.base ?? -11, Math.min(it?.data.niveau ?? -11, 0))) .map(it => RdDItemCompetence.computeDeltaXP(it?.data.base ?? -11, Math.min(it?.data.niveau ?? -11, 0)))
.sort(Misc.descending(x => x)) .sort(Misc.ascending())
.splice(0, 1) // ignorer le coût xp le plus élevé .splice(0, list.length-1) // prendre toutes les valeurs sauf l'une des plus élevées
.reduce(Misc.sum(), 0) .reduce(Misc.sum(), 0)
).reduce(Misc.sum(), 0); ).reduce(Misc.sum(), 0);
} }

View File

@ -22,11 +22,11 @@ export class Misc {
return (a, b) => a + b; return (a, b) => a + b;
} }
static ascending(orderFunction) { static ascending(orderFunction = x=>x) {
return (a, b) => Misc.sortingBy(orderFunction(a), orderFunction(b)); return (a, b) => Misc.sortingBy(orderFunction(a), orderFunction(b));
} }
static descending(orderFunction) { static descending(orderFunction = x=>x) {
return (a, b) => Misc.sortingBy(orderFunction(b), orderFunction(a)); return (a, b) => Misc.sortingBy(orderFunction(b), orderFunction(a));
} }

View File

@ -219,14 +219,15 @@ export class RdDRoll extends Dialog {
this.rollData.dmg.mortalite = event.currentTarget.checked ? "non-mortel" : "mortel"; this.rollData.dmg.mortalite = event.currentTarget.checked ? "non-mortel" : "mortel";
this.updateRollResult(); this.updateRollResult();
}); });
html.find('#tactique-combat').change((event) => {
this.rollData.tactique = event.currentTarget.value;
this.updateRollResult();
});
html.find('.cuisine-proportions').change((event) => { html.find('.cuisine-proportions').change((event) => {
this.rollData.proportions = Number(event.currentTarget.value); this.rollData.proportions = Number(event.currentTarget.value);
this.updateRollResult(); this.updateRollResult();
}); });
html.find('.select-by-name').change((event) => {
const attribute = event.currentTarget.attributes['name'].value;
this.rollData[attribute] = event.currentTarget.value;
this.updateRollResult();
});
html.find('.checkbox-by-name').change((event) => { html.find('.checkbox-by-name').change((event) => {
const attribute = event.currentTarget.attributes['name'].value; const attribute = event.currentTarget.attributes['name'].value;
this.rollData[attribute] = event.currentTarget.checked; this.rollData[attribute] = event.currentTarget.checked;

View File

@ -50,7 +50,7 @@
{{else}} {{else}}
<span class="tooltip"> <span class="tooltip">
<label>Tactique:</label> <label>Tactique:</label>
<select name="tactique-combat" id="tactique-combat" data-dtype="String" {{#unless use.conditions}}disabled{{/unless}}> <select class="select-by-name" name="tactique" id="tactique-combat" data-dtype="String" {{#unless use.conditions}}disabled{{/unless}}>
<option value="Attaque normale">Attaque normale</option> <option value="Attaque normale">Attaque normale</option>
<option value="charge">Charge</option> <option value="charge">Charge</option>
<option value="feinte">Feinte</option> <option value="feinte">Feinte</option>