Esempio n. 1
0
    def __init__(self, controller, view, map_id, shop_id):
        super().__init__(
            controller,
            view,
            map_id,
            logger=getLogger(
                f'root.app.game.map.{map_id}.shop.{shop_id}.constructor.model')
        )
        self.shop_id = shop_id
        self.shop_stages_state_matrix = {}
        USER_DB_CURSOR.execute(
            '''SELECT stage_number, locked, under_construction, construction_time,
            unlock_condition_from_level, unlock_condition_from_previous_stage, unlock_available 
            FROM shop_stages WHERE map_id = ? AND shop_id = ?''',
            (self.map_id, self.shop_id))
        for stage_info in USER_DB_CURSOR.fetchall():
            self.shop_stages_state_matrix[stage_info[0]] = [
                *stage_info[1:6], 1, stage_info[6]
            ]
            CONFIG_DB_CURSOR.execute(
                '''SELECT price, max_construction_time, level_required, hourly_profit,
                storage_capacity, exp_bonus FROM shop_progress_config WHERE map_id = ? AND stage_number = ?''',
                (self.map_id, stage_info[0]))
            stage_progress_config = CONFIG_DB_CURSOR.fetchone()
            self.shop_stages_state_matrix[stage_info[0]].extend(
                [*stage_progress_config[:3], 0, *stage_progress_config[3:]])

        USER_DB_CURSOR.execute(
            '''SELECT current_stage, shop_storage_money, internal_shop_time FROM shops 
            WHERE map_id = ? AND shop_id = ?''', (self.map_id, self.shop_id))
        self.current_stage, self.shop_storage_money, self.internal_shop_time = USER_DB_CURSOR.fetchone(
        )
Esempio n. 2
0
 def __init__(self, controller, view, map_id):
     super().__init__(controller, view, map_id, logger=getLogger(f'root.app.game.map.{map_id}.dispatcher.model'))
     self.trains = []
     USER_DB_CURSOR.execute('''SELECT unlocked_tracks FROM map_progress WHERE map_id = ?''', (self.map_id, ))
     self.unlocked_tracks = USER_DB_CURSOR.fetchone()[0]
     USER_DB_CURSOR.execute('SELECT busy FROM tracks WHERE map_id = ?', (self.map_id, ))
     self.track_busy_status = [TRUE, *[t[0] for t in USER_DB_CURSOR.fetchall()]]
     CONFIG_DB_CURSOR.execute(
         '''SELECT supported_cars_min, supported_cars_max FROM track_config WHERE map_id = ?''', (self.map_id, )
     )
     self.supported_cars_by_track = ((0, 20), *CONFIG_DB_CURSOR.fetchall())
Esempio n. 3
0
    def create_switches(self):
        switches = {}
        switches_list = []
        USER_DB_CURSOR.execute('''SELECT DISTINCT track_param_1 FROM switches WHERE map_id = ?''', (PASSENGER_MAP,))
        for i in USER_DB_CURSOR.fetchall():
            switches[i[0]] = {}

        USER_DB_CURSOR.execute(
            '''SELECT DISTINCT track_param_1, track_param_2 FROM switches WHERE map_id = ?''', (PASSENGER_MAP,)
        )
        for i in USER_DB_CURSOR.fetchall():
            switches[i[0]][i[1]] = {}

        USER_DB_CURSOR.execute(
            '''SELECT track_param_1, track_param_2, switch_type FROM switches WHERE map_id = ?''', (PASSENGER_MAP,)
        )
        for i in USER_DB_CURSOR.fetchall():
            switches[i[0]][i[1]][i[2]] = PassengerMapRailroadSwitchController(self, *i)
            switches_list.append(switches[i[0]][i[1]][i[2]])

        return switches, switches_list
Esempio n. 4
0
    def create_crossovers(self):
        crossovers = {}
        crossovers_list = []
        USER_DB_CURSOR.execute('''SELECT DISTINCT track_param_1 FROM crossovers WHERE map_id = ?''', (PASSENGER_MAP,))
        for i in USER_DB_CURSOR.fetchall():
            crossovers[i[0]] = {}

        USER_DB_CURSOR.execute(
            '''SELECT DISTINCT track_param_1, track_param_2 FROM crossovers WHERE map_id = ?''', (PASSENGER_MAP,)
        )
        for i in USER_DB_CURSOR.fetchall():
            crossovers[i[0]][i[1]] = {}

        USER_DB_CURSOR.execute(
            '''SELECT track_param_1, track_param_2, crossover_type FROM crossovers WHERE map_id = ?''', (PASSENGER_MAP,)
        )
        for i in USER_DB_CURSOR.fetchall():
            crossovers[i[0]][i[1]][i[2]] = PassengerMapCrossoverController(self, *i)
            crossovers_list.append(crossovers[i[0]][i[1]][i[2]])

        return crossovers, crossovers_list
Esempio n. 5
0
    def create_trains(self):
        trains = {}
        trains_list = []
        USER_DB_CURSOR.execute('''SELECT train_id FROM trains WHERE map_id = ?''', (PASSENGER_MAP,))
        try:
            for i in USER_DB_CURSOR.fetchall():
                trains[i[0]] = PassengerTrainController(self, i[0])
                trains_list.append(trains[i[0]])
        except TypeError:
            pass

        return trains, trains_list