<NME> trigger_base.cs
<BEF> ﻿using UnityEngine;
using System.Collections;

public class trigger_base : traptrigger_base {

	/// <summary>
	/// The trigger me now. Fire off the trigger to test it's operation.
	/// </summary>
	public bool TriggerMeNow=false;

	protected override void Start ()
	{
		base.Start ();
		this.gameObject.layer=LayerMask.NameToLayer("Ignore Raycast");
	}

	public override bool Activate (GameObject src)
	{
		GameObject triggerObj = ObjectLoader.getGameObjectAt(link);
		if (triggerObj!=null)
		{
            if (WillFire())
            {
                if (triggerObj.GetComponent<trap_base>() != null)
                {
                    triggerObj.GetComponent<trap_base>().Activate(this, quality, owner, flags);
                }
            }
            else
            {
                Debug.Log(this.name + " will not trigger due to flag.");
            }
		}
		PostActivate(src);
		return true;
	}

	public virtual void PostActivate(GameObject src)
		if (TriggerRepeat==0)
		{
			this.gameObject.GetComponent<ObjectInteraction>().objectloaderinfo.InUseFlag=0;
			if (src.GetComponent<ObjectInteraction>()!=null)
			{//Clear the link to the trigger/trap from the source if it is destroyed.
				if (src.GetComponent<ObjectInteraction>().link == this.gameObject.GetComponent<ObjectInteraction>().objectloaderinfo.index)
				{
					src.GetComponent<ObjectInteraction>().link=0;
				}
			}

			Destroy (this.gameObject);

		}

	}

	public virtual void Update()
	}

	public override void Update() 
	{
		if(TriggerMeNow)
		{
			TriggerMeNow=false;
			Activate(this.gameObject);
		}
	}

    private void OnDrawGizmos()
    {
        Gizmos.color = Color.red;

        if (link != 0)
        {
            GameObject target = ObjectLoader.getGameObjectAt(link);
            if (target != null)
            {
                Gizmos.DrawLine(transform.position, target.transform.position);
            }
        }
    }

}


<MSG> Implemented the class specific bonus item hack trap_base
Implemented the object visibility hack trap
Implemented sprite invisibility.
Invisible buttons are now non-usable
Implemented exit Triggers/ButtonHandler.cs
Tweaked switch and tmap positioning

<DFF> @@ -39,18 +39,18 @@ public class trigger_base : object_base {
 		if (TriggerRepeat==0)
 		{
 			this.gameObject.GetComponent<ObjectInteraction>().objectloaderinfo.InUseFlag=0;
-			if (src.GetComponent<ObjectInteraction>()!=null)
-			{//Clear the link to the trigger/trap from the source if it is destroyed.
-				if (src.GetComponent<ObjectInteraction>().link == this.gameObject.GetComponent<ObjectInteraction>().objectloaderinfo.index)
-				{
-					src.GetComponent<ObjectInteraction>().link=0;
-				}
+			if (src!=null)
+			{
+				if (src.GetComponent<ObjectInteraction>()!=null)
+				{//Clear the link to the trigger/trap from the source if it is destroyed.
+					if (src.GetComponent<ObjectInteraction>().link == this.gameObject.GetComponent<ObjectInteraction>().objectloaderinfo.index)
+					{
+						src.GetComponent<ObjectInteraction>().link=0;
+					}
+				}	
 			}
-
 			Destroy (this.gameObject);
-
 		}
-
 	}
 
 	public virtual void Update()

Implemented the class specific bonus item hack trap_base Implemented the object visibility hack trap Implemented sprite invisibility. Invisible buttons are now non-usable Implemented exit Triggers/ButtonHandler.cs Tweaked switch and tmap positioning