Example #1
0
    void Start()
    {
        model.greenMana.DistinctUntilChanged()
        .SubscribeToText(view.greenMana);
        model.blueMana.DistinctUntilChanged()
        .SubscribeToText(view.blueMana);
        model.redMana.DistinctUntilChanged()
        .SubscribeToText(view.redMana);

        var trigger = gameObject.AddComponent <ObservableEventTrigger>();

        trigger.OnDropAsObservable()
        .Where(_ => !GameManager.Instance.isChoicePrompting)
        //.Where(e=> e.pointerDrag.GetComponent<CardSpellController>()!=null)
        .Do(_ => Debug.Log("OnDropMana"))
        .Subscribe(e => {
            CardMovement cardToPlay = e.pointerDrag.GetComponent <CardMovement>();
            if (cardToPlay == null)
            {
                return;
            }
            cardToPlay.parentAfterDrag   = this.transform;
            cardToPlay.positionAfterDrag = transform.position + hiddenOffset;

            CardSpellController spellCard = e.pointerDrag.GetComponent <CardSpellController>();
            if (spellCard == null)
            {
                return;
            }

            hand.Play(spellCard);

            //ここでdestoryするとenddragが発動しない
        });
    }
Example #2
0
    public void OnDrop(PointerEventData eventData)
    {
        if (eventData.pointerDrag == null)
        {
            return;
        }

        if (FieldType != FieldType.playerActive)
        {
            return;
        }

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card)
        {
            Debug.Log(GameManager.Instance.ToString());
            (card.GetComponent <WarriorCardVM>().CardObject as Warrior).JoinToFight();
            card.DefaultParent = transform;
            Debug.Log($"Card {card.GetComponent<UnitCardVM>().CardObject.ToString()} join to fight");
            Debug.Log($"hand:");
            foreach (Unit warrior in GameManager.Instance.Game.HandWarriors)
            {
                Debug.Log(warrior.ToString());
            }
            Debug.Log($"activeField:");
            foreach (Unit warrior in GameManager.Instance.Game.ActiveWarriors)
            {
                Debug.Log(warrior.ToString());
            }
        }
    }
    void Start()
    {
        model.cards.ObserveCountChanged()
        .DistinctUntilChanged()
        .SubscribeToText(view.trashCounter);

        var trigger = gameObject.AddComponent <ObservableEventTrigger>();

        trigger.OnDropAsObservable()
        .Where(_ => GameManager.Instance.isDiscarding)
        .Subscribe(e =>
        {
            Debug.Log("Trash OnDrop");

            CardMovement card = e.pointerDrag.GetComponent <CardMovement>();
            if (card != null)
            {
                card.parentAfterDrag         = this.transform;
                card.positionAfterDrag       = this.transform.position + hiddenOffset;
                CardController discardedCard = card.GetComponent <CardController>();
                model.cards.Add(discardedCard);
                hand.DiscardForCosts(discardedCard);
            }
        });
    }
 public void OnDrop(PointerEventData data)
 {
     CardMovement dragObj = data.pointerDrag.GetComponent<CardMovement>();
     if (dragObj != null)
     {
         dragObj.parentTransform = this.transform;
         Debug.Log("ttt");
         GameObject clone = GODic[data.pointerDrag.tag];
         Instantiate(clone, clone.transform.position, Quaternion.identity, parent);
     }
 }
Example #5
0
    // Описывая функцию OnDrop мы реализует наследуемый IDropHandler интерфейс,
    // функция срабатывает в момент после того как мы "опустили" карту на стол

    public void OnDrop(PointerEventData eventData)
    {
        // Узнаем игровое поле, на которое упала карта
        // и присваиваем его упавшей карте как стандартное

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card)
        {
            card.Parent = this.transform;
        }
    }
Example #6
0
    public void OnDrop(PointerEventData eventData)//OnEndDragより先に起きる
    {
        Debug.Log("OnDrop");

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card != null)
        {
            card.parentAfterDrag   = this.transform;
            card.positionAfterDrag = this.transform.position;
        }
    }
Example #7
0
    public void OnDrop(PointerEventData data)
    {
        Debug.Log(gameObject.name);

        CardMovement dragObj = data.pointerDrag.GetComponent <CardMovement>();

        if (dragObj != null)
        {
            dragObj.parentTransform = this.transform;
            Debug.Log(gameObject.name + "に" + data.pointerDrag.name + "をドロップ(move)");
        }
    }
 public void SelectCardToKeep(CardMovement card)
 {
     if (keep.Contains(card))
     {
         keep.Remove(card);
         card.SetPosition(new Vector3(card.transform.localPosition.x, card.transform.localPosition.y + selectionHeight));
     }
     else
     {
         keep.Add(card);
         card.SetPosition(new Vector3(card.transform.localPosition.x, card.transform.localPosition.y - selectionHeight));
     }
 }
    public void OnDrop(PointerEventData data)
    {
        CommandCount.Add();

        CardMovement dragObj = data.pointerDrag.GetComponent <CardMovement>();

        if (dragObj != null)
        {
            dragObj.parentTransform = this.transform;
            Debug.Log(gameObject.name + "に" + data.pointerDrag.name + "をドロップ(field)");
            if (dragObj.CompareTag("right"))
            {
                C.GetComponent <UnityChanAttempt>().RightRun();
                //  C.transform.Translate(1,0,0);
            }
            if (dragObj.CompareTag("left"))
            {
                if (C.transform.position.x <= -8)
                {
                    Instantiate(childObject, new Vector3(400, 250, 0), Quaternion.identity, parent);
                }
                else
                {
                    C.GetComponent <UnityChanAttempt>().LeftRun();
                    // C.transform.Translate(-1,0,0);
                }
            }
            if (dragObj.CompareTag("up"))
            {
                C.GetComponent <UnityChanAttempt>().Jump();
                //  C.transform.Translate(0,1,0);
            }
            if (dragObj.CompareTag("down"))
            {
                C.transform.Translate(0, -1, 0);
            }
            if (dragObj.CompareTag("rightRun"))
            {
                StartCoroutine(C.GetComponent <UnityChanAttempt>().Runx());
            }
            if (dragObj.CompareTag("leftRun"))
            {
                StartCoroutine(C.GetComponent <UnityChanAttempt>().Runy());
            }
            if (dragObj.CompareTag("if"))
            {
                C.GetComponent <UnityChanAttempt>().ActivateOnCollisionStay();
            }
        }
    }
Example #10
0
    public void OnPointerEnter(PointerEventData eventData)
    {
        if (eventData.pointerDrag == null || Type == FieldType.SELF_HAND)
        {
            return;
        }

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card)
        {
            card.DefaultTempCardParent = transform;
        }
    }
Example #11
0
    public void OnPointerExit(PointerEventData eventData)
    {
        if (eventData.pointerDrag == null)
        {
            return;
        }

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card && card.DefaultTempCardParent == transform)
        {
            card.DefaultTempCardParent = card.DefaultParent;
        }
    }
Example #12
0
    public void PlaceReceivedCard(CardMovement cardMover, int handCardCount, Action previousAction, Action nextAction)
    {
        var cardPositionInHand = DetermineReceivedCardPlace(handCardCount);

        Action <Transform> postAction = cardTransform =>
        {
            //card.transform.Rotate(Quaternion.identity);
            //card.transform.eulerAngles = frontFlipRotation;
            CardRotationResolver.Rotate(cardTransform);
            nextAction();
        };

        previousAction();
        StartCoroutine(cardMover.Move(cardPositionInHand, postAction));
    }
Example #13
0
    public void OnPointerExit(PointerEventData eventData)
    {
        //проверяется, перетягивается ли какой-нибудь объект
        if (eventData.pointerDrag == null)
        {
            return;
        }

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card && card.defaultTempCardParent == transform)
        {
            card.defaultTempCardParent = card.defaultParent;
        }
    }
Example #14
0
    // Реализовываем наследуемые IPointerEnterHandler, IPointerExitHandler
    // описывая следующие две функции соответсвенно, они реагируют на начало
    // нашего контакта с картой и на момент когда этот контакт теряем
    public void OnPointerEnter(PointerEventData eventData)
    {
        // Если мы не перемещаем карту, выходим ничего не делая
        if (!eventData.pointerDrag)
        {
            return;
        }

        // Даем знать промежуточной карте ее текущее игровом поле
        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card)
        {
            card.dischargeCardParent = this.transform;
        }
    }
Example #15
0
    GameOverReason CheckGameOver(CardMovement card)
    {
        CardData.Settings cardData = card.GetCardData();
        if (cardData == null)
        {
            return(GameOverReason.OutOfCards);
        }
        if (cardManager._yearsPassed > MAX_AGE)
        {
            return(GameOverReason.Aged);
        }

        if (cardManager.loveLevel <= 0)
        {
            return(GameOverReason.NoLove);
        }
        if (cardManager.loveLevel >= MAX_LEVEL)
        {
            return(GameOverReason.FullLove);
        }
        if (cardManager.moneyLevel <= 0)
        {
            return(GameOverReason.NoMoney);
        }
        if (cardManager.moneyLevel >= MAX_LEVEL)
        {
            return(GameOverReason.FullMoney);
        }
        if (cardManager.healthLevel <= 0)
        {
            return(GameOverReason.NoHealth);
        }
        if (cardManager.healthLevel >= MAX_LEVEL)
        {
            return(GameOverReason.FullHealth);
        }
        if (cardManager.familyLevel <= 0)
        {
            return(GameOverReason.NoFun);
        }
        if (cardManager.familyLevel >= MAX_LEVEL)
        {
            return(GameOverReason.FullFun);
        }

        return(GameOverReason.Alive);
    }
Example #16
0
        public async Task <IActionResult> MoveCardAsync([FromBody] CardMovement cardMovement)
        {
            Column NewColumn = await _context.Columns.FindAsync(cardMovement.NewColumnID);

            Card ToMove = await _context.Cards.FindAsync(cardMovement.CardID);

            Column OldColumn = await _context.Columns.FindAsync(ToMove.ColumnId);

            ToMove.ColumnId = NewColumn.ID;

            OldColumn.Cards.Remove(ToMove);
            NewColumn.Cards.Append(ToMove);

            await _context.SaveChangesAsync();

            return(Ok(new { card = ToMove.ID, column = NewColumn.ID }));
        }
Example #17
0
    public void OnPointerExit(PointerEventData eventData)
    {
        if (!eventData.pointerDrag)
        {
            return;
        }

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        // Дополнительное условие, которое возвращает карту на свое старое место,
        // в случае если мы ее опустим не в игровом поле

        if (card && card.tempCardParent == this.transform)
        {
            card.tempCardParent = card.Parent;
        }
    }
Example #18
0
    public void OnPointerEnter(PointerEventData eventData)
    {
        //проверяется, перетягивается ли какой-нибудь объект
        if (eventData.pointerDrag == null ||
            Type == FieldType.ENEMY_FIELD ||
            Type == FieldType.ENEMY_HAND ||
            Type == FieldType.SELF_HAND)
        {
            return;
        }

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card)
        {
            card.defaultTempCardParent = transform;
        }
    }
Example #19
0
    public void OnDrop(PointerEventData eventData)
    {
        if (Type != FieldType.SELF_FIELD)
        {
            return;
        }

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card && card.gameManager.playerFieldCards.Count < 6 && !card.GetComponent <CardInfo>().card.IsPLaced)
        {
            card.gameManager.playerHandCards.Remove(card.GetComponent <CardInfo>());
            card.gameManager.playerFieldCards.Add(card.GetComponent <CardInfo>());
            card.DefaultParent = transform;

            card.GetComponent <CardInfo>().card.IsPLaced = true;
        }
    }
Example #20
0
    // Описывая функцию OnDrop мы реализует наследуемый IDropHandler интерфейс,
    // функция срабатывает в момент после того как мы "опустили" карту на стол

    public void OnDrop(PointerEventData eventData)
    {
        // Узнаем игровое поле, на которое упала карта
        // и присваиваем его упавшей карте как стандартное

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card)
        {
            card.valet.SetActive(true);
            card.tempCard.transform.SetParent(GameObject.Find("Canvas").transform);
            card.tempCard.transform.localPosition = new Vector3(-2000, -2000);
            card.dischargeCard.transform.SetParent(GameObject.Find("Canvas").transform);
            card.dischargeCard.transform.localPosition = new Vector3(-2000, -2000);
            GameObject.Find("Manager").GetComponent <AudioSource>().Play();
            card.Die();
        }
    }
Example #21
0
    // Start is called before the first frame update
    public void Initialize(Card[] cardList)
    {
        Cleanup();
        for (var i = 0; i < cardList.Length; i++)
        {
            var          cardConfiguration = cardConfigurations.Find(x => x.card.type == cardList[i].type);
            CardMovement cardMovement      = Instantiate(cardPrefab).GetComponent <CardMovement>();
            cardMovement.transform.SetParent(this.transform);
            cardMovement.Initialize(cardConfiguration);
            cardMovement.sprite.sortingOrder = -(cards.Count + Math.Abs(i - 5));
            cards.Add(cardMovement);
            cardMovement.Played += CardMovementOnPlayed;
        }


        collider = this.GetComponent <BoxCollider>();

        PositionCards();
    }
Example #22
0
    public void OnPointerEnter(PointerEventData eventData)
    {
        if (eventData.pointerDrag == null)
        {
            return;
        }

        if (FieldType != FieldType.playerActive)
        {
            return;
        }

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card)
        {
            card.TempCardTransform = transform;
        }
    }
Example #23
0
    public void OnDrop(PointerEventData eventData)
    {
        if (Type != FieldType.SELF_FIELD)
        {
            return;
        }

        //Получаем объект (карту), которую мы переносим над областью игрового полz
        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card)
        //&& card.LogicManager.PlayerFieldCards.Count <= 5 &&
        // card.LogicManager.IsPlayerTurn)
        {
            //card.LogicManager.PlayerFieldCards.Remove(card.GetComponent<CardInfo>());
            //card.LogicManager.PlayerFieldCards.Add(card.GetComponent<CardInfo>());
            //устанавливаем в качестве дефолтного родителя себя
            card.defaultParent = transform;
        }
    }
Example #24
0
    public void OnPointerExit(PointerEventData eventData)
    {
        if (!eventData.pointerDrag)
        {
            return;
        }

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        // Дополнительное условие, которое возвращает карту на свое старое место,
        // в случае если мы ее опустим не в игровом поле

        if (card)
        {
            card.dischargeCardParent = GameObject.Find("Canvas").transform;
            card.dischargeCardParent.localPosition = new Vector3(-2000, -2000);
            card.dischargeCard.transform.SetParent(GameObject.Find("Canvas").transform);
            card.dischargeCard.transform.localPosition = new Vector3(-2000, -2000);
        }
    }
    public void OnDrop(PointerEventData data)
    {
        Debug.Log(gameObject.name);

        CardMovement dragObj = data.pointerDrag.GetComponent <CardMovement>();

        if (dragObj != null)
        {
            dragObj.parentTransform = this.transform;
            Debug.Log(gameObject.name + "に" + data.pointerDrag.name + "をドロップ(while)");
            if (dragObj.tag == "if")
            {
                C.GetComponent <UnityChanAttempt>().ActivateOnCollisionStayOnWhile();
            }
            else
            {
                ToDoTaskName = dragObj.tag;
            }
        }
    }
Example #26
0
    public void OnDrop(PointerEventData eventData)//OnEndDragより先に起きる
    {
        Debug.Log("OnDrop");

        CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>();

        if (card != null)
        {
            //既存の建物を破壊
            //DemolishBuilding();

            card.parentAfterDrag   = this.transform;
            card.positionAfterDrag = this.transform.position;
            this.building          = card.GetComponent <CardBuildingController>();
            hand.Build(building);
            GameManager.Instance.isBuilding = false;
            Debug.Log("GetBuilding: " + this.building);
            //Debug.Log("Handcount: " + hand.model.cards.Count);
        }
    }
Example #27
0
    void OnCardSwiped(CardMovement swipedCard)
    {
        CardData.Outcome outcome = swipedCard.GetSwipeOutcome();
        cardManager.ComputeSwipeOutcome(outcome);
        FillParametersDisplay();
        DisplayPlayerData();
        ResetSelectors();

        CardData.Settings card = cardManager.PickCard();

        CardMovement   nextCard   = (swipedCard == cardGOs [0]) ? cardGOs [1] : cardGOs [0];
        GameOverReason overReason = CheckGameOver(nextCard);

        if (overReason == GameOverReason.Alive)
        {
            swipedCard.SetCardData(card);
            DisplayCardData(nextCard);
        }
        else
        {
            GameOver.SetupGameOver(overReason, cardManager._initialAge + cardManager._yearsPassed);
            Scenes.LoadScene(Scenes.GameOver);
        }
    }
Example #28
0
        void Update()
        {
            Vector3 mousePosition = Input.mousePosition;

            mouseWorldPosition   = Camera.main.ScreenToWorldPoint(mousePosition);
            mouseWorldPosition.z = 0;
            card?.OnMouseMove(mouseWorldPosition);

            if (isEnabled)
            {
                Ray ray = Camera.main.ScreenPointToRay(mousePosition);
                if (Physics.Raycast(ray, 50f, LayerMask.GetMask("CardManager")))
                {
                    cardsManager.OnMouseHover(mousePosition);
                }

                if (Input.GetMouseButtonDown(0))
                {
                    if (Physics.Raycast(ray, out RaycastHit hit, 50f, LayerMask.GetMask("Card")))
                    {
                        card = hit.transform.GetComponent <CardMovement>();
                        if (card != null)
                        {
                            audioSurce.Play();
                            StartCoroutine(card.DelayedCardMovement(mouseWorldPosition));
                        }
                    }
                }
            }

            if (Input.GetMouseButtonUp(0) && card != null)
            {
                card.inertia = true;
                card         = null;
            }
        }
Example #29
0
 private void Awake()//Awake > Start (処理speed)
 {
     view     = GetComponent <CardView>();
     movement = GetComponent <CardMovement>();
 }
Example #30
0
 private void Awake()
 {
     view     = GetComponent <CardView>();
     movement = GetComponent <CardMovement>();
 }