using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(BoxCollider))] public class ChoppableTree : MonoBehaviour { public bool playerInRanger; public bool canBeChopped; public float treeMaxHealth; public float treeHealth; public Animator animator; public float caloriesSpentChoppingWood = 20; private void Start() { treeHealth = treeMaxHealth; canBeChopped = false; animator = transform.parent.transform.parent.GetComponent(); } private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { playerInRanger = true; } } private void OnTriggerExit(Collider other) { if (other.CompareTag("Player")) { playerInRanger = false; } } public void GetHit() { animator.SetTrigger("shake"); treeHealth--; PlayerState.Instance.currentCalories -= caloriesSpentChoppingWood; if (treeHealth <= 0) { TreeIsDead(); } } private void TreeIsDead() { Vector3 treePosition = transform.position; treePosition.y += 1; Destroy(transform.parent.transform.parent.gameObject); canBeChopped = false; SelectionManager.Instance.selectedTree = null; SelectionManager.Instance.chopHolder.gameObject.SetActive(false); GameObject brokenTree = Instantiate(Resources.Load("ChoppedTree"), treePosition, Quaternion.Euler(0, 0, 0)); } private void Update() { if (canBeChopped) { GlobalState.Instance.resourceHealth = treeHealth; GlobalState.Instance.resourceMaxHealth = treeMaxHealth; } } }