Correction de combat
- filtrage des parades selon l'attaque - gestion des tactiques
This commit is contained in:
@@ -45,7 +45,7 @@ export class RdDItemArme extends RdDItem {
|
||||
isParade() { return this.system.resistance > 0 && this.system.categorie_parade }
|
||||
isBouclier() { return RdDItemArme.getCategorieParade(this).includes('bouclier') }
|
||||
|
||||
|
||||
|
||||
getCompetenceAction(main) {
|
||||
switch (main) {
|
||||
case ATTAQUE_TYPE.UNE_MAIN: return this.competence1Mains()
|
||||
@@ -174,24 +174,30 @@ export class RdDItemArme extends RdDItem {
|
||||
|
||||
static defenseArmeParade(armeAttaque, armeParade) {
|
||||
const defCategory = RdDItemArme.getCategorieParade(armeParade)
|
||||
if (defCategory == 'boucliers') {
|
||||
return 'norm'
|
||||
switch (defCategory) {
|
||||
case 'boucliers':
|
||||
return 'norm'
|
||||
case '':
|
||||
return 'impossible'
|
||||
}
|
||||
if (armeAttaque?.system?.competence?.toLowerCase().match(/(fléau)/)) {
|
||||
return ''
|
||||
}
|
||||
if (armeParade.system?.tir) {
|
||||
return ''
|
||||
if (RdDItemArme.$isFleau(armeAttaque)) {
|
||||
return 'impossible'
|
||||
}
|
||||
|
||||
const attCategory = RdDItemArme.getCategorieParade(armeAttaque)
|
||||
switch (attCategory) {
|
||||
case 'armes-naturelles': case 'sans-armes':
|
||||
return defCategory == 'sans-armes' ? 'norm' : ''
|
||||
case 'sans-armes':
|
||||
case 'armes-naturelles':
|
||||
return defCategory == attCategory ? 'norm' : 'impossible'
|
||||
default:
|
||||
return RdDItemArme.needParadeSignificative(armeAttaque, armeParade) ? 'sign' : 'norm'
|
||||
}
|
||||
}
|
||||
|
||||
static $isFleau(armeAttaque) {
|
||||
return armeAttaque?.system?.competence?.toLowerCase().match(/(fléau)/);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static needParadeSignificative(armeAttaque, armeParade) {
|
||||
if (!armeAttaque || !armeParade) {
|
||||
|
||||
Reference in New Issue
Block a user