File size: 1,791 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 83 84 |
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerState : MonoBehaviour
{
public static PlayerState Instance { get; set; }
public float currentHealth;
public float maxHealth;
public float currentCalories;
public float maxCalories;
public float currentHydration;
public float maxHydration;
float distanceTraveled = 0;
Vector3 lastPosition;
public GameObject playerBody;
public bool isHydrationActive = true;
private void Awake()
{
if (Instance != null && Instance != this)
{
DestroyObject(gameObject);
}
else
{
Instance = this;
}
}
// Start is called before the first frame update
void Start()
{
currentHealth = maxHealth;
currentCalories = maxCalories;
currentHydration = maxHydration;
StartCoroutine(decreaseHydration());
}
IEnumerator decreaseHydration()
{
while (isHydrationActive)
{
currentHydration--;
yield return new WaitForSeconds(20);
}
}
// Update is called once per frame
void Update()
{
distanceTraveled += Vector3.Distance(playerBody.transform.position, lastPosition);
lastPosition = playerBody.transform.position;
if (distanceTraveled >= 5)
{
distanceTraveled = 0;
currentCalories--;
}
}
public void setCalories(float newCalories)
{
currentCalories = newCalories;
}
internal void setHydration(float newHydration)
{
currentHydration = newHydration;
}
internal void setHealth(float newHealth)
{
currentHealth = newHealth;
}
}
|