Beispiel #1
0
    private bool checkDone()
    {
        inventory own = this.gameObject.GetComponent <inventory>();

        var iterateList = Info.getCost();

        if (overrideCost != null)
        {
            iterateList = overrideCost;
        }

        foreach (ressourceStack elem in iterateList)
        {
            if (!own.canTake(elem))
            {
                return(false);
            }
        }

        return(true);
    }
    private bool handleProduceData(ProduceData data)
    {
        if (this.storedEnergy < data.energyCost * Time.deltaTime)
        {
            return(false);
        }

        foreach (var elem in data.consume)
        {
            var scaled = elem.clone();
            scaled.setAmount(scaled.getAmount() * Time.deltaTime);
            if (!inventory.canTake(scaled))
            {
                return(false);
            }
        }

        //has enough energy and ressources!
        this.storedEnergy -= data.energyCost * Time.deltaTime;

        foreach (var elem in data.consume)
        {
            var scaled = elem;
            scaled.setAmount(scaled.getAmount() * Time.deltaTime);
            inventory.remove(scaled);
        }

        //create outcome/energy
        this.storedEnergy += data.energyProduce *= Time.deltaTime;

        foreach (var elem in data.outcome)
        {
            var scaled = elem;
            scaled.setAmount(scaled.getAmount() * Time.deltaTime);
            inventory.add(scaled);
        }

        return(true);
    }