void OnTriggerStay(Collider obj)
 {
     // enters range to use an object. Certain objects take priority over others
     if (obj.tag == "Door" && !canTakeKey && !canOpenChest)
     {
         MazeDoor door = obj.gameObject.GetComponent <MazeDoor>();
         if (door.doorOpen)
         {
             interactText.text = "Press E to close Door";
         }
         else
         {
             interactText.text = "Press E to open Door";
         }
         canToggleDoor = true;
     }
     if (obj.tag == "Chest")
     {
         Chest chest = obj.gameObject.GetComponent <Chest>();
         if (chest.chestOpen || chest.chestOpening)
         {
             canOpenChest = false;
         }
     }
 }
    public void openTheDoor()
    {
        MazeDoor otherDoor = mazeDoor.otherCell.GetEdge(mazeDoor.direction.GetOpposite()) as MazeDoor;

        if (otherDoor != null)
        {
            Animator otherAnim = otherDoor.gameObject.GetComponent <Animator>();
            if (otherAnim != null && otherAnim.GetBool("isOpen") != true)
            {
                //... the enemy should take damage.
                otherAnim.SetBool("isOpen", true);
                otherDoor.isOpen = true;
            }
        }
        Animator anim = gameObject.GetComponent <Animator>();

        //If the EnemyHealth component exist...
        if (anim != null && anim.GetBool("isOpen") != true)
        {
            //... the enemy should take damage.
            anim.SetBool("isOpen", true);
            mazeDoor.isOpen = true;
        }

        audioSource.Play();
    }
示例#3
0
    private MazeDoor CreateDoor(MazeCell cell, MazeDirection direction)
    {
        MazeDoor door = Instantiate(doorPrefab) as MazeDoor;

        door.Initialize(cell, direction);
        return(door);
    }
示例#4
0
    public void Show()
    {
        if (!isActiveAndEnabled)
        {
            gameObject.SetActive(true);
            foreach (MazeCellEdge edge in edges)
            {
                if (edge is MazeDoor && edge.otherCell.isActiveAndEnabled)
                {
                    //edge.gameObject.SetActive(false);
                    MazeDoor door = edge as MazeDoor;

                    for (int i = 0; i < door.transform.childCount; i++)
                    {
                        Transform child = door.transform.GetChild(i);
                        if (child == door.hinge)
                        {
                            child.gameObject.SetActive(false);
                        }
                    }
                }
                if (edge is MazeWall && wallBetween.Contains(edge.otherCell))
                {
                    //edge.otherCell.gameObject.SetActive(true);
                    //MazeCellEdge e = edge.otherCell.GetEdge(MazeDirections.GetOpposite(edge.direction)); // never used

                    //e.gameObject.SetActive(false);
                }
            }
        }
    }
示例#5
0
 public void Unlock()
 {
     for (int i = 0; i < edges.Length; i++)
     {
         if (edges[i] is MazeDoor)
         {
             MazeDoor door = edges[i] as MazeDoor;
             door.Unlock();
         }
     }
 }
 void OnTriggerStay(Collider obj)
 {
     // enters range to use an object. Certain objects take priority over others
     if (obj.tag == "Door")
     {
         MazeDoor door = obj.gameObject.GetComponent <MazeDoor>();
         if (door.doorOpen)
         {
             interactText.text = "Press E to close Door";
         }
         else
         {
             interactText.text = "Press E to open Door";
         }
         canToggleDoor = true;
     }
 }
示例#7
0
    public override void Initialize(MazeCell thisCell, MazeCell thatCell, MazeDirection direction)
    {
        base.Initialize(thisCell, thatCell, direction);
        MazeDoor opositeDoor = OtherSideOfDoor;

        if (opositeDoor != null)
        {
            isMirrored       = true;
            hinge.localScale = new Vector3(-1f, 1f, 1f);
            Vector3 pos = hinge.localPosition;
            pos.x = -pos.x;
            hinge.localPosition = pos;
        }
        for (int i = 0; i < transform.childCount; i++)
        {
            Transform child = transform.GetChild(i);
            if (child != hinge)
            {
                child.GetComponent <Renderer> ().material = thisCell.room.settings.wallMaterial;
            }
        }
    }
示例#8
0
    private void CreatePassage(MazeCell cell, MazeCell otherCell, MazeDirection direction)
    {
        MazeDoor passage = Instantiate(doorPrefab) as MazeDoor;

        passage.Initialize(cell, otherCell, direction);
    }
示例#9
0
 // Use this for initialization
 void Start()
 {
     mazeDoor = GetComponentInParent <MazeDoor>();
 }
 void Start()
 {
     mazeDoor = gameObject.GetComponent <MazeDoor>();
 }
	public void Initialize (MazeCell cell, MazeDirection direction, MazeDoor door) {
		base.Initialize (cell, direction);
		this.controlledDoor = door;
	}