using ET; using ET; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ET { public class TeamCpomponentAwakeSystem : AwakeSystem { public override void Awake(TeamComponent self) { TeamComponent.Instance = self; } } public static class TeamComponentSystem { public static Team CreateTeam(this TeamComponent self,long id) { Team team = EntityFactory.CreateWithParent(self); team.Id = id; team.leaderId = id; self.Add(team); return team; } public static Team CreateEnermyTeam(this TeamComponent self) { Team team = self.GetEnermyTeam(); if (!team) { team = EntityFactory.CreateWithParent(self); self.AddEnermyTeam(team); } team.RemoveAll(); return team; } public static void Clear(this TeamComponent self) { foreach (Team item in self.TeamDic.Values) { item.Dispose(); } self.TeamDic.Clear(); if (self.enermyTeam != null) { self.enermyTeam.Dispose(); self.enermyTeam = null; } } } public class TeamComponent:Entity { public static TeamComponent Instance { get; set; } public Dictionary TeamDic = new Dictionary(); public Team enermyTeam; public void Add(Team team) { TeamDic.Add(team.Id, team); } public Team Get(long id) { TeamDic.TryGetValue(id, out Team team); return team; } public IEnumerable GetAll() { return TeamDic.Values; } public void AddEnermyTeam(Team team) { enermyTeam= team; } public Team GetEnermyTeam() { return enermyTeam; } } }