def roll(self, numLines = -1): if numLines == -1: numLines = len(self.m_lines) primeChance = 0.02*numLines ranks = [] for i in range(numLines): if i == 0: ranks.append(self.m_rank) else: if ranks[i - 1] == self.m_rank and random.random() < primeChance: ranks.append(self.m_rank) else: ranks.append(max(0, self.m_rank - 1)) self.m_lines = [] for i in range(numLines): line = rng.weighted_choice(PotentialLib.roll(self, ranks[i])) self.m_lines.append(line)
def expand(self): self.m_lines.append(rng.weighted_choice(PotentialLib.roll(self, max(0, self.m_rank - 1))))