示例#1
0
 def __init__(self, level=1, treasury=None, *args, **kwargs):
     super(Thief, self).__init__(*args, **kwargs)
     self._alive = True
     # Проверка что мы можем создать вора указанного уровня
     if level < 1:
         level = 1
     elif level > Thief.max_level():
         level = Thief.max_level()
     self._skill = level
     self._title = data.thief_titles[level - 1]
     self.name = "%s %s" % (random.choice(
         data.thief_first_names), random.choice(data.thief_last_names))
     self.abilities = data.Container("thief_abilities")
     self.items = data.Container("thief_items")
     # Определяем способности вора
     ability_list = [a for a in data.thief_abilities
                     ]  # Составляем список из возможных способностей
     ability_list += [None for _ in range(len(ability_list))
                      ]  # Добавляем невалидных вариантов
     for level in range(self._skill):
         ab = random.choice(ability_list)
         if ab is not None and ab not in self.abilities:
             self.abilities.add(ab, deepcopy(data.thief_abilities[ab]))
     # прочее
     self.treasury = treasury  # Ссылка на сокровищницу.
     self.avatar = get_random_image(u"img/avahuman/thief")
     self.forced_to_rob = False  # Обязан ли ограбить дракона, когда тот пойдет спать.
示例#2
0
 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    # Обязан ли рыцарь бросить вызов дракону, когда тот пойдет спать.
示例#3
0
    def __init__(self,
                 parent=None,
                 used_gifts=None,
                 used_avatars=None,
                 *args,
                 **kwargs):
        """
        parent - родитель дракона, если есть.
        """
        super(Dragon, self).__init__(*args, **kwargs)
        # TODO: pretty screen for name input
        # self._first_name = u"Старый"
        # self._last_name = u"Охотник"
        self.name = random.choice(data.dragon_names)
        self.surname = random.choice(data.dragon_surnames)
        self._age = 0
        self.reputation = Reputation()
        self._tiredness = 0  # увеличивается при каждом действии
        self.bloodiness = 0  # range 0..5
        self.lust = 3  # range 0..3, ресурс восстанавливается до 3 после каждого отдыха
        self.hunger = 3  # range 0..3, ресурс восстанавливается до 3 после каждого отдыха
        self.health = 2  # range 0..2, ресурс восстанавливается до 2 после каждого отдыха
        self._mana_used = 0  # количество использованной маны
        self.spells = [
        ]  # заклинания наложенные на дракона(обнуляются после сна)
        self._base_energy = 3  # Базовая энергия дракона, не зависящая от модификторов
        self.special_places = {}  # Список разведанных "достопримечательностей"
        self.events = []  # список событий с этим драконом
        self._gift = None  # Дар Владычицы
        if used_gifts is None:
            used_gifts = []
        # Головы
        if parent is not None:
            self.heads = deepcopy(
                parent.heads)  # Копируем живые головы родителя
            self.heads.extend(parent.dead_heads)  # И прибавляем к ним мертвые
            self.level = parent.level + 1  # Уровень дракона
        else:
            self.heads = ['green']  # головы дракона
            self.level = 1  # Начальный уровень дракона
        self.dead_heads = []  # мертвые головы дракона

        # Анатомия
        if parent is None:
            self.anatomy = ['size']
        else:
            self.anatomy = deepcopy(parent.anatomy)
        self._gift = self._get_ability(used_gifts=used_gifts)
        if self._gift == 'head':
            self.heads.append('green')
        elif self._gift in data.dragon_heads.keys():
            self.heads[self.heads.index('green')] = self._gift
        else:
            self.anatomy.append(self._gift)
        self.avatar = get_random_image("img/avadragon/" + self.color_eng,
                                       used_avatars)  # Назначаем аватарку
示例#4
0
    def __init__(self, parent=None, used_gifts=None, used_avatars=None, *args, **kwargs):
        """
        parent - родитель дракона, если есть.
        """
        super(Dragon, self).__init__(*args, **kwargs)
        # TODO: pretty screen for name input
        # self._first_name = u"Старый"
        # self._last_name = u"Охотник"
        self.name = random.choice(data.dragon_names)
        self.surname = random.choice(data.dragon_surnames)
        self._age = 0
        self.reputation = Reputation()
        self._tiredness = 0  # увеличивается при каждом действии
        self.bloodiness = 0  # range 0..5
        self.lust = 3  # range 0..3, ресурс восстанавливается до 3 после каждого отдыха
        self.hunger = 3  # range 0..3, ресурс восстанавливается до 3 после каждого отдыха
        self.health = 2  # range 0..2, ресурс восстанавливается до 2 после каждого отдыха
        self._mana_used = 0  # количество использованной маны
        self.spells = []  # заклинания наложенные на дракона(обнуляются после сна)
        self._base_energy = 3  # Базовая энергия дракона, не зависящая от модификторов
        self.special_places = {}  # Список разведанных "достопримечательностей"
        self.events = []  # список событий с этим драконом
        self._gift = None  # Дар Владычицы
        if used_gifts is None:
            used_gifts = []
        # Головы
        if parent is not None:
            self.heads = deepcopy(parent.heads)  # Копируем живые головы родителя
            self.heads.extend(parent.dead_heads)  # И прибавляем к ним мертвые
            self.level = parent.level + 1  # Уровень дракона
        else:
            self.heads = ['green']  # головы дракона
            self.level = 1  # Начальный уровень дракона
        self.dead_heads = []  # мертвые головы дракона

        # Анатомия
        if parent is None:
            self.anatomy = ['size']
        else:
            self.anatomy = deepcopy(parent.anatomy)
        self._gift = self._get_ability(used_gifts=used_gifts)
        if self._gift == 'head':
            self.heads.append('green')
        elif self._gift in data.dragon_heads.keys():
            self.heads[self.heads.index('green')] = self._gift
        else:
            self.anatomy.append(self._gift)
        self.avatar = get_random_image("img/avadragon/" + self.color_eng, used_avatars)  # Назначаем аватарку
示例#5
0
 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  # Обязан ли рыцарь бросить вызов дракону, когда тот пойдет спать.
示例#6
0
    def __init__(self, girl_type="peasant", *args, **kwargs):
        # Инициализируем родителя
        super(Girl, self).__init__(*args, **kwargs)
        # Указываем тип девушки (крестьянка, гигантша..)
        self.type = girl_type
        # Подбираем аватарку
        self.avatar = get_random_image("img/avahuman/" + girls_data.girls_info[girl_type]["avatar"])

        # @Alex: Added haicolor taken from avatar:
        hair_colors = ["black", "blond", "brown", "red", "unknown"]
        fn = self.avatar.split("/")[-1]
        for i in hair_colors:
            if i in fn:
                self.hair_color = i
                break
        else:
            self.hair_color = None

        # девственность = пригодность для оплодотворения драконом
        self.virgin = True
        # беременность: 0 - не беременна, 1 - беременна базовым отродьем, 2 - беременна продвинутым отродьем
        self.pregnant = 0
        # Репродуктивное качество женщины.
        # Если коварство дракона превышает её репродуктивное качество, то отродье будет продвинутым. Иначе базовым.
        self.quality = girls_data.girls_info[girl_type]["magic_rating"]
        # генерация имени
        # Если указано имя берем имя
        if girl_type + "_first" in girls_data.girls_names:
            self.name = random.choice(girls_data.girls_names[girl_type + "_first"])
            # Если есть фамилия, прибавляем к имени фамилию
            if girl_type + "_last" in girls_data.girls_names:
                self.name += " " + random.choice(girls_data.girls_names[girl_type + "_last"])
        # Не найти имя для девушки, считаем ее неизвестной
        else:
            self.name = "Неизвестная Красавица"
        self.jailed = False  # была ли уже в тюрьме, пригодится для описания
        self.treasure = []
示例#7
0
 def __init__(self, girl_type='peasant', *args, **kwargs):
     # Инициализируем родителя
     super(Girl, self).__init__(*args, **kwargs)
     # Указываем тип девушки (крестьянка, гигантша..)
     self.type = girl_type
     # Подбираем аватарку
     self.avatar = get_random_image("img/avahuman/" + girls_data.girls_info[girl_type]['avatar'])
     
     # @Alex: Added haicolor taken from avatar:
     hair_colors = ["black", "blond", "brown", "red", "unknown"]
     fn = self.avatar.split("/")[-1]
     for i in hair_colors:
         if i in fn:
             self.hair_color = i
             break
     else:
         self.hair_color = None
         
     # девственность = пригодность для оплодотворения драконом
     self.virgin = True
     # беременность: 0 - не беременна, 1 - беременна базовым отродьем, 2 - беременна продвинутым отродьем
     self.pregnant = 0
     # Репродуктивное качество женщины.
     # Если коварство дракона превышает её репродуктивное качество, то отродье будет продвинутым. Иначе базовым.
     self.quality = girls_data.girls_info[girl_type]['magic_rating']
     # генерация имени
     # Если указано имя берем имя
     if girl_type + '_first' in girls_data.girls_names:
         self.name = random.choice(girls_data.girls_names[girl_type + '_first'])
         # Если есть фамилия, прибавляем к имени фамилию
         if girl_type + '_last' in girls_data.girls_names:
             self.name += " " + random.choice(girls_data.girls_names[girl_type + '_last'])
     # Не найти имя для девушки, считаем ее неизвестной
     else:
         self.name = 'Неизвестная Красавица'
     self.jailed = False  # была ли уже в тюрьме, пригодится для описания
     self.treasure = []
示例#8
0
 def __init__(self, level=1, treasury=None, *args, **kwargs):
     super(Thief, self).__init__(*args, **kwargs)
     self._alive = True
     # Проверка что мы можем создать вора указанного уровня
     if level < 1:
         level = 1
     elif level > Thief.max_level():
         level = Thief.max_level()
     self._skill = level
     self._title = data.thief_titles[level - 1]
     self.name = "%s %s" % (random.choice(data.thief_first_names), random.choice(data.thief_last_names))
     self.abilities = data.Container("thief_abilities")
     self.items = data.Container("thief_items")
     # Определяем способности вора
     ability_list = [a for a in data.thief_abilities]  # Составляем список из возможных способностей
     ability_list += [None for _ in range(len(ability_list))]  # Добавляем невалидных вариантов
     for level in range(self._skill):
         ab = random.choice(ability_list)
         if ab is not None and ab not in self.abilities:
             self.abilities.add(ab, deepcopy(data.thief_abilities[ab]))
     # прочее
     self.treasury = treasury  # Ссылка на сокровищницу.
     self.avatar = get_random_image(u"img/avahuman/thief")
     self.forced_to_rob = False    # Обязан ли ограбить дракона, когда тот пойдет спать.