diff --git a/src/common/gamecode/report.c b/src/common/gamecode/report.c
index a11325dff..2bd2fc563 100644
--- a/src/common/gamecode/report.c
+++ b/src/common/gamecode/report.c
@@ -2083,7 +2083,7 @@ report_plaintext(const char * filename, report_context * ctx)
}
if (!fval(r->terrain, SEA_REGION)) {
if (sh->coast != NODIRECTION) {
- scat(LOC(f->locale, "list_and"));
+ scat(LOC(f->locale, ", "));
scat(LOC(f->locale, coasts[sh->coast]));
}
}
diff --git a/src/common/spells/spells.c b/src/common/spells/spells.c
index a99860cb0..523b556cf 100644
--- a/src/common/spells/spells.c
+++ b/src/common/spells/spells.c
@@ -4444,11 +4444,7 @@ sp_recruit(castorder *co)
u = create_unit(r, f, n, f->race, 0, (n == 1 ? "Bauer" : "Bauern"), mage);
set_order(&u->thisorder, default_order(f->locale));
- sprintf(buf, "%s konnte %d %s anwerben", unitname(mage), n,
- n == 1 ? "Bauer" : "Bauern");
- addmessage(r, mage->faction, buf, MSG_MAGIC, ML_INFO);
-
- if (f->race==new_race[RC_URUK]) n = (n+1) / 2;
+ ADDMSG(&mage->faction->msgs, msg_message("recruit_effect", "mage amount", mage, n));
return cast_level;
}
diff --git a/src/common/spells/unitcurse.c b/src/common/spells/unitcurse.c
index 4930c9a99..bc43ed137 100644
--- a/src/common/spells/unitcurse.c
+++ b/src/common/spells/unitcurse.c
@@ -217,28 +217,28 @@ cinfo_sparkle(const void * obj, typ_t typ, const curse *c, int self)
{
const char * effects[] = {
NULL, /* end grau*/
- "%s ist im Traum eine Fee erschienen",
- "%s wird von bösen Alpträumen geplagt",
+ "sparkle_1",
+ "sparkle_2",
NULL, /* end traum */
- "%s wird von einem glitzernden Funkenregen umgeben",
- "Ein schimmernder Lichterkranz umgibt %s",
+ "sparkle_3",
+ "sparkle_4",
NULL, /* end tybied */
- "Eine Melodie erklingt, und %s tanzt bis spät in die Nacht hinein",
- "%s findet eine kleine Flöte, die eine wundersame Melodie spielt",
- "Die Frauen des nahegelegenen Dorfes bewundern %s verstohlen",
- "Eine Gruppe vorbeiziehender Bergarbeiter rufen %s eindeutig Zweideutiges nach",
+ "sparkle_5",
+ "sparkle_6",
+ "sparkle_7",
+ "sparkle_8",
NULL, /* end cerrdor */
- "%s bekommt von einer Schlange einen Apfel angeboten",
- "Ein Einhorn berührt %s mit seinem Horn und verschwindet kurz darauf im Unterholz",
- "Vogelzwitschern begleitet %s auf all seinen Wegen",
- "Leuchtende Blumen erblühen rund um das Lager von %s",
+ "sparkle_9",
+ "sparkle_10",
+ "sparkle_11",
+ "sparkle_12",
NULL, /* end gwyrrd */
- "Über %s zieht eine Gruppe Geier ihre Kreise",
- "Der Kopf von %s hat sich in einen grinsenden Totenschädel verwandelt",
- "Ratten folgen %s auf Schritt und Tritt",
- "Pestbeulen befallen den Körper von %s",
- "Eine dunkle Fee erscheint %s im Schlaf. Sie ist von schauriger Schönheit",
- "Fäulnisgeruch dringt %s aus allen Körperöffnungen",
+ "sparkle_13",
+ "sparkle_14",
+ "sparkle_15",
+ "sparkle_16",
+ "sparkle_17",
+ "sparkle_18",
NULL, /* end draig */
};
int m, begin=0, end=0;
@@ -258,9 +258,10 @@ cinfo_sparkle(const void * obj, typ_t typ, const curse *c, int self)
while (effects[end]!=NULL) ++end;
if (end==begin) return NULL;
- else sprintf(buf, effects[begin + curse_geteffect(c) % (end-begin)], u->name);
-
- return msg_message("curseinfo::info_str", "text id", buf, c->no);
+ else {
+ int index = begin + curse_geteffect(c) % (end-begin);
+ return msg_message(mkname("curseinfo", effects[index]), "text id", buf, c->no);
+ }
}
static struct curse_type ct_sparkle = { "sparkle",
CURSETYP_UNIT, CURSE_SPREADMODULO, ( M_MEN | M_DURATION ),
diff --git a/src/res/messages.xml b/src/res/messages.xml
index 680353651..1f01fd2c9 100644
--- a/src/res/messages.xml
+++ b/src/res/messages.xml
@@ -39,6 +39,150 @@
"$unit($mage) beschwört einen Schleier der Verwirrung."
"$unit($mage) summons a fog of confusion."
+
+
+
+
+
+ "$unit($unit) ist im Traum eine Fee erschienen. ($int36($id))"
+ "In a dream, a fairy appears to $unit($unit). ($int36($id))"
+
+
+
+
+
+
+ "$unit($unit) wird von bösen Alpträumen geplagt. ($int36($id))"
+ "$unit($unit) is haunted by terrbile nightmares. ($int36($id))"
+
+
+
+
+
+
+ "$unit($unit) wird von einem glitzernden Funkenregen umgeben. ($int36($id))"
+ "$unit($unit) is surrounded by a shower of glittering sparkles. ($int36($id))"
+
+
+
+
+
+
+ "Ein schimmernder Lichterkranz umgibt $unit($unit). ($int36($id))"
+ "A circle of shimmering lights surrounds $unit($unit). ($int36($id))"
+
+
+
+
+
+
+ "Eine Melodie erklingt, und $unit($unit) tanzt bis spät in die Nacht hinein. ($int36($id))"
+ "A haunting melody fills the air, and $unit($unit) dances until late into the night. ($int36($id))"
+
+
+
+
+
+
+ "$unit($unit) findet eine kleine Flöte, die eine wundersame Melodie spielt. ($int36($id))"
+ "$unit($unit) finds a small flute that plays a beautiful melody. ($int36($id))"
+
+
+
+
+
+
+ "Die Frauen des nahegelegenen Dorfes bewundern $unit($unit) verstohlen. ($int36($id))"
+ "The women of the nearby village cast furtive looks at $unit($unit). ($int36($id))"
+
+
+
+
+
+
+ "Eine Gruppe vorbeiziehender Bergarbeiter rufen $unit($unit) eindeutig Zweideutiges nach. ($int36($id))"
+ "A group of passing miners makes passes at $unit($unit). ($int36($id))"
+
+
+
+
+
+
+ "$unit($unit) bekommt von einer Schlange einen Apfel angeboten. ($int36($id))"
+ "A large green snake offers $unit($unit) a fine-looking apple. ($int36($id))"
+
+
+
+
+
+
+ "Ein Einhorn berührt $unit($unit) mit seinem Horn und verschwindet kurz darauf im Unterholz. ($int36($id))"
+ "A unicorn touches $unit($unit) with its horn and vanishes into the forest quickly after. ($int36($id))"
+
+
+
+
+
+
+ "Vogelzwitschern begleitet $unit($unit) auf all seinen Wegen. ($int36($id))"
+ "Bird songs follow $unit($unit) on all his travels. ($int36($id))"
+
+
+
+
+
+
+ "Leuchtende Blumen erblühen rund um das Lager von $unit($unit). ($int36($id))"
+ "Brightly coloured flowers pop up all around $unit($unit)'s camp. ($int36($id))"
+
+
+
+
+
+
+ "Über $unit($unit) zieht eine Gruppe Geier ihre Kreise. ($int36($id))"
+ "A group of vultures circles above $unit($unit). ($int36($id))"
+
+
+
+
+
+
+ "Der Kopf von $unit($unit) hat sich in einen grinsenden Totenschädel verwandelt. ($int36($id))"
+ "The head of $unit($unit) has turned into a madly grinning skull. ($int36($id))"
+
+
+
+
+
+
+ "Ratten folgen $unit($unit) auf Schritt und Tritt. ($int36($id))"
+ "Rats follow $unit($unit)'s every step. ($int36($id))"
+
+
+
+
+
+
+ "Pestbeulen befallen den Körper von $unit($unit). ($int36($id))"
+ "The body of $unit($unit) is disfigured by hideous boils. ($int36($id))"
+
+
+
+
+
+
+ "Eine dunkle Fee erscheint $unit($unit) im Schlaf. Sie ist von schauriger Schönheit. ($int36($id))"
+ "A dark and mysterious fairy appears before $unit($unit). She is of bewitching beauty. ($int36($id))"
+
+
+
+
+
+
+ "Fäulnisgeruch dringt $unit($unit) aus allen Körperöffnungen. ($int36($id))"
+ "The stench of decay is poring from all the orifices of $unit($unit). ($int36($id))"
+
@@ -884,6 +1028,14 @@
"$unit($unit) gelingt es, durch die Nebel auf die Realität zu blicken."
"$unit($unit) manages to catch a glimpse of reality through the fog."
+
+
+
+
+
+ "$unit($mage) konnte $int($amount) $if($eq($amount,1),"Bauer","Bauern") anwerben."
+ "$unit($mage) managed to recruit $int($amount) $if($eq($amount,1),"peasant","peasants")."
+
@@ -2536,8 +2688,7 @@
"$unit($unit) in $region($region) stellt fest, dass es hier $localize($amount,$locale("de")) $resource($herb,$amount) gibt."
- "$unit($unit) discovers that $localize($amount,$locale("en")) $resource($herb,$amount) grow in $region($region)."
- "$unit($unit) discovers that $localize($amount,$locale("fr")) $resource($herb,$amount) grow in $region($region)."
+ "$unit($unit) discovers that $localize($amount,$locale("en")) $resource($herb,$amount) grow in $region($region)."
diff --git a/src/scripts/eressea/items.lua b/src/scripts/eressea/items.lua
index 8558624fc..020c59c96 100644
--- a/src/scripts/eressea/items.lua
+++ b/src/scripts/eressea/items.lua
@@ -2,11 +2,13 @@ function use_ring_of_levitation(u, amount)
if u.ship~=nil and amount>0 then
local mallorn = 0
for u2 in u.region.units do
- local i = u2:get_item("mallornseed")
- if i>0 then
- u2:use_item("mallornseed", i)
- u2:add_item("seed", i)
- mallorn = mallorn + i
+ if u2.ship==u.ship then
+ local i = u2:get_item("mallornseed")
+ if i>0 then
+ u2:use_item("mallornseed", i)
+ u2:add_item("seed", i)
+ mallorn = mallorn + i
+ end
end
end
if mallorn>0 then