River Jiang
2020-10-27 24f59b89e9eabcfe948fc0ba304a8dbec2deda14
Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs
@@ -1,4 +1,5 @@
using Core.Utilities;
using TowerDefense.Towers;
using Core.Utilities;
using System;
using TMPro;
using UnityEngine;
@@ -6,6 +7,7 @@
using MoreMountains.NiceVibrations;
using TowerDefense.Level;
using KTGMGemClient;
using TowerDefense.UI.HUD;
/// <summary>
/// 无尽模式用自己的EndlessUIStart
@@ -60,6 +62,93 @@
        EndlessSettlement settlement = SettlementUI.transform.GetChild(0).GetComponent<EndlessSettlement>();
        settlement.Init();
        SettlementUI.SetActive(false);
        //查询是否已经做过了新手引导
        int guide = PlayerPrefs.GetInt("GemBattleGuide");
        GameConfig.IsNewbie = guide == 0;
        if (GameConfig.IsNewbie)
        {
            Pause();
            uiStartMssk.gameObject.SetActive(false);
            countDownTextNew.text = "";
            countDownTextNew.gameObject.SetActive(false);
            Instantiate(Resources.Load<GameObject>("UI/Guide/GuidePanel"), this.transform);
            AddGuideEvent();
            //bGameStart = true;
            // 开始关卡
            //EndlessLevelManager.instance.StartLevel();
            //timeTextNew.gameObject.SetActive(true);
            // 开始播放背景音乐.
            // if (bgMusic != null)
            //     bgMusic.Play();
        }
    }
    /// <summary>
    /// 添加新手引导事件
    /// </summary>
    private void AddGuideEvent()
    {
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateFireLv2, CreateFireLv2);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateFirstWave, CreateFirstWave);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.RestartWave, RestartWave);
        EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.AddGold, AddGold);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateWaterLv1, CreateWaterLv1);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateSecondWave, CreateSecondWave);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillRelease, SkillRelease);
    }
    /// <summary>
    /// 在(2,3)位置放置一个火元素的塔
    /// </summary>
    private void CreateFireLv2()
    {
        Tower aTower = EndlessRandomTower.instance.getTowerByName("GrowUpTower");
        EndlessGameUI.instance.PlaceTowerForce(aTower, new IntVector2(2, 3), 2);
    }
    private void CreateFirstWave()
    {
        Restart();
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.FireTowerChargeEnd, OnFireTowerChargeEnd);
    }
    private void OnFireTowerChargeEnd()
    {
        Pause();
        EndlessLevelManager.instance.PauseWave();
        EventCenter.Ins.Remove((int)KTGMGemClient.EventType.FireTowerChargeEnd, OnFireTowerChargeEnd);
        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.ChargingEnd);
    }
    private void RestartWave()
    {
        Restart();
        EndlessLevelManager.instance.RestartWave();
    }
    private void AddGold(int gold)
    {
        EndlessLevelManager.instance.Currency.AddCurrency(gold);
    }
    private void CreateWaterLv1()
    {
        Tower aTower = EndlessRandomTower.instance.getTowerByName("CopyCatTower");
        EndlessGameUI.instance.PlaceTowerForce(aTower, new IntVector2(1, 3), 1);
    }
    private void CreateSecondWave()
    {
    }
    private void SkillRelease()
    {
    }
    /// <summary>
@@ -126,6 +215,8 @@
            timeTextNew.text = ConvertTime((float)Math.Ceiling(startTime));
        }
        if (!GameConfig.IsNewbie)
        {
        if (!bFirstLoaded && !bGameStart)
        {
            bFirstLoaded = true;
@@ -191,4 +282,21 @@
            }
        }
    }
        else
        {
            // 新手走的流程
            if (!bFirstLoaded && !bGameStart)
                bFirstLoaded = true;
            if (bFirstLoaded && !bGameStart)
            {
                bGameStart = true;
                EndlessLevelManager.instance.StartLevel();
                timeTextNew.gameObject.SetActive(true);
                if (bgMusic != null)
                    bgMusic.Play();
            }
        }
    }
}