Example #1
0
    def getFlowerRule(cls, playMode):
        """花规则获取工厂
        输入参数:
            playMode - 玩法

        返回值:
            对应玩法的判和规则
        """
        if MPlayMode().isSubPlayMode(playMode, MPlayMode.QUESHOU):
            return MFlowerRuleQueshou()

        return MFlowerRuleBase()
Example #2
0
    def broadCastPiao(self, msgProcessor):
        for seatId in range(self.playerCount):
            # 向该seatId发送飘的结果
            ftlog.debug('[MPiaoProcessor]  seatId:', seatId, ' piaoState:',
                        self.piaoStates[seatId], ' acceptPiaoState:',
                        self.acceptPiaoStates[seatId])
            # 卡五星只显示每个人自己选择漂数
            if MPlayMode().isSubPlayMode(self.__player_mode,
                                         MPlayMode.LUOSIHU):
                if self.players[seatId]:
                    msgProcessor.table_call_piao(self.players[seatId].userId,
                                                 seatId, self.piaoPoints)
            if 0:
                if self.players[seatId]:
                    piaoBiPiao = [
                        p + self.biPiaoPoint for p in self.piaoPoints
                    ]
                    msgProcessor.table_call_piao(self.players[seatId].userId,
                                                 seatId, piaoBiPiao)
            else:
                bSend = False
                piao = [0 for _ in range(self.playerCount)]
                for target in range(self.playerCount):
                    if target == seatId:
                        continue

                    ftlog.debug('[MPiaoProcessor]  target:', target,
                                ' piaoState:', self.piaoStates[target],
                                ' acceptPiaoState:',
                                self.acceptPiaoStates[target])
                    # seatId是否飘了,target是否接受
                    if (self.piaoStates[seatId] == self.STATE_PIAO_YES) and (
                            self.acceptPiaoStates[seatId][target]
                            == self.ACCEPT_YES):
                        piao[target] += self.piaoPoints[seatId]
                        bSend = True

                    # target是否飘了,seatId是否接受
                    if (self.piaoStates[target] == self.STATE_PIAO_YES) and (
                            self.acceptPiaoStates[target][seatId]
                            == self.ACCEPT_YES):
                        piao[target] += self.piaoPoints[target]
                        bSend = True

                if bSend:
                    msgProcessor.table_call_piao(self.players[seatId].userId,
                                                 seatId, piao)