#42 Tchat message fin

parade, esquive

 inclus deterioration arme de parade
 inclus recul sous le choc
This commit is contained in:
Vincent Vandemeulebrouck
2021-01-02 04:28:43 +01:00
parent cd36331702
commit 0a3f578bf3
19 changed files with 428 additions and 337 deletions

View File

@ -1,4 +1,19 @@
const nomCcategorieParade = {
"sans-armes": "Sans arme / armes naturelles",
"hast": "Armes d'hast",
"batons": "Bâtons",
"boucliers": "Boucliers",
"dagues": "Dagues",
"epees-courtes": "Epées courtes",
"epees-longues": "Epées longues",
"epees-lourdes": "Epées lourdes",
"haches": "Haches",
"lances": "Lances",
}
export class RdDItemArme extends Item {
/* -------------------------------------------- */
@ -20,6 +35,12 @@ export class RdDItemArme extends Item {
return armeData;
}
/* -------------------------------------------- */
static getNomCategorieParade(it) {
const categorie = it.data? RdDItemArme.getCategorieParade(it) : it;
return nomCcategorieParade[categorie];
}
/* -------------------------------------------- */
static getCategorieParade(arme) {
if (arme.data.categorie_parade) {
@ -56,33 +77,34 @@ export class RdDItemArme extends Item {
return 'sans-armes';
}
/* -------------------------------------------- */
static isArmeParade(arme) {
return RdDItemArme.getCategorieParade(arme);
}
/* -------------------------------------------- */
static needParadeSignificative(armeAttaque, armeParade) {
// categories d'armes à la parade (cf. page 115 )
let attCategory = RdDItemArme.getCategorieParade(armeAttaque);
let defCategory = RdDItemArme.getCategorieParade(armeParade);
// bouclier et mêmes catégorie: peuvent se parer sans difficulté
if (defCategory == 'bouclier') {
if (defCategory == 'boucliers') {
return false;
}
if (attCategory == defCategory) {
// Parer avec une hache ou une arme dhast exige toujours une signi$cative
if (defCategory.match(/(hast|haches)/)) {
return true;
}
if (defCategory == attCategory) {
return false;
}
// les épées se parent entre elles
if (attCategory.match(/epees-/) && defCategory.match(/epees-/)) {
if (defCategory.match(/epees-/) && attCategory.match(/epees-/)) {
return false;
}
if (attCategory == 'dagues' && defCategory == 'epees-courtes') {
// l'épée gnome pare la dague
if (defCategory == 'epees-courtes' && attCategory == 'dagues') {
return false;
}
if (attCategory.match(/epees-(courtes|legeres)/) && defCategory == 'dagues') {
// la dague pare les épées courtes et légères
if (defCategory == 'dagues' && attCategory.match(/epees-(courtes|legeres)/)) {
return false;
}
// Manage weapon categories when parrying (cf. page 115 )
return true;
}