public virtual void Complete(GameObject target, OriginalInfo origin)
 {
 }
 // Activate function. Returns the delay if timed. Returns -1 if infinite.
 public override void Activate(GameObject target, OriginalInfo origin, float time)
 {
     foreach(ANode node in Nodes)
         node.Activate(target, origin, time);
 }
 public override void Complete(GameObject target, OriginalInfo origin)
 {
     target.GetComponent<SpriteRenderer>().color = new Vector4 (origin.Color.x, origin.Color.y, origin.Color.z, Alpha);
 }
 // Activate function. Returns the delay if timed. Returns -1 if infinite.
 public virtual void Activate(GameObject target, OriginalInfo origin, float time)
 {
 }
 public override void Complete(GameObject target, OriginalInfo origin)
 {
     target.GetComponent<Transform>().position = origin.Pos + ShiftPos;
 }
 public override void Activate(GameObject target, OriginalInfo origin, float time)
 {
     target.GetComponent<SpriteRenderer>().color = Vector4.Lerp(origin.Color, new Vector4 (origin.Color.x, origin.Color.y, origin.Color.z, Alpha), time / Duration);
 }
 public override void Complete(GameObject target, OriginalInfo origin)
 {
     target.GetComponent<Transform>().localScale = new Vector3(Scale.x, Scale.y, 0);
 }
 public override void Activate(GameObject target, OriginalInfo origin, float time)
 {
     target.GetComponent<Transform>().position = Vector3.Lerp(origin.Pos, origin.Pos + ShiftPos, time / Duration);
 }
 public override void Complete(GameObject target, OriginalInfo origin)
 {
     target.GetComponent<Transform>().rotation = Quaternion.Euler(Rot.x, Rot.y, Rot.z);
 }
 public override void Activate(GameObject target, OriginalInfo origin, float time)
 {
     target.GetComponent<Transform>().localScale = Vector3.Lerp(origin.Scale, new Vector3(Scale.x, Scale.y, 0), time / Duration);
 }
 public override void Activate(GameObject target, OriginalInfo origin, float time)
 {
     target.GetComponent<Transform>().rotation = Quaternion.Lerp(origin.Rot, Quaternion.Euler(Rot.x, Rot.y, Rot.z), time / Duration);
 }
 public override void Activate(GameObject target, OriginalInfo origin, float time)
 {
     if(UseStart)
         target.GetComponent<Transform>().position = Vector3.Lerp(StartPos, EndPos, time / Duration);
     else
         target.GetComponent<Transform>().position = Vector3.Lerp(origin.Pos, EndPos, time / Duration);
 }
 public override void Complete(GameObject target, OriginalInfo origin)
 {
 }
 public override void Activate(GameObject target, OriginalInfo origin, float time)
 {
 }
 public override void Complete(GameObject target, OriginalInfo origin)
 {
     foreach(ANode node in Nodes)
         node.Complete(target, origin);
 }