Exemplo n.º 1
0
        public void Move(MoveCardCommand command)
        {
            var card = _dbContext.Cards.SingleOrDefault(x => x.Id == command.CardId);

            card.ColumnId = command.ColumnId;
            _dbContext.SaveChanges();
        }
Exemplo n.º 2
0
    private IEnumerator PlayResource(Transform card, Card cardData)
    {
        card.Find("CardBack").gameObject.SetActive(false);
        AdjustHeroResources(cardData);

        DelayCommand dc = new DelayCommand(GameManager.Instance.GetActiveHand(true), 1f);

        dc.AddToQueue();

        yield return(new WaitForSeconds(1));

        MoveCardCommand mc = new MoveCardCommand(card.gameObject, GameManager.Instance.GetActiveDiscardPile(true));

        mc.AddToQueue();

        if (cardData is StarterData)
        {
            StarterData sd = (StarterData)cardData;
            RemoveCardFromHand(sd);
            AddCardToDiscardPile(sd);
        }
        else if (cardData is EssentialsData)
        {
            EssentialsData ed = (EssentialsData)cardData;
            RemoveCardFromHand(ed);
            AddCardToDiscardPile(ed);
        }
    }
Exemplo n.º 3
0
 public IActionResult MoveCard([FromBody] MoveCardCommand command)
 {
     return(Ok(new
     {
         Moved = true
     }));
 }
Exemplo n.º 4
0
    private IEnumerator PromoteMinion(Transform card, CardVisual cv)
    {
        yield return(new WaitForSeconds(1));

        int cost = int.Parse(cv.cost.text);

        GameManager.Instance.ActiveHero(true).AdjustMana(cost, false);

        DelayCommand dc = new DelayCommand(GameManager.Instance.GetActiveHand(true), 1f);

        dc.AddToQueue();

        yield return(new WaitForSeconds(1));

        MoveCardCommand mc = new MoveCardCommand(card.gameObject, GameManager.Instance.GetActiveMinionZone(true));

        mc.AddToQueue();

        cv.AdjustHealth(2, true);
        cv.PromotedHealth = cv.CurrentHealth;

        if (cv.Md != null)
        {
            RemoveCardFromHand(cv.Md);
        }
        else
        {
            RemoveCardFromHand(cv.Sd);
        }

        card.Find("CardBack").gameObject.SetActive(false);
    }
Exemplo n.º 5
0
        public Task <MoveCardCommandResult> MoveCard(MoveCardCommand command)
        {
            Task <MoveCardCommandResult> result;

            result = _mediator.Send(command);

            return(result);
        }
Exemplo n.º 6
0
        public IActionResult MoveCard([FromBody] MoveCardCommand command)
        {
            _boardService.Move(command);

            return(Ok(new
            {
                Moved = true
            }));
        }
        public void Move(MoveCardCommand command)
        {
            var card = _dbContext.Cards.SingleOrDefault(x => x.CardID == command.CardId);

            if (card != null)
            {
                card.ColumnID = command.ColumnId;
            }
            _dbContext.SaveChanges();
        }
Exemplo n.º 8
0
    //This function is called when PostNotification is called on the SACRIFICE_SELECTED event and isPromoting is true
    public void PromoteMinionWithPlayback()
    {
        DelayCommand dc = new DelayCommand(GameManager.Instance.GetActiveHand(true), 1f);

        dc.AddToQueue();

        MoveCardCommand mc = new MoveCardCommand(GameManager.Instance.MinionToSacrifice,
                                                 GameManager.Instance.GetActiveDiscardPile(true), UIManager.Instance.GetActiveDiscardList(true));

        mc.AddToQueue();
        //GameManager.Instance.MoveCard(GameManager.Instance.MinionToSacrifice, GameManager.Instance.GetActiveDiscardPile(true), GameManager.Instance.GetActiveDiscardPileList(true), true);
        MoveCardFromHand(true);
    }
Exemplo n.º 9
0
    public void move(MoveCardCommand cmd)
    {
        cmd.run();

        // remove commands after prev cmd idx
        // becase new cmd comming, old cmd history branch should remove
        int n = _cmds.Count - (PrevCmdIdx + 1);

        if (n > 0)
        {
            _cmds.RemoveRange(PrevCmdIdx + 1, n);
        }

        _cmds.Add(cmd);
        PrevCmdIdx = _cmds.Count - 1;
    }
Exemplo n.º 10
0
    private IEnumerator SendCardToDiscard(Transform card, CardVisual cv)
    {
        DelayCommand dc = new DelayCommand(GameManager.Instance.GetActiveHand(true), 1f);

        dc.AddToQueue();

        yield return(new WaitForSeconds(1f));

        MoveCardCommand mc = new MoveCardCommand(card.gameObject, GameManager.Instance.GetActiveDiscardPile(true));

        mc.AddToQueue();

        if (cv.Md != null)
        {
            AddCardToDiscardPile(cv.Md);
        }
        else
        {
            AddCardToDiscardPile(cv.Sd);
        }
    }
Exemplo n.º 11
0
    //This function is called when PostNotification is called on the SACRIFICE_SELECTED event and isPromoting is true
    public void PromoteMinionWithPlayback()
    {
        DelayCommand dc = new DelayCommand(GameManager.Instance.GetActiveHand(true), 1f);

        dc.AddToQueue();

        MoveCardCommand mc = new MoveCardCommand(GameManager.Instance.MinionToSacrifice,
                                                 GameManager.Instance.GetActiveDiscardPile(true), UIManager.Instance.GetActiveDiscardList(true));

        mc.AddToQueue();
        //GameManager.Instance.MoveCard(GameManager.Instance.MinionToSacrifice, GameManager.Instance.GetActiveDiscardPile(true), GameManager.Instance.GetActiveDiscardPileList(true), true);

        CardVisual        cv = GameManager.Instance.MinionToSacrifice.GetComponent <CardVisual>();
        MinionDataPhoton  mdp;
        StarterDataPhoton sdp;

        byte[] cardByte;
        string type;

        if (cv.Md != null)
        {
            mdp      = new MinionDataPhoton(cv.Md);
            cardByte = DataHandler.Instance.ObjectToByteArray(mdp);
            type     = "Minion";
        }
        else
        {
            sdp      = new StarterDataPhoton(cv.Sd);
            cardByte = DataHandler.Instance.ObjectToByteArray(sdp);
            type     = "Starter";
        }

        object[] data = new object[] { cardByte, type };
        PlayCardPun.Instance.SendData(REMOVE_MINION, data);

        MoveCardFromHand(true);
    }
Exemplo n.º 12
0
    private void MoveCardFromHand(bool isMinion)
    {
        bool         promote = false;
        DelayCommand dc      = new DelayCommand(GameManager.Instance.GetActiveHand(true), 1f);

        dc.AddToQueue();
        card = gameObject;
        CardVisual cv = card.GetComponent <CardVisual>();

        byte[]               cardByte;
        MinionDataPhoton     mdp;
        StarterDataPhoton    sdp;
        EssentialsDataPhoton edp;
        string               type;

        if (isMinion)
        {
            Card cardData = card.GetComponent <CardVisual>().CardData;
            if (UIManager.Instance.GetActiveHandList(true).Contains(cardData))
            {
                UIManager.Instance.GetActiveHandList(true).Remove(cardData);
            }

            if (GameManager.Instance.IsPromoting)
            {
                card = GameManager.Instance.MinionToPromote;
                StartOrCancelPromotionEvent(false);
                summonPanel.SetActive(false);
                cv.AdjustHealth(2, true);
                cv.IsPromoted     = true;
                cv.PromotedHealth = cv.CurrentHealth;
                promote           = true;
            }

            MoveCardCommand mc = new MoveCardCommand(card, GameManager.Instance.GetActiveMinionZone(true));
            mc.AddToQueue();

            //Add Condition Scripts
            if (thisCard is MinionData)
            {
                GameManager.Instance.GetComponent <ConditionAndEffectAssigner>().Md   = thisCard as MinionData;
                GameManager.Instance.GetComponent <ConditionAndEffectAssigner>().Card = card;
                EventManager.Instance.PostNotification(EVENT_TYPE.ASSIGN_CONDITIONS);
            }

            if (!StartGameController.Instance.tutorial)
            {
                if (thisCard is MinionData)
                {
                    mdp      = new MinionDataPhoton(cv.Md);
                    cardByte = DataHandler.Instance.ObjectToByteArray(mdp);
                    type     = "Minion";
                }
                else
                {
                    sdp      = new StarterDataPhoton(cv.Sd);
                    cardByte = DataHandler.Instance.ObjectToByteArray(sdp);
                    type     = "Starter";
                }

                object[] data = new object[] { cardByte, type };
                if (!promote)
                {
                    PlayCardPun.Instance.SendData(PLAY_MINION, data);
                }
                else
                {
                    PlayCardPun.Instance.SendData(PROMOTE_MINION, data);
                }
            }
        }
        else
        {
            Card cardData = card.GetComponent <CardVisual>().CardData;
            if (UIManager.Instance.GetActiveHandList(true).Contains(cardData))
            {
                UIManager.Instance.GetActiveHandList(true).Remove(cardData);
            }

            //GameManager.Instance.MoveCard(card, GameManager.Instance.GetActiveDiscardPile(true), GameManager.Instance.GetActiveDiscardPileList(true), true);

            int position = 0;
            if (thisCard is StarterData)
            {
                position = gameObject.transform.GetSiblingIndex();
                type     = "Starter";
            }
            else
            {
                position = gameObject.transform.GetSiblingIndex();
                type     = "Essential";
            }

            if (!StartGameController.Instance.tutorial)
            {
                object[] data = new object[] { position, type };
                PlayCardPun.Instance.SendData(PLAY_RESOURCE, data);
            }

            MoveCardCommand mc = new MoveCardCommand(card, GameManager.Instance.GetActiveDiscardPile(true), UIManager.Instance.GetActiveDiscardList(true));
            mc.AddToQueue();
        }

        AdjustHeroResources();
    }
Exemplo n.º 13
0
 public async Task <IActionResult> MoveCard([FromBody] MoveCardCommand command)
 {
     return(Ok(await Mediator.Send(command)));
 }
Exemplo n.º 14
0
    private void MoveCardFromHand(bool isMinion)
    {
        DelayCommand dc = new DelayCommand(GameManager.Instance.GetActiveHand(true), 1f);

        dc.AddToQueue();
        card = gameObject;
        CardVisual cv = card.GetComponent <CardVisual>();

        if (isMinion)
        {
            Card cardData = card.GetComponent <CardVisual>().CardData;
            if (UIManager.Instance.GetActiveHandList(true).Contains(cardData))
            {
                UIManager.Instance.GetActiveHandList(true).Remove(cardData);
            }

            if (GameManager.Instance.IsPromoting)
            {
                card = GameManager.Instance.MinionToPromote;
                StartOrCancelPromotionEvent(false);
                summonPanel.SetActive(false);
                cv.AdjustHealth(2, true);
                cv.IsPromoted     = true;
                cv.PromotedHealth = cv.CurrentHealth;
            }

            MoveCardCommand mc = new MoveCardCommand(card, GameManager.Instance.GetActiveMinionZone(true));
            mc.AddToQueue();

            //Add Condition Scripts
            if (thisCard is MinionData)
            {
                //GameManager.Instance.GetComponent<ConditionAndEffectAssigner>().Md = thisCard as MinionData;
                //GameManager.Instance.GetComponent<ConditionAndEffectAssigner>().Card = card;
                //EventManager.Instance.PostNotification(EVENT_TYPE.ASSIGN_CONDITIONS);

                gameObject.AddComponent <TutorialConditionListener>();
                gameObject.GetComponent <TutorialConditionListener>().ConditionEvent = EVENT_TYPE.TAP_MINION;
                if (thisCard.MinionID == 4)
                {
                    gameObject.AddComponent <DrawCardListener>();
                }
                else if (thisCard.MinionID == 101)
                {
                    gameObject.AddComponent <BuffMinionStarter>();
                    gameObject.AddComponent <EssentialListener>();
                    gameObject.GetComponent <EssentialListener>().Type = "Gold";
                }
                gameObject.GetComponent <TutorialConditionListener>().Card    = gameObject;
                gameObject.GetComponent <TutorialConditionListener>().Md      = thisCard as MinionData;
                gameObject.GetComponent <TutorialConditionListener>().enabled = true;
            }

            cv.particleGlow.gameObject.SetActive(false);
        }
        else
        {
            Card cardData = card.GetComponent <CardVisual>().CardData;
            if (UIManager.Instance.GetActiveHandList(true).Contains(cardData))
            {
                UIManager.Instance.GetActiveHandList(true).Remove(cardData);
            }

            MoveCardCommand mc = new MoveCardCommand(card, GameManager.Instance.GetActiveDiscardPile(true), UIManager.Instance.GetActiveDiscardList(true));
            mc.AddToQueue();
            //GameManager.Instance.MoveCard(card, GameManager.Instance.GetActiveDiscardPile(true), GameManager.Instance.GetActiveDiscardPileList(true), true);
        }

        AdjustHeroResources();

        //Increase Count in TutorialUI
        int count    = StartGameController.Instance.TutorialObject.GetComponent <TutorialTextController>().count;
        int maxCount = StartGameController.Instance.TutorialObject.GetComponent <TutorialTextController>().maxCount;

        if (count < maxCount)
        {
            StartGameController.Instance.TutorialObject.GetComponent <TutorialTextController>().count++;
        }
        else
        {
            StartGameController.Instance.TutorialObject.GetComponent <TutorialTextController>().ShowUI();
        }

        TutorialPlayCard tpc = gameObject.GetComponent <TutorialPlayCard>();

        Destroy(tpc);
    }