private bool CanInteractWithMine() { if (ClosestObject != null && ClosestObject.GetComponent <ResourceMine>() != null) { NearbyResourceMine = ClosestObject.GetComponent <ResourceMine>(); } if (NearbyResourceMine == null) { return(false); } if (!NearbyResourceMine.CanBeCollected) { return(false); } if (NearbyResourceMine.NeedsItemToInteract) { if (NearbyResourceMine.CanBeCollected && _inventory.HandEquipment.IsOccupied && _inventory.HandEquipment.InvSlotContent.Item && _inventory.HandEquipment.InvSlotContent.Item.Type == NearbyResourceMine.NeededItem) { return(true); } } else { return(true); } return(false); }
private void Update() { _timeOnFire += Time.deltaTime; if (_timeOnFire >= _maximumTimeOnFire) { GameObject firePrefab = transform.Find("Fire Prefab").gameObject; firePrefab.SetActive(false); if (GetComponent <Campfire>() == null) { if (GetComponent <ResourceMine>() != null) { ResourceMine resourceMine = GetComponent <ResourceMine>(); resourceMine.CanBeCollected = false; resourceMine.CanBeSetOnFire = false; //Destroy(resourceMine); } else if (GetComponent <ResourceDrop>() != null) { //Destroy(GetComponent<ResourceDrop>()); } GameObject burntSprite = transform.Find("Burnt Sprite").gameObject; GetComponent <SpriteRenderer>().enabled = false; burntSprite.SetActive(true); GetComponent <BoxCollider2D>().enabled = false; } Invoke("RemoveAsh", 5f); } }
private bool CanExtinguish() { // Checking if the player has Full Bucket Equiped if (_inventory.HandEquipment.IsOccupied && _inventory.HandEquipment.InvSlotContent.Item.Type == Item.ItemType.FullBucket) { // TODO: Select the closest object to the player foreach (GameObject col in AllInstructionsObjectsColliders) { if (col.transform.tag == "Resource Mine") { NearbyResourceMine = col.GetComponent <ResourceMine>(); if (NearbyResourceMine.IsOnFire) { return(true); } } else if (col.transform.tag == "Resource Drop") { NearbyResourceDrop = col.GetComponent <ResourceDrop>(); if (NearbyResourceDrop.IsOnFire) { return(true); } } else if (col.transform.tag == "Campfire") { NearbyCampfire = col.GetComponent <Campfire>(); if (NearbyCampfire.IsOnFire) { return(true); } } } /*if (NearbyResourceMine != null && NearbyResourceMine.IsOnFire) * { * return true; * } * else if (NearbyResourceDrop != null && NearbyResourceDrop.IsOnFire) * { * return true; * } * else if (NearbyCampfire != null && NearbyResourceDrop.IsOnFire) * { * return true; * }*/ } return(false); }
// Check whether the nearby object can be set on fire private void SetOnFire() { if (ClosestObject == null) { return; } if (ClosestObject.GetComponent <ResourceMine>() != null) { NearbyResourceMine = ClosestObject.GetComponent <ResourceMine>(); } else if (ClosestObject.GetComponent <ResourceDrop>() != null) { NearbyResourceDrop = ClosestObject.GetComponent <ResourceDrop>(); } else if (ClosestObject.GetComponent <Campfire>() != null) { NearbyCampfire = ClosestObject.GetComponent <Campfire>(); } if (NearbyResourceMine != null && NearbyResourceMine.CanBeSetOnFire) { //SFX: fire ActivateFirePrefab(NearbyResourceMine.gameObject, false); NearbyResourceMine.IsOnFire = true; } else if (NearbyResourceDrop != null && NearbyResourceDrop.CanBeSetOnFire) { //SFX: fire ActivateFirePrefab(NearbyResourceDrop.gameObject, false); NearbyResourceDrop.IsOnFire = true; } else if (NearbyCampfire != null && NearbyCampfire) { //SFX: fire ActivateFirePrefab(NearbyCampfire.gameObject, true); NearbyCampfire.IsOnFire = true; HideInstructionsSprite(); } }
private void InteractWithMine(ResourceMine mine) { HideInstructionsSprite(); //SFX: pickaxe swing int amountmountOfDrop = mine.Amount; if (mine.BigMine) { amountmountOfDrop *= 2; } for (int i = 0; i < amountmountOfDrop; i++) { int randomNumber = Random.Range(-3, 4); Vector3 positionToSpawn = new Vector3(mine.transform.position.x + randomNumber, mine.transform.position.y + randomNumber, mine.transform.position.z); ResourceDrop ResourceDrop = Instantiate(ResourceDropPrefab, positionToSpawn, Quaternion.identity).GetComponent <ResourceDrop>(); ResourceDrop.Type = mine.Type; if (ResourceDrop.Type == Resource.ResourceType.Wood || ResourceDrop.Type == Resource.ResourceType.Leaf) { ResourceDrop.CanBeSetOnFire = true; } ResourceDrop.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Sprites/" + mine.Type.ToString()); ResourceDrop.Consubamle = mine.ConsumableDrop; if (ResourceDrop.Consubamle) { ResourceDrop.EffectOnPlayer = mine.EffectOnPlayer; } } _firstInstruction = true; NearbyResourceMine = null; if (mine.WillBeDestroyed) { Destroy(mine.gameObject); } else if (mine.WillChangeSprite) { mine.GetComponent <SpriteRenderer>().sprite = mine.SpriteToChangeTo; mine.CanBeCollected = false; } if (mine.Type2 != Resource.ResourceType.None) { for (int i = 0; i < amountmountOfDrop; i++) { int randomNumber = Random.Range(-1, 2); Vector3 positionToSpawn = new Vector3(mine.transform.position.x + randomNumber, mine.transform.position.y + randomNumber, mine.transform.position.z); ResourceDrop ResourceDrop = Instantiate(ResourceDropPrefab, positionToSpawn, Quaternion.identity).GetComponent <ResourceDrop>(); ResourceDrop.Type = mine.Type2; if (ResourceDrop.Type == Resource.ResourceType.Wood || ResourceDrop.Type == Resource.ResourceType.Leaf) { ResourceDrop.CanBeSetOnFire = true; } ResourceDrop.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Sprites/" + mine.Type.ToString()); ResourceDrop.Consubamle = mine.ConsumableDrop; if (ResourceDrop.Consubamle) { ResourceDrop.EffectOnPlayer = mine.EffectOnPlayer; } } if (mine.WillBeDestroyed) { Destroy(mine.gameObject); } else if (mine.WillChangeSprite) { mine.GetComponent <SpriteRenderer>().sprite = mine.SpriteToChangeTo; mine.CanBeCollected = false; } } }
private void OnTriggerExit2D(Collider2D col) { if (AllInstructionsObjectsColliders.Contains(col.gameObject)) { //GetClosestObject("Exit"); AllInstructionsObjectsColliders.Remove(col.gameObject); if (ClosestObject != null && ClosestObject == col.gameObject) { HideInstructionsSprite(); if (ClosestObject.GetComponent <ResourceMine>() != null) { NearbyResourceMine = null; } else if (ClosestObject.GetComponent <ResourceDrop>() != null) { NearbyResourceDrop = null; } else if (ClosestObject.GetComponent <ItemDrop>() != null) { NearbyItemDrop = null; } else if (ClosestObject.GetComponent <Campfire>() != null) { NearbyCampfire = null; } ClosestObject = null; } /*if (col.transform.Find("Instructions Image") != null) * { * if (_instructionsToggled.Contains(col.transform.Find("Instructions Image").gameObject)) * _instructionsToggled.Remove(ClosestObject.transform.Find("Instructions Image").gameObject); * col.gameObject.transform.Find("Instructions Image").gameObject.SetActive(false); * }*/ //HideInstructionsSprite(); } /*if (col.GetComponent<ResourceMine>() != null) * { * if (NearbyResourceMine == col.GetComponent<ResourceMine>()) * { * NearbyResourceMine = null; * } * } * else if (col.GetComponent<ResourceDrop>() != null) * { * if (NearbyResourceDrop == col.GetComponent<ResourceDrop>()) * { * NearbyResourceDrop = null; * } * } * else if (col.GetComponent<ItemDrop>() != null) * { * if (NearbyItemDrop == col.GetComponent<ItemDrop>()) * { * NearbyItemDrop = null; * } * } * else if (col.GetComponent<Campfire>() != null) * { * if (NearbyCampfire == col.GetComponent<Campfire>()) * { * NearbyCampfire = null; * } * }*/ }