Exemple #1
0
        public virtual void RefreshActivity(OperationActivity data)
        {
            Items.Clear();
            bool dirty = false;
            var  list  = data.ItemList;

            for (int i = 0; i < list.Count; i++)
            {
                var item = list[i];
                DBOperActivityItem db = null;
                if (i >= mDBData.Items.Count)
                {
                    db = new DBOperActivityItem();
                    mDBData.Items.Add(db);
                    dirty = true;
                }
                else
                {
                    db = mDBData.Items[i];
                }
                var actItem = MakeItem(item, db, StartTime);

                Items.Add(actItem);
                AddChild(actItem);
            }

            if (dirty)
            {
                MarkDbDirty();
            }
        }
Exemple #2
0
        private PlayerOperationActivityItem MakeItem(OperationActivityItem item, DBOperActivityItem db, DateTime time)
        {
            var ret = new PlayerOperationActivityItem();

            ret.mDBData    = db;
            ret.Id         = item.Id;
            ret.Need       = (ulong)item.Params[0];
            ret.TotalTimes = item.TotalTimes;
            ret.Condition  = item.Condition;
            if (-1 == item.OpenDelayDays)
            {
                ret.Begin       = DateTime.MinValue;
                ret.RewardBegin = ret.Begin;
                ret.End         = DateTime.MaxValue;
            }
            else
            {
                ret.Begin       = time.Date.AddDays(item.OpenDelayDays);
                ret.RewardBegin = time.Date.AddDays(item.RewardOpenDelay);
                if (ret.Begin > ret.RewardBegin)
                {
                    ret.RewardBegin = ret.Begin;
                }
                ret.End = ret.Begin.AddDays(item.LastDays);
            }

            ret.Params    = item.Params;
            ret.StrParams = item.StrParams;
            var idx = Controller.GetRole();

            if (idx >= 0 && idx < item.Rewards.Count())
            {
                ret.Rewards = item.Rewards[idx];
            }


            return(ret);
        }