public int CardEvoPowerUp(CardEvoRulePB cardEvoRulePb) { int power = 0; switch (cardEvoRulePb.Evo) { case EvolutionPB.Evo1: return(GetCardEvoRule(cardEvoRulePb.Credit, cardEvoRulePb.Player, EvolutionPB.Evo1).Power); break; case EvolutionPB.Evo2: return(GetCardEvoRule(cardEvoRulePb.Credit, cardEvoRulePb.Player, EvolutionPB.Evo2).Power - GetCardEvoRule(cardEvoRulePb.Credit, cardEvoRulePb.Player, EvolutionPB.Evo1).Power); break; case EvolutionPB.Evo3: return(GetCardEvoRule(cardEvoRulePb.Credit, cardEvoRulePb.Player, EvolutionPB.Evo3).Power - GetCardEvoRule(cardEvoRulePb.Credit, cardEvoRulePb.Player, EvolutionPB.Evo2).Power); break; } return(power); }
//进化时需要用到的数据 public CardEvoRulePB GetCardEvoRule(CreditPB credit, PlayerPB playerPb, EvolutionPB evolutionPb) { for (int i = 0; i < _cardEvolutionRuleList.Count; i++) { CardEvoRulePB pb = _cardEvolutionRuleList[i]; if (pb.Credit == credit && pb.Player == playerPb && pb.Evo == evolutionPb) { return(pb); } } return(null); }
/// <summary> /// 卡牌进化规则 /// </summary> /// <param name="credit"></param> /// <returns></returns> public CardEvoRulePB GetCardEvoRule(CreditPB credit) { for (int i = 0; i < _cardEvolutionRuleList.Count; i++) { CardEvoRulePB pb = _cardEvolutionRuleList[i]; if (pb.Credit == credit) { return(pb); } } return(null); }
private void SetEffectRule(CardEvoRulePB cardevorulepb) { if (_curPageIndex != 3) { _evoeffecttxt.text = I18NManager.Get("Card_EvoEffect", GlobalData.CardModel.CardEvoPowerUp(cardevorulepb)) + cardevorulepb.Desc; } else { var unlockpb = GlobalData.FavorabilityMainModel.IsUnlockCloth(_vo.CardId); if (unlockpb != null) { _evoeffecttxt.text = I18NManager.Get("Card_EvoEffect", GlobalData.CardModel.CardEvoPowerUp(cardevorulepb)) + cardevorulepb.Desc; } else { _evoeffecttxt.text = I18NManager.Get("Card_EvoEffectTemp", GlobalData.CardModel.CardEvoPowerUp(cardevorulepb)); } } }
private void SetEvoState(CardEvoRulePB cardevorulepb) { //按钮状态分三种:1.粉丝已经进化。2.粉色进化。3.不可进化灰色按钮。 _evolutionBtn.onClick.RemoveAllListeners(); if (_vo.Evolution >= cardevorulepb.Evo) { //已经进化。 _evolutionBtn.image.color = Color.gray; _btnText.text = I18NManager.Get("Card_HasEvolution"); //_evolutionBtn.onClick.AddListener(HasEvo); } else if (_vo.Evolution == cardevorulepb.Evo - 1 && _vo.Star >= (int)cardevorulepb.StarNeed) { //可以进化 _evolutionBtn.image.color = Color.white; _btnText.text = I18NManager.Get("Card_CanEvolution"); _evolutionBtn.onClick.AddListener(OnEvolutionClick); } else { //不可进化 _evolutionBtn.image.color = Color.gray; _btnText.text = I18NManager.Get("Card_CanEvolution"); // _evolutionBtn.onClick.RemoveListener(HasEvo); // _evolutionBtn.onClick.RemoveListener(OnEvolutionClick); _evolutionBtn.onClick.AddListener(() => { if (_vo.Evolution != cardevorulepb.Evo - 1) { FlowText.ShowMessage(I18NManager.Get("Card_EvoCondiction")); } else { FlowText.ShowMessage(I18NManager.Get("Card_StarCondiction")); } }); } }
private void SetUnLockTextInfo(CardEvoRulePB cardevorulepb) { _unlockText.text = I18NManager.Get("Card_UnLockStar", (int)cardevorulepb.StarNeed + 1);//"星缘" + (int) cardevorulepb.StarNeed + "心解锁"; _unlockText.gameObject.SetActive(_vo.Star < (int)cardevorulepb.StarNeed || _vo.Evolution < cardevorulepb.Evo); }
private void SetPageData(UserCardVo vo) { // _tips.gameObject.Hide(); var cardevorulepb = GlobalData.CardModel.GetCardEvoRule(vo.CardVo.Credit, vo.CardVo.Player, (EvolutionPB)(_curPageIndex)); // _ruleTran.gameObject.SetActive(_curPageIndex==1&&vo.CardVo.Credit!=CreditPB.R); _cardEvoRulePb = cardevorulepb; _title.text = I18NManager.Get("Card_EvolutionTo") + ShowIndex(_curPageIndex); SetArrowShow((int)cardevorulepb.Evo); var costReduceNum = GlobalData.CardModel.GetCardResolveRule(vo.CardVo.Credit, vo.CardVo.Player).EvoResolve[10000 + (int)vo.CardVo.Player]; _resolveRule.text = I18NManager.Get("Card_GetResolveItem", costReduceNum); //$"一张相同星缘可抵扣<color=#9769AC>{costReduceNum}</color>"; _ruleImage.texture = ResourceManager.Load <Texture>(GlobalData.PropModel.GetPropStrPath(vo.EvolutionRequirePropId().ToString()), ModuleConfig.MODULE_CARD); _smallCard.texture = ResourceManager.Load <Texture>(vo.CardVo.MiddleCardPath(true), ModuleConfig.MODULE_CARD); CostNum.text = (vo.Num - 1) + "/" + cardevorulepb.UseCardNum;//可抵消星缘的数量 _costGoldNum.text = I18NManager.Get("Card_CostEvoGoldNeed", cardevorulepb.GoldNeed); int reduceCardNum = 0; if (vo.Num - 1 >= cardevorulepb.UseCardNum) { reduceCardNum = cardevorulepb.UseCardNum; } else { reduceCardNum = vo.Num - 1; } SetEffectRule(cardevorulepb); //SetRuleInfo(); SetCardEvoInfoState(_curPageIndex); for (int j = 0; j < _propGroup.childCount; j++) { _propGroup.GetChild(j).gameObject.Hide(); } bool isCrystalSatisfy = false; bool isPropSatisfy = false; int i = 0; int propIndex = 0; bool enableAni = false; foreach (var v in cardevorulepb.Consume) { var propitem = GlobalData.PropModel.GetUserProp(v.Key); if (propitem == null) { continue; } else { _propGroup.GetChild(i).GetChild(0).GetComponent <RawImage>().texture = ResourceManager.Load <Texture>(GlobalData.PropModel.GetPropStrPath(v.Key.ToString()), ModuleConfig.MODULE_CARD); } _propGroup.GetChild(i).gameObject.Show(); //要扣去可抵消的卡牌数量,要先确定这个是不是卡牌 if (propitem.ItemId >= 10001 && propitem.ItemId <= 10004) { _propGroup.GetChild(i).GetChild(0).Find("Text").GetComponent <Text>().text = propitem.Num + "/" + v.Value;// (v.Value-costReduceNum*reduceCardNum) isCrystalSatisfy = propitem.Num >= v.Value - costReduceNum * reduceCardNum; _propGroup.GetChild(0).GetChild(1).GetComponent <RawImage>().texture = ResourceManager.Load <Texture>(_vo.CardAppointmentRuleVo.SmallPicPath, ModuleConfig.MODULE_CARD); //开始dotween动画! enableAni = true; } else { propIndex++; _propGroup.GetChild(i).GetChild(0).Find("Text").GetComponent <Text>().text = propitem.Num + "/" + v.Value; if (propIndex == 1) { isPropSatisfy = propitem.Num >= v.Value; } else if (propIndex == 2) { isPropSatisfy = propitem.Num >= v.Value & isPropSatisfy; } } PointerClickListener.Get(_propGroup.GetChild(i).gameObject).onClick = go => { //道具来源 //BUG,道具来源不值一种啊! if (propitem.ItemId >= 10001 && propitem.ItemId <= 10004) { // FlowText.ShowMessage(I18NManager.Get("Card_GetByResolve")); SetToggleState(vo.Num - 1 > 0); SetTogglePropData(propitem.Num + "/" + v.Value, (vo.Num - 1) + "/" + cardevorulepb.UseCardNum, GlobalData.PropModel.GetPropStrPath(v.Key.ToString()), _vo.CardAppointmentRuleVo.SmallPicPath); _chooseWindowBG.gameObject.Show(); } else { FlowText.ShowMessage(I18NManager.Get("Card_GetByVisit")); } }; i++; } if (enableAni) { if (!canPlayAni) { canPlayAni = true; ChangePropAni(); } } else { tween.Kill(); ResetPropBg(); } if (_isTrigger == false && vo.Evolution == cardevorulepb.Evo - 1 && vo.Star >= (int)cardevorulepb.StarNeed) { _isTrigger = true; _coroutine = ClientTimer.Instance.DelayCall(() => { if (_curPageIndex == 3) { //结晶满足, 进化道具不满足 int id = (7014 + (int)vo.CardVo.Player - 1); if (isCrystalSatisfy && isPropSatisfy == false && GlobalData.RandomEventModel.CheckTrigger(id)) { new TriggerService().Request(id).ShowNewGiftWindow().Execute(); } } else if (_curPageIndex == 2) { int id2 = (7010 + (int)vo.CardVo.Player - 1); //道具满足,但是结晶不满足 if (isCrystalSatisfy == false && isPropSatisfy && GlobalData.RandomEventModel.CheckTrigger(id2)) { new TriggerService().Request(id2).ShowNewGiftWindow().Execute(); } } }, 3); } SetUnLockTextInfo(cardevorulepb); SetEvoState(cardevorulepb); if (vo.Num > 1) { ChooseCardResolve = 1; } else { ChooseCardResolve = 0; } }