mirror of
https://github.com/brmlab/brmlife.git
synced 2025-08-02 09:53:38 +02:00
Make herbs smell
This slightly changes herb growth patterns in forests as well, in order to keep energy balance
This commit is contained in:
parent
29fddde51c
commit
2041242142
3 changed files with 18 additions and 1 deletions
14
agent.cc
14
agent.cc
|
@ -191,6 +191,15 @@ spawn_herb(class tile &t)
|
|||
h->spawn_at(t);
|
||||
}
|
||||
|
||||
void
|
||||
herb::smell_herb(class tile &t)
|
||||
{
|
||||
/* Herb pheromone ("smell") #32768. */
|
||||
class pheromone p(32768, world::herb_phintensity);
|
||||
t.pheromones.secrete(p);
|
||||
chenergy(p.val * world::pheromone_cost);
|
||||
}
|
||||
|
||||
void
|
||||
herb::on_tick(void)
|
||||
{
|
||||
|
@ -204,5 +213,10 @@ herb::on_tick(void)
|
|||
spawn_herb(tile->tile_in_dir(0, -1));
|
||||
tile->on_agent_leave(*this);
|
||||
tile = NULL;
|
||||
} else {
|
||||
smell_herb(tile->tile_in_dir(1, 0));
|
||||
smell_herb(tile->tile_in_dir(0, 1));
|
||||
smell_herb(tile->tile_in_dir(-1, 0));
|
||||
smell_herb(tile->tile_in_dir(0, -1));
|
||||
}
|
||||
}
|
||||
|
|
2
agent.h
2
agent.h
|
@ -64,6 +64,8 @@ public:
|
|||
}
|
||||
|
||||
void on_tick(void);
|
||||
private:
|
||||
void smell_herb(class tile &);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
3
world.h
3
world.h
|
@ -15,13 +15,14 @@ struct world {
|
|||
const static int attack_idle_cost = -15; /* ... * attr.attack */
|
||||
const static int defense_idle_cost = -15; /* ... * attr.defense */
|
||||
const static int sun_energy = 10;
|
||||
const static int soil_energy = 10; /* ... times five for lone herbs, times one for dense forests */
|
||||
const static int soil_energy = 20; /* ... times five for lone herbs, times one for dense forests */
|
||||
|
||||
const static int dead_body_energy = 2000;
|
||||
const static double dead_body_energy_carryover = 0.5;
|
||||
const static int dead_decay = -50;
|
||||
|
||||
const static int herb_rate = 15; /* initially, one herb per herb_rate tiles */
|
||||
const static double herb_phintensity = 1.0;
|
||||
|
||||
const static double phseep_alpha = 0.1;
|
||||
const static double phseep_beta = 0.05;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue