private QuestRewardItemGroup BuildItemGroup(QuestRewardGroupType type, string itemPrefix, string countPrefix, string stainPrefix, string hqPrefix, int count) { List <QuestRewardItem> items = new List <QuestRewardItem>(); for (int i = 0; i < count; ++i) { Item itm = Quest.As <Item>(itemPrefix, i); int c = Quest.AsInt32(countPrefix, i); if (itm == null || itm.Key == 0 || c == 0) { continue; } Stain s = null; if (stainPrefix != null) { s = Quest.As <Stain>(stainPrefix, i); } bool isHq = false; if (hqPrefix != null) { isHq = Quest.AsBoolean(hqPrefix, i); } items.Add(new QuestRewardItem(itm, c, s, isHq)); } return(new QuestRewardItemGroup(items, type, null)); }