From 960cb245d0a1a3005f436ebcc57d2faa5692164e Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Thu, 29 Oct 2020 10:15:48 +0800 Subject: [PATCH] PVE 木属性小怪一次要出两个 --- Assets/Scripts/TowerDefense/Level/EndlessWave.cs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 50 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Level/EndlessWave.cs b/Assets/Scripts/TowerDefense/Level/EndlessWave.cs index e1d73ae..e30e180 100644 --- a/Assets/Scripts/TowerDefense/Level/EndlessWave.cs +++ b/Assets/Scripts/TowerDefense/Level/EndlessWave.cs @@ -1,4 +1,5 @@ -using System; +using UnityEngine; +using System; using System.Collections.Generic; using Core.Utilities; using KTGMGemClient; @@ -142,14 +143,23 @@ /// 生成agent /// </summary> /// <returns>Agent</returns> - protected virtual Agent SpawnAgent() + protected virtual void SpawnAgent() { int index = GetIndexByResId(waveData.EnemyData.resource); + // 木属性小怪需要同时生成两个,先这么写吧(WTF) + bool isDouble = waveData.EnemyData.resource == 103; Poolable agentPoolable = Poolable.TryGetPoolable<Poolable>(AgentConfigurationList[index].agentPrefab.gameObject); Agent newAgent = agentPoolable.GetComponent<Agent>(); - newAgent.transform.position = StartingNode.transform.position; + + if (isDouble) + { + Vector3 pos = newAgent.transform.position; + pos.x -= 2f; + newAgent.transform.position = pos; + } + newAgent.transform.rotation = StartingNode.transform.rotation; newAgent.SetNode(StartingNode, WaveLineId - 1); newAgent.opponentAgent = false; @@ -166,7 +176,43 @@ // 加入Manager统一管理. AgentInsManager.instance.addAgent(newAgent); - return newAgent; + + if (isDouble) + { + Poolable agentPoolable2 = Poolable.TryGetPoolable<Poolable>(AgentConfigurationList[index].agentPrefab.gameObject); + Agent doubleAgent = agentPoolable2.GetComponent<Agent>(); + doubleAgent.transform.position = StartingNode.transform.position; + + Vector3 pos = doubleAgent.transform.position; + pos.x += 2f; + doubleAgent.transform.position = pos; + + doubleAgent.transform.rotation = StartingNode.transform.rotation; + doubleAgent.SetNode(StartingNode, WaveLineId - 1); + doubleAgent.opponentAgent = false; + doubleAgent.Initialize(); + + doubleAgent.SetAgentData(hp, speed, gold); + doubleAgent.healthBar.SetHealthLevel(1); + AgentInsManager.instance.addAgent(doubleAgent); + } + } + + /// <summary> + /// 从Tower的AttributeId获取到怪物的数据 + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + protected List<int> GetMonsterDataFromAttributeId(int id) + { + geminfo tgem = new geminfo(); + if (JsonDataCenter.gemInfoDic.TryGetValue(id, out tgem)) + return tgem.summon; + else + { + Debug.Log("找不到对应ID的Gem:" + id); + return null; + } } /// <summary> -- Gitblit v1.9.1