Ejemplo n.º 1
0
 def roll_values(self, values):
     v = values[-1]
     if type(v) == list:
         v = v[1]
     if v == 10:
         return roll_d10()
     if v == 100:
         return roll_d100()
Ejemplo n.º 2
0
 def step_5(self, table):
     result, index = self.roll_on_table(table, with_index=True, with_input=97)
     result_dict = {"age": result["age"] + roll_d10()}
     if index == 0:
         self.next_step = 8
     if result.get("next"):
         next_table = self.get_from_target(result["next"])
         next_result = self.advanced_age(next_table)
         result_dict.update(next_result)
     return {"title": table.get("title", ""), "desc": table.get("desc", ""), "result": result_dict}
Ejemplo n.º 3
0
 def step_3(self, table):
     result, index = self.roll_on_table(table, with_index=True)
     backgrounds = []
     ignore_others = False
     agi_uplift = None
     self.pp += int(result["roll"]) * int(result["select"])
     for i in range(result["roll"]):
         next_table = self.get_from_target(result["next"])
         next_result = self.roll_on_table(next_table)
         final_table = self.get_from_target(next_result["next"])
         final_result, final_index = self.roll_on_table(final_table, with_index=True)
         if type(final_result) == dict:
             if final_result.get("next"):
                 final_table = self.get_from_target(final_result["next"])
                 final_result, final_index = self.roll_on_table(final_table, with_index=True)
             else:
                 final_result = self.roll_on_table(final_result)
         target_table = self.get_from_target(final_table["target"])
         background = target_table[final_result]
         morph = final_table["morph"][final_index]
         if type(morph) == dict:
             if "next" in morph:
                 morph = self.get_random_morph(morph.get("ignore"))
             else:
                 morph = self.roll_on_table(morph)
         next = final_table["next"][final_index]
         desc = final_table["desc"][final_index]
         if type(next) == dict:
             next = self.roll_on_table(next)
         if next_result["next"] == "3.9":
             if final_index < 3:
                 agi_uplift = "infolife"
             elif final_index > 3:
                 agi_uplift = "uplift"
             if desc.endswith("*"):
                 roll = roll_d10()
                 if desc.endswith("**"):
                     roll = 1
                 if roll < 4:
                     backgrounds = []
                     ignore_others = True
                     self.next_step = 9
         backgrounds.append(
             {
                 "title": final_table.get("title", ""),
                 "desc": desc,
                 "package": final_result,
                 "result": clear_package(background, result["select"]),
                 "pkg_type": "background",
                 "morph": morph,
                 # ONLY THE FINAL NEXT VALUE COUNTS
                 "next": next,
             }
         )
         if ignore_others:
             break
     return {
         "title": table.get("title", ""),
         "desc": table.get("desc", "")[index],
         "result": backgrounds,
         "agi-uplift": agi_uplift,
     }