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()); } } 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 = Config.Instance.Get(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 = Config.Instance.Get((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(); } else { PackSendQuestMgr.Instance.SendMakeUseQuest(itemModel.itemInfo.ItemPlace,1,(int)selectAttr); } } CloseWin(); } private void CloseWin() { CloseImmediately(); } } }