def createMagicItemTable(): print "---Creating new magic item table---" # itemTable = raw_input("Enter magic item table label: ") magicItems = [] startRange = raw_input("Start of range (inclusive): ") while utils.validAnswer(startRange): if "-" in startRange: _range = startRange.split("-") startRange = _range[0] endRange = _range[1] elif startRange != "00": endRange = raw_input("End of range (inclusive): ") if not utils.validAnswer(endRange): endRange = "-1" else: endRange = "-1" magicItem = {"start": int(startRange), "magicItem": getMagicItem()} magicItems.append(magicItem) if endRange != "-1": magicItem["end"] = int(endRange) prevRangeStr = "Range for last entry was: " + startRange if endRange != "-1": prevRangeStr += "-" + endRange print prevRangeStr startRange = raw_input("Start of range (inclusive): ") print "---Created magic item table---" return magicItems
def getAttunement(): attunement = "requires attunement" attunementInput = raw_input("Attunement (either y/n or attunement requirement): ") if utils.validAnswer(attunementInput): if utils.validYes(attunementInput): return attunement return attunement + " " + attunementInput return ""
def createHoardTreasure(): hoardTreasure = {} challengeLevel = raw_input("Challenge range: ") while utils.validAnswer(challengeLevel): hoardTreasure["CHALLENGE_" + challengeLevel] = { "coins": getCoins(), "loot": getLootForChallenge() } challengeLevel = raw_input("Challenge range: ") return hoardTreasure
def getCoins(): currencies = ["CP", "SP", "EP", "GP", "PP"] coins = {} for currencyType in currencies: coinsDice = raw_input("Dice for coins (" + currencyType + "): ") if utils.validAnswer(coinsDice): coinsMult = raw_input("Coins (" + currencyType + ") multiplier: ") coins[currencyType] = { "dice": coinsDice, "multiplier": int(coinsMult) } return coins
def getLootForChallenge(): challengeObjLoot = [] startRange = raw_input("Start of range (inclusive): ") while utils.validAnswer(startRange): if "-" in startRange: _range = startRange.split("-") startRange = _range[0] endRange = _range[1] elif startRange != "00": endRange = raw_input("End of range (inclusive): ") if not utils.validAnswer(endRange): endRange = "-1" else: endRange = "-1" valuables = {} typeOfValuables = raw_input("Type of valuabes (e.g. gems, art objects): ") if utils.validAnswer(typeOfValuables): currency = raw_input("Currency to express valuabe's worth (e.g. GP): ") if not utils.validAnswer(currency): currency = "gp" worthPer = raw_input("Worth in (" + currency + ") of each valuable: " ) dice = raw_input("Dice to determine number of valuables: ") valuables = { "type": typeOfValuables, "currency": currency, "worth": int(worthPer), "dice": dice } magicItems = [] magicItemTable = raw_input("Magic item table to roll on: ") while utils.validAnswer(magicItemTable): numMagicItems = raw_input("Number of times to roll on magic item table " + magicItemTable + ": ") magicItems.append({ "dice": numMagicItems, "table": magicItemTable }) magicItemTable = raw_input("Magic item table to roll on: ") challengeObjLootItr = { "start": int(startRange), "loot": { "valuables": valuables, "magicItems": magicItems } } if endRange != "-1": challengeObjLootItr["end"] = int(endRange) challengeObjLoot.append(challengeObjLootItr) print prevRangeStr = "Range for last entry was: " + startRange if endRange != "-1": prevRangeStr += '-' + endRange print prevRangeStr startRange = raw_input("Start of range (inclusive): ") return challengeObjLoot
def getDescription(): descriptions = [] print "1. Paragraph header (header)" print "2. Paragraph (para or paragraph)" print "3. Table (table)" print "4. List (list)" print "5. Set of stats (stats)" print "6. Associated creature template (creature)" print "7. Extra (extra)" description_itr = raw_input("Enter description option: ") while utils.validAnswer(description_itr): itrNum = str(len(descriptions) + 1) descBase = "Description " + itrNum + " " description = {} if description_itr == "header": description['header'] = raw_input(descBase + "paragraph header: ") description['paragraph'] = raw_input(descBase + "paragraph: ") elif description_itr == "para" or description_itr == "paragraph" or description_itr == "desc": description['paragraph'] = raw_input(descBase + "paragraph: ") elif description_itr == "table": tableHeader = raw_input("Table header: ") #table headers tableColumnHeaders = [] tableItrNum = str(len(tableColumnHeaders) + 1) tableHeader = raw_input("Column " + tableItrNum + " header: ") while utils.validAnswer(tableHeader): tableColumnHeaders.append(tableHeader) tableItrNum = str(len(tableColumnHeaders) + 1) tableHeader = raw_input("Column " + tableItrNum + " header: ") #table rows breakWhile = False tableRows = [] while breakWhile is False: rowItems = [] for header in tableColumnHeaders: rowItem = raw_input("Row " + str(len(tableRows) + 1) + " -" + header + "- value: ") if utils.validAnswer(rowItem): rowItems.append(rowItem) else: breakWhile = True break print "" if breakWhile is False: tableRows.append(rowItems) tableFooter = raw_input("Table footer: ") description['table'] = { "headers": tableColumnHeaders, "rows": tableRows, "footer": tableFooter, "header": tableHeader } elif description_itr == "list": description['list'] = utils.getListOfItems("List item", False, None) elif description_itr == "stats": stats = [] stat_header = raw_input("Stat" + str(len(stats) + 1) + ": ") while utils.validAnswer(stat_header): stat_value = raw_input(stat_header + " value: ") stats.append({ "stat_header": stat_header, "stat_value": stat_value }) stat_header = raw_input("Stat " + str(len(stats) + 1) + ": ") description['stats'] = stats elif description_itr == "creature": description['creature'] = raw_input("Associatd creature name: ") elif description_itr == "extra": extraHeader = raw_input("Extra header: ") extraDescriptions = utils.getListOfItems("Extra description", False, None) description['extra'] = { "header": extraHeader, "descriptions": extraDescriptions } else: print description_itr + " option not supported" if not description == {}: descriptions.append(description) print "1. Paragraph header (header)" print "2. Paragraph (para or paragraph)" print "3. Table (table)" print "4. List (list)" print "5. Set of stats (stats)" print "6. Associated creature template (creature)" print "7. Extra (extra)" description_itr = raw_input("Enter description option: ") return descriptions