Example #1
0
 protected override bool CheckForReduplication(Creature target)
 {
     for (int i = 0; i < target.activeTimedConditions.Count; i++)
     {
         TimedConditionContainer container = target.activeTimedConditions [i];
         if (container.condition == this)
         {
             return(true);
         }
     }
     return(false);
 }
Example #2
0
 public override void UnregisterCondition(Creature target)
 {
     Debug.Log("unregister condition");
     for (int i = 0; i < target.activeTimedConditions.Count; i++)
     {
         TimedConditionContainer container = target.activeTimedConditions [i];
         if (container.condition == this)
         {
             target.activeTimedConditions.Remove(container);
             break;
         }
     }
     Debug.Log("target timed conditions count: " + target.activeTimedConditions.Count);
 }
Example #3
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);
        }
Example #4
0
        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);
                }
            }
        }
Example #5
0
 public void StartTimedConditionChecker(Creature target, TimedConditionContainer conditionContainer)
 {
     StartCoroutine(TimedConditionChecker(target, conditionContainer));
 }