Пример #1
0
 def setup_turn_test(self, turn_index=1):
     e = Encounter.empty()
     members = [
         Member.player('player', initiative=15),
         Member.player('player', initiative=10),  # it's this guys turn
         Member.player('player', initiative=5),
     ]
     list(map(e.add_member, members))
     e.turn_index = turn_index
     return e, members
Пример #2
0
    def test_add_member_single_member_no_suffix(self):
        testee = self.make_testee()
        m = Member.player('player', initiative=5)
        testee.add_member(m)

        actual = testee.all_members
        expected = [
            Member.player('player', initiative=5)
        ]
        compare(actual=actual, expected=expected)
Пример #3
0
    def test_add_member_multiple_of_same_has_suffix(self):
        testee = self.make_testee()
        testee.add_member(Member.player('player', initiative=5))
        testee.add_member(Member.player('player', initiative=5))

        actual = testee.all_members
        expected = [
            Member.player('player_1', initiative=5),
            Member.player('player_2', initiative=5),
        ]
        compare(actual=actual, expected=expected)
Пример #4
0
    def test_as_dict_from_dict_same_object(self):
        s = StatBlock({'hit_points': 50, 'dexterity': 14})
        m = Member.npc('base', s)

        d = m.as_dict()
        new = Member.empty()
        new.from_dict(d)

        compare(actual=new.base_name, expected=m.base_name)
        compare(actual=new.name, expected=m.name)
        compare(actual=new.piece_name, expected=m.piece_name)
        compare(actual=new.is_player, expected=m.is_player)
        compare(actual=new.used_slots, expected=m.used_slots)
        compare(actual=new.current_hp, expected=m.current_hp)
        compare(actual=new.hit_points, expected=m.hit_points)
        compare(actual=new.initiative, expected=m.initiative)
        compare(actual=new.is_alive, expected=m.is_alive)
        compare(actual=new.current_turn, expected=m.current_turn)
Пример #5
0
 def add_players(self, command_line, widget_proxy, live):
     match = self.players_re.search(command_line)
     if match:
         s = match.group('player_string')
         pairs = s.split(',')
         for pair in pairs:
             name, initiative = pair.split('-')
             player = Member.player(name, initiative)
             self.parent.encounter.add_member(player)
     self.parent.harsh_update()
     self.action_performed()
Пример #6
0
 def duplicate_member(self, command_line, widget_proxy, live):
     if self.parent.selected and not self.parent.selected.is_player:
         match = self.duplicate_member_re.search(command_line)
         if match:
             copies = int(match.group('copies'))
             old = self.parent.selected
             for _ in range(copies):
                 new = Member.npc(old.base_name, old.stat_block)
                 self.parent.encounter.add_member(new)
             self.parent.show_members()
         else:
             self.show_temp_message(msg='Invalid Args')
Пример #7
0
 def add_to_encounter(self, value):
     encounter = self.parent.encounter
     stat_block = self._load_value(value)
     encounter.add_member(Member.npc(stat_block.name, stat_block))
     self.parent.parentApp.switchFormPrevious()
Пример #8
0
 def test_add_member_after_current_turn_maintains_turn_index(self):
     encounter, members = self.setup_turn_test()
     encounter.add_member(Member.player('not_a_player', initiative=8))
     compare(actual=encounter.current_turn_member.name, expected=members[1].name)
Пример #9
0
    def test_remove_member_maintains_order(self):
        testee = self.make_testee()
        testee.add_member(Member.player('player', initiative=5))
        testee.add_member(Member.player('player', initiative=5))
        testee.add_member(Member.player('non-player', initiative=5))
        testee.add_member(Member.player('player', initiative=5))

        actual = testee.all_members
        expected = [
            Member.player('player_1', initiative=5),
            Member.player('player_2', initiative=5),
            Member.player('non-player', initiative=5),
            Member.player('player_3', initiative=5),
        ]
        compare(actual=actual, expected=expected)

        testee.remove_member(
            Member(base_name='player', name='player_2', initiative=5, is_player=True)
        )

        actual = testee.all_members
        expected = [
            Member.player('player_1', initiative=5),
            Member.player('non-player', initiative=5),
            Member.player('player_2', initiative=5),
        ]
        compare(actual=actual, expected=expected)

        testee.remove_member(
            Member(base_name='player', name='player_1', initiative=5, is_player=True)
        )

        actual = testee.all_members
        expected = [
            Member.player('non-player', initiative=5),
            Member.player('player', initiative=5),
        ]
        compare(actual=actual, expected=expected)