Exemplo n.º 1
0
    private void EndDrag()
    {
        if (selectedItem == null)
        {
            return;
        }

        GameObject container = RaycastUI("UI_Slot");

        DropContainer dropContainer = (container == null) ? null : container.GetComponent <DropContainer>();

        // could not find valid drop location
        if (container == null || container == selectedItemSlot.gameObject)
        {
            selectedItem.transform.localPosition = Vector3.zero;
        }
        // delete item
        else if (container.name == "Trash")
        {
            selectedItem.transform.SetParent(container.transform);
            loadout.TrashItem(selectedItem.Item);

            if (selectedItemSlot.transform.parent.name == "PendingItems")
            {
                Destroy(selectedItemSlot.gameObject);
            }

            Destroy(selectedItem.gameObject);
        }
        // only slot items of the same type
        else if (dropContainer.Type == selectedItem.Item.Type || dropContainer.Type == SlotType.None)
        {
            // swap items
            if (container.transform.childCount > 0)
            {
                loadout.SlotItem(selectedItem.Item);

                container.transform.GetChild(0).SetParent(selectedItemSlot.transform);
                selectedItem.transform.SetParent(container.transform);
            }
            // fill empty slot
            else
            {
                loadout.SlotItem(selectedItem.Item);
                selectedItem.transform.SetParent(container.transform);

                if (selectedItemSlot.name == "Slot")
                {
                    Destroy(selectedItemSlot.gameObject);
                }
            }
        }

        selectedItem.transform.localPosition = Vector3.zero;
        Trash.SetActive(false);
        selectedItem     = null;
        selectedItemSlot = null;
    }
Exemplo n.º 2
0
    private void BeginDrag()
    {
        GameObject item = RaycastUI("UI_Item");
        GameObject slot = RaycastUI("UI_Slot");

        if (item != null && slot != null)
        {
            selectedItem     = item.GetComponent <DragContainer>();
            selectedItemSlot = slot.GetComponent <DropContainer>();
        }

        Trash.SetActive(true);
    }
Exemplo n.º 3
0
    public void RpcUpdateTable(string serializedTable)
    {
        DropContainer table = DropContainer.ByName ["Table"];

        table.cardInSlot = JsonUtility.FromJson <Wrapper <List <int> > > (serializedTable);

        for (int slotId = 0; slotId < table.cardInSlot.Count; slotId++)
        {
            int cardId = table.cardInSlot [slotId];
            if (cardId != -1)
            {
                Card c = CardFactory.Instance.Cards [cardId];
                c.gameObject.SetActive(true);
                c.transform.parent   = table.dms [slotId].transform;
                c.transform.position = table.dms [slotId].transform.position;
            }
        }
    }
Exemplo n.º 4
0
    void RpcSyncClient(string serializedPlayerData)
    {
        SerializedPlayerData data = JsonUtility.FromJson <SerializedPlayerData> (serializedPlayerData);

        role = data.role;
        hand = data.hand;

        if (isLocalPlayer)
        {
            DropContainer container = DropContainer.ByName ["Main"];

            for (int i = 0; i < hand.Count; i++)
            {
                Card c = CardFactory.Instance.Cards [hand [i]];
                c.gameObject.SetActive(true);
                c.transform.parent   = container.dms [i].transform;
                c.transform.position = container.dms [i].transform.position;
            }
        }
        else
        {
        }
    }
Exemplo n.º 5
0
        void Awake()
        {
            container = GetComponent <DropContainer>();

            container.OnObjectiveBlockCompleted += OnCompleted;
        }
Exemplo n.º 6
0
 private void UpdateDroppableHover(PointerEventData eventData)
 {
     DropContainer oldHover = _currentHoveredContainer;
     _currentHoveredContainer = PhysicsModule.GetHoveredContainer(_droppableConfig.overlapPhysics, eventData, this);
     if (_currentHoveredContainer != null)
     {
         _dropInfo.Container = _currentHoveredContainer;
     }
     SendHoverMessages(oldHover);
 }
Exemplo n.º 7
0
    private void SendHoverMessages(DropContainer oldHover)
    {
        // if both are null nothing happes, if one if not null, we ether enter a new one, leave the current one or both
        if (_currentHoveredContainer != oldHover)
        {
            if (_currentHoveredContainer != null) // we enter a new hover
            {
                OnStartHovering(_dragInfo, _dropInfo);
                _currentHoveredContainer.OnStartHover(_dragInfo, _dropInfo);
            }
            else if (oldHover != null) // we leave the current hover
            {
                OnStopHovering(_dragInfo, _dropInfo);
                oldHover.OnStopHover(_dragInfo, _dropInfo);
            }
        }

        if (_currentHoveredContainer != null)
        {
            OnHovering(_dragInfo, _dropInfo);
            _currentHoveredContainer.OnHover(_dragInfo, _dropInfo);
        }
    }
Exemplo n.º 8
0
 private void DropIntoContainer(DropContainer container)
 {
     OnStopHovering(_dragInfo, _dropInfo);
     container.OnStopHover(_dragInfo, _dropInfo);
     OnDrop(_dragInfo, _dropInfo);
     container.OnDrop(_dragInfo, _dropInfo);
 }
Exemplo n.º 9
0
 public void OnEndDrag(PointerEventData eventData)
 {
     //Debug.Log("End Drag");
     IsDragged = false;
     _dragInfo.DragEndPos = transform.position;
     _dragInfo.DragEndTime = Time.time;
     HandleEndDrag(_dragInfo);
     if (_droppableConfig.isDroppable && _currentHoveredContainer != null)
     {
         DropIntoContainer(_currentHoveredContainer);
         _currentHoveredContainer = null;
     }
 }