i18n progress: moved all curseinfo messages to XML file, removed info_str

This commit is contained in:
Enno Rehling 2007-09-02 15:42:48 +00:00
parent 810e411821
commit af36f06b15
9 changed files with 148 additions and 141 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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));

View File

@ -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
};

View File

@ -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
};

View File

@ -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

View File

@ -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 *

View File

@ -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
};
/* ------------------------------------------------------------- */

View File

@ -39,6 +39,128 @@
<text locale="de">"$unit($mage) beschwört einen Schleier der Verwirrung."</text>
<text locale="en">"$unit($mage) summons a fog of confusion."</text>
</message>
<message name="curseinfo::Feuerwand">
<type><arg name="id" type="int"/></type>
<text locale="de">Eine Feuerwand blockiert die Ein- und Ausreise. ($int36($id))</text>
</message>
<message name="curseinfo::auraboost">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::slavery">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::calmmonster">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Beeinflussungszauber scheint die Einheit einem ganz bestimmten Volk wohlgesonnen zu machen. ($int36($id))</text>
</message>
<message name="curseinfo::speed">
<type><arg name="id" type="int"/></type>
<text locale="de">Diese Einheit bewegt sich doppelt so schnell. ($int36($id))</text>
</message>
<message name="curseinfo::orcish">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber scheint die Einheit zu 'orkisieren'. Wie bei Orks ist eine deutliche Neigung zur Fortpflanzung zu beobachten. ($int36($id))</text>
</message>
<message name="curseinfo::insectfur">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber schützt vor den Auswirkungen der Kälte. ($int36($id))</text>
</message>
<message name="curseinfo::sparkle">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber ist einer der ersten, den junge Magier in der Schule lernen. ($int36($id))</text>
</message>
<message name="curseinfo::strength">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber vermehrt die Stärke der verzauberten Personen um ein vielfaches. ($int36($id))</text>
</message>
<message name="curseinfo::itemcloak">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber macht die Ausrüstung unsichtbar. ($int36($id))</text>
</message>
<message name="curseinfo::fumble">
<type><arg name="id" type="int"/></type>
<text locale="de">Eine Wolke negativer Energie umgibt die Einheit. ($int36($id))</text>
</message>
<message name="curseinfo::magicresistance">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine Verzauberung. ($int36($id))</text>
</message>
<message name="curseinfo::maelstrom">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber verursacht einen gigantischen magischen Strudel. Der Mahlstrom wird alle Schiffe, die in seinen Sog geraten, schwer beschädigen. ($int36($id))</text>
</message>
<message name="curseinfo::blessedharvest">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Fruchtbarkeitszauber erhöht die Erträge der Felder. ($int36($id))</text>
</message>
<message name="curseinfo::drought">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber strahlt starke negative Energien aus. Warscheinlich ist er die Ursache der Dürre. ($int36($id))</text>
</message>
<message name="curseinfo::badlearn">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::depression">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::generous">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber beeinflusst die allgemeine Stimmung in der Region positiv. Die gute Laune macht die Leute freigiebiger. ($int36($id))</text>
</message>
<message name="curseinfo::peacezone">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser machtvoller Beeinflussungszauber erstickt jeden Streit schon im Keim. ($int36($id))</text>
</message>
<message name="curseinfo::magicstreet">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::badmagicresistancezone">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::goodmagicresistancezone">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::godcursezone">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::holyground">
<type><arg name="id" type="int"/></type>
<text locale="de">Verschiedene Naturgeistern sind im Boden der Region gebunden und beschützen diese vor dem der dunklen Magie des lebenden Todes. ($int36($id))</text>
</message>
<message name="curseinfo::healingzone">
<type><arg name="id" type="int"/></type>
<text locale="de">Heilung ist in dieser Region magisch beeinflusst. ($int36($id))</text>
</message>
<message name="curseinfo::nodrift">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::shipdisorientation">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieses Schiff hat sich verfahren. ($int36($id))</text>
</message>
<message name="curseinfo::magicwalls">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::magicrunes">
<type><arg name="id" type="int"/></type>
<text locale="de">Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine Verzauberung. ($int36($id))</text>
</message>
<message name="curseinfo::nocostbuilding">
<type><arg name="id" type="int"/></type>
<text locale="de">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))</text>
</message>
<message name="curseinfo::sparkle_1" section="events">
<type>
<arg name="unit" type="unit"/>
@ -245,13 +367,6 @@
<text locale="de">"$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))"</text>
<text locale="en">"$int($number) $if($eq($number,1), "member", "members") of $unit($unit) $if($eq($number,1), "is", "are") protected from the cold. ($int36($id))"</text>
</message>
<message name="curseinfo::info_str" section="events">
<type>
<arg name="text" type="string"/>
<arg name="id" type="int"/>
</type>
<text locale="de">"${text}. ($int36($id))"</text>
</message>
<message name="curseinfo::ship_unknown" section="events">
<type>
<arg name="id" type="int"/>