예제 #1
0
    public RecursoObject(RECURSOS tipo, float cantidad)
    {
        tipoRecurso = tipo;

        ratio      = cantidad;
        ratioRange = 0;
    }
예제 #2
0
    public ResourceInfo this [RECURSOS recurso] {
        get {
            for (int i = 0; i < inventario.Count; i++)
            {
                if (inventario[i].type == recurso)
                {
                    return(inventario[i]);
                }
            }

            return(null);
        }

        set {
            for (int i = 0; i < inventario.Count; i++)
            {
                if (inventario[i].type == recurso)
                {
                    inventario[i] = value;
                    return;
                }
            }

            inventario.Add(new ResourceInfo(recurso, value.quantity));
        }
    }
예제 #3
0
    public float ratioRange = 0f;   //Esto es para hacer aleatorio lo que da

    public RecursoObject()
    {
        tipoRecurso = RECURSOS.Madera;

        ratio      = 5;
        ratioRange = 0f;
    }
예제 #4
0
    /// <summary>
    /// Elimina recursos del inventario
    /// </summary>
    public void RemoveResource(RECURSOS recurso, int cantidad, bool actualizar = true)
    {
        if (cantidad == 0)
        {
            return;
        }

        bool encontrado = false;

        for (int i = 0; i < inventario.Count; i++)
        {
            if (inventario[i].type == recurso)
            {
                inventario[i].quantity -= cantidad;
                encontrado              = true;
            }
        }

        if (!encontrado)
        {
            return;
        }

        if (actualizar)
        {
            OnValueChange(new ResourceInfo(recurso, -cantidad));
        }
    }
예제 #5
0
    /// <summary>
    /// Coges recursos del inventario, devuelve la cantidad de recursos que no ha podido coger.
    /// </summary>
    public int MoveResource(RECURSOS recurso, int cantidad, Inventario destinatario, bool actualizar = true)
    {
        if (cantidad == 0)
        {
            return(0);
        }

        int faltante = 0;

        int disponible = this[recurso].quantity;

        if (cantidad > disponible)
        {
            faltante = cantidad - disponible;
            cantidad = disponible;
        }

        int devuelto = destinatario.AddResource(recurso, cantidad);

        RemoveResource(recurso, cantidad - devuelto);

        if (actualizar)
        {
            OnValueChange(new ResourceInfo(recurso, -cantidad));
        }

        return(faltante);
    }
예제 #6
0
 public Cultivo(Cultivo otroCultivo)
 {
     semilla         = otroCultivo.semilla;
     tiempoCrecer    = otroCultivo.tiempoCrecer;
     litrosPorMinuto = otroCultivo.litrosPorMinuto;
     sprite          = otroCultivo.sprite;
     cultivoPrefab   = otroCultivo.cultivoPrefab;
 }
예제 #7
0
        public ActionResult DeleteConfirmed(int id)
        {
            RECURSOS rECURSOS = db.RECURSOS.Find(id);

            db.RECURSOS.Remove(rECURSOS);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #8
0
 public void ChangeValue(RECURSOS recurso, bool newValue)
 {
     for (int i = 0; i < lista.Count; i++)
     {
         if (lista[i].recurso == recurso)
         {
             lista[i].value = newValue;
             return;
         }
     }
 }
예제 #9
0
    public bool Value(RECURSOS type)
    {
        for (int i = 0; i < ResourceCount(); i++)
        {
            if (type == recursos[i].type && recursos[i].quantity > 0)
            {
                return(true);
            }
        }

        return(false);
    }
예제 #10
0
    /// <summary>
    /// Devuelve la cantidad que se tenga de ese recurso en el almacen.
    /// </summary>
    public int GetResourceCount(RECURSOS recurso)
    {
        for (int i = 0; i < inventario.Count; i++)
        {
            if (inventario[i].type == recurso)
            {
                return(inventario[i].quantity);
            }
        }

        return(0);
    }
예제 #11
0
    public bool GetBool(RECURSOS recurso)
    {
        for (int i = 0; i < lista.Count; i++)
        {
            if (lista[i].recurso == recurso)
            {
                return(lista[i].value);
            }
        }

        return(true);
    }
예제 #12
0
    public Sprite GetSprite(RECURSOS resourceType)
    {
        for (int i = 0; i < panelRecurso.Length; i++)
        {
            if (panelRecurso[i].resource == resourceType)
            {
                return(panelRecurso[i].image);
            }
        }

        return(null);
    }
예제 #13
0
 public ActionResult Edit([Bind(Include = "id,pessoa,sistema,tipo")] RECURSOS rECURSOS)
 {
     if (ModelState.IsValid)
     {
         db.Entry(rECURSOS).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.pessoa  = new SelectList(db.PESSOAS, "id", "nome", rECURSOS.pessoa);
     ViewBag.sistema = new SelectList(db.SISTEMAS, "id", "nome", rECURSOS.sistema);
     ViewBag.tipo    = new SelectList(db.TIPO_RECURSO, "id", "titulo", rECURSOS.tipo);
     return(View(rECURSOS));
 }
예제 #14
0
    //MÉTODOS
    /// <summary>
    /// Añade recursos al almacen, y devuelve la cantidad de sobra (La que no puede almacenar).
    /// </summary>
    public int AddResource(RECURSOS recurso, int cantidad, bool actualizar = true)
    {
        if (cantidad <= 0)
        {
            return(cantidad);
        }

        //Si está bloqueado el objeto no lo deja añadir.
        if (!limiteInventario.GetBool(recurso))
        {
            return(cantidad);
        }

        int sobrante  = 0;
        int freeSpace = FreeSpace;

        if (cantidad > (freeSpace))
        {
            sobrante = cantidad - freeSpace;
            cantidad = freeSpace;
        }

        if (cantidad == 0)
        {
            return(sobrante);
        }

        bool encontrado = false;

        for (int i = 0; i < inventario.Count; i++)
        {
            if (inventario[i].type == recurso)
            {
                inventario[i].quantity += cantidad;
                encontrado              = true;
                break;
            }
        }

        if (!encontrado) //Si no existe ese recurso en este inventario, lo crea.
        {
            inventario.Add(new ResourceInfo(recurso, cantidad));
        }

        if (actualizar)
        {
            OnValueChange(new ResourceInfo(recurso, cantidad));
        }

        return(sobrante);
    }
예제 #15
0
        // GET: RECURSOS/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RECURSOS rECURSOS = db.RECURSOS.Find(id);

            if (rECURSOS == null)
            {
                return(HttpNotFound());
            }
            return(View(rECURSOS));
        }
예제 #16
0
        // GET: RECURSOS/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RECURSOS rECURSOS = db.RECURSOS.Find(id);

            if (rECURSOS == null)
            {
                return(HttpNotFound());
            }
            ViewBag.pessoa  = new SelectList(db.PESSOAS, "id", "nome", rECURSOS.pessoa);
            ViewBag.sistema = new SelectList(db.SISTEMAS, "id", "nome", rECURSOS.sistema);
            ViewBag.tipo    = new SelectList(db.TIPO_RECURSO, "id", "titulo", rECURSOS.tipo);
            return(View(rECURSOS));
        }
예제 #17
0
    public int AddResource(RECURSOS tipo, int cantidad)
    {
        int sobrante = 0;

        for (int i = 0; i < recursosNecesarios.Length; i++)
        {
            if (recursosNecesarios[i].type == tipo)
            {
                recursosNecesarios[i].quantity -= cantidad;

                if (recursosNecesarios[i].quantity < 0)
                {
                    sobrante = recursosNecesarios[i].quantity * -1;
                    recursosNecesarios[i].quantity = 0;
                }

                recursosActuales[i].quantity += cantidad - sobrante;
            }
        }

        return(sobrante);
    }
예제 #18
0
    public void Cultivar(RECURSOS recurso)
    {
        int         value = -1;
        Agricultura agri  = manager.GetComponent <Agricultura>();

        for (int i = 0; i < agri.semillas.Length; i++)
        {
            if (agri.semillas[i].semilla == recurso)
            {
                value = i;
                break;
            }
        }

        if (value == -1)
        {
            return;
        }

        cultivo = new Cultivo(agri.semillas[value]);
        renderCultivo.sortingOrder = manager.SetSortingLayer(transform.position.y) + 1;
        renderCultivo.sprite       = cultivo.sprite[0];
    }
예제 #19
0
    /// <summary>
    /// Toma una cantidad del inventario.
    /// Devuelve la cantidad tomada, que puede ser inferior a la que se pide si quantity > cantidad de objetos en ese almacen.
    /// </summary>
    public int GetResource(RECURSOS type, int quantity, bool actualizar = true)
    {
        if (quantity == 0)
        {
            return(0);
        }

        ResourceInfo info = this[type];

        if (info == null)
        {
            return(0);
        }

        quantity       = Mathf.Clamp(quantity, 0, info.quantity);
        info.quantity -= quantity;

        if (actualizar)
        {
            OnValueChange(new ResourceInfo(type, quantity));
        }

        return(quantity);
    }
예제 #20
0
 public ResourceBool(RECURSOS recurso, bool value)
 {
     this.recurso = recurso;
     this.value   = value;
 }
예제 #21
0
    public ResourceInfo(RECURSOS type, int initialQuantity)
    {
        this.type = type;

        quantity = initialQuantity;
    }