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(BattleCharacter character) {
characters.Add(character);
}
/// 先攻:d20 + 敏捷调整值
public void Sequence() {
characters.ForEach(obj => obj.sequence = Dice.Roll20(obj.DexModifier));
}
/// 排序:大到小
public void OrderByDescending() {
characters = characters.OrderByDescending(c => c.sequence).ToList();
}
/// 回合
public void Reset() {
queue = new Queue(characters);
}
/// 当前行动者
public bool Current(out BattleCharacter battle) {
battle = queue.Count > 0 ? queue.Dequeue() : null;
return battle != null;
}
}