Exemplo n.º 1
0
    void warpLocation()
    {
        for (int i = 0; i < doors.Count; i++)
        {
            if (Input.GetKeyDown("w"))
            {
                if (Players[0].transform.position.x <doors[i].transform.position.x + .4f && Players[0].transform.position.x> doors[i].transform.position.x - .4f && Players[0].transform.position.y <doors[i].transform.position.y && Players[0].transform.position.y> doors[i].transform.position.y - 1 && doors[i].tag != "exit")
                {
                    pathScript   = GameObject.FindGameObjectWithTag(doors[i].tag).GetComponent <pathScript>();
                    targetScript = GameObject.FindGameObjectWithTag(pathScript.target).GetComponent <pathScript>();
                    Players[0].transform.position = new Vector3(targetScript.transform.position.x, targetScript.transform.position.y - .3f, Players[0].transform.position.z);
                    Debug.Log("Warped!");
                    break;
                }
                else if (Players[0].transform.position.x <doors[doors.Count - 1].transform.position.x + .4f && Players[0].transform.position.x> doors[doors.Count - 1].transform.position.x - .4f && Players[0].transform.position.y <doors[doors.Count - 1].transform.position.y && Players[0].transform.position.y> doors[doors.Count - 1].transform.position.y - 1)
                {
                    dScript.nextPlayers.Add(Players[0]);
                    Players[0].transform.Translate(0, 3.4f, 4);
                    Players[0].AddComponent <advanceScript>();
                    dScript.playersAdv++;
                    break;
                }
            }
            if (Input.GetKeyDown("i"))
            {
                if (Players[1].transform.position.x <doors[i].transform.position.x + .4f && Players[1].transform.position.x> doors[i].transform.position.x - .4f && Players[1].transform.position.y <doors[i].transform.position.y && Players[1].transform.position.y> doors[i].transform.position.y - 1 && doors[i].tag != "exit")
                {
                    pathScript   = GameObject.FindGameObjectWithTag(doors[i].tag).GetComponent <pathScript>();
                    targetScript = GameObject.FindGameObjectWithTag(pathScript.target).GetComponent <pathScript>();
                    Players[1].transform.position = new Vector3(targetScript.transform.position.x, targetScript.transform.position.y - .3f, Players[1].transform.position.z);
                    break;
                }
                else if (Players[1].transform.position.x <doors[doors.Count - 1].transform.position.x && Players[1].transform.position.x> doors[doors.Count - 1].transform.position.x - 1 && Players[1].transform.position.y <doors[doors.Count - 1].transform.position.y && Players[1].transform.position.y> doors[doors.Count - 1].transform.position.y - 1)
                {
                    dScript.nextPlayers.Add(Players[1]);
                    Players[1].transform.Translate(0, 3.4f, 4);
                    Players[1].AddComponent <advanceScript>();
                    dScript.playersAdv++;
                    break;
                }
            }

            if (Input.GetKeyDown(KeyCode.UpArrow))
            {
                if (Players[2].transform.position.x <doors[i].transform.position.x + .4f && Players[2].transform.position.x> doors[i].transform.position.x - .4f && Players[2].transform.position.y <doors[i].transform.position.y && Players[2].transform.position.y> doors[i].transform.position.y - 1 && doors[i].tag != "exit")
                {
                    pathScript   = GameObject.FindGameObjectWithTag(doors[i].tag).GetComponent <pathScript>();
                    targetScript = GameObject.FindGameObjectWithTag(pathScript.target).GetComponent <pathScript>();
                    Players[2].transform.position = new Vector3(targetScript.transform.position.x, targetScript.transform.position.y - .3f, Players[2].transform.position.z);
                    break;
                }
                else if (Players[2].transform.position.x <doors[doors.Count - 1].transform.position.x && Players[2].transform.position.x> doors[doors.Count - 1].transform.position.x - 1 && Players[2].transform.position.y <doors[doors.Count - 1].transform.position.y && Players[2].transform.position.y> doors[doors.Count - 1].transform.position.y - 1)
                {
                    dScript.nextPlayers.Add(Players[2]);
                    Players[2].transform.Translate(0, 3.4f, 4);
                    Players[2].AddComponent <advanceScript>();
                    dScript.playersAdv++;
                    break;
                }
            }

            if (Input.GetKeyDown(KeyCode.Keypad8))
            {
                if (Players[3].transform.position.x <doors[i].transform.position.x + .4f && Players[3].transform.position.x> doors[i].transform.position.x - .4f && Players[3].transform.position.y <doors[i].transform.position.y && Players[3].transform.position.y> doors[i].transform.position.y - 1 && doors[i].tag != "exit")
                {
                    pathScript   = GameObject.FindGameObjectWithTag(doors[i].tag).GetComponent <pathScript>();
                    targetScript = GameObject.FindGameObjectWithTag(pathScript.target).GetComponent <pathScript>();
                    Players[3].transform.position = new Vector3(targetScript.transform.position.x, targetScript.transform.position.y - .3f, Players[3].transform.position.z);
                    break;
                }
                else if (Players[3].transform.position.x <doors[doors.Count - 1].transform.position.x && Players[3].transform.position.x> doors[doors.Count - 1].transform.position.x - 1 && Players[3].transform.position.y <doors[doors.Count - 1].transform.position.y && Players[3].transform.position.y> doors[doors.Count - 1].transform.position.y - 1)
                {
                    dScript.nextPlayers.Add(Players[3]);
                    Players[3].transform.Translate(0, 3.4f, 4);
                    Players[3].AddComponent <advanceScript>();
                    dScript.playersAdv++;
                    break;
                }
            }
        }
    }
Exemplo n.º 2
0
    // Use this for initialization
    void Start()
    {
        jumping           = false;
        dScript           = GameObject.FindGameObjectWithTag("Game").GetComponent <dataScript>();
        successfulPathing = false;
        for (int i = 0; i < 4 - dScript.level; i++)
        {
            if (dScript.level == 0)
            {
                GameObject c = (GameObject)Instantiate(prefab[i], new Vector3(-5 + i, -3.3f, -4), Quaternion.identity);
                c.tag = "Player" + (i + 1);
                Players.Add(c);
                for (int i1 = 1; i1 <= i; i1++)
                {
                    Physics.IgnoreCollision(Players[i].GetComponent <Collider>(), Players[i - i1].GetComponent <Collider>());
                }
            }
            else
            {
                GameObject c = dScript.nextPlayers[i];
                Players.Add(c);
            }
        }
        //dScript.nextPlayers.RemoveRange(0, dScript.nextPlayers.Count);
        doors[doors.Count - 1].tag = "exit";
        pathScript = GameObject.FindGameObjectWithTag("exit").GetComponent <pathScript>();
        numRows    = pathScript.row;

        for (int i = 0; i < doors.Count - 1; i++)
        {
            doors[i].tag = "Door" + (i + 1);
        }


        for (int i = 0; i < doors.Count - 1; i++)
        {
            makePath(i);
        }


        if (!successfulPathing)
        {
            string door1 = " ";
            string door2 = " ";
            for (int i = 0; i < doors.Count - 1; i++)
            {
                pathScript = GameObject.FindGameObjectWithTag(doors[i].tag).GetComponent <pathScript>();
                if (pathScript.target == " " && door1 == " ")
                {
                    door1 = pathScript.tag;
                }
                else if (pathScript.target == " " && door2 == " ")
                {
                    door2 = pathScript.tag;
                }
            }
            pathScript        = GameObject.FindGameObjectWithTag(door1).GetComponent <pathScript>();
            pathScript.target = door2;
            pathScript        = GameObject.FindGameObjectWithTag(door2).GetComponent <pathScript>();
            pathScript.target = door1;
        }
    }
Exemplo n.º 3
0
    void makePath(int n)
    {
        pathScript = GameObject.FindGameObjectWithTag(doors[n].tag).GetComponent <pathScript>();
        if (pathScript.target != " ")
        {
            return;
        }
        string targetDoor = " ";
        long   x          = 0;
        int    randRow    = 0;
        int    randCol    = 0;

        while (true)
        {
            randRow = rand.Next(1, numRows + 1);
            randCol = rand.Next(1, 3 + 1);

            if (pathScript.row == 1 && randRow != 1 && randRow != numRows) // Current door is in row one, makes sure
            {
                if (randRow == 3 && randCol == 3)
                {
                    continue;
                }
                else
                {
                    for (int i = 0; i < doors.Count - 1; i++)
                    {
                        targetScript = GameObject.FindGameObjectWithTag(doors[i].tag).GetComponent <pathScript>();
                        if (randRow == targetScript.row && randCol == targetScript.col && targetScript.target == " ")
                        {
                            targetDoor = targetScript.tag;
                        }
                    }
                }
            }
            else if (pathScript.row != 1 && pathScript.row != randRow)
            {
                if ((randRow == 3 && randCol == 3) || (randRow == 5 && randCol != 1))
                {
                    continue;
                }
                else
                {
                    for (int i = 0; i < doors.Count - 1; i++)
                    {
                        targetScript = GameObject.FindGameObjectWithTag(doors[i].tag).GetComponent <pathScript>();
                        if (randRow == targetScript.row && randCol == targetScript.col && targetScript.target == " ")
                        {
                            targetDoor = targetScript.tag;
                        }
                    }
                }
            }

            x++;
            //Debug.Log(randRow + " " + randCol);
            if (x == 5000)
            {
                successfulPathing = false;
                return;
            }
            if (targetDoor != " ")
            {
                break;
            }
        }

        pathScript.target   = targetDoor;
        targetScript        = GameObject.FindGameObjectWithTag(targetDoor).GetComponent <pathScript>();
        targetScript.target = doors[n].tag;

        //Debug.Log("Door: " + doors[n].tag + " Target: " + pathScript.target);

        successfulPathing = true;
    }