From 2ff55a1d8446f27ebd22ce9dfbf15185f97a60c9 Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Tue, 17 Nov 2020 14:44:26 +0800 Subject: [PATCH] 修改塔攻击音效为0.5 修改等级图标 --- Assets/Scripts/TowerDefense/Level/EndlessWave.cs | 31 ++++++++++++++++++++----------- 1 files changed, 20 insertions(+), 11 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Level/EndlessWave.cs b/Assets/Scripts/TowerDefense/Level/EndlessWave.cs index 024f0b4..ca35da6 100644 --- a/Assets/Scripts/TowerDefense/Level/EndlessWave.cs +++ b/Assets/Scripts/TowerDefense/Level/EndlessWave.cs @@ -98,6 +98,8 @@ { StopTimer(spawnTimer); isWaveStoped = true; + + //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.WaveLineFinish,WaveLineId); } public void PauseWave() @@ -112,10 +114,6 @@ isWaveStoped = false; } - /// <summary> - /// Handles spawning the current agent and sets up the next agent for spawning - /// 在场景内孵化出来一个Boss,这个核心函数最后被规则性的数据接管 - /// </summary> protected virtual void SpawnCurrent() { if (isWaveStoped) return; @@ -129,8 +127,15 @@ else { ++spawnedEnemies; + if (SpawnNewAgent != null) SpawnNewAgent(); + + if (spawnedEnemies >= waveData.Config.amount) + { + StopWave(); + SafelyBroadcastWaveCompletedEvent(); + } } } @@ -140,12 +145,16 @@ /// <returns>Agent</returns> protected virtual void SpawnAgent() { - int index = GetIndexByResId(waveData.EnemyData.resource); + endless_enemy enemyData = waveData.EnemyDataList[waveData.Config.enemy_id > 0 ? 0 : spawnedEnemies]; + + int index = GetIndexByResId(enemyData.resource); + // 木属性小怪需要同时生成两个,先这么写吧(WTF) - bool isDouble = waveData.EnemyData.resource == 103; + bool isDouble = enemyData.resource == 103; Poolable agentPoolable = Poolable.TryGetPoolable<Poolable>(AgentConfigurationList[index].agentPrefab.gameObject); Agent newAgent = agentPoolable.GetComponent<Agent>(); + newAgent.EnemyData = enemyData; newAgent.transform.position = StartingNode.transform.position; if (isDouble) @@ -161,9 +170,9 @@ newAgent.Initialize(); // 最终血量 = 基础血量 * 血量增幅,速度和金币都是一个公式 - float hp = waveData.Config.b_hp * waveData.EnemyData.hp_rate; - float speed = waveData.Config.b_speed * waveData.EnemyData.speed_rate; - int gold = waveData.Config.b_coin * waveData.EnemyData.coin_rate; + float hp = waveData.Config.b_hp * enemyData.hp_rate; + float speed = waveData.Config.b_speed * enemyData.speed_rate; + int gold = waveData.Config.b_coin * enemyData.coin_rate; newAgent.SetAgentData(hp, speed, gold); // todo 这里先填1级后面需要修改 @@ -171,11 +180,11 @@ // 加入Manager统一管理. AgentInsManager.instance.addAgent(newAgent); - if (isDouble) { Poolable agentPoolable2 = Poolable.TryGetPoolable<Poolable>(AgentConfigurationList[index].agentPrefab.gameObject); Agent doubleAgent = agentPoolable2.GetComponent<Agent>(); + doubleAgent.EnemyData = enemyData; doubleAgent.transform.position = StartingNode.transform.position; Vector3 pos = doubleAgent.transform.position; @@ -224,7 +233,7 @@ } /// <summary> - /// 暂时先这么处理 + /// 暂时先这么处理 cx test /// </summary> /// <param name="resId">endless_enemy表的资源id</param> /// <returns>所有可选的agent列表的索引</returns> -- Gitblit v1.9.1