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); }
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; } } }