Exemple #1
0
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()
Exemple #2
0
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()
Exemple #3
0
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()
Exemple #4
0
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()
Exemple #5
0
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()
Exemple #6
0
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()