This repository was archived by the owner on Jul 8, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +16
-4
lines changed
Expand file tree Collapse file tree 3 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -243,8 +243,18 @@ def test_upgrade_opened_pon_to_kan(self):
243243
244244 player .add_called_meld (self ._make_meld (Meld .PON , self ._string_to_136_array (man = '444' )))
245245
246+ self .assertEqual (len (player .melds ), 1 )
247+ self .assertEqual (len (player .tiles ), 14 )
246248 self .assertEqual (player .can_call_kan (tile , False ), Meld .CHANKAN )
247249
250+ player .discard_tile ()
251+ player .draw_tile (tile )
252+ player .add_called_meld (self ._make_meld (Meld .CHANKAN , self ._string_to_136_array (man = '4444' )))
253+
254+ self .assertEqual (len (player .melds ), 1 )
255+ self .assertEqual (player .melds [0 ].type , Meld .CHANKAN )
256+ self .assertEqual (len (player .tiles ), 13 )
257+
248258 def test_call_closed_kan (self ):
249259 table = Table ()
250260 player = table .player
Original file line number Diff line number Diff line change @@ -62,7 +62,9 @@ def erase_state(self):
6262 def add_called_meld (self , meld : Meld ):
6363 # we already added chankan as a pon set
6464 if meld .type == Meld .CHANKAN :
65- return
65+ tile_34 = meld .tiles [0 ] // 4
66+ pon_set = [x for x in self .melds if x .type == Meld .PON and (x .tiles [0 ] // 4 ) == tile_34 ]
67+ self .melds .remove (pon_set [0 ])
6668
6769 self .melds .append (meld )
6870
@@ -210,7 +212,7 @@ def enemy_called_riichi(self):
210212
211213 def add_called_meld (self , meld : Meld ):
212214 # we had to remove tile from the hand for closed kan set
213- if (meld .type == Meld .KAN or meld .type == Meld .CHANKAN ) and not meld . opened :
215+ if (meld .type == Meld .KAN and not meld . opened ) or meld .type == Meld .CHANKAN :
214216 self .tiles .remove (meld .called_tile )
215217
216218 super ().add_called_meld (meld )
Original file line number Diff line number Diff line change @@ -271,7 +271,7 @@ def start_game(self):
271271 else :
272272 meld_type = 4
273273 self ._send_message ('<N type="{}" hai="{}" />' .format (meld_type , drawn_tile ))
274- logger .info ('We called a kan set!' )
274+ logger .info ('We called a closed kan\chankan set!' )
275275 continue
276276
277277 discarded_tile = self .player .discard_tile ()
@@ -374,7 +374,7 @@ def start_game(self):
374374 if 't="3"' in message :
375375 if self .player .can_call_kan (tile , True ):
376376 self ._send_message ('<N type="2" />' )
377- logger .info ('We called a kan set!' )
377+ logger .info ('We called an open kan set!' )
378378 continue
379379
380380 # chi or pon
You can’t perform that action at this time.
0 commit comments