Ajustement echecs pour 100
100 est un échec si les chances sont supérieures un échec total si elles sont inférieures jamais un échec particulier
This commit is contained in:
		| @@ -4,7 +4,6 @@ import { Misc } from "./misc.js"; | |||||||
| import { RdDBonus } from "./rdd-bonus.js"; | import { RdDBonus } from "./rdd-bonus.js"; | ||||||
| import { RdDCombat } from "./rdd-combat.js"; | import { RdDCombat } from "./rdd-combat.js"; | ||||||
| import { RdDDice } from "./rdd-dice.js"; | import { RdDDice } from "./rdd-dice.js"; | ||||||
| import { RdDRollTables } from "./rdd-rolltables.js"; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * difficultés au delà de -10 |  * difficultés au delà de -10 | ||||||
| @@ -48,8 +47,8 @@ const specialResults = [ | |||||||
| const reussites = [ | const reussites = [ | ||||||
|   { code: "etotal", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: true, isETotal: true, ptTache: -4, ptQualite: -6, quality: "Echec total", condition: (target, roll) => roll >= target.etotal && roll <= 100 }, |   { code: "etotal", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: true, isETotal: true, ptTache: -4, ptQualite: -6, quality: "Echec total", condition: (target, roll) => roll >= target.etotal && roll <= 100 }, | ||||||
|   { code: "epart", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: true, isETotal: false, ptTache: -2, ptQualite: -4, quality: "Echec particulier", condition: (target, roll) => (roll >= target.epart && roll < target.etotal) }, |   { code: "epart", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: true, isETotal: false, ptTache: -2, ptQualite: -4, quality: "Echec particulier", condition: (target, roll) => (roll >= target.epart && roll < target.etotal) }, | ||||||
|   { code: "echec", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: false, isETotal: false, ptTache: 0, ptQualite: -2, quality: "Echec normal", condition: (target, roll) => (roll > target.score && roll < target.etotal) }, |   { code: "echec", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: false, isETotal: false, ptTache: 0, ptQualite: -2, quality: "Echec normal", condition: (target, roll) => (roll > target.norm && roll < target.etotal) }, | ||||||
|   { code: "norm", isPart: false, isSign: false, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 1, ptQualite: 0, quality: "Réussite normale", condition: (target, roll) => (roll > target.sign && roll <= target.score) }, |   { code: "norm", isPart: false, isSign: false, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 1, ptQualite: 0, quality: "Réussite normale", condition: (target, roll) => (roll > target.sign && roll <= target.norm) }, | ||||||
|   { code: "sign", isPart: false, isSign: true, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 2, ptQualite: 1, quality: "Réussite significative", condition: (target, roll) => (roll > target.part && roll <= target.sign) }, |   { code: "sign", isPart: false, isSign: true, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 2, ptQualite: 1, quality: "Réussite significative", condition: (target, roll) => (roll > target.part && roll <= target.sign) }, | ||||||
|   { code: "part", isPart: true, isSign: true, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 3, ptQualite: 2, quality: "Réussite Particulière!", condition: (target, roll) => (roll > 0 && roll <= target.part) }, |   { code: "part", isPart: true, isSign: true, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 3, ptQualite: 2, quality: "Réussite Particulière!", condition: (target, roll) => (roll > 0 && roll <= target.part) }, | ||||||
|   { code: "error", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: true, isETotal: true, ptTache: 0, ptQualite: 0, quality: "Jet de dés invalide", condition: (target, roll) => (roll <= 0 || roll > 100) } |   { code: "error", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: true, isETotal: true, ptTache: 0, ptQualite: 0, quality: "Jet de dés invalide", condition: (target, roll) => (roll <= 0 || roll > 100) } | ||||||
| @@ -288,31 +287,34 @@ export class RdDResolutionTable { | |||||||
|     return { |     return { | ||||||
|       niveau: niveau, |       niveau: niveau, | ||||||
|       score: percentage, |       score: percentage, | ||||||
|  |       norm: Math.min(99, percentage), | ||||||
|       sign: this._reussiteSignificative(percentage), |       sign: this._reussiteSignificative(percentage), | ||||||
|       part: this._reussitePart(percentage), |       part: this._reussitePart(percentage), | ||||||
|       epart: this._echecParticulier(percentage), |       epart: this._echecParticulier(percentage), | ||||||
|       etotal: this._echecTotal(percentage) |       etotal: this._echecTotal(percentage) | ||||||
|     } |     }; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   /* -------------------------------------------- */ |   /* -------------------------------------------- */ | ||||||
|   static _reussiteSignificative(score) { |   static _reussiteSignificative(percentage) { | ||||||
|     return Math.floor(score / 2); |     return Math.floor(percentage / 2); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   /* -------------------------------------------- */ |   /* -------------------------------------------- */ | ||||||
|   static _reussitePart(score) { |   static _reussitePart(percentage) { | ||||||
|     return Math.ceil(score / 5); |     return Math.ceil(percentage / 5); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   /* -------------------------------------------- */ |   /* -------------------------------------------- */ | ||||||
|   static _echecParticulier(score) { |   static _echecParticulier(percentage) { | ||||||
|     return Math.ceil(score / 5) + 80; |     const epart = Math.ceil(percentage / 5) + 80; | ||||||
|  |     return epart >= 100 ? 101 : epart; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   /* -------------------------------------------- */ |   /* -------------------------------------------- */ | ||||||
|   static _echecTotal(score) { |   static _echecTotal(percentage) { | ||||||
|     return Math.ceil(score / 10) + 91; |     const etotal = Math.ceil(percentage / 10) + 91; | ||||||
|  |     return percentage >= 100 ? 101 : Math.min(etotal, 100); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   /* -------------------------------------------- */ |   /* -------------------------------------------- */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user