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(); } }
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); } } }
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); }
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>()); } }