少年修仙传客户端代码仓库
client_Wu Xijin
2019-01-21 a02d5e5863937437de604074d3aeba90b46222d5
5920 【前端】【1.5.100】诛仙塔功能开发
16个文件已添加
5个文件已修改
627 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/JadeDynastyTowerConfig.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/JadeDynastyTowerConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAF_Merge.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAE_Truck.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAF_Merge.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HB0_Event.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerBehaviour.cs 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerFloorBehaviour.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerFloorBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerModel.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerRankBehaviour.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerRankBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerRewardBehaviour.cs 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerRewardBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/JadeDynastyTowerWin.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyTower/TowerWin.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/JadeDynastyTowerConfig.cs
@@ -12,6 +12,7 @@
    public partial class JadeDynastyTowerConfig : ConfigBase {
        public int floorId { get ; private set ; }
        public int floorIndex { get ; private set ; }
        public string floorName { get ; private set; } 
        public int[] rewardIdsLevelS;
        public int[] rewardCountsLevelS;
@@ -32,53 +33,55 @@
            {
                floorId=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; 
            
                floorName = rawContents[1].Trim();
                floorIndex=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
            
                string[] rewardIdsLevelSStringArray = rawContents[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                floorName = rawContents[2].Trim();
                string[] rewardIdsLevelSStringArray = rawContents[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                rewardIdsLevelS = new int[rewardIdsLevelSStringArray.Length];
                for (int i=0;i<rewardIdsLevelSStringArray.Length;i++)
                {
                     int.TryParse(rewardIdsLevelSStringArray[i],out rewardIdsLevelS[i]);
                }
            
                string[] rewardCountsLevelSStringArray = rawContents[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] rewardCountsLevelSStringArray = rawContents[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                rewardCountsLevelS = new int[rewardCountsLevelSStringArray.Length];
                for (int i=0;i<rewardCountsLevelSStringArray.Length;i++)
                {
                     int.TryParse(rewardCountsLevelSStringArray[i],out rewardCountsLevelS[i]);
                }
            
                string[] rewardIdsLevelAStringArray = rawContents[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] rewardIdsLevelAStringArray = rawContents[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                rewardIdsLevelA = new int[rewardIdsLevelAStringArray.Length];
                for (int i=0;i<rewardIdsLevelAStringArray.Length;i++)
                {
                     int.TryParse(rewardIdsLevelAStringArray[i],out rewardIdsLevelA[i]);
                }
            
                string[] rewardCountsLevelAStringArray = rawContents[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] rewardCountsLevelAStringArray = rawContents[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                rewardCountsLevelA = new int[rewardCountsLevelAStringArray.Length];
                for (int i=0;i<rewardCountsLevelAStringArray.Length;i++)
                {
                     int.TryParse(rewardCountsLevelAStringArray[i],out rewardCountsLevelA[i]);
                }
            
                string[] rewardIdsLevelBStringArray = rawContents[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] rewardIdsLevelBStringArray = rawContents[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                rewardIdsLevelB = new int[rewardIdsLevelBStringArray.Length];
                for (int i=0;i<rewardIdsLevelBStringArray.Length;i++)
                {
                     int.TryParse(rewardIdsLevelBStringArray[i],out rewardIdsLevelB[i]);
                }
            
                string[] rewardCountsLevelBStringArray = rawContents[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] rewardCountsLevelBStringArray = rawContents[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                rewardCountsLevelB = new int[rewardCountsLevelBStringArray.Length];
                for (int i=0;i<rewardCountsLevelBStringArray.Length;i++)
                {
                     int.TryParse(rewardCountsLevelBStringArray[i],out rewardCountsLevelB[i]);
                }
            
                unLockEquipPlace=IsNumeric(rawContents[8]) ? int.Parse(rawContents[8]):0;
                unLockEquipPlace=IsNumeric(rawContents[9]) ? int.Parse(rawContents[9]):0;
            
                fightPower=IsNumeric(rawContents[9]) ? int.Parse(rawContents[9]):0;
                fightPower=IsNumeric(rawContents[10]) ? int.Parse(rawContents[10]):0;
            }
            catch (Exception ex)
            {
Core/GameEngine/Model/Config/JadeDynastyTowerConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: bcb7d8fc32f347441a4024465ce1df51
timeCreated: 1548041359
timeCreated: 1548051317
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 3e05761d690b75440a6be79207d0fb01
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 1d70ccd06161e0443b7a802ad94292f8
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HAF_Merge.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 71e878ac60c49ad4f964dd2dbc725739
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: eed34091b0568664b9fb42f0634496c1
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 32ceb8b7faf99f84a8b73ce53c5e3e4d
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAE_Truck.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 77f69c2b862d1704299a32d0d8eeb71e
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAF_Merge.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: fa14960fa44b0d1439bab471a764e34f
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HB0_Event.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: d914565b65f8e8145988734c4d915834
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyTower/JadeDynastyTowerBehaviour.cs
New file
@@ -0,0 +1,139 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 21, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using System;
using TableConfig;
namespace Snxxz.UI
{
    public class JadeDynastyTowerBehaviour : MonoBehaviour
    {
        [SerializeField] ScrollRect m_Tower;
        RectTransform m_RectTransform;
        RectTransform rectTransform { get { return m_RectTransform ?? (this.transform as RectTransform); } }
        float topHeight = 0f;
        float floorHeight = 0f;
        float bottomHeight = 0f;
        GameObject towerTop = null;
        GameObject towerBottom = null;
        JadeDynastyTowerFloorBehaviour towerTopBehaviour;
        bool hasCreateTowerResources = false;
        List<JadeDynastyTowerFloorBehaviour> floorBehaviours = new List<JadeDynastyTowerFloorBehaviour>();
        JadeDynastyTowerModel model { get { return ModelCenter.Instance.GetModel<JadeDynastyTowerModel>(); } }
        public void Display()
        {
            var scrollRectTransform = m_Tower.transform as RectTransform;
            scrollRectTransform.localScale = Vector3.one;
            scrollRectTransform.anchoredPosition = Vector2.zero;
            DisplayTowerBaseInfo();
            MoveToTargetFloor(model.currentFloor);
        }
        public void Dispose()
        {
            m_Tower.scrollSensitivity = 1f;
        }
        void MoveToTargetFloor(int floor)
        {
            var floors = model.GetShowFloors();
            var hasBottom = model.IsBottomFloor(floors[0]);
            var floorConfig = Config.Instance.Get<JadeDynastyTowerConfig>(floor);
            var targetNormalizePosition = (hasBottom ? bottomHeight : 0 + floorHeight * (floorConfig.floorIndex - 0.5f) - rectTransform.rect.height * 0.5f)
                            / (m_Tower.content.rect.height - rectTransform.rect.height);
            targetNormalizePosition = Mathf.Clamp01(targetNormalizePosition);
            m_Tower.verticalNormalizedPosition = targetNormalizePosition;
        }
        private void DisplayTowerBaseInfo()
        {
            CreateTowerResources();
            var floors = model.GetShowFloors();
            var hasTop = model.IsTopFloor(floors[floors.Count - 1]);
            var normalCount = hasTop ? floors.Count - 1 : floors.Count;
            if (hasTop)
            {
                towerTopBehaviour.gameObject.SetActive(true);
                towerTopBehaviour.Display(floors[floors.Count - 1]);
            }
            else
            {
                towerTopBehaviour.gameObject.SetActive(false);
            }
            for (var i = 0; i < floorBehaviours.Count; i++)
            {
                var behaviour = floorBehaviours[i];
                if (i < normalCount)
                {
                    behaviour.gameObject.SetActive(true);
                    behaviour.Display(i + (hasTop ? 1 : 0));
                }
                else
                {
                    behaviour.gameObject.SetActive(false);
                }
            }
            var hasBottom = model.IsBottomFloor(floors[0]);
            towerBottom.gameObject.SetActive(hasBottom);
        }
        private void CreateTowerResources()
        {
            if (hasCreateTowerResources)
            {
                return;
            }
            towerTop = UIUtility.CreateWidget("RuneTower_Top", "Top");
            towerTop.transform.SetParentEx(m_Tower.content, Vector3.zero, Quaternion.identity, Vector3.one);
            towerTop.transform.SetAsFirstSibling();
            topHeight = ((RectTransform)towerTop.transform).rect.height;
            towerTopBehaviour = towerTop.AddMissingComponent<JadeDynastyTowerFloorBehaviour>();
            var floorPrefab = UILoader.LoadPrefab("RuneTower_Floor");
            floorHeight = ((RectTransform)floorPrefab.transform).rect.height;
            for (int i = 0; i < 4; i++)
            {
                var instance = Instantiate<GameObject>(floorPrefab);
                var floorBehaviour = instance.AddMissingComponent<JadeDynastyTowerFloorBehaviour>();
                instance.transform.SetParentEx(m_Tower.content, Vector3.zero, Quaternion.identity, Vector3.one);
                floorBehaviours.Add(floorBehaviour);
            }
            towerBottom = UIUtility.CreateWidget("RuneTower_Bottom", "Bottom");
            towerBottom.transform.SetParentEx(m_Tower.content, Vector3.zero, Quaternion.identity, Vector3.one);
            towerBottom.transform.SetAsLastSibling();
            bottomHeight = ((RectTransform)towerBottom.transform).rect.height;
            hasCreateTowerResources = true;
        }
        private void OnDisable()
        {
            StopAllCoroutines();
        }
    }
}
System/JadeDynastyTower/JadeDynastyTowerBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c138ff352bc67574abd362aee0fc583d
timeCreated: 1548050025
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyTower/JadeDynastyTowerFloorBehaviour.cs
New file
@@ -0,0 +1,64 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 21, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI
{
    public class JadeDynastyTowerFloorBehaviour : MonoBehaviour
    {
        [SerializeField] Image m_Floor;
        [SerializeField] Button m_Selected;
        [SerializeField] TextEx m_FloorName;
        [SerializeField] Image m_Challenge;
        [SerializeField] Image m_Cover;
        [SerializeField] RectTransform m_ContainerSelected;
        [SerializeField] UIEffect m_GateEffect;
        RectTransform m_RectTransform;
        RectTransform rectTransform { get { return m_RectTransform ?? (this.transform as RectTransform); } }
        JadeDynastyTowerModel model { get { return ModelCenter.Instance.GetModel<JadeDynastyTowerModel>(); } }
        int floorId = 0;
        public void Display(int _floorId)
        {
            this.floorId = _floorId;
            var isOpened = this.model.currentFloor >= this.floorId;
            var config = Config.Instance.Get<JadeDynastyTowerConfig>(floorId);
            m_FloorName.text = config.floorName;
            m_Cover.gameObject.SetActive(this.model.currentFloor > this.floorId);
            if (this.model.currentFloor == this.floorId)
            {
                m_GateEffect.Play();
                m_Challenge.gameObject.SetActive(true);
                m_ContainerSelected.gameObject.SetActive(true);
                m_FloorName.color = UIHelper.GetUIColor(TextColType.NavyYellow);
            }
            else
            {
                m_GateEffect.Stop();
                m_Challenge.gameObject.SetActive(false);
                m_ContainerSelected.gameObject.SetActive(false);
                m_FloorName.color = UIHelper.s_LightYellow;
            }
        }
        public void Dispose()
        {
        }
    }
}
System/JadeDynastyTower/JadeDynastyTowerFloorBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1e7ee76654016d1448b8fd5f9f680822
timeCreated: 1548051421
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyTower/JadeDynastyTowerModel.cs
@@ -1,16 +1,18 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TableConfig;
namespace Snxxz.UI
{
    public class JadeDynastyTowerModel : Model, IPlayerLoginOk, IMapInitOk
    {
        const int DATA_MAPID = 0;
        public const int DATA_MAPID = 0;
        const int REDPOINTID = 1;
        public int currentFloor { get; private set; }
        Redpoint redpoint = new Redpoint(REDPOINTID);
        List<int> sortedFloors = new List<int>();
        public override void Init()
        {
@@ -55,6 +57,46 @@
            GameNetSystem.Instance.SendInfo(sendInfo);
        }
        public List<int> GetShowFloors()
        {
            var currentIndex = sortedFloors.IndexOf(currentFloor);
            var floors = new List<int>();
            if (currentIndex < 2)
            {
                for (var i = 0; i <= 4; i++)
                {
                    floors.Add(i);
                }
            }
            else if (currentIndex >= sortedFloors.Count - 2)
            {
                for (var i = sortedFloors.Count - 4; i <= sortedFloors.Count - 1; i++)
                {
                    floors.Add(i);
                }
            }
            else
            {
                for (var i = currentIndex - 2; i <= currentIndex + 2; i++)
                {
                    floors.Add(i);
                }
            }
            return floors;
        }
        public bool IsTopFloor(int floor)
        {
            return floor == sortedFloors[sortedFloors.Count - 1];
        }
        public bool IsBottomFloor(int floor)
        {
            return floor == sortedFloors[0];
        }
        public void OnPlayerLoginOk()
        {
@@ -70,6 +112,14 @@
            }
        }
        private void ParseConfig()
        {
            var configs = Config.Instance.GetAllKeys<JadeDynastyTowerConfig>();
            foreach (var item in configs)
            {
                sortedFloors.Add(int.Parse(item));
            }
        }
    }
}
System/JadeDynastyTower/JadeDynastyTowerRankBehaviour.cs
New file
@@ -0,0 +1,79 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 21, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class JadeDynastyTowerRankBehaviour : MonoBehaviour
    {
        [SerializeField] RankCell[] m_RankCells;
        [SerializeField] Text m_MyRank;
        [SerializeField] Button m_ViewRank;
        public void Display(RankInfo[] rankInfos, int myRank)
        {
            for (var i = 0; i < m_RankCells.Length; i++)
            {
                var cell = m_RankCells[i];
                if (i < rankInfos.Length)
                {
                    var rankInfo = rankInfos[i];
                    cell.container.SetActive(true);
                    cell.name.text = rankInfo.name;
                    cell.floor.text = Language.Get("", rankInfo.floor);
                    cell.time.text = Language.Get("", rankInfo.time);
                }
                else
                {
                    m_RankCells[i].container.SetActive(false);
                }
            }
            if (myRank != 0)
            {
                m_MyRank.text = myRank.ToString();
            }
            else
            {
                m_MyRank.text = Language.Get("");
            }
        }
        private void Start()
        {
            m_ViewRank.SetListener(ViewRank);
        }
        private void ViewRank()
        {
        }
        public struct RankInfo
        {
            public string name;
            public int floor;
            public int time;
        }
        [System.Serializable]
        public struct RankCell
        {
            public GameObject container;
            public Text name;
            public Text floor;
            public Text time;
        }
    }
}
System/JadeDynastyTower/JadeDynastyTowerRankBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f17f9c2e8f2d51b4696795c4088005e0
timeCreated: 1548056029
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyTower/JadeDynastyTowerRewardBehaviour.cs
New file
@@ -0,0 +1,92 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 21, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI
{
    public class JadeDynastyTowerRewardBehaviour : MonoBehaviour
    {
        [SerializeField] ItemBehaviour[] m_RewardsLevelS;
        [SerializeField] ItemBehaviour[] m_RewardsLevelA;
        [SerializeField] ItemBehaviour[] m_RewardsLevelB;
        [SerializeField] RectTransform m_ExtraRewardContainer;
        [SerializeField] Text m_ExtraRewardFloor;
        [SerializeField] Text m_ExtraRewardDescription;
        public void Display(int floor)
        {
            var config = Config.Instance.Get<JadeDynastyTowerConfig>(floor);
            for (var i = 0; i < m_RewardsLevelS.Length; i++)
            {
                var behaviour = m_RewardsLevelS[i];
                if (i < config.rewardIdsLevelS.Length)
                {
                    var id = config.rewardIdsLevelS[i];
                    var count = config.rewardCountsLevelS[i];
                    behaviour.gameObject.SetActive(true);
                    behaviour.SetItem(id, count);
                }
                else
                {
                    behaviour.gameObject.SetActive(false);
                }
            }
            for (var i = 0; i < m_RewardsLevelA.Length; i++)
            {
                var behaviour = m_RewardsLevelA[i];
                if (i < config.rewardIdsLevelA.Length)
                {
                    var id = config.rewardIdsLevelA[i];
                    var count = config.rewardIdsLevelS[i];
                    behaviour.gameObject.SetActive(true);
                    behaviour.SetItem(id, count);
                }
                else
                {
                    behaviour.gameObject.SetActive(false);
                }
            }
            for (var i = 0; i < m_RewardsLevelB.Length; i++)
            {
                var behaviour = m_RewardsLevelB[i];
                if (i < config.rewardIdsLevelB.Length)
                {
                    var id = config.rewardIdsLevelB[i];
                    var count = config.rewardCountsLevelB[i];
                    behaviour.gameObject.SetActive(true);
                    behaviour.SetItem(id, count);
                }
                else
                {
                    behaviour.gameObject.SetActive(false);
                }
            }
            if (config.unLockEquipPlace != 0)
            {
                m_ExtraRewardContainer.gameObject.SetActive(true);
                m_ExtraRewardFloor.text = Language.Get("", config.floorIndex);
                m_ExtraRewardDescription.text = "";
            }
            else
            {
                m_ExtraRewardContainer.gameObject.SetActive(false);
            }
        }
    }
}
System/JadeDynastyTower/JadeDynastyTowerRewardBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e88c84b0168d5e04797b1964fd51f8db
timeCreated: 1548056741
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyTower/JadeDynastyTowerWin.cs
@@ -8,11 +8,23 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI {
namespace Snxxz.UI
{
    public class JadeDynastyTowerWin : Window
    {
        [SerializeField] JadeDynastyTowerBehaviour m_TowerBehaviour;
        [SerializeField] JadeDynastyTowerRankBehaviour m_RankBehaviour;
        [SerializeField] JadeDynastyTowerRewardBehaviour m_RewardBehaviour;
        [SerializeField] TextEx m_FightPower;
        [SerializeField] TextEx m_ChallengeTimes;
        [SerializeField] Button m_Challenge;
        [SerializeField] ImageEx m_ChallengeImage;
        JadeDynastyTowerModel model { get { return ModelCenter.Instance.GetModel<JadeDynastyTowerModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        #region Built-in
        protected override void BindController()
@@ -21,10 +33,15 @@
        protected override void AddListeners()
        {
            m_Challenge.SetListener(Challenge);
        }
        protected override void OnPreOpen()
        {
            DisplayBaseInfo();
            DisplayChallengeTimes();
            DisplayChallengable();
            DisplayFightPower();
        }
        protected override void OnAfterOpen()
@@ -39,7 +56,40 @@
        {
        }
        #endregion
        private void DisplayBaseInfo()
        {
            m_TowerBehaviour.Display();
            //  m_RankBehaviour.Display();
            m_RewardBehaviour.Display(model.currentFloor);
        }
        private void DisplayChallengeTimes()
        {
            var enterTimes = dungeonModel.GetEnterTimes(JadeDynastyTowerModel.DATA_MAPID);
            var totalTimes = dungeonModel.GetTotalTimes(JadeDynastyTowerModel.DATA_MAPID);
            m_ChallengeTimes.text = StringUtility.Contact(enterTimes, "/", totalTimes);
            m_ChallengeTimes.colorType = enterTimes <= 0 ? TextColType.Red : TextColType.DarkGreen;
        }
        private void DisplayChallengable()
        {
            m_ChallengeImage.gray = !model.IsChallengable();
        }
        private void DisplayFightPower()
        {
            var config = Config.Instance.Get<JadeDynastyTowerConfig>(model.currentFloor);
            m_FightPower.text = config.fightPower.ToString();
            var reached = PlayerDatas.Instance.baseData.FightPoint >= config.fightPower;
            m_FightPower.colorType = reached ? TextColType.Green : TextColType.Red;
        }
        private void Challenge()
        {
            model.RequestChallenge();
        }
    }
}
System/JadeDynastyTower/TowerWin.cs
@@ -17,6 +17,7 @@
        [SerializeField] FunctionButtonGroup m_FunctionGroup;
        [SerializeField] FunctionButton m_RuneTower;
        [SerializeField] FunctionButton m_JadeDynastyTower;
        [SerializeField] Button m_Close;
        #region Built-in
        protected override void BindController()
@@ -27,6 +28,7 @@
        {
            m_RuneTower.SetListener(OpenRuneTower);
            m_JadeDynastyTower.SetListener(OpenJadeDynastyTower);
            m_Close.SetListener(CloseClick);
        }
        protected override void OnPreOpen()
@@ -49,7 +51,7 @@
        protected override void OnActived()
        {
            base.OnActived();
            OpenRuneTower();
            m_FunctionGroup.TriggerByOrder(functionOrder);
        }
        #endregion