private IEnumerator ConditionChecker(Creature target, ConditionContainer container) { while (container.isActive) { CheckCondition(target, container); yield return(null); } yield break; }
public void EndConditions(Creature target) { foreach (Condition condition in conditions) { ConditionContainer container = GetConditionContinerInTarget(target, condition); if (container != null) { container.isActive = false; } } }
protected virtual bool CheckForReduplication(Creature target) { for (int i = 0; i < target.activeConditions.Count; i++) { ConditionContainer container = target.activeConditions [i]; if (container.condition == this) { return(true); } } return(false); }
public virtual void UnregisterCondition(Creature target) { for (int i = 0; i < target.activeConditions.Count; i++) { ConditionContainer container = target.activeConditions [i]; if (container.condition == this) { target.activeConditions.Remove(container); break; } } }
private void RemoveCondition(Creature target) { for (int i = 0; i < target.activeConditions.Count; i++) { ConditionContainer container = target.activeConditions [i]; if (container.condition == conditionToRemove) { container.isActive = false; container.condition.UnregisterCondition(target); } } }
private void CheckCondition(Creature target, ConditionContainer conditionContainer) { Condition condition = conditionContainer.condition; bool conditionFulfilled = condition.conditionAction.isConditionFulfilled(target); if (conditionFulfilled && condition.trueEffect != null) { condition.trueEffect.Perform(target); conditionContainer.isActive = false; condition.UnregisterCondition(target); } else if (!conditionFulfilled && condition.falseEffect != null) { condition.falseEffect.Perform(target); conditionContainer.isActive = false; condition.UnregisterCondition(target); } }
public void StartCheckingConditionsForTarget(Creature target) { for (int i = 0; i < target.activeConditions.Count; i++) { ConditionContainer container = target.activeConditions [i]; if (container.isActive == false) { container.isActive = true; EffectController.instance.StartConditionChecker(target, container); } } for (int i = 0; i < target.activeTimedConditions.Count; i++) { TimedConditionContainer container = target.activeTimedConditions [i]; if (container.isActive == false) { container.isActive = true; EffectController.instance.StartTimedConditionChecker(target, container); } } }
public void StartConditionChecker(Creature target, ConditionContainer conditionContainer) { StartCoroutine(ConditionChecker(target, conditionContainer)); }