From af36f06b15b1cc6828e6f33e87bd42c7c9759d77 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 2 Sep 2007 15:42:48 +0000 Subject: [PATCH] i18n progress: moved all curseinfo messages to XML file, removed info_str --- src/common/kernel/curse.c | 4 +- src/common/kernel/curse.h | 2 - src/common/kernel/reports.c | 2 - src/common/spells/buildingcurse.c | 23 +----- src/common/spells/regioncurse.c | 48 +---------- src/common/spells/shipcurse.c | 19 ++--- src/common/spells/spells.c | 3 +- src/common/spells/unitcurse.c | 59 +++----------- src/res/messages.xml | 129 ++++++++++++++++++++++++++++-- 9 files changed, 148 insertions(+), 141 deletions(-) diff --git a/src/common/kernel/curse.c b/src/common/kernel/curse.c index f893022b5..18bd025fa 100644 --- a/src/common/kernel/curse.c +++ b/src/common/kernel/curse.c @@ -276,6 +276,7 @@ ct_register(const curse_type * ct) { unsigned int hash = tolower(ct->cname[0]); cursetype_list ** ctlp = &cursetypes[hash]; + while (*ctlp) { cursetype_list * ctl = *ctlp; if (ctl->type==ct) return; @@ -295,7 +296,7 @@ ct_find(const char *c) if (!strncasecmp(c, ctl->type->cname, k)) return ctl->type; ctl = ctl->next; } - /* disable this assert to be able to remoce certain curses from the game + /* disable this assert to be able to remove certain curses from the game * make sure that all locations using that curse can deal with a NULL * return value. */ @@ -681,7 +682,6 @@ is_cursed_with(const attrib *ap, const curse *c) * int typ; * spread_t spread; * unsigned int mergeflags; - * const char *info_str; Wirkung des curse, wird bei einer gelungenen Zauberanalyse angezeigt * int (*curseinfo)(const struct locale*, const void*, int, curse*, int); * void (*change_vigour)(curse*, double); * int (*read)(FILE * F, curse * c); diff --git a/src/common/kernel/curse.h b/src/common/kernel/curse.h index 08a409cfe..922053b6e 100644 --- a/src/common/kernel/curse.h +++ b/src/common/kernel/curse.h @@ -216,8 +216,6 @@ typedef struct curse_type { int typ; unsigned int flags; unsigned int mergeflags; - const char *info_str; /* Wirkung des curse, wird bei einer gelungenen - Zauberanalyse angezeigt */ struct message * (*curseinfo)(const void*, typ_t, const struct curse*, int); void (*change_vigour)(curse*, double); int (*read)(FILE * F, curse * c); diff --git a/src/common/kernel/reports.c b/src/common/kernel/reports.c index cb8e7c706..dab783375 100644 --- a/src/common/kernel/reports.c +++ b/src/common/kernel/reports.c @@ -726,8 +726,6 @@ msg_curse(const struct curse * c, const void * obj, typ_t typ, int self) if (c->type->curseinfo) { /* if curseinfo returns NULL, then we don't want to tell the viewer anything. */ return c->type->curseinfo(obj, typ, c, self); - } else if (c->type->info_str!=NULL) { - return msg_message("curseinfo::info_str", "text id", c->type->info_str, c->no); } else { const char * unknown[] = { "unit_unknown", "region_unknown", "building_unknown", "ship_unknown" }; log_error(("no curseinfo for %s\n", c->type->cname)); diff --git a/src/common/spells/buildingcurse.c b/src/common/spells/buildingcurse.c index ebb0ac362..48c3a1c8c 100644 --- a/src/common/spells/buildingcurse.c +++ b/src/common/spells/buildingcurse.c @@ -70,37 +70,22 @@ cinfo_magicrunes(const void * obj, typ_t typ, const curse *c, int self) return msg; } static struct curse_type ct_magicrunes = { "magicrunes", - CURSETYP_NORM, 0, M_SUMEFFECT, - "Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine " - "Verzauberung.", - cinfo_magicrunes + CURSETYP_NORM, 0, M_SUMEFFECT, cinfo_magicrunes }; /* Heimstein-Zauber */ static struct curse_type ct_magicwalls = { "magicwalls", - CURSETYP_NORM, 0, NO_MERGE, - "Die Macht dieses Zaubers ist fast greifbar und tief in die Mauern " - "gebunden. Starke elementarmagische Kräfte sind zu spüren. " - "Vieleicht wurde gar ein Erdelementar in diese Mauern gebannt. " - "Ausser ebenso starkter Antimagie wird nichts je diese Mauern " - "gefährden können.", - cinfo_building + CURSETYP_NORM, 0, NO_MERGE, cinfo_building }; /* Feste Mauer - Präkampfzauber, wirkt nur 1 Runde */ static struct curse_type ct_strongwall = { "strongwall", - CURSETYP_NORM, 0, NO_MERGE, - "", - NULL + CURSETYP_NORM, 0, NO_MERGE, NULL }; /* Ewige Mauern-Zauber */ static struct curse_type ct_nocostbuilding = { "nocostbuilding", - CURSETYP_NORM, CURSE_NOAGE|CURSE_ONLYONE, NO_MERGE, - "Die Macht dieses Zaubers ist fast greifbar und tief in die Mauern " - "gebunden. Unbeeindruck vom Zahn der Zeit wird dieses Gebäude wohl " - "auf Ewig stehen.", - cinfo_building + CURSETYP_NORM, CURSE_NOAGE|CURSE_ONLYONE, NO_MERGE, cinfo_building }; diff --git a/src/common/spells/regioncurse.c b/src/common/spells/regioncurse.c index 3e6496ecd..176a816b7 100644 --- a/src/common/spells/regioncurse.c +++ b/src/common/spells/regioncurse.c @@ -58,12 +58,7 @@ cinfo_cursed_by_the_gods(const void * obj, typ_t typ, const curse *c, int self) static struct curse_type ct_godcursezone = { "godcursezone", - CURSETYP_NORM, CURSE_IMMUNE|CURSE_ISNEW, (NO_MERGE), - "Diese Region wurde von den Göttern verflucht. Stinkende Nebel ziehen " - "über die tote Erde, furchbare Kreaturen ziehen über das Land. Die Brunnen " - "sind vergiftet, und die wenigen essbaren Früchte sind von einem rosa Pilz " - "überzogen. Niemand kann hier lange überleben.", - cinfo_cursed_by_the_gods, + CURSETYP_NORM, CURSE_IMMUNE|CURSE_ISNEW, (NO_MERGE), cinfo_cursed_by_the_gods, }; @@ -87,9 +82,7 @@ cinfo_dreamcurse(const void * obj, typ_t typ, const curse *c, int self) static struct curse_type ct_gbdream = { "gbdream", - CURSETYP_NORM, CURSE_ISNEW, (NO_MERGE), - "", - cinfo_dreamcurse + CURSETYP_NORM, CURSE_ISNEW, (NO_MERGE), cinfo_dreamcurse }; /* --------------------------------------------------------------------- */ @@ -115,9 +108,6 @@ cinfo_magicstreet(const void * obj, typ_t typ, const curse *c, int self) static struct curse_type ct_magicstreet = { "magicstreet", CURSETYP_NORM, 0, (M_DURATION | M_VIGOUR), - "Es scheint sich um einen elementarmagischen Zauber zu handeln, der alle " - "Pfade und Wege so gut festigt, als wären sie gepflastert. Wie auf einer " - "Straße kommt man so viel besser und schneller vorwärts.", cinfo_magicstreet }; @@ -166,7 +156,7 @@ cansee_antimagiczone(const struct faction *viewer, const void * obj, typ_t typ, } static struct curse_type ct_antimagiczone = { "antimagiczone", - CURSETYP_NORM, 0, (M_DURATION | M_VIGOUR), NULL, + CURSETYP_NORM, 0, (M_DURATION | M_VIGOUR), cinfo_antimagiczone, NULL, NULL, NULL, cansee_antimagiczone }; @@ -190,7 +180,6 @@ cinfo_farvision(const void * obj, typ_t typ, const curse *c, int self) static struct curse_type ct_farvision = { "farvision", CURSETYP_NORM, 0, (NO_MERGE), - "", cinfo_farvision }; @@ -200,47 +189,32 @@ static struct curse_type ct_farvision = { static struct curse_type ct_fogtrap = { "fogtrap", CURSETYP_NORM, 0, (M_DURATION | M_VIGOUR), - "", cinfo_simple }; static struct curse_type ct_maelstrom = { "maelstrom", CURSETYP_NORM, CURSE_ISNEW, (M_DURATION | M_VIGOUR), - "Dieser Zauber verursacht einen gigantischen magischen Strudel. Der " - "Mahlstrom wird alle Schiffe, die in seinen Sog geraten, schwer " - "beschädigen.", NULL }; static struct curse_type ct_blessedharvest = { "blessedharvest", CURSETYP_NORM, 0, ( M_DURATION | M_VIGOUR ), - "Dieser Fruchtbarkeitszauber erhöht die Erträge der Felder.", cinfo_simple }; static struct curse_type ct_drought = { "drought", CURSETYP_NORM, 0, ( M_DURATION | M_VIGOUR ), - "Dieser Zauber strahlt starke negative Energien aus. Warscheinlich " - "ist er die Ursache der Dürre." , cinfo_simple }; static struct curse_type ct_badlearn = { "badlearn", CURSETYP_NORM, CURSE_ISNEW, ( M_DURATION | M_VIGOUR ), - "Dieser Zauber scheint die Ursache für die Schlaflosigkeit und " - "Mattigkeit zu sein, unter der die meisten Leute hier leiden und " - "die dazu führt, das Lernen weniger Erfolg bringt. ", cinfo_simple }; /* Trübsal-Zauber */ static struct curse_type ct_depression = { "depression", CURSETYP_NORM, 0, ( M_DURATION | M_VIGOUR ), - "Wie schon zu vermuten war, sind der ewig graue Himmel und die " - "depressive Stimmung in der Region nicht natürlich. Dieser Fluch " - "hat sich wie ein bleiernes Tuch auf die Gemüter der Bevölkerung " - "gelegt und eh er nicht gebrochen oder verklungen ist, wird keiner " - "sich an Gaukelleien erfreuen können.", cinfo_simple }; @@ -248,30 +222,24 @@ static struct curse_type ct_depression = { static struct curse_type ct_astralblock = { "astralblock", CURSETYP_NORM, 0, NO_MERGE, - "", cinfo_simple }; /* Unterhaltungsanteil vermehren */ static struct curse_type ct_generous = { "generous", CURSETYP_NORM, 0, ( M_DURATION | M_VIGOUR | M_MAXEFFECT ), - "Dieser Zauber beeinflusst die allgemeine Stimmung in der Region positiv. " - "Die gute Laune macht die Leute freigiebiger.", cinfo_simple }; /* verhindert Attackiere regional */ static struct curse_type ct_peacezone = { "peacezone", CURSETYP_NORM, 0, NO_MERGE, - "Dieser machtvoller Beeinflussungszauber erstickt jeden Streit schon im " - "Keim.", cinfo_simple }; /* erschwert geordnete Bewegungen */ static struct curse_type ct_disorientationzone = { "disorientationzone", CURSETYP_NORM, CURSE_ISNEW, NO_MERGE, - "", cinfo_simple }; /* erniedigt Magieresistenz von nicht-aliierten Einheiten, wirkt nur 1x @@ -279,9 +247,6 @@ static struct curse_type ct_disorientationzone = { static struct curse_type ct_badmagicresistancezone = { "badmagicresistancezone", CURSETYP_NORM, 0, NO_MERGE, - "Dieses Lied, das irgendwie in die magische Essenz der Region gewoben " - "ist, schwächt die natürliche Widerstandskraft gegen eine " - "Verzauberung. Es scheint jedoch nur auf bestimmte Einheiten zu wirken.", cinfo_simple }; /* erhöht Magieresistenz von aliierten Einheiten, wirkt nur 1x pro @@ -289,28 +254,21 @@ static struct curse_type ct_badmagicresistancezone = { static struct curse_type ct_goodmagicresistancezone = { "goodmagicresistancezone", CURSETYP_NORM, 0, NO_MERGE, - "Dieses Lied, das irgendwie in die magische Essenz der Region gewoben " - "ist, verstärkt die natürliche Widerstandskraft gegen eine " - "Verzauberung. Es scheint jedoch nur auf bestimmte Einheiten zu wirken.", cinfo_simple }; static struct curse_type ct_riotzone = { "riotzone", CURSETYP_NORM, 0, (M_DURATION), - NULL, cinfo_simple }; static struct curse_type ct_holyground = { "holyground", CURSETYP_NORM, CURSE_NOAGE, (M_VIGOUR_ADD), - "Verschiedene Naturgeistern sind im Boden der Region gebunden und " - "beschützen diese vor dem der dunklen Magie des lebenden Todes.", cinfo_simple }; static struct curse_type ct_healing = { "healingzone", CURSETYP_NORM, 0, (M_VIGOUR | M_DURATION), - "Heilung ist in dieser Region magisch beeinflusst.", cinfo_simple }; diff --git a/src/common/spells/shipcurse.c b/src/common/spells/shipcurse.c index 0792f785f..0dfbcda94 100644 --- a/src/common/spells/shipcurse.c +++ b/src/common/spells/shipcurse.c @@ -72,28 +72,19 @@ cinfo_shipnodrift(const void * obj, typ_t typ, const curse *c, int self) } static struct curse_type ct_stormwind = { "stormwind", - CURSETYP_NORM, 0, NO_MERGE, - "", cinfo_ship + CURSETYP_NORM, 0, NO_MERGE, cinfo_ship }; static struct curse_type ct_flyingship = { "flyingship", - CURSETYP_NORM, 0, NO_MERGE, - "", cinfo_ship + CURSETYP_NORM, 0, NO_MERGE, cinfo_ship }; static struct curse_type ct_nodrift = { "nodrift", - CURSETYP_NORM, 0, ( M_DURATION | M_VIGOUR ), - "Der Zauber auf diesem Schiff ist aus den elementaren Magien der Luft " - "und des Wassers gebunden. Der dem Wasser verbundene Teil des Zaubers " - "läßt es leichter durch die Wellen gleiten und der der Luft verbundene " - "Teil scheint es vor widrigen Winden zu schützen.", - cinfo_shipnodrift + CURSETYP_NORM, 0, ( M_DURATION | M_VIGOUR ), cinfo_shipnodrift }; static struct curse_type ct_shipdisorientation = { "shipdisorientation", - CURSETYP_NORM, 0, NO_MERGE, - "Dieses Schiff hat sich verfahren.", cinfo_ship + CURSETYP_NORM, 0, NO_MERGE, cinfo_ship }; static struct curse_type ct_shipspeedup = { "shipspeedup", - CURSETYP_NORM, 0, 0, - NULL, cinfo_ship + CURSETYP_NORM, 0, 0, cinfo_ship }; void diff --git a/src/common/spells/spells.c b/src/common/spells/spells.c index ff1f5e3b2..7e4acb6b4 100644 --- a/src/common/spells/spells.c +++ b/src/common/spells/spells.c @@ -2722,7 +2722,6 @@ wall_vigour(curse* c, double delta) const curse_type ct_firewall = { "Feuerwand", CURSETYP_NORM, 0, (M_DURATION | M_VIGOUR | NO_MERGE), - "Eine Feuerwand blockiert die Ein- und Ausreise", NULL, /* curseinfo */ wall_vigour /* change_vigour */ }; @@ -3214,7 +3213,7 @@ dc_age(struct curse * c) } static struct curse_type ct_deathcloud = { - "deathcloud", CURSETYP_REGION, 0, NO_MERGE, NULL, cinfo_simple, NULL, NULL, NULL, NULL, dc_age + "deathcloud", CURSETYP_REGION, 0, NO_MERGE, cinfo_simple, NULL, NULL, NULL, NULL, dc_age }; static curse * diff --git a/src/common/spells/unitcurse.c b/src/common/spells/unitcurse.c index 3553886b6..74eaaef7d 100644 --- a/src/common/spells/unitcurse.c +++ b/src/common/spells/unitcurse.c @@ -61,10 +61,6 @@ cinfo_auraboost(const void * obj, typ_t typ, const curse *c, int self) static struct curse_type ct_auraboost = { "auraboost", CURSETYP_NORM, CURSE_SPREADMODULO, (NO_MERGE), - "Dieser Zauber greift irgendwie in die Verbindung zwischen Magier " - "und Magischer Essenz ein. Mit positiver Ausrichtung kann er wohl " - "wie ein Fokus für Aura wirken, jedoch genauso für das Gegenteil " - "benutzt werden.", cinfo_auraboost }; @@ -72,7 +68,6 @@ static struct curse_type ct_auraboost = { static struct curse_type ct_magicboost = { "magicboost", CURSETYP_UNIT, CURSE_SPREADMODULO|CURSE_IMMUNE, M_MEN, - "", NULL }; @@ -96,9 +91,6 @@ cinfo_slave(const void * obj, typ_t typ, const curse *c, int self) } static struct curse_type ct_slavery = { "slavery", CURSETYP_NORM, 0, NO_MERGE, - "Dieser mächtige Bann scheint die Einheit ihres freien Willens " - "zu berauben. Solange der Zauber wirkt, wird sie nur den Befehlen " - "ihres neuen Herrn gehorchen.", cinfo_slave }; @@ -128,8 +120,6 @@ cinfo_calm(const void * obj, typ_t typ, const curse *c, int self) static struct curse_type ct_calmmonster = { "calmmonster", CURSETYP_NORM, CURSE_SPREADNEVER|CURSE_ONLYONE, NO_MERGE, - "Dieser Beeinflussungszauber scheint die Einheit einem ganz " - "bestimmten Volk wohlgesonnen zu machen.", cinfo_calm }; @@ -153,7 +143,6 @@ cinfo_speed(const void * obj, typ_t typ, const curse *c, int self) static struct curse_type ct_speed = { "speed", CURSETYP_UNIT, CURSE_SPREADNEVER, M_MEN, - "Diese Einheit bewegt sich doppelt so schnell.", cinfo_speed }; @@ -177,8 +166,6 @@ cinfo_unit(const void * obj, typ_t typ, const curse *c, int self) static struct curse_type ct_orcish = { "orcish", CURSETYP_UNIT, CURSE_SPREADMODULO|CURSE_ISNEW, M_MEN, - "Dieser Zauber scheint die Einheit zu 'orkisieren'. Wie bei Orks " - "ist eine deutliche Neigung zur Fortpflanzung zu beobachten.", cinfo_unit }; @@ -202,7 +189,6 @@ cinfo_kaelteschutz(const void * obj, typ_t typ, const curse *c, int self) static struct curse_type ct_insectfur = { "insectfur", CURSETYP_UNIT, CURSE_SPREADMODULO, ( M_MEN | M_DURATION ), - "Dieser Zauber schützt vor den Auswirkungen der Kälte.", cinfo_kaelteschutz }; @@ -263,9 +249,7 @@ cinfo_sparkle(const void * obj, typ_t typ, const curse *c, int self) } static struct curse_type ct_sparkle = { "sparkle", - CURSETYP_UNIT, CURSE_SPREADMODULO, ( M_MEN | M_DURATION ), - "Dieser Zauber ist einer der ersten, den junge Magier in der Schule lernen.", - cinfo_sparkle + CURSETYP_UNIT, CURSE_SPREADMODULO, ( M_MEN | M_DURATION ), cinfo_sparkle }; /* ------------------------------------------------------------- */ @@ -273,10 +257,7 @@ static struct curse_type ct_sparkle = { "sparkle", * C_STRENGTH */ static struct curse_type ct_strength = { "strength", - CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN, - "Dieser Zauber vermehrt die Stärke der verzauberten Personen um ein " - "vielfaches.", - cinfo_simple + CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN, cinfo_simple }; /* ------------------------------------------------------------- */ @@ -284,10 +265,7 @@ static struct curse_type ct_strength = { "strength", * C_ALLSKILLS (Alp) */ static struct curse_type ct_worse = { - "worse", - CURSETYP_UNIT, CURSE_SPREADMODULO|CURSE_NOAGE, M_MEN, - "", - cinfo_unit + "worse", CURSETYP_UNIT, CURSE_SPREADMODULO|CURSE_NOAGE, M_MEN, cinfo_unit }; /* ------------------------------------------------------------- */ @@ -296,33 +274,22 @@ static struct curse_type ct_worse = { * C_ITEMCLOAK */ static struct curse_type ct_itemcloak = { - "itemcloak", - CURSETYP_UNIT, CURSE_SPREADNEVER, M_DURATION, - "Dieser Zauber macht die Ausrüstung unsichtbar.", - cinfo_unit + "itemcloak", CURSETYP_UNIT, CURSE_SPREADNEVER, M_DURATION, cinfo_unit }; /* ------------------------------------------------------------- */ static struct curse_type ct_fumble = { - "fumble", - CURSETYP_NORM, CURSE_SPREADNEVER|CURSE_ONLYONE, NO_MERGE, - "Eine Wolke negativer Energie umgibt die Einheit.", - cinfo_unit + "fumble", CURSETYP_NORM, CURSE_SPREADNEVER|CURSE_ONLYONE, NO_MERGE, cinfo_unit }; /* ------------------------------------------------------------- */ -static struct curse_type ct_oldrace = { "oldrace", - CURSETYP_NORM, CURSE_SPREADALWAYS, NO_MERGE, - "", - NULL +static struct curse_type ct_oldrace = { + "oldrace", CURSETYP_NORM, CURSE_SPREADALWAYS, NO_MERGE, NULL }; -static struct curse_type ct_magicresistance = { "magicresistance", - CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN, - "Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine " - "Verzauberung.", - cinfo_simple +static struct curse_type ct_magicresistance = { + "magicresistance", CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN, cinfo_simple }; @@ -365,12 +332,8 @@ cinfo_skill(const void * obj, typ_t typ, const curse *c, int self) } static struct curse_type ct_skillmod = { - "skillmod", - CURSETYP_NORM, CURSE_SPREADMODULO, M_MEN, - "", - cinfo_skill, - NULL, - read_skill, write_skill + "skillmod", CURSETYP_NORM, CURSE_SPREADMODULO, M_MEN, cinfo_skill, + NULL, read_skill, write_skill }; /* ------------------------------------------------------------- */ diff --git a/src/res/messages.xml b/src/res/messages.xml index 690de7f1f..df0770ccb 100644 --- a/src/res/messages.xml +++ b/src/res/messages.xml @@ -39,6 +39,128 @@ "$unit($mage) beschwört einen Schleier der Verwirrung." "$unit($mage) summons a fog of confusion." + + + + Eine Feuerwand blockiert die Ein- und Ausreise. ($int36($id)) + + + + Dieser Zauber greift irgendwie in die Verbindung zwischen Magier und Magischer Essenz ein. Mit positiver Ausrichtung kann er wohl wie ein Fokus für Aura wirken, jedoch genauso für das Gegenteil benutzt werden. ($int36($id)) + + + + Dieser mächtige Bann scheint die Einheit ihres freien Willens zu berauben. Solange der Zauber wirkt, wird sie nur den Befehlen ihres neuen Herrn gehorchen. ($int36($id)) + + + + Dieser Beeinflussungszauber scheint die Einheit einem ganz bestimmten Volk wohlgesonnen zu machen. ($int36($id)) + + + + Diese Einheit bewegt sich doppelt so schnell. ($int36($id)) + + + + Dieser Zauber scheint die Einheit zu 'orkisieren'. Wie bei Orks ist eine deutliche Neigung zur Fortpflanzung zu beobachten. ($int36($id)) + + + + Dieser Zauber schützt vor den Auswirkungen der Kälte. ($int36($id)) + + + + Dieser Zauber ist einer der ersten, den junge Magier in der Schule lernen. ($int36($id)) + + + + Dieser Zauber vermehrt die Stärke der verzauberten Personen um ein vielfaches. ($int36($id)) + + + + Dieser Zauber macht die Ausrüstung unsichtbar. ($int36($id)) + + + + Eine Wolke negativer Energie umgibt die Einheit. ($int36($id)) + + + + Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine Verzauberung. ($int36($id)) + + + + Dieser Zauber verursacht einen gigantischen magischen Strudel. Der Mahlstrom wird alle Schiffe, die in seinen Sog geraten, schwer beschädigen. ($int36($id)) + + + + Dieser Fruchtbarkeitszauber erhöht die Erträge der Felder. ($int36($id)) + + + + Dieser Zauber strahlt starke negative Energien aus. Warscheinlich ist er die Ursache der Dürre. ($int36($id)) + + + + Dieser Zauber scheint die Ursache für die Schlaflosigkeit und Mattigkeit zu sein, unter der die meisten Leute hier leiden und die dazu führt, das Lernen weniger Erfolg bringt. . ($int36($id)) + + + + Wie schon zu vermuten war, sind der ewig graue Himmel und die depressive Stimmung in der Region nicht natürlich. Dieser Fluch hat sich wie ein bleiernes Tuch auf die Gemüter der Bevölkerung gelegt und eh er nicht gebrochen oder verklungen ist, wird keiner sich an Gaukelleien erfreuen können. ($int36($id)) + + + + Dieser Zauber beeinflusst die allgemeine Stimmung in der Region positiv. Die gute Laune macht die Leute freigiebiger. ($int36($id)) + + + + Dieser machtvoller Beeinflussungszauber erstickt jeden Streit schon im Keim. ($int36($id)) + + + + Es scheint sich um einen elementarmagischen Zauber zu handeln, der alle Pfade und Wege so gut festigt, als wären sie gepflastert. Wie auf einer Straße kommt man so viel besser und schneller vorwärts. ($int36($id)) + + + + Dieses Lied, das irgendwie in die magische Essenz der Region gewoben ist, schwächt die natürliche Widerstandskraft gegen eine Verzauberung. Es scheint jedoch nur auf bestimmte Einheiten zu wirken. ($int36($id)) + + + + Dieses Lied, das irgendwie in die magische Essenz der Region gewoben ist, verstärkt die natürliche Widerstandskraft gegen eine Verzauberung. Es scheint jedoch nur auf bestimmte Einheiten zu wirken. ($int36($id)) + + + + Diese Region wurde von den Göttern verflucht. Stinkende Nebel ziehen über die tote Erde, furchbare Kreaturen ziehen über das Land. Die Brunnen sind vergiftet, und die wenigen essbaren Früchte sind von einem rosa Pilz überzogen. Niemand kann hier lange überleben. ($int36($id)) + + + + Verschiedene Naturgeistern sind im Boden der Region gebunden und beschützen diese vor dem der dunklen Magie des lebenden Todes. ($int36($id)) + + + + Heilung ist in dieser Region magisch beeinflusst. ($int36($id)) + + + + Der Zauber auf diesem Schiff ist aus den elementaren Magien der Luft und des Wassers gebunden. Der dem Wasser verbundene Teil des Zaubers läßt es leichter durch die Wellen gleiten und der der Luft verbundene Teil scheint es vor widrigen Winden zu schützen. ($int36($id)) + + + + Dieses Schiff hat sich verfahren. ($int36($id)) + + + + Die Macht dieses Zaubers ist fast greifbar und tief in die Mauern gebunden. Starke elementarmagische Kräfte sind zu spüren. Vieleicht wurde gar ein Erdelementar in diese Mauern gebannt. Ausser ebenso starkter Antimagie wird nichts je diese Mauern gefährden können. ($int36($id)) + + + + Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine Verzauberung. ($int36($id)) + + + + Die Macht dieses Zaubers ist fast greifbar und tief in die Mauern gebunden. Unbeeindruck vom Zahn der Zeit wird dieses Gebäude wohl auf Ewig stehen. ($int36($id)) + + @@ -245,13 +367,6 @@ "$int($number) $if($eq($number,1), "Person", "Personen") von $unit($unit) $if($eq($number,1), "fühlt", "fühlen") sich vor Kälte geschützt. ($int36($id))" "$int($number) $if($eq($number,1), "member", "members") of $unit($unit) $if($eq($number,1), "is", "are") protected from the cold. ($int36($id))" - - - - - - "${text}. ($int36($id))" -