Ejemplo n.º 1
0
    public void addBreedingSheep(SheepAgent sheep)
    {
        breedingSheep.Add(sheep);

        if (breedingSheep.Count > 2)
        {
            SheepAgent temp = breedingSheep[0];
            removeAndHideSheep(temp);
        }

        if (breedingSheep.Count > 0)
        {
            if (!breedingSheep[0].displayLeft)
            {
                sheep.statsPanel.transform.localPosition = new Vector3(50, -50, 0);
                sheep.displayLeft = true;
            }

            else
            {
                sheep.statsPanel.transform.localPosition = new Vector3(-50, -50, 0);
                sheep.displayLeft = false;
            }
        }

        //pause game
        Time.timeScale = 0;
    }
Ejemplo n.º 2
0
    private void removeAndHideSheep(SheepAgent sheep)
    {
        sheep.selected    = false;
        sheep.displayLeft = false;
        sheep.statsPanel.SetActive(false);

        breedingSheep.Remove(sheep);
    }
Ejemplo n.º 3
0
    public void removeBreedingSheep(SheepAgent sheep)
    {
        breedingSheep.Remove(sheep);

        //unpause
        if (breedingSheep.Count == 0)
        {
            Time.timeScale = 1;
        }
    }
Ejemplo n.º 4
0
    private void createRandomSheepAgent(Vector3 pos)
    {
        GameObject AgentObj  = Instantiate(SheepObj, pos, Quaternion.identity, this.transform);
        SheepAgent tempSheep = AgentObj.GetComponent <SheepAgent>();

        tempSheep.randomAttributeMultis();
        tempSheep.setAtrributes();
        tempSheep.GiveBrain(SheepBrain);
        tempSheep.AgentReset();

        sheeps.Add(tempSheep);
    }
Ejemplo n.º 5
0
    public bool sheepTouchingOtherSheep(float radius, SheepAgent sheep)
    {
        for (int i = 0; i < sheeps.Count; i++)
        {
            if (sheep == sheeps[i])
            {
                continue;
            }

            float dis = Vector3.Distance(sheep.transform.position, sheeps[i].transform.position);

            if (Mathf.Abs(dis) < radius)
            {
                return(true);
            }
        }

        return(false);
    }
Ejemplo n.º 6
0
    private void breedSheep(SheepAgent sheepA, SheepAgent sheepB, Vector3 pos)
    {
        //take a random attribute from each parent
        GameObject AgentObj  = Instantiate(SheepObj, pos, Quaternion.identity, this.transform);
        SheepAgent tempSheep = AgentObj.GetComponent <SheepAgent>();

        if (Random.Range(0.0f, 1.0f) > 0.5)
        {
            tempSheep.healthMulti = sheepA.healthMulti;
        }
        else
        {
            tempSheep.healthMulti = sheepB.healthMulti;
        }

        if (Random.Range(0.0f, 1.0f) > 0.5)
        {
            tempSheep.hungerMulti = sheepA.hungerMulti;
        }
        else
        {
            tempSheep.hungerMulti = sheepB.hungerMulti;
        }

        if (Random.Range(0.0f, 1.0f) > 0.5)
        {
            tempSheep.thirstMulti = sheepA.thirstMulti;
        }
        else
        {
            tempSheep.thirstMulti = sheepB.thirstMulti;
        }

        if (Random.Range(0.0f, 1.0f) > 0.5)
        {
            tempSheep.speedMulti = sheepA.speedMulti;
        }
        else
        {
            tempSheep.speedMulti = sheepB.speedMulti;
        }

        if (Random.Range(0.0f, 1.0f) > 0.5)
        {
            tempSheep.deductMulti = sheepA.deductMulti;
        }
        else
        {
            tempSheep.deductMulti = sheepB.deductMulti;
        }

        if (Random.Range(0.0f, 1.0f) > 0.5)
        {
            tempSheep.absorbMulti = sheepA.absorbMulti;
        }
        else
        {
            tempSheep.absorbMulti = sheepB.absorbMulti;
        }

        if (Random.Range(0.0f, 1.0f) > 0.5)
        {
            tempSheep.interactDisMulti = sheepA.interactDisMulti;
        }
        else
        {
            tempSheep.interactDisMulti = sheepB.interactDisMulti;
        }

        tempSheep.setAtrributes();
        tempSheep.GiveBrain(SheepBrain);

        tempSheep.startPos = pos;

        tempSheep.AgentReset();

        sheeps.Add(tempSheep);
    }
Ejemplo n.º 7
0
 public void killSheep(SheepAgent sheep)
 {
     sheeps.Remove(sheep);
     breedingSheep.Remove(sheep);
     Destroy(sheep.gameObject);
 }