public AwardBoxModel(XmlNode node, Database db) : base(node, db) { m_pItemList = new List <AwardItemModel>(); XmlNodeList nodelist = node.SelectNodes(@"award_item"); foreach (XmlNode tmp in nodelist) { AwardItemModel model = new AwardItemModel(tmp, db); m_pItemList.Add(model); } }
public Boolean OpenBox(ref String ItemName) { PocketModule pocket = m_pDb.GetPocketModel(); Int32 delta = -1 * Cost; if (pocket.Point.UpdatePoint(delta)) { Int32 TotalWeight = 0; List <AwardItemModel> list = m_pModel.ItemList; foreach (AwardItemModel tmp in list) { TotalWeight += tmp.Weight; } Random r = new Random(); Int32 result = r.Next(TotalWeight); AwardItemModel SelectItem = null; foreach (AwardItemModel tmp in list) { result -= tmp.Weight; if (result <= 0) { SelectItem = tmp; break; } } AchievementsModel achi_model = m_pDb.GetAchievementsModel(); AchievementGroupModel group = achi_model.GetAchievementGroup(ModelParam.AWARD_BOX_ACHIEVEMENT); group.SetProgress(1); Int32 Item_id = SelectItem.ItemId; Int32 Count = SelectItem.Number; if (Item_id >= 0) { ItemModel item = m_pDb.GetItemModel(Item_id); ItemName = item.Description + Count + "个"; List <PocketItemModule> itemlist = pocket.ItemList; foreach (PocketItemModule tmp in itemlist) { if (tmp.Id == Item_id) { tmp.UpdateNumber(Count); } } } else { ItemName = SelectItem.ItemName; } return(true); } else { return(false); } }