public void SetDone()
    {
        String     key   = DateTime.Now.ToShortDateString();
        DailyModel model = m_pDb.GetDailyState(key);
        Boolean    ret   = model.MissionComplete(Id);

        if (ret)
        {
            PocketModule pocket = m_pDb.GetPocketModel();
            pocket.Point.UpdatePoint(Award);

            List <DailyMissionAssociatedAchievementModel> assolist = m_pModel.AssociatedAchievementModelList;
            foreach (DailyMissionAssociatedAchievementModel tmp in assolist)
            {
                AchievementGroupModel achi_model = m_pDb.GetAchievementsModel().GetAchievementGroup(tmp.AchievementId);
                if (achi_model != null)
                {
                    achi_model.SetProgress(tmp.Progress);
                }
            }

            DateTime          time     = DateTime.Now;
            GregorianCalendar calendar = new GregorianCalendar();
            int    weekOfYears         = calendar.GetWeekOfYear(time, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
            String weekKey             = time.Year + "-" + weekOfYears;

            WeeksModel weekModel = m_pDb.GetWeekyState(weekKey);
            weekModel.UpdateProgress(Award);
        }
    }
Ejemplo n.º 2
0
    public AchievementsModel(XmlNode node, Database db)
    {
        m_pGroupList = new List <AchievementGroupModel>();

        XmlNodeList nodelist = node.SelectNodes(@"achievement_group");

        foreach (XmlNode tmp in nodelist)
        {
            AchievementGroupModel m = new AchievementGroupModel(tmp, db);
            m_pGroupList.Add(m);
            m_pGroupList.Sort();
        }
    }
Ejemplo n.º 3
0
    public AchievementGroupModel GetAchievementGroup(Int32 GroupId)
    {
        AchievementGroupModel ret = null;

        foreach (AchievementGroupModel tmp in AchievementGroupList)
        {
            if (tmp.Id == GroupId)
            {
                ret = tmp;
                break;
            }
        }

        return(ret);
    }
Ejemplo n.º 4
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);
        }
    }
Ejemplo n.º 5
0
 public AchievementGroupController(AchievementGroupModel model, MainDatabase db)
 {
     m_pModel = model;
     m_pDb    = db;
 }