public void Decode(byte[] array)
        {
            reader = new KrosmagaReader();
            reader.SetData(array);
            int tag;

            while (reader.B.BaseStream.Position < reader.B.BaseStream.Length && (tag = reader.ReadTag()) != 0)
            {
                if (tag != 8)
                {
                    if (tag == 18)
                    {
                        Data.Uuid value = new Data.Uuid();
                        int       size  = (int)reader.ReadRawVarint32();
                        value.Decode(reader.ReadMessage(size));
                        LastSelectedDeck = value;
                        continue;
                    }
                }
                else
                {
                    God = (int)reader.ReadRawVarint32();
                }
            }
        }
示例#2
0
        public void Decode(byte[] array)
        {
            reader = new KrosmagaReader();
            reader.SetData(array);
            int tag;

            while (reader.B.BaseStream.Position < reader.B.BaseStream.Length && (tag = reader.ReadTag()) != 0)
            {
                if (tag <= 26)
                {
                    if (tag == 10)
                    {
                        Data.Uuid value = new Data.Uuid();
                        int       size  = (int)reader.ReadRawVarint32();
                        value.Decode(reader.ReadMessage(size));
                        LastSelectedDeckId = value;
                        continue;
                    }
                    if (tag == 26)
                    {
                        Data.Uuid value = new Data.Uuid();
                        int       size  = (int)reader.ReadRawVarint32();
                        value.Decode(reader.ReadMessage(size));
                        LastDungeonDeckId = value;
                        continue;
                    }
                }
                else if (tag != 32)
                {
                    if (tag == 42)
                    {
                        Data.CustomByGod value = new Data.CustomByGod();
                        int size = (int)reader.ReadRawVarint32();
                        value.Decode(reader.ReadMessage(size));
                        CustomByGodList.Add(value);
                        continue;
                    }
                    if (tag == 50)
                    {
                        Data.SelectedDeckByGod value = new Data.SelectedDeckByGod();
                        int size = (int)reader.ReadRawVarint32();
                        value.Decode(reader.ReadMessage(size));
                        SelectedDecksByGodId.Add(value);
                        continue;
                    }
                }
                else
                {
                    LastGameType1 = (Enums.GameType)Enum.Parse(typeof(Enums.GameType), reader.ReadRawVarint32().ToString());
                    continue;
                }
            }
        }
        public void Decode(byte[] array)
        {
            reader = new KrosmagaReader();
            reader.SetData(array);
            int tag;

            while (reader.B.BaseStream.Position < reader.B.BaseStream.Length && (tag = reader.ReadTag()) != 0)
            {
                if (tag <= 16)
                {
                    if (tag == 10)
                    {
                        Data.Uuid value = new Data.Uuid();
                        int       size  = (int)reader.ReadRawVarint32();
                        value.Decode(reader.ReadMessage(size));
                        Uuid1 = value;
                        continue;
                    }
                    if (tag == 16)
                    {
                        GodId = (int)reader.ReadRawVarint32();
                        continue;
                    }
                }
                else if (tag <= 34)
                {
                    if (tag == 26)
                    {
                        Name = reader.ReadString();
                        continue;
                    }
                    switch (tag)
                    {
                    case 32:
                    case 34:
                        int  size        = (int)reader.ReadRawVarint32();
                        long sizeInBytes = reader.B.BaseStream.Position + size;
                        while (reader.B.BaseStream.Position < sizeInBytes)
                        {
                            CardsWithQty1List.Add(reader.ReadRawVarint32());
                        }
                        continue;
                    }
                }
                else
                {
                    switch (tag)
                    {
                    case 40:
                    case 42:
                        int  size        = (int)reader.ReadRawVarint32();
                        long sizeInBytes = reader.B.BaseStream.Position + size;
                        while (reader.B.BaseStream.Position < sizeInBytes)
                        {
                            CardsWithQty2List.Add(reader.ReadRawVarint32());
                        }
                        continue;

                    case 41:
                        break;

                    default:
                        switch (tag)
                        {
                        case 48:
                        case 50:
                            int  size2        = (int)reader.ReadRawVarint32();
                            long sizeInBytes2 = reader.B.BaseStream.Position + size2;
                            while (reader.B.BaseStream.Position < sizeInBytes2)
                            {
                                CardsWithQty3List.Add(reader.ReadRawVarint32());
                            }
                            continue;
                        }
                        break;
                    }
                }
            }
        }