Example #1
0
 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'"),
     )
Example #2
0
 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'"))
Example #3
0
    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)
Example #4
0
 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'"))
Example #5
0
 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'"),
     )
Example #6
0
    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)
Example #7
0
 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'"),
     )
Example #8
0
 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'"),
     )
Example #9
0
 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'"),
     )
Example #10
0
 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'"),
     )