예제 #1
0
        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();
        }
예제 #2
0
        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);
        }