Exemple #1
0
def two_d6_plus_6() -> list:
    """Roll 2d6+6 six times, keeping the order.

    This ensures no score is too low and most abilities are above average.
    """
    rolls: List[int] = []
    for i in range(1, 7):
        roll: int = multi_die(2, 6) + 6
        rolls.append(roll)
    return rolls
Exemple #2
0
def three_d6() -> list:
    """Roll 3d6 six times. Each result is the value of the ability, from top to bottom

    This can lead to characters that are weaker than average and limit race and class eligibility.
    However, it can also lead to more role playing opportunities.

    :rtype: list
    """
    rolls: List[int] = []
    for i in range(1, 7):
        roll: int = multi_die(3, 6)
        rolls.append(roll)
    return rolls
Exemple #3
0
def four_d6_drop_lowest() -> list:
    """Roll 4d6 six times, discarding the lowest roll, keeping the order.

    This ensures above average scores and greater likelihood of getting the desired class.
    """
    rolls: List[int] = []
    for x in range(1, 7):
        new_val: int = 0
        i: int = 0
        while i < 7:
            roll: int = multi_die(3, 6)
            if roll >= new_val:
                new_val = roll
            i += 1
        rolls.append(new_val)
    return rolls
Exemple #4
0
 def set_social_class(self, social_class=None):
     """If not defined, randomly assign a social class to the character."""
     if social_class:
         self.social_class = social_class
     else:
         roll = multi_die(1, 100)
         if 1 <= roll <= 4:
             self.social_class = "Lower-Lower Class"
         elif 5 <= roll <= 10:
             self.social_class = "Middle-Lower Class"
         elif 11 <= roll <= 20:
             self.social_class = "Upper-Lower Class"
         elif 21 <= roll <= 35:
             self.social_class = "Lower-Middle Class"
         elif 36 <= roll <= 55:
             self.social_class = "Middle-Middle Class"
         elif 56 <= roll <= 87:
             self.social_class = "Upper-Middle Class"
         elif 88 <= roll <= 96:
             self.social_class = "Lower-Upper Class"
         elif 97 <= roll <= 99:
             self.social_class = "Middle-Upper Class"
         else:
             self.social_class = "Upper-Upper Class"
Exemple #5
0
 def test_1d6(self):
     for i in range(25):
         assert 1 <= multi_die(1, 1) <= 6
Exemple #6
0
 def test_num_error(self):
     assert multi_die(0, 1) == 0
Exemple #7
0
 def test_3d6(self):
     for i in range(25):
         assert 3 <= multi_die(3, 1) <= 18
Exemple #8
0
 def test_2d20(self):
     for i in range(25):
         assert 2 <= multi_die(2, 7) <= 40
Exemple #9
0
 def test_3d20(self):
     for i in range(25):
         assert 3 <= multi_die(3, 7) <= 60
Exemple #10
0
 def test_3d4(self):
     for i in range(25):
         assert 3 <= multi_die(3, 4) <= 16
Exemple #11
0
 def test_2d8(self):
     for i in range(25):
         assert 2 <= multi_die(2, 5) <= 16
Exemple #12
0
 def test_1d12(self):
     for i in range(25):
         assert 1 <= multi_die(1, 6) <= 12
Exemple #13
0
 def test_2d12(self):
     for i in range(25):
         assert 2 <= multi_die(2, 6) <= 24
Exemple #14
0
 def test_3d10(self):
     for i in range(25):
         assert 3 <= multi_die(3, 5) <= 30
Exemple #15
0
 def test_2d10(self):
     for i in range(25):
         assert 2 <= multi_die(2, 2) <= 20
Exemple #16
0
 def test_1d10(self):
     for i in range(25):
         assert 1 <= multi_die(1, 2) <= 10
Exemple #17
0
 def test_2d6(self):
     for i in range(25):
         assert 2 <= multi_die(2, 1) <= 12
Exemple #18
0
 def test_2d4(self):
     for i in range(25):
         assert 2 <= multi_die(2, 4) <= 8
Exemple #19
0
 def test_3d12(self):
     for i in range(25):
         assert 3 <= multi_die(3, 6) <= 36
Exemple #20
0
 def test_1d8(self):
     for i in range(25):
         assert 1 <= multi_die(1, 5) <= 8
Exemple #21
0
 def test_1d20(self):
     for i in range(25):
         assert 1 <= multi_die(1, 7) <= 20
Exemple #22
0
 def test_1d4(self):
     for i in range(25):
         assert 1 <= multi_die(1, 4) <= 4