//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, September 22, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using UnityEngine.EventSystems; using Snxxz.UI; namespace Snxxz.UI { public class OneKeySellWin : Window { #region 成员变量 [SerializeField] Button _closeBtn; [SerializeField] Button _sureSellBtn; [SerializeField] Button _setAutoSellBtn; [SerializeField] Text _canSellMoneyText; [SerializeField] ScrollerController _cellCtrl; [SerializeField] ScrollRect _sliderRect; #endregion private int sumLine = 0; private int sellMoney = 0; private FuncConfigConfig _funcOneKeySellModel; private Dictionary _singlePackDict; private List _oneKeySelllist = new List(); private ItemConfig _chinModel; PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } PackModelInterface _modelInterface; PackModelInterface modelInterface { get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel()); } } #region Built-in protected override void BindController() { _cellCtrl.OnRefreshCell += OnRefreshGridCell; _cellCtrl.vertical = true; } protected override void AddListeners() { } protected override void OnPreOpen() { DTC0721_tagMakeItemAnswer.MakeItemAnswerEvent += OneKeySellSuccess; _closeBtn.onClick.AddListener(OnClickCloseBtn); _sureSellBtn.onClick.AddListener(()=> { OnClickSellBtn(_oneKeySelllist); } ); _setAutoSellBtn.onClick.AddListener(OnClickSetAutoSellBtn); _funcOneKeySellModel = ConfigManager.Instance.GetTemplate("OneKeySellGridCount"); sumLine = int.Parse(_funcOneKeySellModel.Numerical1) / 6; InitModel(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { DTC0721_tagMakeItemAnswer.MakeItemAnswerEvent -= OneKeySellSuccess; } protected override void OnAfterClose() { _closeBtn.onClick.RemoveAllListeners(); _sureSellBtn.onClick.RemoveAllListeners(); _setAutoSellBtn.onClick.RemoveAllListeners(); } #endregion private void InitModel() { _oneKeySelllist.Clear(); _oneKeySelllist = modelInterface.GetSellItemList(); OnCreateGridLineCell(); _cellCtrl.JumpIndex(0); } public void OnCreateGridLineCell() { if (_cellCtrl.GetNumberOfCells(_cellCtrl.m_Scorller) > 0) { _cellCtrl.m_Scorller.RefreshActiveCellViews(); } else { _cellCtrl.Refresh(); int code = 0; for (code = 0; code < sumLine; code++) { _cellCtrl.AddCell(ScrollerDataType.Header, code); } _cellCtrl.Restart(); } RefreshSellPrice(); } private void OnRefreshGridCell(ScrollerDataType type, CellView cell) { int gridlineIndex = cell.index; int childCode = 0; if (_oneKeySelllist.Count < 1) { for (childCode = 0; childCode < cell.transform.childCount; childCode++) { GameObject itemCell = cell.transform.GetChild(childCode).Find("ItemCell").gameObject; GameObject gridLock = cell.transform.GetChild(childCode).Find("GridLock").gameObject; itemCell.SetActive(false); gridLock.SetActive(false); } return; } for (childCode = 0; childCode < cell.transform.childCount; childCode++) { ItemCell itemCell = cell.transform.GetChild(childCode).Find("ItemCell").GetComponent(); GameObject gridLock = cell.transform.GetChild(childCode).Find("GridLock").gameObject; int cellCount = (cell.transform.childCount) * gridlineIndex + (childCode + 1); itemCell.gameObject.SetActive(false); gridLock.SetActive(false); if(_oneKeySelllist.Count >= cellCount) { itemCell.gameObject.SetActive(true); ItemModel itemModel = _oneKeySelllist[cellCount - 1]; itemCell.Init(itemModel,true); itemCell.cellBtn.onClick.RemoveAllListeners(); itemCell.cellBtn.onClick.AddListener(()=> { OnSingleClickItemCell(itemModel,itemCell.gameObject); }); } } } private void RefreshSellPrice() { sellMoney = 0; int i = 0; for(i = 0; i < _oneKeySelllist.Count; i++) { _chinModel = ConfigManager.Instance.GetTemplate((int)_oneKeySelllist[i].itemInfo.ItemID); if(_chinModel != null) { sellMoney += _chinModel.SilverPrice; } } _canSellMoneyText.text = sellMoney.ToString(); } #region 点击事件 private void OnSingleClickItemCell(ItemModel model,GameObject go) { if(_oneKeySelllist.Contains(model)) { _oneKeySelllist.Remove(model); go.SetActive(false); RefreshSellPrice(); } } private void OnClickSetAutoSellBtn() { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SystemSettingFunc1); //SysNotifyMgr.Instance.ShowTip("UnopenedFunction"); } private void OnClickSellBtn(List _oneKeySelllist) { modelInterface.SendOneKeySellQuest(_oneKeySelllist); if(_oneKeySelllist.Count < 1) { OnClickCloseBtn(); } } private void OneKeySellSuccess(H0721_tagMakeItemAnswer obj) { if (obj.MakeType != (byte)MakeType.Def_mitKeySell) return; if(obj.Result == 1) { modelInterface.SendPackResetQuest(PackType.rptItem); } OnClickCloseBtn(); } private void OnClickCloseBtn() { Close(); } #endregion } }