public static void UpdateUnitList(this Trigger self) { ListComponent <long> deleteList = ListComponent <long> .Create(); DUnitComponent dUnitComponent = self.Domain.GetComponent <DUnitComponent>(); for (int i = 0; i < self.UnitList.List.Count; i++) { DUnit unit = dUnitComponent.Get(self.UnitList.List[i]); if (unit == null) { deleteList.List.Add(unit.Id); continue; } if (unit.GetComponent <UnitStateComponent>().UnitState == (int)UnitState.Death) { deleteList.List.Add(unit.Id); } } for (int i = 0; i < deleteList.List.Count; i++) { self.UnitList.List.Remove(deleteList.List[i]); } deleteList.List.Clear(); }
public static DUnit Create(Entity domain, long unitid) { DUnit unit = EntityFactory.CreateWithId <DUnit>(domain, unitid); unit.AddComponent <ObjectWait>(); unit.AddComponent <UnitStateComponent, int>((int)UnitState.Born); DUnitComponent unitComponent = domain.GetComponent <DUnitComponent>(); unitComponent.Add(unit); return(unit); }