示例#1
0
 public void OnForgeFilterPointerEnter(ForgeFilter forgeFilter)
 {
     if (forgeFilter != selectedFilter)
     {
         forgeFilter.border.color = hoveredFilterColor;
     }
 }
示例#2
0
 public void OnForgeFilterPointerExit(ForgeFilter forgeFilter)
 {
     if (forgeFilter != selectedFilter)
     {
         forgeFilter.border.color = defaultFilterColor;
     }
 }
示例#3
0
    public void OnForgeFilterPointerClick(ForgeFilter forgeFilter, bool checkMouse = true)
    {
        if (checkMouse && !Input.GetMouseButtonUp(0))
        {
            return;
        }

        selectedFilter = forgeFilter;
        foreach (ForgeFilter filter in filters)
        {
            if (filter != selectedFilter)
            {
                filter.border.color  = defaultFilterColor;
                filter.border.sprite = defaultFilterBorder;
            }
            else
            {
                filter.border.color  = selectedFilterColor;
                filter.border.sprite = selectedFilterBorder;
            }
        }

        LoadFilter(selectedFilter);
    }
示例#4
0
    private void LoadFilter(ForgeFilter filter)
    {
        FreeForgeItems();
        avatar.weapon.Equip(PlayerController.MainInstance.weapon.equipedItem.type);
        avatar.second.Equip(PlayerController.MainInstance.secondHand.equipedItem.type);
        avatar.head.Equip(PlayerController.MainInstance.head.equipedItem.type);
        avatar.body.Equip(PlayerController.MainInstance.body.equipedItem.type, false);
        avatar.shield.Equip(PlayerController.MainInstance.shield.equipedItem.type);
        avatar.backpack.Equip(PlayerController.MainInstance.backpack.equipedItem.type);
        avatar.AnimationParameterRefresh();

        int     itemCount = 0;
        Vector3 position  = new Vector3(0, 0, 0);

        switch (filter.type)
        {
        case Item.ItemType.Weapon:
            foreach (KeyValuePair <WeaponItem.Type, WeaponItem> entry in Arsenal.Instance.weaponDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, true, entry.Value.dammage, false, 0);

                position -= spacing * Vector3.up;
            }
            itemCount = Arsenal.Instance.weaponDictionary.Count;
            break;

        case Item.ItemType.Head:
            foreach (KeyValuePair <HeadItem.Type, HeadItem> entry in Arsenal.Instance.headDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, false, 0, true, entry.Value.armor);

                position -= spacing * Vector3.up;
            }
            itemCount = Arsenal.Instance.headDictionary.Count;
            break;

        case Item.ItemType.Body:
            foreach (KeyValuePair <BodyItem.Type, BodyItem> entry in Arsenal.Instance.bodyDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, false, 0, true, entry.Value.armor);

                position -= spacing * Vector3.up;
            }
            itemCount = Arsenal.Instance.bodyDictionary.Count;
            break;

        case Item.ItemType.Second:
            foreach (KeyValuePair <SecondItem.Type, SecondItem> entry in Arsenal.Instance.secondDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, true, entry.Value.dammage, false, 0);

                position -= spacing * Vector3.up;
            }
            itemCount = Arsenal.Instance.secondDictionary.Count;
            break;

        case Item.ItemType.Shield:
            foreach (KeyValuePair <ShieldItem.Type, ShieldItem> entry in Arsenal.Instance.shieldDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, false, 0, true, entry.Value.armor);

                position -= spacing * Vector3.up;
            }
            itemCount = Arsenal.Instance.shieldDictionary.Count;
            break;

        case Item.ItemType.Backpack:
            foreach (KeyValuePair <BackpackItem.Type, BackpackItem> entry in Arsenal.Instance.backpackDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, false, 0, false, 0);

                position -= spacing * Vector3.up;
            }
            itemCount = Arsenal.Instance.backpackDictionary.Count;
            break;


        case Item.ItemType.None:
            foreach (KeyValuePair <WeaponItem.Type, WeaponItem> entry in Arsenal.Instance.weaponDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, true, entry.Value.dammage, false, 0);

                position -= spacing * Vector3.up;
            }
            foreach (KeyValuePair <HeadItem.Type, HeadItem> entry in Arsenal.Instance.headDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, false, 0, true, entry.Value.armor);

                position -= spacing * Vector3.up;
            }
            foreach (KeyValuePair <BodyItem.Type, BodyItem> entry in Arsenal.Instance.bodyDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, false, 0, true, entry.Value.armor);

                position -= spacing * Vector3.up;
            }
            foreach (KeyValuePair <SecondItem.Type, SecondItem> entry in Arsenal.Instance.secondDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, true, entry.Value.dammage, false, 0);

                position -= spacing * Vector3.up;
            }
            foreach (KeyValuePair <ShieldItem.Type, ShieldItem> entry in Arsenal.Instance.shieldDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, false, 0, true, entry.Value.armor);

                position -= spacing * Vector3.up;
            }
            foreach (KeyValuePair <BackpackItem.Type, BackpackItem> entry in Arsenal.Instance.backpackDictionary)
            {
                ForgeItem item = GetItem();
                item.transform.localPosition = position;
                AssignBasics(item, entry.Value, entry.Value.Summarize());
                AssignCost(item, entry.Value.crafting);
                AssignStats(item, entry.Value.load, false, 0, false, 0);

                position -= spacing * Vector3.up;
            }
            itemCount = Arsenal.Instance.craftableItemCount;
            break;

        default:
            break;
        }

        itemListContainer.sizeDelta = new Vector2(itemListContainer.sizeDelta.x, spacing * itemCount);
    }