2
0
Fork 0
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#

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;
}
}
}