Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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);
        }
    }