예제 #1
0
    public void SetData(CalendarDetailVo calendarDetailVo)
    {
        Debug.Log("LoveDiaryEditController   SetData");
        _curCalendarDetailVo = calendarDetailVo;
        _curCalendarDetailVo.CurDiaryElementCount.MaxImageCount  = GlobalData.ConfigModel.GetConfigByKey(GameConfigKey.DIARY_MAX_IMAG_COUNT);
        _curCalendarDetailVo.CurDiaryElementCount.MaxTextCount   = GlobalData.ConfigModel.GetConfigByKey(GameConfigKey.DIARY_MAX_TEXT_COUNT);
        _curCalendarDetailVo.CurDiaryElementCount.MaxRacketCount = GlobalData.ConfigModel.GetConfigByKey(GameConfigKey.DIARY_MAX_RACKET_COUNT);
        _curCalendarDetailVo.CurDiaryElementCount.CurImageCount  = 0;
        _curCalendarDetailVo.CurDiaryElementCount.CurTextCount   = 0;
        _curCalendarDetailVo.CurDiaryElementCount.CurRacketCount = 0;
        DiaryElementPB pb;

        for (int i = 0; i < _curCalendarDetailVo.DiaryElements.Count; i++)
        {
            pb = _curCalendarDetailVo.DiaryElements[i];
            ElementPB elementRule = CalendarDetailVo.GetElementRuleById(pb.ElementId);
            if (elementRule.ElementType == ElementTypePB.Image)
            {
                _curCalendarDetailVo.CurDiaryElementCount.CurImageCount++;
            }
            else if (elementRule.ElementType == ElementTypePB.Text)
            {
                _curCalendarDetailVo.CurDiaryElementCount.CurTextCount++;
            }
            else if (elementRule.ElementType == ElementTypePB.Racket)
            {
                _curCalendarDetailVo.CurDiaryElementCount.CurRacketCount++;
            }
        }
        CurLoveDiaryEditView.SetData(_curEditType, GlobalData.DiaryElementModel, calendarDetailVo);
    }
예제 #2
0
    private void SelctCalender(DateTime dt)
    {
        if (GetData <LoveDiaryModel>().CheckHasDetailData(dt))
        {
            //进入查看编辑状态
            CalendarDetailVo vo = GetData <LoveDiaryModel>().GetCalendarDetailData(dt);
            SendMessage(new Message(MessageConst.MODULE_LOVEDIARY_SHOW_EDIT_PANEL, Message.MessageReciverType.DEFAULT, LoveDiaryEditType.Show, vo));
            return;
        }

        if (GetData <LoveDiaryModel>().CheckHasCalendarData(dt))//当天时候有记录日记,但是没有详细日记数据
        {
            //获取日记集体数据 写过的日记才有  新日记不必发送
            var req = new MyDiaryDetailReq();
            //req.Id = GetData<LoveDiaryModel>().GetDiarySvrId(dt);//日记ID
            req.Year  = dt.Year;
            req.Month = dt.Month;
            req.Date  = dt.Day;

            var dataBytes = NetWorkManager.GetByteData(req);
            NetWorkManager.Instance.Send <MyDiaryDetailRes>(CMD.DIARYC_USER_DIARYDETAIL, dataBytes, (res) => { OnMyDiaryDetailHandler(res, dt); });
            return;
        }
        //全新日记
        SendMessage(new Message(MessageConst.MODULE_LOVEDIARY_SHOW_TEMPLATE_PANEL, Message.MessageReciverType.DEFAULT, dt));
    }
예제 #3
0
    private void OnElementTextItemEditClick(int elementId)
    {
        Debug.Log("OnElementTextItemEditClick");

        //有个问题啊,要知道点击的是什么类型的元素!
        ElementPB elementRule    = CalendarDetailVo.GetElementRuleById(elementId);
        var       bottomEditType = LoveDiaryBottomEditType.SecondText;

        switch (elementRule.ElementType)
        {
        case ElementTypePB.Text:
            bottomEditType = LoveDiaryBottomEditType.SecondText;
            break;

        case ElementTypePB.Image:
            bottomEditType = LoveDiaryBottomEditType.Image;
            break;

        case ElementTypePB.Racket:
            bottomEditType = LoveDiaryBottomEditType.Racket;
            break;

        case ElementTypePB.Bg:
            bottomEditType = LoveDiaryBottomEditType.Bg;
            break;

        default:
            bottomEditType = LoveDiaryBottomEditType.SecondText;
            break;
        }

        CurLoveDiaryEditView.OperateBottom(true, bottomEditType);
        IsModify = true;
    }
예제 #4
0
        public void AddCalendarDetailData(DateTime Dt, CalendarDetailVo vo)
        {
            DateTime dt  = Dt;
            int      key = dt.Year * 10000 + dt.Month * 100 + dt.Day;

            _calendarDetailDic[key] = vo;
        }
예제 #5
0
    private void OnElementTextItemDeleteClick(DiaryElementPB pb)
    {
        Debug.Log("OnElementTextItemDeleteClick");
        ElementPB elementRule = CalendarDetailVo.GetElementRuleById(pb.ElementId);

        _curCalendarDetailVo.CurDiaryElementCount.SubCount(elementRule.ElementType);
        IsModify = true;
    }
예제 #6
0
    private void OnMyDiaryDetailHandler(MyDiaryDetailRes res, DateTime dt)
    {
        Debug.Log("OnMyDiaryDetailHandler " + res);
        UserDiaryPB      pb = res.UserDiary;
        CalendarDetailVo vo = new CalendarDetailVo(dt.Year, dt.Month, dt.Day, pb.DiaryElements.ToList());

        GetData <LoveDiaryModel>().AddCalendarDetailData(dt, vo);
        SendMessage(new Message(MessageConst.MODULE_LOVEDIARY_SHOW_EDIT_PANEL, Message.MessageReciverType.DEFAULT, LoveDiaryEditType.Show, vo));
        //todo
    }
예제 #7
0
    private void OnElementItemClick(int id)
    {
        Debug.Log("OnElementItemClick........................ id " + id);

        ElementPB elementRule = CalendarDetailVo.GetElementRuleById(id);


        if (GlobalData.DiaryElementModel.IsCanUseElement(id)) //表示需要购买
        {
            if (_curCalendarDetailVo.CurDiaryElementCount.IsUpperLimited(elementRule.ElementType))
            {
                FlowText.ShowMessage(I18NManager.Get("LoveDiary_Hint6"));// ("已达上限!");
                return;
            }

            if (elementRule.ElementType == ElementTypePB.Label)
            {
                CurLoveDiaryEditView.CurLabelElementId = id;
            }
            else
            {
                CurLoveDiaryEditView.AddElement(GetNewDiaryElementPB(id), false);
            }
            _curCalendarDetailVo.CurDiaryElementCount.AddCount(elementRule.ElementType);
            CurLoveDiaryEditView.OperateBottom(false);
            IsModify = true;
        }
        else
        {
            string stype = "";
            switch (elementRule.ElementType)
            {
            case ElementTypePB.Bg:
                stype = I18NManager.Get("LoveDiary_Background");    //"背景";
                break;

            case ElementTypePB.Image:
                stype = I18NManager.Get("LoveDiary_Tags");    //"贴纸";
                break;
            }
            string str = I18NManager.Get("LoveDiary_Hint12") + elementRule.UnlockClaim.Gem + I18NManager.Get("LoveDiary_Hint7") + stype;
            PopupManager.ShowConfirmWindow(str).WindowActionCallback = evt =>
            {
                if (evt != WindowEvent.Ok)
                {
                    return;
                }

                BuyElementReq req = new BuyElementReq();
                req.ElementId = id;
                var dataBytes = NetWorkManager.GetByteData(req);
                NetWorkManager.Instance.Send <BuyElementRes>(CMD.DIARYC_ELEMENTS_BUY, dataBytes, OnMyBuyElementHandler);
            };
        }
    }
예제 #8
0
    private void TemplateSelect(int id)
    {
        Debug.LogError("TemplateSelect " + id);
        //这里需要根据模板ID选择 创建数据 并传到日记编辑panel
        // 如果读取模板数据 并生成   这里先全部默认空模板
        string           text = new AssetLoader().LoadTextSync(AssetLoader.GetDiaryTemplateDataPath(id.ToString()));
        CalendarDetailVo vo   = JsonConvert.DeserializeObject <CalendarDetailVo>(text);

        CalendarDetailVo newvo = new CalendarDetailVo(_curDateTime.Year, _curDateTime.Month, _curDateTime.Day, vo.DiaryElements);

        SendMessage(new Message(MessageConst.MODULE_LOVEDIARY_SHOW_EDIT_PANEL, Message.MessageReciverType.DEFAULT, LoveDiaryEditType.Edit, newvo));
    }
예제 #9
0
    private void OnElementInputClick(string str)
    {
        //int id = 7000;// rule 默认 Text id==7000;
        ElementPB elementRule = CalendarDetailVo.GetElementRuleById(7000);

        if (_curCalendarDetailVo.CurDiaryElementCount.IsUpperLimited(elementRule.ElementType))
        {
            FlowText.ShowMessage(I18NManager.Get("LoveDiary_Hint6"));//("已达上限!");
            return;
        }

        CurLoveDiaryEditView.AddElement(GetNewDiaryElementPB(7000, str), true);
        _curCalendarDetailVo.CurDiaryElementCount.AddCount(elementRule.ElementType);
        //CurLoveDiaryEditView.OperateBottom(false);
        IsModify = true;
    }
예제 #10
0
    public void SetData(LoveDiaryEditType editType, DiaryElementModel diaryElementModel,
                        CalendarDetailVo calendarDetailVo)
    {
        _diaryElementModel = diaryElementModel;
        SetShowSelectItem(ElementTypePB.Image);
        SetShowLabelSelectItem();

        for (int i = 0; i < calendarDetailVo.DiaryElements.Count; i++)
        {
            CreateElementItem(calendarDetailVo.DiaryElements[i]);
        }

        curLabelPb         = calendarDetailVo.LabelElement;
        _curLabelElementId = curLabelPb.ElementId;
        SetTitleLabel();
    }
예제 #11
0
    private void CreateElementItem(DiaryElementPB diaryElementPB, bool immidiateInput = false)
    {
        ElementPB elementRule = CalendarDetailVo.GetElementRuleById(diaryElementPB.ElementId);
        string    prefabPath  = "";

        switch (elementRule.ElementType)
        {
        case ElementTypePB.Image:
            prefabPath = "LoveDiary/Prefabs/Elements/ImageElement";
            break;

        case ElementTypePB.Racket:
            prefabPath = "LoveDiary/Prefabs/Elements/ImageElement";
            //    prefabPath = "LoveDiary/Prefabs/LoveDiaryEditRacketItem";
            break;

        case ElementTypePB.Bg:
            _editContains.GetChild(0).GetComponent <BgElememt>()
            .SetData(diaryElementPB, _editContains.GetComponent <RectTransform>());
            SetBgElement(diaryElementPB.ElementId);
            return;

        case ElementTypePB.Text:
            prefabPath = "LoveDiary/Prefabs/Elements/WordElement";
            break;

        default:
            return;
        }

        var prefab = GetPrefab(prefabPath);
        var item   = Instantiate(prefab) as GameObject;

        item.transform.SetParent(_editContains, false);
        item.transform.localScale  = Vector3.one;
        item.transform.eulerAngles = Vector3.zero;
        item.GetComponent <DiaryElementBase>().SetData(diaryElementPB, _editContains.GetComponent <RectTransform>());
        if (immidiateInput)
        {
            _curClickElement = item;
            _curClickElement.GetComponent <DiaryElementBase>().loveDiaryEditType = LoveDiaryEditType.Edit;
            _curBottomEditType = LoveDiaryBottomEditType.SecondText;
        }

        UIEventListener.Get(item).onClick = OnClickElememtItem;
        return;
    }
예제 #12
0
 public void SetData(LoveDiaryEditType editType, CalendarDetailVo calendarDetailVo)
 {
     _loveDiaryEditController.EditType = editType;
     _loveDiaryEditController.SetData(calendarDetailVo);
 }
예제 #13
0
        public void AddCalendarDetailData(int Year, int Month, int Day, CalendarDetailVo vo)
        {
            int key = Year * 10000 + Month * 100 + Day;

            _calendarDetailDic[key] = vo;
        }