void Add(int index, InvInfo Item) { note.ItemTransaction(Item, false); int AmountLeft = Item.Amount; for (int x = 0; x < Contents.Length; x++) //check each inventory item { if (Contents[x].Id == Item.Id) //for the same id/item type { int SpaceAvailable = Contents[x].StackNum - Contents[x].Amount; //Find space left in slot for (int i = 0; (i < SpaceAvailable) && (AmountLeft != 0); i++) //fill each space left with what's available { AmountLeft--; Contents[x].Amount++; } if (AmountLeft == 0) { Destroy(Item.gameObject); } } } if (AmountLeft >= 1) { Item.Amount = AmountLeft; Contents[current] = Item; current++; } }
private static void Compare(InvInfo inv, Item it, Item compare) { var a = compare.stats; var b = it.stats; inv.compare.text = "Ќаденув вы получете:\r\n"; for (int i = 0; i < a.stats.Length; i++) { var dif = b.stats[i] - a.stats[i]; if (dif != 0 ) inv.compare.text += (dif > 0 ? "#[00DD00]" : "#[DD0000]") + string.Format(a.texts[i], dif.ToString("+#;-#;0")) + "[-]\r\n"; } }
private static void Compare(InvInfo inv, Item it, Item compare) { var a = compare.stats; var b = it.stats; inv.compare.text = "Ќаденув вы получете:\r\n"; for (int i = 0; i < a.stats.Length; i++) { var dif = b.stats[i] - a.stats[i]; if (dif != 0) { inv.compare.text += (dif > 0 ? "#[00DD00]" : "#[DD0000]") + string.Format(a.texts[i], dif.ToString("+#;-#;0")) + "[-]\r\n"; } } }
private void SetInv(bool show, InvInfo inv, Item it, Item compare = null) { inv.gameObject.SetActive(show); if (show) { if (it.slotType == SlotType.Hand) { inv.damage.text = it.DamagePerSecond.ToString(); inv.info.text = string.Format("[6D6D6D]ед. урона в секунду[-]\n\n{0} урон\n{1} јтак в секунду", it.Damage, it.attacksPerSecond); inv.durability.text = string.Format("[AF8346]прочность[-]:{0}/{0}", it.durability); inv.handType.text = string.Format("[6D6D6D]{0}[-]\n[AF8346]", it.TwoHanded ? "ƒвуxручное ќружее" : "ќдноручное оружее"); } else { inv.damage.text = it.Armor.ToString(); inv.sellValue.text = string.Format("цена продажи:[-]{0}$", it.sellValue); inv.handType.text = TR(it.slotType.ToString()); inv.info.text = "[6D6D6D]Ѕрон¤[-]"; } inv.compare.text = ""; inv.Background.color = it.color; inv.type.text = TR(it.quality.ToString()) + " " + TR(it.weaponSubName.ToString()); inv.uiTexture.mainTexture = it.Texture; inv.Title.text = it.Name.ToUpper(); inv.type.color = it.color; inv.level.text = "“ребуемый уровень: " + it.itemLevel; if (compare != null) { Compare(inv, it, compare); } var stats = it.stats; inv.magicSettings.text = ""; for (int i = 0; i < stats.stats.Length; i++) { if (stats.stats[i] > 0 && !stats.noRand[i]) { inv.magicSettings.text += "#[5454CC]" + string.Format(stats.texts[i], (int)stats.stats[i]) + "[-]\r\n"; } } } }
void Pickup() { GameObject cam = mov.camera; RaycastHit hit; if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit, 10)) { try { InvInfo PickedUp = hit.transform.gameObject.GetComponent <InvInfo>(); if (PickedUp != null && PickedUp.pickupable && PickedUp.gameObject.transform.parent != equip_space) { if (PickedUp.Placeable && !donepickingup) { Pickuptime(hit.transform.gameObject); } else if (donepickingup || !PickedUp.Placeable) { if (hit.transform.gameObject.GetComponent <Rigidbody>()) { Destroy(hit.transform.gameObject.GetComponent <Rigidbody>()); } hit.transform.gameObject.SetActive(false); hit.transform.SetParent(storage.transform); hit.transform.localPosition = Vector3.zero; Add(current, PickedUp); SortInv(); donepickingup = false; PickupBar.percent = 0f; } } } catch (NullReferenceException) { PickupBar.percent = 0f; } } else { PickupBar.percent = 0f; } }
public void ItemTransaction(InvInfo Item, bool drop) { if (MatchFound(Item.Id, drop) != -1) { notes[MatchFound(Item.Id, drop)].Amount += Item.Amount; } else { //ShiftNotifications(); GameObject blip = Instantiate(itemTemplate, new Vector3(0, 0, 0), Quaternion.identity); RectTransform blip_t = blip.GetComponent <RectTransform>(); RawImage blip_bg = blip.GetComponent <RawImage> (); RawImage blip_img = blip.transform.GetChild(0).gameObject.GetComponent <RawImage> (); blip.transform.SetParent(this.gameObject.transform); blip_t.anchoredPosition = new Vector3(0, 0, 0); blip_t.transform.localScale = Vector3.one; blip_t.eulerAngles = new Vector3(0, 0, 0); blip_img.texture = Item.Icon; blip.name = Item.Name; Notification note = blip.GetComponent <Notification>(); note.drop = drop; note.Name = Item.Name; note.Id = Item.Id; note.Amount = Item.Amount; notes.Add(note); StartCoroutine(IRemove(note)); if (!drop) { blip_bg.color = pickupColor; } else { blip_bg.color = dropColor; } } }
public void Start() { ToolTip(LevelField, () => string.Format("[C7B377]ќпыт на уровне {0}:[-]{1}/{2}", Level1, xp, expNeeded[Level])); ToolTip(StrengthField, () => string.Format("[C7B377]—ила :[-][00DD00]{0}[-]\n#ќсновна¤ xарактеристика дл¤ варваров.\n#”величивает наносимый етими геро¤ми урон на [00DD00]{0}%[-]\n#ѕовышает показатель брони на [00DD00]{0}[-] ед.", stats.Strength)); ToolTip(DexterityField, () => string.Format("[C7B377]Ћовкость: [-][00DD00]{0}[-]\n#ќсновна¤ xарактеристика дл¤ оxотников на демонов и монаxов.\n#”величивает наносимый этими геро¤ми урон на [00DD00]{0}%[-]. \n#”величивает веро¤тность уклонени¤ на [00DD00]{1}%", stats.Dexterity, Math.Round(dodge, 2))); ToolTip(IntelligenceField, () => string.Format("[C7B377]»нтеллект: [-][00DD00]{0}[-]\n#ќсновна¤ xарактеристика дл¤ колдунов и чародеев.\n#”величивает наносимый этими геро¤ми урон на {0}%.\n#”величивает сопротивление на [00DD00]{1}[-] ед.", stats.Intelligence, stats.Intelligence * .1f)); ToolTip(VitalityField, () => string.Format("[C7B377]∆ивучесть[-][00DD00]{0}[-]\n#”величивает запас здоровь¤, позво뤤 герою пережить больший урон.\n#ќдно очко живучести увеличивает запас здоровь¤ на [00DD00]10[-] ед.", stats.Vitality)); ToolTip(LifeSlider, () => string.Format("[C7B377]«доровье: {0}/{1}[-]\n «акончитс¤ - и ты мертвец", _Player.life, MaxLife)); ToolTip(ManaSlider, () => string.Format("ƒуx: {0}/150", (int)Mana)); ToolTip(ArmorField, () => string.Format("Ѕрон¤: [00DD00]{0}[-]\n#”меньшает урон, наносимый противниками аналогичного уровн¤, на [00DD00]{1}%[-]", stats.Armor, Math.Round((stats.Armor / (50f * Level1 + stats.Armor)) * 100f, 2))); ToolTip(DamageField, () => string.Format("”рон в секунду увеличиваетс¤ в зависимости от испозуемого оружи¤,\nxариктеристик геро¤, скорости атаки, веро¤тности критического удара,\nпассивныx умени и скорости атаки при одновременном испозовании двуx видов оружи¤.")); ToolTip(moneyField, () => "это ваши деньги, нестоит тратить все сразу"); RefreshStats(); _Player.life = MaxLife; InvInfo2 = (InvInfo)Instantiate(InvInfo1); InvInfo2.transform.parent = InvInfo1.transform.parent; InvInfo2.transform.localScale = InvInfo1.transform.localScale; InvInfo2.transform.localPosition = new Vector3(-1094.547f, 228.8786f, 0); InvInfo1.gameObject.SetActive(false); InvInfo2.gameObject.SetActive(false); InvInfo2.uiTexture.material = new Material(InvInfo2.uiTexture.material); //StartCoroutine(AddMethod(new WaitForSeconds(1), () => InvInfo2.gameObject.SetActive(false))); }
private void SetInv(bool show, InvInfo inv, Item it, Item compare = null) { inv.gameObject.SetActive(show); if (show) { if (it.slotType == SlotType.Hand) { inv.damage.text = it.DamagePerSecond.ToString(); inv.info.text = string.Format("[6D6D6D]ед. урона в секунду[-]\n\n{0} урон\n{1} јтак в секунду", it.Damage, it.attacksPerSecond); inv.durability.text = string.Format("[AF8346]прочность[-]:{0}/{0}", it.durability); inv.handType.text = string.Format("[6D6D6D]{0}[-]\n[AF8346]", it.TwoHanded ? "ƒвуxручное ќружее" : "ќдноручное оружее"); } else { inv.damage.text = it.Armor.ToString(); inv.sellValue.text = string.Format("цена продажи:[-]{0}$", it.sellValue); inv.handType.text = TR(it.slotType.ToString()); inv.info.text = "[6D6D6D]Ѕрон¤[-]"; } inv.compare.text = ""; inv.Background.color = it.color; inv.type.text = TR(it.quality.ToString()) + " " + TR(it.weaponSubName.ToString()); inv.uiTexture.mainTexture = it.Texture; inv.Title.text = it.Name.ToUpper(); inv.type.color = it.color; inv.level.text = "“ребуемый уровень: " + it.itemLevel; if (compare != null) Compare(inv, it, compare); var stats = it.stats; inv.magicSettings.text = ""; for (int i = 0; i < stats.stats.Length; i++) { if (stats.stats[i] > 0 && !stats.noRand[i]) inv.magicSettings.text += "#[5454CC]" + string.Format(stats.texts[i], (int)stats.stats[i]) + "[-]\r\n"; } } }