Example #1
0
    void DropPheromones()
    {
        foreach (GameObject pheromoneObj in pheromones)
        {
            Pheromone pheromone = pheromoneObj.GetComponent <Pheromone>();
            bool      drop      = false;
            float     strength  = 0;
            switch (pheromone.GetPheromoneType())
            {
            case Pheromone.PheromoneType.Food:
                if (hasFood)
                {
                    drop     = true;
                    strength = pheromone.GetStartingStrength() - (pheromone.dropRate * foodCount * 2);
                }
                break;

            case Pheromone.PheromoneType.Home:
                if (!hasFood && !goHome)
                {
                    drop     = true;
                    strength = pheromone.GetStartingStrength() - (pheromone.dropRate * homeCount * 2);
                }
                break;
            }
            if (strength < 0)
            {
                strength = 0;
            }

            if (drop)
            {
                Debug.Log(strength);
                GameObject droppedPheromone = Instantiate(pheromoneObj);
                droppedPheromone.GetComponent <Pheromone>().SetColony(colony);
                droppedPheromone.GetComponent <Pheromone>().strength = (int)strength;
                droppedPheromone.transform.position = transform.position;
            }
        }
    }
Example #2
0
    // Update is called once per frame
    void Update()
    {
        if (!goHome && homeCount > homePheromone.GetStartingStrength() / homePheromone.dropRate / 2.5f)
        {
            goHome = true;
        }
        life -= 1;
        if (life < 0)
        {
            Destroy(gameObject);
        }

        UpdateDirection();
        Move();
        UpdatePheromones();
    }