コード例 #1
0
def build():
    with get_connection() as con:
        con.row_factory = sqlite3.Row
        cur = con.cursor()

        foreign_keys = get_equip_keys(cur)

        cur.execute("SELECT Id, ElementName FROM Elements")
        foreign_keys.update({row[1]: row[0] for row in cur.fetchall()})

        cur.execute("PRAGMA foreign_keys = ON")
        cur.execute("DROP TABLE IF EXISTS EquipElementalResistances")
        cur.execute("CREATE TABLE EquipElementalResistances("
                    "Id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "Equip INTEGER, "
                    "Element INTEGER, "
                    "Scheme TEXT, "
                    "FOREIGN KEY(Equip) REFERENCES Equips(Id), "
                    "FOREIGN KEY(Element) REFERENCES Elements(Id))")

        for csv_row in get_from_datamaster('EquipResistances.csv'):
            if csv_row.get('Category') == 'Element':
                cur.execute("INSERT INTO EquipElementalResistances ("
                            "Equip, Element, Scheme)"
                            "VALUES (\"{}\", \"{}\", \"{}\")".format(
                                foreign_keys[csv_row.get('EquipName')],
                                foreign_keys[csv_row.get('Resists')],
                                csv_row.get('Scheme')))
コード例 #2
0
def build():
    datamaster = get_from_datamaster("EquipTraits.csv")
    trait_rows_with_stats_by_text = {
        row["Text"]: row
        for row in datamaster if row["TraitPropertyName"] == "Stat"
    }

    with get_connection() as con:
        cur = con.cursor()

        cur.execute("SELECT StatName, Id FROM Stats")
        stat_ids_by_name = {
            cur_row[0]: cur_row[1]
            for cur_row in cur.fetchall()
        }

        cur.execute("DROP TABLE IF EXISTS TraitStats")
        cur.execute("CREATE TABLE TraitStats("
                    "Id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "Trait INTEGER, "
                    "Stat INTEGER, "
                    "FOREIGN KEY(Trait) REFERENCES Traits(Id) ,"
                    "FOREIGN KEY(Stat) REFERENCES Stats(Id))")

        for trait in traits.read():
            text = trait["text"]
            trait_row_from_datamaster = trait_rows_with_stats_by_text.get(text)
            if trait_row_from_datamaster:
                trait_id = trait["id"]
                stat_id = stat_ids_by_name[
                    trait_row_from_datamaster["TraitPropertyValue"]]
                cur.execute("INSERT INTO TraitStats ("
                            "Trait, Stat) "
                            "VALUES (\"{}\", \"{}\")".format(
                                trait_id, stat_id))
コード例 #3
0
ファイル: trait_skills.py プロジェクト: jpludens/quartrmastr
def build():
    datamaster = get_from_datamaster("EquipTraits.csv")
    trait_rows_with_skills_by_text = {
        row["Text"]: row
        for row in datamaster if row["TraitPropertyName"] == "Skill"
    }

    with get_connection() as con:
        cur = con.cursor()

        cur.execute("DROP TABLE IF EXISTS TraitSkills")
        cur.execute("CREATE TABLE TraitSkills("
                    "Id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "Trait INTEGER, "
                    "SkillName TEXT, "
                    "FOREIGN KEY(Trait) REFERENCES Traits(Id))")

        for trait in traits.read():
            text = trait["text"]
            trait_row_from_datamaster = trait_rows_with_skills_by_text.get(
                text)
            if trait_row_from_datamaster:
                trait_id = trait["id"]
                skill_name = trait_row_from_datamaster["TraitPropertyValue"]
                cur.execute("INSERT INTO TraitSkills ("
                            "Trait, SkillName) "
                            "VALUES (\"{}\", \"{}\")".format(
                                trait_id, skill_name))
コード例 #4
0
ファイル: characters.py プロジェクト: jpludens/quartrmastr
def build():
    with get_connection() as con:
        cur = con.cursor()
        cur.execute("DROP TABLE IF EXISTS Characters")
        cur.execute("CREATE TABLE Characters("
                    "Id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "CharacterName TEXT)")

        for csv_row in get_from_datamaster('Characters.csv'):
            cur.execute("INSERT INTO Characters ("
                        "CharacterName) "
                        "VALUES (\"{}\")".format(csv_row.get('CharacterName')))
コード例 #5
0
ファイル: statuses.py プロジェクト: jpludens/quartrmastr
def build():
    with get_connection() as con:
        cur = con.cursor()
        cur.execute("DROP TABLE IF EXISTS Statuses")
        cur.execute("CREATE TABLE Statuses("
                    "Id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "StatusName TEXT, "
                    "StatusType TEXT)")

        for csv_row in get_from_datamaster('Statuses.csv'):
            cur.execute("INSERT INTO Statuses ("
                        "StatusName, StatusType) "
                        "VALUES (\"{}\", \"{}\")".format(
                            csv_row.get('StatusName'),
                            csv_row.get('StatusType')))
コード例 #6
0
ファイル: materials.py プロジェクト: jpludens/quartrmastr
def build():
    with get_connection() as con:
        cur = con.cursor()
        cur.execute("DROP TABLE IF EXISTS Materials")
        cur.execute("CREATE TABLE Materials("
                    "Id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "MaterialName TEXT, "
                    "MaterialPrice INTEGER)")

        for csv_row in get_from_datamaster('Materials.csv'):
            cur.execute("INSERT INTO Materials ("
                        "MaterialName, MaterialPrice) "
                        "VALUES (\"{}\", \"{}\")".format(
                            csv_row.get('MaterialName'),
                            # TODO: Change this. ItemPrice? ShopPrice? PurchaseCost?
                            csv_row.get('Price')))
コード例 #7
0
ファイル: trait_types.py プロジェクト: jpludens/quartrmastr
def build():
    with get_connection() as con:
        cur = con.cursor()
        cur.execute("DROP TABLE IF EXISTS TraitTypes")
        cur.execute("CREATE TABLE TraitTypes("
                    "Id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "TraitTypeName TEXT)")

        trait_types = set([
            row["TraitTypeName"]
            for row in get_from_datamaster('EquipTraits.csv')
        ])

        for trait_type in trait_types:
            cur.execute("INSERT INTO TraitTypes ("
                        "TraitTypeName) "
                        "VALUES (\"{}\")".format(trait_type))
コード例 #8
0
ファイル: equips.py プロジェクト: jpludens/quartrmastr
def build():
    with get_connection() as con:
        cur = con.cursor()

        cur.execute("SELECT EquipSlotName, Id FROM EquipSlots")
        foreign_keys = {cur_row[0]: cur_row[1] for cur_row in cur.fetchall()}

        cur.execute("PRAGMA foreign_keys = ON")
        cur.execute("DROP TABLE IF EXISTS Equips")
        cur.execute("CREATE TABLE Equips("
                    "Id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "EquipName TEXT, "
                    "EquipSlot TEXT, "
                    "FOREIGN KEY(EquipSlot) REFERENCES EquipSlots(Id))")

        for csv_row in get_from_datamaster('Equips.csv'):
            cur.execute("INSERT INTO Equips ("
                        "EquipName, EquipSlot) "
                        "VALUES (\"{}\", \"{}\")".format(
                            csv_row.get('EquipName'),
                            foreign_keys[csv_row.get('EquipSlotName')]))
コード例 #9
0
def build():
    with get_connection() as con:
        con.row_factory = sqlite3.Row
        cur = con.cursor()

        foreign_keys = get_equip_keys(cur)
        cur.execute("SELECT CharacterName, Id FROM Characters")
        foreign_keys.update({row[0]: row[1] for row in cur.fetchall()})

        cur.execute("PRAGMA foreign_keys = ON")
        cur.execute("DROP TABLE IF EXISTS DefaultEquips")
        cur.execute("CREATE TABLE DefaultEquips("
                    "Id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "Character INTEGER, "
                    "Equip INTEGER, "
                    "FOREIGN KEY(Character) REFERENCES Characters(Id), "
                    "FOREIGN KEY(Equip) REFERENCES Equips(Id))")

        for csv_row in get_from_datamaster('DefaultEquips.csv'):
            cur.execute("INSERT INTO DefaultEquips ("
                        "Character, Equip) "
                        "VALUES (\"{}\", \"{}\")".format(
                            foreign_keys[csv_row.get('CharacterName')],
                            foreign_keys[csv_row.get('EquipName')]))