wangguan
2020-12-10 68b153f681713e4831d67b0cf56a9b302e3635e9
Assets/Scripts/TowerDefense/UI/EndlessSettlement.cs
@@ -1,4 +1,5 @@
using UnityEngine;
using UnityEngine.UI;
using TowerDefense.UI.HUD;
using DG.Tweening;
using TowerDefense.Towers.Placement;
@@ -28,10 +29,26 @@
        /// </summary>
        protected EndlessLevelManager levelManager;
        // Start is called before the first frame update
        private void Start()
        /// <summary>
        /// 最终波次文本
        /// </summary>
        public Text FinalWaveText;
        /// <summary>
        /// 道具列表UI
        /// </summary>
        public GameObject PropListUI;
        public GameObject SettlementUI;
        public GameObject EffectPrefabObject;
        private GameObject effectObj;
        public void Init()
        {
            LazyLoad();
            levelManager.LevelCompleted -= Victory;
            levelManager.LevelCompleted += Victory;
        }
@@ -45,7 +62,7 @@
            EndlessUIStart.bFirstLoaded = false;
            EndlessUIStart.bGameStart = false;
            TowerPlacementGridEndless.GRID_OPENCASH = 100;
            TowerPlacementGridEndless.GRID_OPENCASH = 200;
            SafelyUnsubscribe();
            SceneManager.LoadScene(menuSceneName);
@@ -60,8 +77,35 @@
            if (EndlessGameUI.instance.state == EndlessGameUI.State.Building)
                EndlessGameUI.instance.CancelGhostPlacement();
            gameObject.SetActive(true);
            GameObject go = Instantiate(Resources.Load<GameObject>("UI/Final/FinalPanel"), GameObject.Find("UICamera/BottomCanvas").transform);
            FinalPanel panelUI = go.GetComponent<FinalPanel>();
            panelUI.SetData($"{EndlessLevelManager.instance.CurrentLevel}关 {EndlessLevelManager.instance.WaveManager.CurrentWaveIndex}波", EndlessScoreData.CurrentSocre);
            //panelUI.SetPlayEffectAC(PlayEffect);
            //GameObject.Find("UICamera/BottomCanvas").GetComponent<Canvas>().enabled = false;
            EndlessUIStart.instance.GameOver();
            return;
            // RefreshFinalWave();
            // RefreshPropList();
            // SettlementUI.SetActive(true);
            // PlayEffect();
        }
        private void PlayEffect()
        {
            if (effectObj == null)
            {
                effectObj = Instantiate(EffectPrefabObject);
                GameObject particleSystemObject = GameObject.Find("ParticleSystemObject");
                effectObj.transform.SetParent(particleSystemObject.transform, false);
                effectObj.transform.localPosition = new Vector3(0, -51.6f, 36.6f);
                effectObj.transform.localScale = new Vector3(6, 6, 6);
            }
            ParticleSystem ps = effectObj.transform.GetChild(0).GetComponent<ParticleSystem>();
            ps.Play();
        }
        /// <summary>
@@ -69,10 +113,31 @@
        /// </summary>
        protected void Victory()
        {
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessLevelCompleted);
            EndlessUIStart.instance.Pause();
            ShowPanel();
            // int showFavorite = PlayerPrefs.GetInt("GemBattleFavorite");
            // if (showFavorite == 0)
            // {
            //     GameObject go = Instantiate(Resources.Load<GameObject>("UI/Favorite/FavoritePanel"), this.transform.parent.parent);
            //     FavoritePanelUI panelUI = go.GetComponent<FavoritePanelUI>();
            //     panelUI.SetAC(ShowPanel);
            // }
            // else
            // {
            //     ShowPanel();
            // }
        }
        private void ShowPanel()
        {
            OpenEndGameScreen(true);
            if (VictoryAudio != null && AudioSource != null)
                AudioSource.PlayOneShot(VictoryAudio);
            // if (VictoryAudio != null && AudioSource != null)
            //     AudioSource.PlayOneShot(VictoryAudio);
        }
        /// <summary>
@@ -102,5 +167,24 @@
            if (levelManager == null && EndlessLevelManager.instanceExists)
                levelManager = EndlessLevelManager.instance;
        }
        /// <summary>
        /// 刷新最终波次信息
        /// </summary>
        /// <param name="level">关卡等级</param>
        /// <param name="wave">波次</param>
        private void RefreshFinalWave()
        {
            int level = EndlessLevelManager.instance.CurrentLevel;
            int wave = EndlessLevelManager.instance.WaveManager.CurrentWaveIndex;
            FinalWaveText.text = $"第{level}关,第{wave}波";
        }
        private void RefreshPropList()
        {
            EndlessSettlementPropList list = PropListUI.GetComponent<EndlessSettlementPropList>();
            list.RefreshList();
        }
    }
}