Exemplo n.º 1
0
    // SEARCHING STATE
    void SearchState()
    {
        sprite.color = new Color(0, 1, 0);
        // Move the bee toward a random nectar spot
        transform.position = Vector2.MoveTowards(transform.position, foodSpots[randomSpot].position, moveSpeed * Time.deltaTime);
        energy             = 0.1f;
        energyAmt         -= energy;

        // Check the distance between the bee and the nectar, if within range
        // Change state to Gather nectar
        if (Vector2.Distance(transform.position, foodSpots[randomSpot].position) < 0.2f)
        {
            state = BeeStates.Gather;
        }

        // Keep looking for Birds
        if (CheckBirds())
        {
            state = BeeStates.Flee;
        }


        if (!HasEnergy())
        {
            state = BeeStates.Rest;
        }
    }
Exemplo n.º 2
0
    // GATHERING STATE
    void GatherState()
    {
        sprite.color    = new Color(1, 1, 1);
        nectarGathered += 0.1f;

        if (nectarGathered >= beeMaxNectar)
        {
            state = BeeStates.Rest;
        }
        else
        {
            state = BeeStates.Search;
        }

        // Keep looking for Birds
        if (CheckBirds())
        {
            state = BeeStates.Flee;
        }

        if (!HasEnergy())
        {
            state = BeeStates.Rest;
        }
    }
Exemplo n.º 3
0
    // FLEEING STATE
    void FleeState()
    {
        sprite.color = new Color(1, 0, 0);

        transform.position = Vector2.MoveTowards(transform.position, hive.position, moveSpeed * Time.deltaTime);
        energy             = 0.8f;
        energyAmt         -= energy;

        // Check for energy
        if (!HasEnergy())
        {
            state = BeeStates.Rest;
        }
    }
Exemplo n.º 4
0
    // RESTING STATE
    void RestState()
    {
        sprite.color       = new Color(1, 0, 1);
        transform.position = Vector2.MoveTowards(transform.position, hive.position, moveSpeed * Time.deltaTime);

        if (Vector2.Distance(transform.position, hive.position) < 0.2f)
        {
            energyAmt      += 0.3f;
            nectarGathered -= nectarUnloaded;

            if (nectarGathered <= 0f)
            {
                if (energyAmt >= 500f)
                {
                    state = BeeStates.Search;
                }
            }
        }
    }
Exemplo n.º 5
0
 void Start()
 {
     state      = BeeStates.Search;
     sprite     = GetComponent <SpriteRenderer>();
     randomSpot = Random.Range(0, foodSpots.Length);
 }