少年修仙传客户端代码仓库
client_Zxw
2018-09-27 e0b8aaa81d7db2bfb76245523c12fbce2c4c75db
2614 【前端】神兽——强化功能
2个文件已修改
153 ■■■■■ 已修改文件
System/Strengthening/GodBeastAttributes.cs 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GodBeastModel.cs 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GodBeastAttributes.cs
@@ -76,7 +76,7 @@
        {
            GodBeast_Number = 0;
            GodBeast_Part = 0;
            GodBeastReinforcementWin.ChooseToModify -= ChooseToModify;
            godBeastModel.AbsorbEvent -= AbsorbEvent;
        }
@@ -96,7 +96,7 @@
            {
                AttributeAssignment();
            }
        }
        private void OnClickStrengthBtn()
        {
@@ -108,15 +108,42 @@
                ListIndex.Add(key);
                ListCount.Add(DicAb[key]);
            }
            if (m_DoubleToggle.isOn)
            if (m_DoubleToggle.isOn)//双倍强化
            {
                if (ListIndex.Count <= 0)
                {
                    return;
                }
                dogz_model.SendDogzEquipStrength(m_DogZItemModel.itemInfo.ItemPlace, ListIndex, ListCount, 1);
                if (NeedFairyJade <= 0)
                {
                    dogz_model.SendDogzEquipStrength(m_DogZItemModel.itemInfo.ItemPlace, ListIndex, ListCount, 0);
                }
                else
                {
                    int Gold = (int)UIHelper.GetMoneyCnt(1);//仙玉
                    string strNull = string.Format(Language.Get("DogzDoubleRemind"), NeedFairyJade);
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strNull, (bool isOk) =>
                     {
                         if (isOk)
                         {
                             if (Gold >= NeedFairyJade)
                             {
                                 dogz_model.SendDogzEquipStrength(m_DogZItemModel.itemInfo.ItemPlace, ListIndex, ListCount, 1);
                             }
                             else
                             {
                                 if (VersionConfig.Get().isBanShu)
                                 {
                                     SysNotifyMgr.Instance.ShowTip("GoldErr");
                                     return;
                                 }
                                 WindowCenter.Instance.Open<RechargeTipWin>();
                             }
                         }
                     });
                }
            }
            else
            else//单倍强化
            {
                if (ListIndex.Count <= 0)
                {
@@ -162,7 +189,7 @@
                }
                m_UIAlphaTween.gameObject.SetActive(true);
                m_FrameNull.SetActive(true);
                m_FullLevel.SetActive(false);
                m_FullLevel.SetActive(false);
                GetDogZLevelAndExp();
                AttributeAssignment();
            }
@@ -226,7 +253,7 @@
                }
                else
                {
                    m_StrengthenDoubleBtn.interactable = true;
                    m_StrengthenBtn.interactable = true;
                    m_Text_two.SetActive(true);
@@ -285,7 +312,7 @@
                        else
                        {
                            DoubleProficiency += itemModel.chinItemModel.EffectValueA1 * 2 * DicAb[key];
                            NeedFairyJade += itemModel.chinItemModel.Effect2 * DicAb[key];
                            NeedFairyJade += itemModel.chinItemModel.EffectValueB1 * DicAb[key];
                        }
                    }
                }
@@ -382,7 +409,7 @@
            var IudetDogzEquipPlus = m_DogZItemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus);
            if (IudetDogzEquipPlus != null)
            {
                ToExpTotal+= IudetDogzEquipPlus[1];
                ToExpTotal += IudetDogzEquipPlus[1];
            }
            for (int i = lv; i >= 0; i--)
            {
System/Strengthening/GodBeastModel.cs
@@ -18,11 +18,13 @@
    public int ItemInde = 0;//物品下标
    public ItemModel Crystal_ItemModel;//当前所选中的水晶物品
    public int ItemPlace = -1;//神兽装备位置信息
    public  Dictionary<int, int> QualityLimit = new Dictionary<int, int>();//对应品质所能选择的最大强化等级
    public Dictionary<int, int> QualityLimit = new Dictionary<int, int>();//对应品质所能选择的最大强化等级
    DogzModel Dogz_model;
    DogzModel dogz_model { get { return Dogz_model ?? (Dogz_model = ModelCenter.Instance.GetModel<DogzModel>()); } }
    PlayerPackModel _playerPack;
    PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } }
    private const int Redpoint_key1 = 11202;//神兽强化红点
    public Redpoint redPointStre1 = new Redpoint(112, Redpoint_key1);
    public override void Init()
    {
        if (QualityLimit.Count <= 0)
@@ -39,7 +41,44 @@
    public void OnPlayerLoginOk()
    {
        playerPack.ItemCntAddAct -= ItemCntAddAct;
        playerPack.ItemCntReduceAct -= ItemCntReduceAct;
        dogz_model.UpdateAssistDogzEvent -= UpdateAssistDogzEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
        playerPack.ItemCntAddAct += ItemCntAddAct;//物品数量增加
        playerPack.ItemCntReduceAct += ItemCntReduceAct;//物品数量减少
        dogz_model.UpdateAssistDogzEvent += UpdateAssistDogzEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
        GodBeastRedPoint();
    }
    private void OnFuncStateChangeEvent(int obj)
    {
        if (obj == 138)
        {
            GodBeastRedPoint();
        }
    }
    private void UpdateAssistDogzEvent()
    {
        GodBeastRedPoint();
    }
    private void ItemCntReduceAct(PackType packType, int arg2, int arg3)
    {
        if (packType == PackType.rptDogzItem || packType == PackType.rptDogzEquip)
        {
            GodBeastRedPoint();
        }
    }
    private void ItemCntAddAct(PackType packType, int arg2, int arg3)
    {
        if (packType == PackType.rptDogzItem || packType == PackType.rptDogzEquip)
        {
            GodBeastRedPoint();
        }
    }
    public override void UnInit()
@@ -137,7 +176,7 @@
            return false;
        }
        int lv = QualityLimit[itemModel.chinItemModel.ItemColor];
        var DogzEquipMaxConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(itemModel.chinItemModel.EquipPlace, lv);
        var DogzEquipMaxConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(itemModel.chinItemModel.EquipPlace, lv);
        var IudetDogzEquipPlus = itemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus);
        if (IudetDogzEquipPlus != null)
@@ -175,7 +214,7 @@
            else
            {
                return false;
            }
            }
        }
        else
        {
@@ -189,6 +228,69 @@
            }
        }
    }
    private void GodBeastRedPoint()//神兽强化红点
    {
        bool Istrue = false;
        int ItemColor = 10;
        var DogzEquipDict = dogz_model.dogzAssistStateDict;
        redPointStre1.state = RedPointState.None;
        int Type = 0;
        foreach (var key in DogzEquipDict.Keys)
        {
            if (DogzEquipDict[key] == 1)
            {
                Type += 1;
                List<ItemModel> itemModel = dogz_model.GetDogzEquips(key);
                for (int i = 0; i < itemModel.Count; i++)
                {
                    if (itemModel[i].chinItemModel.ItemColor < ItemColor)//获取最低品质的颜色
                    {
                        ItemColor = itemModel[i].chinItemModel.ItemColor;
                    }
                    var IudetDogzEquipPlus = itemModel[i].GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus);// 神兽装备强化信息列表 [强化等级, 强化熟练度]
                    if (IudetDogzEquipPlus == null)//判断是否都满级 满级不可亮红点
                    {
                        Istrue = true;
                    }
                    else
                    {
                        if (QualityLimit.ContainsKey(itemModel[i].chinItemModel.ItemColor) && IudetDogzEquipPlus[0] < (QualityLimit[itemModel[i].chinItemModel.ItemColor]))
                        {
                            Istrue = true;
                        }
                    }
                }
                if (Istrue)
                {
                    if (playerPack.GetSinglePackModel(PackType.rptDogzItem) == null)
                    {
                        return;
                    }
                    Dictionary<int, ItemModel> BackpackDic = playerPack.GetSinglePackModel(PackType.rptDogzItem).GetPackModelIndexDict();
                    int _ItemColor = 10;
                    foreach (var keyBack in BackpackDic.Keys)
                    {
                        var itemModelBack = BackpackDic[keyBack];
                        if (itemModelBack.chinItemModel.Type == 70)//有神兽水晶时的红点
                        {
                            redPointStre1.state = RedPointState.Simple;
                            return;
                        }
                        if (itemModelBack.chinItemModel.ItemColor < _ItemColor)
                        {
                            _ItemColor = itemModelBack.chinItemModel.ItemColor;
                        }
                    }
                    if (Type >= dogz_model.DogzAssistDefaultCnt && ItemColor> _ItemColor)//出战神兽已满,且神兽背包有品质低于已助战神兽品质颜色时
                    {
                        redPointStre1.state = RedPointState.Simple;
                        return;
                    }
                }
            }
        }
    }
}