forked from github/server
- richtig viele bugfixes
This commit is contained in:
parent
3fc0e27776
commit
f614691713
|
@ -1152,15 +1152,23 @@ cr_output_region(FILE * F, report_context * ctx, seen_region * sr)
|
|||
|
||||
if (sr->mode>=see_unit) {
|
||||
fprintf(F, "%d;Silber\n", rmoney(r));
|
||||
fprintf(F, "%d;Unterh\n", entertainmoney(r));
|
||||
|
||||
if (skill_enabled[SK_ENTERTAINMENT]) {
|
||||
fprintf(F, "%d;Unterh\n", entertainmoney(r));
|
||||
}
|
||||
if (is_cursed(r->attribs, C_RIOT, 0)){
|
||||
fprintf(F, "0;Rekruten\n");
|
||||
} else {
|
||||
fprintf(F, "%d;Rekruten\n", rpeasants(r) / RECRUITFRACTION);
|
||||
}
|
||||
if (production(r)) {
|
||||
fprintf(F, "%d;Lohn\n", wage(r, f, f->race));
|
||||
if (markets_module()) { /* hack */
|
||||
fprintf(F, "%d;Lohn\n", wage(r, NULL, NULL));
|
||||
} else {
|
||||
fprintf(F, "%d;Lohn\n", wage(r, f, f->race));
|
||||
}
|
||||
}
|
||||
if (r->land->ownership) {
|
||||
fprintf(F, "%d;morale\n", r->land->morale);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -579,7 +579,7 @@ recruit(unit * u, struct order * ord, request ** recruitorders)
|
|||
cmistake(u, ord, 139, MSG_EVENT);
|
||||
return;
|
||||
}
|
||||
else u->race = rc;
|
||||
else u->irace = u->race = rc;
|
||||
}
|
||||
|
||||
if (has_skill(u, SK_MAGIC)) {
|
||||
|
|
|
@ -708,7 +708,7 @@ growing_trees(region * r, const int current_season, const int last_weeks_season)
|
|||
|
||||
/* Grundchance 1.0% */
|
||||
/* Jeder Elf in der Region erhöht die Chance um 0.0008%. */
|
||||
seedchance += (MIN(elves, (production(r)*MAXPEASANTS_PER_AREA)/8)) * 0.0008;
|
||||
seedchance += (MIN(elves, (production(r)*MAXPEASANTS_PER_AREA)/8)) * 0.0008 * RESOURCE_QUANTITY;
|
||||
grownup_trees = rtrees(r, 2);
|
||||
seeds = 0;
|
||||
|
||||
|
@ -2974,6 +2974,9 @@ static void age_region(region * r)
|
|||
if (stability>MORALE_COOLDOWN) {
|
||||
if (r->land->ownership->owner && r->land->morale<MORALE_MAX) {
|
||||
double ch = rc_popularity(r->land->ownership->owner->race);
|
||||
if (is_cursed(r->attribs, C_GENEROUS, 0)) {
|
||||
ch *= 1.2; /* 20% improvement */
|
||||
}
|
||||
if (chance(ch)) {
|
||||
++r->land->morale;
|
||||
r->land->ownership->morale_turn = turn;
|
||||
|
|
|
@ -951,6 +951,11 @@ describe(FILE * F, const seen_region * sr, faction * f)
|
|||
bytes = snprintf(bufp, size, ", %d", n);
|
||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||
|
||||
if (r->land->ownership) {
|
||||
const char * str = locale_string(f->locale, mkname("morale", itoa10(r->land->morale)));
|
||||
bytes = snprintf(bufp, size, " %s", str);
|
||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||
}
|
||||
if (fval(r, RF_ORCIFIED)) {
|
||||
bytes = (int)strlcpy(bufp, " ", size);
|
||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||
|
@ -1177,14 +1182,18 @@ statistics(FILE * F, const region * r, const faction * f)
|
|||
rnl(F);
|
||||
|
||||
/* Region */
|
||||
if (fval(r->terrain, LAND_REGION) && rmoney(r)) {
|
||||
if (skill_enabled[SK_ENTERTAINMENT] && fval(r->terrain, LAND_REGION) && rmoney(r)) {
|
||||
m = msg_message("nr_stat_maxentertainment", "max", entertainmoney(r));
|
||||
nr_render(m, f->locale, buf, sizeof(buf), f);
|
||||
rparagraph(F, buf, 2, 2, 0);
|
||||
msg_release(m);
|
||||
}
|
||||
if (production(r) && (!fval(r->terrain, SEA_REGION) || f->race == new_race[RC_AQUARIAN])) {
|
||||
m = msg_message("nr_stat_salary", "max", wage(r, f, f->race));
|
||||
if (markets_module()) { /* hack */
|
||||
m = msg_message("nr_stat_salary_new", "max", wage(r, NULL, NULL));
|
||||
} else {
|
||||
m = msg_message("nr_stat_salary", "max", wage(r, f, f->race));
|
||||
}
|
||||
nr_render(m, f->locale, buf, sizeof(buf), f);
|
||||
rparagraph(F, buf, 2, 2, 0);
|
||||
msg_release(m);
|
||||
|
@ -1195,16 +1204,18 @@ statistics(FILE * F, const region * r, const faction * f)
|
|||
rparagraph(F, buf, 2, 2, 0);
|
||||
msg_release(m);
|
||||
|
||||
if (buildingtype_exists(r, bt_find("caravan"))) {
|
||||
m = msg_message("nr_stat_luxuries", "max",
|
||||
(p * 2) / TRADE_FRACTION);
|
||||
} else {
|
||||
m = msg_message("nr_stat_luxuries", "max",
|
||||
p / TRADE_FRACTION);
|
||||
if (!markets_module()) {
|
||||
if (buildingtype_exists(r, bt_find("caravan"))) {
|
||||
m = msg_message("nr_stat_luxuries", "max",
|
||||
(p * 2) / TRADE_FRACTION);
|
||||
} else {
|
||||
m = msg_message("nr_stat_luxuries", "max",
|
||||
p / TRADE_FRACTION);
|
||||
}
|
||||
nr_render(m, f->locale, buf, sizeof(buf), f);
|
||||
rparagraph(F, buf, 2, 2, 0);
|
||||
msg_release(m);
|
||||
}
|
||||
nr_render(m, f->locale, buf, sizeof(buf), f);
|
||||
rparagraph(F, buf, 2, 2, 0);
|
||||
msg_release(m);
|
||||
}
|
||||
/* info about units */
|
||||
|
||||
|
@ -2185,7 +2196,7 @@ report_plaintext(const char * filename, report_context * ctx, const char * chars
|
|||
const item_type * lux = r_luxury(r);
|
||||
const item_type * herb = r->land->herbtype;
|
||||
message * m = msg_message("nr_market_info", "product herb",
|
||||
lux->rtype, herb?herb->rtype:0);
|
||||
lux?lux->rtype:0, herb?herb->rtype:0);
|
||||
|
||||
rnl(F);
|
||||
nr_paragraph(F, m, f);
|
||||
|
|
|
@ -476,20 +476,24 @@ teach_cmd(unit * u, struct order * ord)
|
|||
static double
|
||||
study_speedup(unit * u)
|
||||
{
|
||||
static int rule = -1;
|
||||
if (rule<0) {
|
||||
rule = get_param_int(global.parameters, "study.speedup", 0);
|
||||
}
|
||||
if (rule==1) {
|
||||
double age = 0;
|
||||
int i;
|
||||
for (i=0;i!=u->skill_size;++i) {
|
||||
skill * sv = u->skills+i;
|
||||
double time = sv->level*(sv->level+1)/2.0;
|
||||
age += time;
|
||||
#define MINTURN 5 /* 5 */
|
||||
#define OFSTURN 2 /* 2 */
|
||||
if (turn>MINTURN) {
|
||||
static int rule = -1;
|
||||
if (rule<0) {
|
||||
rule = get_param_int(global.parameters, "study.speedup", 0);
|
||||
}
|
||||
if (age < turn) {
|
||||
return 2.0-age/turn;
|
||||
if (rule==1) {
|
||||
double age = OFSTURN;
|
||||
int i;
|
||||
for (i=0;i!=u->skill_size;++i) {
|
||||
skill * sv = u->skills+i;
|
||||
double time = sv->level*(sv->level+1)/2.0;
|
||||
age += time;
|
||||
}
|
||||
if (age < turn) {
|
||||
return 2.0-age/turn;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1.0;
|
||||
|
|
|
@ -151,13 +151,16 @@ resourcename(const resource_type * rtype, int flags)
|
|||
{
|
||||
int i = 0;
|
||||
|
||||
if (rtype->name) return rtype->name(rtype, flags);
|
||||
if (rtype) {
|
||||
if (rtype->name) return rtype->name(rtype, flags);
|
||||
|
||||
if (flags & NMF_PLURAL) i = 1;
|
||||
if (flags & NMF_APPEARANCE && rtype->_appearance[i]) {
|
||||
return rtype->_appearance[i];
|
||||
if (flags & NMF_PLURAL) i = 1;
|
||||
if (flags & NMF_APPEARANCE && rtype->_appearance[i]) {
|
||||
return rtype->_appearance[i];
|
||||
}
|
||||
return rtype->_name[i];
|
||||
}
|
||||
return rtype->_name[i];
|
||||
return "none";
|
||||
}
|
||||
|
||||
resource_type *
|
||||
|
|
|
@ -53,6 +53,8 @@
|
|||
#include <util/rng.h>
|
||||
#include <util/storage.h>
|
||||
|
||||
#include <modules/autoseed.h>
|
||||
|
||||
/* libc includes */
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
|
@ -888,6 +890,10 @@ const item_type *
|
|||
r_luxury(region * r)
|
||||
{
|
||||
struct demand * dmd;
|
||||
if (!r->land->demands) {
|
||||
fix_demand(r);
|
||||
assert(r->land->demands);
|
||||
}
|
||||
for (dmd=r->land->demands;dmd;dmd=dmd->next) {
|
||||
if (dmd->value==0) return dmd->type->itype;
|
||||
}
|
||||
|
|
|
@ -1032,7 +1032,7 @@ seen_done(seen_region * seehash[])
|
|||
reuse = seehash[i];
|
||||
seehash[i] = NULL;
|
||||
}
|
||||
free(seehash);
|
||||
// free(seehash);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -226,7 +226,7 @@ rc_skillmod(const struct race * rc, const region *r, skill_t sk)
|
|||
{
|
||||
int mods;
|
||||
|
||||
if (!skill_enabled[SK_PERCEPTION]) return 0;
|
||||
if (!skill_enabled[sk]) return 0;
|
||||
#ifdef FASTER_SKILLMOD
|
||||
unsigned int index = hashstring(rc->_name[0]) % RCMODMAXHASH;
|
||||
struct skillmods **imods = &modhash[index];
|
||||
|
|
|
@ -4199,10 +4199,10 @@ sp_generous(castorder *co)
|
|||
message * m = NULL;
|
||||
fset(u->faction, FFL_SELECT);
|
||||
if (cansee(u->faction, r, mage, 0)) {
|
||||
if (msg[0]==NULL) msg[0] = msg_message("song_of_peace_effect_0", "mage", mage);
|
||||
if (msg[0]==NULL) msg[0] = msg_message("generous_effect_0", "mage", mage);
|
||||
m = msg[0];
|
||||
} else {
|
||||
if (msg[1]==NULL) msg[1] = msg_message("song_of_peace_effect_1", "");
|
||||
if (msg[1]==NULL) msg[1] = msg_message("generous_effect_1", "");
|
||||
m = msg[1];
|
||||
}
|
||||
r_addmessage(r, u->faction, m);
|
||||
|
|
|
@ -542,6 +542,11 @@ read_args(int argc, char **argv, lua_State * luaState)
|
|||
}
|
||||
|
||||
/* add some more variables to the lua globals */
|
||||
if (script_path) {
|
||||
char str[512];
|
||||
sprintf(str, "?;?.lua;%s/?.lua;%s/?", script_path, script_path);
|
||||
setLuaString(luaState, "LUA_PATH", str);
|
||||
}
|
||||
setLuaString(luaState, "datapath", datapath());
|
||||
setLuaString(luaState, "scriptpath", script_path);
|
||||
setLuaString(luaState, "basepath", basepath());
|
||||
|
@ -625,7 +630,7 @@ write_skills(void)
|
|||
fputs("\"Rasse\",", F);
|
||||
for (rc=races;rc;rc = rc->next) {
|
||||
if (playerrace(rc)) {
|
||||
fprintf(F, "\"%s\",", LOC(loc, rc->_name[0]));
|
||||
fprintf(F, "\"%s\",", LOC(loc, mkname("race", rc->_name[0])));
|
||||
}
|
||||
}
|
||||
fputc('\n', F);
|
||||
|
@ -690,7 +695,9 @@ main(int argc, char *argv[])
|
|||
if (luafile==NULL) lua_console(luaState);
|
||||
else {
|
||||
char buf[MAX_PATH];
|
||||
if (script_path) sprintf(buf, "%s/%s", script_path, luafile);
|
||||
if (script_path) {
|
||||
sprintf(buf, "%s/%s", script_path, luafile);
|
||||
}
|
||||
else strcpy(buf, luafile);
|
||||
#ifdef BINDINGS_LUABIND
|
||||
try {
|
||||
|
|
|
@ -163,6 +163,15 @@ tolua_faction_get_options(lua_State* L)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
tolua_faction_set_options(lua_State* L)
|
||||
{
|
||||
faction * self = (faction *)tolua_tousertype(L, 1, 0);
|
||||
int options = (int)tolua_tonumber(L, 2, self->options);
|
||||
self->options = options;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
tolua_faction_get_lastturn(lua_State* L)
|
||||
{
|
||||
|
@ -452,7 +461,7 @@ tolua_faction_open(lua_State* L)
|
|||
tolua_variable(L, "score", tolua_faction_get_score, NULL);
|
||||
tolua_variable(L, "id", tolua_faction_get_id, tolua_faction_set_id);
|
||||
tolua_variable(L, "age", tolua_faction_get_age, tolua_faction_set_age);
|
||||
tolua_variable(L, "options", tolua_faction_get_options, NULL);
|
||||
tolua_variable(L, "options", tolua_faction_get_options, tolua_faction_set_options);
|
||||
tolua_variable(L, "flags", tolua_faction_get_flags, NULL);
|
||||
tolua_variable(L, "lastturn", tolua_faction_get_lastturn, NULL);
|
||||
|
||||
|
|
|
@ -823,8 +823,10 @@ static int tolua_unit_set_race(lua_State* L)
|
|||
const char * rcname = tolua_tostring(L, 2, 0);
|
||||
race * rc = rc_find(rcname);
|
||||
if (rc!=NULL) {
|
||||
if (count_unit(self)) --self->faction->no_units;
|
||||
if (self->irace==self->race) self->irace = rc;
|
||||
self->race = rc;
|
||||
if (count_unit(self)) --self->faction->no_units;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -166,7 +166,7 @@
|
|||
</construction>
|
||||
</building>
|
||||
|
||||
<building name="castle" capacity="1" protection="yes">
|
||||
<building name="castle" capacity="1" protection="yes" taxes="yes">
|
||||
<function name="name" value="castle_name"/>
|
||||
<construction skill="building" minskill="1" maxsize="2" reqsize="1">
|
||||
<requirement type="stone" quantity="1"/>
|
||||
|
|
|
@ -40,13 +40,13 @@
|
|||
<equipment>
|
||||
<set name="first_unit">
|
||||
<item name="conquesttoken" amount="1"/>
|
||||
<item name="log" amount="30"/>
|
||||
<item name="stone" amount="30"/>
|
||||
<item name="money" amount="4200"/>
|
||||
<item name="log" amount="10"/>
|
||||
<item name="stone" amount="10"/>
|
||||
<item name="money" amount="5000"/>
|
||||
</set>
|
||||
<set name="new_faction">
|
||||
<!--set name="new_faction">
|
||||
<item name="adamantium" amount="1"/>
|
||||
</set>
|
||||
</set-->
|
||||
</equipment>
|
||||
|
||||
<xi:include href="names-undead.xml"/>
|
||||
|
@ -178,13 +178,13 @@
|
|||
</string>
|
||||
<string name="newbie_info_1">
|
||||
<text locale="de">Bitte denke daran, deine Befehle mit dem Betreff
|
||||
ERESSEA BEFEHLE an eressea-server@eressea.de zu senden.</text>
|
||||
E3 BEFEHLE an eressea-server@eressea.de zu senden.</text>
|
||||
<text locale="en">Remember to send your orders to
|
||||
eressea-server@eressea.de with the subject ERESSEA ORDERS.</text>
|
||||
eressea-server@eressea.de with the subject E3 ORDERS.</text>
|
||||
</string>
|
||||
<string name="mailcmd">
|
||||
<text locale="de">ERESSEA BEFEHLE</text>
|
||||
<text locale="en">ERESSEA ORDERS</text>
|
||||
<text locale="de">E3 BEFEHLE</text>
|
||||
<text locale="en">E3 ORDERS</text>
|
||||
</string>
|
||||
</strings>
|
||||
</eressea>
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
<function name="itemdrop" value="defaultdrops"/>
|
||||
<param name="other_race" value="dwarf"/>
|
||||
<param name="other_cost" value="500"/>
|
||||
<param name="morale" value="5"/>
|
||||
<param name="morale" value="8"/>
|
||||
<param name="luxury_trade" value="600"/>
|
||||
<skill name="bow" modifier="-1"/>
|
||||
<skill name="building" modifier="1"/>
|
||||
|
@ -103,7 +103,6 @@
|
|||
<function name="itemdrop" value="defaultdrops"/>
|
||||
<skill name="cartmaking" modifier="-2"/>
|
||||
<skill name="forestry" modifier="1"/>
|
||||
<skill name="magic" modifier="1"/>
|
||||
<skill name="melee" modifier="1"/>
|
||||
<skill name="polearm" modifier="1"/>
|
||||
<skill name="riding" modifier="-1"/>
|
||||
|
@ -127,7 +126,6 @@
|
|||
<skill name="bow" modifier="2"/>
|
||||
<skill name="building" modifier="-1"/>
|
||||
<skill name="catapult" modifier="-2"/>
|
||||
<skill name="magic" modifier="1"/>
|
||||
<skill name="mining" modifier="-2"/>
|
||||
<skill name="quarrying" modifier="-1"/>
|
||||
<skill name="roadwork" modifier="-1"/>
|
||||
|
@ -171,7 +169,6 @@
|
|||
<skill name="building" modifier="2"/>
|
||||
<skill name="catapult" modifier="2"/>
|
||||
<skill name="forestry" modifier="-1"/>
|
||||
<skill name="magic" modifier="-2"/>
|
||||
<skill name="melee" modifier="1"/>
|
||||
<skill name="mining" modifier="2"/>
|
||||
<skill name="quarrying" modifier="2"/>
|
||||
|
|
|
@ -364,21 +364,21 @@
|
|||
<!-- end gwyrrd -->
|
||||
|
||||
<!-- new tybied - spells known to all schools -->
|
||||
<spell name="create_potion_p2" type="tybied" ship="true" rank="5" level="2">
|
||||
<spell name="create_potion_p2" type="tybied" ship="true" rank="5" level="2" variable="true">
|
||||
<!-- Wasser des Lebens -->
|
||||
<function name="cast" value="lua_castspell"/>
|
||||
<resource name="aura" amount="2" cost="linear"/>
|
||||
<resource name="h4" amount="1" cost="linear"/><!-- Baumringel -->
|
||||
<resource name="h6" amount="1" cost="linear"/><!-- Gurgelkraut -->
|
||||
</spell>
|
||||
<spell name="create_potion_p0" type="tybied" ship="true" rank="5" level="3">
|
||||
<spell name="create_potion_p0" type="tybied" ship="true" rank="5" level="3" variable="true">
|
||||
<!-- Siebenmeilentee -->
|
||||
<function name="cast" value="lua_castspell"/>
|
||||
<resource name="aura" amount="2" cost="linear"/>
|
||||
<resource name="h12" amount="1" cost="linear"/><!-- Windbeutel -->
|
||||
<resource name="h17" amount="1" cost="linear"/><!-- Höhlenglimm -->
|
||||
</spell>
|
||||
<spell name="create_potion_p9" type="tybied" ship="true" rank="5" level="4">
|
||||
<spell name="create_potion_p9" type="tybied" ship="true" rank="5" level="4" variable="true">
|
||||
<!-- Pferdeglück -->
|
||||
<function name="cast" value="lua_castspell"/>
|
||||
<resource name="aura" amount="3" cost="linear"/>
|
||||
|
@ -386,7 +386,7 @@
|
|||
<resource name="h8" amount="1" cost="linear"/><!-- Blasenmorchel -->
|
||||
<resource name="h15" amount="1" cost="linear"/><!-- Steinbeißer -->
|
||||
</spell>
|
||||
<spell name="create_potion_peasantblood" type="tybied" ship="true" rank="5" level="5">
|
||||
<spell name="create_potion_peasantblood" type="tybied" ship="true" rank="5" level="5" variable="true">
|
||||
<!-- Bauernblut -->
|
||||
<function name="cast" value="lua_castspell"/>
|
||||
<resource name="aura" amount="3" cost="linear"/>
|
||||
|
@ -396,7 +396,7 @@
|
|||
<resource name="peasant" amount="1" cost="fixed"/><!-- Bauer -->
|
||||
</spell>
|
||||
|
||||
<spell name="create_potion_ointment" type="tybied" ship="true" rank="5" level="6">
|
||||
<spell name="create_potion_ointment" type="tybied" ship="true" rank="5" level="6" variable="true">
|
||||
<!-- Wundsalbe -->
|
||||
<function name="cast" value="lua_castspell"/>
|
||||
<resource name="aura" amount="4" cost="linear"/>
|
||||
|
@ -405,7 +405,7 @@
|
|||
<resource name="h18" amount="1" cost="linear"/><!-- Eisblume -->
|
||||
<resource name="h11" amount="1" cost="linear"/><!-- Sandfäule -->
|
||||
</spell>
|
||||
<spell name="create_potion_p3" type="tybied" ship="true" rank="5" level="7">
|
||||
<spell name="create_potion_p3" type="tybied" ship="true" rank="5" level="7" variable="true">
|
||||
<!-- Schaffenstrunk -->
|
||||
<function name="cast" value="lua_castspell"/>
|
||||
<resource name="aura" amount="4" cost="linear"/>
|
||||
|
@ -414,7 +414,7 @@
|
|||
<resource name="h20" amount="1" cost="linear"/><!-- Schneekristall -->
|
||||
<resource name="h9" amount="1" cost="linear"/><!-- Wasserfinder -->
|
||||
</spell>
|
||||
<spell name="create_potion_p14" type="tybied" ship="true" rank="5" level="8">
|
||||
<spell name="create_potion_p14" type="tybied" ship="true" rank="5" level="8" variable="true">
|
||||
<!-- Heiltrank -->
|
||||
<function name="cast" value="lua_castspell"/>
|
||||
<resource name="aura" amount="5" cost="linear"/>
|
||||
|
@ -424,7 +424,7 @@
|
|||
<resource name="h18" amount="1" cost="linear"/><!-- Eisblume -->
|
||||
<resource name="h9" amount="1" cost="linear"/><!-- Wasserfinder -->
|
||||
</spell>
|
||||
<spell name="create_potion_p13" type="tybied" ship="true" rank="5" level="9">
|
||||
<spell name="create_potion_p13" type="tybied" ship="true" rank="5" level="9" variable="true">
|
||||
<!-- Elixier der Macht -->
|
||||
<function name="cast" value="lua_castspell"/>
|
||||
<resource name="aura" amount="5" cost="linear"/>
|
||||
|
|
|
@ -42,6 +42,32 @@
|
|||
<text locale="en">marketplace</text>
|
||||
</string>
|
||||
|
||||
<namespace name="morale">
|
||||
<string name="0">
|
||||
<text locale="de">aufständische</text>
|
||||
<text locale="en">rebellious</text>
|
||||
</string>
|
||||
<string name="1">
|
||||
<text locale="de">zornige</text>
|
||||
<text locale="en">angry</text>
|
||||
</string>
|
||||
<string name="2">
|
||||
<text locale="de">zufriedene</text>
|
||||
<text locale="en">content</text>
|
||||
</string>
|
||||
<string name="3">
|
||||
<text locale="de">glückliche</text>
|
||||
<text locale="en">happy</text>
|
||||
</string>
|
||||
<string name="4">
|
||||
<text locale="de">treue</text>
|
||||
<text locale="en">loyal</text>
|
||||
</string>
|
||||
<string name="5">
|
||||
<text locale="de">ergebene</text>
|
||||
<text locale="en">devoted</text>
|
||||
</string>
|
||||
</namespace>
|
||||
<string name="charger">
|
||||
<text locale="de">Streitross</text>
|
||||
<text locale="en">charger</text>
|
||||
|
@ -59,23 +85,49 @@
|
|||
<text locale="en">tower shields</text>
|
||||
</string>
|
||||
|
||||
<string name="create_potion_p0">
|
||||
<text locale="de">Siebenmeilentee</text>
|
||||
<text locale="en">seven mile tea</text>
|
||||
</string>
|
||||
<string name="create_potion_p2">
|
||||
<text locale="de">Wasser des Lebens</text>
|
||||
<text locale="en">water of life</text>
|
||||
</string>
|
||||
|
||||
<namespace name="spell">
|
||||
<string name="create_potion_p0">
|
||||
<text locale="de">Braue Siebenmeilentee</text>
|
||||
<text locale="en">brew seven mile tea</text>
|
||||
</string>
|
||||
<string name="create_potion_p2">
|
||||
<text locale="de">Braue Wasser des Lebens</text>
|
||||
<text locale="en">brew water of life</text>
|
||||
</string>
|
||||
<string name="create_potion_p3">
|
||||
<text locale="de">Braue Schaffenstrunk</text>
|
||||
<text locale="en">brew busy beer</text>
|
||||
</string>
|
||||
<string name="create_potion_ointment">
|
||||
<text locale="de">Braue Wundsalbe</text>
|
||||
<text locale="en">brew ointment</text>
|
||||
</string>
|
||||
<string name="create_potion_peasantblood">
|
||||
<text locale="de">Braue Bauernblut</text>
|
||||
<text locale="en">brew peasant blood</text>
|
||||
</string>
|
||||
<string name="create_potion_p9">
|
||||
<text locale="de">Braue Pferdeglück</text>
|
||||
<text locale="en">brew horsepower potion</text>
|
||||
</string>
|
||||
<string name="create_potion_p13">
|
||||
<text locale="de">Braue Elixier der Macht</text>
|
||||
<text locale="en">brew elixir of power</text>
|
||||
</string>
|
||||
<string name="create_potion_p14">
|
||||
<text locale="de">Braue Heiltrank</text>
|
||||
<text locale="en">brew healing potion</text>
|
||||
</string>
|
||||
</namespace>
|
||||
|
||||
<namespace name="spellinfo">
|
||||
<string name="create_potion_p0">
|
||||
<text locale="en">For Seven Mile Tea, boil up a Cobalt Fungus and pour the resulting brew into a Windbag. Catch and filter the liquid that drips out and administer it. This tea allows up to ten men to move as fast as a horse.</text>
|
||||
<text locale="de">Für den Siebenmeilentee koche man einen Blauen Baumringel auf und gieße dieses Gebräu in einen Windbeutel. Das heraustropfende Wasser fange man auf, filtere es und verabreiche es alsdann. Durch diesen Tee können bis zu zehn Menschen schnell wie ein Pferd laufen.</text>
|
||||
</string>
|
||||
<string name="create_potion_p2">
|
||||
<text locale="en">The "Water of Life" allows living trees to be created from logs. A Knotroot and Elvendear are heated until one can just still keep one's finger in. This is then poured into a jar and allowed to cool slowly. The extract is sufficient for 10 pieces of wood.</text>
|
||||
<text locale="de">Das 'Wasser des Lebens' ist in der Lage, aus gefällten Baumstämmen wieder lebende Bäume zu machen. Dazu wird ein knotiger Saugwurz zusammen mit einem Elfenlieb erwärmt, so daß man gerade noch den Finger reinhalten kann. Dies gieße man in ein Gefäß und lasse es langsam abkühlen. Der Extrakt reicht für 10 Holzstämme.</text>
|
||||
<text locale="en">The Water of Life allows living trees to be created from logs. A Knotroot and Elvendear are heated until one can just still keep one's finger in. This is then poured into a jar and allowed to cool slowly. The extract is sufficient for 10 pieces of wood.</text>
|
||||
<text locale="de">Das Wasser des Lebens ist in der Lage, aus gefällten Baumstämmen wieder lebende Bäume zu machen. Dazu wird ein knotiger Saugwurz zusammen mit einem Elfenlieb erwärmt, so daß man gerade noch den Finger reinhalten kann. Dies gieße man in ein Gefäß und lasse es langsam abkühlen. Der Extrakt reicht für 10 Holzstämme.</text>
|
||||
</string>
|
||||
<string name="create_potion_p3">
|
||||
<text locale="en">Allow a Tangy Temerity to simmer for three hours in a litre of water, then add a grated Mandrake, and sprinkle in a Gapgrowth harvested at full moon. The whole brew should then be allowed to stew for three days in a warm place. This potion increases the strength and endurance of ten men so that they can achieve twice as much in a week.</text>
|
||||
|
@ -102,5 +154,22 @@
|
|||
<text locale="de">Für einen Heiltrank nehme man die Schale eines Windbeutels und etwas Gurgelkraut, rühre eine kleingehacktes Elfenlieb dazu und bestreue alles mit den Blüten einer Eisblume. Dies muß vier Tage lang gären, wobei man am zweiten Tag einen Spaltwachs dazutun muß. Dann ziehe man vorsichtig den oben schwimmenden Saft ab. Ein solcher Trank gibt vier Männern (oder einem Mann vier mal) im Kampf eine Chance von 50%, sonst tödliche Wunden zu überleben. Der Trank wird von ihnen automatisch bei Verletzung angewandt.</text>
|
||||
</string>
|
||||
</namespace>
|
||||
<namespace name="spell">
|
||||
<string name="commonfamiliar">
|
||||
<text locale="de">Vertrauten binden</text>
|
||||
<text locale="en">Bind Familiar</text>
|
||||
</string>
|
||||
</namespace>
|
||||
<namespace name="spellinfo">
|
||||
<string name="commonfamiliar">
|
||||
<text locale="de">Einem erfahrenen Magier wird
|
||||
irgendwann auf seinen Wanderungen ein
|
||||
ungewöhnliches Exemplar einer Gattung begegnen,
|
||||
welches sich dem Magier anschließen wird.</text>
|
||||
<text locale="en">During their travel, seasoned
|
||||
magicians will occasionally befriend an extraordinary
|
||||
creature of an unusual species that will join them.</text>
|
||||
</string>
|
||||
</namespace>
|
||||
|
||||
</strings>
|
||||
|
|
|
@ -800,7 +800,13 @@
|
|||
</type>
|
||||
<text locale="de">"Lohn für Arbeit: $int($max) Silber"</text>
|
||||
<text locale="en">"Worker's salary: $int($max) silver"</text>
|
||||
<text locale="fr">"Worker's salary: $int($max) silver"</text>
|
||||
</message>
|
||||
<message name="nr_stat_salary_new" section="nr">
|
||||
<type>
|
||||
<arg name="max" type="int"/>
|
||||
</type>
|
||||
<text locale="de">"Bauerneinnahmen: $int($max) Silber"</text>
|
||||
<text locale="en">"Peasant wages: $int($max) silver"</text>
|
||||
</message>
|
||||
<message name="nr_stat_people" section="nr">
|
||||
<type>
|
||||
|
@ -6799,7 +6805,7 @@
|
|||
<arg name="region" type="region"/>
|
||||
<arg name="command" type="order"/>
|
||||
</type>
|
||||
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Der Besitzer muss das Boot zuerst verlassen."</text>
|
||||
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Der Besitzer muss das Gebäude zuerst verlassen."</text>
|
||||
<text locale="en">"$unit($unit) in $region($region): '$order($command)' - The owner must first LEAVE the building."</text>
|
||||
</message>
|
||||
<message name="error12" section="errors">
|
||||
|
|
|
@ -71,7 +71,7 @@ function process(orders)
|
|||
spawn_dragons()
|
||||
spawn_undead()
|
||||
-- spawn_braineaters(0.25)
|
||||
spawn_ents()
|
||||
-- spawn_ents()
|
||||
|
||||
-- post-turn updates:
|
||||
update_guards()
|
||||
|
|
Loading…
Reference in New Issue