Ajout up-in-arms

This commit is contained in:
LeRatierBretonnien 2023-01-20 10:05:36 +01:00
parent 4e2c4441aa
commit 942ac53191
5 changed files with 146 additions and 12 deletions

View File

@ -45,6 +45,42 @@ const _patch_eis = () => {
}
}
/************************************************************************************/
const _patch_up_in_arms = () => {
game.wfrp4e.config.hitLocationTables["quadruped"] = "Quadrupède";
let batter = game.wfrp4e.config.groupAdvantageActions.find(ga => ga.name == "Batter")
if (batter) {
batter.name = "Battre"
batter.description = "En face d'un adversaire plus expérimenté, quelque fois la force brute peut réussiè là où d'autres approches échouent.",
batter.effect = "<strong>Action Spéciale</strong>: Pour Batter votre adversaire, vous devez réussir un Test Opposé de Force contre votre adversaire. Celui qui obtient le DR le plus élevé gagne. Si vous gagnez ce Test, votre adversaire reçoit l'état @Condition[A Terre] et vous recevez +1 Avantage. Si vous perdez le Test Opposé, votre opposant gagne +1 Avantage and votre action est terminée. Vous ne gagnez pas d'Avantage due à la victoire d'un test Opposé lorsque vous gagnez ce test (ie 1 seul avantage octroyé au total si le Test Opposé de Force est remporté)."
}
let trick = game.wfrp4e.config.groupAdvantageActions.find(ga => ga.name == "Trick")
if (trick) {
trick.name = "Duper"
trick.description = "Vous prenez un instant pour lancer de la poussière dans les yeux de votre adversaire ou bien vous lui lancez de l'huile enflammée. Cette manoeuvre est risquée, This manoeuvre is risky, et peu d'ennemis se font avoir deux fois de la même manière",
trick.effect = "<strong>Action Spéciale</strong>: Pour Duper votre adversaire, vous devez réussir un Test Opposé d'Agilité contre lui. Celui qui obtient le plus haut DR gagne le Test. Si vous gagnez le Test, vous recevez +1 Avantage. En fonction des circonstances, le MJ peut vous autoriser à attribuer à votre adversaire l'un des états suivants : @Condition[En Flammes], @Condition[Aveuglé], or @Condition[Empêtré]. Si vous perdez le Test Opposé, votre adversaire gagne +1 Avantage and votre action est terminée. Le MJ peut interdire certains de ces états si vous n'avez d'objet applicables dans votre main, ou bien si vous avez déja infligé un état identique precedemment à cet adversaire. Vous ne gagnez pas d'Avantage due à la victoire d'un test Opposé lorsque vous gagnez ce test (ie 1 seul avantage octroyé au total si le Test Opposé de Force est remporté)."
}
let addeffort = game.wfrp4e.config.groupAdvantageActions.find(ga => ga.name == "Additional Effort")
if (addeffort) {
addeffort.name = "Effort upplémentaire"
addeffort.description = "Dans des circonstances désespérées, vous pouvez utiliser l'élan que vous avez acquis pour augmenter vos chances de succès.",
addeffort.effect = "<strong>Action Gratuite</strong>: Vous gagnez un bonus de +10% pour n'importe quel test. Vous pouvez dépenser des avantages supplémentaires pour ajouter +10% par Avantage dépensé en plus. Par exemple, vous pouvez dépenser 3 Avantages pour un bonus de +10%, 4 avantages pour un +30%, etc. Le Test qui en découle de procure jamais d'Avantage pour le personnage qui le réalise."
}
let flee = game.wfrp4e.config.groupAdvantageActions.find(ga => ga.name == "Flee from Harm")
if (flee) {
flee.name = "Fuir le Mal"
flee.description = "Vous profitez d'un moment de distraction de votre adervsaire pour fuir le combat.",
flee.effect = "<strong>Mouvement</strong>: Vous pouvez vous éloignez de votre adversaire sans aucune pénalité. Cela remplace la règle de @UUID[Compendium.wfrp4e-core.journal-entries.NS3YGlJQxwTggjRX.JournalEntryPage.bdfiyhEYtKs7irqc#disengaging]{désengagement}."
}
let addaction = game.wfrp4e.config.groupAdvantageActions.find(ga => ga.name == "Additional Action")
if (addaction) {
addaction.name = "Action Supplémentaire"
addaction.description = "Vous profitez d'une opportunité pour accomplir une action remarquable.",
addaction.effect = "<strong>Action Gratuite</strong>: Vous réalisez une action supplémentaire. Cette action ne génère jamais d'Avantage pour vous. Vous pouvez réaliser cette dépense d'avantage seulement une seule fois par Tour."
}
}
/************************************************************************************/
/* Manages /auberge command */
const _manage_inn_roll = async (content, msg) => {
@ -174,7 +210,7 @@ const patch_core_tables = (tableList) => {
/************************************************************************************/
const patch_trade_gazeteer = () => {
if (game.wfrp4e.config.trade?.gazetteer) {
fetch("modules/WH4-fr-translation/tables/gazetteer.json").then(r => r.json()).then(records => {
fetch("modules/wh4-fr-translation/trade/gazetteer_dotr.json").then(r => r.json()).then(records => {
game.wfrp4e.config.trade.gazetteer = records;
});
}
@ -187,25 +223,30 @@ const __check_fix_wrong_modules = (chatFlag, patchFinished) => {
game.modules.forEach((module, name) => {
if (name == "wfrp4e-core" && module.active) {
//console.log("TESTING MODULE", module)
if (module.id == "wfrp4e-core" && module.active) {
patch_core_tables(__wfrp4e_tables);
}
if (name == "wfrp4e-eis" && module.active) {
if (module.id == "wfrp4e-eis" && module.active) {
patch_core_tables(__eis_tables);
_patch_eis();
}
if (name == "wfrp4e-dotr" && module.active) {
if (module.id == "wfrp4e-dotr" && module.active) {
patch_core_tables(__dotr_tables);
patch_trade_gazeteer()
}
if (name == 'ogre-kingdom-wfrp4e' && module.active) {
if (module.id == "wfrp4e-up-in-arms" && module.active) {
_patch_up_in_arms();
}
if (module.id == 'ogre-kingdom-wfrp4e' && module.active) {
WH4FRPatchConfig.perform_ogrekingdom_patch();
if (game.user.isGM && chatFlag)
ChatMessage.create({ content: "<div><strong>Le module Ogre-Kingdom a été detecté et automatiquement patché.</strong></div>", whisper: ChatMessage.getWhisperRecipients("GM") });
}
if (name == "wfrp4e-ew" && module.active && game.user.isGM && chatFlag) {
if (module.id == "wfrp4e-ew" && module.active && game.user.isGM && chatFlag) {
ChatMessage.create({
content: "<div><strong>Vous avez le module EW (wfrp4e-ew ?) installé. Malheureusement, ce module n'est pas compatible avec" +
" les traductions et vient casser le fonctionnement de la traduction. Veuillez recopier les compendiums dans votre monde, désactiver le module et re-démarrer le monde</strong></div>",
@ -215,7 +256,7 @@ const __check_fix_wrong_modules = (chatFlag, patchFinished) => {
});
if (game.user.isGM && patchFinished) {
ChatMessage.create({
content: "<div>Les modules WFRP4E ont été <strong>patchés avec succés</strong>. Vous pouvez y aller et que <strong>Shallya vous garde !</strong></div>Nouveautés 6.3.1: <ul><li>Ajout des clés pour le système 6.3</li><li>Traduction du talent Détection d'artefact (Ashbury77)</li><li>Traduction de la table Au dela de la norme sociale (Ashbury77)</li><li>Traduction du trait psychilogique Amour (Ashbury77)</li></ul>",
content: "<div>Les modules WFRP4E ont été <strong>patchés avec succés</strong>. Vous pouvez y aller et que <strong>Shallya vous garde !</strong></div>Nouveautés 6.3.X: <ul><li>Ajout des clés pour le système 6.3</li><li>Traduction de Détection d'artefact, Au dela de la norme sociale et Amour (Ashbury77)</li><li>Traduction des éléments pour les avantages de groupe (Up In Arms)</li></ul>",
user: game.user.id,
whisper: ChatMessage.getWhisperRecipients("GM")
});

22
fr.json
View File

@ -1277,6 +1277,7 @@
"WFRP4E.Conditions.Unconscious" : "Vous êtes KO, inconscient, ou frappé d'incapacité. Vous ne pouvez absolument rien faire de votre tour et n'avez aucune conscience de ce qui vous entoure. Un attaquant qui vous cible touche automatiquement, avec un DR maximal et vous inflige 1 Blessure Critique ; ou, si le MJ préfère, une attaque en combat rapproché vou tue automatiquement. Toute attaque à distance est également un succès et occassionne les mêmes Dégâts que si le tireur éait à bout portant.<br><br>L'Etat Inconscient ne se cumule pas.<br><br>Récupérer d'un Etat Inconscient va bien souvent dépendre des circonstances qui ont causé cette inconscience. Reportez-vous aux Traumatismes (page 192) pour en savoir plus sur le sujet. Si vous dépensez un Point de Détermination pour vous débarasser d'un Etat Inconscient, mais que vous êtes toujours sujet aux causes de cette inconscience, vous gagnez un nouvel Etat Inconscient à la fin du round.<br><br>Lorsque vous vous débarassez de l'Etat Inconscient, vous gagnez les Etats <a class='condition-chat'><i class='fas fa-user-injured'></i> A Terre</a> et <a class='condition-chat'><i class='fas fa-user-injured'></i> Extenué</a>.",
"WFRP4E.Conditions.Grappling" : "Si vous commencez votre tour Empoigné, vous pouvez briser l'Empoignade si vous disposez d'un Avantage supérieur à celui de votre adversaire, et vous n'êtes pas considéré comme Engagé pour votre Mouvement ; autrement, vous devez effectuer un <b>Test opposé de Force</b> pour votre Action. Sur un succès, vous pouvez choisir une des deux options suivantes :<br><ul><li>Infliger BF+DR Dégâts en utilisant votre lancer de Force pour déterminer la Localisation affectée. Vous ignorez tous les PA car vous ne faites qu'effectuer des clefs de bras tout en tirant sur les muscles.</li><li>Soit : 1) Conférer l'Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Empêtré</a> à votre adversaire, ou 2) vous défaire de l'Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Empêtré</a> et vous débarasser d'un Etat Empêtré supplémentaire pour chaque DR obtenu.</li></ul>",
"WFRP4E.Conditions.Fear" : "Lorsque vous êtes sous le coup de la Peur, vous subissez -1DR à tous les Tests en rapport avec la source de votre peur. Vous êtes incapable de vous rapprocher de ce qui provoque cette Peur à moins de réussir un <b>Test de Calme Intermédiaire (+0)</b>. Si la source de votre Peur se rapproche de vous, vous devez réussir un <b>Test de Calme Intermédiaire (+0)</b> ou subir un Etat <a class='condition-chat'><i class='fas fa-user-injured'></i> Brisé</a>.",
"WFRP4E.Conditions.Engaged":"Dès que vous attaquez un adversaire, ou que vous êtes attaqué, dans un combat au corps à corps, vous êtes Engagé. Cela signifie que vous vous battez l'un contre l'autre, et les autres règles (dues aux Talents, Sorts, etc.) indiquant 'Engagé' s'appliquent. Si aucun des protagonistes ne portent d'attaque pendant 1 round complet, vous n'êtes plus considéré comme Engagé.",
"WFRP4E.ConditionName.Ablaze" : "En Flammes",
"WFRP4E.ConditionName.Bleeding" : "Hémorragique",
@ -2198,5 +2199,22 @@
"SETTINGS.UIAShieldsHint":"Change la qualité Bouclier, selon la règle de Up in Armes page 90",
"SHEET.Collapse":"Réduire",
"SHEET.Expand":"Déplier",
"SHEET.GroupAdvantage":"Avantage de Groupe"
}
"SHEET.GroupAdvantage":"Avantage de Groupe",
"MODULE.STRING_KEY":"Traduction",
"PROPERTY.Crewed":"Avec equipage",
"PROPERTY.Salvo":"Salve",
"PROPERTY.Slash":"Sabrer",
"PROPERTY.Spread":"A Propagation",
"PROPERTY.Trip":"Trip",
"SPEC.Catapult":"Catapulte",
"TRADE.Citrusfruit":"Agrumes",
"TRADE.Olives":"Olives",
"TRADE.Saltfish":"Poisson salé",
"TRADE.Stone":"Pierre",
"WFRP4E.Properties.Slash":"Sabrer",
"WFRP4E.Properties.Spread":"A Propagation",
"WFRP4E.Properties.Trip":"Trip",
"WFRP4E.Properties.Unbalanced":"Déséquilibrée"
}

View File

@ -8,7 +8,7 @@
}
],
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
"version": "6.3.1",
"version": "6.3.2",
"esmodules": [
"babele-register.js",
"addon-register.js",
@ -136,7 +136,7 @@
}
],
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-6.3.1.zip",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-6.3.2.zip",
"id": "wh4-fr-translation",
"compatibility": {
"minimum": "10",

View File

@ -2,7 +2,11 @@ package.path = package.path .. ";luajson/?.lua"
local JSON = require"json"
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-dotr/lang/en.json"
local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-core/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-core/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-middenheim/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-eis/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-rnhd/lang/en.json"
--local enjsonf = "/home/morr/foundry/foundrydata-dev/Data/modules/wfrp4e-up-in-arms/lang/en.json"
local enjsonf = "../../WFRP4e-FoundryVTT/static/lang/en.json"
local frjsonf = "../fr.json"

71
trade/gazetteer_dotr.json Normal file
View File

@ -0,0 +1,71 @@
[
{ "score": 8, "name": "Altdorf", "size": 4, "ruler": "Empereur", "pop": 1000000, "w": 5, "isTrade" : true, "produces": [], "luxuries" : [], "garrison": "1800a/26000b", "notes": "Capitale Impériale, Grand Temple de Sigmar" },
{ "score": 9, "name": "Autler", "size" : 2, "ruler": "Empereur", "pop": 124, "w": 2, "isTrade" : false, "produces": ["timber","grain"], "luxuries" : [], "garrison": "-/10c", "notes": "Ferry" },
{ "score": 10, "name": "Blutroch", "size": 0, "ruler": "Empereur", "pop": 0, "w": 0, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-", "notes": "Wiped out by Red Pox in 2511" },
{ "score": 11, "name": "Braunwurt", "size": 1, "ruler": "Empereur", "pop": 75, "w": 1, "isTrade" : false, "produces": ["luxuries"], "luxuries" : ["Textiles"], "garrison": "-", "notes": "" },
{ "score": 12, "name": "Bundesmarkt", "size": 2, "ruler": "Empereur", "pop": 105, "w": 1, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/5c", "notes": "" },
{ "score": 13, "name": "Dorchen", "size": 2, "ruler": "Emperor", "pop": 105, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-", "notes": "" },
{ "score": 14, "name": "Frederheim", "size": 2, "ruler": "Emperor", "pop": 116, "w": 1, "isTrade" : false, "produces": ["grain","wool"], "luxuries" : [], "garrison": "-", "notes": "Great Hospice of Shallya nearby" },
{ "score": 14, "name": "Furtild", "size": 1, "ruler": "Emperor", "pop": 90, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-", "notes": "Great Hospice of Shallya nearby" },
{ "score": 15, "name": "Geldrecht", "size": 1, "ruler": "Emperor", "pop": 56, "w": 1, "isTrade" : false, "produces": ["timber","grain"], "luxuries" : [], "garrison": "-", "notes": "" },
{ "score": 16, "name": "Gluckshalt", "size": 1, "ruler": "Emperor", "pop": 87, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-", "notes": "Ferry on River Reik" },
{ "score": 18, "name": "Grossbad", "size": 1, "ruler": "Emperor", "pop": 83, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/10c", "notes": "" },
{ "score": 19, "name": "Hartsklein", "size": 1, "ruler": "Emperor", "pop": 78, "w": 1, "isTrade" : false, "produces": ["luxuries"], "luxuries" : ["Pottery"], "garrison": "-", "notes": "" },
{ "score": 20, "name": "Heiligen", "size": 1, "ruler": "Emperor", "pop": 70, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-", "notes": "" },
{ "score": 21, "name": "Hochloff", "size": 1, "ruler": "Emperor", "pop": 98, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-", "notes": "" },
{ "score": 22, "name": "Kaldach", "size": 1, "ruler": "Emperor", "pop": 63, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-/10b", "notes": "Ferry" },
{ "score": 23, "name": "Rechtlich", "size": 1, "ruler": "Emperor", "pop": 51, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-", "notes": "" },
{ "score": 24, "name": "Rottefach", "size": 1, "ruler": "Emperor", "pop": 105, "w": 2, "isTrade" : false, "produces": ["grain","wine"], "luxuries" : [], "garrison": "-", "notes": "Ferry" },
{ "score": 25, "name": "Schlafebild", "size": 1, "ruler": "Emperor", "pop": 46, "w": 1, "isTrade" : false, "produces": ["grain","wine"], "luxuries" : [], "garrison": "-", "notes": "" },
{ "score": 26, "name": "Teufelfeuer", "size": 1, "ruler": "Emperor", "pop": 55, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-/5c", "notes": "Once burnt to the ground by the Witch Hunter Fabergus Heinzdork." },
{ "score": 27, "name": "Walfen", "size": 2, "ruler": "Emperor", "pop": 181, "w": 2, "isTrade" : false, "produces": ["bricks","grain"], "luxuries" : [], "garrison": "-", "notes": "Ferry" },
{ "score": 29, "name": "Castle Reiksguard", "size": 3, "ruler": "Emperor", "pop": 300, "w": 4, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "200c/-", "notes": "Seat of the Grand Prince, fortress" },
{ "score": 34, "name": "Dunkelburg", "size": 3, "ruler": "Emperor", "pop": 8900, "w": 2, "isTrade" : false, "produces": ["grain", "wool"], "luxuries" : [], "garrison": "20b/150c", "notes": "" },
{ "score": 35, "name": "Barfsheim", "size": 1, "ruler": "Emperor", "pop": 77, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-", "notes": "Ferry" },
{ "score": 36, "name": "Gemusenbad", "size": 1, "ruler": "Emperor", "pop": 56, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-", "notes": "Ferry" },
{ "score": 37, "name": "Harke", "size": 1, "ruler": "Emperor", "pop": 37, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-", "notes": "Ferry" },
{ "score": 38, "name": "Ruhfurt", "size": 1, "ruler": "Emperor", "pop": 90, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/10c", "notes": "" },
{ "score": 39, "name": "Schattental", "size": 1, "ruler": "Emperor", "pop": 86, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/15b", "notes": "" },
{ "score": 40, "name": "Steindorf", "size": 1, "ruler": "Emperor", "pop": 70, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-/10c", "notes": "Ferry" },
{ "score": 41, "name": "Diesdorf", "size": 2, "ruler": "Emperor", "pop": 210, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/25c", "notes": "" },
{ "score": 45, "name": "Eilhart", "size": 3, "ruler": "Graf Johann von Hardenburg", "pop": 3200, "w": 3, "isTrade" : false, "produces": ["grain","wine"], "luxuries" : [], "garrison": "25b/125c", "notes": "" },
{ "score": 49, "name": "Grünburg", "size": 3, "ruler": "Emperor", "pop": 2900, "w": 2, "isTrade" : true, "produces": ["boatbuilding"], "luxuries" : [], "garrison": "25b/100c", "notes": "Ferry" },
{ "score": 50, "name": "Aussen", "size": 1, "ruler": "Emperor", "pop": 95, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-", "notes": "Ferry" },
{ "score": 51, "name": "Hornlach", "size": 2, "ruler": "Emperor", "pop": 120, "w": 2, "isTrade" : false, "produces": ["timber","grain"], "luxuries" : [], "garrison": "-/5b", "notes": "Ferry" },
{ "score": 52, "name": "Kleindorf", "size": 1, "ruler": "Emperor", "pop": 40, "w": 1, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-", "notes": "Ferry" },
{ "score": 53, "name": "Silberwurt", "size": 2, "ruler": "Emperor", "pop": 110, "w": 2, "isTrade" : false, "produces": ["grain","wool"], "luxuries" : [], "garrison": "-/10c", "notes": "" },
{ "score": 54, "name": "Wörlitz", "size": 2, "ruler": "Emperor", "pop": 105, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/10c", "notes": "" },
{ "score": 58, "name": "Kemperbad", "size": 3, "ruler": "Town Council", "pop": 9600, "w": 4, "isTrade" : true, "produces": ["armaments","wine","brandy"], "luxuries" : [], "garrison": "20b/500b", "notes": "Ferr. Finest Brandy in Empire from this area, Freistadt status" },
{ "score": 59, "name": "Berghof", "size": 1, "ruler": "Kemperbad Town Council", "pop": 85, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/20c", "notes": "" },
{ "score": 60, "name": "Brandenburg", "size": 1, "ruler": "Kemperbad Town Council", "pop": 95, "w": 3, "isTrade" : false, "produces": ["wine","brandy","grain"], "luxuries" : [], "garrison": "-/20b", "notes": "'Echte Brandenburger,' Emperor's favorite brandy; Ferry" },
{ "score": 61, "name": "Jungbach", "size": 2, "ruler": "Kemperbad Town Council", "pop": 105, "w": 3, "isTrade" : false, "produces": ["brandy","wine"], "luxuries" : [], "garrison": "-/15b", "notes": "Ferry" },
{ "score": 62, "name": "Ostwald", "size": 1, "ruler": "Kemperbad Town Council", "pop": 88, "w": 3, "isTrade" : false, "produces": ["brandy","wine"], "luxuries" : [], "garrison": "-/15b", "notes": "" },
{ "score": 63, "name": "Stockhausen", "size": 2, "ruler": "Kemperbad Town Council", "pop": 117, "w": 3, "isTrade" : false, "produces": ["brandy","wine","wool"], "luxuries" : [], "garrison": "-/30b", "notes": "" },
{ "score": 64, "name": "Merretheim", "size": 1, "ruler": "Graf von Falkenhayn", "pop": 67, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-/10c", "notes": "" },
{ "score": 65, "name": "Misthausen", "size": 1, "ruler": "Graf von Falkenhayn", "pop": 43, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-", "notes": "Ferry" },
{ "score": 66, "name": "Naffdorf", "size": 1, "ruler": "Graf von Falkenhayn", "pop": 75, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-/10c", "notes": "Ferry" },
{ "score": 67, "name": "Pfeiffer", "size": 1, "ruler": "Graf von Falkenhayn", "pop": 60, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-/5c", "notes": "" },
{ "score": 74, "name": "Ubersreik", "size": 3, "ruler": "Emperor", "pop": 7500, "w": 4, "isTrade" : true, "produces": ["armaments","metal","metalworking"], "luxuries" : [], "garrison": "40b/500c", "notes": "Ferry" },
{ "score": 75, "name": "Buchedorf", "size": 2, "ruler": "Emperor", "pop": 158, "w": 2, "isTrade" : false, "produces": ["grain","wool"], "luxuries" : [], "garrison": "-/10c", "notes": "Ferry" },
{ "score": 76, "name": "Flussberg", "size": 1, "ruler": "Emperor", "pop": 95, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/15c", "notes": "Ferry" },
{ "score": 77, "name": "Geissbach", "size": 1, "ruler": "Emperor", "pop": 66, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/10c", "notes": "" },
{ "score": 78, "name": "Halheim", "size": 1, "ruler": "Emperor", "pop": 49, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "-", "notes": "" },
{ "score": 79, "name": "Hugeldal", "size": 2, "ruler": "Emperor", "pop": 316, "w": 3, "isTrade" : false, "produces": ["metal"], "luxuries" : [], "garrison": "50b/75c", "notes": "" },
{ "score": 80, "name": "Messingen", "size": 2, "ruler": "Emperor", "pop": 111, "w": 3, "isTrade" : false, "produces": ["grain","armaments"], "luxuries" : [], "garrison": "-/20b", "notes": "By Hugeldal Mine" },
{ "score": 81, "name": "Wurfel", "size": 1, "ruler": "Emperor", "pop": 75, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/15c", "notes": "" },
{ "score": 82, "name": "Weissbruck", "size": 2, "ruler": "Emperor (ruled and owned by Gruber family)", "pop": 359, "w": 2, "isTrade" : true, "produces": ["luxuries"], "luxuries" : [], "garrison": "-", "notes": "Ferry, Lock House on Altdorf Canal" },
{ "score": 83, "name": "Wittgendorf", "size": 2, "ruler": "Baroness Magritta", "pop": 150, "w": 1, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "25b/-", "notes": "" },
{ "score": 86, "name": "Bögenhafen", "size": 3, "ruler": "Graf Wilhelm von Saponatheim", "pop": 10500, "w": 3, "isTrade" : true, "produces": ["wine","timber"], "luxuries" : [], "garrison": "-/500c", "notes": "Local market centre" },
{ "score": 87, "name": "Ardlich", "size": 2, "ruler": "Graf von Saponatheim", "pop": 155, "w": 2, "isTrade" : false, "produces": ["grain","wool"], "luxuries" : [], "garrison": "-/5c", "notes": "" },
{ "score": 88, "name": "Finsterbad", "size": 2, "ruler": "Graf von Saponatheim", "pop": 140, "w": 3, "isTrade" : false, "produces": ["grain","wine","wool"], "luxuries" : [], "garrison": "-/10c", "notes": "Ferry" },
{ "score": 89, "name": "Grubevon", "size": 1, "ruler": "Graf von Saponatheim", "pop": 90, "w": 2, "isTrade" : false, "produces": ["grain"], "luxuries" : [], "garrison": "-/5c", "notes": "" },
{ "score": 90, "name": "Herzhald", "size": 2, "ruler": "Graf von Saponatheim", "pop": 140, "w": 2, "isTrade" : false, "produces": ["timber"], "luxuries" : [], "garrison": "-", "notes": "" },
{ "score": 91, "name": "Castle Grauenburg", "size": 2, "ruler": "Graf von Saponatheim", "pop": 350, "w": 4, "isTrade" : false, "produces": [], "luxuries" : [], "garrison": "50a,100b/-", "notes": "Seat of the von Saponatheim lands, fortress" },
{ "score": 94, "name": "Auerswald", "size": 3, "ruler": "Graf Ferdinand von Wallenstein", "pop": 5000, "w": 3, "isTrade" : true, "produces": ["metal"], "luxuries" : [], "garrison": "50b/400c", "notes": "Ferry" },
{ "score": 95, "name": "Dresschler", "size": 1, "ruler": "Graf von Wallenstein", "pop": 76, "w": 2, "isTrade" : false, "produces": ["grain","wool"], "luxuries" : [], "garrison": "-/10b", "notes": "Ferry" },
{ "score": 96, "name": "Gladisch", "size": 1, "ruler": "Graf von Wallenstein", "pop": 50, "w": 1, "isTrade" : false, "produces": ["wool"], "luxuries" : [], "garrison": "-", "notes": "Ferry" },
{ "score": 97, "name": "Hahnbrandt", "size": 2, "ruler": "Graf von Wallenstein", "pop": 250, "w": 3, "isTrade" : false, "produces": ["armaments","metal"], "luxuries" : [], "garrison": "50b/75c", "notes": "" },
{ "score": 98, "name": "Koch", "size": 2, "ruler": "Graf von Wallenstein", "pop": 115, "w": 2, "isTrade" : false, "produces": ["armaments","grain","metal"], "luxuries" : [], "garrison": "-/20b", "notes": "Near Hahnbrandt Mine in the Hagercrybs" },
{ "score": 99, "name": "Sprinthof", "size": 1, "ruler": "Graf von Wallenstein", "pop": 87, "w": 2, "isTrade" : false, "produces": ["grain","luxuries"], "luxuries" : ["Cheese"], "garrison": "-/10c", "notes": "Coaching inn, best smoked cheese in Reikland" },
{ "score":100, "name": "Steche", "size": 1, "ruler": "Graf von Wallenstein", "pop": 75, "w": 2, "isTrade" : false, "produces": ["grain","wool"], "luxuries" : [], "garrison": "-/15c", "notes": "Ferry" }
]