示例#1
0
        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);
        }
示例#2
0
        //进化时需要用到的数据
        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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
 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));
         }
     }
 }
示例#5
0
        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"));
                    }
                });
            }
        }
示例#6
0
 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);
 }
示例#7
0
        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;
            }
        }