public void Run() { var myStrategyR1 = new MyStrategyRound1(); var debug = new Debug(writer); while (true) { ServerMessageGame message = ServerMessageGame.ReadFrom(reader); if (!message.PlayerView.HasValue) { break; } PlayerView playerView = message.PlayerView.Value; var actions = new Dictionary <int, UnitAction>(); foreach (var unit in playerView.Game.Units) { if (unit.PlayerId == playerView.MyId) { actions.Add(unit.Id, myStrategyR1.GetAction(unit, playerView.Game, debug)); } } new PlayerMessageGame.ActionMessage(new Versioned(actions)).WriteTo(writer); writer.Flush(); } }
public static ServerMessageGame ReadFrom(System.IO.BinaryReader reader) { var result = new ServerMessageGame(); if (reader.ReadBoolean()) { result.PlayerView = Model.PlayerView.ReadFrom(reader); } else { result.PlayerView = null; } return(result); }