少年修仙传客户端代码仓库
client_linchunjie
2019-05-20 18c7ad01a788a4aa4dd2645127da2c4848d884db
6857 【2.0】【开发】使用五行灵根丹药相关表现
2个文件已添加
2个文件已修改
165 ■■■■■ 已修改文件
System/Alchemy/AlchemyDrugBatchUseWin.cs 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Alchemy/AlchemyDrugBatchUseWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Alchemy/AlchemyUseDrugCell.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/TreasureSkillModel.cs 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Alchemy/AlchemyDrugBatchUseWin.cs
New file
@@ -0,0 +1,141 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, May 20, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class AlchemyDrugBatchUseWin : Window
    {
        [SerializeField] ItemCell m_Item;
        [SerializeField] Text m_ItemName;
        [SerializeField] Slider m_SplitSlider;
        [SerializeField] Text m_Number;
        [SerializeField] Button m_AddBtn;
        [SerializeField] Button m_ReduceBtn;
        [SerializeField] Button m_SplitBtn;
        [SerializeField] Button m_CloseBtn;
        public static int itemId = 0;
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            m_SplitSlider.SetListener((float value) => { OnValueChange(); });
            m_AddBtn.SetListener(OnClickAddBtn);
            m_ReduceBtn.SetListener(OnClickReduceBtn);
            m_SplitBtn.SetListener(OnClickBatchUseBtn);
            m_CloseBtn.SetListener(CloseClick);
        }
        protected override void OnPreOpen()
        {
            Display();
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        void Display()
        {
            var config = ItemConfig.Get(itemId);
            var itemCount = packModel.GetItemCountByID(PackType.Item, itemId);
            int maxValue = itemCount;
            AlchemyDrugUseLimit drugUseLimit;
            if (model.TryGetAlchemyUseLimit(itemId, out drugUseLimit))
            {
                maxValue = Mathf.Min(itemCount, drugUseLimit.GetUseLimit());
            }
            var itemData = new ItemCellModel(itemId, true, (ulong)maxValue);
            m_Item.Init(itemData);
            m_Item.countText.text = maxValue.ToString();
            m_ItemName.text = config.ItemName;
            m_ItemName.color = UIHelper.GetUIColor(config.ItemColor, true);
            m_SplitSlider.minValue = 1;
            m_SplitSlider.maxValue = maxValue;
            m_SplitSlider.value = maxValue;
            m_Number.text = Mathf.Ceil(m_SplitSlider.value).ToString();
        }
        public void OnValueChange()
        {
            m_Number.text = Mathf.Ceil(m_SplitSlider.value).ToString();
        }
        public void OnClickAddBtn()
        {
            if (m_SplitSlider.value < m_SplitSlider.maxValue)
            {
                m_SplitSlider.value++;
            }
        }
        public void OnClickReduceBtn()
        {
            if (m_SplitSlider.value > m_SplitSlider.minValue)
            {
                m_SplitSlider.value--;
            }
        }
        public void OnClickBatchUseBtn()
        {
            var count = (int)Mathf.Ceil(m_SplitSlider.value);
            var items = packModel.GetItemsById(PackType.Item, itemId);
            if (items != null)
            {
                for (int i = 0; i < items.Count; i++)
                {
                    var item = items[i];
                    if (count >= item.count)
                    {
                        ItemOperateUtility.Instance.UseItem(item.guid, item.count);
                        count -= item.count;
                    }
                    else
                    {
                        if (count > 0)
                        {
                            ItemOperateUtility.Instance.UseItem(item.guid, count);
                        }
                        break;
                    }
                }
            }
            CloseImmediately();
        }
    }
}
System/Alchemy/AlchemyDrugBatchUseWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 8b3d06fa55edbcd42aeaf7df16dfe787
timeCreated: 1558343923
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Alchemy/AlchemyUseDrugCell.cs
@@ -85,10 +85,16 @@
            switch (state)
            {
                case 0:
                    var itemCount = packModel.GetItemCountByID(PackType.Item, itemId);
                    var list = packModel.GetItemsById(PackType.Item, itemId);
                    if (list != null && list.Count > 0)
                    {
                        if (ItemOperateUtility.Instance.CheckItemUselimit(itemId))
                        if (itemCount > 1)
                        {
                            AlchemyDrugBatchUseWin.itemId = itemId;
                            WindowCenter.Instance.Open<AlchemyDrugBatchUseWin>();
                        }
                        else if (ItemOperateUtility.Instance.CheckItemUselimit(itemId))
                        {
                            ItemOperateUtility.Instance.UseItem(list[0].guid);
                        }
System/Skill/TreasureSkillModel.cs
@@ -534,8 +534,8 @@
            foreach (var skill in treasureSkills.Values)
            {
                var error = 0;
                if (requireRemind && funcOpen &&
                    TryLevelUpTreasureSkill(skill.skillId, out error)
                if (requireRemind && funcOpen && PlayerDatas.Instance.baseData.LV >= skillLevelUpLimitLevel
                    && TryLevelUpTreasureSkill(skill.skillId, out error)
                    && skill.level > 0)
                {
                    skill.levelUpRedpoint.state = RedPointState.Simple;