예제 #1
0
        public void Handle(ClientSession session, IncomingMessage message)
        {
            MultiplayerMatch match = session.MultiplayerMatchSession?.Match;

            if (match != null)
            {
                MatchPlayer matchPlayer = session.MultiplayerMatchSession.MatchPlayer;

                UpdateStatus status = (UpdateStatus)message.ReadUInt();
                if (status.HasFlag(UpdateStatus.X))
                {
                    matchPlayer.X = message.ReadDouble();
                }

                if (status.HasFlag(UpdateStatus.Y))
                {
                    matchPlayer.Y = message.ReadDouble();
                }

                if (status.HasFlag(UpdateStatus.VelX))
                {
                    matchPlayer.VelX = message.ReadFloat();
                }

                if (status.HasFlag(UpdateStatus.VelY))
                {
                    matchPlayer.VelY = message.ReadFloat();
                }

                if (status.HasFlag(UpdateStatus.ScaleX))
                {
                    matchPlayer.ScaleX = message.ReadByte();
                }

                if (status.HasFlag(UpdateStatus.Space))
                {
                    matchPlayer.Space = message.ReadBool();
                }

                if (status.HasFlag(UpdateStatus.Left))
                {
                    matchPlayer.Left = message.ReadBool();
                }

                if (status.HasFlag(UpdateStatus.Right))
                {
                    matchPlayer.Right = message.ReadBool();
                }

                if (status.HasFlag(UpdateStatus.Down))
                {
                    matchPlayer.Down = message.ReadBool();
                }

                if (status.HasFlag(UpdateStatus.Up))
                {
                    matchPlayer.Up = message.ReadBool();
                }

                if (status.HasFlag(UpdateStatus.Speed))
                {
                    matchPlayer.Speed = message.ReadInt();
                }

                if (status.HasFlag(UpdateStatus.Accel))
                {
                    matchPlayer.Accel = message.ReadInt();
                }

                if (status.HasFlag(UpdateStatus.Jump))
                {
                    matchPlayer.Jump = message.ReadInt();
                }

                if (status.HasFlag(UpdateStatus.Rot))
                {
                    matchPlayer.Rot = message.ReadInt();
                }

                if (status.HasFlag(UpdateStatus.Item))
                {
                    matchPlayer.Item = message.ReadString();
                }

                if (status.HasFlag(UpdateStatus.Life))
                {
                    matchPlayer.Life = message.ReadUInt();
                }

                if (status.HasFlag(UpdateStatus.Hurt))
                {
                    matchPlayer.Hurt = message.ReadBool();
                }

                if (status.HasFlag(UpdateStatus.Coins))
                {
                    matchPlayer.Coins = message.ReadUInt();
                }

                match.SendUpdateIfRequired(session, matchPlayer);
            }
        }