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: {
                    global::WUProtos.Data.VaultItemLootReward subBuilder = new global::WUProtos.Data.VaultItemLootReward();
                    if (rewardDataCase_ == RewardDataOneofCase.ItemReward)
                    {
                        subBuilder.MergeFrom(ItemReward);
                    }
                    input.ReadMessage(subBuilder);
                    ItemReward = subBuilder;
                    break;
                }

                case 18: {
                    global::WUProtos.Data.Collection.CollectionFamilyLootReward subBuilder = new global::WUProtos.Data.Collection.CollectionFamilyLootReward();
                    if (rewardDataCase_ == RewardDataOneofCase.CollectionFamilyReward)
                    {
                        subBuilder.MergeFrom(CollectionFamilyReward);
                    }
                    input.ReadMessage(subBuilder);
                    CollectionFamilyReward = subBuilder;
                    break;
                }

                case 26: {
                    global::WUProtos.Data.Collection.CollectionItemReward subBuilder = new global::WUProtos.Data.Collection.CollectionItemReward();
                    if (rewardDataCase_ == RewardDataOneofCase.CollectionReward)
                    {
                        subBuilder.MergeFrom(CollectionReward);
                    }
                    input.ReadMessage(subBuilder);
                    CollectionReward = subBuilder;
                    break;
                }

                case 34: {
                    global::WUProtos.Data.WalkboxReward subBuilder = new global::WUProtos.Data.WalkboxReward();
                    if (rewardDataCase_ == RewardDataOneofCase.WalkboxReward)
                    {
                        subBuilder.MergeFrom(WalkboxReward);
                    }
                    input.ReadMessage(subBuilder);
                    WalkboxReward = subBuilder;
                    break;
                }

                case 42: {
                    global::WUProtos.Data.PortkeyReward subBuilder = new global::WUProtos.Data.PortkeyReward();
                    if (rewardDataCase_ == RewardDataOneofCase.PortkeyReward)
                    {
                        subBuilder.MergeFrom(PortkeyReward);
                    }
                    input.ReadMessage(subBuilder);
                    PortkeyReward = subBuilder;
                    break;
                }

                case 50: {
                    global::WUProtos.Data.Loot.LootTableReward subBuilder = new global::WUProtos.Data.Loot.LootTableReward();
                    if (rewardDataCase_ == RewardDataOneofCase.LootTableReward)
                    {
                        subBuilder.MergeFrom(LootTableReward);
                    }
                    input.ReadMessage(subBuilder);
                    LootTableReward = subBuilder;
                    break;
                }

                case 58: {
                    global::WUProtos.Data.VaultCapacityLootReward subBuilder = new global::WUProtos.Data.VaultCapacityLootReward();
                    if (rewardDataCase_ == RewardDataOneofCase.VaultCapacityReward)
                    {
                        subBuilder.MergeFrom(VaultCapacityReward);
                    }
                    input.ReadMessage(subBuilder);
                    VaultCapacityReward = subBuilder;
                    break;
                }

                case 66: {
                    global::WUProtos.Data.GenericRunestoneReward subBuilder = new global::WUProtos.Data.GenericRunestoneReward();
                    if (rewardDataCase_ == RewardDataOneofCase.GenericRunestone)
                    {
                        subBuilder.MergeFrom(GenericRunestone);
                    }
                    input.ReadMessage(subBuilder);
                    GenericRunestone = subBuilder;
                    break;
                }

                case 74: {
                    global::WUProtos.Data.Potion.PotionReward subBuilder = new global::WUProtos.Data.Potion.PotionReward();
                    if (rewardDataCase_ == RewardDataOneofCase.PotionReward)
                    {
                        subBuilder.MergeFrom(PotionReward);
                    }
                    input.ReadMessage(subBuilder);
                    PotionReward = subBuilder;
                    break;
                }

                case 82: {
                    global::WUProtos.Data.PortkeyCollectibleReward subBuilder = new global::WUProtos.Data.PortkeyCollectibleReward();
                    if (rewardDataCase_ == RewardDataOneofCase.PortkeyCollectible)
                    {
                        subBuilder.MergeFrom(PortkeyCollectible);
                    }
                    input.ReadMessage(subBuilder);
                    PortkeyCollectible = subBuilder;
                    break;
                }

                case 90: {
                    global::WUProtos.Data.GenericCollectionFamilyLootReward subBuilder = new global::WUProtos.Data.GenericCollectionFamilyLootReward();
                    if (rewardDataCase_ == RewardDataOneofCase.GenericCollectionFamilyReward)
                    {
                        subBuilder.MergeFrom(GenericCollectionFamilyReward);
                    }
                    input.ReadMessage(subBuilder);
                    GenericCollectionFamilyReward = subBuilder;
                    break;
                }

                case 98: {
                    global::WUProtos.Data.CauldronReward subBuilder = new global::WUProtos.Data.CauldronReward();
                    if (rewardDataCase_ == RewardDataOneofCase.CauldronReward)
                    {
                        subBuilder.MergeFrom(CauldronReward);
                    }
                    input.ReadMessage(subBuilder);
                    CauldronReward = subBuilder;
                    break;
                }

                case 106: {
                    global::WUProtos.Data.CurrencyReward subBuilder = new global::WUProtos.Data.CurrencyReward();
                    if (rewardDataCase_ == RewardDataOneofCase.CurrencyReward)
                    {
                        subBuilder.MergeFrom(CurrencyReward);
                    }
                    input.ReadMessage(subBuilder);
                    CurrencyReward = subBuilder;
                    break;
                }

                case 114: {
                    global::WUProtos.Data.QuestReward subBuilder = new global::WUProtos.Data.QuestReward();
                    if (rewardDataCase_ == RewardDataOneofCase.QuestReward)
                    {
                        subBuilder.MergeFrom(QuestReward);
                    }
                    input.ReadMessage(subBuilder);
                    QuestReward = subBuilder;
                    break;
                }

                case 810: {
                    if (bonusMetadata_ == null)
                    {
                        BonusMetadata = new global::WUProtos.Data.BonusMetadata();
                    }
                    input.ReadMessage(BonusMetadata);
                    break;
                }
                }
            }
        }
        public void MergeFrom(LootReward other)
        {
            if (other == null)
            {
                return;
            }
            if (other.bonusMetadata_ != null)
            {
                if (bonusMetadata_ == null)
                {
                    BonusMetadata = new global::WUProtos.Data.BonusMetadata();
                }
                BonusMetadata.MergeFrom(other.BonusMetadata);
            }
            switch (other.RewardDataCase)
            {
            case RewardDataOneofCase.ItemReward:
                if (ItemReward == null)
                {
                    ItemReward = new global::WUProtos.Data.VaultItemLootReward();
                }
                ItemReward.MergeFrom(other.ItemReward);
                break;

            case RewardDataOneofCase.CollectionFamilyReward:
                if (CollectionFamilyReward == null)
                {
                    CollectionFamilyReward = new global::WUProtos.Data.Collection.CollectionFamilyLootReward();
                }
                CollectionFamilyReward.MergeFrom(other.CollectionFamilyReward);
                break;

            case RewardDataOneofCase.CollectionReward:
                if (CollectionReward == null)
                {
                    CollectionReward = new global::WUProtos.Data.Collection.CollectionItemReward();
                }
                CollectionReward.MergeFrom(other.CollectionReward);
                break;

            case RewardDataOneofCase.WalkboxReward:
                if (WalkboxReward == null)
                {
                    WalkboxReward = new global::WUProtos.Data.WalkboxReward();
                }
                WalkboxReward.MergeFrom(other.WalkboxReward);
                break;

            case RewardDataOneofCase.PortkeyReward:
                if (PortkeyReward == null)
                {
                    PortkeyReward = new global::WUProtos.Data.PortkeyReward();
                }
                PortkeyReward.MergeFrom(other.PortkeyReward);
                break;

            case RewardDataOneofCase.LootTableReward:
                if (LootTableReward == null)
                {
                    LootTableReward = new global::WUProtos.Data.Loot.LootTableReward();
                }
                LootTableReward.MergeFrom(other.LootTableReward);
                break;

            case RewardDataOneofCase.VaultCapacityReward:
                if (VaultCapacityReward == null)
                {
                    VaultCapacityReward = new global::WUProtos.Data.VaultCapacityLootReward();
                }
                VaultCapacityReward.MergeFrom(other.VaultCapacityReward);
                break;

            case RewardDataOneofCase.GenericRunestone:
                if (GenericRunestone == null)
                {
                    GenericRunestone = new global::WUProtos.Data.GenericRunestoneReward();
                }
                GenericRunestone.MergeFrom(other.GenericRunestone);
                break;

            case RewardDataOneofCase.PotionReward:
                if (PotionReward == null)
                {
                    PotionReward = new global::WUProtos.Data.Potion.PotionReward();
                }
                PotionReward.MergeFrom(other.PotionReward);
                break;

            case RewardDataOneofCase.PortkeyCollectible:
                if (PortkeyCollectible == null)
                {
                    PortkeyCollectible = new global::WUProtos.Data.PortkeyCollectibleReward();
                }
                PortkeyCollectible.MergeFrom(other.PortkeyCollectible);
                break;

            case RewardDataOneofCase.GenericCollectionFamilyReward:
                if (GenericCollectionFamilyReward == null)
                {
                    GenericCollectionFamilyReward = new global::WUProtos.Data.GenericCollectionFamilyLootReward();
                }
                GenericCollectionFamilyReward.MergeFrom(other.GenericCollectionFamilyReward);
                break;

            case RewardDataOneofCase.CauldronReward:
                if (CauldronReward == null)
                {
                    CauldronReward = new global::WUProtos.Data.CauldronReward();
                }
                CauldronReward.MergeFrom(other.CauldronReward);
                break;

            case RewardDataOneofCase.CurrencyReward:
                if (CurrencyReward == null)
                {
                    CurrencyReward = new global::WUProtos.Data.CurrencyReward();
                }
                CurrencyReward.MergeFrom(other.CurrencyReward);
                break;

            case RewardDataOneofCase.QuestReward:
                if (QuestReward == null)
                {
                    QuestReward = new global::WUProtos.Data.QuestReward();
                }
                QuestReward.MergeFrom(other.QuestReward);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }