using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
///
/// 战斗队列
///
public class BattleQueue {
/// 执行队列
public Queue queue = new Queue();
/// 战斗合集
public List characters = new List();
/// 添加角色
public void Add(List list) {
characters.AddRange(list);
}
/// 添加角色
public void Add(DataCombatRole character) {
characters.Add(character);
}
/// 遍历角色
public void ForEach(Action action) {
characters.ForEach(action);
}
// /// 排序:大到小
public void OrderByDescending(Func func) {
characters = characters.OrderByDescending(func).ToList();
}
/// 根据条件查询元素
public List Where(Func predicate) {
return characters.Where(predicate).ToList();
}
/// 根据条件查询第一个匹配的元素
public DataCombatRole FirstOrDefault(Func predicate) {
return characters.FirstOrDefault(predicate);
}
/// 更新队列
public void UpdateQueue() {
queue = new Queue(characters);
}
/// 取出一个
public bool Dequeue(out DataCombatRole battle) {
battle = queue.Count > 0 ? queue.Dequeue() : null;
return battle != null;
}
}