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( )
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())
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
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
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