少年修仙传客户端代码仓库
client_linchunjie
2018-08-20 bec6281b04630827bd400e1b6a50ce8a57dc95ec
System/KnapSack/Logic/WashAttrPointWin.cs
@@ -1,185 +1,176 @@
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
using System;
namespace Snxxz.UI
{
    public class WashAttrPointWin : Window
    {
        [SerializeField] Toggle strenToggle; //力量
        [SerializeField] Toggle agilityToggle; //身法
        [SerializeField] Toggle physiqueToggle; //体质
        [SerializeField] Toggle mentAlityToggle; //灵力
        [SerializeField] Button closeBtn;
        [SerializeField] Button okBtn;
        [SerializeField] Text washAttrDesText;
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack
        {
            get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
        }
        RolePointModel _rolePointModel;
        RolePointModel rolePointModel
        {
            get
            {
                return _rolePointModel ?? (_rolePointModel = ModelCenter.Instance.GetModel<RolePointModel>());
            }
        }
        public static ItemModel itemModel = null;
        private ItemConfig itemConfig = null;
        private AttrEnum selectAttr = AttrEnum.POWER;
        float washPoint = 0;
        protected override void AddListeners()
        {
        }
        protected override void BindController()
        {
        }
        protected override void OnPreOpen()
        {
            washPoint = 0;
            strenToggle.isOn = true;
            agilityToggle.isOn = false;
            physiqueToggle.isOn = false;
            mentAlityToggle.isOn = false;
            strenToggle.onValueChanged.AddListener((bool isOn)=> { OnClickToggle(isOn); });
            agilityToggle.onValueChanged.AddListener((bool isOn) => { OnClickToggle(isOn); });
            physiqueToggle.onValueChanged.AddListener((bool isOn) => { OnClickToggle(isOn); });
            mentAlityToggle.onValueChanged.AddListener((bool isOn) => { OnClickToggle(isOn); });
            closeBtn.AddListener(CloseWin);
            okBtn.AddListener(ClickSureBtn);
        }
        protected override void OnAfterOpen()
        {
            InitUI();
        }
        protected override void OnPreClose()
        {
            closeBtn.RemoveAllListeners();
            strenToggle.RemoveAllListeners();
            agilityToggle.RemoveAllListeners();
            physiqueToggle.RemoveAllListeners();
            mentAlityToggle.RemoveAllListeners();
            okBtn.RemoveAllListeners();
        }
        protected override void OnAfterClose()
        {
        }
        private void InitUI()
        {
            if (itemModel == null) return;
            itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(itemModel.itemId);
            SetCurWashAttr();
            RefreshWashAttrDes();
        }
        private void OnClickToggle(bool isOn)
        {
            SetCurWashAttr();
            RefreshWashAttrDes();
        }
        private void SetCurWashAttr()
        {
            if (strenToggle.isOn)
            {
                selectAttr = AttrEnum.POWER;
            }
            else if (agilityToggle.isOn)
            {
                selectAttr = AttrEnum.AGILITY;
            }
            else if (physiqueToggle.isOn)
            {
                selectAttr = AttrEnum.PHYSIQUE;
            }
            else if (mentAlityToggle.isOn)
            {
                selectAttr = AttrEnum.MENTALITY;
            }
        }
        private void RefreshWashAttrDes()
        {
            float initPoint = rolePointModel.GetPointCreate(PlayerDatas.Instance.baseData.Job)[(int)selectAttr];
            switch (selectAttr)
            {
                case AttrEnum.POWER:
                    washPoint = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataRefresh.BaseSTR) - initPoint;
                    break;
                case AttrEnum.AGILITY:
                    washPoint = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataRefresh.BasePHY) - initPoint;
                    break;
                case AttrEnum.PHYSIQUE:
                    washPoint = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataRefresh.BaseCON) - initPoint;
                    break;
                case AttrEnum.MENTALITY:
                    washPoint = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataRefresh.BasePNE) - initPoint;
                    break;
            }
            PlayerPropertyConfig propertyConfig = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>((int)selectAttr);
            washAttrDesText.text = Language.Get("BagWin_Washpoint2", propertyConfig.Name, UIHelper.GetPropertyMapPlayerData(selectAttr), washPoint);
        }
        private void ClickSureBtn()
        {
            if (itemConfig == null || itemModel == null) return;
            if(washPoint <= 0)
            {
                SysNotifyMgr.Instance.ShowTip("WashPoint");
            }
            else
            {
                int needCnt = (int)washPoint / itemConfig.EffectValueA1;
                int remain = (int)washPoint % itemConfig.EffectValueA1;
                if(remain > 0)
                {
                    needCnt = needCnt + 1;
                }
                if(needCnt > itemModel.itemInfo.ItemCount)
                {
                    needCnt = itemModel.itemInfo.ItemCount;
                }
                if (itemModel.chinItemModel.BatchUse == 1 && needCnt > 1)
                {
                    BatchUseModel.Instance.SetBatchModel(itemModel.itemInfo.ItemGUID);
                    BatchUseModel.Instance.SetExtraInfo((int)selectAttr,needCnt);
                    WindowCenter.Instance.Open<WashPointBatchUseWin>();
                }
                else
                {
                    PackSendQuestMgr.Instance.SendMakeUseQuest(itemModel.itemInfo.ItemPlace,1,(int)selectAttr);
                }
            }
            CloseWin();
        }
        private void CloseWin()
        {
            CloseImmediately();
        }
    }
}
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
using System;
namespace Snxxz.UI
{
    public class WashAttrPointWin : Window
    {
        [SerializeField] Toggle strenToggle; //力量
        [SerializeField] Toggle agilityToggle; //身法
        [SerializeField] Toggle physiqueToggle; //体质
        [SerializeField] Toggle mentAlityToggle; //灵力
        [SerializeField] Button closeBtn;
        [SerializeField] Button okBtn;
        [SerializeField] Text washAttrDesText;
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack
        {
            get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
        }
        public static ItemModel itemModel = null;
        private ItemConfig itemConfig = null;
        private AttrEnum selectAttr = AttrEnum.POWER;
        float washPoint = 0;
        protected override void AddListeners()
        {
        }
        protected override void BindController()
        {
        }
        protected override void OnPreOpen()
        {
            washPoint = 0;
            strenToggle.isOn = true;
            agilityToggle.isOn = false;
            physiqueToggle.isOn = false;
            mentAlityToggle.isOn = false;
            strenToggle.onValueChanged.AddListener((bool isOn)=> { OnClickToggle(isOn); });
            agilityToggle.onValueChanged.AddListener((bool isOn) => { OnClickToggle(isOn); });
            physiqueToggle.onValueChanged.AddListener((bool isOn) => { OnClickToggle(isOn); });
            mentAlityToggle.onValueChanged.AddListener((bool isOn) => { OnClickToggle(isOn); });
            closeBtn.AddListener(CloseWin);
            okBtn.AddListener(ClickSureBtn);
        }
        protected override void OnAfterOpen()
        {
            InitUI();
        }
        protected override void OnPreClose()
        {
            closeBtn.RemoveAllListeners();
            strenToggle.RemoveAllListeners();
            agilityToggle.RemoveAllListeners();
            physiqueToggle.RemoveAllListeners();
            mentAlityToggle.RemoveAllListeners();
            okBtn.RemoveAllListeners();
        }
        protected override void OnAfterClose()
        {
        }
        private void InitUI()
        {
            if (itemModel == null) return;
            itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(itemModel.itemId);
            SetCurWashAttr();
            RefreshWashAttrDes();
        }
        private void OnClickToggle(bool isOn)
        {
            SetCurWashAttr();
            RefreshWashAttrDes();
        }
        private void SetCurWashAttr()
        {
            if (strenToggle.isOn)
            {
                selectAttr = AttrEnum.POWER;
            }
            else if (agilityToggle.isOn)
            {
                selectAttr = AttrEnum.AGILITY;
            }
            else if (physiqueToggle.isOn)
            {
                selectAttr = AttrEnum.PHYSIQUE;
            }
            else if (mentAlityToggle.isOn)
            {
                selectAttr = AttrEnum.MENTALITY;
            }
        }
        private void RefreshWashAttrDes()
        {
            //float initPoint = rolePointModel.GetPointCreate(PlayerDatas.Instance.baseData.Job)[(int)selectAttr];
            //switch (selectAttr)
            //{
            //    case AttrEnum.POWER:
            //        washPoint = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataRefresh.BaseSTR) - initPoint;
            //        break;
            //    case AttrEnum.AGILITY:
            //        washPoint = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataRefresh.BasePHY) - initPoint;
            //        break;
            //    case AttrEnum.PHYSIQUE:
            //        washPoint = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataRefresh.BaseCON) - initPoint;
            //        break;
            //    case AttrEnum.MENTALITY:
            //        washPoint = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataRefresh.BasePNE) - initPoint;
            //        break;
            //}
            PlayerPropertyConfig propertyConfig = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>((int)selectAttr);
            washAttrDesText.text = Language.Get("BagWin_Washpoint2", propertyConfig.Name, UIHelper.GetPropertyMapPlayerData(selectAttr), washPoint);
        }
        private void ClickSureBtn()
        {
            if (itemConfig == null || itemModel == null) return;
            if(washPoint <= 0)
            {
                SysNotifyMgr.Instance.ShowTip("WashPoint");
            }
            else
            {
                int needCnt = (int)washPoint / itemConfig.EffectValueA1;
                int remain = (int)washPoint % itemConfig.EffectValueA1;
                if(remain > 0)
                {
                    needCnt = needCnt + 1;
                }
                if(needCnt > itemModel.itemInfo.ItemCount)
                {
                    needCnt = itemModel.itemInfo.ItemCount;
                }
                if (itemModel.chinItemModel.BatchUse == 1 && needCnt > 1)
                {
                    BatchUseModel.Instance.SetBatchModel(itemModel.itemInfo.ItemGUID);
                    BatchUseModel.Instance.SetExtraInfo((int)selectAttr,needCnt);
                    WindowCenter.Instance.Open<WashPointBatchUseWin>();
                }
                else
                {
                    PackSendQuestMgr.Instance.SendMakeUseQuest(itemModel.itemInfo.ItemPlace,1,(int)selectAttr);
                }
            }
            CloseWin();
        }
        private void CloseWin()
        {
            CloseImmediately();
        }
    }
}