Exemplo n.º 1
0
 public void RemoveNextEffect()
 {
     if (nextElement != null)
     {
         nextElement = nextElement.nextElement;
     }
 }
Exemplo n.º 2
0
 private void AnotherEffectDeadlockCheck(GraphicalEffect anotherEffect)
 {
     if (this == anotherEffect)
     {
         throw new ApplicationException("Critical error in EffectScheduler, call Epholl. " + this + ", " + gameObject + " " + gameObject.name);
     }
 }
Exemplo n.º 3
0
	public void AddAnotherEffect(GraphicalEffect next) {
		AnotherEffectDeadlockCheck (next);
		if (nextElement != null) {
			nextElement.AddAnotherEffect(next);
		} else {
			nextElement = next;
		}
	}
Exemplo n.º 4
0
 private void UpdateFirst(GraphicalEffect newElement, float occurTime)
 {
     if (occurTime < firstElementOccurTime)
     {
         firstElement          = newElement;
         firstElementOccurTime = occurTime;
     }
 }
Exemplo n.º 5
0
	private void CheckTargetObjectHasEffect() {
		if (targetObject != null || targetObject.GetComponent<GraphicalEffect> () != null) {

			effect = targetObject.GetComponent<GraphicalEffect> ();
		} else {

			Debug.LogWarning("Target object is not a Graphical Effect. Cannot run it.");
		}
	}
Exemplo n.º 6
0
 private void ActivateNext()
 {
     if (nextElement != null)
     {
         var next = nextElement;
         nextElement = null;
         next.Activate();
     }
 }
Exemplo n.º 7
0
	public void Schedule(GraphicalEffect effect, float waitTime){
		float occurTime = Time.time + waitTime;
		if (events.ContainsKey(occurTime)){
			GraphicalEffect found = events[occurTime];
			found.AddAnotherEffect(effect);
		} else {
			events.Add (occurTime, effect);
		}
		UpdateFirst (effect, occurTime);
	}
Exemplo n.º 8
0
 private void CheckTargetObjectHasEffect()
 {
     if (targetObject != null || targetObject.GetComponent <GraphicalEffect> () != null)
     {
         effect = targetObject.GetComponent <GraphicalEffect> ();
     }
     else
     {
         Debug.LogWarning("Target object is not a Graphical Effect. Cannot run it.");
     }
 }
Exemplo n.º 9
0
	private void UpdateFirst() {

		if (events.Count == 0) {
			firstElement = null;
			firstElementOccurTime = float.MaxValue;
		} else {
			var first = events.First();
			firstElement = first.Value;
			firstElementOccurTime = first.Key;
		}
	}
Exemplo n.º 10
0
	private void PrepareAndScheduleEffect(GraphicalEffect effect) {

		if (rescheduling && effect.rescheduling) {
			effect.rescheduling = false;
		}
		if (runAtStart) {
			effect.runAtStart = false;
		}
		
		effect.EnqueueToScheduler();
	}
Exemplo n.º 11
0
	private void PrepareAndScheduleEffect(GraphicalEffect effect, float delay) {

		if (rescheduling && effect.rescheduling) {
			effect.rescheduling = false;
		}
		if (runAtStart) {
			effect.runAtStart = false;
		}
		
		effect.EnqueueToScheduler(effect.occurTimeDelay + delay);
	}
Exemplo n.º 12
0
	private bool SearchAndRemoveFromLinkedList(GraphicalEffect listHead, GraphicalEffect removed) {
		while (listHead.HasNextEffect()) {
			if (listHead.GetNextEffect() == removed) {
				listHead.RemoveNextEffect();
				return true;
			} else {
				listHead = listHead.GetNextEffect();
			}
		}
		return false;
	}
Exemplo n.º 13
0
 public void AddAnotherEffect(GraphicalEffect next)
 {
     AnotherEffectDeadlockCheck(next);
     if (nextElement != null)
     {
         nextElement.AddAnotherEffect(next);
     }
     else
     {
         nextElement = next;
     }
 }
Exemplo n.º 14
0
    private void PrepareAndScheduleEffect(GraphicalEffect effect, float delay)
    {
        if (rescheduling && effect.rescheduling)
        {
            effect.rescheduling = false;
        }
        if (runAtStart)
        {
            effect.runAtStart = false;
        }

        effect.EnqueueToScheduler(effect.occurTimeDelay + delay);
    }
Exemplo n.º 15
0
    private void PrepareAndScheduleEffect(GraphicalEffect effect)
    {
        if (rescheduling && effect.rescheduling)
        {
            effect.rescheduling = false;
        }
        if (runAtStart)
        {
            effect.runAtStart = false;
        }

        effect.EnqueueToScheduler();
    }
Exemplo n.º 16
0
	public override void PerformChange () {
		CheckAtLeastOneEffect ();

		GraphicalEffect next = PickRandomEffect ();
		if (!allowImmediateRepeat && CheckAtLeastTwoEffects()) {

			while (next == lastEffect) {
				next = PickRandomEffect();
			}
		}

		lastEffect = next;
		next.EnqueueToScheduler ();
	}
Exemplo n.º 17
0
 private void UpdateFirst()
 {
     if (events.Count == 0)
     {
         firstElement          = null;
         firstElementOccurTime = float.MaxValue;
     }
     else
     {
         var first = events.First();
         firstElement          = first.Value;
         firstElementOccurTime = first.Key;
     }
 }
Exemplo n.º 18
0
    public void Schedule(GraphicalEffect effect, float waitTime)
    {
        float occurTime = Time.time + waitTime;

        if (events.ContainsKey(occurTime))
        {
            GraphicalEffect found = events[occurTime];
            found.AddAnotherEffect(effect);
        }
        else
        {
            events.Add(occurTime, effect);
        }
        UpdateFirst(effect, occurTime);
    }
Exemplo n.º 19
0
	private void PrepareAndScheduleEffect(GraphicalEffect effect) {
		if (effect == this) {
			return;
		}

		if (rescheduling && effect.rescheduling) {
			effect.rescheduling = false;
		}
		if (runAtStart) {
			effect.runAtStart = false;
		}
		SetEffectTargetObject(effect);
		
		effect.EnqueueToScheduler();
	}
Exemplo n.º 20
0
 private bool SearchAndRemoveFromLinkedList(GraphicalEffect listHead, GraphicalEffect removed)
 {
     while (listHead.HasNextEffect())
     {
         if (listHead.GetNextEffect() == removed)
         {
             listHead.RemoveNextEffect();
             return(true);
         }
         else
         {
             listHead = listHead.GetNextEffect();
         }
     }
     return(false);
 }
Exemplo n.º 21
0
	public bool Unschedule(GraphicalEffect effect) {
		bool found = false;
		foreach (KeyValuePair<float, GraphicalEffect> kvp in events)
		{
			if (kvp.Value == effect) {
				events.Remove(kvp.Key);
				found = true;
				if (effect.HasNextEffect()) {
					events.Add(kvp.Key, effect.GetNextEffect());
				}
			} else if (SearchAndRemoveFromLinkedList(kvp.Value, effect)){
				found = true;
			}
		}
		return found;
	}
Exemplo n.º 22
0
    public override void PerformChange()
    {
        CheckAtLeastOneEffect();

        GraphicalEffect next = PickRandomEffect();

        if (!allowImmediateRepeat && CheckAtLeastTwoEffects())
        {
            while (next == lastEffect)
            {
                next = PickRandomEffect();
            }
        }

        lastEffect = next;
        next.EnqueueToScheduler();
    }
Exemplo n.º 23
0
	private void SetEffectTargetObject(GraphicalEffect effect) {
		switch (childTargetObjectsMode) {

			case ChildTargetsMode.noChange: {
				break;
			}
			case ChildTargetsMode.setWhenEmpty: {
				if (effect.targetObject == null) {
					effect.targetObject = GetTargetObject ();
				}
				break;
			}
			case ChildTargetsMode.setEverywhere: {
				effect.targetObject = GetTargetObject ();
				break;
			}
		}
	}
Exemplo n.º 24
0
    private void PrepareAndScheduleEffect(GraphicalEffect effect)
    {
        if (effect == this)
        {
            return;
        }

        if (rescheduling && effect.rescheduling)
        {
            effect.rescheduling = false;
        }
        if (runAtStart)
        {
            effect.runAtStart = false;
        }
        SetEffectTargetObject(effect);

        effect.EnqueueToScheduler();
    }
Exemplo n.º 25
0
    private void SetEffectTargetObject(GraphicalEffect effect)
    {
        switch (childTargetObjectsMode)
        {
        case ChildTargetsMode.noChange: {
            break;
        }

        case ChildTargetsMode.setWhenEmpty: {
            if (effect.targetObject == null)
            {
                effect.targetObject = GetTargetObject();
            }
            break;
        }

        case ChildTargetsMode.setEverywhere: {
            effect.targetObject = GetTargetObject();
            break;
        }
        }
    }
Exemplo n.º 26
0
    public bool Unschedule(GraphicalEffect effect)
    {
        bool found = false;

        foreach (KeyValuePair <float, GraphicalEffect> kvp in events)
        {
            if (kvp.Value == effect)
            {
                events.Remove(kvp.Key);
                found = true;
                if (effect.HasNextEffect())
                {
                    events.Add(kvp.Key, effect.GetNextEffect());
                }
            }
            else if (SearchAndRemoveFromLinkedList(kvp.Value, effect))
            {
                found = true;
            }
        }
        return(found);
    }
 public void SetEffect(GraphicalEffect effect)
 {
     Effect = effect;
 }
Exemplo n.º 28
0
	private void ActivateNext(){
		if (nextElement != null) {
			var next = nextElement;
			nextElement = null;
			next.Activate ();
		}
	}
Exemplo n.º 29
0
	public void RemoveNextEffect() {
		if (nextElement != null) {
			nextElement = nextElement.nextElement;
		}
	}
Exemplo n.º 30
0
	private void AnotherEffectDeadlockCheck(GraphicalEffect anotherEffect) {
		if (this == anotherEffect) {
			throw new ApplicationException("Critical error in EffectScheduler, call Epholl. " + this + ", " + gameObject + " " + gameObject.name);
		}
	}
Exemplo n.º 31
0
	private void UpdateFirst(GraphicalEffect newElement, float occurTime) {
		if (occurTime < firstElementOccurTime) {
			firstElement = newElement;
			firstElementOccurTime = occurTime;
		}
	}