Assimilation is an altered version of tag where the teams grow
- On creation each agent is assigned a team(color)
- Agents are able to fire their color in the form of bullets at other agents
- If an Agent is hit by a bullet it becomes an agent of that team
- Initialize Server
- If no agents wait for agents to join
2a) When someone joins (Observer or Agent)
- Add to subscriber list
- Send current state
- Send all agents AgentMove msg
- Kill Agents if they don't move in time/timeout?
- Wait for all msgs to return
- Update map
- Kill any agents that intersect?
- Update each item location. Check for interactions if items intersect
- Generate joined agents at random non-intersecting location
- Remove any bots that have quit
- Send MapUpdate to Observers and Agents
- if no ACK remove from list
- Go back to 2