Gestion des @Condition

This commit is contained in:
sladecraven 2020-11-13 14:52:23 +01:00
parent 744019a165
commit a10f5322a4
4 changed files with 78 additions and 9 deletions

View File

@ -3,6 +3,23 @@ import statParserFR from "./modules/import-stat-2.js";
/************************************************************************************/
var compmod = "wfrp4e";
const vo_conditions = {
"ablaze": "Ablaze",
"bleeding": "Bleeding",
"blinded": "Blinded",
"broken": "Broken",
"deafened": "Deafened",
"entangled": "Entangled",
"fatigued": "Fatigued",
"poisoned": "Poisoned",
"prone": "Prone",
"stunned": "Stunned",
"surprised": "Surprised",
"unconscious": "Unconscious",
"grappling": "Grappling",
"fear": "Fear",
"defeated": "Defeated"
}
/************************************************************************************/
Hooks.once('init', () => {
@ -13,15 +30,40 @@ Hooks.once('init', () => {
compmod = "wfrp4e-core";
}
} );
game.wfrp4efr = { compmod: compmod };
game.wfrp4efr = { compmod: compmod,
vo_conditions: vo_conditions }
game.wfrp4e.apps.StatBlockParser.parseStatBlock = async function( statString, type = "npc") {
return statParserFR( statString, type);
}
//WFRP_Tables = game.wfrp4e.tables;
//WFRP4E = game.wfrp4e.config;
//CONFIG.Actor.entityClass = ActorWfrp4e_fr;
/*---------------------------------------------------------------------*/
game.wfrp4e.utility.handleConditionClick = function(event) {
let cond = $(event.currentTarget).attr("data-cond")
if (!cond)
cond = event.target.text;
cond = cond.trim();
let condkey
// En vo, les noms d'états sont égaux aux clés en minuscules
if ( game.wfrp4e.config.conditions[cond.toLowerCase()] ) {
condkey = cond.toLowerCase();
} else {
try {
condkey = game.wfrp4e.utility.findKey(cond.toLowerCase(), game.wfrp4e.config.conditions, {caseInsensitive: true});
}
catch {
ui.notifications.error("L'état eéta inconnu : " + cond);
}
}
let condName = game.wfrp4e.config.conditions[condkey];
let condDescr = game.wfrp4e.config.conditionDescriptions[condkey];
let messageContent = `<b>${condName}</b><br>${condDescr}`
let chatData = game.wfrp4e.utility.chatDataSetup(messageContent)
ChatMessage.create(chatData);
}
/*---------------------------------------------------------------------*/
game.wfrp4e.entities.ActorWfrp4e.prototype.calculateRangeOrDamage = function(formula)
{
//console.log("FR function calculateRangeOrDamage !", formula);
@ -53,6 +95,8 @@ Hooks.once('init', () => {
return formula
}
}
/*---------------------------------------------------------------------*/
game.wfrp4e.entities.ActorWfrp4e.prototype.calculateSpellDamage = function(formula, isMagicMissile) {
//console.log("Compute FR")
let actorData = this.data
@ -94,6 +138,7 @@ Hooks.once('init', () => {
return eval(formula);
}
/*---------------------------------------------------------------------*/
game.wfrp4e.entities.ActorWfrp4e.prototype.calculateSpellAttributes = function(formula, aoe=false) {
//console.log("Compute FR")
let actorData = this.data
@ -142,9 +187,9 @@ Hooks.once('init', () => {
//console.log("calculateSpellAttributes -> " + formula );
return formula.capitalize();
}
//1console.log("PROTO", game.wfrp4e.entities.ActorWfrp4e.prototype);
// Babele stuff
/*---------------------------------------------------------------------*/
// Converters area
if(typeof Babele !== 'undefined') {
Babele.get().register({

View File

@ -496,7 +496,7 @@
"WFRP4E.Properties.Penetrating" : "L'arme est extrêmement efficace pour pénétrer les armures. Les PA ne provenant pas de métal sont ignorés, et le premier point de toutes les autres armures est ignoré.",
"WFRP4E.Properties.Pistol" : "Vous pouvez utiliser cette arme pour attaquer en Combat rapproché.",
"WFRP4E.Properties.Precise" : "L'arme trouve facilement sa cible. Gagnez +1DR à tout Test réussi lors d'une attaque avec cette arme.",
"WFRP4E.Properties.Pummel" : "Les armes Assommantes sont particulièrement efficaces pour forcer les ennemis à se soumettre. Si vous touchez la Tête avec une arme Assommate, tentez un Test opposé de Force / Résistance contre la cible frappée. Si vous remportez le Test, votre adversaire gagne un Etat Assommé.",
"WFRP4E.Properties.Pummel" : "Les armes Assommantes sont particulièrement efficaces pour forcer les ennemis à se soumettre. Si vous touchez la Tête avec une arme Assomante, tentez un Test opposé de Force / Résistance contre la cible frappée. Si vous remportez le Test, votre adversaire gagne un Etat Assommé.",
"WFRP4E.Properties.Repeater" : "Votre arme contient (Indice) munitions, automatiquement rechargées après chaque coup que vous tirez. Lorsque vous avez utilisé toutes vos munitions, vous devez recharger entièrement l'arme en utilisant les règles normales.",
"WFRP4E.Properties.Shield" : "Si vous utilisez cette arme pour opposer une attaque, vous êtes considéré comme ayant (Indice) PA à tous les endroits de votre corps. Si votre arme possède un Indice de Protection de 2 ou plus, vous pouvez aussi opposer des projectiles tirés dans votre ligne de vue.",
"WFRP4E.Properties.Trapblade" : "Certaines armes sont conçues pour piéger d'autres armes, et parfois même les briser. Si vous obtenez un Critique quand vous défendez contre une attaque provenant d'une arme possédant une lame, vous pouvez choisir de la piéger plutôt que de causer un Coup Critique. Si vous choisissez cela, effectuez un <b>Test opposé de Force</b>, en ajoutant votre DR obtenu au précédent Test de Corps à corps. Si vous l'emportez, votre adversaire laisse tomber la lame qui lui est arrachée. Si vous obtenez un Succès Stupéfiant, vous ne désarmez pas seulement votre adversaire, mais la force de votre manoeuvre brise la lame à moins qu'elle ne possède l'Atout Incassable. Si vous échouez au Test, votre adversaire libère sa lame et peut combattre normalement.",

View File

@ -3,7 +3,7 @@
"name": "WH4-fr-translation",
"title": "Traduction du module WH4 en Français.",
"description": "La traduction du module WH4.",
"version": "1.3.23",
"version": "1.3.24",
"minimumCoreVersion" : "0.6.6",
"compatibleCoreVersion": "0.7.6",
"author": "LeRatierBretonnien",

File diff suppressed because one or more lines are too long