using System.Collections.Generic; using System.Threading.Tasks; namespace Game.CombatSystem { public interface ICombatSystem { void CombatStart(List characters1, List characters2); void CombatEnd(); } public class CombatSystem : ICombatSystem { private List characters1; private List characters2; public void CombatStart(List characters1, List characters2) { this.characters1 = characters1; this.characters2 = characters2; Update().Wait(); } async Task Update() { while (true) { await Task.Delay(100); // 执行战斗逻辑 if (CheckIsDeath(characters1)) break; if (CheckIsDeath(characters2)) break; } // 结束战斗逻辑 // 结束战斗 CombatEnd(); } bool CheckIsDeath(List characters) { foreach (var character in characters) { if (!character.IsDeath) { return false; } } return true; } void Attack() { foreach (var character in characters1) { } } public void CombatEnd() { } } }