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); }
private void SetCardData(UserCardVo vo) { SetStateTran(true, false, false); _curCardVo = vo; _title.text = vo.CardVo.TitleName; _roleImage.texture = ResourceManager.Load <Texture>(vo.CardVo.BigCardPath(vo.UserNeedShowEvoCard()), ModuleName); SetStars(vo); string spName = "UIAtlas_Common_R"; if (vo.CardVo.Credit == CreditPB.Ssr) { spName = "UIAtlas_Common_SSR"; } else if (vo.CardVo.Credit == CreditPB.Sr) { spName = "UIAtlas_Common_SR"; } _credit.sprite = AssetManager.Instance.GetSpriteAtlas(spName); _credit.SetNativeSize(); int sceneId = 0; bool normalstate = false; bool finishedState = false; bool finishedCurStep = false; _levelupDisposition.image.color = Color.white; _gotocard.image.color = Color.white; _gotocard.enabled = true; _levelupDisposition.enabled = true; _gotoCardtxt.text = I18NManager.Get("FavorabilityMain_GoRoseheart"); //前往升心 for (int i = 0; i < vo.MaxStars; i++) { //这个表示从0到1的数据! var targetStarUpPb = GlobalData.CardModel.GetCardStarUpRule(vo.CardId, (StarPB)i); if (targetStarUpPb == null) { Debug.LogError("no i" + i); } if (targetStarUpPb != null) { //Debug.LogError(targetStarUpPb.SceneIds.Count); for (int j = 0; j < targetStarUpPb.SceneIds.Count; j++) { if (targetStarUpPb.SceneIds[j] == 0) { continue; } sceneId = targetStarUpPb.SceneIds[j]; SceneUnlockRulePB curscenePb = GlobalData.FavorabilityMainModel.GetUnlockRulePb(sceneId); //万一CursemePb为空我直接隐藏吧。 if (curscenePb == null) { SetStateTran(false, false, true); FlowText.ShowMessage(I18NManager.Get("FavorabilityMain_IDAndFavorabilityLevelInconformity")); //找不到场景ID对应的好感度等级 return; } // Debug.LogError("i"+i+"j"+sceneId); //_dispositionTo.text = // GlobalData.FavorabilityMainModel.GetPlayerName(_userFavorabilityVo.Player) + "好感度达到" + // curscenePb.FavorabilityLevel; _dispositionTo.text = I18NManager.Get("FavorabilityMain_DispositionTo", GlobalData.FavorabilityMainModel.GetPlayerName(_userFavorabilityVo.Player), curscenePb.FavorabilityLevel); // _startxt.text = "星缘达到" + (int)targetStarUpPb.Star + "心"; _startxt.text = I18NManager.Get("FavorabilityMain_Startext", (int)targetStarUpPb.Star); if (curscenePb.FavorabilityLevel > _userFavorabilityVo.Level) { _addFavorability.text = I18NManager.Get("FavorabilityMain_PromoteFavorability"); //提升好感度 _levelupDisposition.image.color = Color.white; _levelupDisposition.enabled = true; finishedCurStep = false; if ((int)targetStarUpPb.Star > vo.Star) { _gotoCardtxt.text = I18NManager.Get("FavorabilityMain_GoRoseheart"); //前往升心 _gotocard.image.color = Color.white; _gotocard.enabled = true; } else { _gotoCardtxt.text = I18NManager.Get("FavorabilityMain_Arriveat"); //已达成 _gotocard.image.color = Color.gray; _gotocard.enabled = false; } normalstate = true; break; } else { _addFavorability.text = I18NManager.Get("FavorabilityMain_Arriveat");//已达成 _levelupDisposition.image.color = Color.gray; _levelupDisposition.enabled = false; if ((int)targetStarUpPb.Star <= vo.Star) { // Debug.LogError((int) targetStarUpPb.Star +"已达成"+ vo.Star); _gotoCardtxt.text = I18NManager.Get("FavorabilityMain_Arriveat");//已达成 _gotocard.image.color = Color.gray; _gotocard.enabled = false; finishedCurStep = true; if ((int)targetStarUpPb.Star == vo.MaxStars) { finishedState = true; break; } } else { _gotoCardtxt.text = I18NManager.Get("FavorabilityMain_GoRoseheart"); //前往升心 _gotocard.image.color = Color.white; _gotocard.enabled = true; finishedCurStep = false; normalstate = true; break; } } } //这里需要做一个判断,当解锁完所有关卡了,并且也已经遍历了所有心级,那么久可以当做是finished了! if ((int)targetStarUpPb.Star == vo.MaxStars && finishedCurStep) { finishedState = true; } } if (normalstate) { SetStateTran(true, false, false); break; } if (finishedState) { SetStateTran(false, true, false); break; } if (targetStarUpPb != null && sceneId == 0 && vo.Star == vo.MaxStars) { _startxt.text = I18NManager.Get("FavorabilityMain_GUESSTargetFavorability"); // 暂无目标好感度 _dispositionTo.text = I18NManager.Get("FavorabilityMain_GUESSHeartLevelFavorability"); //"暂无心级好感度"; } } }