diff --git a/bin/genrewards.py b/bin/genrewards.py index c1ab1fb..2c88c46 100755 --- a/bin/genrewards.py +++ b/bin/genrewards.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 """ Script to generate static rewards files for all items. """ @@ -33,11 +33,16 @@ if __name__ == '__main__': err_out = get_utf8_writer(sys.stderr) # TODO: doesn't work if script is symlinked - db_path = os.path.dirname(sys.argv[0]) - db_path = os.path.join(db_path, "..", "db", "mh4u.db") - db = MHDB(db_path) + #db_path = os.path.dirname(sys.argv[0]) + #db_path = os.path.join(db_path, "..", "db", "mh4u.db") + # Determinen game from MHAPI_GAME and path based on game. + db = MHDB() - items = db.get_items(rewards.ITEM_TYPES) + if db.game == "gu": + items = db.get_items(exclude_types=[ + "Palico Armor", "Palico Weapon", "Weapon", "Armor", "Decoration"]) + else: + items = db.get_items(rewards.ITEM_TYPES) # write all names json to /items.json items_file = os.path.join(outdir, "items.json") diff --git a/bin/mhdamage.py b/bin/mhdamage.py index 42b5c4a..80b57ad 100755 --- a/bin/mhdamage.py +++ b/bin/mhdamage.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 import sys import argparse @@ -203,6 +203,9 @@ def parse_args(argv): parser.add_argument("-g", "--monster-hunter-gen", action="store_true", default=False, help="Assume weapons are true attack, use MHGen values") + parser.add_argument("--mhw", "--monster-hunter-world", action="store_true", + default=False, + help="Adjusted attack, use MHWorld values") parser.add_argument("-m", "--match", nargs="*", help="WEAPON_TYPE,ELEMENT_OR_STATUS_OR_RAW" +" Include all matching weapons in their final form." @@ -392,8 +395,11 @@ def main(): comps = True else: comps = False - db = MHDB(game="gen", include_item_components=comps) + db = MHDB(game="gu", include_item_components=comps) game_uses_true_raw = True + elif args.monster_hunter_world: + db = MHDBX(game="mhw") + game_uses_true_raw = False else: db = MHDB(game="4u") motiondb = MotionValueDB(_pathfix.motion_values_path) diff --git a/bin/mkjsonapi.py b/bin/mkjsonapi.py index 02004e6..282f569 100755 --- a/bin/mkjsonapi.py +++ b/bin/mkjsonapi.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 import os import json diff --git a/db/mhgu.db b/db/mhgu.db new file mode 100644 index 0000000..fd4bc07 Binary files /dev/null and b/db/mhgu.db differ diff --git a/db/mhw/monster_hitboxes.json b/db/mhw/monster_hitboxes.json new file mode 100644 index 0000000..31fc229 --- /dev/null +++ b/db/mhw/monster_hitboxes.json @@ -0,0 +1,974 @@ +{ + "Tamamitsune" : { + "Torso" : { + "Impact" : 25, + "Cut" : 25, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 20, + "Thunder" : 10, + "Fire" : 5, + "Water" : 0 + }, + "Tail" : { + "Impact" : 33, + "Cut" : 43, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 40, + "Thunder" : 10, + "Fire" : 5, + "Water" : 0 + }, + "Head Fin" : { + "Impact" : 43, + "Cut" : 43, + "Dragon" : 8, + "Ice" : 5, + "Shot" : 40, + "Thunder" : 10, + "Fire" : 8, + "Water" : 0 + }, + "Hind Legs" : { + "Impact" : 38, + "Cut" : 38, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 25, + "Thunder" : 10, + "Fire" : 5, + "Water" : 0 + }, + "Back Fin" : { + "Impact" : 43, + "Cut" : 43, + "Dragon" : 10, + "Ice" : 5, + "Shot" : 45, + "Thunder" : 15, + "Fire" : 8, + "Water" : 0 + }, + "_breaks" : [ + "Head Fin", + "Back Fin", + "Foreleg", + "Tail" + ], + "Foreleg" : { + "Impact" : 21, + "Cut" : 21, + "Dragon" : 30, + "Ice" : 15, + "Shot" : 10, + "Thunder" : 35, + "Fire" : 5, + "Water" : 0 + }, + "Head" : { + "Impact" : 63, + "Cut" : 63, + "Dragon" : 8, + "Ice" : 5, + "Shot" : 45, + "Thunder" : 10, + "Fire" : 5, + "Water" : 0 + } + }, + "Dinovaldo" : { + "Torso" : { + "Impact" : 25, + "Cut" : 25, + "Dragon" : 10, + "Ice" : 10, + "Shot" : 20, + "Thunder" : 5, + "Fire" : 0, + "Water" : 20 + }, + "Throat" : { + "Impact" : 70, + "Cut" : 70, + "Dragon" : 15, + "Ice" : 15, + "Shot" : 30, + "Thunder" : 15, + "Fire" : 0, + "Water" : 30 + }, + "Tail" : { + "Impact" : 36, + "Cut" : 36, + "Dragon" : 15, + "Ice" : 15, + "Shot" : 20, + "Thunder" : 10, + "Fire" : 0, + "Water" : 25 + }, + "Hind Legs" : { + "Impact" : 25, + "Cut" : 25, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 20, + "Thunder" : 5, + "Fire" : 0, + "Water" : 15 + }, + "_breaks" : [ + "Head", + "Forelegs", + "Back", + "Tail" + ], + "Head" : { + "Impact" : 65, + "Cut" : 65, + "Dragon" : 15, + "Ice" : 15, + "Shot" : 50, + "Thunder" : 10, + "Fire" : 0, + "Water" : 25 + }, + "Tail (Blade)" : { + "Impact" : 22, + "Cut" : 22, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 22, + "Thunder" : 5, + "Fire" : 0, + "Water" : 20 + }, + "Back" : { + "Impact" : 36, + "Cut" : 36, + "Dragon" : 10, + "Ice" : 10, + "Shot" : 45, + "Thunder" : 5, + "Fire" : 0, + "Water" : 20 + }, + "Forelegs" : { + "Impact" : 41, + "Cut" : 41, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 20, + "Thunder" : 5, + "Fire" : 0, + "Water" : 15 + } + }, + "Lagiacrus" : { + "Body" : { + "Impact" : 35, + "Cut" : 35, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 20, + "Thunder" : 0, + "Fire" : 15, + "Water" : 0 + }, + "Tail" : { + "Impact" : 35, + "Cut" : 30, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 15, + "Thunder" : 0, + "Fire" : 15, + "Water" : 0 + }, + "_breaks" : [ + "Head", + "Breast", + "Back", + "Legs", + "Tail" + ], + "Breast" : { + "Impact" : 40, + "Cut" : 45, + "Dragon" : 10, + "Ice" : 10, + "Shot" : 35, + "Thunder" : 0, + "Fire" : 20, + "Water" : 0 + }, + "Head" : { + "Impact" : 40, + "Cut" : 40, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 40, + "Thunder" : 0, + "Fire" : 15, + "Water" : 0 + }, + "Legs" : { + "Impact" : 25, + "Cut" : 27, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 10, + "Thunder" : 0, + "Fire" : 15, + "Water" : 0 + }, + "Back" : { + "Impact" : 40, + "Cut" : 25, + "Dragon" : 15, + "Ice" : 15, + "Shot" : 15, + "Thunder" : 0, + "Fire" : 25, + "Water" : 0 + } + }, + "Lavasioth" : { + "Feet" : { + "Impact" : 25, + "Cut" : 25, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 10, + "Thunder" : 5, + "Fire" : 0, + "Water" : 10 + }, + "Stomach" : { + "Impact" : 55, + "Cut" : 55, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 40, + "Thunder" : 5, + "Fire" : 0, + "Water" : 10 + }, + "Tail" : { + "Impact" : 35, + "Cut" : 35, + "Dragon" : 5, + "Ice" : 20, + "Shot" : 25, + "Thunder" : 20, + "Fire" : 0, + "Water" : 30 + }, + "Neck" : { + "Impact" : 43, + "Cut" : 43, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 35, + "Thunder" : 5, + "Fire" : 0, + "Water" : 10 + }, + "_breaks" : [ + "Head", + "Back" + ], + "Wings" : { + "Impact" : 35, + "Cut" : 35, + "Dragon" : 5, + "Ice" : 20, + "Shot" : 20, + "Thunder" : 20, + "Fire" : 0, + "Water" : 30 + }, + "Head" : { + "Impact" : 63, + "Cut" : 63, + "Dragon" : 5, + "Ice" : 10, + "Shot" : 45, + "Thunder" : 10, + "Fire" : 0, + "Water" : 10 + }, + "Back" : { + "Impact" : 25, + "Cut" : 25, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 15, + "Thunder" : 5, + "Fire" : 0, + "Water" : 10 + } + }, + "Agnaktor" : { + "Fin" : { + "Impact" : 15, + "Cut" : 15, + "Dragon" : 0, + "Ice" : 15, + "Shot" : 15, + "Thunder" : 0, + "Fire" : 10, + "Water" : 20 + }, + "Torso" : { + "Impact" : 15, + "Cut" : 15, + "Dragon" : 0, + "Ice" : 20, + "Shot" : 15, + "Thunder" : 10, + "Fire" : 10, + "Water" : 25 + }, + "Tail" : { + "Impact" : 24, + "Cut" : 20, + "Dragon" : 20, + "Ice" : 10, + "Shot" : 20, + "Thunder" : 10, + "Fire" : 5, + "Water" : 15 + }, + "Chest" : { + "Impact" : 15, + "Cut" : 15, + "Dragon" : 0, + "Ice" : 15, + "Shot" : 15, + "Thunder" : 0, + "Fire" : 10, + "Water" : 20 + }, + "Hind Legs" : { + "Impact" : 15, + "Cut" : 15, + "Dragon" : 0, + "Ice" : 15, + "Shot" : 15, + "Thunder" : 5, + "Fire" : 10, + "Water" : 20 + }, + "Neck" : { + "Impact" : 15, + "Cut" : 15, + "Dragon" : 0, + "Ice" : 15, + "Shot" : 15, + "Thunder" : 0, + "Fire" : 10, + "Water" : 15 + }, + "_breaks" : [ + "Head", + "Chest", + "Forelegs", + "Fin" + ], + "Head" : { + "Impact" : 15, + "Cut" : 15, + "Dragon" : 0, + "Ice" : 25, + "Shot" : 15, + "Thunder" : 15, + "Fire" : 10, + "Water" : 30 + }, + "Forelegs" : { + "Impact" : 15, + "Cut" : 15, + "Dragon" : 0, + "Ice" : 20, + "Shot" : 15, + "Thunder" : 0, + "Fire" : 10, + "Water" : 20 + } + }, + "Blangonga" : { + "Torso" : { + "Impact" : 50, + "Cut" : 45, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 40, + "Thunder" : 15, + "Fire" : 20, + "Water" : 5 + }, + "Tail" : { + "Impact" : 40, + "Cut" : 50, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 25, + "Thunder" : 15, + "Fire" : 15, + "Water" : 5 + }, + "_breaks" : [ + "Head", + "Tail" + ], + "Arms" : { + "Impact" : 40, + "Cut" : 45, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 30, + "Thunder" : 15, + "Fire" : 15, + "Water" : 5 + }, + "Head" : { + "Impact" : 60, + "Cut" : 60, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 60, + "Thunder" : 15, + "Fire" : 30, + "Water" : 5 + }, + "Legs" : { + "Impact" : 40, + "Cut" : 45, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 30, + "Thunder" : 15, + "Fire" : 15, + "Water" : 5 + } + }, + "Gamuto" : { + "Torso" : { + "Impact" : 34, + "Cut" : 25, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 19, + "Thunder" : 5, + "Fire" : 5, + "Water" : 0 + }, + "Trunk" : { + "Impact" : 54, + "Cut" : 63, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 45, + "Thunder" : 10, + "Fire" : 25, + "Water" : 5 + }, + "Tail" : { + "Impact" : 35, + "Cut" : 40, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 38, + "Thunder" : 10, + "Fire" : 5, + "Water" : 5 + }, + "Hind Leg" : { + "Impact" : 38, + "Cut" : 36, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 35, + "Thunder" : 5, + "Fire" : 15, + "Water" : 7 + }, + "_breaks" : [ + "Head", + "Trunk", + "Hind Leg" + ], + "Foreleg" : { + "Impact" : 38, + "Cut" : 36, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 35, + "Thunder" : 5, + "Fire" : 15, + "Water" : 7 + }, + "Head" : { + "Impact" : 60, + "Cut" : 55, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 40, + "Thunder" : 15, + "Fire" : 10, + "Water" : 0 + } + }, + "Hororohoruru" : { + "Torso" : { + "Impact" : 40, + "Cut" : 40, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 40, + "Thunder" : 5, + "Fire" : 5, + "Water" : 10 + }, + "Tail" : { + "Impact" : 45, + "Cut" : 50, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 35, + "Thunder" : 5, + "Fire" : 10, + "Water" : 15 + }, + "Feet" : { + "Impact" : 30, + "Cut" : 35, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 30, + "Thunder" : 5, + "Fire" : 5, + "Water" : 10 + }, + "_breaks" : [ + "Head", + "Wing Claws", + "Tail" + ], + "Wings" : { + "Impact" : 35, + "Cut" : 35, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 30, + "Thunder" : 5, + "Fire" : 5, + "Water" : 10 + }, + "Head" : { + "Impact" : 50, + "Cut" : 55, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 55, + "Thunder" : 5, + "Fire" : 10, + "Water" : 15 + }, + "Wing Claws" : { + "Impact" : 20, + "Cut" : 20, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 20, + "Thunder" : 10, + "Fire" : 10, + "Water" : 20 + } + }, + "Alatreon" : { + "Torso" : { + "Impact" : 30, + "Cut" : 35, + "Dragon" : 5, + "Ice" : 15, + "Shot" : 20, + "Thunder" : 5, + "Fire" : 0, + "Water" : 10 + }, + "Tail" : { + "Impact" : 25, + "Cut" : 30, + "Dragon" : 5, + "Ice" : 10, + "Shot" : 40, + "Thunder" : 5, + "Fire" : 0, + "Water" : 5 + }, + "Feet" : { + "Impact" : 25, + "Cut" : 25, + "Dragon" : 5, + "Ice" : 15, + "Shot" : 20, + "Thunder" : 5, + "Fire" : 0, + "Water" : 10 + }, + "Neck" : { + "Impact" : 35, + "Cut" : 40, + "Dragon" : 5, + "Ice" : 15, + "Shot" : 35, + "Thunder" : 5, + "Fire" : 0, + "Water" : 10 + }, + "_breaks" : [ + "Head", + "Wings", + "Feet", + "Tail" + ], + "Wings" : { + "Impact" : 21, + "Cut" : 21, + "Dragon" : 5, + "Ice" : 10, + "Shot" : 10, + "Thunder" : 5, + "Fire" : 0, + "Water" : 5 + }, + "Head" : { + "Impact" : 65, + "Cut" : 60, + "Dragon" : 5, + "Ice" : 20, + "Shot" : 55, + "Thunder" : 5, + "Fire" : 0, + "Water" : 15 + } + }, + "Royal Ludroth" : { + "Tail" : { + "Impact" : 42, + "Cut" : 42, + "Dragon" : 0, + "Ice" : 10, + "Shot" : 40, + "Thunder" : 5, + "Fire" : 20, + "Water" : 0 + }, + "Front Legs" : { + "Impact" : 35, + "Cut" : 30, + "Dragon" : 0, + "Ice" : 15, + "Shot" : 25, + "Thunder" : 10, + "Fire" : 15, + "Water" : 0 + }, + "_breaks" : [ + "Head", + "Mane", + "Tail" + ], + "Back Legs" : { + "Impact" : 30, + "Cut" : 35, + "Dragon" : 0, + "Ice" : 10, + "Shot" : 30, + "Thunder" : 10, + "Fire" : 15, + "Water" : 0 + }, + "Mane" : { + "Impact" : 42, + "Cut" : 45, + "Dragon" : 0, + "Ice" : 15, + "Shot" : 45, + "Thunder" : 15, + "Fire" : 20, + "Water" : 0 + }, + "Head" : { + "Impact" : 50, + "Cut" : 42, + "Dragon" : 5, + "Ice" : 10, + "Shot" : 50, + "Thunder" : 15, + "Fire" : 20, + "Water" : 0 + }, + "Back" : { + "Impact" : 45, + "Cut" : 30, + "Dragon" : 5, + "Ice" : 10, + "Shot" : 30, + "Thunder" : 10, + "Fire" : 30, + "Water" : 0 + }, + "Belly" : { + "Impact" : 45, + "Cut" : 50, + "Dragon" : 0, + "Ice" : 15, + "Shot" : 40, + "Thunder" : 10, + "Fire" : 25, + "Water" : 0 + } + }, + "Volvidon" : { + "Torso" : { + "Impact" : 30, + "Cut" : 38, + "Dragon" : 0, + "Ice" : 5, + "Shot" : 30, + "Thunder" : 5, + "Fire" : 0, + "Water" : 10 + }, + "Stomach 75" : { + "Impact" : 10, + "Cut" : 75, + "Dragon" : 0, + "Ice" : 0, + "Shot" : 0, + "Thunder" : 0, + "Fire" : 0, + "Water" : 0 + }, + "_breaks" : "Back", + "Rolling" : { + "Impact" : 45, + "Cut" : 45, + "Dragon" : 0, + "Ice" : 15, + "Shot" : 40, + "Thunder" : 10, + "Fire" : 0, + "Water" : 20 + }, + "Rear" : { + "Impact" : 36, + "Cut" : 36, + "Dragon" : 0, + "Ice" : 10, + "Shot" : 20, + "Thunder" : 5, + "Fire" : 0, + "Water" : 10 + }, + "Head" : { + "Impact" : 50, + "Cut" : 55, + "Dragon" : 0, + "Ice" : 20, + "Shot" : 45, + "Thunder" : 15, + "Fire" : 0, + "Water" : 30 + }, + "Back" : { + "Impact" : 45, + "Cut" : 45, + "Dragon" : 0, + "Ice" : 15, + "Shot" : 50, + "Thunder" : 10, + "Fire" : 0, + "Water" : 20 + }, + "Forelegs" : { + "Impact" : 30, + "Cut" : 30, + "Dragon" : 0, + "Ice" : 10, + "Shot" : 25, + "Thunder" : 10, + "Fire" : 0, + "Water" : 15 + } + }, + "Duramboros" : { + "Torso" : { + "Impact" : 35, + "Cut" : 25, + "Dragon" : 10, + "Ice" : 15, + "Shot" : 25, + "Thunder" : 10, + "Fire" : 15, + "Water" : 5 + }, + "Tail" : { + "Impact" : 40, + "Cut" : 32, + "Dragon" : 10, + "Ice" : 5, + "Shot" : 50, + "Thunder" : 5, + "Fire" : 10, + "Water" : 5 + }, + "Tail (Tip)" : { + "Impact" : 43, + "Cut" : 24, + "Dragon" : 20, + "Ice" : 15, + "Shot" : 40, + "Thunder" : 5, + "Fire" : 20, + "Water" : 5 + }, + "Hind Legs" : { + "Impact" : 44, + "Cut" : 44, + "Dragon" : 5, + "Ice" : 10, + "Shot" : 35, + "Thunder" : 5, + "Fire" : 10, + "Water" : 0 + }, + "_breaks" : [ + "Horn", + "Hump", + "Tail" + ], + "Hump" : { + "Impact" : 60, + "Cut" : 60, + "Dragon" : 10, + "Ice" : 15, + "Shot" : 35, + "Thunder" : 0, + "Fire" : 20, + "Water" : 5 + }, + "Head" : { + "Impact" : 21, + "Cut" : 23, + "Dragon" : 0, + "Ice" : 20, + "Shot" : 20, + "Thunder" : 35, + "Fire" : 35, + "Water" : 10 + }, + "Horn" : { + "Impact" : 24, + "Cut" : 43, + "Dragon" : 5, + "Ice" : 5, + "Shot" : 35, + "Thunder" : 15, + "Fire" : 10, + "Water" : 5 + }, + "Forelegs" : { + "Impact" : 30, + "Cut" : 32, + "Dragon" : 10, + "Ice" : 10, + "Shot" : 25, + "Thunder" : 10, + "Fire" : 15, + "Water" : 0 + } + }, + "Raizekusu" : { + "Tail Tip" : { + "Impact" : 43, + "Cut" : 43, + "Dragon" : 5, + "Ice" : 25, + "Shot" : 25, + "Thunder" : 0, + "Fire" : 10, + "Water" : 15 + }, + "Tail" : { + "Impact" : 35, + "Cut" : 35, + "Dragon" : 5, + "Ice" : 20, + "Shot" : 20, + "Thunder" : 0, + "Fire" : 10, + "Water" : 10 + }, + "Feet" : { + "Impact" : 25, + "Cut" : 25, + "Dragon" : 5, + "Ice" : 15, + "Shot" : 15, + "Thunder" : 0, + "Fire" : 10, + "Water" : 10 + }, + "Crest" : { + "Impact" : 55, + "Cut" : 55, + "Dragon" : 5, + "Ice" : 10, + "Shot" : 30, + "Thunder" : 0, + "Fire" : 6, + "Water" : 6 + }, + "_breaks" : [ + "Crest", + "Back", + "Wings", + "Tail" + ], + "Wings" : { + "Impact" : 25, + "Cut" : 25, + "Dragon" : 5, + "Ice" : 15, + "Shot" : 25, + "Thunder" : 0, + "Fire" : 6, + "Water" : 10 + }, + "Head" : { + "Impact" : 24, + "Cut" : 24, + "Dragon" : 5, + "Ice" : 20, + "Shot" : 15, + "Thunder" : 0, + "Fire" : 10, + "Water" : 10 + }, + "Back" : { + "Impact" : 25, + "Cut" : 25, + "Dragon" : 5, + "Ice" : 7, + "Shot" : 20, + "Thunder" : 0, + "Fire" : 7, + "Water" : 7 + } + } +} diff --git a/db/mhw/monster_list.json b/db/mhw/monster_list.json new file mode 100644 index 0000000..6023d7a --- /dev/null +++ b/db/mhw/monster_list.json @@ -0,0 +1,632 @@ +[ + { + "title_jp": "\u708e\u6208\u7adc", + "href": "/wiki/Agnaktor", + "name": "Agnaktor", + "name_jp": "\u30a2\u30b0\u30ca\u30b3\u30c8\u30eb" + }, + { + "title_jp": "\u8987\u7adc", + "href": "/wiki/Akantor", + "name": "Akantor", + "name_jp": "\u30a2\u30ab\u30e0\u30c8\u30eb\u30e0" + }, + { + "title_jp": "\u9752\u718a\u7363", + "href": "/wiki/Arzuros", + "name": "Arzuros", + "name_jp": "\u30a2\u30aa\u30a2\u30b7\u30e9" + }, + { + "title_jp": "\u30af\u30ea\u30e0\u30be\u30f3\u30fb\u30d9\u30a2\u30fc", + "href": "/wiki/Crimson_Helmet_Arzuros", + "name": "Crimson Helmet Arzuros", + "name_jp": "\u7d05\u515c\u30a2\u30aa\u30a2\u30b7\u30e9" + }, + { + "title_jp": "\u96ea\u7345\u5b50", + "href": "/wiki/Blangonga", + "name": "Blangonga", + "name_jp": "\u30c9\u30c9\u30d6\u30e9\u30f3\u30b4" + }, + { + "title_jp": "\u7815\u7adc", + "href": "/wiki/Brachydios", + "name": "Brachydios", + "name_jp": "\u30d6\u30e9\u30ad\u30c7\u30a3\u30aa\u30b9" + }, + { + "title_jp": "\u5927\u732a", + "href": "/wiki/Bulldrome", + "name": "Bulldrome", + "name_jp": "\u30c9\u30b9\u30d5\u30a1\u30f3\u30b4" + }, + { + "title_jp": "\u7802\u7adc", + "href": "/wiki/Cephadrome", + "name": "Cephadrome", + "name_jp": "\u30c9\u30b9\u30ac\u30ec\u30aa\u30b9" + }, + { + "title_jp": "\u76fe\u87f9", + "href": "/wiki/Daimyo_Hermitaur", + "name": "Daimyo Hermitaur", + "name_jp": "\u30c0\u30a4\u30df\u30e7\u30a6\u30b6\u30b6\u30df" + }, + { + "title_jp": "\u87f9\u57ce\u58c1", + "href": "/wiki/Spearbreaker_Daimyo_Hermitaur", + "name": "Spearbreaker Daimyo Hermitaur", + "name_jp": "\u77db\u7815\u30c0\u30a4\u30df\u30e7\u30a6\u30b6\u30b6\u30df" + }, + { + "title_jp": "\u6050\u66b4\u7adc", + "href": "/wiki/Deviljho", + "name": "Deviljho", + "name_jp": "\u30a4\u30d3\u30eb\u30b8\u30e7\u30fc" + }, + { + "title_jp": "\u6050\u66b4\u7adc", + "href": "/wiki/Savage_Deviljho", + "name": "Savage Deviljho", + "name_jp": "\u6012\u308a\u55b0\u3089\u3046\u30a4\u30d3\u30eb\u30b8\u30e7\u30fc" + }, + { + "title_jp": "\u65ac\u7adc", + "href": "/wiki/Dinovaldo", + "name": "Dinovaldo", + "name_jp": "\u30c7\u30a3\u30ce\u30d0\u30eb\u30c9" + }, + { + "title_jp": "\u71fc\u6ec5\u5203", + "href": "/wiki/Incinerating_Blade_Dinovaldo", + "name": "Incinerating Blade Dinovaldo", + "name_jp": "\u71fc\u6ec5\u5203\u30c7\u30a3\u30ce\u30d0\u30eb\u30c9" + }, + { + "title_jp": "\u5c3e\u69cc\u7adc", + "href": "/wiki/Duramboros", + "name": "Duramboros", + "name_jp": "\u30c9\u30dc\u30eb\u30d9\u30eb\u30af" + }, + { + "title_jp": "\u5de8\u7363", + "href": "/wiki/Gamuto", + "name": "Gamuto", + "name_jp": "\u30ac\u30e0\u30fc\u30c8" + }, + { + "title_jp": "", + "href": "/wiki/Gendrome", + "name": "Gendrome", + "name_jp": "\u30c9\u30b9\u30b2\u30cd\u30dd\u30b9" + }, + { + "title_jp": "\u9ed2\u8755\u7adc", + "href": "/wiki/Gore_Magala", + "name": "Gore Magala", + "name_jp": "\u30b4\u30a2\u30fb\u30de\u30ac\u30e9" + }, + { + "title_jp": "\u8df3\u72d7\u7adc", + "href": "/wiki/Great_Maccau", + "name": "Great Maccau", + "name_jp": "\u30c9\u30b9\u30de\u30c3\u30ab\u30a9" + }, + { + "title_jp": "\u6bd2\u602a\u9ce5", + "href": "/wiki/Gypceros", + "name": "Gypceros", + "name_jp": "\u30b2\u30ea\u30e7\u30b9" + }, + { + "title_jp": "\u591c\u9ce5", + "href": "/wiki/Hororohoruru", + "name": "Hororohoruru", + "name_jp": "\u30db\u30ed\u30ed\u30db\u30eb\u30eb" + }, + { + "title_jp": "", + "href": "/wiki/Iodrome", + "name": "Iodrome", + "name_jp": "\u30c9\u30b9\u30a4\u30fc\u30aa\u30b9" + }, + { + "title_jp": "\u5947\u733f\u72d0", + "href": "/wiki/Kecha_Wacha", + "name": "Kecha Wacha", + "name_jp": "\u30b1\u30c1\u30e3\u30ef\u30c1\u30e3" + }, + { + "title_jp": "\u5e2f\u96fb\u98db\u7adc", + "href": "/wiki/Khezu", + "name": "Khezu", + "name_jp": "\u30d5\u30eb\u30d5\u30eb" + }, + { + "title_jp": "\u6d77\u7adc", + "href": "/wiki/Lagiacrus", + "name": "Lagiacrus", + "name_jp": "\u30e9\u30ae\u30a2\u30af\u30eb\u30b9" + }, + { + "title_jp": "\u767d\u514e\u7363", + "href": "/wiki/Lagombi", + "name": "Lagombi", + "name_jp": "\u30a6\u30eb\u30af\u30b9\u30b9" + }, + { + "title_jp": "\u5927\u96ea\u4e3b", + "href": "/wiki/Heavy_Snow_Lord_Lagombi", + "name": "Heavy Snow Lord Lagombi", + "name_jp": "\u5927\u96ea\u4e3b\u30a6\u30eb\u30af\u30b9\u30b9" + }, + { + "title_jp": "\u6eb6\u5ca9\u7adc", + "href": "/wiki/Lavasioth", + "name": "Lavasioth", + "name_jp": "\u30f4\u30a9\u30eb\u30ac\u30ce\u30b9" + }, + { + "title_jp": "\u7d5e\u86c7\u7adc", + "href": "/wiki/Najarala", + "name": "Najarala", + "name_jp": "\u30ac\u30e9\u30e9\u30a2\u30b8\u30e3\u30e9" + }, + { + "title_jp": "\u8fc5\u7adc", + "href": "/wiki/Nargacuga", + "name": "Nargacuga", + "name_jp": "\u30ca\u30eb\u30ac\u30af\u30eb\u30ac" + }, + { + "title_jp": "\u98a8\u65ac\u308b\u767d\u5f71", + "href": "/wiki/White_Gale_Nargacuga", + "name": "White Gale Nargacuga", + "name_jp": "\u767d\u75be\u98a8\u30ca\u30eb\u30ac\u30af\u30eb\u30ac" + }, + { + "title_jp": "\u6f5c\u53e3\u7adc", + "href": "/wiki/Nibelsnarf", + "name": "Nibelsnarf", + "name_jp": "\u30cf\u30d7\u30eb\u30dc\u30c3\u30ab" + }, + { + "title_jp": "\u6c34\u7adc", + "href": "/wiki/Plesioth", + "name": "Plesioth", + "name_jp": "\u30ac\u30ce\u30c8\u30c8\u30b9" + }, + { + "title_jp": "\u96fb\u7adc", + "href": "/wiki/Raizekusu", + "name": "Raizekusu", + "name_jp": "\u30e9\u30a4\u30bc\u30af\u30b9" + }, + { + "title_jp": "\u91d1\u7345\u5b50", + "href": "/wiki/Rajang", + "name": "Rajang", + "name_jp": "\u30e9\u30fc\u30b8\u30e3\u30f3" + }, + { + "title_jp": "\u91d1\u7345\u5b50", + "href": "/wiki/Furious_Rajang", + "name": "Furious Rajang", + "name_jp": "\u6fc0\u6602\u3057\u305f\u30e9\u30fc\u30b8\u30e3\u30f3" + }, + { + "title_jp": "\u706b\u7adc", + "href": "/wiki/Rathalos", + "name": "Rathalos", + "name_jp": "\u30ea\u30aa\u30ec\u30a6\u30b9" + }, + { + "title_jp": "\u30c0\u30fc\u30af\u30cd\u30b9\u30ed\u30fc\u30c9", + "href": "/wiki/Black_Flame_King_Rathalos", + "name": "Black Flame King Rathalos", + "name_jp": "\u9ed2\u708e\u738b\u30ea\u30aa\u30ec\u30a6\u30b9" + }, + { + "title_jp": "\u9280\u706b\u7adc", + "href": "/wiki/Silver_Rathalos", + "name": "Silver Rathalos", + "name_jp": "\u30ea\u30aa\u30ec\u30a6\u30b9\u5e0c\u5c11\u7a2e" + }, + { + "title_jp": "\u96cc\u706b\u7adc", + "href": "/wiki/Rathian", + "name": "Rathian", + "name_jp": "\u30ea\u30aa\u30ec\u30a4\u30a2" + }, + { + "title_jp": "\u30c7\u30c3\u30c9\u30ea\u30fc\u30d7\u30ea\u30f3\u30bb\u30b9", + "href": "/wiki/Violet_Poison_Princess_Rathian", + "name": "Violet Poison Princess Rathian", + "name_jp": "\u7d2b\u6bd2\u59eb\u30ea\u30aa\u30ec\u30a4\u30a2" + }, + { + "title_jp": "\u91d1\u706b\u7adc", + "href": "/wiki/Gold_Rathian", + "name": "Gold Rathian", + "name_jp": "\u30ea\u30aa\u30ec\u30a4\u30a2\u5e0c\u5c11\u7a2e" + }, + { + "title_jp": "\u6c34\u7363", + "href": "/wiki/Royal_Ludroth", + "name": "Royal Ludroth", + "name_jp": "\u30ed\u30a2\u30eb\u30c9\u30ed\u30b9" + }, + { + "title_jp": "\u5fb9\u7532\u866b", + "href": "/wiki/Seltas", + "name": "Seltas", + "name_jp": "\u30a2\u30eb\u30bb\u30eb\u30bf\u30b9" + }, + { + "title_jp": "\u91cd\u7532\u866b", + "href": "/wiki/Seltas_Queen", + "name": "Seltas Queen", + "name_jp": "\u30b2\u30cd\u30eb\u30fb\u30bb\u30eb\u30bf\u30b9" + }, + { + "title_jp": "\u5343\u5203\u7adc", + "href": "/wiki/Seregios", + "name": "Seregios", + "name_jp": "\u30bb\u30eb\u30ec\u30ae\u30aa\u30b9" + }, + { + "title_jp": "\u938c\u87f9", + "href": "/wiki/Shogun_Ceanataur", + "name": "Shogun Ceanataur", + "name_jp": "\u30b7\u30e7\u30a6\u30b0\u30f3\u30ae\u30b6\u30df" + }, + { + "title_jp": "\u6ce1\u72d0\u7adc", + "href": "/wiki/Tamamitsune", + "name": "Tamamitsune", + "name_jp": "\u30bf\u30de\u30df\u30c4\u30cd" + }, + { + "title_jp": "\u9b3c\u86d9", + "href": "/wiki/Tetsucabra", + "name": "Tetsucabra", + "name_jp": "\u30c6\u30c4\u30ab\u30d6\u30e9" + }, + { + "title_jp": "\u60aa\u76f8\u306e\u5343\u4e21\u5f79\u8005", + "href": "/wiki/Rock_Piercing_Tetsucabra", + "name": "Rock Piercing Tetsucabra", + "name_jp": "\u5ca9\u7a7f\u30c6\u30c4\u30ab\u30d6\u30e9" + }, + { + "title_jp": "\u8f5f\u7adc", + "href": "/wiki/Tigrex", + "name": "Tigrex", + "name_jp": "\u30c6\u30a3\u30ac\u30ec\u30c3\u30af\u30b9" + }, + { + "title_jp": "\u8352\u9264\u722a", + "href": "/wiki/Ruinous_Hook_Claw_Tigrex", + "name": "Ruinous Hook Claw Tigrex", + "name_jp": "\u8352\u9264\u722a\u30c6\u30a3\u30ac\u30ec\u30c3\u30af\u30b9" + }, + { + "title_jp": "\u5d29\u7adc", + "href": "/wiki/Ukanlos", + "name": "Ukanlos", + "name_jp": "\u30a6\u30ab\u30e0\u30eb\u30d0\u30b9" + }, + { + "title_jp": "\u7206\u939a\u7adc", + "href": "/wiki/Uragaan", + "name": "Uragaan", + "name_jp": "\u30a6\u30e9\u30ac\u30f3\u30ad\u30f3" + }, + { + "title_jp": "\u5b9d\u7e8f", + "href": "/wiki/Treasure_Clad_Uragaan", + "name": "Treasure Clad Uragaan", + "name_jp": "\u5b9d\u7e8f\u30a6\u30e9\u30ac\u30f3\u30ad\u30f3" + }, + { + "title_jp": "", + "href": "/wiki/Velocidrome", + "name": "Velocidrome", + "name_jp": "\u30c9\u30b9\u30e9\u30f3\u30dd\u30b9" + }, + { + "title_jp": "\u8d64\u7532\u7363", + "href": "/wiki/Volvidon", + "name": "Volvidon", + "name_jp": "\u30e9\u30f3\u30b0\u30ed\u30c8\u30e9" + }, + { + "title_jp": "\u9ed2\u72fc\u9ce5", + "href": "/wiki/Yian_Garuga", + "name": "Yian Garuga", + "name_jp": "\u30a4\u30e3\u30f3\u30ac\u30eb\u30eb\u30ac" + }, + { + "title_jp": "\u96bb\u773c", + "href": "/wiki/One-Eyed_Yian_Garuga", + "name": "One-Eyed Yian Garuga", + "name_jp": "\u96bb\u773c\u30a4\u30e3\u30f3\u30ac\u30eb\u30eb\u30ac" + }, + { + "title_jp": "\u602a\u9ce5", + "href": "/wiki/Yian_Kut-Ku", + "name": "Yian Kut-Ku", + "name_jp": "\u30a4\u30e3\u30f3\u30af\u30c3\u30af" + }, + { + "title_jp": "\u5316\u3051\u9bab", + "href": "/wiki/Zamtrios", + "name": "Zamtrios", + "name_jp": "\u30b6\u30dc\u30a2\u30b6\u30ae\u30eb" + }, + { + "title_jp": "\u96f7\u72fc\u7adc", + "href": "/wiki/Zinogre", + "name": "Zinogre", + "name_jp": "\u30b8\u30f3\u30aa\u30a6\u30ac" + }, + { + "title_jp": "\u771f\u306a\u308b\u899a\u9192", + "href": "/wiki/Golden_Thunder_Prince_Zinogre", + "name": "Golden Thunder Prince Zinogre", + "name_jp": "\u91d1\u96f7\u516c\u30b8\u30f3\u30aa\u30a6\u30ac" + }, + { + "title_jp": "\u714c\u9ed2\u9f8d", + "href": "/wiki/Alatreon", + "name": "Alatreon", + "name_jp": "\u30a2\u30eb\u30d0\u30c8\u30ea\u30aa\u30f3" + }, + { + "title_jp": "\u5d50\u9f8d", + "href": "/wiki/Amatsumagatsuchi", + "name": "Amatsumagatsuchi", + "name_jp": "\u30a2\u30de\u30c4\u30de\u30ac\u30c4\u30c1" + }, + { + "title_jp": "\u971e\u9f8d", + "href": "/wiki/Chameleos", + "name": "Chameleos", + "name_jp": "\u30aa\u30aa\u30ca\u30ba\u30c1" + }, + { + "title_jp": "\u5e7b\u7363", + "href": "/wiki/Kirin", + "name": "Kirin", + "name_jp": "\u30ad\u30ea\u30f3" + }, + { + "title_jp": "\u92fc\u9f8d", + "href": "/wiki/Kushala_Daora", + "name": "Kushala Daora", + "name_jp": "\u30af\u30b7\u30e3\u30eb\u30c0\u30aa\u30e9" + }, + { + "title_jp": "\u9ab8\u9f8d", + "href": "/wiki/Osutogaroa", + "name": "Osutogaroa", + "name_jp": "\u30aa\u30b9\u30c8\u30ac\u30ed\u30a2" + }, + { + "title_jp": "\u5929\u5efb\u9f8d", + "href": "/wiki/Shagaru_Magala", + "name": "Shagaru Magala", + "name_jp": "\u30b7\u30e3\u30ac\u30eb\u30de\u30ac\u30e9" + }, + { + "title_jp": "\u708e\u738b\u9f8d", + "href": "/wiki/Teostra", + "name": "Teostra", + "name_jp": "\u30c6\u30aa\u30fb\u30c6\u30b9\u30ab\u30c8\u30eb" + }, + { + "title_jp": "", + "href": "/wiki/Zamite", + "name": "Zamite", + "name_jp": "\u30b9\u30af\u30a2\u30ae\u30eb" + }, + { + "title_jp": "\u4e38\u9ce5", + "href": "/wiki/Gargwa", + "name": "Gargwa", + "name_jp": "\u30ac\u30fc\u30b0\u30a1" + }, + { + "title_jp": "", + "href": "/wiki/Giaprey", + "name": "Giaprey", + "name_jp": "\u30ae\u30a2\u30ce\u30b9" + }, + { + "title_jp": "", + "href": "/wiki/Genprey", + "name": "Genprey", + "name_jp": "\u30b2\u30cd\u30dd\u30b9" + }, + { + "title_jp": "", + "href": "/wiki/Ioprey", + "name": "Ioprey", + "name_jp": "\u30a4\u30fc\u30aa\u30b9" + }, + { + "title_jp": "\u72d7\u7adc", + "href": "/wiki/Jaggi", + "name": "Jaggi", + "name_jp": "\u30b8\u30e3\u30ae\u30a3" + }, + { + "title_jp": "\u72d7\u7adc", + "href": "/wiki/Jaggia", + "name": "Jaggia", + "name_jp": "\u30b8\u30e3\u30ae\u30a3\u30ce\u30b9" + }, + { + "title_jp": "", + "href": "/wiki/Maccau", + "name": "Maccau", + "name_jp": "\u30de\u30c3\u30ab\u30a9" + }, + { + "title_jp": "", + "href": "/wiki/Velociprey", + "name": "Velociprey", + "name_jp": "\u30e9\u30f3\u30dd\u30b9" + }, + { + "title_jp": "", + "href": "/wiki/Ceanataur", + "name": "Ceanataur", + "name_jp": "\u30ac\u30df\u30b6\u30df" + }, + { + "title_jp": "", + "href": "/wiki/Hermitaur", + "name": "Hermitaur", + "name_jp": "\u30e4\u30aa\u30b6\u30df" + }, + { + "title_jp": "", + "href": "/wiki/Blango", + "name": "Blango", + "name_jp": "\u30d6\u30e9\u30f3\u30b4" + }, + { + "title_jp": "", + "href": "/wiki/Bullfango", + "name": "Bullfango", + "name_jp": "\u30d6\u30eb\u30d5\u30a1\u30f3\u30b4" + }, + { + "title_jp": "", + "href": "/wiki/Anteka", + "name": "Anteka", + "name_jp": "\u30ac\u30a6\u30b7\u30ab" + }, + { + "title_jp": "", + "href": "/wiki/Apceros", + "name": "Apceros", + "name_jp": "\u30a2\u30d7\u30b1\u30ed\u30b9" + }, + { + "title_jp": "", + "href": "/wiki/Aptonoth", + "name": "Aptonoth", + "name_jp": "\u30a2\u30d7\u30c8\u30ce\u30b9" + }, + { + "title_jp": "", + "href": "/wiki/Kelbi", + "name": "Kelbi", + "name_jp": "\u30b1\u30eb\u30d3" + }, + { + "title_jp": "", + "href": "/wiki/Mosswine", + "name": "Mosswine", + "name_jp": "\u30e2\u30b9" + }, + { + "title_jp": "\u96f2\u7f8a\u9e7f", + "href": "/wiki/Mufa", + "name": "Mufa", + "name_jp": "\u30e0\u30fc\u30d5\u30a1" + }, + { + "title_jp": "", + "href": "/wiki/Popo", + "name": "Popo", + "name_jp": "\u30dd\u30dd" + }, + { + "title_jp": "\u8349\u98df\u7adc", + "href": "/wiki/Rhenoplos", + "name": "Rhenoplos", + "name_jp": "\u30ea\u30ce\u30d7\u30ed\u30b9" + }, + { + "title_jp": "\u9996\u9cf4\u7adc", + "href": "/wiki/Rimosetosu", + "name": "Rimosetosu", + "name_jp": "\u30ea\u30e2\u30bb\u30c8\u30b9" + }, + { + "title_jp": "\u5782\u76ae\u7adc", + "href": "/wiki/Slagtoth", + "name": "Slagtoth", + "name_jp": "\u30ba\u30ef\u30ed\u30dd\u30b9" + }, + { + "title_jp": "\u6c34\u751f\u7363", + "href": "/wiki/Ludroth", + "name": "Ludroth", + "name_jp": "\u30eb\u30c9\u30ed\u30b9" + }, + { + "title_jp": "\u6eb6\u5ca9\u7363", + "href": "/wiki/Uroktor", + "name": "Uroktor", + "name_jp": "\u30a6\u30ed\u30b3\u30c8\u30eb" + }, + { + "title_jp": "", + "href": "/wiki/Felyne", + "name": "Felyne", + "name_jp": "\u30a2\u30a4\u30eb\u30fc" + }, + { + "title_jp": "", + "href": "/wiki/Melynx", + "name": "Melynx", + "name_jp": "\u30e1\u30e9\u30eb\u30fc" + }, + { + "title_jp": "\u7532\u866b", + "href": "/wiki/Altaroth", + "name": "Altaroth", + "name_jp": "\u30aa\u30eb\u30bf\u30ed\u30b9" + }, + { + "title_jp": "\u98db\u7532\u866b", + "href": "/wiki/Bnahabra", + "name": "Bnahabra", + "name_jp": "\u30d6\u30ca\u30cf\u30d6\u30e9" + }, + { + "title_jp": "", + "href": "/wiki/Hornetaur", + "name": "Hornetaur", + "name_jp": "\u30ab\u30f3\u30bf\u30ed\u30b9" + }, + { + "title_jp": "\u76fe\u866b", + "href": "/wiki/Konchu", + "name": "Konchu", + "name_jp": "\u30af\u30f3\u30c1\u30e5\u30a6" + }, + { + "title_jp": "", + "href": "/wiki/Vespoid", + "name": "Vespoid", + "name_jp": "\u30e9\u30f3\u30b4\u30b9\u30bf" + }, + { + "title_jp": "\u7802\u7adc", + "href": "/wiki/Cephalos", + "name": "Cephalos", + "name_jp": "\u30ac\u30ec\u30aa\u30b9" + }, + { + "title_jp": "\u7ffc\u86c7\u7adc", + "href": "/wiki/Remobra", + "name": "Remobra", + "name_jp": "\u30ac\u30d6\u30e9\u30b9" + } +] diff --git a/db/mhw/weapon_list.json b/db/mhw/weapon_list.json new file mode 100644 index 0000000..5eb95a4 --- /dev/null +++ b/db/mhw/weapon_list.json @@ -0,0 +1,51 @@ +[ + { + "element_attack": null, + "parent": null, + "sharpness": [ + 8, + 7, + 4, + 14, + 2, + 0 + ], + "element_2_attack": null, + "phial": null, + "defense": 0, + "shelling_type": null, + "bug_type": null, + "awaken": null, + "sharpness_plus2": [ + 8, + 7, + 4, + 14, + 5, + 2 + ], + "num_slots": 0, + "element_2": null, + "name": "\u30d9\u30eb\u30c0\u30fc\u30e9\u30f3\u30b9", + "url": "http://wiki.mhxg.org/ida/219227.html", + "wtype": "Lance", + "shot_types": null, + "name_jp": "\u30d9\u30eb\u30c0\u30fc\u30e9\u30f3\u30b9", + "sharpness_plus": [ + 8, + 7, + 4, + 14, + 5, + 0 + ], + "element": null, + "attack": 60, + "href": "/ida/219227.html", + "affinity": 0, + "arc_type": null, + "final": 0, + "ammo": null, + "horn_notes": null + }, +] diff --git a/db/set_item_levels.py b/db/set_item_levels.py index 0f6f2eb..7b6e13e 100755 --- a/db/set_item_levels.py +++ b/db/set_item_levels.py @@ -30,7 +30,7 @@ def _set_stars(cursor, item_id, stars): def main(): - db = MHDB(game="gen", include_item_components=True) + db = MHDB(include_item_components=True) item_stars = ItemStars(db) c = db.cursor() diff --git a/mhapi/db.py b/mhapi/db.py index d7c6ac1..0483b3b 100644 --- a/mhapi/db.py +++ b/mhapi/db.py @@ -78,7 +78,7 @@ class MHDB(object): """ if game is None: game = os.environ.get("MHAPI_GAME") - assert game in ("4u", "gen") + assert game in ("4u", "gen", "gu") self.game = game if game == "4u": @@ -173,8 +173,6 @@ class MHDB(object): placeholders = ", ".join(["?"] * len(exclude_types)) q += "\nWHERE type NOT IN (%s)" % placeholders args.extend(exclude_types) - else: - args = [] args = tuple(args) return self._query_all("items", q, args, model_cls=model.Item) @@ -484,7 +482,7 @@ class MHDB(object): args = sorted(skill_tree_ids) placeholders = ", ".join(["?"] * len(skill_tree_ids)) both_type = "Both" - if self.game == "gen": + if self.game in ("gen", "gu"): both_type = ARMOR_HUNTER_TYPES[both_type] hunter_type = ARMOR_HUNTER_TYPES[hunter_type] args += [both_type, hunter_type] @@ -548,7 +546,7 @@ class MHDB(object): Get dict rows of items that satisfy the given material, containing item_id and amount keys. MHGen only. """ - assert self.game == "gen" + assert self.game in ("gen", "gu") return self._query_all("material_items", """ SELECT item_id, amount FROM item_to_material WHERE item_to_material.material_item_id = ? @@ -589,19 +587,19 @@ class MHDB(object): class MHDBX(object): """ - Wrapper around Monster Hunter Cross (X) JSON data. Attempts limited + Wrapper around Monster Hunter JSON data, default to MHX. Attempts limited compatibility with original 4U MHDB class. - Uses MHDB object, as temporariy hack for MHX data that is not yet + Uses MHDB object, as temporariy hack for MHX/World data that is not yet available or integrated. """ - def __init__(self): + def __init__(self, game="mhx"): """ Loads JSON data, keeps in memory. """ module_path = os.path.dirname(__file__) self._mhx_db_path = os.path.abspath(os.path.join(module_path, "..", - "db", "mhx")) + "db", game)) self._4udb = MHDB() self._weapon_list = [] self._weapons_by_name = {} diff --git a/mhapi/model.py b/mhapi/model.py index 099954b..0e568c8 100644 --- a/mhapi/model.py +++ b/mhapi/model.py @@ -162,6 +162,7 @@ class SharpnessLevel(EnumBase): PURPLE: (1.44, 1.20), } + # for mhx, mhgen, mhxx, and likely mhw _modifier_mhx = { RED: (0.50, 0.25), ORANGE: (0.75, 0.50), diff --git a/mhapi/rewards.py b/mhapi/rewards.py index d475f7d..a5998b0 100644 --- a/mhapi/rewards.py +++ b/mhapi/rewards.py @@ -19,7 +19,7 @@ STRAT_SHINY = "shiny" STRAT_CAP_OR_KILL = "cap/kill" -ITEM_TYPES = "Bone Bug Coin/Ticket Fish Flesh Meat Ore Plant Sac/Fluid".split() +ITEM_TYPES = "Materials Bone Bug Coin/Ticket Fish Flesh Meat Ore Plant Sac/Fluid".split() def _format_range(min_v, max_v): diff --git a/scrapers/mhxg-weapons.py b/scrapers/mhxg-weapons.py index c4f7e90..9ada91a 100755 --- a/scrapers/mhxg-weapons.py +++ b/scrapers/mhxg-weapons.py @@ -6,6 +6,7 @@ import os import json import sys import codecs +import errno from lxml import etree @@ -414,6 +415,11 @@ def _parse_sharpness_td(td_element): def _main(): tmp_path = os.path.join(_pathfix.project_path, "tmp") + try: + os.mkdir(tmp_path) + except OSError as e: + if e.errno != errno.EEXISTS: + raise weapon_list = [] parser = etree.HTMLParser() for wtype, urls in _WEAPON_URLS.iteritems():