Example #1
0
    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();
    }
Example #2
0
 public void OnMouseEnter(UIMouseEvents sender)
 {
     if (!forceHide)
     {
         tooltipInstance.SetActive(true);
     }
     isOver = true;
 }
Example #3
0
    private void Button_onClick(UIMouseEvents btn)
    {
        inventory.CurrentFilter = filters[btn.transform.GetSiblingIndex()];

        inventory.Populate(inventory.Target);

        soundHandler.onBtnClick();
    }
Example #4
0
    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);
    }
Example #5
0
    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);
    }
Example #6
0
    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);
        }
    }
Example #7
0
    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);
    }
Example #8
0
    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);
        }
    }
Example #9
0
    private void Button_onMouseEnter(UIMouseEvents btn)
    {
        btn.GetComponent <Selectable>().Select();

        soundHandler.onBtnHover();
    }
Example #10
0
    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();
            }
        }
    }
Example #11
0
 public void OnMouseExit(UIMouseEvents sender)
 {
     tooltipInstance.SetActive(false);
     tooltipInstance.transform.position = Vector3.zero;
     isOver = false;
 }
Example #12
0
 private void Button_onMouseEnter(UIMouseEvents btn)
 {
     soundHandler.onBtnHover();
 }