forked from github/server
Konfigurierbar
Ich habe zumindest mal fix eine eigene Funktion draus gemacht und es mit einer XML Option versehen. Es ist Default an, da auch in E3 die Bauern rückläufig sind, und da E4 auf den selben Regeln aufbaut es auch da sinnvoll wäre "tote" Regionen wiederzubeleben.
This commit is contained in:
parent
1cce4927a0
commit
7f39763ee1
62
src/laws.c
62
src/laws.c
|
@ -676,6 +676,39 @@ growing_herbs(region * r, const int current_season, const int last_weeks_season)
|
|||
}
|
||||
}
|
||||
|
||||
void immigration(void)
|
||||
{
|
||||
region *r;
|
||||
log_info(" - Einwanderung...");
|
||||
int repopulate=get_param_int(global.parameters, "rules.economy.repopulate", 1);
|
||||
for (r = regions; r; r = r->next) {
|
||||
if (r->land && r->land->newpeasants) {
|
||||
int rp = rpeasants(r) + r->land->newpeasants;
|
||||
rsetpeasants(r, _max(0, rp));
|
||||
}
|
||||
/* Genereate some (0-2 to 0-6 depending on the income) peasants out of nothing */
|
||||
/*if less then 50 are in the region and there is space and no monster or deamon units in the region */
|
||||
int peasants = rpeasants(r);
|
||||
if (repopulate && r->land && (peasants < 50) && maxworkingpeasants(r) > (peasants+30)*2)
|
||||
{
|
||||
int badunit = 0;
|
||||
unit *u;
|
||||
for (u = r->units; u; u = u->next) {
|
||||
if (!playerrace(u_race(u)) || u_race(u) == get_race(RC_DAEMON))
|
||||
{
|
||||
badunit = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (badunit == 0)
|
||||
{
|
||||
peasants += (int)(rng_double()*(wage(r, NULL, NULL, turn) - 9));
|
||||
rsetpeasants(r, peasants);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void demographics(void)
|
||||
{
|
||||
region *r;
|
||||
|
@ -743,34 +776,7 @@ void demographics(void)
|
|||
};
|
||||
|
||||
remove_empty_units();
|
||||
|
||||
log_info(" - Einwanderung...");
|
||||
for (r = regions; r; r = r->next) {
|
||||
if (r->land && r->land->newpeasants) {
|
||||
int rp = rpeasants(r) + r->land->newpeasants;
|
||||
rsetpeasants(r, _max(0, rp));
|
||||
}
|
||||
/* Genereate some (0-2 to 0-6 depending on the income) peasants out of nothing */
|
||||
/*if less then 50 are in the region and there is space and no monster or deamon units in the region */
|
||||
int peasants = rpeasants(r);
|
||||
if (r->land && (peasants < 50) && maxworkingpeasants(r) > (peasants+30)*2)
|
||||
{
|
||||
int badunit = 0;
|
||||
unit *u;
|
||||
for (u = r->units; u; u = u->next) {
|
||||
if (!playerrace(u_race(u)) || u_race(u) == get_race(RC_DAEMON))
|
||||
{
|
||||
badunit = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (badunit == 0)
|
||||
{
|
||||
peasants += (int)(rng_double()*(wage(r, NULL, NULL, turn) - 9));
|
||||
rsetpeasants(r, peasants);
|
||||
}
|
||||
}
|
||||
}
|
||||
immigration();
|
||||
checkorders();
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ extern "C" {
|
|||
|
||||
int writepasswd(void);
|
||||
void demographics(void);
|
||||
void immigration(void);
|
||||
void update_guards(void);
|
||||
void update_subscriptions(void);
|
||||
void deliverMail(struct faction *f, struct region *r, struct unit *u,
|
||||
|
|
Loading…
Reference in New Issue