Exemplo n.º 1
0
 public void StoreItem(Item_ item)
 {
     if (inventory_.IsInInventory(item))                             //Si el ítem ya está en alguna ranura del inventario
     {
         if (!inventory_.IsStored(item))                             //Si no está en la ranura genérica
         {
             if (inventory_.IsEquipped(item))                        //Si está equipado
             {
                 item.graphics_.inGame_.gameObject.SetActive(false); //No mostrarlo, ya que se "almacenará" o "guardará" (no debe quedar a la vista)
             }
             Slot_ oldSlot = item.occupyingSlot;
             oldSlot.RemoveItem(item);             //Quitarlo de la ranura en que se encontraba
             inventory_.genericSlot.AddItem(item); //Ponerlo en la ranura genérica ("almacenarlo")
         }
         else//Y si ya está en la ranura genérica ("almacenado")
         {
             Debug.Log($"Item {item.name} is already in the generic slot. It isn't necessary re-store it.");
         }
     }
     else//Y si no está en el inventario
     {
         if (Vector3.Distance(item.transform.position, owner.transform.position) <= 1)//Si el objeto esta a lo más a un metro ingame de distancia
         {
             float itemWeight = ((ItemStats_)item.mechanics_.stats_).weight;
             if ((inventory_.currentWeight + itemWeight) <= inventory_.weightCapacity) //Si el jugador es capaz de llevar el peso adicional del ítem
             {
                 inventory_.genericSlot.AddItem(item);                                 //Simplemente ponerlo en la ranura genérica ("almacenarlo")
                 inventory_.RefreshCurrentWeight();                                    //Adicionar el peso del ítem al peso total cargado por el jugador
                 item.graphics_.inGame_.gameObject.SetActive(false);                   //No mostrarlo, ya que se "almacenará" o "guardará" (no debe quedar a la vista)
             }
             else
             {
                 Debug.Log($"{owner.name} can't carry item {item.name}, because his weight capacity would be exceeded.");
             }
         }
         else
         {
             Debug.Log($"{owner.name} can't carry Item {item.name}, because it is too far ({Vector3.Distance(item.transform.position, owner.transform.position)} m).");
         }
     }
 }