public void buyProducts(Alimento.enAlimentos a) { WareHouseComponent[] wareHouses = FindObjectsOfType(typeof(WareHouseComponent)) as WareHouseComponent[]; WareHouseComponent closest = wareHouses[0]; //A priori solo hay un warehouse en el supermercado closest.GetComponent <BackpackComponent>().Add(a, 1); }
public override bool perform(GameObject agent) { if (startTime == 0) { startTime = Time.time; } //Debug.Log("startTime" + startTime); if (Time.time - startTime > workDuration) { //Debug.Log(Time.time-startTime); // finished filled BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent)); WareHouseComponent wareHouse = targetWareHouseComponent; BackpackComponent backpackWareHouse = (BackpackComponent)wareHouse.GetComponent(typeof(BackpackComponent)); while (!filled && backpackWareHouse.HasFood()) { //Seleccionamos de los alimentos disponibles en el almacen uno aleatorio. List <Alimento.enAlimentos> ListofAlimentosAvailable = backpackWareHouse.KindsOfFoodAvailable(); Alimento.enAlimentos alimentoRandom = ListofAlimentosAvailable[(int)UnityEngine.Random.Range(0.0f, ListofAlimentosAvailable.Count - 1)]; int preTakeAmount = 0; if (agent.GetComponent <Labourer>() is StoreRestocker) { StoreRestocker aux = (StoreRestocker)agent.GetComponent <Labourer>(); preTakeAmount = aux.RandomTakenAmount(); //ESTA CANTIDAD NO ES LA CANTIDAD QUE SE COGE FINALMENTE , SIMPLEMENTE ES LA CANTIDAD QUE DESEA COGER } int canFillAmount = backpack.canFill(alimentoRandom, preTakeAmount); //Cantidad de ese alimento que puede meter en su inventario a pesar de que su idea fuera meter mas. //Debug.LogError(canFillAmount + " canfill"); //TakedAmount es la cantidad que si ha podido coger en base a la disponibilidad de ese producto en el almacen y teniendo en cuenta que ya se valoro la disponibilidad del propio inventario int takedAmount = backpackWareHouse.Take(alimentoRandom, canFillAmount); //Debug.LogError(takedAmount+ " taked"); int r = backpack.Fill(alimentoRandom, takedAmount); //Debug.LogError(r + " fill"); //Debug.Log("Creo que estoy embuclado " + canFillAmount + " " + alimentoRandom); filled = true; } //Debug.Log("He salido de un bucle"); } return(true); }