| { | { | ||||
| "id": 1, | "id": 1, | ||||
| "name": "a rival band of kobolds", | "name": "a rival band of kobolds", | ||||
| "shortname": "kobolds", | |||||
| "shortname": "kobold rivals", | |||||
| "stats": [3,3,4,4], | "stats": [3,3,4,4], | ||||
| }, | }, | ||||
| { | { | ||||
| def gen_career(self): | def gen_career(self): | ||||
| self.career = r.choice(["Soldier/Guard","Pilot","Medic","Mechanic","Politician","Spellcaster","Performer","Historian","Spy","Cook","Cartographer","Inventor","Merchant"]) | self.career = r.choice(["Soldier/Guard","Pilot","Medic","Mechanic","Politician","Spellcaster","Performer","Historian","Spy","Cook","Cartographer","Inventor","Merchant"]) | ||||
| def print_name(self): | |||||
| print(f"Name: {self.name} (Kobold {self.career})") | |||||
| def print_name(self, html=False): | |||||
| if html: | |||||
| charText = f"<br>\n<h4>Name: {self.name} (Kobold {self.career})</h4>" | |||||
| else: | |||||
| charText = f"\nName: {self.name} (Kobold {self.career})" | |||||
| print(charText) | |||||
| def print(self, html=False): | def print(self, html=False): | ||||
| self.print_name() | |||||
| print(f"Order: {self.stats[0]}") | |||||
| print(f"Chaos: {self.stats[1]}") | |||||
| print(f"Brain: {self.stats[2]}") | |||||
| print(f"Body: {self.stats[3]}") | |||||
| self.print_name(html) | |||||
| if html: | |||||
| endc = "<br>\n" | |||||
| else: | |||||
| endc = "\n" | |||||
| print(f"Order: {self.stats[0]}", end=endc) | |||||
| print(f"Chaos: {self.stats[1]}", end=endc) | |||||
| print(f"Brain: {self.stats[2]}", end=endc) | |||||
| print(f"Body: {self.stats[3]}", end=endc) | |||||
| class Ship: | class Ship: | ||||
| def __init__(self): | def __init__(self): | ||||
| self.fullname = f"{self.name1} {self.name2}" | self.fullname = f"{self.name1} {self.name2}" | ||||
| def print(self, html=False): | def print(self, html=False): | ||||
| print(f"The {self.fullname} {self.gqual}, but {self.bqual}.") | |||||
| print() | |||||
| if (html): | |||||
| shipText = f"<p>The <strong>{self.fullname}</strong> <span style='color: blue;'>{self.gqual}</span>, but <span style='color: red;'>{self.bqual}</span>.</p>\n" | |||||
| else: | |||||
| shipText = f"The {self.fullname} {self.gqual}, but {self.bqual}.\n" | |||||
| print(shipText) | |||||
| class Campaign: | class Campaign: | ||||
| def __init__(self, n=None, makeChars=True): | def __init__(self, n=None, makeChars=True): | ||||
| self.art = "an" if self.params.loc_desc[0] in ["a","e","i","o","u"] else "a" | self.art = "an" if self.params.loc_desc[0] in ["a","e","i","o","u"] else "a" | ||||
| def print_params(self, endc="", html=False): | |||||
| def print_params(self, endc=" ", html=False): | |||||
| st = ["Order:", "Chaos:", "Brains:", "Body:"] | st = ["Order:", "Chaos:", "Brains:", "Body:"] | ||||
| print(f"The Kobolds of the {self.ship.fullname} ", end=endc) | |||||
| print(f"have been sent out to {self.art} {self.params.loc_desc} {self.params.location} ", end=endc) | |||||
| print(f"in order {self.params.mission} ", end=endc) | |||||
| print(f"-- but they're challenged by {self.params.fullProblem}!") | |||||
| cst = ", ".join([" ".join(y) for y in list(zip(st, [str(x) for x in self.params.problem["stats"]]))]) | cst = ", ".join([" ".join(y) for y in list(zip(st, [str(x) for x in self.params.problem["stats"]]))]) | ||||
| print(f"The stats of the {self.params.problem['shortname']}: {cst}") | |||||
| lines = [ | |||||
| f"The Kobolds of the {self.ship.fullname}", | |||||
| f"have been sent out to {self.art} {self.params.loc_desc} {self.params.location}", | |||||
| f"in order {self.params.mission}", | |||||
| f"but they're challenged by {self.params.fullProblem}!", | |||||
| f"The stats of the {self.params.problem['shortname']}", | |||||
| f"{cst}" | |||||
| ] | |||||
| if self.params.secProblem: | if self.params.secProblem: | ||||
| mst = ", ".join([" ".join(y) for y in list(zip(st, [str(x) for x in self.params.secProblem["stats"]]))]) | mst = ", ".join([" ".join(y) for y in list(zip(st, [str(x) for x in self.params.secProblem["stats"]]))]) | ||||
| print(f"- The stats of the {self.params.secProblem['shortname']}: {mst}") | |||||
| lines.append(f"The stats of the {self.params.secProblem['shortname']}") | |||||
| lines.append(f"{mst}") | |||||
| if self.params.thirdProblem: | if self.params.thirdProblem: | ||||
| pst = ", ".join([" ".join(y) for y in list(zip(st, [str(x) for x in self.params.thirdProblem["stats"]]))]) | pst = ", ".join([" ".join(y) for y in list(zip(st, [str(x) for x in self.params.thirdProblem["stats"]]))]) | ||||
| print(f"- - The stats of the {self.params.thirdProblem['shortname']}: {pst}") | |||||
| print() | |||||
| lines.append(f"The stats of the {self.params.thirdProblem['shortname']}") | |||||
| lines.append("{pst}") | |||||
| if html: | |||||
| print(f"<h2>{lines[0]}</h2>") | |||||
| print(f"<p>{lines[1]} <strong>{lines[2]}</strong> --</p>") | |||||
| print(f"<p><em>{lines[3]}</em></p>") | |||||
| print(f"<p>{lines[4]}: {lines[5]}") | |||||
| if self.params.secProblem: | |||||
| print(f"<p style='padding-left: 10px;'>{lines[6]}: {lines[7]}</p>") | |||||
| if self.params.thirdProblem: | |||||
| print(f"<p style='padding-left: 20px;'>{lines[8]}: {lines[9]}</p>") | |||||
| print("</p>\n<br>") | |||||
| else: | |||||
| print(f"{lines[0]} {lines[1]} {lines[2]} -- {lines[3]}") | |||||
| print(f"{lines[4]}: {lines[5]}") | |||||
| if self.params.secProblem: | |||||
| print(f"- {lines[6]}: {lines[7]}") | |||||
| if self.params.thirdProblem: | |||||
| print(f"- - {lines[8]}: {lines[9]}") | |||||
| print() | |||||
| self.ship.print(html=html) | self.ship.print(html=html) | ||||
| def print_chars(self, html=False): | def print_chars(self, html=False): | ||||
| print("The kobolds:") | |||||
| if html: | |||||
| print("<h3>The kobolds:</h3>") | |||||
| else: | |||||
| print("The kobolds:") | |||||
| for k in self.characters: | for k in self.characters: | ||||
| k.print(html=html) | k.print(html=html) | ||||