private bool CanEquip(EquipWeaponUI ui)
    {
        if (!(selected.isEquipSlot ^ ui.isEquipSlot))
        {
            return(false);
        }

        if (selected.data != null && ui.data != null)
        {
            if (selected.data.name.Equals(ui.data.name))
            {
                return(false);
            }
        }

        EquipWeaponUI equippedUI = selected.isEquipSlot ? selected : ui;
        EquipWeaponUI other      = selected.isEquipSlot ? ui : selected;

        if (slots[1] == equippedUI && !other.equipped)
        {
            return(true);
        }
        else
        {
            return(!other.data.consumed && !other.equipped);
        }
    }
    private void InitWeaponInventory()
    {
        ResetEquipped();

        foreach (ItemData item in GameInformation.instance.GetInventory())
        {
            bool equippedByUnit = (unit.WeaponMain != null && unit.WeaponMain.name.Equals(item.name)) ||
                                  (unit.WeaponSecondary != null && unit.WeaponSecondary.name.Equals(item.name));

            if (item.equipped && !equippedByUnit)
            {
                continue;
            }

            if (item.type != WeaponType.NONE && item.type != unit.weaponType)
            {
                continue;
            }

            GameObject    temp = Instantiate(equipPrefab, inventoryPanel.transform);
            EquipWeaponUI ui   = temp.GetComponent <EquipWeaponUI>();

            ui.Set(item, equippedByUnit);

            if (equippedByUnit)
            {
                SetEquipped(item, ui,
                            unit.WeaponMain != null && unit.WeaponMain.name.Equals(item.name));
            }

            children.Add(temp);
        }
    }
 public void Deselect(EquipWeaponUI ui)
 {
     if (selected == ui)
     {
         selected = null;
     }
 }
    public void Set(ItemData data, bool equipped)
    {
        scrollViewUI = null;
        this.data    = data;

        if (data == null)
        {
            image.sprite = emptySprite;
            text.text    = "";
        }
        else
        {
            image.sprite = data.sprite;
            text.text    = data.name + "\n" + data.description;
        }

        if (equipped)
        {
            SetEquipped();
        }
        else
        {
            SetUnequipped();
        }
    }
    public void Unequip()
    {
        if (!isEquipSlot)
        {
            return;
        }

        data = null;
        equipUI.Unequip(this);
        ResetEquipped();

        scrollViewUI = null;
        equipped     = false;
    }
    public void Unequip(EquipWeaponUI ui)
    {
        if (ui.scrollViewUI != null)
        {
            ui.scrollViewUI.SetUnequipped();
        }

        UpdateUnitInfo();
        ui.Deselect();

        if (selected == ui)
        {
            selected = null;
        }
    }
    public bool Select(EquipWeaponUI ui)
    {
        if (selected == null)
        {
            selected = ui;
            return(true);
        }
        else if (CanEquip(ui))
        {
            Equip(ui);
            return(false);
        }

        return(false);
    }
    public void OnPointerClick(PointerEventData eventData)
    {
        ui = GetComponentInParent <EquipWeaponUI>();

        if (ui == null)
        {
            return;
        }

        if (eventData.button == PointerEventData.InputButton.Left)
        {
            ui.ToggleSelect();
        }
        else if (eventData.button == PointerEventData.InputButton.Right)
        {
            ui.Unequip();
        }
    }
    private void Equip(EquipWeaponUI ui)
    {
        EquipWeaponUI equippedUI = selected.isEquipSlot ? selected : ui;
        EquipWeaponUI other      = selected.isEquipSlot ? ui : selected;

        if (equippedUI.scrollViewUI != null)
        {
            equippedUI.scrollViewUI.SetUnequipped();
        }

        equippedUI.SetEquipped(other.data, other);
        other.SetEquipped();

        UpdateUnitInfo();

        equippedUI.Deselect();
        other.Deselect();
        selected = null;
    }
    public void SetEquipped(ItemData data, EquipWeaponUI scrollView)
    {
        this.data    = data;
        scrollViewUI = scrollView;

        image.sprite = data.sprite;
        text.text    = data.name + "\n" + data.description;

        if (data.hasLimitedUse)
        {
            text.text += "\nUses per battle: " + data.usesPerBattle;
        }
        if (data.consumed)
        {
            text.text += "\nConsumed on use.";
        }

        equippedText.text = "";
    }
Пример #11
0
    private void SetEquipped(ItemData item, EquipWeaponUI scrollView, bool main)
    {
        int index = main ? 0 : 1;

        slots[index].SetEquipped(item, scrollView);
    }