def build_timeline_by_role(tl: timeline, role_name: str) -> timeline: role = roles.get_role(role_name) trigger_dict = get_squad_timeline(role_name) if role != None and trigger_dict != None: for i in range(0, 90): moment = 90 - i if role.__contains__("ex"): for trigger_point in trigger_dict["ex"]: if trigger_point >= moment and moment > trigger_point - role["ex"]["duration"]: tl.add_status(moment, role["ex"]["name"], role["ex"]["value"], role["ex"]["type"], role["ex"]["private"]) if role.__contains__("s1"): for trigger_point in trigger_dict["s1"]: if trigger_point >= moment and moment > trigger_point - role["s1"]["duration"]: tl.add_status(moment, role["s1"]["name"], role["s1"]["value"], role["s1"]["type"], role["s1"]["private"]) if role.__contains__("s2"): for trigger_point in trigger_dict["s2"]: if trigger_point >= moment and moment > trigger_point - role["s2"]["duration"]: tl.add_status(moment, role["s2"]["name"], role["s2"]["value"], role["s2"]["type"], role["s2"]["private"]) return tl