private void OnTriggerEnter(Collider col)
    {
        if (col.gameObject.CompareTag("key"))
        {
            PickUpKey(col.gameObject);
            if (denseReward)
            {
                AddReward(0.1f);
            }
            Destroy(col.gameObject);
        }

        if (col.gameObject.CompareTag("orb"))
        {
            PickUpOrb(col.gameObject);
        }

        if (col.gameObject.CompareTag("fake"))
        {
            Destroy(col.gameObject);
        }

        if (col.gameObject.CompareTag("doorZone"))
        {
            DoorLogic doorController = col.transform.GetComponent <DoorLogic>();
            if (doorController)
            {
                doorController.TryOpenDoor(this);
            }
        }
    }
Esempio n. 2
0
    void AttemptOpenDoor(DoorLogic door)
    {
        var doorColor = door.m_Color;

        if (m_KeyHolder.Has(doorColor))
        {
            door.AttemptOpen();
        }
    }
 private void OnTriggerExit(Collider col)
 {
     if (col.gameObject.CompareTag("doorZone"))
     {
         DoorLogic doorController = col.transform.GetComponent <DoorLogic>();
         if (doorController)
         {
             doorController.TryCloseDoor(this);
         }
     }
 }
Esempio n. 4
0
        public DoorPlanningState(DoorLogic door)
        {
            Name = door.gameObject.name;

            if (door.Button.IsPressed)
            {
                ExpectedPosition = door.OpenPosition;
            }
            else
            {
                ExpectedPosition = door.ClosedPosition;
            }
        }
Esempio n. 5
0
    void ResetAll()
    {
        GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
        foreach (GameObject enemy in enemies)
        {
            Enemy script = enemy.GetComponent <Enemy>();
            script.Reset();
        }

        GameObject[] doors = GameObject.FindGameObjectsWithTag("Door");
        foreach (GameObject door in doors)
        {
            DoorLogic script = door.GetComponent <DoorLogic>();
            script.Reset();
        }
    }
Esempio n. 6
0
    void FindLinkedDoors()
    {
        var thisPosition = m_cTransform.position;
        var thisIndex    = new Vector2Int((int)thisPosition.x, (int)thisPosition.y);

        //Indexes to look for.
        var rightIndex = thisIndex + Vector2Int.right;
        var leftIndex  = thisIndex + Vector2Int.left;
        var upIndex    = thisIndex + Vector2Int.up;
        var downIndex  = thisIndex + Vector2Int.down;

        //Save the elements so we don't have to keep finding them.
        var rightElement = m_TileGrid.Get(rightIndex);
        var leftElement  = m_TileGrid.Get(leftIndex);
        var upElement    = m_TileGrid.Get(upIndex);
        var downElement  = m_TileGrid.Get(downIndex);

        //Find right...
        if (rightElement.m_Type == TileType.DOOR && rightElement.m_TileColor == m_ColorCode.m_TileColor)
        {
            var doorTileLogic = rightElement.m_GameObject.GetComponent <DoorTileLogic>();
            var createdDoor   = doorTileLogic.GetCreatedDoor();
            m_LinkedDoorRight = createdDoor.GetComponent <DoorLogic>();
        }
        //Find left...
        if (leftElement.m_Type == TileType.DOOR && leftElement.m_TileColor == m_ColorCode.m_TileColor)
        {
            var doorTileLogic = leftElement.m_GameObject.GetComponent <DoorTileLogic>();
            var createdDoor   = doorTileLogic.GetCreatedDoor();
            m_LinkedDoorLeft = createdDoor.GetComponent <DoorLogic>();
        }
        //Find up...
        if (upElement.m_Type == TileType.DOOR && upElement.m_TileColor == m_ColorCode.m_TileColor)
        {
            var doorTileLogic = upElement.m_GameObject.GetComponent <DoorTileLogic>();
            var createdDoor   = doorTileLogic.GetCreatedDoor();
            m_LinkedDoorUp = createdDoor.GetComponent <DoorLogic>();
        }
        //Find down...
        if (downElement.m_Type == TileType.DOOR && downElement.m_TileColor == m_ColorCode.m_TileColor)
        {
            var doorTileLogic = downElement.m_GameObject.GetComponent <DoorTileLogic>();
            var createdDoor   = doorTileLogic.GetCreatedDoor();
            m_LinkedDoorDown = createdDoor.GetComponent <DoorLogic>();
        }
    }
Esempio n. 7
0
    void Start()
    {
        anim  = GetComponent <Animator>();
        coll  = GetComponent <BoxCollider2D>();
        audio = GetComponent <AudioSource>();

        if (exit)
        {
            DoorLogic dl = exit.GetComponent <DoorLogic>();
            dl.exit = this.gameObject;
        }

        if (!player)
        {
            player = GameObject.FindGameObjectsWithTag("Player")[0];
        }

        SetAnimationColour();
        OpenOrClosed(open);
    }
 // Use this for initialization
 void Start()
 {
     CorrectButtonScript = CorrectButton.GetComponent <ButtonPress> ();
     DoorScript          = Door.GetComponent <DoorLogic> ();
 }
Esempio n. 9
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        if (!leftPlayer)
        {
            leftPlayer = true;
            return;
        }

        if (genericHitNoise)
        {
            audio.PlayOneShot(genericHitNoise, genericHitNoiseVolume);
        }

        GameObject other = collider.gameObject;

        switch (other.tag)
        {
        case "Door":
            DoorLogic dl = other.GetComponent <DoorLogic>();
            if (dl.colour == this.colour)
            {
                dl.Open();
                Die();
            }
            else
            {
                if (bounceOnWrongDoors)
                {
                    this.Bounce();
                }
                else
                {
                    Die();
                }
            }
            break;

        case "Player":
            CharacterControl cc = other.GetComponent <CharacterControl>();
            cc.Damaged();
            Die();
            break;

        case "Enemy":
            if (hitEnemyNoise)
            {
                audio.PlayOneShot(hitEnemyNoise, hitEnemyNoiseVolume);
            }
            ICanDie icd = other.GetComponent <ICanDie>();
            if (icd)
            {
                icd.Hit(damage);
            }
            Die();
            break;

        case "Projectile":
            // do nothing
            break;

        default:
            if (hitWallNoise)
            {
                audio.PlayOneShot(hitWallNoise, hitWallNoiseVolume);
            }
            Die();
            break;
        }
    }
Esempio n. 10
0
 private bool roomDone    = false; // will stop the update function of constantly calling doors.openPath()
 private void Start()
 {
     doors = this.GetComponent <DoorLogic>();
 }