private void ParseMessage(byte[] buf) { switch (buf[1]) { case (byte)MessageType.Time: { var time = ParseTime(buf, 2); //Debug.WriteLine("Received time: {0}:{1}:{2}.{3}.", time.Hours, time.Minutes, time.Seconds, time.Milliseconds); lock (currentTimeLock) { currentTime = time; } } break; case (byte)MessageType.Event: { var eventType = buf[2]; var time = ParseTime(buf, 3); switch (eventType) { case (byte)EventType.GameEnd: { var ev = new GameEndEvent() { Time = time }; lock (eventsLock) { events.Add(ev); } Debug.WriteLine("Received a game end event: {0}:{1}:{2}.{3}.", time.Hours, time.Minutes, time.Seconds, time.Milliseconds); } break; case (byte)EventType.MapChange: { var len = BitConverter.ToInt32(buf, 11); string map = System.Text.Encoding.ASCII.GetString(buf, 15, len); var ev = new MapChangeEvent { Time = time, Map = map }; lock (eventsLock) { events.Add(ev); } Debug.WriteLine("Received a map change event: {0}:{1}:{2}.{3}; {4}.", time.Hours, time.Minutes, time.Seconds, time.Milliseconds, map); } break; case (byte)EventType.TimerReset: { var ev = new TimerResetEvent() { Time = time }; lock (eventsLock) { events.Add(ev); } Debug.WriteLine("Received a timer reset event: {0}:{1}:{2}.{3}.", time.Hours, time.Minutes, time.Seconds, time.Milliseconds); } break; case (byte)EventType.TimerStart: { var ev = new TimerStartEvent() { Time = time }; lock (eventsLock) { events.Add(ev); } Debug.WriteLine("Received a timer start event: {0}:{1}:{2}.{3}.", time.Hours, time.Minutes, time.Seconds, time.Milliseconds); } break; case (byte)EventType.BS_ALeapOfFaith: { var ev = new BS_ALeapOfFaithEvent() { Time = time }; lock (eventsLock) { events.Add(ev); } Debug.WriteLine("Received a BS A Leap of Faith event: {0}:{1}:{2}.{3}.", time.Hours, time.Minutes, time.Seconds, time.Milliseconds); } break; default: Debug.WriteLine("Received an unknown event type: " + buf[2]); break; } } break; default: Debug.WriteLine("Received an unknown message type: " + buf[1]); break; } }
private void Start(TimerStartEvent e) { Start(); }
void Awake() { timerFinishedEvent = new TimerFinishedEvent(); timerStartEvent = new TimerStartEvent(); }