File size: 1,837 Bytes
3497d64 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
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;
}
}
}
|