You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			96 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
		
		
			
		
	
	
			96 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
| 
											2 years ago
										 | using Entitas; | ||
|  | using System.Collections.Generic; | ||
|  | using Game; | ||
|  | public class EntityDestroySystem : IExecuteSystem, IInitializeSystem | ||
|  | { | ||
|  |     private IGroup<GameEntity> _entities; | ||
|  |     private List<GameEntity> _deleteEntities; | ||
|  |     public void Initialize() | ||
|  |     { | ||
|  |         _entities = Util.GetGroup(GameMatcher.ID); | ||
|  |         _deleteEntities = new List<GameEntity>(); | ||
|  |     } | ||
|  |     public void Execute() | ||
|  |     { | ||
|  |         foreach (var entity in _entities) | ||
|  |         { | ||
|  |             if (entity.iD.Data.IsDestroy) | ||
|  |             { | ||
|  |                 _deleteEntities.Add(entity); | ||
|  |             } | ||
|  |         } | ||
|  |         foreach (var deleteEntity in _deleteEntities) | ||
|  |         { | ||
|  |             ResetComponent(deleteEntity); | ||
|  |             deleteEntity.Destroy(); | ||
|  |         } | ||
|  |         _deleteEntities.Clear(); | ||
|  |     } | ||
|  |     public void ResetComponent(GameEntity entity) | ||
|  |     { | ||
|  |         var master = Util.GetMaster(); | ||
|  |         var entityId = entity.ID(); | ||
|  |         if (entity.hasID) | ||
|  |         { | ||
|  |             Util.ClearId(entity); | ||
|  |         } | ||
|  |         if (entity.hasView) | ||
|  |         { | ||
|  |             Util.ClearView(entity); | ||
|  |         } | ||
|  |         if (entity.hasMove) | ||
|  |         { | ||
|  |             Util.ClearMove(entity); | ||
|  |         } | ||
|  |         if (entity.hasTimeline) | ||
|  |         { | ||
|  |             Util.EndSkillTimeline(entity); | ||
|  |         } | ||
|  |         if (entity.hasCombo) | ||
|  |         { | ||
|  |             Util.ClearCombo(entity); | ||
|  |         } | ||
|  |         if (entity.hasSkill) | ||
|  |         { | ||
|  |             Util.ClearSkill(entity); | ||
|  |         } | ||
|  |         if (entity.hasHp) | ||
|  |         { | ||
|  |             Util.ClearHp(entity); | ||
|  |         } | ||
|  |         if (entity.hasAI) | ||
|  |         { | ||
|  |             Util.ClearAI(entity); | ||
|  |         } | ||
|  |         if (entity.hasBuff) | ||
|  |         { | ||
|  |             Util.ClearBuff(entity); | ||
|  |         } | ||
|  |         if (entity.hasBullet) | ||
|  |         { | ||
|  |             Util.ClearBullet(entity); | ||
|  |         } | ||
|  |         if (entity.hasPoint) | ||
|  |         { | ||
|  |             Util.ClearPoint(entity); | ||
|  |         } | ||
|  |         if (entity.hasMasterSoul) | ||
|  |         { | ||
|  |             Util.ClearMasterSoul(entity); | ||
|  |         } | ||
|  |         if (entity.hasInteract) | ||
|  |         { | ||
|  |             Util.ClearInteract(entity); | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  |         if (master.combo.TargetLock == entityId) | ||
|  |         { | ||
|  |             master.combo.TargetLock = 0; | ||
|  |         } | ||
|  |         if (master.combo.TargetLastLockTime.ContainsKey(entityId)) | ||
|  |         { | ||
|  |             master.combo.TargetLastLockTime.Remove(entityId); | ||
|  |         } | ||
|  |     } | ||
|  | } |