public EquipmentUiItem(EquipmentButton control, Equipment equipment, int uiIndex, Rectangle uiRect)
 {
     Control   = control ?? throw new ArgumentNullException(nameof(control));
     Equipment = equipment ?? throw new ArgumentNullException(nameof(equipment));
     UiIndex   = uiIndex;
     UiRect    = uiRect;
 }
Example #2
0
 public void AddEquipment(EquipmentLayout equip)
 {
     if (!_equipments.Contains(equip))
     {
         _equipments.Add(equip);
         EquipmentButton newButton = Instantiate(_templateButton, Vector3.zero, Quaternion.identity, transform);
         newButton.Equipment = equip;
     }
 }
Example #3
0
 public void OpenInventory(EquipmentButton button = null)
 {
     clickedEquipment = null;
     HideSelectedItemCursor();
     ShowSubMenu(inventorySubMenu);
     UpdateStats();
     SetInventory(button);
     UpdateMiniStatPanel();
 }
Example #4
0
    private void LoadEquipment(SaveData data)
    {
        foreach (EquipmentData equipmentData in data.MyEquipmentData)
        {
            EquipmentButton eb = Array.Find(equipment, x => x.name == equipmentData.MyType);

            eb.EquipArmor(Array.Find(items, x => x.MyTitle == equipmentData.MyTitle) as Armor);
        }
    }
    private void generateButton(Item item)
    {
        GameObject newButton = (GameObject)GameObject.Instantiate(prefab);

        newButton.transform.SetParent(contentPanel);

        EquipmentButton button = newButton.GetComponent <EquipmentButton>();

        button.Setup(item, this);
    }
Example #6
0
    public void ClickEquipment(EquipmentButton button)
    {
        PlayClickSound();
        itemSubMenu.slot            = button.slot;
        itemSubMenu.fromEquipScreen = true;
        clickedEquipment            = button.equippedItem;
        Debug.Log("Item ID: " + button.id);

        ShowSubWindow(windows[1]);
        OpenInventory(button);
    }
Example #7
0
    void OnClickEquipment(BaseEventData data)
    {
        EquipmentSlot[] slots    = { EquipmentSlot.Ring, EquipmentSlot.Amulet, EquipmentSlot.Offhand, EquipmentSlot.Weapon, EquipmentSlot.Body, EquipmentSlot.Head };
        EquipmentButton equipBut = data.selectedObject.GetComponent <EquipmentButton>();

        if (equipBut != null && equipBut.item != null)
        {
            Debug.Log(equipBut.item.Name);
            euser.DisequipItem(equipBut.item);
        }
    }
        private void InitEquipment(IPerson person)
        {
            var equipmentModule = person.GetModuleSafe <IEquipmentModule>();

            if (equipmentModule is null)
            {
                throw new InvalidOperationException(
                          "Active person must be able to use equipment to shown in this dialog.");
            }

            var currentEquipmentItemList = new List <EquipmentUiItem>();

            foreach (var equipment in equipmentModule)
            {
                if (equipment is null)
                {
                    continue;
                }

                var lastIndex  = currentEquipmentItemList.Count;
                var relativeX  = lastIndex * (EQUIPMENT_ITEM_SIZE + EQUIPMENT_ITEM_SPACING);
                var buttonRect = new Rectangle(
                    relativeX + ContentRect.Left,
                    ContentRect.Top,
                    EQUIPMENT_ITEM_SIZE,
                    EQUIPMENT_ITEM_SIZE);

                var sid = equipment.Scheme.Sid;
                if (string.IsNullOrEmpty(sid))
                {
                    Debug.Fail("All equipment must have symbolic identifier (SID).");
                    sid = "EmptyPropIcon";
                }

                var equipmentButton = new EquipmentButton(
                    _uiContentStorage.GetButtonTexture(),
                    _uiContentStorage.GetPropIconLayers(sid),
                    buttonRect,
                    new Rectangle(0, 0, EQUIPMENT_ITEM_SIZE, EQUIPMENT_ITEM_SIZE));

                var uiItem = new EquipmentUiItem(equipmentButton, equipment, lastIndex, buttonRect);

                currentEquipmentItemList.Add(uiItem);
            }

            _currentEquipmentItems = currentEquipmentItemList.ToArray();
        }
Example #9
0
 // Start is called before the first frame update
 void Start()
 {
     draggedItem = null;
     holdItem    = false;
     // isOnEquipButton = true;
     placedOnGround    = false;
     itemOriginalScale = transform.localScale;
     goManager         = GameObject.Find("GameObjectManager");
     go             = goManager.GetComponent <GOManagement>();
     raycaster      = go.clickManagement.raycaster;
     equipmentState = go.equipmentState.GetComponent <EquipmentState>();
     // ob = go.ob.GetComponent<ObManagement>();
     textbox            = go.textbox;
     equipButton        = go.equipButton;
     equipButtonManager = equipButton.GetComponent <EquipmentButton>();
     itemName           = go.itemName;
     clickInScene       = goManager.GetComponent <ClickInScene>();
 }
Example #10
0
    private void AddEquipmentButtons(Equipment.TypeOfEquipment _type)
    {
        // Adds all avaliable equipment of type to equip into the scroll container.

        foreach (Item item in player.Inventory.Items)
        {
            if (item.SelectedTypeOfItem == Item.ItemType.Equipment)
            {
                Equipment equipment = item as Equipment;                               // If the item is equipment, it needs to be casted to the equipment class for further use

                if (!equipment.Equipped && equipment.SelectedTypeOfEquipment == _type) // Items already equipped won't show up in the scroll container
                {
                    EquipmentButton equipmentButton = equipmentButtonScene.Instance() as EquipmentButton;
                    equipmentButton.InitializeButton(equipment, this, player);
                    equipmentContainer.AddChild(equipmentButton);
                }
            }
        }
    }
Example #11
0
    void OnMouseOverEquipment(PointerEventData data)
    {
        //Debug.Log(data.pointerCurrentRaycast.gameObject.transform.parent.GetComponent<EquipmentButton>().item.FlavorText);
        EquipmentButton equipBut = data.pointerCurrentRaycast.gameObject.transform.parent.GetComponent <EquipmentButton>();

        if (equipBut != null && equipBut.item != null)
        {
            descriptionText.text = equipBut.item.FlavorText;
            longNameText.text    = data.pointerCurrentRaycast.gameObject.transform.parent.GetComponent <EquipmentButton>().item.LongName;
            //image.sprite = data.pointerCurrentRaycast.gameObject.transform.parent.GetComponent<EquipmentButton>().item.Sprite;
            var sprite = user.LoadedAssetBundle.LoadAsset <Sprite>(data.pointerCurrentRaycast.gameObject.transform.parent.GetComponent <EquipmentButton>().item.SpriteName);
            image.sprite = sprite;
            image.color  = new Color(1, 1, 1, 1);
            statsShown   = true;
            Item item     = data.pointerCurrentRaycast.gameObject.transform.parent.GetComponent <EquipmentButton>().item;
            Text tooltext = statsBlock.GetComponentInChildren <Text>();
            tooltext.text = "";
            foreach (Stat stat in item.Stats)
            {
                string value = Stat.GetStatString(stat);
                tooltext.text += stat.Name + ": " + value + "\n";
            }
        }
    }
Example #12
0
 private void Awake()
 {
     _equipments     = new List <EquipmentLayout>();
     _templateButton = Resources.Load <EquipmentButton>("Prefabs/EquipmentButton");
 }
Example #13
0
    public void SetInventory(EquipmentButton button = null)
    {
        var inventory = InventoryManager.instance.inventory;

        if (button != null)
        {
            var item       = button.equippedItem;
            var handFilter = new List <EquipmentTypes>();
            if (button.slot == EquipmentSlots.MainHand)
            {
                handFilter.Add(EquipmentTypes.HeavyWeapon);
                handFilter.Add(EquipmentTypes.LightWeapon);
                handFilter.Add(EquipmentTypes.MagicWeapon);
            }
            else if (button.slot == EquipmentSlots.OffHand)
            {
                handFilter.Add(EquipmentTypes.LightWeapon);
                handFilter.Add(EquipmentTypes.Shield);
            }
            inventory = inventory.Where(i => i.itemType == button.itemType).ToList();
            if (handFilter.Count > 0)
            {
                var equipment = inventory.Cast <Hands>();
                inventory = equipment.Where(e => handFilter.Contains(e.equipmentType)).Cast <Item>().ToList();
            }
            if (button.equippedItem != null && button.equippedItem.name != "Unarmed")
            {
                removeItem.gameObject.SetActive(true);
            }
            else
            {
                removeItem.gameObject.SetActive(false);
            }
        }
        else
        {
            removeItem.gameObject.SetActive(false);
        }

        for (var i = 0; i < itemButtons.Length; i++)
        {
            if (i >= inventory.Count)
            {
                itemButtons[i].gameObject.SetActive(false);
            }
            else
            {
                itemButtons[i].gameObject.SetActive(true);
                itemButtons[i].buttonId                     = i;
                itemButtons[i].item                         = inventory[i];
                itemButtons[i].nameText.text                = inventory[i].name;
                itemButtons[i].buttonImage.sprite           = inventory[i].sprite;
                itemButtons[i].buttonLongPress.description  = inventory[i].name + "\n";
                itemButtons[i].buttonLongPress.description += inventory[i].description + "\n";
                itemButtons[i].buttonLongPress.description += inventory[i].GetStatsString();
                if (inventory[i].itemType == ItemTypes.Consumable)
                {
                    itemButtons[i].quantityText.text = "x" + inventory[i].quantity;
                }
                else
                {
                    itemButtons[i].quantityText.gameObject.SetActive(false);
                }
            }
        }
    }
        private void InitEquipment(IPerson person, Rectangle rect)
        {
            var equipmentModule = person.GetModuleSafe <IEquipmentModule>();

            if (equipmentModule is null)
            {
                throw new InvalidOperationException(
                          "Active person must be able to use equipment to shown in this dialog.");
            }

            var currentEquipmentItemList = new List <EquipmentUiItem>();
            var equipmentSlotList        = equipmentModule.Slots.ToArray();

            for (var itemIndex = 0; itemIndex < equipmentSlotList.Length; itemIndex++)
            {
                var slot = equipmentSlotList[itemIndex];

                var       sid       = string.Empty;
                Equipment equipment = null;
                if (equipmentModule[itemIndex] is not null)
                {
                    equipment = equipmentModule[itemIndex];
                    sid       = equipment.Scheme.Sid;
                    if (string.IsNullOrEmpty(sid))
                    {
                        Debug.Fail("All equipment must have symbolic identifier (SID).");
                        sid = "EmptyPropIcon";
                    }
                }
                else
                {
                    switch (slot.Types)
                    {
                    case EquipmentSlotTypes.Head:
                        sid = "HeadSlot";
                        break;

                    case EquipmentSlotTypes.Body:
                        sid = "BodySlot";
                        break;

                    case EquipmentSlotTypes.Hand:
                        if (slot.IsMain)
                        {
                            sid = "RightHandSlot";
                        }
                        else
                        {
                            sid = "LeftHandSlot";
                        }

                        break;

                    case EquipmentSlotTypes.Aux:
                        sid = "AuxSlot";
                        break;
                    }
                }

                var relativeY  = itemIndex * (EQUIPMENT_ITEM_SIZE + EQUIPMENT_ITEM_SPACING);
                var buttonRect = new Rectangle(
                    rect.Left,
                    rect.Top + relativeY,
                    EQUIPMENT_ITEM_SIZE,
                    EQUIPMENT_ITEM_SIZE);

                var equipmentButton = new EquipmentButton(
                    _uiContentStorage.GetButtonTexture(),
                    _uiContentStorage.GetPropIconLayers(sid),
                    buttonRect,
                    new Rectangle(0, 0, EQUIPMENT_ITEM_SIZE, EQUIPMENT_ITEM_SIZE));

                var uiItem = new EquipmentUiItem(equipmentButton, equipment, itemIndex, buttonRect);

                currentEquipmentItemList.Add(uiItem);
            }

            _currentEquipmentItems = currentEquipmentItemList.ToArray();
        }
Example #15
0
    private void Start()
    {
        for (int i = 0; i < transform.childCount; i++)
        {
            if (transform.GetChild(i).name.Equals("Stored"))
            {
                stored        = gameObject.transform.GetChild(i).gameObject;
                storedButtons = stored.GetComponentsInChildren <Button>();
            }
            else if (transform.GetChild(i).name.Equals("Equipment"))
            {
                equipment        = gameObject.transform.GetChild(i).gameObject;
                equipmentButtons = equipment.GetComponentsInChildren <Button>();
            }
            else if (transform.GetChild(i).name.Equals("StatsBlock"))
            {
                statsBlock = gameObject.transform.GetChild(i).gameObject;
                for (int j = 0; j < statsBlock.transform.childCount; j++)
                {
                    if (statsBlock.transform.GetChild(j).name.Equals("DescText"))
                    {
                        descriptionText = statsBlock.transform.GetChild(j).gameObject.GetComponent <Text>();
                    }
                    else if (statsBlock.transform.GetChild(j).name.Equals("SpriteImage"))
                    {
                        image = statsBlock.transform.GetChild(j).gameObject.GetComponent <Image>();
                    }
                    else if (statsBlock.transform.GetChild(j).name.Equals("LongName"))
                    {
                        longNameText = statsBlock.transform.GetChild(j).gameObject.GetComponent <Text>();
                    }
                }
            }
        }
        for (int i = 0; i < 6; i++)
        {
            EventTrigger       ev    = equipmentButtons[i].GetComponent <EventTrigger>();
            EventTrigger.Entry entry = new EventTrigger.Entry();
            entry.eventID = EventTriggerType.PointerClick;
            entry.callback.AddListener((eventData) => { OnClickEquipment(eventData); });
            ev.triggers.Add(entry);

            EventTrigger.Entry entry2 = new EventTrigger.Entry();
            entry2.eventID = EventTriggerType.PointerEnter;
            entry2.callback.AddListener((eventData) => { OnMouseOverEquipment((PointerEventData)eventData); });
            ev.triggers.Add(entry2);

            EventTrigger.Entry entry3 = new EventTrigger.Entry();
            entry3.eventID = EventTriggerType.PointerExit;
            entry3.callback.AddListener((eventData) => { OnMouseExitEquipment((PointerEventData)eventData); });
            ev.triggers.Add(entry3);

            EquipmentButton equipmentButtonScript = equipmentButtons[i].GetComponent <EquipmentButton>();
            equipmentButtonScript.position = i;
        }
        for (int i = 0; i < storedButtons.Length; i++)
        {
            EventTrigger       ev    = storedButtons[i].GetComponent <EventTrigger>();
            EventTrigger.Entry entry = new EventTrigger.Entry();
            entry.eventID = EventTriggerType.PointerClick;
            entry.callback.AddListener((eventData) => { OnClickInventory((PointerEventData)eventData); });
            ev.triggers.Add(entry);

            EventTrigger.Entry entry2 = new EventTrigger.Entry();
            entry2.eventID = EventTriggerType.PointerEnter;
            entry2.callback.AddListener((eventData) => { OnMouseOverInventory((PointerEventData)eventData); });
            ev.triggers.Add(entry2);

            InventoryButton inventoryButtonScript = storedButtons[i].GetComponent <InventoryButton>();
            inventoryButtonScript.position = i;

            EventTrigger.Entry entry3 = new EventTrigger.Entry();
            entry3.eventID = EventTriggerType.PointerExit;
            entry3.callback.AddListener((eventData) => { OnMouseExitInventory((PointerEventData)eventData); });
            ev.triggers.Add(entry3);
        }


        //   image = gameObject.transform.GetChild(4).gameObject.GetComponent<Image>();
    }
Example #16
0
    private void Update()
    {
        Debug.Log(storedButtons.Length);
        for (int i = 0; i < storedButtons.Length; i++)
        {
            InventoryButton inventoryButtonScript = storedButtons[i].GetComponent <InventoryButton>();
            Image           buttonImage           = storedButtons[i].transform.GetChild(1).GetComponent <Image>();
            Debug.Log(user.Items.Count);
            if (user.Items.Count > i)
            {
                Item   go   = user.Items[i];
                string name = go.Name;
                //Debug.Log(user.Items[i].Name);
                // Debug.Log(go.Name);
                if (name.Length > strLength)
                {
                    name = name.Substring(0, strLength) + "...";
                }
                inventoryButtonScript.item = go;
                //Debug.Log("[InventoryUI.Update] user = "******"[InventoryUI.Update] user.LoadedAssetBundle = " + user.LoadedAssetBundle);
                //Debug.Log("[InventoryUI.Update] inventoryButtonScript = " + inventoryButtonScript);
                //Debug.Log("[InventoryUI.Update] inventoryButtonScript.item = " + inventoryButtonScript.item);
                var sprite = user.LoadedAssetBundle.LoadAsset <Sprite>(inventoryButtonScript.item.SpriteName);
                buttonImage.sprite = sprite;
                buttonImage.color  = new Color(1, 1, 1, 1);
            }
            else
            {
                Text textfield = storedButtons[i].GetComponentInChildren <Text>();
                textfield.text             = "";
                textfield.color            = Color.black;
                inventoryButtonScript.item = Item.Null;
                buttonImage.sprite         = null;
                buttonImage.color          = new Color(0.13333333333333333333333333333f, 0.12549019607f, 0.12549019607f, 1.0f);
            }
        }
        for (int i = 0; i < 6; i++)
        {
            EquipmentSlot[] slots = { EquipmentSlot.Ring, EquipmentSlot.Amulet, EquipmentSlot.Offhand, EquipmentSlot.Weapon, EquipmentSlot.Body, EquipmentSlot.Head };
            Item            go    = euser.Equipment[slots[i]];
            EquipmentButton equipmentButtonScript = equipmentButtons[i].GetComponent <EquipmentButton>();
            Image           equipmentButtonImage  = equipmentButtons[i].transform.GetChild(0).GetComponent <Image>();

            if (go.EquipmentSlot != EquipmentSlot.Null)
            {
                equipmentButtonScript.item = go;
                string name = go.Name;
                if (name.Length > strLength)
                {
                    name = name.Substring(0, strLength) + "...";
                }
                var sprite = user.LoadedAssetBundle.LoadAsset <Sprite>(equipmentButtonScript.item.SpriteName);
                equipmentButtonImage.sprite = sprite;
                equipmentButtonImage.color  = new Color(1, 1, 1, 1);
            }
            else
            {
                equipmentButtonImage.sprite = null;
                equipmentButtonImage.color  = baseColor;
            }
        }
        if (statsShown)
        {
            statsBlock.transform.localPosition = Vector3.MoveTowards(statsBlock.transform.localPosition, visibleLoc, 900 * Time.deltaTime);
        }
        else
        {
            statsBlock.transform.localPosition = Vector3.MoveTowards(statsBlock.transform.localPosition, hiddenLoc, 900 * Time.deltaTime);
        }
    }