public ThirdPairRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.MiddlePair: var middlePairTexture = new MiddlePairRankTexture(TurnBoard); if (board.River.Rank <= middlePairTexture.PairCard1.Rank || board.River.Rank == middlePairTexture.HighCard.Rank) { throw new InvalidOperationException(); } if (board.River.Rank > middlePairTexture.HighCard.Rank) { HighCard = board.River; SecondCard = middlePairTexture.HighCard; } else { HighCard = middlePairTexture.HighCard; SecondCard = board.River; } PairedCard1 = middlePairTexture.PairCard1; PairedCard2 = middlePairTexture.PairCard2; LowCard = middlePairTexture.LowCard; break; case TurnBoardRankTextureEnum.LowPair: var lowPairTexture = new Turn.TurnBoardRankTextures.LowPairRankTexture(TurnBoard); if (board.River.Rank >= lowPairTexture.PairCard1.Rank) { throw new InvalidOperationException(); } HighCard = lowPairTexture.HighCard; SecondCard = lowPairTexture.MiddleCard; PairedCard1 = lowPairTexture.PairCard1; PairedCard2 = lowPairTexture.PairCard2; LowCard = board.River; break; case TurnBoardRankTextureEnum.Singles: var singlesTexture = new Turn.TurnBoardRankTextures.SinglesRankTexture(TurnBoard); if (board.River.Rank != singlesTexture.ThirdCard.Rank) { throw new InvalidOperationException(); } HighCard = singlesTexture.HighCard; SecondCard = singlesTexture.SecondCard; PairedCard1 = singlesTexture.ThirdCard; PairedCard2 = board.River; LowCard = singlesTexture.LowCard; break; default: throw new InvalidOperationException(); } }
public HighTwoPairsRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.TwoPairs: var twoPairTexture = new TwoPairsRankTexture(TurnBoard); if (board.River.Rank >= twoPairTexture.LowPairCard1.Rank) { throw new InvalidOperationException(); } HighPairCard1 = twoPairTexture.HighPairCard1; HighPairCard2 = twoPairTexture.HighPairCard2; MiddlePairCard1 = twoPairTexture.LowPairCard1; MiddlePairCard2 = twoPairTexture.LowPairCard2; LowCard = board.River; break; case TurnBoardRankTextureEnum.HighPair: var highPairTexture = new Turn.TurnBoardRankTextures.HighPairRankTexture(TurnBoard); if (board.River.Rank != highPairTexture.MiddleCard.Rank) { throw new InvalidOperationException(); } HighPairCard1 = highPairTexture.PairCard1; HighPairCard2 = highPairTexture.PairCard2; MiddlePairCard1 = highPairTexture.MiddleCard; MiddlePairCard2 = board.River; LowCard = highPairTexture.LowCard; break; case TurnBoardRankTextureEnum.MiddlePair: var middlePairTexture = new MiddlePairRankTexture(TurnBoard); if (board.River.Rank != middlePairTexture.HighCard.Rank) { throw new InvalidOperationException(); } HighPairCard1 = board.River; HighPairCard2 = middlePairTexture.HighCard; MiddlePairCard1 = middlePairTexture.PairCard1; MiddlePairCard2 = middlePairTexture.PairCard2; LowCard = middlePairTexture.LowCard; break; default: throw new InvalidOperationException(); } }
public MiddleTriRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.HighTri: var highTriTexture = new Turn.TurnBoardRankTextures.HighTriRankTexture(TurnBoard); if (board.River.Rank <= highTriTexture.TriCard1.Rank) { throw new InvalidOperationException(); } HighCard = board.River; TriCard1 = highTriTexture.TriCard1; TriCard2 = highTriTexture.TriCard2; TriCard3 = highTriTexture.TriCard3; LowCard = highTriTexture.SingleCard; break; case TurnBoardRankTextureEnum.LowTri: var lowTriTexture = new Turn.TurnBoardRankTextures.LowTriRankTexture(TurnBoard); if (board.River.Rank >= lowTriTexture.TriCard1.Rank) { throw new InvalidOperationException(); } HighCard = lowTriTexture.SingleCard; TriCard1 = lowTriTexture.TriCard1; TriCard2 = lowTriTexture.TriCard2; TriCard3 = lowTriTexture.TriCard3; LowCard = board.River; break; case TurnBoardRankTextureEnum.MiddlePair: var middlePairTexture = new MiddlePairRankTexture(TurnBoard); if (board.River.Rank != middlePairTexture.PairCard1.Rank) { throw new InvalidOperationException(); } HighCard = middlePairTexture.HighCard; TriCard1 = middlePairTexture.PairCard1; TriCard2 = middlePairTexture.PairCard2; TriCard3 = board.River; LowCard = middlePairTexture.LowCard; break; default: throw new InvalidOperationException(); } }
private void SetupRankTexture() { switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.Foursome: RankTexture = RiverRankTextureEnum.Foursome; break; case TurnBoardRankTextureEnum.HighTri: var highTri = new HighTriRankTexture(TurnBoard); if (River.Rank == highTri.TriCard1.Rank) { RankTexture = RiverRankTextureEnum.Foursome; } else if (River.Rank == highTri.SingleCard.Rank) { RankTexture = RiverRankTextureEnum.HighTriLowPair; } else if (River.Rank > highTri.TriCard1.Rank) { RankTexture = RiverRankTextureEnum.MiddleTri; } else { RankTexture = RiverRankTextureEnum.HighTri; } break; case TurnBoardRankTextureEnum.LowTri: var lowTri = new LowTriRankTexture(TurnBoard); if (River.Rank == lowTri.TriCard1.Rank) { RankTexture = RiverRankTextureEnum.Foursome; } else if (River.Rank == lowTri.SingleCard.Rank) { RankTexture = RiverRankTextureEnum.LowTriHighPair; } else if (River.Rank > lowTri.TriCard1.Rank) { RankTexture = RiverRankTextureEnum.LowTri; } else { RankTexture = RiverRankTextureEnum.MiddleTri; } break; case TurnBoardRankTextureEnum.TwoPairs: var twoPairs = new TwoPairsRankTexture(TurnBoard); if (River.Rank == twoPairs.HighPairCard1.Rank) { RankTexture = RiverRankTextureEnum.HighTriLowPair; } else if (River.Rank == twoPairs.LowPairCard1.Rank) { RankTexture = RiverRankTextureEnum.LowTriHighPair; } else if (River.Rank > twoPairs.HighPairCard1.Rank) { RankTexture = RiverRankTextureEnum.LowTwoPairs; } else if (River.Rank > twoPairs.LowPairCard1.Rank) { RankTexture = RiverRankTextureEnum.HighLowTwoPairs; } else { RankTexture = RiverRankTextureEnum.HighTwoPairs; } break; case TurnBoardRankTextureEnum.HighPair: var highPair = new HighPairRankTexture(TurnBoard); if (River.Rank == highPair.PairCard1.Rank) { RankTexture = RiverRankTextureEnum.HighTri; } else if (River.Rank == highPair.MiddleCard.Rank) { RankTexture = RiverRankTextureEnum.HighTwoPairs; } else if (River.Rank == highPair.LowCard.Rank) { RankTexture = RiverRankTextureEnum.HighLowTwoPairs; } else if (River.Rank > highPair.PairCard1.Rank) { RankTexture = RiverRankTextureEnum.SecondPair; } else { RankTexture = RiverRankTextureEnum.HighPair; } break; case TurnBoardRankTextureEnum.MiddlePair: var middlePair = new MiddlePairRankTexture(TurnBoard); if (River.Rank == middlePair.PairCard1.Rank) { RankTexture = RiverRankTextureEnum.MiddleTri; } else if (River.Rank == middlePair.HighCard.Rank) { RankTexture = RiverRankTextureEnum.HighTwoPairs; } else if (River.Rank == middlePair.LowCard.Rank) { RankTexture = RiverRankTextureEnum.LowTwoPairs; } else if (River.Rank > middlePair.PairCard1.Rank) { RankTexture = RiverRankTextureEnum.ThirdPair; } else { RankTexture = RiverRankTextureEnum.SecondPair; } break; case TurnBoardRankTextureEnum.LowPair: var lowPair = new LowPairRankTexture(TurnBoard); if (River.Rank == lowPair.PairCard1.Rank) { RankTexture = RiverRankTextureEnum.LowTri; } else if (River.Rank == lowPair.HighCard.Rank) { RankTexture = RiverRankTextureEnum.HighLowTwoPairs; } else if (River.Rank == lowPair.MiddleCard.Rank) { RankTexture = RiverRankTextureEnum.LowTwoPairs; } else if (River.Rank > lowPair.PairCard1.Rank) { RankTexture = RiverRankTextureEnum.LowPair; } else { RankTexture = RiverRankTextureEnum.ThirdPair; } break; case TurnBoardRankTextureEnum.Singles: var singles = new SinglesRankTexture(TurnBoard); if (River.Rank == singles.HighCard.Rank) { RankTexture = RiverRankTextureEnum.HighPair; } else if (River.Rank == singles.SecondCard.Rank) { RankTexture = RiverRankTextureEnum.SecondPair; } else if (River.Rank == singles.ThirdCard.Rank) { RankTexture = RiverRankTextureEnum.ThirdPair; } else if (River.Rank == singles.LowCard.Rank) { RankTexture = RiverRankTextureEnum.LowPair; } else { RankTexture = RiverRankTextureEnum.Singles; } break; default: throw new InvalidOperationException(); } }