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 # Обязан ли ограбить дракона, когда тот пойдет спать.
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__(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) # Назначаем аватарку
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) # Назначаем аватарку
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__(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 = []
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 = []
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 # Обязан ли ограбить дракона, когда тот пойдет спать.