using UnityEngine; using UnityEngine.UI; using System; using System.Collections.Generic; namespace vnxbqy.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; PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } public static ItemModel itemModel = null; private ItemConfig itemConfig = null; private PropertyType selectAttr = PropertyType.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 = ItemConfig.Get(itemModel.itemId); SetCurWashAttr(); RefreshWashAttrDes(); } private void OnClickToggle(bool isOn) { SetCurWashAttr(); RefreshWashAttrDes(); } private void SetCurWashAttr() { if (strenToggle.isOn) { selectAttr = PropertyType.POWER; } else if (agilityToggle.isOn) { selectAttr = PropertyType.AGILITY; } else if (physiqueToggle.isOn) { selectAttr = PropertyType.PHYSIQUE; } else if (mentAlityToggle.isOn) { selectAttr = PropertyType.MENTALITY; } } private void RefreshWashAttrDes() { var model = ModelCenter.Instance.GetModel(); washPoint = model.GetReikiRootFreePoint((int)selectAttr); PlayerPropertyConfig propertyConfig = PlayerPropertyConfig.Get((int)selectAttr); washAttrDesText.text = Language.Get("BagWin_Washpoint2", propertyConfig.Name, UIHelper.GetPropertyValue(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.count) { needCnt = itemModel.count; } if (itemModel.config.BatchUse == 1 && needCnt > 1) { BatchUseModel.Instance.SetBatchModel(itemModel.guid); BatchUseModel.Instance.SetExtraInfo((int)selectAttr,needCnt); WindowCenter.Instance.Open(); } else { ItemOperateUtility.Instance.UseItem(itemModel.guid,1,(int)selectAttr); } } CloseWin(); } private void CloseWin() { CloseImmediately(); } } }