public override bool checkProceduralPrecondition(GameObject agent) { Farmer farmer = (Farmer)agent.GetComponent(typeof(Farmer)); if (farmer.actualOrchard != null) { targetOrchard = farmer.actualOrchard; if (targetOrchard != null) { float diff = 0.25f; float posX = targetOrchard.transform.position.x + Random.Range(-diff, diff); float posY = targetOrchard.transform.position.y + Random.Range(-diff, diff); targetPosition = new Vector3(posX, posY, agent.transform.position.z); } } else { OrchardBuilding[] orchards = (OrchardBuilding[])FindObjectsOfType(typeof(OrchardBuilding)); OrchardBuilding finalOrchard = null; if (orchards != null && orchards.Length > 0) { foreach (OrchardBuilding orchard in orchards) { if (!orchard.full && orchard.blueprint.done) { finalOrchard = orchard; } } } if (finalOrchard == null) { // Add orchard request building addOrchardRequest(farmer); return(false); } if (!finalOrchard.addFarmer()) { // Add orchard request building addOrchardRequest(farmer); return(false); } farmer.actualOrchard = finalOrchard; targetOrchard = farmer.actualOrchard; float diff = 0.25f; float posX = targetOrchard.transform.position.x + Random.Range(-diff, diff); float posY = targetOrchard.transform.position.y + Random.Range(-diff, diff); targetPosition = new Vector3(posX, posY, agent.transform.position.z); } return(targetOrchard != null); }
public override bool checkProceduralPrecondition(GameObject agent) { // Move to random position in the orchard Farmer farmer = (Farmer)agent.GetComponent(typeof(Farmer)); if (farmer.actualOrchard != null) { targetOrchard = farmer.actualOrchard; float diff = 0.25f; float posX = targetOrchard.transform.position.x + Random.Range(-diff, diff); float posY = targetOrchard.transform.position.y + Random.Range(-diff, diff); targetPosition = new Vector3(posX, posY, agent.transform.position.z); } return(targetOrchard != null); }
public override void reset() { farmed = false; targetOrchard = null; startTime = 0; }