public void MergeFrom(ChallengeBonus other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Id.Length != 0)
            {
                Id = other.Id;
            }
            if (other.Receiver != 0)
            {
                Receiver = other.Receiver;
            }
            if (other.TargetReward != 0)
            {
                TargetReward = other.TargetReward;
            }
            if (other.Modifier != 0F)
            {
                Modifier = other.Modifier;
            }
            switch (other.BonusKindCase)
            {
            case BonusKindOneofCase.PlayerCount:
                if (PlayerCount == null)
                {
                    PlayerCount = new global::WUProtos.Data.Player.PlayerCountChallengeBonus();
                }
                PlayerCount.MergeFrom(other.PlayerCount);
                break;

            case BonusKindOneofCase.FastCompletion:
                if (FastCompletion == null)
                {
                    FastCompletion = new global::WUProtos.Data.FastCompletionChallengeBonus();
                }
                FastCompletion.MergeFrom(other.FastCompletion);
                break;

            case BonusKindOneofCase.RuneLevel:
                if (RuneLevel == null)
                {
                    RuneLevel = new global::WUProtos.Data.RuneLevelChallengeBonus();
                }
                RuneLevel.MergeFrom(other.RuneLevel);
                break;

            case BonusKindOneofCase.DefeatedMobCount:
                if (DefeatedMobCount == null)
                {
                    DefeatedMobCount = new global::WUProtos.Data.DefeatedMobCountChallengeBonus();
                }
                DefeatedMobCount.MergeFrom(other.DefeatedMobCount);
                break;

            case BonusKindOneofCase.PlayerRatio:
                if (PlayerRatio == null)
                {
                    PlayerRatio = new global::WUProtos.Data.Player.PlayerRatioChallengeBonus();
                }
                PlayerRatio.MergeFrom(other.PlayerRatio);
                break;
            }

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