;Este script cuenta la materia prima que tenemos en la mochila
; Los datos de las materias primas se guardan en el array
; llamado MPsMochila.txt
; En la primera posicion se guarda el ID, en la segunda la cantidad de ese recurso y en 
; la tercera el peso que este MP ocupa

;Tambien se modifica el valor de la variable %PesoMPsBack, que guarda el valor
;de las MPs en el backpack.
;Tambien dice si se han llegado a un minimo de alguna MP.  %NecesitoRecargar SI/NO


Set %NecesitoRecargar NO
Set %PesoMPsBack 0
;Borramos los datos de la mochila
call MPsMochila RESET

   For %MPi 1 %TotalMP   
     {
;Leemos la MP del array
         call ARRAY GET %MPi
         Set %MP           %1
         Set %MPColor   %2
         Set %MPNum    %3
         Set %MPDen     %4
         Set %Cantidad  %5
;Y la buscamos 
         gosub DetectarMP
        
        if %Encontrado <> 0
           {
              if  #FINDSTACK <= %Cantidad
                  Set %NecesitoRecargar SI

              set %Tmp #FINDSTACK * %MPNum
              set %Tmp %TMP / %MPDen
              Set %PesoMPsBack %PesoMPsBack + %Tmp
;"Pusheamos" los datos en el array MPsMochila. %Tmp es el peso de la MP
              call MPsMochila PUSH #FINDID #FINDSTACK %Tmp
           }
        if %Encontrado = 0
            {
              Set %NecesitoRecargar SI
              call MPsMochila PUSH N/A 0 0
             }

     }


;Buscamos la MP. Si no la encuentra, devuelve 0
sub DetectarMP
set %Encontrado 0
ignoreitem reset

NeedRecursos:
 FINDITEM %MP
 If #FINDKIND = -1 
   return
 If #FINDBAGID <> %MochilaPr
   {
        IgnoreItem #FINDID
        goto NeedRecursos
   }

 If %ColorMateriaPrima <> -1
    {
     If %ColorMateriaPrima  <> #FINDCOL
        {
         IgnoreItem #FINDID
         goto NeedRecursos
       }
    }

set %Encontrado #FINDID
return

