def test_talk_to_recruitable_character(self):
     interaction = {
         'dialog': [
             "Hurry up ! Leave the village from the west, and enter the necropolis.",
             "The clock is ticking... The ogre's bones must be returned to their original place."
         ],
         'join_team':
         True
     }
     actor = random_character_entity()
     character_test = random_character_entity(interaction=interaction)
     character_test.talk(actor)
     self.assertTrue(character_test.join_team)
 def test_talk_to_character(self):
     interaction = {
         'dialog': [
             "Hurry up ! Leave the village from the west, and enter the necropolis.",
             "The clock is ticking... The ogre's bones must be returned to their original place."
         ],
         'join_team':
         False
     }
     actor = random_character_entity()
     character_test = random_character_entity(interaction=interaction)
     entries = character_test.talk(actor)
     self.assertEqual(2, len(entries))
    def test_attack_with_weapon(self):
        weapon = random_weapon(strong_against=[])
        equipments = [weapon]
        character_test = random_character_entity(equipments=equipments)

        self.assertEqual(character_test.strength + weapon.atk,
                         character_test.attack(random_foe_entity()))
Example #4
0
 def test_save_and_load_character(self):
     interaction = {
         'dialog': [
             "Hurry up ! Leave the village from the west, and enter the necropolis.",
             "The clock is ticking... The ogre's bones must be returned to their original place."
         ],
         'join_team':
         False
     }
     character = random_character_entity(name='jist',
                                         classes=['innkeeper'],
                                         race='human',
                                         interaction=interaction)
     character_saved = character.save('ally')
     loaded_character = load_ally(character_saved, True, 0, 0)
     self.assertEqual(character.name, loaded_character.name)
     self.assertEqual(character.pos, loaded_character.pos)
     self.assertEqual(character.hp, loaded_character.hp)
     self.assertEqual(character.defense, loaded_character.defense)
     self.assertEqual(character.res, loaded_character.res)
     self.assertEqual(character.strength, loaded_character.strength)
     self.assertEqual(character.classes, loaded_character.classes)
     self.assertEqual(character.equipments, loaded_character.equipments)
     self.assertEqual(character.strategy, loaded_character.strategy)
     self.assertEqual(character.lvl, loaded_character.lvl)
     self.assertEqual(character.skills, loaded_character.skills)
     self.assertEqual(character.race, loaded_character.race)
     self.assertEqual(character.gold, loaded_character.gold)
     self.assertEqual(character.interaction, loaded_character.interaction)
     self.assertEqual(character.join_team, loaded_character.join_team)
     self.assertEqual(character.alterations, loaded_character.alterations)
 def test_interact_no_interaction(self):
     house = random_building(is_interactive=False)
     actor = random_character_entity()
     actor_gold_before = actor.gold
     actor_items_before = actor.items.copy()
     entries = house.interact(actor)
     print(entries)
     self.assertEqual(actor_gold_before, actor.gold)
     self.assertEqual(actor_items_before, actor.items)
 def test_interact_talks_only(self):
     house = random_building(min_talks=1, gold=False, item=False)
     actor = random_character_entity()
     actor_gold_before = actor.gold
     actor_items_before = actor.items.copy()
     entries = house.interact(actor)
     print(entries)
     self.assertEqual(actor_gold_before, actor.gold)
     self.assertEqual(actor_items_before, actor.items)
 def test_interact(self):
     name = 'tavern'
     pos = (3, 2)
     sprite = 'imgs/houses/blue_house.png'
     interaction = None
     items = [random_item(), random_item()]
     shop = Shop(name, pos, sprite, interaction, items)
     actor = random_character_entity()
     entries = shop.interact(actor)
     print(entries)
 def test_interact_gold_reward(self):
     house = random_building(min_gold=10, item=False)
     interaction = house.interaction
     actor = random_character_entity()
     actor_gold_before = actor.gold
     actor_items_before = actor.items.copy()
     entries = house.interact(actor)
     print(entries)
     self.assertEqual(actor_gold_before + interaction['gold'], actor.gold)
     self.assertEqual(actor_items_before, actor.items)
    def test_parried(self):
        parry_rate = 100
        equipments = [random_shield(parry_rate=parry_rate)]
        character_test = random_character_entity(equipments=equipments)
        self.assertTrue(character_test.parried())

        parry_rate = 0
        equipments = [random_shield(parry_rate=parry_rate)]
        character_test.equipments = equipments
        self.assertFalse(character_test.parried())
Example #10
0
    def test_save_and_load_character_with_alterations(self):
        character = random_character_entity(name="jist", classes=['innkeeper'])
        alteration = random_alteration()
        other_alteration = random_alteration()

        character.set_alteration(alteration)
        character.set_alteration(other_alteration)
        character_saved = character.save('ally')
        loaded_character = load_ally(character_saved, True, 0, 0)

        self.assertEqual(character.alterations, loaded_character.alterations)
    def test_interact_multiple_times(self):
        house = random_building()
        actor = random_character_entity()
        entries = house.interact(actor)
        print("-- FIRST VISIT --")
        print(entries)

        actor_gold_before = actor.gold
        actor_items_before = actor.items.copy()
        entries = house.interact(actor)
        print("-- SECOND VISIT --")
        print(entries)
        self.assertEqual(actor_gold_before, actor.gold)
        self.assertEqual(actor_items_before, actor.items)
    def test_attacked_while_having_equipments(self):
        defense = 2
        res = 3
        equipments = [random_equipment(defense=defense, res=res)]
        character_test = random_character_entity(equipments=equipments)

        # Physical attack
        damage = character_test.defense + 5
        character_test.attacked(random_foe_entity(), damage,
                                DamageKind.PHYSICAL, [])
        self.assertEqual(character_test.hp_max - 3, character_test.hp)

        character_test.healed()

        # Mental attack
        damage = character_test.res + 5
        character_test.attacked(random_foe_entity(), damage,
                                DamageKind.SPIRITUAL, [])
        self.assertEqual(character_test.hp_max - 2, character_test.hp)
 def test_lvl_up(self):
     character_test = random_character_entity(lvl=3)
     hp_before = character_test.hp_max
     character_test.lvl_up()
     self.assertEqual(4, character_test.lvl)
     self.assertNotEqual(hp_before, character_test.hp_max)