少年修仙传客户端代码仓库
client_linchunjie
2018-08-27 d106f11e7f44c748f595da36e0cdfd54849649e6
System/Dungeon/DungeonLiquidCell.cs
@@ -1,217 +1,217 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using EnhancedUI.EnhancedScroller;
using Snxxz.UI;
using TableConfig;
public class DungeonLiquidCell : ScrollerUI
{
    [SerializeField] Transform m_ContainerUp;
    [SerializeField] Text m_ExpUpper;
    [SerializeField] Image m_UpperIcon;
    [SerializeField] Transform m_ContainerBuy;
    [SerializeField] Text m_Cost;
    [SerializeField] Image m_ItemBG;
    [SerializeField] Image m_ItemIcon;
    [SerializeField] Image m_MoneyIcon;
    [SerializeField] Text m_ItemCount;
    [SerializeField] Button m_FuncBtn;
    [SerializeField] Button m_ItemBtn;
    [SerializeField] Text m_BtnTxt;
    [SerializeField] Transform m_ContainerUse;
    DungeonLiquidModel m_Model;
    DungeonLiquidModel model
    {
        get
        {
            return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonLiquidModel>());
        }
    }
    PlayerBuffDatas m_BuffModel;
    PlayerBuffDatas Buffmodel
    {
        get
        {
            return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>());
        }
    }
    StoreModel _storeModel;
    StoreModel m_storeModel
    {
        get { return _storeModel ?? (_storeModel = ModelCenter.Instance.GetModel<StoreModel>()); }
    }
    public override void Refresh(CellView cell)
    {
        int index = cell.index;
        if (model.IsBagHasLiquid)
        {
            if (index < model.liquidItemList.Count)
            {
                ItemModel itemModel = model.liquidItemList[index];
                ItemConfig cfg = ConfigManager.Instance.GetTemplate<ItemConfig>((int)itemModel.itemInfo.ItemID);
                m_ItemIcon.SetSprite(cfg.IconKey);
                m_ItemBG.SetItemBackGround(cfg.ItemColor);
                if (itemModel.itemInfo.ItemCount > 1)
                {
                    m_ItemCount.gameObject.SetActive(true);
                    m_ItemCount.text = itemModel.itemInfo.ItemCount.ToString();
                }
                else
                {
                    m_ItemCount.gameObject.SetActive(false);
                }
                if (Buffmodel._BuffDic.ContainsKey(cfg.AddSkill1))
                {
                    m_ContainerUp.gameObject.SetActive(false);
                    m_ContainerUse.gameObject.SetActive(true);
                }
                else
                {
                    m_ContainerUse.gameObject.SetActive(false);
                    m_ContainerUp.gameObject.SetActive(true);
                    m_ContainerUp.transform.localPosition = m_ContainerUp.transform.localPosition.SetY(0);
                    SkillConfig skillCfg = ConfigManager.Instance.GetTemplate<SkillConfig>(cfg.AddSkill1);
                    m_ExpUpper.text = Language.Get("FairyLand_Func24", skillCfg.EffectValue11 / 100);
                    var _buffId = 0;
                    m_UpperIcon.gameObject.SetActive(true);
                    if (UseLiquid(out _buffId))
                    {
                        var currentSkillConfig = ConfigManager.Instance.GetTemplate<SkillConfig>(_buffId);
                        if (currentSkillConfig.EffectValue11 >= skillCfg.EffectValue11)
                        {
                            m_UpperIcon.gameObject.SetActive(false);
                        }
                    }
                }
                m_ContainerBuy.gameObject.SetActive(false);
                m_BtnTxt.text = Language.Get("FairyLand_Func25");
                m_FuncBtn.onClick.RemoveAllListeners();
                m_FuncBtn.onClick.AddListener(() =>
                {
                    OnUseItemClick(itemModel);
                });
                m_ItemBtn.onClick.RemoveAllListeners();
                m_ItemBtn.onClick.AddListener(() =>
                {
                    OnItemClick(itemModel);
                });
            }
        }
        else
        {
            if (index < model.liquidStoreConfigs.Count)
            {
                StoreConfig storeModel = model.liquidStoreConfigs[index];
                ItemConfig cfg = ConfigManager.Instance.GetTemplate<ItemConfig>(storeModel.ItemID);
                m_ItemIcon.SetSprite(cfg.IconKey);
                m_ItemBG.SetItemBackGround(cfg.ItemColor);
                m_ItemCount.gameObject.SetActive(false);
                m_MoneyIcon.SetIconWithMoneyType(storeModel.MoneyType);
                m_ContainerUp.transform.localPosition = m_ContainerUp.transform.localPosition.SetY(25);
                SkillConfig skillCfg = ConfigManager.Instance.GetTemplate<SkillConfig>(cfg.AddSkill1);
                m_ExpUpper.text = Language.Get("FairyLand_Func24", skillCfg.EffectValue11 / 100);
                m_ContainerUp.gameObject.SetActive(true);
                var _buffId = 0;
                m_UpperIcon.gameObject.SetActive(true);
                if (UseLiquid(out _buffId))
                {
                    var currentSkillConfig = ConfigManager.Instance.GetTemplate<SkillConfig>(_buffId);
                    if (currentSkillConfig.EffectValue11 >= skillCfg.EffectValue11)
                    {
                        m_UpperIcon.gameObject.SetActive(false);
                    }
                }
                m_ContainerBuy.gameObject.SetActive(true);
                m_ContainerUse.gameObject.SetActive(false);
                m_Cost.text = storeModel.MoneyNumber.ToString();
                m_BtnTxt.text = Language.Get("FairyLand_Func23");
                m_FuncBtn.onClick.RemoveAllListeners();
                m_FuncBtn.onClick.AddListener(() =>
                {
                    OnBuyItemClick(storeModel);
                });
                m_ItemBtn.onClick.RemoveAllListeners();
                m_ItemBtn.onClick.AddListener(() =>
                {
                    OnItemClick(cfg);
                });
            }
        }
    }
    private bool UseLiquid(out int _buffId)
    {
        _buffId = 0;
        for (int i = 0; i < model.liquidItems.Count; i++)
        {
            var config = ConfigManager.Instance.GetTemplate<ItemConfig>(model.liquidItems[i]);
            if (Buffmodel._BuffDic.ContainsKey(config.AddSkill1))
            {
                _buffId = config.AddSkill1;
                return true;
            }
        }
        return false;
    }
    private void OnBuyItemClick(StoreConfig storeModel)
    {
        m_storeModel.SendBuyShopItem(storeModel, 1);
    }
    private void OnUseItemClick(ItemModel itemModel)
    {
        int buffid = 0;
        for (int i = 0; i < model.liquidItems.Count; i++)
        {
            ItemConfig cfg = ConfigManager.Instance.GetTemplate<ItemConfig>(model.liquidItems[i]);
            if (Buffmodel._BuffDic.ContainsKey(cfg.AddSkill1))
            {
                buffid = cfg.AddSkill1;
                break;
            }
        }
        ItemConfig _useItemCfg = ConfigManager.Instance.GetTemplate<ItemConfig>(itemModel.itemId);
        if (buffid != 0 && buffid != _useItemCfg.AddSkill1)
        {
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("FairyLand_Func22"), (bool isOk) =>
            {
                if (isOk)
                {
                    WindowCenter.Instance.CloseImmediately<DungeonUseLiquidWin>();
                    PackSendQuestMgr.Instance.SendMakeUseQuest(itemModel.itemInfo.ItemPlace);
                }
            });
        }
        else
        {
            WindowCenter.Instance.CloseImmediately<DungeonUseLiquidWin>();
            PackSendQuestMgr.Instance.SendMakeUseQuest(itemModel.itemInfo.ItemPlace);
        }
    }
    private void OnItemClick(ItemConfig _itemCfg)
    {
        ItemAttrData itemAttrData = new ItemAttrData(_itemCfg.ID);
        ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData);
    }
    private void OnItemClick(ItemModel _itemModel)
    {
        ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(_itemModel.packType, _itemModel.itemInfo.ItemGUID);
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using EnhancedUI.EnhancedScroller;
using Snxxz.UI;
using TableConfig;
public class DungeonLiquidCell : ScrollerUI
{
    [SerializeField] Transform m_ContainerUp;
    [SerializeField] Text m_ExpUpper;
    [SerializeField] Image m_UpperIcon;
    [SerializeField] Transform m_ContainerBuy;
    [SerializeField] Text m_Cost;
    [SerializeField] Image m_ItemBG;
    [SerializeField] Image m_ItemIcon;
    [SerializeField] Image m_MoneyIcon;
    [SerializeField] Text m_ItemCount;
    [SerializeField] Button m_FuncBtn;
    [SerializeField] Button m_ItemBtn;
    [SerializeField] Text m_BtnTxt;
    [SerializeField] Transform m_ContainerUse;
    DungeonLiquidModel m_Model;
    DungeonLiquidModel model
    {
        get
        {
            return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonLiquidModel>());
        }
    }
    PlayerBuffDatas m_BuffModel;
    PlayerBuffDatas Buffmodel
    {
        get
        {
            return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>());
        }
    }
    StoreModel _storeModel;
    StoreModel m_storeModel
    {
        get { return _storeModel ?? (_storeModel = ModelCenter.Instance.GetModel<StoreModel>()); }
    }
    public override void Refresh(CellView cell)
    {
        int index = cell.index;
        if (model.IsBagHasLiquid)
        {
            if (index < model.liquidItemList.Count)
            {
                ItemModel itemModel = model.liquidItemList[index];
                ItemConfig cfg = Config.Instance.Get<ItemConfig>((int)itemModel.itemInfo.ItemID);
                m_ItemIcon.SetSprite(cfg.IconKey);
                m_ItemBG.SetItemBackGround(cfg.ItemColor);
                if (itemModel.itemInfo.ItemCount > 1)
                {
                    m_ItemCount.gameObject.SetActive(true);
                    m_ItemCount.text = itemModel.itemInfo.ItemCount.ToString();
                }
                else
                {
                    m_ItemCount.gameObject.SetActive(false);
                }
                if (Buffmodel._BuffDic.ContainsKey(cfg.AddSkill1))
                {
                    m_ContainerUp.gameObject.SetActive(false);
                    m_ContainerUse.gameObject.SetActive(true);
                }
                else
                {
                    m_ContainerUse.gameObject.SetActive(false);
                    m_ContainerUp.gameObject.SetActive(true);
                    m_ContainerUp.transform.localPosition = m_ContainerUp.transform.localPosition.SetY(0);
                    SkillConfig skillCfg = Config.Instance.Get<SkillConfig>(cfg.AddSkill1);
                    m_ExpUpper.text = Language.Get("FairyLand_Func24", skillCfg.EffectValue11 / 100);
                    var _buffId = 0;
                    m_UpperIcon.gameObject.SetActive(true);
                    if (UseLiquid(out _buffId))
                    {
                        var currentSkillConfig = Config.Instance.Get<SkillConfig>(_buffId);
                        if (currentSkillConfig.EffectValue11 >= skillCfg.EffectValue11)
                        {
                            m_UpperIcon.gameObject.SetActive(false);
                        }
                    }
                }
                m_ContainerBuy.gameObject.SetActive(false);
                m_BtnTxt.text = Language.Get("FairyLand_Func25");
                m_FuncBtn.onClick.RemoveAllListeners();
                m_FuncBtn.onClick.AddListener(() =>
                {
                    OnUseItemClick(itemModel);
                });
                m_ItemBtn.onClick.RemoveAllListeners();
                m_ItemBtn.onClick.AddListener(() =>
                {
                    OnItemClick(itemModel);
                });
            }
        }
        else
        {
            if (index < model.liquidStoreConfigs.Count)
            {
                StoreConfig storeModel = model.liquidStoreConfigs[index];
                ItemConfig cfg = Config.Instance.Get<ItemConfig>(storeModel.ItemID);
                m_ItemIcon.SetSprite(cfg.IconKey);
                m_ItemBG.SetItemBackGround(cfg.ItemColor);
                m_ItemCount.gameObject.SetActive(false);
                m_MoneyIcon.SetIconWithMoneyType(storeModel.MoneyType);
                m_ContainerUp.transform.localPosition = m_ContainerUp.transform.localPosition.SetY(25);
                SkillConfig skillCfg = Config.Instance.Get<SkillConfig>(cfg.AddSkill1);
                m_ExpUpper.text = Language.Get("FairyLand_Func24", skillCfg.EffectValue11 / 100);
                m_ContainerUp.gameObject.SetActive(true);
                var _buffId = 0;
                m_UpperIcon.gameObject.SetActive(true);
                if (UseLiquid(out _buffId))
                {
                    var currentSkillConfig = Config.Instance.Get<SkillConfig>(_buffId);
                    if (currentSkillConfig.EffectValue11 >= skillCfg.EffectValue11)
                    {
                        m_UpperIcon.gameObject.SetActive(false);
                    }
                }
                m_ContainerBuy.gameObject.SetActive(true);
                m_ContainerUse.gameObject.SetActive(false);
                m_Cost.text = storeModel.MoneyNumber.ToString();
                m_BtnTxt.text = Language.Get("FairyLand_Func23");
                m_FuncBtn.onClick.RemoveAllListeners();
                m_FuncBtn.onClick.AddListener(() =>
                {
                    OnBuyItemClick(storeModel);
                });
                m_ItemBtn.onClick.RemoveAllListeners();
                m_ItemBtn.onClick.AddListener(() =>
                {
                    OnItemClick(cfg);
                });
            }
        }
    }
    private bool UseLiquid(out int _buffId)
    {
        _buffId = 0;
        for (int i = 0; i < model.liquidItems.Count; i++)
        {
            var config = Config.Instance.Get<ItemConfig>(model.liquidItems[i]);
            if (Buffmodel._BuffDic.ContainsKey(config.AddSkill1))
            {
                _buffId = config.AddSkill1;
                return true;
            }
        }
        return false;
    }
    private void OnBuyItemClick(StoreConfig storeModel)
    {
        m_storeModel.SendBuyShopItem(storeModel, 1);
    }
    private void OnUseItemClick(ItemModel itemModel)
    {
        int buffid = 0;
        for (int i = 0; i < model.liquidItems.Count; i++)
        {
            ItemConfig cfg = Config.Instance.Get<ItemConfig>(model.liquidItems[i]);
            if (Buffmodel._BuffDic.ContainsKey(cfg.AddSkill1))
            {
                buffid = cfg.AddSkill1;
                break;
            }
        }
        ItemConfig _useItemCfg = Config.Instance.Get<ItemConfig>(itemModel.itemId);
        if (buffid != 0 && buffid != _useItemCfg.AddSkill1)
        {
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("FairyLand_Func22"), (bool isOk) =>
            {
                if (isOk)
                {
                    WindowCenter.Instance.CloseImmediately<DungeonUseLiquidWin>();
                    PackSendQuestMgr.Instance.SendMakeUseQuest(itemModel.itemInfo.ItemPlace);
                }
            });
        }
        else
        {
            WindowCenter.Instance.CloseImmediately<DungeonUseLiquidWin>();
            PackSendQuestMgr.Instance.SendMakeUseQuest(itemModel.itemInfo.ItemPlace);
        }
    }
    private void OnItemClick(ItemConfig _itemCfg)
    {
        ItemAttrData itemAttrData = new ItemAttrData(_itemCfg.ID);
        ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData);
    }
    private void OnItemClick(ItemModel _itemModel)
    {
        ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(_itemModel.packType, _itemModel.itemInfo.ItemGUID);
    }
}