public void Execute(ArchetypeChunk chunk, int chunkIndex, int firstEntityIndex) { var chunkEntity = chunk.GetNativeArray(EntityType); var chunkHistories = chunk.GetBufferAccessor(DamageHistoryType); for (int index = 0; index < chunkEntity.Length; index++) { var entity = chunkEntity[index]; var history = chunkHistories[index]; for (var i = 0; i < DamageEvents.Length; i++) { if (entity.Equals(DamageEvents[i].Receiver)) { var de = DamageEvents[i]; var dh = new DamageHistory { TimeOccured = Time, TookDamage = true, Damage = de.Amount, Instigator = de.Sender, LastDamageEvent = de }; history.Add(dh); } } } }