Commit graph

45 commits

Author SHA1 Message Date
Petr Baudis
177d41cf60 Incomp. Proto. Change: breeding_key -> breeding_key1, breeding_key2 2011-12-17 00:01:45 +01:00
Petr Baudis
23f2fce7ff Support for breeding
One party initiates the breeding; the other party exerts most of the
energy if its breeding key matches. It is that party's responsibility to
set up the newborn agent's connection (but the father can pass it an
arbitrary message). Newborn is spawned immediately but can be
renegotiated on first connect.
2011-12-08 03:14:57 +01:00
Petr Baudis
b693b5d6f4 connection::actions(): agent& -> agent*, more natural agent_id handling 2011-12-08 03:02:08 +01:00
Petr Baudis
8ae6051e97 Support reconnecting to agents
Agents do not die immediately on disconnect anymore. Instead, agent_id
is sent at birth and can be sent during negotiation to attach to a
disconnected agent.
2011-12-08 02:21:56 +01:00
Petr Baudis
343762c3bb Make herbs die properly on energy depletion 2011-12-08 00:26:20 +01:00
Petr Baudis
2041242142 Make herbs smell
This slightly changes herb growth patterns in forests as well, in order to keep energy balance
2011-12-07 23:55:37 +01:00
Petr Baudis
a821e72661 Introduce pheromones 2011-12-07 23:54:03 +01:00
Petr Baudis
7e994ba763 agent::attack_dir): Don't process herbs 2011-12-03 20:04:46 +01:00
Petr Baudis
56c30d4086 agent::attack_dir(): Do not deal instantkills, instead deduce just some amount of energy 2011-12-03 19:46:43 +01:00
Petr Baudis
ca7dbc3962 agent::attack_dir(): Cleanup 2011-12-03 19:25:39 +01:00
Petr Baudis
04a475efbe world::max_energy: Implement upper limit for agent's energy 2011-12-03 15:47:00 +01:00
Petr Baudis
5dcf54448e agent::on_action_takes(): Call die() only if not dead 2011-11-29 23:11:59 +01:00
Petr Baudis
a40cd4e87c agent::move_dir(): Make sure to properly detach eaten agent from a tile 2011-11-29 23:08:49 +01:00
Petr Baudis
9c4adb5a3a Preserve corpses of disconnected agents 2011-11-29 22:58:18 +01:00
Petr Baudis
fb3a8b64b2 Transform decayed agent to a herb 2011-11-29 22:50:35 +01:00
Petr Baudis
de392f4c7a Allow moving onto a herb, eating it 2011-11-27 07:53:59 +01:00
Petr Baudis
0e1243f86f Evolve herbs dynamically based on energy 2011-11-27 07:33:48 +01:00
Petr Baudis
b80ccfdffd Attack, defense rates 2011-11-27 05:18:52 +01:00
Petr Baudis
ceb16277fb world::move_idle_cost: Introduce, based on attr.move 2011-11-27 05:09:41 +01:00
Petr Baudis
2907cb6791 Connection: Add 'move' attribute to the negotiation phase 2011-11-27 05:07:01 +01:00
Petr Baudis
a151a2985d agent::on_tick(): Do nothing when not placed 2011-11-27 04:42:52 +01:00
Petr Baudis
812e0da79b agent::spawn(): Introduce 2011-11-27 04:30:18 +01:00
Petr Baudis
7714906baa agent::spawn_at(): Disassociate from constructor, allow tile == NULL 2011-11-27 04:28:16 +01:00
Petr Baudis
da3a988116 Introduce world::dead_body_energy_carryover 2011-11-27 04:12:51 +01:00
Petr Baudis
0c29808836 Action attack_dir(): Implement, trivially random now 2011-11-27 04:10:53 +01:00
Petr Baudis
0398856635 agent::chenergy(): Implement 2011-11-27 04:02:25 +01:00
Petr Baudis
e22c57c97f connnection::actions(): Take agent& 2011-11-27 03:25:16 +01:00
Petr Baudis
415475cd26 connnection::senses(): Sanitize interface, take just agent& 2011-11-27 03:24:40 +01:00
Petr Baudis
b969e91bd1 around: Show 8-neighborhood 2011-11-27 03:16:11 +01:00
Petr Baudis
4f13d0dd6f agent::move_dir(): If moving at dead agent, remove it from map and acquire its energy 2011-11-27 03:07:42 +01:00
Petr Baudis
e27a9fe2aa agent::move_dir(): Disallow movement of dead agent 2011-11-27 03:00:38 +01:00
Petr Baudis
de7a604e52 Dead bodies have (slowly decaying) energy 2011-11-27 02:54:58 +01:00
Petr Baudis
64ea015a06 Support for agent death 2011-11-27 02:48:28 +01:00
Petr Baudis
296f4148d3 Introduce sun energy (on-tick gain) 2011-11-27 02:34:28 +01:00
Petr Baudis
93882f79b9 Track agent energy
Base energy, move energy
2011-11-27 02:32:59 +01:00
Petr Baudis
de6a4d656f Support for command input
For starters, 'move_dir x y' command is supported.
2011-11-27 02:14:57 +01:00
Petr Baudis
92940b6054 Connection communication in separate thread 2011-11-27 01:24:52 +01:00
Petr Baudis
f0d0bef899 agent::on_senses_update(): Split off on_tick() 2011-11-27 00:33:05 +01:00
Petr Baudis
cd347a316d agent::conn: Do not assume being non-NULL
Disconnected agents will remain in the world in the future.
2011-11-26 23:54:05 +01:00
Petr Baudis
a645ba5758 agent::conn: Change to pointer, delete in ~agent() 2011-11-26 23:52:31 +01:00
Petr Baudis
1ed67c81b6 Maintain and broadcast current tick id 2011-11-26 23:31:28 +01:00
Petr Baudis
3d485518b0 agent::on_tick(): Introduce 2011-11-26 23:26:01 +01:00
Petr Baudis
b305a41cfc agent::move_dir(): Implement 2011-11-26 20:40:22 +01:00
Petr Baudis
56726a6c05 Get rid of class position 2011-11-26 20:40:05 +01:00
Petr Baudis
32dc354e60 Create an agent 2011-11-26 19:41:03 +01:00