Beispiel #1
0
    public void Add <T>(T it, int amount, Action <T> onClick) where T : Item
    {
        GameObject           go  = GameObject.Instantiate(ItemDisplayPrefab, Content.transform);
        InventoryItemDisplay iid = go.GetComponent <InventoryItemDisplay>();

        iid.SetData(it, amount, (it2) => onClick?.Invoke((T)it2.Item));
        items.Add(iid.gameObject);
    }
Beispiel #2
0
    public void ShowItems(IEnumerable <Item> itemsToAdd, Action <Item> onClick)
    {
        Open();

        foreach (var item in itemsToAdd)
        {
            GameObject           go  = GameObject.Instantiate(ItemDisplayPrefab, Content.transform);
            InventoryItemDisplay iid = go.GetComponent <InventoryItemDisplay>();
            iid.SetData(item, 0, (it2) => onClick?.Invoke(it2.Item));
            items.Add(iid.gameObject);
        }
    }
Beispiel #3
0
    public void ItemClicked(InventoryItemDisplay it)
    {
        ItemDisplay.SetData(it.Item, 1, null);
        string text = "";

        text += $"Name: {it.Item.GetName()}\n";
        text += $"Type: {it.Item.GetType().Name}\n";
        text += $"Value: {it.Item.GetValue()}\n";
        text += $"'{it.Item.Description}'";
        ItemText.SetText(text);

        EquipItemProcessor.Instance.ProcessItem(it.Item, Refresh);
    }
Beispiel #4
0
    public void ShowItems(string title, IEnumerable <InventoryEntry> itemsToAdd, Action <Item> onClick, bool showAmount, bool showNull = false)
    {
        Open();

        Title.text = title;

        foreach (var entry in itemsToAdd)
        {
            GameObject           go  = GameObject.Instantiate(ItemDisplayPrefab, Content.transform);
            InventoryItemDisplay iid = go.GetComponent <InventoryItemDisplay>();
            iid.SetData(entry.Item, showAmount ? entry.Amount : 0, (it2) => onClick?.Invoke(it2.Item));
            items.Add(iid.gameObject);
        }

        if (showNull)
        {
            GameObject           go  = GameObject.Instantiate(ItemDisplayPrefab, Content.transform);
            InventoryItemDisplay iid = go.GetComponent <InventoryItemDisplay>();
            iid.SetData(null, 0, (it2) => onClick?.Invoke(it2.Item));
            items.Add(iid.gameObject);
        }
    }
Beispiel #5
0
    // Update is called once per frame
    void Update()
    {
        var weapon = DataManager.Instance.Player.Weapon.Value;

        float currentDamage = weapon.RawDamage;

        MasteryText.text = $"Weapon Mastery {weapon.Mastery}";

        if (weapon.Mastery == 99)
        {
            MasteryFill.anchorMax = MasteryFill.anchorMax.SetX(1);
        }
        else
        {
            float masteryProgress = weapon.RawMastery - Mathf.Floor(weapon.RawMastery);
            float nextLevelDamage = weapon.GetDamage(mastery: weapon.Mastery + 1);
            MasteryFill.anchorMax = MasteryFill.anchorMax.SetX(masteryProgress);
        }

        Weapon.SetData(DataManager.Instance.Player.Weapon.Value, 0, ChangeWeapon, null, true);
        Armor.SetData(DataManager.Instance.Player.Armor.Value, 0, ChangeArmor, null, true);
        Headgear.SetData(DataManager.Instance.Player.Headgear.Value, 0, ChangeHeadgear, null, true);
    }
Beispiel #6
0
    public void SetWeapon(Weapon w, ButtonAction[] actions)
    {
        Open();

        WeaponDisplay.SetData(w, 1, null, null, false);
        MasteryString.text = "M" + w.Mastery;

        MasteryProgressBar.SetMax(1);
        MasteryProgressBar.SetCurrent(w.RawMastery - Mathf.Floor(w.RawMastery));

        if (w.IsEnchanted)
        {
            LevelNameDAMText.text = string.Format(
                levelNameDAMstringWithElement,
                w.Level,
                ColorUtility.ToHtmlStringRGB(w.Enchantment.Type.DamageColor),
                w.Enchantment.GetPrefix(),
                w.GetName(false, true),
                w.RawDamage,
                w.GetEnchantDamage()
                );
        }
        else
        {
            LevelNameDAMText.text = string.Format(
                levelNameDAMstringWithoutElement,
                w.Level,
                w.GetName(),
                w.RawDamage,
                w.GetEnchantDamage()
                );
        }

        DescriptionText.text = w.Description;
        SellAmountText.text  = "Sell: " + w.GetValue();

        if (actions.Length == 0)
        {
            actions = new [] { new ButtonAction {
                                   OnClick = Close, Title = "Close"
                               } };
        }

        Button1.gameObject.SetActive(false);
        Button2.gameObject.SetActive(false);
        Button3.gameObject.SetActive(false);
        Button1.onClick.RemoveAllListeners();
        Button2.onClick.RemoveAllListeners();
        Button3.onClick.RemoveAllListeners();

        if (actions.Length == 1)
        {
            Button2.gameObject.SetActive(true);
            Button2.GetComponentInChildren <TextMeshProUGUI>().text = actions[0].Title;
            Button2.onClick.AddListener(new UnityAction(actions[0].OnClick));
        }
        if (actions.Length == 2)
        {
            Button1.gameObject.SetActive(true);
            Button3.gameObject.SetActive(true);
            Button1.GetComponentInChildren <TextMeshProUGUI>().text = actions[0].Title;
            Button3.GetComponentInChildren <TextMeshProUGUI>().text = actions[1].Title;
            Button1.onClick.AddListener(new UnityAction(actions[0].OnClick));
            Button3.onClick.AddListener(new UnityAction(actions[1].OnClick));
        }
        if (actions.Length == 3)
        {
            Button1.gameObject.SetActive(true);
            Button2.gameObject.SetActive(true);
            Button3.gameObject.SetActive(true);
            Button1.GetComponentInChildren <TextMeshProUGUI>().text = actions[0].Title;
            Button2.GetComponentInChildren <TextMeshProUGUI>().text = actions[1].Title;
            Button3.GetComponentInChildren <TextMeshProUGUI>().text = actions[2].Title;
            Button1.onClick.AddListener(new UnityAction(actions[0].OnClick));
            Button2.onClick.AddListener(new UnityAction(actions[1].OnClick));
            Button3.onClick.AddListener(new UnityAction(actions[2].OnClick));
        }

        Button1.onClick.AddListener(Close);
        Button2.onClick.AddListener(Close);
        Button3.onClick.AddListener(Close);

        SetCompare(PlayerWeapon);
    }
Beispiel #7
0
 public void SetData(Item s, int amount, string text, Action onClick, Sprite overrideSprite = null, bool showText = true)
 {
     Item.SetData(s, amount, i => onClick(), overrideSprite, showText);
     Text.text    = text;
     this.onClick = onClick;
 }