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); }
/// <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("选择完毕"); }
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); }
private void SelectCardOnMouseLeave(SelectCard selectCard) { SelectCardPreviewRawImage.enabled = false; if (currentPreviewCard) { currentPreviewCard.PoolRecycle(); } UIManager.Instance.CloseUIForm <AffixPanel>(); }
public override Message CreateFirstMessage() { SelectCard msg = new SelectCard() { PlayerID = _PlayerId, CardID = _CardId }; return(msg); }
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); }
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); }
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(); }
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); }