Пример #1
0
    public void ClearTemplate()
    {
        Transform equipmentItemPane = recipeCreatorTransform.Find("ContentBG/ItemTab");

        equipmentItemPane.Find("Name/Name").GetComponent <InputField>().text               = "";
        equipmentItemPane.Find("Dexterity/Min").GetComponent <InputField>().text           = 0.ToString();
        equipmentItemPane.Find("Dexterity/Max").GetComponent <InputField>().text           = 0.ToString();
        equipmentItemPane.Find("Might/Min").GetComponent <InputField>().text               = 0.ToString();
        equipmentItemPane.Find("Might/Max").GetComponent <InputField>().text               = 0.ToString();
        equipmentItemPane.Find("Intelligence/Min").GetComponent <InputField>().text        = 0.ToString();
        equipmentItemPane.Find("Intelligence/Max").GetComponent <InputField>().text        = 0.ToString();
        equipmentItemPane.Find("LevelRange/Min").GetComponent <InputField>().text          = 0.ToString();
        equipmentItemPane.Find("LevelRange/Max").GetComponent <InputField>().text          = 0.ToString();
        equipmentItemPane.Find("ItemType").GetComponent <Dropdown>().value                 = 0;
        equipmentItemPane.Find("ProfGroup/ProfessionType").GetComponent <Dropdown>().value = 0;
        equipmentItemPane.Find("ProfGroup/RequiredLevel").GetComponent <InputField>().text = 0.ToString();
        equipmentItemPane.Find("ProfGroup/RewardedExp").GetComponent <InputField>().text   = 0.ToString();

        Transform reagentItemPane = recipeCreatorTransform.Find("ReagentBG/ItemTab");

        reagentItemPane.Find("Name/Name").GetComponent <InputField>().text = "";
        reagentItemPane.Find("ProfGroup/ProfessionType").GetComponent <Dropdown>().value = 0;
        reagentItemPane.Find("ProfGroup/RequiredLevel").GetComponent <InputField>().text = 0.ToString();
        reagentItemPane.Find("ProfGroup/RewardedExp").GetComponent <InputField>().text   = 0.ToString();
        reagentItemPane.Find("SpriteIcon/BG/Image").GetComponent <Image>().sprite        = null;
        reagentItemPane.Find("SpriteIcon/InputField").GetComponent <InputField>().text   = null;

        currItem = null;
        reagentController.ClearReagentList();
        ClearPerkList();
    }
Пример #2
0
    public void DisableItem(CraftableItem item, int itemNum)
    {
        item.gameObject.SetActive(false);
        item.gameObject.transform.position = Vector3.zero;
        item.gameObject.transform.parent   = transform;
        item.usesLeft = item.numUses;

        switch (item.type)
        {
        case ItemType.Offensive:
            OffensiveItems[itemNum].inactiveItems.Add(item);
            OffensiveItems[itemNum].activeItems.Remove(item);
            break;

        case ItemType.Defensive:
            DefensiveItems[itemNum].inactiveItems.Add(item);
            DefensiveItems[itemNum].activeItems.Remove(item);
            break;

        case ItemType.Utility:
            UtilityItems[itemNum].inactiveItems.Add(item);
            UtilityItems[itemNum].activeItems.Remove(item);
            break;
        }
    }
Пример #3
0
    public static CraftableItem[] AvailableCrafts(Inventory inv)
    {
        List <CraftableItem> crafts = new List <CraftableItem> ();

        CraftableItem[] CraftableItems = Instance.CraftableItems;

        for (int i = 0; i < Instance.CraftableItems.Length; i++)
        {
            bool          canCraft = true;
            CraftableItem item     = CraftableItems[i];

            for (int j = 0; j < item.ItemNeeded.Length; j++)
            {
                if (!inv.IsStackAvailable(item.ItemNeeded[j], item.ItemQNeeded[j]))
                {
                    canCraft = false;
                }
            }

            if (canCraft)
            {
                crafts.Add(item);
            }
        }

        return(crafts.ToArray());
    }
Пример #4
0
        /// <summary>
        /// Shows the item's resource cost in a scrollView
        /// </summary>
        /// <param name="craftableItem">Building.</param>
        public void DrawCostView(CraftableItem craftableItem, Inventory inventory)
        {
            _content = _costScrollView.GetComponent <ScrollRect>().content;

            _costText.text  = craftableItem.ItemName;
            _costText.text += "\nCost (required/inventory)";

            _DescriptionText.text = craftableItem.ItemName;
            if (craftableItem.Description != "")
            {
                _DescriptionText.text += " - " + craftableItem.Description;
            }

            foreach (CraftableItem.Cost buildingCost in craftableItem.BuildingCost)
            {
                _costText.text += "\n" + buildingCost.item;
                if (!inventory.Items.ContainsKey(buildingCost.item))
                {
                    _costText.text += " (" + buildingCost.amount + "/0)";
                }
                else
                {
                    _costText.text += " (" + buildingCost.amount + "/" + inventory.Items[buildingCost.item] + ")";
                }
            }
            _content.GetComponent <RectTransform>().sizeDelta  = new Vector2(0, (craftableItem.BuildingCost.Count + 2) * 30);
            _costText.GetComponent <RectTransform>().sizeDelta = new Vector2(160, (craftableItem.BuildingCost.Count + 2) * 30);
        }
    public bool CanCraftItem(CraftableItem item)
    {
        Player_Inventory_Script invRef = Player_Accessor_Script.InventoryScript;
        bool craftable = true;

        foreach (Reagent r in item.RequiredReagents)
        {
            int invCount = invRef.GetResourceQuantity(r);
            if (invCount == -1 || invCount < r.ReagentQuantity)
            {
                print("Insufficient resource: " + r.ReagentName + " - " + r.ReagentQuantity);
                craftable = false;
                break;
            }
        }

        if (craftable)
        {
            foreach (Reagent r in item.RequiredReagents)
            {
                invRef.RemoveResource(r, r.ReagentQuantity);
            }
        }

        return(craftable);
        //return true;
    }
    private void XMLInventoryToInventory()
    {
#if UNITY_EDITOR
        string    inventoryEncrypted = File.ReadAllText(Application.dataPath + "/Resources/InventoryData.xml");
        XDocument itemListDocument   = XDocument.Parse(Decrypt(inventoryEncrypted));
#else
        //TextAsset inventoryEncrypted = Resources.Load("InventoryData") as TextAsset;
        string    inventoryEncrypted = File.ReadAllText(Application.persistentDataPath + "/InventoryData.xml");
        XDocument itemListDocument   = XDocument.Parse(Decrypt(inventoryEncrypted));
#endif



        //XDocument itemListDocument = XDocument.Load(Application.dataPath + "/Resources/InventoryData.xml", LoadOptions.None);
        foreach (XElement item in itemListDocument.Root.Elements("Item"))
        {
            int id     = Convert.ToInt32((string)item.Element("Id"));
            int amount = Convert.ToInt32((string)item.Element("Amount"));

            _itemAmountsInInventory[id] = amount;
            if (IsItemCommon(id))
            {
                CommonItem newItem = new CommonItem(id, ItemManager.CommonItems[id].Name, ItemManager.CommonItems[id].Price, ItemManager.CommonItems[id].ItemTexture);
                _itemAmountsInInventory[id] = amount;
                AddCommonItemToInventory(newItem);
            }
            else
            {
                CraftableItem newItem = new CraftableItem(id, ItemManager.CraftableItems[id].Name, ItemManager.CraftableItems[id].Price, ItemManager.CraftableItems[id].ItemTexture, ItemManager.CraftableItems[id].IsPassiveItem, ItemManager.CraftableItems[id].Description);
                _itemAmountsInInventory[id] = amount;
                AddCraftableItemToInventory(newItem);
            }
        }
    }
Пример #7
0
    protected override void Start()
    {
        base.Start();

        if (item == null) {
            item = new CraftableItem(Random.Range(0, CraftableItem.PART_MAX), Random.Range(2, 10));
        }
    }
Пример #8
0
    public void SelectItem(int ind)
    {
        CraftableItem item = selectedItems[ind];

        currentSelectedItem = item;
        SelectedItem.Find("Background/NameBG/ItemName").GetComponent <Text>().text = item.ItemName;
        UpdateProfessionInterface();
    }
    private void CreateSlots()
    {
        for (int i = 0; i < recipes.list.Count; i++)
        {
            CraftableItem item = Instantiate(craftableItemPrefab, uiContent.transform).GetComponent <CraftableItem>();

            RecipeObject recipe = recipes.list[i];

            item.Set(recipe);
            item.GetButton().onClick.AddListener(delegate { playerCrafting.Craft(recipe); });
        }
    }
Пример #10
0
    private void XMLCraftableItemsToList()
    {
#if UNITY_EDITOR
        XDocument itemListDocument = XDocument.Load(Application.dataPath + "/Resources/CraftableItems.xml", LoadOptions.None);
#else
        TextAsset craftableItemsTextAsset = Resources.Load("CraftableItems") as TextAsset;
        XDocument itemListDocument        = XDocument.Parse(craftableItemsTextAsset.text);
#endif

        foreach (XElement item in itemListDocument.Root.Elements("CraftableItem"))
        {
            int           id            = Convert.ToInt32((string)item.Element("Id"));
            string        name          = (string)item.Element("Name");
            int           price         = Convert.ToInt32((string)item.Element("Price"));
            Texture2D     itemTexture   = GetTextureOfItemId(id);
            bool          isPassiveItem = Convert.ToBoolean((string)item.Element("IsPassiveItem"));
            string        description   = (string)item.Element("Description");
            CraftableItem newItem       = new CraftableItem(id, name, price, itemTexture, isPassiveItem, description);
            CraftableItems[id] = newItem;
            CraftableItemDropList.Add(newItem);
        }
    }
Пример #11
0
    private void UpdateCurrentInfo(Item getitem)
    {
        CraftableItem item = getitem as CraftableItem;

        if (item == null)
        {
            Debug.LogError("Item type error");
        }

        _currentItemInfo = item;
        _iteminfo.ChangeInfo(_currentItemInfo.Name, _currentItemInfo.Description, _currentItemInfo.Icon);
        ItemSlot currentSlot = _isle.DoneTasks.GetItemSlot(item);
        int      amount      = 0;

        if (currentSlot != null)
        {
            amount = currentSlot.Amount;
        }
        _iteminfo.ChangeCollectValue(amount, item.MaxOrder, item.Weight);

        if (amount == 0)
        {
            _collectButton.interactable = false;
        }
        else if (_collectButton.interactable == false)
        {
            _collectButton.interactable = true;
        }

        if (_currentItemInfo.MaxOrder - amount == 0)
        {
            _orderButton.interactable = false;
        }
        else if (_orderButton.interactable == false)
        {
            _orderButton.interactable = true;
        }
    }
Пример #12
0
    private void UpdateByItem(CraftableItem item, float progress, bool dontUpdateProgressIfCurrent = false)
    {
        Debug.Log(item);
        if (item == null)
        {
            Debug.LogError("Item type error");
        }

        int            maxOrder  = item.MaxOrder;
        int            doneCount = _isle.DoneTasks.GetItemAmount(item);
        ResourceButton button    = _buttons.Find(b => b.Item == item);

        button.ChangeCount(doneCount, maxOrder);

        if (item == _currentItemInfo)
        {
            UpdateCurrentInfo(item);
        }
        if (!(dontUpdateProgressIfCurrent && (_isle.Tasks.Count == 0 || _isle.Tasks[0].Item == item)))
        {
            button.ChangeProgress(progress);
        }
    }
Пример #13
0
        /// <summary>
        /// Shows the item's resource cost in a scrollView
        /// </summary>
        /// <param name="craftableItem">Building.</param>
        public void DrawCostView(CraftableItem craftableItem, Inventory inventory)
        {
            _content = _costScrollView.GetComponent <ScrollRect>().content;

            _costText.text  = craftableItem.ItemName;
            _costText.text += "\nCost (required/inventory)";

            _DescriptionText.text = craftableItem.ItemName;
            if (craftableItem.Description != "")
            {
                _DescriptionText.text += " - " + craftableItem.Description;
            }

            foreach (CraftableItem.CraftCost buildingCost in craftableItem.GetCraftCost)
            {
                _costText.text += "\n" + buildingCost.item.name;
                Item item = buildingCost.item;
                if (!inventory.HasItem(item))
                {
                    _costText.text += " <color=#ff0000ff> (" + buildingCost.amount + "/0)</color>";
                }
                else
                {
                    if (buildingCost.amount > inventory.Items(item))
                    {
                        _costText.text += "<color=#ff0000ff> (" + buildingCost.amount + "/" + inventory.Items(item) + ")</color>";
                    }
                    else
                    {
                        _costText.text += " (" + buildingCost.amount + "/" + inventory.Items(item) + ")";
                    }
                }
            }
            _content.GetComponent <RectTransform>().sizeDelta  = new Vector2(0, (craftableItem.GetCraftCost.Count + 2) * 30);
            _costText.GetComponent <RectTransform>().sizeDelta = new Vector2(160, (craftableItem.GetCraftCost.Count + 2) * 30);
        }
Пример #14
0
    public TowerTurret GenerateTurret(CraftableItem[] parts)
    {
        /*
         *	Parts Generation
         */
        int chStem = Random.Range(0, stems.Length);
        int chMissile = Random.Range(0, missileSources.Length);
        int chBarrel = Random.Range(0, barrels.Length);
        int chSpinner = Random.Range(0, spinningParts.Length);

        // Turret Base
        GameObject g = GameObject.Instantiate(turretBase, buildSpot, Quaternion.identity) as GameObject;

        // Stem
        TowerStem tStem = GameObject.Instantiate(stems[chStem], buildSpot, Quaternion.identity) as TowerStem;
        tStem.transform.parent = g.transform;
        Vector3 stemOffest = tStem.baseNextComponentPosition;

        // Spinner Base
        GameObject gSpin = GameObject.Instantiate(spinningBase, buildSpot + stemOffest, Quaternion.identity) as GameObject;
        gSpin.transform.parent = g.transform;

        // Missile
        GameObject gMiss = GameObject.Instantiate((GameObject)missileSources[chMissile], buildSpot + stemOffest, Quaternion.identity) as GameObject;
        gMiss.transform.parent = g.transform;
        gMiss.name = "MissileSource";

        // Barrel
        GameObject gBarr = GameObject.Instantiate((GameObject)barrels[chBarrel], buildSpot + stemOffest, Quaternion.identity) as GameObject;
        gBarr.transform.parent = gMiss.transform;	// Barrel is a CHILD of missileSource

        // Spinning Thing
        int numSpinners = Random.Range(2, 7);	// 2 - 6 possible spinners
        float angle = (360 / numSpinners) * Mathf.Deg2Rad;
        for (int i = 0; i < numSpinners; i++) {
            Vector3 offset = new Vector3(Mathf.Cos(i * angle) * 2, 1, Mathf.Sin(i * angle) * 2);
            GameObject gSpinner = GameObject.Instantiate((GameObject)spinningParts[chSpinner], buildSpot + stemOffest + offset, Quaternion.identity) as GameObject;
            gSpinner.transform.parent = gSpin.transform;
        }

        /*
         *	Stats Generation
         */
        TowerTurret t = g.GetComponent<TowerTurret>();
        string name = "";

        // Get average level of the three components
        float avgLevel = (parts[CraftableItem.PART_DPS].Level + parts[CraftableItem.PART_RANGE].Level + parts[CraftableItem.PART_MODIFIER].Level) / 3f;

        // Range
        float s_range;
        s_range = (parts[CraftableItem.PART_RANGE].Level / avgLevel) * parts[CraftableItem.PART_RANGE].Modifier;
        if ((int)parts[CraftableItem.PART_MODIFIER].Modifier == 2) {
            s_range *= 1.5f;
        }
        s_range = BaseTower.JiggleStat(s_range, 0.05f);
        s_range = Mathf.Round(s_range * 10) / 10f;

        // Determine DPS for the current level
        float dps = parts[CraftableItem.PART_DPS].Modifier;
        float DPSMULT = 2f;

        if ((int)parts[CraftableItem.PART_MODIFIER].Modifier == 3) {
            // Add Status Ailment
            if (Random.Range(0, 3) == 0) {
                dps /= 2f;

                int i = Random.Range(0, Ailment.STUN + 1);
                string[] s = {"Burn", "Slow", "Stun"};
                GameObject statEffect = Resources.Load("Prefabs/StatusAilments/" + s[i], typeof(GameObject)) as GameObject;
                t.missile = Resources.Load("Prefabs/Towers/Turret Parts/MissilesStatus/" + s[i] + "Missile", typeof(GameObject)) as GameObject;
                switch (i) {
                    case Ailment.BURN:
                    //statEffect.GetComponent<Burn>().damage = 2;
                        name += "Incendiary ";
                        break;
                    case Ailment.SLOW:
                    //statEffect.GetComponent<Slow>().slowPercentage = 0.5f;
                        name += "Slowness ";
                        break;
                    case Ailment.STUN:
                        name += "Stunning ";
                        break;
                }
                t.statusAilment = statEffect;
            } else {
                name += "Basic ";
            }
        }

        // Damage
        int s_dmg;
        if ((int)parts[CraftableItem.PART_MODIFIER].Modifier == 1) {
            s_dmg = Random.Range((int)dps, (int)(dps * DPSMULT));
            name += "Advanced ";
        } else if ((int)parts[CraftableItem.PART_MODIFIER].Modifier == 0) {
            s_dmg = Random.Range(1, (int)(dps * 0.75f));
            name += "Remote ";
        } else {
            s_dmg = Random.Range(1, (int)(dps * DPSMULT));
        }

        // Firing Rate (# of bullets per second)
        float s_firingRate = Mathf.Round((dps / s_dmg) * 10f) / 10f;

        t.attributes.Add(new ModifyingAttribute(Stat.Damage, s_dmg));
        t.attributes.Add(new ModifyingAttribute(Stat.Range, s_range));
        t.attributes.Add(new ModifyingAttribute(Stat.FiringRate, s_firingRate));

        t.toolTipMessage = "DPS: " + (s_dmg * s_firingRate) + t.toolTipMessage;

        /*
         *	Stats Generation
         */

        t.componentName = name + "Turret";
        t.componentType = BaseTower.TOWER_TURRET;
        t.level = (int)avgLevel;
        t.damageType = Random.Range(0, DamageType.COUNT_DMGTYPES);

        g.SetActive(false);
        t.transform.parent = partsRoot;
        return t;
    }
Пример #15
0
 public TowerTurret UpgradeTurret(CraftableItem[] parts, TowerTurret t)
 {
     return null;
 }
Пример #16
0
 public void AddCraftableItem(CraftableItem item)
 {
     Items.Add(item);
 }
Пример #17
0
 public void AddCraftableItem(CraftableItem craftItem)
 {
     craftableItems.Add(craftItem);
 }
Пример #18
0
    void WindowFunction(int windowID)
    {
        if (windowID == windowInv)
        {
            //Measurements
            float scrollViewWidth = inventoryScrollView.width - 12;

            float invButtonSize   = scrollViewWidth / 6;
            float invButtonMargin = invButtonSize * 0.1f;
            float invButtonInner  = invButtonSize - invButtonMargin * 2;

            float viewHeight = invButtonSize * Inventory.Items.Count;
            if (viewHeight < inventoryScrollView.height)
            {
                viewHeight = inventoryScrollView.height;
            }
            Rect scrollRect = new Rect(0, 0, scrollViewWidth, viewHeight);


            //If Item dropped into Inventory
            if (inventoryScrollView.Contains(Event.current.mousePosition) && Input.GetMouseButtonUp(0) && dragSource == 1)
            {
                Debug.Log("Inventory Contains Mouse: " + dragIndex.ToString() + " : " + dragSource.ToString() + " : " + (dragIcon != null).ToString());
                if (dragIndex > -1)
                {
                    if (Inventory.Equipment[dragIndex] != null && dragItem != null)
                    {
                        Inventory.Items.Add(dragItem);
                        if (Inventory.SelectedIndex == dragIndex)
                        {
                            Inventory.Unequip(dragIndex);
                        }
                        Inventory.Equipment[dragIndex] = null;

                        MouseCapture();
                    }
                }
            }

            Rect dropRect = new Rect(inventoryWindow.width - 53, 38, 45, 45);

            if (dropRect.Contains(Event.current.mousePosition) && Input.GetMouseButtonUp(0))
            {
                if (dragSource == 0 || dragSource == 1)
                {
                    Inventory.DropItem(dragItem);
                    MouseCapture();
                }
            }

            GUI.DrawTexture(dropRect, IconDropItem);



            inventoryScrollPosition = GUI.BeginScrollView(inventoryScrollView, inventoryScrollPosition, scrollRect, false, true);
            {
                //Inventory Slots
                int y = 0;
                while (y * 6 < Inventory.Items.Count)
                {
                    int hoverIndex = -1;
                    for (int x = 0; x < 6; x++)
                    {
                        if (y * 6 + x < Inventory.Items.Count)
                        {
                            int  itemIndex = y * 6 + x;
                            Item item      = Inventory.Items[itemIndex];

                            Rect buttonRect = new Rect((invButtonSize * x) + invButtonMargin, (invButtonSize * y) + invButtonMargin, invButtonInner, invButtonInner);

                            //if(GUI.Button(new Rect((37*x),(37*y),32,32), new GUIContent(item.Icon,item.Name)))
                            //GUI.Button(buttonRect, new GUIContent(item.Icon,item.Name));


                            if (buttonRect.Contains(Event.current.mousePosition))
                            {
                                hoverIndex = itemIndex;
                                // Draw hover
                                GUI.color = boxHover;

                                if (Input.GetMouseButtonDown(0))
                                {
                                    GUI.tooltip = item.Name;
                                    if (Input.GetMouseButtonDown(0))
                                    {
                                        mouseDown = true;

                                        dragSource = 0;
                                        dragIcon   = item.Icon;
                                        dragIndex  = itemIndex;
                                        dragItem   = item;
                                    }
                                }
                            }
                            else
                            {
                                GUI.color = boxStandard;
                            }

                            GUI.DrawTexture(buttonRect, Filler);

                            GUI.color = Color.white;

                            GUI.DrawTexture(buttonRect, item.Icon);
                            if (item.Stackable)
                            {
                                GUI.Label(buttonRect, item.StackAmount.ToString(), invStackStyle);
                            }
                        }
                    }
                    itemHover = hoverIndex;
                    y++;
                }
            }
            GUI.EndScrollView();
        }

        if (windowID == windowCrafting)
        {
            CraftableItem[] craftItems = CraftingManager.AvailableCrafts(Inventory);

            if (craftIndex >= craftItems.Length)
            {
                craftIndex = -1;
            }

            int craftScrollHeight = craftItems.Length * 20;
            if (craftScrollHeight < (int)craftScrollRect.height)
            {
                craftScrollHeight = (int)craftScrollRect.height;
            }

            craftScrollPosition = GUI.BeginScrollView(craftScrollRect, craftScrollPosition, new Rect(0, 0, craftScrollRect.width - 16, craftScrollHeight), false, true);

            for (int i = 0; i < craftItems.Length; i++)
            {
                Rect craftItemRect = new Rect(0, i * 20, (int)craftScrollRect.width, 20);

                if (craftItemRect.Contains(Event.current.mousePosition) && Input.GetMouseButtonDown(0))
                {
                    craftIndex = i;
                }

                if (i == craftIndex)
                {
                    GUI.color = new Color(0.7f, 0.4f, 0.4f);
                    GUI.DrawTexture(craftItemRect, Filler);
                    GUI.color = Color.white;
                }

                GUI.Label(craftItemRect, craftItems[i].ItemName);
            }

            GUI.EndScrollView(true);

            if (craftIndex > -1)
            {
                if (GUI.Button(new Rect(8, 265, craftWindow.width - 16, 25), "Craft"))
                {
                    bool          craftIt = true;
                    CraftableItem item    = craftItems[craftIndex];
                    for (int j = 0; j < item.ItemNeeded.Length; j++)
                    {
                        if (!Inventory.IsStackAvailable(item.ItemNeeded[j], item.ItemQNeeded[j]))
                        {
                            craftIt = false;
                        }
                    }

                    if (craftIt)
                    {
                        for (int j = 0; j < item.ItemNeeded.Length; j++)
                        {
                            Inventory.RetrieveFromStack(item.ItemNeeded[j], item.ItemQNeeded[j]);
                        }
                        networkView.RPC("CraftItem", RPCMode.Server, item.ItemName, Network.player);
                    }
                }
            }
        }

        if (windowID == windowMenu)
        {
            MenuDraw();
        }

        Overlay(true);
        MouseCapture();

        GUI.DragWindow(new Rect(0, 0, 226, 20));
    }
Пример #19
0
    public void LoadSelectedItem(CraftableItem itemRef)
    {
        if (itemRef != null)
        {
            CraftedEquipment equipRef;
            Transform        mainItemPane = recipeCreatorTransform.Find("ContentBG/ItemTab");
            if (itemRef.MyCraftedItemType == CraftedItemType.ARMOR)
            {
                PopulateEquipmentList();
            }
            else if (itemRef.MyCraftedItemType == CraftedItemType.WEAPON)
            {
                PopulateWeaponList();
            }
            else if (itemRef.MyCraftedItemType == CraftedItemType.REAGENT)
            {
                PopulateReagentList();
            }

            if (itemRef.MyCraftedItemType == CraftedItemType.ARMOR || itemRef.MyCraftedItemType == CraftedItemType.WEAPON)
            {
                equipRef = itemRef as CraftedEquipment;
                currItem = itemRef;
                mainItemPane.Find("Name/Name").GetComponent <InputField>().text = equipRef.baseName;
                if (itemRef.MyCraftedItemType == CraftedItemType.ARMOR || itemRef.MyCraftedItemType == CraftedItemType.WEAPON)
                {
                    mainItemPane.Find("Dexterity/Min").GetComponent <InputField>().text    = equipRef.dexterityMin.ToString();
                    mainItemPane.Find("Dexterity/Max").GetComponent <InputField>().text    = equipRef.dexterityMax.ToString();
                    mainItemPane.Find("Might/Min").GetComponent <InputField>().text        = equipRef.mightMin.ToString();
                    mainItemPane.Find("Might/Max").GetComponent <InputField>().text        = equipRef.mightMax.ToString();
                    mainItemPane.Find("Intelligence/Min").GetComponent <InputField>().text = equipRef.intelligenceMin.ToString();
                    mainItemPane.Find("Intelligence/Max").GetComponent <InputField>().text = equipRef.intelligenceMax.ToString();
                    mainItemPane.Find("LevelRange/Min").GetComponent <InputField>().text   = equipRef.minLevelReq.ToString();
                    mainItemPane.Find("LevelRange/Max").GetComponent <InputField>().text   = equipRef.maxLevelReq.ToString();
                    mainItemPane.Find("Health/Min").GetComponent <InputField>().text       = equipRef.minBonusHealth.ToString();
                    mainItemPane.Find("Health/Max").GetComponent <InputField>().text       = equipRef.maxBonusHealth.ToString();

                    mainItemPane.Find("Dexterity/Min").GetComponent <InputField>().interactable    = true;
                    mainItemPane.Find("Dexterity/Max").GetComponent <InputField>().interactable    = true;
                    mainItemPane.Find("Might/Min").GetComponent <InputField>().interactable        = true;
                    mainItemPane.Find("Might/Max").GetComponent <InputField>().interactable        = true;
                    mainItemPane.Find("Intelligence/Min").GetComponent <InputField>().interactable = true;
                    mainItemPane.Find("Intelligence/Max").GetComponent <InputField>().interactable = true;
                    mainItemPane.Find("LevelRange/Min").GetComponent <InputField>().interactable   = true;
                    mainItemPane.Find("LevelRange/Max").GetComponent <InputField>().interactable   = true;
                    mainItemPane.Find("Health/Min").GetComponent <InputField>().interactable       = true;
                    mainItemPane.Find("Health/Max").GetComponent <InputField>().interactable       = true;

                    FetchPerkList();

                    int      val    = 0;
                    Dropdown tempdd = mainItemPane.Find("ItemType").GetComponent <Dropdown>();
                    if (itemRef.MyCraftedItemType == CraftedItemType.WEAPON)
                    {
                        for (int i = 0; i < System.Enum.GetNames(typeof(WeaponType)).Length; i++)
                        {
                            if (tempdd.options[i].text.ToLower() == (itemRef as CraftedWeapon).tarType.ToString().ToLower())
                            {
                                val = i;
                                break;
                            }
                        }
                    }
                    else if (itemRef.MyCraftedItemType == CraftedItemType.ARMOR)
                    {
                        for (int i = 0; i < System.Enum.GetNames(typeof(ArmorType)).Length; i++)
                        {
                            if (tempdd.options[i].text.ToLower() == (itemRef as CraftedArmor).tarType.ToString().ToLower())
                            {
                                val = i;
                                break;
                            }
                        }
                    }
                    tempdd.value = val;

                    for (int i = 0; i < perkListTransform.childCount; i++)
                    {
                        Toggle t = perkListTransform.GetChild(i).GetComponentInChildren <Toggle>();
                        if (equipRef.perks.Contains(Perks.ConvertTextToPerk(perkListTransform.GetChild(i).GetChild(0).GetComponent <Text>().text)))
                        {
                            t.isOn = true;
                        }
                        else
                        {
                            t.isOn = false;
                        }
                    }
                    print(itemRef.ItemName);
                }
            }
            else if (itemRef.MyCraftedItemType == CraftedItemType.REAGENT)
            {
                mainItemPane = recipeCreatorTransform.Find("ReagentBG/ItemTab");
                mainItemPane.Find("Name/Name").GetComponent <InputField>().text             = itemRef.ItemName;
                mainItemPane.Find("SpriteIcon/BG/Image").GetComponent <Image>().sprite      = Resources.Load <Sprite>("ItemIcons/ResourceIcons/" + itemRef.SpritePath);
                mainItemPane.Find("SpriteIcon/InputField").GetComponent <InputField>().text = itemRef.SpritePath;
                currItem = itemRef;
            }

            Dropdown tempDD = mainItemPane.Find("ProfGroup/ProfessionType").GetComponent <Dropdown>();
            for (int i = 0; i < tempDD.options.Count; i++)
            {
                if (Player_Skills_Script.ConvertStringToSkill(tempDD.options[i].text) == itemRef.RequiredProfession)
                {
                    tempDD.value = i;
                    break;
                }
            }
            mainItemPane.Find("ProfGroup/RequiredLevel").GetComponent <InputField>().text = itemRef.RequiredProfLevel.ToString();
            mainItemPane.Find("ProfGroup/RewardedExp").GetComponent <InputField>().text   = itemRef.RewardedExp.ToString();

            reagentController.LoadReagentList();
        }
    }
 private void AddCraftableItemToInventory(CraftableItem item)
 {
     ItemInventory.CraftableItems.Add(item);
 }
Пример #21
0
    protected Item[][] GenerateItemDropArray(int numMobs, int waveNumber)
    {
        int[] droppables = new int[4];
        droppables[0] = Random.Range(BASESDROP_MIN, BASESDROP_MAX + 1);
        droppables[1] = Random.Range(TURRETDROP_MIN, TURRETDROP_MAX + 1);
        droppables[2] = Random.Range(WEAPONDROP_MIN, WEAPONDROP_MAX + 1);
        droppables[3] = Random.Range(CRAFTDROP_MIN, CRAFTDROP_MAX + 1);
        Debug.Log("Drops: " + droppables[0] + "/" + droppables[1] + "/" + droppables[2] + "/" + droppables[3]);
        Item[][] drops = new Item[numMobs][];

        float itemLevel = waveNumber * LEVELCONST_MULT + WaveController.WAVESTART_PERMOB_COST;

        int mobNumber;	// Which mob is going to drop the item
        for (int dropCounter = 0; dropCounter < droppables.Length; dropCounter++) {
            for (int i = 0; i < droppables[dropCounter]; i++) {
                Item toDrop = null;
                switch (dropCounter) {
                    case BASEDROP:
                        toDrop = new TowerItem(BaseTower.TOWER_BASE, itemLevel);
                        break;
                    case TURRETDROP:
                        toDrop = new TowerItem(BaseTower.TOWER_TURRET, itemLevel);
                        break;
                    case WEAPONDROP:
                        toDrop = WeaponItem.RandomItem(itemLevel);
                        break;
                    case CRAFTDROP:
                        toDrop = new CraftableItem(itemLevel);
                        break;
                }

                mobNumber = Random.Range(0, numMobs);
                if (drops[mobNumber] == null) {
                    drops[mobNumber] = new Item[1];
                    drops[mobNumber][0] = toDrop;
                } else {
                    Item[] temp = drops[mobNumber];
                    drops[mobNumber] = new Item[temp.Length + 1];
                    int o = 0;
                    for (; o < temp.Length; o++) {
                        drops[mobNumber][o] = temp[o];
                    }
                    drops[mobNumber][o] = toDrop;
                }
            }
        }
        return drops;
    }
Пример #22
0
 public CraftTask(CraftableItem item, int amount)
 {
     Item = item; Amount = amount;
 }
Пример #23
0
    public void SaveDesign()
    {
        int ind = craftingController.CraftableItems.IndexOf(currItem);

        if (displayAltPane && currItem != null)
        {
            currItem.MyCraftedItemType = CraftedItemType.REAGENT;
        }

        if (!displayAltPane || (currItem != null && (currItem.MyCraftedItemType == CraftedItemType.WEAPON || currItem.MyCraftedItemType == CraftedItemType.ARMOR)))
        {
            Transform mainItemPane = recipeCreatorTransform.Find("ContentBG/ItemTab");
            if (mainItemPane.Find("Name/Name").GetComponent <InputField>().text == "")
            {
                return;
            }

            CraftedEquipment itemRecipe = null;
            if (currItem == null)
            {
                itemRecipe = new CraftedEquipment();
            }
            else
            {
                if (currItem.MyCraftedItemType == CraftedItemType.WEAPON)
                {
                    itemRecipe = currItem as CraftedWeapon;
                }
                else if (currItem.MyCraftedItemType == CraftedItemType.ARMOR)
                {
                    itemRecipe = currItem as CraftedArmor;
                }
            }

            Dropdown dropList = mainItemPane.Find("ItemType").GetComponent <Dropdown>();
            if (dropList.GetComponent <UI_WeaponType_Controller>().displayingWeapons)
            {
                itemRecipe.MyCraftedItemType = CraftedItemType.WEAPON;
            }
            else
            {
                itemRecipe.MyCraftedItemType = CraftedItemType.ARMOR;
            }

            if (itemRecipe.MyCraftedItemType == CraftedItemType.ARMOR)
            {
                itemRecipe = new CraftedArmor();
                (itemRecipe as CraftedArmor).tarType = ArmorTypeParse(dropList.options[dropList.value].text);
            }
            else if (itemRecipe.MyCraftedItemType == CraftedItemType.WEAPON)
            {
                itemRecipe = new CraftedWeapon();
                (itemRecipe as CraftedWeapon).tarType = WeaponTypeParse(dropList.options[dropList.value].text);
            }

            itemRecipe.ItemName        = mainItemPane.Find("Name/Name").GetComponent <InputField>().text;
            itemRecipe.baseName        = mainItemPane.Find("Name/Name").GetComponent <InputField>().text;
            itemRecipe.dexterityMin    = int.Parse(mainItemPane.Find("Dexterity/Min").GetComponent <InputField>().text);
            itemRecipe.dexterityMax    = int.Parse(mainItemPane.Find("Dexterity/Max").GetComponent <InputField>().text);
            itemRecipe.mightMin        = int.Parse(mainItemPane.Find("Might/Min").GetComponent <InputField>().text);
            itemRecipe.mightMax        = int.Parse(mainItemPane.Find("Might/Max").GetComponent <InputField>().text);
            itemRecipe.intelligenceMin = int.Parse(mainItemPane.Find("Intelligence/Min").GetComponent <InputField>().text);
            itemRecipe.intelligenceMax = int.Parse(mainItemPane.Find("Intelligence/Max").GetComponent <InputField>().text);
            itemRecipe.minLevelReq     = int.Parse(mainItemPane.Find("LevelRange/Min").GetComponent <InputField>().text);
            itemRecipe.maxLevelReq     = int.Parse(mainItemPane.Find("LevelRange/Max").GetComponent <InputField>().text);
            itemRecipe.minBonusHealth  = int.Parse(mainItemPane.Find("Health/Min").GetComponent <InputField>().text);
            itemRecipe.maxBonusHealth  = int.Parse(mainItemPane.Find("Health/Max").GetComponent <InputField>().text);

            dropList = mainItemPane.Find("ProfGroup/ProfessionType").GetComponent <Dropdown>();
            itemRecipe.RequiredProfession = Player_Skills_Script.ConvertStringToSkill(dropList.options[dropList.value].text);
            if (itemRecipe.RequiredProfession == Skills.None)
            {
                print("Failed to find skill for: " + itemRecipe.ItemName);
            }
            itemRecipe.RequiredProfLevel = int.Parse(mainItemPane.Find("ProfGroup/RequiredLevel").GetComponent <InputField>().text);
            itemRecipe.RewardedExp       = int.Parse(mainItemPane.Find("ProfGroup/RewardedExp").GetComponent <InputField>().text);
            reagentController.SaveReagentList();
            itemRecipe.RequiredReagents = new List <Reagent>();
            itemRecipe.RequiredReagents = reagentController.reagentList;
            itemRecipe.perks            = activePerks;
            currItem = itemRecipe;
        }
        else if (displayAltPane || currItem.MyCraftedItemType == CraftedItemType.REAGENT)
        {
            Transform        mainItemPane = recipeCreatorTransform.Find("ReagentBG/ItemTab");
            CraftableReagent tempReagent  = new CraftableReagent();

            tempReagent.ItemName          = mainItemPane.Find("Name/Name").GetComponent <InputField>().text;
            tempReagent.RewardedExp       = int.Parse(mainItemPane.Find("ProfGroup/RewardedExp").GetComponent <InputField>().text);
            tempReagent.RequiredProfLevel = int.Parse(mainItemPane.Find("ProfGroup/RequiredLevel").GetComponent <InputField>().text);

            Dropdown dropList = mainItemPane.Find("ProfGroup/ProfessionType").GetComponent <Dropdown>();
            tempReagent.RequiredProfession = Player_Skills_Script.ConvertStringToSkill(dropList.options[dropList.value].text);

            tempReagent.SpritePath = mainItemPane.Find("SpriteIcon/InputField").GetComponent <InputField>().text;
            reagentController.availableReagents.Add(tempReagent);
            tempReagent.RequiredReagents = reagentController.reagentList;
            currItem = tempReagent;
            reagentController.SaveReagentList();
        }

        if (ind == -1)
        {
            if (currItem.MyCraftedItemType != CraftedItemType.REAGENT)
            {
                craftingController.CraftableItems.Add(currItem);
            }
            else
            {
                if (!craftingController.CraftableReagents.Contains(currItem as CraftableReagent))
                {
                    craftingController.CraftableReagents.Add(currItem as CraftableReagent);
                }
            }
        }
        else
        {
            craftingController.CraftableItems[ind] = currItem;
        }
        craftingController.SaveRecipes();
        LoadDesignList();
        ClearTemplate();
    }
    public Item GenerateItem(CraftableItem mould)
    {
        if (CanCraftItem(mould))
        {
            if (mould.MyCraftedItemType == CraftedItemType.WEAPON)
            {
                Weapon ret = null;
                switch ((mould as CraftedWeapon).tarType)
                {
                case (WeaponType.RECURVEBOW):
                    ret = new RecurveBow(ALib);
                    break;

                case (WeaponType.SWORD):
                    ret = new Sword(ALib);
                    break;

                case (WeaponType.CENSER):
                    ret = new Censer(ALib);
                    break;

                case (WeaponType.STAFF):
                    ret = new Staff(ALib);
                    break;

                case (WeaponType.SACRIFICIALKNIFE):
                    ret = new SacrificialKnife(ALib);
                    break;

                case (WeaponType.VESSEL):
                    ret = new Vessel(ALib);
                    break;
                }

                ret.CopyStats(mould as CraftedWeapon);
                Player_Accessor_Script.SkillsScript.AddExperience(mould.RequiredProfession, mould.RewardedExp);
                return(ret);
            }
            else if (mould.MyCraftedItemType == CraftedItemType.ARMOR)
            {
                Armor ret = null;
                switch ((mould as CraftedArmor).tarType)
                {
                case (ArmorType.CHESTPLATE):
                    ret            = new Chestplate();
                    ret.MyItemType = ItemType.CHESTPLATE;
                    break;

                case (ArmorType.PLATELEGS):
                    ret            = new Platelegs();
                    ret.MyItemType = ItemType.PLATELEGS;
                    break;

                case (ArmorType.HELMET):
                    ret            = new Helmet();
                    ret.MyItemType = ItemType.HELMET;
                    break;

                case (ArmorType.CHESTGUARD):
                    ret            = new Chestguard();
                    ret.MyItemType = ItemType.CHESTGUARD;
                    break;

                case (ArmorType.CHAPS):
                    ret            = new Chaps();
                    ret.MyItemType = ItemType.CHAPS;
                    break;

                case (ArmorType.COIF):
                    ret            = new Coif();
                    ret.MyItemType = ItemType.COIF;
                    break;

                case (ArmorType.ROBE):
                    ret            = new Robe();
                    ret.MyItemType = ItemType.ROBE;
                    break;

                case (ArmorType.TROUSERS):
                    ret            = new Trousers();
                    ret.MyItemType = ItemType.TROUSERS;
                    break;

                case (ArmorType.HAT):
                    ret            = new Hat();
                    ret.MyItemType = ItemType.HAT;
                    break;
                }

                ret.CopyStats(mould as CraftedArmor);
                Player_Accessor_Script.SkillsScript.AddExperience(mould.RequiredProfession, mould.RewardedExp);
                return(ret);
            }
            else if (mould.MyCraftedItemType == CraftedItemType.REAGENT)
            {
                print("Reagent Type: " + mould.ItemName);
                Reagent newReagent = new Reagent();
                newReagent.ReagentName     = mould.ItemName;
                newReagent.ReagentQuantity = 1;
                newReagent.ReagentSprite   = mould.SpritePath;
                Player_Accessor_Script.InventoryScript.AddResourceType(newReagent, newReagent.ReagentQuantity);
                Player_Accessor_Script.SkillsScript.AddExperience(mould.RequiredProfession, mould.RewardedExp);
            }
            else
            {
                print("Unknown crafting type");
            }
        }
        return(null);
    }