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(); }
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; } }
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()); }
/// <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); } } }
protected override void Start() { base.Start(); if (item == null) { item = new CraftableItem(Random.Range(0, CraftableItem.PART_MAX), Random.Range(2, 10)); } }
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); }); } }
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); } }
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; } }
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); } }
/// <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); }
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; }
public TowerTurret UpgradeTurret(CraftableItem[] parts, TowerTurret t) { return null; }
public void AddCraftableItem(CraftableItem item) { Items.Add(item); }
public void AddCraftableItem(CraftableItem craftItem) { craftableItems.Add(craftItem); }
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)); }
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); }
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; }
public CraftTask(CraftableItem item, int amount) { Item = item; Amount = amount; }
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); }