def decode( self ) -> Tuple[int, str, str, Colour, bool, int, bool, int, Tuple[int, int, int, int]]: company_id, = self.read_byte() name, manager = self.read_str(2) colour, = self.read_byte() passworded, = self.read_bool() startyear, = self.read_uint() is_ai, = self.read_bool() bankruptcy_counter = None shareholders = None if self.has_available_data: bankruptcy_counter, = self.read_byte() shareholders = list(self.read_byte(4)) return self.data( company_id, check_length(name, NETWORK_COMPANY_NAME_LENGTH, "'name'"), check_length(manager, NETWORK_COMPANY_NAME_LENGTH, "'manager'"), Colour(colour), passworded, startyear, is_ai, bankruptcy_counter, check_tuple_length(shareholders, 4, 4, "'shareholders'"), )
def encode(self, company_id: int, name: str, manager: str, colour: Colour, passworded: bool, bankruptcy_counter: int, shareholders: Tuple[int, int, int, int]): self.write_byte(company_id) self.write_str(check_length(name, NETWORK_COMPANY_NAME_LENGTH, "'name'"), check_length(manager, NETWORK_COMPANY_NAME_LENGTH, "'manager'")) self.write_byte(Colour(colour)) self.write_bool(passworded) self.write_byte(bankruptcy_counter) self.write_byte(*check_tuple_length(shareholders, 4, 4, "'shareholders'"))
def encode(self, company_id: int, money: int, current_loan: int, income: int, delivered: int, history: Tuple[ServerCompanyEconomyHistory, ServerCompanyEconomyHistory]): self.write_byte(company_id) self.write_longlong(money, current_loan, income) self.write_ushort(delivered) history = [ServerCompanyEconomyHistory(*x) for x in check_tuple_length(history, 2, 2, "'history'")] for item in history: self.write_longlong(item.value) self.write_ushort(item.performance, item.delivered)
def encode(self, company_id: int, name: str, manager: str, colour: Colour, passworded: bool, bankruptcy_counter: int, shareholders: Tuple[int, int, int, int]): self.write_byte(company_id) self.write_str( check_length(name, NETWORK_COMPANY_NAME_LENGTH, "'name'"), check_length(manager, NETWORK_COMPANY_NAME_LENGTH, "'manager'")) self.write_byte(Colour(colour)) self.write_bool(passworded) self.write_byte(bankruptcy_counter) self.write_byte( *check_tuple_length(shareholders, 4, 4, "'shareholders'"))
def decode(self) -> Tuple[int, int, int, int, int, Tuple[ServerCompanyEconomyHistory, ServerCompanyEconomyHistory]]: company_id, = self.read_byte() money, current_loan, income = self.read_longlong(3) delivered_now, = self.read_ushort() history = [ServerCompanyEconomyHistory(*self.read_longlong(), *self.read_ushort(2)) for _ in range(2)] return self.data( company_id, money, current_loan, income, delivered_now, check_tuple_length(history, 2, 2, "'history'"), )
def encode(self, company_id: int, money: int, current_loan: int, income: int, delivered: int, history: Tuple[ServerCompanyEconomyHistory, ServerCompanyEconomyHistory]): self.write_byte(company_id) self.write_longlong(money, current_loan, income) self.write_ushort(delivered) history = [ ServerCompanyEconomyHistory(*x) for x in check_tuple_length(history, 2, 2, "'history'") ] for item in history: self.write_longlong(item.value) self.write_ushort(item.performance, item.delivered)
def decode(self) -> Tuple[int, str, str, Colour, bool, int, Tuple[int, int, int, int]]: company_id, = self.read_byte() name, manager = self.read_str(2) colour, = self.read_byte() passworded, = self.read_bool() bankruptcy_counter, = self.read_byte() shareholders = list(self.read_byte(4)) return self.data( company_id, check_length(name, NETWORK_COMPANY_NAME_LENGTH, "'name'"), check_length(manager, NETWORK_COMPANY_NAME_LENGTH, "'manager'"), colour, passworded, bankruptcy_counter, check_tuple_length(shareholders, 4, 4, "'shareholders'"), )
def decode( self ) -> Tuple[int, str, str, Colour, bool, int, Tuple[int, int, int, int]]: company_id, = self.read_byte() name, manager = self.read_str(2) colour, = self.read_byte() passworded, = self.read_bool() bankruptcy_counter, = self.read_byte() shareholders = list(self.read_byte(4)) return self.data( company_id, check_length(name, NETWORK_COMPANY_NAME_LENGTH, "'name'"), check_length(manager, NETWORK_COMPANY_NAME_LENGTH, "'manager'"), colour, passworded, bankruptcy_counter, check_tuple_length(shareholders, 4, 4, "'shareholders'"), )
def decode( self ) -> Tuple[int, int, int, int, int, Tuple[ServerCompanyEconomyHistory, ServerCompanyEconomyHistory]]: company_id, = self.read_byte() money, current_loan, income = self.read_longlong(3) delivered_now, = self.read_ushort() history = [ ServerCompanyEconomyHistory(*self.read_longlong(), *self.read_ushort(2)) for _ in range(2) ] return self.data( company_id, money, current_loan, income, delivered_now, check_tuple_length(history, 2, 2, "'history'"), )
def decode(self) -> Tuple[int, str, str, Colour, bool, int, bool, int, Tuple[int, int, int, int]]: company_id, = self.read_byte() name, manager = self.read_str(2) colour, = self.read_byte() passworded, = self.read_bool() startyear, = self.read_uint() is_ai, = self.read_bool() bankruptcy_counter = None shareholders = None if self.has_available_data: bankruptcy_counter, = self.read_byte() shareholders = list(self.read_byte(4)) return self.data( company_id, check_length(name, NETWORK_COMPANY_NAME_LENGTH, "'name'"), check_length(manager, NETWORK_COMPANY_NAME_LENGTH, "'manager'"), Colour(colour), passworded, startyear, is_ai, bankruptcy_counter, check_tuple_length(shareholders, 4, 4, "'shareholders'"), )