| New file |
| | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Friday, April 12, 2019
|
| | | //--------------------------------------------------------
|
| | |
|
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
|
| | | public class HazyDemonKingVictoryWin : Window
|
| | | {
|
| | | [SerializeField] Transform m_ContainerPoivt;
|
| | | [SerializeField] Text m_PlayerName;
|
| | | [SerializeField] ScrollRect m_RewardsScroll;
|
| | | [SerializeField] Text m_ExitTimer;
|
| | | [SerializeField] HorizontalLayoutGroup m_RewardLayout;
|
| | | [SerializeField] ButtonEx m_Exit;
|
| | | [SerializeField] DemonJarRewardBehaviour m_SpecialItem;
|
| | |
|
| | | List<DemonJarRewardBehaviour> m_Items = new List<DemonJarRewardBehaviour>();
|
| | |
|
| | | float timer = 0f;
|
| | |
|
| | | DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | |
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void AddListeners()
|
| | | {
|
| | | m_Exit.AddListener(ExitDungeon);
|
| | | }
|
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | timer = 0f;
|
| | | m_ContainerPoivt.gameObject.SetActive(false);
|
| | | }
|
| | |
|
| | | protected override void OnActived()
|
| | | {
|
| | | base.OnActived();
|
| | | var config = DungeonOpenTimeConfig.Get(PlayerDatas.Instance.baseData.MapID);
|
| | | StartCoroutine(Co_DelayDisplay(config.DelayTime * 0.001f));
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void LateUpdate()
|
| | | {
|
| | | base.LateUpdate();
|
| | |
|
| | | var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | if (endTime > TimeUtility.ServerNow)
|
| | | {
|
| | | timer -= Time.deltaTime;
|
| | | if (timer < 0f)
|
| | | {
|
| | | timer = 1f;
|
| | | var seconds = (endTime - TimeUtility.ServerNow).TotalSeconds;
|
| | | m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
| | | }
|
| | |
|
| | | if (!m_ExitTimer.gameObject.activeInHierarchy)
|
| | | {
|
| | | m_ExitTimer.gameObject.SetActive(true);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | if (m_ExitTimer.gameObject.activeInHierarchy)
|
| | | {
|
| | | m_ExitTimer.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | }
|
| | | #endregion
|
| | |
|
| | | IEnumerator Co_DelayDisplay(float _delay)
|
| | | {
|
| | | yield return new WaitForSeconds(_delay);
|
| | |
|
| | | var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var seconds = (endTime - TimeUtility.ServerNow).TotalSeconds;
|
| | | timer = 0f;
|
| | | m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
| | | m_ExitTimer.gameObject.SetActive(true);
|
| | | m_ContainerPoivt.gameObject.SetActive(true);
|
| | |
|
| | | DisplayRewards();
|
| | | }
|
| | |
|
| | | private void DisplayRewards()
|
| | | {
|
| | | var serverItems = model.dungeonResult.itemInfo;
|
| | | var items = new List<Item>();
|
| | |
|
| | | m_SpecialItem.gameObject.SetActive(false);
|
| | |
|
| | | var itemCount = 0;
|
| | |
|
| | | bool isBelongToPlayer = PlayerDatas.Instance.baseData.PlayerID == model.dungeonResult.ownerID;
|
| | |
|
| | | if (serverItems != null)
|
| | | {
|
| | | for (int i = 0; i < serverItems.Length; i++)
|
| | | {
|
| | | if (isBelongToPlayer && i == 0)
|
| | | {
|
| | | m_SpecialItem.gameObject.SetActive(true);
|
| | | m_SpecialItem.Display(new Item(serverItems[i].ItemID, serverItems[i].Count));
|
| | | }
|
| | | else
|
| | | {
|
| | | items.Add(new Item(serverItems[i].ItemID, serverItems[i].Count));
|
| | | }
|
| | | }
|
| | |
|
| | | itemCount = serverItems.Length;
|
| | | }
|
| | |
|
| | |
|
| | | items.Sort(RewardSort);
|
| | |
|
| | | GenerateRewardBehaviour(m_RewardsScroll.content, items.Count);
|
| | |
|
| | | if (itemCount < 6)
|
| | | {
|
| | | m_RewardLayout.childAlignment = TextAnchor.MiddleCenter;
|
| | | (m_RewardLayout.transform as RectTransform).pivot = new Vector2(0.5f, 0.5f);
|
| | | }
|
| | | else
|
| | | {
|
| | | m_RewardLayout.childAlignment = TextAnchor.MiddleLeft;
|
| | | (m_RewardLayout.transform as RectTransform).pivot = new Vector2(0, 0.5f);
|
| | | }
|
| | |
|
| | | for (int i = 0; i < m_Items.Count; i++)
|
| | | {
|
| | | var behaviour = m_Items[i];
|
| | | if (i < items.Count)
|
| | | {
|
| | | behaviour.gameObject.SetActive(true);
|
| | | behaviour.Display(items[i]);
|
| | | }
|
| | | else
|
| | | {
|
| | | behaviour.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | void DisplayBelongTo()
|
| | | {
|
| | | m_PlayerName.text = UIHelper.ServerStringTrim(model.dungeonResult.ownerName);
|
| | | }
|
| | |
|
| | | private void ExitDungeon()
|
| | | {
|
| | | if (PlayerDatas.Instance.baseData.MapID == HazyDemonKingModel.Client_MapID)
|
| | | {
|
| | | ModelCenter.Instance.GetModel<HazyDemonKingModel>().RequestExitClientDungeon();
|
| | | }
|
| | | else
|
| | | {
|
| | | model.ExitCurrentDungeon();
|
| | | }
|
| | | }
|
| | |
|
| | | private int RewardSort(Item _lhs, Item _rhs)
|
| | | {
|
| | | var lhsConfig = ItemConfig.Get(_lhs.id);
|
| | | var rhsConfig = ItemConfig.Get(_rhs.id);
|
| | | if (lhsConfig != null && rhsConfig != null)
|
| | | {
|
| | | return -lhsConfig.ItemColor.CompareTo(rhsConfig.ItemColor);
|
| | | }
|
| | | return 0;
|
| | | }
|
| | |
|
| | | bool IsSpeicalItem(int id)
|
| | | {
|
| | | return false;
|
| | | }
|
| | |
|
| | | private void GenerateRewardBehaviour(RectTransform _parent, int _needCount)
|
| | | {
|
| | | var nowCount = m_Items.Count;
|
| | | var dif = _needCount - nowCount;
|
| | | if (dif > 0)
|
| | | {
|
| | | for (int i = 0; i < dif; i++)
|
| | | {
|
| | | var instance = UIUtility.CreateWidget("DemonJarRewardBehaviour", "DemonJarRewardBehaviour");
|
| | | var behaviour = instance.GetComponent<DemonJarRewardBehaviour>();
|
| | | m_Items.Add(behaviour);
|
| | | instance.transform.SetParentEx(_parent, Vector3.zero, Vector3.zero, Vector3.one);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|