You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
| 
								 
											2 years ago
										 
									 | 
							
								using System.Collections.Generic;
							 | 
						||
| 
								 | 
							
								using UnityEngine;
							 | 
						||
| 
								 | 
							
								using UnityEngine.Serialization;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Game
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    [System.Serializable]
							 | 
						||
| 
								 | 
							
								    public class NumAttacker
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        public EAIModuleType type;
							 | 
						||
| 
								 | 
							
								        public int num;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    public class LevelNodeMonsterWave : LevelNode
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        [FormerlySerializedAs("AttackRound")] [Header("攻击周期(秒)")] public float attackRound;
							 | 
						||
| 
								 | 
							
								        [FormerlySerializedAs("AttackFrequency")] [Header("攻击频率(秒/次)")] public float attackFrequency;
							 | 
						||
| 
								 | 
							
								        [FormerlySerializedAs("AttackTimes")] [Header("攻击次数")] public int attackTimes;
							 | 
						||
| 
								 | 
							
								        [FormerlySerializedAs("NumAttackers")] [Header("同时攻击人数")] public NumAttacker[] numAttackers;
							 | 
						||
| 
								 | 
							
								        private int _mWaveIndex;
							 | 
						||
| 
								 | 
							
								        private LevelNodeMonster[] _mMonsterList;
							 | 
						||
| 
								 | 
							
								        private Dictionary<EAIModuleType, int> _mNumAttackerDict = new Dictionary<EAIModuleType, int>();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public override void OnInit()
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            _mMonsterList = GetComponentsInChildren<LevelNodeMonster>();
							 | 
						||
| 
								 | 
							
								            for (EAIModuleType i = 0; i < EAIModuleType.Max; i++)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                _mNumAttackerDict[i] = 0;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            for (int i = 0; i < numAttackers.Length; i++)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                var item = numAttackers[i];
							 | 
						||
| 
								 | 
							
								                _mNumAttackerDict[item.type] += item.num;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        public LevelNodeMonster[] GetMonsters()
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            return _mMonsterList;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        public int GetModuleNum(EAIModuleType type)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            return _mNumAttackerDict[type];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        public void SetWaveIndex(int index)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            _mWaveIndex = index;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        public int GetWaveIndex()
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            return _mWaveIndex;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |