public void SetData() { for (int i = 0; i < 4; i++) { PlayerList[i].SetActive(false); } for (int i = 0; i < PartGameOverControl.instance.SettleInfoList.Count; i++) { PartGameOverControl.instance.SettleInfoList[i].LeftCardList = CardTools.CardValueSort(PartGameOverControl.instance.SettleInfoList[i].LeftCardList); PlayerList[i].SetActive(true); PlayerList[i].transform.GetComponent <UILabel>().text = GameDataFunc.GetPlayerInfo((byte)PartGameOverControl.instance.SettleInfoList[i].Pos).name.ToString(); PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos] = new List <GameObject>(); int count = PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos].Count; for (int j = 0; j < count; j++) { Destroy(PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos][j]); } PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos] = new List <GameObject>(); for (int j = 0; j < PartGameOverControl.instance.SettleInfoList[i].LeftCardList.Count; j++) { GameObject g = GameObject.Instantiate(CardObj, PlayerList[i].transform.Find("CardPoint")); g.transform.localScale = new Vector3(0.6f, 0.6f, 0.4f); g.transform.localPosition = new Vector3(j * 25, 0, 0); g.SetActive(true); g.transform.GetComponent <Card>().SetValue(PartGameOverControl.instance.SettleInfoList[i].LeftCardList[j]); PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos].Add(g); } } }
public void ProcessAction(GameObject input) { if (!input.CompareTag("Card")) { return; } if (UtilsScript.Instance.selectedCards.Count != 1) { throw new System.ArgumentException("utils.selectedCards must be of size 1"); } GameObject selectedCard = UtilsScript.Instance.selectedCards[0]; if (CardTools.CanMatch(input.GetComponent <CardScript>(), selectedCard.GetComponent <CardScript>())) { UtilsScript.Instance.Match(input, selectedCard); } }
/// <summary> /// 判定出牌音效 /// </summary> /// <param name="cardlist"></param> public void CheckOperateSoundType(List <uint> cardlist, int sex) { cardlist = CardTools.CardValueSort(cardlist);//按值排序 switch (cardlist.Count) { case 0: int a = UnityEngine.Random.Range(1, 3); if (sex == 1) { SoundManager.Instance.PlaySound(UIPaths.GUOPAI_MAN + a.ToString()); } else { SoundManager.Instance.PlaySound(UIPaths.GUOPAI_WOMAN + a.ToString()); } break; case 1: int value = (int)cardlist[cardlist.Count - 1] % 100; if (sex == 1) { SoundManager.Instance.PlaySound(UIPaths.SINGLE_MAN + value.ToString()); } else { SoundManager.Instance.PlaySound(UIPaths.SINGLE_WOMAN + value.ToString()); } // SoundManager.Instance.PlaySound(UIPaths.SINGLE + value.ToString()); break; case 2: int value1 = (int)cardlist[cardlist.Count - 1] % 100; if (sex == 1) { SoundManager.Instance.PlaySound(UIPaths.DOUBLE_MAN + value1.ToString()); } else { SoundManager.Instance.PlaySound(UIPaths.DOUBLE_WOMAN + value1.ToString()); } //if (value1 > 2 && value1 < 16) //{ // SoundManager.Instance.PlaySound(UIPaths.DOUBLE + value1.ToString()); //} //else //{ // int value2 = (int)cardlist[1] % 100; // if (value2 > 2 && value2 < 16) // { // SoundManager.Instance.PlaySound(UIPaths.DOUBLE + value2.ToString()); // } // else // { // //对王 // } //} break; case 3: int value2 = (int)cardlist[cardlist.Count - 1] % 100; // SoundManager.Instance.PlaySound(UIPaths.THREECARD); if (sex == 1) { SoundManager.Instance.PlaySound(UIPaths.TRIPLE_MAN + value2.ToString()); } else { SoundManager.Instance.PlaySound(UIPaths.TRIPLE_WOMAN + value2.ToString()); } break; default: LandlordPokerType type = LandlordPokerType.None; try { // type = myQiPaiHelper.Instance.checkPokerType(cardlist); } catch (Exception e) { } switch (type) { case LandlordPokerType.Bomb: if (sex == 1) { SoundManager.Instance.PlaySound(UIPaths.BOOM_MAN); } else { SoundManager.Instance.PlaySound(UIPaths.BOOM_WOMAN); } SoundManager.Instance.PlaySound(UIPaths.BOOM); CardTypeAnim.Instance.PlayBoomAnim(); break; case LandlordPokerType.ContinueDoube: if (sex == 1) { SoundManager.Instance.PlaySound(UIPaths.LIANDUI_MAN); } else { SoundManager.Instance.PlaySound(UIPaths.LIANDUI_WOMAN); } // SoundManager.Instance.PlaySound(UIPaths.LIANDUI); CardTypeAnim.Instance.PlayLianDuiAnim(); break; case LandlordPokerType.ShuZi: if (sex == 1) { SoundManager.Instance.PlaySound(UIPaths.SHUNZHI_MAN); } else { SoundManager.Instance.PlaySound(UIPaths.SHUNZHI_WOMAN); } // SoundManager.Instance.PlaySound(UIPaths.SHUNZHI); CardTypeAnim.Instance.PlayShunZhiAnim(); break; case LandlordPokerType.WangBomb: if (sex == 1) { SoundManager.Instance.PlaySound(UIPaths.ROCK_MAN); } else { SoundManager.Instance.PlaySound(UIPaths.ROCK_WOMAN); } SoundManager.Instance.PlaySound(UIPaths.ROCK); CardTypeAnim.Instance.PlayRockAnim(); break; } break; } }
public void ProcessAction(GameObject input) { GameObject selectedCard = UtilsScript.Instance.selectedCards[0]; CardScript selectedCardScript = selectedCard.GetComponent <CardScript>(); if (input.CompareTag("Card")) { CardScript inputCardScript = input.GetComponent <CardScript>(); if (UtilsScript.Instance.selectedCards.Count == 1) { if (CardTools.CanMatch(inputCardScript, selectedCardScript)) { UtilsScript.Instance.Match(input, selectedCard); return; } else if (inputCardScript.container.CompareTag("Reactor")) { if (!CardTools.IsSameSuit(input, selectedCard)) { return; } SoundEffectsController.Instance.CardToReactorSound(); selectedCardScript.MoveCard(inputCardScript.container); UtilsScript.Instance.UpdateActions(1, checkGameOver: true); return; } else if (inputCardScript.container.CompareTag("Foundation")) { if (inputCardScript.container.GetComponent <FoundationScript>().cardList[0] != input || inputCardScript.cardNum != selectedCardScript.cardNum + 1) { return; } SoundEffectsController.Instance.CardStackSound(); selectedCardScript.MoveCard(inputCardScript.container); } else { return; } } else if (inputCardScript.container.CompareTag("Foundation")) { if (inputCardScript.container.GetComponent <FoundationScript>().cardList[0] != input || inputCardScript.cardNum != selectedCardScript.cardNum + 1) { return; } SoundEffectsController.Instance.CardStackSound(); for (int i = 0; i < UtilsScript.Instance.selectedCards.Count - 1; i++) //goes through and moves all selesctedCards to clicked location { UtilsScript.Instance.selectedCards[i].GetComponent <CardScript>().MoveCard(inputCardScript.container, isStack: true, showHolo: false); } UtilsScript.Instance.selectedCards[UtilsScript.Instance.selectedCards.Count - 1].GetComponent <CardScript>().MoveCard(inputCardScript.container, isStack: true); } else { return; } } else if (input.CompareTag("Reactor")) { if (UtilsScript.Instance.selectedCards.Count != 1 || !CardTools.IsSameSuit(input, selectedCard)) { return; } SoundEffectsController.Instance.CardToReactorSound(); selectedCardScript.MoveCard(input); UtilsScript.Instance.UpdateActions(1, checkGameOver: true); return; } else if (input.CompareTag("Foundation")) { if (input.GetComponent <FoundationScript>().cardList.Count != 0) { return; } SoundEffectsController.Instance.CardStackSound(); if (UtilsScript.Instance.selectedCards.Count == 1) { selectedCardScript.MoveCard(input); } else { for (int i = 0; i < UtilsScript.Instance.selectedCards.Count - 1; i++) //goes through and moves all selesctedCards to clicked location { UtilsScript.Instance.selectedCards[i].GetComponent <CardScript>().MoveCard(input, isStack: true, showHolo: false); } UtilsScript.Instance.selectedCards[UtilsScript.Instance.selectedCards.Count - 1].GetComponent <CardScript>().MoveCard(input, isStack: true); } } else { return; } UtilsScript.Instance.UpdateActions(1); }
private void FindMoves(GameObject selectedCard) { CardScript selectedCardScript = selectedCard.GetComponent <CardScript>(); int selectedCardNum = selectedCardScript.cardNum; bool cardIsFromFoundation = selectedCardScript.container.CompareTag("Foundation"); bool cardIsFromWastepile = selectedCardScript.container.CompareTag("Wastepile"); bool cardCanBeMatched = true; // if the card is in a foundation and not at the top of it if (cardIsFromFoundation && selectedCard != selectedCardScript.container.GetComponent <FoundationScript>().cardList[0]) { cardCanBeMatched = false; } if (cardCanBeMatched) { foreach (GameObject reactor in Config.config.reactors) { // if the card matches the card in the top of the reactor if (reactor.GetComponent <ReactorScript>().cardList.Count != 0 && CardTools.CanMatch(reactor.GetComponent <ReactorScript>().cardList[0].GetComponent <CardScript>(), selectedCardScript, checkIsTop: false)) { cardMatches.Add(reactor.GetComponent <ReactorScript>().cardList[0]); } } // if the card is not in the reactor if (!selectedCard.GetComponent <CardScript>().container.CompareTag("Reactor")) { // get the reactor that we can match into foreach (GameObject reactor in Config.config.reactors) { if (CardTools.IsSameSuit(selectedCard, reactor)) { reactorMove = reactor; break; } } } } foreach (GameObject foundation in Config.config.foundations) { if (foundation.GetComponent <FoundationScript>().cardList.Count != 0) { CardScript topFoundationCardScript = foundation.GetComponent <FoundationScript>().cardList[0].GetComponent <CardScript>(); // if the card can match and matches with the foundation top if (cardCanBeMatched && CardTools.CanMatch(selectedCardScript, topFoundationCardScript, checkIsTop: false)) { cardMatches.Add(foundation.GetComponent <FoundationScript>().cardList[0]); } // if the card is not from a reactor can it stack? else if ((cardIsFromFoundation || cardIsFromWastepile) && topFoundationCardScript.cardNum == selectedCardNum + 1) { cardMoves.Add(foundation.GetComponent <FoundationScript>().cardList[0]); } } else if (cardIsFromFoundation || cardIsFromWastepile) { foundationMoves.Add(foundation); } } // if the card can match and matches with the wastepile top if (cardCanBeMatched && WastepileScript.Instance.cardList.Count != 0) { GameObject topWastepileCard = WastepileScript.Instance.cardList[0]; if (CardTools.CanMatch(topWastepileCard.GetComponent <CardScript>(), selectedCardScript, checkIsTop: false)) { cardMatches.Add(topWastepileCard); } } }
public void ProcessAction(GameObject input) { if (UtilsScript.Instance.selectedCards.Count != 1) { throw new System.ArgumentException("utils.selectedCards must be of size 1"); } GameObject selectedCard = UtilsScript.Instance.selectedCards[0]; CardScript selectedCardScript = selectedCard.GetComponent <CardScript>(); if (input.CompareTag("Card")) { CardScript inputCardScript = input.GetComponent <CardScript>(); if (CardTools.CanMatch(inputCardScript, selectedCardScript)) { UtilsScript.Instance.Match(input, selectedCard); return; } else if (inputCardScript.container.CompareTag("Reactor")) { if (!CardTools.IsSameSuit(input, selectedCard)) { return; } SoundEffectsController.Instance.CardToReactorSound(); selectedCardScript.MoveCard(inputCardScript.container); } else if (inputCardScript.container.CompareTag("Foundation")) { if (inputCardScript.container.GetComponent <FoundationScript>().cardList[0] != input || inputCardScript.cardNum != selectedCardScript.cardNum + 1) { return; } SoundEffectsController.Instance.CardStackSound(); selectedCardScript.MoveCard(inputCardScript.container); } else { return; } } else if (input.CompareTag("Reactor")) { if (!CardTools.IsSameSuit(input, selectedCard)) { return; } SoundEffectsController.Instance.CardToReactorSound(); selectedCardScript.MoveCard(input); } else if (input.CompareTag("Foundation")) { if (input.GetComponent <FoundationScript>().cardList.Count != 0) { return; } SoundEffectsController.Instance.CardStackSound(); selectedCardScript.MoveCard(input); } else { return; } UtilsScript.Instance.UpdateActions(1); }