def _create_random_quest_for_hero(hero_info, start_quests, without_restrictions=False): knowledge_base = get_knowledge_base( hero_info, without_restrictions=without_restrictions) selector = Selector(knowledge_base, QUESTS_BASE, social_connection_probability=0) hero_uid = uids.hero(hero_info.id) quests_facts = selector.create_quest_from_place( nesting=0, initiator_position=selector.place_for(objects=(hero_uid, )), allowed=start_quests, excluded=[], tags=('can_start', )) knowledge_base += quests_facts transformators.activate_events( knowledge_base) # TODO: after remove restricted states transformators.remove_restricted_states(knowledge_base) transformators.remove_broken_states( knowledge_base) # MUST be called after all graph changes transformators.determine_default_choices( knowledge_base, preferred_markers=hero_info.prefered_quest_markers ) # MUST be called after all graph changes and on valid graph transformators.remove_unused_actors(knowledge_base) knowledge_base.validate_consistency(WORLD_RESTRICTIONS) knowledge_base.validate_consistency(QUEST_RESTRICTIONS) return knowledge_base
def _create_random_quest_for_hero(hero_info, start_quests, without_restrictions=False): knowledge_base = get_knowledge_base(hero_info, without_restrictions=without_restrictions) selector = Selector(knowledge_base, QUESTS_BASE, social_connection_probability=c.QUESTS_SOCIAL_CONNECTIONS_FRACTION) hero_uid = uids.hero(hero_info.id) quests_facts = selector.create_quest_from_place(nesting=0, initiator_position=selector.place_for(objects=(hero_uid,)), allowed=start_quests, excluded=[], tags=('can_start', )) knowledge_base += quests_facts transformators.activate_events(knowledge_base) # TODO: after remove restricted states transformators.remove_restricted_states(knowledge_base) transformators.remove_broken_states(knowledge_base) # MUST be called after all graph changes transformators.determine_default_choices(knowledge_base, preferred_markers=hero_info.prefered_quest_markers) # MUST be called after all graph changes and on valid graph transformators.remove_unused_actors(knowledge_base) knowledge_base.validate_consistency(WORLD_RESTRICTIONS) knowledge_base.validate_consistency(QUEST_RESTRICTIONS) return knowledge_base
def quest_test_method(self): from questgen.selectors import Selector from the_tale.game.quests import logic from the_tale.game.quests import uids knowledge_base = logic.get_knowledge_base( logic.create_hero_info(self.hero)) qb = QuestsBase() qb += [q.quest_class for q in quests] selector = Selector(knowledge_base, qb) hero_uid = uids.hero(self.hero.id) quests_facts = selector.create_quest_from_place( nesting=0, initiator_position=selector.place_for(objects=(hero_uid, )), allowed=[quest.quest_class.TYPE], excluded=[], tags=('can_start', )) knowledge_base += quests_facts self.check_quest(knowledge_base)
def quest_test_method(self): from questgen.selectors import Selector from the_tale.game.quests import logic from the_tale.game.quests import uids knowledge_base = logic.get_knowledge_base(logic.create_hero_info(self.hero)) qb = QuestsBase() qb += [q.quest_class for q in quests] selector = Selector(knowledge_base, qb) hero_uid = uids.hero(self.hero.id) quests_facts = selector.create_quest_from_place(nesting=0, initiator_position=selector.place_for(objects=(hero_uid,)), allowed=[quest.quest_class.TYPE], excluded=[], tags=('can_start',)) knowledge_base += quests_facts self.check_quest(knowledge_base)