Add NPC buttons + enhance NPC characteristics translation
This commit is contained in:
parent
1f3c084982
commit
577ff31d5d
@ -146,6 +146,35 @@ class ActorWfrp4e_fr extends ActorWfrp4e {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Hooks.on("chatMessage", (html, content, msg) => {
|
||||||
|
// Setup new message's visibility
|
||||||
|
let rollMode = game.settings.get("core", "rollMode");
|
||||||
|
if ( ["gmroll", "blindroll"].includes(rollMode) ) msg["whisper"] = ChatMessage.getWhisperIDs("GM");
|
||||||
|
if ( rollMode === "blindroll" ) msg["blind"] = true;
|
||||||
|
msg["type"] = 0;
|
||||||
|
|
||||||
|
// Split input into arguments
|
||||||
|
let command = content.split(" ").map(function(item) {
|
||||||
|
return item.trim();
|
||||||
|
})
|
||||||
|
// Roll on a table
|
||||||
|
if (command[0] == "/auberge")
|
||||||
|
{
|
||||||
|
var compendium = game.packs.find(p => p.collection === 'world.plats-dauberges');
|
||||||
|
|
||||||
|
compendium.getIndex().then(index => {
|
||||||
|
index.forEach(entity => {
|
||||||
|
//console.log(entity.name, entity._id);
|
||||||
|
if (entity.name.toLowerCase().includes(command[1].toLowerCase()) ) {
|
||||||
|
compendium.getEntity(entity._id).then(table => {
|
||||||
|
table.draw();
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
Hooks.once('init', () => {
|
Hooks.once('init', () => {
|
||||||
|
|
||||||
@ -163,7 +192,116 @@ Hooks.once('init', () => {
|
|||||||
"doigts de fée": "dex",
|
"doigts de fée": "dex",
|
||||||
"guerrier né": "ws"
|
"guerrier né": "ws"
|
||||||
}
|
}
|
||||||
|
WFRP4E.speciesSkills = {
|
||||||
|
"human": [
|
||||||
|
"Soins aux animaux",
|
||||||
|
"Charme",
|
||||||
|
"Calme",
|
||||||
|
"Evaluation",
|
||||||
|
"Ragot",
|
||||||
|
"Marchandage",
|
||||||
|
"Langue (Bretonnien)",
|
||||||
|
"Langue (Wastelander)",
|
||||||
|
"Commandement",
|
||||||
|
"Savoir (Reikland)",
|
||||||
|
"Corps à corps (Base)",
|
||||||
|
"Projectiles (Arc)"
|
||||||
|
],
|
||||||
|
"dwarf": [
|
||||||
|
"Résistance à l'alcool",
|
||||||
|
"Calme",
|
||||||
|
"Endurance",
|
||||||
|
"Divertissement (Raconter)",
|
||||||
|
"Evaluation",
|
||||||
|
"Intimidation",
|
||||||
|
"Langue (Khazalid)",
|
||||||
|
"Savoir (Nains)",
|
||||||
|
"Savoir (Geologie)",
|
||||||
|
"Savoir (Metallurgie)",
|
||||||
|
"Corps à corps (Base)",
|
||||||
|
"Métier (Au choix)"
|
||||||
|
],
|
||||||
|
"halfling": [
|
||||||
|
"Charme",
|
||||||
|
"Résistance à l'alcool",
|
||||||
|
"Esquive",
|
||||||
|
"Pari",
|
||||||
|
"Marchandage",
|
||||||
|
"Intuition",
|
||||||
|
"Langue (Mootland)",
|
||||||
|
"Savoir (Reikland)",
|
||||||
|
"Perception",
|
||||||
|
"Escamotage",
|
||||||
|
"Discrétion (Au choix)",
|
||||||
|
"Métier (Cuisinier)"
|
||||||
|
],
|
||||||
|
"helf": [
|
||||||
|
"Calme",
|
||||||
|
"Divertissement (Chant)",
|
||||||
|
"Evaluation",
|
||||||
|
"Langue (Eltharin)",
|
||||||
|
"Commandement",
|
||||||
|
"Corps à corps (Base)",
|
||||||
|
"Navigation",
|
||||||
|
"Perception",
|
||||||
|
"Musicien (Au choix)",
|
||||||
|
"Projectiles (Arc)",
|
||||||
|
"Voile",
|
||||||
|
"Natation"
|
||||||
|
],
|
||||||
|
"welf": [
|
||||||
|
"Athlétisme",
|
||||||
|
"Escalade",
|
||||||
|
"Endurance",
|
||||||
|
"Divertissement (Chant)",
|
||||||
|
"Intimidation",
|
||||||
|
"Langue (Eltharin)",
|
||||||
|
"Corps à corps (Base)",
|
||||||
|
"Survie en extérieur",
|
||||||
|
"Perception",
|
||||||
|
"Projectiles (Arc)",
|
||||||
|
"Discrétion (Rural)",
|
||||||
|
"Pistage"
|
||||||
|
],
|
||||||
|
}
|
||||||
|
WFRP4E.speciesTalents = {
|
||||||
|
"human": [
|
||||||
|
"Destinée",
|
||||||
|
"Affable, Perspicace",
|
||||||
|
3
|
||||||
|
],
|
||||||
|
"dwarf": [
|
||||||
|
"Résistance à la Magie",
|
||||||
|
"Vision Nocturne",
|
||||||
|
"Lire/Ecrire, Impitoyable",
|
||||||
|
"Déterminé, Obstiné",
|
||||||
|
"Costaud",
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"halfling": [
|
||||||
|
"Sens Aiguisé (Gout)",
|
||||||
|
"Vision Nocturne",
|
||||||
|
"Résistance (Chaos)",
|
||||||
|
"Petit",
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"helf": [
|
||||||
|
"Sens Aiguisé (Vue)",
|
||||||
|
"Imperturbable, Perspicace",
|
||||||
|
"Vision Nocturne",
|
||||||
|
"Seconde Vue, Sixième Sens",
|
||||||
|
"Lire/Ecrire",
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"welf": [
|
||||||
|
"Sens Aiguisé (Sight)",
|
||||||
|
"Dur à cuire, Seconde Vue",
|
||||||
|
"Vision Nocturne",
|
||||||
|
"Seconde Vue, Sixth Sense",
|
||||||
|
"Lire/Ecrire",
|
||||||
|
0
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
if(typeof Babele !== 'undefined') {
|
if(typeof Babele !== 'undefined') {
|
||||||
|
|
||||||
@ -233,6 +371,16 @@ Hooks.once('init', () => {
|
|||||||
}
|
}
|
||||||
return talents_list;
|
return talents_list;
|
||||||
},
|
},
|
||||||
|
"npc_characteristics": (chars) => { // Auto-convert char names in the sheet
|
||||||
|
for (var key in chars) {
|
||||||
|
//console.log("Was here !", key, chars[key].label);
|
||||||
|
var char = chars[key]
|
||||||
|
var abrev = char["abrev"];
|
||||||
|
char["label"] = game.i18n.localize( "CHAR." + abrev );
|
||||||
|
char["abrev"] = game.i18n.localize( "CHARAbbrev." + abrev);
|
||||||
|
}
|
||||||
|
return chars;
|
||||||
|
},
|
||||||
"bestiary_traits": (beast_traits, translations) => {
|
"bestiary_traits": (beast_traits, translations) => {
|
||||||
var compendium = game.packs.find(p => p.collection === 'wfrp4e.traits');
|
var compendium = game.packs.find(p => p.collection === 'wfrp4e.traits');
|
||||||
for (let trait_en of beast_traits)
|
for (let trait_en of beast_traits)
|
||||||
@ -257,7 +405,7 @@ Hooks.once('init', () => {
|
|||||||
trait_en.data.description.value = trait_fr.data.description.value;
|
trait_en.data.description.value = trait_fr.data.description.value;
|
||||||
if ( isNaN(trait_en.data.specification.value) ) { // This is a string, so translate it
|
if ( isNaN(trait_en.data.specification.value) ) { // This is a string, so translate it
|
||||||
//console.log("Translating : ", trait_en.data.specification.value);
|
//console.log("Translating : ", trait_en.data.specification.value);
|
||||||
trait_en.data.specification.value = game.i18n.localize(trait_en.data.specification.value);
|
trait_en.data.specification.value = game.i18n.localize( trait_en.data.specification.value.trim() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return beast_traits;
|
return beast_traits;
|
||||||
|
@ -2,7 +2,11 @@
|
|||||||
"label": "PNJ Ennemi Intérieur",
|
"label": "PNJ Ennemi Intérieur",
|
||||||
"mapping": {
|
"mapping": {
|
||||||
"name": "name",
|
"name": "name",
|
||||||
"description": "description"
|
"description": "details.biography.value",
|
||||||
|
"characteristics": {
|
||||||
|
"path": "data.characteristics",
|
||||||
|
"converter": "npc_characteristics"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"entries": [
|
"entries": [
|
||||||
]
|
]
|
||||||
|
@ -4,6 +4,10 @@
|
|||||||
"items": {
|
"items": {
|
||||||
"path": "items",
|
"path": "items",
|
||||||
"converter": "bestiary_traits"
|
"converter": "bestiary_traits"
|
||||||
|
},
|
||||||
|
"characteristics": {
|
||||||
|
"path": "data.characteristics",
|
||||||
|
"converter": "npc_characteristics"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entries": [
|
"entries": [
|
||||||
|
6
fr.json
6
fr.json
@ -929,5 +929,9 @@
|
|||||||
"Ammo" : "Munition",
|
"Ammo" : "Munition",
|
||||||
|
|
||||||
"Size": "Taille",
|
"Size": "Taille",
|
||||||
"NAME.CombatReflexes" : "Combat Instinctif"
|
"NAME.CombatReflexes" : "Combat Instinctif",
|
||||||
|
|
||||||
|
"character": "PJ",
|
||||||
|
"npc": "PNJ",
|
||||||
|
"creature": "Créature"
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"name": "WH4-fr-translation",
|
"name": "WH4-fr-translation",
|
||||||
"title": "Traduction du module WH4 en Français.",
|
"title": "Traduction du module WH4 en Français.",
|
||||||
"description": "La traduction du module WH4.",
|
"description": "La traduction du module WH4.",
|
||||||
"version": "0.58",
|
"version": "0.59",
|
||||||
"minimumCoreVersion" : "0.5.1",
|
"minimumCoreVersion" : "0.5.1",
|
||||||
"compatibleCoreVersion": "0.5.5",
|
"compatibleCoreVersion": "0.5.5",
|
||||||
"author": "LeRatierBretonnien",
|
"author": "LeRatierBretonnien",
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
"name": "Talents aléatoires",
|
"name": "Talents aléatoires",
|
||||||
"die" : "1d32",
|
"die" : "1d32",
|
||||||
"rows": [{
|
"rows": [{
|
||||||
"name": "Sens aiguisés (Au choix)",
|
"name": "Sens Aiguisé (Au choix)",
|
||||||
"range": [1, 1]
|
"range": [1, 1]
|
||||||
}, {
|
}, {
|
||||||
"name": "Ambidextre",
|
"name": "Ambidextre",
|
||||||
"range": [2, 2]
|
"range": [2, 2]
|
||||||
}, {
|
}, {
|
||||||
"name": "Affinité avec les Animaux",
|
"name": "Affinité avec les animaux",
|
||||||
"range": [3, 3]
|
"range": [3, 3]
|
||||||
}, {
|
}, {
|
||||||
"name": "Artiste",
|
"name": "Artiste",
|
||||||
@ -26,7 +26,7 @@
|
|||||||
"name": "Fuite!",
|
"name": "Fuite!",
|
||||||
"range": [8, 8]
|
"range": [8, 8]
|
||||||
}, {
|
}, {
|
||||||
"name": "Dur à Cuire",
|
"name": "Dur à cuire",
|
||||||
"range": [9, 9]
|
"range": [9, 9]
|
||||||
}, {
|
}, {
|
||||||
"name": "Reflexes Foudroyants",
|
"name": "Reflexes Foudroyants",
|
||||||
@ -38,7 +38,7 @@
|
|||||||
"name": "Chanceux",
|
"name": "Chanceux",
|
||||||
"range": [12, 12]
|
"range": [12, 12]
|
||||||
}, {
|
}, {
|
||||||
"name": "Tireur de Précision",
|
"name": "Tireur de précision",
|
||||||
"range": [13, 13]
|
"range": [13, 13]
|
||||||
}, {
|
}, {
|
||||||
"name": "Imitation",
|
"name": "Imitation",
|
||||||
@ -47,7 +47,7 @@
|
|||||||
"name": "Vision Nocturne",
|
"name": "Vision Nocturne",
|
||||||
"range": [15, 15]
|
"range": [15, 15]
|
||||||
}, {
|
}, {
|
||||||
"name": "Doigts de Fée",
|
"name": "Doigts de fée",
|
||||||
"range": [16, 16]
|
"range": [16, 16]
|
||||||
}, {
|
}, {
|
||||||
"name": "Noblesse",
|
"name": "Noblesse",
|
||||||
@ -56,16 +56,16 @@
|
|||||||
"name": "Orientation",
|
"name": "Orientation",
|
||||||
"range": [18, 18]
|
"range": [18, 18]
|
||||||
}, {
|
}, {
|
||||||
"name": "Oreille Absolue",
|
"name": "Oreille absolue",
|
||||||
"range": [19, 19]
|
"range": [19, 19]
|
||||||
}, {
|
}, {
|
||||||
"name": "Ame Pure",
|
"name": "Ame pure",
|
||||||
"range": [20, 20]
|
"range": [20, 20]
|
||||||
}, {
|
}, {
|
||||||
"name": "Lire/Ecrire",
|
"name": "Lire/Ecrire",
|
||||||
"range": [21, 21]
|
"range": [21, 21]
|
||||||
}, {
|
}, {
|
||||||
"name": "Résistance (au choix)",
|
"name": "Resistant (au choix)",
|
||||||
"range": [22, 22]
|
"range": [22, 22]
|
||||||
}, {
|
}, {
|
||||||
"name": "Perspicace",
|
"name": "Perspicace",
|
||||||
@ -77,7 +77,7 @@
|
|||||||
"name": "Sixième Sens",
|
"name": "Sixième Sens",
|
||||||
"range": [25, 25]
|
"range": [25, 25]
|
||||||
}, {
|
}, {
|
||||||
"name": "Bonnes Jambes",
|
"name": "Bonnes jambes",
|
||||||
"range": [26, 26]
|
"range": [26, 26]
|
||||||
}, {
|
}, {
|
||||||
"name": "Costaud",
|
"name": "Costaud",
|
||||||
@ -86,16 +86,16 @@
|
|||||||
"name": "Affable",
|
"name": "Affable",
|
||||||
"range": [28, 28]
|
"range": [28, 28]
|
||||||
}, {
|
}, {
|
||||||
"name": "Doué en Calcul",
|
"name": "Doué en calcul",
|
||||||
"range": [29, 29]
|
"range": [29, 29]
|
||||||
}, {
|
}, {
|
||||||
"name": "Très Résistant",
|
"name": "Très résistant",
|
||||||
"range": [30, 30]
|
"range": [30, 30]
|
||||||
}, {
|
}, {
|
||||||
"name": "Très Fort",
|
"name": "Très fort",
|
||||||
"range": [31, 31]
|
"range": [31, 31]
|
||||||
}, {
|
}, {
|
||||||
"name": "Guerrier Né",
|
"name": "Guerrier né",
|
||||||
"range": [32, 32]
|
"range": [32, 32]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user