/// <summary> /// Initializes a new instance of the <see cref="LilaGame"/> class. /// </summary> /// <param name="c">The c.</param> /// <param name="socket">The socket.</param> /// <param name="gameData">The game data.</param> internal LilaGame(LilaClient c, LilaSocket socket, GameData gameData) { gamePing = new PPingVersion(0); Version = gameData.Player.Version; curClock = new ClockData { White = gameData.Clock.White, Black = gameData.Clock.Black }; Client = c; this.socket = socket; this.gameData = gameData; socket.OnDisconnect += OnDisconnect; socket.AddHandler <MPong>(OnPong); socket.AddHandler <MMove>(OnMove); socket.AddHandler <MGameMessages>(OnGameEvent); socket.AddHandler <MReload>(OnReload); socket.AddHandler <MMessage>(OnMessage); socket.AddHandler <MEnd>(OnEnd); socket.AddHandler <MEndData>(OnEndData); socket.AddHandler <MTakebackOffer>(OnTakebackOffer); socket.AddHandler <MAck>(OnAck); socket.AddHandler <MGone>(OnGone); socket.AddHandler <MCrowd>(OnCrowd); socket.AddHandler <MClock>(OnClock); socket.AddHandler <MChallenges>(OnChallenges); socket.AddHandler <MResync>(OnResync); socket.AddHandler <MRoundRedirect>(OnRedirect); socket.AddHandler <MCheckCount>(OnCheckCount); socket.AddHandler <MTournamentReminder>(OnReminder); socket.AddHandler <MBerserk>(OnBerserk); socket.AddHandler <MClockIncrement>(OnClockInc); socket.AddHandler <MTournamentStandings>(OnStandings); socket.AddHandler <MDeployPre>(OnDeployPre); socket.AddVersionHandler <MVersion>(OnVersion); SendPing(); socket.SchedulePacket(gamePing, 1000); random = new Random(); }