Commit graph

41 commits

Author SHA1 Message Date
Petr Baudis
9baf771807 Incomp. Proto. Change: Maintain sync by prefixing client commands by tick id 2011-12-22 15:28:05 +01:00
Petr Baudis
091708f577 Incomp. Proto. Change: attack_dir gets <force> parameter 2011-12-22 00:12:45 +01:00
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
96208e93ba Pheromones: Merge tile and agent info in pheromones output 2011-12-08 00:10:09 +01:00
Petr Baudis
a821e72661 Introduce pheromones 2011-12-07 23:54:03 +01:00
Petr Baudis
61cc3ef015 connection::senses(): Clean up visual sending 2011-12-07 23:28:11 +01:00
Petr Baudis
56979634bf connection::thread_loop(): Detect read errors and end of file reliably 2011-11-30 01:52:04 +01:00
Petr Baudis
f161c02210 connection::cancel(): Enable cancelling ongoing loop 2011-11-30 01:51:45 +01:00
Petr Baudis
1fcd4e45b7 connection::senses(): Split to many smaller printfs 2011-11-30 01:40:33 +01:00
Petr Baudis
39b61175c1 connection::thread_loop(): Try different way to append to in_buf
We have seen mysterious crashes.
2011-11-29 23:48:53 +01:00
Petr Baudis
0a9b9f8840 visual: Enlarge neighborhood 2011-11-29 22:26:00 +01:00
Petr Baudis
12724c016d connection::thread_loop(): Try harder to catch dead sockets 2011-11-29 19:46:33 +01:00
Petr Baudis
04fc7b4b7a connection::actions(): Fix command masking 2011-11-29 19:32:08 +01:00
Petr Baudis
529c401457 connection::actions(): Do not permit multiple actions of the same kind per tick 2011-11-27 07:37:30 +01:00
Petr Baudis
b80ccfdffd Attack, defense rates 2011-11-27 05:18:52 +01:00
Petr Baudis
2907cb6791 Connection: Add 'move' attribute to the negotiation phase 2011-11-27 05:07:01 +01:00
Petr Baudis
9cf99e0bcd Connection: Add negotiation phase 2011-11-27 05:06:46 +01:00
Petr Baudis
85e143fd11 connection::bump(): Fix double locking 2011-11-27 05:05:57 +01:00
Petr Baudis
a36deeb1db Connection: Abstract out buf_incomplete() macro 2011-11-27 05:05:43 +01:00
Petr Baudis
0c29808836 Action attack_dir(): Implement, trivially random now 2011-11-27 04:10:53 +01:00
Petr Baudis
5efaafe983 Sense around -> visual 2011-11-27 03:44:14 +01:00
Petr Baudis
f0a603352f Sense around: Extended format describing agents explicitly 2011-11-27 03:43:45 +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
9dcb3c543a Connection: Use CRLF for output too 2011-11-27 03:16:47 +01:00
Petr Baudis
b969e91bd1 around: Show 8-neighborhood 2011-11-27 03:16:11 +01:00
Petr Baudis
77e555706b Send BUMP if move failed 2011-11-27 02:59:28 +01:00
Petr Baudis
64ea015a06 Support for agent death 2011-11-27 02:48:28 +01:00
Petr Baudis
f6221436a4 connection::thread_loop(): Do not write() if we have nothing to write 2011-11-27 02:40:57 +01:00
Petr Baudis
158ab85715 connection::thread_loop(): Break on zero reads 2011-11-27 02:33:24 +01:00
Petr Baudis
93882f79b9 Track agent energy
Base energy, move energy
2011-11-27 02:32:59 +01:00
Petr Baudis
d44c5f5b10 move_dir: Restrict to {-1,0,1} 2011-11-27 02:22:14 +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
6a3d9b2e4a Destroy agent on disconnect; another agent can connect later 2011-11-26 23:59:31 +01:00
Petr Baudis
978a080656 ~connection(): Close file descriptor 2011-11-26 23:43:52 +01:00
Petr Baudis
1ed67c81b6 Maintain and broadcast current tick id 2011-11-26 23:31:28 +01:00
Petr Baudis
6b3a51139a Support for (read-only) TCP connection agent communication 2011-11-26 23:24:06 +01:00