Пример #1
0
    public override bool checkProceduralPrecondition(GameObject agent)
    {
        // find the nearest chopping block that we can chop our wood at
        CandyCollector[] Damnkids = (CandyCollector[]) UnityEngine.GameObject.FindObjectsOfType ( typeof(CandyCollector) );

        CandyCollector closest = null;
        float closestDist = 0;

        foreach (CandyCollector evilChild in Damnkids) {
            if (!evilChild.GetComponent<CandyBag>().Spanked){
                if (closest == null) {
                    // first one, so choose it for now
                if (evilChild != this)
                    closest = evilChild;
                    closestDist = (evilChild.gameObject.transform.position - agent.transform.position).magnitude;
                } else {
                    // is this one closer than the last?
                    float dist = (evilChild.gameObject.transform.position - agent.transform.position).magnitude;
                    if (dist < closestDist) {
                        // we found a closer one, use it
                        closest = evilChild;
                        closestDist = dist;
                    }
                }
            }}
        if (closest == null)
            return false;

        targetKid = closest;
        //targetCandyGiver.KidsIGaveCandiesToAlready.Add(this.gameObject.GetComponent<CandyCollector>());
        target = targetKid.gameObject;

        return closest != null;
    }
Пример #2
0
 public override void reset()
 {
     takenCandy = false;
     targetKid = null;
     startTime = 0;
 }