| if morae[-1] == mora: | if morae[-1] == mora: | ||||
| mora = r.choice(mid) | mora = r.choice(mid) | ||||
| morae.append(mora) | morae.append(mora) | ||||
| return "".join(morae) | |||||
| fname = "".join(morae)[:lgt] | |||||
| return fname | |||||
| class Plot: | class Plot: | ||||
| loc1 = ["friendly","hostile","derelict","airless","poison-filled/covered","overgrown","looted","burning","frozen","haunted","infested"] | loc1 = ["friendly","hostile","derelict","airless","poison-filled/covered","overgrown","looted","burning","frozen","haunted","infested"] | ||||
| self.career = "" | self.career = "" | ||||
| elif isinstance(career, str): | elif isinstance(career, str): | ||||
| self.career = career | self.career = career | ||||
| elif isinstance(career, int) and career < len(Character.CAREERS): | |||||
| elif isinstance(career, int) and career in range(13): | |||||
| self.career = [x for x in Character.CAREERS if x["id"] == career][0] | self.career = [x for x in Character.CAREERS if x["id"] == career][0] | ||||
| else: | else: | ||||
| self.career = "" | self.career = "" | ||||
| def gen_career(self): | def gen_career(self): | ||||
| cid = r.randint(0,12) | cid = r.randint(0,12) | ||||
| self.career = [x for x in Character.CAREERS if x["id"] == cid][0] | |||||
| self.career = next((x for x in Character.CAREERS if x["id"] == cid), "") | |||||
| def gen_gadget(self): | def gen_gadget(self): | ||||
| gid = r.randint(0,15) | gid = r.randint(0,15) | ||||
| def print_name(self, html=False): | def print_name(self, html=False): | ||||
| if isinstance(self.career, str): | if isinstance(self.career, str): | ||||
| cname = self.career | cname = self.career | ||||
| cid = next((x for x in Character.CAREERS if x["name"] == cname), "") | |||||
| else: | else: | ||||
| cname = self.career["name"] | cname = self.career["name"] | ||||
| c = dict(next((x for x in Character.CAREERS if x["name"] == cname), "")) | |||||
| cid = c["id"] | |||||
| if html: | if html: | ||||
| charText = f"<h4>Name: {self.name} (Kobold {cname})</h4>" | charText = f"<h4>Name: {self.name} (Kobold {cname})</h4>" | ||||
| else: | else: | ||||
| charText = f"\nName: {self.name} (Kobold {cname})" | |||||
| charText = f"\nName: {self.name} (Kobold {cname} {cid})" | |||||
| print(charText) | print(charText) | ||||
| def print(self, html=False): | def print(self, html=False): | ||||
| l2 = bin(Plot.loc2.index(self.params.location))[2:] | l2 = bin(Plot.loc2.index(self.params.location))[2:] | ||||
| lb = bin(self.params.battlefield)[2:] | lb = bin(self.params.battlefield)[2:] | ||||
| op = bin(self.params.oops)[2:] | op = bin(self.params.oops)[2:] | ||||
| ms = bin(Plot.miss.index(self.params.mission))[2:] | |||||
| ms = bin(self.params.missIndex)[2:] | |||||
| pb1 = bin(self.params.probIndex)[2:] | pb1 = bin(self.params.probIndex)[2:] | ||||
| if self.params.probIndex == 10: | if self.params.probIndex == 10: | ||||
| pb2 = bin(self.params.secProbIndex)[2:] | pb2 = bin(self.params.secProbIndex)[2:] | ||||
| n2 = lpad(n2, 7) | n2 = lpad(n2, 7) | ||||
| gq = lpad(gq, 7) | gq = lpad(gq, 7) | ||||
| bq = lpad(bq, 7) | bq = lpad(bq, 7) | ||||
| self.key += l1 + l2 + lb + op + ms + pb1 + pbname + pb2 + n1 + n2 + gq + bq | |||||
| self.key += l1 + l2 + lb + ms + op + pb1 + pbname + pb2 + n1 + n2 + gq + bq | |||||
| for k,chct in chars.items(): | for k,chct in chars.items(): | ||||
| chct["name"] = lpad(chct["name"], 40, "1") | chct["name"] = lpad(chct["name"], 40, "1") | ||||
| chct["career"] = lpad(chct["career"], 7) | chct["career"] = lpad(chct["career"], 7) | ||||
| self.key += chct["name"] + chct["career"] + chct["order"] + chct["chaos"] + chct["body"] + chct["brains"] + chct["gadget"] | self.key += chct["name"] + chct["career"] + chct["order"] + chct["chaos"] + chct["body"] + chct["brains"] + chct["gadget"] | ||||
| while len(self.key) < 509: | while len(self.key) < 509: | ||||
| self.key = self.key + "0" | self.key = self.key + "0" | ||||
| self.okey = "" | |||||
| print(self.key) | |||||
| letters = [] | letters = [] | ||||
| letter = [] | letter = [] | ||||
| for bit in self.key: | for bit in self.key: | ||||
| lines = [ | lines = [ | ||||
| f"The Kobolds of the {self.ship.fullname}", | f"The Kobolds of the {self.ship.fullname}", | ||||
| f"have been sent out to {self.art} {self.params.loc_desc} {self.params.location}!", | f"have been sent out to {self.art} {self.params.loc_desc} {self.params.location}!", | ||||
| f"in order to {self.params.mission}", | |||||
| f"in order to {mission}", | |||||
| f"but they're challenged by {self.params.fullProblem}!", | f"but they're challenged by {self.params.fullProblem}!", | ||||
| f"The stats of the {self.params.problem['shortname']}", | f"The stats of the {self.params.problem['shortname']}", | ||||
| f"{cst}" | f"{cst}" | ||||
| f" The kobolds have been sent to {self.art} {self.params.loc_desc} {self.params.location}!\n" | f" The kobolds have been sent to {self.art} {self.params.loc_desc} {self.params.location}!\n" | ||||
| f" </span><br>\n" | f" </span><br>\n" | ||||
| f" <span id='missiontarget'>\n" | f" <span id='missiontarget'>\n" | ||||
| f" in order {self.params.mission}\n" | |||||
| f" in order {mission}\n" | |||||
| f" </span>\n" | f" </span>\n" | ||||
| f"</div>\n<br clear='all'>\n" | f"</div>\n<br clear='all'>\n" | ||||
| f"<div id='theadversary' class='firstrow'>\n" | f"<div id='theadversary' class='firstrow'>\n" |