Пример #1
0
        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;
            }
        }
Пример #2
0
 private void Start(TimerStartEvent e)
 {
     Start();
 }
Пример #3
0
 void Awake()
 {
     timerFinishedEvent = new TimerFinishedEvent();
     timerStartEvent    = new TimerStartEvent();
 }