/// <summary>
 /// Initialize a task which is completed when a range of memory locations hold an array of desired values
 /// </summary>
 /// <param name="TaskMessage">A brief explanation of the task for the user</param>
 /// <param name="StartIndex">The index of the first memory location to be checked</param>
 /// <param name="DesiredValues">The array of desired values to compare the memory to</param>
 /// <param name="reward">The amount of in-game currency earned by completing the task</param>
 public Task(string TaskTitle, string TaskMessage, int StartIndex, string[] DesiredValues, int reward)
 {
     sTitle            = TaskTitle;
     sMessage          = TaskMessage;
     _TObjective       = new MemoryObjective(StartIndex, DesiredValues);
     _CompletionStatus = 0;
     Reward            = reward;
 }
 /// <summary>
 /// Initialize a task which is completed when a range of memory locations hold an array of desired values
 /// </summary>
 /// <param name="TaskMessage">A brief explanation of the task for the user</param>
 /// <param name="StartIndex">The index of the first memory location to be checked</param>
 /// <param name="DesiredValues">The array of desired values to compare the memory to</param>
 /// <param name="reward">The amount of in-game currency earned by completing the task</param>
 /// <param name="TimeDuration">The time within which the program running the task should be completed</param>
 public Task(string TaskTitle, string TaskMessage, int StartIndex, string[] DesiredValues, int reward, TimeSpan TimeDuration)
 {
     sTitle            = TaskTitle;
     sMessage          = TaskMessage;
     _TObjective       = new MemoryObjective(StartIndex, DesiredValues);
     _CompletionStatus = 0;
     Reward            = reward;
     TimeConstraint    = TimeDuration;
 }