/// <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; }
// 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 }); }
// 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 }); }
// 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 }); }
// 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 }); }
// 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 }); }
// 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 }); }
/// <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; }
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)); } }
// if method evaluates to true, character is added public void AddCharacterByMethod(ConditionMethod method) { conditionMethods.Enqueue(method); }
/// <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; }
public static void StartCoroutine(ConditionMethod condition, ActionMethod action) { CoroutineList.Add(new Coroutine(condition, action)); }