protected override void OnUpdate()
    {
        Entity grid;

        using (var tmp = mGridQuery.ToEntityArray(Allocator.TempJob))
            grid = tmp.Length > 0 ? tmp[0] : Entity.Null;

        var baseJob = new GetTargetJob
        {
            Aggression          = Settings.Instance.Aggression,
            RandomizerType      = GetComponentTypeHandle <CRandomizer>(false),
            EntityType          = GetEntityTypeHandle(),
            ResourceGridIndex   = GetComponentDataFromEntity <CGridIndex>(true),
            ResourceStackHeight = GetComponentDataFromEntity <CStackHeight>(true),
            GridEntity          = grid,
            GridCellCount       = GetComponentDataFromEntity <CGridCellCount>(true),
            GridStackHeights    = GetBufferFromEntity <BStackHeights>(true),
        };

        var firstTeamJob = baseJob;

        firstTeamJob.CommandBuffer = mCommandBufferSystem.CreateCommandBuffer().AsParallelWriter();
        firstTeamJob.Enemies       = mSecondTeamAsEnemyQuery.ToEntityArray(Allocator.TempJob);
        firstTeamJob.Resources     = mResourceQuery.ToEntityArray(Allocator.TempJob);
        Dependency = firstTeamJob.ScheduleParallel(mFirstTeamQuery, Dependency);

        var secondTeamJob = baseJob;

        secondTeamJob.CommandBuffer = mCommandBufferSystem.CreateCommandBuffer().AsParallelWriter();
        secondTeamJob.Enemies       = mFirstTeamAsEnemyQuery.ToEntityArray(Allocator.TempJob);
        secondTeamJob.Resources     = mResourceQuery.ToEntityArray(Allocator.TempJob);
        Dependency = secondTeamJob.ScheduleParallel(mSecondTeamQuery, Dependency);
        mCommandBufferSystem.AddJobHandleForProducer(Dependency);
    }
    protected override void OnUpdate()
    {
        var baseJob = new GetTargetJob
        {
            Aggression     = Settings.Instance.Aggression,
            RandomizerType = GetArchetypeChunkComponentType <CRandomizer>(false),
            EntityType     = GetArchetypeChunkEntityType(),
        };

        var firstTeamJob = baseJob;

        firstTeamJob.CommandBuffer = mCommandBufferSystem.CreateCommandBuffer().ToConcurrent();
        firstTeamJob.Enemies       = mSecondTeamQuery.ToEntityArray(Allocator.TempJob);
        Dependency = firstTeamJob.ScheduleParallel(mFirstTeamQuery, Dependency);

        var secondTeamJob = baseJob;

        secondTeamJob.CommandBuffer = mCommandBufferSystem.CreateCommandBuffer().ToConcurrent();
        secondTeamJob.Enemies       = mFirstTeamQuery.ToEntityArray(Allocator.TempJob);
        Dependency = secondTeamJob.ScheduleParallel(mSecondTeamQuery, Dependency);
    }