using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
using System.Collections.Generic;
|
|
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 = ItemConfig.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()
|
{
|
var model = ModelCenter.Instance.GetModel<RolePointModel>();
|
Dictionary<int, int> dict = null;
|
bool isContain = model.TryGetPointInit(PlayerDatas.Instance.baseData.Job,out dict);
|
float initPoint = 0;
|
if(isContain && dict.ContainsKey((int)selectAttr))
|
{
|
initPoint = dict[(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 = PlayerPropertyConfig.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.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<WashPointBatchUseWin>();
|
}
|
else
|
{
|
ItemOperateUtility.Instance.UseItem(itemModel.itemPlace,1,(int)selectAttr);
|
}
|
|
}
|
CloseWin();
|
}
|
|
private void CloseWin()
|
{
|
CloseImmediately();
|
}
|
}
|
}
|