PartyPoker fixes
- fix the "newly joined unseated active players are taking actions" problem - fix the "newly joined seated active players with zero initial stacks" problem
This commit is contained in:
		
							parent
							
								
									b1217b417f
								
							
						
					
					
						commit
						5c0bfa3bd0
					
				|  | @ -362,6 +362,39 @@ class PartyPoker(HandHistoryConverter): | |||
|             hand.addPlayer(int(a.group('SEAT')), a.group('PNAME'), | ||||
|                            clearMoneyString(a.group('CASH'))) | ||||
| 
 | ||||
|         # detecting new active players without a seat | ||||
|         # and new active players with zero stack | ||||
| 
 | ||||
|         if hand.gametype['type'] == 'ring': | ||||
|             re_JoiningPlayers = re.compile(r"(?P<PLAYERNAME>.*) has joined the table") | ||||
|             re_BBPostingPlayers = re.compile(r"(?P<PLAYERNAME>.*) posts big blind") | ||||
|             seatedPlayers = list([(f[1]) for f in hand.players]) | ||||
| 
 | ||||
|             def findFirstEmptySeat(startSeat): | ||||
|                 while startSeat in occupiedSeats: | ||||
|                     if startSeat >= hand.maxseats: | ||||
|                         startSeat = 0 | ||||
|                     startSeat += 1 | ||||
|                 return startSeat | ||||
| 
 | ||||
|             match_JoiningPlayers = re_JoiningPlayers.findall(hand.handText) | ||||
|             match_BBPostingPlayers = re_BBPostingPlayers.findall(hand.handText) | ||||
|             ringLimit = self.re_GameInfoRing.search(hand.handText).groupdict()['RINGLIMIT'] | ||||
|             unseatedActivePlayers = list(set(match_BBPostingPlayers) - set(seatedPlayers)) | ||||
| 
 | ||||
|             for player in seatedPlayers: | ||||
|                 if hand.stacks[player] == 0 and player in match_BBPostingPlayers: | ||||
|                     hand.stacks[player] = Decimal(ringLimit) | ||||
| 
 | ||||
|             if unseatedActivePlayers: | ||||
|                 for player in unseatedActivePlayers: | ||||
|                     previousBBPoster = match_BBPostingPlayers[match_BBPostingPlayers.index(player)-1] | ||||
|                     previousBBPosterSeat = dict([(f[1], f[0]) for f in hand.players])[previousBBPoster] | ||||
|                     occupiedSeats = list([(f[0]) for f in hand.players]) | ||||
|                     occupiedSeats.sort() | ||||
|                     newPlayerSeat = findFirstEmptySeat(previousBBPosterSeat) | ||||
|                     hand.addPlayer(newPlayerSeat,player,clearMoneyString(ringLimit)) | ||||
| 
 | ||||
|     def markStreets(self, hand): | ||||
|         m =  re.search( | ||||
|             r"\*{2} Dealing down cards \*{2}" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user