private void _setupActiveCustomersView(Transform parent)
 {
     viewFactory.CreateAsync <ActiveCustomersView>("ActiveCustomersView", (view) =>
     {
         _activeCustomersView = (ActiveCustomersView)view;
         for (int i = 0; i < ActiveCustomerSet.kMaxActiveCustomers; ++i)
         {
             CustomerCardState state = _matchState.activeCustomerSet.GetCustomerByIndex(i);
             _setupCustomerView(i, state);
         }
     },
                                                   parent
                                                   );
 }
Esempio n. 2
0
    static public void SetupCustomerView(
        ActiveCustomersView customersView,
        int customerIndex,
        CustomerCardState cardState,
        Action <CustomerCardView> onCardDrop,
        Action <CustomerCardView> onPointerEnter,
        Action onPointerExit)
    {
        if (cardState == null)
        {
            Debug.LogWarning("Card State is null!");
            customersView.RemoveCardByIndex(customerIndex); // TODO: Do this On card slam instead of after the fact
            return;
        }

        CustomerCardView view = customersView.GetCardByIndex(customerIndex);

        if (view == null)
        {
            view = (CustomerCardView)Singleton.instance.cardResourceBank.CreateCardView(
                cardState.cardData,
                customersView._activeSlotList[customerIndex]);
        }

        view.cardState = cardState;

        view.eventTrigger.triggers.Clear();
        EventTrigger.Entry OnDrop = new EventTrigger.Entry();
        OnDrop.eventID = EventTriggerType.Drop;
        OnDrop.callback.AddListener((e) => onCardDrop(view));
        view.eventTrigger.triggers.Add(OnDrop);

        EventTrigger.Entry OnHoverBegin = new EventTrigger.Entry();
        OnHoverBegin.eventID = EventTriggerType.PointerEnter;
        OnHoverBegin.callback.AddListener((e) => onPointerEnter(view));
        view.eventTrigger.triggers.Add(OnHoverBegin);

        EventTrigger.Entry OnHoverEnd = new EventTrigger.Entry();
        OnHoverEnd.eventID = EventTriggerType.PointerExit;
        OnHoverEnd.callback.AddListener((e) => onPointerExit());
        view.eventTrigger.triggers.Add(OnHoverEnd);

        customersView.SetCardByIndex(customerIndex, view);
    }
Esempio n. 3
0
    public static void AnimateOtherPlayerMoves(List <MoveResult> moveList, GameMatchState state, ActiveCustomersView customersView, Transform parent, Action <Vector3> slamCallback, TweenCallback callback)
    {
        Assert.IsNotNull(moveList);
        //Assert.IsTrue(moveList.Count > 0);

        Sequence allPlayedCards = DOTween.Sequence();
        //MoveResult[] moveResults = new MoveResult[PlayerGroup.kMaxPlayerCount];
        int count = moveList.Count;

        for (int i = 0; i < count; ++i)
        {
            MoveRequest request = moveList[i].request;
            MoveResult  result  = moveList[i];

            CustomerCardView customerView = customersView.GetCardByIndex(request.customerSlot);

            IngredientCardData cardData = state.GetCardById(result.usedIngredient) as IngredientCardData;

            if (cardData == null)
            {
                Debug.LogError("Card data is null! cant animate other player card");
                continue;
            }

            IngredientCardView ingredientView = Singleton.instance.cardResourceBank.CreateCardView(
                cardData,
                parent) as IngredientCardView;

            ingredientView.transform.position = parent.transform.position;

            Vector3 delta     = (Camera.main.transform.position - customerView.transform.position).normalized;
            Vector3 targetPos = customerView.transform.position + delta;
            Tween   moveTo    = ingredientView.transform.DOMove(targetPos, 0.75f);
            moveTo.SetEase(Ease.OutQuad);

            ViewFactory vf = Singleton.instance.gui.viewFactory;

            Tween zoomSlam = ZoomSlamTween(ingredientView, customerView, false, () =>
            {
                vf.RemoveView(ingredientView);
                if (slamCallback != null)
                {
                    slamCallback(ingredientView.transform.position);
                }
            }, null);

            Sequence cardTween = DOTween.Sequence();
            cardTween.Append(moveTo);
            cardTween.Insert(moveTo.Duration(false) * 0.75f, zoomSlam);

            allPlayedCards.Insert(i * (cardTween.Duration() * 0.95f), cardTween);
        }
        allPlayedCards.OnComplete(callback);
        allPlayedCards.Play();
    }