Exemplo n.º 1
0
        /// <summary>
        /// Обмен позициями фишек
        /// </summary>
        /// <param name="first">Предмет, помещенный в парвую ячейку</param>
        /// <param name="second">Предмет, помещенный во вторую</param>
        /// <param name="presentFirst">Представление предмета, которое нужно переместить из первой во вторую ячейкеу</param>
        /// <param name="presentSecond">Представление предмета, которое нужно переместить из второй в первую ячейкеу</param>
        public void Shuffle(ICell <ItemDescription> first, ICell <ItemDescription> second, ICellUI presentFirst, ICellUI presentSecond)
        {
            var objFirst  = CreateAnimObject(presentFirst);
            var objSecond = CreateAnimObject(presentSecond);

            var itemFirst  = objFirst.GetComponent <IItemUI>();
            var itemSecond = objSecond.GetComponent <IItemUI>();

            itemFirst.SetItem(second.Item.Description);
            itemSecond.SetItem(first.Item.Description);
            itemFirst.EnableStatus  = true;
            itemSecond.EnableStatus = true;

            presentFirst.SetItemToCell(first.Item);
            presentSecond.SetItemToCell(second.Item);

            presentFirst.SetItemVisibleStatus(false);
            presentSecond.SetItemVisibleStatus(false);

            objFirst.SetActive(true);
            objSecond.SetActive(true);

            var positionToFirst  = GetPosition(presentSecond);
            var positionToSecond = GetPosition(presentFirst);

            var result = new Hashtable(2)
            {
                { "GameObjectFirst", objFirst },
                { "GameObjectSecond", objSecond },
                { "IItemUIFirst", itemFirst },
                { "IItemUISecond", itemSecond },
                { "ICellUIToFirst", presentFirst },
                { "ICellUIToSecond", presentSecond }
            };

            iTween.MoveTo(objFirst, iTween.Hash("position", transform.InverseTransformPoint(positionToFirst),
                                                "time", _shuffleTime,
                                                "islocal", true,
                                                "easetype", iTween.EaseType.easeInOutCubic,
                                                "looptype", iTween.LoopType.none));

            iTween.MoveTo(objSecond, iTween.Hash("position", transform.InverseTransformPoint(positionToSecond),
                                                 "time", _shuffleTime,
                                                 "islocal", true,
                                                 "easetype", iTween.EaseType.easeInOutCubic,
                                                 "looptype", iTween.LoopType.none,
                                                 "oncomplete", nameof(CompleteShuffle),
                                                 "oncompletetarget", gameObject,
                                                 "oncompleteparams", result));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Перемещение представления предмета в заданные координаты
        /// </summary>
        /// <param name="destinationCell">Ячейка с данными о предмете</param>
        /// <param name="presentFrom">Визуальная ячейка предмета на поле, откуда перемещается предмет</param>
        /// <param name="presentTo">Визуальная ячейка предмета на поле, кула перемещается предмет</param>
        public void MoveItem(ICell <ItemDescription> destinationCell, ICellUI presentFrom, ICellUI presentTo)
        {
            var obj = CreateAnimObject(presentFrom);

            var item = obj.GetComponent <IItemUI>();

            item.SetItem(destinationCell.Item.Description);
            item.EnableStatus = true;

            obj.SetActive(true);

            presentFrom.ClearCell();
            presentTo.SetItemToCell(destinationCell.Item);

            presentFrom.SetItemVisibleStatus(false);
            presentTo.SetItemVisibleStatus(false);

            var positionTo = GetPosition(presentTo);

            var result = new Hashtable(2)
            {
                { "GameObject", obj },
                { "IItemUI", item },
                { "ICellUITo", presentTo }
            };

            _startedAnims++;

            iTween.MoveTo(obj, iTween.Hash("position", transform.InverseTransformPoint(positionTo),
                                           "time", _moveItemTime,
                                           "islocal", true,
                                           "easetype", iTween.EaseType.easeInSine,
                                           "looptype", iTween.LoopType.none,
                                           "oncomplete", nameof(CompleteMoveItem),
                                           "oncompletetarget", gameObject,
                                           "oncompleteparams", result));
        }