少年修仙传客户端代码仓库
client_linchunjie
2019-04-12 dc8706297ee79a8732071fb0979f3066911dc4c0
3335 缥缈仙域
2个文件已修改
2个文件已添加
243 ■■■■■ 已修改文件
System/Dungeon/DungeonData.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyDemonKingVictoryWin.cs 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyDemonKingVictoryWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonData.cs
@@ -64,6 +64,8 @@
        public int wheel;
        public Dictionary<string, AssistPlayer> helpPlayer;
        public int memberCnt;
        public uint ownerID;
        public string ownerName;
        public long totalExp
        {
System/Dungeon/DungeonModel.cs
@@ -1048,6 +1048,11 @@
                        case RidingPetBossModel.RIDINGPETBOSS_MAP:
                            WindowCenter.Instance.Open<RidingPetBossVictoryWin>();
                            break;
                        case 22030:
                        case 32030:
                        case HazyDemonKingModel.Client_MapID:
                            WindowCenter.Instance.Open<HazyDemonKingVictoryWin>();
                            break;
                        default:
                            WindowCenter.Instance.Open<DungeonVictoryWin>();
                            break;
System/HazyRegion/HazyDemonKingVictoryWin.cs
New file
@@ -0,0 +1,224 @@
//--------------------------------------------------------
//    [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);
                }
            }
        }
    }
}
System/HazyRegion/HazyDemonKingVictoryWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 755ec5b8ac83ebe45884700b3ef99683
timeCreated: 1555054379
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: