Пример #1
0
        public void EquipItem(EquipArea equipArea, Item item)
        {
            onEquipItem.Invoke(equipArea, item);

            if (item != equipArea.currentEquipedItem)
            {
                return;
            }

            var equipPoint = equipPoints.Find(ep => ep.equipPointName == equipArea.equipPointName);

            if (equipPoint != null && item != null && equipPoint.equipmentReference.item != item)
            {
                equipTimer = item.equipDelayTime;

                var type = item.type;
                if (type != ItemType.Consumable)
                {
                    if (!inventory.isOpen)
                    {
                        animator.SetInteger("EquipItemID", equipArea.equipPointName.Contains("Right") ? item.EquipID : -item.EquipID);
                        animator.SetTrigger("EquipItem");
                    }
                    equipPoint.area = equipArea;
                    StartCoroutine(EquipItemRoutine(equipPoint, item));
                }
            }
        }
Пример #2
0
        void CheckTwoHandItem(EquipArea area, ItemSlot slot)
        {
            if (slot.item == null)
            {
                return;
            }

            var opposite = equipAreas.Find(_area => _area != null && area.equipPointName.Equals("LeftArm") && _area.currentEquipedItem != null);

            //var RightEquipmentController = changeEquipmentControllers.Find(equipCtrl => equipCtrl.equipArea != null && equipCtrl.equipArea.equipPointName.Equals("RightArm"));
            if (area.equipPointName.Equals("LeftArm"))
            {
                opposite = equipAreas.Find(_area => _area != null && area.equipPointName.Equals("RightArm") && _area.currentEquipedItem != null);
            }
            else if (!area.equipPointName.Equals("RightArm"))
            {
                return;
            }

            if (opposite != null && (slot.item.twoHandWeapon || opposite.currentEquipedItem.twoHandWeapon))
            {
                opposite.onUnequipItem.Invoke(opposite, slot.item);
                opposite.RemoveItem(slot as EquipSlot);
            }
        }
Пример #3
0
 public void OnPickUpItemCallBack(EquipArea area, ItemSlot slot)
 {
     for (int i = 0; i < equipAreas.Count; i++)
     {
         var sameSlots = equipAreas[i].equipSlots.FindAll(slotInArea => slotInArea != slot && slotInArea.item != null && slotInArea.item == slot.item);
         for (int a = 0; a < sameSlots.Count; a++)
         {
             equipAreas[i].RemoveItem(sameSlots[a]);
         }
     }
     CheckTwoHandItem(area, slot);
 }
Пример #4
0
 void ChangeEquipmentDisplay(EquipArea equipArea, Item item, bool removeItem = true)
 {
     if (changeEquipmentControllers.Count > 0)
     {
         var changeEquipControl = changeEquipmentControllers.Find(changeEquip => changeEquip.equipArea != null && changeEquip.equipArea.equipPointName == equipArea.equipPointName && changeEquip.display != null);
         if (changeEquipControl != null)
         {
             if (removeItem && changeEquipControl.display.item == item)
             {
                 changeEquipControl.display.RemoveItem();
             }
             else if (equipArea.currentEquipedItem == item)
             {
                 changeEquipControl.display.AddItem(item);
                 changeEquipControl.display.ItemIdentifier(changeEquipControl.equipArea.indexOfEquipedItem + 1, true);
             }
         }
     }
 }
Пример #5
0
 public void UnequipItem(EquipArea equipArea, Item item)
 {
     onUnequipItem.Invoke(equipArea, item);
     ChangeEquipmentDisplay(equipArea, item);
 }
Пример #6
0
 public void EquipItem(EquipArea equipArea, Item item)
 {
     onEquipItem.Invoke(equipArea, item);
     ChangeEquipmentDisplay(equipArea, item, false);
 }