Пример #1
0
 def test_serialize(self):
     self.assertEqual(self.kb.serialize(), KnowledgeBase.deserialize(self.kb.serialize(), FACTS).serialize())
     self.assertEqual(
         self.kb.serialize(short=True), KnowledgeBase.deserialize(self.kb.serialize(short=True), FACTS).serialize()
     )
     self.assertNotEqual(
         self.kb.serialize(), KnowledgeBase.deserialize(self.kb.serialize(short=True), FACTS).serialize()
     )
Пример #2
0
 def test_serialize(self):
     self.assertEqual(
         self.kb.serialize(),
         KnowledgeBase.deserialize(self.kb.serialize(), FACTS).serialize())
     self.assertEqual(
         self.kb.serialize(short=True),
         KnowledgeBase.deserialize(self.kb.serialize(short=True),
                                   FACTS).serialize())
     self.assertNotEqual(
         self.kb.serialize(),
         KnowledgeBase.deserialize(self.kb.serialize(short=True),
                                   FACTS).serialize())
Пример #3
0
 def deserialize(cls, data):
     return cls(
         knowledge_base=KnowledgeBase.deserialize(data["knowledge_base"], fact_classes=facts.FACTS),
         quests_stack=[QuestInfo.deserialize(info_data) for info_data in data["quests_stack"]],
         created_at=datetime.datetime.fromtimestamp(data["created_at"]),
         states_to_percents=data["states_to_percents"],
     )
Пример #4
0
 def deserialize(cls, data):
     return cls(
         knowledge_base=KnowledgeBase.deserialize(data['knowledge_base'],
                                                  fact_classes=facts.FACTS),
         quests_stack=[
             QuestInfo.deserialize(info_data)
             for info_data in data['quests_stack']
         ],
         created_at=datetime.datetime.fromtimestamp(data['created_at']),
         states_to_percents=data['states_to_percents'])
Пример #5
0
def setup_quest_for_hero(hero, knowledge_base_data):

    # do nothing if hero has already had quest
    if not hero.actions.current_action.searching_quest:
        return

    knowledge_base = KnowledgeBase.deserialize(knowledge_base_data, fact_classes=facts.FACTS)

    states_to_percents = analysers.percents_collector(knowledge_base)

    quest = QuestPrototype(hero=hero, knowledge_base=knowledge_base, states_to_percents=states_to_percents)

    if quest.machine.can_do_step():
        quest.machine.step() # do first step to setup pointer

    hero.actions.current_action.setup_quest(quest)
Пример #6
0
def setup_quest_for_hero(hero, knowledge_base_data):

    # do nothing if hero has already had quest
    if not hero.actions.current_action.searching_quest:
        return

    knowledge_base = KnowledgeBase.deserialize(knowledge_base_data,
                                               fact_classes=facts.FACTS)

    states_to_percents = analysers.percents_collector(knowledge_base)

    quest = QuestPrototype(hero=hero,
                           knowledge_base=knowledge_base,
                           states_to_percents=states_to_percents)

    if quest.machine.can_do_step():
        quest.machine.step()  # do first step to setup pointer

    hero.actions.current_action.setup_quest(quest)
Пример #7
0
 def deserialize(cls, hero, data):
     return cls(knowledge_base=KnowledgeBase.deserialize(data['knowledge_base'], fact_classes=facts.FACTS),
                quests_stack=[QuestInfo.deserialize(info_data) for info_data in data['quests_stack']],
                created_at=datetime.datetime.fromtimestamp(data['created_at']),
                states_to_percents=data['states_to_percents'],
                hero=hero)