示例#1
0
    private void instantiateIA(AIPersonality.Personalities type, Vector3 pos, int number, Color color)
    {
        currentIA = Instantiate(mockIA);
        currentIA.GetComponent <SpriteRenderer>().sprite = SpriteBase;
        currentIA.name  = "IA";
        currentIA.name += number;
        currentIA.GetComponent <SpriteRenderer>().color = color;
        currentIA.transform.position = pos;
        AIPersonality Aipers = currentIA.GetComponent <AIPersonality>();

        Aipers.SetMyOwnIndex(number);
        Aipers.health = 100;
        Aipers.attack = 10;
        Aipers.configurePersonality(type);
        GameObject image = Instantiate(LifeImage);

        Aipers.HealthImage = image;
        image.transform.SetParent(Aipers.panel.transform);
        image.transform.position   = currentIA.transform.position;
        image.transform.localScale = Vector3.one;

        var collider = currentIA.GetComponent <BoxCollider2D>();

        //esto tiene que ser asi

        collider.size = new Vector2(9.7f, 12f);
        VisibleElements.visibleGameObjects.Add(currentIA);
        currentIA.transform.Rotate(Vector3.up * Random.Range(0f, 1f) * 360);
    }
示例#2
0
    private void instantiateIA(AIPersonality.Personalities type)
    {
        currentIA       = Instantiate(mockIA);
        currentIA.name  = "IA";
        currentIA.name += Time.time * 100;
        AIPersonality Aipers = currentIA.GetComponent <AIPersonality>();

        Aipers.configurePersonality(type);
        VisibleElements.visibleGameObjects.Add(currentIA);
        fixIt = true;
    }
示例#3
0
    // Use this for initialization
    void Start()
    {
        float iterator = 1f;
        Color currentColor;
        float randomColor = 0f;

        spawnersLeft = new List <GameObject>();
        spawnersLeft.AddRange(spawnPoints);

        numberOfHumans = numberOfIAs;

        if (numberOfIAs > spawnPoints.Length && spawnPoints.Length > 6)
        {
            numberOfIAs = spawnPoints.Length - 3;
        }
        numberOfIAs += 1;


        AIPersonality.Personalities type = (AIPersonality.Personalities)Random.Range(0, 1);
        int spawnPos = Random.Range(0, spawnersLeft.Count - 1);


        if (!allCharisma)
        {
            int i = 3;
            randomColor  = Random.Range((iterator - 1) / numberOfIAs, iterator / numberOfIAs);
            currentColor = gradient.Evaluate(randomColor);
            instantiateIA(type, spawnersLeft[spawnPos].transform.position, 0, currentColor);
            spawnersLeft.Remove(spawnersLeft[spawnPos]);
            iterator++;
            //Debug.Log(randomColor);


            type         = (AIPersonality.Personalities)Random.Range(2, 3);
            spawnPos     = Random.Range(0, spawnersLeft.Count - 1);
            randomColor  = Random.Range((iterator - 1) / numberOfIAs, iterator / numberOfIAs);
            currentColor = gradient.Evaluate(randomColor);
            instantiateIA(type, spawnersLeft[spawnPos].transform.position, 1, currentColor);
            spawnersLeft.Remove(spawnersLeft[spawnPos]);
            iterator++;
            //Debug.Log(randomColor);

            type         = (AIPersonality.Personalities)Random.Range(4, 5);
            spawnPos     = Random.Range(0, spawnersLeft.Count - 1);
            randomColor  = Random.Range((iterator - 1) / numberOfIAs, iterator / numberOfIAs);
            currentColor = gradient.Evaluate(randomColor);
            instantiateIA(type, spawnersLeft[spawnPos].transform.position, 2, currentColor);
            spawnersLeft.Remove(spawnersLeft[spawnPos]);
            iterator++;
            //Debug.Log(randomColor);

            while (i < numberOfIAs - 1)
            {
                spawnPos     = Random.Range(0, spawnersLeft.Count - 1);
                type         = (AIPersonality.Personalities)Random.Range(0, 5);
                randomColor  = Random.Range((iterator - 1) / numberOfIAs, iterator / numberOfIAs);
                currentColor = gradient.Evaluate(randomColor);
                instantiateIA(type, spawnersLeft[spawnPos].transform.position, i, currentColor);
                spawnersLeft.Remove(spawnersLeft[spawnPos]);
                i++;
                iterator++;
                //Debug.Log(randomColor);
            }

            GameObject        player      = GameObject.FindGameObjectWithTag("Player");
            PlayerPersonality personality = player.GetComponent <PlayerPersonality>();
            personality.configurePlayer(new Color(250, 250, 250, 255) / 255);
        }
        else
        {
            int i = 0;

            while (i < numberOfIAs - 1)
            {
                spawnPos     = Random.Range(0, spawnersLeft.Count - 1);
                type         = AIPersonality.Personalities.SFA;
                currentColor = gradient.Evaluate(Random.Range((i - 1) / numberOfIAs, i / numberOfIAs));
                instantiateIA(type, spawnersLeft[spawnPos].transform.position, i, currentColor);
                spawnersLeft.Remove(spawnersLeft[spawnPos]);
                i++;
            }
        }

        determineMonster();

        /*personality.health = 100;
         * personality.attack = 10;
         *
         * personality.MyOwnIndex = numberOfIAs - 1;*/

        //Al final del start se activan los colliders de las habitaciones para que se puedan guardar las IAs las habitaciones donde spawneen
        //List<GameObject> Rooms = new List<GameObject>();
        //Rooms.AddRange(GameObject.FindGameObjectsWithTag("RoomsAndDoors"))
        foreach (GameObject room in GameObject.FindGameObjectsWithTag("RoomsAndDoors"))
        {
            room.GetComponent <LocationDiscovery>().enabled = true;
        }
    }