| 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<Animator>(); |
| } |
|
|
| 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<GameObject>("ChoppedTree"), |
| treePosition, Quaternion.Euler(0, 0, 0)); |
|
|
| } |
|
|
| private void Update() |
| { |
| if (canBeChopped) |
| { |
| GlobalState.Instance.resourceHealth = treeHealth; |
| GlobalState.Instance.resourceMaxHealth = treeMaxHealth; |
| } |
| } |
|
|
| } |
|
|