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