示例#1
0
 /// <summary>
 /// condition CANNOT be null!
 /// </summary>
 /// <param name="id"></param>
 /// <param name="condition"></param>
 /// <param name="action"></param>
 public Coroutine(string id, ConditionMethod condition, ActionMethod action)
     : this()
 {
     ID        = id;
     Condition = condition;
     Action    = action;
 }
示例#2
0
 // runs method to see if simple entity should be added
 public void AddOptionByConditionMethod(
     CollectiveOptionSharedData optionTemplate,
     ConditionMethod conditionMethod)
 {
     optionsByMethod.Add(new OptionByMethod()
     {
         template = optionTemplate,
         method   = conditionMethod
     });
 }
示例#3
0
 // runs method to see if simple entity should be added
 public void AddSituationByConditionMethod(
     CollectiveSituationSharedData situationTemplate,
     ConditionMethod conditionMethod)
 {
     situationsByMethod.Add(new SituationByMethod()
     {
         template = situationTemplate,
         method   = conditionMethod
     });
 }
示例#4
0
 // runs method to see if simple entity should be added
 public void AddForecastByConditionMethod(
     CollectiveForecastSharedData forecastTemplate,
     ConditionMethod conditionMethod)
 {
     forecastsByMethod.Add(new ForecastByMethod()
     {
         template = forecastTemplate,
         method   = conditionMethod
     });
 }
示例#5
0
 // runs method to see if simple entity should be added
 public void AddOptionByConditionMethod(
     CharacterOptionSharedData optionSharedData,
     ConditionMethod conditionMethod)
 {
     optionsByMethod.Add(new OptionByMethod()
     {
         template = optionSharedData,
         method   = conditionMethod
     });
 }
示例#6
0
 // runs method to see if simple entity should be added
 public void AddSituationByConditionMethod(
     CharacterSituationSharedData situationSharedData,
     ConditionMethod conditionMethod)
 {
     situationsByMethod.Add(new SituationByMethod()
     {
         template = situationSharedData,
         method   = conditionMethod
     });
 }
示例#7
0
 // runs method to see if simple entity should be added
 public void AddForecastByConditionMethod(
     CharacterForecastSharedData forecastSharedData,
     ConditionMethod conditionMethod)
 {
     forecastsByMethod.Add(new ForecastByMethod()
     {
         template = forecastSharedData,
         method   = conditionMethod
     });
 }
示例#8
0
 /// <summary>
 /// condition CANNOT be null!
 /// </summary>
 /// <param name="condition"></param>
 /// <param name="action"></param>
 public Coroutine(ConditionMethod condition, ActionMethod action)
     : this()
 {
     if (condition == null)
     {
         throw new ArgumentNullException("condition");
     }
     ID        = null;
     Condition = condition;
     Action    = action;
 }
示例#9
0
    public static void StartCoroutineOverrideOld(string id, ConditionMethod condition, ActionMethod action)
    {
        var index = CoroutineList.FindIndex(x => x.ID == id);

        if (index >= 0)
        {
            CoroutineList[index] = new Coroutine(id, condition, action);
        }
        else
        {
            CoroutineList.Add(new Coroutine(id, condition, action));
        }
    }
示例#10
0
 // if method evaluates to true, character is added
 public void AddCharacterByMethod(ConditionMethod method)
 {
     conditionMethods.Enqueue(method);
 }
示例#11
0
 /// <summary>
 /// 最方便的延时执行某操作的方法
 /// </summary>
 /// <param name="id"></param>
 /// <param name="delay"></param>
 /// <param name="action"></param>
 public Coroutine(string id, float delay, ActionMethod action) : this()
 {
     ID        = id;
     Condition = () => Time.realtimeSinceStartup > CreateRealTime + delay;
     Action    = action;
 }
示例#12
0
 public static void StartCoroutine(ConditionMethod condition, ActionMethod action)
 {
     CoroutineList.Add(new Coroutine(condition, action));
 }