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)); } } }
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); } }
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); }
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); } } } }
public void UnequipItem(EquipArea equipArea, Item item) { onUnequipItem.Invoke(equipArea, item); ChangeEquipmentDisplay(equipArea, item); }
public void EquipItem(EquipArea equipArea, Item item) { onEquipItem.Invoke(equipArea, item); ChangeEquipmentDisplay(equipArea, item, false); }