3DSurvivalGame / Assets /Scripts /ChoppableTree.cs
doc2txt's picture
1
3497d64
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;
}
}
}