static void main(string[] args)
    {
        ParkManager parkManager = new ParkManager();

        parkManager.CreateParks();
        foreach (Park park in parkManager.Parks)
        {
            // do something with park
        }
    }
Beispiel #2
0
    void Awake()
    {
        if (!mInstance)
        {
            mInstance = this;
        }

        Events.ChangeGameState += ChangeGameState;

        parkManager         = GetComponent <ParkManager>();
        runSignalsManager   = GetComponent <RunSignalsManager>();
        lightsManager       = GetComponent <LightsManager>();
        avatarRunningMoment = GetComponent <AvatarRunningMoment>();
    }
Beispiel #3
0
    void OnGUI()
    {
        var parkManager = new ParkManager();

        row    = EditorGUILayout.IntSlider(row, 0, 7);
        column = EditorGUILayout.IntSlider(column, 0, 7);

        if (GUILayout.Button("NW"))
        {
            Park.Instance.Raise(row, column, 1, 0, 0, 0);
        }

        if (GUILayout.Button("NE"))
        {
            Park.Instance.Raise(row, column, 0, 1, 0, 0);
        }

        if (GUILayout.Button("SE"))
        {
            Park.Instance.Raise(row, column, 0, 0, 1, 0);
        }

        if (GUILayout.Button("SW"))
        {
            Park.Instance.Raise(row, column, 0, 0, 0, 1);
        }

        if (GUILayout.Button("Load"))
        {
            parkManager.Load("debug");
        }

        if (GUILayout.Button("Save"))
        {
            parkManager.Save("debug");
        }
    }
Beispiel #4
0
    void Update()
    {
        // If the next update is reached
        if (Time.time >= nextUpdate)
        {
            nextUpdate = Mathf.FloorToInt(Time.time) + 1;
            UpdateEverySecond();
        }

        // Create new path
        if (currentStatus == status.IDLE && remainingIdleTime == 0)
        {
            // 50:50 Chance calculator
            // 1 = attraction
            // 0 = random
            walkRandom = (Random.value > 0.55f);

            // Show NPC
            ShowNPC();
            currentStatus = status.WALKING;

            if (!walkRandom)
            {
                ParkManager parkManager = FindObjectOfType <ParkManager>();
                if (parkManager)
                {
                    List <AttractionController> attractions = parkManager.activeAttractions;
                    if (attractions.Count > 0)
                    {
                        int attractionIndex = Random.Range(0, attractions.Count);

                        // Do not move to last attraction again
                        if (!lastVisitedAttraction || lastVisitedAttraction != attractions[attractionIndex])
                        {
                            destination = attractions[attractionIndex].entrancePosition;

                            lastVisitedAttraction = attractions[attractionIndex];

                            agent.SetDestination(new Vector3(destination.position.x, transform.position.y, destination.position.z));
                            anim.SetBool("moving", true);
                        }
                        else
                        {
                            currentStatus = status.IDLE;
                        }
                    }
                    else
                    {
                        currentStatus = status.IDLE;
                    }
                }
                else
                {
                    currentStatus = status.IDLE;
                }
            }
            else
            {
                remainingIdleTime = Random.Range(game.idleTimeMin, game.idleTimeMax);;
                agent.SetDestination(GetRandomLocation());
                anim.SetBool("moving", true);
            }
        }

        if (currentStatus == status.WALKING)
        {
            if (!agent.pathPending)
            {
                if (agent.remainingDistance <= agent.stoppingDistance)
                {
                    if (!agent.hasPath || agent.velocity.sqrMagnitude == 0f)
                    {
                        if (destination)
                        {
                            anim.SetBool("moving", false);

                            AttractionController attraction = lastVisitedAttraction.GetComponent <AttractionController>();
                            // Check if target is really an attraction
                            if (attraction)
                            {
                                attraction.AddNPCToQueue(gameObject);
                                remainingIdleTime = 0;

                                HideNPC();
                            }

                            destination = null;
                        }
                        else if (walkRandom && remainingIdleTime != 0)
                        {
                            currentStatus = status.IDLE;
                            anim.SetBool("moving", false);
                        }
                    }
                }
            }
        }
    }
Beispiel #5
0
 void Start()
 {
     visitorManager = FindObjectOfType <VisitorManager>();
     parkManager    = FindObjectOfType <ParkManager>();
 }
Beispiel #6
0
 private void Awake()
 {
     Instance    = this;
     parkedCount = 0;
 }