using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class HangUpWin : Window
|
{
|
|
#region 得到组件
|
[SerializeField]
|
private Text _hpPercentText;
|
[SerializeField]
|
private Slider _hpPercentSlider;
|
[SerializeField]
|
private Text _offlinePluginTimeText;
|
//[SerializeField]
|
//private Button _addOfflinePlugin;
|
[SerializeField] ItemCell m_ItemCell;
|
[SerializeField] Button m_AddTimeBtn;
|
|
[SerializeField]
|
private List<Toggle> _togglelist = new List<Toggle>();
|
|
[SerializeField]
|
Vector3 OnPos = new Vector3(18, 1, 0);
|
[SerializeField]
|
Vector3 OffPos = new Vector3(-18, 1, 0);
|
|
#endregion
|
private const int m_TargetItemId = 952;
|
private PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
|
protected override void BindController()
|
{
|
ItemCellModel itemCellModel = new ItemCellModel(m_TargetItemId);
|
m_ItemCell.Init(itemCellModel);
|
m_ItemCell.countText.gameObject.SetActive(true);
|
m_ItemCell.button.AddListener(() => ItemTipUtility.Show(m_TargetItemId));
|
}
|
|
protected override void AddListeners()
|
{
|
InitUI();
|
_hpPercentSlider.SetListener(OnSliderHpPrecent);
|
//_addOfflinePlugin.SetListener(ClickAddOfflinePlugin);
|
m_AddTimeBtn.AddListener(OnAddTimeBtnDown);
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
packModel.useItemSuccessEvent += RefreshOfflinePluginTimeAndItemCount;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
packModel.useItemSuccessEvent -= RefreshOfflinePluginTimeAndItemCount;
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
RefreshOfflinePluginTimeAndItemCount(0, m_TargetItemId);
|
}
|
|
private void InitUI()
|
{
|
_hpPercentSlider.minValue = 1;
|
_hpPercentSlider.maxValue = 99;
|
_hpPercentSlider.value = HangUpSetModel.Instance.GetHpSet();
|
_hpPercentText.text = _hpPercentSlider.value + "%";
|
int i = 0;
|
int length = _togglelist.Count;
|
for(i = 0; i < length; i++)
|
{
|
int index = i;
|
GameObject toggle = _togglelist[i].gameObject;
|
_togglelist[i].isOn = HangUpSetModel.Instance.GetBool((HangUpAutoBoolType)i);
|
OnSetSwitchImage(toggle,(HangUpAutoBoolType)i,_togglelist[i].isOn);
|
_togglelist[i].onValueChanged.RemoveAllListeners();
|
_togglelist[i].onValueChanged.AddListener((bool isOn)=> { OnClickSwitchSet(isOn,index,toggle); });
|
}
|
}
|
|
private void RefreshOfflinePluginTimeAndItemCount(int itmeIndex ,int itemId)
|
{
|
if(itemId != m_TargetItemId)
|
{
|
return;
|
}
|
_offlinePluginTimeText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.DarkGreen,
|
HangUpSetModel.Instance.GetOfflinePluginTimeStr()), "/", "20小时");
|
var ItemCount = packModel.GetItemCountByID(PackType.Item, m_TargetItemId);
|
string ItemCountStr = StringUtility.Contact(UIHelper.AppendColor(ItemCount > 0 ? TextColType.LightGreen : TextColType.Red, ItemCount.ToString()), "/1");
|
m_ItemCell.countText.text = ItemCountStr;
|
}
|
|
private void OnAddTimeBtnDown()
|
{
|
var itemModels = packModel.GetItemsById(PackType.Item, m_TargetItemId);
|
if(itemModels != null && itemModels.Count > 0)
|
{
|
ItemOperateUtility.Instance.CheckUseCondition(itemModels[0]);
|
}
|
else
|
{
|
ItemTipUtility.Show(m_TargetItemId);
|
}
|
}
|
|
private void OnSliderHpPrecent(float value)
|
{
|
HangUpSetModel.Instance.SetHpSet(Mathf.RoundToInt(value));
|
_hpPercentText.text = Mathf.RoundToInt(value) + "%";
|
}
|
|
private void OnClickSwitchSet(bool isOn,int index,GameObject go)
|
{
|
HangUpSetModel.Instance.SetBoolSetStr((HangUpAutoBoolType)index,isOn);
|
OnSetSwitchImage(go, (HangUpAutoBoolType)index,isOn);
|
}
|
|
private void OnSetSwitchImage(GameObject go,HangUpAutoBoolType type,bool isOpen)
|
{
|
switch (type)
|
{
|
case HangUpAutoBoolType.curFixedScreen:
|
ToggleTextCtrl(go,isOpen);
|
break;
|
case HangUpAutoBoolType.curFollowScreen:
|
ToggleTextCtrl(go, isOpen);
|
break;
|
case HangUpAutoBoolType.isAutoDrop:
|
MoveImage(go,isOpen);
|
break;
|
case HangUpAutoBoolType.isAutoHangUp:
|
MoveImage(go, isOpen);
|
break;
|
case HangUpAutoBoolType.isAutoBuyDrug:
|
MoveImage(go, isOpen);
|
break;
|
case HangUpAutoBoolType.isAutoSell:
|
MoveImage(go, isOpen);
|
break;
|
case HangUpAutoBoolType.isAutoDevour:
|
MoveImage(go, isOpen);
|
break;
|
case HangUpAutoBoolType.isAutoReborn:
|
MoveImage(go, isOpen);
|
break;
|
}
|
}
|
|
private void ToggleTextCtrl(GameObject go,bool isOpen)
|
{
|
Text bgText = go.transform.Find("Background_text").GetComponent<Text>();
|
Text checkText = go.transform.Find("Checkmark_text").GetComponent<Text>();
|
if(isOpen)
|
{
|
bgText.gameObject.SetActive(false);
|
checkText.gameObject.SetActive(true);
|
}
|
else
|
{
|
bgText.gameObject.SetActive(true);
|
checkText.gameObject.SetActive(false);
|
}
|
}
|
|
private void MoveImage(GameObject go,bool isOpen)
|
{
|
RectTransform switchIcon = go.transform.Find("Image").GetComponent<RectTransform>();
|
Text onText = go.transform.Find("ON").GetComponent<Text>();
|
Text offText = go.transform.Find("Off").GetComponent<Text>();
|
Image bgIcon = go.GetComponent<Image>();
|
if (isOpen)
|
{
|
switchIcon.anchoredPosition3D = OnPos;
|
onText.gameObject.SetActive(true);
|
offText.gameObject.SetActive(false);
|
bgIcon.SetSprite("SettingUpWin_NO");
|
}
|
|
else
|
{
|
switchIcon.anchoredPosition3D = OffPos;
|
onText.gameObject.SetActive(false);
|
offText.gameObject.SetActive(true);
|
bgIcon.SetSprite("SettingUpWin_OFF");
|
}
|
|
}
|
|
|
//private void ClickAddOfflinePlugin()
|
//{
|
// ItemTipUtility.Show(952);
|
//}
|
|
}
|
}
|