示例#1
0
    // окончание перетаскивания
    public void OnEndDrag(PointerEventData eventData)
    {
        // если карту перетащили в Hand - карта удаляется
        // 3-3 +
        if (ToHand)
        {
            //Debug.Log("Destroy " + this.name);

            if (!FromHand)
            {
                Instance.ChangeMoney(ThreeFormation ? Instance.SpecifyField(PrevParent) : PrevParent, -SelfCard.Cost);
            }

            CC.DestroyCard();
        }
        // если перетаскивание не с одного поля на другое
        else if (!SideToSide && EnoughMoney(DefaultParent, SelfCard.Cost) && (!ThreeFormation || getDropPlaceScript(DefaultParent).countCards != 3))
        {
            // if (!(ThreeFormation && !CanMoveToSubField(DefaultParent)))

            // если формация 3-3 и перетаскивание в пределах поля. В функци проверки
            // если формация простая и хватает денег
            // EnoughMoney возвращает истинук если в пределах одного поля

            //Debug.Log("else");

            transform.SetParent(DefaultParent);
            transform.SetSiblingIndex(TempCardGO.transform.GetSiblingIndex());

            getDropPlaceScript(DefaultParent).countCards++;

            if (getDropPlaceScript(DefaultParent).Type != getDropPlaceScript(PrevParent).Type)
            {
                Instance.ChangeMoney(ThreeFormation ? Instance.SpecifyField(DefaultParent) : DefaultParent, SelfCard.Cost);
            }
        }
        else if (FromHand)
        {
            CC.DestroyCard();
        }
        // иначе возвращаем на исходное место
        else
        {
            transform.SetParent(PrevParent);
            transform.SetSiblingIndex(TempCardGO.transform.GetSiblingIndex());

            getDropPlaceScript(PrevParent).countCards++;
        }

        GetComponent <CanvasGroup>().blocksRaycasts = true;

        Instance.UpdateTreeFields();

        // убрать временную обратно за камеру
        TempCardGO.transform.SetParent(GameObject.Find("Canvas").transform);
        TempCardGO.transform.localPosition = new Vector3(4000, 0);
    }