示例#1
0
文件: logic.py 项目: b2220333/yorg
 def __bld_drv(dct):
     drv = Driver(
         DriverProps(
             DriverInfo(dct['img_idx'], dct['name'], dct['speed'],
             dct['adherence'], dct['stability']), dct['car_name'],
             dct['f_engine'], dct['f_tires'], dct['f_suspensions']))
     return drv
示例#2
0
    def __season_props(gameprops, car, player_car_names, cars_number,
                       single_race, tun_engine, tun_tires, tun_suspensions,
                       race_start_time, countdown_seconds):
        wpn2img = {
            'Rocket': 'rocketfront',
            'RearRocket': 'rocketrear',
            'Turbo': 'turbo',
            'RotateAll': 'turn',
            'Mine': 'mine'
        }
        drivers = []
        for drv_info, car_name in zip(gameprops.drivers_info,
                                      gameprops.cars_names):
            drivers += [Driver(DriverProps(drv_info, car_name, 0, 0, 0))]
        cars = player_car_names[:] + gameprops.cars_names
        cars = list(OrderedDict.fromkeys(cars))[:int(cars_number)]
        # cars = list(dict.fromkeys(cars))[:int(cars_number)]  # python 3.6

        return SeasonProps(gameprops, cars, car, player_car_names, drivers, [
            'assets/images/tuning/engine.txo',
            'assets/images/tuning/tires.txo',
            'assets/images/tuning/suspensions.txo'
        ], 'assets/fonts/Hanken-Book.ttf', 'assets/sfx/countdown.ogg',
                           single_race, wpn2img, tun_engine, tun_tires,
                           tun_suspensions, race_start_time, countdown_seconds)
示例#3
0
    def build_race_props(self, car_path, drivers, track_path, keys, joystick,
                         sounds):
        wheel_names = [[
            'EmptyWheelFront', 'EmptyWheelFront.001', 'EmptyWheelRear',
            'EmptyWheelRear.001'
        ], [
            'EmptyWheel', 'EmptyWheel.001', 'EmptyWheel.002', 'EmptyWheel.003'
        ]]
        wheel_gfx_names = ['wheelfront', 'wheelrear', 'wheel']
        wheel_gfx_names = [
            eng.curr_path + 'assets/models/cars/%s/' + elm
            for elm in wheel_gfx_names
        ]
        tuning = self.mdt.logic.season.tuning.tunings[car_path]

        def get_driver(car):
            for driver in drivers:
                if driver[3] == car:
                    return driver

        driver = get_driver(car_path)
        driver_engine, driver_tires, driver_suspensions = driver[2]
        drivers_dct = {}
        for driver in drivers:
            d_s = driver[2]
            driver_props = DriverProps(str(driver[0]), d_s[0], d_s[1], d_s[2])
            drv = Driver(driver_props)
            drivers_dct[driver[3]] = drv
        tr_file_path = 'assets/models/tracks/%s/track.yml' % track_path
        with open(eng.curr_path + tr_file_path) as track_file:
            music_name = load(track_file)['music']
        music_path = 'assets/music/%s.ogg' % music_name
        corner_names = ['topleft', 'topright', 'bottomright', 'bottomleft']
        corner_names = ['Minimap' + crn for crn in corner_names]
        col_dct = {
            'kronos': (0, 0, 1, 1),
            'themis': (1, 0, 0, 1),
            'diones': (1, 1, 1, 1),
            'iapeto': (1, 1, 0, 1),
            'phoibe': (.6, .6, 1, 1),
            'rea': (0, 0, .6, 1)
        }
        with open(eng.curr_path + tr_file_path) as track_file:
            track_cfg = load(track_file)
            camera_vec = track_cfg['camera_vector']
            shadow_src = track_cfg['shadow_source']
            laps = track_cfg['laps']

        def sign_cb(parent):
            thanks = open(eng.curr_path + 'assets/thanks.txt').readlines()
            shuffle(thanks)
            text = '\n\n'.join(thanks[:3])
            txt = OnscreenText(text,
                               parent=parent,
                               scale=.2,
                               fg=(0, 0, 0, 1),
                               pos=(.245, 0))
            bounds = lambda: txt.getTightBounds()
            while bounds()[1][0] - bounds()[0][0] > .48:
                scale = txt.getScale()[0]
                txt.setScale(scale - .01, scale - .01)
            bounds = txt.getTightBounds()
            height = bounds[1][2] - bounds[0][2]
            txt.setZ(.06 + height / 2)

        race_props = RaceProps(
            keys, joystick, sounds, (.75, .75, .25, 1), (.75, .75, .75, 1),
            'assets/fonts/Hanken-Book.ttf', 'assets/models/cars/%s/capsule',
            'Capsule', 'assets/models/cars',
            eng.curr_path + 'assets/models/cars/%s/phys.yml', wheel_names,
            tuning.engine, tuning.tires, tuning.suspensions, 'Road',
            'assets/models/cars/%s/car', [
                'assets/models/cars/%s/cardamage1',
                'assets/models/cars/%s/cardamage2'
            ], wheel_gfx_names, 'assets/particles/sparks.ptf', drivers_dct,
            self.mdt.options['development']['shaders'], music_path,
            'assets/models/tracks/%s/collision' % track_path,
            ['Road', 'Offroad'], ['Wall'],
            ['Goal', 'Slow', 'Respawn', 'PitStop'], corner_names,
            ['Waypoints', 'Waypoint', 'prev'],
            self.mdt.options['development']['show_waypoints'],
            self.mdt.options['development']['weapons'],
            ['Weaponboxs', 'EmptyWeaponboxAnim'], 'Start', track_path,
            'tracks/' + track_path, 'track', 'Empty', 'Anim', 'omni', sign_cb,
            'EmptyNameBillboard4Anim',
            'assets/images/minimaps/%s.png' % track_path,
            'assets/images/minimaps/car_handle.png', col_dct, camera_vec,
            shadow_src, laps, 'assets/models/weapons/rocket/rocket',
            'assets/models/weapons/bonus/WeaponboxAnim', 'Anim', [
                'kronos', 'themis', 'diones', 'iapeto', 'phoibe', 'rea'
            ], self.mdt.options['development']['ai'], InGameMenu,
            Utils().menu_args, 'assets/images/drivers/driver%s_sel.png',
            'assets/images/cars/%s_sel.png', [
                'https://www.facebook.com/sharer/sharer.php?u=ya2.it/yorg',
                'https://twitter.com/share?text=I%27ve%20achieved%20{time}'
                '%20in%20the%20{track}%20track%20on%20Yorg%20by%20%40ya2tech'
                '%21&hashtags=yorg',
                'https://plus.google.com/share?url=ya2.it/yorg',
                'https://www.tumblr.com/widgets/share/tool?url=ya2.it'
            ], 'assets/images/icons/%s_png.png', 'Respawn', 'PitStop', 'Wall',
            'Goal', 'Bonus', ['Road', 'Offroad'], [
                'kronos', 'themis', 'diones', 'iapeto', 'phoibe', 'rea'
            ], car_path)
        #todo compute the grid
        return race_props