Esempio n. 1
0
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
Esempio n. 2
0
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 ""
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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
Esempio n. 6
0
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