forked from github/server
Neue Option für schnelleres Samenwachstum.
This commit is contained in:
parent
cc5e062b68
commit
8fbcf3f379
1 changed files with 26 additions and 8 deletions
34
src/laws.c
34
src/laws.c
|
@ -598,15 +598,27 @@ static int cap_int(int i, int imin, int imax) {
|
||||||
return imin;
|
return imin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
increased_growth(const region* r, const struct race *rc_elf) {
|
||||||
|
const unit* u;
|
||||||
|
for (u = r->units; u; u = u->next) {
|
||||||
|
if (u_race(u) != rc_elf) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
growing_trees(region * r, const season_t current_season, const season_t last_weeks_season)
|
growing_trees(region * r, const season_t current_season, const season_t last_weeks_season, int rules)
|
||||||
{
|
{
|
||||||
int grownup_trees, i, seeds, sprout;
|
int grownup_trees, i, seeds, sprout;
|
||||||
attrib *a;
|
attrib *a;
|
||||||
double seedchance = config_get_flt("rules.treeseeds.chance", 0.01F) * RESOURCE_QUANTITY;
|
double seedchance = config_get_flt("rules.treeseeds.chance", 0.01F) * RESOURCE_QUANTITY;
|
||||||
|
|
||||||
if (current_season == SEASON_SUMMER || current_season == SEASON_AUTUMN) {
|
if (current_season == SEASON_SUMMER || current_season == SEASON_AUTUMN) {
|
||||||
int mp, elves = count_race(r, get_race(RC_ELF));
|
const struct race* rc_elf = get_race(RC_ELF);
|
||||||
|
int mp, elves = count_race(r, rc_elf);
|
||||||
direction_t d;
|
direction_t d;
|
||||||
|
|
||||||
a = a_find(r->attribs, &at_germs);
|
a = a_find(r->attribs, &at_germs);
|
||||||
|
@ -644,6 +656,12 @@ growing_trees(region * r, const season_t current_season, const season_t last_wee
|
||||||
++seeds;
|
++seeds;
|
||||||
}
|
}
|
||||||
if (seeds > 0) {
|
if (seeds > 0) {
|
||||||
|
if (rules > 2) {
|
||||||
|
if (increased_growth(r, rc_elf)) {
|
||||||
|
/* in empty regions, plant twice the seeds */
|
||||||
|
seeds += seeds;
|
||||||
|
}
|
||||||
|
}
|
||||||
seeds += rtrees(r, 0);
|
seeds += rtrees(r, 0);
|
||||||
rsettrees(r, 0, seeds);
|
rsettrees(r, 0, seeds);
|
||||||
}
|
}
|
||||||
|
@ -803,7 +821,7 @@ void nmr_warnings(void)
|
||||||
void demographics(void)
|
void demographics(void)
|
||||||
{
|
{
|
||||||
region *r;
|
region *r;
|
||||||
int plant_rules = config_get_int("rules.grow.formula", 2);
|
int plant_rules = config_get_int("rules.grow.formula", 3);
|
||||||
int horse_rules = config_get_int("rules.horses.growth", 1);
|
int horse_rules = config_get_int("rules.horses.growth", 1);
|
||||||
int peasant_rules = config_get_int("rules.peasants.growth", 1);
|
int peasant_rules = config_get_int("rules.peasants.growth", 1);
|
||||||
const struct building_type *bt_harbour = bt_find("harbour");
|
const struct building_type *bt_harbour = bt_find("harbour");
|
||||||
|
@ -850,13 +868,13 @@ void demographics(void)
|
||||||
if (horse_rules > 0) {
|
if (horse_rules > 0) {
|
||||||
horses(r);
|
horses(r);
|
||||||
}
|
}
|
||||||
if (plant_rules == 2) { /* E2 */
|
if (plant_rules==1) { /* E3 */
|
||||||
growing_trees(r, current_season, last_weeks_season);
|
|
||||||
growing_herbs(r, current_season, last_weeks_season);
|
|
||||||
}
|
|
||||||
else if (plant_rules==1) { /* E3 */
|
|
||||||
growing_trees_e3(r, current_season, last_weeks_season);
|
growing_trees_e3(r, current_season, last_weeks_season);
|
||||||
}
|
}
|
||||||
|
else { /* E2 */
|
||||||
|
growing_trees(r, current_season, last_weeks_season, plant_rules);
|
||||||
|
growing_herbs(r, current_season, last_weeks_season);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
update_resources(r);
|
update_resources(r);
|
||||||
|
|
Loading…
Reference in a new issue