예제 #1
0
    private bool CheckUnlockDoor(Direction dir)
    {
        RaycastHit2D rh;
        Vector3      rcDir = Vector3.zero;

        switch (dir)
        {
        case Direction.right:
            rcDir = Vector3.right;
            break;

        case Direction.down:
            rcDir = Vector3.down;
            break;

        case Direction.left:
            rcDir = Vector3.left;
            break;

        case Direction.up:
            rcDir = Vector3.up;
            break;
        }
        rh = Physics2D.Raycast(transform.position, rcDir, 1, wallLayerMask);

        if (rh.collider != null && canOpenChest)
        {
            Door d = rh.collider.gameObject.GetComponent <Door>();
            //Debug.Log("checking door " + d.isLocked + "  " + d.isClosed + " " + PlayerInventory.HasKeys() + " " + PlayerInventory.keys);
            if (d != null && d.isLocked && d.isClosed && PlayerInventory.HasKeys())
            {
                PlayerInventory.AddKey(-1);
                d.UnlockDoor();

                return(true);
            }

            LootActivatorTile l = rh.collider.gameObject.GetComponent <LootActivatorTile>();
            if (l != null)
            {
                canOpenChest = false;

                l.OpenLoot();

                return(true);
            }

            ShopActivatorTile s = rh.collider.gameObject.GetComponent <ShopActivatorTile>();
            if (s != null)
            {
                canOpenChest = false;

                s.OpenShop();

                return(true);
            }
        }

        return(false);
    }
예제 #2
0
    private void InitChest()
    {
        // Room_WxH_Doors
        // - Objects
        //   - Chest [Name]
        //   - ..
        GameObject objectContainer = transform.Find("Objects").gameObject;

        if (objectContainer != null)
        {
            LootActivatorTile loot = objectContainer.GetComponentInChildren <LootActivatorTile>();
            if (loot != null)
            {
                chestObj = loot.gameObject;
            }
        }
    }