// Token: 0x06003CED RID: 15597 RVA: 0x000DA0FC File Offset: 0x000D82FC
    public bool CompleteRepair(global::Inventory ingredientInv)
    {
        if (!this.CanRepair(ingredientInv))
        {
            return(false);
        }
        global::IInventoryItem     repairItem = this.GetRepairItem();
        global::BlueprintDataBlock blueprintDataBlock;

        if (!global::BlueprintDataBlock.FindBlueprintForItem <global::BlueprintDataBlock>(repairItem.datablock, out blueprintDataBlock))
        {
            return(false);
        }
        for (int i = 0; i < blueprintDataBlock.ingredients.Length; i++)
        {
            global::BlueprintDataBlock.IngredientEntry ingredientEntry = blueprintDataBlock.ingredients[i];
            int j = Mathf.RoundToInt((float)blueprintDataBlock.ingredients[i].amount * this.GetResourceScalar());
            if (j > 0)
            {
                while (j > 0)
                {
                    int num = 0;
                    global::IInventoryItem inventoryItem = ingredientInv.FindItem(ingredientEntry.Ingredient, out num);
                    if (inventoryItem == null)
                    {
                        return(false);
                    }
                    if (inventoryItem.Consume(ref j))
                    {
                        ingredientInv.RemoveItem(inventoryItem.slot);
                    }
                }
            }
        }
        float num2 = repairItem.maxcondition - repairItem.condition;
        float num3 = num2 * 0.2f + 0.05f;

        repairItem.SetMaxCondition(repairItem.maxcondition - num3);
        repairItem.SetCondition(repairItem.maxcondition);
        return(true);
    }
Beispiel #2
0
 // Token: 0x060034BD RID: 13501 RVA: 0x000C3374 File Offset: 0x000C1574
 public virtual void InstallData(global::IInventoryItem item)
 {
     item.SetUses(1);
     item.SetMaxCondition(1f);
     item.SetCondition(1f);
 }