Esempio n. 1
0
    public void UpdateUserAppointment(UserAppointmentPB pb)
    {
        //Debug.LogError(pb);
        var userappointmentVo = new UserAppointmentVo(pb);

        if (_userAppointmentVo.Count == 0 || _userAppointmentVo.Find(x => x.AppointmentId == userappointmentVo.AppointmentId) == null)
        {
            _userAppointmentVo.Add(userappointmentVo);
            return;
        }
        foreach (var v in _userAppointmentVo)
        {
            if (v.AppointmentId == userappointmentVo.AppointmentId)
            {
                v.ActiveGateInfos = userappointmentVo.ActiveGateInfos;
                v.ActiveState     = userappointmentVo.ActiveState;
//                    v.ClearState = userappointmentVo.ClearState;
                v.CreateTime      = userappointmentVo.CreateTime;
                v.FinishGateInfos = userappointmentVo.FinishGateInfos;
                v.LastModifyTime  = userappointmentVo.LastModifyTime;
//                    v.NailUpState = userappointmentVo.NailUpState;
                v.UserId = userappointmentVo.UserId;
            }
        }
    }
Esempio n. 2
0
    public void UpdatePassGateAwardToProp(UserAppointmentVo userAppointmentVo)
    {
        var appointmentvo = GetAppointmentRule(userAppointmentVo.AppointmentId);

        foreach (var v in appointmentvo.GateInfos)
        {
            if (v.Gate == userAppointmentVo.FinishGateInfos[userAppointmentVo.FinishGateInfos.Count - 1])
            {
                //Debug.LogError("find pass gate reward");
                Debug.LogError("get reward!" + v.Awards);
                RewardUtil.AddReward(v.Awards);
            }
        }
    }
Esempio n. 3
0
    public void SetData(AppointmentRuleVo vo, AppointmentModel appointmentModel)
    {
        UserAppointmentVo uservo = appointmentModel.GetUserAppointment(vo.Id);

        appointmentModel.SetCurAppointmentRule(vo);
        _jumpFromCard = true;
        if (uservo == null || uservo.ActiveState == 0)
        {
            if (uservo == null)
            {
                Debug.LogError("uservo null");
            }

            _loveStoryView.SetEmptyTexture();
            _loveStoryController.SetData(vo);
        }
        else
        {
            _loveStoryView.SetData(vo, appointmentModel);
        }
    }
Esempio n. 4
0
    private void ShowCardAwardPreview(UserCardVo userCardVo)
    {
        List <CardAwardPreInfo> infos = new List <CardAwardPreInfo>();
        var vo     = userCardVo;
        int cardId = userCardVo.CardId;
        int NpcId  = (int)userCardVo.CardVo.Player;

        var userFavorabilityVo = GlobalData.FavorabilityMainModel.GetUserFavorabilityVo(NpcId);//用户NPC的好感度信息

        Debug.LogError("CardId " + cardId + "  NpcId " + NpcId);

        PlayerPB playerPB = userCardVo.CardVo.Player;

        var cardPd = GlobalData.CardModel.GetCardBase(cardId);

        for (int i = 0; i < cardPd.GainSceneIds.Count; i++)
        {
            int phonesceneId = cardPd.GainSceneIds[i];
            if (phonesceneId == 0)
            {
                continue;
            }
            bool isUnlock = true;

            var userCard = GlobalData.CardModel.GetUserCardById(cardId);
            isUnlock = userCard != null;

            //   Debug.LogError("phonesceneId" + phonesceneId+ "GetSceneName"+ GetSceneName(phonesceneId));

            CardAwardPreInfo info = CreateCardAwardPreInfo(GetSceneName(phonesceneId), isUnlock, GetCardAwardPreType(phonesceneId));

            info.StartTips = "1心解锁.";
//            Debug.LogError(isUnlock+" "+info.content);
            infos.Add(info);
        }



        int sceneId = 0;

        //解锁手机事件
        for (int i = 0; i < vo.MaxStars; i++)
        {
            var targetStarUpPb = GlobalData.CardModel.GetCardStarUpRule(vo.CardId, (StarPB)i);
            if (targetStarUpPb == null)
            {
                //Debug.LogError("no i" + i);
                continue;
            }
            for (int j = 0; j < targetStarUpPb.SceneIds.Count; j++)
            {
                if (targetStarUpPb.SceneIds[j] == 0)
                {
                    continue;
                }
                sceneId = targetStarUpPb.SceneIds[j];
                bool isUnlock = false;
                SceneUnlockRulePB curscenePb = GlobalData.FavorabilityMainModel.GetUnlockRulePb(sceneId);
                if (curscenePb == null)
                {
                    continue;
                }
                if (curscenePb.FavorabilityLevel <= userFavorabilityVo.Level && (int)targetStarUpPb.Star <= vo.Star)
                {
                    isUnlock = true;
                }
                if (curscenePb != null)
                {
                    //SmsInfo info = JsonConvert.DeserializeObject<SmsInfo>(text);
                    CardAwardPreInfo info        = CreateCardAwardPreInfo(GetSceneName(sceneId), isUnlock, GetCardAwardPreType(sceneId));
                    PhoneUnlockInfo  phoneUnlock = ClientData.GetPhoneUnlockInfoById(sceneId);
                    if (phoneUnlock != null)
                    {
                        info.UnlockDescription = phoneUnlock.UnlcokDes;
                        info.StartTips         = phoneUnlock.StartTips + ".";
                        Debug.LogError(info.content);
                        infos.Add(info);
                    }
                }
                Debug.Log("Star  level " + i + "  sceneID  " + sceneId + "  isUnlock " + isUnlock);
            }
        }


        //恋爱剧情
        UserAppointmentVo userAppointmentVo = GlobalData.AppointmentData.GetCardAppointmentVo(cardId);

        if (userAppointmentVo != null)
        {
            int appointmentId = userAppointmentVo.AppointmentId;
            AppointmentRuleVo appointmentRuleVo = GlobalData.AppointmentData.GetAppointmentRule(appointmentId);

            string cotent = appointmentRuleVo.Name;

            foreach (var v in appointmentRuleVo.GateInfos)
            {
                //cotent = cotent + v.Gate.ToString();

                bool isUnlock = userAppointmentVo.ActiveGateInfos.Contains(v.Gate);
                if (v.Star == 0 && v.Evo == 0)
                {
                    isUnlock = true;
                }


                string key  = "Common_Number" + v.Gate.ToString();
                var    info = CreateCardAwardPreInfo(cotent + I18NManager.Get(key), isUnlock, CardAwardPreType.LoveStory);

                if (v.Star == 0 && v.Evo == 0)
                {
                    info.StartTips = "1心解锁.";
                }


                if (v.Star > 0)
                {
                    info.StartTips         = (v.Star + 1) + "心解锁.";
                    info.UnlockDescription = I18NManager.Get("Card_PreviewStarUnlock", (v.Star + 1));
                }

                if (v.Evo > 0)
                {
                    info.StartTips         = "进化" + v.Evo + "解锁.";
                    info.UnlockDescription = I18NManager.Get("Card_PreviewEvoUnlock", v.Evo);
                }

                infos.Add(info);
            }
        }

        //日记语音
        List <ElementPB> elementPBs = GlobalData.DiaryElementModel.GetDialogsByCardId(cardId);

        foreach (var elementPB in elementPBs)
        {
            if (elementPB.ElementType == ElementTypePB.Sound)
            {
                string cotent   = elementPB.Name;
                bool   isUnlock = GlobalData.DiaryElementModel.IsCanUseElement(elementPB.Id);
                var    info     = CreateCardAwardPreInfo(cotent, isUnlock, CardAwardPreType.LoveDiaryLabelVoice);
                info.StartTips         = "进化1解锁.";
                info.UnlockDescription = I18NManager.Get("Card_PreviewEvoUnlock", 1);
                infos.Add(info);
            }
        }

//        var drawcards = ClientData.GetDrawCardExpressionInfos(NpcId, EXPRESSIONTRIGERTYPE.DRAWCARD);
//        //抽卡语音
//        foreach (var v in drawcards)
//        {
//            string cotent = v.DialogName;
//            bool isUnlock = true;
//            infos.Add(CreateCardAwardPreInfo(cotent, isUnlock, CardAwardPreType.DrawCardVioce));
//        }

        infos.Sort();

        string cardName = userCardVo.CardVo.CardName;
        var    win      = PopupManager.ShowWindow <CardAwardPreviewWindow>("Card/Prefabs/CardDetail/CardAwardPreviewWindow");

        win.SetData(cardName, infos);

        //string path = "FavorabilityMain/Prefabs/VoiceWindow";
        //var voiceWin = PopupManager.ShowWindow<VoiceWindow>(path);
        //voiceWin.SetData("111", infos);
    }
Esempio n. 5
0
    public bool NeedSetRedPoint(UserAppointmentVo userappointment, int id)
    {
        var cardvo = GlobalData.CardModel.GetUserCardById(id);

        if (cardvo == null)
        {
            //Debug.LogError("no cardvo"+id);
            return(false);
        }
        //Debug.LogError(userappointment.ActiveState);
        if (userappointment.ActiveState != 1)
        {
            return(true);
        }

        if (userappointment.ActiveState == 1 && userappointment.FinishGateInfos.Count == 0)
        {
            return(true);
        }

        //此处为新增功能,可能有BUG!
        if (userappointment.ActiveGateInfos.Count != userappointment.FinishGateInfos.Count)
        {
            return(true);
        }


        if (userappointment.FinishGateInfos.Count > 0)
        {
            //判断解锁到第几章,然后判断
            var appointmentvo = _appointmentRuleVos.Find(x => x.Id == userappointment.AppointmentId);
            switch (userappointment.FinishGateInfos.Count)
            {
            case 1:
                if (cardvo?.Star >= appointmentvo.GateInfos[1].Star)
                {
                    return(true);
//                            bool isEnough = false;
//                            foreach (var v in appointmentvo.GateInfos[1].Cosumes)
//                            {
//                                isEnough = v.Value <= GlobalData.PropModel.GetUserProp(v.Key).Num;
//                            }
//
//                            return isEnough;
                }
                break;

            case 2:
                if (cardvo?.Star >= appointmentvo.GateInfos[2].Star)
                {
                    return(true);
//                            bool isEnough = false;
//                            foreach (var v in appointmentvo.GateInfos[2].Cosumes)
//                            {
//                                isEnough = v.Value <= GlobalData.PropModel.GetUserProp(v.Key).Num;
//                            }
//
//                            return isEnough;
                }
                break;

            case 3:
                //var appointmentvo3 = _appointmentRuleVos.Find(x => x.Id == userappointment.AppointmentId);
                if (cardvo?.Evolution >= (EvolutionPB)appointmentvo.GateInfos[3].Evo)
                {
                    return(true);
//                            bool isEnough = false;
//                            foreach (var v in appointmentvo.GateInfos[3].Cosumes)
//                            {
//                                isEnough = v.Value <= GlobalData.PropModel.GetUserProp(v.Key).Num;
//                            }
//
//                            return isEnough;
                }
                break;

            case 4:
                //暂时还没有拍立得钉起来。
                //新需求,拍立得需要显示红点?

                foreach (var v in appointmentvo.GateInfos)
                {
                    foreach (var e in v.Awards)
                    {
                        if (!GlobalData.DiaryElementModel.IsUserElement(e.ResourceId))
                        {
                            Debug.LogError("redpoint!");
                            return(true);
                        }
                    }
                }

                break;
            }
        }
        return(false);
    }