public TimedConditionContainer(Condition condition) : base(condition) { TimedCondition tc = condition as TimedCondition; this.condition = condition; this.timeToEnd = tc.duration; }
private IEnumerator TimedConditionChecker(Creature target, TimedConditionContainer container) { TimedCondition condition = container.condition as TimedCondition; float startTime = Time.time + condition.timeToStart; float endTime = startTime + condition.duration; while (Time.time < startTime) { yield return(null); } while (Time.time <= endTime && container.isActive) { endTime = startTime + container.timeToEnd; CheckCondition(target, container); yield return(null); } condition.UnregisterCondition(target); }