def msg_select_sum(self, data): data = io.BytesIO(data[1:]) mode = self.read_u8(data) player = self.read_u8(data) val = self.read_u32(data) select_min = self.read_u8(data) select_max = self.read_u8(data) count = self.read_u8(data) must_select = [] for i in range(count): code = self.read_u32(data) card = Card(code) card.controller = self.read_u8(data) card.location = self.read_u8(data) card.sequence = self.read_u8(data) card.param = self.read_u32(data) must_select.append(card) count = self.read_u8(data) select_some = [] for i in range(count): code = self.read_u32(data) card = Card(code) card.controller = self.read_u8(data) card.location = self.read_u8(data) card.sequence = self.read_u8(data) card.param = self.read_u32(data) select_some.append(card) self.cm.call_callbacks('select_sum', mode, player, val, select_min, select_max, must_select, select_some) return data.read()
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_sort_card(self, data): data = io.BytesIO(data[1:]) player = self.read_u8(data) size = self.read_u8(data) cards = [] for i in range(size): card = Card(self.read_u32(data)) card.controller = self.read_u8(data) card.location = self.read_u8(data) card.sequence = self.read_u8(data) cards.append(card) self.cm.call_callbacks('sort_card', player, cards) return data.read()
def msg_select_counter(self, data): data = io.BytesIO(data[1:]) player = self.read_u8(data) countertype = self.read_u16(data) count = self.read_u16(data) size = self.read_u8(data) cards = [] for i in range(size): card = Card(self.read_u32(data)) card.controller = self.read_u8(data) card.location = LOCATION(self.read_u8(data)) card.sequence = self.read_u8(data) card.counter = self.read_u16(data) cards.append(card) self.cm.call_callbacks('select_counter', player, countertype, count, cards) return data.read()
def msg_confirm_decktop(self, data): cards = [] data = io.BytesIO(data[1:]) player = self.read_u8(data) count = self.read_u8(data) for i in range(count): code = self.read_u32(data) if code & 0x80000000: code = code ^ 0x80000000 # don't know what this actually does card = Card(code) card.controller = self.read_u8(data) card.location = LOCATION(self.read_u8(data)) card.sequence = self.read_u8(data) cards.append(card) self.cm.call_callbacks('confirm_decktop', player, cards) 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()