Better spells handling
This commit is contained in:
parent
9bc414c8a2
commit
3e242bf0a4
@ -11,7 +11,7 @@ Hooks.once('init', () => {
|
|||||||
|
|
||||||
Babele.get().registerConverters({
|
Babele.get().registerConverters({
|
||||||
"career_skills": (skills_list) => {
|
"career_skills": (skills_list) => {
|
||||||
console.log( game.i18n.localize( "Any" ) );
|
console.log( "Thru here ..." );
|
||||||
var compendium = game.packs.find(p => p.collection === 'wfrp4e.skills');
|
var compendium = game.packs.find(p => p.collection === 'wfrp4e.skills');
|
||||||
var i;
|
var i;
|
||||||
var len = skills_list.length;
|
var len = skills_list.length;
|
||||||
@ -24,8 +24,8 @@ Hooks.once('init', () => {
|
|||||||
//console.log("Matched/split:", res[1], res[2]);
|
//console.log("Matched/split:", res[1], res[2]);
|
||||||
var subword = game.i18n.localize(res[2].trim() );
|
var subword = game.i18n.localize(res[2].trim() );
|
||||||
var s1 = res[1].trim() + " ()";
|
var s1 = res[1].trim() + " ()";
|
||||||
var translw = compendium.i18nName( s1 );
|
var translw = compendium.i18nName( s1 );
|
||||||
if (translw != transl) {
|
if (translw != s1) {
|
||||||
var res2 = re.exec(translw);
|
var res2 = re.exec(translw);
|
||||||
transl = res2[1] + "(" + subword + ")";
|
transl = res2[1] + "(" + subword + ")";
|
||||||
} else {
|
} else {
|
||||||
@ -54,7 +54,7 @@ Hooks.once('init', () => {
|
|||||||
var subword = game.i18n.localize(res[2].trim() );
|
var subword = game.i18n.localize(res[2].trim() );
|
||||||
var s1 = res[1].trim(); // No () in talents table
|
var s1 = res[1].trim(); // No () in talents table
|
||||||
var translw = compendium.i18nName( s1 );
|
var translw = compendium.i18nName( s1 );
|
||||||
if (translw != transl) {
|
if (translw != s1) {
|
||||||
transl = translw + "(" + subword + ")";
|
transl = translw + "(" + subword + ")";
|
||||||
} else {
|
} else {
|
||||||
s1 = res[1].trim() + " ( )";
|
s1 = res[1].trim() + " ( )";
|
||||||
@ -72,7 +72,7 @@ Hooks.once('init', () => {
|
|||||||
"generic_localization": (value) => {
|
"generic_localization": (value) => {
|
||||||
if ( value )
|
if ( value )
|
||||||
return game.i18n.localize( value.trim() );
|
return game.i18n.localize( value.trim() );
|
||||||
},
|
},
|
||||||
"trapping_qualities_flaws": (value) => {
|
"trapping_qualities_flaws": (value) => {
|
||||||
if ( value ) {
|
if ( value ) {
|
||||||
var list = value.split( "," );
|
var list = value.split( "," );
|
||||||
@ -94,6 +94,45 @@ Hooks.once('init', () => {
|
|||||||
"career_careergroup": (value) => {
|
"career_careergroup": (value) => {
|
||||||
var compendium = game.packs.find(p => p.collection === 'wfrp4e.careers');
|
var compendium = game.packs.find(p => p.collection === 'wfrp4e.careers');
|
||||||
return compendium.i18nName( value );
|
return compendium.i18nName( value );
|
||||||
|
},
|
||||||
|
// Auto-translate duration
|
||||||
|
"spells_duration_range_target_damage": (value) => {
|
||||||
|
--console.log("Spell duration/range/damage/target :", value);
|
||||||
|
if ( value == "" ) return ""; // Hop !
|
||||||
|
if ( value == "Touch" ) return "Contact"; // Hop !
|
||||||
|
if ( value == "You" ) return "Vous"; // Hop !
|
||||||
|
if ( value == "Instant" ) return "Instantané"; // Hop !
|
||||||
|
var translw = value;
|
||||||
|
var re = /(.*) Bonus (\w*)/i;
|
||||||
|
var res = re.exec( value );
|
||||||
|
var unit = "";
|
||||||
|
if ( res ) { // Test "<charac> Bonus <unit>" pattern
|
||||||
|
if ( res[1] ) { // We have char name, then convert it
|
||||||
|
translw = "Bonus de " + game.i18n.localize( res[1].trim() );
|
||||||
|
}
|
||||||
|
unit = res[2];
|
||||||
|
} else {
|
||||||
|
re = /(\d+) (\w+)/i;
|
||||||
|
res = re.exec( value );
|
||||||
|
if (res) { // Test : "<number> <unit>" pattern
|
||||||
|
translw = res[1];
|
||||||
|
unit = res[2];
|
||||||
|
} else { // Test
|
||||||
|
re = /(\w+) (\w+)/i;
|
||||||
|
res = re.exec( value );
|
||||||
|
if (res) { // Test : "<charac> <unit>" pattern
|
||||||
|
translw = game.i18n.localize( res[1].trim() );
|
||||||
|
unit = res[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( unit == "hour") unit = "heure";
|
||||||
|
if ( unit == "hours") unit = "heures";
|
||||||
|
if ( unit == "days") unit = "jours";
|
||||||
|
if ( unit == "yard") unit = "mètre";
|
||||||
|
if ( unit == "yards") unit = "mètres";
|
||||||
|
translw += " " + unit;
|
||||||
|
return translw;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -757,4 +757,4 @@
|
|||||||
"description": "<p>Beaucoup de gens au Reikland embrassent une profession ; même les aventuriers ont souvent une Carrière plus fiable ou plus respectable sur laquelle compter entre deux épisodes palpitants. La Compétence Métier représente votre capacité à créer quelque chose ou à fournir un service, ainsi que votre connaissance du savoir essentiel entourant votre profession.</p>\n<p> </p>\n<p>Posséder la Compétence est suffisant pour effectuer automatiquement les tâches associées à votre profession, en partant du principe que vous possédez les ressources et des outils adaptés. Vous avez besoin d'effectuer un Test de Métier uniquement si vous cherchez à créer quelque chose rapidement, que les conditions sont défavorables ou que vous cherchez à inventer ou créer un objet de grande qualité.</p>\n<p> </p>\n<p>Les Tests de Métier de ce type sont souvent des Tests étendus, dont le DR et le temps nécessaires dépendent de la portée ou de l'ampleur de ce qui est produit ; un repas rapide avec Métier (Cuisinier) pour impressionner un seigneur local prendra bien moins de temps que la construction d'un navire de guerre avec Métier (Charpentier de marine).</p>\n<p> </p>\n<p>Vous pouvez aussi effectuer un Test de Métier comme une Compétence Savoir pour déterminer une information importante concernant la profession en question. Dans de telles circonstances, le MJ peut préférer utiliser l'Int plutôt que la Dex comme Caractéristique de base, bien que cela soit souvent ignoré pour simplifer.</p>\n<p> </p>\n<p>Bien que beaucoup de Compétences Métier aient peu d'utilité en combat, il y a autant de Compétences Métier que de professions, et certaines peuvent être utilisées en fonction des circonstances. Par exemple, réussir un Test de Métier (Apothicaire) peut être utile si vous combattez dans une échoppe d'Apothicaire, car vous identifiez des substances âcres à jeter sur vos ennemis.</p>\n<p> </p>\n<p>La Compétence Métier est aussi utilisée pour effectuer une Activité Artisanat (voir page 196).</p>"
|
"description": "<p>Beaucoup de gens au Reikland embrassent une profession ; même les aventuriers ont souvent une Carrière plus fiable ou plus respectable sur laquelle compter entre deux épisodes palpitants. La Compétence Métier représente votre capacité à créer quelque chose ou à fournir un service, ainsi que votre connaissance du savoir essentiel entourant votre profession.</p>\n<p> </p>\n<p>Posséder la Compétence est suffisant pour effectuer automatiquement les tâches associées à votre profession, en partant du principe que vous possédez les ressources et des outils adaptés. Vous avez besoin d'effectuer un Test de Métier uniquement si vous cherchez à créer quelque chose rapidement, que les conditions sont défavorables ou que vous cherchez à inventer ou créer un objet de grande qualité.</p>\n<p> </p>\n<p>Les Tests de Métier de ce type sont souvent des Tests étendus, dont le DR et le temps nécessaires dépendent de la portée ou de l'ampleur de ce qui est produit ; un repas rapide avec Métier (Cuisinier) pour impressionner un seigneur local prendra bien moins de temps que la construction d'un navire de guerre avec Métier (Charpentier de marine).</p>\n<p> </p>\n<p>Vous pouvez aussi effectuer un Test de Métier comme une Compétence Savoir pour déterminer une information importante concernant la profession en question. Dans de telles circonstances, le MJ peut préférer utiliser l'Int plutôt que la Dex comme Caractéristique de base, bien que cela soit souvent ignoré pour simplifer.</p>\n<p> </p>\n<p>Bien que beaucoup de Compétences Métier aient peu d'utilité en combat, il y a autant de Compétences Métier que de professions, et certaines peuvent être utilisées en fonction des circonstances. Par exemple, réussir un Test de Métier (Apothicaire) peut être utile si vous combattez dans une échoppe d'Apothicaire, car vous identifiez des substances âcres à jeter sur vos ennemis.</p>\n<p> </p>\n<p>La Compétence Métier est aussi utilisée pour effectuer une Activité Artisanat (voir page 196).</p>"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,24 @@
|
|||||||
{
|
{
|
||||||
"label": "Spells",
|
"label": "Sorts",
|
||||||
"entries": [
|
"mapping": {
|
||||||
|
"sduration": {
|
||||||
|
"path": "data.duration.value",
|
||||||
|
"converter": "spells_duration_range_target_damage"
|
||||||
|
},
|
||||||
|
"srange": {
|
||||||
|
"path": "data.range.value",
|
||||||
|
"converter": "spells_duration_range_target_damage"
|
||||||
|
},
|
||||||
|
"starget": {
|
||||||
|
"path": "data.target.value",
|
||||||
|
"converter": "spells_duration_range_target_damage"
|
||||||
|
},
|
||||||
|
"sdamage": {
|
||||||
|
"path": "data.damage.value",
|
||||||
|
"converter": "spells_duration_range_target_damage"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"entries": [
|
||||||
{
|
{
|
||||||
"id": "Acquiescence",
|
"id": "Acquiescence",
|
||||||
"name": "Consentement",
|
"name": "Consentement",
|
||||||
|
30
fr.json
30
fr.json
@ -651,6 +651,26 @@
|
|||||||
"Engineering": "Ingénierie",
|
"Engineering": "Ingénierie",
|
||||||
"Entangling": "Entraves",
|
"Entangling": "Entraves",
|
||||||
"Sling": "Fronde",
|
"Sling": "Fronde",
|
||||||
|
|
||||||
|
"Petty": "Mineure",
|
||||||
|
"Beasts": "Bêtes",
|
||||||
|
"Death": "Mort",
|
||||||
|
"Fire": "Feu",
|
||||||
|
"Heavens": "Cieux",
|
||||||
|
"Metal": "Métal",
|
||||||
|
"Life": "Vie",
|
||||||
|
"Light": "Lumière",
|
||||||
|
"Shadow": "Ombres",
|
||||||
|
"Hedgecraft": "Sauvage",
|
||||||
|
"Witchcraft": "Sorcellerie",
|
||||||
|
"Daemonology": "Démonologie",
|
||||||
|
"Necromancy": "Nécromancie",
|
||||||
|
"Nurgle": "Nurgle",
|
||||||
|
"Slaanesh": "Slaanesh",
|
||||||
|
"Tzeentch": "Tzeentch",
|
||||||
|
"Cast Skill": "Compétence d'incantation",
|
||||||
|
"Language" : "Langue",
|
||||||
|
"Magick" : "Magick",
|
||||||
|
|
||||||
"AP": "PA",
|
"AP": "PA",
|
||||||
"yards": "mètres",
|
"yards": "mètres",
|
||||||
@ -736,7 +756,7 @@
|
|||||||
"TIER.Brass" : "Bronze",
|
"TIER.Brass" : "Bronze",
|
||||||
|
|
||||||
"NAME.Pray" : "Prière",
|
"NAME.Pray" : "Prière",
|
||||||
"NAME.Language" : "Language",
|
"NAME.Language" : "Langue",
|
||||||
"SPEC.Magick" : "Magick",
|
"SPEC.Magick" : "Magick",
|
||||||
"NAME.Channelling" : "Focalisation",
|
"NAME.Channelling" : "Focalisation",
|
||||||
"NAME.Melee" : "Corps à Corps",
|
"NAME.Melee" : "Corps à Corps",
|
||||||
@ -844,7 +864,8 @@
|
|||||||
"ITEM.NoSpec" : "Pas de spécialisation",
|
"ITEM.NoSpec" : "Pas de spécialisation",
|
||||||
|
|
||||||
"Instant" : "Immédiat",
|
"Instant" : "Immédiat",
|
||||||
|
"Casting Number": "Niveau d'Incantation",
|
||||||
|
|
||||||
"ClassTrappings.Academics": "Vêtements, Dague, Bourse, Besace contenant un nécessaire d'écriture et 1d10 feuilles de parchemin",
|
"ClassTrappings.Academics": "Vêtements, Dague, Bourse, Besace contenant un nécessaire d'écriture et 1d10 feuilles de parchemin",
|
||||||
"ClassTrappings.Burghers": "Cape, Vêtements, Dague, Chapeau, Bourse, Besace contenant 1 repas",
|
"ClassTrappings.Burghers": "Cape, Vêtements, Dague, Chapeau, Bourse, Besace contenant 1 repas",
|
||||||
"ClassTrappings.Courtiers": "Vêtements de qualité, Dague, Bourse contenant une pince à épiler, Cures-oreilles et un peigne",
|
"ClassTrappings.Courtiers": "Vêtements de qualité, Dague, Bourse contenant une pince à épiler, Cures-oreilles et un peigne",
|
||||||
@ -853,8 +874,9 @@
|
|||||||
"ClassTrappings.Riverfolk": "Cape, Vêtements, Dague, Bourse, Besace contenant 1 flasque d'alcool",
|
"ClassTrappings.Riverfolk": "Cape, Vêtements, Dague, Bourse, Besace contenant 1 flasque d'alcool",
|
||||||
"ClassTrappings.Rogues": "Vêtements, Dague, Bourse, Besace contenant 2 bougies, 1d10 allumettes et une capuche ou un masque",
|
"ClassTrappings.Rogues": "Vêtements, Dague, Bourse, Besace contenant 2 bougies, 1d10 allumettes et une capuche ou un masque",
|
||||||
"ClassTrappings.Warriors": "Vêtements, Arme à 1 main, Dague, Bourse",
|
"ClassTrappings.Warriors": "Vêtements, Arme à 1 main, Dague, Bourse",
|
||||||
|
|
||||||
"NAME.Stealth" : "Discrétion",
|
"NAME.Stealth" : "Discrétion",
|
||||||
"AP" : "PA",
|
"AP" : "PA",
|
||||||
"Scatter" : "Dispersion"
|
"Scatter" : "Dispersion"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user