Beispiel #1
0
    private AnimalAI FindPartner()
    {
        Transform partnerTransform = ai.FindClosestThing(transform.position, targetMask, vision);

        if (partnerTransform == null || partnerTransform.gameObject == null)
        {
            return(null);
        }

        if (AnimalManager.Instance.animals.ContainsKey(partnerTransform.gameObject.GetInstanceID()))
        {
            AnimalAI partner  = AnimalManager.Instance.animals[partnerTransform.gameObject.GetInstanceID()];
            Identity identity = partner.Identity;
            if (identity.Sex != sex && identity.canReproduce && partner.currentState != Case.HUNGER && partner.currentState != Case.THIRST)
            {
                partner.OnCaseChanged(new CaseChangedEventArgs(new ReproductionCaseData(ai), Case.REPRODUCTION));
                return(partner);
            }
            else
            {
                return(null);
            }
        }

        return(null);
    }
Beispiel #2
0
    private Transform FindWater()
    {
        Transform water = ai.FindClosestThing(ai.transform.position, targetMask, vision);

        if (water != null)
        {
            ai.Memory.CompareLocations(transform.position, water, Memory.MemoryType.WATER);
        }
        else
        {
            water = ai.Memory.GetNearest(transform.position, Memory.MemoryType.WATER);
        }

        Inform(water);

        return(water);
    }
Beispiel #3
0
    private Transform FindFood()
    {
        Transform food = ai.FindClosestThing(ai.transform.position, targetMask, vision);

        // Otçulların yemek hafızası varken etçillerin yok.
        if (targetMask == LayerMask.GetMask("Food"))
        {
            if (food != null)
            {
                ai.Memory.CompareLocations(transform.position, food, Memory.MemoryType.FOOD);
            }
            else
            {
                food = ai.Memory.GetNearest(transform.position, Memory.MemoryType.FOOD);
            }
        }

        if (food != null)
        {
            Inform(food);
        }

        return(food);
    }
Beispiel #4
0
 private Transform Search()
 {
     return(ai.FindClosestThing(transform.position, targetMask, vision));
 }