Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.AI;
- using TMPro;
- public class TaskM : MonoBehaviour
- {
- public bool freeTime = true;
- public bool generateNewTask;
- public bool startAgroTimer;
- public bool startNewTaskTimer;
- private float Agrotimer;
- private float reverseAgroTimer;
- private float NewTaskTimer;
- private int RemmeberedNum = 0;
- public int NewNumber = 0;
- private bool _managerActive = false;
- public Text managerT;
- private TextMeshProUGUI subtitle;
- public GameObject player;
- public GameObject phone;
- public NavMeshAgent agent;
- public GameObject[] TaskObjects;
- public GameObject minimap;
- private Transform taskPos;
- public LineRenderer lineRenderer;
- public GameObject managerPapp;
- // Update is called once per frame
- void Update()
- {
- //keeps agro if agro is active once
- if(_managerActive == true)
- {
- spawnManager();
- }
- //print(Agrotimer);
- if(Agrotimer > 0){
- NavMeshPath path = new NavMeshPath();
- NavMesh.CalculatePath(player.transform.position, taskPos.Find("navPos").gameObject.transform.position, NavMesh.AllAreas, path); //Saves the path in the path variable.
- Vector3[] corners = path.corners;
- lineRenderer.positionCount = corners.Length;
- lineRenderer.SetPositions(corners);
- }else{
- lineRenderer.positionCount = 0;
- }
- if(generateNewTask == true){
- //creates new task
- newTask();
- }
- else if(generateNewTask == false){
- //remebers last task
- RemmeberedNum = NewNumber;
- }
- //catalouges all task-objects
- TaskObjects = GameObject.FindGameObjectsWithTag("Task");
- //checks if task is complete before agro timer runs out.
- if(startAgroTimer == true && TaskObjects[NewNumber].GetComponent<Interacted>().enabled == false){
- freeTime = true;
- startAgroTimer = false;
- }
- //strats agro timer if task isnt completed.
- if(startAgroTimer == true){
- phone.GetComponent<Animator>().SetInteger("state", 1);
- Agrotimer += Time.deltaTime;
- managerT.text = ("Follow the map and interact with the " + TaskObjects[NewNumber].name + " <color=blue>" + (60f - Agrotimer).ToString("0") + "</color>");
- if(Agrotimer > 60f){
- //spawns Manager if task isnt Complete whitin 60s
- spawnManager();
- _managerActive = true;
- }
- }else if(startAgroTimer == false){
- Agrotimer = 0f;
- }
- //starts freetime before new task
- if(freeTime == true){
- subtitle = GameObject.FindGameObjectWithTag("sub").GetComponent<TextMeshProUGUI>();
- subtitle.text = "";
- phone.GetComponent<Animator>().SetInteger("state", 2);
- NewTaskTimer += Time.deltaTime;
- managerT.text = " ";
- if(NewTaskTimer > 45f){
- generateNewTask = true;
- managerT.text = "not freetime.";
- freeTime = false;
- }
- }
- else if(freeTime == false){
- NewTaskTimer = 0f;
- }
- }
- public void newTask(){
- //Creates new different task from last one
- NewNumber = Random.Range(0, TaskObjects.Length);
- if(RemmeberedNum != NewNumber){
- TaskObjects[NewNumber].GetComponent<Interacted>().enabled = true;
- //Debug.Log(TaskObjects[NewNumber].name);
- managerT.text = "new task created";
- //startPhoneCallAudio(NewNumber);
- Agrotimer = 0f;
- startAgroTimer = true;
- generateNewTask = false;
- phone.GetComponent<Animator>().SetInteger("state", 1);
- TaskObjects[NewNumber].GetComponent<Interacted>().TaskStarted();
- taskPos = TaskObjects[NewNumber].transform;
- }else{
- managerT.text = "creating...";
- }
- }
- public void spawnManager(){
- //some manager spawning code
- managerT.text = "Manager in the house!";
- agent.GetComponent<BoxCollider>().enabled = true;
- managerPapp.GetComponent<SpriteRenderer>().enabled = true;
- agent.SetDestination(player.transform.position);
- }
- void navLines(Transform taskPos){
- //navmesh lines
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement