def description(self, status, say=False): """ Генерация описания ситуации для текущей девушки (self.game.girl). status - кодовое описание ситуации say - если истина - описание выводится сразу на экран, возвращается None, если ложь - возвращается текст описания """ girl_type = self.game.girl.type if girl_type not in girls_data.girls_texts or \ status not in girls_data.girls_texts[girl_type]: girl_type = 'girl' if girls_data.girls_texts[girl_type][status]: text = random.choice(girls_data.girls_texts[girl_type][status]) # TODO: Ситуативные описания insert_list = [self.game.girl.name, self.game.dragon.name] if status == 'birth': insert_list.append(girls_data.spawn_info[self.spawn[-1]]['name']) elif status == 'rob': treas_description = self.game.lair.treasury.treasures_description(self.game.girl.treasure) treas_description = '\n'.join(treas_description) insert_list.append(treas_description) text = text.format(*insert_list) else: text = "Описание для действия '%s' девушки типа '%s' отсутствует" % (status, self.game.girl.type) if say: store.nvl_list = [ ] #вариант nvl clear на питоне renpy.say(self.game.girl.third, text) #выдача сообщения else: return text
def stress_test(self): first_stress_aquired = False for i in self.player.slaves: stress = Stress(i).stress_check() if stress and not first_stress_aquired: first_stress_aquired = True renpy.say(None, 'player slave stress handling event here')
def stress_check(self): data = self._DATA[self.person] if roll(data.value, 6): if data.unstable: renpy.say(None, '%s stress event' % self.person.name) else: self.make_unstable() return True return False
def after_awakening(self): """ Все действия после пробуждения - разбираемся с воспитанными отродьями. """ for spawn_i in xrange(len(self.spawn)): spawn_type = self.spawn[spawn_i] # упрощение обращения к типу отродий spawn = girls_data.spawn_info[spawn_type] # упрощение обращения к данным отродий renpy.show("meow", what=store.Image("img/scene/spawn/%s.jpg" % spawn_type)) spawn_mod = spawn['modifier'] # упрощение обращения к списку модификаторов отродий # Делаем проверку. Истина, если не морское отродье или морское в подводном логове # TODO: Возможно стоит сделать умирание слуги, если оно не морское и в морском логове. marine_check = ('marine' not in spawn_mod) or \ (self.game.lair.type.require and 'swimming' in self.game.lair.type.require) spawn_menu = [(u"К Вам приходит %s и просит назначения" % spawn['name'], None)] # меню отродий # Возможные пункты меню if ('poisonous' in spawn_mod) and ('poison_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Выпустить в логово", u'poison_guards')) if ('servant' in spawn_mod) and ('servant' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать слугой", 'servant')) if ('warrior' in spawn_mod) and ('regular_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать охранником", 'regular_guards')) if ('elite' in spawn_mod) and ('elite_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать элитным охранником", 'elite_guards')) spawn_menu.append((u"Выпустить в королевство", 'free')) if (('servant' in spawn_mod) or ('warrior' in spawn_mod) or ('elite' in spawn_mod)) and \ ('marine' not in spawn_mod): spawn_menu.append((u"Отправить в армию тьмы", 'army_of_darkness')) menu_action = renpy.display_menu(spawn_menu) if menu_action == 'free': renpy.say(self.game.narrator, u"%s отправляется бесчинствовать в королевстве." % spawn['name']) self.free_spawn(spawn['power']) elif menu_action == 'army_of_darkness': renpy.say(self.game.narrator, u"%s отправляется в армию тьмы." % spawn['name']) self.army_of_darkness(spawn_type) else: # выдача сообщения о начале работы renpy.say(self.game.narrator, u"%s приступает к выполнению обязанностей." % spawn['name']) # выдача сообщения о конце работы, если это необходимо if 'replaces' in data.lair_upgrades[menu_action].keys(): replace = data.lair_upgrades[menu_action]['replaces'] renpy.say(self.game.narrator, u"%s больше не требуются и уходят." % data.lair_upgrades[replace]['name']) # добавление в улучшение логова self.game.lair.add_upgrade(menu_action) renpy.hide("meow") self.spawn = []
def after_awakening(self): """ All actions after awakening - sort out spawns. """ for spawn_i in xrange(len(self.spawn)): spawn_type = self.spawn[spawn_i] # simplified access to spawns's type spawn = girls_data.spawn_info[spawn_type] # simplified access to spawns's data renpy.show("meow", what=store.Image("img/scene/spawn/%s.jpg" % spawn_type)) spawn_mod = spawn['modifier'] # simplified access to spawns's modifiers list # Make check. True if not sea spawn or sea spawn in underwater lair # TODO: Возможно стоит сделать умирание слуги, если оно не морское и в морском логове. marine_check = ('marine' not in spawn_mod) or \ (self.game.lair.type.require and 'swimming' in self.game.lair.type.require) spawn_menu = [(u"К Вам приходит %s и просит назначения" % spawn['name'], None)] # меню отродий # Possible menu points if ('poisonous' in spawn_mod) and ('poison_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Выпустить в логово", u'poison_guards')) if ('servant' in spawn_mod) and ('servant' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать слугой", 'servant')) if ('warrior' in spawn_mod) and ('regular_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать охранником", 'regular_guards')) if ('elite' in spawn_mod) and ('elite_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать элитным охранником", 'elite_guards')) spawn_menu.append((u"Выпустить в королевство", 'free')) if (('servant' in spawn_mod) or ('warrior' in spawn_mod) or ('elite' in spawn_mod)) and \ ('marine' not in spawn_mod): spawn_menu.append((u"Отправить в армию тьмы", 'army_of_darkness')) menu_action = renpy.display_menu(spawn_menu) if menu_action == 'free': renpy.say(self.game.narrator, u"%s отправляется бесчинствовать в королевстве." % spawn['name']) self.free_spawn(spawn['power']) elif menu_action == 'army_of_darkness': renpy.say(self.game.narrator, u"%s отправляется в армию тьмы." % spawn['name']) self.army_of_darkness(spawn_type) else: # Message about work start renpy.say(self.game.narrator, u"%s приступает к выполнению обязанностей." % spawn['name']) # Message about work end if 'replaces' in data.lair_upgrades[menu_action].keys(): replace = data.lair_upgrades[menu_action]['replaces'] renpy.say(self.game.narrator, u"%s больше не требуются и уходят." % data.lair_upgrades[replace]['name']) # add lair improvement self.game.lair.add_upgrade(menu_action) renpy.hide("meow") self.spawn = []
def after_awakening(self): """ Все действия после пробуждения - разбираемся с воспитанными отродьями. """ for spawn_i in xrange(len(self.spawn)): spawn_type = self.spawn[spawn_i] # упрощение обращения к типу отродий spawn = girls_data.spawn_info[spawn_type] # упрощение обращения к данным отродий spawn_mod = spawn['modifier'] # упрощение обращения к списку модификаторов отродий marine_check = ('marine' not in spawn_mod) or \ (self.game.lair.type.require and 'swimming' in self.game.lair.type.require) # истина, если не морское отродье или морское в подводном логове spawn_menu = [(u"К Вам приходит %s и просит назначения" % spawn['name'], None)] # меню отродий # Возможные пункты меню if ('poisonous' in spawn_mod) and ('poison_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Выпустить в логово", 'poison_guards')) if ('servant' in spawn_mod) and ('servant' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать слугой", 'servant')) if ('warrior' in spawn_mod) and ('regular_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать охранником", 'regular_guards')) if ('elite' in spawn_mod) and ('elite_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать элитным охранником", 'elite_guards')) spawn_menu.append((u"Выпустить в королевство", 'free')) if (('servant' in spawn_mod) or ('warrior' in spawn_mod) or ('elite' in spawn_mod)) and ('marine' not in spawn_mod): spawn_menu.append((u"Отправить в армию тьмы", 'army_of_darkness')) menu_action = renpy.display_menu(spawn_menu) if menu_action == 'free': renpy.say(self.game.narrator, u"%s отправляется бесчинствовать в королевстве" % spawn['name']) self.free_spawn(spawn['power']) elif menu_action == 'army_of_darkness': renpy.say(self.game.narrator, u"%s отправляется в армию тьмы" % spawn['name']) self.army_of_darkness(spawn_type) else: renpy.say(self.game.narrator, u"%s приступает к выполнению обязанностей" % spawn['name']) # выдача сообщения self.game.lair.upgrades.add(menu_action, deepcopy(data.lair_upgrades[menu_action])) # добавление в улучшение логова self.spawn = []
def after_awakening(self): """ Все действия после пробуждения - разбираемся с воспитанными отродьями. """ for spawn_i in xrange(len(self.spawn)): spawn_type = self.spawn[ spawn_i] # упрощение обращения к типу отродий spawn = girls_data.spawn_info[ spawn_type] # упрощение обращения к данным отродий renpy.show("meow", what=store.Image("img/scene/spawn/%s.jpg" % spawn_type)) spawn_mod = spawn[ 'modifier'] # упрощение обращения к списку модификаторов отродий # Делаем проверку. Истина, если не морское отродье или морское в подводном логове # TODO: Возможно стоит сделать умирание слуги, если оно не морское и в морском логове. marine_check = ('marine' not in spawn_mod) or \ (self.game.lair.type.require and 'swimming' in self.game.lair.type.require) spawn_menu = [ (u"К Вам приходит %s и просит назначения" % spawn['name'], None) ] # меню отродий # Возможные пункты меню if ('poisonous' in spawn_mod) and ( 'poison_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Выпустить в логово", u'poison_guards')) if ('servant' in spawn_mod) and ( 'servant' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать слугой", 'servant')) if ('warrior' in spawn_mod) and ( 'regular_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append((u"Сделать охранником", 'regular_guards')) if ('elite' in spawn_mod) and ( 'elite_guards' not in self.game.lair.upgrades) and marine_check: spawn_menu.append( (u"Сделать элитным охранником", 'elite_guards')) spawn_menu.append((u"Выпустить в королевство", 'free')) if (('servant' in spawn_mod) or ('warrior' in spawn_mod) or ('elite' in spawn_mod)) and \ ('marine' not in spawn_mod): spawn_menu.append( (u"Отправить в армию тьмы", 'army_of_darkness')) menu_action = renpy.display_menu(spawn_menu) if menu_action == 'free': renpy.say( self.game.narrator, u"%s отправляется бесчинствовать в королевстве." % spawn['name']) self.free_spawn(spawn['power']) elif menu_action == 'army_of_darkness': renpy.say(self.game.narrator, u"%s отправляется в армию тьмы." % spawn['name']) self.army_of_darkness(spawn_type) else: # выдача сообщения о начале работы renpy.say( self.game.narrator, u"%s приступает к выполнению обязанностей." % spawn['name']) # выдача сообщения о конце работы, если это необходимо if 'replaces' in data.lair_upgrades[menu_action].keys(): replace = data.lair_upgrades[menu_action]['replaces'] renpy.say( self.game.narrator, u"%s больше не требуются и уходят." % data.lair_upgrades[replace]['name']) # добавление в улучшение логова self.game.lair.add_upgrade(menu_action) renpy.hide("meow") self.spawn = []