public void MergeFrom(CollectionFamily other)
 {
     if (other == null)
     {
         return;
     }
     if (other.Id.Length != 0)
     {
         Id = other.Id;
     }
     if (other.FamilyType != 0)
     {
         FamilyType = other.FamilyType;
     }
     items_.Add(other.items_);
     levels_.Add(other.levels_);
     pages_.Add(other.pages_);
     if (other.FamilyRuneName.Length != 0)
     {
         FamilyRuneName = other.FamilyRuneName;
     }
     if (other.FamilyRankTableId.Length != 0)
     {
         FamilyRankTableId = other.FamilyRankTableId;
     }
     returnedRewards_.Add(other.returnedRewards_);
     runeId_.Add(other.runeId_);
     apexItems_.Add(other.apexItems_);
     if (other.unlockRequirements_ != null)
     {
         if (unlockRequirements_ == null)
         {
             UnlockRequirements = new global::WUProtos.Data.Requirements();
         }
         UnlockRequirements.MergeFrom(other.UnlockRequirements);
     }
     if (other.SubfeatureType != 0)
     {
         SubfeatureType = other.SubfeatureType;
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;

            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;

                case 10: {
                    Id = input.ReadString();
                    break;
                }

                case 16: {
                    FamilyType = (global::WUProtos.Enums.CollectionFamilyType)input.ReadEnum();
                    break;
                }

                case 26: {
                    items_.AddEntriesFrom(input, _repeated_items_codec);
                    break;
                }

                case 34: {
                    levels_.AddEntriesFrom(input, _repeated_levels_codec);
                    break;
                }

                case 42: {
                    pages_.AddEntriesFrom(input, _repeated_pages_codec);
                    break;
                }

                case 50: {
                    FamilyRuneName = input.ReadString();
                    break;
                }

                case 58: {
                    FamilyRankTableId = input.ReadString();
                    break;
                }

                case 66: {
                    returnedRewards_.AddEntriesFrom(input, _repeated_returnedRewards_codec);
                    break;
                }

                case 74: {
                    runeId_.AddEntriesFrom(input, _repeated_runeId_codec);
                    break;
                }

                case 82: {
                    apexItems_.AddEntriesFrom(input, _repeated_apexItems_codec);
                    break;
                }

                case 90: {
                    if (unlockRequirements_ == null)
                    {
                        UnlockRequirements = new global::WUProtos.Data.Requirements();
                    }
                    input.ReadMessage(UnlockRequirements);
                    break;
                }

                case 96: {
                    SubfeatureType = (global::WUProtos.Data.Collection.CollectionFamily.Types.SubfeatureType)input.ReadEnum();
                    break;
                }
                }
            }
        }