void Func10() { //10捨て if (CardRequest.cards.Count <= placeCard.count10) { for (int i = CardRequest.cards.Count - 1; i >= 0; i--) { DisCard.Add(CardRequest.cards[i]); HandCard.RemoveAt(HandCard.IndexOf(CardRequest.cards[i])); } MyTurn = false; Enemy.MyTurn = true; Is10 = false; CardSpriteChanged = true; } else { CardRequest = null; CardChanged = false; CardSpriteChanged = false; for (int i = 0; i < HandCard.Count; i++) { HandCard[i].setIsPrepare(false); } } }
public void pass() { if (!MyTurn) { return; } if (!Is7 && !Is10) { for (int i = 0; i < HandCard.Count; i++) { HandCard[i].setIsPrepare(false); } CardSpriteChanged = true; Enemy.CardSpriteChanged = true; Is7 = false; Is10 = false; placeCard = null; Enemy.placeCard = null; NumberRegulation = -1; MyTurn = false; Enemy.MyTurn = true; DisCard = new List <Card>(); Enemy.DisCard = new List <Card>(); GameObject.Find("UIController").GetComponent <CardScript>().Flash(); } else if (Is7) { for (int i = 0; i < HandCard.Count; i++) { HandCard[i].setIsPrepare(false); } Is7 = false; MyTurn = false; Enemy.MyTurn = true; } else { for (int i = 0; i < HandCard.Count; i++) { HandCard[i].setIsPrepare(false); } Is10 = false; MyTurn = false; Enemy.MyTurn = true; } }
public void CardChangeRequest(int PlayerNumber, PlaceCard p) { Player[PlayerNumber].CardRequest = p; Player[PlayerNumber].CardChanged = true; }
bool CardPlaceCheck(PlaceCard p)//カードが受理されるか { //枚数が違う if (Enemy.placeCard != null && Enemy.placeCard.cards.Count != p.cards.Count) { return(false); } //マーク縛り if (Enemy.placeCard != null) { for (int i = 0; i < p.IsMark.Length; i++) { if (MarkRegulation[i] && !p.IsMark[i]) { if (p.CountJoker > 0) { p.CountJoker--; } else { return(false); } } } } if (NumberRegulation != -1 && NumberRegulation + 1 != p.cards[0].getNum() && p.cards[0].getNum() != 16 && (p.cards[0].getMark() != 0 || p.cards[0].getImageNum() != 3)) { //数字縛り return(false); } if (p.cards.Count >= 2)//複数 { int n = p.cards[0].getNum(); for (int i = 1; i < p.cards.Count; i++) { //数がそろっていない if (p.cards[i].getNum() != n && p.cards[i].getNum() != 16) { return(false); } } //数が敵のカードよりも小さい if (Enemy.placeCard != null && p.cards[0].getNum() <= Enemy.placeCard.cards[0].getNum()) { return(false); } } else //単体 { //スペ3 if (Enemy.placeCard != null && Enemy.placeCard.cardNum == 1 && Enemy.placeCard.cards[0].getMark() == 4 && p.cards[0].getMark() == 0 && p.cards[0].getImageNum() == 3) { return(true); } //数が敵のカードよりも小さい if (Enemy.placeCard != null && p.cards[0].getNum() <= Enemy.placeCard.cards[0].getNum()) { return(false); } //ジョーカーに対してジョーカーを出そうとする if (Enemy.placeCard != null && Enemy.placeCard.cards[0].getNum() == 16 && p.cards[0].getNum() == 16) { return(false); } } return(true); }
public void IsCardChangeRequest() { if (!MyTurn || CardRequest == null || CardRequest.cards == null) { CardRequest = null; CardChanged = false; return; } if (Is7) { //7渡し Func7(); return; } if (Is10) { //10捨て Func10(); return; } //7渡し,10捨て以外の場合 bool check = CardPlaceCheck(CardRequest); if (!check) { CardRequest = null; CardChanged = false; CardSpriteChanged = false; for (int i = 0; i < HandCard.Count; i++) { HandCard[i].setIsPrepare(false); } return; } //チェックが通った if (placeCard != null) { for (int i = 0; i < placeCard.cards.Count; i++) { DisCard.Add(placeCard.cards[i]); } } placeCard = CardRequest; Is7 = (placeCard.count7 > 0); Is10 = (placeCard.count10 > 0); CardRequest = null; CardChanged = true; CardSpriteChanged = true; for (int i = placeCard.cards.Count - 1; i >= 0; i--) { HandCard.RemoveAt(HandCard.IndexOf(placeCard.cards[i])); } //スペ3返し if (Enemy.placeCard != null && placeCard != null && Enemy.placeCard.cardNum == 1 && Enemy.placeCard.cards != null && Enemy.placeCard.cards[0] != null && Enemy.placeCard.cards[0].getMark() == 4 && placeCard.cards != null && placeCard.cards != null && placeCard.cards[0].getMark() == 0 && placeCard.cards[0].getImageNum() == 3) { placeCard.cards[0].setNum(17); } //8切り Func8(); if (!Is7 && !Is10) { //7,10が含まれるならターンを継続 MyTurn = false; Enemy.MyTurn = true; } if (placeCard == null) { pass(); } }