def msg_pos_change(self, data): data = io.BytesIO(data[1:]) code = self.read_u32(data) card = Card(code) card.controller = self.read_u8(data) card.location = LOCATION(self.read_u8(data)) card.sequence = self.read_u8(data) prevpos = POSITION(self.read_u8(data)) card.position = POSITION(self.read_u8(data)) self.cm.call_callbacks('pos_change', card, prevpos) return data.read()
def msg_select_tribute(self, data): data = io.BytesIO(data[1:]) player = self.read_u8(data) cancelable = self.read_u8(data) min = self.read_u8(data) max = self.read_u8(data) size = self.read_u8(data) cards = [] for i in range(size): code = self.read_u32(data) card = Card(code) card.controller = self.read_u8(data) card.location = LOCATION(self.read_u8(data)) card.sequence = self.read_u8(data) card.position = self.get_card(card.controller, card.location, card.sequence).position card.release_param = self.read_u8(data) cards.append(card) self.cm.call_callbacks('select_tribute', player, cancelable, min, max, cards) return data.read()