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