Example #1
0
    private void SelectCardOnMouseEnter(SelectCard selectCard)
    {
        if (UIManager.Instance.IsPeekUIForm <CardPreviewPanel>())
        {
            return;
        }
        SelectCardPreviewRawImage.enabled = true;
        if (selectCard.transform.position.y > CurrentPreviewCardMaxPivot.position.y)
        {
            currentPreviewCardContainer.position = new Vector3(selectCard.transform.position.x, CurrentPreviewCardMaxPivot.position.y, selectCard.transform.position.z);
        }
        else if (selectCard.transform.position.y < CurrentPreviewCardMinPivot.position.y)
        {
            currentPreviewCardContainer.position = new Vector3(selectCard.transform.position.x, CurrentPreviewCardMinPivot.position.y, selectCard.transform.position.z);
        }
        else
        {
            currentPreviewCardContainer.position = new Vector3(selectCard.transform.position.x, selectCard.transform.position.y, selectCard.transform.position.z);
        }

        currentPreviewCard = CardBase.InstantiateCardByCardInfo(selectCard.CardInfo.Clone(), currentPreviewCardContainer, CardBase.CardShowMode.SelectedCardPreview);
        currentPreviewCard.transform.localPosition = new Vector3(-180f, 0, 0);
        currentPreviewCard.transform.Translate(0, 0, -1, Space.World);
        currentPreviewCard.transform.localScale = Vector3.one * 20;
        currentPreviewCard.transform.rotation   = Quaternion.Euler(0, 180, 0);
        currentPreviewCard.BeBrightColor();
        currentPreviewCard.ShowCardBloom(true);
        currentPreviewCard.ChangeCardSelectLimit(0);

        UIManager.Instance.ShowUIForms <AffixPanel>().ShowAffixTips(new List <CardInfo_Base> {
            selectCard.CardInfo
        }, null);
    }
Example #2
0
    /// <summary>
    /// 进行一次选牌
    /// </summary>
    private IEnumerator ESelectCardForCardPile(int i)
    {
        var         tuple      = SelectCard.GetCards(i);
        List <Card> firstPile  = tuple.Item1.Shuffle().Take(3).ToList();
        List <Card> secondPile = tuple.Item2.Shuffle().Take(3).ToList();

        List <Card>[] piles = new List <Card>[2] {
            firstPile, secondPile
        };


        gameAnimationSetting.SelectCardForCardPile(firstPile, secondPile, cardPile, tuple.Item3, tuple.Item4);
        gameAnimationSetting.selectPileAction = n =>
        {
            Debug.Log("选择了 " + piles[n].Select(card => card.name).StringJoin(","));
            isGotResponse = true;
            piles[n].ForEach(card =>
            {
                cardPile.AddCard(card, Const.numOfMinionsInCardPile[card.star - 1]);
                SelectCard.Remove(card);
            });
        };

        if (isTest)
        {
            gameAnimationSetting.selectPileAction.Invoke(0);
            yield break;
        }

        yield return(StartCoroutine(WaitForGotResponse()));

        //Debug.Log("选择完毕");
    }
Example #3
0
    private SelectCard GenerateNewSelectCard(CardBase card)
    {
        Transform parenTransform;

        if (card.CardInfo.BaseInfo.CardType == CardTypes.Mech && !card.CardInfo.MechInfo.IsSoldier)
        {
            parenTransform = HeroCardsContainer;
        }
        else
        {
            parenTransform = OtherCardsContainer;
        }

        SelectCard newSC     = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.SelectCard].AllocateGameObject <SelectCard>(parenTransform);
        Color      cardColor = ClientUtils.HTMLColorToColor(card.CardInfo.GetCardColor());

        newSC.Initiate(
            count: 1,
            cardInfo: card.CardInfo,
            enterHandler: SelectCardOnMouseEnter,
            leaveHandler: SelectCardOnMouseLeave,
            color: new Color(cardColor.r, cardColor.g, cardColor.b, 1f)
            );
        newSC.CardButton.onClick.AddListener(delegate { UnSelectCard(card, SelectCardMethods.CardClick); });

        return(newSC);
    }
 //1.入口/读身份证
 public void Goin()
 {
     isLoading     = false;
     error         = null;
     sp.Visibility = Visibility.Hidden;
     SelectCard.GetObject().BeforeGoin(LoadData);
     SelectCard.GetObject().Goin();
 }
        public void SelectCardResponse(byte[] bytes)
        {
            //no response is required so conversation is finished
            SelectCard msg = Message.Decode <SelectCard>(bytes);

            Game game = gameList.Find(x => x.gameId == msg.GameId);

            game.SelectCard(msg.PlayerID, msg.CardID);
        }
Example #6
0
 private void SelectCardOnMouseLeave(SelectCard selectCard)
 {
     SelectCardPreviewRawImage.enabled = false;
     if (currentPreviewCard)
     {
         currentPreviewCard.PoolRecycle();
     }
     UIManager.Instance.CloseUIForm <AffixPanel>();
 }
Example #7
0
        public override Message CreateFirstMessage()
        {
            SelectCard msg = new SelectCard()
            {
                PlayerID = _PlayerId,
                CardID   = _CardId
            };

            return(msg);
        }
Example #8
0
    public override void OnClick(CardObject card)
    {
        //Don't let user make multiple components by dragging out of the screen
        if (card.GetComponent <SelectCard>())
        {
            return;
        }

        SelectCard select = card.gameObject.AddComponent <SelectCard>();

        select.SetObject(card);
    }
Example #9
0
        public void EncodeAndDecode_SelectCard()
        {
            MessageId  msgId  = new MessageId();
            MessageId  convId = new MessageId();
            SelectCard msg1   = new SelectCard()
            {
                MsgId = msgId, ConvId = convId, PlayerID = 2, CardID = CardTypes.Pudding
            };

            byte[] bytes = msg1.Encode();

            SelectCard msg2 = Message.Decode <SelectCard>(bytes);

            Assert.IsNotNull(msg2);
            Assert.AreEqual(msg1.MsgId, msg2.MsgId);
            Assert.AreEqual(msg1.ConvId, msg2.ConvId);
            Assert.AreEqual(msg1.CardID, msg2.CardID);
            Assert.AreEqual(msg1.PlayerID, msg2.PlayerID);
        }
Example #10
0
    public IEnumerator EGameStart()
    {
        yield return(StartCoroutine(EIntroSence()));

GameStart:
        defeatedEnemy.Clear();
        yield return(StartCoroutine(EStartSence()));

        if (returnValue == 0) // 开始游戏
        {
        }
        else
        {
            yield return(StartCoroutine(EShowCollection()));

            //yield return StartCoroutine(EGameStart());
            goto GameStart;
        }

        yield return(StartCoroutine(ESelectHero()));

        if (returnValue == -1) // 返回
        {
            //yield return StartCoroutine(EGameStart());
            goto GameStart;
        }

        EnemyManager.CreateEnemy();
        cardPile.cardPile.Clear();
        SelectCard.Init();

        //FillCardPileWith1StarMinion(cardPile);
        //yield return StartCoroutine(ESelectTreasure());

        //yield return StartCoroutine(ESelectTreasure());

        for (int i = 0; i < 14; i++)
        {
            Debug.Log("选择第" + (i + 1) + "堆");
            yield return(StartCoroutine(ESelectCardForCardPile(i)));
        }

        //int tmp = random.Next(4); //For Test

        for (int i = 0; i < MaxLevel; i++)
        {
            Const.Reset();
            yield return(StartCoroutine(EStartLevel(i)));

            if (returnValue == 0) // win
            {
                if (i != 3)
                {
                    yield return(StartCoroutine(ESelectTreasure()));

                    for (int j = 14 + 2 * i; j < 16 + 2 * i; j++)
                    {
                        yield return(StartCoroutine(ESelectCardForCardPile(j)));
                    }
                }
            }
            else // lose
            {
                yield return(StartCoroutine(ESummary()));

                goto GameStart;
            }
        }
        yield return(StartCoroutine(ESummary()));

        //yield return StartCoroutine(EGameStart());
        goto GameStart;
    }
 //1.入口/读身份证
 public void Goin()
 {
     timeTag = CD.timeTag.updateTag();
     SelectCard.GetObject().BeforeGoin(LoadDataAsync);
     SelectCard.GetObject().Goin();
 }
Example #12
0
    private bool SelectCard(CardBase card, SelectCardMethods selectCardMethod, int leftCoin_SelectAll = 0)
    {
        if (IsReadOnly)
        {
            if (Client.Instance.IsPlaying())
            {
                NoticeManager.Instance.ShowInfoPanelCenter(LanguageManager.Instance.GetText("Notice_SelectBuildManagerSelect_CannotEditWhenPlaying"), 0, 0.1f);
            }
            else if (Client.Instance.IsMatching())
            {
                NoticeManager.Instance.ShowInfoPanelCenter(LanguageManager.Instance.GetText("Notice_SelectBuildManagerSelect_CannotEditWhenPlaying"), 0, 0.1f);
            }
            return(false);
        }

        if (CurrentEditBuildButton == null)
        {
            OnCreateNewBuildButtonClick();
            NoticeManager.Instance.ShowInfoPanelCenter(LanguageManager.Instance.GetText("Notice_SelectBuildManagerSelect_DeckCreatedPleaseSelectCards"), 0f, 1f);
            return(false);
        }

        if (selectCardMethod != SelectCardMethods.SwitchBuildButton)
        {
            int leftCoin = (selectCardMethod == SelectCardMethods.ButtonClick) ? leftCoin_SelectAll : (CurrentGamePlaySettings.DefaultMaxCoin - CurrentEditBuildButton.BuildInfo.BuildConsumeCoin);
            if (leftCoin < card.CardInfo.BaseInfo.Coin)
            {
                if ((selectCardMethod & SelectCardMethods.SingleSelect) == selectCardMethod)
                {
                    NoticeManager.Instance.ShowInfoPanelCenter(LanguageManager.Instance.GetText("Notice_SelectBuildManagerSelect_BudgetLimited"), 0f, 1f);
                }

                return(false);
            }
        }

        bool isHero = card.CardInfo.BaseInfo.CardType == CardTypes.Mech && !card.CardInfo.MechInfo.IsSoldier;
        Dictionary <int, SelectCard> selectCards = isHero ? SelectedHeroes : SelectedCards;

        if (isHero && isSelectedHeroFull)
        {
            if ((selectCardMethod & SelectCardMethods.SingleSelect) == selectCardMethod)
            {
                NoticeManager.Instance.ShowInfoPanelCenter(LanguageManager.Instance.GetText("Notice_SelectBuildManagerSelect_HeroesNumberUpperLimit"), 0, 1f);
            }

            return(false);
        }

        if ((selectCardMethod & SelectCardMethods.SingleSelect) == selectCardMethod)
        {
            card.SetBannerType(CardNoticeComponent.BannerTypes.None);
        }

        StoryManager.Instance.JustGetNewCards.Remove(card.CardInfo.CardID);
        if (selectCards.ContainsKey(card.CardInfo.CardID))
        {
            SelectCard sc = selectCards[card.CardInfo.CardID];
            if (sc.Count >= card.CardInfo.BaseInfo.LimitNum)
            {
                if ((selectCardMethod & SelectCardMethods.SingleSelect) == selectCardMethod)
                {
                    NoticeManager.Instance.ShowInfoPanelCenter(string.Format(LanguageManager.Instance.GetText("Notice_SelectBuildManagerSelect_OnlyTakeSeveralCards"), card.CardInfo.BaseInfo.LimitNum), 0, 0.7f);
                }

                return(false);
            }

            int count = ++sc.Count;
            card.SetBlockCountValue(count);
        }
        else
        {
            SelectCard newSC = GenerateNewSelectCard(card);
            selectCards.Add(card.CardInfo.CardID, newSC);
            if ((selectCardMethod & SelectCardMethods.SingleSelect) == selectCardMethod)
            {
                SortSelectCards();
            }
            card.SetBlockCountValue(1);
            card.BeBrightColor();
            card.ShowCardBloom(true);
        }

        if (isHero)
        {
            HeroCardCount++;
        }
        else
        {
            SelectCardCount++;
        }

        if (selectCardMethod != SelectCardMethods.SwitchBuildButton)
        {
            CurrentEditBuildButton.AddCard(card.CardInfo.CardID);
            if (selectCardMethod == SelectCardMethods.CardClick)
            {
                AudioManager.Instance.SoundPlay("sfx/SelectCard");
            }

            if ((selectCardMethod & SelectCardMethods.SingleSelect) == selectCardMethod)
            {
                RefreshCoinLifeEnergy();
            }
        }

        return(true);
    }