Represents an equippable item. This class can be used by itself for an equippable cosmetic item that has no side effects when worn.
Inheritance: Item
Ejemplo n.º 1
0
 public void EquipItem(EquippableItem itemToEquip, InvBaseItem.Slot slotPlaced)
 {
     Debug.Log("Adding Item...");
     playerLightScript = itemToEquip.GetComponentInChildren<Light>();
     if (playerLightScript)
     {
         Debug.Log("Item was a light.");
         playerLightTransform = itemToEquip.transform;
         relativeLightPosition = playerLightTransform.localPosition;
         lightRotationOffset = playerLightTransform.localRotation;
         playerLightScript = playerLightTransform.GetComponentInChildren<Light>();
         itemCollider = itemToEquip.interactionZone;
     }
     switch(handEquip)
     {
     case HandEquipStates.left:
         if(slotPlaced == InvBaseItem.Slot.RightHand)
             handEquip = HandEquipStates.both;
         break;
     case HandEquipStates.right:
         if(slotPlaced == InvBaseItem.Slot.LeftHand)
             handEquip = HandEquipStates.both;
         break;
     case HandEquipStates.none:
         if(slotPlaced == InvBaseItem.Slot.LeftHand)
             handEquip = HandEquipStates.left;
         if(slotPlaced == InvBaseItem.Slot.RightHand)
             handEquip = HandEquipStates.right;
         break;
     }
     SetArmLayerWeight(0f, 0f);
 }
Ejemplo n.º 2
0
 public void Unequip(EquippableItem item)
 {
     if (inventory.CanAddItem(item) && equipmentPanel.RemoveItem(item))
     {
         item.UnEquip(this);
         notWearInfoDisplay.UpdateStatusInfo();
     }
 }
Ejemplo n.º 3
0
    private string GetTitle(EquippableItem item)
    {
        var data = item.Data.Value;

        var(tier, upgrades) = GameManager.ItemManager.GetTier(item);
        return
            ($"<color=#{ColorUtility.ToHtmlStringRGB(tier.Color.ToColor())}>{data.Name}</color><smallcaps><size=60%> ({tier.Name}{new string('+', upgrades)})");
    }
Ejemplo n.º 4
0
 public override void ForceEquip(EquippableItem item)
 {
     base.ForceEquip(item);
     if (equippedItemsUI.gameObject.activeSelf == true)
     {
         equippedItemsUI.UpdateUI(item.Slot);
     }
 }
Ejemplo n.º 5
0
 private void EquipWeapont(EquippableItem newWeapon)
 {
     equipment.inventory.Add(equipment.weapon);
     equipment.weapon.UnEquip(this);
     equipment.weapon = newWeapon;
     equipment.weapon.Equip(this);
     RemoveItemFromInventory(newWeapon);
 }
Ejemplo n.º 6
0
 public void Unequip(EquippableItem item)
 {
     if (Inventory.CanAddItem(item) && EquipmentPanel.RemoveItem(item))
     {
         item.Unequip(this);
         Inventory.AddItem(item);
     }
 }
Ejemplo n.º 7
0
 private FilterViewModelBase GetItemLevelFilterViewModel(EquippableItem equippableItem, SearchQueryRequest searchQueryRequest)
 {
     return(this.CreateBindableMinMaxFilterViewModel(
                x => x.Query.Filters.MiscFilters.ItemLevel,
                Resources.ItemLevelColumn,
                equippableItem.ItemLevel,
                searchQueryRequest.Query.Filters.MiscFilters.ItemLevel));
 }
Ejemplo n.º 8
0
    public void Enable(Item item, Vector3 position)
    {
        this.GetComponent <RectTransform>().position = position;

        nameLabel.text = item.name;
        nameLabel.gameObject.SetActive(true);

        valueLabel.text = valueText + item.value;
        valueLabel.gameObject.SetActive(true);

        if (item.description != null || item.description != "")
        {
            descriptionLabel.text = item.description;
        }

        if (item is EquippableItem)
        {
            EquippableItem ei = (EquippableItem)item;

            strReqLabel.text = strReqText + ei.requirements.strength;
            strReqLabel.gameObject.SetActive(true);
            dexReqLabel.text = dexReqText + ei.requirements.dexterity;
            dexReqLabel.gameObject.SetActive(true);
            intReqLabel.text = intReqText + ei.requirements.intelligence;
            intReqLabel.gameObject.SetActive(true);

            requirementsLabel.gameObject.SetActive(true);
            requirementsParent.SetActive(true);
        }

        if (item is Weapon)
        {
            Weapon w = (Weapon)item;

            atkLabel.text = atkText + w.damage.ToString();
            atkLabel.gameObject.SetActive(true);

            foreach (ItemModifier mod in w.Modifiers)
            {
                TextMeshProUGUI modLabel = Instantiate(modifierExample, modifiersParent.transform).GetComponent <TextMeshProUGUI>();
                modLabel.text = mod.type.ToString() + " " + ItemModifier.CalculationMethodToString(mod.calculationMethod) + mod.Value;
                modifierObjects.Add(modLabel.gameObject);
                modLabel.gameObject.SetActive(true);
            }
            modifiersLabel.gameObject.SetActive(true);
            modifiersParent.SetActive(true);
        }

        if (item is Armor)
        {
            Armor a = (Armor)item;

            defLabel.text = defText + a.defence.ToString();
            atkLabel.gameObject.SetActive(true);
        }

        gameObject.SetActive(true);
    }
Ejemplo n.º 9
0
        public async Task LoadAsyncShouldSetIsEnabledToFalseForExchangeQueryRequest()
        {
            var item = new EquippableItem(ItemRarity.Normal);
            var searchQueryRequest = new ExchangeQueryRequest();

            await this.advancedFiltersViewModel.LoadAsync(item, searchQueryRequest, default);

            Assert.IsFalse(this.advancedFiltersViewModel.IsEnabled);
        }
Ejemplo n.º 10
0
 protected void SetUpTooltipButton(EquippableItem item)
 {
     tooltipButton.gameObject.SetActive(true);
     tooltipButton.onClick.AddListener(() => {
         tooltipManager.tooltip.SetActive(true);
         RenderTooltip(item);
     }
                                       );
 }
Ejemplo n.º 11
0
 private string GetLayer(EquippableItem item)
 {
     if (item.GetType() == typeof(Armor))
     {
         Armor armor = item as Armor;
         return(armor.Layer);
     }
     return("First");
 }
        public void ParseShouldParseNotCorrupted()
        {
            string[] itemStringLines = this.itemStringBuilder
                                       .BuildLines();

            EquippableItem result = this.ItemParser.Parse(itemStringLines) as EquippableItem;

            Assert.IsFalse(result.IsCorrupted);
        }
        public void ParseShouldParseIdentified()
        {
            string[] itemStringLines = this.itemStringBuilder
                                       .BuildLines();

            EquippableItem result = this.ItemParser.Parse(itemStringLines) as EquippableItem;

            Assert.IsTrue(result.IsIdentified);
        }
        public async Task CreateAsyncShouldSetItemRarity()
        {
            var itemListingsQueryResult = new ItemListingsQueryResult();
            var item = new EquippableItem(ItemRarity.Rare);

            ItemListingsViewModel result = await this.itemListingsViewModelFactory.CreateAsync(item, itemListingsQueryResult);

            Assert.That(result.ItemRarity, Is.EqualTo(item.Rarity));
        }
Ejemplo n.º 15
0
    private void EquipmentPanelRightClick(ItemSlot itemSlot)
    {
        EquippableItem equippableItem = itemSlot.Item as EquippableItem;

        if (equippableItem != null)
        {
            Unequip((EquippableItem)itemSlot.Item);
        }
    }
Ejemplo n.º 16
0
    private void InventoryRightClick(ItemSlot itemSlot)
    {
        EquippableItem equippableItem = itemSlot.Item as EquippableItem;

        if (equippableItem != null)
        {
            Equip((EquippableItem)itemSlot.Item);
        }
    }
Ejemplo n.º 17
0
        private FilterViewModelBase GetInfluenceFilterViewModel(EquippableItem equippableItem, SearchQueryRequest searchQueryRequest)
        {
            Expression <Func <SearchQueryRequest, IFilter> > bindingExpression = GetInfluenceBindingExpression(equippableItem.Influence);

            return(new BindableFilterViewModel(bindingExpression)
            {
                Text = equippableItem.Influence.GetDisplayName(),
                IsEnabled = bindingExpression.Compile().Invoke(searchQueryRequest) is BoolOptionFilter boolOptionFilter ? boolOptionFilter.Option : (bool?)null
            });
Ejemplo n.º 18
0
    public void UnequipItem(string id)
    {
        EquippableItem item = (EquippableItem)GameItemLoader.instance.FetchItemByID(id);

        if (WearingItem(item))
        {
            equipment.Unequip(item);
        }
    }
        private void EquipFromInventory(ItemSlot itemSlot)
        {
            EquippableItem equippableItem = itemSlot.Item as EquippableItem;

            if (equippableItem != null)
            {
                Equip(equippableItem);
            }
        }
Ejemplo n.º 20
0
 public void OpenInventory(EquipmentButton button = null)
 {
     clickedEquipment = null;
     HideSelectedItemCursor();
     ShowSubMenu(inventorySubMenu);
     UpdateStats();
     SetInventory(button);
     UpdateMiniStatPanel();
 }
Ejemplo n.º 21
0
    private void ShowToolTip(ItemSlot itemSlot)
    {
        EquippableItem equippableItem = itemSlot.Item as EquippableItem;

        if (equippableItem != null)
        {
            itemTooltip.ShowTooltip(equippableItem);
        }
    }
Ejemplo n.º 22
0
 public void Unequip(EquippableItem item)
 {
     if (!inventory.IsFull() && equipmentPanel.RemoveItem(item)) //Inventory is not full
     {
         item.Unequip(this);
         statPanel.UpdateStatValues(); //Update value after unequiping
         inventory.AddItem(item);      //Add item back to inventory
     }
 }
Ejemplo n.º 23
0
    public void AddMesh(EquippableItem item, string layer)
    {
        SkinnedMeshRenderer newMesh = Instantiate(item.Prefab.GetComponentInChildren <SkinnedMeshRenderer>());

        newMesh.transform.parent = targetMesh.transform;
        newMesh.bones            = targetMesh.bones;
        newMesh.rootBone         = targetMesh.rootBone;
        currentMeshes[layer][item.EquipmentType] = newMesh;
    }
Ejemplo n.º 24
0
    private void Unequip(ItemSlot itemSlot)
    {
        EquippableItem equippableItem = itemSlot.Item as EquippableItem;

        if (equippableItem != null)
        {
            Unequip(equippableItem);
        }
    }
Ejemplo n.º 25
0
    public void InitEquippableItemPanel(EquippableItem item)
    {
        gameObject.SetActive(true);

        currItem      = item;
        currContainer = currItem.bonusStats;

        PrintData();
    }
Ejemplo n.º 26
0
 public void UnEquip(EquippableItem item)
 {
     if (inventory.CanAddItem(item) && equipmentPanel.RemoveItem(item))
     {
         item.UnEquip(this);
         //statPanel.UpdateStatValues();
         inventory.AddItem(item);
     }
 }
Ejemplo n.º 27
0
    private void Equip(ItemSlots itemSlot)
    {
        EquippableItem equippableItem = itemSlot.Item as EquippableItem;

        if (equippableItem != null)
        {
            Equip(equippableItem, 0);
        }
    }
Ejemplo n.º 28
0
    private void WeaponInHandAction()
    {
        WeaponInHand = true;
        itemAudio    = Hand.transform.GetChild(0).GetComponent <ItemBase>().itemClip;
        //同步武器攻擊力 20190318
        EquippableItem w_attack = Hand.transform.GetChild(0).GetComponent <ItemBase>().setting as EquippableItem;

        _player.AddWeaponAttack(w_attack.Damge);
    }
Ejemplo n.º 29
0
 public void UnEquip(EquippableItem item)
 {
     if (!inventory.isFull() && equipmentPanel.RemoveItem(item))
     {
         item.Unequip(this);
         statPanel.UpdateStatValues();
         inventory.AddItem(item);
     }
 }
Ejemplo n.º 30
0
 public bool removeItem(EquippableItem item)
 {
     if (items.Remove(item))
     {
         inventoryType.refreshUIByClickButton();
         return(true);
     }
     return(false);
 }
Ejemplo n.º 31
0
    /*    private bool IsInventoryNull()
     *  {
     *      for (int i = 0; i < inventory.ItemSlots.Count; i++)
     *      {
     *          if (inventory.ItemSlots[i].Item != null)
     *          {
     *              return false;
     *          }
     *      }
     *      return true;
     *  }
     *
     *  private bool IsEquippedPanelNull()
     *  {
     *      for (int i = 0; i < equippedItemsPanel.equippedItemSlots.Length; i++)
     *      {
     *          if (equippedItemsPanel.equippedItemSlots[i].Item != null)
     *          {
     *              return false;
     *          }
     *      }
     *      return true;
     *  }*/

    /*    private void InventoryLeftClick(BaseItemSlot itemSlot)
     *  {
     *      if (unit != null)
     *      {
     *          selectedItemSlot = itemSlot;
     *
     *          if (itemSlot.Item != null)
     *          {
     *              if (itemSlot.Item is EquippableItem)
     *              {
     *                  EquippableItem equippableItem = (EquippableItem)itemSlot.Item;
     *                  if (inventory.RemoveItem(itemSlot.Item) && equippedItemsPanel.AddItem(equippableItem))
     *                  {
     *                      unit.unitItems.Add(equippableItem);
     *                  }
     *                  else
     *                  {
     *                      Debug.Log("No more space in unit");
     *                      inventory.AddItem(equippableItem);
     *                  }
     *              }
     *              else
     *              {
     *                  // add consumable to the unit inventory (dont use)
     *              }
     *          }
     *      }
     *      // AfterRightClickEvent();
     *  }*/
    /*    private void EquippedItemsPanelLeftClick(BaseItemSlot itemSlot)
     *  {
     *      if (unit != null)
     *      {
     *          selectedItemSlot = itemSlot;
     *          if (itemSlot.Item != null)
     *          {
     *              EquippableItem equippableItem = (EquippableItem)itemSlot.Item;
     *              if (inventory.CanAddItem(itemSlot.Item) && equippedItemsPanel.RemoveItem(equippableItem))
     *              {
     *                  // equippedItemsPanel.RemoveItem(equippableItem);
     *                  inventory.AddItem(equippableItem);
     *                  equippedItemsPanel.RemoveItem(equippableItem);
     *                  unit.unitItems.Remove(equippableItem);
     *              }
     *              else
     *              {
     *                  equippedItemsPanel.AddItem(equippableItem);
     *              }
     *          }
     *      }
     *  }
     *
     *  // item in inventory can be some other type, not nec equippable so need to check if its equippable only then will equip
     *  private void InventoryRightClick(BaseItemSlot itemSlot)
     *  {
     *      selectedItemSlot = itemSlot;
     *      // Debug.Log(itemSlot.Item);
     *      // AfterInventoryRightClickEvent();
     *      if (itemSlot.Item != null)
     *      {
     *          if (itemSlot.Item is EquippableItem)
     *          {
     *              Equip((EquippableItem)itemSlot.Item);
     *          }
     *          else if (itemSlot.Item is UsableItem)
     *          {
     *              UsableItem usableItem = (UsableItem)itemSlot.Item;
     *              usableItem.Use(this);
     *
     *              if (usableItem.IsConsumable)
     *              {
     *                  itemSlot.Amount--;
     *                  // inventory.RemoveItem(usableItem);
     *                  usableItem.Destroy();
     *              }
     *          }
     *      }
     *      AfterRightClickEvent();
     *  }*/

    /*   private void EquippedItemPanelRightClick(BaseItemSlot itemSlot)
     * {
     *     selectedItemSlot = itemSlot;
     *     if (itemSlot.Item != null)
     *     {
     *         if (itemSlot.Item is EquippableItem)
     *         {
     *             Unequip((EquippableItem)itemSlot.Item);
     *         }
     *     }
     *     AfterRightClickEvent();
     * }*/


    #endregion


    private void PersonalInventoryLeftClick(BaseItemSlot itemSlot)
    {
        selectedItemSlot = itemSlot;
        ItemSlotData previousItemSlotData = unit.unitInventory.Find(x =>
        {
            if (x.Item is EquippableItem)
            {
                return(((EquippableItem)x.Item).equipped);
            }

            return(false);
        });

        if (unit == null || itemSlot.Item == null)
        {
            return;
        }

        if (itemSlot.Item is EquippableItem)
        {
            EquippableItem currItem = (EquippableItem)itemSlot.Item;
            if (previousItemSlotData != null)
            {
                EquippableItem prevItem = (EquippableItem)previousItemSlotData.Item;
                Unequip(prevItem);
                previousItem = prevItem;
                foreach (ItemSlot _itemSlot in unitPersonalInventory.ItemSlots)
                {
                    if (_itemSlot.Item == previousItem)
                    {
                        _itemSlot.itemName.color = Color.white;
                    }
                }
            }
            if (!currItem.equipped && (previousItem == null || previousItem != currItem))
            {
                Equip(currItem);
                itemSlot.itemName.color = itemSlot.equippedColor;
            }
            else
            {
                Unequip(currItem);
                itemSlot.itemName.color = Color.white;
            }
            unit.UpdateUI();
            unit.AssignInventory(unitPersonalInventory.GetOccupiedItemSlots());
        }
        else if (itemSlot.Item is UsableItem)
        {
            currUsableItemSlot = itemSlot;
            usableItemConfirmationPanel.SetActive(true);
            usableItemConfirmationPanel.GetComponent <RectTransform>().position = Input.mousePosition;
        }

        previousItem = null;
    }
Ejemplo n.º 32
0
 void OnDisable()
 {
     Screen.showCursor = true;
     Screen.lockCursor = false;
     detachableInteractionXforms.enabled = false;
     SelectedItem = null;
     cursorOver = null;
     lookCursor.gameObject.SetActive(false);
     if (playerLightScript)
     {
         playerLightTransform.localRotation = lightRotationOffset;
     }
 }
Ejemplo n.º 33
0
 void FixedUpdate()
 {
     if(charController.velocity.magnitude < 0.1f)
         detachableInteractionXforms.enabled = true;
     Ray _ray = new Ray(cameraTransform.position, cameraTransform.forward);
     cursorOver = getSelectedObject(_ray);
     interactibleObject = null;
     SelectedItem = null;
     if(cursorOver)
     {
         EquippableItem item = cursorOver.gameObject.GetComponent<EquippableItem>();
         interactibleObject = cursorOver.gameObject.GetComponent<ObjectController>();
         if (item)
         {
             SelectedItem = item;
             cursorRenderer.material = selectedCursorMaterial;
             cursorParticles.Emit(1);
         }
         else if (interactibleObject)
         {
             cursorRenderer.material = selectedCursorMaterial;
             ////// popup for action? I.e. switch, door...
         }
         else
         {
             SelectedItem = null;
         }
     }
     if (playerLightScript)
         playerLightTransform.rotation = Quaternion.LookRotation(_ray.direction);
 }