コード例 #1
0
    public void SetData(MonthSignAwardVO vO)
    {
        _vip = transform.Find("VIP").gameObject;


        _day         = transform.GetText("DayBg/Text");
        _icon        = transform.GetRawImage("AwardIcon");
        _mask        = transform.Find("Mask");
        _retroactive = _mask.Find("Retroactive");
        _noGet       = _mask.Find("NotGet");
        _alreadyGet  = _mask.Find("AlreadyGet");
        _curMayGet   = _mask.Find("CurMayGet");
        _num         = transform.GetText("NumBg/Text");

        foreach (var t in vO.Awards)
        {
            _icon.texture = ResourceManager.Load <Texture>(t.IconPath, ModuleConfig.MODULE_ACTIVITY, true);
            _num.text     = t.Num.ToString();
        }

        _day.text = vO.Id.ToString();

        OnClick(vO);
        _vip.SetActive(vO.IsShowVipImage);
    }
コード例 #2
0
    private void MonthRetroactive(MonthSignAwardVO vO)
    {
        //先判断是否还有补签次数
        var maxSignNum = _model.GetMonthSignBuysNum();
        var curSignNum = _model.BuyCounts;

        if (curSignNum >= maxSignNum)
        {
            FlowText.ShowMessage(I18NManager.Get("Activity_Hint4"));  //本月无剩余签到次数
            return;
        }
        var pB = _model.GetMonthSignBuysRule(curSignNum);

        if (_window == null)
        {
            _window = PopupManager.ShowWindow <MonthRetroactiveWindow>("Activity/Prefabs/MonthRetroactiveWindow");
            _window.SetData(pB.Gem, maxSignNum - curSignNum);
            _window.WindowActionCallback = evt =>
            {
                if (evt == WindowEvent.Yes)
                {
                    SendMonthSignBuyReq(vO);
                }
            };
        }
    }
コード例 #3
0
    /// <summary>
    /// 初始化月签奖励
    /// </summary>
    private void InitMonthSignAwards()
    {
        _monthSignAwards = new List <MonthSignAwardVO>();

        int monthDays    = 0;            //月的天数
        int index        = _starDay - 1; //11号的下标索引
        int toDayIdIndex = 0;

        var dt           = DateUtil.GetTodayDt();
        var curTimeStamp = ClientTimer.Instance.GetCurrentTimeStamp();
        var sixTimeStamp = DateUtil.GetNotTimezoneTimeStamp(new DateTime(dt.Year, dt.Month, _starDay, 6, 0, 0));

        if (curTimeStamp < sixTimeStamp)                                           //自然日期小于11号的6点,是上个月
        {
            var lastMonthDt = dt.AddMonths(-1);                                    //获取上个月的DT
            monthDays = DateTime.DaysInMonth(lastMonthDt.Year, lastMonthDt.Month); //获取上个月的天数
            Debug.LogError("上个月的天数monthDays===>" + monthDays);
            var dt1 = new DateTime(lastMonthDt.Year, lastMonthDt.Month, _starDay, 6, 0, 0);
            var dt2 = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second);

            var ts1 = new TimeSpan(dt1.Ticks);
            var ts2 = new TimeSpan(dt2.Ticks);

            var tsSub = ts1.Subtract(ts2).Duration();
            toDayIdIndex = tsSub.Days;
            Debug.LogError("上个月toDayIdIndex===>" + toDayIdIndex);
        }
        else    //自然日期>=11号是且大于11号早上6点,本月
        {
            monthDays = DateTime.DaysInMonth(dt.Year, dt.Month);
            Debug.LogError("当月的天数monthDays===>" + monthDays);
            var dt1 = new DateTime(dt.Year, dt.Month, _starDay, 6, 0, 0);
            var dt2 = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second);

            var ts1 = new TimeSpan(dt1.Ticks);
            var ts2 = new TimeSpan(dt2.Ticks);

            var tsSub = ts1.Subtract(ts2).Duration();
            toDayIdIndex = tsSub.Days;
            Debug.LogError("当月toDayIdIndex===>" + toDayIdIndex);
        }

        for (int i = 0; i < monthDays; i++)
        {
            var vo = new MonthSignAwardVO(_monthSignRule[index], i + 1);
            _monthSignAwards.Add(vo);
            index++;
            if (index >= _monthSignRule.Count)
            {
                index = 0;
            }
        }
        ToDayId = _monthSignAwards[toDayIdIndex].Id;
        Debug.LogError("ToDayId===>" + ToDayId);
        SetSignState();
    }
コード例 #4
0
 public void UpdateMonthSignItemUI(MonthSignAwardVO vO, int dayId)
 {
     for (int i = 0; i < _parent.childCount; i++)
     {
         if (_parent.GetChild(i).name == dayId.ToString())
         {
             _parent.GetChild(i).GetComponent <MonthSginAwardItem>().SetData(vO);
             break;
         }
     }
     //_parent.GetChild(id - 1).GetComponent<MonthSginAwardItem>().SetData(vO);
 }
コード例 #5
0
    public MonthSignAwardVO GetMonthSignAwardVO(int day)
    {
        MonthSignAwardVO vo = null;

        foreach (var t in _monthSignAwards)
        {
            if (t.DayId == day)
            {
                vo = t;
                break;
            }
        }

        return(vo);
    }
コード例 #6
0
    private void SendMonthSignBuyReq(MonthSignAwardVO vO)
    {
        MonthSignBuyReq req = new MonthSignBuyReq {
            Date = vO.DayId
        };

        byte[] data = NetWorkManager.GetByteData(req);
        NetWorkManager.Instance.Send <MonthSignBuyRes>(CMD.ACTIVITY_MONTH_SING_BUY, data, res =>
        {
            Debug.LogError("30补签回包数据:" + res.Awards);
            GlobalData.PlayerModel.UpdateUserMoney(res.UserMoney);
            RewardUtil.AddReward(res.Awards);
            foreach (var t in res.Awards)
            {
                RewardVo vo = new RewardVo(t);
                FlowText.ShowMessage(I18NManager.Get("Activity_Get", vo.Name, vo.Num));
            }
            _model.UpdateUserMonthSignInfo(res.UserMonthSign);
            UpdateMonthSignAwards(res.UserMonthSign);
        });
    }
コード例 #7
0
    private void OnClick(MonthSignAwardVO vO)
    {
        switch (vO.State)
        {
        case EveryDaySignState.Retroactive:
            SetState(_retroactive.gameObject.name);
            PointerClickListener.Get(_retroactive.gameObject).onClick = go => { EventDispatcher.TriggerEvent(EventConst.MonthRetroactive, vO); };
            break;

        case EveryDaySignState.AlreadyGet:
            SetState(_alreadyGet.gameObject.name);
            break;

        case EveryDaySignState.NotGet:
            SetState(_noGet.gameObject.name);
            PointerClickListener.Get(_noGet.gameObject).onClick = go => { FlowText.ShowMessage(ClientData.GetItemDescById(vO.Awards[0].Id, vO.Awards[0].Resource).ItemDesc); };
            break;

        case EveryDaySignState.CurMayGet:
            SetState(_curMayGet.gameObject.name);
            PointerClickListener.Get(_curMayGet.gameObject).onClick = go => { EventDispatcher.TriggerEvent(EventConst.MonthSigin, vO); };
            break;
        }
    }
コード例 #8
0
 /// <summary>
 /// 发送签到请求
 /// </summary>
 /// <param name="vO"></param>
 private void MonthSigin(MonthSignAwardVO vO)
 {
     NetWorkManager.Instance.Send <MonthSignRewardRes>(CMD.ACTIVITY_MONTH_SING_REWARD, null, MonthSiginSuccCallback);
 }
コード例 #9
0
    /// <summary>
    /// 是否显示月签红点
    /// </summary>
    /// <returns></returns>
    private bool IsShowMonthSignRedDot()
    {
        bool isShow = false;

        var isOpenMonthSign = GlobalData.ActivityModel.GetActivityVo(ActivityType.ActivityMonthSignin) == null;

        if (isOpenMonthSign)
        {
            Debug.Log("MonthSign No Open");
            Debug.Log("MonthSignRedDot===>" + isShow);
            return(isShow);
        }

        List <MonthSignAwardVO> awardVos = new List <MonthSignAwardVO>();

        var monthSignRules    = GlobalData.ActivityModel.BaseActivityRule.MonthSignRules;
        var userMonthSignInfo = GlobalData.ActivityModel.AllActivityInfo.UserMonthSign;
        int monthDays;                                                                           //月天数
        var starDay = GlobalData.ConfigModel.GetConfigByKey(GameConfigKey.MONTH_SIGN_RESET_DAY); //11号
        int index   = starDay - 1;
        int toDayIdIndex;


        var dt           = DateUtil.GetTodayDt();
        var lastMonthDt  = dt.AddMonths(-1);                                                                    //上个月的Dt
        var curTimeStamp = ClientTimer.Instance.GetCurrentTimeStamp();
        var sixTimeStamp = DateUtil.GetNotTimezoneTimeStamp(new DateTime(dt.Year, dt.Month, starDay, 6, 0, 0)); //每月11号6点,跨月刷新点

        if (curTimeStamp < sixTimeStamp)
        {
            monthDays    = DateTime.DaysInMonth(lastMonthDt.Year, lastMonthDt.Month);
            toDayIdIndex = DurationDays(true, starDay, lastMonthDt, dt);
        }
        else
        {
            monthDays    = DateTime.DaysInMonth(dt.Year, dt.Month);
            toDayIdIndex = DurationDays(false, starDay, lastMonthDt, dt);
        }

        for (int i = 0; i < monthDays; i++)
        {
            var vo = new MonthSignAwardVO(monthSignRules[index], i + 1);
            awardVos.Add(vo);
            index++;
            if (index >= monthSignRules.Count)
            {
                index = 0;
            }
        }

        Debug.LogError("toDayIdIndex===>" + toDayIdIndex);

        int toDayId = awardVos[toDayIdIndex].Id;

        Debug.LogError("toDayId===>" + toDayId);
        if (userMonthSignInfo == null)
        {
            isShow = true;
            Debug.LogError("userMonthSignInfo is Null ===>" + isShow);
            return(isShow);
        }
        else
        {
            var dates = userMonthSignInfo.Dates;
            foreach (var t in awardVos)
            {
                if (t.Id <= toDayId)
                {
                    if (!dates.Contains(t.DayId) && t.Id == toDayId)
                    {
                        isShow = true;
                        Debug.Log("MonthSignRedDot===>" + isShow);
                        return(isShow);
                    }
                }
            }
        }

        isShow = IsShowMonthSignAccumulativeRedDot();
        Debug.Log("MonthSignRedDot===>" + isShow);
        return(isShow);
    }