Exemple #1
0
    public void OpenInventory(ItemOther recipeItem)
    {
        if (recipeItem.itemOtherType != ItemOtherType.Recipe)
        {
            return;
        }

        if (isActive)
        {
            DestroyItemsObj();
        }
        else
        {
            gameObject.SetActive(true);
            isActive = true;
        }

        this.recipeItem = recipeItem;

        if (playerBag == null)
        {
            playerBag = GameObject.FindWithTag("InvBag").GetComponent <BagInventory>();
        }

        XMLStorageRecipes storageRecipes = new XMLStorageRecipes();
        XmlStorageItem    storagetItem   = new XmlStorageItem();

        currRecipe = storageRecipes.GetRecipeByRecipeId(recipeItem.RecipeId);

        if (resultItem == null || resultItem.id != currRecipe.CraftResultID)
        {
            resultItem = storagetItem.GetResultItemById(currRecipe.CraftResultID);
        }

        ingridients = currRecipe.Ingredients;
        AddResultItemInObj(resultItem);

        for (int i = 0; i < ingridients.Count; i++)
        {
            Item tempItem = playerBag.GetItemById(ingridients[i].id, true);
            ingridients[i].item = tempItem;
            AddItemInObj(ingridients[i], i);
        }

        nameResult.text   = resultItem.name;
        chanceResult.text = currRecipe.Сhance + "%";
    }
Exemple #2
0
    private RecipeCraft LoadRecipeCraft(XmlReader xmlReader)
    {
        int         recipe_id = int.Parse(xmlReader.GetAttribute("recipe_id"));
        int         result_id = int.Parse(xmlReader.GetAttribute("result_id"));
        int         chance    = int.Parse(xmlReader.GetAttribute("chance"));
        RecipeCraft result    = new RecipeCraft(recipe_id, result_id, chance);

        if (xmlReader.ReadToDescendant("ingridien"))
        {
            do
            {
                int id     = int.Parse(xmlReader.GetAttribute("id"));
                int number = int.Parse(xmlReader.GetAttribute("number"));
                result.AddIngridient(id, number);
            } while (xmlReader.ReadToNextSibling("ingridien"));
        }
        return(result);
    }
Exemple #3
0
    public void Use(ItemHandler itemHandler)
    {
        RecipeCraft recipe = new RecipeCraft();

        Result result = recipe.GetIdItem(pickedItem != null ? pickedItem.IdItem : 0, itemHandler != null ? itemHandler.Handler.IdItem : 0);

        int new_id = result.id;

        if (new_id == 0)
        {
            playerAnimations.None();
        }
        else if (new_id == -1)
        {
            playerAnimations.None();

            pickedItem = null;

            spriteRendererPickedItem.sprite = null;
        }
        else if (new_id == -2)
        {
            playerAnimations.None();

            Destroy(itemHandler.gameObject);
        }
        else if (new_id == -3)
        {
            playerAnimations.None();

            pickedItem = null;

            spriteRendererPickedItem.sprite = null;

            Destroy(itemHandler.gameObject);
        }
        else if (new_id == -4)
        {
            //use sleeping bag

            playerVitality.AddVitality(-0.2f);

            playerVitality.Sleep();
        }
        else if (new_id == -5)
        {
            //WON!

            Debug.Log("won");

            winnerManager.Win();
        }
        else
        {
            worldItemManager.CreateItemWithTrow(items.GetItem(new_id), transform.position, transform.localScale.x > 0 ? 1 : -1);

            switch (result.way)
            {
            case 1:
                pickedItem = null;

                spriteRendererPickedItem.sprite = null;

                break;

            case 2:

                Destroy(itemHandler.gameObject);
                break;

            case 3:
                pickedItem = null;

                spriteRendererPickedItem.sprite = null;

                Destroy(itemHandler.gameObject);
                break;

            default:
                break;
            }
        }
    }