public void Populate(IContainer container) { int selectPos = 0; if (lastSelected != null) { selectPos = lastSelected.transform.GetSiblingIndex(); } if (instantiatedList.Count != 0) { ClearList(); } target = container; items = container.Items; foreach (IItem item in items) { if (currentFilter != ItemType.All && item.Type != currentFilter) { continue; } GameObject buttonGao = GameObject.Instantiate(buttonTemplatePrefab, Vector3.zero, Quaternion.identity) as GameObject; buttonGao.transform.SetParent(content, false); Text text = buttonGao.GetComponentInChildren <Text>(); text.color = item.Quality.ToColor(); text.text = item.Name; instantiatedList.Add(buttonGao); buttonGao.GetComponent <UIInventoryButton>().Item = item; UIMouseEvents events = buttonGao.GetComponent <UIMouseEvents>(); events.onMouseEnter.AddListener(Button_onMouseEnter); events.onMouseLeftUp.AddListener(Button_onLeftClick); events.onMouseRightUp.AddListener(Button_onRightClick); } selectPos = Mathf.Clamp(selectPos - 1, 0, instantiatedList.Count - 1); if (instantiatedList.Count > 0) { instantiatedList[selectPos].GetComponent <Selectable>().Select(); } else { if (OnItemFocusChange != null) { OnItemFocusChange(this, new ItemFocusChangeArgs(null)); } } UpdateWeight(); }
public void OnMouseEnter(UIMouseEvents sender) { if (!forceHide) { tooltipInstance.SetActive(true); } isOver = true; }
private void Button_onClick(UIMouseEvents btn) { inventory.CurrentFilter = filters[btn.transform.GetSiblingIndex()]; inventory.Populate(inventory.Target); soundHandler.onBtnClick(); }
private void Button_onRightClick(UIMouseEvents btn) { IItem item = btn.GetComponent <UIInventoryButton>().Item; if (item is ItemWeapon && CanEquip(item as ItemWeapon, WeaponRestriction.OffHand)) { (item as ItemWeapon).Use((item as Behaviour).GetComponentInParent <InteractManager>(), new EquipWeaponArgs(EquipWeaponArgs.Hand.OffHand)); } Populate(target); }
private void Button_onLeftClick(UIMouseEvents btn) { IItem item = btn.GetComponent <UIInventoryButton>().Item; if (item is ItemWeapon && CanEquip(item as ItemWeapon, WeaponRestriction.MainHand)) { (item as ItemWeapon).Use((item as Behaviour).GetComponentInParent <InteractManager>(), new EquipWeaponArgs(EquipWeaponArgs.Hand.MainHand)); } else if (item is IUsable) { (item as IUsable).Use((item as Behaviour).GetComponentInParent <InteractManager>()); } Populate(target); AudioManager.PlaySfx(equipClip, Camera.main.transform); }
private void Awake() { if (tooltipPrefab != null && tooltipInstance == null) { tooltipInstance = GameObject.Instantiate(tooltipPrefab) as GameObject; tooltipInstance.transform.SetParent(transform.root, false); tooltipInstance.transform.position = Vector3.zero; text = tooltipInstance.GetComponentInChildren <Text>(); trn = tooltipInstance.GetComponent <RectTransform>(); tooltipInstance.SetActive(false); } if (autoAddListeners) { UIMouseEvents me = GetComponent <UIMouseEvents>(); me.onMouseEnter.AddListener(OnMouseEnter); me.onMouseExit.AddListener(OnMouseExit); } }
public void RemoveArmorCallback(UIMouseEvents sender) { int senderIndex = System.Array.FindIndex(armorSlots, x => x.gameObject == sender.gameObject); if (senderIndex != -1 && armorTarget != null && armorTarget.Armor[senderIndex] != null) { armorTarget.Armor[senderIndex].TransferToContainer(armorTarget.GetComponentInChildren <IContainer>()); armorTarget.Armor[senderIndex] = null; armorTarget.RecomputeGearStats(); AudioManager.PlaySfx(unequipClip, Camera.main.transform); } else if (senderIndex == -1 && weapTarget != null) { bool playSound = true; if (sender == mainHandSlot.GetComponent <UIMouseEvents>()) { weapTarget.MainHandWeapon = null; } else if (sender == offHandSlot.GetComponent <UIMouseEvents>()) { weapTarget.OffHandWeapon = null; } else if (sender == ammoSlot.GetComponent <UIMouseEvents>()) { weapTarget.CurrentAmmos = null; } else { playSound = false; } if (playSound) { AudioManager.PlaySfx(unequipClip, Camera.main.transform); } } ActualizeSlots(); RebuildTooltipDescription(sender); }
private void Start() { soundHandler = GetComponentInParent <UIButtonsSoundHandler>(); foreach (ItemType type in filters) { GameObject buttonGao = Instantiate <GameObject>(buttonPrefab); Text text = buttonGao.GetComponentInChildren <Text>(); text.text = type.ToString().ToUpper(); text.alignment = TextAnchor.MiddleCenter; text.fontStyle = FontStyle.Bold; buttonGao.transform.SetParent(content.transform, false); UIMouseEvents events = buttonGao.GetComponent <UIMouseEvents>(); events.onMouseLeftUp.AddListener(Button_onClick); buttons.Add(buttonGao); } }
private void Button_onMouseEnter(UIMouseEvents btn) { btn.GetComponent <Selectable>().Select(); soundHandler.onBtnHover(); }
public void RebuildTooltipDescription(UIMouseEvents sender) { UITooltip.Text = ""; UITooltip.DisableForceHide(); int senderIndex = System.Array.FindIndex(armorSlots, x => x.gameObject == sender.gameObject); if (senderIndex != -1 && armorTarget != null) { if (armorTarget.Armor[senderIndex] != null && armorTarget.Armor[senderIndex].ItemPrefab != null) { IItem item = armorTarget.Armor[senderIndex].ItemPrefab.GetComponent <IItem>(); if (item != null) { Armor a = armorTarget.Armor[senderIndex]; UITooltip.Text += "<size=12>"; UITooltip.Text += "<color=#" + item.Quality.ToColor().ToHexStringRGBA() + ">" + item.Name; UITooltip.Text += "</color>"; UITooltip.Text += "</size>\n"; UITooltip.Text += "<color=yellow><size=7><i>"; UITooltip.Text += item.Description; UITooltip.Text += "</i></size></color>\n\n"; UITooltip.Text += a.Type.ToString() + " armor\n"; UITooltip.Text += "Armor value : " + a.ArmorValue + "\n"; if (a.Stats != 0) { UITooltip.Text += "<color=green>"; if (a.Stats.Strength != 0) { UITooltip.Text += "Strength +" + a.Stats.Strength + "\n"; } if (a.Stats.Stamina != 0) { UITooltip.Text += "Stamina +" + a.Stats.Stamina + "\n"; } if (a.Stats.Defense != 0) { UITooltip.Text += "Defense +" + a.Stats.Defense + "\n"; } if (a.Stats.Energy != 0) { UITooltip.Text += "Energy +" + a.Stats.Energy + "\n"; } UITooltip.Text += "</color>"; } UITooltip.Text += "\n<color=green><i>Right click to Unequip</i></color>"; } } else { UITooltip.ForceHide(); } } else if (senderIndex == -1 && weapTarget != null) { IWeapon weapon = null; IRangedWeaponAmmo ammo = null; if (sender == mainHandSlot.GetComponent <UIMouseEvents>()) { weapon = weapTarget.MainHandWeapon; } else if (sender == offHandSlot.GetComponent <UIMouseEvents>()) { weapon = weapTarget.OffHandWeapon; } else if (sender == ammoSlot.GetComponent <UIMouseEvents>()) { ammo = weapTarget.CurrentAmmos; } if (weapon != null) { IItem item = weapon.InventoryItemPrefab != null?weapon.InventoryItemPrefab.GetComponent <IItem>() : null; if (item != null) { UITooltip.Text += "<size=12>"; UITooltip.Text += "<color=#" + item.Quality.ToColor().ToHexStringRGBA() + ">" + item.Name; UITooltip.Text += "</color>"; UITooltip.Text += "</size>\n"; UITooltip.Text += "<color=yellow><size=7><i>"; UITooltip.Text += item.Description; UITooltip.Text += "</i></size></color>\n\n"; if (weapon.WeaponRestrictions != WeaponRestriction.Both) { UITooltip.Text += "Only usable on " + (weapon.WeaponRestrictions == WeaponRestriction.MainHand ? "main hand." : "offhand.") + "\n"; } UITooltip.Text += (weapon.WeaponHand == WeaponHand.OneHanded ? "One Handed " : "Two Handed ") + weapon.WeaponType.ToString() + "\n"; if (weapon is IPhysicalWeapon) { IPhysicalWeapon physWeap = weapon as IPhysicalWeapon; UITooltip.Text += "Damages : " + physWeap.MinDamages + " - " + physWeap.MaxDamages + "\n"; UITooltip.Text += "Attack speed : " + physWeap.AttackSpeed + "\n"; } else if (weapon is IMagicalWeapon) { UITooltip.Text += weapon.GetInventoryDescription() + "\n"; } else if (weapon is IRangedWeapon) { IRangedWeapon rweap = weapon as IRangedWeapon; UITooltip.Text += "Base damages : " + rweap.BaseDamages + " X" + rweap.ProjectilePerShot + "\n"; UITooltip.Text += "Consumed ammo per shot : " + rweap.ConsumedAmmoPerShot + "\n"; UITooltip.Text += "Projectile deviation : " + rweap.ProjectileDeviation + "\n"; } if (weapon.GearStats != 0) { UITooltip.Text += "<color=green>"; if (weapon.GearStats.Strength != 0) { UITooltip.Text += "Strength +" + weapon.GearStats.Strength + "\n"; } if (weapon.GearStats.Stamina != 0) { UITooltip.Text += "Stamina +" + weapon.GearStats.Stamina + "\n"; } if (weapon.GearStats.Defense != 0) { UITooltip.Text += "Defense +" + weapon.GearStats.Defense + "\n"; } if (weapon.GearStats.Energy != 0) { UITooltip.Text += "Energy +" + weapon.GearStats.Energy + "\n"; } UITooltip.Text += "</color>"; } UITooltip.Text += "<color=green><i>Right click to Unequip</i></color>"; } } else if (ammo != null) { ItemAmmo item = ammo.ItemPrefab as ItemAmmo; UITooltip.Text += "<size=12>"; UITooltip.Text += "<color=#" + item.Quality.ToColor().ToHexStringRGBA() + ">" + item.Name; UITooltip.Text += "</color>"; UITooltip.Text += "</size>\n"; UITooltip.Text += "<color=yellow><size=7><i>"; UITooltip.Text += item.RealDescription; UITooltip.Text += "</i></size></color>\n\n"; UITooltip.Text += "Added damages : " + ammo.AddedDamages + "\n"; UITooltip.Text += "Ammo left : " + ammo.AmmoLeft + "\n"; UITooltip.Text += "\n<color=green><i>Right click to Unequip</i></color>"; } else { UITooltip.ForceHide(); } } }
public void OnMouseExit(UIMouseEvents sender) { tooltipInstance.SetActive(false); tooltipInstance.transform.position = Vector3.zero; isOver = false; }
private void Button_onMouseEnter(UIMouseEvents btn) { soundHandler.onBtnHover(); }