// Get RewardList List <RewardInfo> GetPackageInfos(uint id, EPackageRewardType selectType = EPackageRewardType.None, DataPackageShop shop = null) { List <RewardInfo> infos = new List <RewardInfo>(); DataPackage package = DataPackage.GetByID(id); for (int i = 0; i < package.GetREWARD_TYPECount(); i++) { if (selectType != EPackageRewardType.None && selectType != (EPackageRewardType)package.GetPRICE_TYPE(i)) { continue; } RewardInfo info = new RewardInfo(); info.type = (EGoodsType)package.GetREWARD_TYPE(i); info.value = package.GetREWARD_VALUE(i); infos.Add(info); } if (shop != null && selectType == EPackageRewardType.Bonus) { RewardInfo bonus = ShopHelper.GetMonthlyBonus(shop); if (bonus != null) { RewardInfo searchInfo = infos.Find(x => x.type == bonus.type); if (searchInfo != null) // 같은 타입이면 갯수증가 { searchInfo.AddCount(bonus.GetCount()); } else // 다른 타입이면 리스트 추가 { infos.Add(bonus); } } } return(infos); }