Question by
takaraemisaito1994 · Apr 12 at 09:24 AM ·
timerif-statements
If statement works but some code inside it doesn't work. ,
I'm trying to make it so that HasToPee is false and CurrentTimeChecked is false. Also the TimerCD doesn't work either yet it turns on in that statement. Please help!!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BathroomSystem : MonoBehaviour
{
public PlayerStatus playerStatus;
public Timer timer;
public bool peeSystemOn = false;
public int BladderFull = 10;
public bool playerHasPeed = false;
public bool timerCD = false;
public float currentTime;
public bool currentTimeChecked = false;
public float peeTimer;
public float floatemp = 535f;
public float bladderCD;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (timer.timeValue <= 541)
{
peeSystemOn = true;
if (playerStatus.PeeValue == BladderFull)
{
playerStatus.hasToPee = true;
PeeFunction();
}
}
if (peeSystemOn == true)
{
/* bladderTimer -= (timerSpeed * Time.deltaTime);
if (bladderTimer == 5)
{
*/
if (floatemp > timer.timeValue)
{
if (playerStatus.PeeValue < BladderFull)
{
floatemp = timer.timeValue - 5f;
if (!timerCD)
{
playerStatus.PeeValue = playerStatus.PeeValue + 1;
}
else if (timerCD && playerStatus.hasToPee)
{
Debug.Log("Timer cooldown on.");
playerStatus.PeeValue = playerStatus.PeeValue - 1;
if (playerStatus.PeeValue == 0)
{
StartCoroutine(PeeCooldown());
}
}
}
}
// }
if (playerStatus.PeeValue >= BladderFull)
{
playerStatus.PeeValue = BladderFull;
}
if (playerStatus.PeeValue <= 0)
{
playerStatus.PeeValue = 0;
}
}
}
IEnumerator PeeCooldown()
{
yield return new WaitForSeconds(bladderCD);
if (playerHasPeed == true)
{
playerHasPeed = false;
}
timerCD = false;
}
void PeeFunction()
{
if (currentTimeChecked == false)
{
currentTime = timer.timeValue;
currentTimeChecked = true;
}
float timerS = timer.timeValue;
if (timerS < currentTime)
{
//Debug.Log("Time started: 30 seconds.");
if (playerHasPeed == true)
{
timer.timeValue = timer.timeValue - 30;
playerStatus.hasToPee = false;
currentTimeChecked = false;
timerCD = true;
Debug.Log("Player has peed.");
}
}
if (timerS < (currentTime - peeTimer))
{
//Debug.Log(currentTime - peeTimer);
if (playerHasPeed == false)
{
timer.timeValue = timer.timeValue - 60;
playerStatus.hasToPee = false;
currentTimeChecked = false;
timerCD = true;
Debug.Log("Player has peed on themselves.");
}
}
}
}
,
Comment