using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.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 _togglelist = new List(); [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(); } } protected override void BindController() { //ItemCellModel itemCellModel = new ItemCellModel(m_TargetItemId); //m_ItemCell.Init(itemCellModel); //m_ItemCell.countText.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() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); } 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 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 checkText = go.transform.Find("Checkmark_text").GetComponent(); if(isOpen) { bgText.SetActive(false); checkText.SetActive(true); } else { bgText.SetActive(true); checkText.SetActive(false); } } private void MoveImage(GameObject go,bool isOpen) { RectTransform switchIcon = go.transform.Find("Image").GetComponent(); Text onText = go.transform.Find("ON").GetComponent(); Text offText = go.transform.Find("Off").GetComponent(); Image bgIcon = go.GetComponent(); if (isOpen) { switchIcon.anchoredPosition3D = OnPos; onText.SetActive(true); offText.SetActive(false); bgIcon.SetSprite("SettingUpWin_NO"); } else { switchIcon.anchoredPosition3D = OffPos; onText.SetActive(false); offText.SetActive(true); bgIcon.SetSprite("SettingUpWin_OFF"); } } //private void ClickAddOfflinePlugin() //{ // ItemTipUtility.Show(952); //} } }