Ejemplo n.º 1
0
    void createBatches()
    {
        VariableFetcher fetch = VariableFetcher.Get;

        batches = new TaskBatch[STANDARD_BATCH_COUNT + HYBRID_BATCH_COUNT];
        for (int i = START_BATCH; i <= STANDARD_BATCH_COUNT; i++)
        {
            int batchNum   = i;
            int batchIndex = batchNum - 1;
            fetch.GetBool(getImageCheckKey(batchNum), delegate(bool isImages)
            {
                string batchName = string.Format("{0}{1}", BATCH_KEY, batchNum);
                if (isImages)
                {
                    batches[batchIndex] = new ImageTaskBatch(batchName, processBatch);
                }
                else
                {
                    batches[batchIndex] = new TaskBatch(batchName, processBatch);
                }
                // In the Editor the arrays are not full initialized when all batches have been processed
                // So the post processing callback should run here, to ensure the array has been populated
                                        #if UNITY_EDITOR
                postProcessBatch();
                                        #endif
            });
        }
        randomBatch = UnityEngine.Random.Range(0, STANDARD_BATCH_COUNT);
    }
Ejemplo n.º 2
0
    TSTaskDescriptor trackTask(StimuliSet set, int stimulusPosition)
    {
        TSTaskDescriptor task = new TSTaskDescriptor();

        task.BlockName        = data.CurrentBatch.ToString();
        task.StimulusPosition = stimulusPosition;
        task.TaskType         = (int)boardTiles[stimulusPosition].GetMatchType + 1;
        if (batch is HybridTaskBatch)
        {
            ImageStimuliSet imageSet    = set as ImageStimuliSet;
            HybridTaskBatch hybridBatch = batch as HybridTaskBatch;
            if (imageSet.HasImage1)
            {
                task.Stimuli1Index = hybridBatch.GetStimuli1Index(imageSet.Stimuli1Img);
            }
            else
            {
                task.Stimuli1Index = hybridBatch.GetStimuli1Index(imageSet.Stimuli1);
            }
            if (imageSet.HasImage2)
            {
                task.Stimuli2Index = hybridBatch.GetStimuli2Index(imageSet.Stimuli2Img);
            }
            else
            {
                task.Stimuli2Index = hybridBatch.GetStimuli2Index(imageSet.Stimuli2);
            }
        }
        else if (set is ImageStimuliSet)
        {
            ImageStimuliSet imageSet   = set as ImageStimuliSet;
            ImageTaskBatch  imageBatch = batch as ImageTaskBatch;
            task.Stimuli1Index = imageBatch.GetStimuli1Index(imageSet.Stimuli1Img);
            task.Stimuli2Index = imageBatch.GetStimuli2Index(imageSet.Stimuli2Img);
        }
        else
        {
            task.Stimuli1Index = batch.GetStimuli1Index(set.Stimuli1);
            task.Stimuli2Index = batch.GetStimuli2Index(set.Stimuli2);
        }
        task.TypeOfBlock = ((int)data.CurrentBatchIndex) + 1;
        TSTaskType taskType = data.IsTaskSwitch ? TSTaskType.TaskSwitch : TSTaskType.TaskRepeat;

        task.IsNewTaskSwitch = (int)taskType;
        data.StartTimer(getTaskKey());
        return(task);
    }
Ejemplo n.º 3
0
    bool isValidPlacementImage(TSPieceID id, ImageTaskBatch batch, TSGameTile targetTile)
    {
        switch (targetTile.GetMatchCondition)
        {
        case TSMatchCondition.Stimuli1Category1:
            return(batch.IsValidStimuli1Category1(id.Stimuli1Image));

        case TSMatchCondition.Stimuli1Category2:
            return(batch.IsValidStimuli1Category2(id.Stimuli1Image));

        case TSMatchCondition.Stimuli2Category1:
            return(batch.IsValidStimuli2Category1(id.Stimuli2Image));

        case TSMatchCondition.Stimuli2Category2:
            return(batch.IsValidStimuli2Category2(id.Stimuli2Image));

        default:
            return(false);
        }
    }