def make_sex_card(quality, type_, contact_type, size=None): if size is None: size = (400, 600) qualities = { 1: sex_images_path() + '/base_bronze.jpg', 2: sex_images_path() + '/base_silver.jpg', 3: sex_images_path() + '/base_gold.jpg' } quality_image = qualities[quality] types = { 'bizarre': sex_images_path() + '/over_bizarre.png', 'passionate': sex_images_path() + '/over_passion.png', 'rough': sex_images_path() + '/over_rage.png', 'tender': sex_images_path() + '/over_tender.png' } type_image = types[type_] image_start = sex_images_path() + '/%s' % contact_type images = [i for i in renpy.list_files() if i.startswith(image_start)] try: image = renpy.display.im.Scale(random.choice(images), *size) image = renpy.display.im.Composite( size, (0, 0), quality_image, (0, 0), image, (0, 0), type_image, ) except IndexError: image = renpy.display.im.Scale(empty_sex_image(), *size) return image
def get_random_image(folder, used_avatars=None): """ Возвращает строку-путь с случайной картинкой подходящей под регекспу regex Исключает из рассмотрения список used_avatars """ reg_list = [f for f in renpy.list_files() if f.startswith(folder)] if used_avatars is not None: reg_list = [item for item in reg_list if item not in used_avatars] if len(reg_list) == 0: raise StopIteration return random.choice(reg_list) # Возвращаем правильно случайно выбранное значение
def __init__(self, level=1, *args, **kwargs): """ Здесь должна быть генерация нового рыцаря. """ super(Knight, self).__init__(*args, **kwargs) self._alive = True self.name = u"Сер Ланселот Озёрный" self.name = u"Сэр %s %s" % (random.choice( data.knight_first_names), random.choice(data.knight_last_names)) # Проверка что мы можем создать рыцаря указанного уровня if level < 1: level = 1 elif level > Knight.max_level(): level = Knight.max_level() self.power = level self._title = data.knight_titles[level - 1] self.abilities = data.Container("knight_abilities") ability_list = [a for a in data.knight_abilities ] # Составляем список из возможных способностей ab = random.choice(ability_list) self.abilities.add(ab, deepcopy(data.knight_abilities[ab])) self._add_equip_slots( ["vest", "spear", "sword", "shield", "horse", "follower"]) self.equip_basic() self.bg = random.choice( filter(lambda path: path.startswith("img/scene/fight/knight/"), renpy.list_files())) self.kind = 'knight' for description in mob_data.mob[self.kind]['descriptions']: descript = deepcopy( description) # Создаём новый объект для описания if len(descript) == 2: descript.append(0) # Добавляем число использований описания elif type(descript[2]) is not int: descript[2] = 0 if len(descript) > 3: descript = descript[:3] # Отсекание лишних данных, если таковые есть self.descriptions.append(descript) # Добавляем в список self.avatar = get_random_image(u"img/avahuman/knight") self.forced_to_challenge = False # Обязан ли рыцарь бросить вызов дракону, когда тот пойдет спать.
def init_metapersons_dict(): for f in renpy.list_files(): if f.startswith("characters/generic") and "avatar" in f: key = f.split("/")[6] color = f.split("/")[5] age = f.split("/")[4] gender = f.split("/")[3] morphology = f.split("/")[2] script = check_script(key) if key in metapersonsdict['generic']: metapersonsdict['generic'][key]['avatars'].append(f) else: metapersonsdict['generic'][key] = { 'morphology':morphology, 'gender':gender, 'age':age, 'color':color, 'avatars':[f], 'script':script } if f.startswith("characters/unique") and "avatar" in f: key = f.split("/")[6] color = f.split("/")[5] age = f.split("/")[4] gender = f.split("/")[3] morphology = f.split("/")[2] script = check_script(key) metapersonsdict['unique'][key] = { 'morphology':morphology, 'gender':gender, 'age':age, 'color':color, 'avatars':[f], 'script':script, 'allready_used': False } return
def get_files(path): files = renpy.list_files() return [i for i in files if path in i]
def _get_avatars(path): all_ = renpy.list_files() avas = [str_ for str_ in all_ if str_.startswith(path)] return avas
def create_focus_mask_data(output_path): buttons_list = filter(REGEXP_FILTER_BUTTONS.match, renpy.list_files()) buttons_coordinates = extract_coordinates(buttons_list) write_coordinates(buttons_coordinates, output_path)
def get_avatars(): all_ = renpy.list_files() avas = [str_ for str_ in all_ if str_.startswith('images/avatar')] return avas
def __init__(self, level=1, *args, **kwargs): """ Здесь должна быть генерация нового рыцаря. """ super(Knight, self).__init__(*args, **kwargs) self._alive = True self.name = u"Сер Ланселот Озёрный" self.name = u"Сэр %s %s" % (random.choice(data.knight_first_names), random.choice(data.knight_last_names)) # Проверка что мы можем создать рыцаря указанного уровня if level < 1: level = 1 elif level > Knight.max_level(): level = Knight.max_level() self.power = level self._title = data.knight_titles[level - 1] self.abilities = data.Container("knight_abilities") ability_list = [a for a in data.knight_abilities] # Составляем список из возможных способностей ab = random.choice(ability_list) self.abilities.add(ab, deepcopy(data.knight_abilities[ab])) self._add_equip_slots(["vest", "spear", "sword", "shield", "horse", "follower"]) self.equip_basic() self.bg = random.choice(filter(lambda path: path.startswith("img/scene/fight/knight/"), renpy.list_files())) self.kind = 'knight' for description in mob_data.mob[self.kind]['descriptions']: descript = deepcopy(description) # Создаём новый объект для описания if len(descript) == 2: descript.append(0) # Добавляем число использований описания elif type(descript[2]) is not int: descript[2] = 0 if len(descript) > 3: descript = descript[:3] # Отсекание лишних данных, если таковые есть self.descriptions.append(descript) # Добавляем в список self.avatar = get_random_image(u"img/avahuman/knight") self.forced_to_challenge = False # Обязан ли рыцарь бросить вызов дракону, когда тот пойдет спать.
def check_script(metaname): for f in renpy.list_files(): if f.startswith("characters") and 'script' in f and metaname in f: holder = f.split('/') return holder[len(holder)-1] return None