public override void OnDrop(PointerEventData eventData) { if (CanDrop) { DragEquipment drag = eventData.pointerDrag.GetComponent <DragEquipment>(); if (drag != null && drag.CanDrag) { ADropToMe oldParentDrop = drag.OldParent.GetComponent <ADropToMe>(); //если перетащили откуда либо на пол if (!(oldParentDrop is DropToGround)) { //если передащили на заполненную клетку EquipmentStack stack = new EquipmentStack(drag.EquipStack.EquipmentMainProperties, drag.EquipStack.EquipmentStats, drag.EquipStack.Count); if (oldParentDrop.CanGetFromThisIventory(drag.EquipStack, null)) { if (AddToThisInventory(drag.EquipStack)) { oldParentDrop.RemoveFromThisInventory(drag.EquipStack); } } Destroy(drag.gameObject); RefreshUI(); } } } }
override public void OnDrop(PointerEventData eventData) { if (CanDrop) { DragEquipment drag = eventData.pointerDrag.GetComponent <DragEquipment>(); if (drag != null && drag.CanDrag) { ADropToMe oldParentDrop = drag.OldParent.GetComponent <ADropToMe>(); //если перетащили откуда либо кроме самого магазина if (!(oldParentDrop is DropToEquipmentMarket) && !(oldParentDrop is DropToConsumableMarket)) { EquipmentStack stack = new EquipmentStack(drag.EquipStack.EquipmentMainProperties, drag.EquipStack.EquipmentStats, drag.EquipStack.Count); if (oldParentDrop.CanGetFromThisIventory(stack, null)) { if (AddToThisInventory(stack)) { oldParentDrop.RemoveFromThisInventory(stack); } } Destroy(drag.gameObject); RefreshUI(); } } } }
public override void OnDrop(PointerEventData eventData) { if (CanDrop) { DragEquipment drag = eventData.pointerDrag.GetComponent <DragEquipment>(); if (drag != null && drag.CanDrag) { var oldParentDrop = drag.OldParent.GetComponent <ADropToMe>(); //если в инвентаре есть стак if (transform.childCount > 0) { DragEquipment thisDrag = transform.GetChild(0).GetComponent <DragEquipment>(); //если перетаскиваем на такой же объект, но перетаскиваем не с экипировки if ((drag.EquipStack.EquipmentStats.Type == thisDrag.EquipStack.EquipmentStats.Type && drag.EquipStack.EquipmentStats.Id == thisDrag.EquipStack.EquipmentStats.Id && drag.EquipStack.EquipmentStats.ItemDurability == thisDrag.EquipStack.EquipmentStats.ItemDurability) && !(oldParentDrop is DropToEquipment)) { //высчитываем кол-во ппедметов, которые можем состакать int cnt = Squad.playerSquadInstance.UnitCount - thisDrag.EquipStack.Count; cnt = cnt <= drag.EquipStack.Count ? cnt : drag.EquipStack.Count; //заносим предметы в инвентарь отряда EquipmentStack stack = new EquipmentStack(thisDrag.EquipStack.EquipmentMainProperties, thisDrag.EquipStack.EquipmentStats, cnt); if (oldParentDrop.CanGetFromThisIventory(stack, thisDrag.EquipStack)) { if (AddToThisInventory(stack)) { oldParentDrop.RemoveFromThisInventory(stack); } } } } //если в инвентаре нет стака else { //высчитываем кол-во ппедметов, которые можем поднять int cnt = drag.EquipStack.Count; cnt = Squad.playerSquadInstance.UnitCount < cnt ? Squad.playerSquadInstance.UnitCount : cnt; EquipmentStack stack = new EquipmentStack(drag.EquipStack.EquipmentMainProperties, drag.EquipStack.EquipmentStats, cnt); if (oldParentDrop.CanGetFromThisIventory(stack, null)) { if (AddToThisInventory(stack)) { oldParentDrop.RemoveFromThisInventory(stack); } } } Destroy(drag.gameObject); RefreshUI(); } } }
override public void OnDrop(PointerEventData eventData) { if (CanDrop) { DragEquipment drag = eventData.pointerDrag.GetComponent <DragEquipment>(); if (drag != null && drag.CanDrag) { var oldParentDrop = drag.OldParent.GetComponent <ADropToMe>(); if (oldParentDrop != this) { DragEquipment thisDrag = transform.GetChild(0).GetComponent <DragEquipment>(); //в этой ячейке полюбому должен быть inventoryItem if (drag.EquipStack.EquipmentStats.Type == thisDrag.EquipStack.EquipmentStats.Type && (drag.EquipStack.EquipmentStats.Id != thisDrag.EquipStack.EquipmentStats.Id || drag.EquipStack.EquipmentStats.ItemDurability != thisDrag.EquipStack.EquipmentStats.ItemDurability)) { //если предметов достаточно на весь отряд if (Squad.playerSquadInstance.UnitCount <= drag.EquipStack.Count) { EquipmentStack stack = new EquipmentStack(drag.EquipStack.EquipmentMainProperties, drag.EquipStack.EquipmentStats, Squad.playerSquadInstance.UnitCount); if (oldParentDrop.CanGetFromThisIventory(stack, thisDrag.EquipStack)) { if (AddToThisInventory(stack)) { oldParentDrop.RemoveFromThisInventory(stack); if (!thisDrag.EquipStack.EquipmentStats.Empty) { oldParentDrop.AddToThisInventory(thisDrag.EquipStack); } } } Destroy(drag.gameObject); RefreshUI(); } else { Toast.Instance.Show(LocalizedStrings.toast_not_enough_equipment_count); } } } } } }