public TimedConditionContainer(Condition condition) : base(condition)
        {
            TimedCondition tc = condition as TimedCondition;

            this.condition = condition;
            this.timeToEnd = tc.duration;
        }
Example #2
0
        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);
        }