예제 #1
0
 void sendTask(TSTaskDescriptor task, TSResponseStatus response, double responseTime, double taskTime)
 {
     task.ResponseStatus = (int)response;
     task.ResponseTime   = responseTime;
     task.TotalTaskTime  = taskTime;
     data.CompleteTask(task);
     resetTaskData();
     data.NextTask();
 }
예제 #2
0
 public void CompleteTask(TSTaskDescriptor task)
 {
     game.CompletedTasks.Add(task);
     data.AddDataRow(task.GetDataRow());
     if (verboseMode)
     {
         Debug.Log(data.GetExperiment(experimentName).LastRowToString());
     }
     data.SubmitLastDataRow();
 }
예제 #3
0
    TSGamePiece spawnPiece(StimuliSet set)
    {
        toggleAllPiecesVisible(isVisible: false);
        TSGamePiece piece      = choosePieceToSpawn();
        int         pieceIndex = ArrayUtil.IndexOf(boardPieces, piece);

        this.activeTile = boardTiles[pieceIndex];
        piece.SetPiece(batch, set);
        activeTile.SetPiece(piece);
        this.currentTask = trackTask(set, pieceIndex);
        return(piece);
    }
예제 #4
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);
    }
예제 #5
0
 void resetTaskData()
 {
     this.currentTask  = null;
     this.responseTime = 0;
     this.taskTime     = 0;
 }