public void LookForNewTarget(ThievingTarget thieving_target_type)
    {
        bool no_thief_target = false;

        if (thieving_target_type == ThievingTarget.TomatoFruit)
        {
            TomatoFruit[]      thieving_target_all = FindObjectsOfType <TomatoFruit>();
            List <TomatoFruit> thieving_target     = new List <TomatoFruit>();
            foreach (TomatoFruit tomato in thieving_target_all)
            {
                if (tomato.IsRipe())
                {
                    thieving_target.Add(tomato);
                }
            }

            if (thieving_target.Count > 0)
            {
                TomatoFruit target_fruit = thieving_target[Random.Range(0, thieving_target.Count - 1)];
                target        = target_fruit.gameObject.transform;
                currentTarget = target.position;
            }
            else
            {
                no_thief_target = true;
            }
        }
        else if (thieving_target_type == ThievingTarget.TomatoPlant)
        {
            TomatoPlant[] thieving_target = FindObjectsOfType <TomatoPlant>();
            if (thieving_target.Length > 0)
            {
                TomatoPlant target_fruit = thieving_target[Random.Range(0, thieving_target.Length - 1)];
                target        = target_fruit.gameObject.transform;
                currentTarget = target.position;
            }
            else
            {
                no_thief_target = true;
            }
        }
        else
        {
            throw new System.Exception("Unimplemented thieving type: " + thieving_target_type);
        }

        if (no_thief_target)
        {
            is_done = true;
            LeaveArea();
        }
    }
Beispiel #2
0
 void OnTriggerEnter2D(Collider2D coll)
 {
     if (!has_tomato && coll.gameObject.GetComponent <TomatoFruit>() != null)
     {
         TomatoFruit tomato = coll.gameObject.GetComponent <TomatoFruit>();
         if (tomato.IsRipe())
         {
             Destroy(tomato.gameObject);
             thieving_behaviour.LeaveArea();
             has_tomato = true;
         }
         else
         {
             thieving_behaviour.LookForNewTarget(ThievingTarget.TomatoFruit);
         }
     }
 }
Beispiel #3
0
    private void MakeTomato()
    {
        int position = get_an_availible_position();

        if (position < 0)
        {
            return;
        }
        TomatoFruit tomato = Instantiate(tomato_prefab);

        tomato.transform.parent = gameObject.transform;
        tomato.setPosition(position);

        tomatoes.Add(tomato);

        tomato.transform.position = possible_positions[position];
        filled_positions.Add(position);
    }
Beispiel #4
0
 void OnTriggerEnter2D(Collider2D coll)
 {
     if (coll.gameObject.GetComponent <TomatoSeed>() != null)
     {
         inventory.AddSeed();
         Destroy(coll.gameObject);
     }
     else if (coll.gameObject.GetComponent <TomatoFruit>() != null)
     {
         TomatoFruit tomato = coll.gameObject.GetComponent <TomatoFruit>();
         if (tomato.IsRipe())
         {
             inventory.AddTomato();
             Destroy(coll.gameObject);
         }
     }
     else if (coll.gameObject.GetComponent <ShopSpot>() != null)
     {
         ShopSpotCollide(coll.gameObject.GetComponent <ShopSpot>());
     }
 }